<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
; /* Start:"a:4:{s:4:"full";s:58:"/local/templates/autoglass/js/libs.min.js?1545068972846232";s:6:"source";s:41:"/local/templates/autoglass/js/libs.min.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
!function(t,e){"use strict";"object"==typeof module&amp;&amp;"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(_,t){"use strict";var e=[],T=_.document,i=Object.getPrototypeOf,a=e.slice,g=e.concat,l=e.push,o=e.indexOf,n={},s=n.toString,f=n.hasOwnProperty,r=f.toString,c=r.call(Object),m={};function v(t,e){var n=(e=e||T).createElement("script");n.text=t,e.head.appendChild(n).parentNode.removeChild(n)}var u="3.2.1",S=function(t,e){return new S.fn.init(t,e)},h=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,d=/^-ms-/,p=/-([a-z])/g,y=function(t,e){return e.toUpperCase()};function b(t){var e=!!t&amp;&amp;"length"in t&amp;&amp;t.length,n=S.type(t);return"function"!==n&amp;&amp;!S.isWindow(t)&amp;&amp;("array"===n||0===e||"number"==typeof e&amp;&amp;0&lt;e&amp;&amp;e-1 in t)}S.fn=S.prototype={jquery:u,constructor:S,length:0,toArray:function(){return a.call(this)},get:function(t){return null==t?a.call(this):t&lt;0?this[t+this.length]:this[t]},pushStack:function(t){var e=S.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return S.each(this,t)},map:function(n){return this.pushStack(S.map(this,function(t,e){return n.call(t,e,t)}))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(t&lt;0?e:0);return this.pushStack(0&lt;=n&amp;&amp;n&lt;e?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:l,sort:e.sort,splice:e.splice},S.extend=S.fn.extend=function(){var t,e,n,i,o,s,r=arguments[0]||{},a=1,l=arguments.length,c=!1;for("boolean"==typeof r&amp;&amp;(c=r,r=arguments[a]||{},a++),"object"==typeof r||S.isFunction(r)||(r={}),a===l&amp;&amp;(r=this,a--);a&lt;l;a++)if(null!=(t=arguments[a]))for(e in t)n=r[e],r!==(i=t[e])&amp;&amp;(c&amp;&amp;i&amp;&amp;(S.isPlainObject(i)||(o=Array.isArray(i)))?(o?(o=!1,s=n&amp;&amp;Array.isArray(n)?n:[]):s=n&amp;&amp;S.isPlainObject(n)?n:{},r[e]=S.extend(c,s,i)):void 0!==i&amp;&amp;(r[e]=i));return r},S.extend({expando:"jQuery"+(u+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===S.type(t)},isWindow:function(t){return null!=t&amp;&amp;t===t.window},isNumeric:function(t){var e=S.type(t);return("number"===e||"string"===e)&amp;&amp;!isNaN(t-parseFloat(t))},isPlainObject:function(t){var e,n;return!(!t||"[object Object]"!==s.call(t)||(e=i(t))&amp;&amp;("function"!=typeof(n=f.call(e,"constructor")&amp;&amp;e.constructor)||r.call(n)!==c))},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?n[s.call(t)]||"object":typeof t},globalEval:function(t){v(t)},camelCase:function(t){return t.replace(d,"ms-").replace(p,y)},each:function(t,e){var n,i=0;if(b(t))for(n=t.length;i&lt;n&amp;&amp;!1!==e.call(t[i],i,t[i]);i++);else for(i in t)if(!1===e.call(t[i],i,t[i]))break;return t},trim:function(t){return null==t?"":(t+"").replace(h,"")},makeArray:function(t,e){var n=e||[];return null!=t&amp;&amp;(b(Object(t))?S.merge(n,"string"==typeof t?[t]:t):l.call(n,t)),n},inArray:function(t,e,n){return null==e?-1:o.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,o=t.length;i&lt;n;i++)t[o++]=e[i];return t.length=o,t},grep:function(t,e,n){for(var i=[],o=0,s=t.length,r=!n;o&lt;s;o++)!e(t[o],o)!==r&amp;&amp;i.push(t[o]);return i},map:function(t,e,n){var i,o,s=0,r=[];if(b(t))for(i=t.length;s&lt;i;s++)null!=(o=e(t[s],s,n))&amp;&amp;r.push(o);else for(s in t)null!=(o=e(t[s],s,n))&amp;&amp;r.push(o);return g.apply([],r)},guid:1,proxy:function(t,e){var n,i,o;if("string"==typeof e&amp;&amp;(n=t[e],e=t,t=n),S.isFunction(t))return i=a.call(arguments,2),(o=function(){return t.apply(e||this,i.concat(a.call(arguments)))}).guid=t.guid=t.guid||S.guid++,o},now:Date.now,support:m}),"function"==typeof Symbol&amp;&amp;(S.fn[Symbol.iterator]=e[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){n["[object "+e+"]"]=e.toLowerCase()});var x=function(n){var t,p,x,s,o,f,h,g,w,l,c,C,_,r,T,m,a,u,v,S="sizzle"+1*new Date,y=n.document,$=0,i=0,d=rt(),b=rt(),E=rt(),P=function(t,e){return t===e&amp;&amp;(c=!0),0},k={}.hasOwnProperty,e=[],A=e.pop,D=e.push,L=e.push,j=e.slice,M=function(t,e){for(var n=0,i=t.length;n&lt;i;n++)if(t[n]===e)return n;return-1},N="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",F="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",q="\\["+F+"*("+I+")(?:"+F+"*([*^$|!~]?=)"+F+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+F+"*\\]",O=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+q+")*)|.*)\\)|)",z=new RegExp(F+"+","g"),H=new RegExp("^"+F+"+|((?:^|[^\\\\])(?:\\\\.)*)"+F+"+$","g"),R=new RegExp("^"+F+"*,"+F+"*"),B=new RegExp("^"+F+"*([&gt;+~]|"+F+")"+F+"*"),W=new RegExp("="+F+"*([^\\]'\"]*?)"+F+"*\\]","g"),X=new RegExp(O),Y=new RegExp("^"+I+"$"),U={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+q),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+N+")$","i"),needsContext:new RegExp("^"+F+"*[&gt;+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},Z=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,V=/^[^{]+\{\s*\[native \w/,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,J=new RegExp("\\\\([\\da-f]{1,6}"+F+"?|("+F+")|.)","ig"),tt=function(t,e,n){var i="0x"+e-65536;return i!=i||n?e:i&lt;0?String.fromCharCode(i+65536):String.fromCharCode(i&gt;&gt;10|55296,1023&amp;i|56320)},et=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,nt=function(t,e){return e?"\0"===t?"пїЅ":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},it=function(){C()},ot=yt(function(t){return!0===t.disabled&amp;&amp;("form"in t||"label"in t)},{dir:"parentNode",next:"legend"});try{L.apply(e=j.call(y.childNodes),y.childNodes),e[y.childNodes.length].nodeType}catch(t){L={apply:e.length?function(t,e){D.apply(t,j.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}function st(t,e,n,i){var o,s,r,a,l,c,u,h=e&amp;&amp;e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&amp;&amp;9!==d&amp;&amp;11!==d)return n;if(!i&amp;&amp;((e?e.ownerDocument||e:y)!==_&amp;&amp;C(e),e=e||_,T)){if(11!==d&amp;&amp;(l=G.exec(t)))if(o=l[1]){if(9===d){if(!(r=e.getElementById(o)))return n;if(r.id===o)return n.push(r),n}else if(h&amp;&amp;(r=h.getElementById(o))&amp;&amp;v(e,r)&amp;&amp;r.id===o)return n.push(r),n}else{if(l[2])return L.apply(n,e.getElementsByTagName(t)),n;if((o=l[3])&amp;&amp;p.getElementsByClassName&amp;&amp;e.getElementsByClassName)return L.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&amp;&amp;!E[t+" "]&amp;&amp;(!m||!m.test(t))){if(1!==d)h=e,u=t;else if("object"!==e.nodeName.toLowerCase()){for((a=e.getAttribute("id"))?a=a.replace(et,nt):e.setAttribute("id",a=S),s=(c=f(t)).length;s--;)c[s]="#"+a+" "+vt(c[s]);u=c.join(","),h=K.test(t)&amp;&amp;gt(e.parentNode)||e}if(u)try{return L.apply(n,h.querySelectorAll(u)),n}catch(t){}finally{a===S&amp;&amp;e.removeAttribute("id")}}}return g(t.replace(H,"$1"),e,n,i)}function rt(){var i=[];return function t(e,n){return i.push(e+" ")&gt;x.cacheLength&amp;&amp;delete t[i.shift()],t[e+" "]=n}}function at(t){return t[S]=!0,t}function lt(t){var e=_.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&amp;&amp;e.parentNode.removeChild(e),e=null}}function ct(t,e){for(var n=t.split("|"),i=n.length;i--;)x.attrHandle[n[i]]=e}function ut(t,e){var n=e&amp;&amp;t,i=n&amp;&amp;1===t.nodeType&amp;&amp;1===e.nodeType&amp;&amp;t.sourceIndex-e.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function ht(e){return function(t){return"input"===t.nodeName.toLowerCase()&amp;&amp;t.type===e}}function dt(n){return function(t){var e=t.nodeName.toLowerCase();return("input"===e||"button"===e)&amp;&amp;t.type===n}}function pt(e){return function(t){return"form"in t?t.parentNode&amp;&amp;!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&amp;&amp;ot(t)===e:t.disabled===e:"label"in t&amp;&amp;t.disabled===e}}function ft(r){return at(function(s){return s=+s,at(function(t,e){for(var n,i=r([],t.length,s),o=i.length;o--;)t[n=i[o]]&amp;&amp;(t[n]=!(e[n]=t[n]))})})}function gt(t){return t&amp;&amp;void 0!==t.getElementsByTagName&amp;&amp;t}for(t in p=st.support={},o=st.isXML=function(t){var e=t&amp;&amp;(t.ownerDocument||t).documentElement;return!!e&amp;&amp;"HTML"!==e.nodeName},C=st.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:y;return i!==_&amp;&amp;9===i.nodeType&amp;&amp;i.documentElement&amp;&amp;(r=(_=i).documentElement,T=!o(_),y!==_&amp;&amp;(n=_.defaultView)&amp;&amp;n.top!==n&amp;&amp;(n.addEventListener?n.addEventListener("unload",it,!1):n.attachEvent&amp;&amp;n.attachEvent("onunload",it)),p.attributes=lt(function(t){return t.className="i",!t.getAttribute("className")}),p.getElementsByTagName=lt(function(t){return t.appendChild(_.createComment("")),!t.getElementsByTagName("*").length}),p.getElementsByClassName=V.test(_.getElementsByClassName),p.getById=lt(function(t){return r.appendChild(t).id=S,!_.getElementsByName||!_.getElementsByName(S).length}),p.getById?(x.filter.ID=function(t){var e=t.replace(J,tt);return function(t){return t.getAttribute("id")===e}},x.find.ID=function(t,e){if(void 0!==e.getElementById&amp;&amp;T){var n=e.getElementById(t);return n?[n]:[]}}):(x.filter.ID=function(t){var n=t.replace(J,tt);return function(t){var e=void 0!==t.getAttributeNode&amp;&amp;t.getAttributeNode("id");return e&amp;&amp;e.value===n}},x.find.ID=function(t,e){if(void 0!==e.getElementById&amp;&amp;T){var n,i,o,s=e.getElementById(t);if(s){if((n=s.getAttributeNode("id"))&amp;&amp;n.value===t)return[s];for(o=e.getElementsByName(t),i=0;s=o[i++];)if((n=s.getAttributeNode("id"))&amp;&amp;n.value===t)return[s]}return[]}}),x.find.TAG=p.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):p.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],o=0,s=e.getElementsByTagName(t);if("*"===t){for(;n=s[o++];)1===n.nodeType&amp;&amp;i.push(n);return i}return s},x.find.CLASS=p.getElementsByClassName&amp;&amp;function(t,e){if(void 0!==e.getElementsByClassName&amp;&amp;T)return e.getElementsByClassName(t)},a=[],m=[],(p.qsa=V.test(_.querySelectorAll))&amp;&amp;(lt(function(t){r.appendChild(t).innerHTML="&lt;a id='"+S+"'&gt;&lt;/a&gt;&lt;select id='"+S+"-\r\\' msallowcapture=''&gt;&lt;option selected=''&gt;&lt;/option&gt;&lt;/select&gt;",t.querySelectorAll("[msallowcapture^='']").length&amp;&amp;m.push("[*^$]="+F+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||m.push("\\["+F+"*(?:value|"+N+")"),t.querySelectorAll("[id~="+S+"-]").length||m.push("~="),t.querySelectorAll(":checked").length||m.push(":checked"),t.querySelectorAll("a#"+S+"+*").length||m.push(".#.+[+~]")}),lt(function(t){t.innerHTML="&lt;a href='' disabled='disabled'&gt;&lt;/a&gt;&lt;select disabled='disabled'&gt;&lt;option/&gt;&lt;/select&gt;";var e=_.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&amp;&amp;m.push("name"+F+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&amp;&amp;m.push(":enabled",":disabled"),r.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&amp;&amp;m.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),m.push(",.*:")})),(p.matchesSelector=V.test(u=r.matches||r.webkitMatchesSelector||r.mozMatchesSelector||r.oMatchesSelector||r.msMatchesSelector))&amp;&amp;lt(function(t){p.disconnectedMatch=u.call(t,"*"),u.call(t,"[s!='']:x"),a.push("!=",O)}),m=m.length&amp;&amp;new RegExp(m.join("|")),a=a.length&amp;&amp;new RegExp(a.join("|")),e=V.test(r.compareDocumentPosition),v=e||V.test(r.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&amp;&amp;e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&amp;&amp;16&amp;t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},P=e?function(t,e){if(t===e)return c=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n||(1&amp;(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!p.sortDetached&amp;&amp;e.compareDocumentPosition(t)===n?t===_||t.ownerDocument===y&amp;&amp;v(y,t)?-1:e===_||e.ownerDocument===y&amp;&amp;v(y,e)?1:l?M(l,t)-M(l,e):0:4&amp;n?-1:1)}:function(t,e){if(t===e)return c=!0,0;var n,i=0,o=t.parentNode,s=e.parentNode,r=[t],a=[e];if(!o||!s)return t===_?-1:e===_?1:o?-1:s?1:l?M(l,t)-M(l,e):0;if(o===s)return ut(t,e);for(n=t;n=n.parentNode;)r.unshift(n);for(n=e;n=n.parentNode;)a.unshift(n);for(;r[i]===a[i];)i++;return i?ut(r[i],a[i]):r[i]===y?-1:a[i]===y?1:0}),_},st.matches=function(t,e){return st(t,null,null,e)},st.matchesSelector=function(t,e){if((t.ownerDocument||t)!==_&amp;&amp;C(t),e=e.replace(W,"='$1']"),p.matchesSelector&amp;&amp;T&amp;&amp;!E[e+" "]&amp;&amp;(!a||!a.test(e))&amp;&amp;(!m||!m.test(e)))try{var n=u.call(t,e);if(n||p.disconnectedMatch||t.document&amp;&amp;11!==t.document.nodeType)return n}catch(t){}return 0&lt;st(e,_,null,[t]).length},st.contains=function(t,e){return(t.ownerDocument||t)!==_&amp;&amp;C(t),v(t,e)},st.attr=function(t,e){(t.ownerDocument||t)!==_&amp;&amp;C(t);var n=x.attrHandle[e.toLowerCase()],i=n&amp;&amp;k.call(x.attrHandle,e.toLowerCase())?n(t,e,!T):void 0;return void 0!==i?i:p.attributes||!T?t.getAttribute(e):(i=t.getAttributeNode(e))&amp;&amp;i.specified?i.value:null},st.escape=function(t){return(t+"").replace(et,nt)},st.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},st.uniqueSort=function(t){var e,n=[],i=0,o=0;if(c=!p.detectDuplicates,l=!p.sortStable&amp;&amp;t.slice(0),t.sort(P),c){for(;e=t[o++];)e===t[o]&amp;&amp;(i=n.push(o));for(;i--;)t.splice(n[i],1)}return l=null,t},s=st.getText=function(t){var e,n="",i=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=s(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[i++];)n+=s(e);return n},(x=st.selectors={cacheLength:50,createPseudo:at,match:U,attrHandle:{},find:{},relative:{"&gt;":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(J,tt),t[3]=(t[3]||t[4]||t[5]||"").replace(J,tt),"~="===t[2]&amp;&amp;(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||st.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&amp;&amp;st.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&amp;&amp;t[2];return U.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&amp;&amp;X.test(n)&amp;&amp;(e=f(n,!0))&amp;&amp;(e=n.indexOf(")",n.length-e)-n.length)&amp;&amp;(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(J,tt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&amp;&amp;t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=d[t+" "];return e||(e=new RegExp("(^|"+F+")"+t+"("+F+"|$)"))&amp;&amp;d(t,function(t){return e.test("string"==typeof t.className&amp;&amp;t.className||void 0!==t.getAttribute&amp;&amp;t.getAttribute("class")||"")})},ATTR:function(n,i,o){return function(t){var e=st.attr(t,n);return null==e?"!="===i:!i||(e+="","="===i?e===o:"!="===i?e!==o:"^="===i?o&amp;&amp;0===e.indexOf(o):"*="===i?o&amp;&amp;-1&lt;e.indexOf(o):"$="===i?o&amp;&amp;e.slice(-o.length)===o:"~="===i?-1&lt;(" "+e.replace(z," ")+" ").indexOf(o):"|="===i&amp;&amp;(e===o||e.slice(0,o.length+1)===o+"-"))}},CHILD:function(f,t,e,g,m){var v="nth"!==f.slice(0,3),y="last"!==f.slice(-4),b="of-type"===t;return 1===g&amp;&amp;0===m?function(t){return!!t.parentNode}:function(t,e,n){var i,o,s,r,a,l,c=v!==y?"nextSibling":"previousSibling",u=t.parentNode,h=b&amp;&amp;t.nodeName.toLowerCase(),d=!n&amp;&amp;!b,p=!1;if(u){if(v){for(;c;){for(r=t;r=r[c];)if(b?r.nodeName.toLowerCase()===h:1===r.nodeType)return!1;l=c="only"===f&amp;&amp;!l&amp;&amp;"nextSibling"}return!0}if(l=[y?u.firstChild:u.lastChild],y&amp;&amp;d){for(p=(a=(i=(o=(s=(r=u)[S]||(r[S]={}))[r.uniqueID]||(s[r.uniqueID]={}))[f]||[])[0]===$&amp;&amp;i[1])&amp;&amp;i[2],r=a&amp;&amp;u.childNodes[a];r=++a&amp;&amp;r&amp;&amp;r[c]||(p=a=0)||l.pop();)if(1===r.nodeType&amp;&amp;++p&amp;&amp;r===t){o[f]=[$,a,p];break}}else if(d&amp;&amp;(p=a=(i=(o=(s=(r=t)[S]||(r[S]={}))[r.uniqueID]||(s[r.uniqueID]={}))[f]||[])[0]===$&amp;&amp;i[1]),!1===p)for(;(r=++a&amp;&amp;r&amp;&amp;r[c]||(p=a=0)||l.pop())&amp;&amp;((b?r.nodeName.toLowerCase()!==h:1!==r.nodeType)||!++p||(d&amp;&amp;((o=(s=r[S]||(r[S]={}))[r.uniqueID]||(s[r.uniqueID]={}))[f]=[$,p]),r!==t)););return(p-=m)===g||p%g==0&amp;&amp;0&lt;=p/g}}},PSEUDO:function(t,s){var e,r=x.pseudos[t]||x.setFilters[t.toLowerCase()]||st.error("unsupported pseudo: "+t);return r[S]?r(s):1&lt;r.length?(e=[t,t,"",s],x.setFilters.hasOwnProperty(t.toLowerCase())?at(function(t,e){for(var n,i=r(t,s),o=i.length;o--;)t[n=M(t,i[o])]=!(e[n]=i[o])}):function(t){return r(t,0,e)}):r}},pseudos:{not:at(function(t){var i=[],o=[],a=h(t.replace(H,"$1"));return a[S]?at(function(t,e,n,i){for(var o,s=a(t,null,i,[]),r=t.length;r--;)(o=s[r])&amp;&amp;(t[r]=!(e[r]=o))}):function(t,e,n){return i[0]=t,a(i,null,n,o),i[0]=null,!o.pop()}}),has:at(function(e){return function(t){return 0&lt;st(e,t).length}}),contains:at(function(e){return e=e.replace(J,tt),function(t){return-1&lt;(t.textContent||t.innerText||s(t)).indexOf(e)}}),lang:at(function(n){return Y.test(n||"")||st.error("unsupported lang: "+n),n=n.replace(J,tt).toLowerCase(),function(t){var e;do{if(e=T?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(e=e.toLowerCase())===n||0===e.indexOf(n+"-")}while((t=t.parentNode)&amp;&amp;1===t.nodeType);return!1}}),target:function(t){var e=n.location&amp;&amp;n.location.hash;return e&amp;&amp;e.slice(1)===t.id},root:function(t){return t===r},focus:function(t){return t===_.activeElement&amp;&amp;(!_.hasFocus||_.hasFocus())&amp;&amp;!!(t.type||t.href||~t.tabIndex)},enabled:pt(!1),disabled:pt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&amp;&amp;!!t.checked||"option"===e&amp;&amp;!!t.selected},selected:function(t){return t.parentNode&amp;&amp;t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType&lt;6)return!1;return!0},parent:function(t){return!x.pseudos.empty(t)},header:function(t){return Q.test(t.nodeName)},input:function(t){return Z.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&amp;&amp;"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&amp;&amp;"text"===t.type&amp;&amp;(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:ft(function(){return[0]}),last:ft(function(t,e){return[e-1]}),eq:ft(function(t,e,n){return[n&lt;0?n+e:n]}),even:ft(function(t,e){for(var n=0;n&lt;e;n+=2)t.push(n);return t}),odd:ft(function(t,e){for(var n=1;n&lt;e;n+=2)t.push(n);return t}),lt:ft(function(t,e,n){for(var i=n&lt;0?n+e:n;0&lt;=--i;)t.push(i);return t}),gt:ft(function(t,e,n){for(var i=n&lt;0?n+e:n;++i&lt;e;)t.push(i);return t})}}).pseudos.nth=x.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[t]=ht(t);for(t in{submit:!0,reset:!0})x.pseudos[t]=dt(t);function mt(){}function vt(t){for(var e=0,n=t.length,i="";e&lt;n;e++)i+=t[e].value;return i}function yt(a,t,e){var l=t.dir,c=t.next,u=c||l,h=e&amp;&amp;"parentNode"===u,d=i++;return t.first?function(t,e,n){for(;t=t[l];)if(1===t.nodeType||h)return a(t,e,n);return!1}:function(t,e,n){var i,o,s,r=[$,d];if(n){for(;t=t[l];)if((1===t.nodeType||h)&amp;&amp;a(t,e,n))return!0}else for(;t=t[l];)if(1===t.nodeType||h)if(o=(s=t[S]||(t[S]={}))[t.uniqueID]||(s[t.uniqueID]={}),c&amp;&amp;c===t.nodeName.toLowerCase())t=t[l]||t;else{if((i=o[u])&amp;&amp;i[0]===$&amp;&amp;i[1]===d)return r[2]=i[2];if((o[u]=r)[2]=a(t,e,n))return!0}return!1}}function bt(o){return 1&lt;o.length?function(t,e,n){for(var i=o.length;i--;)if(!o[i](t,e,n))return!1;return!0}:o[0]}function xt(t,e,n,i,o){for(var s,r=[],a=0,l=t.length,c=null!=e;a&lt;l;a++)(s=t[a])&amp;&amp;(n&amp;&amp;!n(s,i,o)||(r.push(s),c&amp;&amp;e.push(a)));return r}function wt(p,f,g,m,v,t){return m&amp;&amp;!m[S]&amp;&amp;(m=wt(m)),v&amp;&amp;!v[S]&amp;&amp;(v=wt(v,t)),at(function(t,e,n,i){var o,s,r,a=[],l=[],c=e.length,u=t||function(t,e,n){for(var i=0,o=e.length;i&lt;o;i++)st(t,e[i],n);return n}(f||"*",n.nodeType?[n]:n,[]),h=!p||!t&amp;&amp;f?u:xt(u,a,p,n,i),d=g?v||(t?p:c||m)?[]:e:h;if(g&amp;&amp;g(h,d,n,i),m)for(o=xt(d,l),m(o,[],n,i),s=o.length;s--;)(r=o[s])&amp;&amp;(d[l[s]]=!(h[l[s]]=r));if(t){if(v||p){if(v){for(o=[],s=d.length;s--;)(r=d[s])&amp;&amp;o.push(h[s]=r);v(null,d=[],o,i)}for(s=d.length;s--;)(r=d[s])&amp;&amp;-1&lt;(o=v?M(t,r):a[s])&amp;&amp;(t[o]=!(e[o]=r))}}else d=xt(d===e?d.splice(c,d.length):d),v?v(null,e,d,i):L.apply(e,d)})}function Ct(t){for(var o,e,n,i=t.length,s=x.relative[t[0].type],r=s||x.relative[" "],a=s?1:0,l=yt(function(t){return t===o},r,!0),c=yt(function(t){return-1&lt;M(o,t)},r,!0),u=[function(t,e,n){var i=!s&amp;&amp;(n||e!==w)||((o=e).nodeType?l(t,e,n):c(t,e,n));return o=null,i}];a&lt;i;a++)if(e=x.relative[t[a].type])u=[yt(bt(u),e)];else{if((e=x.filter[t[a].type].apply(null,t[a].matches))[S]){for(n=++a;n&lt;i&amp;&amp;!x.relative[t[n].type];n++);return wt(1&lt;a&amp;&amp;bt(u),1&lt;a&amp;&amp;vt(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(H,"$1"),e,a&lt;n&amp;&amp;Ct(t.slice(a,n)),n&lt;i&amp;&amp;Ct(t=t.slice(n)),n&lt;i&amp;&amp;vt(t))}u.push(e)}return bt(u)}return mt.prototype=x.filters=x.pseudos,x.setFilters=new mt,f=st.tokenize=function(t,e){var n,i,o,s,r,a,l,c=b[t+" "];if(c)return e?0:c.slice(0);for(r=t,a=[],l=x.preFilter;r;){for(s in n&amp;&amp;!(i=R.exec(r))||(i&amp;&amp;(r=r.slice(i[0].length)||r),a.push(o=[])),n=!1,(i=B.exec(r))&amp;&amp;(n=i.shift(),o.push({value:n,type:i[0].replace(H," ")}),r=r.slice(n.length)),x.filter)!(i=U[s].exec(r))||l[s]&amp;&amp;!(i=l[s](i))||(n=i.shift(),o.push({value:n,type:s,matches:i}),r=r.slice(n.length));if(!n)break}return e?r.length:r?st.error(t):b(t,a).slice(0)},h=st.compile=function(t,e){var n,m,v,y,b,i,o=[],s=[],r=E[t+" "];if(!r){for(e||(e=f(t)),n=e.length;n--;)(r=Ct(e[n]))[S]?o.push(r):s.push(r);(r=E(t,(m=s,y=0&lt;(v=o).length,b=0&lt;m.length,i=function(t,e,n,i,o){var s,r,a,l=0,c="0",u=t&amp;&amp;[],h=[],d=w,p=t||b&amp;&amp;x.find.TAG("*",o),f=$+=null==d?1:Math.random()||.1,g=p.length;for(o&amp;&amp;(w=e===_||e||o);c!==g&amp;&amp;null!=(s=p[c]);c++){if(b&amp;&amp;s){for(r=0,e||s.ownerDocument===_||(C(s),n=!T);a=m[r++];)if(a(s,e||_,n)){i.push(s);break}o&amp;&amp;($=f)}y&amp;&amp;((s=!a&amp;&amp;s)&amp;&amp;l--,t&amp;&amp;u.push(s))}if(l+=c,y&amp;&amp;c!==l){for(r=0;a=v[r++];)a(u,h,e,n);if(t){if(0&lt;l)for(;c--;)u[c]||h[c]||(h[c]=A.call(i));h=xt(h)}L.apply(i,h),o&amp;&amp;!t&amp;&amp;0&lt;h.length&amp;&amp;1&lt;l+v.length&amp;&amp;st.uniqueSort(i)}return o&amp;&amp;($=f,w=d),u},y?at(i):i))).selector=t}return r},g=st.select=function(t,e,n,i){var o,s,r,a,l,c="function"==typeof t&amp;&amp;t,u=!i&amp;&amp;f(t=c.selector||t);if(n=n||[],1===u.length){if(2&lt;(s=u[0]=u[0].slice(0)).length&amp;&amp;"ID"===(r=s[0]).type&amp;&amp;9===e.nodeType&amp;&amp;T&amp;&amp;x.relative[s[1].type]){if(!(e=(x.find.ID(r.matches[0].replace(J,tt),e)||[])[0]))return n;c&amp;&amp;(e=e.parentNode),t=t.slice(s.shift().value.length)}for(o=U.needsContext.test(t)?0:s.length;o--&amp;&amp;(r=s[o],!x.relative[a=r.type]);)if((l=x.find[a])&amp;&amp;(i=l(r.matches[0].replace(J,tt),K.test(s[0].type)&amp;&amp;gt(e.parentNode)||e))){if(s.splice(o,1),!(t=i.length&amp;&amp;vt(s)))return L.apply(n,i),n;break}}return(c||h(t,u))(i,e,!T,n,!e||K.test(t)&amp;&amp;gt(e.parentNode)||e),n},p.sortStable=S.split("").sort(P).join("")===S,p.detectDuplicates=!!c,C(),p.sortDetached=lt(function(t){return 1&amp;t.compareDocumentPosition(_.createElement("fieldset"))}),lt(function(t){return t.innerHTML="&lt;a href='#'&gt;&lt;/a&gt;","#"===t.firstChild.getAttribute("href")})||ct("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),p.attributes&amp;&amp;lt(function(t){return t.innerHTML="&lt;input/&gt;",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||ct("value",function(t,e,n){if(!n&amp;&amp;"input"===t.nodeName.toLowerCase())return t.defaultValue}),lt(function(t){return null==t.getAttribute("disabled")})||ct(N,function(t,e,n){var i;if(!n)return!0===t[e]?e.toLowerCase():(i=t.getAttributeNode(e))&amp;&amp;i.specified?i.value:null}),st}(_);S.find=x,S.expr=x.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=x.uniqueSort,S.text=x.getText,S.isXMLDoc=x.isXML,S.contains=x.contains,S.escapeSelector=x.escape;var w=function(t,e,n){for(var i=[],o=void 0!==n;(t=t[e])&amp;&amp;9!==t.nodeType;)if(1===t.nodeType){if(o&amp;&amp;S(t).is(n))break;i.push(t)}return i},C=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&amp;&amp;t!==e&amp;&amp;n.push(t);return n},$=S.expr.match.needsContext;function E(t,e){return t.nodeName&amp;&amp;t.nodeName.toLowerCase()===e.toLowerCase()}var P=/^&lt;([a-z][^\/\0&gt;:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?&gt;(?:&lt;\/\1&gt;|)$/i,k=/^.[^:#\[\.,]*$/;function A(t,n,i){return S.isFunction(n)?S.grep(t,function(t,e){return!!n.call(t,e,t)!==i}):n.nodeType?S.grep(t,function(t){return t===n!==i}):"string"!=typeof n?S.grep(t,function(t){return-1&lt;o.call(n,t)!==i}):k.test(n)?S.filter(n,t,i):(n=S.filter(n,t),S.grep(t,function(t){return-1&lt;o.call(n,t)!==i&amp;&amp;1===t.nodeType}))}S.filter=function(t,e,n){var i=e[0];return n&amp;&amp;(t=":not("+t+")"),1===e.length&amp;&amp;1===i.nodeType?S.find.matchesSelector(i,t)?[i]:[]:S.find.matches(t,S.grep(e,function(t){return 1===t.nodeType}))},S.fn.extend({find:function(t){var e,n,i=this.length,o=this;if("string"!=typeof t)return this.pushStack(S(t).filter(function(){for(e=0;e&lt;i;e++)if(S.contains(o[e],this))return!0}));for(n=this.pushStack([]),e=0;e&lt;i;e++)S.find(t,o[e],n);return 1&lt;i?S.uniqueSort(n):n},filter:function(t){return this.pushStack(A(this,t||[],!1))},not:function(t){return this.pushStack(A(this,t||[],!0))},is:function(t){return!!A(this,"string"==typeof t&amp;&amp;$.test(t)?S(t):t||[],!1).length}});var D,L=/^(?:\s*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w-]+))$/;(S.fn.init=function(t,e,n){var i,o;if(!t)return this;if(n=n||D,"string"==typeof t){if(!(i="&lt;"===t[0]&amp;&amp;"&gt;"===t[t.length-1]&amp;&amp;3&lt;=t.length?[null,t,null]:L.exec(t))||!i[1]&amp;&amp;e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof S?e[0]:e,S.merge(this,S.parseHTML(i[1],e&amp;&amp;e.nodeType?e.ownerDocument||e:T,!0)),P.test(i[1])&amp;&amp;S.isPlainObject(e))for(i in e)S.isFunction(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return(o=T.getElementById(i[2]))&amp;&amp;(this[0]=o,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):S.isFunction(t)?void 0!==n.ready?n.ready(t):t(S):S.makeArray(t,this)}).prototype=S.fn,D=S(T);var j=/^(?:parents|prev(?:Until|All))/,M={children:!0,contents:!0,next:!0,prev:!0};function N(t,e){for(;(t=t[e])&amp;&amp;1!==t.nodeType;);return t}S.fn.extend({has:function(t){var e=S(t,this),n=e.length;return this.filter(function(){for(var t=0;t&lt;n;t++)if(S.contains(this,e[t]))return!0})},closest:function(t,e){var n,i=0,o=this.length,s=[],r="string"!=typeof t&amp;&amp;S(t);if(!$.test(t))for(;i&lt;o;i++)for(n=this[i];n&amp;&amp;n!==e;n=n.parentNode)if(n.nodeType&lt;11&amp;&amp;(r?-1&lt;r.index(n):1===n.nodeType&amp;&amp;S.find.matchesSelector(n,t))){s.push(n);break}return this.pushStack(1&lt;s.length?S.uniqueSort(s):s)},index:function(t){return t?"string"==typeof t?o.call(S(t),this[0]):o.call(this,t.jquery?t[0]:t):this[0]&amp;&amp;this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),S.each({parent:function(t){var e=t.parentNode;return e&amp;&amp;11!==e.nodeType?e:null},parents:function(t){return w(t,"parentNode")},parentsUntil:function(t,e,n){return w(t,"parentNode",n)},next:function(t){return N(t,"nextSibling")},prev:function(t){return N(t,"previousSibling")},nextAll:function(t){return w(t,"nextSibling")},prevAll:function(t){return w(t,"previousSibling")},nextUntil:function(t,e,n){return w(t,"nextSibling",n)},prevUntil:function(t,e,n){return w(t,"previousSibling",n)},siblings:function(t){return C((t.parentNode||{}).firstChild,t)},children:function(t){return C(t.firstChild)},contents:function(t){return E(t,"iframe")?t.contentDocument:(E(t,"template")&amp;&amp;(t=t.content||t),S.merge([],t.childNodes))}},function(i,o){S.fn[i]=function(t,e){var n=S.map(this,o,t);return"Until"!==i.slice(-5)&amp;&amp;(e=t),e&amp;&amp;"string"==typeof e&amp;&amp;(n=S.filter(e,n)),1&lt;this.length&amp;&amp;(M[i]||S.uniqueSort(n),j.test(i)&amp;&amp;n.reverse()),this.pushStack(n)}});var F=/[^\x20\t\r\n\f]+/g;function I(t){return t}function q(t){throw t}function O(t,e,n,i){var o;try{t&amp;&amp;S.isFunction(o=t.promise)?o.call(t).done(e).fail(n):t&amp;&amp;S.isFunction(o=t.then)?o.call(t,e,n):e.apply(void 0,[t].slice(i))}catch(t){n.apply(void 0,[t])}}S.Callbacks=function(i){var t,n;i="string"==typeof i?(t=i,n={},S.each(t.match(F)||[],function(t,e){n[e]=!0}),n):S.extend({},i);var o,e,s,r,a=[],l=[],c=-1,u=function(){for(r=r||i.once,s=o=!0;l.length;c=-1)for(e=l.shift();++c&lt;a.length;)!1===a[c].apply(e[0],e[1])&amp;&amp;i.stopOnFalse&amp;&amp;(c=a.length,e=!1);i.memory||(e=!1),o=!1,r&amp;&amp;(a=e?[]:"")},h={add:function(){return a&amp;&amp;(e&amp;&amp;!o&amp;&amp;(c=a.length-1,l.push(e)),function n(t){S.each(t,function(t,e){S.isFunction(e)?i.unique&amp;&amp;h.has(e)||a.push(e):e&amp;&amp;e.length&amp;&amp;"string"!==S.type(e)&amp;&amp;n(e)})}(arguments),e&amp;&amp;!o&amp;&amp;u()),this},remove:function(){return S.each(arguments,function(t,e){for(var n;-1&lt;(n=S.inArray(e,a,n));)a.splice(n,1),n&lt;=c&amp;&amp;c--}),this},has:function(t){return t?-1&lt;S.inArray(t,a):0&lt;a.length},empty:function(){return a&amp;&amp;(a=[]),this},disable:function(){return r=l=[],a=e="",this},disabled:function(){return!a},lock:function(){return r=l=[],e||o||(a=e=""),this},locked:function(){return!!r},fireWith:function(t,e){return r||(e=[t,(e=e||[]).slice?e.slice():e],l.push(e),o||u()),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!s}};return h},S.extend({Deferred:function(t){var s=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],o="pending",r={state:function(){return o},always:function(){return a.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var o=arguments;return S.Deferred(function(i){S.each(s,function(t,e){var n=S.isFunction(o[e[4]])&amp;&amp;o[e[4]];a[e[1]](function(){var t=n&amp;&amp;n.apply(this,arguments);t&amp;&amp;S.isFunction(t.promise)?t.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[e[0]+"With"](this,n?[t]:arguments)})}),o=null}).promise()},then:function(e,n,i){var l=0;function c(o,s,r,a){return function(){var n=this,i=arguments,t=function(){var t,e;if(!(o&lt;l)){if((t=r.apply(n,i))===s.promise())throw new TypeError("Thenable self-resolution");e=t&amp;&amp;("object"==typeof t||"function"==typeof t)&amp;&amp;t.then,S.isFunction(e)?a?e.call(t,c(l,s,I,a),c(l,s,q,a)):(l++,e.call(t,c(l,s,I,a),c(l,s,q,a),c(l,s,I,s.notifyWith))):(r!==I&amp;&amp;(n=void 0,i=[t]),(a||s.resolveWith)(n,i))}},e=a?t:function(){try{t()}catch(t){S.Deferred.exceptionHook&amp;&amp;S.Deferred.exceptionHook(t,e.stackTrace),l&lt;=o+1&amp;&amp;(r!==q&amp;&amp;(n=void 0,i=[t]),s.rejectWith(n,i))}};o?e():(S.Deferred.getStackHook&amp;&amp;(e.stackTrace=S.Deferred.getStackHook()),_.setTimeout(e))}}return S.Deferred(function(t){s[0][3].add(c(0,t,S.isFunction(i)?i:I,t.notifyWith)),s[1][3].add(c(0,t,S.isFunction(e)?e:I)),s[2][3].add(c(0,t,S.isFunction(n)?n:q))}).promise()},promise:function(t){return null!=t?S.extend(t,r):r}},a={};return S.each(s,function(t,e){var n=e[2],i=e[5];r[e[1]]=n.add,i&amp;&amp;n.add(function(){o=i},s[3-t][2].disable,s[0][2].lock),n.add(e[3].fire),a[e[0]]=function(){return a[e[0]+"With"](this===a?void 0:this,arguments),this},a[e[0]+"With"]=n.fireWith}),r.promise(a),t&amp;&amp;t.call(a,a),a},when:function(t){var n=arguments.length,e=n,i=Array(e),o=a.call(arguments),s=S.Deferred(),r=function(e){return function(t){i[e]=this,o[e]=1&lt;arguments.length?a.call(arguments):t,--n||s.resolveWith(i,o)}};if(n&lt;=1&amp;&amp;(O(t,s.done(r(e)).resolve,s.reject,!n),"pending"===s.state()||S.isFunction(o[e]&amp;&amp;o[e].then)))return s.then();for(;e--;)O(o[e],r(e),s.reject);return s.promise()}});var z=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(t,e){_.console&amp;&amp;_.console.warn&amp;&amp;t&amp;&amp;z.test(t.name)&amp;&amp;_.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},S.readyException=function(t){_.setTimeout(function(){throw t})};var H=S.Deferred();function R(){T.removeEventListener("DOMContentLoaded",R),_.removeEventListener("load",R),S.ready()}S.fn.ready=function(t){return H.then(t).catch(function(t){S.readyException(t)}),this},S.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--S.readyWait:S.isReady)||((S.isReady=!0)!==t&amp;&amp;0&lt;--S.readyWait||H.resolveWith(T,[S]))}}),S.ready.then=H.then,"complete"===T.readyState||"loading"!==T.readyState&amp;&amp;!T.documentElement.doScroll?_.setTimeout(S.ready):(T.addEventListener("DOMContentLoaded",R),_.addEventListener("load",R));var B=function(t,e,n,i,o,s,r){var a=0,l=t.length,c=null==n;if("object"===S.type(n))for(a in o=!0,n)B(t,e,a,n[a],!0,s,r);else if(void 0!==i&amp;&amp;(o=!0,S.isFunction(i)||(r=!0),c&amp;&amp;(r?(e.call(t,i),e=null):(c=e,e=function(t,e,n){return c.call(S(t),n)})),e))for(;a&lt;l;a++)e(t[a],n,r?i:i.call(t[a],a,e(t[a],n)));return o?t:c?e.call(t):l?e(t[0],n):s},W=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};function X(){this.expando=S.expando+X.uid++}X.uid=1,X.prototype={cache:function(t){var e=t[this.expando];return e||(e={},W(t)&amp;&amp;(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,n){var i,o=this.cache(t);if("string"==typeof e)o[S.camelCase(e)]=n;else for(i in e)o[S.camelCase(i)]=e[i];return o},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&amp;&amp;t[this.expando][S.camelCase(e)]},access:function(t,e,n){return void 0===e||e&amp;&amp;"string"==typeof e&amp;&amp;void 0===n?this.get(t,e):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i=t[this.expando];if(void 0!==i){if(void 0!==e){Array.isArray(e)?e=e.map(S.camelCase):e=(e=S.camelCase(e))in i?[e]:e.match(F)||[],n=e.length;for(;n--;)delete i[e[n]]}(void 0===e||S.isEmptyObject(i))&amp;&amp;(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&amp;&amp;!S.isEmptyObject(e)}};var Y=new X,U=new X,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function V(t,e,n){var i,o;if(void 0===n&amp;&amp;1===t.nodeType)if(i="data-"+e.replace(Q,"-$&amp;").toLowerCase(),"string"==typeof(n=t.getAttribute(i))){try{n="true"===(o=n)||"false"!==o&amp;&amp;("null"===o?null:o===+o+""?+o:Z.test(o)?JSON.parse(o):o)}catch(t){}U.set(t,e,n)}else n=void 0;return n}S.extend({hasData:function(t){return U.hasData(t)||Y.hasData(t)},data:function(t,e,n){return U.access(t,e,n)},removeData:function(t,e){U.remove(t,e)},_data:function(t,e,n){return Y.access(t,e,n)},_removeData:function(t,e){Y.remove(t,e)}}),S.fn.extend({data:function(n,t){var e,i,o,s=this[0],r=s&amp;&amp;s.attributes;if(void 0===n){if(this.length&amp;&amp;(o=U.get(s),1===s.nodeType&amp;&amp;!Y.get(s,"hasDataAttrs"))){for(e=r.length;e--;)r[e]&amp;&amp;(0===(i=r[e].name).indexOf("data-")&amp;&amp;(i=S.camelCase(i.slice(5)),V(s,i,o[i])));Y.set(s,"hasDataAttrs",!0)}return o}return"object"==typeof n?this.each(function(){U.set(this,n)}):B(this,function(t){var e;if(s&amp;&amp;void 0===t){if(void 0!==(e=U.get(s,n)))return e;if(void 0!==(e=V(s,n)))return e}else this.each(function(){U.set(this,n,t)})},null,t,1&lt;arguments.length,null,!0)},removeData:function(t){return this.each(function(){U.remove(this,t)})}}),S.extend({queue:function(t,e,n){var i;if(t)return e=(e||"fx")+"queue",i=Y.get(t,e),n&amp;&amp;(!i||Array.isArray(n)?i=Y.access(t,e,S.makeArray(n)):i.push(n)),i||[]},dequeue:function(t,e){e=e||"fx";var n=S.queue(t,e),i=n.length,o=n.shift(),s=S._queueHooks(t,e);"inprogress"===o&amp;&amp;(o=n.shift(),i--),o&amp;&amp;("fx"===e&amp;&amp;n.unshift("inprogress"),delete s.stop,o.call(t,function(){S.dequeue(t,e)},s)),!i&amp;&amp;s&amp;&amp;s.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Y.get(t,n)||Y.access(t,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(t,[e+"queue",n])})})}}),S.fn.extend({queue:function(e,n){var t=2;return"string"!=typeof e&amp;&amp;(n=e,e="fx",t--),arguments.length&lt;t?S.queue(this[0],e):void 0===n?this:this.each(function(){var t=S.queue(this,e,n);S._queueHooks(this,e),"fx"===e&amp;&amp;"inprogress"!==t[0]&amp;&amp;S.dequeue(this,e)})},dequeue:function(t){return this.each(function(){S.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,i=1,o=S.Deferred(),s=this,r=this.length,a=function(){--i||o.resolveWith(s,[s])};for("string"!=typeof t&amp;&amp;(e=t,t=void 0),t=t||"fx";r--;)(n=Y.get(s[r],t+"queueHooks"))&amp;&amp;n.empty&amp;&amp;(i++,n.empty.add(a));return a(),o.promise(e)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,K=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),J=["Top","Right","Bottom","Left"],tt=function(t,e){return"none"===(t=e||t).style.display||""===t.style.display&amp;&amp;S.contains(t.ownerDocument,t)&amp;&amp;"none"===S.css(t,"display")},et=function(t,e,n,i){var o,s,r={};for(s in e)r[s]=t.style[s],t.style[s]=e[s];for(s in o=n.apply(t,i||[]),e)t.style[s]=r[s];return o};function nt(t,e,n,i){var o,s=1,r=20,a=i?function(){return i.cur()}:function(){return S.css(t,e,"")},l=a(),c=n&amp;&amp;n[3]||(S.cssNumber[e]?"":"px"),u=(S.cssNumber[e]||"px"!==c&amp;&amp;+l)&amp;&amp;K.exec(S.css(t,e));if(u&amp;&amp;u[3]!==c)for(c=c||u[3],n=n||[],u=+l||1;u/=s=s||".5",S.style(t,e,u+c),s!==(s=a()/l)&amp;&amp;1!==s&amp;&amp;--r;);return n&amp;&amp;(u=+u||+l||0,o=n[1]?u+(n[1]+1)*n[2]:+n[2],i&amp;&amp;(i.unit=c,i.start=u,i.end=o)),o}var it={};function ot(t,e){for(var n,i,o=[],s=0,r=t.length;s&lt;r;s++)(i=t[s]).style&amp;&amp;(n=i.style.display,e?("none"===n&amp;&amp;(o[s]=Y.get(i,"display")||null,o[s]||(i.style.display="")),""===i.style.display&amp;&amp;tt(i)&amp;&amp;(o[s]=(h=c=l=void 0,c=(a=i).ownerDocument,u=a.nodeName,(h=it[u])||(l=c.body.appendChild(c.createElement(u)),h=S.css(l,"display"),l.parentNode.removeChild(l),"none"===h&amp;&amp;(h="block"),it[u]=h)))):"none"!==n&amp;&amp;(o[s]="none",Y.set(i,"display",n)));var a,l,c,u,h;for(s=0;s&lt;r;s++)null!=o[s]&amp;&amp;(t[s].style.display=o[s]);return t}S.fn.extend({show:function(){return ot(this,!0)},hide:function(){return ot(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){tt(this)?S(this).show():S(this).hide()})}});var st=/^(?:checkbox|radio)$/i,rt=/&lt;([a-z][^\/\0&gt;\x20\t\r\n\f]+)/i,at=/^$|\/(?:java|ecma)script/i,lt={option:[1,"&lt;select multiple='multiple'&gt;","&lt;/select&gt;"],thead:[1,"&lt;table&gt;","&lt;/table&gt;"],col:[2,"&lt;table&gt;&lt;colgroup&gt;","&lt;/colgroup&gt;&lt;/table&gt;"],tr:[2,"&lt;table&gt;&lt;tbody&gt;","&lt;/tbody&gt;&lt;/table&gt;"],td:[3,"&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;","&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;"],_default:[0,"",""]};function ct(t,e){var n;return n=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&amp;&amp;E(t,e)?S.merge([t],n):n}function ut(t,e){for(var n=0,i=t.length;n&lt;i;n++)Y.set(t[n],"globalEval",!e||Y.get(e[n],"globalEval"))}lt.optgroup=lt.option,lt.tbody=lt.tfoot=lt.colgroup=lt.caption=lt.thead,lt.th=lt.td;var ht,dt,pt=/&lt;|&amp;#?\w+;/;function ft(t,e,n,i,o){for(var s,r,a,l,c,u,h=e.createDocumentFragment(),d=[],p=0,f=t.length;p&lt;f;p++)if((s=t[p])||0===s)if("object"===S.type(s))S.merge(d,s.nodeType?[s]:s);else if(pt.test(s)){for(r=r||h.appendChild(e.createElement("div")),a=(rt.exec(s)||["",""])[1].toLowerCase(),l=lt[a]||lt._default,r.innerHTML=l[1]+S.htmlPrefilter(s)+l[2],u=l[0];u--;)r=r.lastChild;S.merge(d,r.childNodes),(r=h.firstChild).textContent=""}else d.push(e.createTextNode(s));for(h.textContent="",p=0;s=d[p++];)if(i&amp;&amp;-1&lt;S.inArray(s,i))o&amp;&amp;o.push(s);else if(c=S.contains(s.ownerDocument,s),r=ct(h.appendChild(s),"script"),c&amp;&amp;ut(r),n)for(u=0;s=r[u++];)at.test(s.type||"")&amp;&amp;n.push(s);return h}ht=T.createDocumentFragment().appendChild(T.createElement("div")),(dt=T.createElement("input")).setAttribute("type","radio"),dt.setAttribute("checked","checked"),dt.setAttribute("name","t"),ht.appendChild(dt),m.checkClone=ht.cloneNode(!0).cloneNode(!0).lastChild.checked,ht.innerHTML="&lt;textarea&gt;x&lt;/textarea&gt;",m.noCloneChecked=!!ht.cloneNode(!0).lastChild.defaultValue;var gt=T.documentElement,mt=/^key/,vt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,yt=/^([^.]*)(?:\.(.+)|)/;function bt(){return!0}function xt(){return!1}function wt(){try{return T.activeElement}catch(t){}}function Ct(t,e,n,i,o,s){var r,a;if("object"==typeof e){for(a in"string"!=typeof n&amp;&amp;(i=i||n,n=void 0),e)Ct(t,a,n,i,e[a],s);return t}if(null==i&amp;&amp;null==o?(o=n,i=n=void 0):null==o&amp;&amp;("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),!1===o)o=xt;else if(!o)return t;return 1===s&amp;&amp;(r=o,(o=function(t){return S().off(t),r.apply(this,arguments)}).guid=r.guid||(r.guid=S.guid++)),t.each(function(){S.event.add(this,e,o,i,n)})}S.event={global:{},add:function(e,t,n,i,o){var s,r,a,l,c,u,h,d,p,f,g,m=Y.get(e);if(m)for(n.handler&amp;&amp;(n=(s=n).handler,o=s.selector),o&amp;&amp;S.find.matchesSelector(gt,o),n.guid||(n.guid=S.guid++),(l=m.events)||(l=m.events={}),(r=m.handle)||(r=m.handle=function(t){return void 0!==S&amp;&amp;S.event.triggered!==t.type?S.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(F)||[""]).length;c--;)p=g=(a=yt.exec(t[c])||[])[1],f=(a[2]||"").split(".").sort(),p&amp;&amp;(h=S.event.special[p]||{},p=(o?h.delegateType:h.bindType)||p,h=S.event.special[p]||{},u=S.extend({type:p,origType:g,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&amp;&amp;S.expr.match.needsContext.test(o),namespace:f.join(".")},s),(d=l[p])||((d=l[p]=[]).delegateCount=0,h.setup&amp;&amp;!1!==h.setup.call(e,i,f,r)||e.addEventListener&amp;&amp;e.addEventListener(p,r)),h.add&amp;&amp;(h.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),o?d.splice(d.delegateCount++,0,u):d.push(u),S.event.global[p]=!0)},remove:function(t,e,n,i,o){var s,r,a,l,c,u,h,d,p,f,g,m=Y.hasData(t)&amp;&amp;Y.get(t);if(m&amp;&amp;(l=m.events)){for(c=(e=(e||"").match(F)||[""]).length;c--;)if(p=g=(a=yt.exec(e[c])||[])[1],f=(a[2]||"").split(".").sort(),p){for(h=S.event.special[p]||{},d=l[p=(i?h.delegateType:h.bindType)||p]||[],a=a[2]&amp;&amp;new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),r=s=d.length;s--;)u=d[s],!o&amp;&amp;g!==u.origType||n&amp;&amp;n.guid!==u.guid||a&amp;&amp;!a.test(u.namespace)||i&amp;&amp;i!==u.selector&amp;&amp;("**"!==i||!u.selector)||(d.splice(s,1),u.selector&amp;&amp;d.delegateCount--,h.remove&amp;&amp;h.remove.call(t,u));r&amp;&amp;!d.length&amp;&amp;(h.teardown&amp;&amp;!1!==h.teardown.call(t,f,m.handle)||S.removeEvent(t,p,m.handle),delete l[p])}else for(p in l)S.event.remove(t,p+e[c],n,i,!0);S.isEmptyObject(l)&amp;&amp;Y.remove(t,"handle events")}},dispatch:function(t){var e,n,i,o,s,r,a=S.event.fix(t),l=new Array(arguments.length),c=(Y.get(this,"events")||{})[a.type]||[],u=S.event.special[a.type]||{};for(l[0]=a,e=1;e&lt;arguments.length;e++)l[e]=arguments[e];if(a.delegateTarget=this,!u.preDispatch||!1!==u.preDispatch.call(this,a)){for(r=S.event.handlers.call(this,a,c),e=0;(o=r[e++])&amp;&amp;!a.isPropagationStopped();)for(a.currentTarget=o.elem,n=0;(s=o.handlers[n++])&amp;&amp;!a.isImmediatePropagationStopped();)a.rnamespace&amp;&amp;!a.rnamespace.test(s.namespace)||(a.handleObj=s,a.data=s.data,void 0!==(i=((S.event.special[s.origType]||{}).handle||s.handler).apply(o.elem,l))&amp;&amp;!1===(a.result=i)&amp;&amp;(a.preventDefault(),a.stopPropagation()));return u.postDispatch&amp;&amp;u.postDispatch.call(this,a),a.result}},handlers:function(t,e){var n,i,o,s,r,a=[],l=e.delegateCount,c=t.target;if(l&amp;&amp;c.nodeType&amp;&amp;!("click"===t.type&amp;&amp;1&lt;=t.button))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&amp;&amp;("click"!==t.type||!0!==c.disabled)){for(s=[],r={},n=0;n&lt;l;n++)void 0===r[o=(i=e[n]).selector+" "]&amp;&amp;(r[o]=i.needsContext?-1&lt;S(o,this).index(c):S.find(o,this,null,[c]).length),r[o]&amp;&amp;s.push(i);s.length&amp;&amp;a.push({elem:c,handlers:s})}return c=this,l&lt;e.length&amp;&amp;a.push({elem:c,handlers:e.slice(l)}),a},addProp:function(e,t){Object.defineProperty(S.Event.prototype,e,{enumerable:!0,configurable:!0,get:S.isFunction(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(t){return t[S.expando]?t:new S.Event(t)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wt()&amp;&amp;this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wt()&amp;&amp;this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&amp;&amp;this.click&amp;&amp;E(this,"input"))return this.click(),!1},_default:function(t){return E(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&amp;&amp;t.originalEvent&amp;&amp;(t.originalEvent.returnValue=t.result)}}}},S.removeEvent=function(t,e,n){t.removeEventListener&amp;&amp;t.removeEventListener(e,n)},S.Event=function(t,e){return this instanceof S.Event?(t&amp;&amp;t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&amp;&amp;!1===t.returnValue?bt:xt,this.target=t.target&amp;&amp;3===t.target.nodeType?t.target.parentNode:t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget):this.type=t,e&amp;&amp;S.extend(this,e),this.timeStamp=t&amp;&amp;t.timeStamp||S.now(),void(this[S.expando]=!0)):new S.Event(t,e)},S.Event.prototype={constructor:S.Event,isDefaultPrevented:xt,isPropagationStopped:xt,isImmediatePropagationStopped:xt,isSimulated:!1,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=bt,t&amp;&amp;!this.isSimulated&amp;&amp;t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=bt,t&amp;&amp;!this.isSimulated&amp;&amp;t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=bt,t&amp;&amp;!this.isSimulated&amp;&amp;t.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(t){var e=t.button;return null==t.which&amp;&amp;mt.test(t.type)?null!=t.charCode?t.charCode:t.keyCode:!t.which&amp;&amp;void 0!==e&amp;&amp;vt.test(t.type)?1&amp;e?1:2&amp;e?3:4&amp;e?2:0:t.which}},S.event.addProp),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,o){S.event.special[t]={delegateType:o,bindType:o,handle:function(t){var e,n=t.relatedTarget,i=t.handleObj;return n&amp;&amp;(n===this||S.contains(this,n))||(t.type=i.origType,e=i.handler.apply(this,arguments),t.type=o),e}}}),S.fn.extend({on:function(t,e,n,i){return Ct(this,t,e,n,i)},one:function(t,e,n,i){return Ct(this,t,e,n,i,1)},off:function(t,e,n){var i,o;if(t&amp;&amp;t.preventDefault&amp;&amp;t.handleObj)return i=t.handleObj,S(t.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof t){for(o in t)this.off(o,e,t[o]);return this}return!1!==e&amp;&amp;"function"!=typeof e||(n=e,e=void 0),!1===n&amp;&amp;(n=xt),this.each(function(){S.event.remove(this,t,n,e)})}});var _t=/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0&gt;\x20\t\r\n\f]*)[^&gt;]*)\/&gt;/gi,Tt=/&lt;script|&lt;style|&lt;link/i,St=/checked\s*(?:[^=]|=\s*.checked.)/i,$t=/^true\/(.*)/,Et=/^\s*&lt;!(?:\[CDATA\[|--)|(?:\]\]|--)&gt;\s*$/g;function Pt(t,e){return E(t,"table")&amp;&amp;E(11!==e.nodeType?e:e.firstChild,"tr")&amp;&amp;S("&gt;tbody",t)[0]||t}function kt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function At(t){var e=$t.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function Dt(t,e){var n,i,o,s,r,a,l,c;if(1===e.nodeType){if(Y.hasData(t)&amp;&amp;(s=Y.access(t),r=Y.set(e,s),c=s.events))for(o in delete r.handle,r.events={},c)for(n=0,i=c[o].length;n&lt;i;n++)S.event.add(e,o,c[o][n]);U.hasData(t)&amp;&amp;(a=U.access(t),l=S.extend({},a),U.set(e,l))}}function Lt(n,i,o,s){i=g.apply([],i);var t,e,r,a,l,c,u=0,h=n.length,d=h-1,p=i[0],f=S.isFunction(p);if(f||1&lt;h&amp;&amp;"string"==typeof p&amp;&amp;!m.checkClone&amp;&amp;St.test(p))return n.each(function(t){var e=n.eq(t);f&amp;&amp;(i[0]=p.call(this,t,e.html())),Lt(e,i,o,s)});if(h&amp;&amp;(e=(t=ft(i,n[0].ownerDocument,!1,n,s)).firstChild,1===t.childNodes.length&amp;&amp;(t=e),e||s)){for(a=(r=S.map(ct(t,"script"),kt)).length;u&lt;h;u++)l=t,u!==d&amp;&amp;(l=S.clone(l,!0,!0),a&amp;&amp;S.merge(r,ct(l,"script"))),o.call(n[u],l,u);if(a)for(c=r[r.length-1].ownerDocument,S.map(r,At),u=0;u&lt;a;u++)l=r[u],at.test(l.type||"")&amp;&amp;!Y.access(l,"globalEval")&amp;&amp;S.contains(c,l)&amp;&amp;(l.src?S._evalUrl&amp;&amp;S._evalUrl(l.src):v(l.textContent.replace(Et,""),c))}return n}function jt(t,e,n){for(var i,o=e?S.filter(e,t):t,s=0;null!=(i=o[s]);s++)n||1!==i.nodeType||S.cleanData(ct(i)),i.parentNode&amp;&amp;(n&amp;&amp;S.contains(i.ownerDocument,i)&amp;&amp;ut(ct(i,"script")),i.parentNode.removeChild(i));return t}S.extend({htmlPrefilter:function(t){return t.replace(_t,"&lt;$1&gt;&lt;/$2&gt;")},clone:function(t,e,n){var i,o,s,r,a,l,c,u=t.cloneNode(!0),h=S.contains(t.ownerDocument,t);if(!(m.noCloneChecked||1!==t.nodeType&amp;&amp;11!==t.nodeType||S.isXMLDoc(t)))for(r=ct(u),i=0,o=(s=ct(t)).length;i&lt;o;i++)a=s[i],l=r[i],void 0,"input"===(c=l.nodeName.toLowerCase())&amp;&amp;st.test(a.type)?l.checked=a.checked:"input"!==c&amp;&amp;"textarea"!==c||(l.defaultValue=a.defaultValue);if(e)if(n)for(s=s||ct(t),r=r||ct(u),i=0,o=s.length;i&lt;o;i++)Dt(s[i],r[i]);else Dt(t,u);return 0&lt;(r=ct(u,"script")).length&amp;&amp;ut(r,!h&amp;&amp;ct(t,"script")),u},cleanData:function(t){for(var e,n,i,o=S.event.special,s=0;void 0!==(n=t[s]);s++)if(W(n)){if(e=n[Y.expando]){if(e.events)for(i in e.events)o[i]?S.event.remove(n,i):S.removeEvent(n,i,e.handle);n[Y.expando]=void 0}n[U.expando]&amp;&amp;(n[U.expando]=void 0)}}}),S.fn.extend({detach:function(t){return jt(this,t,!0)},remove:function(t){return jt(this,t)},text:function(t){return B(this,function(t){return void 0===t?S.text(this):this.empty().each(function(){1!==this.nodeType&amp;&amp;11!==this.nodeType&amp;&amp;9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return Lt(this,arguments,function(t){1!==this.nodeType&amp;&amp;11!==this.nodeType&amp;&amp;9!==this.nodeType||Pt(this,t).appendChild(t)})},prepend:function(){return Lt(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=Pt(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return Lt(this,arguments,function(t){this.parentNode&amp;&amp;this.parentNode.insertBefore(t,this)})},after:function(){return Lt(this,arguments,function(t){this.parentNode&amp;&amp;this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&amp;&amp;(S.cleanData(ct(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&amp;&amp;t,e=null==e?t:e,this.map(function(){return S.clone(this,t,e)})},html:function(t){return B(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&amp;&amp;1===e.nodeType)return e.innerHTML;if("string"==typeof t&amp;&amp;!Tt.test(t)&amp;&amp;!lt[(rt.exec(t)||["",""])[1].toLowerCase()]){t=S.htmlPrefilter(t);try{for(;n&lt;i;n++)1===(e=this[n]||{}).nodeType&amp;&amp;(S.cleanData(ct(e,!1)),e.innerHTML=t);e=0}catch(t){}}e&amp;&amp;this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var n=[];return Lt(this,arguments,function(t){var e=this.parentNode;S.inArray(this,n)&lt;0&amp;&amp;(S.cleanData(ct(this)),e&amp;&amp;e.replaceChild(t,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,r){S.fn[t]=function(t){for(var e,n=[],i=S(t),o=i.length-1,s=0;s&lt;=o;s++)e=s===o?this:this.clone(!0),S(i[s])[r](e),l.apply(n,e.get());return this.pushStack(n)}});var Mt=/^margin/,Nt=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),Ft=function(t){var e=t.ownerDocument.defaultView;return e&amp;&amp;e.opener||(e=_),e.getComputedStyle(t)};function It(t,e,n){var i,o,s,r,a=t.style;return(n=n||Ft(t))&amp;&amp;(""!==(r=n.getPropertyValue(e)||n[e])||S.contains(t.ownerDocument,t)||(r=S.style(t,e)),!m.pixelMarginRight()&amp;&amp;Nt.test(r)&amp;&amp;Mt.test(e)&amp;&amp;(i=a.width,o=a.minWidth,s=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=n.width,a.width=i,a.minWidth=o,a.maxWidth=s)),void 0!==r?r+"":r}function qt(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}!function(){function t(){if(r){r.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",r.innerHTML="",gt.appendChild(s);var t=_.getComputedStyle(r);e="1%"!==t.top,o="2px"===t.marginLeft,n="4px"===t.width,r.style.marginRight="50%",i="4px"===t.marginRight,gt.removeChild(s),r=null}}var e,n,i,o,s=T.createElement("div"),r=T.createElement("div");r.style&amp;&amp;(r.style.backgroundClip="content-box",r.cloneNode(!0).style.backgroundClip="",m.clearCloneStyle="content-box"===r.style.backgroundClip,s.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",s.appendChild(r),S.extend(m,{pixelPosition:function(){return t(),e},boxSizingReliable:function(){return t(),n},pixelMarginRight:function(){return t(),i},reliableMarginLeft:function(){return t(),o}}))}();var Ot=/^(none|table(?!-c[ea]).+)/,zt=/^--/,Ht={position:"absolute",visibility:"hidden",display:"block"},Rt={letterSpacing:"0",fontWeight:"400"},Bt=["Webkit","Moz","ms"],Wt=T.createElement("div").style;function Xt(t){var e=S.cssProps[t];return e||(e=S.cssProps[t]=function(t){if(t in Wt)return t;for(var e=t[0].toUpperCase()+t.slice(1),n=Bt.length;n--;)if((t=Bt[n]+e)in Wt)return t}(t)||t),e}function Yt(t,e,n){var i=K.exec(e);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):e}function Ut(t,e,n,i,o){var s,r=0;for(s=n===(i?"border":"content")?4:"width"===e?1:0;s&lt;4;s+=2)"margin"===n&amp;&amp;(r+=S.css(t,n+J[s],!0,o)),i?("content"===n&amp;&amp;(r-=S.css(t,"padding"+J[s],!0,o)),"margin"!==n&amp;&amp;(r-=S.css(t,"border"+J[s]+"Width",!0,o))):(r+=S.css(t,"padding"+J[s],!0,o),"padding"!==n&amp;&amp;(r+=S.css(t,"border"+J[s]+"Width",!0,o)));return r}function Zt(t,e,n){var i,o=Ft(t),s=It(t,e,o),r="border-box"===S.css(t,"boxSizing",!1,o);return Nt.test(s)?s:(i=r&amp;&amp;(m.boxSizingReliable()||s===t.style[e]),"auto"===s&amp;&amp;(s=t["offset"+e[0].toUpperCase()+e.slice(1)]),(s=parseFloat(s)||0)+Ut(t,e,n||(r?"border":"content"),i,o)+"px")}function Qt(t,e,n,i,o){return new Qt.prototype.init(t,e,n,i,o)}S.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=It(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(t,e,n,i){if(t&amp;&amp;3!==t.nodeType&amp;&amp;8!==t.nodeType&amp;&amp;t.style){var o,s,r,a=S.camelCase(e),l=zt.test(e),c=t.style;return l||(e=Xt(a)),r=S.cssHooks[e]||S.cssHooks[a],void 0===n?r&amp;&amp;"get"in r&amp;&amp;void 0!==(o=r.get(t,!1,i))?o:c[e]:("string"===(s=typeof n)&amp;&amp;(o=K.exec(n))&amp;&amp;o[1]&amp;&amp;(n=nt(t,e,o),s="number"),void(null!=n&amp;&amp;n==n&amp;&amp;("number"===s&amp;&amp;(n+=o&amp;&amp;o[3]||(S.cssNumber[a]?"":"px")),m.clearCloneStyle||""!==n||0!==e.indexOf("background")||(c[e]="inherit"),r&amp;&amp;"set"in r&amp;&amp;void 0===(n=r.set(t,n,i))||(l?c.setProperty(e,n):c[e]=n))))}},css:function(t,e,n,i){var o,s,r,a=S.camelCase(e);return zt.test(e)||(e=Xt(a)),(r=S.cssHooks[e]||S.cssHooks[a])&amp;&amp;"get"in r&amp;&amp;(o=r.get(t,!0,n)),void 0===o&amp;&amp;(o=It(t,e,i)),"normal"===o&amp;&amp;e in Rt&amp;&amp;(o=Rt[e]),""===n||n?(s=parseFloat(o),!0===n||isFinite(s)?s||0:o):o}}),S.each(["height","width"],function(t,r){S.cssHooks[r]={get:function(t,e,n){if(e)return!Ot.test(S.css(t,"display"))||t.getClientRects().length&amp;&amp;t.getBoundingClientRect().width?Zt(t,r,n):et(t,Ht,function(){return Zt(t,r,n)})},set:function(t,e,n){var i,o=n&amp;&amp;Ft(t),s=n&amp;&amp;Ut(t,r,n,"border-box"===S.css(t,"boxSizing",!1,o),o);return s&amp;&amp;(i=K.exec(e))&amp;&amp;"px"!==(i[3]||"px")&amp;&amp;(t.style[r]=e,e=S.css(t,r)),Yt(0,e,s)}}}),S.cssHooks.marginLeft=qt(m.reliableMarginLeft,function(t,e){if(e)return(parseFloat(It(t,"marginLeft"))||t.getBoundingClientRect().left-et(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(o,s){S.cssHooks[o+s]={expand:function(t){for(var e=0,n={},i="string"==typeof t?t.split(" "):[t];e&lt;4;e++)n[o+J[e]+s]=i[e]||i[e-2]||i[0];return n}},Mt.test(o)||(S.cssHooks[o+s].set=Yt)}),S.fn.extend({css:function(t,e){return B(this,function(t,e,n){var i,o,s={},r=0;if(Array.isArray(e)){for(i=Ft(t),o=e.length;r&lt;o;r++)s[e[r]]=S.css(t,e[r],!1,i);return s}return void 0!==n?S.style(t,e,n):S.css(t,e)},t,e,1&lt;arguments.length)}}),((S.Tween=Qt).prototype={constructor:Qt,init:function(t,e,n,i,o,s){this.elem=t,this.prop=n,this.easing=o||S.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=s||(S.cssNumber[n]?"":"px")},cur:function(){var t=Qt.propHooks[this.prop];return t&amp;&amp;t.get?t.get(this):Qt.propHooks._default.get(this)},run:function(t){var e,n=Qt.propHooks[this.prop];return this.options.duration?this.pos=e=S.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&amp;&amp;this.options.step.call(this.elem,this.now,this),n&amp;&amp;n.set?n.set(this):Qt.propHooks._default.set(this),this}}).init.prototype=Qt.prototype,(Qt.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&amp;&amp;null==t.elem.style[t.prop]?t.elem[t.prop]:(e=S.css(t.elem,t.prop,""))&amp;&amp;"auto"!==e?e:0},set:function(t){S.fx.step[t.prop]?S.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[S.cssProps[t.prop]]&amp;&amp;!S.cssHooks[t.prop]?t.elem[t.prop]=t.now:S.style(t.elem,t.prop,t.now+t.unit)}}}).scrollTop=Qt.propHooks.scrollLeft={set:function(t){t.elem.nodeType&amp;&amp;t.elem.parentNode&amp;&amp;(t.elem[t.prop]=t.now)}},S.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},S.fx=Qt.prototype.init,S.fx.step={};var Vt,Gt,Kt,Jt,te=/^(?:toggle|show|hide)$/,ee=/queueHooks$/;function ne(){Gt&amp;&amp;(!1===T.hidden&amp;&amp;_.requestAnimationFrame?_.requestAnimationFrame(ne):_.setTimeout(ne,S.fx.interval),S.fx.tick())}function ie(){return _.setTimeout(function(){Vt=void 0}),Vt=S.now()}function oe(t,e){var n,i=0,o={height:t};for(e=e?1:0;i&lt;4;i+=2-e)o["margin"+(n=J[i])]=o["padding"+n]=t;return e&amp;&amp;(o.opacity=o.width=t),o}function se(t,e,n){for(var i,o=(re.tweeners[e]||[]).concat(re.tweeners["*"]),s=0,r=o.length;s&lt;r;s++)if(i=o[s].call(n,e,t))return i}function re(s,t,e){var n,r,i=0,o=re.prefilters.length,a=S.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var t=Vt||ie(),e=Math.max(0,c.startTime+c.duration-t),n=1-(e/c.duration||0),i=0,o=c.tweens.length;i&lt;o;i++)c.tweens[i].run(n);return a.notifyWith(s,[c,n,e]),n&lt;1&amp;&amp;o?e:(o||a.notifyWith(s,[c,1,0]),a.resolveWith(s,[c]),!1)},c=a.promise({elem:s,props:S.extend({},t),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},e),originalProperties:t,originalOptions:e,startTime:Vt||ie(),duration:e.duration,tweens:[],createTween:function(t,e){var n=S.Tween(s,c.opts,t,e,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(n),n},stop:function(t){var e=0,n=t?c.tweens.length:0;if(r)return this;for(r=!0;e&lt;n;e++)c.tweens[e].run(1);return t?(a.notifyWith(s,[c,1,0]),a.resolveWith(s,[c,t])):a.rejectWith(s,[c,t]),this}}),u=c.props;for(function(t,e){var n,i,o,s,r;for(n in t)if(o=e[i=S.camelCase(n)],s=t[n],Array.isArray(s)&amp;&amp;(o=s[1],s=t[n]=s[0]),n!==i&amp;&amp;(t[i]=s,delete t[n]),(r=S.cssHooks[i])&amp;&amp;"expand"in r)for(n in s=r.expand(s),delete t[i],s)n in t||(t[n]=s[n],e[n]=o);else e[i]=o}(u,c.opts.specialEasing);i&lt;o;i++)if(n=re.prefilters[i].call(c,s,u,c.opts))return S.isFunction(n.stop)&amp;&amp;(S._queueHooks(c.elem,c.opts.queue).stop=S.proxy(n.stop,n)),n;return S.map(u,se,c),S.isFunction(c.opts.start)&amp;&amp;c.opts.start.call(s,c),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always),S.fx.timer(S.extend(l,{elem:s,anim:c,queue:c.opts.queue})),c}S.Animation=S.extend(re,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return nt(n.elem,t,K.exec(e),n),n}]},tweener:function(t,e){S.isFunction(t)?(e=t,t=["*"]):t=t.match(F);for(var n,i=0,o=t.length;i&lt;o;i++)n=t[i],re.tweeners[n]=re.tweeners[n]||[],re.tweeners[n].unshift(e)},prefilters:[function(t,e,n){var i,o,s,r,a,l,c,u,h="width"in e||"height"in e,d=this,p={},f=t.style,g=t.nodeType&amp;&amp;tt(t),m=Y.get(t,"fxshow");for(i in n.queue||(null==(r=S._queueHooks(t,"fx")).unqueued&amp;&amp;(r.unqueued=0,a=r.empty.fire,r.empty.fire=function(){r.unqueued||a()}),r.unqueued++,d.always(function(){d.always(function(){r.unqueued--,S.queue(t,"fx").length||r.empty.fire()})})),e)if(o=e[i],te.test(o)){if(delete e[i],s=s||"toggle"===o,o===(g?"hide":"show")){if("show"!==o||!m||void 0===m[i])continue;g=!0}p[i]=m&amp;&amp;m[i]||S.style(t,i)}if((l=!S.isEmptyObject(e))||!S.isEmptyObject(p))for(i in h&amp;&amp;1===t.nodeType&amp;&amp;(n.overflow=[f.overflow,f.overflowX,f.overflowY],null==(c=m&amp;&amp;m.display)&amp;&amp;(c=Y.get(t,"display")),"none"===(u=S.css(t,"display"))&amp;&amp;(c?u=c:(ot([t],!0),c=t.style.display||c,u=S.css(t,"display"),ot([t]))),("inline"===u||"inline-block"===u&amp;&amp;null!=c)&amp;&amp;"none"===S.css(t,"float")&amp;&amp;(l||(d.done(function(){f.display=c}),null==c&amp;&amp;(u=f.display,c="none"===u?"":u)),f.display="inline-block")),n.overflow&amp;&amp;(f.overflow="hidden",d.always(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]})),l=!1,p)l||(m?"hidden"in m&amp;&amp;(g=m.hidden):m=Y.access(t,"fxshow",{display:c}),s&amp;&amp;(m.hidden=!g),g&amp;&amp;ot([t],!0),d.done(function(){for(i in g||ot([t]),Y.remove(t,"fxshow"),p)S.style(t,i,p[i])})),l=se(g?m[i]:0,i,d),i in m||(m[i]=l.start,g&amp;&amp;(l.end=l.start,l.start=0))}],prefilter:function(t,e){e?re.prefilters.unshift(t):re.prefilters.push(t)}}),S.speed=function(t,e,n){var i=t&amp;&amp;"object"==typeof t?S.extend({},t):{complete:n||!n&amp;&amp;e||S.isFunction(t)&amp;&amp;t,duration:t,easing:n&amp;&amp;e||e&amp;&amp;!S.isFunction(e)&amp;&amp;e};return S.fx.off?i.duration=0:"number"!=typeof i.duration&amp;&amp;(i.duration in S.fx.speeds?i.duration=S.fx.speeds[i.duration]:i.duration=S.fx.speeds._default),null!=i.queue&amp;&amp;!0!==i.queue||(i.queue="fx"),i.old=i.complete,i.complete=function(){S.isFunction(i.old)&amp;&amp;i.old.call(this),i.queue&amp;&amp;S.dequeue(this,i.queue)},i},S.fn.extend({fadeTo:function(t,e,n,i){return this.filter(tt).css("opacity",0).show().end().animate({opacity:e},t,n,i)},animate:function(e,t,n,i){var o=S.isEmptyObject(e),s=S.speed(t,n,i),r=function(){var t=re(this,S.extend({},e),s);(o||Y.get(this,"finish"))&amp;&amp;t.stop(!0)};return r.finish=r,o||!1===s.queue?this.each(r):this.queue(s.queue,r)},stop:function(o,t,s){var r=function(t){var e=t.stop;delete t.stop,e(s)};return"string"!=typeof o&amp;&amp;(s=t,t=o,o=void 0),t&amp;&amp;!1!==o&amp;&amp;this.queue(o||"fx",[]),this.each(function(){var t=!0,e=null!=o&amp;&amp;o+"queueHooks",n=S.timers,i=Y.get(this);if(e)i[e]&amp;&amp;i[e].stop&amp;&amp;r(i[e]);else for(e in i)i[e]&amp;&amp;i[e].stop&amp;&amp;ee.test(e)&amp;&amp;r(i[e]);for(e=n.length;e--;)n[e].elem!==this||null!=o&amp;&amp;n[e].queue!==o||(n[e].anim.stop(s),t=!1,n.splice(e,1));!t&amp;&amp;s||S.dequeue(this,o)})},finish:function(r){return!1!==r&amp;&amp;(r=r||"fx"),this.each(function(){var t,e=Y.get(this),n=e[r+"queue"],i=e[r+"queueHooks"],o=S.timers,s=n?n.length:0;for(e.finish=!0,S.queue(this,r,[]),i&amp;&amp;i.stop&amp;&amp;i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&amp;&amp;o[t].queue===r&amp;&amp;(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t&lt;s;t++)n[t]&amp;&amp;n[t].finish&amp;&amp;n[t].finish.call(this);delete e.finish})}}),S.each(["toggle","show","hide"],function(t,i){var o=S.fn[i];S.fn[i]=function(t,e,n){return null==t||"boolean"==typeof t?o.apply(this,arguments):this.animate(oe(i,!0),t,e,n)}}),S.each({slideDown:oe("show"),slideUp:oe("hide"),slideToggle:oe("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,i){S.fn[t]=function(t,e,n){return this.animate(i,t,e,n)}}),S.timers=[],S.fx.tick=function(){var t,e=0,n=S.timers;for(Vt=S.now();e&lt;n.length;e++)(t=n[e])()||n[e]!==t||n.splice(e--,1);n.length||S.fx.stop(),Vt=void 0},S.fx.timer=function(t){S.timers.push(t),S.fx.start()},S.fx.interval=13,S.fx.start=function(){Gt||(Gt=!0,ne())},S.fx.stop=function(){Gt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(i,t){return i=S.fx&amp;&amp;S.fx.speeds[i]||i,t=t||"fx",this.queue(t,function(t,e){var n=_.setTimeout(t,i);e.stop=function(){_.clearTimeout(n)}})},Kt=T.createElement("input"),Jt=T.createElement("select").appendChild(T.createElement("option")),Kt.type="checkbox",m.checkOn=""!==Kt.value,m.optSelected=Jt.selected,(Kt=T.createElement("input")).value="t",Kt.type="radio",m.radioValue="t"===Kt.value;var ae,le=S.expr.attrHandle;S.fn.extend({attr:function(t,e){return B(this,S.attr,t,e,1&lt;arguments.length)},removeAttr:function(t){return this.each(function(){S.removeAttr(this,t)})}}),S.extend({attr:function(t,e,n){var i,o,s=t.nodeType;if(3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return void 0===t.getAttribute?S.prop(t,e,n):(1===s&amp;&amp;S.isXMLDoc(t)||(o=S.attrHooks[e.toLowerCase()]||(S.expr.match.bool.test(e)?ae:void 0)),void 0!==n?null===n?void S.removeAttr(t,e):o&amp;&amp;"set"in o&amp;&amp;void 0!==(i=o.set(t,n,e))?i:(t.setAttribute(e,n+""),n):o&amp;&amp;"get"in o&amp;&amp;null!==(i=o.get(t,e))?i:null==(i=S.find.attr(t,e))?void 0:i)},attrHooks:{type:{set:function(t,e){if(!m.radioValue&amp;&amp;"radio"===e&amp;&amp;E(t,"input")){var n=t.value;return t.setAttribute("type",e),n&amp;&amp;(t.value=n),e}}}},removeAttr:function(t,e){var n,i=0,o=e&amp;&amp;e.match(F);if(o&amp;&amp;1===t.nodeType)for(;n=o[i++];)t.removeAttribute(n)}}),ae={set:function(t,e,n){return!1===e?S.removeAttr(t,n):t.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(t,e){var r=le[e]||S.find.attr;le[e]=function(t,e,n){var i,o,s=e.toLowerCase();return n||(o=le[s],le[s]=i,i=null!=r(t,e,n)?s:null,le[s]=o),i}});var ce=/^(?:input|select|textarea|button)$/i,ue=/^(?:a|area)$/i;function he(t){return(t.match(F)||[]).join(" ")}function de(t){return t.getAttribute&amp;&amp;t.getAttribute("class")||""}S.fn.extend({prop:function(t,e){return B(this,S.prop,t,e,1&lt;arguments.length)},removeProp:function(t){return this.each(function(){delete this[S.propFix[t]||t]})}}),S.extend({prop:function(t,e,n){var i,o,s=t.nodeType;if(3!==s&amp;&amp;8!==s&amp;&amp;2!==s)return 1===s&amp;&amp;S.isXMLDoc(t)||(e=S.propFix[e]||e,o=S.propHooks[e]),void 0!==n?o&amp;&amp;"set"in o&amp;&amp;void 0!==(i=o.set(t,n,e))?i:t[e]=n:o&amp;&amp;"get"in o&amp;&amp;null!==(i=o.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=S.find.attr(t,"tabindex");return e?parseInt(e,10):ce.test(t.nodeName)||ue.test(t.nodeName)&amp;&amp;t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(S.propHooks.selected={get:function(t){var e=t.parentNode;return e&amp;&amp;e.parentNode&amp;&amp;e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&amp;&amp;(e.selectedIndex,e.parentNode&amp;&amp;e.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(e){var t,n,i,o,s,r,a,l=0;if(S.isFunction(e))return this.each(function(t){S(this).addClass(e.call(this,t,de(this)))});if("string"==typeof e&amp;&amp;e)for(t=e.match(F)||[];n=this[l++];)if(o=de(n),i=1===n.nodeType&amp;&amp;" "+he(o)+" "){for(r=0;s=t[r++];)i.indexOf(" "+s+" ")&lt;0&amp;&amp;(i+=s+" ");o!==(a=he(i))&amp;&amp;n.setAttribute("class",a)}return this},removeClass:function(e){var t,n,i,o,s,r,a,l=0;if(S.isFunction(e))return this.each(function(t){S(this).removeClass(e.call(this,t,de(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&amp;&amp;e)for(t=e.match(F)||[];n=this[l++];)if(o=de(n),i=1===n.nodeType&amp;&amp;" "+he(o)+" "){for(r=0;s=t[r++];)for(;-1&lt;i.indexOf(" "+s+" ");)i=i.replace(" "+s+" "," ");o!==(a=he(i))&amp;&amp;n.setAttribute("class",a)}return this},toggleClass:function(o,e){var s=typeof o;return"boolean"==typeof e&amp;&amp;"string"===s?e?this.addClass(o):this.removeClass(o):S.isFunction(o)?this.each(function(t){S(this).toggleClass(o.call(this,t,de(this),e),e)}):this.each(function(){var t,e,n,i;if("string"===s)for(e=0,n=S(this),i=o.match(F)||[];t=i[e++];)n.hasClass(t)?n.removeClass(t):n.addClass(t);else void 0!==o&amp;&amp;"boolean"!==s||((t=de(this))&amp;&amp;Y.set(this,"__className__",t),this.setAttribute&amp;&amp;this.setAttribute("class",t||!1===o?"":Y.get(this,"__className__")||""))})},hasClass:function(t){var e,n,i=0;for(e=" "+t+" ";n=this[i++];)if(1===n.nodeType&amp;&amp;-1&lt;(" "+he(de(n))+" ").indexOf(e))return!0;return!1}});var pe=/\r/g;S.fn.extend({val:function(n){var i,t,o,e=this[0];return arguments.length?(o=S.isFunction(n),this.each(function(t){var e;1===this.nodeType&amp;&amp;(null==(e=o?n.call(this,t,S(this).val()):n)?e="":"number"==typeof e?e+="":Array.isArray(e)&amp;&amp;(e=S.map(e,function(t){return null==t?"":t+""})),(i=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&amp;&amp;"set"in i&amp;&amp;void 0!==i.set(this,e,"value")||(this.value=e))})):e?(i=S.valHooks[e.type]||S.valHooks[e.nodeName.toLowerCase()])&amp;&amp;"get"in i&amp;&amp;void 0!==(t=i.get(e,"value"))?t:"string"==typeof(t=e.value)?t.replace(pe,""):null==t?"":t:void 0}}),S.extend({valHooks:{option:{get:function(t){var e=S.find.attr(t,"value");return null!=e?e:he(S.text(t))}},select:{get:function(t){var e,n,i,o=t.options,s=t.selectedIndex,r="select-one"===t.type,a=r?null:[],l=r?s+1:o.length;for(i=s&lt;0?l:r?s:0;i&lt;l;i++)if(((n=o[i]).selected||i===s)&amp;&amp;!n.disabled&amp;&amp;(!n.parentNode.disabled||!E(n.parentNode,"optgroup"))){if(e=S(n).val(),r)return e;a.push(e)}return a},set:function(t,e){for(var n,i,o=t.options,s=S.makeArray(e),r=o.length;r--;)((i=o[r]).selected=-1&lt;S.inArray(S.valHooks.option.get(i),s))&amp;&amp;(n=!0);return n||(t.selectedIndex=-1),s}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=-1&lt;S.inArray(S(t).val(),e)}},m.checkOn||(S.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var fe=/^(?:focusinfocus|focusoutblur)$/;S.extend(S.event,{trigger:function(t,e,n,i){var o,s,r,a,l,c,u,h=[n||T],d=f.call(t,"type")?t.type:t,p=f.call(t,"namespace")?t.namespace.split("."):[];if(s=r=n=n||T,3!==n.nodeType&amp;&amp;8!==n.nodeType&amp;&amp;!fe.test(d+S.event.triggered)&amp;&amp;(-1&lt;d.indexOf(".")&amp;&amp;(d=(p=d.split(".")).shift(),p.sort()),l=d.indexOf(":")&lt;0&amp;&amp;"on"+d,(t=t[S.expando]?t:new S.Event(d,"object"==typeof t&amp;&amp;t)).isTrigger=i?2:3,t.namespace=p.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=n),e=null==e?[t]:S.makeArray(e,[t]),u=S.event.special[d]||{},i||!u.trigger||!1!==u.trigger.apply(n,e))){if(!i&amp;&amp;!u.noBubble&amp;&amp;!S.isWindow(n)){for(a=u.delegateType||d,fe.test(a+d)||(s=s.parentNode);s;s=s.parentNode)h.push(s),r=s;r===(n.ownerDocument||T)&amp;&amp;h.push(r.defaultView||r.parentWindow||_)}for(o=0;(s=h[o++])&amp;&amp;!t.isPropagationStopped();)t.type=1&lt;o?a:u.bindType||d,(c=(Y.get(s,"events")||{})[t.type]&amp;&amp;Y.get(s,"handle"))&amp;&amp;c.apply(s,e),(c=l&amp;&amp;s[l])&amp;&amp;c.apply&amp;&amp;W(s)&amp;&amp;(t.result=c.apply(s,e),!1===t.result&amp;&amp;t.preventDefault());return t.type=d,i||t.isDefaultPrevented()||u._default&amp;&amp;!1!==u._default.apply(h.pop(),e)||!W(n)||l&amp;&amp;S.isFunction(n[d])&amp;&amp;!S.isWindow(n)&amp;&amp;((r=n[l])&amp;&amp;(n[l]=null),n[S.event.triggered=d](),S.event.triggered=void 0,r&amp;&amp;(n[l]=r)),t.result}},simulate:function(t,e,n){var i=S.extend(new S.Event,n,{type:t,isSimulated:!0});S.event.trigger(i,null,e)}}),S.fn.extend({trigger:function(t,e){return this.each(function(){S.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];if(n)return S.event.trigger(t,e,n,!0)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(t,n){S.fn[n]=function(t,e){return 0&lt;arguments.length?this.on(n,null,t,e):this.trigger(n)}}),S.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),m.focusin="onfocusin"in _,m.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,i){var o=function(t){S.event.simulate(i,t.target,S.event.fix(t))};S.event.special[i]={setup:function(){var t=this.ownerDocument||this,e=Y.access(t,i);e||t.addEventListener(n,o,!0),Y.access(t,i,(e||0)+1)},teardown:function(){var t=this.ownerDocument||this,e=Y.access(t,i)-1;e?Y.access(t,i,e):(t.removeEventListener(n,o,!0),Y.remove(t,i))}}});var ge=_.location,me=S.now(),ve=/\?/;S.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new _.DOMParser).parseFromString(t,"text/xml")}catch(t){e=void 0}return e&amp;&amp;!e.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+t),e};var ye=/\[\]$/,be=/\r?\n/g,xe=/^(?:submit|button|image|reset|file)$/i,we=/^(?:input|select|textarea|keygen)/i;function Ce(n,t,i,o){var e;if(Array.isArray(t))S.each(t,function(t,e){i||ye.test(n)?o(n,e):Ce(n+"["+("object"==typeof e&amp;&amp;null!=e?t:"")+"]",e,i,o)});else if(i||"object"!==S.type(t))o(n,t);else for(e in t)Ce(n+"["+e+"]",t[e],i,o)}S.param=function(t,e){var n,i=[],o=function(t,e){var n=S.isFunction(e)?e():e;i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(t)||t.jquery&amp;&amp;!S.isPlainObject(t))S.each(t,function(){o(this.name,this.value)});else for(n in t)Ce(n,t[n],e,o);return i.join("&amp;")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=S.prop(this,"elements");return t?S.makeArray(t):this}).filter(function(){var t=this.type;return this.name&amp;&amp;!S(this).is(":disabled")&amp;&amp;we.test(this.nodeName)&amp;&amp;!xe.test(t)&amp;&amp;(this.checked||!st.test(t))}).map(function(t,e){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(t){return{name:e.name,value:t.replace(be,"\r\n")}}):{name:e.name,value:n.replace(be,"\r\n")}}).get()}});var _e=/%20/g,Te=/#.*$/,Se=/([?&amp;])_=[^&amp;]*/,$e=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ee=/^(?:GET|HEAD)$/,Pe=/^\/\//,ke={},Ae={},De="*/".concat("*"),Le=T.createElement("a");function je(s){return function(t,e){"string"!=typeof t&amp;&amp;(e=t,t="*");var n,i=0,o=t.toLowerCase().match(F)||[];if(S.isFunction(e))for(;n=o[i++];)"+"===n[0]?(n=n.slice(1)||"*",(s[n]=s[n]||[]).unshift(e)):(s[n]=s[n]||[]).push(e)}}function Me(e,o,s,r){var a={},l=e===Ae;function c(t){var i;return a[t]=!0,S.each(e[t]||[],function(t,e){var n=e(o,s,r);return"string"!=typeof n||l||a[n]?l?!(i=n):void 0:(o.dataTypes.unshift(n),c(n),!1)}),i}return c(o.dataTypes[0])||!a["*"]&amp;&amp;c("*")}function Ne(t,e){var n,i,o=S.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&amp;&amp;((o[n]?t:i||(i={}))[n]=e[n]);return i&amp;&amp;S.extend(!0,t,i),t}Le.href=ge.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ge.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(ge.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":De,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ne(Ne(t,S.ajaxSettings),e):Ne(S.ajaxSettings,t)},ajaxPrefilter:je(ke),ajaxTransport:je(Ae),ajax:function(t,e){"object"==typeof t&amp;&amp;(e=t,t=void 0),e=e||{};var u,h,d,n,p,i,f,g,o,s,m=S.ajaxSetup({},e),v=m.context||m,y=m.context&amp;&amp;(v.nodeType||v.jquery)?S(v):S.event,b=S.Deferred(),x=S.Callbacks("once memory"),w=m.statusCode||{},r={},a={},l="canceled",C={readyState:0,getResponseHeader:function(t){var e;if(f){if(!n)for(n={};e=$e.exec(d);)n[e[1].toLowerCase()]=e[2];e=n[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return f?d:null},setRequestHeader:function(t,e){return null==f&amp;&amp;(t=a[t.toLowerCase()]=a[t.toLowerCase()]||t,r[t]=e),this},overrideMimeType:function(t){return null==f&amp;&amp;(m.mimeType=t),this},statusCode:function(t){var e;if(t)if(f)C.always(t[C.status]);else for(e in t)w[e]=[w[e],t[e]];return this},abort:function(t){var e=t||l;return u&amp;&amp;u.abort(e),c(0,e),this}};if(b.promise(C),m.url=((t||m.url||ge.href)+"").replace(Pe,ge.protocol+"//"),m.type=e.method||e.type||m.method||m.type,m.dataTypes=(m.dataType||"*").toLowerCase().match(F)||[""],null==m.crossDomain){i=T.createElement("a");try{i.href=m.url,i.href=i.href,m.crossDomain=Le.protocol+"//"+Le.host!=i.protocol+"//"+i.host}catch(t){m.crossDomain=!0}}if(m.data&amp;&amp;m.processData&amp;&amp;"string"!=typeof m.data&amp;&amp;(m.data=S.param(m.data,m.traditional)),Me(ke,m,e,C),f)return C;for(o in(g=S.event&amp;&amp;m.global)&amp;&amp;0==S.active++&amp;&amp;S.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!Ee.test(m.type),h=m.url.replace(Te,""),m.hasContent?m.data&amp;&amp;m.processData&amp;&amp;0===(m.contentType||"").indexOf("application/x-www-form-urlencoded")&amp;&amp;(m.data=m.data.replace(_e,"+")):(s=m.url.slice(h.length),m.data&amp;&amp;(h+=(ve.test(h)?"&amp;":"?")+m.data,delete m.data),!1===m.cache&amp;&amp;(h=h.replace(Se,"$1"),s=(ve.test(h)?"&amp;":"?")+"_="+me+++s),m.url=h+s),m.ifModified&amp;&amp;(S.lastModified[h]&amp;&amp;C.setRequestHeader("If-Modified-Since",S.lastModified[h]),S.etag[h]&amp;&amp;C.setRequestHeader("If-None-Match",S.etag[h])),(m.data&amp;&amp;m.hasContent&amp;&amp;!1!==m.contentType||e.contentType)&amp;&amp;C.setRequestHeader("Content-Type",m.contentType),C.setRequestHeader("Accept",m.dataTypes[0]&amp;&amp;m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+De+"; q=0.01":""):m.accepts["*"]),m.headers)C.setRequestHeader(o,m.headers[o]);if(m.beforeSend&amp;&amp;(!1===m.beforeSend.call(v,C,m)||f))return C.abort();if(l="abort",x.add(m.complete),C.done(m.success),C.fail(m.error),u=Me(Ae,m,e,C)){if(C.readyState=1,g&amp;&amp;y.trigger("ajaxSend",[C,m]),f)return C;m.async&amp;&amp;0&lt;m.timeout&amp;&amp;(p=_.setTimeout(function(){C.abort("timeout")},m.timeout));try{f=!1,u.send(r,c)}catch(t){if(f)throw t;c(-1,t)}}else c(-1,"No Transport");function c(t,e,n,i){var o,s,r,a,l,c=e;f||(f=!0,p&amp;&amp;_.clearTimeout(p),u=void 0,d=i||"",C.readyState=0&lt;t?4:0,o=200&lt;=t&amp;&amp;t&lt;300||304===t,n&amp;&amp;(a=function(t,e,n){for(var i,o,s,r,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&amp;&amp;(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(o in a)if(a[o]&amp;&amp;a[o].test(i)){l.unshift(o);break}if(l[0]in n)s=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){s=o;break}r||(r=o)}s=s||r}if(s)return s!==l[0]&amp;&amp;l.unshift(s),n[s]}(m,C,n)),a=function(t,e,n,i){var o,s,r,a,l,c={},u=t.dataTypes.slice();if(u[1])for(r in t.converters)c[r.toLowerCase()]=t.converters[r];for(s=u.shift();s;)if(t.responseFields[s]&amp;&amp;(n[t.responseFields[s]]=e),!l&amp;&amp;i&amp;&amp;t.dataFilter&amp;&amp;(e=t.dataFilter(e,t.dataType)),l=s,s=u.shift())if("*"===s)s=l;else if("*"!==l&amp;&amp;l!==s){if(!(r=c[l+" "+s]||c["* "+s]))for(o in c)if((a=o.split(" "))[1]===s&amp;&amp;(r=c[l+" "+a[0]]||c["* "+a[0]])){!0===r?r=c[o]:!0!==c[o]&amp;&amp;(s=a[0],u.unshift(a[1]));break}if(!0!==r)if(r&amp;&amp;t.throws)e=r(e);else try{e=r(e)}catch(t){return{state:"parsererror",error:r?t:"No conversion from "+l+" to "+s}}}return{state:"success",data:e}}(m,a,C,o),o?(m.ifModified&amp;&amp;((l=C.getResponseHeader("Last-Modified"))&amp;&amp;(S.lastModified[h]=l),(l=C.getResponseHeader("etag"))&amp;&amp;(S.etag[h]=l)),204===t||"HEAD"===m.type?c="nocontent":304===t?c="notmodified":(c=a.state,s=a.data,o=!(r=a.error))):(r=c,!t&amp;&amp;c||(c="error",t&lt;0&amp;&amp;(t=0))),C.status=t,C.statusText=(e||c)+"",o?b.resolveWith(v,[s,c,C]):b.rejectWith(v,[C,c,r]),C.statusCode(w),w=void 0,g&amp;&amp;y.trigger(o?"ajaxSuccess":"ajaxError",[C,m,o?s:r]),x.fireWith(v,[C,c]),g&amp;&amp;(y.trigger("ajaxComplete",[C,m]),--S.active||S.event.trigger("ajaxStop")))}return C},getJSON:function(t,e,n){return S.get(t,e,n,"json")},getScript:function(t,e){return S.get(t,void 0,e,"script")}}),S.each(["get","post"],function(t,o){S[o]=function(t,e,n,i){return S.isFunction(e)&amp;&amp;(i=i||n,n=e,e=void 0),S.ajax(S.extend({url:t,type:o,dataType:i,data:e,success:n},S.isPlainObject(t)&amp;&amp;t))}}),S._evalUrl=function(t){return S.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},S.fn.extend({wrapAll:function(t){var e;return this[0]&amp;&amp;(S.isFunction(t)&amp;&amp;(t=t.call(this[0])),e=S(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&amp;&amp;e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(n){return S.isFunction(n)?this.each(function(t){S(this).wrapInner(n.call(this,t))}):this.each(function(){var t=S(this),e=t.contents();e.length?e.wrapAll(n):t.append(n)})},wrap:function(e){var n=S.isFunction(e);return this.each(function(t){S(this).wrapAll(n?e.call(this,t):e)})},unwrap:function(t){return this.parent(t).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(t){return!S.expr.pseudos.visible(t)},S.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new _.XMLHttpRequest}catch(t){}};var Fe={0:200,1223:204},Ie=S.ajaxSettings.xhr();m.cors=!!Ie&amp;&amp;"withCredentials"in Ie,m.ajax=Ie=!!Ie,S.ajaxTransport(function(o){var s,r;if(m.cors||Ie&amp;&amp;!o.crossDomain)return{send:function(t,e){var n,i=o.xhr();if(i.open(o.type,o.url,o.async,o.username,o.password),o.xhrFields)for(n in o.xhrFields)i[n]=o.xhrFields[n];for(n in o.mimeType&amp;&amp;i.overrideMimeType&amp;&amp;i.overrideMimeType(o.mimeType),o.crossDomain||t["X-Requested-With"]||(t["X-Requested-With"]="XMLHttpRequest"),t)i.setRequestHeader(n,t[n]);s=function(t){return function(){s&amp;&amp;(s=r=i.onload=i.onerror=i.onabort=i.onreadystatechange=null,"abort"===t?i.abort():"error"===t?"number"!=typeof i.status?e(0,"error"):e(i.status,i.statusText):e(Fe[i.status]||i.status,i.statusText,"text"!==(i.responseType||"text")||"string"!=typeof i.responseText?{binary:i.response}:{text:i.responseText},i.getAllResponseHeaders()))}},i.onload=s(),r=i.onerror=s("error"),void 0!==i.onabort?i.onabort=r:i.onreadystatechange=function(){4===i.readyState&amp;&amp;_.setTimeout(function(){s&amp;&amp;r()})},s=s("abort");try{i.send(o.hasContent&amp;&amp;o.data||null)}catch(t){if(s)throw t}},abort:function(){s&amp;&amp;s()}}}),S.ajaxPrefilter(function(t){t.crossDomain&amp;&amp;(t.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return S.globalEval(t),t}}}),S.ajaxPrefilter("script",function(t){void 0===t.cache&amp;&amp;(t.cache=!1),t.crossDomain&amp;&amp;(t.type="GET")}),S.ajaxTransport("script",function(n){var i,o;if(n.crossDomain)return{send:function(t,e){i=S("&lt;script&gt;").prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(t){i.remove(),o=null,t&amp;&amp;e("error"===t.type?404:200,t.type)}),T.head.appendChild(i[0])},abort:function(){o&amp;&amp;o()}}});var qe,Oe=[],ze=/(=)\?(?=&amp;|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Oe.pop()||S.expando+"_"+me++;return this[t]=!0,t}}),S.ajaxPrefilter("json jsonp",function(t,e,n){var i,o,s,r=!1!==t.jsonp&amp;&amp;(ze.test(t.url)?"url":"string"==typeof t.data&amp;&amp;0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&amp;&amp;ze.test(t.data)&amp;&amp;"data");if(r||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=S.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,r?t[r]=t[r].replace(ze,"$1"+i):!1!==t.jsonp&amp;&amp;(t.url+=(ve.test(t.url)?"&amp;":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||S.error(i+" was not called"),s[0]},t.dataTypes[0]="json",o=_[i],_[i]=function(){s=arguments},n.always(function(){void 0===o?S(_).removeProp(i):_[i]=o,t[i]&amp;&amp;(t.jsonpCallback=e.jsonpCallback,Oe.push(i)),s&amp;&amp;S.isFunction(o)&amp;&amp;o(s[0]),s=o=void 0}),"script"}),m.createHTMLDocument=((qe=T.implementation.createHTMLDocument("").body).innerHTML="&lt;form&gt;&lt;/form&gt;&lt;form&gt;&lt;/form&gt;",2===qe.childNodes.length),S.parseHTML=function(t,e,n){return"string"!=typeof t?[]:("boolean"==typeof e&amp;&amp;(n=e,e=!1),e||(m.createHTMLDocument?((i=(e=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,e.head.appendChild(i)):e=T),s=!n&amp;&amp;[],(o=P.exec(t))?[e.createElement(o[1])]:(o=ft([t],e,s),s&amp;&amp;s.length&amp;&amp;S(s).remove(),S.merge([],o.childNodes)));var i,o,s},S.fn.load=function(t,e,n){var i,o,s,r=this,a=t.indexOf(" ");return-1&lt;a&amp;&amp;(i=he(t.slice(a)),t=t.slice(0,a)),S.isFunction(e)?(n=e,e=void 0):e&amp;&amp;"object"==typeof e&amp;&amp;(o="POST"),0&lt;r.length&amp;&amp;S.ajax({url:t,type:o||"GET",dataType:"html",data:e}).done(function(t){s=arguments,r.html(i?S("&lt;div&gt;").append(S.parseHTML(t)).find(i):t)}).always(n&amp;&amp;function(t,e){r.each(function(){n.apply(this,s||[t.responseText,e,t])})}),this},S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){S.fn[e]=function(t){return this.on(e,t)}}),S.expr.pseudos.animated=function(e){return S.grep(S.timers,function(t){return e===t.elem}).length},S.offset={setOffset:function(t,e,n){var i,o,s,r,a,l,c=S.css(t,"position"),u=S(t),h={};"static"===c&amp;&amp;(t.style.position="relative"),a=u.offset(),s=S.css(t,"top"),l=S.css(t,"left"),("absolute"===c||"fixed"===c)&amp;&amp;-1&lt;(s+l).indexOf("auto")?(r=(i=u.position()).top,o=i.left):(r=parseFloat(s)||0,o=parseFloat(l)||0),S.isFunction(e)&amp;&amp;(e=e.call(t,n,S.extend({},a))),null!=e.top&amp;&amp;(h.top=e.top-a.top+r),null!=e.left&amp;&amp;(h.left=e.left-a.left+o),"using"in e?e.using.call(t,h):u.css(h)}},S.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){S.offset.setOffset(this,e,t)});var t,n,i,o,s=this[0];return s?s.getClientRects().length?(i=s.getBoundingClientRect(),n=(t=s.ownerDocument).documentElement,o=t.defaultView,{top:i.top+o.pageYOffset-n.clientTop,left:i.left+o.pageXOffset-n.clientLeft}):{top:0,left:0}:void 0},position:function(){if(this[0]){var t,e,n=this[0],i={top:0,left:0};return"fixed"===S.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),E(t[0],"html")||(i=t.offset()),i={top:i.top+S.css(t[0],"borderTopWidth",!0),left:i.left+S.css(t[0],"borderLeftWidth",!0)}),{top:e.top-i.top-S.css(n,"marginTop",!0),left:e.left-i.left-S.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&amp;&amp;"static"===S.css(t,"position");)t=t.offsetParent;return t||gt})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,o){var s="pageYOffset"===o;S.fn[e]=function(t){return B(this,function(t,e,n){var i;return S.isWindow(t)?i=t:9===t.nodeType&amp;&amp;(i=t.defaultView),void 0===n?i?i[o]:t[e]:void(i?i.scrollTo(s?i.pageXOffset:n,s?n:i.pageYOffset):t[e]=n)},e,t,arguments.length)}}),S.each(["top","left"],function(t,n){S.cssHooks[n]=qt(m.pixelPosition,function(t,e){if(e)return e=It(t,n),Nt.test(e)?S(t).position()[n]+"px":e})}),S.each({Height:"height",Width:"width"},function(r,a){S.each({padding:"inner"+r,content:a,"":"outer"+r},function(i,s){S.fn[s]=function(t,e){var n=arguments.length&amp;&amp;(i||"boolean"!=typeof t),o=i||(!0===t||!0===e?"margin":"border");return B(this,function(t,e,n){var i;return S.isWindow(t)?0===s.indexOf("outer")?t["inner"+r]:t.document.documentElement["client"+r]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+r],i["scroll"+r],t.body["offset"+r],i["offset"+r],i["client"+r])):void 0===n?S.css(t,e,o):S.style(t,e,n,o)},a,n?t:void 0,n)}})}),S.fn.extend({bind:function(t,e,n){return this.on(t,null,e,n)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,n,i){return this.on(e,t,n,i)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)}}),S.holdReady=function(t){t?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=E,"function"==typeof define&amp;&amp;define.amd&amp;&amp;define("jquery",[],function(){return S});var He=_.jQuery,Re=_.$;return S.noConflict=function(t){return _.$===S&amp;&amp;(_.$=Re),t&amp;&amp;_.jQuery===S&amp;&amp;(_.jQuery=He),S},t||(_.jQuery=_.$=S),S}),function(t,r){function a(){var t=f.elements;return"string"==typeof t?t.split(" "):t}function l(t){var e=p[t[s]];return e||(e={},d++,t[s]=d,p[d]=e),e}function c(t,e,n){return e||(e=r),h?e.createElement(t):(n||(n=l(e)),(e=n.cache[t]?n.cache[t].cloneNode():o.test(t)?(n.cache[t]=n.createElem(t)).cloneNode():n.createElem(t)).canHaveChildren&amp;&amp;!i.test(t)?n.frag.appendChild(e):e)}function e(t){t||(t=r);var e,n,i=l(t);if(f.shivCSS&amp;&amp;!u&amp;&amp;!i.hasCSS){var o,s=t;o=s.createElement("p"),s=s.getElementsByTagName("head")[0]||s.documentElement,o.innerHTML="x&lt;style&gt;article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}&lt;/style&gt;",o=s.insertBefore(o.lastChild,s.firstChild),i.hasCSS=!!o}return h||(e=t,(n=i).cache||(n.cache={},n.createElem=e.createElement,n.createFrag=e.createDocumentFragment,n.frag=n.createFrag()),e.createElement=function(t){return f.shivMethods?c(t,e,n):n.createElem(t)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&amp;&amp;("+a().join().replace(/[\w\-]+/g,function(t){return n.createElem(t),n.frag.createElement(t),'c("'+t+'")'})+");return n}")(f,n.frag)),t}var u,h,n=t.html5||{},i=/^&lt;|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,s="_html5shiv",d=0,p={};!function(){try{var t,e=r.createElement("a");if(e.innerHTML="&lt;xyz&gt;&lt;/xyz&gt;",u="hidden"in e,!(t=1==e.childNodes.length)){r.createElement("a");var n=r.createDocumentFragment();t=void 0===n.cloneNode||void 0===n.createDocumentFragment||void 0===n.createElement}h=t}catch(t){h=u=!0}}();var f={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==n.shivCSS,supportsUnknownElements:h,shivMethods:!1!==n.shivMethods,type:"default",shivDocument:e,createElement:c,createDocumentFragment:function(t,e){if(t||(t=r),h)return t.createDocumentFragment();for(var n=(e=e||l(t)).frag.cloneNode(),i=0,o=a(),s=o.length;i&lt;s;i++)n.createElement(o[i]);return n}};t.html5=f,e(r)}(this,document),function(t,e){"function"==typeof define&amp;&amp;define.amd?define([],function(){return t.svg4everybody=e()}):"object"==typeof module&amp;&amp;module.exports?module.exports=e():t.svg4everybody=e()}(this,function(){function m(t,e,n){if(n){var i=document.createDocumentFragment(),o=!e.hasAttribute("viewBox")&amp;&amp;n.getAttribute("viewBox");o&amp;&amp;e.setAttribute("viewBox",o);for(var s=n.cloneNode(!0);s.childNodes.length;)i.appendChild(s.firstChild);t.appendChild(i)}}function v(i){i.onreadystatechange=function(){if(4===i.readyState){var n=i._cachedDocument;n||((n=i._cachedDocument=document.implementation.createHTMLDocument("")).body.innerHTML=i.responseText,i._cachedTarget={}),i._embeds.splice(0).map(function(t){var e=i._cachedTarget[t.id];e||(e=i._cachedTarget[t.id]=n.getElementById(t.id)),m(t.parent,t.svg,e)})}},i.onreadystatechange()}function y(t){for(var e=t;"svg"!==e.nodeName.toLowerCase()&amp;&amp;(e=e.parentNode););return e}return function(t){var u,h=Object(t),e=window.top!==window.self;u="polyfill"in h?h.polyfill:/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/.test(navigator.userAgent)||(navigator.userAgent.match(/\bEdge\/12\.(\d+)\b/)||[])[1]&lt;10547||(navigator.userAgent.match(/\bAppleWebKit\/(\d+)\b/)||[])[1]&lt;537||/\bEdge\/.(\d+)\b/.test(navigator.userAgent)&amp;&amp;e;var d={},p=window.requestAnimationFrame||setTimeout,f=document.getElementsByTagName("use"),g=0;u&amp;&amp;function t(){for(var e=0;e&lt;f.length;){var n=f[e],i=n.parentNode,o=y(i),s=n.getAttribute("xlink:href")||n.getAttribute("href");if(!s&amp;&amp;h.attributeName&amp;&amp;(s=n.getAttribute(h.attributeName)),o&amp;&amp;s){if(u)if(!h.validate||h.validate(s,o,n)){i.removeChild(n);var r=s.split("#"),a=r.shift(),l=r.join("#");if(a.length){var c=d[a];c||((c=d[a]=new XMLHttpRequest).open("GET",a),c.send(),c._embeds=[]),c._embeds.push({parent:i,svg:o,id:l}),v(c)}else m(i,o,document.getElementById(l))}else++e,++g}else++e}(!f.length||0&lt;f.length-g)&amp;&amp;p(t,67)}()}}),function(l,n,o,s){function c(t,e){this.settings=null,this.options=l.extend({},c.Defaults,e),this.$element=l(t),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},l.each(["onResize","onThrottledResize"],l.proxy(function(t,e){this._handlers[e]=l.proxy(this[e],this)},this)),l.each(c.Plugins,l.proxy(function(t,e){this._plugins[t.charAt(0).toLowerCase()+t.slice(1)]=new e(this)},this)),l.each(c.Workers,l.proxy(function(t,e){this._pipe.push({filter:e.filter,run:l.proxy(e.run,this)})},this)),this.setup(),this.initialize()}c.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:n,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},c.Width={Default:"default",Inner:"inner",Outer:"outer"},c.Type={Event:"event",State:"state"},c.Plugins={},c.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(t){t.current=this._items&amp;&amp;this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(t){var e=this.settings.margin||"",n=!this.settings.autoWidth,i=this.settings.rtl,o={width:"auto","margin-left":i?e:"","margin-right":i?"":e};!n&amp;&amp;this.$stage.children().css(o),t.css=o}},{filter:["width","items","settings"],run:function(t){var e=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,n=null,i=this._items.length,o=!this.settings.autoWidth,s=[];for(t.items={merge:!1,width:e};i--;)n=this._mergers[i],n=this.settings.mergeFit&amp;&amp;Math.min(n,this.settings.items)||n,t.items.merge=1&lt;n||t.items.merge,s[i]=o?e*n:this._items[i].width();this._widths=s}},{filter:["items","settings"],run:function(){var t=[],e=this._items,n=this.settings,i=Math.max(2*n.items,4),o=2*Math.ceil(e.length/2),s=n.loop&amp;&amp;e.length?n.rewind?i:Math.max(i,o):0,r="",a="";for(s/=2;s--;)t.push(this.normalize(t.length/2,!0)),r+=e[t[t.length-1]][0].outerHTML,t.push(this.normalize(e.length-1-(t.length-1)/2,!0)),a=e[t[t.length-1]][0].outerHTML+a;this._clones=t,l(r).addClass("cloned").appendTo(this.$stage),l(a).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var t=this.settings.rtl?1:-1,e=this._clones.length+this._items.length,n=-1,i=0,o=0,s=[];++n&lt;e;)i=s[n-1]||0,o=this._widths[this.relative(n)]+this.settings.margin,s.push(i+o*t);this._coordinates=s}},{filter:["width","items","settings"],run:function(){var t=this.settings.stagePadding,e=this._coordinates,n={width:Math.ceil(Math.abs(e[e.length-1]))+2*t,"padding-left":t||"","padding-right":t||""};this.$stage.css(n)}},{filter:["width","items","settings"],run:function(t){var e=this._coordinates.length,n=!this.settings.autoWidth,i=this.$stage.children();if(n&amp;&amp;t.items.merge)for(;e--;)t.css.width=this._widths[this.relative(e)],i.eq(e).css(t.css);else n&amp;&amp;(t.css.width=t.items.width,i.css(t.css))}},{filter:["items"],run:function(){this._coordinates.length&lt;1&amp;&amp;this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(t){t.current=t.current?this.$stage.children().index(t.current):0,t.current=Math.max(this.minimum(),Math.min(this.maximum(),t.current)),this.reset(t.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var t,e,n,i,o=this.settings.rtl?1:-1,s=2*this.settings.stagePadding,r=this.coordinates(this.current())+s,a=r+this.width()*o,l=[];for(n=0,i=this._coordinates.length;n&lt;i;n++)t=this._coordinates[n-1]||0,e=Math.abs(this._coordinates[n])+s*o,(this.op(t,"&lt;=",r)&amp;&amp;this.op(t,"&gt;",a)||this.op(e,"&lt;",r)&amp;&amp;this.op(e,"&gt;",a))&amp;&amp;l.push(n);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+l.join("), :eq(")+")").addClass("active"),this.settings.center&amp;&amp;(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],c.prototype.initialize=function(){var t,e,n;(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&amp;&amp;!this.is("pre-loading"))&amp;&amp;(t=this.$element.find("img"),e=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:s,n=this.$element.children(e).width(),t.length&amp;&amp;n&lt;=0&amp;&amp;this.preloadAutoWidthImages(t));this.$element.addClass(this.options.loadingClass),this.$stage=l("&lt;"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/&gt;').wrap('&lt;div class="'+this.settings.stageOuterClass+'"/&gt;'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},c.prototype.setup=function(){var e=this.viewport(),t=this.options.responsive,n=-1,i=null;t?(l.each(t,function(t){t&lt;=e&amp;&amp;n&lt;t&amp;&amp;(n=Number(t))}),"function"==typeof(i=l.extend({},this.options,t[n])).stagePadding&amp;&amp;(i.stagePadding=i.stagePadding()),delete i.responsive,i.responsiveClass&amp;&amp;this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+n))):i=l.extend({},this.options),this.trigger("change",{property:{name:"settings",value:i}}),this._breakpoint=n,this.settings=i,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},c.prototype.optionsLogic=function(){this.settings.autoWidth&amp;&amp;(this.settings.stagePadding=!1,this.settings.merge=!1)},c.prototype.prepare=function(t){var e=this.trigger("prepare",{content:t});return e.data||(e.data=l("&lt;"+this.settings.itemElement+"/&gt;").addClass(this.options.itemClass).append(t)),this.trigger("prepared",{content:e.data}),e.data},c.prototype.update=function(){for(var t=0,e=this._pipe.length,n=l.proxy(function(t){return this[t]},this._invalidated),i={};t&lt;e;)(this._invalidated.all||0&lt;l.grep(this._pipe[t].filter,n).length)&amp;&amp;this._pipe[t].run(i),t++;this._invalidated={},!this.is("valid")&amp;&amp;this.enter("valid")},c.prototype.width=function(t){switch(t=t||c.Width.Default){case c.Width.Inner:case c.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},c.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},c.prototype.onThrottledResize=function(){n.clearTimeout(this.resizeTimer),this.resizeTimer=n.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},c.prototype.onResize=function(){return!!this._items.length&amp;&amp;(this._width!==this.$element.width()&amp;&amp;(!!this.$element.is(":visible")&amp;&amp;(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},c.prototype.registerEventHandlers=function(){l.support.transition&amp;&amp;this.$stage.on(l.support.transition.end+".owl.core",l.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&amp;&amp;this.on(n,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&amp;&amp;(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",l.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&amp;&amp;(this.$stage.on("touchstart.owl.core",l.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",l.proxy(this.onDragEnd,this)))},c.prototype.onDragStart=function(t){var e=null;3!==t.which&amp;&amp;(l.support.transform?e={x:(e=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","))[16===e.length?12:4],y:e[16===e.length?13:5]}:(e=this.$stage.position(),e={x:this.settings.rtl?e.left+this.$stage.width()-this.width()+this.settings.margin:e.left,y:e.top}),this.is("animating")&amp;&amp;(l.support.transform?this.animate(e.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===t.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=l(t.target),this._drag.stage.start=e,this._drag.stage.current=e,this._drag.pointer=this.pointer(t),l(o).on("mouseup.owl.core touchend.owl.core",l.proxy(this.onDragEnd,this)),l(o).one("mousemove.owl.core touchmove.owl.core",l.proxy(function(t){var e=this.difference(this._drag.pointer,this.pointer(t));l(o).on("mousemove.owl.core touchmove.owl.core",l.proxy(this.onDragMove,this)),Math.abs(e.x)&lt;Math.abs(e.y)&amp;&amp;this.is("valid")||(t.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},c.prototype.onDragMove=function(t){var e=null,n=null,i=null,o=this.difference(this._drag.pointer,this.pointer(t)),s=this.difference(this._drag.stage.start,o);this.is("dragging")&amp;&amp;(t.preventDefault(),this.settings.loop?(e=this.coordinates(this.minimum()),n=this.coordinates(this.maximum()+1)-e,s.x=((s.x-e)%n+n)%n+e):(e=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),n=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),i=this.settings.pullDrag?-1*o.x/5:0,s.x=Math.max(Math.min(s.x,e+i),n+i)),this._drag.stage.current=s,this.animate(s.x))},c.prototype.onDragEnd=function(t){var e=this.difference(this._drag.pointer,this.pointer(t)),n=this._drag.stage.current,i=0&lt;e.x^this.settings.rtl?"left":"right";l(o).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==e.x&amp;&amp;this.is("dragging")||!this.is("valid"))&amp;&amp;(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(n.x,0!==e.x?i:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=i,(3&lt;Math.abs(e.x)||300&lt;(new Date).getTime()-this._drag.time)&amp;&amp;this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&amp;&amp;(this.leave("dragging"),this.trigger("dragged"))},c.prototype.closest=function(n,i){var o=-1,s=this.width(),r=this.coordinates();return this.settings.freeDrag||l.each(r,l.proxy(function(t,e){return"left"===i&amp;&amp;e-30&lt;n&amp;&amp;n&lt;e+30?o=t:"right"===i&amp;&amp;e-s-30&lt;n&amp;&amp;n&lt;e-s+30?o=t+1:this.op(n,"&lt;",e)&amp;&amp;this.op(n,"&gt;",r[t+1]||e-s)&amp;&amp;(o="left"===i?t+1:t),-1===o},this)),this.settings.loop||(this.op(n,"&gt;",r[this.minimum()])?o=n=this.minimum():this.op(n,"&lt;",r[this.maximum()])&amp;&amp;(o=n=this.maximum())),o},c.prototype.animate=function(t){var e=0&lt;this.speed();this.is("animating")&amp;&amp;this.onTransitionEnd(),e&amp;&amp;(this.enter("animating"),this.trigger("translate")),l.support.transform3d&amp;&amp;l.support.transition?this.$stage.css({transform:"translate3d("+t+"px,0px,0px)",transition:this.speed()/1e3+"s"}):e?this.$stage.animate({left:t+"px"},this.speed(),this.settings.fallbackEasing,l.proxy(this.onTransitionEnd,this)):this.$stage.css({left:t+"px"})},c.prototype.is=function(t){return this._states.current[t]&amp;&amp;0&lt;this._states.current[t]},c.prototype.current=function(t){if(t===s)return this._current;if(0===this._items.length)return s;if(t=this.normalize(t),this._current!==t){var e=this.trigger("change",{property:{name:"position",value:t}});e.data!==s&amp;&amp;(t=this.normalize(e.data)),this._current=t,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},c.prototype.invalidate=function(t){return"string"===l.type(t)&amp;&amp;(this._invalidated[t]=!0,this.is("valid")&amp;&amp;this.leave("valid")),l.map(this._invalidated,function(t,e){return e})},c.prototype.reset=function(t){(t=this.normalize(t))!==s&amp;&amp;(this._speed=0,this._current=t,this.suppress(["translate","translated"]),this.animate(this.coordinates(t)),this.release(["translate","translated"]))},c.prototype.normalize=function(t,e){var n=this._items.length,i=e?0:this._clones.length;return!this.isNumeric(t)||n&lt;1?t=s:(t&lt;0||n+i&lt;=t)&amp;&amp;(t=((t-i/2)%n+n)%n+i/2),t},c.prototype.relative=function(t){return t-=this._clones.length/2,this.normalize(t,!0)},c.prototype.maximum=function(t){var e,n,i,o=this.settings,s=this._coordinates.length;if(o.loop)s=this._clones.length/2+this._items.length-1;else if(o.autoWidth||o.merge){for(e=this._items.length,n=this._items[--e].width(),i=this.$element.width();e--&amp;&amp;!(i&lt;(n+=this._items[e].width()+this.settings.margin)););s=e+1}else s=o.center?this._items.length-1:this._items.length-o.items;return t&amp;&amp;(s-=this._clones.length/2),Math.max(s,0)},c.prototype.minimum=function(t){return t?0:this._clones.length/2},c.prototype.items=function(t){return t===s?this._items.slice():(t=this.normalize(t,!0),this._items[t])},c.prototype.mergers=function(t){return t===s?this._mergers.slice():(t=this.normalize(t,!0),this._mergers[t])},c.prototype.clones=function(n){var e=this._clones.length/2,i=e+this._items.length,o=function(t){return t%2==0?i+t/2:e-(t+1)/2};return n===s?l.map(this._clones,function(t,e){return o(e)}):l.map(this._clones,function(t,e){return t===n?o(e):null})},c.prototype.speed=function(t){return t!==s&amp;&amp;(this._speed=t),this._speed},c.prototype.coordinates=function(t){var e,n=1,i=t-1;return t===s?l.map(this._coordinates,l.proxy(function(t,e){return this.coordinates(e)},this)):(this.settings.center?(this.settings.rtl&amp;&amp;(n=-1,i=t+1),e=this._coordinates[t],e+=(this.width()-e+(this._coordinates[i]||0))/2*n):e=this._coordinates[i]||0,e=Math.ceil(e))},c.prototype.duration=function(t,e,n){return 0===n?0:Math.min(Math.max(Math.abs(e-t),1),6)*Math.abs(n||this.settings.smartSpeed)},c.prototype.to=function(t,e){var n=this.current(),i=null,o=t-this.relative(n),s=(0&lt;o)-(o&lt;0),r=this._items.length,a=this.minimum(),l=this.maximum();this.settings.loop?(!this.settings.rewind&amp;&amp;Math.abs(o)&gt;r/2&amp;&amp;(o+=-1*s*r),(i=(((t=n+o)-a)%r+r)%r+a)!==t&amp;&amp;i-o&lt;=l&amp;&amp;0&lt;i-o&amp;&amp;(n=i-o,t=i,this.reset(n))):t=this.settings.rewind?(t%(l+=1)+l)%l:Math.max(a,Math.min(l,t)),this.speed(this.duration(n,t,e)),this.current(t),this.$element.is(":visible")&amp;&amp;this.update()},c.prototype.next=function(t){t=t||!1,this.to(this.relative(this.current())+1,t)},c.prototype.prev=function(t){t=t||!1,this.to(this.relative(this.current())-1,t)},c.prototype.onTransitionEnd=function(t){if(t!==s&amp;&amp;(t.stopPropagation(),(t.target||t.srcElement||t.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},c.prototype.viewport=function(){var t;return this.options.responsiveBaseElement!==n?t=l(this.options.responsiveBaseElement).width():n.innerWidth?t=n.innerWidth:o.documentElement&amp;&amp;o.documentElement.clientWidth?t=o.documentElement.clientWidth:console.warn("Can not detect viewport width."),t},c.prototype.replace=function(t){this.$stage.empty(),this._items=[],t&amp;&amp;(t=t instanceof jQuery?t:l(t)),this.settings.nestedItemSelector&amp;&amp;(t=t.find("."+this.settings.nestedItemSelector)),t.filter(function(){return 1===this.nodeType}).each(l.proxy(function(t,e){e=this.prepare(e),this.$stage.append(e),this._items.push(e),this._mergers.push(1*e.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},c.prototype.add=function(t,e){var n=this.relative(this._current);e=e===s?this._items.length:this.normalize(e,!0),t=t instanceof jQuery?t:l(t),this.trigger("add",{content:t,position:e}),t=this.prepare(t),0===this._items.length||e===this._items.length?(0===this._items.length&amp;&amp;this.$stage.append(t),0!==this._items.length&amp;&amp;this._items[e-1].after(t),this._items.push(t),this._mergers.push(1*t.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[e].before(t),this._items.splice(e,0,t),this._mergers.splice(e,0,1*t.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[n]&amp;&amp;this.reset(this._items[n].index()),this.invalidate("items"),this.trigger("added",{content:t,position:e})},c.prototype.remove=function(t){(t=this.normalize(t,!0))!==s&amp;&amp;(this.trigger("remove",{content:this._items[t],position:t}),this._items[t].remove(),this._items.splice(t,1),this._mergers.splice(t,1),this.invalidate("items"),this.trigger("removed",{content:null,position:t}))},c.prototype.preloadAutoWidthImages=function(t){t.each(l.proxy(function(t,e){this.enter("pre-loading"),e=l(e),l(new Image).one("load",l.proxy(function(t){e.attr("src",t.target.src),e.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&amp;&amp;!this.is("initializing")&amp;&amp;this.refresh()},this)).attr("src",e.attr("src")||e.attr("data-src")||e.attr("data-src-retina"))},this))},c.prototype.destroy=function(){for(var t in this.$element.off(".owl.core"),this.$stage.off(".owl.core"),l(o).off(".owl.core"),!1!==this.settings.responsive&amp;&amp;(n.clearTimeout(this.resizeTimer),this.off(n,"resize",this._handlers.onThrottledResize)),this._plugins)this._plugins[t].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},c.prototype.op=function(t,e,n){var i=this.settings.rtl;switch(e){case"&lt;":return i?n&lt;t:t&lt;n;case"&gt;":return i?t&lt;n:n&lt;t;case"&gt;=":return i?t&lt;=n:n&lt;=t;case"&lt;=":return i?n&lt;=t:t&lt;=n}},c.prototype.on=function(t,e,n,i){t.addEventListener?t.addEventListener(e,n,i):t.attachEvent&amp;&amp;t.attachEvent("on"+e,n)},c.prototype.off=function(t,e,n,i){t.removeEventListener?t.removeEventListener(e,n,i):t.detachEvent&amp;&amp;t.detachEvent("on"+e,n)},c.prototype.trigger=function(t,e,n,i,o){var s={item:{count:this._items.length,index:this.current()}},r=l.camelCase(l.grep(["on",t,n],function(t){return t}).join("-").toLowerCase()),a=l.Event([t,"owl",n||"carousel"].join(".").toLowerCase(),l.extend({relatedTarget:this},s,e));return this._supress[t]||(l.each(this._plugins,function(t,e){e.onTrigger&amp;&amp;e.onTrigger(a)}),this.register({type:c.Type.Event,name:t}),this.$element.trigger(a),this.settings&amp;&amp;"function"==typeof this.settings[r]&amp;&amp;this.settings[r].call(this,a)),a},c.prototype.enter=function(t){l.each([t].concat(this._states.tags[t]||[]),l.proxy(function(t,e){this._states.current[e]===s&amp;&amp;(this._states.current[e]=0),this._states.current[e]++},this))},c.prototype.leave=function(t){l.each([t].concat(this._states.tags[t]||[]),l.proxy(function(t,e){this._states.current[e]--},this))},c.prototype.register=function(n){if(n.type===c.Type.Event){if(l.event.special[n.name]||(l.event.special[n.name]={}),!l.event.special[n.name].owl){var e=l.event.special[n.name]._default;l.event.special[n.name]._default=function(t){return!e||!e.apply||t.namespace&amp;&amp;-1!==t.namespace.indexOf("owl")?t.namespace&amp;&amp;-1&lt;t.namespace.indexOf("owl"):e.apply(this,arguments)},l.event.special[n.name].owl=!0}}else n.type===c.Type.State&amp;&amp;(this._states.tags[n.name]?this._states.tags[n.name]=this._states.tags[n.name].concat(n.tags):this._states.tags[n.name]=n.tags,this._states.tags[n.name]=l.grep(this._states.tags[n.name],l.proxy(function(t,e){return l.inArray(t,this._states.tags[n.name])===e},this)))},c.prototype.suppress=function(t){l.each(t,l.proxy(function(t,e){this._supress[e]=!0},this))},c.prototype.release=function(t){l.each(t,l.proxy(function(t,e){delete this._supress[e]},this))},c.prototype.pointer=function(t){var e={x:null,y:null};return(t=(t=t.originalEvent||t||n.event).touches&amp;&amp;t.touches.length?t.touches[0]:t.changedTouches&amp;&amp;t.changedTouches.length?t.changedTouches[0]:t).pageX?(e.x=t.pageX,e.y=t.pageY):(e.x=t.clientX,e.y=t.clientY),e},c.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))},c.prototype.difference=function(t,e){return{x:t.x-e.x,y:t.y-e.y}},l.fn.owlCarousel=function(e){var i=Array.prototype.slice.call(arguments,1);return this.each(function(){var t=l(this),n=t.data("owl.carousel");n||(n=new c(this,"object"==typeof e&amp;&amp;e),t.data("owl.carousel",n),l.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(t,e){n.register({type:c.Type.Event,name:e}),n.$element.on(e+".owl.carousel.core",l.proxy(function(t){t.namespace&amp;&amp;t.relatedTarget!==this&amp;&amp;(this.suppress([e]),n[e].apply(this,[].slice.call(arguments,1)),this.release([e]))},n))})),"string"==typeof e&amp;&amp;"_"!==e.charAt(0)&amp;&amp;n[e].apply(n,i)})},l.fn.owlCarousel.Constructor=c}(window.Zepto||window.jQuery,window,document),function(e,n,t,i){var o=function(t){this._core=t,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":e.proxy(function(t){t.namespace&amp;&amp;this._core.settings.autoRefresh&amp;&amp;this.watch()},this)},this._core.options=e.extend({},o.Defaults,this._core.options),this._core.$element.on(this._handlers)};o.Defaults={autoRefresh:!0,autoRefreshInterval:500},o.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=n.setInterval(e.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},o.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&amp;&amp;(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&amp;&amp;this._core.invalidate("width")&amp;&amp;this._core.refresh())},o.prototype.destroy=function(){var t,e;for(t in n.clearInterval(this._interval),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},e.fn.owlCarousel.Constructor.Plugins.AutoRefresh=o}(window.Zepto||window.jQuery,window,document),function(a,s,t,e){var n=function(t){this._core=t,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(t){if(t.namespace&amp;&amp;this._core.settings&amp;&amp;this._core.settings.lazyLoad&amp;&amp;(t.property&amp;&amp;"position"==t.property.name||"initialized"==t.type))for(var e=this._core.settings,n=e.center&amp;&amp;Math.ceil(e.items/2)||e.items,i=e.center&amp;&amp;-1*n||0,o=(t.property&amp;&amp;void 0!==t.property.value?t.property.value:this._core.current())+i,s=this._core.clones().length,r=a.proxy(function(t,e){this.load(e)},this);i++&lt;n;)this.load(s/2+this._core.relative(o)),s&amp;&amp;a.each(this._core.clones(this._core.relative(o)),r),o++},this)},this._core.options=a.extend({},n.Defaults,this._core.options),this._core.$element.on(this._handlers)};n.Defaults={lazyLoad:!1},n.prototype.load=function(t){var e=this._core.$stage.children().eq(t),n=e&amp;&amp;e.find(".owl-lazy");!n||-1&lt;a.inArray(e.get(0),this._loaded)||(n.each(a.proxy(function(t,e){var n,i=a(e),o=1&lt;s.devicePixelRatio&amp;&amp;i.attr("data-src-retina")||i.attr("data-src");this._core.trigger("load",{element:i,url:o},"lazy"),i.is("img")?i.one("load.owl.lazy",a.proxy(function(){i.css("opacity",1),this._core.trigger("loaded",{element:i,url:o},"lazy")},this)).attr("src",o):((n=new Image).onload=a.proxy(function(){i.css({"background-image":'url("'+o+'")',opacity:"1"}),this._core.trigger("loaded",{element:i,url:o},"lazy")},this),n.src=o)},this)),this._loaded.push(e.get(0)))},n.prototype.destroy=function(){var t,e;for(t in this.handlers)this._core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=n}(window.Zepto||window.jQuery,window,document),function(s,t,e,n){var i=function(t){this._core=t,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.autoHeight&amp;&amp;this.update()},this),"changed.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.autoHeight&amp;&amp;"position"==t.property.name&amp;&amp;this.update()},this),"loaded.owl.lazy":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.autoHeight&amp;&amp;t.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&amp;&amp;this.update()},this)},this._core.options=s.extend({},i.Defaults,this._core.options),this._core.$element.on(this._handlers)};i.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},i.prototype.update=function(){var t,e=this._core._current,n=e+this._core.settings.items,i=this._core.$stage.children().toArray().slice(e,n),o=[];s.each(i,function(t,e){o.push(s(e).height())}),t=Math.max.apply(null,o),this._core.$stage.parent().height(t).addClass(this._core.settings.autoHeightClass)},i.prototype.destroy=function(){var t,e;for(t in this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},s.fn.owlCarousel.Constructor.Plugins.AutoHeight=i}(window.Zepto||window.jQuery,window,document),function(u,t,e,n){var i=function(t){this._core=t,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":u.proxy(function(t){t.namespace&amp;&amp;this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":u.proxy(function(t){t.namespace&amp;&amp;this._core.settings.video&amp;&amp;this.isInFullScreen()&amp;&amp;t.preventDefault()},this),"refreshed.owl.carousel":u.proxy(function(t){t.namespace&amp;&amp;this._core.is("resizing")&amp;&amp;this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":u.proxy(function(t){t.namespace&amp;&amp;"position"===t.property.name&amp;&amp;this._playing&amp;&amp;this.stop()},this),"prepared.owl.carousel":u.proxy(function(t){if(t.namespace){var e=u(t.content).find(".owl-video");e.length&amp;&amp;(e.css("display","none"),this.fetch(e,u(t.content)))}},this)},this._core.options=u.extend({},i.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",u.proxy(function(t){this.play(t)},this))};i.Defaults={video:!1,videoHeight:!1,videoWidth:!1},i.prototype.fetch=function(t,e){var n=t.attr("data-vimeo-id")?"vimeo":t.attr("data-vzaar-id")?"vzaar":"youtube",i=t.attr("data-vimeo-id")||t.attr("data-youtube-id")||t.attr("data-vzaar-id"),o=t.attr("data-width")||this._core.settings.videoWidth,s=t.attr("data-height")||this._core.settings.videoHeight,r=t.attr("href");if(!r)throw new Error("Missing video URL.");if(-1&lt;(i=r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&amp;\S+)?/))[3].indexOf("youtu"))n="youtube";else if(-1&lt;i[3].indexOf("vimeo"))n="vimeo";else{if(!(-1&lt;i[3].indexOf("vzaar")))throw new Error("Video URL not supported.");n="vzaar"}i=i[6],this._videos[r]={type:n,id:i,width:o,height:s},e.attr("data-video",r),this.thumbnail(t,this._videos[r])},i.prototype.thumbnail=function(e,t){var n,i,o=t.width&amp;&amp;t.height?'style="width:'+t.width+"px;height:"+t.height+'px;"':"",s=e.find("img"),r="src",a="",l=this._core.settings,c=function(t){'&lt;div class="owl-video-play-icon"&gt;&lt;/div&gt;',n=l.lazyLoad?'&lt;div class="owl-video-tn '+a+'" '+r+'="'+t+'"&gt;&lt;/div&gt;':'&lt;div class="owl-video-tn" style="opacity:1;background-image:url('+t+')"&gt;&lt;/div&gt;',e.after(n),e.after('&lt;div class="owl-video-play-icon"&gt;&lt;/div&gt;')};if(e.wrap('&lt;div class="owl-video-wrapper"'+o+"&gt;&lt;/div&gt;"),this._core.settings.lazyLoad&amp;&amp;(r="data-src",a="owl-lazy"),s.length)return c(s.attr(r)),s.remove(),!1;"youtube"===t.type?(i="//img.youtube.com/vi/"+t.id+"/hqdefault.jpg",c(i)):"vimeo"===t.type?u.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+t.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){i=t[0].thumbnail_large,c(i)}}):"vzaar"===t.type&amp;&amp;u.ajax({type:"GET",url:"//vzaar.com/api/videos/"+t.id+".json",jsonp:"callback",dataType:"jsonp",success:function(t){i=t.framegrab_url,c(i)}})},i.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},i.prototype.play=function(t){var e,n=u(t.target).closest("."+this._core.settings.itemClass),i=this._videos[n.attr("data-video")],o=i.width||"100%",s=i.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),n=this._core.items(this._core.relative(n.index())),this._core.reset(n.index()),"youtube"===i.type?e='&lt;iframe width="'+o+'" height="'+s+'" src="//www.youtube.com/embed/'+i.id+"?autoplay=1&amp;rel=0&amp;v="+i.id+'" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;':"vimeo"===i.type?e='&lt;iframe src="//player.vimeo.com/video/'+i.id+'?autoplay=1" width="'+o+'" height="'+s+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;':"vzaar"===i.type&amp;&amp;(e='&lt;iframe frameborder="0"height="'+s+'"width="'+o+'" allowfullscreen mozallowfullscreen webkitAllowFullScreen src="//view.vzaar.com/'+i.id+'/player?autoplay=true"&gt;&lt;/iframe&gt;'),u('&lt;div class="owl-video-frame"&gt;'+e+"&lt;/div&gt;").insertAfter(n.find(".owl-video")),this._playing=n.addClass("owl-video-playing"))},i.prototype.isInFullScreen=function(){var t=e.fullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement;return t&amp;&amp;u(t).parent().hasClass("owl-video-frame")},i.prototype.destroy=function(){var t,e;for(t in this._core.$element.off("click.owl.video"),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},u.fn.owlCarousel.Constructor.Plugins.Video=i}(window.Zepto||window.jQuery,window,document),function(r,t,e,n){var i=function(t){this.core=t,this.core.options=r.extend({},i.Defaults,this.core.options),this.swapping=!0,this.previous=void 0,this.next=void 0,this.handlers={"change.owl.carousel":r.proxy(function(t){t.namespace&amp;&amp;"position"==t.property.name&amp;&amp;(this.previous=this.core.current(),this.next=t.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":r.proxy(function(t){t.namespace&amp;&amp;(this.swapping="translated"==t.type)},this),"translate.owl.carousel":r.proxy(function(t){t.namespace&amp;&amp;this.swapping&amp;&amp;(this.core.options.animateOut||this.core.options.animateIn)&amp;&amp;this.swap()},this)},this.core.$element.on(this.handlers)};i.Defaults={animateOut:!1,animateIn:!1},i.prototype.swap=function(){if(1===this.core.settings.items&amp;&amp;r.support.animation&amp;&amp;r.support.transition){this.core.speed(0);var t,e=r.proxy(this.clear,this),n=this.core.$stage.children().eq(this.previous),i=this.core.$stage.children().eq(this.next),o=this.core.settings.animateIn,s=this.core.settings.animateOut;this.core.current()!==this.previous&amp;&amp;(s&amp;&amp;(t=this.core.coordinates(this.previous)-this.core.coordinates(this.next),n.one(r.support.animation.end,e).css({left:t+"px"}).addClass("animated owl-animated-out").addClass(s)),o&amp;&amp;i.one(r.support.animation.end,e).addClass("animated owl-animated-in").addClass(o))}},i.prototype.clear=function(t){r(t.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},i.prototype.destroy=function(){var t,e;for(t in this.handlers)this.core.$element.off(t,this.handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},r.fn.owlCarousel.Constructor.Plugins.Animate=i}(window.Zepto||window.jQuery,window,document),function(n,i,o,t){var e=function(t){this._core=t,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":n.proxy(function(t){t.namespace&amp;&amp;"settings"===t.property.name?this._core.settings.autoplay?this.play():this.stop():t.namespace&amp;&amp;"position"===t.property.name&amp;&amp;this._core.settings.autoplay&amp;&amp;this._setAutoPlayInterval()},this),"initialized.owl.carousel":n.proxy(function(t){t.namespace&amp;&amp;this._core.settings.autoplay&amp;&amp;this.play()},this),"play.owl.autoplay":n.proxy(function(t,e,n){t.namespace&amp;&amp;this.play(e,n)},this),"stop.owl.autoplay":n.proxy(function(t){t.namespace&amp;&amp;this.stop()},this),"mouseover.owl.autoplay":n.proxy(function(){this._core.settings.autoplayHoverPause&amp;&amp;this._core.is("rotating")&amp;&amp;this.pause()},this),"mouseleave.owl.autoplay":n.proxy(function(){this._core.settings.autoplayHoverPause&amp;&amp;this._core.is("rotating")&amp;&amp;this.play()},this),"touchstart.owl.core":n.proxy(function(){this._core.settings.autoplayHoverPause&amp;&amp;this._core.is("rotating")&amp;&amp;this.pause()},this),"touchend.owl.core":n.proxy(function(){this._core.settings.autoplayHoverPause&amp;&amp;this.play()},this)},this._core.$element.on(this._handlers),this._core.options=n.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(t,e){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(t,e){return this._timeout&amp;&amp;i.clearTimeout(this._timeout),i.setTimeout(n.proxy(function(){this._paused||this._core.is("busy")||this._core.is("interacting")||o.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),t||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is("rotating")&amp;&amp;(i.clearTimeout(this._timeout),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&amp;&amp;(this._paused=!0)},e.prototype.destroy=function(){var t,e;for(t in this.stop(),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},n.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(s,t,e,n){"use strict";var i=function(t){this._core=t,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.dotsData&amp;&amp;this._templates.push('&lt;div class="'+this._core.settings.dotClass+'"&gt;'+s(t.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"&lt;/div&gt;")},this),"added.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.dotsData&amp;&amp;this._templates.splice(t.position,0,this._templates.pop())},this),"remove.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._core.settings.dotsData&amp;&amp;this._templates.splice(t.position,1)},this),"changed.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;"position"==t.property.name&amp;&amp;this.draw()},this),"initialized.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;!this._initialized&amp;&amp;(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":s.proxy(function(t){t.namespace&amp;&amp;this._initialized&amp;&amp;(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=s.extend({},i.Defaults,this._core.options),this.$element.on(this._handlers)};i.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},i.prototype.initialize=function(){var t,n=this._core.settings;for(t in this._controls.$relative=(n.navContainer?s(n.navContainer):s("&lt;div&gt;").addClass(n.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=s("&lt;"+n.navElement+"&gt;").addClass(n.navClass[0]).html(n.navText[0]).prependTo(this._controls.$relative).on("click",s.proxy(function(t){this.prev(n.navSpeed)},this)),this._controls.$next=s("&lt;"+n.navElement+"&gt;").addClass(n.navClass[1]).html(n.navText[1]).appendTo(this._controls.$relative).on("click",s.proxy(function(t){this.next(n.navSpeed)},this)),n.dotsData||(this._templates=[s("&lt;div&gt;").addClass(n.dotClass).append(s("&lt;span&gt;")).prop("outerHTML")]),this._controls.$absolute=(n.dotsContainer?s(n.dotsContainer):s("&lt;div&gt;").addClass(n.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",s.proxy(function(t){var e=s(t.target).parent().is(this._controls.$absolute)?s(t.target).index():s(t.target).parent().index();t.preventDefault(),this.to(e,n.dotsSpeed)},this)),this._overrides)this._core[t]=s.proxy(this[t],this)},i.prototype.destroy=function(){var t,e,n,i;for(t in this._handlers)this.$element.off(t,this._handlers[t]);for(e in this._controls)this._controls[e].remove();for(i in this.overides)this._core[i]=this._overrides[i];for(n in Object.getOwnPropertyNames(this))"function"!=typeof this[n]&amp;&amp;(this[n]=null)},i.prototype.update=function(){var t,e,n=this._core.clones().length/2,i=n+this._core.items().length,o=this._core.maximum(!0),s=this._core.settings,r=s.center||s.autoWidth||s.dotsData?1:s.dotsEach||s.items;if("page"!==s.slideBy&amp;&amp;(s.slideBy=Math.min(s.slideBy,s.items)),s.dots||"page"==s.slideBy)for(this._pages=[],t=n,e=0;t&lt;i;t++){if(r&lt;=e||0===e){if(this._pages.push({start:Math.min(o,t-n),end:t-n+r-1}),Math.min(o,t-n)===o)break;e=0,0}e+=this._core.mergers(this._core.relative(t))}},i.prototype.draw=function(){var t,e=this._core.settings,n=this._core.items().length&lt;=e.items,i=this._core.relative(this._core.current()),o=e.loop||e.rewind;this._controls.$relative.toggleClass("disabled",!e.nav||n),e.nav&amp;&amp;(this._controls.$previous.toggleClass("disabled",!o&amp;&amp;i&lt;=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!o&amp;&amp;i&gt;=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!e.dots||n),e.dots&amp;&amp;(t=this._pages.length-this._controls.$absolute.children().length,e.dotsData&amp;&amp;0!==t?this._controls.$absolute.html(this._templates.join("")):0&lt;t?this._controls.$absolute.append(new Array(t+1).join(this._templates[0])):t&lt;0&amp;&amp;this._controls.$absolute.children().slice(t).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(s.inArray(this.current(),this._pages)).addClass("active"))},i.prototype.onTrigger=function(t){var e=this._core.settings;t.page={index:s.inArray(this.current(),this._pages),count:this._pages.length,size:e&amp;&amp;(e.center||e.autoWidth||e.dotsData?1:e.dotsEach||e.items)}},i.prototype.current=function(){var n=this._core.relative(this._core.current());return s.grep(this._pages,s.proxy(function(t,e){return t.start&lt;=n&amp;&amp;t.end&gt;=n},this)).pop()},i.prototype.getPosition=function(t){var e,n,i=this._core.settings;return"page"==i.slideBy?(e=s.inArray(this.current(),this._pages),n=this._pages.length,t?++e:--e,e=this._pages[(e%n+n)%n].start):(e=this._core.relative(this._core.current()),n=this._core.items().length,t?e+=i.slideBy:e-=i.slideBy),e},i.prototype.next=function(t){s.proxy(this._overrides.to,this._core)(this.getPosition(!0),t)},i.prototype.prev=function(t){s.proxy(this._overrides.to,this._core)(this.getPosition(!1),t)},i.prototype.to=function(t,e,n){var i;!n&amp;&amp;this._pages.length?(i=this._pages.length,s.proxy(this._overrides.to,this._core)(this._pages[(t%i+i)%i].start,e)):s.proxy(this._overrides.to,this._core)(t,e)},s.fn.owlCarousel.Constructor.Plugins.Navigation=i}(window.Zepto||window.jQuery,window,document),function(i,o,t,e){"use strict";var n=function(t){this._core=t,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":i.proxy(function(t){t.namespace&amp;&amp;"URLHash"===this._core.settings.startPosition&amp;&amp;i(o).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":i.proxy(function(t){if(t.namespace){var e=i(t.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!e)return;this._hashes[e]=t.content}},this),"changed.owl.carousel":i.proxy(function(t){if(t.namespace&amp;&amp;"position"===t.property.name){var n=this._core.items(this._core.relative(this._core.current())),e=i.map(this._hashes,function(t,e){return t===n?e:null}).join();if(!e||o.location.hash.slice(1)===e)return;o.location.hash=e}},this)},this._core.options=i.extend({},n.Defaults,this._core.options),this.$element.on(this._handlers),i(o).on("hashchange.owl.navigation",i.proxy(function(t){var e=o.location.hash.substring(1),n=this._core.$stage.children(),i=this._hashes[e]&amp;&amp;n.index(this._hashes[e]);void 0!==i&amp;&amp;i!==this._core.current()&amp;&amp;this._core.to(this._core.relative(i),!1,!0)},this))};n.Defaults={URLhashListener:!1},n.prototype.destroy=function(){var t,e;for(t in i(o).off("hashchange.owl.navigation"),this._handlers)this._core.$element.off(t,this._handlers[t]);for(e in Object.getOwnPropertyNames(this))"function"!=typeof this[e]&amp;&amp;(this[e]=null)},i.fn.owlCarousel.Constructor.Plugins.Hash=n}(window.Zepto||window.jQuery,window,document),function(o,t,e,s){var r=o("&lt;support&gt;").get(0).style,a="Webkit Moz O ms".split(" "),n={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},i=function(){return!!u("transform")},l=function(){return!!u("perspective")},c=function(){return!!u("animation")};function u(t,n){var i=!1,e=t.charAt(0).toUpperCase()+t.slice(1);return o.each((t+" "+a.join(e+" ")+e).split(" "),function(t,e){if(r[e]!==s)return i=!n||e,!1}),i}function h(t){return u(t,!0)}(function(){return!!u("transition")})()&amp;&amp;(o.support.transition=new String(h("transition")),o.support.transition.end=n.transition.end[o.support.transition]),c()&amp;&amp;(o.support.animation=new String(h("animation")),o.support.animation.end=n.animation.end[o.support.animation]),i()&amp;&amp;(o.support.transform=new String(h("transform")),o.support.transform3d=l())}(window.Zepto||window.jQuery,window,document),function(c,a,g,m){"use strict";function n(t){var e=g(t.currentTarget),n=t.data?t.data.options:{},i=e.attr("data-fancybox")||"",o=0,s=[];t.isDefaultPrevented()||(t.preventDefault(),i?(o=(s=(s=n.selector?g(n.selector):t.data?t.data.items:[]).length?s.filter('[data-fancybox="'+i+'"]'):g('[data-fancybox="'+i+'"]')).index(e))&lt;0&amp;&amp;(o=0):s=[e],g.fancybox.open(s,n,o))}if(g){if(g.fn.fancybox)return"console"in c&amp;&amp;console.log("fancyBox already initialized");var o={loop:!1,margin:[44,0],gutter:50,keyboard:!0,arrows:!0,infobar:!0,toolbar:!0,buttons:["slideShow","fullScreen","thumbs","share","close"],idleTime:3,smallBtn:"auto",protect:!1,modal:!1,image:{preload:"auto"},ajax:{settings:{data:{fancybox:!0}}},iframe:{tpl:'&lt;iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen allowtransparency="true" src=""&gt;&lt;/iframe&gt;',preload:!0,css:{},attr:{scrolling:"auto"}},defaultType:"image",animationEffect:"zoom",animationDuration:500,zoomOpacity:"auto",transitionEffect:"fade",transitionDuration:366,slideClass:"",baseClass:"",baseTpl:'&lt;div class="fancybox-container" role="dialog" tabindex="-1"&gt;&lt;div class="fancybox-bg"&gt;&lt;/div&gt;&lt;div class="fancybox-inner"&gt;&lt;div class="fancybox-infobar"&gt;&lt;span data-fancybox-index&gt;&lt;/span&gt;&amp;nbsp;/&amp;nbsp;&lt;span data-fancybox-count&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="fancybox-toolbar"&gt;{{buttons}}&lt;/div&gt;&lt;div class="fancybox-navigation"&gt;{{arrows}}&lt;/div&gt;&lt;div class="fancybox-stage"&gt;&lt;/div&gt;&lt;div class="fancybox-caption-wrap"&gt;&lt;div class="fancybox-caption"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;',spinnerTpl:'&lt;div class="fancybox-loading"&gt;&lt;/div&gt;',errorTpl:'&lt;div class="fancybox-error"&gt;&lt;p&gt;{{ERROR}}&lt;p&gt;&lt;/div&gt;',btnTpl:{download:'&lt;a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M20,23 L20,8 L20,23 L13,16 L20,23 L27,16 L20,23 M9,28 L31,28" /&gt;&lt;/svg&gt;&lt;/a&gt;',close:'&lt;button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M10,10 L30,30 M30,10 L10,30" /&gt;&lt;/svg&gt;&lt;/button&gt;',smallBtn:'&lt;button data-fancybox-close class="fancybox-close-small" title="{{CLOSE}}"&gt;&lt;/button&gt;',arrowLeft:'&lt;button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M10,20 L30,20 L10,20 L18,28 L10,20 L18,12 L10,20"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;',arrowRight:'&lt;button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M30,20 L10,20 L30,20 L22,28 L30,20 L22,12 L30,20"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;'},parentEl:"body",autoFocus:!1,backFocus:!0,trapFocus:!0,fullScreen:{autoStart:!1},touch:{vertical:!0,momentum:!0},hash:null,media:{},slideShow:{autoStart:!1,speed:4e3},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container"},onInit:g.noop,beforeLoad:g.noop,afterLoad:g.noop,beforeShow:g.noop,afterShow:g.noop,beforeClose:g.noop,afterClose:g.noop,onActivate:g.noop,onDeactivate:g.noop,clickContent:function(t,e){return"image"===t.type&amp;&amp;"zoom"},clickSlide:"close",clickOutside:"close",dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1,mobile:{margin:0,clickContent:function(t,e){return"image"===t.type&amp;&amp;"toggleControls"},clickSlide:function(t,e){return"image"===t.type?"toggleControls":"close"},dblclickContent:function(t,e){return"image"===t.type&amp;&amp;"zoom"},dblclickSlide:function(t,e){return"image"===t.type&amp;&amp;"zoom"}},lang:"en",i18n:{en:{CLOSE:"Close",NEXT:"Next",PREV:"Previous",ERROR:"The requested content cannot be loaded. &lt;br/&gt; Please try again later.",PLAY_START:"Start slideshow",PLAY_STOP:"Pause slideshow",FULL_SCREEN:"Full screen",THUMBS:"Thumbnails",DOWNLOAD:"Download",SHARE:"Share"},de:{CLOSE:"Schliessen",NEXT:"Weiter",PREV:"ZurГјck",ERROR:"Die angeforderten Daten konnten nicht geladen werden. &lt;br/&gt; Bitte versuchen Sie es spГ¤ter nochmal.",PLAY_START:"Diaschau starten",PLAY_STOP:"Diaschau beenden",FULL_SCREEN:"Vollbild",THUMBS:"Vorschaubilder",DOWNLOAD:"Herunterladen",SHARE:"Teilen"}}},s=g(c),l=g(a),r=0,h=c.requestAnimationFrame||c.webkitRequestAnimationFrame||c.mozRequestAnimationFrame||c.oRequestAnimationFrame||function(t){return c.setTimeout(t,1e3/60)},d=function(){var t,e=a.createElement("fakeelement"),n={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in n)if(e.style[t]!==m)return n[t]}(),p=function(t){return t&amp;&amp;t.length&amp;&amp;t[0].offsetHeight},i=function(t,e,n){var i=this;i.opts=g.extend(!0,{index:n},o,e||{}),g.fancybox.isMobile&amp;&amp;(i.opts=g.extend(!0,{},i.opts,i.opts.mobile)),e&amp;&amp;g.isArray(e.buttons)&amp;&amp;(i.opts.buttons=e.buttons),i.id=i.opts.id||++r,i.group=[],i.currIndex=parseInt(i.opts.index,10)||0,i.prevIndex=null,i.prevPos=null,i.currPos=0,i.firstRun=null,i.createGroup(t),i.group.length&amp;&amp;(i.$lastFocus=g(a.activeElement).blur(),i.slides={},i.init())};g.extend(i.prototype,{init:function(){var t,e,n,i=this,o=i.group[i.currIndex],s=o.opts,r=g.fancybox.scrollbarWidth;i.scrollTop=l.scrollTop(),i.scrollLeft=l.scrollLeft(),g.fancybox.getInstance()||(g("body").addClass("fancybox-active"),/iPad|iPhone|iPod/.test(navigator.userAgent)&amp;&amp;!c.MSStream?"image"!==o.type&amp;&amp;g("body").css("top",-1*g("body").scrollTop()).addClass("fancybox-iosfix"):!g.fancybox.isMobile&amp;&amp;a.body.scrollHeight&gt;c.innerHeight&amp;&amp;(r===m&amp;&amp;(t=g('&lt;div style="width:50px;height:50px;overflow:scroll;" /&gt;').appendTo("body"),r=g.fancybox.scrollbarWidth=t[0].offsetWidth-t[0].clientWidth,t.remove()),g("head").append('&lt;style id="fancybox-style-noscroll" type="text/css"&gt;.compensate-for-scrollbar { margin-right: '+r+"px; }&lt;/style&gt;"),g("body").addClass("compensate-for-scrollbar"))),n="",g.each(s.buttons,function(t,e){n+=s.btnTpl[e]||""}),e=g(i.translate(i,s.baseTpl.replace("{{buttons}}",n).replace("{{arrows}}",s.btnTpl.arrowLeft+s.btnTpl.arrowRight))).attr("id","fancybox-container-"+i.id).addClass("fancybox-is-hidden").addClass(s.baseClass).data("FancyBox",i).appendTo(s.parentEl),i.$refs={container:e},["bg","inner","infobar","toolbar","stage","caption","navigation"].forEach(function(t){i.$refs[t]=e.find(".fancybox-"+t)}),i.trigger("onInit"),i.activate(),i.jumpTo(i.currIndex)},translate:function(t,e){var i=t.opts.i18n[t.opts.lang];return e.replace(/\{\{(\w+)\}\}/g,function(t,e){var n=i[e];return n===m?t:n})},createGroup:function(t){var l=this,e=g.makeArray(t);g.each(e,function(t,e){var n,i,o,s,r={},a={};g.isPlainObject(e)?a=(r=e).opts||e:"object"===g.type(e)&amp;&amp;g(e).length?(a=(n=g(e)).data(),(a=g.extend({},a,a.options||{})).$orig=n,r.src=a.src||n.attr("href"),r.type||r.src||(r.type="inline",r.src=e)):r={type:"html",src:e+""},r.opts=g.extend(!0,{},l.opts,a),g.isArray(a.buttons)&amp;&amp;(r.opts.buttons=a.buttons),i=r.type||r.opts.type,o=r.src||"",!i&amp;&amp;o&amp;&amp;(o.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?i="image":o.match(/\.(pdf)((\?|#).*)?$/i)?i="pdf":"#"===o.charAt(0)&amp;&amp;(i="inline")),i?r.type=i:l.trigger("objectNeedsType",r),r.index=l.group.length,r.opts.$orig&amp;&amp;!r.opts.$orig.length&amp;&amp;delete r.opts.$orig,!r.opts.$thumb&amp;&amp;r.opts.$orig&amp;&amp;(r.opts.$thumb=r.opts.$orig.find("img:first")),r.opts.$thumb&amp;&amp;!r.opts.$thumb.length&amp;&amp;delete r.opts.$thumb,"function"===g.type(l.opts.caption)&amp;&amp;(r.opts.caption=l.opts.caption.apply(e,[l,r])),r.opts.caption instanceof g||(r.opts.caption=r.opts.caption===m?"":r.opts.caption+""),"ajax"===i&amp;&amp;(1&lt;(s=o.split(/\s+/,2)).length&amp;&amp;(r.src=s.shift(),r.opts.filter=s.shift())),"auto"==r.opts.smallBtn&amp;&amp;(-1&lt;g.inArray(i,["html","inline","ajax"])?(r.opts.toolbar=!1,r.opts.smallBtn=!0):r.opts.smallBtn=!1),"pdf"===i&amp;&amp;(r.type="iframe",r.opts.iframe.preload=!1),r.opts.modal&amp;&amp;(r.opts=g.extend(!0,r.opts,{infobar:0,toolbar:0,smallBtn:0,keyboard:0,slideShow:0,fullScreen:0,thumbs:0,touch:0,clickContent:!1,clickSlide:!1,clickOutside:!1,dblclickContent:!1,dblclickSlide:!1,dblclickOutside:!1})),l.group.push(r)})},addEvents:function(){var i=this;i.removeEvents(),i.$refs.container.on("click.fb-close","[data-fancybox-close]",function(t){t.stopPropagation(),t.preventDefault(),i.close(t)}).on("click.fb-prev touchend.fb-prev","[data-fancybox-prev]",function(t){t.stopPropagation(),t.preventDefault(),i.previous()}).on("click.fb-next touchend.fb-next","[data-fancybox-next]",function(t){t.stopPropagation(),t.preventDefault(),i.next()}),s.on("orientationchange.fb resize.fb",function(t){t&amp;&amp;t.originalEvent&amp;&amp;"resize"===t.originalEvent.type?h(function(){i.update()}):(i.$refs.stage.hide(),setTimeout(function(){i.$refs.stage.show(),i.update()},600))}),l.on("focusin.fb",function(t){var e=g.fancybox?g.fancybox.getInstance():null;e.isClosing||!e.current||!e.current.opts.trapFocus||g(t.target).hasClass("fancybox-container")||g(t.target).is(a)||e&amp;&amp;"fixed"!==g(t.target).css("position")&amp;&amp;!e.$refs.container.has(t.target).length&amp;&amp;(t.stopPropagation(),e.focus(),s.scrollTop(i.scrollTop).scrollLeft(i.scrollLeft))}),l.on("keydown.fb",function(t){var e=i.current,n=t.keyCode||t.which;if(e&amp;&amp;e.opts.keyboard&amp;&amp;!g(t.target).is("input")&amp;&amp;!g(t.target).is("textarea"))return 8===n||27===n?(t.preventDefault(),void i.close(t)):37===n||38===n?(t.preventDefault(),void i.previous()):39===n||40===n?(t.preventDefault(),void i.next()):void i.trigger("afterKeydown",t,n)}),i.group[i.currIndex].opts.idleTime&amp;&amp;(i.idleSecondsCounter=0,l.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",function(t){i.idleSecondsCounter=0,i.isIdle&amp;&amp;i.showControls(),i.isIdle=!1}),i.idleInterval=c.setInterval(function(){i.idleSecondsCounter++,i.idleSecondsCounter&gt;=i.group[i.currIndex].opts.idleTime&amp;&amp;(i.isIdle=!0,i.idleSecondsCounter=0,i.hideControls())},1e3))},removeEvents:function(){s.off("orientationchange.fb resize.fb"),l.off("focusin.fb keydown.fb .fb-idle"),this.$refs.container.off(".fb-close .fb-prev .fb-next"),this.idleInterval&amp;&amp;(c.clearInterval(this.idleInterval),this.idleInterval=null)},previous:function(t){return this.jumpTo(this.currPos-1,t)},next:function(t){return this.jumpTo(this.currPos+1,t)},jumpTo:function(t,i,e){var n,o,s,r,a,l,c,u=this,h=u.group.length;if(!(u.isSliding||u.isClosing||u.isAnimating&amp;&amp;u.firstRun)){if(t=parseInt(t,10),!(o=u.current?u.current.opts.loop:u.opts.loop)&amp;&amp;(t&lt;0||h&lt;=t))return!1;if(n=u.firstRun=null===u.firstRun,!(h&lt;2&amp;&amp;!n&amp;&amp;u.isSliding)){if(r=u.current,u.prevIndex=u.currIndex,u.prevPos=u.currPos,s=u.createSlide(t),1&lt;h&amp;&amp;((o||0&lt;s.index)&amp;&amp;u.createSlide(t-1),(o||s.index&lt;h-1)&amp;&amp;u.createSlide(t+1)),u.current=s,u.currIndex=s.index,u.currPos=s.pos,u.trigger("beforeShow",n),u.updateControls(),l=g.fancybox.getTranslate(s.$slide),s.isMoved=(0!==l.left||0!==l.top)&amp;&amp;!s.$slide.hasClass("fancybox-animated"),s.forcedDuration=m,g.isNumeric(i)?s.forcedDuration=i:i=s.opts[n?"animationDuration":"transitionDuration"],i=parseInt(i,10),n)return s.opts.animationEffect&amp;&amp;i&amp;&amp;u.$refs.container.css("transition-duration",i+"ms"),u.$refs.container.removeClass("fancybox-is-hidden"),p(u.$refs.container),u.$refs.container.addClass("fancybox-is-open"),s.$slide.addClass("fancybox-slide--current"),u.loadSlide(s),void u.preload();g.each(u.slides,function(t,e){g.fancybox.stop(e.$slide)}),s.$slide.removeClass("fancybox-slide--next fancybox-slide--previous").addClass("fancybox-slide--current"),s.isMoved?(a=Math.round(s.$slide.width()),g.each(u.slides,function(t,e){var n=e.pos-s.pos;g.fancybox.animate(e.$slide,{top:0,left:n*a+n*e.opts.gutter},i,function(){e.$slide.removeAttr("style").removeClass("fancybox-slide--next fancybox-slide--previous"),e.pos===u.currPos&amp;&amp;(s.isMoved=!1,u.complete())})})):u.$refs.stage.children().removeAttr("style"),s.isLoaded?u.revealContent(s):u.loadSlide(s),u.preload(),r.pos!==s.pos&amp;&amp;(c="fancybox-slide--"+(r.pos&gt;s.pos?"next":"previous"),r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous"),r.isComplete=!1,i&amp;&amp;(s.isMoved||s.opts.transitionEffect)&amp;&amp;(s.isMoved?r.$slide.addClass(c):(c="fancybox-animated "+c+" fancybox-fx-"+s.opts.transitionEffect,g.fancybox.animate(r.$slide,c,i,function(){r.$slide.removeClass(c).removeAttr("style")}))))}}},createSlide:function(t){var e,n,i=this;return n=(n=t%i.group.length)&lt;0?i.group.length+n:n,!i.slides[t]&amp;&amp;i.group[n]&amp;&amp;(e=g('&lt;div class="fancybox-slide"&gt;&lt;/div&gt;').appendTo(i.$refs.stage),i.slides[t]=g.extend(!0,{},i.group[n],{pos:t,$slide:e,isLoaded:!1}),i.updateSlide(i.slides[t])),i.slides[t]},scaleToActual:function(t,e,n){var i,o,s,r,a,l=this,c=l.current,u=c.$content,h=parseInt(c.$slide.width(),10),d=parseInt(c.$slide.height(),10),p=c.width,f=c.height;"image"!=c.type||c.hasError||!u||l.isAnimating||(g.fancybox.stop(u),l.isAnimating=!0,t=t===m?.5*h:t,e=e===m?.5*d:e,r=p/(i=g.fancybox.getTranslate(u)).width,a=f/i.height,o=.5*h-.5*p,s=.5*d-.5*f,h&lt;p&amp;&amp;(0&lt;(o=i.left*r-(t*r-t))&amp;&amp;(o=0),o&lt;h-p&amp;&amp;(o=h-p)),d&lt;f&amp;&amp;(0&lt;(s=i.top*a-(e*a-e))&amp;&amp;(s=0),s&lt;d-f&amp;&amp;(s=d-f)),l.updateCursor(p,f),g.fancybox.animate(u,{top:s,left:o,scaleX:r,scaleY:a},n||330,function(){l.isAnimating=!1}),l.SlideShow&amp;&amp;l.SlideShow.isActive&amp;&amp;l.SlideShow.stop())},scaleToFit:function(t){var e,n=this,i=n.current,o=i.$content;"image"!=i.type||i.hasError||!o||n.isAnimating||(g.fancybox.stop(o),n.isAnimating=!0,e=n.getFitPos(i),n.updateCursor(e.width,e.height),g.fancybox.animate(o,{top:e.top,left:e.left,scaleX:e.width/o.width(),scaleY:e.height/o.height()},t||330,function(){n.isAnimating=!1}))},getFitPos:function(t){var e,n,i,o,s,r=t.$content,a=t.width,l=t.height,c=t.opts.margin;return!(!r||!r.length||!a&amp;&amp;!l)&amp;&amp;("number"===g.type(c)&amp;&amp;(c=[c,c]),2==c.length&amp;&amp;(c=[c[0],c[1],c[0],c[1]]),e=parseInt(this.$refs.stage.width(),10)-(c[1]+c[3]),n=parseInt(this.$refs.stage.height(),10)-(c[0]+c[2]),i=Math.min(1,e/a,n/l),o=Math.floor(i*a),s=Math.floor(i*l),{top:Math.floor(.5*(n-s))+c[0],left:Math.floor(.5*(e-o))+c[3],width:o,height:s})},update:function(){var n=this;g.each(n.slides,function(t,e){n.updateSlide(e)})},updateSlide:function(t){var e=t.$content;e&amp;&amp;(t.width||t.height)&amp;&amp;(g.fancybox.stop(e),g.fancybox.setTranslate(e,this.getFitPos(t)),t.pos===this.currPos&amp;&amp;this.updateCursor()),t.$slide.trigger("refresh"),this.trigger("onUpdate",t)},updateCursor:function(t,e){var n=this,i=n.$refs.container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut");n.current&amp;&amp;!n.isClosing&amp;&amp;(n.isZoomable()?(i.addClass("fancybox-is-zoomable"),(t!==m&amp;&amp;e!==m?t&lt;n.current.width&amp;&amp;e&lt;n.current.height:n.isScaledDown())?i.addClass("fancybox-can-zoomIn"):n.current.opts.touch?i.addClass("fancybox-can-drag"):i.addClass("fancybox-can-zoomOut")):n.current.opts.touch&amp;&amp;i.addClass("fancybox-can-drag"))},isZoomable:function(){var t,e=this.current;if(e&amp;&amp;!this.isClosing)return!!("image"===e.type&amp;&amp;e.isLoaded&amp;&amp;!e.hasError&amp;&amp;("zoom"===e.opts.clickContent||g.isFunction(e.opts.clickContent)&amp;&amp;"zoom"===e.opts.clickContent(e))&amp;&amp;(t=this.getFitPos(e),e.width&gt;t.width||e.height&gt;t.height))},isScaledDown:function(){var t=this.current,e=t.$content,n=!1;return e&amp;&amp;(n=(n=g.fancybox.getTranslate(e)).width&lt;t.width||n.height&lt;t.height),n},canPan:function(){var t=this.current,e=t.$content,n=!1;return e&amp;&amp;(n=this.getFitPos(t),n=1&lt;Math.abs(e.width()-n.width)||1&lt;Math.abs(e.height()-n.height)),n},loadSlide:function(n){var t,e,i,o=this;if(!n.isLoading&amp;&amp;!n.isLoaded){switch(n.isLoading=!0,o.trigger("beforeLoad",n),t=n.type,(e=n.$slide).off("refresh").trigger("onReset").addClass("fancybox-slide--"+(t||"unknown")).addClass(n.opts.slideClass),t){case"image":o.setImage(n);break;case"iframe":o.setIframe(n);break;case"html":o.setContent(n,n.src||n.content);break;case"inline":g(n.src).length?o.setContent(n,g(n.src)):o.setError(n);break;case"ajax":o.showLoading(n),i=g.ajax(g.extend({},n.opts.ajax.settings,{url:n.src,success:function(t,e){"success"===e&amp;&amp;o.setContent(n,t)},error:function(t,e){t&amp;&amp;"abort"!==e&amp;&amp;o.setError(n)}})),e.one("onReset",function(){i.abort()});break;default:o.setError(n)}return!0}},setImage:function(t){var e,n,i,o,s=this,r=t.opts.srcset||t.opts.image.srcset;if(r){i=c.devicePixelRatio||1,o=c.innerWidth*i,(n=r.split(",").map(function(t){var i={};return t.trim().split(/\s+/).forEach(function(t,e){var n=parseInt(t.substring(0,t.length-1),10);return 0===e?i.url=t:void(n&amp;&amp;(i.value=n,i.postfix=t[t.length-1]))}),i})).sort(function(t,e){return t.value-e.value});for(var a=0;a&lt;n.length;a++){var l=n[a];if("w"===l.postfix&amp;&amp;l.value&gt;=o||"x"===l.postfix&amp;&amp;l.value&gt;=i){e=l;break}}!e&amp;&amp;n.length&amp;&amp;(e=n[n.length-1]),e&amp;&amp;(t.src=e.url,t.width&amp;&amp;t.height&amp;&amp;"w"==e.postfix&amp;&amp;(t.height=t.width/t.height*e.value,t.width=e.value))}t.$content=g('&lt;div class="fancybox-image-wrap"&gt;&lt;/div&gt;').addClass("fancybox-is-hidden").appendTo(t.$slide),!1!==t.opts.preload&amp;&amp;t.opts.width&amp;&amp;t.opts.height&amp;&amp;(t.opts.thumb||t.opts.$thumb)?(t.width=t.opts.width,t.height=t.opts.height,t.$ghost=g("&lt;img /&gt;").one("error",function(){g(this).remove(),t.$ghost=null,s.setBigImage(t)}).one("load",function(){s.afterLoad(t),s.setBigImage(t)}).addClass("fancybox-image").appendTo(t.$content).attr("src",t.opts.thumb||t.opts.$thumb.attr("src"))):s.setBigImage(t)},setBigImage:function(t){var e=this,n=g("&lt;img /&gt;");t.$image=n.one("error",function(){e.setError(t)}).one("load",function(){clearTimeout(t.timouts),t.timouts=null,e.isClosing||(t.width=this.naturalWidth,t.height=this.naturalHeight,t.opts.image.srcset&amp;&amp;n.attr("sizes","100vw").attr("srcset",t.opts.image.srcset),e.hideLoading(t),t.$ghost?t.timouts=setTimeout(function(){t.timouts=null,t.$ghost.hide()},Math.min(300,Math.max(1e3,t.height/1600))):e.afterLoad(t))}).addClass("fancybox-image").attr("src",t.src).appendTo(t.$content),(n[0].complete||"complete"==n[0].readyState)&amp;&amp;n[0].naturalWidth&amp;&amp;n[0].naturalHeight?n.trigger("load"):n[0].error?n.trigger("error"):t.timouts=setTimeout(function(){n[0].complete||t.hasError||e.showLoading(t)},100)},setIframe:function(s){var r,e=this,a=s.opts.iframe,t=s.$slide;s.$content=g('&lt;div class="fancybox-content'+(a.preload?" fancybox-is-hidden":"")+'"&gt;&lt;/div&gt;').css(a.css).appendTo(t),r=g(a.tpl.replace(/\{rnd\}/g,(new Date).getTime())).attr(a.attr).appendTo(s.$content),a.preload?(e.showLoading(s),r.on("load.fb error.fb",function(t){this.isReady=1,s.$slide.trigger("refresh"),e.afterLoad(s)}),t.on("refresh.fb",function(){var t,e,n=s.$content,i=a.css.width,o=a.css.height;if(1===r[0].isReady){try{e=r.contents().find("body")}catch(t){}e&amp;&amp;e.length&amp;&amp;(i===m&amp;&amp;(t=r[0].contentWindow.document.documentElement.scrollWidth,i=Math.ceil(e.outerWidth(!0)+(n.width()-t)),i+=n.outerWidth()-n.innerWidth()),o===m&amp;&amp;(o=Math.ceil(e.outerHeight(!0)),o+=n.outerHeight()-n.innerHeight()),i&amp;&amp;n.width(i),o&amp;&amp;n.height(o)),n.removeClass("fancybox-is-hidden")}})):this.afterLoad(s),r.attr("src",s.src),!0===s.opts.smallBtn&amp;&amp;s.$content.prepend(e.translate(s,s.opts.btnTpl.smallBtn)),t.one("onReset",function(){try{g(this).find("iframe").hide().attr("src","//about:blank")}catch(t){}g(this).empty(),s.isLoaded=!1})},setContent:function(t,e){var n;this.isClosing||(this.hideLoading(t),t.$slide.empty(),(n=e)&amp;&amp;n.hasOwnProperty&amp;&amp;n instanceof g&amp;&amp;e.parent().length?(e.parent(".fancybox-slide--inline").trigger("onReset"),t.$placeholder=g("&lt;div&gt;&lt;/div&gt;").hide().insertAfter(e),e.css("display","inline-block")):t.hasError||("string"===g.type(e)&amp;&amp;(3===(e=g("&lt;div&gt;").append(g.trim(e)).contents())[0].nodeType&amp;&amp;(e=g("&lt;div&gt;").html(e))),t.opts.filter&amp;&amp;(e=g("&lt;div&gt;").html(e).find(t.opts.filter))),t.$slide.one("onReset",function(){t.$placeholder&amp;&amp;(t.$placeholder.after(e.hide()).remove(),t.$placeholder=null),t.$smallBtn&amp;&amp;(t.$smallBtn.remove(),t.$smallBtn=null),t.hasError||(g(this).empty(),t.isLoaded=!1)}),t.$content=g(e).appendTo(t.$slide),this.afterLoad(t))},setError:function(t){t.hasError=!0,t.$slide.removeClass("fancybox-slide--"+t.type),this.setContent(t,this.translate(t,t.opts.errorTpl))},showLoading:function(t){(t=t||this.current)&amp;&amp;!t.$spinner&amp;&amp;(t.$spinner=g(this.opts.spinnerTpl).appendTo(t.$slide))},hideLoading:function(t){(t=t||this.current)&amp;&amp;t.$spinner&amp;&amp;(t.$spinner.remove(),delete t.$spinner)},afterLoad:function(t){var e=this;e.isClosing||(t.isLoading=!1,t.isLoaded=!0,e.trigger("afterLoad",t),e.hideLoading(t),t.opts.smallBtn&amp;&amp;!t.$smallBtn&amp;&amp;(t.$smallBtn=g(e.translate(t,t.opts.btnTpl.smallBtn)).appendTo(t.$content.filter("div,form").first())),t.opts.protect&amp;&amp;t.$content&amp;&amp;!t.hasError&amp;&amp;(t.$content.on("contextmenu.fb",function(t){return 2==t.button&amp;&amp;t.preventDefault(),!0}),"image"===t.type&amp;&amp;g('&lt;div class="fancybox-spaceball"&gt;&lt;/div&gt;').appendTo(t.$content)),e.revealContent(t))},revealContent:function(e){var t,n,i,o,s,r=this,a=e.$slide,l=!1;return t=e.opts[r.firstRun?"animationEffect":"transitionEffect"],i=e.opts[r.firstRun?"animationDuration":"transitionDuration"],i=parseInt(e.forcedDuration===m?i:e.forcedDuration,10),!e.isMoved&amp;&amp;e.pos===r.currPos&amp;&amp;i||(t=!1),"zoom"!==t||e.pos===r.currPos&amp;&amp;i&amp;&amp;"image"===e.type&amp;&amp;!e.hasError&amp;&amp;(l=r.getThumbPos(e))||(t="fade"),"zoom"===t?((s=r.getFitPos(e)).scaleX=s.width/l.width,s.scaleY=s.height/l.height,delete s.width,delete s.height,"auto"==(o=e.opts.zoomOpacity)&amp;&amp;(o=.1&lt;Math.abs(e.width/e.height-l.width/l.height)),o&amp;&amp;(l.opacity=.1,s.opacity=1),g.fancybox.setTranslate(e.$content.removeClass("fancybox-is-hidden"),l),p(e.$content),void g.fancybox.animate(e.$content,s,i,function(){r.complete()})):(r.updateSlide(e),t?(g.fancybox.stop(a),n="fancybox-animated fancybox-slide--"+(e.pos&gt;=r.prevPos?"next":"previous")+" fancybox-fx-"+t,a.removeAttr("style").removeClass("fancybox-slide--current fancybox-slide--next fancybox-slide--previous").addClass(n),e.$content.removeClass("fancybox-is-hidden"),p(a),void g.fancybox.animate(a,"fancybox-slide--current",i,function(t){a.removeClass(n).removeAttr("style"),e.pos===r.currPos&amp;&amp;r.complete()},!0)):(p(a),e.$content.removeClass("fancybox-is-hidden"),void(e.pos===r.currPos&amp;&amp;r.complete())))},getThumbPos:function(t){var e,n=!1,i=t.opts.$thumb,o=i?i.offset():0;return o&amp;&amp;i[0].ownerDocument===a&amp;&amp;function(t){for(var e=t[0],i=e.getBoundingClientRect(),n=[];null!==e.parentElement;)"hidden"!==g(e.parentElement).css("overflow")&amp;&amp;"auto"!==g(e.parentElement).css("overflow")||n.push(e.parentElement.getBoundingClientRect()),e=e.parentElement;return n.every(function(t){var e=Math.min(i.right,t.right)-Math.max(i.left,t.left),n=Math.min(i.bottom,t.bottom)-Math.max(i.top,t.top);return 0&lt;e&amp;&amp;0&lt;n})&amp;&amp;0&lt;i.bottom&amp;&amp;0&lt;i.right&amp;&amp;i.left&lt;g(c).width()&amp;&amp;i.top&lt;g(c).height()}(i)&amp;&amp;(e=this.$refs.stage.offset(),n={top:o.top-e.top+parseFloat(i.css("border-top-width")||0),left:o.left-e.left+parseFloat(i.css("border-left-width")||0),width:i.width(),height:i.height(),scaleX:1,scaleY:1}),n},complete:function(){var n=this,t=n.current,i={};t.isMoved||!t.isLoaded||t.isComplete||(t.isComplete=!0,t.$slide.siblings().trigger("onReset"),p(t.$slide),t.$slide.addClass("fancybox-slide--complete"),g.each(n.slides,function(t,e){e.pos&gt;=n.currPos-1&amp;&amp;e.pos&lt;=n.currPos+1?i[e.pos]=e:e&amp;&amp;(g.fancybox.stop(e.$slide),e.$slide.off().remove())}),n.slides=i,n.updateCursor(),n.trigger("afterShow"),(g(a.activeElement).is("[disabled]")||t.opts.autoFocus&amp;&amp;"image"!=t.type&amp;&amp;"iframe"!==t.type)&amp;&amp;n.focus())},preload:function(){var t,e,n=this;n.group.length&lt;2||(t=n.slides[n.currPos+1],e=n.slides[n.currPos-1],t&amp;&amp;"image"===t.type&amp;&amp;n.loadSlide(t),e&amp;&amp;"image"===e.type&amp;&amp;n.loadSlide(e))},focus:function(){var t,e=this.current;this.isClosing||(e&amp;&amp;e.isComplete&amp;&amp;((t=e.$slide.find("input[autofocus]:enabled:visible:first")).length||(t=e.$slide.find("button,:input,[tabindex],a").filter(":enabled:visible:first"))),(t=t&amp;&amp;t.length?t:this.$refs.container).focus())},activate:function(){var e=this;g(".fancybox-container").each(function(){var t=g(this).data("FancyBox");t&amp;&amp;t.id!==e.id&amp;&amp;!t.isClosing&amp;&amp;(t.trigger("onDeactivate"),t.removeEvents(),t.isVisible=!1)}),e.isVisible=!0,(e.current||e.isIdle)&amp;&amp;(e.update(),e.updateControls()),e.trigger("onActivate"),e.addEvents()},close:function(t,e){var n,i,o,s,r,a,l=this,c=l.current,u=function(){l.cleanUp(t)};return!l.isClosing&amp;&amp;(!(l.isClosing=!0)===l.trigger("beforeClose",t)?(l.isClosing=!1,h(function(){l.update()}),!1):(l.removeEvents(),c.timouts&amp;&amp;clearTimeout(c.timouts),o=c.$content,n=c.opts.animationEffect,i=g.isNumeric(e)?e:n?c.opts.animationDuration:0,c.$slide.off(d).removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"),c.$slide.siblings().trigger("onReset").remove(),i&amp;&amp;l.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing"),l.hideLoading(c),l.hideControls(),l.updateCursor(),"zoom"!==n||!0!==t&amp;&amp;o&amp;&amp;i&amp;&amp;"image"===c.type&amp;&amp;!c.hasError&amp;&amp;(a=l.getThumbPos(c))||(n="fade"),"zoom"===n?(g.fancybox.stop(o),(r=g.fancybox.getTranslate(o)).width=r.width*r.scaleX,r.height=r.height*r.scaleY,"auto"==(s=c.opts.zoomOpacity)&amp;&amp;(s=.1&lt;Math.abs(c.width/c.height-a.width/a.height)),s&amp;&amp;(a.opacity=0),r.scaleX=r.width/a.width,r.scaleY=r.height/a.height,r.width=a.width,r.height=a.height,g.fancybox.setTranslate(c.$content,r),g.fancybox.animate(c.$content,a,i,u)):n&amp;&amp;i?!0===t?setTimeout(u,i):g.fancybox.animate(c.$slide.removeClass("fancybox-slide--current"),"fancybox-animated fancybox-slide--previous fancybox-fx-"+n,i,u):u(),!0))},cleanUp:function(t){var e,n,i=this,o=g("body");i.current.$slide.trigger("onReset"),i.$refs.container.empty().remove(),i.trigger("afterClose",t),i.$lastFocus&amp;&amp;i.current.opts.backFocus&amp;&amp;i.$lastFocus.focus(),i.current=null,(e=g.fancybox.getInstance())?e.activate():(s.scrollTop(i.scrollTop).scrollLeft(i.scrollLeft),o.removeClass("fancybox-active compensate-for-scrollbar"),o.hasClass("fancybox-iosfix")&amp;&amp;(n=parseInt(a.body.style.top,10),o.removeClass("fancybox-iosfix").css("top","").scrollTop(-1*n)),g("#fancybox-style-noscroll").remove())},trigger:function(t,e){var n,i=Array.prototype.slice.call(arguments,1),o=this,s=e&amp;&amp;e.opts?e:o.current;return s?i.unshift(s):s=o,i.unshift(o),g.isFunction(s.opts[t])&amp;&amp;(n=s.opts[t].apply(s,i)),!1===n?n:void("afterClose"!==t&amp;&amp;o.$refs?o.$refs.container.trigger(t+".fb",i):l.trigger(t+".fb",i))},updateControls:function(t){var e=this,n=e.current,i=n.index,o=n.opts.caption,s=e.$refs.container,r=e.$refs.caption;n.$slide.trigger("refresh"),e.$caption=o&amp;&amp;o.length?r.html(o):null,e.isHiddenControls||e.isIdle||e.showControls(),s.find("[data-fancybox-count]").html(e.group.length),s.find("[data-fancybox-index]").html(i+1),s.find("[data-fancybox-prev]").prop("disabled",!n.opts.loop&amp;&amp;i&lt;=0),s.find("[data-fancybox-next]").prop("disabled",!n.opts.loop&amp;&amp;i&gt;=e.group.length-1),"image"===n.type?s.find("[data-fancybox-download]").attr("href",n.opts.image.src||n.src):s.find("[data-fancybox-download]").hide()},hideControls:function(){this.isHiddenControls=!0,this.$refs.container.removeClass("fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav")},showControls:function(){var t=this,e=t.current?t.current.opts:t.opts,n=t.$refs.container;t.isHiddenControls=!1,t.idleSecondsCounter=0,n.toggleClass("fancybox-show-toolbar",!(!e.toolbar||!e.buttons)).toggleClass("fancybox-show-infobar",!!(e.infobar&amp;&amp;1&lt;t.group.length)).toggleClass("fancybox-show-nav",!!(e.arrows&amp;&amp;1&lt;t.group.length)).toggleClass("fancybox-is-modal",!!e.modal),t.$caption?n.addClass("fancybox-show-caption "):n.removeClass("fancybox-show-caption")},toggleControls:function(){this.isHiddenControls?this.showControls():this.hideControls()}}),g.fancybox={version:"3.2.1",defaults:o,getInstance:function(t){var e=g('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),n=Array.prototype.slice.call(arguments,1);return e instanceof i&amp;&amp;("string"===g.type(t)?e[t].apply(e,n):"function"===g.type(t)&amp;&amp;t.apply(e,n),e)},open:function(t,e,n){return new i(t,e,n)},close:function(t){var e=this.getInstance();e&amp;&amp;(e.close(),!0===t&amp;&amp;this.close())},destroy:function(){this.close(!0),l.off("click.fb-start")},isMobile:a.createTouch!==m&amp;&amp;/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent),use3d:(t=a.createElement("div"),c.getComputedStyle&amp;&amp;c.getComputedStyle(t).getPropertyValue("transform")&amp;&amp;!(a.documentMode&amp;&amp;a.documentMode&lt;11)),getTranslate:function(t){var e;if(!t||!t.length)return!1;if((e=t.eq(0).css("transform"))&amp;&amp;-1!==e.indexOf("matrix")?e=(e=(e=e.split("(")[1]).split(")")[0]).split(","):e=[],e.length)e=(e=10&lt;e.length?[e[13],e[12],e[0],e[5]]:[e[5],e[4],e[0],e[3]]).map(parseFloat);else{e=[0,0,1,1];var n=/\.*translate\((.*)px,(.*)px\)/i.exec(t.eq(0).attr("style"));n&amp;&amp;(e[0]=parseFloat(n[2]),e[1]=parseFloat(n[1]))}return{top:e[0],left:e[1],scaleX:e[2],scaleY:e[3],opacity:parseFloat(t.css("opacity")),width:t.width(),height:t.height()}},setTranslate:function(t,e){var n="",i={};if(t&amp;&amp;e)return e.left===m&amp;&amp;e.top===m||(n=(e.left===m?t.position().left:e.left)+"px, "+(e.top===m?t.position().top:e.top)+"px",n=this.use3d?"translate3d("+n+", 0px)":"translate("+n+")"),e.scaleX!==m&amp;&amp;e.scaleY!==m&amp;&amp;(n=(n.length?n+" ":"")+"scale("+e.scaleX+", "+e.scaleY+")"),n.length&amp;&amp;(i.transform=n),e.opacity!==m&amp;&amp;(i.opacity=e.opacity),e.width!==m&amp;&amp;(i.width=e.width),e.height!==m&amp;&amp;(i.height=e.height),t.css(i)},animate:function(e,n,t,i,o){g.isFunction(t)&amp;&amp;(i=t,t=null),g.isPlainObject(n)||e.removeAttr("style"),e.on(d||"transitionend",function(t){(!t||!t.originalEvent||e.is(t.originalEvent.target)&amp;&amp;"z-index"!=t.originalEvent.propertyName)&amp;&amp;(g.fancybox.stop(e),g.isPlainObject(n)?n.scaleX!==m&amp;&amp;n.scaleY!==m&amp;&amp;(e.css("transition-duration","0ms"),n.width=Math.round(e.width()*n.scaleX),n.height=Math.round(e.height()*n.scaleY),n.scaleX=1,n.scaleY=1,g.fancybox.setTranslate(e,n)):!0!==o&amp;&amp;e.removeClass(n),g.isFunction(i)&amp;&amp;i(t))}),g.isNumeric(t)&amp;&amp;e.css("transition-duration",t+"ms"),g.isPlainObject(n)?g.fancybox.setTranslate(e,n):e.addClass(n),n.scaleX&amp;&amp;e.hasClass("fancybox-image-wrap")&amp;&amp;e.parent().addClass("fancybox-is-scaling"),e.data("timer",setTimeout(function(){e.trigger("transitionend")},t+16))},stop:function(t){clearTimeout(t.data("timer")),t.off(d||"transitionend"),t.hasClass("fancybox-image-wrap")&amp;&amp;t.parent().removeClass("fancybox-is-scaling")}},g.fn.fancybox=function(t){var e;return(e=(t=t||{}).selector||!1)?g("body").off("click.fb-start",e).on("click.fb-start",e,{options:t},n):this.off("click.fb-start").on("click.fb-start",{items:this,options:t},n),this},l.on("click.fb-start","[data-fancybox]",n)}var t}(window,document,window.jQuery||jQuery),function(d){"use strict";var p=function(n,t,e){if(n)return e=e||"","object"===d.type(e)&amp;&amp;(e=d.param(e,!0)),d.each(t,function(t,e){n=n.replace("$"+t,e||"")}),e.length&amp;&amp;(n+=(0&lt;n.indexOf("?")?"&amp;":"?")+e),n},f={youtube:{matcher:/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&amp;)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&amp;list=(.*))(.*)/i,params:{autoplay:1,autohide:1,fs:1,rel:0,hd:1,wmode:"transparent",enablejsapi:1,html5:1},paramPlace:8,type:"iframe",url:"//www.youtube.com/embed/$4",thumb:"//img.youtube.com/vi/$4/hqdefault.jpg"},vimeo:{matcher:/^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,params:{autoplay:1,hd:1,show_title:1,show_byline:1,show_portrait:0,fullscreen:1,api:1},paramPlace:3,type:"iframe",url:"//player.vimeo.com/video/$2"},metacafe:{matcher:/metacafe.com\/watch\/(\d+)\/(.*)?/,type:"iframe",url:"//www.metacafe.com/embed/$1/?ap=1"},dailymotion:{matcher:/dailymotion.com\/video\/(.*)\/?(.*)/,params:{additionalInfos:0,autoStart:1},type:"iframe",url:"//www.dailymotion.com/embed/video/$1"},vine:{matcher:/vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/,type:"iframe",url:"//vine.co/v/$1/embed/simple"},instagram:{matcher:/(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,type:"image",url:"//$1/p/$2/media/?size=l"},gmap_place:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/?ll="+(t[9]?t[9]+"&amp;z="+Math.floor(t[10])+(t[12]?t[12].replace(/^\//,"&amp;"):""):t[12])+"&amp;output="+(t[12]&amp;&amp;0&lt;t[12].indexOf("layer=c")?"svembed":"embed")}},gmap_search:{matcher:/(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,type:"iframe",url:function(t){return"//maps.google."+t[2]+"/maps?q="+t[5].replace("query=","q=").replace("api=1","")+"&amp;output=embed"}}};d(document).on("objectNeedsType.fb",function(t,e,o){var n,s,r,a,l,c,i,u=o.src||"",h=!1;n=d.extend(!0,{},f,o.opts.media),d.each(n,function(t,e){if(r=u.match(e.matcher)){if(h=e.type,c={},e.paramPlace&amp;&amp;r[e.paramPlace]){"?"==(l=r[e.paramPlace])[0]&amp;&amp;(l=l.substring(1)),l=l.split("&amp;");for(var n=0;n&lt;l.length;++n){var i=l[n].split("=",2);2==i.length&amp;&amp;(c[i[0]]=decodeURIComponent(i[1].replace(/\+/g," ")))}}return a=d.extend(!0,{},e.params,o.opts[t],c),u="function"===d.type(e.url)?e.url.call(this,r,a,o):p(e.url,r,a),s="function"===d.type(e.thumb)?e.thumb.call(this,r,a,o):p(e.thumb,r),"vimeo"===t&amp;&amp;(u=u.replace("&amp;%23","#")),!1}}),h?(o.src=u,o.type=h,o.opts.thumb||o.opts.$thumb&amp;&amp;o.opts.$thumb.length||(o.opts.thumb=s),"iframe"===h&amp;&amp;(d.extend(!0,o.opts,{iframe:{preload:!1,attr:{scrolling:"no"}}}),o.contentProvider=i,o.opts.slideClass+=" fancybox-slide--video")):u&amp;&amp;(o.type=o.opts.defaultType)})}(window.jQuery||jQuery),function(f,a,g){"use strict";var m=f.requestAnimationFrame||f.webkitRequestAnimationFrame||f.mozRequestAnimationFrame||f.oRequestAnimationFrame||function(t){return f.setTimeout(t,1e3/60)},v=f.cancelAnimationFrame||f.webkitCancelAnimationFrame||f.mozCancelAnimationFrame||f.oCancelAnimationFrame||function(t){f.clearTimeout(t)},u=function(t){var e=[];for(var n in t=(t=t.originalEvent||t||f.e).touches&amp;&amp;t.touches.length?t.touches:t.changedTouches&amp;&amp;t.changedTouches.length?t.changedTouches:[t])t[n].pageX?e.push({x:t[n].pageX,y:t[n].pageY}):t[n].clientX&amp;&amp;e.push({x:t[n].clientX,y:t[n].clientY});return e},y=function(t,e,n){return e&amp;&amp;t?"x"===n?t.x-e.x:"y"===n?t.y-e.y:Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)):0},l=function(t){if(t.is('a,area,button,[role="button"],input,label,select,summary,textarea')||g.isFunction(t.get(0).onclick)||t.data("selectable"))return!0;for(var e=0,n=t[0].attributes,i=n.length;e&lt;i;e++)if("data-fancybox-"===n[e].nodeName.substr(0,14))return!0;return!1},c=function(t){for(var e=!1;(n=t.get(0),void 0,i=f.getComputedStyle(n)["overflow-y"],o=f.getComputedStyle(n)["overflow-x"],s=("scroll"===i||"auto"===i)&amp;&amp;n.scrollHeight&gt;n.clientHeight,r=("scroll"===o||"auto"===o)&amp;&amp;n.scrollWidth&gt;n.clientWidth,!(e=s||r))&amp;&amp;((t=t.parent()).length&amp;&amp;!t.hasClass("fancybox-stage")&amp;&amp;!t.is("body")););var n,i,o,s,r;return e},n=function(t){var e=this;e.instance=t,e.$bg=t.$refs.bg,e.$stage=t.$refs.stage,e.$container=t.$refs.container,e.destroy(),e.$container.on("touchstart.fb.touch mousedown.fb.touch",g.proxy(e,"ontouchstart"))};n.prototype.destroy=function(){this.$container.off(".fb.touch")},n.prototype.ontouchstart=function(t){var e=this,n=g(t.target),i=e.instance,o=i.current,s=o.$content,r="touchstart"==t.type;if(r&amp;&amp;e.$container.off("mousedown.fb.touch"),!o||e.instance.isAnimating||e.instance.isClosing)return t.stopPropagation(),void t.preventDefault();if((!t.originalEvent||2!=t.originalEvent.button)&amp;&amp;n.length&amp;&amp;!l(n)&amp;&amp;!l(n.parent())&amp;&amp;!(t.originalEvent.clientX&gt;n[0].clientWidth+n.offset().left)&amp;&amp;(e.startPoints=u(t),e.startPoints&amp;&amp;!(1&lt;e.startPoints.length&amp;&amp;i.isSliding))){if(e.$target=n,e.$content=s,e.canTap=!0,e.opts=o.opts.touch,g(a).off(".fb.touch"),g(a).on(r?"touchend.fb.touch touchcancel.fb.touch":"mouseup.fb.touch mouseleave.fb.touch",g.proxy(e,"ontouchend")),g(a).on(r?"touchmove.fb.touch":"mousemove.fb.touch",g.proxy(e,"ontouchmove")),!e.opts&amp;&amp;!i.canPan()||!n.is(e.$stage)&amp;&amp;!e.$stage.find(n).length)return void(n.is("img")&amp;&amp;t.preventDefault());t.stopPropagation(),g.fancybox.isMobile&amp;&amp;(c(e.$target)||c(e.$target.parent()))||t.preventDefault(),e.canvasWidth=Math.round(o.$slide[0].clientWidth),e.canvasHeight=Math.round(o.$slide[0].clientHeight),e.startTime=(new Date).getTime(),e.distanceX=e.distanceY=e.distance=0,e.isPanning=!1,e.isSwiping=!1,e.isZooming=!1,e.sliderStartPos=e.sliderLastPos||{top:0,left:0},e.contentStartPos=g.fancybox.getTranslate(e.$content),e.contentLastPos=null,1!==e.startPoints.length||e.isZooming||(e.canTap=!i.isSliding,"image"===o.type&amp;&amp;(e.contentStartPos.width&gt;e.canvasWidth+1||e.contentStartPos.height&gt;e.canvasHeight+1)?(g.fancybox.stop(e.$content),e.$content.css("transition-duration","0ms"),e.isPanning=!0):e.isSwiping=!0,e.$container.addClass("fancybox-controls--isGrabbing")),2!==e.startPoints.length||i.isAnimating||o.hasError||"image"!==o.type||!o.isLoaded&amp;&amp;!o.$ghost||(e.isZooming=!0,e.isSwiping=!1,e.isPanning=!1,g.fancybox.stop(e.$content),e.$content.css("transition-duration","0ms"),e.centerPointStartX=.5*(e.startPoints[0].x+e.startPoints[1].x)-g(f).scrollLeft(),e.centerPointStartY=.5*(e.startPoints[0].y+e.startPoints[1].y)-g(f).scrollTop(),e.percentageOfImageAtPinchPointX=(e.centerPointStartX-e.contentStartPos.left)/e.contentStartPos.width,e.percentageOfImageAtPinchPointY=(e.centerPointStartY-e.contentStartPos.top)/e.contentStartPos.height,e.startDistanceBetweenFingers=y(e.startPoints[0],e.startPoints[1]))}},n.prototype.ontouchmove=function(t){var e=this;if(e.newPoints=u(t),g.fancybox.isMobile&amp;&amp;(c(e.$target)||c(e.$target.parent())))return t.stopPropagation(),void(e.canTap=!1);if((e.opts||e.instance.canPan())&amp;&amp;e.newPoints&amp;&amp;e.newPoints.length&amp;&amp;(e.distanceX=y(e.newPoints[0],e.startPoints[0],"x"),e.distanceY=y(e.newPoints[0],e.startPoints[0],"y"),e.distance=y(e.newPoints[0],e.startPoints[0]),0&lt;e.distance)){if(!e.$target.is(e.$stage)&amp;&amp;!e.$stage.find(e.$target).length)return;t.stopPropagation(),t.preventDefault(),e.isSwiping?e.onSwipe():e.isPanning?e.onPan():e.isZooming&amp;&amp;e.onZoom()}},n.prototype.onSwipe=function(){var t,i=this,e=i.isSwiping,n=i.sliderStartPos.left||0;!0===e?10&lt;Math.abs(i.distance)&amp;&amp;(i.canTap=!1,i.instance.group.length&lt;2&amp;&amp;i.opts.vertical?i.isSwiping="y":i.instance.isSliding||!1===i.opts.vertical||"auto"===i.opts.vertical&amp;&amp;800&lt;g(f).width()?i.isSwiping="x":(t=Math.abs(180*Math.atan2(i.distanceY,i.distanceX)/Math.PI),i.isSwiping=45&lt;t&amp;&amp;t&lt;135?"y":"x"),i.instance.isSliding=i.isSwiping,i.startPoints=i.newPoints,g.each(i.instance.slides,function(t,e){g.fancybox.stop(e.$slide),e.$slide.css("transition-duration","0ms"),e.inTransition=!1,e.pos===i.instance.current.pos&amp;&amp;(i.sliderStartPos.left=g.fancybox.getTranslate(e.$slide).left)}),i.instance.SlideShow&amp;&amp;i.instance.SlideShow.isActive&amp;&amp;i.instance.SlideShow.stop()):("x"==e&amp;&amp;(0&lt;i.distanceX&amp;&amp;(i.instance.group.length&lt;2||0===i.instance.current.index&amp;&amp;!i.instance.current.opts.loop)?n+=Math.pow(i.distanceX,.8):i.distanceX&lt;0&amp;&amp;(i.instance.group.length&lt;2||i.instance.current.index===i.instance.group.length-1&amp;&amp;!i.instance.current.opts.loop)?n-=Math.pow(-i.distanceX,.8):n+=i.distanceX),i.sliderLastPos={top:"x"==e?0:i.sliderStartPos.top+i.distanceY,left:n},i.requestId&amp;&amp;(v(i.requestId),i.requestId=null),i.requestId=m(function(){i.sliderLastPos&amp;&amp;(g.each(i.instance.slides,function(t,e){var n=e.pos-i.instance.currPos;g.fancybox.setTranslate(e.$slide,{top:i.sliderLastPos.top,left:i.sliderLastPos.left+n*i.canvasWidth+n*e.opts.gutter})}),i.$container.addClass("fancybox-is-sliding"))}))},n.prototype.onPan=function(){var t,e,n,i=this;i.canTap=!1,t=i.contentStartPos.width&gt;i.canvasWidth?i.contentStartPos.left+i.distanceX:i.contentStartPos.left,e=i.contentStartPos.top+i.distanceY,(n=i.limitMovement(t,e,i.contentStartPos.width,i.contentStartPos.height)).scaleX=i.contentStartPos.scaleX,n.scaleY=i.contentStartPos.scaleY,i.contentLastPos=n,i.requestId&amp;&amp;(v(i.requestId),i.requestId=null),i.requestId=m(function(){g.fancybox.setTranslate(i.$content,i.contentLastPos)})},n.prototype.limitMovement=function(t,e,n,i){var o,s,r,a,l=this,c=l.canvasWidth,u=l.canvasHeight,h=l.contentStartPos.left,d=l.contentStartPos.top,p=l.distanceX,f=l.distanceY;return o=Math.max(0,.5*c-.5*n),s=Math.max(0,.5*u-.5*i),r=Math.min(c-n,.5*c-.5*n),a=Math.min(u-i,.5*u-.5*i),c&lt;n&amp;&amp;(0&lt;p&amp;&amp;o&lt;t&amp;&amp;(t=o-1+Math.pow(-o+h+p,.8)||0),p&lt;0&amp;&amp;t&lt;r&amp;&amp;(t=r+1-Math.pow(r-h-p,.8)||0)),u&lt;i&amp;&amp;(0&lt;f&amp;&amp;s&lt;e&amp;&amp;(e=s-1+Math.pow(-s+d+f,.8)||0),f&lt;0&amp;&amp;e&lt;a&amp;&amp;(e=a+1-Math.pow(a-d-f,.8)||0)),{top:e,left:t}},n.prototype.limitPosition=function(t,e,n,i){var o=this.canvasWidth,s=this.canvasHeight;return o&lt;n?t=(t=0&lt;t?0:t)&lt;o-n?o-n:t:t=Math.max(0,o/2-n/2),s&lt;i?e=(e=0&lt;e?0:e)&lt;s-i?s-i:e:e=Math.max(0,s/2-i/2),{top:e,left:t}},n.prototype.onZoom=function(){var t=this,e=t.contentStartPos.width,n=t.contentStartPos.height,i=t.contentStartPos.left,o=t.contentStartPos.top,s=y(t.newPoints[0],t.newPoints[1])/t.startDistanceBetweenFingers,r=Math.floor(e*s),a=Math.floor(n*s),l=(e-r)*t.percentageOfImageAtPinchPointX,c=(n-a)*t.percentageOfImageAtPinchPointY,u=(t.newPoints[0].x+t.newPoints[1].x)/2-g(f).scrollLeft(),h=(t.newPoints[0].y+t.newPoints[1].y)/2-g(f).scrollTop(),d=u-t.centerPointStartX,p={top:o+(c+(h-t.centerPointStartY)),left:i+(l+d),scaleX:t.contentStartPos.scaleX*s,scaleY:t.contentStartPos.scaleY*s};t.canTap=!1,t.newWidth=r,t.newHeight=a,t.contentLastPos=p,t.requestId&amp;&amp;(v(t.requestId),t.requestId=null),t.requestId=m(function(){g.fancybox.setTranslate(t.$content,t.contentLastPos)})},n.prototype.ontouchend=function(t){var e=this,n=Math.max((new Date).getTime()-e.startTime,1),i=e.isSwiping,o=e.isPanning,s=e.isZooming;return e.endPoints=u(t),e.$container.removeClass("fancybox-controls--isGrabbing"),g(a).off(".fb.touch"),e.requestId&amp;&amp;(v(e.requestId),e.requestId=null),e.isSwiping=!1,e.isPanning=!1,e.isZooming=!1,e.canTap?e.onTap(t):(e.speed=366,e.velocityX=e.distanceX/n*.5,e.velocityY=e.distanceY/n*.5,e.speedX=Math.max(.5*e.speed,Math.min(1.5*e.speed,1/Math.abs(e.velocityX)*e.speed)),void(o?e.endPanning():s?e.endZooming():e.endSwiping(i)))},n.prototype.endSwiping=function(t){var e=this,n=!1;e.instance.isSliding=!1,e.sliderLastPos=null,"y"==t&amp;&amp;50&lt;Math.abs(e.distanceY)?(g.fancybox.animate(e.instance.current.$slide,{top:e.sliderStartPos.top+e.distanceY+150*e.velocityY,opacity:0},150),n=e.instance.close(!0,300)):"x"==t&amp;&amp;50&lt;e.distanceX&amp;&amp;1&lt;e.instance.group.length?n=e.instance.previous(e.speedX):"x"==t&amp;&amp;e.distanceX&lt;-50&amp;&amp;1&lt;e.instance.group.length&amp;&amp;(n=e.instance.next(e.speedX)),!1!==n||"x"!=t&amp;&amp;"y"!=t||e.instance.jumpTo(e.instance.current.index,150),e.$container.removeClass("fancybox-is-sliding")},n.prototype.endPanning=function(){var t,e,n,i=this;i.contentLastPos&amp;&amp;(!1===i.opts.momentum?(t=i.contentLastPos.left,e=i.contentLastPos.top):(t=i.contentLastPos.left+i.velocityX*i.speed,e=i.contentLastPos.top+i.velocityY*i.speed),(n=i.limitPosition(t,e,i.contentStartPos.width,i.contentStartPos.height)).width=i.contentStartPos.width,n.height=i.contentStartPos.height,g.fancybox.animate(i.$content,n,330))},n.prototype.endZooming=function(){var t,e,n,i,o=this,s=o.instance.current,r=o.newWidth,a=o.newHeight;o.contentLastPos&amp;&amp;(t=o.contentLastPos.left,i={top:e=o.contentLastPos.top,left:t,width:r,height:a,scaleX:1,scaleY:1},g.fancybox.setTranslate(o.$content,i),r&lt;o.canvasWidth&amp;&amp;a&lt;o.canvasHeight?o.instance.scaleToFit(150):r&gt;s.width||a&gt;s.height?o.instance.scaleToActual(o.centerPointStartX,o.centerPointStartY,150):(n=o.limitPosition(t,e,r,a),g.fancybox.setTranslate(o.content,g.fancybox.getTranslate(o.$content)),g.fancybox.animate(o.$content,n,150)))},n.prototype.onTap=function(n){var t,i=this,e=g(n.target),o=i.instance,s=o.current,r=n&amp;&amp;u(n)||i.startPoints,a=r[0]?r[0].x-i.$stage.offset().left:0,l=r[0]?r[0].y-i.$stage.offset().top:0,c=function(t){var e=s.opts[t];if(g.isFunction(e)&amp;&amp;(e=e.apply(o,[s,n])),e)switch(e){case"close":o.close(i.startEvent);break;case"toggleControls":o.toggleControls(!0);break;case"next":o.next();break;case"nextOrClose":1&lt;o.group.length?o.next():o.close(i.startEvent);break;case"zoom":"image"==s.type&amp;&amp;(s.isLoaded||s.$ghost)&amp;&amp;(o.canPan()?o.scaleToFit():o.isScaledDown()?o.scaleToActual(a,l):o.group.length&lt;2&amp;&amp;o.close(i.startEvent))}};if(!(n.originalEvent&amp;&amp;2==n.originalEvent.button||o.isSliding||a&gt;e[0].clientWidth+e.offset().left)){if(e.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"))t="Outside";else if(e.is(".fancybox-slide"))t="Slide";else{if(!o.current.$content||!o.current.$content.has(n.target).length)return;t="Content"}if(i.tapped){if(clearTimeout(i.tapped),i.tapped=null,50&lt;Math.abs(a-i.tapX)||50&lt;Math.abs(l-i.tapY)||o.isSliding)return this;c("dblclick"+t)}else i.tapX=a,i.tapY=l,s.opts["dblclick"+t]&amp;&amp;s.opts["dblclick"+t]!==s.opts["click"+t]?i.tapped=setTimeout(function(){i.tapped=null,c("click"+t)},300):c("click"+t);return this}},g(a).on("onActivate.fb",function(t,e){e&amp;&amp;!e.Guestures&amp;&amp;(e.Guestures=new n(e))}),g(a).on("beforeClose.fb",function(t,e){e&amp;&amp;e.Guestures&amp;&amp;e.Guestures.destroy()})}(window,document,window.jQuery||jQuery),function(r,a){"use strict";a.extend(!0,a.fancybox.defaults,{btnTpl:{slideShow:'&lt;button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M13,12 L27,20 L13,27 Z" /&gt;&lt;path d="M15,10 v19 M23,10 v19" /&gt;&lt;/svg&gt;&lt;/button&gt;'},slideShow:{autoStart:!1,speed:3e3}});var n=function(t){this.instance=t,this.init()};a.extend(n.prototype,{timer:null,isActive:!1,$button:null,init:function(){var t=this;t.$button=t.instance.$refs.toolbar.find("[data-fancybox-play]").on("click",function(){t.toggle()}),(t.instance.group.length&lt;2||!t.instance.group[t.instance.currIndex].opts.slideShow)&amp;&amp;t.$button.hide()},set:function(t){var e=this;e.instance&amp;&amp;e.instance.current&amp;&amp;(!0===t||e.instance.current.opts.loop||e.instance.currIndex&lt;e.instance.group.length-1)?e.timer=setTimeout(function(){e.isActive&amp;&amp;e.instance.jumpTo((e.instance.currIndex+1)%e.instance.group.length)},e.instance.current.opts.slideShow.speed):(e.stop(),e.instance.idleSecondsCounter=0,e.instance.showControls())},clear:function(){clearTimeout(this.timer),this.timer=null},start:function(){var t=this.instance.current;t&amp;&amp;(this.isActive=!0,this.$button.attr("title",t.opts.i18n[t.opts.lang].PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"),this.set(!0))},stop:function(){var t=this.instance.current;this.clear(),this.$button.attr("title",t.opts.i18n[t.opts.lang].PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"),this.isActive=!1},toggle:function(){this.isActive?this.stop():this.start()}}),a(r).on({"onInit.fb":function(t,e){e&amp;&amp;!e.SlideShow&amp;&amp;(e.SlideShow=new n(e))},"beforeShow.fb":function(t,e,n,i){var o=e&amp;&amp;e.SlideShow;i?o&amp;&amp;n.opts.slideShow.autoStart&amp;&amp;o.start():o&amp;&amp;o.isActive&amp;&amp;o.clear()},"afterShow.fb":function(t,e,n){var i=e&amp;&amp;e.SlideShow;i&amp;&amp;i.isActive&amp;&amp;i.set()},"afterKeydown.fb":function(t,e,n,i,o){var s=e&amp;&amp;e.SlideShow;!s||!n.opts.slideShow||80!==o&amp;&amp;32!==o||a(r.activeElement).is("button,a,input")||(i.preventDefault(),s.toggle())},"beforeClose.fb onDeactivate.fb":function(t,e){var n=e&amp;&amp;e.SlideShow;n&amp;&amp;n.stop()}}),a(r).on("visibilitychange",function(){var t=a.fancybox.getInstance(),e=t&amp;&amp;t.SlideShow;e&amp;&amp;e.isActive&amp;&amp;(r.hidden?e.clear():e.set())})}(document,window.jQuery||jQuery),function(s,n){"use strict";var e=function(){var t,e,n,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o={};for(e=0;e&lt;i.length;e++)if((t=i[e])&amp;&amp;t[1]in s){for(n=0;n&lt;t.length;n++)o[i[0][n]]=t[n];return o}return!1}();if(e){var i={request:function(t){(t=t||s.documentElement)[e.requestFullscreen](t.ALLOW_KEYBOARD_INPUT)},exit:function(){s[e.exitFullscreen]()},toggle:function(t){t=t||s.documentElement,this.isFullscreen()?this.exit():this.request(t)},isFullscreen:function(){return Boolean(s[e.fullscreenElement])},enabled:function(){return Boolean(s[e.fullscreenEnabled])}};n.extend(!0,n.fancybox.defaults,{btnTpl:{fullScreen:'&lt;button data-fancybox-fullscreen class="fancybox-button fancybox-button--fullscreen" title="{{FULL_SCREEN}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M9,12 h22 v16 h-22 v-16 v16 h22 v-16 Z" /&gt;&lt;/svg&gt;&lt;/button&gt;'},fullScreen:{autoStart:!1}}),n(s).on({"onInit.fb":function(t,e){var n;e&amp;&amp;e.group[e.currIndex].opts.fullScreen?((n=e.$refs.container).on("click.fb-fullscreen","[data-fancybox-fullscreen]",function(t){t.stopPropagation(),t.preventDefault(),i.toggle(n[0])}),e.opts.fullScreen&amp;&amp;!0===e.opts.fullScreen.autoStart&amp;&amp;i.request(n[0]),e.FullScreen=i):e&amp;&amp;e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()},"afterKeydown.fb":function(t,e,n,i,o){e&amp;&amp;e.FullScreen&amp;&amp;70===o&amp;&amp;(i.preventDefault(),e.FullScreen.toggle(e.$refs.container[0]))},"beforeClose.fb":function(t){t&amp;&amp;t.FullScreen&amp;&amp;i.exit()}}),n(s).on(e.fullscreenchange,function(){var t=i.isFullscreen(),e=n.fancybox.getInstance();e&amp;&amp;(e.current&amp;&amp;"image"===e.current.type&amp;&amp;e.isAnimating&amp;&amp;(e.current.$content.css("transition","none"),e.isAnimating=!1,e.update(!0,!0,0)),e.trigger("onFullscreenChange",t),e.$refs.container.toggleClass("fancybox-is-fullscreen",t))})}else n&amp;&amp;n.fancybox&amp;&amp;(n.fancybox.defaults.btnTpl.fullScreen=!1)}(document,window.jQuery||jQuery),function(t,a){"use strict";a.extend(!0,a.fancybox.defaults,{btnTpl:{thumbs:'&lt;button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"&gt;&lt;svg viewBox="0 0 120 120"&gt;&lt;path d="M30,30 h14 v14 h-14 Z M50,30 h14 v14 h-14 Z M70,30 h14 v14 h-14 Z M30,50 h14 v14 h-14 Z M50,50 h14 v14 h-14 Z M70,50 h14 v14 h-14 Z M30,70 h14 v14 h-14 Z M50,70 h14 v14 h-14 Z M70,70 h14 v14 h-14 Z" /&gt;&lt;/svg&gt;&lt;/button&gt;'},thumbs:{autoStart:!1,hideOnClose:!0,parentEl:".fancybox-container"}});var n=function(t){this.instance=t,this.init()};a.extend(n.prototype,{$button:null,$grid:null,$list:null,isVisible:!1,init:function(){var t=this,e=t.instance,n=e.group[0],i=e.group[1];t.opts=e.group[e.currIndex].opts.thumbs,t.$button=e.$refs.toolbar.find("[data-fancybox-thumbs]"),t.opts&amp;&amp;n&amp;&amp;i&amp;&amp;("image"==n.type||n.opts.thumb||n.opts.$thumb)&amp;&amp;("image"==i.type||i.opts.thumb||i.opts.$thumb)?(t.$button.show().on("click",function(){t.toggle()}),(t.isActive=!0)===t.opts.autoStart&amp;&amp;t.show()):(t.$button.hide(),t.isActive=!1)},create:function(){var n,i,t=this,e=t.instance,o=t.opts.parentEl;t.$grid=a('&lt;div class="fancybox-thumbs"&gt;&lt;/div&gt;').appendTo(e.$refs.container.find(o).addBack().filter(o)),n="&lt;ul&gt;",a.each(e.group,function(t,e){(i=e.opts.thumb||(e.opts.$thumb?e.opts.$thumb.attr("src"):null))||"image"!==e.type||(i=e.src),i&amp;&amp;i.length&amp;&amp;(n+='&lt;li data-index="'+t+'"  tabindex="0" class="fancybox-thumbs-loading"&gt;&lt;img data-src="'+i+'" /&gt;&lt;/li&gt;')}),n+="&lt;/ul&gt;",t.$list=a(n).appendTo(t.$grid).on("click","li",function(){e.jumpTo(a(this).data("index"))}),t.$list.find("img").hide().one("load",function(){var t,e,n,i,o=a(this).parent().removeClass("fancybox-thumbs-loading"),s=o.outerWidth(),r=o.outerHeight();t=this.naturalWidth||this.width,i=(e=this.naturalHeight||this.height)/r,1&lt;=(n=t/s)&amp;&amp;1&lt;=i&amp;&amp;(i&lt;n?(t/=i,e=r):(t=s,e/=n)),a(this).css({width:Math.floor(t),height:Math.floor(e),"margin-top":Math.min(0,Math.floor(.3*r-.3*e)),"margin-left":Math.min(0,Math.floor(.5*s-.5*t))}).show()}).each(function(){this.src=a(this).data("src")})},focus:function(t){var e,n,i=this.$list;this.instance.current&amp;&amp;((n=(e=i.children().removeClass("fancybox-thumbs-active").filter('[data-index="'+this.instance.current.index+'"]').addClass("fancybox-thumbs-active")).position()).top&lt;0||n.top&gt;i.height()-e.outerHeight()?i.stop().animate({scrollTop:i.scrollTop()+n.top},t):(n.left&lt;0||n.left&gt;i.width()-e.outerWidth())&amp;&amp;i.stop().animate({scrollLeft:i.scrollLeft()+n.left},t))},update:function(){this.instance.$refs.container.toggleClass("fancybox-show-thumbs",this.isVisible),this.isVisible?(this.$grid||this.create(),this.instance.trigger("onThumbsShow"),this.focus(0)):this.$grid&amp;&amp;this.instance.trigger("onThumbsHide"),this.instance.update()},hide:function(){this.isVisible=!1,this.update()},show:function(){this.isVisible=!0,this.update()},toggle:function(){this.isVisible=!this.isVisible,this.update()}}),a(t).on({"onInit.fb":function(t,e){e&amp;&amp;!e.Thumbs&amp;&amp;(e.Thumbs=new n(e))},"beforeShow.fb":function(t,e,n,i){var o=e&amp;&amp;e.Thumbs;o&amp;&amp;o.isVisible&amp;&amp;o.focus(i?0:250)},"afterKeydown.fb":function(t,e,n,i,o){var s=e&amp;&amp;e.Thumbs;s&amp;&amp;s.isActive&amp;&amp;71===o&amp;&amp;(i.preventDefault(),s.toggle())},"beforeClose.fb":function(t,e){var n=e&amp;&amp;e.Thumbs;n&amp;&amp;n.isVisible&amp;&amp;!1!==n.opts.hideOnClose&amp;&amp;n.$grid.hide()}})}(document,window.jQuery),function(t,n){"use strict";n.extend(!0,n.fancybox.defaults,{btnTpl:{share:'&lt;button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"&gt;&lt;svg viewBox="0 0 40 40"&gt;&lt;path d="M6,30 C8,18 19,16 23,16 L23,16 L23,10 L33,20 L23,29 L23,24 C19,24 8,27 6,30 Z"&gt;&lt;/svg&gt;&lt;/button&gt;'},share:{tpl:'&lt;div class="fancybox-share"&gt;&lt;h1&gt;{{SHARE}}&lt;/h1&gt;&lt;p&gt;&lt;a href="https://www.facebook.com/sharer/sharer.php?u={{src}}" target="_blank" class="fancybox-share_button"&gt;&lt;svg version="1.1" viewBox="0 0 32 32" fill="#3b5998"&gt;&lt;path d="M27.6 3h-23.2c-.8 0-1.4.6-1.4 1.4v23.1c0 .9.6 1.5 1.4 1.5h12.5v-10.1h-3.4v-3.9h3.4v-2.9c0-3.4 2.1-5.2 5-5.2 1.4 0 2.7.1 3 .2v3.5h-2.1c-1.6 0-1.9.8-1.9 1.9v2.5h3.9l-.5 3.9h-3.4v10.1h6.6c.8 0 1.4-.6 1.4-1.4v-23.2c.1-.8-.5-1.4-1.3-1.4z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;Facebook&lt;/span&gt;&lt;/a&gt;&lt;a href="https://www.pinterest.com/pin/create/button/?url={{src}}&amp;amp;description={{descr}}" target="_blank" class="fancybox-share_button"&gt;&lt;svg version="1.1" viewBox="0 0 32 32" fill="#c92228"&gt;&lt;path d="M16 3c-7.2 0-13 5.8-13 13 0 5.5 3.4 10.2 8.3 12.1-.1-1-.2-2.6 0-3.7.2-1 1.5-6.5 1.5-6.5s-.4-.8-.4-1.9c0-1.8 1-3.2 2.4-3.2 1.1 0 1.6.8 1.6 1.8 0 1.1-.7 2.8-1.1 4.3-.3 1.3.6 2.3 1.9 2.3 2.3 0 4.1-2.4 4.1-6 0-3.1-2.2-5.3-5.4-5.3-3.7 0-5.9 2.8-5.9 5.6 0 1.1.4 2.3 1 3 .1.1.1.2.1.4-.1.4-.3 1.3-.4 1.5-.1.2-.2.3-.4.2-1.6-.8-2.6-3.1-2.6-5 0-4.1 3-7.9 8.6-7.9 4.5 0 8 3.2 8 7.5 0 4.5-2.8 8.1-6.7 8.1-1.3 0-2.6-.7-3-1.5 0 0-.7 2.5-.8 3.1-.3 1.1-1.1 2.5-1.6 3.4 1.2.4 2.5.6 3.8.6 7.2 0 13-5.8 13-13 0-7.1-5.8-12.9-13-12.9z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;Pinterest&lt;/span&gt;&lt;/a&gt;&lt;a href="https://twitter.com/intent/tweet?url={{src}}&amp;amp;text={{descr}}" target="_blank" class="fancybox-share_button"&gt;&lt;svg version="1.1" viewBox="0 0 32 32" fill="#1da1f2"&gt;&lt;path d="M30 7.3c-1 .5-2.1.8-3.3.9 1.2-.7 2.1-1.8 2.5-3.2-1.1.7-2.3 1.1-3.6 1.4-1-1.1-2.5-1.8-4.2-1.8-3.2 0-5.7 2.6-5.7 5.7 0 .5.1.9.1 1.3-4.8-.2-9-2.5-11.8-6-.5.9-.8 1.9-.8 3 0 2 1 3.8 2.6 4.8-.9 0-1.8-.3-2.6-.7v.1c0 2.8 2 5.1 4.6 5.6-.5.1-1 .2-1.5.2-.4 0-.7 0-1.1-.1.7 2.3 2.9 3.9 5.4 4-2 1.5-4.4 2.5-7.1 2.5-.5 0-.9 0-1.4-.1 2.5 1.6 5.6 2.6 8.8 2.6 10.6 0 16.3-8.8 16.3-16.3v-.7c1.1-1 2-2 2.8-3.2z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;Twitter&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;'}}),n(t).on("click","[data-fancybox-share]",function(){var t,e=n.fancybox.getInstance();e&amp;&amp;(t=e.current.opts.share.tpl.replace(/\{\{src\}\}/g,encodeURIComponent(!1===e.current.opts.hash?e.current.src:window.location)),e.$caption&amp;&amp;(t=t.replace(/\{\{descr\}\}/g,encodeURIComponent(e.$caption.text()))),n.fancybox.open({src:e.translate(e,t),type:"html",opts:{autoFocus:!1,animationEffect:"fade"}}))})}(document,window.jQuery||jQuery),function(s,r,a){"use strict";function o(){var t=r.location.hash.substr(1),e=t.split("-"),n=1&lt;e.length&amp;&amp;/^\+?\d+$/.test(e[e.length-1])&amp;&amp;parseInt(e.pop(-1),10)||1;return n&lt;1&amp;&amp;(n=1),{hash:t,index:n,gallery:e.join("-")}}function e(t){var e;""!==t.gallery&amp;&amp;((e=a("[data-fancybox='"+a.escapeSelector(t.gallery)+"']").eq(t.index-1)).length||(e=a("#"+a.escapeSelector(t.gallery))),e.length&amp;&amp;(c=!1,e.trigger("click")))}function l(t){var e;return!!t&amp;&amp;((e=t.current?t.current.opts:t.opts).hash||(e.$orig?e.$orig.data("fancybox"):""))}a.escapeSelector||(a.escapeSelector=function(t){return(t+"").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,function(t,e){return e?"\0"===t?"пїЅ":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t})});var c=!0,u=null,h=null;a(function(){!1!==a.fancybox.defaults.hash&amp;&amp;(a(s).on({"onInit.fb":function(t,e){var n,i;!1!==e.group[e.currIndex].opts.hash&amp;&amp;(n=o(),(i=l(e))&amp;&amp;n.gallery&amp;&amp;i==n.gallery&amp;&amp;(e.currIndex=n.index-1))},"beforeShow.fb":function(t,e,n){var i;n&amp;&amp;!1!==n.opts.hash&amp;&amp;((i=l(e))&amp;&amp;""!==i&amp;&amp;(r.location.hash.indexOf(i)&lt;0&amp;&amp;(e.opts.origHash=r.location.hash),u=i+(1&lt;e.group.length?"-"+(n.index+1):""),"replaceState"in r.history?(h&amp;&amp;clearTimeout(h),h=setTimeout(function(){r.history[c?"pushState":"replaceState"]({},s.title,r.location.pathname+r.location.search+"#"+u),h=null,c=!1},300)):r.location.hash=u))},"beforeClose.fb":function(t,e,n){var i,o;h&amp;&amp;clearTimeout(h),!1!==n.opts.hash&amp;&amp;(i=l(e),o=e&amp;&amp;e.opts.origHash?e.opts.origHash:"",i&amp;&amp;""!==i&amp;&amp;("replaceState"in history?r.history.replaceState({},s.title,r.location.pathname+r.location.search+o):(r.location.hash=o,a(r).scrollTop(e.scrollTop).scrollLeft(e.scrollLeft))),u=null)}}),a(r).on("hashchange.fb",function(){var t=o();a.fancybox.getInstance()?!u||u===t.gallery+"-"+t.index||1===t.index&amp;&amp;u==t.gallery||(u=null,a.fancybox.close()):""!==t.gallery&amp;&amp;e(t)}),setTimeout(function(){e(o())},50))})}(document,window,window.jQuery||jQuery);
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpxdWVyeS0zLjIuMS5taW4uanMiLCJodG1sNS5qcyIsInN2ZzRldmVyeWJvZHkubWluLmpzIiwib3dsLmNhcm91c2VsLmpzIiwianF1ZXJ5LmZhbmN5Ym94Lm1pbi5qcyJdLCJuYW1lcyI6WyJhIiwiYiIsIm1vZHVsZSIsImV4cG9ydHMiLCJkb2N1bWVudCIsIkVycm9yIiwid2luZG93IiwidGhpcyIsImMiLCJkIiwiZSIsIk9iamVjdCIsImdldFByb3RvdHlwZU9mIiwiZiIsInNsaWNlIiwiZyIsImNvbmNhdCIsImgiLCJwdXNoIiwiaSIsImluZGV4T2YiLCJqIiwiayIsInRvU3RyaW5nIiwibCIsImhhc093blByb3BlcnR5IiwibSIsIm4iLCJjYWxsIiwibyIsInAiLCJjcmVhdGVFbGVtZW50IiwidGV4dCIsImhlYWQiLCJhcHBlbmRDaGlsZCIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsInEiLCJyIiwiZm4iLCJpbml0IiwicyIsInQiLCJ1IiwidiIsInRvVXBwZXJDYXNlIiwidyIsImxlbmd0aCIsInR5cGUiLCJpc1dpbmRvdyIsInByb3RvdHlwZSIsImpxdWVyeSIsImNvbnN0cnVjdG9yIiwidG9BcnJheSIsImdldCIsInB1c2hTdGFjayIsIm1lcmdlIiwicHJldk9iamVjdCIsImVhY2giLCJtYXAiLCJhcHBseSIsImFyZ3VtZW50cyIsImZpcnN0IiwiZXEiLCJsYXN0IiwiZW5kIiwic29ydCIsInNwbGljZSIsImV4dGVuZCIsImlzRnVuY3Rpb24iLCJpc1BsYWluT2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5IiwiZXhwYW5kbyIsIk1hdGgiLCJyYW5kb20iLCJyZXBsYWNlIiwiaXNSZWFkeSIsImVycm9yIiwibm9vcCIsImlzTnVtZXJpYyIsImlzTmFOIiwicGFyc2VGbG9hdCIsImlzRW1wdHlPYmplY3QiLCJnbG9iYWxFdmFsIiwiY2FtZWxDYXNlIiwidHJpbSIsIm1ha2VBcnJheSIsImluQXJyYXkiLCJncmVwIiwiZ3VpZCIsInByb3h5Iiwibm93IiwiRGF0ZSIsInN1cHBvcnQiLCJTeW1ib2wiLCJpdGVyYXRvciIsInNwbGl0IiwidG9Mb3dlckNhc2UiLCJ4IiwieSIsImhhIiwieiIsIkEiLCJCIiwiQyIsIkQiLCJFIiwicG9wIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlJlZ0V4cCIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJJRCIsIkNMQVNTIiwiVEFHIiwiQVRUUiIsIlBTRVVETyIsIkNISUxEIiwiYm9vbCIsIm5lZWRzQ29udGV4dCIsIlciLCJYIiwiWSIsIloiLCIkIiwiXyIsImFhIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiYmEiLCJjYSIsImNoYXJDb2RlQXQiLCJkYSIsImVhIiwidGEiLCJkaXNhYmxlZCIsImRpciIsIm5leHQiLCJjaGlsZE5vZGVzIiwibm9kZVR5cGUiLCJmYSIsImdhIiwib3duZXJEb2N1bWVudCIsImV4ZWMiLCJnZXRFbGVtZW50QnlJZCIsImlkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicXNhIiwidGVzdCIsIm5vZGVOYW1lIiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwic2EiLCJqb2luIiwicWEiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmVtb3ZlQXR0cmlidXRlIiwiY2FjaGVMZW5ndGgiLCJzaGlmdCIsImlhIiwiamEiLCJrYSIsImF0dHJIYW5kbGUiLCJsYSIsInNvdXJjZUluZGV4IiwibmV4dFNpYmxpbmciLCJtYSIsIm5hIiwib2EiLCJpc0Rpc2FibGVkIiwicGEiLCJpc1hNTCIsImRvY3VtZW50RWxlbWVudCIsInNldERvY3VtZW50IiwiZGVmYXVsdFZpZXciLCJ0b3AiLCJhZGRFdmVudExpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJhdHRyaWJ1dGVzIiwiY2xhc3NOYW1lIiwiY3JlYXRlQ29tbWVudCIsImdldEJ5SWQiLCJnZXRFbGVtZW50c0J5TmFtZSIsImZpbHRlciIsImZpbmQiLCJnZXRBdHRyaWJ1dGVOb2RlIiwidmFsdWUiLCJpbm5lckhUTUwiLCJtYXRjaGVzU2VsZWN0b3IiLCJtYXRjaGVzIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwiZGlzY29ubmVjdGVkTWF0Y2giLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsImNvbnRhaW5zIiwic29ydERldGFjaGVkIiwidW5zaGlmdCIsImF0dHIiLCJzcGVjaWZpZWQiLCJlc2NhcGUiLCJ1bmlxdWVTb3J0IiwiZGV0ZWN0RHVwbGljYXRlcyIsInNvcnRTdGFibGUiLCJnZXRUZXh0IiwidGV4dENvbnRlbnQiLCJmaXJzdENoaWxkIiwibm9kZVZhbHVlIiwic2VsZWN0b3JzIiwiY3JlYXRlUHNldWRvIiwibWF0Y2giLCJyZWxhdGl2ZSIsIj4iLCIgIiwiKyIsIn4iLCJwcmVGaWx0ZXIiLCJsYXN0Q2hpbGQiLCJ1bmlxdWVJRCIsInBzZXVkb3MiLCJzZXRGaWx0ZXJzIiwibm90IiwiaGFzIiwiaW5uZXJUZXh0IiwibGFuZyIsInRhcmdldCIsImxvY2F0aW9uIiwiaGFzaCIsInJvb3QiLCJmb2N1cyIsImFjdGl2ZUVsZW1lbnQiLCJoYXNGb2N1cyIsImhyZWYiLCJ0YWJJbmRleCIsImVuYWJsZWQiLCJjaGVja2VkIiwic2VsZWN0ZWQiLCJzZWxlY3RlZEluZGV4IiwiZW1wdHkiLCJwYXJlbnQiLCJoZWFkZXIiLCJpbnB1dCIsImJ1dHRvbiIsImV2ZW4iLCJvZGQiLCJsdCIsImd0IiwibnRoIiwicmFkaW8iLCJjaGVja2JveCIsImZpbGUiLCJwYXNzd29yZCIsImltYWdlIiwic3VibWl0IiwicmVzZXQiLCJyYSIsInVhIiwid2EiLCJ4YSIsInZhIiwieWEiLCJmaWx0ZXJzIiwidG9rZW5pemUiLCJjb21waWxlIiwic2VsZWN0b3IiLCJzZWxlY3QiLCJkZWZhdWx0VmFsdWUiLCJleHByIiwidW5pcXVlIiwiaXNYTUxEb2MiLCJlc2NhcGVTZWxlY3RvciIsImlzIiwicGFyc2VIVE1MIiwicmVhZHkiLCJjaGlsZHJlbiIsImNvbnRlbnRzIiwicHJldiIsImNsb3Nlc3QiLCJpbmRleCIsInByZXZBbGwiLCJhZGQiLCJhZGRCYWNrIiwicGFyZW50cyIsInBhcmVudHNVbnRpbCIsIm5leHRBbGwiLCJuZXh0VW50aWwiLCJwcmV2VW50aWwiLCJzaWJsaW5ncyIsImNvbnRlbnREb2N1bWVudCIsImNvbnRlbnQiLCJyZXZlcnNlIiwicHJvbWlzZSIsImRvbmUiLCJmYWlsIiwidGhlbiIsIkNhbGxiYWNrcyIsIm9uY2UiLCJzdG9wT25GYWxzZSIsIm1lbW9yeSIsInJlbW92ZSIsImRpc2FibGUiLCJsb2NrIiwibG9ja2VkIiwiZmlyZVdpdGgiLCJmaXJlIiwiZmlyZWQiLCJEZWZlcnJlZCIsInN0YXRlIiwiYWx3YXlzIiwiY2F0Y2giLCJwaXBlIiwicHJvZ3Jlc3MiLCJub3RpZnkiLCJyZXNvbHZlIiwicmVqZWN0IiwiVHlwZUVycm9yIiwibm90aWZ5V2l0aCIsInJlc29sdmVXaXRoIiwiZXhjZXB0aW9uSG9vayIsInN0YWNrVHJhY2UiLCJyZWplY3RXaXRoIiwiZ2V0U3RhY2tIb29rIiwic2V0VGltZW91dCIsIndoZW4iLCJjb25zb2xlIiwid2FybiIsIm5hbWUiLCJtZXNzYWdlIiwic3RhY2siLCJyZWFkeUV4Y2VwdGlvbiIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZWFkeVdhaXQiLCJyZWFkeVN0YXRlIiwiZG9TY3JvbGwiLCJ1aWQiLCJjYWNoZSIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwic2V0IiwiYWNjZXNzIiwiaGFzRGF0YSIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJyZW1vdmVEYXRhIiwiX2RhdGEiLCJfcmVtb3ZlRGF0YSIsInF1ZXVlIiwiZGVxdWV1ZSIsIl9xdWV1ZUhvb2tzIiwic3RvcCIsImNsZWFyUXVldWUiLCJzb3VyY2UiLCJzdHlsZSIsImRpc3BsYXkiLCJjc3MiLCJjdXIiLCJjc3NOdW1iZXIiLCJ1bml0Iiwic3RhcnQiLCJib2R5Iiwic2hvdyIsImhpZGUiLCJ0b2dnbGUiLCJvcHRpb24iLCJ0aGVhZCIsImNvbCIsInRyIiwidGQiLCJfZGVmYXVsdCIsIm9wdGdyb3VwIiwidGJvZHkiLCJ0Zm9vdCIsImNvbGdyb3VwIiwiY2FwdGlvbiIsInRoIiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsImh0bWxQcmVmaWx0ZXIiLCJjcmVhdGVUZXh0Tm9kZSIsImNoZWNrQ2xvbmUiLCJjbG9uZU5vZGUiLCJub0Nsb25lQ2hlY2tlZCIsIm9mZiIsImV2ZW50IiwiZ2xvYmFsIiwiaGFuZGxlciIsImV2ZW50cyIsImhhbmRsZSIsInRyaWdnZXJlZCIsImRpc3BhdGNoIiwic3BlY2lhbCIsImRlbGVnYXRlVHlwZSIsImJpbmRUeXBlIiwib3JpZ1R5cGUiLCJuYW1lc3BhY2UiLCJkZWxlZ2F0ZUNvdW50Iiwic2V0dXAiLCJ0ZWFyZG93biIsInJlbW92ZUV2ZW50IiwiZml4IiwiZGVsZWdhdGVUYXJnZXQiLCJwcmVEaXNwYXRjaCIsImhhbmRsZXJzIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJjdXJyZW50VGFyZ2V0IiwiZWxlbSIsImlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkIiwicm5hbWVzcGFjZSIsImhhbmRsZU9iaiIsInJlc3VsdCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwicG9zdERpc3BhdGNoIiwiYWRkUHJvcCIsIkV2ZW50IiwiZW51bWVyYWJsZSIsIm9yaWdpbmFsRXZlbnQiLCJ3cml0YWJsZSIsImxvYWQiLCJub0J1YmJsZSIsInRyaWdnZXIiLCJibHVyIiwiY2xpY2siLCJiZWZvcmV1bmxvYWQiLCJyZXR1cm5WYWx1ZSIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZWxhdGVkVGFyZ2V0IiwidGltZVN0YW1wIiwiaXNTaW11bGF0ZWQiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJhbHRLZXkiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImNoYW5nZWRUb3VjaGVzIiwiY3RybEtleSIsImRldGFpbCIsImV2ZW50UGhhc2UiLCJtZXRhS2V5IiwicGFnZVgiLCJwYWdlWSIsInNoaWZ0S2V5IiwidmlldyIsImNoYXIiLCJjaGFyQ29kZSIsImtleSIsImtleUNvZGUiLCJidXR0b25zIiwiY2xpZW50WCIsImNsaWVudFkiLCJvZmZzZXRYIiwib2Zmc2V0WSIsInBvaW50ZXJJZCIsInBvaW50ZXJUeXBlIiwic2NyZWVuWCIsInNjcmVlblkiLCJ0YXJnZXRUb3VjaGVzIiwidG9FbGVtZW50IiwidG91Y2hlcyIsIndoaWNoIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJvbiIsIm9uZSIsInphIiwiQWEiLCJCYSIsIkNhIiwiRGEiLCJFYSIsIkZhIiwiR2EiLCJIYSIsIkphIiwiaHRtbCIsImNsb25lIiwic3JjIiwiX2V2YWxVcmwiLCJLYSIsImNsZWFuRGF0YSIsImRldGFjaCIsImFwcGVuZCIsInByZXBlbmQiLCJpbnNlcnRCZWZvcmUiLCJiZWZvcmUiLCJhZnRlciIsInJlcGxhY2VXaXRoIiwicmVwbGFjZUNoaWxkIiwiYXBwZW5kVG8iLCJwcmVwZW5kVG8iLCJpbnNlcnRBZnRlciIsInJlcGxhY2VBbGwiLCJMYSIsIk1hIiwiTmEiLCJvcGVuZXIiLCJnZXRDb21wdXRlZFN0eWxlIiwiT2EiLCJnZXRQcm9wZXJ0eVZhbHVlIiwicGl4ZWxNYXJnaW5SaWdodCIsIndpZHRoIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsIlBhIiwiY3NzVGV4dCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImJhY2tncm91bmRDbGlwIiwiY2xlYXJDbG9uZVN0eWxlIiwicGl4ZWxQb3NpdGlvbiIsImJveFNpemluZ1JlbGlhYmxlIiwicmVsaWFibGVNYXJnaW5MZWZ0IiwiUWEiLCJSYSIsIlNhIiwicG9zaXRpb24iLCJ2aXNpYmlsaXR5IiwiVGEiLCJsZXR0ZXJTcGFjaW5nIiwiZm9udFdlaWdodCIsIlVhIiwiVmEiLCJYYSIsImNzc1Byb3BzIiwiV2EiLCJZYSIsIm1heCIsIlphIiwiJGEiLCJfYSIsImNzc0hvb2tzIiwib3BhY2l0eSIsImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IiwiY29sdW1uQ291bnQiLCJmaWxsT3BhY2l0eSIsImZsZXhHcm93IiwiZmxleFNocmluayIsImxpbmVIZWlnaHQiLCJvcmRlciIsIm9ycGhhbnMiLCJ3aWRvd3MiLCJ6SW5kZXgiLCJ6b29tIiwiZmxvYXQiLCJzZXRQcm9wZXJ0eSIsImlzRmluaXRlIiwiZ2V0Q2xpZW50UmVjdHMiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsZWZ0IiwibWFyZ2luIiwicGFkZGluZyIsImJvcmRlciIsImV4cGFuZCIsIlR3ZWVuIiwicHJvcCIsImVhc2luZyIsIm9wdGlvbnMiLCJwcm9wSG9va3MiLCJydW4iLCJkdXJhdGlvbiIsInBvcyIsInN0ZXAiLCJmeCIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJsaW5lYXIiLCJzd2luZyIsImNvcyIsIlBJIiwiYWIiLCJiYiIsImNiIiwiZGIiLCJlYiIsImhpZGRlbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImludGVydmFsIiwidGljayIsImZiIiwiZ2IiLCJoZWlnaHQiLCJoYiIsImtiIiwidHdlZW5lcnMiLCJwcmVmaWx0ZXJzIiwic3RhcnRUaW1lIiwidHdlZW5zIiwicHJvcHMiLCJvcHRzIiwic3BlY2lhbEVhc2luZyIsIm9yaWdpbmFsUHJvcGVydGllcyIsIm9yaWdpbmFsT3B0aW9ucyIsImNyZWF0ZVR3ZWVuIiwiamIiLCJjb21wbGV0ZSIsInRpbWVyIiwiYW5pbSIsIkFuaW1hdGlvbiIsIioiLCJ0d2VlbmVyIiwidW5xdWV1ZWQiLCJvdmVyZmxvdyIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsInByZWZpbHRlciIsInNwZWVkIiwic3BlZWRzIiwib2xkIiwiZmFkZVRvIiwiYW5pbWF0ZSIsImZpbmlzaCIsInRpbWVycyIsInNsaWRlRG93biIsInNsaWRlVXAiLCJzbGlkZVRvZ2dsZSIsImZhZGVJbiIsImZhZGVPdXQiLCJmYWRlVG9nZ2xlIiwic2xvdyIsImZhc3QiLCJkZWxheSIsImNsZWFyVGltZW91dCIsImNoZWNrT24iLCJvcHRTZWxlY3RlZCIsInJhZGlvVmFsdWUiLCJsYiIsIm1iIiwicmVtb3ZlQXR0ciIsImF0dHJIb29rcyIsIm5iIiwib2IiLCJwYiIsInFiIiwicmVtb3ZlUHJvcCIsInByb3BGaXgiLCJwYXJzZUludCIsImZvciIsImNsYXNzIiwiYWRkQ2xhc3MiLCJyZW1vdmVDbGFzcyIsInRvZ2dsZUNsYXNzIiwiaGFzQ2xhc3MiLCJyYiIsInZhbCIsInZhbEhvb2tzIiwic2IiLCJpc1RyaWdnZXIiLCJwYXJlbnRXaW5kb3ciLCJzaW11bGF0ZSIsInRyaWdnZXJIYW5kbGVyIiwiaG92ZXIiLCJmb2N1c2luIiwidGIiLCJ1YiIsInZiIiwicGFyc2VYTUwiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJ3YiIsInhiIiwieWIiLCJ6YiIsIkFiIiwicGFyYW0iLCJlbmNvZGVVUklDb21wb25lbnQiLCJzZXJpYWxpemUiLCJzZXJpYWxpemVBcnJheSIsIkJiIiwiQ2IiLCJEYiIsIkViIiwiR2IiLCJIYiIsIkliIiwiSmIiLCJLYiIsIkxiIiwiTWIiLCJOYiIsImRhdGFUeXBlcyIsIk9iIiwiYWpheFNldHRpbmdzIiwiZmxhdE9wdGlvbnMiLCJhY3RpdmUiLCJsYXN0TW9kaWZpZWQiLCJldGFnIiwidXJsIiwiaXNMb2NhbCIsInByb3RvY29sIiwicHJvY2Vzc0RhdGEiLCJhc3luYyIsImNvbnRlbnRUeXBlIiwiYWNjZXB0cyIsInhtbCIsImpzb24iLCJyZXNwb25zZUZpZWxkcyIsImNvbnZlcnRlcnMiLCIqIHRleHQiLCJ0ZXh0IGh0bWwiLCJ0ZXh0IGpzb24iLCJ0ZXh0IHhtbCIsImNvbnRleHQiLCJhamF4U2V0dXAiLCJhamF4UHJlZmlsdGVyIiwiYWpheFRyYW5zcG9ydCIsImFqYXgiLCJzdGF0dXNDb2RlIiwiZ2V0UmVzcG9uc2VIZWFkZXIiLCJnZXRBbGxSZXNwb25zZUhlYWRlcnMiLCJzZXRSZXF1ZXN0SGVhZGVyIiwib3ZlcnJpZGVNaW1lVHlwZSIsIm1pbWVUeXBlIiwic3RhdHVzIiwiYWJvcnQiLCJtZXRob2QiLCJkYXRhVHlwZSIsImNyb3NzRG9tYWluIiwiaG9zdCIsInRyYWRpdGlvbmFsIiwiaGFzQ29udGVudCIsImlmTW9kaWZpZWQiLCJoZWFkZXJzIiwiYmVmb3JlU2VuZCIsInN1Y2Nlc3MiLCJ0aW1lb3V0Iiwic2VuZCIsIlBiIiwiZGF0YUZpbHRlciIsIlFiIiwic3RhdHVzVGV4dCIsImdldEpTT04iLCJnZXRTY3JpcHQiLCJ0aHJvd3MiLCJ3cmFwQWxsIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJ3cmFwSW5uZXIiLCJ3cmFwIiwidW53cmFwIiwidmlzaWJsZSIsIm9mZnNldFdpZHRoIiwib2Zmc2V0SGVpZ2h0IiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJSYiIsIjAiLCIxMjIzIiwiU2IiLCJjb3JzIiwib3BlbiIsInVzZXJuYW1lIiwieGhyRmllbGRzIiwib25sb2FkIiwib25lcnJvciIsIm9uYWJvcnQiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZXNwb25zZVR5cGUiLCJyZXNwb25zZVRleHQiLCJiaW5hcnkiLCJyZXNwb25zZSIsInNjcmlwdCIsInRleHQgc2NyaXB0IiwiY2hhcnNldCIsInNjcmlwdENoYXJzZXQiLCJUYiIsIlViIiwianNvbnAiLCJqc29ucENhbGxiYWNrIiwiY3JlYXRlSFRNTERvY3VtZW50IiwiaW1wbGVtZW50YXRpb24iLCJhbmltYXRlZCIsIm9mZnNldCIsInNldE9mZnNldCIsInVzaW5nIiwicGFnZVlPZmZzZXQiLCJjbGllbnRUb3AiLCJwYWdlWE9mZnNldCIsImNsaWVudExlZnQiLCJvZmZzZXRQYXJlbnQiLCJzY3JvbGxUbyIsIkhlaWdodCIsIldpZHRoIiwiIiwiYmluZCIsInVuYmluZCIsImRlbGVnYXRlIiwidW5kZWxlZ2F0ZSIsImhvbGRSZWFkeSIsInBhcnNlSlNPTiIsImRlZmluZSIsImFtZCIsIlZiIiwialF1ZXJ5IiwiV2IiLCJub0NvbmZsaWN0IiwiZWxlbWVudHMiLCJjcmVhdGVFbGVtIiwiY2FuSGF2ZUNoaWxkcmVuIiwiZnJhZyIsInNoaXZDU1MiLCJoYXNDU1MiLCJjcmVhdGVGcmFnIiwic2hpdk1ldGhvZHMiLCJGdW5jdGlvbiIsImh0bWw1IiwidmVyc2lvbiIsInN1cHBvcnRzVW5rbm93bkVsZW1lbnRzIiwic2hpdkRvY3VtZW50Iiwic3ZnNGV2ZXJ5Ym9keSIsImhhc0F0dHJpYnV0ZSIsIl9jYWNoZWREb2N1bWVudCIsIl9jYWNoZWRUYXJnZXQiLCJfZW1iZWRzIiwic3ZnIiwic2VsZiIsInBvbHlmaWxsIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwiYXR0cmlidXRlTmFtZSIsInZhbGlkYXRlIiwidW5kZWZpbmVkIiwiT3dsIiwiZWxlbWVudCIsInNldHRpbmdzIiwiRGVmYXVsdHMiLCIkZWxlbWVudCIsIl9oYW5kbGVycyIsIl9wbHVnaW5zIiwiX3N1cHJlc3MiLCJfY3VycmVudCIsIl9zcGVlZCIsIl9jb29yZGluYXRlcyIsIl9icmVha3BvaW50IiwiX3dpZHRoIiwiX2l0ZW1zIiwiX2Nsb25lcyIsIl9tZXJnZXJzIiwiX3dpZHRocyIsIl9pbnZhbGlkYXRlZCIsIl9waXBlIiwiX2RyYWciLCJ0aW1lIiwicG9pbnRlciIsInN0YWdlIiwiY3VycmVudCIsImRpcmVjdGlvbiIsIl9zdGF0ZXMiLCJ0YWdzIiwiaW5pdGlhbGl6aW5nIiwiYW5pbWF0aW5nIiwiZHJhZ2dpbmciLCJQbHVnaW5zIiwicGx1Z2luIiwiY2hhckF0IiwiV29ya2VycyIsInByaW9yaXR5Iiwid29ya2VyIiwiaW5pdGlhbGl6ZSIsIml0ZW1zIiwibG9vcCIsImNlbnRlciIsInJld2luZCIsIm1vdXNlRHJhZyIsInRvdWNoRHJhZyIsInB1bGxEcmFnIiwiZnJlZURyYWciLCJzdGFnZVBhZGRpbmciLCJtZXJnZUZpdCIsImF1dG9XaWR0aCIsInN0YXJ0UG9zaXRpb24iLCJydGwiLCJzbWFydFNwZWVkIiwiZmx1aWRTcGVlZCIsImRyYWdFbmRTcGVlZCIsInJlc3BvbnNpdmUiLCJyZXNwb25zaXZlUmVmcmVzaFJhdGUiLCJyZXNwb25zaXZlQmFzZUVsZW1lbnQiLCJmYWxsYmFja0Vhc2luZyIsImluZm8iLCJuZXN0ZWRJdGVtU2VsZWN0b3IiLCJpdGVtRWxlbWVudCIsInN0YWdlRWxlbWVudCIsInJlZnJlc2hDbGFzcyIsImxvYWRlZENsYXNzIiwibG9hZGluZ0NsYXNzIiwicnRsQ2xhc3MiLCJyZXNwb25zaXZlQ2xhc3MiLCJkcmFnQ2xhc3MiLCJpdGVtQ2xhc3MiLCJzdGFnZUNsYXNzIiwic3RhZ2VPdXRlckNsYXNzIiwiZ3JhYkNsYXNzIiwiRGVmYXVsdCIsIklubmVyIiwiT3V0ZXIiLCJUeXBlIiwiU3RhdGUiLCIkc3RhZ2UiLCJncmlkIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJ0b0ZpeGVkIiwid2lkdGhzIiwibWluIiwiY2xvbmVzIiwic2l6ZSIsImNlaWwiLCJyZXBlYXQiLCJub3JtYWxpemUiLCJvdXRlckhUTUwiLCJwcmV2aW91cyIsImNvb3JkaW5hdGVzIiwiYWJzIiwicGFkZGluZy1sZWZ0IiwicGFkZGluZy1yaWdodCIsIm1pbmltdW0iLCJtYXhpbXVtIiwiaW5uZXIiLCJvdXRlciIsImJlZ2luIiwib3AiLCJpbWdzIiwibmVzdGVkU2VsZWN0b3IiLCJlbnRlciIsInByZWxvYWRBdXRvV2lkdGhJbWFnZXMiLCJyZWZyZXNoIiwiaW52YWxpZGF0ZSIsInJlZ2lzdGVyRXZlbnRIYW5kbGVycyIsImxlYXZlIiwidmlld3BvcnQiLCJvdmVyd3JpdGVzIiwiYnJlYWtwb2ludCIsIk51bWJlciIsInByb3BlcnR5Iiwib3B0aW9uc0xvZ2ljIiwicHJlcGFyZSIsIml0ZW0iLCJ1cGRhdGUiLCJhbGwiLCJkaW1lbnNpb24iLCJvblRocm90dGxlZFJlc2l6ZSIsInJlc2l6ZVRpbWVyIiwib25SZXNpemUiLCJ0cmFuc2l0aW9uIiwib25UcmFuc2l0aW9uRW5kIiwib25EcmFnU3RhcnQiLCJvbkRyYWdFbmQiLCJ0cmFuc2Zvcm0iLCJnZXRUaW1lIiwiZGVsdGEiLCJkaWZmZXJlbmNlIiwib25EcmFnTW92ZSIsInB1bGwiLCJjb29yZGluYXRlIiwidHJhbnNmb3JtM2QiLCJwYXJ0Iiwic3VwcHJlc3MiLCJyZWxlYXNlIiwicmVjaXByb2NhbEl0ZW1zV2lkdGgiLCJlbGVtZW50V2lkdGgiLCJtZXJnZXJzIiwibXVsdGlwbGllciIsIm5ld1Bvc2l0aW9uIiwiZnJvbSIsInRvIiwiZmFjdG9yIiwicmV2ZXJ0IiwiZGlzdGFuY2UiLCJzcmNFbGVtZW50Iiwib3JpZ2luYWxUYXJnZXQiLCJpbm5lcldpZHRoIiwiY2xpZW50V2lkdGgiLCJpbWFnZXMiLCJJbWFnZSIsImRlc3Ryb3kiLCJsaXN0ZW5lciIsImNhcHR1cmUiLCJkZXRhY2hFdmVudCIsImNvdW50Iiwib25UcmlnZ2VyIiwicmVnaXN0ZXIiLCJvYmplY3QiLCJvd2wiLCJ0YWciLCJudW1iZXIiLCJzZWNvbmQiLCJvd2xDYXJvdXNlbCIsImFyZ3MiLCIkdGhpcyIsIkNvbnN0cnVjdG9yIiwiWmVwdG8iLCJBdXRvUmVmcmVzaCIsImNhcm91c2VsIiwiX2NvcmUiLCJfaW50ZXJ2YWwiLCJfdmlzaWJsZSIsImluaXRpYWxpemVkLm93bC5jYXJvdXNlbCIsImF1dG9SZWZyZXNoIiwid2F0Y2giLCJhdXRvUmVmcmVzaEludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJjbGVhckludGVydmFsIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsIkxhenkiLCJfbG9hZGVkIiwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIGNoYW5nZS5vd2wuY2Fyb3VzZWwgcmVzaXplZC5vd2wuY2Fyb3VzZWwiLCJsYXp5TG9hZCIsIiRpdGVtIiwiJGVsZW1lbnRzIiwiZGV2aWNlUGl4ZWxSYXRpbyIsImJhY2tncm91bmQtaW1hZ2UiLCJBdXRvSGVpZ2h0IiwiaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIHJlZnJlc2hlZC5vd2wuY2Fyb3VzZWwiLCJhdXRvSGVpZ2h0IiwiY2hhbmdlZC5vd2wuY2Fyb3VzZWwiLCJsb2FkZWQub3dsLmxhenkiLCJhdXRvSGVpZ2h0Q2xhc3MiLCJtYXhoZWlnaHQiLCJoZWlnaHRzIiwiVmlkZW8iLCJfdmlkZW9zIiwiX3BsYXlpbmciLCJyZXNpemUub3dsLmNhcm91c2VsIiwidmlkZW8iLCJpc0luRnVsbFNjcmVlbiIsInJlZnJlc2hlZC5vd2wuY2Fyb3VzZWwiLCJwcmVwYXJlZC5vd2wuY2Fyb3VzZWwiLCJmZXRjaCIsInBsYXkiLCJ2aWRlb0hlaWdodCIsInZpZGVvV2lkdGgiLCJ0aHVtYm5haWwiLCJ0bkxpbmsiLCJwYXRoIiwiZGltZW5zaW9ucyIsImN1c3RvbVRuIiwic3JjVHlwZSIsImxhenlDbGFzcyIsImNyZWF0ZSIsInRodW1ibmFpbF9sYXJnZSIsImZyYW1lZ3JhYl91cmwiLCJmdWxsc2NyZWVuRWxlbWVudCIsIm1vekZ1bGxTY3JlZW5FbGVtZW50Iiwid2Via2l0RnVsbHNjcmVlbkVsZW1lbnQiLCJBbmltYXRlIiwic2NvcGUiLCJjb3JlIiwic3dhcHBpbmciLCJjaGFuZ2Uub3dsLmNhcm91c2VsIiwiZHJhZy5vd2wuY2Fyb3VzZWwgZHJhZ2dlZC5vd2wuY2Fyb3VzZWwgdHJhbnNsYXRlZC5vd2wuY2Fyb3VzZWwiLCJ0cmFuc2xhdGUub3dsLmNhcm91c2VsIiwiYW5pbWF0ZU91dCIsImFuaW1hdGVJbiIsInN3YXAiLCJhbmltYXRpb24iLCJjbGVhciIsImluY29taW5nIiwib3V0Z29pbmciLCJBdXRvcGxheSIsIl90aW1lb3V0IiwiX3BhdXNlZCIsImF1dG9wbGF5IiwiX3NldEF1dG9QbGF5SW50ZXJ2YWwiLCJwbGF5Lm93bC5hdXRvcGxheSIsInN0b3Aub3dsLmF1dG9wbGF5IiwibW91c2VvdmVyLm93bC5hdXRvcGxheSIsImF1dG9wbGF5SG92ZXJQYXVzZSIsInBhdXNlIiwibW91c2VsZWF2ZS5vd2wuYXV0b3BsYXkiLCJ0b3VjaHN0YXJ0Lm93bC5jb3JlIiwidG91Y2hlbmQub3dsLmNvcmUiLCJhdXRvcGxheVRpbWVvdXQiLCJhdXRvcGxheVNwZWVkIiwiX2dldE5leHRUaW1lb3V0IiwiTmF2aWdhdGlvbiIsIl9pbml0aWFsaXplZCIsIl9wYWdlcyIsIl9jb250cm9scyIsIl90ZW1wbGF0ZXMiLCJfb3ZlcnJpZGVzIiwiZG90c0RhdGEiLCJkb3RDbGFzcyIsImFkZGVkLm93bC5jYXJvdXNlbCIsInJlbW92ZS5vd2wuY2Fyb3VzZWwiLCJkcmF3IiwibmF2IiwibmF2VGV4dCIsIm5hdlNwZWVkIiwibmF2RWxlbWVudCIsIm5hdkNvbnRhaW5lciIsIm5hdkNvbnRhaW5lckNsYXNzIiwibmF2Q2xhc3MiLCJzbGlkZUJ5IiwiZG90c0NsYXNzIiwiZG90cyIsImRvdHNFYWNoIiwiZG90c1NwZWVkIiwiZG90c0NvbnRhaW5lciIsIm92ZXJyaWRlIiwiJHJlbGF0aXZlIiwiJHByZXZpb3VzIiwiJG5leHQiLCIkYWJzb2x1dGUiLCJjb250cm9sIiwib3ZlcmlkZXMiLCJsb3dlciIsInVwcGVyIiwicGFnZSIsImdldFBvc2l0aW9uIiwic3VjY2Vzc29yIiwic3RhbmRhcmQiLCJIYXNoIiwiX2hhc2hlcyIsInN1YnN0cmluZyIsIlVSTGhhc2hMaXN0ZW5lciIsInByZWZpeGVzIiwiV2Via2l0VHJhbnNpdGlvbiIsIk1velRyYW5zaXRpb24iLCJPVHJhbnNpdGlvbiIsIldlYmtpdEFuaW1hdGlvbiIsIk1vekFuaW1hdGlvbiIsIk9BbmltYXRpb24iLCJ0ZXN0cyIsInByZWZpeGVkIiwiZmFuY3lib3giLCJsb2ciLCJndXR0ZXIiLCJrZXlib2FyZCIsImFycm93cyIsImluZm9iYXIiLCJ0b29sYmFyIiwiaWRsZVRpbWUiLCJzbWFsbEJ0biIsInByb3RlY3QiLCJtb2RhbCIsInByZWxvYWQiLCJpZnJhbWUiLCJ0cGwiLCJzY3JvbGxpbmciLCJkZWZhdWx0VHlwZSIsImFuaW1hdGlvbkVmZmVjdCIsImFuaW1hdGlvbkR1cmF0aW9uIiwiem9vbU9wYWNpdHkiLCJ0cmFuc2l0aW9uRWZmZWN0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwic2xpZGVDbGFzcyIsImJhc2VDbGFzcyIsImJhc2VUcGwiLCJzcGlubmVyVHBsIiwiZXJyb3JUcGwiLCJidG5UcGwiLCJkb3dubG9hZCIsImNsb3NlIiwiYXJyb3dMZWZ0IiwiYXJyb3dSaWdodCIsInBhcmVudEVsIiwiYXV0b0ZvY3VzIiwiYmFja0ZvY3VzIiwidHJhcEZvY3VzIiwiZnVsbFNjcmVlbiIsImF1dG9TdGFydCIsInRvdWNoIiwidmVydGljYWwiLCJtb21lbnR1bSIsIm1lZGlhIiwic2xpZGVTaG93IiwidGh1bWJzIiwiaGlkZU9uQ2xvc2UiLCJvbkluaXQiLCJiZWZvcmVMb2FkIiwiYWZ0ZXJMb2FkIiwiYmVmb3JlU2hvdyIsImFmdGVyU2hvdyIsImJlZm9yZUNsb3NlIiwiYWZ0ZXJDbG9zZSIsIm9uQWN0aXZhdGUiLCJvbkRlYWN0aXZhdGUiLCJjbGlja0NvbnRlbnQiLCJjbGlja1NsaWRlIiwiY2xpY2tPdXRzaWRlIiwiZGJsY2xpY2tDb250ZW50IiwiZGJsY2xpY2tTbGlkZSIsImRibGNsaWNrT3V0c2lkZSIsIm1vYmlsZSIsImkxOG4iLCJlbiIsIkNMT1NFIiwiTkVYVCIsIlBSRVYiLCJFUlJPUiIsIlBMQVlfU1RBUlQiLCJQTEFZX1NUT1AiLCJGVUxMX1NDUkVFTiIsIlRIVU1CUyIsIkRPV05MT0FEIiwiU0hBUkUiLCJkZSIsIndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJpc01vYmlsZSIsImdyb3VwIiwiY3VyckluZGV4IiwicHJldkluZGV4IiwicHJldlBvcyIsImN1cnJQb3MiLCJmaXJzdFJ1biIsImNyZWF0ZUdyb3VwIiwiJGxhc3RGb2N1cyIsInNsaWRlcyIsInNjcm9sbGJhcldpZHRoIiwiZ2V0SW5zdGFuY2UiLCJNU1N0cmVhbSIsInNjcm9sbEhlaWdodCIsImlubmVySGVpZ2h0IiwidHJhbnNsYXRlIiwiJHJlZnMiLCJjb250YWluZXIiLCJmb3JFYWNoIiwiYWN0aXZhdGUiLCJqdW1wVG8iLCIkb3JpZyIsIiR0aHVtYiIsImFkZEV2ZW50cyIsInJlbW92ZUV2ZW50cyIsImlzQ2xvc2luZyIsImlkbGVTZWNvbmRzQ291bnRlciIsImlzSWRsZSIsInNob3dDb250cm9scyIsImlkbGVJbnRlcnZhbCIsImhpZGVDb250cm9scyIsImlzU2xpZGluZyIsImlzQW5pbWF0aW5nIiwiY3JlYXRlU2xpZGUiLCJ1cGRhdGVDb250cm9scyIsImdldFRyYW5zbGF0ZSIsIiRzbGlkZSIsImlzTW92ZWQiLCJmb3JjZWREdXJhdGlvbiIsImxvYWRTbGlkZSIsInJvdW5kIiwiaXNMb2FkZWQiLCJyZXZlYWxDb250ZW50IiwiaXNDb21wbGV0ZSIsInVwZGF0ZVNsaWRlIiwic2NhbGVUb0FjdHVhbCIsIiRjb250ZW50IiwiaGFzRXJyb3IiLCJ1cGRhdGVDdXJzb3IiLCJzY2FsZVgiLCJzY2FsZVkiLCJTbGlkZVNob3ciLCJpc0FjdGl2ZSIsInNjYWxlVG9GaXQiLCJnZXRGaXRQb3MiLCJmbG9vciIsInNldFRyYW5zbGF0ZSIsImlzWm9vbWFibGUiLCJpc1NjYWxlZERvd24iLCJjYW5QYW4iLCJpc0xvYWRpbmciLCJzZXRJbWFnZSIsInNldElmcmFtZSIsInNldENvbnRlbnQiLCJzZXRFcnJvciIsInNob3dMb2FkaW5nIiwic3Jjc2V0IiwicG9zdGZpeCIsInRodW1iIiwiJGdob3N0Iiwic2V0QmlnSW1hZ2UiLCIkaW1hZ2UiLCJ0aW1vdXRzIiwibmF0dXJhbFdpZHRoIiwibmF0dXJhbEhlaWdodCIsImhpZGVMb2FkaW5nIiwiY29udGVudFdpbmRvdyIsInNjcm9sbFdpZHRoIiwib3V0ZXJXaWR0aCIsIm91dGVySGVpZ2h0IiwiJHBsYWNlaG9sZGVyIiwiJHNtYWxsQnRuIiwiJHNwaW5uZXIiLCJnZXRUaHVtYlBvcyIsInBhcmVudEVsZW1lbnQiLCJldmVyeSIsInJpZ2h0IiwiYm90dG9tIiwiaXNWaXNpYmxlIiwiY2xlYW5VcCIsIiRjYXB0aW9uIiwiaXNIaWRkZW5Db250cm9scyIsInRvZ2dsZUNvbnRyb2xzIiwiZGVmYXVsdHMiLCJjcmVhdGVUb3VjaCIsInVzZTNkIiwiZG9jdW1lbnRNb2RlIiwicHJvcGVydHlOYW1lIiwieW91dHViZSIsIm1hdGNoZXIiLCJwYXJhbXMiLCJhdXRvaGlkZSIsImZzIiwicmVsIiwiaGQiLCJ3bW9kZSIsImVuYWJsZWpzYXBpIiwicGFyYW1QbGFjZSIsInZpbWVvIiwic2hvd190aXRsZSIsInNob3dfYnlsaW5lIiwic2hvd19wb3J0cmFpdCIsImZ1bGxzY3JlZW4iLCJhcGkiLCJtZXRhY2FmZSIsImRhaWx5bW90aW9uIiwiYWRkaXRpb25hbEluZm9zIiwidmluZSIsImluc3RhZ3JhbSIsImdtYXBfcGxhY2UiLCJnbWFwX3NlYXJjaCIsImRlY29kZVVSSUNvbXBvbmVudCIsImNvbnRlbnRQcm92aWRlciIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwid2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJtb3pDYW5jZWxBbmltYXRpb25GcmFtZSIsIm9DYW5jZWxBbmltYXRpb25GcmFtZSIsInNxcnQiLCJwb3ciLCJvbmNsaWNrIiwic3Vic3RyIiwiY2xpZW50SGVpZ2h0IiwiaW5zdGFuY2UiLCIkYmciLCJiZyIsIiRjb250YWluZXIiLCJvbnRvdWNoc3RhcnQiLCJzdGFydFBvaW50cyIsIiR0YXJnZXQiLCJjYW5UYXAiLCJjYW52YXNXaWR0aCIsImNhbnZhc0hlaWdodCIsImRpc3RhbmNlWCIsImRpc3RhbmNlWSIsImlzUGFubmluZyIsImlzU3dpcGluZyIsImlzWm9vbWluZyIsInNsaWRlclN0YXJ0UG9zIiwic2xpZGVyTGFzdFBvcyIsImNvbnRlbnRTdGFydFBvcyIsImNvbnRlbnRMYXN0UG9zIiwiY2VudGVyUG9pbnRTdGFydFgiLCJjZW50ZXJQb2ludFN0YXJ0WSIsInBlcmNlbnRhZ2VPZkltYWdlQXRQaW5jaFBvaW50WCIsInBlcmNlbnRhZ2VPZkltYWdlQXRQaW5jaFBvaW50WSIsInN0YXJ0RGlzdGFuY2VCZXR3ZWVuRmluZ2VycyIsIm9udG91Y2htb3ZlIiwibmV3UG9pbnRzIiwib25Td2lwZSIsIm9uUGFuIiwib25ab29tIiwiYXRhbjIiLCJpblRyYW5zaXRpb24iLCJyZXF1ZXN0SWQiLCJsaW1pdE1vdmVtZW50IiwibGltaXRQb3NpdGlvbiIsIm5ld1dpZHRoIiwibmV3SGVpZ2h0Iiwib250b3VjaGVuZCIsImVuZFBvaW50cyIsIm9uVGFwIiwidmVsb2NpdHlYIiwidmVsb2NpdHlZIiwic3BlZWRYIiwiZW5kUGFubmluZyIsImVuZFpvb21pbmciLCJlbmRTd2lwaW5nIiwic3RhcnRFdmVudCIsInRhcHBlZCIsInRhcFgiLCJ0YXBZIiwiR3Vlc3R1cmVzIiwiJGJ1dHRvbiIsIm9uSW5pdC5mYiIsImJlZm9yZVNob3cuZmIiLCJhZnRlclNob3cuZmIiLCJhZnRlcktleWRvd24uZmIiLCJiZWZvcmVDbG9zZS5mYiBvbkRlYWN0aXZhdGUuZmIiLCJyZXF1ZXN0IiwicmVxdWVzdEZ1bGxzY3JlZW4iLCJBTExPV19LRVlCT0FSRF9JTlBVVCIsImV4aXQiLCJleGl0RnVsbHNjcmVlbiIsImlzRnVsbHNjcmVlbiIsIkJvb2xlYW4iLCJmdWxsc2NyZWVuRW5hYmxlZCIsIkZ1bGxTY3JlZW4iLCJiZWZvcmVDbG9zZS5mYiIsImZ1bGxzY3JlZW5jaGFuZ2UiLCIkZ3JpZCIsIiRsaXN0IiwibWFyZ2luLXRvcCIsIlRodW1icyIsInNoYXJlIiwiZ2FsbGVyeSIsIm9yaWdIYXNoIiwiaGlzdG9yeSIsInRpdGxlIiwicGF0aG5hbWUiLCJzZWFyY2giLCJyZXBsYWNlU3RhdGUiXSwibWFwcGluZ3MiOiJDQUNBLFNBQUFBLEVBQUFDLEdBQUEsYUFBQSxpQkFBQUMsUUFBQSxpQkFBQUEsT0FBQUMsUUFBQUQsT0FBQUMsUUFBQUgsRUFBQUksU0FBQUgsRUFBQUQsR0FBQSxHQUFBLFNBQUFBLEdBQUEsSUFBQUEsRUFBQUksU0FBQSxNQUFBLElBQUFDLE1BQUEsNENBQUEsT0FBQUosRUFBQUQsSUFBQUMsRUFBQUQsR0FBQSxDQUFBLG9CQUFBTSxPQUFBQSxPQUFBQyxLQUFBLFNBQUFQLEVBQUFDLEdBQUEs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QixFQUFBLFNBQUFYLEVBQUFqQixHQUFBdWQsR0FBQSxnQkFBQSxXQUFBLElBQUF2YixFQUFBYixJQUFBRixFQUFBMmxDLFNBQUF1RixlQUFBdnFDLEdBQUFBLElBQUFJLEVBQUFvMkMsUUFBQSxJQUFBcDJDLEVBQUE2UCxPQUFBLElBQUE3UCxFQUFBNlAsT0FBQWpRLEdBQUFJLEVBQUFvMkMsVUFBQXgyQyxFQUFBLEtBQUFYLEVBQUEybEMsU0FBQTRCLFNBQUEsS0FBQXhtQyxFQUFBbzJDLFNBQUE5NEMsRUFBQTBDLEtBQUF5UyxXQUFBLFdBQUFuVixFQUFBNkIsTUFBQSxPQUFBLENBQUF6QixTQUFBRSxPQUFBQSxPQUFBb3lCLFFBQUFBIiwiZmlsZSI6ImxpYnMubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIGpRdWVyeSB2My4yLjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovXG4hZnVuY3Rpb24oYSxiKXtcInVzZSBzdHJpY3RcIjtcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcihcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIik7cmV0dXJuIGIoYSl9OmIoYSl9KFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXtcInVzZSBzdHJpY3RcIjt2YXIgYz1bXSxkPWEuZG9jdW1lbnQsZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YsZj1jLnNsaWNlLGc9Yy5jb25jYXQsaD1jLnB1c2gsaT1jLmluZGV4T2Ysaj17fSxrPWoudG9TdHJpbmcsbD1qLmhhc093blByb3BlcnR5LG09bC50b1N0cmluZyxuPW0uY2FsbChPYmplY3QpLG89e307ZnVuY3Rpb24gcChhLGIpe2I9Ynx8ZDt2YXIgYz1iLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7Yy50ZXh0PWEsYi5oZWFkLmFwcGVuZENoaWxkKGMpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYyl9dmFyIHE9XCIzLjIuMVwiLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IHIuZm4uaW5pdChhLGIpfSxzPS9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZyx0PS9eLW1zLS8sdT0vLShbYS16XSkvZyx2PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX07ci5mbj1yLnByb3RvdHlwZT17anF1ZXJ5OnEsY29uc3RydWN0b3I6cixsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP2YuY2FsbCh0aGlzKTphPDA/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7dmFyIGI9ci5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGIucHJldk9iamVjdD10aGlzLGJ9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHIuZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHIubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKyhhPDA/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYzxiP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpoLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sci5leHRlbmQ9ci5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoXCJib29sZWFuXCI9PXR5cGVvZiBnJiYoaj1nLGc9YXJndW1lbnRzW2hdfHx7fSxoKyspLFwib2JqZWN0XCI9PXR5cGVvZiBnfHxyLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09aSYmKGc9dGhpcyxoLS0pO2g8aTtoKyspaWYobnVsbCE9KGE9YXJndW1lbnRzW2hdKSlmb3IoYiBpbiBhKWM9Z1tiXSxkPWFbYl0sZyE9PWQmJihqJiZkJiYoci5pc1BsYWluT2JqZWN0KGQpfHwoZT1BcnJheS5pc0FycmF5KGQpKSk/KGU/KGU9ITEsZj1jJiZBcnJheS5pc0FycmF5KGMpP2M6W10pOmY9YyYmci5pc1BsYWluT2JqZWN0KGMpP2M6e30sZ1tiXT1yLmV4dGVuZChqLGYsZCkpOnZvaWQgMCE9PWQmJihnW2JdPWQpKTtyZXR1cm4gZ30sci5leHRlbmQoe2V4cGFuZG86XCJqUXVlcnlcIisocStNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cXEQvZyxcIlwiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhKX0sbm9vcDpmdW5jdGlvbigpe30saXNGdW5jdGlvbjpmdW5jdGlvbihhKXtyZXR1cm5cImZ1bmN0aW9uXCI9PT1yLnR5cGUoYSl9LGlzV2luZG93OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hJiZhPT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXt2YXIgYj1yLnR5cGUoYSk7cmV0dXJuKFwibnVtYmVyXCI9PT1ifHxcInN0cmluZ1wiPT09YikmJiFpc05hTihhLXBhcnNlRmxvYXQoYSkpfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiLGM7cmV0dXJuISghYXx8XCJbb2JqZWN0IE9iamVjdF1cIiE9PWsuY2FsbChhKSkmJighKGI9ZShhKSl8fChjPWwuY2FsbChiLFwiY29uc3RydWN0b3JcIikmJmIuY29uc3RydWN0b3IsXCJmdW5jdGlvblwiPT10eXBlb2YgYyYmbS5jYWxsKGMpPT09bikpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2ZvcihiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YStcIlwiOlwib2JqZWN0XCI9PXR5cGVvZiBhfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhP2pbay5jYWxsKGEpXXx8XCJvYmplY3RcIjp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihhKXtwKGEpfSxjYW1lbENhc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSh0LFwibXMtXCIpLnJlcGxhY2UodSx2KX0sZWFjaDpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MDtpZih3KGEpKXtmb3IoYz1hLmxlbmd0aDtkPGM7ZCsrKWlmKGIuY2FsbChhW2RdLGQsYVtkXSk9PT0hMSlicmVha31lbHNlIGZvcihkIGluIGEpaWYoYi5jYWxsKGFbZF0sZCxhW2RdKT09PSExKWJyZWFrO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hP1wiXCI6KGErXCJcIikucmVwbGFjZShzLFwiXCIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKHcoT2JqZWN0KGEpKT9yLm1lcmdlKGMsXCJzdHJpbmdcIj09dHlwZW9mIGE/W2FdOmEpOmguY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbnVsbD09Yj8tMTppLmNhbGwoYixhLGMpfSxtZXJnZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0rYi5sZW5ndGgsZD0wLGU9YS5sZW5ndGg7ZDxjO2QrKylhW2UrK109YltkXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2Y8ZztmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPTAsaD1bXTtpZih3KGEpKWZvcihkPWEubGVuZ3RoO2Y8ZDtmKyspZT1iKGFbZl0sZixjKSxudWxsIT1lJiZoLnB1c2goZSk7ZWxzZSBmb3IoZiBpbiBhKWU9YihhW2ZdLGYsYyksbnVsbCE9ZSYmaC5wdXNoKGUpO3JldHVybiBnLmFwcGx5KFtdLGgpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGImJihjPWFbYl0sYj1hLGE9Yyksci5pc0Z1bmN0aW9uKGEpKXJldHVybiBkPWYuY2FsbChhcmd1bWVudHMsMiksZT1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZC5jb25jYXQoZi5jYWxsKGFyZ3VtZW50cykpKX0sZS5ndWlkPWEuZ3VpZD1hLmd1aWR8fHIuZ3VpZCsrLGV9LG5vdzpEYXRlLm5vdyxzdXBwb3J0Om99KSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihyLmZuW1N5bWJvbC5pdGVyYXRvcl09Y1tTeW1ib2wuaXRlcmF0b3JdKSxyLmVhY2goXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbFwiLnNwbGl0KFwiIFwiKSxmdW5jdGlvbihhLGIpe2pbXCJbb2JqZWN0IFwiK2IrXCJdXCJdPWIudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIHcoYSl7dmFyIGI9ISFhJiZcImxlbmd0aFwiaW4gYSYmYS5sZW5ndGgsYz1yLnR5cGUoYSk7cmV0dXJuXCJmdW5jdGlvblwiIT09YyYmIXIuaXNXaW5kb3coYSkmJihcImFycmF5XCI9PT1jfHwwPT09Ynx8XCJudW1iZXJcIj09dHlwZW9mIGImJmI+MCYmYi0xIGluIGEpfXZhciB4PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9XCJzaXp6bGVcIisxKm5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9aGEoKSx6PWhhKCksQT1oYSgpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPXt9Lmhhc093blByb3BlcnR5LEQ9W10sRT1ELnBvcCxGPUQucHVzaCxHPUQucHVzaCxIPUQuc2xpY2UsST1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sSj1cImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkXCIsSz1cIltcXFxceDIwXFxcXHRcXFxcclxcXFxuXFxcXGZdXCIsTD1cIig/OlxcXFxcXFxcLnxbXFxcXHctXXxbXlxcMC1cXFxceGEwXSkrXCIsTT1cIlxcXFxbXCIrSytcIiooXCIrTCtcIikoPzpcIitLK1wiKihbKl4kfCF+XT89KVwiK0srXCIqKD86JygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwifChcIitMK1wiKSl8KVwiK0srXCIqXFxcXF1cIixOPVwiOihcIitMK1wiKSg/OlxcXFwoKCgnKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcJ10pKiknfFxcXCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFxcXFwiXSkqKVxcXCIpfCgoPzpcXFxcXFxcXC58W15cXFxcXFxcXCgpW1xcXFxdXXxcIitNK1wiKSopfC4qKVxcXFwpfClcIixPPW5ldyBSZWdFeHAoSytcIitcIixcImdcIiksUD1uZXcgUmVnRXhwKFwiXlwiK0srXCIrfCgoPzpefFteXFxcXFxcXFxdKSg/OlxcXFxcXFxcLikqKVwiK0srXCIrJFwiLFwiZ1wiKSxRPW5ldyBSZWdFeHAoXCJeXCIrSytcIiosXCIrSytcIipcIiksUj1uZXcgUmVnRXhwKFwiXlwiK0srXCIqKFs+K35dfFwiK0srXCIpXCIrSytcIipcIiksUz1uZXcgUmVnRXhwKFwiPVwiK0srXCIqKFteXFxcXF0nXFxcIl0qPylcIitLK1wiKlxcXFxdXCIsXCJnXCIpLFQ9bmV3IFJlZ0V4cChOKSxVPW5ldyBSZWdFeHAoXCJeXCIrTCtcIiRcIiksVj17SUQ6bmV3IFJlZ0V4cChcIl4jKFwiK0wrXCIpXCIpLENMQVNTOm5ldyBSZWdFeHAoXCJeXFxcXC4oXCIrTCtcIilcIiksVEFHOm5ldyBSZWdFeHAoXCJeKFwiK0wrXCJ8WypdKVwiKSxBVFRSOm5ldyBSZWdFeHAoXCJeXCIrTSksUFNFVURPOm5ldyBSZWdFeHAoXCJeXCIrTiksQ0hJTEQ6bmV3IFJlZ0V4cChcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIrSytcIiooZXZlbnxvZGR8KChbKy1dfCkoXFxcXGQqKW58KVwiK0srXCIqKD86KFsrLV18KVwiK0srXCIqKFxcXFxkKyl8KSlcIitLK1wiKlxcXFwpfClcIixcImlcIiksYm9vbDpuZXcgUmVnRXhwKFwiXig/OlwiK0orXCIpJFwiLFwiaVwiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cChcIl5cIitLK1wiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFxcXChcIitLK1wiKigoPzotXFxcXGQpP1xcXFxkKilcIitLK1wiKlxcXFwpfCkoPz1bXi1dfCQpXCIsXCJpXCIpfSxXPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWD0vXmhcXGQkL2ksWT0vXltee10rXFx7XFxzKlxcW25hdGl2ZSBcXHcvLFo9L14oPzojKFtcXHctXSspfChcXHcrKXxcXC4oW1xcdy1dKykpJC8sJD0vWyt+XS8sXz1uZXcgUmVnRXhwKFwiXFxcXFxcXFwoW1xcXFxkYS1mXXsxLDZ9XCIrSytcIj98KFwiK0srXCIpfC4pXCIsXCJpZ1wiKSxhYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9XCIweFwiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6ZDwwP1N0cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5NiwxMDIzJmR8NTYzMjApfSxiYT0vKFtcXDAtXFx4MWZcXHg3Zl18Xi0/XFxkKXxeLSR8W15cXDAtXFx4MWZcXHg3Zi1cXHVGRkZGXFx3LV0vZyxjYT1mdW5jdGlvbihhLGIpe3JldHVybiBiP1wiXFwwXCI9PT1hP1wiXFx1ZmZmZFwiOmEuc2xpY2UoMCwtMSkrXCJcXFxcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KStcIiBcIjpcIlxcXFxcIithfSxkYT1mdW5jdGlvbigpe20oKX0sZWE9dGEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMCYmKFwiZm9ybVwiaW4gYXx8XCJsYWJlbFwiaW4gYSl9LHtkaXI6XCJwYXJlbnROb2RlXCIsbmV4dDpcImxlZ2VuZFwifSk7dHJ5e0cuYXBwbHkoRD1ILmNhbGwodi5jaGlsZE5vZGVzKSx2LmNoaWxkTm9kZXMpLERbdi5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZmEpe0c9e2FwcGx5OkQubGVuZ3RoP2Z1bmN0aW9uKGEsYil7Ri5hcHBseShhLEguY2FsbChiKSl9OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgsZD0wO3doaWxlKGFbYysrXT1iW2QrK10pO2EubGVuZ3RoPWMtMX19fWZ1bmN0aW9uIGdhKGEsYixkLGUpe3ZhciBmLGgsaixrLGwsbyxyLHM9YiYmYi5vd25lckRvY3VtZW50LHc9Yj9iLm5vZGVUeXBlOjk7aWYoZD1kfHxbXSxcInN0cmluZ1wiIT10eXBlb2YgYXx8IWF8fDEhPT13JiY5IT09dyYmMTEhPT13KXJldHVybiBkO2lmKCFlJiYoKGI/Yi5vd25lckRvY3VtZW50fHxiOnYpIT09biYmbShiKSxiPWJ8fG4scCkpe2lmKDExIT09dyYmKGw9Wi5leGVjKGEpKSlpZihmPWxbMV0pe2lmKDk9PT13KXtpZighKGo9Yi5nZXRFbGVtZW50QnlJZChmKSkpcmV0dXJuIGQ7aWYoai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2UgaWYocyYmKGo9cy5nZXRFbGVtZW50QnlJZChmKSkmJnQoYixqKSYmai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2V7aWYobFsyXSlyZXR1cm4gRy5hcHBseShkLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSkpLGQ7aWYoKGY9bFszXSkmJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBHLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGYpKSxkfWlmKGMucXNhJiYhQVthK1wiIFwiXSYmKCFxfHwhcS50ZXN0KGEpKSl7aWYoMSE9PXcpcz1iLHI9YTtlbHNlIGlmKFwib2JqZWN0XCIhPT1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpeyhrPWIuZ2V0QXR0cmlidXRlKFwiaWRcIikpP2s9ay5yZXBsYWNlKGJhLGNhKTpiLnNldEF0dHJpYnV0ZShcImlkXCIsaz11KSxvPWcoYSksaD1vLmxlbmd0aDt3aGlsZShoLS0pb1toXT1cIiNcIitrK1wiIFwiK3NhKG9baF0pO3I9by5qb2luKFwiLFwiKSxzPSQudGVzdChhKSYmcWEoYi5wYXJlbnROb2RlKXx8Yn1pZihyKXRyeXtyZXR1cm4gRy5hcHBseShkLHMucXVlcnlTZWxlY3RvckFsbChyKSksZH1jYXRjaCh4KXt9ZmluYWxseXtrPT09dSYmYi5yZW1vdmVBdHRyaWJ1dGUoXCJpZFwiKX19fXJldHVybiBpKGEucmVwbGFjZShQLFwiJDFcIiksYixkLGUpfWZ1bmN0aW9uIGhhKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYytcIiBcIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIGJbYS5zaGlmdCgpXSxiW2MrXCIgXCJdPWV9cmV0dXJuIGJ9ZnVuY3Rpb24gaWEoYSl7cmV0dXJuIGFbdV09ITAsYX1mdW5jdGlvbiBqYShhKXt2YXIgYj1uLmNyZWF0ZUVsZW1lbnQoXCJmaWVsZHNldFwiKTt0cnl7cmV0dXJuISFhKGIpfWNhdGNoKGMpe3JldHVybiExfWZpbmFsbHl7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYj1udWxsfX1mdW5jdGlvbiBrYShhLGIpe3ZhciBjPWEuc3BsaXQoXCJ8XCIpLGU9Yy5sZW5ndGg7d2hpbGUoZS0tKWQuYXR0ckhhbmRsZVtjW2VdXT1ifWZ1bmN0aW9uIGxhKGEsYil7dmFyIGM9YiYmYSxkPWMmJjE9PT1hLm5vZGVUeXBlJiYxPT09Yi5ub2RlVHlwZSYmYS5zb3VyY2VJbmRleC1iLnNvdXJjZUluZGV4O2lmKGQpcmV0dXJuIGQ7aWYoYyl3aGlsZShjPWMubmV4dFNpYmxpbmcpaWYoYz09PWIpcmV0dXJuLTE7cmV0dXJuIGE/MTotMX1mdW5jdGlvbiBtYShhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVyblwiaW5wdXRcIj09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKFwiaW5wdXRcIj09PWN8fFwiYnV0dG9uXCI9PT1jKSYmYi50eXBlPT09YX19ZnVuY3Rpb24gb2EoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVyblwiZm9ybVwiaW4gYj9iLnBhcmVudE5vZGUmJmIuZGlzYWJsZWQ9PT0hMT9cImxhYmVsXCJpbiBiP1wibGFiZWxcImluIGIucGFyZW50Tm9kZT9iLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1hOmIuZGlzYWJsZWQ9PT1hOmIuaXNEaXNhYmxlZD09PWF8fGIuaXNEaXNhYmxlZCE9PSFhJiZlYShiKT09PWE6Yi5kaXNhYmxlZD09PWE6XCJsYWJlbFwiaW4gYiYmYi5kaXNhYmxlZD09PWF9fWZ1bmN0aW9uIHBhKGEpe3JldHVybiBpYShmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixpYShmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIHFhKGEpe3JldHVybiBhJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmYX1jPWdhLnN1cHBvcnQ9e30sZj1nYS5pc1hNTD1mdW5jdGlvbihhKXt2YXIgYj1hJiYoYS5vd25lckRvY3VtZW50fHxhKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuISFiJiZcIkhUTUxcIiE9PWIubm9kZU5hbWV9LG09Z2Euc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZSxnPWE/YS5vd25lckRvY3VtZW50fHxhOnY7cmV0dXJuIGchPT1uJiY5PT09Zy5ub2RlVHlwZSYmZy5kb2N1bWVudEVsZW1lbnQ/KG49ZyxvPW4uZG9jdW1lbnRFbGVtZW50LHA9IWYobiksdiE9PW4mJihlPW4uZGVmYXVsdFZpZXcpJiZlLnRvcCE9PWUmJihlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKFwidW5sb2FkXCIsZGEsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoXCJvbnVubG9hZFwiLGRhKSksYy5hdHRyaWJ1dGVzPWphKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXNzTmFtZT1cImlcIiwhYS5nZXRBdHRyaWJ1dGUoXCJjbGFzc05hbWVcIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWphKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKG4uY3JlYXRlQ29tbWVudChcIlwiKSksIWEuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCIqXCIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1ZLnRlc3Qobi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxjLmdldEJ5SWQ9amEoZnVuY3Rpb24oYSl7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoYSkuaWQ9dSwhbi5nZXRFbGVtZW50c0J5TmFtZXx8IW4uZ2V0RWxlbWVudHNCeU5hbWUodSkubGVuZ3RofSksYy5nZXRCeUlkPyhkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoXyxhYSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShcImlkXCIpPT09Yn19LGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBiLmdldEVsZW1lbnRCeUlkJiZwKXt2YXIgYz1iLmdldEVsZW1lbnRCeUlkKGEpO3JldHVybiBjP1tjXTpbXX19KTooZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKF8sYWEpO3JldHVybiBmdW5jdGlvbihhKXt2YXIgYz1cInVuZGVmaW5lZFwiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSxkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGMsZCxlLGY9Yi5nZXRFbGVtZW50QnlJZChhKTtpZihmKXtpZihjPWYuZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpLGMmJmMudmFsdWU9PT1hKXJldHVybltmXTtlPWIuZ2V0RWxlbWVudHNCeU5hbWUoYSksZD0wO3doaWxlKGY9ZVtkKytdKWlmKGM9Zi5nZXRBdHRyaWJ1dGVOb2RlKFwiaWRcIiksYyYmYy52YWx1ZT09PWEpcmV0dXJuW2ZdfXJldHVybltdfX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lP2IuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk6Yy5xc2E/Yi5xdWVyeVNlbGVjdG9yQWxsKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoXCIqXCI9PT1hKXt3aGlsZShjPWZbZSsrXSkxPT09Yy5ub2RlVHlwZSYmZC5wdXNoKGMpO3JldHVybiBkfXJldHVybiBmfSxkLmZpbmQuQ0xBU1M9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZmdW5jdGlvbihhLGIpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnApcmV0dXJuIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKX0scj1bXSxxPVtdLChjLnFzYT1ZLnRlc3Qobi5xdWVyeVNlbGVjdG9yQWxsKSkmJihqYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD1cIjxhIGlkPSdcIit1K1wiJz48L2E+PHNlbGVjdCBpZD0nXCIrdStcIi1cXHJcXFxcJyBtc2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiLGEucXVlcnlTZWxlY3RvckFsbChcIlttc2FsbG93Y2FwdHVyZV49JyddXCIpLmxlbmd0aCYmcS5wdXNoKFwiWypeJF09XCIrSytcIiooPzonJ3xcXFwiXFxcIilcIiksYS5xdWVyeVNlbGVjdG9yQWxsKFwiW3NlbGVjdGVkXVwiKS5sZW5ndGh8fHEucHVzaChcIlxcXFxbXCIrSytcIiooPzp2YWx1ZXxcIitKK1wiKVwiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbaWR+PVwiK3UrXCItXVwiKS5sZW5ndGh8fHEucHVzaChcIn49XCIpLGEucXVlcnlTZWxlY3RvckFsbChcIjpjaGVja2VkXCIpLmxlbmd0aHx8cS5wdXNoKFwiOmNoZWNrZWRcIiksYS5xdWVyeVNlbGVjdG9yQWxsKFwiYSNcIit1K1wiKypcIikubGVuZ3RofHxxLnB1c2goXCIuIy4rWyt+XVwiKX0pLGphKGZ1bmN0aW9uKGEpe2EuaW5uZXJIVE1MPVwiPGEgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT48c2VsZWN0IGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbi8+PC9zZWxlY3Q+XCI7dmFyIGI9bi5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7Yi5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsXCJoaWRkZW5cIiksYS5hcHBlbmRDaGlsZChiKS5zZXRBdHRyaWJ1dGUoXCJuYW1lXCIsXCJEXCIpLGEucXVlcnlTZWxlY3RvckFsbChcIltuYW1lPWRdXCIpLmxlbmd0aCYmcS5wdXNoKFwibmFtZVwiK0srXCIqWypeJHwhfl0/PVwiKSwyIT09YS5xdWVyeVNlbGVjdG9yQWxsKFwiOmVuYWJsZWRcIikubGVuZ3RoJiZxLnB1c2goXCI6ZW5hYmxlZFwiLFwiOmRpc2FibGVkXCIpLG8uYXBwZW5kQ2hpbGQoYSkuZGlzYWJsZWQ9ITAsMiE9PWEucXVlcnlTZWxlY3RvckFsbChcIjpkaXNhYmxlZFwiKS5sZW5ndGgmJnEucHVzaChcIjplbmFibGVkXCIsXCI6ZGlzYWJsZWRcIiksYS5xdWVyeVNlbGVjdG9yQWxsKFwiKiw6eFwiKSxxLnB1c2goXCIsLio6XCIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj1ZLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmphKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsXCIqXCIpLHMuY2FsbChhLFwiW3MhPScnXTp4XCIpLHIucHVzaChcIiE9XCIsTil9KSxxPXEubGVuZ3RoJiZuZXcgUmVnRXhwKHEuam9pbihcInxcIikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKFwifFwiKSksYj1ZLnRlc3Qoby5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiksdD1ifHxZLnRlc3Qoby5jb250YWlucyk/ZnVuY3Rpb24oYSxiKXt2YXIgYz05PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09ZHx8ISghZHx8MSE9PWQubm9kZVR5cGV8fCEoYy5jb250YWlucz9jLmNvbnRhaW5zKGQpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZCkpKX06ZnVuY3Rpb24oYSxiKXtpZihiKXdoaWxlKGI9Yi5wYXJlbnROb2RlKWlmKGI9PT1hKXJldHVybiEwO3JldHVybiExfSxCPWI/ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBkPSFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBkP2Q6KGQ9KGEub3duZXJEb2N1bWVudHx8YSk9PT0oYi5vd25lckRvY3VtZW50fHxiKT9hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpOjEsMSZkfHwhYy5zb3J0RGV0YWNoZWQmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSk9PT1kP2E9PT1ufHxhLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYSk/LTE6Yj09PW58fGIub3duZXJEb2N1bWVudD09PXYmJnQodixiKT8xOms/SShrLGEpLUkoayxiKTowOjQmZD8tMToxKX06ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBjLGQ9MCxlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZSxnPVthXSxoPVtiXTtpZighZXx8IWYpcmV0dXJuIGE9PT1uPy0xOmI9PT1uPzE6ZT8tMTpmPzE6az9JKGssYSktSShrLGIpOjA7aWYoZT09PWYpcmV0dXJuIGxhKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWcudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaC51bnNoaWZ0KGMpO3doaWxlKGdbZF09PT1oW2RdKWQrKztyZXR1cm4gZD9sYShnW2RdLGhbZF0pOmdbZF09PT12Py0xOmhbZF09PT12PzE6MH0sbik6bn0sZ2EubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBnYShhLG51bGwsbnVsbCxiKX0sZ2EubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFMsXCI9JyQxJ11cIiksYy5tYXRjaGVzU2VsZWN0b3ImJnAmJiFBW2IrXCIgXCJdJiYoIXJ8fCFyLnRlc3QoYikpJiYoIXF8fCFxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBnYShiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxnYS5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGdhLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZDLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxnYS5lc2NhcGU9ZnVuY3Rpb24oYSl7cmV0dXJuKGErXCJcIikucmVwbGFjZShiYSxjYSl9LGdhLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihcIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246IFwiK2EpfSxnYS51bmlxdWVTb3J0PWZ1bmN0aW9uKGEpe3ZhciBiLGQ9W10sZT0wLGY9MDtpZihsPSFjLmRldGVjdER1cGxpY2F0ZXMsaz0hYy5zb3J0U3RhYmxlJiZhLnNsaWNlKDApLGEuc29ydChCKSxsKXt3aGlsZShiPWFbZisrXSliPT09YVtmXSYmKGU9ZC5wdXNoKGYpKTt3aGlsZShlLS0pYS5zcGxpY2UoZFtlXSwxKX1yZXR1cm4gaz1udWxsLGF9LGU9Z2EuZ2V0VGV4dD1mdW5jdGlvbihhKXt2YXIgYixjPVwiXCIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENvbnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPWUoYSl9ZWxzZSBpZigzPT09Znx8ND09PWYpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ugd2hpbGUoYj1hW2QrK10pYys9ZShiKTtyZXR1cm4gY30sZD1nYS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzppYSxtYXRjaDpWLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7XCI+XCI6e2RpcjpcInBhcmVudE5vZGVcIixmaXJzdDohMH0sXCIgXCI6e2RpcjpcInBhcmVudE5vZGVcIn0sXCIrXCI6e2RpcjpcInByZXZpb3VzU2libGluZ1wiLGZpcnN0OiEwfSxcIn5cIjp7ZGlyOlwicHJldmlvdXNTaWJsaW5nXCJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKF8sYWEpLGFbM109KGFbM118fGFbNF18fGFbNV18fFwiXCIpLnJlcGxhY2UoXyxhYSksXCJ+PVwiPT09YVsyXSYmKGFbM109XCIgXCIrYVszXStcIiBcIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksXCJudGhcIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8Z2EuZXJyb3IoYVswXSksYVs0XT0rKGFbNF0/YVs1XSsoYVs2XXx8MSk6MiooXCJldmVuXCI9PT1hWzNdfHxcIm9kZFwiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fFwib2RkXCI9PT1hWzNdKSk6YVszXSYmZ2EuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBiLGM9IWFbNl0mJmFbMl07cmV0dXJuIFYuQ0hJTEQudGVzdChhWzBdKT9udWxsOihhWzNdP2FbMl09YVs0XXx8YVs1XXx8XCJcIjpjJiZULnRlc3QoYykmJihiPWcoYywhMCkpJiYoYj1jLmluZGV4T2YoXCIpXCIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoXyxhYSkudG9Mb3dlckNhc2UoKTtyZXR1cm5cIipcIj09PWE/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWJ9fSxDTEFTUzpmdW5jdGlvbihhKXt2YXIgYj15W2ErXCIgXCJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKFwiKF58XCIrSytcIilcIithK1wiKFwiK0srXCJ8JClcIikpJiZ5KGEsZnVuY3Rpb24oYSl7cmV0dXJuIGIudGVzdChcInN0cmluZ1wiPT10eXBlb2YgYS5jbGFzc05hbWUmJmEuY2xhc3NOYW1lfHxcInVuZGVmaW5lZFwiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIpfSl9LEFUVFI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXt2YXIgZT1nYS5hdHRyKGQsYSk7cmV0dXJuIG51bGw9PWU/XCIhPVwiPT09YjohYnx8KGUrPVwiXCIsXCI9XCI9PT1iP2U9PT1jOlwiIT1cIj09PWI/ZSE9PWM6XCJePVwiPT09Yj9jJiYwPT09ZS5pbmRleE9mKGMpOlwiKj1cIj09PWI/YyYmZS5pbmRleE9mKGMpPi0xOlwiJD1cIj09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09YzpcIn49XCI9PT1iPyhcIiBcIitlLnJlcGxhY2UoTyxcIiBcIikrXCIgXCIpLmluZGV4T2YoYyk+LTE6XCJ8PVwiPT09YiYmKGU9PT1jfHxlLnNsaWNlKDAsYy5sZW5ndGgrMSk9PT1jK1wiLVwiKSl9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPVwibnRoXCIhPT1hLnNsaWNlKDAsMyksZz1cImxhc3RcIiE9PWEuc2xpY2UoLTQpLGg9XCJvZi10eXBlXCI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz9cIm5leHRTaWJsaW5nXCI6XCJwcmV2aW91c1NpYmxpbmdcIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaCx0PSExO2lmKHEpe2lmKGYpe3doaWxlKHApe209Yjt3aGlsZShtPW1bcF0paWYoaD9tLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1tLm5vZGVUeXBlKXJldHVybiExO289cD1cIm9ubHlcIj09PWEmJiFvJiZcIm5leHRTaWJsaW5nXCJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe209cSxsPW1bdV18fChtW3VdPXt9KSxrPWxbbS51bmlxdWVJRF18fChsW20udW5pcXVlSURdPXt9KSxqPWtbYV18fFtdLG49alswXT09PXcmJmpbMV0sdD1uJiZqWzJdLG09biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKDE9PT1tLm5vZGVUeXBlJiYrK3QmJm09PT1iKXtrW2FdPVt3LG4sdF07YnJlYWt9fWVsc2UgaWYocyYmKG09YixsPW1bdV18fChtW3VdPXt9KSxrPWxbbS51bmlxdWVJRF18fChsW20udW5pcXVlSURdPXt9KSxqPWtbYV18fFtdLG49alswXT09PXcmJmpbMV0sdD1uKSx0PT09ITEpd2hpbGUobT0rK24mJm0mJm1bcF18fCh0PW49MCl8fG8ucG9wKCkpaWYoKGg/bS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bS5ub2RlVHlwZSkmJisrdCYmKHMmJihsPW1bdV18fChtW3VdPXt9KSxrPWxbbS51bmlxdWVJRF18fChsW20udW5pcXVlSURdPXt9KSxrW2FdPVt3LHRdKSxtPT09YikpYnJlYWs7cmV0dXJuIHQtPWUsdD09PWR8fHQlZD09PTAmJnQvZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGdhLmVycm9yKFwidW5zdXBwb3J0ZWQgcHNldWRvOiBcIithKTtyZXR1cm4gZVt1XT9lKGIpOmUubGVuZ3RoPjE/KGM9W2EsYSxcIlwiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2lhKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1JKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmlhKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShQLFwiJDFcIikpO3JldHVybiBkW3VdP2lhKGZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmLGc9ZChhLG51bGwsZSxbXSksaD1hLmxlbmd0aDt3aGlsZShoLS0pKGY9Z1toXSkmJihhW2hdPSEoYltoXT1mKSl9KTpmdW5jdGlvbihhLGUsZil7cmV0dXJuIGJbMF09YSxkKGIsbnVsbCxmLGMpLGJbMF09bnVsbCwhYy5wb3AoKX19KSxoYXM6aWEoZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybiBnYShhLGIpLmxlbmd0aD4wfX0pLGNvbnRhaW5zOmlhKGZ1bmN0aW9uKGEpe3JldHVybiBhPWEucmVwbGFjZShfLGFhKSxmdW5jdGlvbihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHR8fGUoYikpLmluZGV4T2YoYSk+LTF9fSksbGFuZzppYShmdW5jdGlvbihhKXtyZXR1cm4gVS50ZXN0KGF8fFwiXCIpfHxnYS5lcnJvcihcInVuc3VwcG9ydGVkIGxhbmc6IFwiK2EpLGE9YS5yZXBsYWNlKF8sYWEpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oYil7dmFyIGM7ZG8gaWYoYz1wP2IubGFuZzpiLmdldEF0dHJpYnV0ZShcInhtbDpsYW5nXCIpfHxiLmdldEF0dHJpYnV0ZShcImxhbmdcIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErXCItXCIpO3doaWxlKChiPWIucGFyZW50Tm9kZSkmJjE9PT1iLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oYil7dmFyIGM9YS5sb2NhdGlvbiYmYS5sb2NhdGlvbi5oYXNoO3JldHVybiBjJiZjLnNsaWNlKDEpPT09Yi5pZH0scm9vdDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW99LGZvY3VzOmZ1bmN0aW9uKGEpe3JldHVybiBhPT09bi5hY3RpdmVFbGVtZW50JiYoIW4uaGFzRm9jdXN8fG4uaGFzRm9jdXMoKSkmJiEhKGEudHlwZXx8YS5ocmVmfHx+YS50YWJJbmRleCl9LGVuYWJsZWQ6b2EoITEpLGRpc2FibGVkOm9hKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1iJiYhIWEuY2hlY2tlZHx8XCJvcHRpb25cIj09PWImJiEhYS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsYS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5jdGlvbihhKXtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpaWYoYS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIWQucHNldWRvcy5lbXB0eShhKX0saGVhZGVyOmZ1bmN0aW9uKGEpe3JldHVybiBYLnRlc3QoYS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGEpe3JldHVybiBXLnRlc3QoYS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuXCJpbnB1dFwiPT09YiYmXCJidXR0b25cIj09PWEudHlwZXx8XCJidXR0b25cIj09PWJ9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuXCJpbnB1dFwiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZcInRleHRcIj09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKFwidHlwZVwiKSl8fFwidGV4dFwiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6cGEoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OnBhKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpwYShmdW5jdGlvbihhLGIsYyl7cmV0dXJuW2M8MD9jK2I6Y119KSxldmVuOnBhKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7YzxiO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOnBhKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7YzxiO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6cGEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1jPDA/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpwYShmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWM8MD9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bWEoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bmEoYik7ZnVuY3Rpb24gcmEoKXt9cmEucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyByYSxnPWdhLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErXCIgXCJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7YyYmIShlPVEuZXhlYyhoKSl8fChlJiYoaD1oLnNsaWNlKGVbMF0ubGVuZ3RoKXx8aCksaS5wdXNoKGY9W10pKSxjPSExLChlPVIuZXhlYyhoKSkmJihjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTplWzBdLnJlcGxhY2UoUCxcIiBcIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9VltnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2dhLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gc2EoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPVwiXCI7YjxjO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHRhKGEsYixjKXt2YXIgZD1iLmRpcixlPWIubmV4dCxmPWV8fGQsZz1jJiZcInBhcmVudE5vZGVcIj09PWYsaD14Kys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGUpe3doaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZylyZXR1cm4gYShiLGMsZSk7cmV0dXJuITF9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbT1bdyxoXTtpZihpKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxnKSYmYShiLGMsaSkpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGcpaWYobD1iW3VdfHwoYlt1XT17fSksaz1sW2IudW5pcXVlSURdfHwobFtiLnVuaXF1ZUlEXT17fSksZSYmZT09PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSliPWJbZF18fGI7ZWxzZXtpZigoaj1rW2ZdKSYmalswXT09PXcmJmpbMV09PT1oKXJldHVybiBtWzJdPWpbMl07aWYoa1tmXT1tLG1bMl09YShiLGMsaSkpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHVhKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHZhKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2Q8ZTtkKyspZ2EoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHdhKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2g8aTtoKyspKGY9YVtoXSkmJihjJiYhYyhmLGQsZSl8fChnLnB1c2goZiksaiYmYi5wdXNoKGgpKSk7cmV0dXJuIGd9ZnVuY3Rpb24geGEoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9eGEoZCkpLGUmJiFlW3VdJiYoZT14YShlLGYpKSxpYShmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx2YShifHxcIipcIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOndhKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj13YShyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/SShmLGwpOm1ba10pPi0xJiYoZltqXT0hKGdbal09bCkpfX1lbHNlIHI9d2Eocj09PWc/ci5zcGxpY2UobyxyLmxlbmd0aCk6ciksZT9lKG51bGwsZyxyLGkpOkcuYXBwbHkoZyxyKX0pfWZ1bmN0aW9uIHlhKGEpe2Zvcih2YXIgYixjLGUsZj1hLmxlbmd0aCxnPWQucmVsYXRpdmVbYVswXS50eXBlXSxoPWd8fGQucmVsYXRpdmVbXCIgXCJdLGk9Zz8xOjAsaz10YShmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9dGEoZnVuY3Rpb24oYSl7cmV0dXJuIEkoYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3ZhciBlPSFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpO3JldHVybiBiPW51bGwsZX1dO2k8ZjtpKyspaWYoYz1kLnJlbGF0aXZlW2FbaV0udHlwZV0pbT1bdGEodWEobSksYyldO2Vsc2V7aWYoYz1kLmZpbHRlclthW2ldLnR5cGVdLmFwcGx5KG51bGwsYVtpXS5tYXRjaGVzKSxjW3VdKXtmb3IoZT0rK2k7ZTxmO2UrKylpZihkLnJlbGF0aXZlW2FbZV0udHlwZV0pYnJlYWs7cmV0dXJuIHhhKGk+MSYmdWEobSksaT4xJiZzYShhLnNsaWNlKDAsaS0xKS5jb25jYXQoe3ZhbHVlOlwiIFwiPT09YVtpLTJdLnR5cGU/XCIqXCI6XCJcIn0pKS5yZXBsYWNlKFAsXCIkMVwiKSxjLGk8ZSYmeWEoYS5zbGljZShpLGUpKSxlPGYmJnlhKGE9YS5zbGljZShlKSksZTxmJiZzYShhKSl9bS5wdXNoKGMpfXJldHVybiB1YShtKX1mdW5jdGlvbiB6YShhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxvLHEscj0wLHM9XCIwXCIsdD1mJiZbXSx1PVtdLHY9aix4PWZ8fGUmJmQuZmluZC5UQUcoXCIqXCIsaykseT13Kz1udWxsPT12PzE6TWF0aC5yYW5kb20oKXx8LjEsej14Lmxlbmd0aDtmb3IoayYmKGo9Zz09PW58fGd8fGspO3MhPT16JiZudWxsIT0obD14W3NdKTtzKyspe2lmKGUmJmwpe289MCxnfHxsLm93bmVyRG9jdW1lbnQ9PT1ufHwobShsKSxoPSFwKTt3aGlsZShxPWFbbysrXSlpZihxKGwsZ3x8bixoKSl7aS5wdXNoKGwpO2JyZWFrfWsmJih3PXkpfWMmJigobD0hcSYmbCkmJnItLSxmJiZ0LnB1c2gobCkpfWlmKHIrPXMsYyYmcyE9PXIpe289MDt3aGlsZShxPWJbbysrXSlxKHQsdSxnLGgpO2lmKGYpe2lmKHI+MCl3aGlsZShzLS0pdFtzXXx8dVtzXXx8KHVbc109RS5jYWxsKGkpKTt1PXdhKHUpfUcuYXBwbHkoaSx1KSxrJiYhZiYmdS5sZW5ndGg+MCYmcitiLmxlbmd0aD4xJiZnYS51bmlxdWVTb3J0KGkpfXJldHVybiBrJiYodz15LGo9diksdH07cmV0dXJuIGM/aWEoZik6Zn1yZXR1cm4gaD1nYS5jb21waWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPVtdLGY9QVthK1wiIFwiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj15YShiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEsemEoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWdhLnNlbGVjdD1mdW5jdGlvbihhLGIsYyxlKXt2YXIgZixpLGosayxsLG09XCJmdW5jdGlvblwiPT10eXBlb2YgYSYmYSxuPSFlJiZnKGE9bS5zZWxlY3Rvcnx8YSk7aWYoYz1jfHxbXSwxPT09bi5sZW5ndGgpe2lmKGk9blswXT1uWzBdLnNsaWNlKDApLGkubGVuZ3RoPjImJlwiSURcIj09PShqPWlbMF0pLnR5cGUmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2lbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChqLm1hdGNoZXNbMF0ucmVwbGFjZShfLGFhKSxiKXx8W10pWzBdLCFiKXJldHVybiBjO20mJihiPWIucGFyZW50Tm9kZSksYT1hLnNsaWNlKGkuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWY9Vi5uZWVkc0NvbnRleHQudGVzdChhKT8wOmkubGVuZ3RoO3doaWxlKGYtLSl7aWYoaj1pW2ZdLGQucmVsYXRpdmVbaz1qLnR5cGVdKWJyZWFrO2lmKChsPWQuZmluZFtrXSkmJihlPWwoai5tYXRjaGVzWzBdLnJlcGxhY2UoXyxhYSksJC50ZXN0KGlbMF0udHlwZSkmJnFhKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoaS5zcGxpY2UoZiwxKSxhPWUubGVuZ3RoJiZzYShpKSwhYSlyZXR1cm4gRy5hcHBseShjLGUpLGM7YnJlYWt9fX1yZXR1cm4obXx8aChhLG4pKShlLGIsIXAsYywhYnx8JC50ZXN0KGEpJiZxYShiLnBhcmVudE5vZGUpfHxiKSxjfSxjLnNvcnRTdGFibGU9dS5zcGxpdChcIlwiKS5zb3J0KEIpLmpvaW4oXCJcIik9PT11LGMuZGV0ZWN0RHVwbGljYXRlcz0hIWwsbSgpLGMuc29ydERldGFjaGVkPWphKGZ1bmN0aW9uKGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obi5jcmVhdGVFbGVtZW50KFwiZmllbGRzZXRcIikpfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPVwiPGEgaHJlZj0nIyc+PC9hPlwiLFwiI1wiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZShcImhyZWZcIil9KXx8a2EoXCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoXCIsZnVuY3Rpb24oYSxiLGMpe2lmKCFjKXJldHVybiBhLmdldEF0dHJpYnV0ZShiLFwidHlwZVwiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmphKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD1cIjxpbnB1dC8+XCIsYS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZShcInZhbHVlXCIsXCJcIiksXCJcIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKX0pfHxrYShcInZhbHVlXCIsZnVuY3Rpb24oYSxiLGMpe2lmKCFjJiZcImlucHV0XCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIGEuZGVmYXVsdFZhbHVlfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWEuZ2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIil9KXx8a2EoSixmdW5jdGlvbihhLGIsYyl7dmFyIGQ7aWYoIWMpcmV0dXJuIGFbYl09PT0hMD9iLnRvTG93ZXJDYXNlKCk6KGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSksZ2F9KGEpO3IuZmluZD14LHIuZXhwcj14LnNlbGVjdG9ycyxyLmV4cHJbXCI6XCJdPXIuZXhwci5wc2V1ZG9zLHIudW5pcXVlU29ydD1yLnVuaXF1ZT14LnVuaXF1ZVNvcnQsci50ZXh0PXguZ2V0VGV4dCxyLmlzWE1MRG9jPXguaXNYTUwsci5jb250YWlucz14LmNvbnRhaW5zLHIuZXNjYXBlU2VsZWN0b3I9eC5lc2NhcGU7dmFyIHk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9dm9pZCAwIT09Yzt3aGlsZSgoYT1hW2JdKSYmOSE9PWEubm9kZVR5cGUpaWYoMT09PWEubm9kZVR5cGUpe2lmKGUmJnIoYSkuaXMoYykpYnJlYWs7ZC5wdXNoKGEpfXJldHVybiBkfSx6PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfSxBPXIuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9dmFyIEM9L148KFthLXpdW15cXC9cXDA+OlxceDIwXFx0XFxyXFxuXFxmXSopW1xceDIwXFx0XFxyXFxuXFxmXSpcXC8/Pig/OjxcXC9cXDE+fCkkL2ksRD0vXi5bXjojXFxbXFwuLF0qJC87ZnVuY3Rpb24gRShhLGIsYyl7cmV0dXJuIHIuaXNGdW5jdGlvbihiKT9yLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTpiLm5vZGVUeXBlP3IuZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09YiE9PWN9KTpcInN0cmluZ1wiIT10eXBlb2YgYj9yLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gaS5jYWxsKGIsYSk+LTEhPT1jfSk6RC50ZXN0KGIpP3IuZmlsdGVyKGIsYSxjKTooYj1yLmZpbHRlcihiLGEpLHIuZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBpLmNhbGwoYixhKT4tMSE9PWMmJjE9PT1hLm5vZGVUeXBlfSkpfXIuZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1iWzBdO3JldHVybiBjJiYoYT1cIjpub3QoXCIrYStcIilcIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9yLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOnIuZmluZC5tYXRjaGVzKGEsci5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxyLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjLGQ9dGhpcy5sZW5ndGgsZT10aGlzO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhyKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7YjxkO2IrKylpZihyLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKGM9dGhpcy5wdXNoU3RhY2soW10pLGI9MDtiPGQ7YisrKXIuZmluZChhLGVbYl0sYyk7cmV0dXJuIGQ+MT9yLnVuaXF1ZVNvcnQoYyk6Y30sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhFKHRoaXMsYXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhFKHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFFKHRoaXMsXCJzdHJpbmdcIj09dHlwZW9mIGEmJkEudGVzdChhKT9yKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIEYsRz0vXig/OlxccyooPFtcXHdcXFddKz4pW14+XSp8IyhbXFx3LV0rKSkkLyxIPXIuZm4uaW5pdD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZighYSlyZXR1cm4gdGhpcztpZihjPWN8fEYsXCJzdHJpbmdcIj09dHlwZW9mIGEpe2lmKGU9XCI8XCI9PT1hWzBdJiZcIj5cIj09PWFbYS5sZW5ndGgtMV0mJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06Ry5leGVjKGEpLCFlfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIHI/YlswXTpiLHIubWVyZ2UodGhpcyxyLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOmQsITApKSxDLnRlc3QoZVsxXSkmJnIuaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKXIuaXNGdW5jdGlvbih0aGlzW2VdKT90aGlzW2VdKGJbZV0pOnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfXJldHVybiBmPWQuZ2V0RWxlbWVudEJ5SWQoZVsyXSksZiYmKHRoaXNbMF09Zix0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTpyLmlzRnVuY3Rpb24oYSk/dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEocik6ci5tYWtlQXJyYXkoYSx0aGlzKX07SC5wcm90b3R5cGU9ci5mbixGPXIoZCk7dmFyIEk9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSj17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtyLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGEpe3ZhciBiPXIoYSx0aGlzKSxjPWIubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8YzthKyspaWYoci5jb250YWlucyh0aGlzLGJbYV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTAsZT10aGlzLmxlbmd0aCxmPVtdLGc9XCJzdHJpbmdcIiE9dHlwZW9mIGEmJnIoYSk7aWYoIUEudGVzdChhKSlmb3IoO2Q8ZTtkKyspZm9yKGM9dGhpc1tkXTtjJiZjIT09YjtjPWMucGFyZW50Tm9kZSlpZihjLm5vZGVUeXBlPDExJiYoZz9nLmluZGV4KGMpPi0xOjE9PT1jLm5vZGVUeXBlJiZyLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGMsYSkpKXtmLnB1c2goYyk7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKGYubGVuZ3RoPjE/ci51bmlxdWVTb3J0KGYpOmYpfSxpbmRleDpmdW5jdGlvbihhKXtyZXR1cm4gYT9cInN0cmluZ1wiPT10eXBlb2YgYT9pLmNhbGwocihhKSx0aGlzWzBdKTppLmNhbGwodGhpcyxhLmpxdWVyeT9hWzBdOmEpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHIudW5pcXVlU29ydChyLm1lcmdlKHRoaXMuZ2V0KCkscihhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtmdW5jdGlvbiBLKGEsYil7d2hpbGUoKGE9YVtiXSkmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1yLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlwZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSxcInBhcmVudE5vZGVcIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHkoYSxcInBhcmVudE5vZGVcIixjKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gSyhhLFwibmV4dFNpYmxpbmdcIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEsoYSxcInByZXZpb3VzU2libGluZ1wiKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4geShhLFwibmV4dFNpYmxpbmdcIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHkoYSxcInByZXZpb3VzU2libGluZ1wiKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4geShhLFwibmV4dFNpYmxpbmdcIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4geShhLFwicHJldmlvdXNTaWJsaW5nXCIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB6KChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4geihhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gQihhLFwiaWZyYW1lXCIpP2EuY29udGVudERvY3VtZW50OihCKGEsXCJ0ZW1wbGF0ZVwiKSYmKGE9YS5jb250ZW50fHxhKSxyLm1lcmdlKFtdLGEuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oYSxiKXtyLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9ci5tYXAodGhpcyxiLGMpO3JldHVyblwiVW50aWxcIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiZcInN0cmluZ1wiPT10eXBlb2YgZCYmKGU9ci5maWx0ZXIoZCxlKSksdGhpcy5sZW5ndGg+MSYmKEpbYV18fHIudW5pcXVlU29ydChlKSxJLnRlc3QoYSkmJmUucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgTD0vW15cXHgyMFxcdFxcclxcblxcZl0rL2c7ZnVuY3Rpb24gTShhKXt2YXIgYj17fTtyZXR1cm4gci5lYWNoKGEubWF0Y2goTCl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9ci5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT1cInN0cmluZ1wiPT10eXBlb2YgYT9NKGEpOnIuZXh0ZW5kKHt9LGEpO3ZhciBiLGMsZCxlLGY9W10sZz1bXSxoPS0xLGk9ZnVuY3Rpb24oKXtmb3IoZT1lfHxhLm9uY2UsZD1iPSEwO2cubGVuZ3RoO2g9LTEpe2M9Zy5zaGlmdCgpO3doaWxlKCsraDxmLmxlbmd0aClmW2hdLmFwcGx5KGNbMF0sY1sxXSk9PT0hMSYmYS5zdG9wT25GYWxzZSYmKGg9Zi5sZW5ndGgsYz0hMSl9YS5tZW1vcnl8fChjPSExKSxiPSExLGUmJihmPWM/W106XCJcIil9LGo9e2FkZDpmdW5jdGlvbigpe3JldHVybiBmJiYoYyYmIWImJihoPWYubGVuZ3RoLTEsZy5wdXNoKGMpKSxmdW5jdGlvbiBkKGIpe3IuZWFjaChiLGZ1bmN0aW9uKGIsYyl7ci5pc0Z1bmN0aW9uKGMpP2EudW5pcXVlJiZqLmhhcyhjKXx8Zi5wdXNoKGMpOmMmJmMubGVuZ3RoJiZcInN0cmluZ1wiIT09ci50eXBlKGMpJiZkKGMpfSl9KGFyZ3VtZW50cyksYyYmIWImJmkoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHIuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxiKXt2YXIgYzt3aGlsZSgoYz1yLmluQXJyYXkoYixmLGMpKT4tMSlmLnNwbGljZShjLDEpLGM8PWgmJmgtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9yLmluQXJyYXkoYSxmKT4tMTpmLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBmJiYoZj1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBlPWc9W10sZj1jPVwiXCIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hZn0sbG9jazpmdW5jdGlvbigpe3JldHVybiBlPWc9W10sY3x8Ynx8KGY9Yz1cIlwiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWV9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGV8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sZy5wdXNoKGMpLGJ8fGkoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBqLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBqfTtmdW5jdGlvbiBOKGEpe3JldHVybiBhfWZ1bmN0aW9uIE8oYSl7dGhyb3cgYX1mdW5jdGlvbiBQKGEsYixjLGQpe3ZhciBlO3RyeXthJiZyLmlzRnVuY3Rpb24oZT1hLnByb21pc2UpP2UuY2FsbChhKS5kb25lKGIpLmZhaWwoYyk6YSYmci5pc0Z1bmN0aW9uKGU9YS50aGVuKT9lLmNhbGwoYSxiLGMpOmIuYXBwbHkodm9pZCAwLFthXS5zbGljZShkKSl9Y2F0Y2goYSl7Yy5hcHBseSh2b2lkIDAsW2FdKX19ci5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGIpe3ZhciBjPVtbXCJub3RpZnlcIixcInByb2dyZXNzXCIsci5DYWxsYmFja3MoXCJtZW1vcnlcIiksci5DYWxsYmFja3MoXCJtZW1vcnlcIiksMl0sW1wicmVzb2x2ZVwiLFwiZG9uZVwiLHIuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksci5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSwwLFwicmVzb2x2ZWRcIl0sW1wicmVqZWN0XCIsXCJmYWlsXCIsci5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSxyLkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLDEsXCJyZWplY3RlZFwiXV0sZD1cInBlbmRpbmdcIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBkfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LFwiY2F0Y2hcIjpmdW5jdGlvbihhKXtyZXR1cm4gZS50aGVuKG51bGwsYSl9LHBpcGU6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7cmV0dXJuIHIuRGVmZXJyZWQoZnVuY3Rpb24oYil7ci5lYWNoKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1yLmlzRnVuY3Rpb24oYVtkWzRdXSkmJmFbZFs0XV07ZltkWzFdXShmdW5jdGlvbigpe3ZhciBhPWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO2EmJnIuaXNGdW5jdGlvbihhLnByb21pc2UpP2EucHJvbWlzZSgpLnByb2dyZXNzKGIubm90aWZ5KS5kb25lKGIucmVzb2x2ZSkuZmFpbChiLnJlamVjdCk6YltkWzBdK1wiV2l0aFwiXSh0aGlzLGU/W2FdOmFyZ3VtZW50cyl9KX0pLGE9bnVsbH0pLnByb21pc2UoKX0sdGhlbjpmdW5jdGlvbihiLGQsZSl7dmFyIGY9MDtmdW5jdGlvbiBnKGIsYyxkLGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciBoPXRoaXMsaT1hcmd1bWVudHMsaj1mdW5jdGlvbigpe3ZhciBhLGo7aWYoIShiPGYpKXtpZihhPWQuYXBwbHkoaCxpKSxhPT09Yy5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiKTtqPWEmJihcIm9iamVjdFwiPT10eXBlb2YgYXx8XCJmdW5jdGlvblwiPT10eXBlb2YgYSkmJmEudGhlbixyLmlzRnVuY3Rpb24oaik/ZT9qLmNhbGwoYSxnKGYsYyxOLGUpLGcoZixjLE8sZSkpOihmKyssai5jYWxsKGEsZyhmLGMsTixlKSxnKGYsYyxPLGUpLGcoZixjLE4sYy5ub3RpZnlXaXRoKSkpOihkIT09TiYmKGg9dm9pZCAwLGk9W2FdKSwoZXx8Yy5yZXNvbHZlV2l0aCkoaCxpKSl9fSxrPWU/ajpmdW5jdGlvbigpe3RyeXtqKCl9Y2F0Y2goYSl7ci5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZyLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soYSxrLnN0YWNrVHJhY2UpLGIrMT49ZiYmKGQhPT1PJiYoaD12b2lkIDAsaT1bYV0pLGMucmVqZWN0V2l0aChoLGkpKX19O2I/aygpOihyLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKGsuc3RhY2tUcmFjZT1yLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxhLnNldFRpbWVvdXQoaykpfX1yZXR1cm4gci5EZWZlcnJlZChmdW5jdGlvbihhKXtjWzBdWzNdLmFkZChnKDAsYSxyLmlzRnVuY3Rpb24oZSk/ZTpOLGEubm90aWZ5V2l0aCkpLGNbMV1bM10uYWRkKGcoMCxhLHIuaXNGdW5jdGlvbihiKT9iOk4pKSxjWzJdWzNdLmFkZChnKDAsYSxyLmlzRnVuY3Rpb24oZCk/ZDpPKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/ci5leHRlbmQoYSxlKTplfX0sZj17fTtyZXR1cm4gci5lYWNoKGMsZnVuY3Rpb24oYSxiKXt2YXIgZz1iWzJdLGg9Yls1XTtlW2JbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7ZD1ofSxjWzMtYV1bMl0uZGlzYWJsZSxjWzBdWzJdLmxvY2spLGcuYWRkKGJbM10uZmlyZSksZltiWzBdXT1mdW5jdGlvbigpe3JldHVybiBmW2JbMF0rXCJXaXRoXCJdKHRoaXM9PT1mP3ZvaWQgMDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZltiWzBdK1wiV2l0aFwiXT1nLmZpcmVXaXRofSksZS5wcm9taXNlKGYpLGImJmIuY2FsbChmLGYpLGZ9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aCxjPWIsZD1BcnJheShjKSxlPWYuY2FsbChhcmd1bWVudHMpLGc9ci5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2RbYV09dGhpcyxlW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9mLmNhbGwoYXJndW1lbnRzKTpjLC0tYnx8Zy5yZXNvbHZlV2l0aChkLGUpfX07aWYoYjw9MSYmKFAoYSxnLmRvbmUoaChjKSkucmVzb2x2ZSxnLnJlamVjdCwhYiksXCJwZW5kaW5nXCI9PT1nLnN0YXRlKCl8fHIuaXNGdW5jdGlvbihlW2NdJiZlW2NdLnRoZW4pKSlyZXR1cm4gZy50aGVuKCk7d2hpbGUoYy0tKVAoZVtjXSxoKGMpLGcucmVqZWN0KTtyZXR1cm4gZy5wcm9taXNlKCl9fSk7dmFyIFE9L14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87ci5EZWZlcnJlZC5leGNlcHRpb25Ib29rPWZ1bmN0aW9uKGIsYyl7YS5jb25zb2xlJiZhLmNvbnNvbGUud2FybiYmYiYmUS50ZXN0KGIubmFtZSkmJmEuY29uc29sZS53YXJuKFwialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogXCIrYi5tZXNzYWdlLGIuc3RhY2ssYyl9LHIucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oYil7YS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgYn0pfTt2YXIgUj1yLkRlZmVycmVkKCk7ci5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gUi50aGVuKGEpW1wiY2F0Y2hcIl0oZnVuY3Rpb24oYSl7ci5yZWFkeUV4Y2VwdGlvbihhKX0pLHRoaXN9LHIuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyhhPT09ITA/LS1yLnJlYWR5V2FpdDpyLmlzUmVhZHkpfHwoci5pc1JlYWR5PSEwLGEhPT0hMCYmLS1yLnJlYWR5V2FpdD4wfHxSLnJlc29sdmVXaXRoKGQsW3JdKSl9fSksci5yZWFkeS50aGVuPVIudGhlbjtmdW5jdGlvbiBTKCl7ZC5yZW1vdmVFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLFMpLFxuYS5yZW1vdmVFdmVudExpc3RlbmVyKFwibG9hZFwiLFMpLHIucmVhZHkoKX1cImNvbXBsZXRlXCI9PT1kLnJlYWR5U3RhdGV8fFwibG9hZGluZ1wiIT09ZC5yZWFkeVN0YXRlJiYhZC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/YS5zZXRUaW1lb3V0KHIucmVhZHkpOihkLmFkZEV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsUyksYS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLFMpKTt2YXIgVD1mdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2YXIgaD0wLGk9YS5sZW5ndGgsaj1udWxsPT1jO2lmKFwib2JqZWN0XCI9PT1yLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYylUKGEsYixoLGNbaF0sITAsZixnKX1lbHNlIGlmKHZvaWQgMCE9PWQmJihlPSEwLHIuaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNhbGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChyKGEpLGMpfSkpLGIpKWZvcig7aDxpO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxiKGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9LFU9ZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfHw5PT09YS5ub2RlVHlwZXx8ISthLm5vZGVUeXBlfTtmdW5jdGlvbiBWKCl7dGhpcy5leHBhbmRvPXIuZXhwYW5kbytWLnVpZCsrfVYudWlkPTEsVi5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGEpe3ZhciBiPWFbdGhpcy5leHBhbmRvXTtyZXR1cm4gYnx8KGI9e30sVShhKSYmKGEubm9kZVR5cGU/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSksYn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPXRoaXMuY2FjaGUoYSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGIpZVtyLmNhbWVsQ2FzZShiKV09YztlbHNlIGZvcihkIGluIGIpZVtyLmNhbWVsQ2FzZShkKV09YltkXTtyZXR1cm4gZX0sZ2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHZvaWQgMD09PWI/dGhpcy5jYWNoZShhKTphW3RoaXMuZXhwYW5kb10mJmFbdGhpcy5leHBhbmRvXVtyLmNhbWVsQ2FzZShiKV19LGFjY2VzczpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHZvaWQgMD09PWJ8fGImJlwic3RyaW5nXCI9PXR5cGVvZiBiJiZ2b2lkIDA9PT1jP3RoaXMuZ2V0KGEsYik6KHRoaXMuc2V0KGEsYixjKSx2b2lkIDAhPT1jP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PWQpe2lmKHZvaWQgMCE9PWIpe0FycmF5LmlzQXJyYXkoYik/Yj1iLm1hcChyLmNhbWVsQ2FzZSk6KGI9ci5jYW1lbENhc2UoYiksYj1iIGluIGQ/W2JdOmIubWF0Y2goTCl8fFtdKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlkZWxldGUgZFtiW2NdXX0odm9pZCAwPT09Ynx8ci5pc0VtcHR5T2JqZWN0KGQpKSYmKGEubm9kZVR5cGU/YVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgYVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1iJiYhci5pc0VtcHR5T2JqZWN0KGIpfX07dmFyIFc9bmV3IFYsWD1uZXcgVixZPS9eKD86XFx7W1xcd1xcV10qXFx9fFxcW1tcXHdcXFddKlxcXSkkLyxaPS9bQS1aXS9nO2Z1bmN0aW9uICQoYSl7cmV0dXJuXCJ0cnVlXCI9PT1hfHxcImZhbHNlXCIhPT1hJiYoXCJudWxsXCI9PT1hP251bGw6YT09PSthK1wiXCI/K2E6WS50ZXN0KGEpP0pTT04ucGFyc2UoYSk6YSl9ZnVuY3Rpb24gXyhhLGIsYyl7dmFyIGQ7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpaWYoZD1cImRhdGEtXCIrYi5yZXBsYWNlKFosXCItJCZcIikudG9Mb3dlckNhc2UoKSxjPWEuZ2V0QXR0cmlidXRlKGQpLFwic3RyaW5nXCI9PXR5cGVvZiBjKXt0cnl7Yz0kKGMpfWNhdGNoKGUpe31YLnNldChhLGIsYyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY31yLmV4dGVuZCh7aGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gWC5oYXNEYXRhKGEpfHxXLmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBYLmFjY2VzcyhhLGIsYyl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtYLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFcuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtXLnJlbW92ZShhLGIpfX0pLHIuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9WC5nZXQoZiksMT09PWYubm9kZVR5cGUmJiFXLmdldChmLFwiaGFzRGF0YUF0dHJzXCIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoXCJkYXRhLVwiKSYmKGQ9ci5jYW1lbENhc2UoZC5zbGljZSg1KSksXyhmLGQsZVtkXSkpKTtXLnNldChmLFwiaGFzRGF0YUF0dHJzXCIsITApfXJldHVybiBlfXJldHVyblwib2JqZWN0XCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe1guc2V0KHRoaXMsYSl9KTpUKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM7aWYoZiYmdm9pZCAwPT09Yil7aWYoYz1YLmdldChmLGEpLHZvaWQgMCE9PWMpcmV0dXJuIGM7aWYoYz1fKGYsYSksdm9pZCAwIT09YylyZXR1cm4gY31lbHNlIHRoaXMuZWFjaChmdW5jdGlvbigpe1guc2V0KHRoaXMsYSxiKX0pfSxudWxsLGIsYXJndW1lbnRzLmxlbmd0aD4xLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtYLnJlbW92ZSh0aGlzLGEpfSl9fSksci5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihhKXJldHVybiBiPShifHxcImZ4XCIpK1wicXVldWVcIixkPVcuZ2V0KGEsYiksYyYmKCFkfHxBcnJheS5pc0FycmF5KGMpP2Q9Vy5hY2Nlc3MoYSxiLHIubWFrZUFycmF5KGMpKTpkLnB1c2goYykpLGR8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHxcImZ4XCI7dmFyIGM9ci5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1yLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe3IuZGVxdWV1ZShhLGIpfTtcImlucHJvZ3Jlc3NcIj09PWUmJihlPWMuc2hpZnQoKSxkLS0pLGUmJihcImZ4XCI9PT1iJiZjLnVuc2hpZnQoXCJpbnByb2dyZXNzXCIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrXCJxdWV1ZUhvb2tzXCI7cmV0dXJuIFcuZ2V0KGEsYyl8fFcuYWNjZXNzKGEsYyx7ZW1wdHk6ci5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKS5hZGQoZnVuY3Rpb24oKXtXLnJlbW92ZShhLFtiK1wicXVldWVcIixjXSl9KX0pfX0pLHIuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuXCJzdHJpbmdcIiE9dHlwZW9mIGEmJihiPWEsYT1cImZ4XCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/ci5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1yLnF1ZXVlKHRoaXMsYSxiKTtyLl9xdWV1ZUhvb2tzKHRoaXMsYSksXCJmeFwiPT09YSYmXCJpbnByb2dyZXNzXCIhPT1jWzBdJiZyLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtyLmRlcXVldWUodGhpcyxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fFwiZnhcIixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1yLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9O1wic3RyaW5nXCIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fFwiZnhcIjt3aGlsZShnLS0pYz1XLmdldChmW2ddLGErXCJxdWV1ZUhvb2tzXCIpLGMmJmMuZW1wdHkmJihkKyssYy5lbXB0eS5hZGQoaCkpO3JldHVybiBoKCksZS5wcm9taXNlKGIpfX0pO3ZhciBhYT0vWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLy5zb3VyY2UsYmE9bmV3IFJlZ0V4cChcIl4oPzooWystXSk9fCkoXCIrYWErXCIpKFthLXolXSopJFwiLFwiaVwiKSxjYT1bXCJUb3BcIixcIlJpZ2h0XCIsXCJCb3R0b21cIixcIkxlZnRcIl0sZGE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLFwibm9uZVwiPT09YS5zdHlsZS5kaXNwbGF5fHxcIlwiPT09YS5zdHlsZS5kaXNwbGF5JiZyLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKSYmXCJub25lXCI9PT1yLmNzcyhhLFwiZGlzcGxheVwiKX0sZWE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnPXt9O2ZvcihmIGluIGIpZ1tmXT1hLnN0eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuYXBwbHkoYSxkfHxbXSk7Zm9yKGYgaW4gYilhLnN0eWxlW2ZdPWdbZl07cmV0dXJuIGV9O2Z1bmN0aW9uIGZhKGEsYixjLGQpe3ZhciBlLGY9MSxnPTIwLGg9ZD9mdW5jdGlvbigpe3JldHVybiBkLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiByLmNzcyhhLGIsXCJcIil9LGk9aCgpLGo9YyYmY1szXXx8KHIuY3NzTnVtYmVyW2JdP1wiXCI6XCJweFwiKSxrPShyLmNzc051bWJlcltiXXx8XCJweFwiIT09aiYmK2kpJiZiYS5leGVjKHIuY3NzKGEsYikpO2lmKGsmJmtbM10hPT1qKXtqPWp8fGtbM10sYz1jfHxbXSxrPStpfHwxO2RvIGY9Znx8XCIuNVwiLGsvPWYsci5zdHlsZShhLGIsaytqKTt3aGlsZShmIT09KGY9aCgpL2kpJiYxIT09ZiYmLS1nKX1yZXR1cm4gYyYmKGs9K2t8fCtpfHwwLGU9Y1sxXT9rKyhjWzFdKzEpKmNbMl06K2NbMl0sZCYmKGQudW5pdD1qLGQuc3RhcnQ9ayxkLmVuZD1lKSksZX12YXIgZ2E9e307ZnVuY3Rpb24gaGEoYSl7dmFyIGIsYz1hLm93bmVyRG9jdW1lbnQsZD1hLm5vZGVOYW1lLGU9Z2FbZF07cmV0dXJuIGU/ZTooYj1jLmJvZHkuYXBwZW5kQ2hpbGQoYy5jcmVhdGVFbGVtZW50KGQpKSxlPXIuY3NzKGIsXCJkaXNwbGF5XCIpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSxcIm5vbmVcIj09PWUmJihlPVwiYmxvY2tcIiksZ2FbZF09ZSxlKX1mdW5jdGlvbiBpYShhLGIpe2Zvcih2YXIgYyxkLGU9W10sZj0wLGc9YS5sZW5ndGg7ZjxnO2YrKylkPWFbZl0sZC5zdHlsZSYmKGM9ZC5zdHlsZS5kaXNwbGF5LGI/KFwibm9uZVwiPT09YyYmKGVbZl09Vy5nZXQoZCxcImRpc3BsYXlcIil8fG51bGwsZVtmXXx8KGQuc3R5bGUuZGlzcGxheT1cIlwiKSksXCJcIj09PWQuc3R5bGUuZGlzcGxheSYmZGEoZCkmJihlW2ZdPWhhKGQpKSk6XCJub25lXCIhPT1jJiYoZVtmXT1cIm5vbmVcIixXLnNldChkLFwiZGlzcGxheVwiLGMpKSk7Zm9yKGY9MDtmPGc7ZisrKW51bGwhPWVbZl0mJihhW2ZdLnN0eWxlLmRpc3BsYXk9ZVtmXSk7cmV0dXJuIGF9ci5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gaWEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gaWEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtkYSh0aGlzKT9yKHRoaXMpLnNob3coKTpyKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBqYT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxrYT0vPChbYS16XVteXFwvXFwwPlxceDIwXFx0XFxyXFxuXFxmXSspL2ksbGE9L14kfFxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSxtYT17b3B0aW9uOlsxLFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLFwiPC9zZWxlY3Q+XCJdLHRoZWFkOlsxLFwiPHRhYmxlPlwiLFwiPC90YWJsZT5cIl0sY29sOlsyLFwiPHRhYmxlPjxjb2xncm91cD5cIixcIjwvY29sZ3JvdXA+PC90YWJsZT5cIl0sdHI6WzIsXCI8dGFibGU+PHRib2R5PlwiLFwiPC90Ym9keT48L3RhYmxlPlwiXSx0ZDpbMyxcIjx0YWJsZT48dGJvZHk+PHRyPlwiLFwiPC90cj48L3Rib2R5PjwvdGFibGU+XCJdLF9kZWZhdWx0OlswLFwiXCIsXCJcIl19O21hLm9wdGdyb3VwPW1hLm9wdGlvbixtYS50Ym9keT1tYS50Zm9vdD1tYS5jb2xncm91cD1tYS5jYXB0aW9uPW1hLnRoZWFkLG1hLnRoPW1hLnRkO2Z1bmN0aW9uIG5hKGEsYil7dmFyIGM7cmV0dXJuIGM9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHxcIipcIik6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbD9hLnF1ZXJ5U2VsZWN0b3JBbGwoYnx8XCIqXCIpOltdLHZvaWQgMD09PWJ8fGImJkIoYSxiKT9yLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG9hKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKVcuc2V0KGFbY10sXCJnbG9iYWxFdmFsXCIsIWJ8fFcuZ2V0KGJbY10sXCJnbG9iYWxFdmFsXCIpKX12YXIgcGE9Lzx8JiM/XFx3KzsvO2Z1bmN0aW9uIHFhKGEsYixjLGQsZSl7Zm9yKHZhciBmLGcsaCxpLGosayxsPWIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLG09W10sbj0wLG89YS5sZW5ndGg7bjxvO24rKylpZihmPWFbbl0sZnx8MD09PWYpaWYoXCJvYmplY3RcIj09PXIudHlwZShmKSlyLm1lcmdlKG0sZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihwYS50ZXN0KGYpKXtnPWd8fGwuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKSxoPShrYS5leGVjKGYpfHxbXCJcIixcIlwiXSlbMV0udG9Mb3dlckNhc2UoKSxpPW1hW2hdfHxtYS5fZGVmYXVsdCxnLmlubmVySFRNTD1pWzFdK3IuaHRtbFByZWZpbHRlcihmKStpWzJdLGs9aVswXTt3aGlsZShrLS0pZz1nLmxhc3RDaGlsZDtyLm1lcmdlKG0sZy5jaGlsZE5vZGVzKSxnPWwuZmlyc3RDaGlsZCxnLnRleHRDb250ZW50PVwiXCJ9ZWxzZSBtLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShmKSk7bC50ZXh0Q29udGVudD1cIlwiLG49MDt3aGlsZShmPW1bbisrXSlpZihkJiZyLmluQXJyYXkoZixkKT4tMSllJiZlLnB1c2goZik7ZWxzZSBpZihqPXIuY29udGFpbnMoZi5vd25lckRvY3VtZW50LGYpLGc9bmEobC5hcHBlbmRDaGlsZChmKSxcInNjcmlwdFwiKSxqJiZvYShnKSxjKXtrPTA7d2hpbGUoZj1nW2srK10pbGEudGVzdChmLnR5cGV8fFwiXCIpJiZjLnB1c2goZil9cmV0dXJuIGx9IWZ1bmN0aW9uKCl7dmFyIGE9ZC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksYj1hLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudChcImRpdlwiKSksYz1kLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtjLnNldEF0dHJpYnV0ZShcInR5cGVcIixcInJhZGlvXCIpLGMuc2V0QXR0cmlidXRlKFwiY2hlY2tlZFwiLFwiY2hlY2tlZFwiKSxjLnNldEF0dHJpYnV0ZShcIm5hbWVcIixcInRcIiksYi5hcHBlbmRDaGlsZChjKSxvLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsYi5pbm5lckhUTUw9XCI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+XCIsby5ub0Nsb25lQ2hlY2tlZD0hIWIuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlfSgpO3ZhciByYT1kLmRvY3VtZW50RWxlbWVudCxzYT0vXmtleS8sdGE9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLHVhPS9eKFteLl0qKSg/OlxcLiguKyl8KS87ZnVuY3Rpb24gdmEoKXtyZXR1cm4hMH1mdW5jdGlvbiB3YSgpe3JldHVybiExfWZ1bmN0aW9uIHhhKCl7dHJ5e3JldHVybiBkLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1mdW5jdGlvbiB5YShhLGIsYyxkLGUsZil7dmFyIGcsaDtpZihcIm9iamVjdFwiPT10eXBlb2YgYil7XCJzdHJpbmdcIiE9dHlwZW9mIGMmJihkPWR8fGMsYz12b2lkIDApO2ZvcihoIGluIGIpeWEoYSxoLGMsZCxiW2hdLGYpO3JldHVybiBhfWlmKG51bGw9PWQmJm51bGw9PWU/KGU9YyxkPWM9dm9pZCAwKTpudWxsPT1lJiYoXCJzdHJpbmdcIj09dHlwZW9mIGM/KGU9ZCxkPXZvaWQgMCk6KGU9ZCxkPWMsYz12b2lkIDApKSxlPT09ITEpZT13YTtlbHNlIGlmKCFlKXJldHVybiBhO3JldHVybiAxPT09ZiYmKGc9ZSxlPWZ1bmN0aW9uKGEpe3JldHVybiByKCkub2ZmKGEpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9Zy5ndWlkfHwoZy5ndWlkPXIuZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7ci5ldmVudC5hZGQodGhpcyxiLGUsZCxjKX0pfXIuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG4sbyxwLHE9Vy5nZXQoYSk7aWYocSl7Yy5oYW5kbGVyJiYoZj1jLGM9Zi5oYW5kbGVyLGU9Zi5zZWxlY3RvciksZSYmci5maW5kLm1hdGNoZXNTZWxlY3RvcihyYSxlKSxjLmd1aWR8fChjLmd1aWQ9ci5ndWlkKyspLChpPXEuZXZlbnRzKXx8KGk9cS5ldmVudHM9e30pLChnPXEuaGFuZGxlKXx8KGc9cS5oYW5kbGU9ZnVuY3Rpb24oYil7cmV0dXJuXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHImJnIuZXZlbnQudHJpZ2dlcmVkIT09Yi50eXBlP3IuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLGI9KGJ8fFwiXCIpLm1hdGNoKEwpfHxbXCJcIl0saj1iLmxlbmd0aDt3aGlsZShqLS0paD11YS5leGVjKGJbal0pfHxbXSxuPXA9aFsxXSxvPShoWzJdfHxcIlwiKS5zcGxpdChcIi5cIikuc29ydCgpLG4mJihsPXIuZXZlbnQuc3BlY2lhbFtuXXx8e30sbj0oZT9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8bixsPXIuZXZlbnQuc3BlY2lhbFtuXXx8e30saz1yLmV4dGVuZCh7dHlwZTpuLG9yaWdUeXBlOnAsZGF0YTpkLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxlY3RvcjplLG5lZWRzQ29udGV4dDplJiZyLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoZSksbmFtZXNwYWNlOm8uam9pbihcIi5cIil9LGYpLChtPWlbbl0pfHwobT1pW25dPVtdLG0uZGVsZWdhdGVDb3VudD0wLGwuc2V0dXAmJmwuc2V0dXAuY2FsbChhLGQsbyxnKSE9PSExfHxhLmFkZEV2ZW50TGlzdGVuZXImJmEuYWRkRXZlbnRMaXN0ZW5lcihuLGcpKSxsLmFkZCYmKGwuYWRkLmNhbGwoYSxrKSxrLmhhbmRsZXIuZ3VpZHx8KGsuaGFuZGxlci5ndWlkPWMuZ3VpZCkpLGU/bS5zcGxpY2UobS5kZWxlZ2F0ZUNvdW50KyssMCxrKTptLnB1c2goayksci5ldmVudC5nbG9iYWxbbl09ITApfX0scmVtb3ZlOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxuLG8scCxxPVcuaGFzRGF0YShhKSYmVy5nZXQoYSk7aWYocSYmKGk9cS5ldmVudHMpKXtiPShifHxcIlwiKS5tYXRjaChMKXx8W1wiXCJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9dWEuZXhlYyhiW2pdKXx8W10sbj1wPWhbMV0sbz0oaFsyXXx8XCJcIikuc3BsaXQoXCIuXCIpLnNvcnQoKSxuKXtsPXIuZXZlbnQuc3BlY2lhbFtuXXx8e30sbj0oZD9sLmRlbGVnYXRlVHlwZTpsLmJpbmRUeXBlKXx8bixtPWlbbl18fFtdLGg9aFsyXSYmbmV3IFJlZ0V4cChcIihefFxcXFwuKVwiK28uam9pbihcIlxcXFwuKD86LipcXFxcLnwpXCIpK1wiKFxcXFwufCQpXCIpLGc9Zj1tLmxlbmd0aDt3aGlsZShmLS0paz1tW2ZdLCFlJiZwIT09ay5vcmlnVHlwZXx8YyYmYy5ndWlkIT09ay5ndWlkfHxoJiYhaC50ZXN0KGsubmFtZXNwYWNlKXx8ZCYmZCE9PWsuc2VsZWN0b3ImJihcIioqXCIhPT1kfHwhay5zZWxlY3Rvcil8fChtLnNwbGljZShmLDEpLGsuc2VsZWN0b3ImJm0uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsaykpO2cmJiFtLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLG8scS5oYW5kbGUpIT09ITF8fHIucmVtb3ZlRXZlbnQoYSxuLHEuaGFuZGxlKSxkZWxldGUgaVtuXSl9ZWxzZSBmb3IobiBpbiBpKXIuZXZlbnQucmVtb3ZlKGEsbitiW2pdLGMsZCwhMCk7ci5pc0VtcHR5T2JqZWN0KGkpJiZXLnJlbW92ZShhLFwiaGFuZGxlIGV2ZW50c1wiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZhciBiPXIuZXZlbnQuZml4KGEpLGMsZCxlLGYsZyxoLGk9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGo9KFcuZ2V0KHRoaXMsXCJldmVudHNcIil8fHt9KVtiLnR5cGVdfHxbXSxrPXIuZXZlbnQuc3BlY2lhbFtiLnR5cGVdfHx7fTtmb3IoaVswXT1iLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKWlbY109YXJndW1lbnRzW2NdO2lmKGIuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYikhPT0hMSl7aD1yLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxiLGopLGM9MDt3aGlsZSgoZj1oW2MrK10pJiYhYi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXtiLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGQ9MDt3aGlsZSgoZz1mLmhhbmRsZXJzW2QrK10pJiYhYi5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWIucm5hbWVzcGFjZSYmIWIucm5hbWVzcGFjZS50ZXN0KGcubmFtZXNwYWNlKXx8KGIuaGFuZGxlT2JqPWcsYi5kYXRhPWcuZGF0YSxlPSgoci5ldmVudC5zcGVjaWFsW2cub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxnLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1lJiYoYi5yZXN1bHQ9ZSk9PT0hMSYmKGIucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYiksYi5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGcsaD1bXSxpPWIuZGVsZWdhdGVDb3VudCxqPWEudGFyZ2V0O2lmKGkmJmoubm9kZVR5cGUmJiEoXCJjbGlja1wiPT09YS50eXBlJiZhLmJ1dHRvbj49MSkpZm9yKDtqIT09dGhpcztqPWoucGFyZW50Tm9kZXx8dGhpcylpZigxPT09ai5ub2RlVHlwZSYmKFwiY2xpY2tcIiE9PWEudHlwZXx8ai5kaXNhYmxlZCE9PSEwKSl7Zm9yKGY9W10sZz17fSxjPTA7YzxpO2MrKylkPWJbY10sZT1kLnNlbGVjdG9yK1wiIFwiLHZvaWQgMD09PWdbZV0mJihnW2VdPWQubmVlZHNDb250ZXh0P3IoZSx0aGlzKS5pbmRleChqKT4tMTpyLmZpbmQoZSx0aGlzLG51bGwsW2pdKS5sZW5ndGgpLGdbZV0mJmYucHVzaChkKTtmLmxlbmd0aCYmaC5wdXNoKHtlbGVtOmosaGFuZGxlcnM6Zn0pfXJldHVybiBqPXRoaXMsaTxiLmxlbmd0aCYmaC5wdXNoKHtlbGVtOmosaGFuZGxlcnM6Yi5zbGljZShpKX0pLGh9LGFkZFByb3A6ZnVuY3Rpb24oYSxiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoci5FdmVudC5wcm90b3R5cGUsYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OnIuaXNGdW5jdGlvbihiKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gYih0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W2FdfSxzZXQ6ZnVuY3Rpb24oYil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfX0pfSxmaXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbci5leHBhbmRvXT9hOm5ldyByLkV2ZW50KGEpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09eGEoKSYmdGhpcy5mb2N1cylyZXR1cm4gdGhpcy5mb2N1cygpLCExfSxkZWxlZ2F0ZVR5cGU6XCJmb2N1c2luXCJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzPT09eGEoKSYmdGhpcy5ibHVyKXJldHVybiB0aGlzLmJsdXIoKSwhMX0sZGVsZWdhdGVUeXBlOlwiZm9jdXNvdXRcIn0sY2xpY2s6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZihcImNoZWNrYm94XCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2smJkIodGhpcyxcImlucHV0XCIpKXJldHVybiB0aGlzLmNsaWNrKCksITF9LF9kZWZhdWx0OmZ1bmN0aW9uKGEpe3JldHVybiBCKGEudGFyZ2V0LFwiYVwiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZvaWQgMCE9PWEucmVzdWx0JiZhLm9yaWdpbmFsRXZlbnQmJihhLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9YS5yZXN1bHQpfX19fSxyLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpfSxyLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiByLkV2ZW50PyhhJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJmEucmV0dXJuVmFsdWU9PT0hMT92YTp3YSx0aGlzLnRhcmdldD1hLnRhcmdldCYmMz09PWEudGFyZ2V0Lm5vZGVUeXBlP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWEuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9YSxiJiZyLmV4dGVuZCh0aGlzLGIpLHRoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxyLm5vdygpLHZvaWQodGhpc1tyLmV4cGFuZG9dPSEwKSk6bmV3IHIuRXZlbnQoYSxiKX0sci5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnIuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOndhLGlzUHJvcGFnYXRpb25TdG9wcGVkOndhLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOndhLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXZhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXZhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD12YSxhJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sci5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLFwiY2hhclwiOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOmZ1bmN0aW9uKGEpe3ZhciBiPWEuYnV0dG9uO3JldHVybiBudWxsPT1hLndoaWNoJiZzYS50ZXN0KGEudHlwZSk/bnVsbCE9YS5jaGFyQ29kZT9hLmNoYXJDb2RlOmEua2V5Q29kZTohYS53aGljaCYmdm9pZCAwIT09YiYmdGEudGVzdChhLnR5cGUpPzEmYj8xOjImYj8zOjQmYj8yOjA6YS53aGljaH19LHIuZXZlbnQuYWRkUHJvcCksci5lYWNoKHttb3VzZWVudGVyOlwibW91c2VvdmVyXCIsbW91c2VsZWF2ZTpcIm1vdXNlb3V0XCIscG9pbnRlcmVudGVyOlwicG9pbnRlcm92ZXJcIixwb2ludGVybGVhdmU6XCJwb2ludGVyb3V0XCJ9LGZ1bmN0aW9uKGEsYil7ci5ldmVudC5zcGVjaWFsW2FdPXtkZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihhKXt2YXIgYyxkPXRoaXMsZT1hLnJlbGF0ZWRUYXJnZXQsZj1hLmhhbmRsZU9iajtyZXR1cm4gZSYmKGU9PT1kfHxyLmNvbnRhaW5zKGQsZSkpfHwoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxyLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHlhKHRoaXMsYSxiLGMsZCl9LG9uZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4geWEodGhpcyxhLGIsYyxkLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGQ9YS5oYW5kbGVPYmoscihhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoZC5uYW1lc3BhY2U/ZC5vcmlnVHlwZStcIi5cIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMub2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gYiE9PSExJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPXdhKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtyLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfX0pO3ZhciB6YT0vPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbYS16XVteXFwvXFwwPlxceDIwXFx0XFxyXFxuXFxmXSopW14+XSopXFwvPi9naSxBYT0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxCYT0vY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLENhPS9edHJ1ZVxcLyguKikvLERhPS9eXFxzKjwhKD86XFxbQ0RBVEFcXFt8LS0pfCg/OlxcXVxcXXwtLSk+XFxzKiQvZztmdW5jdGlvbiBFYShhLGIpe3JldHVybiBCKGEsXCJ0YWJsZVwiKSYmQigxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsXCJ0clwiKT9yKFwiPnRib2R5XCIsYSlbMF18fGE6YX1mdW5jdGlvbiBGYShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpKStcIi9cIithLnR5cGUsYX1mdW5jdGlvbiBHYShhKXt2YXIgYj1DYS5leGVjKGEudHlwZSk7cmV0dXJuIGI/YS50eXBlPWJbMV06YS5yZW1vdmVBdHRyaWJ1dGUoXCJ0eXBlXCIpLGF9ZnVuY3Rpb24gSGEoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxqO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihXLmhhc0RhdGEoYSkmJihmPVcuYWNjZXNzKGEpLGc9Vy5zZXQoYixmKSxqPWYuZXZlbnRzKSl7ZGVsZXRlIGcuaGFuZGxlLGcuZXZlbnRzPXt9O2ZvcihlIGluIGopZm9yKGM9MCxkPWpbZV0ubGVuZ3RoO2M8ZDtjKyspci5ldmVudC5hZGQoYixlLGpbZV1bY10pfVguaGFzRGF0YShhKSYmKGg9WC5hY2Nlc3MoYSksaT1yLmV4dGVuZCh7fSxoKSxYLnNldChiLGkpKX19ZnVuY3Rpb24gSWEoYSxiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XCJpbnB1dFwiPT09YyYmamEudGVzdChhLnR5cGUpP2IuY2hlY2tlZD1hLmNoZWNrZWQ6XCJpbnB1dFwiIT09YyYmXCJ0ZXh0YXJlYVwiIT09Y3x8KGIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlKX1mdW5jdGlvbiBKYShhLGIsYyxkKXtiPWcuYXBwbHkoW10sYik7dmFyIGUsZixoLGksaixrLGw9MCxtPWEubGVuZ3RoLG49bS0xLHE9YlswXSxzPXIuaXNGdW5jdGlvbihxKTtpZihzfHxtPjEmJlwic3RyaW5nXCI9PXR5cGVvZiBxJiYhby5jaGVja0Nsb25lJiZCYS50ZXN0KHEpKXJldHVybiBhLmVhY2goZnVuY3Rpb24oZSl7dmFyIGY9YS5lcShlKTtzJiYoYlswXT1xLmNhbGwodGhpcyxlLGYuaHRtbCgpKSksSmEoZixiLGMsZCl9KTtpZihtJiYoZT1xYShiLGFbMF0ub3duZXJEb2N1bWVudCwhMSxhLGQpLGY9ZS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT1mKSxmfHxkKSl7Zm9yKGg9ci5tYXAobmEoZSxcInNjcmlwdFwiKSxGYSksaT1oLmxlbmd0aDtsPG07bCsrKWo9ZSxsIT09biYmKGo9ci5jbG9uZShqLCEwLCEwKSxpJiZyLm1lcmdlKGgsbmEoaixcInNjcmlwdFwiKSkpLGMuY2FsbChhW2xdLGosbCk7aWYoaSlmb3Ioaz1oW2gubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsci5tYXAoaCxHYSksbD0wO2w8aTtsKyspaj1oW2xdLGxhLnRlc3Qoai50eXBlfHxcIlwiKSYmIVcuYWNjZXNzKGosXCJnbG9iYWxFdmFsXCIpJiZyLmNvbnRhaW5zKGssaikmJihqLnNyYz9yLl9ldmFsVXJsJiZyLl9ldmFsVXJsKGouc3JjKTpwKGoudGV4dENvbnRlbnQucmVwbGFjZShEYSxcIlwiKSxrKSl9cmV0dXJuIGF9ZnVuY3Rpb24gS2EoYSxiLGMpe2Zvcih2YXIgZCxlPWI/ci5maWx0ZXIoYixhKTphLGY9MDtudWxsIT0oZD1lW2ZdKTtmKyspY3x8MSE9PWQubm9kZVR5cGV8fHIuY2xlYW5EYXRhKG5hKGQpKSxkLnBhcmVudE5vZGUmJihjJiZyLmNvbnRhaW5zKGQub3duZXJEb2N1bWVudCxkKSYmb2EobmEoZCxcInNjcmlwdFwiKSksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTtyZXR1cm4gYX1yLmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHphLFwiPCQxPjwvJDI+XCIpfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLmNsb25lTm9kZSghMCksaT1yLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZighKG8ubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fHIuaXNYTUxEb2MoYSkpKWZvcihnPW5hKGgpLGY9bmEoYSksZD0wLGU9Zi5sZW5ndGg7ZDxlO2QrKylJYShmW2RdLGdbZF0pO2lmKGIpaWYoYylmb3IoZj1mfHxuYShhKSxnPWd8fG5hKGgpLGQ9MCxlPWYubGVuZ3RoO2Q8ZTtkKyspSGEoZltkXSxnW2RdKTtlbHNlIEhhKGEsaCk7cmV0dXJuIGc9bmEoaCxcInNjcmlwdFwiKSxnLmxlbmd0aD4wJiZvYShnLCFpJiZuYShhLFwic2NyaXB0XCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZCxlPXIuZXZlbnQuc3BlY2lhbCxmPTA7dm9pZCAwIT09KGM9YVtmXSk7ZisrKWlmKFUoYykpe2lmKGI9Y1tXLmV4cGFuZG9dKXtpZihiLmV2ZW50cylmb3IoZCBpbiBiLmV2ZW50cyllW2RdP3IuZXZlbnQucmVtb3ZlKGMsZCk6ci5yZW1vdmVFdmVudChjLGQsYi5oYW5kbGUpO2NbVy5leHBhbmRvXT12b2lkIDB9Y1tYLmV4cGFuZG9dJiYoY1tYLmV4cGFuZG9dPXZvaWQgMCl9fX0pLHIuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIEthKHRoaXMsYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gS2EodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gVCh0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hP3IudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD1hKX0pfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiBKYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9RWEodGhpcyxhKTtiLmFwcGVuZENoaWxkKGEpfX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEphKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1FYSh0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIEphKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIEphKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihyLmNsZWFuRGF0YShuYShhLCExKSksYS50ZXh0Q29udGVudD1cIlwiKTtyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsIT1hJiZhLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gci5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVCh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEmJjE9PT1iLm5vZGVUeXBlKXJldHVybiBiLmlubmVySFRNTDtpZihcInN0cmluZ1wiPT10eXBlb2YgYSYmIUFhLnRlc3QoYSkmJiFtYVsoa2EuZXhlYyhhKXx8W1wiXCIsXCJcIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPXIuaHRtbFByZWZpbHRlcihhKTt0cnl7Zm9yKDtjPGQ7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihyLmNsZWFuRGF0YShuYShiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBKYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7ci5pbkFycmF5KHRoaXMsYSk8MCYmKHIuY2xlYW5EYXRhKG5hKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSksci5lYWNoKHthcHBlbmRUbzpcImFwcGVuZFwiLHByZXBlbmRUbzpcInByZXBlbmRcIixpbnNlcnRCZWZvcmU6XCJiZWZvcmVcIixpbnNlcnRBZnRlcjpcImFmdGVyXCIscmVwbGFjZUFsbDpcInJlcGxhY2VXaXRoXCJ9LGZ1bmN0aW9uKGEsYil7ci5mblthXT1mdW5jdGlvbihhKXtmb3IodmFyIGMsZD1bXSxlPXIoYSksZj1lLmxlbmd0aC0xLGc9MDtnPD1mO2crKyljPWc9PT1mP3RoaXM6dGhpcy5jbG9uZSghMCkscihlW2ddKVtiXShjKSxoLmFwcGx5KGQsYy5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQpfX0pO3ZhciBMYT0vXm1hcmdpbi8sTWE9bmV3IFJlZ0V4cChcIl4oXCIrYWErXCIpKD8hcHgpW2EteiVdKyRcIixcImlcIiksTmE9ZnVuY3Rpb24oYil7dmFyIGM9Yi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiBjJiZjLm9wZW5lcnx8KGM9YSksYy5nZXRDb21wdXRlZFN0eWxlKGIpfTshZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7aWYoaSl7aS5zdHlsZS5jc3NUZXh0PVwiYm94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt0b3A6MSU7d2lkdGg6NTAlXCIsaS5pbm5lckhUTUw9XCJcIixyYS5hcHBlbmRDaGlsZChoKTt2YXIgYj1hLmdldENvbXB1dGVkU3R5bGUoaSk7Yz1cIjElXCIhPT1iLnRvcCxnPVwiMnB4XCI9PT1iLm1hcmdpbkxlZnQsZT1cIjRweFwiPT09Yi53aWR0aCxpLnN0eWxlLm1hcmdpblJpZ2h0PVwiNTAlXCIsZj1cIjRweFwiPT09Yi5tYXJnaW5SaWdodCxyYS5yZW1vdmVDaGlsZChoKSxpPW51bGx9fXZhciBjLGUsZixnLGg9ZC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLGk9ZC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2kuc3R5bGUmJihpLnN0eWxlLmJhY2tncm91bmRDbGlwPVwiY29udGVudC1ib3hcIixpLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9XCJcIixvLmNsZWFyQ2xvbmVTdHlsZT1cImNvbnRlbnQtYm94XCI9PT1pLnN0eWxlLmJhY2tncm91bmRDbGlwLGguc3R5bGUuY3NzVGV4dD1cImJvcmRlcjowO3dpZHRoOjhweDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHg7cGFkZGluZzowO21hcmdpbi10b3A6MXB4O3Bvc2l0aW9uOmFic29sdXRlXCIsaC5hcHBlbmRDaGlsZChpKSxyLmV4dGVuZChvLHtwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGIoKSxjfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBiKCksZX0scGl4ZWxNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBiKCksZn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGIoKSxnfX0pKX0oKTtmdW5jdGlvbiBPYShhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fE5hKGEpLGMmJihnPWMuZ2V0UHJvcGVydHlWYWx1ZShiKXx8Y1tiXSxcIlwiIT09Z3x8ci5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSl8fChnPXIuc3R5bGUoYSxiKSksIW8ucGl4ZWxNYXJnaW5SaWdodCgpJiZNYS50ZXN0KGcpJiZMYS50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDAhPT1nP2crXCJcIjpnfWZ1bmN0aW9uIFBhKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe3JldHVybiBhKCk/dm9pZCBkZWxldGUgdGhpcy5nZXQ6KHRoaXMuZ2V0PWIpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19fXZhciBRYT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sUmE9L14tLS8sU2E9e3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix2aXNpYmlsaXR5OlwiaGlkZGVuXCIsZGlzcGxheTpcImJsb2NrXCJ9LFRhPXtsZXR0ZXJTcGFjaW5nOlwiMFwiLGZvbnRXZWlnaHQ6XCI0MDBcIn0sVWE9W1wiV2Via2l0XCIsXCJNb3pcIixcIm1zXCJdLFZhPWQuY3JlYXRlRWxlbWVudChcImRpdlwiKS5zdHlsZTtmdW5jdGlvbiBXYShhKXtpZihhIGluIFZhKXJldHVybiBhO3ZhciBiPWFbMF0udG9VcHBlckNhc2UoKSthLnNsaWNlKDEpLGM9VWEubGVuZ3RoO3doaWxlKGMtLSlpZihhPVVhW2NdK2IsYSBpbiBWYSlyZXR1cm4gYX1mdW5jdGlvbiBYYShhKXt2YXIgYj1yLmNzc1Byb3BzW2FdO3JldHVybiBifHwoYj1yLmNzc1Byb3BzW2FdPVdhKGEpfHxhKSxifWZ1bmN0aW9uIFlhKGEsYixjKXt2YXIgZD1iYS5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsyXS0oY3x8MCkpKyhkWzNdfHxcInB4XCIpOmJ9ZnVuY3Rpb24gWmEoYSxiLGMsZCxlKXt2YXIgZixnPTA7Zm9yKGY9Yz09PShkP1wiYm9yZGVyXCI6XCJjb250ZW50XCIpPzQ6XCJ3aWR0aFwiPT09Yj8xOjA7Zjw0O2YrPTIpXCJtYXJnaW5cIj09PWMmJihnKz1yLmNzcyhhLGMrY2FbZl0sITAsZSkpLGQ/KFwiY29udGVudFwiPT09YyYmKGctPXIuY3NzKGEsXCJwYWRkaW5nXCIrY2FbZl0sITAsZSkpLFwibWFyZ2luXCIhPT1jJiYoZy09ci5jc3MoYSxcImJvcmRlclwiK2NhW2ZdK1wiV2lkdGhcIiwhMCxlKSkpOihnKz1yLmNzcyhhLFwicGFkZGluZ1wiK2NhW2ZdLCEwLGUpLFwicGFkZGluZ1wiIT09YyYmKGcrPXIuY3NzKGEsXCJib3JkZXJcIitjYVtmXStcIldpZHRoXCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiAkYShhLGIsYyl7dmFyIGQsZT1OYShhKSxmPU9hKGEsYixlKSxnPVwiYm9yZGVyLWJveFwiPT09ci5jc3MoYSxcImJveFNpemluZ1wiLCExLGUpO3JldHVybiBNYS50ZXN0KGYpP2Y6KGQ9ZyYmKG8uYm94U2l6aW5nUmVsaWFibGUoKXx8Zj09PWEuc3R5bGVbYl0pLFwiYXV0b1wiPT09ZiYmKGY9YVtcIm9mZnNldFwiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpXSksZj1wYXJzZUZsb2F0KGYpfHwwLGYrWmEoYSxiLGN8fChnP1wiYm9yZGVyXCI6XCJjb250ZW50XCIpLGQsZSkrXCJweFwiKX1yLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPU9hKGEsXCJvcGFjaXR5XCIpO3JldHVyblwiXCI9PT1jP1wiMVwiOmN9fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6e1wiZmxvYXRcIjpcImNzc0Zsb2F0XCJ9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGUsZixnLGg9ci5jYW1lbENhc2UoYiksaT1SYS50ZXN0KGIpLGo9YS5zdHlsZTtyZXR1cm4gaXx8KGI9WGEoaCkpLGc9ci5jc3NIb29rc1tiXXx8ci5jc3NIb29rc1toXSx2b2lkIDA9PT1jP2cmJlwiZ2V0XCJpbiBnJiZ2b2lkIDAhPT0oZT1nLmdldChhLCExLGQpKT9lOmpbYl06KGY9dHlwZW9mIGMsXCJzdHJpbmdcIj09PWYmJihlPWJhLmV4ZWMoYykpJiZlWzFdJiYoYz1mYShhLGIsZSksZj1cIm51bWJlclwiKSxudWxsIT1jJiZjPT09YyYmKFwibnVtYmVyXCI9PT1mJiYoYys9ZSYmZVszXXx8KHIuY3NzTnVtYmVyW2hdP1wiXCI6XCJweFwiKSksby5jbGVhckNsb25lU3R5bGV8fFwiXCIhPT1jfHwwIT09Yi5pbmRleE9mKFwiYmFja2dyb3VuZFwiKXx8KGpbYl09XCJpbmhlcml0XCIpLGcmJlwic2V0XCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpfHwoaT9qLnNldFByb3BlcnR5KGIsYyk6altiXT1jKSksdm9pZCAwKX19LGNzczpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGcsaD1yLmNhbWVsQ2FzZShiKSxpPVJhLnRlc3QoYik7cmV0dXJuIGl8fChiPVhhKGgpKSxnPXIuY3NzSG9va3NbYl18fHIuY3NzSG9va3NbaF0sZyYmXCJnZXRcImluIGcmJihlPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWUmJihlPU9hKGEsYixkKSksXCJub3JtYWxcIj09PWUmJmIgaW4gVGEmJihlPVRhW2JdKSxcIlwiPT09Y3x8Yz8oZj1wYXJzZUZsb2F0KGUpLGM9PT0hMHx8aXNGaW5pdGUoZik/Znx8MDplKTplfX0pLHIuZWFjaChbXCJoZWlnaHRcIixcIndpZHRoXCJdLGZ1bmN0aW9uKGEsYil7ci5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtpZihjKXJldHVybiFRYS50ZXN0KHIuY3NzKGEsXCJkaXNwbGF5XCIpKXx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD8kYShhLGIsZCk6ZWEoYSxTYSxmdW5jdGlvbigpe3JldHVybiAkYShhLGIsZCl9KX0sc2V0OmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxmPWQmJk5hKGEpLGc9ZCYmWmEoYSxiLGQsXCJib3JkZXItYm94XCI9PT1yLmNzcyhhLFwiYm94U2l6aW5nXCIsITEsZiksZik7cmV0dXJuIGcmJihlPWJhLmV4ZWMoYykpJiZcInB4XCIhPT0oZVszXXx8XCJweFwiKSYmKGEuc3R5bGVbYl09YyxjPXIuY3NzKGEsYikpLFlhKGEsYyxnKX19fSksci5jc3NIb29rcy5tYXJnaW5MZWZ0PVBhKG8ucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4ocGFyc2VGbG9hdChPYShhLFwibWFyZ2luTGVmdFwiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1lYShhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKStcInB4XCJ9KSxyLmVhY2goe21hcmdpbjpcIlwiLHBhZGRpbmc6XCJcIixib3JkZXI6XCJXaWR0aFwifSxmdW5jdGlvbihhLGIpe3IuY3NzSG9va3NbYStiXT17ZXhwYW5kOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZD0wLGU9e30sZj1cInN0cmluZ1wiPT10eXBlb2YgYz9jLnNwbGl0KFwiIFwiKTpbY107ZDw0O2QrKyllW2ErY2FbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sTGEudGVzdChhKXx8KHIuY3NzSG9va3NbYStiXS5zZXQ9WWEpfSksci5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBUKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYoQXJyYXkuaXNBcnJheShiKSl7Zm9yKGQ9TmEoYSksZT1iLmxlbmd0aDtnPGU7ZysrKWZbYltnXV09ci5jc3MoYSxiW2ddLCExLGQpO3JldHVybiBmfXJldHVybiB2b2lkIDAhPT1jP3Iuc3R5bGUoYSxiLGMpOnIuY3NzKGEsYil9LGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfX0pO2Z1bmN0aW9uIF9hKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBfYS5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfXIuVHdlZW49X2EsX2EucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpfYSxpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHxyLmVhc2luZy5fZGVmYXVsdCx0aGlzLm9wdGlvbnM9Yix0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCksdGhpcy5lbmQ9ZCx0aGlzLnVuaXQ9Znx8KHIuY3NzTnVtYmVyW2NdP1wiXCI6XCJweFwiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9X2EucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOl9hLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPV9hLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9Yj1yLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6X2EucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sX2EucHJvdG90eXBlLmluaXQucHJvdG90eXBlPV9hLnByb3RvdHlwZSxfYS5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIDEhPT1hLmVsZW0ubm9kZVR5cGV8fG51bGwhPWEuZWxlbVthLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbYS5wcm9wXT9hLmVsZW1bYS5wcm9wXTooYj1yLmNzcyhhLmVsZW0sYS5wcm9wLFwiXCIpLGImJlwiYXV0b1wiIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7ci5meC5zdGVwW2EucHJvcF0/ci5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW3IuY3NzUHJvcHNbYS5wcm9wXV0mJiFyLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6ci5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sX2EucHJvcEhvb2tzLnNjcm9sbFRvcD1fYS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxyLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0Olwic3dpbmdcIn0sci5meD1fYS5wcm90b3R5cGUuaW5pdCxyLmZ4LnN0ZXA9e307dmFyIGFiLGJiLGNiPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxkYj0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIGViKCl7YmImJihkLmhpZGRlbj09PSExJiZhLnJlcXVlc3RBbmltYXRpb25GcmFtZT9hLnJlcXVlc3RBbmltYXRpb25GcmFtZShlYik6YS5zZXRUaW1lb3V0KGViLHIuZnguaW50ZXJ2YWwpLHIuZngudGljaygpKX1mdW5jdGlvbiBmYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXthYj12b2lkIDB9KSxhYj1yLm5vdygpfWZ1bmN0aW9uIGdiKGEsYil7dmFyIGMsZD0wLGU9e2hlaWdodDphfTtmb3IoYj1iPzE6MDtkPDQ7ZCs9Mi1iKWM9Y2FbZF0sZVtcIm1hcmdpblwiK2NdPWVbXCJwYWRkaW5nXCIrY109YTtyZXR1cm4gYiYmKGUub3BhY2l0eT1lLndpZHRoPWEpLGV9ZnVuY3Rpb24gaGIoYSxiLGMpe2Zvcih2YXIgZCxlPShrYi50d2VlbmVyc1tiXXx8W10pLmNvbmNhdChrYi50d2VlbmVyc1tcIipcIl0pLGY9MCxnPWUubGVuZ3RoO2Y8ZztmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGliKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw9XCJ3aWR0aFwiaW4gYnx8XCJoZWlnaHRcImluIGIsbT10aGlzLG49e30sbz1hLnN0eWxlLHA9YS5ub2RlVHlwZSYmZGEoYSkscT1XLmdldChhLFwiZnhzaG93XCIpO2MucXVldWV8fChnPXIuX3F1ZXVlSG9va3MoYSxcImZ4XCIpLG51bGw9PWcudW5xdWV1ZWQmJihnLnVucXVldWVkPTAsaD1nLmVtcHR5LmZpcmUsZy5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7Zy51bnF1ZXVlZHx8aCgpfSksZy51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtnLnVucXVldWVkLS0sci5xdWV1ZShhLFwiZnhcIikubGVuZ3RofHxnLmVtcHR5LmZpcmUoKX0pfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGNiLnRlc3QoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8XCJ0b2dnbGVcIj09PWUsZT09PShwP1wiaGlkZVwiOlwic2hvd1wiKSl7aWYoXCJzaG93XCIhPT1lfHwhcXx8dm9pZCAwPT09cVtkXSljb250aW51ZTtwPSEwfW5bZF09cSYmcVtkXXx8ci5zdHlsZShhLGQpfWlmKGk9IXIuaXNFbXB0eU9iamVjdChiKSxpfHwhci5pc0VtcHR5T2JqZWN0KG4pKXtsJiYxPT09YS5ub2RlVHlwZSYmKGMub3ZlcmZsb3c9W28ub3ZlcmZsb3csby5vdmVyZmxvd1gsby5vdmVyZmxvd1ldLGo9cSYmcS5kaXNwbGF5LG51bGw9PWomJihqPVcuZ2V0KGEsXCJkaXNwbGF5XCIpKSxrPXIuY3NzKGEsXCJkaXNwbGF5XCIpLFwibm9uZVwiPT09ayYmKGo/az1qOihpYShbYV0sITApLGo9YS5zdHlsZS5kaXNwbGF5fHxqLGs9ci5jc3MoYSxcImRpc3BsYXlcIiksaWEoW2FdKSkpLChcImlubGluZVwiPT09a3x8XCJpbmxpbmUtYmxvY2tcIj09PWsmJm51bGwhPWopJiZcIm5vbmVcIj09PXIuY3NzKGEsXCJmbG9hdFwiKSYmKGl8fChtLmRvbmUoZnVuY3Rpb24oKXtvLmRpc3BsYXk9an0pLG51bGw9PWomJihrPW8uZGlzcGxheSxqPVwibm9uZVwiPT09az9cIlwiOmspKSxvLmRpc3BsYXk9XCJpbmxpbmUtYmxvY2tcIikpLGMub3ZlcmZsb3cmJihvLm92ZXJmbG93PVwiaGlkZGVuXCIsbS5hbHdheXMoZnVuY3Rpb24oKXtvLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0sby5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxvLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpLGk9ITE7Zm9yKGQgaW4gbilpfHwocT9cImhpZGRlblwiaW4gcSYmKHA9cS5oaWRkZW4pOnE9Vy5hY2Nlc3MoYSxcImZ4c2hvd1wiLHtkaXNwbGF5Omp9KSxmJiYocS5oaWRkZW49IXApLHAmJmlhKFthXSwhMCksbS5kb25lKGZ1bmN0aW9uKCl7cHx8aWEoW2FdKSxXLnJlbW92ZShhLFwiZnhzaG93XCIpO2ZvcihkIGluIG4pci5zdHlsZShhLGQsbltkXSl9KSksaT1oYihwP3FbZF06MCxkLG0pLGQgaW4gcXx8KHFbZF09aS5zdGFydCxwJiYoaS5lbmQ9aS5zdGFydCxpLnN0YXJ0PTApKX19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1yLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLEFycmF5LmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPXIuY3NzSG9va3NbZF0sZyYmXCJleHBhbmRcImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBrYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1rYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPXIuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWFifHxmYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtnPGk7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksZjwxJiZpP2M6KGl8fGgubm90aWZ5V2l0aChhLFtqLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpyLmV4dGVuZCh7fSxiKSxvcHRzOnIuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpyLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmFifHxmYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9ci5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtjPGQ7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihqYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtmPGc7ZisrKWlmKGQ9a2IucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIHIuaXNGdW5jdGlvbihkLnN0b3ApJiYoci5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPXIucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiByLm1hcChrLGhiLGopLHIuaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLGoucHJvZ3Jlc3Moai5vcHRzLnByb2dyZXNzKS5kb25lKGoub3B0cy5kb25lLGoub3B0cy5jb21wbGV0ZSkuZmFpbChqLm9wdHMuZmFpbCkuYWx3YXlzKGoub3B0cy5hbHdheXMpLHIuZngudGltZXIoci5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksan1yLkFuaW1hdGlvbj1yLmV4dGVuZChrYix7dHdlZW5lcnM6e1wiKlwiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKTtyZXR1cm4gZmEoYy5lbGVtLGEsYmEuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtyLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVtcIipcIl0pOmE9YS5tYXRjaChMKTtmb3IodmFyIGMsZD0wLGU9YS5sZW5ndGg7ZDxlO2QrKyljPWFbZF0sa2IudHdlZW5lcnNbY109a2IudHdlZW5lcnNbY118fFtdLGtiLnR3ZWVuZXJzW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcnM6W2liXSxwcmVmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtiP2tiLnByZWZpbHRlcnMudW5zaGlmdChhKTprYi5wcmVmaWx0ZXJzLnB1c2goYSl9fSksci5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmXCJvYmplY3RcIj09dHlwZW9mIGE/ci5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxyLmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmYnx8YiYmIXIuaXNGdW5jdGlvbihiKSYmYn07cmV0dXJuIHIuZngub2ZmP2QuZHVyYXRpb249MDpcIm51bWJlclwiIT10eXBlb2YgZC5kdXJhdGlvbiYmKGQuZHVyYXRpb24gaW4gci5meC5zcGVlZHM/ZC5kdXJhdGlvbj1yLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTpkLmR1cmF0aW9uPXIuZnguc3BlZWRzLl9kZWZhdWx0KSxudWxsIT1kLnF1ZXVlJiZkLnF1ZXVlIT09ITB8fChkLnF1ZXVlPVwiZnhcIiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7ci5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZyLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sci5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoZGEpLmNzcyhcIm9wYWNpdHlcIiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ci5pc0VtcHR5T2JqZWN0KGEpLGY9ci5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtiKHRoaXMsci5leHRlbmQoe30sYSksZik7KGV8fFcuZ2V0KHRoaXMsXCJmaW5pc2hcIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuXCJzdHJpbmdcIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8XCJmeFwiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj0hMCxlPW51bGwhPWEmJmErXCJxdWV1ZUhvb2tzXCIsZj1yLnRpbWVycyxnPVcuZ2V0KHRoaXMpO2lmKGUpZ1tlXSYmZ1tlXS5zdG9wJiZkKGdbZV0pO2Vsc2UgZm9yKGUgaW4gZylnW2VdJiZnW2VdLnN0b3AmJmRiLnRlc3QoZSkmJmQoZ1tlXSk7Zm9yKGU9Zi5sZW5ndGg7ZS0tOylmW2VdLmVsZW0hPT10aGlzfHxudWxsIT1hJiZmW2VdLnF1ZXVlIT09YXx8KGZbZV0uYW5pbS5zdG9wKGMpLGI9ITEsZi5zcGxpY2UoZSwxKSk7IWImJmN8fHIuZGVxdWV1ZSh0aGlzLGEpfSl9LGZpbmlzaDpmdW5jdGlvbihhKXtyZXR1cm4gYSE9PSExJiYoYT1hfHxcImZ4XCIpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiLGM9Vy5nZXQodGhpcyksZD1jW2ErXCJxdWV1ZVwiXSxlPWNbYStcInF1ZXVlSG9va3NcIl0sZj1yLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsci5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7YjxnO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxyLmVhY2goW1widG9nZ2xlXCIsXCJzaG93XCIsXCJoaWRlXCJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9ci5mbltiXTtyLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8XCJib29sZWFuXCI9PXR5cGVvZiBhP2MuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZShnYihiLCEwKSxhLGQsZSl9fSksci5lYWNoKHtzbGlkZURvd246Z2IoXCJzaG93XCIpLHNsaWRlVXA6Z2IoXCJoaWRlXCIpLHNsaWRlVG9nZ2xlOmdiKFwidG9nZ2xlXCIpLGZhZGVJbjp7b3BhY2l0eTpcInNob3dcIn0sZmFkZU91dDp7b3BhY2l0eTpcImhpZGVcIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eTpcInRvZ2dsZVwifX0sZnVuY3Rpb24oYSxiKXtyLmZuW2FdPWZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsYSxjLGQpfX0pLHIudGltZXJzPVtdLHIuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGI9MCxjPXIudGltZXJzO2ZvcihhYj1yLm5vdygpO2I8Yy5sZW5ndGg7YisrKWE9Y1tiXSxhKCl8fGNbYl0hPT1hfHxjLnNwbGljZShiLS0sMSk7Yy5sZW5ndGh8fHIuZnguc3RvcCgpLGFiPXZvaWQgMH0sci5meC50aW1lcj1mdW5jdGlvbihhKXtyLnRpbWVycy5wdXNoKGEpLHIuZnguc3RhcnQoKX0sci5meC5pbnRlcnZhbD0xMyxyLmZ4LnN0YXJ0PWZ1bmN0aW9uKCl7YmJ8fChiYj0hMCxlYigpKX0sci5meC5zdG9wPWZ1bmN0aW9uKCl7YmI9bnVsbH0sci5meC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sci5mbi5kZWxheT1mdW5jdGlvbihiLGMpe3JldHVybiBiPXIuZng/ci5meC5zcGVlZHNbYl18fGI6YixjPWN8fFwiZnhcIix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYT1kLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSxiPWQuY3JlYXRlRWxlbWVudChcInNlbGVjdFwiKSxjPWIuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KFwib3B0aW9uXCIpKTthLnR5cGU9XCJjaGVja2JveFwiLG8uY2hlY2tPbj1cIlwiIT09YS52YWx1ZSxvLm9wdFNlbGVjdGVkPWMuc2VsZWN0ZWQsYT1kLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKSxhLnZhbHVlPVwidFwiLGEudHlwZT1cInJhZGlvXCIsby5yYWRpb1ZhbHVlPVwidFwiPT09YS52YWx1ZX0oKTt2YXIgbGIsbWI9ci5leHByLmF0dHJIYW5kbGU7ci5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVCh0aGlzLHIuYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ci5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxyLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm5cInVuZGVmaW5lZFwiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/ci5wcm9wKGEsYixjKTooMT09PWYmJnIuaXNYTUxEb2MoYSl8fChlPXIuYXR0ckhvb2tzW2IudG9Mb3dlckNhc2UoKV18fChyLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP2xiOnZvaWQgMCkpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCByLnJlbW92ZUF0dHIoYSxiKTplJiZcInNldFwiaW4gZSYmdm9pZCAwIT09KGQ9ZS5zZXQoYSxjLGIpKT9kOihhLnNldEF0dHJpYnV0ZShiLGMrXCJcIiksYyk6ZSYmXCJnZXRcImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPXIuZmluZC5hdHRyKGEsYiksXG5udWxsPT1kP3ZvaWQgMDpkKSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIW8ucmFkaW9WYWx1ZSYmXCJyYWRpb1wiPT09YiYmQihhLFwiaW5wdXRcIikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKFwidHlwZVwiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTAsZT1iJiZiLm1hdGNoKEwpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZVtkKytdKWEucmVtb3ZlQXR0cmlidXRlKGMpfX0pLGxiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/ci5yZW1vdmVBdHRyKGEsYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX0sci5lYWNoKHIuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXFx3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPW1iW2JdfHxyLmZpbmQuYXR0cjttYltiXT1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZixnPWIudG9Mb3dlckNhc2UoKTtyZXR1cm4gZHx8KGY9bWJbZ10sbWJbZ109ZSxlPW51bGwhPWMoYSxiLGQpP2c6bnVsbCxtYltnXT1mKSxlfX0pO3ZhciBuYj0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLG9iPS9eKD86YXxhcmVhKSQvaTtyLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIpe3JldHVybiBUKHRoaXMsci5wcm9wLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tyLnByb3BGaXhbYV18fGFdfSl9fSksci5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZyLmlzWE1MRG9jKGEpfHwoYj1yLnByb3BGaXhbYl18fGIsZT1yLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiZcInNldFwiaW4gZSYmdm9pZCAwIT09KGQ9ZS5zZXQoYSxjLGIpKT9kOmFbYl09YzplJiZcImdldFwiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPXIuZmluZC5hdHRyKGEsXCJ0YWJpbmRleFwiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTpuYi50ZXN0KGEubm9kZU5hbWUpfHxvYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OntcImZvclwiOlwiaHRtbEZvclwiLFwiY2xhc3NcIjpcImNsYXNzTmFtZVwifX0pLG8ub3B0U2VsZWN0ZWR8fChyLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO2ImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCl9fSksci5lYWNoKFtcInRhYkluZGV4XCIsXCJyZWFkT25seVwiLFwibWF4TGVuZ3RoXCIsXCJjZWxsU3BhY2luZ1wiLFwiY2VsbFBhZGRpbmdcIixcInJvd1NwYW5cIixcImNvbFNwYW5cIixcInVzZU1hcFwiLFwiZnJhbWVCb3JkZXJcIixcImNvbnRlbnRFZGl0YWJsZVwiXSxmdW5jdGlvbigpe3IucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtmdW5jdGlvbiBwYihhKXt2YXIgYj1hLm1hdGNoKEwpfHxbXTtyZXR1cm4gYi5qb2luKFwiIFwiKX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCJ9ci5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihyLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtyKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIscWIodGhpcykpKX0pO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBhJiZhKXtiPWEubWF0Y2goTCl8fFtdO3doaWxlKGM9dGhpc1tpKytdKWlmKGU9cWIoYyksZD0xPT09Yy5ub2RlVHlwZSYmXCIgXCIrcGIoZSkrXCIgXCIpe2c9MDt3aGlsZShmPWJbZysrXSlkLmluZGV4T2YoXCIgXCIrZitcIiBcIik8MCYmKGQrPWYrXCIgXCIpO2g9cGIoZCksZSE9PWgmJmMuc2V0QXR0cmlidXRlKFwiY2xhc3NcIixoKX19cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihyLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtyKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIscWIodGhpcykpKX0pO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLmF0dHIoXCJjbGFzc1wiLFwiXCIpO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBhJiZhKXtiPWEubWF0Y2goTCl8fFtdO3doaWxlKGM9dGhpc1tpKytdKWlmKGU9cWIoYyksZD0xPT09Yy5ub2RlVHlwZSYmXCIgXCIrcGIoZSkrXCIgXCIpe2c9MDt3aGlsZShmPWJbZysrXSl3aGlsZShkLmluZGV4T2YoXCIgXCIrZitcIiBcIik+LTEpZD1kLnJlcGxhY2UoXCIgXCIrZitcIiBcIixcIiBcIik7aD1wYihkKSxlIT09aCYmYy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm5cImJvb2xlYW5cIj09dHlwZW9mIGImJlwic3RyaW5nXCI9PT1jP2I/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOnIuaXNGdW5jdGlvbihhKT90aGlzLmVhY2goZnVuY3Rpb24oYyl7cih0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxjLHFiKHRoaXMpLGIpLGIpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsZCxlLGY7aWYoXCJzdHJpbmdcIj09PWMpe2Q9MCxlPXIodGhpcyksZj1hLm1hdGNoKEwpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJlwiYm9vbGVhblwiIT09Y3x8KGI9cWIodGhpcyksYiYmVy5zZXQodGhpcyxcIl9fY2xhc3NOYW1lX19cIixiKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLGJ8fGE9PT0hMT9cIlwiOlcuZ2V0KHRoaXMsXCJfX2NsYXNzTmFtZV9fXCIpfHxcIlwiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj1cIiBcIithK1wiIFwiO3doaWxlKGM9dGhpc1tkKytdKWlmKDE9PT1jLm5vZGVUeXBlJiYoXCIgXCIrcGIocWIoYykpK1wiIFwiKS5pbmRleE9mKGIpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciByYj0vXFxyL2c7ci5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPXIuaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxyKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT1cIlwiOlwibnVtYmVyXCI9PXR5cGVvZiBlP2UrPVwiXCI6QXJyYXkuaXNBcnJheShlKSYmKGU9ci5tYXAoZSxmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9cIlwiOmErXCJcIn0pKSxiPXIudmFsSG9va3NbdGhpcy50eXBlXXx8ci52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJlwic2V0XCJpbiBiJiZ2b2lkIDAhPT1iLnNldCh0aGlzLGUsXCJ2YWx1ZVwiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1yLnZhbEhvb2tzW2UudHlwZV18fHIudmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiZcImdldFwiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSxcInZhbHVlXCIpKT9jOihjPWUudmFsdWUsXCJzdHJpbmdcIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLFwiXCIpOm51bGw9PWM/XCJcIjpjKX19fSksci5leHRlbmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihhKXt2YXIgYj1yLmZpbmQuYXR0cihhLFwidmFsdWVcIik7cmV0dXJuIG51bGwhPWI/YjpwYihyLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU9YS5vcHRpb25zLGY9YS5zZWxlY3RlZEluZGV4LGc9XCJzZWxlY3Qtb25lXCI9PT1hLnR5cGUsaD1nP251bGw6W10saT1nP2YrMTplLmxlbmd0aDtmb3IoZD1mPDA/aTpnP2Y6MDtkPGk7ZCsrKWlmKGM9ZVtkXSwoYy5zZWxlY3RlZHx8ZD09PWYpJiYhYy5kaXNhYmxlZCYmKCFjLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFCKGMucGFyZW50Tm9kZSxcIm9wdGdyb3VwXCIpKSl7aWYoYj1yKGMpLnZhbCgpLGcpcmV0dXJuIGI7aC5wdXNoKGIpfXJldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9ci5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0pZD1lW2ddLChkLnNlbGVjdGVkPXIuaW5BcnJheShyLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGZ9fX19KSxyLmVhY2goW1wicmFkaW9cIixcImNoZWNrYm94XCJdLGZ1bmN0aW9uKCl7ci52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7aWYoQXJyYXkuaXNBcnJheShiKSlyZXR1cm4gYS5jaGVja2VkPXIuaW5BcnJheShyKGEpLnZhbCgpLGIpPi0xfX0sby5jaGVja09ufHwoci52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZShcInZhbHVlXCIpP1wib25cIjphLnZhbHVlfSl9KTt2YXIgc2I9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvO3IuZXh0ZW5kKHIuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oYixjLGUsZil7dmFyIGcsaCxpLGosayxtLG4sbz1bZXx8ZF0scD1sLmNhbGwoYixcInR5cGVcIik/Yi50eXBlOmIscT1sLmNhbGwoYixcIm5hbWVzcGFjZVwiKT9iLm5hbWVzcGFjZS5zcGxpdChcIi5cIik6W107aWYoaD1pPWU9ZXx8ZCwzIT09ZS5ub2RlVHlwZSYmOCE9PWUubm9kZVR5cGUmJiFzYi50ZXN0KHArci5ldmVudC50cmlnZ2VyZWQpJiYocC5pbmRleE9mKFwiLlwiKT4tMSYmKHE9cC5zcGxpdChcIi5cIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGs9cC5pbmRleE9mKFwiOlwiKTwwJiZcIm9uXCIrcCxiPWJbci5leHBhbmRvXT9iOm5ldyByLkV2ZW50KHAsXCJvYmplY3RcIj09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWY/MjozLGIubmFtZXNwYWNlPXEuam9pbihcIi5cIiksYi5ybmFtZXNwYWNlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoXCIoXnxcXFxcLilcIitxLmpvaW4oXCJcXFxcLig/Oi4qXFxcXC58KVwiKStcIihcXFxcLnwkKVwiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWUpLGM9bnVsbD09Yz9bYl06ci5tYWtlQXJyYXkoYyxbYl0pLG49ci5ldmVudC5zcGVjaWFsW3BdfHx7fSxmfHwhbi50cmlnZ2VyfHxuLnRyaWdnZXIuYXBwbHkoZSxjKSE9PSExKSl7aWYoIWYmJiFuLm5vQnViYmxlJiYhci5pc1dpbmRvdyhlKSl7Zm9yKGo9bi5kZWxlZ2F0ZVR5cGV8fHAsc2IudGVzdChqK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGk9aDtpPT09KGUub3duZXJEb2N1bWVudHx8ZCkmJm8ucHVzaChpLmRlZmF1bHRWaWV3fHxpLnBhcmVudFdpbmRvd3x8YSl9Zz0wO3doaWxlKChoPW9bZysrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPWc+MT9qOm4uYmluZFR5cGV8fHAsbT0oVy5nZXQoaCxcImV2ZW50c1wiKXx8e30pW2IudHlwZV0mJlcuZ2V0KGgsXCJoYW5kbGVcIiksbSYmbS5hcHBseShoLGMpLG09ayYmaFtrXSxtJiZtLmFwcGx5JiZVKGgpJiYoYi5yZXN1bHQ9bS5hcHBseShoLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGIudHlwZT1wLGZ8fGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fG4uX2RlZmF1bHQmJm4uX2RlZmF1bHQuYXBwbHkoby5wb3AoKSxjKSE9PSExfHwhVShlKXx8ayYmci5pc0Z1bmN0aW9uKGVbcF0pJiYhci5pc1dpbmRvdyhlKSYmKGk9ZVtrXSxpJiYoZVtrXT1udWxsKSxyLmV2ZW50LnRyaWdnZXJlZD1wLGVbcF0oKSxyLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsaSYmKGVba109aSkpLGIucmVzdWx0fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXIuZXh0ZW5kKG5ldyByLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO3IuZXZlbnQudHJpZ2dlcihkLG51bGwsYil9fSksci5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ci5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbMF07aWYoYylyZXR1cm4gci5ldmVudC50cmlnZ2VyKGEsYixjLCEwKX19KSxyLmVhY2goXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51XCIuc3BsaXQoXCIgXCIpLGZ1bmN0aW9uKGEsYil7ci5mbltiXT1mdW5jdGlvbihhLGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjA/dGhpcy5vbihiLG51bGwsYSxjKTp0aGlzLnRyaWdnZXIoYil9fSksci5mbi5leHRlbmQoe2hvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pLG8uZm9jdXNpbj1cIm9uZm9jdXNpblwiaW4gYSxvLmZvY3VzaW58fHIuZWFjaCh7Zm9jdXM6XCJmb2N1c2luXCIsYmx1cjpcImZvY3Vzb3V0XCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSl7ci5ldmVudC5zaW11bGF0ZShiLGEudGFyZ2V0LHIuZXZlbnQuZml4KGEpKX07ci5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPVcuYWNjZXNzKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksVy5hY2Nlc3MoZCxiLChlfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1XLmFjY2VzcyhkLGIpLTE7ZT9XLmFjY2VzcyhkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLFcucmVtb3ZlKGQsYikpfX19KTt2YXIgdGI9YS5sb2NhdGlvbix1Yj1yLm5vdygpLHZiPS9cXD8vO3IucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGM7aWYoIWJ8fFwic3RyaW5nXCIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXtjPShuZXcgYS5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhiLFwidGV4dC94bWxcIil9Y2F0Y2goZCl7Yz12b2lkIDB9cmV0dXJuIGMmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwicGFyc2VyZXJyb3JcIikubGVuZ3RofHxyLmVycm9yKFwiSW52YWxpZCBYTUw6IFwiK2IpLGN9O3ZhciB3Yj0vXFxbXFxdJC8seGI9L1xccj9cXG4vZyx5Yj0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEFiKGEsYixjLGQpe3ZhciBlO2lmKEFycmF5LmlzQXJyYXkoYikpci5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHx3Yi50ZXN0KGEpP2QoYSxlKTpBYihhK1wiW1wiKyhcIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9ZT9iOlwiXCIpK1wiXVwiLGUsYyxkKX0pO2Vsc2UgaWYoY3x8XCJvYmplY3RcIiE9PXIudHlwZShiKSlkKGEsYik7ZWxzZSBmb3IoZSBpbiBiKUFiKGErXCJbXCIrZStcIl1cIixiW2VdLGMsZCl9ci5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe3ZhciBjPXIuaXNGdW5jdGlvbihiKT9iKCk6YjtkW2QubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoYSkrXCI9XCIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PWM/XCJcIjpjKX07aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFyLmlzUGxhaW5PYmplY3QoYSkpci5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlBYihjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKFwiJlwiKX0sci5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiByLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGE9ci5wcm9wKHRoaXMsXCJlbGVtZW50c1wiKTtyZXR1cm4gYT9yLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFyKHRoaXMpLmlzKFwiOmRpc2FibGVkXCIpJiZ6Yi50ZXN0KHRoaXMubm9kZU5hbWUpJiYheWIudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IWphLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9cih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOkFycmF5LmlzQXJyYXkoYyk/ci5tYXAoYyxmdW5jdGlvbihhKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKHhiLFwiXFxyXFxuXCIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoeGIsXCJcXHJcXG5cIil9fSkuZ2V0KCl9fSk7dmFyIEJiPS8lMjAvZyxDYj0vIy4qJC8sRGI9LyhbPyZdKV89W14mXSovLEViPS9eKC4qPyk6WyBcXHRdKihbXlxcclxcbl0qKSQvZ20sRmI9L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8sR2I9L14oPzpHRVR8SEVBRCkkLyxIYj0vXlxcL1xcLy8sSWI9e30sSmI9e30sS2I9XCIqL1wiLmNvbmNhdChcIipcIiksTGI9ZC5jcmVhdGVFbGVtZW50KFwiYVwiKTtMYi5ocmVmPXRiLmhyZWY7ZnVuY3Rpb24gTWIoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7XCJzdHJpbmdcIiE9dHlwZW9mIGImJihjPWIsYj1cIipcIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEwpfHxbXTtpZihyLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pXCIrXCI9PT1kWzBdPyhkPWQuc2xpY2UoMSl8fFwiKlwiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTmIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SmI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxyLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm5cInN0cmluZ1wiIT10eXBlb2Yganx8Znx8ZVtqXT9mPyEoaT1qKTp2b2lkIDA6KGIuZGF0YVR5cGVzLnVuc2hpZnQoaiksZyhqKSwhMSl9KSxpfXJldHVybiBnKGIuZGF0YVR5cGVzWzBdKXx8IWVbXCIqXCJdJiZnKFwiKlwiKX1mdW5jdGlvbiBPYihhLGIpe3ZhciBjLGQsZT1yLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGMgaW4gYil2b2lkIDAhPT1iW2NdJiYoKGVbY10/YTpkfHwoZD17fSkpW2NdPWJbY10pO3JldHVybiBkJiZyLmV4dGVuZCghMCxhLGQpLGF9ZnVuY3Rpb24gUGIoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKFwiKlwiPT09aVswXSlpLnNoaWZ0KCksdm9pZCAwPT09ZCYmKGQ9YS5taW1lVHlwZXx8Yi5nZXRSZXNwb25zZUhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKSk7aWYoZClmb3IoZSBpbiBoKWlmKGhbZV0mJmhbZV0udGVzdChkKSl7aS51bnNoaWZ0KGUpO2JyZWFrfWlmKGlbMF1pbiBjKWY9aVswXTtlbHNle2ZvcihlIGluIGMpe2lmKCFpWzBdfHxhLmNvbnZlcnRlcnNbZStcIiBcIitpWzBdXSl7Zj1lO2JyZWFrfWd8fChnPWUpfWY9Znx8Z31pZihmKXJldHVybiBmIT09aVswXSYmaS51bnNoaWZ0KGYpLGNbZl19ZnVuY3Rpb24gUWIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZihcIipcIj09PWYpZj1pO2Vsc2UgaWYoXCIqXCIhPT1pJiZpIT09Zil7aWYoZz1qW2krXCIgXCIrZl18fGpbXCIqIFwiK2ZdLCFnKWZvcihlIGluIGopaWYoaD1lLnNwbGl0KFwiIFwiKSxoWzFdPT09ZiYmKGc9altpK1wiIFwiK2hbMF1dfHxqW1wiKiBcIitoWzBdXSkpe2c9PT0hMD9nPWpbZV06altlXSE9PSEwJiYoZj1oWzBdLGsudW5zaGlmdChoWzFdKSk7YnJlYWt9aWYoZyE9PSEwKWlmKGcmJmFbXCJ0aHJvd3NcIl0pYj1nKGIpO2Vsc2UgdHJ5e2I9ZyhiKX1jYXRjaChsKXtyZXR1cm57c3RhdGU6XCJwYXJzZXJlcnJvclwiLGVycm9yOmc/bDpcIk5vIGNvbnZlcnNpb24gZnJvbSBcIitpK1wiIHRvIFwiK2Z9fX1yZXR1cm57c3RhdGU6XCJzdWNjZXNzXCIsZGF0YTpifX1yLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6dGIuaHJlZix0eXBlOlwiR0VUXCIsaXNMb2NhbDpGYi50ZXN0KHRiLnByb3RvY29sKSxnbG9iYWw6ITAscHJvY2Vzc0RhdGE6ITAsYXN5bmM6ITAsY29udGVudFR5cGU6XCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLThcIixhY2NlcHRzOntcIipcIjpLYix0ZXh0OlwidGV4dC9wbGFpblwiLGh0bWw6XCJ0ZXh0L2h0bWxcIix4bWw6XCJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sXCIsanNvbjpcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdFwifSxjb250ZW50czp7eG1sOi9cXGJ4bWxcXGIvLGh0bWw6L1xcYmh0bWwvLGpzb246L1xcYmpzb25cXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOlwicmVzcG9uc2VYTUxcIix0ZXh0OlwicmVzcG9uc2VUZXh0XCIsanNvbjpcInJlc3BvbnNlSlNPTlwifSxjb252ZXJ0ZXJzOntcIiogdGV4dFwiOlN0cmluZyxcInRleHQgaHRtbFwiOiEwLFwidGV4dCBqc29uXCI6SlNPTi5wYXJzZSxcInRleHQgeG1sXCI6ci5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/T2IoT2IoYSxyLmFqYXhTZXR0aW5ncyksYik6T2Ioci5hamF4U2V0dGluZ3MsYSl9LGFqYXhQcmVmaWx0ZXI6TWIoSWIpLGFqYXhUcmFuc3BvcnQ6TWIoSmIpLGFqYXg6ZnVuY3Rpb24oYixjKXtcIm9iamVjdFwiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvPXIuYWpheFNldHVwKHt9LGMpLHA9by5jb250ZXh0fHxvLHE9by5jb250ZXh0JiYocC5ub2RlVHlwZXx8cC5qcXVlcnkpP3IocCk6ci5ldmVudCxzPXIuRGVmZXJyZWQoKSx0PXIuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksdT1vLnN0YXR1c0NvZGV8fHt9LHY9e30sdz17fSx4PVwiY2FuY2VsZWRcIix5PXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoayl7aWYoIWgpe2g9e307d2hpbGUoYj1FYi5leGVjKGcpKWhbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9aFthLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIGs/ZzpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWsmJihhPXdbYS50b0xvd2VyQ2FzZSgpXT13W2EudG9Mb3dlckNhc2UoKV18fGEsdlthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1rJiYoby5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoayl5LmFsd2F5cyhhW3kuc3RhdHVzXSk7ZWxzZSBmb3IoYiBpbiBhKXVbYl09W3VbYl0sYVtiXV07cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHg7cmV0dXJuIGUmJmUuYWJvcnQoYiksQSgwLGIpLHRoaXN9fTtpZihzLnByb21pc2UoeSksby51cmw9KChifHxvLnVybHx8dGIuaHJlZikrXCJcIikucmVwbGFjZShIYix0Yi5wcm90b2NvbCtcIi8vXCIpLG8udHlwZT1jLm1ldGhvZHx8Yy50eXBlfHxvLm1ldGhvZHx8by50eXBlLG8uZGF0YVR5cGVzPShvLmRhdGFUeXBlfHxcIipcIikudG9Mb3dlckNhc2UoKS5tYXRjaChMKXx8W1wiXCJdLG51bGw9PW8uY3Jvc3NEb21haW4pe2o9ZC5jcmVhdGVFbGVtZW50KFwiYVwiKTt0cnl7ai5ocmVmPW8udXJsLGouaHJlZj1qLmhyZWYsby5jcm9zc0RvbWFpbj1MYi5wcm90b2NvbCtcIi8vXCIrTGIuaG9zdCE9ai5wcm90b2NvbCtcIi8vXCIrai5ob3N0fWNhdGNoKHope28uY3Jvc3NEb21haW49ITB9fWlmKG8uZGF0YSYmby5wcm9jZXNzRGF0YSYmXCJzdHJpbmdcIiE9dHlwZW9mIG8uZGF0YSYmKG8uZGF0YT1yLnBhcmFtKG8uZGF0YSxvLnRyYWRpdGlvbmFsKSksTmIoSWIsbyxjLHkpLGspcmV0dXJuIHk7bD1yLmV2ZW50JiZvLmdsb2JhbCxsJiYwPT09ci5hY3RpdmUrKyYmci5ldmVudC50cmlnZ2VyKFwiYWpheFN0YXJ0XCIpLG8udHlwZT1vLnR5cGUudG9VcHBlckNhc2UoKSxvLmhhc0NvbnRlbnQ9IUdiLnRlc3Qoby50eXBlKSxmPW8udXJsLnJlcGxhY2UoQ2IsXCJcIiksby5oYXNDb250ZW50P28uZGF0YSYmby5wcm9jZXNzRGF0YSYmMD09PShvLmNvbnRlbnRUeXBlfHxcIlwiKS5pbmRleE9mKFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpJiYoby5kYXRhPW8uZGF0YS5yZXBsYWNlKEJiLFwiK1wiKSk6KG49by51cmwuc2xpY2UoZi5sZW5ndGgpLG8uZGF0YSYmKGYrPSh2Yi50ZXN0KGYpP1wiJlwiOlwiP1wiKStvLmRhdGEsZGVsZXRlIG8uZGF0YSksby5jYWNoZT09PSExJiYoZj1mLnJlcGxhY2UoRGIsXCIkMVwiKSxuPSh2Yi50ZXN0KGYpP1wiJlwiOlwiP1wiKStcIl89XCIrdWIrKyArbiksby51cmw9ZituKSxvLmlmTW9kaWZpZWQmJihyLmxhc3RNb2RpZmllZFtmXSYmeS5zZXRSZXF1ZXN0SGVhZGVyKFwiSWYtTW9kaWZpZWQtU2luY2VcIixyLmxhc3RNb2RpZmllZFtmXSksci5ldGFnW2ZdJiZ5LnNldFJlcXVlc3RIZWFkZXIoXCJJZi1Ob25lLU1hdGNoXCIsci5ldGFnW2ZdKSksKG8uZGF0YSYmby5oYXNDb250ZW50JiZvLmNvbnRlbnRUeXBlIT09ITF8fGMuY29udGVudFR5cGUpJiZ5LnNldFJlcXVlc3RIZWFkZXIoXCJDb250ZW50LVR5cGVcIixvLmNvbnRlbnRUeXBlKSx5LnNldFJlcXVlc3RIZWFkZXIoXCJBY2NlcHRcIixvLmRhdGFUeXBlc1swXSYmby5hY2NlcHRzW28uZGF0YVR5cGVzWzBdXT9vLmFjY2VwdHNbby5kYXRhVHlwZXNbMF1dKyhcIipcIiE9PW8uZGF0YVR5cGVzWzBdP1wiLCBcIitLYitcIjsgcT0wLjAxXCI6XCJcIik6by5hY2NlcHRzW1wiKlwiXSk7Zm9yKG0gaW4gby5oZWFkZXJzKXkuc2V0UmVxdWVzdEhlYWRlcihtLG8uaGVhZGVyc1ttXSk7aWYoby5iZWZvcmVTZW5kJiYoby5iZWZvcmVTZW5kLmNhbGwocCx5LG8pPT09ITF8fGspKXJldHVybiB5LmFib3J0KCk7aWYoeD1cImFib3J0XCIsdC5hZGQoby5jb21wbGV0ZSkseS5kb25lKG8uc3VjY2VzcykseS5mYWlsKG8uZXJyb3IpLGU9TmIoSmIsbyxjLHkpKXtpZih5LnJlYWR5U3RhdGU9MSxsJiZxLnRyaWdnZXIoXCJhamF4U2VuZFwiLFt5LG9dKSxrKXJldHVybiB5O28uYXN5bmMmJm8udGltZW91dD4wJiYoaT1hLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmFib3J0KFwidGltZW91dFwiKX0sby50aW1lb3V0KSk7dHJ5e2s9ITEsZS5zZW5kKHYsQSl9Y2F0Y2goeil7aWYoayl0aHJvdyB6O0EoLTEseil9fWVsc2UgQSgtMSxcIk5vIFRyYW5zcG9ydFwiKTtmdW5jdGlvbiBBKGIsYyxkLGgpe3ZhciBqLG0sbix2LHcseD1jO2t8fChrPSEwLGkmJmEuY2xlYXJUaW1lb3V0KGkpLGU9dm9pZCAwLGc9aHx8XCJcIix5LnJlYWR5U3RhdGU9Yj4wPzQ6MCxqPWI+PTIwMCYmYjwzMDB8fDMwND09PWIsZCYmKHY9UGIobyx5LGQpKSx2PVFiKG8sdix5LGopLGo/KG8uaWZNb2RpZmllZCYmKHc9eS5nZXRSZXNwb25zZUhlYWRlcihcIkxhc3QtTW9kaWZpZWRcIiksdyYmKHIubGFzdE1vZGlmaWVkW2ZdPXcpLHc9eS5nZXRSZXNwb25zZUhlYWRlcihcImV0YWdcIiksdyYmKHIuZXRhZ1tmXT13KSksMjA0PT09Ynx8XCJIRUFEXCI9PT1vLnR5cGU/eD1cIm5vY29udGVudFwiOjMwND09PWI/eD1cIm5vdG1vZGlmaWVkXCI6KHg9di5zdGF0ZSxtPXYuZGF0YSxuPXYuZXJyb3Isaj0hbikpOihuPXgsIWImJnh8fCh4PVwiZXJyb3JcIixiPDAmJihiPTApKSkseS5zdGF0dXM9Yix5LnN0YXR1c1RleHQ9KGN8fHgpK1wiXCIsaj9zLnJlc29sdmVXaXRoKHAsW20seCx5XSk6cy5yZWplY3RXaXRoKHAsW3kseCxuXSkseS5zdGF0dXNDb2RlKHUpLHU9dm9pZCAwLGwmJnEudHJpZ2dlcihqP1wiYWpheFN1Y2Nlc3NcIjpcImFqYXhFcnJvclwiLFt5LG8saj9tOm5dKSx0LmZpcmVXaXRoKHAsW3kseF0pLGwmJihxLnRyaWdnZXIoXCJhamF4Q29tcGxldGVcIixbeSxvXSksLS1yLmFjdGl2ZXx8ci5ldmVudC50cmlnZ2VyKFwiYWpheFN0b3BcIikpKX1yZXR1cm4geX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHIuZ2V0KGEsYixjLFwianNvblwiKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHIuZ2V0KGEsdm9pZCAwLGIsXCJzY3JpcHRcIil9fSksci5lYWNoKFtcImdldFwiLFwicG9zdFwiXSxmdW5jdGlvbihhLGIpe3JbYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIHIuaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLHIuYWpheChyLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sci5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksci5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gci5hamF4KHt1cmw6YSx0eXBlOlwiR0VUXCIsZGF0YVR5cGU6XCJzY3JpcHRcIixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsXCJ0aHJvd3NcIjohMH0pfSxyLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gdGhpc1swXSYmKHIuaXNGdW5jdGlvbihhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPXIoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0RWxlbWVudENoaWxkKWE9YS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiByLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3IodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPXIodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9ci5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7cih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnBhcmVudChhKS5ub3QoXCJib2R5XCIpLmVhY2goZnVuY3Rpb24oKXtyKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLHIuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4hci5leHByLnBzZXVkb3MudmlzaWJsZShhKX0sci5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hIShhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LHIuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX07dmFyIFJiPXswOjIwMCwxMjIzOjIwNH0sU2I9ci5hamF4U2V0dGluZ3MueGhyKCk7by5jb3JzPSEhU2ImJlwid2l0aENyZWRlbnRpYWxzXCJpbiBTYixvLmFqYXg9U2I9ISFTYixyLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24oYil7dmFyIGMsZDtpZihvLmNvcnN8fFNiJiYhYi5jcm9zc0RvbWFpbilyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe3ZhciBnLGg9Yi54aHIoKTtpZihoLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZyBpbiBiLnhockZpZWxkcyloW2ddPWIueGhyRmllbGRzW2ddO2IubWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGVbXCJYLVJlcXVlc3RlZC1XaXRoXCJdfHwoZVtcIlgtUmVxdWVzdGVkLVdpdGhcIl09XCJYTUxIdHRwUmVxdWVzdFwiKTtmb3IoZyBpbiBlKWguc2V0UmVxdWVzdEhlYWRlcihnLGVbZ10pO2M9ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7YyYmKGM9ZD1oLm9ubG9hZD1oLm9uZXJyb3I9aC5vbmFib3J0PWgub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsXCJhYm9ydFwiPT09YT9oLmFib3J0KCk6XCJlcnJvclwiPT09YT9cIm51bWJlclwiIT10eXBlb2YgaC5zdGF0dXM/ZigwLFwiZXJyb3JcIik6ZihoLnN0YXR1cyxoLnN0YXR1c1RleHQpOmYoUmJbaC5zdGF0dXNdfHxoLnN0YXR1cyxoLnN0YXR1c1RleHQsXCJ0ZXh0XCIhPT0oaC5yZXNwb25zZVR5cGV8fFwidGV4dFwiKXx8XCJzdHJpbmdcIiE9dHlwZW9mIGgucmVzcG9uc2VUZXh0P3tiaW5hcnk6aC5yZXNwb25zZX06e3RleHQ6aC5yZXNwb25zZVRleHR9LGguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19LGgub25sb2FkPWMoKSxkPWgub25lcnJvcj1jKFwiZXJyb3JcIiksdm9pZCAwIT09aC5vbmFib3J0P2gub25hYm9ydD1kOmgub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWgucmVhZHlTdGF0ZSYmYS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YyYmZCgpfSl9LGM9YyhcImFib3J0XCIpO3RyeXtoLnNlbmQoYi5oYXNDb250ZW50JiZiLmRhdGF8fG51bGwpfWNhdGNoKGkpe2lmKGMpdGhyb3cgaX19LGFib3J0OmZ1bmN0aW9uKCl7YyYmYygpfX19KSxyLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oYSl7YS5jcm9zc0RvbWFpbiYmKGEuY29udGVudHMuc2NyaXB0PSExKX0pLHIuYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6XCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwifSxjb250ZW50czp7c2NyaXB0Oi9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL30sY29udmVydGVyczp7XCJ0ZXh0IHNjcmlwdFwiOmZ1bmN0aW9uKGEpe3JldHVybiByLmdsb2JhbEV2YWwoYSksYX19fSksci5hamF4UHJlZmlsdGVyKFwic2NyaXB0XCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpLGEuY3Jvc3NEb21haW4mJihhLnR5cGU9XCJHRVRcIil9KSxyLmFqYXhUcmFuc3BvcnQoXCJzY3JpcHRcIixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjO3JldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7Yj1yKFwiPHNjcmlwdD5cIikucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oXCJsb2FkIGVycm9yXCIsYz1mdW5jdGlvbihhKXtiLnJlbW92ZSgpLGM9bnVsbCxhJiZmKFwiZXJyb3JcIj09PWEudHlwZT80MDQ6MjAwLGEudHlwZSl9KSxkLmhlYWQuYXBwZW5kQ2hpbGQoYlswXSl9LGFib3J0OmZ1bmN0aW9uKCl7YyYmYygpfX19fSk7dmFyIFRiPVtdLFViPS8oPSlcXD8oPz0mfCQpfFxcP1xcPy87ci5hamF4U2V0dXAoe2pzb25wOlwiY2FsbGJhY2tcIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9VGIucG9wKCl8fHIuZXhwYW5kbytcIl9cIit1YisrO3JldHVybiB0aGlzW2FdPSEwLGF9fSksci5hamF4UHJlZmlsdGVyKFwianNvbiBqc29ucFwiLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZSxmLGcsaD1iLmpzb25wIT09ITEmJihVYi50ZXN0KGIudXJsKT9cInVybFwiOlwic3RyaW5nXCI9PXR5cGVvZiBiLmRhdGEmJjA9PT0oYi5jb250ZW50VHlwZXx8XCJcIikuaW5kZXhPZihcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKSYmVWIudGVzdChiLmRhdGEpJiZcImRhdGFcIik7aWYoaHx8XCJqc29ucFwiPT09Yi5kYXRhVHlwZXNbMF0pcmV0dXJuIGU9Yi5qc29ucENhbGxiYWNrPXIuaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKFViLFwiJDFcIitlKTpiLmpzb25wIT09ITEmJihiLnVybCs9KHZiLnRlc3QoYi51cmwpP1wiJlwiOlwiP1wiKStiLmpzb25wK1wiPVwiK2UpLGIuY29udmVydGVyc1tcInNjcmlwdCBqc29uXCJdPWZ1bmN0aW9uKCl7cmV0dXJuIGd8fHIuZXJyb3IoZStcIiB3YXMgbm90IGNhbGxlZFwiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT1cImpzb25cIixmPWFbZV0sYVtlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxkLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY/cihhKS5yZW1vdmVQcm9wKGUpOmFbZV09ZixiW2VdJiYoYi5qc29ucENhbGxiYWNrPWMuanNvbnBDYWxsYmFjayxUYi5wdXNoKGUpKSxnJiZyLmlzRnVuY3Rpb24oZikmJmYoZ1swXSksZz1mPXZvaWQgMH0pLFwic2NyaXB0XCJ9KSxvLmNyZWF0ZUhUTUxEb2N1bWVudD1mdW5jdGlvbigpe3ZhciBhPWQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KFwiXCIpLmJvZHk7cmV0dXJuIGEuaW5uZXJIVE1MPVwiPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT5cIiwyPT09YS5jaGlsZE5vZGVzLmxlbmd0aH0oKSxyLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIGEpcmV0dXJuW107XCJib29sZWFuXCI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpO3ZhciBlLGYsZztyZXR1cm4gYnx8KG8uY3JlYXRlSFRNTERvY3VtZW50PyhiPWQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KFwiXCIpLGU9Yi5jcmVhdGVFbGVtZW50KFwiYmFzZVwiKSxlLmhyZWY9ZC5sb2NhdGlvbi5ocmVmLGIuaGVhZC5hcHBlbmRDaGlsZChlKSk6Yj1kKSxmPUMuZXhlYyhhKSxnPSFjJiZbXSxmP1tiLmNyZWF0ZUVsZW1lbnQoZlsxXSldOihmPXFhKFthXSxiLGcpLGcmJmcubGVuZ3RoJiZyKGcpLnJlbW92ZSgpLHIubWVyZ2UoW10sZi5jaGlsZE5vZGVzKSl9LHIuZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZihcIiBcIik7cmV0dXJuIGg+LTEmJihkPXBiKGEuc2xpY2UoaCkpLGE9YS5zbGljZSgwLGgpKSxyLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmXCJvYmplY3RcIj09dHlwZW9mIGImJihlPVwiUE9TVFwiKSxnLmxlbmd0aD4wJiZyLmFqYXgoe3VybDphLHR5cGU6ZXx8XCJHRVRcIixkYXRhVHlwZTpcImh0bWxcIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP3IoXCI8ZGl2PlwiKS5hcHBlbmQoci5wYXJzZUhUTUwoYSkpLmZpbmQoZCk6YSl9KS5hbHdheXMoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsZnx8W2EucmVzcG9uc2VUZXh0LGIsYV0pfSl9KSx0aGlzfSxyLmVhY2goW1wiYWpheFN0YXJ0XCIsXCJhamF4U3RvcFwiLFwiYWpheENvbXBsZXRlXCIsXCJhamF4RXJyb3JcIixcImFqYXhTdWNjZXNzXCIsXCJhamF4U2VuZFwiXSxmdW5jdGlvbihhLGIpe3IuZm5bYl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMub24oYixhKX19KSxyLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gci5ncmVwKHIudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofSxyLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPXIuY3NzKGEsXCJwb3NpdGlvblwiKSxsPXIoYSksbT17fTtcInN0YXRpY1wiPT09ayYmKGEuc3R5bGUucG9zaXRpb249XCJyZWxhdGl2ZVwiKSxoPWwub2Zmc2V0KCksZj1yLmNzcyhhLFwidG9wXCIpLGk9ci5jc3MoYSxcImxlZnRcIiksaj0oXCJhYnNvbHV0ZVwiPT09a3x8XCJmaXhlZFwiPT09aykmJihmK2kpLmluZGV4T2YoXCJhdXRvXCIpPi0xLGo/KGQ9bC5wb3NpdGlvbigpLGc9ZC50b3AsZT1kLmxlZnQpOihnPXBhcnNlRmxvYXQoZil8fDAsZT1wYXJzZUZsb2F0KGkpfHwwKSxyLmlzRnVuY3Rpb24oYikmJihiPWIuY2FsbChhLGMsci5leHRlbmQoe30saCkpKSxudWxsIT1iLnRvcCYmKG0udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG0ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLFwidXNpbmdcImluIGI/Yi51c2luZy5jYWxsKGEsbSk6bC5jc3MobSl9fSxyLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PWE/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oYil7ci5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxiKX0pO3ZhciBiLGMsZCxlLGY9dGhpc1swXTtpZihmKXJldHVybiBmLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhkPWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYj1mLm93bmVyRG9jdW1lbnQsYz1iLmRvY3VtZW50RWxlbWVudCxlPWIuZGVmYXVsdFZpZXcse3RvcDpkLnRvcCtlLnBhZ2VZT2Zmc2V0LWMuY2xpZW50VG9wLGxlZnQ6ZC5sZWZ0K2UucGFnZVhPZmZzZXQtYy5jbGllbnRMZWZ0fSk6e3RvcDowLGxlZnQ6MH19LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXRoaXNbMF0sZD17dG9wOjAsbGVmdDowfTtyZXR1cm5cImZpeGVkXCI9PT1yLmNzcyhjLFwicG9zaXRpb25cIik/Yj1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOihhPXRoaXMub2Zmc2V0UGFyZW50KCksYj10aGlzLm9mZnNldCgpLEIoYVswXSxcImh0bWxcIil8fChkPWEub2Zmc2V0KCkpLGQ9e3RvcDpkLnRvcCtyLmNzcyhhWzBdLFwiYm9yZGVyVG9wV2lkdGhcIiwhMCksbGVmdDpkLmxlZnQrci5jc3MoYVswXSxcImJvcmRlckxlZnRXaWR0aFwiLCEwKX0pLHt0b3A6Yi50b3AtZC50b3Atci5jc3MoYyxcIm1hcmdpblRvcFwiLCEwKSxsZWZ0OmIubGVmdC1kLmxlZnQtci5jc3MoYyxcIm1hcmdpbkxlZnRcIiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoYSYmXCJzdGF0aWNcIj09PXIuY3NzKGEsXCJwb3NpdGlvblwiKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxyYX0pfX0pLHIuZWFjaCh7c2Nyb2xsTGVmdDpcInBhZ2VYT2Zmc2V0XCIsc2Nyb2xsVG9wOlwicGFnZVlPZmZzZXRcIn0sZnVuY3Rpb24oYSxiKXt2YXIgYz1cInBhZ2VZT2Zmc2V0XCI9PT1iO3IuZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFQodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY7cmV0dXJuIHIuaXNXaW5kb3coYSk/Zj1hOjk9PT1hLm5vZGVUeXBlJiYoZj1hLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1lP2Y/ZltiXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/Zi5wYWdlWE9mZnNldDplLGM/ZTpmLnBhZ2VZT2Zmc2V0KTphW2RdPWUpfSxhLGQsYXJndW1lbnRzLmxlbmd0aCl9fSksci5lYWNoKFtcInRvcFwiLFwibGVmdFwiXSxmdW5jdGlvbihhLGIpe3IuY3NzSG9va3NbYl09UGEoby5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGEsYyl7aWYoYylyZXR1cm4gYz1PYShhLGIpLE1hLnRlc3QoYyk/cihhKS5wb3NpdGlvbigpW2JdK1wicHhcIjpjfSl9KSxyLmVhY2goe0hlaWdodDpcImhlaWdodFwiLFdpZHRoOlwid2lkdGhcIn0sZnVuY3Rpb24oYSxiKXtyLmVhY2goe3BhZGRpbmc6XCJpbm5lclwiK2EsY29udGVudDpiLFwiXCI6XCJvdXRlclwiK2F9LGZ1bmN0aW9uKGMsZCl7ci5mbltkXT1mdW5jdGlvbihlLGYpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGgmJihjfHxcImJvb2xlYW5cIiE9dHlwZW9mIGUpLGg9Y3x8KGU9PT0hMHx8Zj09PSEwP1wibWFyZ2luXCI6XCJib3JkZXJcIik7cmV0dXJuIFQodGhpcyxmdW5jdGlvbihiLGMsZSl7dmFyIGY7cmV0dXJuIHIuaXNXaW5kb3coYik/MD09PWQuaW5kZXhPZihcIm91dGVyXCIpP2JbXCJpbm5lclwiK2FdOmIuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W1wiY2xpZW50XCIrYV06OT09PWIubm9kZVR5cGU/KGY9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5W1wic2Nyb2xsXCIrYV0sZltcInNjcm9sbFwiK2FdLGIuYm9keVtcIm9mZnNldFwiK2FdLGZbXCJvZmZzZXRcIithXSxmW1wiY2xpZW50XCIrYV0pKTp2b2lkIDA9PT1lP3IuY3NzKGIsYyxoKTpyLnN0eWxlKGIsYyxlLGgpfSxiLGc/ZTp2b2lkIDAsZyl9fSl9KSxyLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSxcIioqXCIpOnRoaXMub2ZmKGIsYXx8XCIqKlwiLGMpfX0pLHIuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E/ci5yZWFkeVdhaXQrKzpyLnJlYWR5KCEwKX0sci5pc0FycmF5PUFycmF5LmlzQXJyYXksci5wYXJzZUpTT049SlNPTi5wYXJzZSxyLm5vZGVOYW1lPUIsXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoXCJqcXVlcnlcIixbXSxmdW5jdGlvbigpe3JldHVybiByfSk7dmFyIFZiPWEualF1ZXJ5LFdiPWEuJDtyZXR1cm4gci5ub0NvbmZsaWN0PWZ1bmN0aW9uKGIpe3JldHVybiBhLiQ9PT1yJiYoYS4kPVdiKSxiJiZhLmpRdWVyeT09PXImJihhLmpRdWVyeT1WYikscn0sYnx8KGEualF1ZXJ5PWEuJD1yKSxyfSk7XG4iLCIvKlxyXG4gSFRNTDUgU2hpdiB2My43LjAgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkXHJcbiovXHJcbihmdW5jdGlvbihsLGYpe2Z1bmN0aW9uIG0oKXt2YXIgYT1lLmVsZW1lbnRzO3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiBhP2Euc3BsaXQoXCIgXCIpOmF9ZnVuY3Rpb24gaShhKXt2YXIgYj1uW2Fbb11dO2J8fChiPXt9LGgrKyxhW29dPWgsbltoXT1iKTtyZXR1cm4gYn1mdW5jdGlvbiBwKGEsYixjKXtifHwoYj1mKTtpZihnKXJldHVybiBiLmNyZWF0ZUVsZW1lbnQoYSk7Y3x8KGM9aShiKSk7Yj1jLmNhY2hlW2FdP2MuY2FjaGVbYV0uY2xvbmVOb2RlKCk6ci50ZXN0KGEpPyhjLmNhY2hlW2FdPWMuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6Yy5jcmVhdGVFbGVtKGEpO3JldHVybiBiLmNhbkhhdmVDaGlsZHJlbiYmIXMudGVzdChhKT9jLmZyYWcuYXBwZW5kQ2hpbGQoYik6Yn1mdW5jdGlvbiB0KGEsYil7aWYoIWIuY2FjaGUpYi5jYWNoZT17fSxiLmNyZWF0ZUVsZW09YS5jcmVhdGVFbGVtZW50LGIuY3JlYXRlRnJhZz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQsYi5mcmFnPWIuY3JlYXRlRnJhZygpO1xyXG5hLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oYyl7cmV0dXJuIWUuc2hpdk1ldGhvZHM/Yi5jcmVhdGVFbGVtKGMpOnAoYyxhLGIpfTthLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQ9RnVuY3Rpb24oXCJoLGZcIixcInJldHVybiBmdW5jdGlvbigpe3ZhciBuPWYuY2xvbmVOb2RlKCksYz1uLmNyZWF0ZUVsZW1lbnQ7aC5zaGl2TWV0aG9kcyYmKFwiK20oKS5qb2luKCkucmVwbGFjZSgvW1xcd1xcLV0rL2csZnVuY3Rpb24oYSl7Yi5jcmVhdGVFbGVtKGEpO2IuZnJhZy5jcmVhdGVFbGVtZW50KGEpO3JldHVybidjKFwiJythKydcIiknfSkrXCIpO3JldHVybiBufVwiKShlLGIuZnJhZyl9ZnVuY3Rpb24gcShhKXthfHwoYT1mKTt2YXIgYj1pKGEpO2lmKGUuc2hpdkNTUyYmIWomJiFiLmhhc0NTUyl7dmFyIGMsZD1hO2M9ZC5jcmVhdGVFbGVtZW50KFwicFwiKTtkPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJoZWFkXCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtjLmlubmVySFRNTD1cIng8c3R5bGU+YXJ0aWNsZSxhc2lkZSxkaWFsb2csZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFpbixuYXYsc2VjdGlvbntkaXNwbGF5OmJsb2NrfW1hcmt7YmFja2dyb3VuZDojRkYwO2NvbG9yOiMwMDB9dGVtcGxhdGV7ZGlzcGxheTpub25lfTwvc3R5bGU+XCI7XHJcbmM9ZC5pbnNlcnRCZWZvcmUoYy5sYXN0Q2hpbGQsZC5maXJzdENoaWxkKTtiLmhhc0NTUz0hIWN9Z3x8dChhLGIpO3JldHVybiBhfXZhciBrPWwuaHRtbDV8fHt9LHM9L148fF4oPzpidXR0b258bWFwfHNlbGVjdHx0ZXh0YXJlYXxvYmplY3R8aWZyYW1lfG9wdGlvbnxvcHRncm91cCkkL2kscj0vXig/OmF8Ynxjb2RlfGRpdnxmaWVsZHNldHxoMXxoMnxoM3xoNHxoNXxoNnxpfGxhYmVsfGxpfG9sfHB8cXxzcGFufHN0cm9uZ3xzdHlsZXx0YWJsZXx0Ym9keXx0ZHx0aHx0cnx1bCkkL2ksaixvPVwiX2h0bWw1c2hpdlwiLGg9MCxuPXt9LGc7KGZ1bmN0aW9uKCl7dHJ5e3ZhciBhPWYuY3JlYXRlRWxlbWVudChcImFcIik7YS5pbm5lckhUTUw9XCI8eHl6PjwveHl6PlwiO2o9XCJoaWRkZW5cImluIGE7dmFyIGI7aWYoIShiPTE9PWEuY2hpbGROb2Rlcy5sZW5ndGgpKXtmLmNyZWF0ZUVsZW1lbnQoXCJhXCIpO3ZhciBjPWYuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2I9XCJ1bmRlZmluZWRcIj09dHlwZW9mIGMuY2xvbmVOb2RlfHxcclxuXCJ1bmRlZmluZWRcIj09dHlwZW9mIGMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8XCJ1bmRlZmluZWRcIj09dHlwZW9mIGMuY3JlYXRlRWxlbWVudH1nPWJ9Y2F0Y2goZCl7Zz1qPSEwfX0pKCk7dmFyIGU9e2VsZW1lbnRzOmsuZWxlbWVudHN8fFwiYWJiciBhcnRpY2xlIGFzaWRlIGF1ZGlvIGJkaSBjYW52YXMgZGF0YSBkYXRhbGlzdCBkZXRhaWxzIGRpYWxvZyBmaWdjYXB0aW9uIGZpZ3VyZSBmb290ZXIgaGVhZGVyIGhncm91cCBtYWluIG1hcmsgbWV0ZXIgbmF2IG91dHB1dCBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlb1wiLHZlcnNpb246XCIzLjcuMFwiLHNoaXZDU1M6ITEhPT1rLnNoaXZDU1Msc3VwcG9ydHNVbmtub3duRWxlbWVudHM6ZyxzaGl2TWV0aG9kczohMSE9PWsuc2hpdk1ldGhvZHMsdHlwZTpcImRlZmF1bHRcIixzaGl2RG9jdW1lbnQ6cSxjcmVhdGVFbGVtZW50OnAsY3JlYXRlRG9jdW1lbnRGcmFnbWVudDpmdW5jdGlvbihhLGIpe2F8fChhPWYpO1xyXG5pZihnKXJldHVybiBhLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodmFyIGI9Ynx8aShhKSxjPWIuZnJhZy5jbG9uZU5vZGUoKSxkPTAsZT1tKCksaD1lLmxlbmd0aDtkPGg7ZCsrKWMuY3JlYXRlRWxlbWVudChlW2RdKTtyZXR1cm4gY319O2wuaHRtbDU9ZTtxKGYpfSkodGhpcyxkb2N1bWVudCk7XHJcbiIsIiFmdW5jdGlvbihhLGIpe1wiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gYS5zdmc0ZXZlcnlib2R5PWIoKX0pOlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWIoKTphLnN2ZzRldmVyeWJvZHk9YigpfSh0aGlzLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhLGIsYyl7aWYoYyl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGU9IWIuaGFzQXR0cmlidXRlKFwidmlld0JveFwiKSYmYy5nZXRBdHRyaWJ1dGUoXCJ2aWV3Qm94XCIpO2UmJmIuc2V0QXR0cmlidXRlKFwidmlld0JveFwiLGUpO2Zvcih2YXIgZj1jLmNsb25lTm9kZSghMCk7Zi5jaGlsZE5vZGVzLmxlbmd0aDspZC5hcHBlbmRDaGlsZChmLmZpcnN0Q2hpbGQpO2EuYXBwZW5kQ2hpbGQoZCl9fWZ1bmN0aW9uIGIoYil7Yi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpZig0PT09Yi5yZWFkeVN0YXRlKXt2YXIgYz1iLl9jYWNoZWREb2N1bWVudDtjfHwoYz1iLl9jYWNoZWREb2N1bWVudD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoXCJcIiksYy5ib2R5LmlubmVySFRNTD1iLnJlc3BvbnNlVGV4dCxiLl9jYWNoZWRUYXJnZXQ9e30pLGIuX2VtYmVkcy5zcGxpY2UoMCkubWFwKGZ1bmN0aW9uKGQpe3ZhciBlPWIuX2NhY2hlZFRhcmdldFtkLmlkXTtlfHwoZT1iLl9jYWNoZWRUYXJnZXRbZC5pZF09Yy5nZXRFbGVtZW50QnlJZChkLmlkKSksYShkLnBhcmVudCxkLnN2ZyxlKX0pfX0sYi5vbnJlYWR5c3RhdGVjaGFuZ2UoKX1mdW5jdGlvbiBjKGMpe2Z1bmN0aW9uIGUoKXtmb3IodmFyIGM9MDtjPG8ubGVuZ3RoOyl7dmFyIGg9b1tjXSxpPWgucGFyZW50Tm9kZSxqPWQoaSksaz1oLmdldEF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIil8fGguZ2V0QXR0cmlidXRlKFwiaHJlZlwiKTtpZighayYmZy5hdHRyaWJ1dGVOYW1lJiYoaz1oLmdldEF0dHJpYnV0ZShnLmF0dHJpYnV0ZU5hbWUpKSxqJiZrKXtpZihmKWlmKCFnLnZhbGlkYXRlfHxnLnZhbGlkYXRlKGssaixoKSl7aS5yZW1vdmVDaGlsZChoKTt2YXIgbD1rLnNwbGl0KFwiI1wiKSxxPWwuc2hpZnQoKSxyPWwuam9pbihcIiNcIik7aWYocS5sZW5ndGgpe3ZhciBzPW1bcV07c3x8KHM9bVtxXT1uZXcgWE1MSHR0cFJlcXVlc3Qscy5vcGVuKFwiR0VUXCIscSkscy5zZW5kKCkscy5fZW1iZWRzPVtdKSxzLl9lbWJlZHMucHVzaCh7cGFyZW50Omksc3ZnOmosaWQ6cn0pLGIocyl9ZWxzZSBhKGksaixkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyKSl9ZWxzZSsrYywrK3B9ZWxzZSsrY30oIW8ubGVuZ3RofHxvLmxlbmd0aC1wPjApJiZuKGUsNjcpfXZhciBmLGc9T2JqZWN0KGMpLGg9L1xcYlRyaWRlbnRcXC9bNTY3XVxcYnxcXGJNU0lFICg/Ojl8MTApXFwuMFxcYi8saT0vXFxiQXBwbGVXZWJLaXRcXC8oXFxkKylcXGIvLGo9L1xcYkVkZ2VcXC8xMlxcLihcXGQrKVxcYi8saz0vXFxiRWRnZVxcLy4oXFxkKylcXGIvLGw9d2luZG93LnRvcCE9PXdpbmRvdy5zZWxmO2Y9XCJwb2x5ZmlsbFwiaW4gZz9nLnBvbHlmaWxsOmgudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8KG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goail8fFtdKVsxXTwxMDU0N3x8KG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goaSl8fFtdKVsxXTw1Mzd8fGsudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmbDt2YXIgbT17fSxuPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNldFRpbWVvdXQsbz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInVzZVwiKSxwPTA7ZiYmZSgpfWZ1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPWE7XCJzdmdcIiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmKGI9Yi5wYXJlbnROb2RlKTspO3JldHVybiBifXJldHVybiBjfSk7IiwiLyoqXHJcbiAqIE93bCBDYXJvdXNlbCB2Mi4yLjFcclxuICogQ29weXJpZ2h0IDIwMTMtMjAxNyBEYXZpZCBEZXV0c2NoXHJcbiAqIExpY2Vuc2VkIHVuZGVyICAoKVxyXG4gKi9cclxuLyoqXHJcbiAqIE93bCBjYXJvdXNlbFxyXG4gKiBAdmVyc2lvbiAyLjEuNlxyXG4gKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraVxyXG4gKiBAYXV0aG9yIERhdmlkIERldXRzY2hcclxuICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpXHJcbiAqIEB0b2RvIExhenkgTG9hZCBJY29uXHJcbiAqIEB0b2RvIHByZXZlbnQgYW5pbWF0aW9uZW5kIGJ1YmxpbmdcclxuICogQHRvZG8gaXRlbXNTY2FsZVVwXHJcbiAqIEB0b2RvIFRlc3QgWmVwdG9cclxuICogQHRvZG8gc3RhZ2VQYWRkaW5nIGNhbGN1bGF0ZSB3cm9uZyBhY3RpdmUgY2xhc3Nlc1xyXG4gKi9cclxuOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhIGNhcm91c2VsLlxyXG5cdCAqIEBjbGFzcyBUaGUgT3dsIENhcm91c2VsLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge0hUTUxFbGVtZW50fGpRdWVyeX0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIGNyZWF0ZSB0aGUgY2Fyb3VzZWwgZm9yLlxyXG5cdCAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc10gLSBUaGUgb3B0aW9uc1xyXG5cdCAqL1xyXG5cdGZ1bmN0aW9uIE93bChlbGVtZW50LCBvcHRpb25zKSB7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBDdXJyZW50IHNldHRpbmdzIGZvciB0aGUgY2Fyb3VzZWwuXHJcblx0XHQgKiBAcHVibGljXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuc2V0dGluZ3MgPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQ3VycmVudCBvcHRpb25zIHNldCBieSB0aGUgY2FsbGVyIGluY2x1ZGluZyBkZWZhdWx0cy5cclxuXHRcdCAqIEBwdWJsaWNcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sIE93bC5EZWZhdWx0cywgb3B0aW9ucyk7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBQbHVnaW4gZWxlbWVudC5cclxuXHRcdCAqIEBwdWJsaWNcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy4kZWxlbWVudCA9ICQoZWxlbWVudCk7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBQcm94aWVkIGV2ZW50IGhhbmRsZXJzLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9oYW5kbGVycyA9IHt9O1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogUmVmZXJlbmNlcyB0byB0aGUgcnVubmluZyBwbHVnaW5zIG9mIHRoaXMgY2Fyb3VzZWwuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3BsdWdpbnMgPSB7fTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEN1cnJlbnRseSBzdXBwcmVzc2VkIGV2ZW50cyB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWVpbmcgcmV0cmlnZ2VyZWQuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3N1cHJlc3MgPSB7fTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEFic29sdXRlIGN1cnJlbnQgcG9zaXRpb24uXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2N1cnJlbnQgPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQW5pbWF0aW9uIHNwZWVkIGluIG1pbGxpc2Vjb25kcy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fc3BlZWQgPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQ29vcmRpbmF0ZXMgb2YgYWxsIGl0ZW1zIGluIHBpeGVsLlxyXG5cdFx0ICogQHRvZG8gVGhlIG5hbWUgb2YgdGhpcyBtZW1iZXIgaXMgbWlzc2xlYWRpbmcuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2Nvb3JkaW5hdGVzID0gW107XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBDdXJyZW50IGJyZWFrcG9pbnQuXHJcblx0XHQgKiBAdG9kbyBSZWFsIG1lZGlhIHF1ZXJpZXMgd291bGQgYmUgbmljZS5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fYnJlYWtwb2ludCA9IG51bGw7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBDdXJyZW50IHdpZHRoIG9mIHRoZSBwbHVnaW4gZWxlbWVudC5cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fd2lkdGggPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQWxsIHJlYWwgaXRlbXMuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2l0ZW1zID0gW107XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBBbGwgY2xvbmVkIGl0ZW1zLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9jbG9uZXMgPSBbXTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIE1lcmdlIHZhbHVlcyBvZiBhbGwgaXRlbXMuXHJcblx0XHQgKiBAdG9kbyBNYXliZSB0aGlzIGNvdWxkIGJlIHBhcnQgb2YgYSBwbHVnaW4uXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX21lcmdlcnMgPSBbXTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFdpZHRocyBvZiBhbGwgaXRlbXMuXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3dpZHRocyA9IFtdO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogSW52YWxpZGF0ZWQgcGFydHMgd2l0aGluIHRoZSB1cGRhdGUgcHJvY2Vzcy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5faW52YWxpZGF0ZWQgPSB7fTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIE9yZGVyZWQgbGlzdCBvZiB3b3JrZXJzIGZvciB0aGUgdXBkYXRlIHByb2Nlc3MuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3BpcGUgPSBbXTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHRoZSBkcmFnIG9wZXJhdGlvbi5cclxuXHRcdCAqIEB0b2RvICMyNjFcclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fZHJhZyA9IHtcclxuXHRcdFx0dGltZTogbnVsbCxcclxuXHRcdFx0dGFyZ2V0OiBudWxsLFxyXG5cdFx0XHRwb2ludGVyOiBudWxsLFxyXG5cdFx0XHRzdGFnZToge1xyXG5cdFx0XHRcdHN0YXJ0OiBudWxsLFxyXG5cdFx0XHRcdGN1cnJlbnQ6IG51bGxcclxuXHRcdFx0fSxcclxuXHRcdFx0ZGlyZWN0aW9uOiBudWxsXHJcblx0XHR9O1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQ3VycmVudCBzdGF0ZSBpbmZvcm1hdGlvbiBhbmQgdGhlaXIgdGFncy5cclxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3N0YXRlcyA9IHtcclxuXHRcdFx0Y3VycmVudDoge30sXHJcblx0XHRcdHRhZ3M6IHtcclxuXHRcdFx0XHQnaW5pdGlhbGl6aW5nJzogWyAnYnVzeScgXSxcclxuXHRcdFx0XHQnYW5pbWF0aW5nJzogWyAnYnVzeScgXSxcclxuXHRcdFx0XHQnZHJhZ2dpbmcnOiBbICdpbnRlcmFjdGluZycgXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdCQuZWFjaChbICdvblJlc2l6ZScsICdvblRocm90dGxlZFJlc2l6ZScgXSwgJC5wcm94eShmdW5jdGlvbihpLCBoYW5kbGVyKSB7XHJcblx0XHRcdHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdID0gJC5wcm94eSh0aGlzW2hhbmRsZXJdLCB0aGlzKTtcclxuXHRcdH0sIHRoaXMpKTtcclxuXHJcblx0XHQkLmVhY2goT3dsLlBsdWdpbnMsICQucHJveHkoZnVuY3Rpb24oa2V5LCBwbHVnaW4pIHtcclxuXHRcdFx0dGhpcy5fcGx1Z2luc1trZXkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSldXHJcblx0XHRcdFx0PSBuZXcgcGx1Z2luKHRoaXMpO1xyXG5cdFx0fSwgdGhpcykpO1xyXG5cclxuXHRcdCQuZWFjaChPd2wuV29ya2VycywgJC5wcm94eShmdW5jdGlvbihwcmlvcml0eSwgd29ya2VyKSB7XHJcblx0XHRcdHRoaXMuX3BpcGUucHVzaCh7XHJcblx0XHRcdFx0J2ZpbHRlcic6IHdvcmtlci5maWx0ZXIsXHJcblx0XHRcdFx0J3J1bic6ICQucHJveHkod29ya2VyLnJ1biwgdGhpcylcclxuXHRcdFx0fSk7XHJcblx0XHR9LCB0aGlzKSk7XHJcblxyXG5cdFx0dGhpcy5zZXR1cCgpO1xyXG5cdFx0dGhpcy5pbml0aWFsaXplKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBjYXJvdXNlbC5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0T3dsLkRlZmF1bHRzID0ge1xyXG5cdFx0aXRlbXM6IDMsXHJcblx0XHRsb29wOiBmYWxzZSxcclxuXHRcdGNlbnRlcjogZmFsc2UsXHJcblx0XHRyZXdpbmQ6IGZhbHNlLFxyXG5cclxuXHRcdG1vdXNlRHJhZzogdHJ1ZSxcclxuXHRcdHRvdWNoRHJhZzogdHJ1ZSxcclxuXHRcdHB1bGxEcmFnOiB0cnVlLFxyXG5cdFx0ZnJlZURyYWc6IGZhbHNlLFxyXG5cclxuXHRcdG1hcmdpbjogMCxcclxuXHRcdHN0YWdlUGFkZGluZzogMCxcclxuXHJcblx0XHRtZXJnZTogZmFsc2UsXHJcblx0XHRtZXJnZUZpdDogdHJ1ZSxcclxuXHRcdGF1dG9XaWR0aDogZmFsc2UsXHJcblxyXG5cdFx0c3RhcnRQb3NpdGlvbjogMCxcclxuXHRcdHJ0bDogZmFsc2UsXHJcblxyXG5cdFx0c21hcnRTcGVlZDogMjUwLFxyXG5cdFx0Zmx1aWRTcGVlZDogZmFsc2UsXHJcblx0XHRkcmFnRW5kU3BlZWQ6IGZhbHNlLFxyXG5cclxuXHRcdHJlc3BvbnNpdmU6IHt9LFxyXG5cdFx0cmVzcG9uc2l2ZVJlZnJlc2hSYXRlOiAyMDAsXHJcblx0XHRyZXNwb25zaXZlQmFzZUVsZW1lbnQ6IHdpbmRvdyxcclxuXHJcblx0XHRmYWxsYmFja0Vhc2luZzogJ3N3aW5nJyxcclxuXHJcblx0XHRpbmZvOiBmYWxzZSxcclxuXHJcblx0XHRuZXN0ZWRJdGVtU2VsZWN0b3I6IGZhbHNlLFxyXG5cdFx0aXRlbUVsZW1lbnQ6ICdkaXYnLFxyXG5cdFx0c3RhZ2VFbGVtZW50OiAnZGl2JyxcclxuXHJcblx0XHRyZWZyZXNoQ2xhc3M6ICdvd2wtcmVmcmVzaCcsXHJcblx0XHRsb2FkZWRDbGFzczogJ293bC1sb2FkZWQnLFxyXG5cdFx0bG9hZGluZ0NsYXNzOiAnb3dsLWxvYWRpbmcnLFxyXG5cdFx0cnRsQ2xhc3M6ICdvd2wtcnRsJyxcclxuXHRcdHJlc3BvbnNpdmVDbGFzczogJ293bC1yZXNwb25zaXZlJyxcclxuXHRcdGRyYWdDbGFzczogJ293bC1kcmFnJyxcclxuXHRcdGl0ZW1DbGFzczogJ293bC1pdGVtJyxcclxuXHRcdHN0YWdlQ2xhc3M6ICdvd2wtc3RhZ2UnLFxyXG5cdFx0c3RhZ2VPdXRlckNsYXNzOiAnb3dsLXN0YWdlLW91dGVyJyxcclxuXHRcdGdyYWJDbGFzczogJ293bC1ncmFiJ1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVudW1lcmF0aW9uIGZvciB3aWR0aC5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHJlYWRvbmx5XHJcblx0ICogQGVudW0ge1N0cmluZ31cclxuXHQgKi9cclxuXHRPd2wuV2lkdGggPSB7XHJcblx0XHREZWZhdWx0OiAnZGVmYXVsdCcsXHJcblx0XHRJbm5lcjogJ2lubmVyJyxcclxuXHRcdE91dGVyOiAnb3V0ZXInXHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRW51bWVyYXRpb24gZm9yIHR5cGVzLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcmVhZG9ubHlcclxuXHQgKiBAZW51bSB7U3RyaW5nfVxyXG5cdCAqL1xyXG5cdE93bC5UeXBlID0ge1xyXG5cdFx0RXZlbnQ6ICdldmVudCcsXHJcblx0XHRTdGF0ZTogJ3N0YXRlJ1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnRhaW5zIGFsbCByZWdpc3RlcmVkIHBsdWdpbnMuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdE93bC5QbHVnaW5zID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIExpc3Qgb2Ygd29ya2VycyBpbnZvbHZlZCBpbiB0aGUgdXBkYXRlIHByb2Nlc3MuXHJcblx0ICovXHJcblx0T3dsLldvcmtlcnMgPSBbIHtcclxuXHRcdGZpbHRlcjogWyAnd2lkdGgnLCAnc2V0dGluZ3MnIF0sXHJcblx0XHRydW46IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHR0aGlzLl93aWR0aCA9IHRoaXMuJGVsZW1lbnQud2lkdGgoKTtcclxuXHRcdH1cclxuXHR9LCB7XHJcblx0XHRmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLFxyXG5cdFx0cnVuOiBmdW5jdGlvbihjYWNoZSkge1xyXG5cdFx0XHRjYWNoZS5jdXJyZW50ID0gdGhpcy5faXRlbXMgJiYgdGhpcy5faXRlbXNbdGhpcy5yZWxhdGl2ZSh0aGlzLl9jdXJyZW50KV07XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICdpdGVtcycsICdzZXR0aW5ncycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdHRoaXMuJHN0YWdlLmNoaWxkcmVuKCcuY2xvbmVkJykucmVtb3ZlKCk7XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oY2FjaGUpIHtcclxuXHRcdFx0dmFyIG1hcmdpbiA9IHRoaXMuc2V0dGluZ3MubWFyZ2luIHx8ICcnLFxyXG5cdFx0XHRcdGdyaWQgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsXHJcblx0XHRcdFx0cnRsID0gdGhpcy5zZXR0aW5ncy5ydGwsXHJcblx0XHRcdFx0Y3NzID0ge1xyXG5cdFx0XHRcdFx0J3dpZHRoJzogJ2F1dG8nLFxyXG5cdFx0XHRcdFx0J21hcmdpbi1sZWZ0JzogcnRsID8gbWFyZ2luIDogJycsXHJcblx0XHRcdFx0XHQnbWFyZ2luLXJpZ2h0JzogcnRsID8gJycgOiBtYXJnaW5cclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0IWdyaWQgJiYgdGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5jc3MoY3NzKTtcclxuXHJcblx0XHRcdGNhY2hlLmNzcyA9IGNzcztcclxuXHRcdH1cclxuXHR9LCB7XHJcblx0XHRmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLFxyXG5cdFx0cnVuOiBmdW5jdGlvbihjYWNoZSkge1xyXG5cdFx0XHR2YXIgd2lkdGggPSAodGhpcy53aWR0aCgpIC8gdGhpcy5zZXR0aW5ncy5pdGVtcykudG9GaXhlZCgzKSAtIHRoaXMuc2V0dGluZ3MubWFyZ2luLFxyXG5cdFx0XHRcdG1lcmdlID0gbnVsbCxcclxuXHRcdFx0XHRpdGVyYXRvciA9IHRoaXMuX2l0ZW1zLmxlbmd0aCxcclxuXHRcdFx0XHRncmlkID0gIXRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoLFxyXG5cdFx0XHRcdHdpZHRocyA9IFtdO1xyXG5cclxuXHRcdFx0Y2FjaGUuaXRlbXMgPSB7XHJcblx0XHRcdFx0bWVyZ2U6IGZhbHNlLFxyXG5cdFx0XHRcdHdpZHRoOiB3aWR0aFxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0d2hpbGUgKGl0ZXJhdG9yLS0pIHtcclxuXHRcdFx0XHRtZXJnZSA9IHRoaXMuX21lcmdlcnNbaXRlcmF0b3JdO1xyXG5cdFx0XHRcdG1lcmdlID0gdGhpcy5zZXR0aW5ncy5tZXJnZUZpdCAmJiBNYXRoLm1pbihtZXJnZSwgdGhpcy5zZXR0aW5ncy5pdGVtcykgfHwgbWVyZ2U7XHJcblxyXG5cdFx0XHRcdGNhY2hlLml0ZW1zLm1lcmdlID0gbWVyZ2UgPiAxIHx8IGNhY2hlLml0ZW1zLm1lcmdlO1xyXG5cclxuXHRcdFx0XHR3aWR0aHNbaXRlcmF0b3JdID0gIWdyaWQgPyB0aGlzLl9pdGVtc1tpdGVyYXRvcl0ud2lkdGgoKSA6IHdpZHRoICogbWVyZ2U7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuX3dpZHRocyA9IHdpZHRocztcclxuXHRcdH1cclxuXHR9LCB7XHJcblx0XHRmaWx0ZXI6IFsgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLFxyXG5cdFx0cnVuOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0dmFyIGNsb25lcyA9IFtdLFxyXG5cdFx0XHRcdGl0ZW1zID0gdGhpcy5faXRlbXMsXHJcblx0XHRcdFx0c2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzLFxyXG5cdFx0XHRcdC8vIFRPRE86IFNob3VsZCBiZSBjb21wdXRlZCBmcm9tIG51bWJlciBvZiBtaW4gd2lkdGggaXRlbXMgaW4gc3RhZ2VcclxuXHRcdFx0XHR2aWV3ID0gTWF0aC5tYXgoc2V0dGluZ3MuaXRlbXMgKiAyLCA0KSxcclxuXHRcdFx0XHRzaXplID0gTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIDIpICogMixcclxuXHRcdFx0XHRyZXBlYXQgPSBzZXR0aW5ncy5sb29wICYmIGl0ZW1zLmxlbmd0aCA/IHNldHRpbmdzLnJld2luZCA/IHZpZXcgOiBNYXRoLm1heCh2aWV3LCBzaXplKSA6IDAsXHJcblx0XHRcdFx0YXBwZW5kID0gJycsXHJcblx0XHRcdFx0cHJlcGVuZCA9ICcnO1xyXG5cclxuXHRcdFx0cmVwZWF0IC89IDI7XHJcblxyXG5cdFx0XHR3aGlsZSAocmVwZWF0LS0pIHtcclxuXHRcdFx0XHQvLyBTd2l0Y2ggdG8gb25seSB1c2luZyBhcHBlbmRlZCBjbG9uZXNcclxuXHRcdFx0XHRjbG9uZXMucHVzaCh0aGlzLm5vcm1hbGl6ZShjbG9uZXMubGVuZ3RoIC8gMiwgdHJ1ZSkpO1xyXG5cdFx0XHRcdGFwcGVuZCA9IGFwcGVuZCArIGl0ZW1zW2Nsb25lc1tjbG9uZXMubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTDtcclxuXHRcdFx0XHRjbG9uZXMucHVzaCh0aGlzLm5vcm1hbGl6ZShpdGVtcy5sZW5ndGggLSAxIC0gKGNsb25lcy5sZW5ndGggLSAxKSAvIDIsIHRydWUpKTtcclxuXHRcdFx0XHRwcmVwZW5kID0gaXRlbXNbY2xvbmVzW2Nsb25lcy5sZW5ndGggLSAxXV1bMF0ub3V0ZXJIVE1MICsgcHJlcGVuZDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5fY2xvbmVzID0gY2xvbmVzO1xyXG5cclxuXHRcdFx0JChhcHBlbmQpLmFkZENsYXNzKCdjbG9uZWQnKS5hcHBlbmRUbyh0aGlzLiRzdGFnZSk7XHJcblx0XHRcdCQocHJlcGVuZCkuYWRkQ2xhc3MoJ2Nsb25lZCcpLnByZXBlbmRUbyh0aGlzLiRzdGFnZSk7XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdHZhciBydGwgPSB0aGlzLnNldHRpbmdzLnJ0bCA/IDEgOiAtMSxcclxuXHRcdFx0XHRzaXplID0gdGhpcy5fY2xvbmVzLmxlbmd0aCArIHRoaXMuX2l0ZW1zLmxlbmd0aCxcclxuXHRcdFx0XHRpdGVyYXRvciA9IC0xLFxyXG5cdFx0XHRcdHByZXZpb3VzID0gMCxcclxuXHRcdFx0XHRjdXJyZW50ID0gMCxcclxuXHRcdFx0XHRjb29yZGluYXRlcyA9IFtdO1xyXG5cclxuXHRcdFx0d2hpbGUgKCsraXRlcmF0b3IgPCBzaXplKSB7XHJcblx0XHRcdFx0cHJldmlvdXMgPSBjb29yZGluYXRlc1tpdGVyYXRvciAtIDFdIHx8IDA7XHJcblx0XHRcdFx0Y3VycmVudCA9IHRoaXMuX3dpZHRoc1t0aGlzLnJlbGF0aXZlKGl0ZXJhdG9yKV0gKyB0aGlzLnNldHRpbmdzLm1hcmdpbjtcclxuXHRcdFx0XHRjb29yZGluYXRlcy5wdXNoKHByZXZpb3VzICsgY3VycmVudCAqIHJ0bCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuX2Nvb3JkaW5hdGVzID0gY29vcmRpbmF0ZXM7XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdHZhciBwYWRkaW5nID0gdGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcsXHJcblx0XHRcdFx0Y29vcmRpbmF0ZXMgPSB0aGlzLl9jb29yZGluYXRlcyxcclxuXHRcdFx0XHRjc3MgPSB7XHJcblx0XHRcdFx0XHQnd2lkdGgnOiBNYXRoLmNlaWwoTWF0aC5hYnMoY29vcmRpbmF0ZXNbY29vcmRpbmF0ZXMubGVuZ3RoIC0gMV0pKSArIHBhZGRpbmcgKiAyLFxyXG5cdFx0XHRcdFx0J3BhZGRpbmctbGVmdCc6IHBhZGRpbmcgfHwgJycsXHJcblx0XHRcdFx0XHQncGFkZGluZy1yaWdodCc6IHBhZGRpbmcgfHwgJydcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0dGhpcy4kc3RhZ2UuY3NzKGNzcyk7XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oY2FjaGUpIHtcclxuXHRcdFx0dmFyIGl0ZXJhdG9yID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoLFxyXG5cdFx0XHRcdGdyaWQgPSAhdGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgsXHJcblx0XHRcdFx0aXRlbXMgPSB0aGlzLiRzdGFnZS5jaGlsZHJlbigpO1xyXG5cclxuXHRcdFx0aWYgKGdyaWQgJiYgY2FjaGUuaXRlbXMubWVyZ2UpIHtcclxuXHRcdFx0XHR3aGlsZSAoaXRlcmF0b3ItLSkge1xyXG5cdFx0XHRcdFx0Y2FjaGUuY3NzLndpZHRoID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoaXRlcmF0b3IpXTtcclxuXHRcdFx0XHRcdGl0ZW1zLmVxKGl0ZXJhdG9yKS5jc3MoY2FjaGUuY3NzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAoZ3JpZCkge1xyXG5cdFx0XHRcdGNhY2hlLmNzcy53aWR0aCA9IGNhY2hlLml0ZW1zLndpZHRoO1xyXG5cdFx0XHRcdGl0ZW1zLmNzcyhjYWNoZS5jc3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICdpdGVtcycgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdHRoaXMuX2Nvb3JkaW5hdGVzLmxlbmd0aCA8IDEgJiYgdGhpcy4kc3RhZ2UucmVtb3ZlQXR0cignc3R5bGUnKTtcclxuXHRcdH1cclxuXHR9LCB7XHJcblx0XHRmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLFxyXG5cdFx0cnVuOiBmdW5jdGlvbihjYWNoZSkge1xyXG5cdFx0XHRjYWNoZS5jdXJyZW50ID0gY2FjaGUuY3VycmVudCA/IHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuaW5kZXgoY2FjaGUuY3VycmVudCkgOiAwO1xyXG5cdFx0XHRjYWNoZS5jdXJyZW50ID0gTWF0aC5tYXgodGhpcy5taW5pbXVtKCksIE1hdGgubWluKHRoaXMubWF4aW11bSgpLCBjYWNoZS5jdXJyZW50KSk7XHJcblx0XHRcdHRoaXMucmVzZXQoY2FjaGUuY3VycmVudCk7XHJcblx0XHR9XHJcblx0fSwge1xyXG5cdFx0ZmlsdGVyOiBbICdwb3NpdGlvbicgXSxcclxuXHRcdHJ1bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdHRoaXMuYW5pbWF0ZSh0aGlzLmNvb3JkaW5hdGVzKHRoaXMuX2N1cnJlbnQpKTtcclxuXHRcdH1cclxuXHR9LCB7XHJcblx0XHRmaWx0ZXI6IFsgJ3dpZHRoJywgJ3Bvc2l0aW9uJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLFxyXG5cdFx0cnVuOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0dmFyIHJ0bCA9IHRoaXMuc2V0dGluZ3MucnRsID8gMSA6IC0xLFxyXG5cdFx0XHRcdHBhZGRpbmcgPSB0aGlzLnNldHRpbmdzLnN0YWdlUGFkZGluZyAqIDIsXHJcblx0XHRcdFx0YmVnaW4gPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMuY3VycmVudCgpKSArIHBhZGRpbmcsXHJcblx0XHRcdFx0ZW5kID0gYmVnaW4gKyB0aGlzLndpZHRoKCkgKiBydGwsXHJcblx0XHRcdFx0aW5uZXIsIG91dGVyLCBtYXRjaGVzID0gW10sIGksIG47XHJcblxyXG5cdFx0XHRmb3IgKGkgPSAwLCBuID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XHJcblx0XHRcdFx0aW5uZXIgPSB0aGlzLl9jb29yZGluYXRlc1tpIC0gMV0gfHwgMDtcclxuXHRcdFx0XHRvdXRlciA9IE1hdGguYWJzKHRoaXMuX2Nvb3JkaW5hdGVzW2ldKSArIHBhZGRpbmcgKiBydGw7XHJcblxyXG5cdFx0XHRcdGlmICgodGhpcy5vcChpbm5lciwgJzw9JywgYmVnaW4pICYmICh0aGlzLm9wKGlubmVyLCAnPicsIGVuZCkpKVxyXG5cdFx0XHRcdFx0fHwgKHRoaXMub3Aob3V0ZXIsICc8JywgYmVnaW4pICYmIHRoaXMub3Aob3V0ZXIsICc+JywgZW5kKSkpIHtcclxuXHRcdFx0XHRcdG1hdGNoZXMucHVzaChpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXMuJHN0YWdlLmNoaWxkcmVuKCcuYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5jaGlsZHJlbignOmVxKCcgKyBtYXRjaGVzLmpvaW4oJyksIDplcSgnKSArICcpJykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MuY2VudGVyKSB7XHJcblx0XHRcdFx0dGhpcy4kc3RhZ2UuY2hpbGRyZW4oJy5jZW50ZXInKS5yZW1vdmVDbGFzcygnY2VudGVyJyk7XHJcblx0XHRcdFx0dGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5lcSh0aGlzLmN1cnJlbnQoKSkuYWRkQ2xhc3MoJ2NlbnRlcicpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSBdO1xyXG5cclxuXHQvKipcclxuXHQgKiBJbml0aWFsaXplcyB0aGUgY2Fyb3VzZWwuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuaW5pdGlhbGl6ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dGhpcy5lbnRlcignaW5pdGlhbGl6aW5nJyk7XHJcblx0XHR0aGlzLnRyaWdnZXIoJ2luaXRpYWxpemUnKTtcclxuXHJcblx0XHR0aGlzLiRlbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuc2V0dGluZ3MucnRsQ2xhc3MsIHRoaXMuc2V0dGluZ3MucnRsKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgIXRoaXMuaXMoJ3ByZS1sb2FkaW5nJykpIHtcclxuXHRcdFx0dmFyIGltZ3MsIG5lc3RlZFNlbGVjdG9yLCB3aWR0aDtcclxuXHRcdFx0aW1ncyA9IHRoaXMuJGVsZW1lbnQuZmluZCgnaW1nJyk7XHJcblx0XHRcdG5lc3RlZFNlbGVjdG9yID0gdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IgPyAnLicgKyB0aGlzLnNldHRpbmdzLm5lc3RlZEl0ZW1TZWxlY3RvciA6IHVuZGVmaW5lZDtcclxuXHRcdFx0d2lkdGggPSB0aGlzLiRlbGVtZW50LmNoaWxkcmVuKG5lc3RlZFNlbGVjdG9yKS53aWR0aCgpO1xyXG5cclxuXHRcdFx0aWYgKGltZ3MubGVuZ3RoICYmIHdpZHRoIDw9IDApIHtcclxuXHRcdFx0XHR0aGlzLnByZWxvYWRBdXRvV2lkdGhJbWFnZXMoaW1ncyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiRlbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpO1xyXG5cclxuXHRcdC8vIGNyZWF0ZSBzdGFnZVxyXG5cdFx0dGhpcy4kc3RhZ2UgPSAkKCc8JyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VFbGVtZW50ICsgJyBjbGFzcz1cIicgKyB0aGlzLnNldHRpbmdzLnN0YWdlQ2xhc3MgKyAnXCIvPicpXHJcblx0XHRcdC53cmFwKCc8ZGl2IGNsYXNzPVwiJyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VPdXRlckNsYXNzICsgJ1wiLz4nKTtcclxuXHJcblx0XHQvLyBhcHBlbmQgc3RhZ2VcclxuXHRcdHRoaXMuJGVsZW1lbnQuYXBwZW5kKHRoaXMuJHN0YWdlLnBhcmVudCgpKTtcclxuXHJcblx0XHQvLyBhcHBlbmQgY29udGVudFxyXG5cdFx0dGhpcy5yZXBsYWNlKHRoaXMuJGVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy4kc3RhZ2UucGFyZW50KCkpKTtcclxuXHJcblx0XHQvLyBjaGVjayB2aXNpYmlsaXR5XHJcblx0XHRpZiAodGhpcy4kZWxlbWVudC5pcygnOnZpc2libGUnKSkge1xyXG5cdFx0XHQvLyB1cGRhdGUgdmlld1xyXG5cdFx0XHR0aGlzLnJlZnJlc2goKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGludmFsaWRhdGUgd2lkdGhcclxuXHRcdFx0dGhpcy5pbnZhbGlkYXRlKCd3aWR0aCcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuJGVsZW1lbnRcclxuXHRcdFx0LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5sb2FkaW5nQ2xhc3MpXHJcblx0XHRcdC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGVkQ2xhc3MpO1xyXG5cclxuXHRcdC8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzXHJcblx0XHR0aGlzLnJlZ2lzdGVyRXZlbnRIYW5kbGVycygpO1xyXG5cclxuXHRcdHRoaXMubGVhdmUoJ2luaXRpYWxpemluZycpO1xyXG5cdFx0dGhpcy50cmlnZ2VyKCdpbml0aWFsaXplZCcpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHVwcyB0aGUgY3VycmVudCBzZXR0aW5ncy5cclxuXHQgKiBAdG9kbyBSZW1vdmUgcmVzcG9uc2l2ZSBjbGFzc2VzLiBXaHkgc2hvdWxkIGFkYXB0aXZlIGRlc2lnbnMgYmUgYnJvdWdodCBpbnRvIElFOD9cclxuXHQgKiBAdG9kbyBTdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGJ5IHVzaW5nIGBtYXRjaE1lZGlhYCB3b3VsZCBiZSBuaWNlLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnNldHVwID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgdmlld3BvcnQgPSB0aGlzLnZpZXdwb3J0KCksXHJcblx0XHRcdG92ZXJ3cml0ZXMgPSB0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZSxcclxuXHRcdFx0bWF0Y2ggPSAtMSxcclxuXHRcdFx0c2V0dGluZ3MgPSBudWxsO1xyXG5cclxuXHRcdGlmICghb3ZlcndyaXRlcykge1xyXG5cdFx0XHRzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCB0aGlzLm9wdGlvbnMpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0JC5lYWNoKG92ZXJ3cml0ZXMsIGZ1bmN0aW9uKGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0XHRpZiAoYnJlYWtwb2ludCA8PSB2aWV3cG9ydCAmJiBicmVha3BvaW50ID4gbWF0Y2gpIHtcclxuXHRcdFx0XHRcdG1hdGNoID0gTnVtYmVyKGJyZWFrcG9pbnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHRzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCB0aGlzLm9wdGlvbnMsIG92ZXJ3cml0ZXNbbWF0Y2hdKTtcclxuXHRcdFx0aWYgKHR5cGVvZiBzZXR0aW5ncy5zdGFnZVBhZGRpbmcgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRzZXR0aW5ncy5zdGFnZVBhZGRpbmcgPSBzZXR0aW5ncy5zdGFnZVBhZGRpbmcoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRkZWxldGUgc2V0dGluZ3MucmVzcG9uc2l2ZTtcclxuXHJcblx0XHRcdC8vIHJlc3BvbnNpdmUgY2xhc3NcclxuXHRcdFx0aWYgKHNldHRpbmdzLnJlc3BvbnNpdmVDbGFzcykge1xyXG5cdFx0XHRcdHRoaXMuJGVsZW1lbnQuYXR0cignY2xhc3MnLFxyXG5cdFx0XHRcdFx0dGhpcy4kZWxlbWVudC5hdHRyKCdjbGFzcycpLnJlcGxhY2UobmV3IFJlZ0V4cCgnKCcgKyB0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZUNsYXNzICsgJy0pXFxcXFMrXFxcXHMnLCAnZycpLCAnJDEnICsgbWF0Y2gpXHJcblx0XHRcdFx0KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudHJpZ2dlcignY2hhbmdlJywgeyBwcm9wZXJ0eTogeyBuYW1lOiAnc2V0dGluZ3MnLCB2YWx1ZTogc2V0dGluZ3MgfSB9KTtcclxuXHRcdHRoaXMuX2JyZWFrcG9pbnQgPSBtYXRjaDtcclxuXHRcdHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncztcclxuXHRcdHRoaXMuaW52YWxpZGF0ZSgnc2V0dGluZ3MnKTtcclxuXHRcdHRoaXMudHJpZ2dlcignY2hhbmdlZCcsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3NldHRpbmdzJywgdmFsdWU6IHRoaXMuc2V0dGluZ3MgfSB9KTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGVzIG9wdGlvbiBsb2dpYyBpZiBuZWNlc3NlcnkuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUub3B0aW9uc0xvZ2ljID0gZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy5hdXRvV2lkdGgpIHtcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5zZXR0aW5ncy5tZXJnZSA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByZXBhcmVzIGFuIGl0ZW0gYmVmb3JlIGFkZC5cclxuXHQgKiBAdG9kbyBSZW5hbWUgZXZlbnQgcGFyYW1ldGVyIGBjb250ZW50YCB0byBgaXRlbWAuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEByZXR1cm5zIHtqUXVlcnl8SFRNTEVsZW1lbnR9IC0gVGhlIGl0ZW0gY29udGFpbmVyLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucHJlcGFyZSA9IGZ1bmN0aW9uKGl0ZW0pIHtcclxuXHRcdHZhciBldmVudCA9IHRoaXMudHJpZ2dlcigncHJlcGFyZScsIHsgY29udGVudDogaXRlbSB9KTtcclxuXHJcblx0XHRpZiAoIWV2ZW50LmRhdGEpIHtcclxuXHRcdFx0ZXZlbnQuZGF0YSA9ICQoJzwnICsgdGhpcy5zZXR0aW5ncy5pdGVtRWxlbWVudCArICcvPicpXHJcblx0XHRcdFx0LmFkZENsYXNzKHRoaXMub3B0aW9ucy5pdGVtQ2xhc3MpLmFwcGVuZChpdGVtKVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudHJpZ2dlcigncHJlcGFyZWQnLCB7IGNvbnRlbnQ6IGV2ZW50LmRhdGEgfSk7XHJcblxyXG5cdFx0cmV0dXJuIGV2ZW50LmRhdGE7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogVXBkYXRlcyB0aGUgdmlldy5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBpID0gMCxcclxuXHRcdFx0biA9IHRoaXMuX3BpcGUubGVuZ3RoLFxyXG5cdFx0XHRmaWx0ZXIgPSAkLnByb3h5KGZ1bmN0aW9uKHApIHsgcmV0dXJuIHRoaXNbcF0gfSwgdGhpcy5faW52YWxpZGF0ZWQpLFxyXG5cdFx0XHRjYWNoZSA9IHt9O1xyXG5cclxuXHRcdHdoaWxlIChpIDwgbikge1xyXG5cdFx0XHRpZiAodGhpcy5faW52YWxpZGF0ZWQuYWxsIHx8ICQuZ3JlcCh0aGlzLl9waXBlW2ldLmZpbHRlciwgZmlsdGVyKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0dGhpcy5fcGlwZVtpXS5ydW4oY2FjaGUpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGkrKztcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl9pbnZhbGlkYXRlZCA9IHt9O1xyXG5cclxuXHRcdCF0aGlzLmlzKCd2YWxpZCcpICYmIHRoaXMuZW50ZXIoJ3ZhbGlkJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyB0aGUgd2lkdGggb2YgdGhlIHZpZXcuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7T3dsLldpZHRofSBbZGltZW5zaW9uPU93bC5XaWR0aC5EZWZhdWx0XSAtIFRoZSBkaW1lbnNpb24gdG8gcmV0dXJuLlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIHdpZHRoIG9mIHRoZSB2aWV3IGluIHBpeGVsLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUud2lkdGggPSBmdW5jdGlvbihkaW1lbnNpb24pIHtcclxuXHRcdGRpbWVuc2lvbiA9IGRpbWVuc2lvbiB8fCBPd2wuV2lkdGguRGVmYXVsdDtcclxuXHRcdHN3aXRjaCAoZGltZW5zaW9uKSB7XHJcblx0XHRcdGNhc2UgT3dsLldpZHRoLklubmVyOlxyXG5cdFx0XHRjYXNlIE93bC5XaWR0aC5PdXRlcjpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5fd2lkdGg7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuX3dpZHRoIC0gdGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcgKiAyICsgdGhpcy5zZXR0aW5ncy5tYXJnaW47XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVmcmVzaGVzIHRoZSBjYXJvdXNlbCBwcmltYXJpbHkgZm9yIGFkYXB0aXZlIHB1cnBvc2VzLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbigpIHtcclxuXHRcdHRoaXMuZW50ZXIoJ3JlZnJlc2hpbmcnKTtcclxuXHRcdHRoaXMudHJpZ2dlcigncmVmcmVzaCcpO1xyXG5cclxuXHRcdHRoaXMuc2V0dXAoKTtcclxuXHJcblx0XHR0aGlzLm9wdGlvbnNMb2dpYygpO1xyXG5cclxuXHRcdHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcyk7XHJcblxyXG5cdFx0dGhpcy51cGRhdGUoKTtcclxuXHJcblx0XHR0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpO1xyXG5cclxuXHRcdHRoaXMubGVhdmUoJ3JlZnJlc2hpbmcnKTtcclxuXHRcdHRoaXMudHJpZ2dlcigncmVmcmVzaGVkJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzIHdpbmRvdyBgcmVzaXplYCBldmVudC5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5vblRocm90dGxlZFJlc2l6ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0d2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcclxuXHRcdHRoaXMucmVzaXplVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLl9oYW5kbGVycy5vblJlc2l6ZSwgdGhpcy5zZXR0aW5ncy5yZXNwb25zaXZlUmVmcmVzaFJhdGUpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrcyB3aW5kb3cgYHJlc2l6ZWAgZXZlbnQuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUub25SZXNpemUgPSBmdW5jdGlvbigpIHtcclxuXHRcdGlmICghdGhpcy5faXRlbXMubGVuZ3RoKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5fd2lkdGggPT09IHRoaXMuJGVsZW1lbnQud2lkdGgoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmVudGVyKCdyZXNpemluZycpO1xyXG5cclxuXHRcdGlmICh0aGlzLnRyaWdnZXIoJ3Jlc2l6ZScpLmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7XHJcblx0XHRcdHRoaXMubGVhdmUoJ3Jlc2l6aW5nJyk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmludmFsaWRhdGUoJ3dpZHRoJyk7XHJcblxyXG5cdFx0dGhpcy5yZWZyZXNoKCk7XHJcblxyXG5cdFx0dGhpcy5sZWF2ZSgncmVzaXppbmcnKTtcclxuXHRcdHRoaXMudHJpZ2dlcigncmVzaXplZCcpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlZ2lzdGVycyBldmVudCBoYW5kbGVycy5cclxuXHQgKiBAdG9kbyBDaGVjayBgbXNQb2ludGVyRW5hYmxlZGBcclxuXHQgKiBAdG9kbyAjMjYxXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucmVnaXN0ZXJFdmVudEhhbmRsZXJzID0gZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAoJC5zdXBwb3J0LnRyYW5zaXRpb24pIHtcclxuXHRcdFx0dGhpcy4kc3RhZ2Uub24oJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kICsgJy5vd2wuY29yZScsICQucHJveHkodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMpKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy5yZXNwb25zaXZlICE9PSBmYWxzZSkge1xyXG5cdFx0XHR0aGlzLm9uKHdpbmRvdywgJ3Jlc2l6ZScsIHRoaXMuX2hhbmRsZXJzLm9uVGhyb3R0bGVkUmVzaXplKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy5tb3VzZURyYWcpIHtcclxuXHRcdFx0dGhpcy4kZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuZHJhZ0NsYXNzKTtcclxuXHRcdFx0dGhpcy4kc3RhZ2Uub24oJ21vdXNlZG93bi5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpO1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5vbignZHJhZ3N0YXJ0Lm93bC5jb3JlIHNlbGVjdHN0YXJ0Lm93bC5jb3JlJywgZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy50b3VjaERyYWcpe1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5vbigndG91Y2hzdGFydC5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpO1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5vbigndG91Y2hjYW5jZWwub3dsLmNvcmUnLCAkLnByb3h5KHRoaXMub25EcmFnRW5kLCB0aGlzKSk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyBgdG91Y2hzdGFydGAgYW5kIGBtb3VzZWRvd25gIGV2ZW50cy5cclxuXHQgKiBAdG9kbyBIb3Jpem9udGFsIHN3aXBlIHRocmVzaG9sZCBhcyBvcHRpb25cclxuXHQgKiBAdG9kbyAjMjYxXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLm9uRHJhZ1N0YXJ0ID0gZnVuY3Rpb24oZXZlbnQpIHtcclxuXHRcdHZhciBzdGFnZSA9IG51bGw7XHJcblxyXG5cdFx0aWYgKGV2ZW50LndoaWNoID09PSAzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoJC5zdXBwb3J0LnRyYW5zZm9ybSkge1xyXG5cdFx0XHRzdGFnZSA9IHRoaXMuJHN0YWdlLmNzcygndHJhbnNmb3JtJykucmVwbGFjZSgvLipcXCh8XFwpfCAvZywgJycpLnNwbGl0KCcsJyk7XHJcblx0XHRcdHN0YWdlID0ge1xyXG5cdFx0XHRcdHg6IHN0YWdlW3N0YWdlLmxlbmd0aCA9PT0gMTYgPyAxMiA6IDRdLFxyXG5cdFx0XHRcdHk6IHN0YWdlW3N0YWdlLmxlbmd0aCA9PT0gMTYgPyAxMyA6IDVdXHJcblx0XHRcdH07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzdGFnZSA9IHRoaXMuJHN0YWdlLnBvc2l0aW9uKCk7XHJcblx0XHRcdHN0YWdlID0ge1xyXG5cdFx0XHRcdHg6IHRoaXMuc2V0dGluZ3MucnRsID9cclxuXHRcdFx0XHRcdHN0YWdlLmxlZnQgKyB0aGlzLiRzdGFnZS53aWR0aCgpIC0gdGhpcy53aWR0aCgpICsgdGhpcy5zZXR0aW5ncy5tYXJnaW4gOlxyXG5cdFx0XHRcdFx0c3RhZ2UubGVmdCxcclxuXHRcdFx0XHR5OiBzdGFnZS50b3BcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pcygnYW5pbWF0aW5nJykpIHtcclxuXHRcdFx0JC5zdXBwb3J0LnRyYW5zZm9ybSA/IHRoaXMuYW5pbWF0ZShzdGFnZS54KSA6IHRoaXMuJHN0YWdlLnN0b3AoKVxyXG5cdFx0XHR0aGlzLmludmFsaWRhdGUoJ3Bvc2l0aW9uJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLm9wdGlvbnMuZ3JhYkNsYXNzLCBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyk7XHJcblxyXG5cdFx0dGhpcy5zcGVlZCgwKTtcclxuXHJcblx0XHR0aGlzLl9kcmFnLnRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuXHRcdHRoaXMuX2RyYWcudGFyZ2V0ID0gJChldmVudC50YXJnZXQpO1xyXG5cdFx0dGhpcy5fZHJhZy5zdGFnZS5zdGFydCA9IHN0YWdlO1xyXG5cdFx0dGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50ID0gc3RhZ2U7XHJcblx0XHR0aGlzLl9kcmFnLnBvaW50ZXIgPSB0aGlzLnBvaW50ZXIoZXZlbnQpO1xyXG5cclxuXHRcdCQoZG9jdW1lbnQpLm9uKCdtb3VzZXVwLm93bC5jb3JlIHRvdWNoZW5kLm93bC5jb3JlJywgJC5wcm94eSh0aGlzLm9uRHJhZ0VuZCwgdGhpcykpO1xyXG5cclxuXHRcdCQoZG9jdW1lbnQpLm9uZSgnbW91c2Vtb3ZlLm93bC5jb3JlIHRvdWNobW92ZS5vd2wuY29yZScsICQucHJveHkoZnVuY3Rpb24oZXZlbnQpIHtcclxuXHRcdFx0dmFyIGRlbHRhID0gdGhpcy5kaWZmZXJlbmNlKHRoaXMuX2RyYWcucG9pbnRlciwgdGhpcy5wb2ludGVyKGV2ZW50KSk7XHJcblxyXG5cdFx0XHQkKGRvY3VtZW50KS5vbignbW91c2Vtb3ZlLm93bC5jb3JlIHRvdWNobW92ZS5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdNb3ZlLCB0aGlzKSk7XHJcblxyXG5cdFx0XHRpZiAoTWF0aC5hYnMoZGVsdGEueCkgPCBNYXRoLmFicyhkZWx0YS55KSAmJiB0aGlzLmlzKCd2YWxpZCcpKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdFx0dGhpcy5lbnRlcignZHJhZ2dpbmcnKTtcclxuXHRcdFx0dGhpcy50cmlnZ2VyKCdkcmFnJyk7XHJcblx0XHR9LCB0aGlzKSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyB0aGUgYHRvdWNobW92ZWAgYW5kIGBtb3VzZW1vdmVgIGV2ZW50cy5cclxuXHQgKiBAdG9kbyAjMjYxXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLm9uRHJhZ01vdmUgPSBmdW5jdGlvbihldmVudCkge1xyXG5cdFx0dmFyIG1pbmltdW0gPSBudWxsLFxyXG5cdFx0XHRtYXhpbXVtID0gbnVsbCxcclxuXHRcdFx0cHVsbCA9IG51bGwsXHJcblx0XHRcdGRlbHRhID0gdGhpcy5kaWZmZXJlbmNlKHRoaXMuX2RyYWcucG9pbnRlciwgdGhpcy5wb2ludGVyKGV2ZW50KSksXHJcblx0XHRcdHN0YWdlID0gdGhpcy5kaWZmZXJlbmNlKHRoaXMuX2RyYWcuc3RhZ2Uuc3RhcnQsIGRlbHRhKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuaXMoJ2RyYWdnaW5nJykpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuc2V0dGluZ3MubG9vcCkge1xyXG5cdFx0XHRtaW5pbXVtID0gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1pbmltdW0oKSk7XHJcblx0XHRcdG1heGltdW0gPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWF4aW11bSgpICsgMSkgLSBtaW5pbXVtO1xyXG5cdFx0XHRzdGFnZS54ID0gKCgoc3RhZ2UueCAtIG1pbmltdW0pICUgbWF4aW11bSArIG1heGltdW0pICUgbWF4aW11bSkgKyBtaW5pbXVtO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0bWluaW11bSA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKTtcclxuXHRcdFx0bWF4aW11bSA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1pbmltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWF4aW11bSgpKTtcclxuXHRcdFx0cHVsbCA9IHRoaXMuc2V0dGluZ3MucHVsbERyYWcgPyAtMSAqIGRlbHRhLnggLyA1IDogMDtcclxuXHRcdFx0c3RhZ2UueCA9IE1hdGgubWF4KE1hdGgubWluKHN0YWdlLngsIG1pbmltdW0gKyBwdWxsKSwgbWF4aW11bSArIHB1bGwpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2RyYWcuc3RhZ2UuY3VycmVudCA9IHN0YWdlO1xyXG5cclxuXHRcdHRoaXMuYW5pbWF0ZShzdGFnZS54KTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIHRoZSBgdG91Y2hlbmRgIGFuZCBgbW91c2V1cGAgZXZlbnRzLlxyXG5cdCAqIEB0b2RvICMyNjFcclxuXHQgKiBAdG9kbyBUaHJlc2hvbGQgZm9yIGNsaWNrIGV2ZW50XHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLm9uRHJhZ0VuZCA9IGZ1bmN0aW9uKGV2ZW50KSB7XHJcblx0XHR2YXIgZGVsdGEgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5wb2ludGVyLCB0aGlzLnBvaW50ZXIoZXZlbnQpKSxcclxuXHRcdFx0c3RhZ2UgPSB0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQsXHJcblx0XHRcdGRpcmVjdGlvbiA9IGRlbHRhLnggPiAwIF4gdGhpcy5zZXR0aW5ncy5ydGwgPyAnbGVmdCcgOiAncmlnaHQnO1xyXG5cclxuXHRcdCQoZG9jdW1lbnQpLm9mZignLm93bC5jb3JlJyk7XHJcblxyXG5cdFx0dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZ3JhYkNsYXNzKTtcclxuXHJcblx0XHRpZiAoZGVsdGEueCAhPT0gMCAmJiB0aGlzLmlzKCdkcmFnZ2luZycpIHx8ICF0aGlzLmlzKCd2YWxpZCcpKSB7XHJcblx0XHRcdHRoaXMuc3BlZWQodGhpcy5zZXR0aW5ncy5kcmFnRW5kU3BlZWQgfHwgdGhpcy5zZXR0aW5ncy5zbWFydFNwZWVkKTtcclxuXHRcdFx0dGhpcy5jdXJyZW50KHRoaXMuY2xvc2VzdChzdGFnZS54LCBkZWx0YS54ICE9PSAwID8gZGlyZWN0aW9uIDogdGhpcy5fZHJhZy5kaXJlY3Rpb24pKTtcclxuXHRcdFx0dGhpcy5pbnZhbGlkYXRlKCdwb3NpdGlvbicpO1xyXG5cdFx0XHR0aGlzLnVwZGF0ZSgpO1xyXG5cclxuXHRcdFx0dGhpcy5fZHJhZy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XHJcblxyXG5cdFx0XHRpZiAoTWF0aC5hYnMoZGVsdGEueCkgPiAzIHx8IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGhpcy5fZHJhZy50aW1lID4gMzAwKSB7XHJcblx0XHRcdFx0dGhpcy5fZHJhZy50YXJnZXQub25lKCdjbGljay5vd2wuY29yZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLmlzKCdkcmFnZ2luZycpKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmxlYXZlKCdkcmFnZ2luZycpO1xyXG5cdFx0dGhpcy50cmlnZ2VyKCdkcmFnZ2VkJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY2xvc2VzdCBpdGVtIGZvciBhIGNvb3JkaW5hdGUuXHJcblx0ICogQHRvZG8gU2V0dGluZyBgZnJlZURyYWdgIG1ha2VzIGBjbG9zZXN0YCBub3QgcmV1c2FibGUuIFNlZSAjMTY1LlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gY29vcmRpbmF0ZSAtIFRoZSBjb29yZGluYXRlIGluIHBpeGVsLlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBkaXJlY3Rpb24gLSBUaGUgZGlyZWN0aW9uIHRvIGNoZWNrIGZvciB0aGUgY2xvc2VzdCBpdGVtLiBFdGhlciBgbGVmdGAgb3IgYHJpZ2h0YC5cclxuXHQgKiBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjbG9zZXN0IGl0ZW0uXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5jbG9zZXN0ID0gZnVuY3Rpb24oY29vcmRpbmF0ZSwgZGlyZWN0aW9uKSB7XHJcblx0XHR2YXIgcG9zaXRpb24gPSAtMSxcclxuXHRcdFx0cHVsbCA9IDMwLFxyXG5cdFx0XHR3aWR0aCA9IHRoaXMud2lkdGgoKSxcclxuXHRcdFx0Y29vcmRpbmF0ZXMgPSB0aGlzLmNvb3JkaW5hdGVzKCk7XHJcblxyXG5cdFx0aWYgKCF0aGlzLnNldHRpbmdzLmZyZWVEcmFnKSB7XHJcblx0XHRcdC8vIGNoZWNrIGNsb3Nlc3QgaXRlbVxyXG5cdFx0XHQkLmVhY2goY29vcmRpbmF0ZXMsICQucHJveHkoZnVuY3Rpb24oaW5kZXgsIHZhbHVlKSB7XHJcblx0XHRcdFx0Ly8gb24gYSBsZWZ0IHB1bGwsIGNoZWNrIG9uIGN1cnJlbnQgaW5kZXhcclxuXHRcdFx0XHRpZiAoZGlyZWN0aW9uID09PSAnbGVmdCcgJiYgY29vcmRpbmF0ZSA+IHZhbHVlIC0gcHVsbCAmJiBjb29yZGluYXRlIDwgdmFsdWUgKyBwdWxsKSB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbiA9IGluZGV4O1xyXG5cdFx0XHRcdC8vIG9uIGEgcmlnaHQgcHVsbCwgY2hlY2sgb24gcHJldmlvdXMgaW5kZXhcclxuXHRcdFx0XHQvLyB0byBkbyBzbywgc3VidHJhY3Qgd2lkdGggZnJvbSB2YWx1ZSBhbmQgc2V0IHBvc2l0aW9uID0gaW5kZXggKyAxXHJcblx0XHRcdFx0fSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgY29vcmRpbmF0ZSA+IHZhbHVlIC0gd2lkdGggLSBwdWxsICYmIGNvb3JkaW5hdGUgPCB2YWx1ZSAtIHdpZHRoICsgcHVsbCkge1xyXG5cdFx0XHRcdFx0cG9zaXRpb24gPSBpbmRleCArIDE7XHJcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLm9wKGNvb3JkaW5hdGUsICc8JywgdmFsdWUpXHJcblx0XHRcdFx0XHQmJiB0aGlzLm9wKGNvb3JkaW5hdGUsICc+JywgY29vcmRpbmF0ZXNbaW5kZXggKyAxXSB8fCB2YWx1ZSAtIHdpZHRoKSkge1xyXG5cdFx0XHRcdFx0cG9zaXRpb24gPSBkaXJlY3Rpb24gPT09ICdsZWZ0JyA/IGluZGV4ICsgMSA6IGluZGV4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcG9zaXRpb24gPT09IC0xO1xyXG5cdFx0XHR9LCB0aGlzKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLnNldHRpbmdzLmxvb3ApIHtcclxuXHRcdFx0Ly8gbm9uIGxvb3AgYm91bmRyaWVzXHJcblx0XHRcdGlmICh0aGlzLm9wKGNvb3JkaW5hdGUsICc+JywgY29vcmRpbmF0ZXNbdGhpcy5taW5pbXVtKCldKSkge1xyXG5cdFx0XHRcdHBvc2l0aW9uID0gY29vcmRpbmF0ZSA9IHRoaXMubWluaW11bSgpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHRoaXMub3AoY29vcmRpbmF0ZSwgJzwnLCBjb29yZGluYXRlc1t0aGlzLm1heGltdW0oKV0pKSB7XHJcblx0XHRcdFx0cG9zaXRpb24gPSBjb29yZGluYXRlID0gdGhpcy5tYXhpbXVtKCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcG9zaXRpb247XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQW5pbWF0ZXMgdGhlIHN0YWdlLlxyXG5cdCAqIEB0b2RvICMyNzBcclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IGNvb3JkaW5hdGUgLSBUaGUgY29vcmRpbmF0ZSBpbiBwaXhlbHMuXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5hbmltYXRlID0gZnVuY3Rpb24oY29vcmRpbmF0ZSkge1xyXG5cdFx0dmFyIGFuaW1hdGUgPSB0aGlzLnNwZWVkKCkgPiAwO1xyXG5cclxuXHRcdHRoaXMuaXMoJ2FuaW1hdGluZycpICYmIHRoaXMub25UcmFuc2l0aW9uRW5kKCk7XHJcblxyXG5cdFx0aWYgKGFuaW1hdGUpIHtcclxuXHRcdFx0dGhpcy5lbnRlcignYW5pbWF0aW5nJyk7XHJcblx0XHRcdHRoaXMudHJpZ2dlcigndHJhbnNsYXRlJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCQuc3VwcG9ydC50cmFuc2Zvcm0zZCAmJiAkLnN1cHBvcnQudHJhbnNpdGlvbikge1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5jc3Moe1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKCcgKyBjb29yZGluYXRlICsgJ3B4LDBweCwwcHgpJyxcclxuXHRcdFx0XHR0cmFuc2l0aW9uOiAodGhpcy5zcGVlZCgpIC8gMTAwMCkgKyAncydcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2UgaWYgKGFuaW1hdGUpIHtcclxuXHRcdFx0dGhpcy4kc3RhZ2UuYW5pbWF0ZSh7XHJcblx0XHRcdFx0bGVmdDogY29vcmRpbmF0ZSArICdweCdcclxuXHRcdFx0fSwgdGhpcy5zcGVlZCgpLCB0aGlzLnNldHRpbmdzLmZhbGxiYWNrRWFzaW5nLCAkLnByb3h5KHRoaXMub25UcmFuc2l0aW9uRW5kLCB0aGlzKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5jc3Moe1xyXG5cdFx0XHRcdGxlZnQ6IGNvb3JkaW5hdGUgKyAncHgnXHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrcyB3aGV0aGVyIHRoZSBjYXJvdXNlbCBpcyBpbiBhIHNwZWNpZmljIHN0YXRlIG9yIG5vdC5cclxuXHQgKiBAcGFyYW0ge1N0cmluZ30gc3RhdGUgLSBUaGUgc3RhdGUgdG8gY2hlY2suXHJcblx0ICogQHJldHVybnMge0Jvb2xlYW59IC0gVGhlIGZsYWcgd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSBjYXJvdXNlbCBpcyBidXN5LlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuaXMgPSBmdW5jdGlvbihzdGF0ZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50W3N0YXRlXSAmJiB0aGlzLl9zdGF0ZXMuY3VycmVudFtzdGF0ZV0gPiAwO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGl0ZW0uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb25dIC0gVGhlIG5ldyBhYnNvbHV0ZSBwb3NpdGlvbiBvciBub3RoaW5nIHRvIGxlYXZlIGl0IHVuY2hhbmdlZC5cclxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpdGVtLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuY3VycmVudCA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7XHJcblx0XHRpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5fY3VycmVudDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbik7XHJcblxyXG5cdFx0aWYgKHRoaXMuX2N1cnJlbnQgIT09IHBvc2l0aW9uKSB7XHJcblx0XHRcdHZhciBldmVudCA9IHRoaXMudHJpZ2dlcignY2hhbmdlJywgeyBwcm9wZXJ0eTogeyBuYW1lOiAncG9zaXRpb24nLCB2YWx1ZTogcG9zaXRpb24gfSB9KTtcclxuXHJcblx0XHRcdGlmIChldmVudC5kYXRhICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRwb3NpdGlvbiA9IHRoaXMubm9ybWFsaXplKGV2ZW50LmRhdGEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aGlzLl9jdXJyZW50ID0gcG9zaXRpb247XHJcblxyXG5cdFx0XHR0aGlzLmludmFsaWRhdGUoJ3Bvc2l0aW9uJyk7XHJcblxyXG5cdFx0XHR0aGlzLnRyaWdnZXIoJ2NoYW5nZWQnLCB7IHByb3BlcnR5OiB7IG5hbWU6ICdwb3NpdGlvbicsIHZhbHVlOiB0aGlzLl9jdXJyZW50IH0gfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuX2N1cnJlbnQ7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSW52YWxpZGF0ZXMgdGhlIGdpdmVuIHBhcnQgb2YgdGhlIHVwZGF0ZSByb3V0aW5lLlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbcGFydF0gLSBUaGUgcGFydCB0byBpbnZhbGlkYXRlLlxyXG5cdCAqIEByZXR1cm5zIHtBcnJheS48U3RyaW5nPn0gLSBUaGUgaW52YWxpZGF0ZWQgcGFydHMuXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5pbnZhbGlkYXRlID0gZnVuY3Rpb24ocGFydCkge1xyXG5cdFx0aWYgKCQudHlwZShwYXJ0KSA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0dGhpcy5faW52YWxpZGF0ZWRbcGFydF0gPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmlzKCd2YWxpZCcpICYmIHRoaXMubGVhdmUoJ3ZhbGlkJyk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gJC5tYXAodGhpcy5faW52YWxpZGF0ZWQsIGZ1bmN0aW9uKHYsIGkpIHsgcmV0dXJuIGkgfSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVzZXRzIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpdGVtLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIG5ldyBpdGVtLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbihwb3NpdGlvbikge1xyXG5cdFx0cG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbik7XHJcblxyXG5cdFx0aWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX3NwZWVkID0gMDtcclxuXHRcdHRoaXMuX2N1cnJlbnQgPSBwb3NpdGlvbjtcclxuXHJcblx0XHR0aGlzLnN1cHByZXNzKFsgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGVkJyBdKTtcclxuXHJcblx0XHR0aGlzLmFuaW1hdGUodGhpcy5jb29yZGluYXRlcyhwb3NpdGlvbikpO1xyXG5cclxuXHRcdHRoaXMucmVsZWFzZShbICd0cmFuc2xhdGUnLCAndHJhbnNsYXRlZCcgXSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogTm9ybWFsaXplcyBhbiBhYnNvbHV0ZSBvciBhIHJlbGF0aXZlIHBvc2l0aW9uIG9mIGFuIGl0ZW0uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwb3NpdGlvbiB0byBub3JtYWxpemUuXHJcblx0ICogQHBhcmFtIHtCb29sZWFufSBbcmVsYXRpdmU9ZmFsc2VdIC0gV2hldGhlciB0aGUgZ2l2ZW4gcG9zaXRpb24gaXMgcmVsYXRpdmUgb3Igbm90LlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIG5vcm1hbGl6ZWQgcG9zaXRpb24uXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5ub3JtYWxpemUgPSBmdW5jdGlvbihwb3NpdGlvbiwgcmVsYXRpdmUpIHtcclxuXHRcdHZhciBuID0gdGhpcy5faXRlbXMubGVuZ3RoLFxyXG5cdFx0XHRtID0gcmVsYXRpdmUgPyAwIDogdGhpcy5fY2xvbmVzLmxlbmd0aDtcclxuXHJcblx0XHRpZiAoIXRoaXMuaXNOdW1lcmljKHBvc2l0aW9uKSB8fCBuIDwgMSkge1xyXG5cdFx0XHRwb3NpdGlvbiA9IHVuZGVmaW5lZDtcclxuXHRcdH0gZWxzZSBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IG4gKyBtKSB7XHJcblx0XHRcdHBvc2l0aW9uID0gKChwb3NpdGlvbiAtIG0gLyAyKSAlIG4gKyBuKSAlIG4gKyBtIC8gMjtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcG9zaXRpb247XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydHMgYW4gYWJzb2x1dGUgcG9zaXRpb24gb2YgYW4gaXRlbSBpbnRvIGEgcmVsYXRpdmUgb25lLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb24gdG8gY29udmVydC5cclxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSBjb252ZXJ0ZWQgcG9zaXRpb24uXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5yZWxhdGl2ZSA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7XHJcblx0XHRwb3NpdGlvbiAtPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMjtcclxuXHRcdHJldHVybiB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbiwgdHJ1ZSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyB0aGUgbWF4aW11bSBwb3NpdGlvbiBmb3IgdGhlIGN1cnJlbnQgaXRlbS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtCb29sZWFufSBbcmVsYXRpdmU9ZmFsc2VdIC0gV2hldGhlciB0byByZXR1cm4gYW4gYWJzb2x1dGUgcG9zaXRpb24gb3IgYSByZWxhdGl2ZSBwb3NpdGlvbi5cclxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfVxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUubWF4aW11bSA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7XHJcblx0XHR2YXIgc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzLFxyXG5cdFx0XHRtYXhpbXVtID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoLFxyXG5cdFx0XHRpdGVyYXRvcixcclxuXHRcdFx0cmVjaXByb2NhbEl0ZW1zV2lkdGgsXHJcblx0XHRcdGVsZW1lbnRXaWR0aDtcclxuXHJcblx0XHRpZiAoc2V0dGluZ3MubG9vcCkge1xyXG5cdFx0XHRtYXhpbXVtID0gdGhpcy5fY2xvbmVzLmxlbmd0aCAvIDIgKyB0aGlzLl9pdGVtcy5sZW5ndGggLSAxO1xyXG5cdFx0fSBlbHNlIGlmIChzZXR0aW5ncy5hdXRvV2lkdGggfHwgc2V0dGluZ3MubWVyZ2UpIHtcclxuXHRcdFx0aXRlcmF0b3IgPSB0aGlzLl9pdGVtcy5sZW5ndGg7XHJcblx0XHRcdHJlY2lwcm9jYWxJdGVtc1dpZHRoID0gdGhpcy5faXRlbXNbLS1pdGVyYXRvcl0ud2lkdGgoKTtcclxuXHRcdFx0ZWxlbWVudFdpZHRoID0gdGhpcy4kZWxlbWVudC53aWR0aCgpO1xyXG5cdFx0XHR3aGlsZSAoaXRlcmF0b3ItLSkge1xyXG5cdFx0XHRcdHJlY2lwcm9jYWxJdGVtc1dpZHRoICs9IHRoaXMuX2l0ZW1zW2l0ZXJhdG9yXS53aWR0aCgpICsgdGhpcy5zZXR0aW5ncy5tYXJnaW47XHJcblx0XHRcdFx0aWYgKHJlY2lwcm9jYWxJdGVtc1dpZHRoID4gZWxlbWVudFdpZHRoKSB7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0bWF4aW11bSA9IGl0ZXJhdG9yICsgMTtcclxuXHRcdH0gZWxzZSBpZiAoc2V0dGluZ3MuY2VudGVyKSB7XHJcblx0XHRcdG1heGltdW0gPSB0aGlzLl9pdGVtcy5sZW5ndGggLSAxO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0bWF4aW11bSA9IHRoaXMuX2l0ZW1zLmxlbmd0aCAtIHNldHRpbmdzLml0ZW1zO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChyZWxhdGl2ZSkge1xyXG5cdFx0XHRtYXhpbXVtIC09IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBNYXRoLm1heChtYXhpbXVtLCAwKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBtaW5pbXVtIHBvc2l0aW9uIGZvciB0aGUgY3VycmVudCBpdGVtLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWxhdGl2ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHJldHVybiBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvciBhIHJlbGF0aXZlIHBvc2l0aW9uLlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9XHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5taW5pbXVtID0gZnVuY3Rpb24ocmVsYXRpdmUpIHtcclxuXHRcdHJldHVybiByZWxhdGl2ZSA/IDAgOiB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMjtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIGFuIGl0ZW0gYXQgdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwb3NpdGlvbi5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtwb3NpdGlvbl0gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGl0ZW0uXHJcblx0ICogQHJldHVybiB7alF1ZXJ5fEFycmF5LjxqUXVlcnk+fSAtIFRoZSBpdGVtIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBvciBhbGwgaXRlbXMgaWYgbm8gcG9zaXRpb24gd2FzIGdpdmVuLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuaXRlbXMgPSBmdW5jdGlvbihwb3NpdGlvbikge1xyXG5cdFx0aWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuX2l0ZW1zLnNsaWNlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbiwgdHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5faXRlbXNbcG9zaXRpb25dO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgYW4gaXRlbSBhdCB0aGUgc3BlY2lmaWVkIHJlbGF0aXZlIHBvc2l0aW9uLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uXSAtIFRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbS5cclxuXHQgKiBAcmV0dXJuIHtqUXVlcnl8QXJyYXkuPGpRdWVyeT59IC0gVGhlIGl0ZW0gYXQgdGhlIGdpdmVuIHBvc2l0aW9uIG9yIGFsbCBpdGVtcyBpZiBubyBwb3NpdGlvbiB3YXMgZ2l2ZW4uXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5tZXJnZXJzID0gZnVuY3Rpb24ocG9zaXRpb24pIHtcclxuXHRcdGlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLl9tZXJnZXJzLnNsaWNlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbiwgdHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5fbWVyZ2Vyc1twb3NpdGlvbl07XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyB0aGUgYWJzb2x1dGUgcG9zaXRpb25zIG9mIGNsb25lcyBmb3IgYW4gaXRlbS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtwb3NpdGlvbl0gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGl0ZW0uXHJcblx0ICogQHJldHVybnMge0FycmF5LjxOdW1iZXI+fSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbnMgb2YgY2xvbmVzIGZvciB0aGUgaXRlbSBvciBhbGwgaWYgbm8gcG9zaXRpb24gd2FzIGdpdmVuLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuY2xvbmVzID0gZnVuY3Rpb24ocG9zaXRpb24pIHtcclxuXHRcdHZhciBvZGQgPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMixcclxuXHRcdFx0ZXZlbiA9IG9kZCArIHRoaXMuX2l0ZW1zLmxlbmd0aCxcclxuXHRcdFx0bWFwID0gZnVuY3Rpb24oaW5kZXgpIHsgcmV0dXJuIGluZGV4ICUgMiA9PT0gMCA/IGV2ZW4gKyBpbmRleCAvIDIgOiBvZGQgLSAoaW5kZXggKyAxKSAvIDIgfTtcclxuXHJcblx0XHRpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gJC5tYXAodGhpcy5fY2xvbmVzLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiBtYXAoaSkgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICQubWFwKHRoaXMuX2Nsb25lcywgZnVuY3Rpb24odiwgaSkgeyByZXR1cm4gdiA9PT0gcG9zaXRpb24gPyBtYXAoaSkgOiBudWxsIH0pO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIHNwZWVkLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgaW4gbWlsbGlzZWNvbmRzIG9yIG5vdGhpbmcgdG8gbGVhdmUgaXQgdW5jaGFuZ2VkLlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIGN1cnJlbnQgYW5pbWF0aW9uIHNwZWVkIGluIG1pbGxpc2Vjb25kcy5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnNwZWVkID0gZnVuY3Rpb24oc3BlZWQpIHtcclxuXHRcdGlmIChzcGVlZCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHRoaXMuX3NwZWVkID0gc3BlZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuX3NwZWVkO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgdGhlIGNvb3JkaW5hdGUgb2YgYW4gaXRlbS5cclxuXHQgKiBAdG9kbyBUaGUgbmFtZSBvZiB0aGlzIG1ldGhvZCBpcyBtaXNzbGVhbmRpbmcuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbSB3aXRoaW4gYG1pbmltdW0oKWAgYW5kIGBtYXhpbXVtKClgLlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ8QXJyYXkuPE51bWJlcj59IC0gVGhlIGNvb3JkaW5hdGUgb2YgdGhlIGl0ZW0gaW4gcGl4ZWwgb3IgYWxsIGNvb3JkaW5hdGVzLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuY29vcmRpbmF0ZXMgPSBmdW5jdGlvbihwb3NpdGlvbikge1xyXG5cdFx0dmFyIG11bHRpcGxpZXIgPSAxLFxyXG5cdFx0XHRuZXdQb3NpdGlvbiA9IHBvc2l0aW9uIC0gMSxcclxuXHRcdFx0Y29vcmRpbmF0ZTtcclxuXHJcblx0XHRpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gJC5tYXAodGhpcy5fY29vcmRpbmF0ZXMsICQucHJveHkoZnVuY3Rpb24oY29vcmRpbmF0ZSwgaW5kZXgpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb29yZGluYXRlcyhpbmRleCk7XHJcblx0XHRcdH0sIHRoaXMpKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zZXR0aW5ncy5jZW50ZXIpIHtcclxuXHRcdFx0aWYgKHRoaXMuc2V0dGluZ3MucnRsKSB7XHJcblx0XHRcdFx0bXVsdGlwbGllciA9IC0xO1xyXG5cdFx0XHRcdG5ld1Bvc2l0aW9uID0gcG9zaXRpb24gKyAxO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb29yZGluYXRlID0gdGhpcy5fY29vcmRpbmF0ZXNbcG9zaXRpb25dO1xyXG5cdFx0XHRjb29yZGluYXRlICs9ICh0aGlzLndpZHRoKCkgLSBjb29yZGluYXRlICsgKHRoaXMuX2Nvb3JkaW5hdGVzW25ld1Bvc2l0aW9uXSB8fCAwKSkgLyAyICogbXVsdGlwbGllcjtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvb3JkaW5hdGUgPSB0aGlzLl9jb29yZGluYXRlc1tuZXdQb3NpdGlvbl0gfHwgMDtcclxuXHRcdH1cclxuXHJcblx0XHRjb29yZGluYXRlID0gTWF0aC5jZWlsKGNvb3JkaW5hdGUpO1xyXG5cclxuXHRcdHJldHVybiBjb29yZGluYXRlO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIENhbGN1bGF0ZXMgdGhlIHNwZWVkIGZvciBhIHRyYW5zbGF0aW9uLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gZnJvbSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgaXRlbS5cclxuXHQgKiBAcGFyYW0ge051bWJlcn0gdG8gLSBUaGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtLlxyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBbZmFjdG9yPXVuZGVmaW5lZF0gLSBUaGUgdGltZSBmYWN0b3IgaW4gbWlsbGlzZWNvbmRzLlxyXG5cdCAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNsYXRpb24uXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5kdXJhdGlvbiA9IGZ1bmN0aW9uKGZyb20sIHRvLCBmYWN0b3IpIHtcclxuXHRcdGlmIChmYWN0b3IgPT09IDApIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KE1hdGguYWJzKHRvIC0gZnJvbSksIDEpLCA2KSAqIE1hdGguYWJzKChmYWN0b3IgfHwgdGhpcy5zZXR0aW5ncy5zbWFydFNwZWVkKSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2xpZGVzIHRvIHRoZSBzcGVjaWZpZWQgaXRlbS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLlxyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWRdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnRvID0gZnVuY3Rpb24ocG9zaXRpb24sIHNwZWVkKSB7XHJcblx0XHR2YXIgY3VycmVudCA9IHRoaXMuY3VycmVudCgpLFxyXG5cdFx0XHRyZXZlcnQgPSBudWxsLFxyXG5cdFx0XHRkaXN0YW5jZSA9IHBvc2l0aW9uIC0gdGhpcy5yZWxhdGl2ZShjdXJyZW50KSxcclxuXHRcdFx0ZGlyZWN0aW9uID0gKGRpc3RhbmNlID4gMCkgLSAoZGlzdGFuY2UgPCAwKSxcclxuXHRcdFx0aXRlbXMgPSB0aGlzLl9pdGVtcy5sZW5ndGgsXHJcblx0XHRcdG1pbmltdW0gPSB0aGlzLm1pbmltdW0oKSxcclxuXHRcdFx0bWF4aW11bSA9IHRoaXMubWF4aW11bSgpO1xyXG5cclxuXHRcdGlmICh0aGlzLnNldHRpbmdzLmxvb3ApIHtcclxuXHRcdFx0aWYgKCF0aGlzLnNldHRpbmdzLnJld2luZCAmJiBNYXRoLmFicyhkaXN0YW5jZSkgPiBpdGVtcyAvIDIpIHtcclxuXHRcdFx0XHRkaXN0YW5jZSArPSBkaXJlY3Rpb24gKiAtMSAqIGl0ZW1zO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwb3NpdGlvbiA9IGN1cnJlbnQgKyBkaXN0YW5jZTtcclxuXHRcdFx0cmV2ZXJ0ID0gKChwb3NpdGlvbiAtIG1pbmltdW0pICUgaXRlbXMgKyBpdGVtcykgJSBpdGVtcyArIG1pbmltdW07XHJcblxyXG5cdFx0XHRpZiAocmV2ZXJ0ICE9PSBwb3NpdGlvbiAmJiByZXZlcnQgLSBkaXN0YW5jZSA8PSBtYXhpbXVtICYmIHJldmVydCAtIGRpc3RhbmNlID4gMCkge1xyXG5cdFx0XHRcdGN1cnJlbnQgPSByZXZlcnQgLSBkaXN0YW5jZTtcclxuXHRcdFx0XHRwb3NpdGlvbiA9IHJldmVydDtcclxuXHRcdFx0XHR0aGlzLnJlc2V0KGN1cnJlbnQpO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuc2V0dGluZ3MucmV3aW5kKSB7XHJcblx0XHRcdG1heGltdW0gKz0gMTtcclxuXHRcdFx0cG9zaXRpb24gPSAocG9zaXRpb24gJSBtYXhpbXVtICsgbWF4aW11bSkgJSBtYXhpbXVtO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cG9zaXRpb24gPSBNYXRoLm1heChtaW5pbXVtLCBNYXRoLm1pbihtYXhpbXVtLCBwb3NpdGlvbikpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3BlZWQodGhpcy5kdXJhdGlvbihjdXJyZW50LCBwb3NpdGlvbiwgc3BlZWQpKTtcclxuXHRcdHRoaXMuY3VycmVudChwb3NpdGlvbik7XHJcblxyXG5cdFx0aWYgKHRoaXMuJGVsZW1lbnQuaXMoJzp2aXNpYmxlJykpIHtcclxuXHRcdFx0dGhpcy51cGRhdGUoKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTbGlkZXMgdG8gdGhlIG5leHQgaXRlbS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZF0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHNwZWVkKSB7XHJcblx0XHRzcGVlZCA9IHNwZWVkIHx8IGZhbHNlO1xyXG5cdFx0dGhpcy50byh0aGlzLnJlbGF0aXZlKHRoaXMuY3VycmVudCgpKSArIDEsIHNwZWVkKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTbGlkZXMgdG8gdGhlIHByZXZpb3VzIGl0ZW0uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWRdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnByZXYgPSBmdW5jdGlvbihzcGVlZCkge1xyXG5cdFx0c3BlZWQgPSBzcGVlZCB8fCBmYWxzZTtcclxuXHRcdHRoaXMudG8odGhpcy5yZWxhdGl2ZSh0aGlzLmN1cnJlbnQoKSkgLSAxLCBzcGVlZCk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogSGFuZGxlcyB0aGUgZW5kIG9mIGFuIGFuaW1hdGlvbi5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUub25UcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24oZXZlbnQpIHtcclxuXHJcblx0XHQvLyBpZiBjc3MyIGFuaW1hdGlvbiB0aGVuIGV2ZW50IG9iamVjdCBpcyB1bmRlZmluZWRcclxuXHRcdGlmIChldmVudCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuXHRcdFx0Ly8gQ2F0Y2ggb25seSBvd2wtc3RhZ2UgdHJhbnNpdGlvbkVuZCBldmVudFxyXG5cdFx0XHRpZiAoKGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50IHx8IGV2ZW50Lm9yaWdpbmFsVGFyZ2V0KSAhPT0gdGhpcy4kc3RhZ2UuZ2V0KDApKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5sZWF2ZSgnYW5pbWF0aW5nJyk7XHJcblx0XHR0aGlzLnRyaWdnZXIoJ3RyYW5zbGF0ZWQnKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHZpZXdwb3J0IHdpZHRoLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIHdpZHRoIGluIHBpeGVsLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUudmlld3BvcnQgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciB3aWR0aDtcclxuXHRcdGlmICh0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZUJhc2VFbGVtZW50ICE9PSB3aW5kb3cpIHtcclxuXHRcdFx0d2lkdGggPSAkKHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQmFzZUVsZW1lbnQpLndpZHRoKCk7XHJcblx0XHR9IGVsc2UgaWYgKHdpbmRvdy5pbm5lcldpZHRoKSB7XHJcblx0XHRcdHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcblx0XHR9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpIHtcclxuXHRcdFx0d2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ0NhbiBub3QgZGV0ZWN0IHZpZXdwb3J0IHdpZHRoLicpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHdpZHRoO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlcGxhY2VzIHRoZSBjdXJyZW50IGNvbnRlbnQuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8alF1ZXJ5fFN0cmluZ30gY29udGVudCAtIFRoZSBuZXcgY29udGVudC5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnJlcGxhY2UgPSBmdW5jdGlvbihjb250ZW50KSB7XHJcblx0XHR0aGlzLiRzdGFnZS5lbXB0eSgpO1xyXG5cdFx0dGhpcy5faXRlbXMgPSBbXTtcclxuXHJcblx0XHRpZiAoY29udGVudCkge1xyXG5cdFx0XHRjb250ZW50ID0gKGNvbnRlbnQgaW5zdGFuY2VvZiBqUXVlcnkpID8gY29udGVudCA6ICQoY29udGVudCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuc2V0dGluZ3MubmVzdGVkSXRlbVNlbGVjdG9yKSB7XHJcblx0XHRcdGNvbnRlbnQgPSBjb250ZW50LmZpbmQoJy4nICsgdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnRlbnQuZmlsdGVyKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5ub2RlVHlwZSA9PT0gMTtcclxuXHRcdH0pLmVhY2goJC5wcm94eShmdW5jdGlvbihpbmRleCwgaXRlbSkge1xyXG5cdFx0XHRpdGVtID0gdGhpcy5wcmVwYXJlKGl0ZW0pO1xyXG5cdFx0XHR0aGlzLiRzdGFnZS5hcHBlbmQoaXRlbSk7XHJcblx0XHRcdHRoaXMuX2l0ZW1zLnB1c2goaXRlbSk7XHJcblx0XHRcdHRoaXMuX21lcmdlcnMucHVzaChpdGVtLmZpbmQoJ1tkYXRhLW1lcmdlXScpLmFkZEJhY2soJ1tkYXRhLW1lcmdlXScpLmF0dHIoJ2RhdGEtbWVyZ2UnKSAqIDEgfHwgMSk7XHJcblx0XHR9LCB0aGlzKSk7XHJcblxyXG5cdFx0dGhpcy5yZXNldCh0aGlzLmlzTnVtZXJpYyh0aGlzLnNldHRpbmdzLnN0YXJ0UG9zaXRpb24pID8gdGhpcy5zZXR0aW5ncy5zdGFydFBvc2l0aW9uIDogMCk7XHJcblxyXG5cdFx0dGhpcy5pbnZhbGlkYXRlKCdpdGVtcycpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZHMgYW4gaXRlbS5cclxuXHQgKiBAdG9kbyBVc2UgYGl0ZW1gIGluc3RlYWQgb2YgYGNvbnRlbnRgIGZvciB0aGUgZXZlbnQgYXJndW1lbnRzLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge0hUTUxFbGVtZW50fGpRdWVyeXxTdHJpbmd9IGNvbnRlbnQgLSBUaGUgaXRlbSBjb250ZW50IHRvIGFkZC5cclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uXSAtIFRoZSByZWxhdGl2ZSBwb3NpdGlvbiBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGl0ZW0gb3RoZXJ3aXNlIHRoZSBpdGVtIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGVuZC5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKGNvbnRlbnQsIHBvc2l0aW9uKSB7XHJcblx0XHR2YXIgY3VycmVudCA9IHRoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCk7XHJcblxyXG5cdFx0cG9zaXRpb24gPSBwb3NpdGlvbiA9PT0gdW5kZWZpbmVkID8gdGhpcy5faXRlbXMubGVuZ3RoIDogdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpO1xyXG5cdFx0Y29udGVudCA9IGNvbnRlbnQgaW5zdGFuY2VvZiBqUXVlcnkgPyBjb250ZW50IDogJChjb250ZW50KTtcclxuXHJcblx0XHR0aGlzLnRyaWdnZXIoJ2FkZCcsIHsgY29udGVudDogY29udGVudCwgcG9zaXRpb246IHBvc2l0aW9uIH0pO1xyXG5cclxuXHRcdGNvbnRlbnQgPSB0aGlzLnByZXBhcmUoY29udGVudCk7XHJcblxyXG5cdFx0aWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCB8fCBwb3NpdGlvbiA9PT0gdGhpcy5faXRlbXMubGVuZ3RoKSB7XHJcblx0XHRcdHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCAmJiB0aGlzLiRzdGFnZS5hcHBlbmQoY29udGVudCk7XHJcblx0XHRcdHRoaXMuX2l0ZW1zLmxlbmd0aCAhPT0gMCAmJiB0aGlzLl9pdGVtc1twb3NpdGlvbiAtIDFdLmFmdGVyKGNvbnRlbnQpO1xyXG5cdFx0XHR0aGlzLl9pdGVtcy5wdXNoKGNvbnRlbnQpO1xyXG5cdFx0XHR0aGlzLl9tZXJnZXJzLnB1c2goY29udGVudC5maW5kKCdbZGF0YS1tZXJnZV0nKS5hZGRCYWNrKCdbZGF0YS1tZXJnZV0nKS5hdHRyKCdkYXRhLW1lcmdlJykgKiAxIHx8IDEpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5faXRlbXNbcG9zaXRpb25dLmJlZm9yZShjb250ZW50KTtcclxuXHRcdFx0dGhpcy5faXRlbXMuc3BsaWNlKHBvc2l0aW9uLCAwLCBjb250ZW50KTtcclxuXHRcdFx0dGhpcy5fbWVyZ2Vycy5zcGxpY2UocG9zaXRpb24sIDAsIGNvbnRlbnQuZmluZCgnW2RhdGEtbWVyZ2VdJykuYWRkQmFjaygnW2RhdGEtbWVyZ2VdJykuYXR0cignZGF0YS1tZXJnZScpICogMSB8fCAxKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl9pdGVtc1tjdXJyZW50XSAmJiB0aGlzLnJlc2V0KHRoaXMuX2l0ZW1zW2N1cnJlbnRdLmluZGV4KCkpO1xyXG5cclxuXHRcdHRoaXMuaW52YWxpZGF0ZSgnaXRlbXMnKTtcclxuXHJcblx0XHR0aGlzLnRyaWdnZXIoJ2FkZGVkJywgeyBjb250ZW50OiBjb250ZW50LCBwb3NpdGlvbjogcG9zaXRpb24gfSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVtb3ZlcyBhbiBpdGVtIGJ5IGl0cyBwb3NpdGlvbi5cclxuXHQgKiBAdG9kbyBVc2UgYGl0ZW1gIGluc3RlYWQgb2YgYGNvbnRlbnRgIGZvciB0aGUgZXZlbnQgYXJndW1lbnRzLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGl0ZW0gdG8gcmVtb3ZlLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24ocG9zaXRpb24pIHtcclxuXHRcdHBvc2l0aW9uID0gdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpO1xyXG5cclxuXHRcdGlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnRyaWdnZXIoJ3JlbW92ZScsIHsgY29udGVudDogdGhpcy5faXRlbXNbcG9zaXRpb25dLCBwb3NpdGlvbjogcG9zaXRpb24gfSk7XHJcblxyXG5cdFx0dGhpcy5faXRlbXNbcG9zaXRpb25dLnJlbW92ZSgpO1xyXG5cdFx0dGhpcy5faXRlbXMuc3BsaWNlKHBvc2l0aW9uLCAxKTtcclxuXHRcdHRoaXMuX21lcmdlcnMuc3BsaWNlKHBvc2l0aW9uLCAxKTtcclxuXHJcblx0XHR0aGlzLmludmFsaWRhdGUoJ2l0ZW1zJyk7XHJcblxyXG5cdFx0dGhpcy50cmlnZ2VyKCdyZW1vdmVkJywgeyBjb250ZW50OiBudWxsLCBwb3NpdGlvbjogcG9zaXRpb24gfSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogUHJlbG9hZHMgaW1hZ2VzIHdpdGggYXV0byB3aWR0aC5cclxuXHQgKiBAdG9kbyBSZXBsYWNlIGJ5IGEgbW9yZSBnZW5lcmljIGFwcHJvYWNoXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucHJlbG9hZEF1dG9XaWR0aEltYWdlcyA9IGZ1bmN0aW9uKGltYWdlcykge1xyXG5cdFx0aW1hZ2VzLmVhY2goJC5wcm94eShmdW5jdGlvbihpLCBlbGVtZW50KSB7XHJcblx0XHRcdHRoaXMuZW50ZXIoJ3ByZS1sb2FkaW5nJyk7XHJcblx0XHRcdGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xyXG5cdFx0XHQkKG5ldyBJbWFnZSgpKS5vbmUoJ2xvYWQnLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRlbGVtZW50LmF0dHIoJ3NyYycsIGUudGFyZ2V0LnNyYyk7XHJcblx0XHRcdFx0ZWxlbWVudC5jc3MoJ29wYWNpdHknLCAxKTtcclxuXHRcdFx0XHR0aGlzLmxlYXZlKCdwcmUtbG9hZGluZycpO1xyXG5cdFx0XHRcdCF0aGlzLmlzKCdwcmUtbG9hZGluZycpICYmICF0aGlzLmlzKCdpbml0aWFsaXppbmcnKSAmJiB0aGlzLnJlZnJlc2goKTtcclxuXHRcdFx0fSwgdGhpcykpLmF0dHIoJ3NyYycsIGVsZW1lbnQuYXR0cignc3JjJykgfHwgZWxlbWVudC5hdHRyKCdkYXRhLXNyYycpIHx8IGVsZW1lbnQuYXR0cignZGF0YS1zcmMtcmV0aW5hJykpO1xyXG5cdFx0fSwgdGhpcykpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlc3Ryb3lzIHRoZSBjYXJvdXNlbC5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XHJcblxyXG5cdFx0dGhpcy4kZWxlbWVudC5vZmYoJy5vd2wuY29yZScpO1xyXG5cdFx0dGhpcy4kc3RhZ2Uub2ZmKCcub3dsLmNvcmUnKTtcclxuXHRcdCQoZG9jdW1lbnQpLm9mZignLm93bC5jb3JlJyk7XHJcblxyXG5cdFx0aWYgKHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZSAhPT0gZmFsc2UpIHtcclxuXHRcdFx0d2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTtcclxuXHRcdFx0dGhpcy5vZmYod2luZG93LCAncmVzaXplJywgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAodmFyIGkgaW4gdGhpcy5fcGx1Z2lucykge1xyXG5cdFx0XHR0aGlzLl9wbHVnaW5zW2ldLmRlc3Ryb3koKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLiRzdGFnZS5jaGlsZHJlbignLmNsb25lZCcpLnJlbW92ZSgpO1xyXG5cclxuXHRcdHRoaXMuJHN0YWdlLnVud3JhcCgpO1xyXG5cdFx0dGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5jb250ZW50cygpLnVud3JhcCgpO1xyXG5cdFx0dGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS51bndyYXAoKTtcclxuXHJcblx0XHR0aGlzLiRlbGVtZW50XHJcblx0XHRcdC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMucmVmcmVzaENsYXNzKVxyXG5cdFx0XHQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcylcclxuXHRcdFx0LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5sb2FkZWRDbGFzcylcclxuXHRcdFx0LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ydGxDbGFzcylcclxuXHRcdFx0LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5kcmFnQ2xhc3MpXHJcblx0XHRcdC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZ3JhYkNsYXNzKVxyXG5cdFx0XHQuYXR0cignY2xhc3MnLCB0aGlzLiRlbGVtZW50LmF0dHIoJ2NsYXNzJykucmVwbGFjZShuZXcgUmVnRXhwKHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQ2xhc3MgKyAnLVxcXFxTK1xcXFxzJywgJ2cnKSwgJycpKVxyXG5cdFx0XHQucmVtb3ZlRGF0YSgnb3dsLmNhcm91c2VsJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogT3BlcmF0b3JzIHRvIGNhbGN1bGF0ZSByaWdodC10by1sZWZ0IGFuZCBsZWZ0LXRvLXJpZ2h0LlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW2FdIC0gVGhlIGxlZnQgc2lkZSBvcGVyYW5kLlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbb10gLSBUaGUgb3BlcmF0b3IuXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtiXSAtIFRoZSByaWdodCBzaWRlIG9wZXJhbmQuXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5vcCA9IGZ1bmN0aW9uKGEsIG8sIGIpIHtcclxuXHRcdHZhciBydGwgPSB0aGlzLnNldHRpbmdzLnJ0bDtcclxuXHRcdHN3aXRjaCAobykge1xyXG5cdFx0XHRjYXNlICc8JzpcclxuXHRcdFx0XHRyZXR1cm4gcnRsID8gYSA+IGIgOiBhIDwgYjtcclxuXHRcdFx0Y2FzZSAnPic6XHJcblx0XHRcdFx0cmV0dXJuIHJ0bCA/IGEgPCBiIDogYSA+IGI7XHJcblx0XHRcdGNhc2UgJz49JzpcclxuXHRcdFx0XHRyZXR1cm4gcnRsID8gYSA8PSBiIDogYSA+PSBiO1xyXG5cdFx0XHRjYXNlICc8PSc6XHJcblx0XHRcdFx0cmV0dXJuIHJ0bCA/IGEgPj0gYiA6IGEgPD0gYjtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBBdHRhY2hlcyB0byBhbiBpbnRlcm5hbCBldmVudC5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBldmVudCBzb3VyY2UuXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgZXZlbnQgaGFuZGxlciB0byBhdHRhY2guXHJcblx0ICogQHBhcmFtIHtCb29sZWFufSBjYXB0dXJlIC0gV2V0aGVyIHRoZSBldmVudCBzaG91bGQgYmUgaGFuZGxlZCBhdCB0aGUgY2FwdHVyaW5nIHBoYXNlIG9yIG5vdC5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLm9uID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGxpc3RlbmVyLCBjYXB0dXJlKSB7XHJcblx0XHRpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7XHJcblx0XHRcdGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIsIGNhcHR1cmUpO1xyXG5cdFx0fSBlbHNlIGlmIChlbGVtZW50LmF0dGFjaEV2ZW50KSB7XHJcblx0XHRcdGVsZW1lbnQuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBsaXN0ZW5lcik7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGV0YWNoZXMgZnJvbSBhbiBpbnRlcm5hbCBldmVudC5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBldmVudCBzb3VyY2UuXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgYXR0YWNoZWQgZXZlbnQgaGFuZGxlciB0byBkZXRhY2guXHJcblx0ICogQHBhcmFtIHtCb29sZWFufSBjYXB0dXJlIC0gV2V0aGVyIHRoZSBhdHRhY2hlZCBldmVudCBoYW5kbGVyIHdhcyByZWdpc3RlcmVkIGFzIGEgY2FwdHVyaW5nIGxpc3RlbmVyIG9yIG5vdC5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLm9mZiA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSkge1xyXG5cdFx0aWYgKGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcikge1xyXG5cdFx0XHRlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyLCBjYXB0dXJlKTtcclxuXHRcdH0gZWxzZSBpZiAoZWxlbWVudC5kZXRhY2hFdmVudCkge1xyXG5cdFx0XHRlbGVtZW50LmRldGFjaEV2ZW50KCdvbicgKyBldmVudCwgbGlzdGVuZXIpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyaWdnZXJzIGEgcHVibGljIGV2ZW50LlxyXG5cdCAqIEB0b2RvIFJlbW92ZSBgc3RhdHVzYCwgYHJlbGF0ZWRUYXJnZXRgIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIGV2ZW50IG5hbWUuXHJcblx0ICogQHBhcmFtIHsqfSBbZGF0YT1udWxsXSAtIFRoZSBldmVudCBkYXRhLlxyXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBbbmFtZXNwYWNlPWNhcm91c2VsXSAtIFRoZSBldmVudCBuYW1lc3BhY2UuXHJcblx0ICogQHBhcmFtIHtTdHJpbmd9IFtzdGF0ZV0gLSBUaGUgc3RhdGUgd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC5cclxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtlbnRlcj1mYWxzZV0gLSBJbmRpY2F0ZXMgaWYgdGhlIGNhbGwgZW50ZXJzIHRoZSBzcGVjaWZpZWQgc3RhdGUgb3Igbm90LlxyXG5cdCAqIEByZXR1cm5zIHtFdmVudH0gLSBUaGUgZXZlbnQgYXJndW1lbnRzLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUudHJpZ2dlciA9IGZ1bmN0aW9uKG5hbWUsIGRhdGEsIG5hbWVzcGFjZSwgc3RhdGUsIGVudGVyKSB7XHJcblx0XHR2YXIgc3RhdHVzID0ge1xyXG5cdFx0XHRpdGVtOiB7IGNvdW50OiB0aGlzLl9pdGVtcy5sZW5ndGgsIGluZGV4OiB0aGlzLmN1cnJlbnQoKSB9XHJcblx0XHR9LCBoYW5kbGVyID0gJC5jYW1lbENhc2UoXHJcblx0XHRcdCQuZ3JlcChbICdvbicsIG5hbWUsIG5hbWVzcGFjZSBdLCBmdW5jdGlvbih2KSB7IHJldHVybiB2IH0pXHJcblx0XHRcdFx0LmpvaW4oJy0nKS50b0xvd2VyQ2FzZSgpXHJcblx0XHQpLCBldmVudCA9ICQuRXZlbnQoXHJcblx0XHRcdFsgbmFtZSwgJ293bCcsIG5hbWVzcGFjZSB8fCAnY2Fyb3VzZWwnIF0uam9pbignLicpLnRvTG93ZXJDYXNlKCksXHJcblx0XHRcdCQuZXh0ZW5kKHsgcmVsYXRlZFRhcmdldDogdGhpcyB9LCBzdGF0dXMsIGRhdGEpXHJcblx0XHQpO1xyXG5cclxuXHRcdGlmICghdGhpcy5fc3VwcmVzc1tuYW1lXSkge1xyXG5cdFx0XHQkLmVhY2godGhpcy5fcGx1Z2lucywgZnVuY3Rpb24obmFtZSwgcGx1Z2luKSB7XHJcblx0XHRcdFx0aWYgKHBsdWdpbi5vblRyaWdnZXIpIHtcclxuXHRcdFx0XHRcdHBsdWdpbi5vblRyaWdnZXIoZXZlbnQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHR0aGlzLnJlZ2lzdGVyKHsgdHlwZTogT3dsLlR5cGUuRXZlbnQsIG5hbWU6IG5hbWUgfSk7XHJcblx0XHRcdHRoaXMuJGVsZW1lbnQudHJpZ2dlcihldmVudCk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZXR0aW5ncyAmJiB0eXBlb2YgdGhpcy5zZXR0aW5nc1toYW5kbGVyXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdHRoaXMuc2V0dGluZ3NbaGFuZGxlcl0uY2FsbCh0aGlzLCBldmVudCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZXZlbnQ7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRW50ZXJzIGEgc3RhdGUuXHJcblx0ICogQHBhcmFtIG5hbWUgLSBUaGUgc3RhdGUgbmFtZS5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLmVudGVyID0gZnVuY3Rpb24obmFtZSkge1xyXG5cdFx0JC5lYWNoKFsgbmFtZSBdLmNvbmNhdCh0aGlzLl9zdGF0ZXMudGFnc1tuYW1lXSB8fCBbXSksICQucHJveHkoZnVuY3Rpb24oaSwgbmFtZSkge1xyXG5cdFx0XHRpZiAodGhpcy5fc3RhdGVzLmN1cnJlbnRbbmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdID0gMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5fc3RhdGVzLmN1cnJlbnRbbmFtZV0rKztcclxuXHRcdH0sIHRoaXMpKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBMZWF2ZXMgYSBzdGF0ZS5cclxuXHQgKiBAcGFyYW0gbmFtZSAtIFRoZSBzdGF0ZSBuYW1lLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUubGVhdmUgPSBmdW5jdGlvbihuYW1lKSB7XHJcblx0XHQkLmVhY2goWyBuYW1lIF0uY29uY2F0KHRoaXMuX3N0YXRlcy50YWdzW25hbWVdIHx8IFtdKSwgJC5wcm94eShmdW5jdGlvbihpLCBuYW1lKSB7XHJcblx0XHRcdHRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdLS07XHJcblx0XHR9LCB0aGlzKSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVnaXN0ZXJzIGFuIGV2ZW50IG9yIHN0YXRlLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IC0gVGhlIGV2ZW50IG9yIHN0YXRlIHRvIHJlZ2lzdGVyLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbihvYmplY3QpIHtcclxuXHRcdGlmIChvYmplY3QudHlwZSA9PT0gT3dsLlR5cGUuRXZlbnQpIHtcclxuXHRcdFx0aWYgKCEkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdKSB7XHJcblx0XHRcdFx0JC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXSA9IHt9O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoISQuZXZlbnQuc3BlY2lhbFtvYmplY3QubmFtZV0ub3dsKSB7XHJcblx0XHRcdFx0dmFyIF9kZWZhdWx0ID0gJC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXS5fZGVmYXVsdDtcclxuXHRcdFx0XHQkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdLl9kZWZhdWx0ID0gZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdFx0aWYgKF9kZWZhdWx0ICYmIF9kZWZhdWx0LmFwcGx5ICYmICghZS5uYW1lc3BhY2UgfHwgZS5uYW1lc3BhY2UuaW5kZXhPZignb3dsJykgPT09IC0xKSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gX2RlZmF1bHQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBlLm5hbWVzcGFjZSAmJiBlLm5hbWVzcGFjZS5pbmRleE9mKCdvd2wnKSA+IC0xO1xyXG5cdFx0XHRcdH07XHJcblx0XHRcdFx0JC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXS5vd2wgPSB0cnVlO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKG9iamVjdC50eXBlID09PSBPd2wuVHlwZS5TdGF0ZSkge1xyXG5cdFx0XHRpZiAoIXRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSkge1xyXG5cdFx0XHRcdHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSA9IG9iamVjdC50YWdzO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSA9IHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXS5jb25jYXQob2JqZWN0LnRhZ3MpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0gPSAkLmdyZXAodGhpcy5fc3RhdGVzLnRhZ3Nbb2JqZWN0Lm5hbWVdLCAkLnByb3h5KGZ1bmN0aW9uKHRhZywgaSkge1xyXG5cdFx0XHRcdHJldHVybiAkLmluQXJyYXkodGFnLCB0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0pID09PSBpO1xyXG5cdFx0XHR9LCB0aGlzKSk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU3VwcHJlc3NlcyBldmVudHMuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGV2ZW50cyAtIFRoZSBldmVudHMgdG8gc3VwcHJlc3MuXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5zdXBwcmVzcyA9IGZ1bmN0aW9uKGV2ZW50cykge1xyXG5cdFx0JC5lYWNoKGV2ZW50cywgJC5wcm94eShmdW5jdGlvbihpbmRleCwgZXZlbnQpIHtcclxuXHRcdFx0dGhpcy5fc3VwcmVzc1tldmVudF0gPSB0cnVlO1xyXG5cdFx0fSwgdGhpcykpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbGVhc2VzIHN1cHByZXNzZWQgZXZlbnRzLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBldmVudHMgLSBUaGUgZXZlbnRzIHRvIHJlbGVhc2UuXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5yZWxlYXNlID0gZnVuY3Rpb24oZXZlbnRzKSB7XHJcblx0XHQkLmVhY2goZXZlbnRzLCAkLnByb3h5KGZ1bmN0aW9uKGluZGV4LCBldmVudCkge1xyXG5cdFx0XHRkZWxldGUgdGhpcy5fc3VwcmVzc1tldmVudF07XHJcblx0XHR9LCB0aGlzKSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyB1bmlmaWVkIHBvaW50ZXIgY29vcmRpbmF0ZXMgZnJvbSBldmVudC5cclxuXHQgKiBAdG9kbyAjMjYxXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7RXZlbnR9IC0gVGhlIGBtb3VzZWRvd25gIG9yIGB0b3VjaHN0YXJ0YCBldmVudC5cclxuXHQgKiBAcmV0dXJucyB7T2JqZWN0fSAtIENvbnRhaW5zIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIG9mIGN1cnJlbnQgcG9pbnRlciBwb3NpdGlvbi5cclxuXHQgKi9cclxuXHRPd2wucHJvdG90eXBlLnBvaW50ZXIgPSBmdW5jdGlvbihldmVudCkge1xyXG5cdFx0dmFyIHJlc3VsdCA9IHsgeDogbnVsbCwgeTogbnVsbCB9O1xyXG5cclxuXHRcdGV2ZW50ID0gZXZlbnQub3JpZ2luYWxFdmVudCB8fCBldmVudCB8fCB3aW5kb3cuZXZlbnQ7XHJcblxyXG5cdFx0ZXZlbnQgPSBldmVudC50b3VjaGVzICYmIGV2ZW50LnRvdWNoZXMubGVuZ3RoID9cclxuXHRcdFx0ZXZlbnQudG91Y2hlc1swXSA6IGV2ZW50LmNoYW5nZWRUb3VjaGVzICYmIGV2ZW50LmNoYW5nZWRUb3VjaGVzLmxlbmd0aCA/XHJcblx0XHRcdFx0ZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0gOiBldmVudDtcclxuXHJcblx0XHRpZiAoZXZlbnQucGFnZVgpIHtcclxuXHRcdFx0cmVzdWx0LnggPSBldmVudC5wYWdlWDtcclxuXHRcdFx0cmVzdWx0LnkgPSBldmVudC5wYWdlWTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJlc3VsdC54ID0gZXZlbnQuY2xpZW50WDtcclxuXHRcdFx0cmVzdWx0LnkgPSBldmVudC5jbGllbnRZO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGV0ZXJtaW5lcyBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3Igc29tZXRoaW5nIHRoYXQgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXJcclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfE9iamVjdHxBcnJheXxCb29sZWFufFJlZ0V4cHxGdW5jdGlvbnxTeW1ib2x9IC0gVGhlIGlucHV0IHRvIGJlIHRlc3RlZFxyXG5cdCAqIEByZXR1cm5zIHtCb29sZWFufSAtIEFuIGluZGljYXRpb24gaWYgdGhlIGlucHV0IGlzIGEgTnVtYmVyIG9yIGNhbiBiZSBjb2VyY2VkIHRvIGEgTnVtYmVyXHJcblx0ICovXHJcblx0T3dsLnByb3RvdHlwZS5pc051bWVyaWMgPSBmdW5jdGlvbihudW1iZXIpIHtcclxuXHRcdHJldHVybiAhaXNOYU4ocGFyc2VGbG9hdChudW1iZXIpKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBkaWZmZXJlbmNlIG9mIHR3byB2ZWN0b3JzLlxyXG5cdCAqIEB0b2RvICMyNjFcclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtPYmplY3R9IC0gVGhlIGZpcnN0IHZlY3Rvci5cclxuXHQgKiBAcGFyYW0ge09iamVjdH0gLSBUaGUgc2Vjb25kIHZlY3Rvci5cclxuXHQgKiBAcmV0dXJucyB7T2JqZWN0fSAtIFRoZSBkaWZmZXJlbmNlLlxyXG5cdCAqL1xyXG5cdE93bC5wcm90b3R5cGUuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHg6IGZpcnN0LnggLSBzZWNvbmQueCxcclxuXHRcdFx0eTogZmlyc3QueSAtIHNlY29uZC55XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBqUXVlcnkgUGx1Z2luIGZvciB0aGUgT3dsIENhcm91c2VsXHJcblx0ICogQHRvZG8gTmF2aWdhdGlvbiBwbHVnaW4gYG5leHRgIGFuZCBgcHJldmBcclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0JC5mbi5vd2xDYXJvdXNlbCA9IGZ1bmN0aW9uKG9wdGlvbikge1xyXG5cdFx0dmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdHZhciAkdGhpcyA9ICQodGhpcyksXHJcblx0XHRcdFx0ZGF0YSA9ICR0aGlzLmRhdGEoJ293bC5jYXJvdXNlbCcpO1xyXG5cclxuXHRcdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdFx0ZGF0YSA9IG5ldyBPd2wodGhpcywgdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb24pO1xyXG5cdFx0XHRcdCR0aGlzLmRhdGEoJ293bC5jYXJvdXNlbCcsIGRhdGEpO1xyXG5cclxuXHRcdFx0XHQkLmVhY2goW1xyXG5cdFx0XHRcdFx0J25leHQnLCAncHJldicsICd0bycsICdkZXN0cm95JywgJ3JlZnJlc2gnLCAncmVwbGFjZScsICdhZGQnLCAncmVtb3ZlJ1xyXG5cdFx0XHRcdF0sIGZ1bmN0aW9uKGksIGV2ZW50KSB7XHJcblx0XHRcdFx0XHRkYXRhLnJlZ2lzdGVyKHsgdHlwZTogT3dsLlR5cGUuRXZlbnQsIG5hbWU6IGV2ZW50IH0pO1xyXG5cdFx0XHRcdFx0ZGF0YS4kZWxlbWVudC5vbihldmVudCArICcub3dsLmNhcm91c2VsLmNvcmUnLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIGUucmVsYXRlZFRhcmdldCAhPT0gdGhpcykge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3VwcHJlc3MoWyBldmVudCBdKTtcclxuXHRcdFx0XHRcdFx0XHRkYXRhW2V2ZW50XS5hcHBseSh0aGlzLCBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSkpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMucmVsZWFzZShbIGV2ZW50IF0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LCBkYXRhKSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnICYmIG9wdGlvbi5jaGFyQXQoMCkgIT09ICdfJykge1xyXG5cdFx0XHRcdGRhdGFbb3B0aW9uXS5hcHBseShkYXRhLCBhcmdzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGNvbnN0cnVjdG9yIGZvciB0aGUgalF1ZXJ5IFBsdWdpblxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHQkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yID0gT3dsO1xyXG5cclxufSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xyXG5cclxuLyoqXHJcbiAqIEF1dG9SZWZyZXNoIFBsdWdpblxyXG4gKiBAdmVyc2lvbiAyLjEuMFxyXG4gKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2lcclxuICogQGF1dGhvciBEYXZpZCBEZXV0c2NoXHJcbiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxyXG4gKi9cclxuOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyB0aGUgYXV0byByZWZyZXNoIHBsdWdpbi5cclxuXHQgKiBAY2xhc3MgVGhlIEF1dG8gUmVmcmVzaCBQbHVnaW5cclxuXHQgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsXHJcblx0ICovXHJcblx0dmFyIEF1dG9SZWZyZXNoID0gZnVuY3Rpb24oY2Fyb3VzZWwpIHtcclxuXHRcdC8qKlxyXG5cdFx0ICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge093bH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fY29yZSA9IGNhcm91c2VsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogUmVmcmVzaCBpbnRlcnZhbC5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2ludGVydmFsID0gbnVsbDtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgY3VycmVudGx5IHZpc2libGUgb3Igbm90LlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge0Jvb2xlYW59XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3Zpc2libGUgPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQWxsIGV2ZW50IGhhbmRsZXJzLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge09iamVjdH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5faGFuZGxlcnMgPSB7XHJcblx0XHRcdCdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvUmVmcmVzaCkge1xyXG5cdFx0XHRcdFx0dGhpcy53YXRjaCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcylcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gc2V0IGRlZmF1bHQgb3B0aW9uc1xyXG5cdFx0dGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEF1dG9SZWZyZXNoLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpO1xyXG5cclxuXHRcdC8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzXHJcblx0XHR0aGlzLl9jb3JlLiRlbGVtZW50Lm9uKHRoaXMuX2hhbmRsZXJzKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IG9wdGlvbnMuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdEF1dG9SZWZyZXNoLkRlZmF1bHRzID0ge1xyXG5cdFx0YXV0b1JlZnJlc2g6IHRydWUsXHJcblx0XHRhdXRvUmVmcmVzaEludGVydmFsOiA1MDBcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBXYXRjaGVzIHRoZSBlbGVtZW50LlxyXG5cdCAqL1xyXG5cdEF1dG9SZWZyZXNoLnByb3RvdHlwZS53YXRjaCA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKHRoaXMuX2ludGVydmFsKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl92aXNpYmxlID0gdGhpcy5fY29yZS4kZWxlbWVudC5pcygnOnZpc2libGUnKTtcclxuXHRcdHRoaXMuX2ludGVydmFsID0gd2luZG93LnNldEludGVydmFsKCQucHJveHkodGhpcy5yZWZyZXNoLCB0aGlzKSwgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvUmVmcmVzaEludGVydmFsKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBSZWZyZXNoZXMgdGhlIGVsZW1lbnQuXHJcblx0ICovXHJcblx0QXV0b1JlZnJlc2gucHJvdG90eXBlLnJlZnJlc2ggPSBmdW5jdGlvbigpIHtcclxuXHRcdGlmICh0aGlzLl9jb3JlLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpID09PSB0aGlzLl92aXNpYmxlKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl92aXNpYmxlID0gIXRoaXMuX3Zpc2libGU7XHJcblxyXG5cdFx0dGhpcy5fY29yZS4kZWxlbWVudC50b2dnbGVDbGFzcygnb3dsLWhpZGRlbicsICF0aGlzLl92aXNpYmxlKTtcclxuXHJcblx0XHR0aGlzLl92aXNpYmxlICYmICh0aGlzLl9jb3JlLmludmFsaWRhdGUoJ3dpZHRoJykgJiYgdGhpcy5fY29yZS5yZWZyZXNoKCkpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXHJcblx0ICovXHJcblx0QXV0b1JlZnJlc2gucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBoYW5kbGVyLCBwcm9wZXJ0eTtcclxuXHJcblx0XHR3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCk7XHJcblxyXG5cdFx0Zm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7XHJcblx0XHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdKTtcclxuXHRcdH1cclxuXHRcdGZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHtcclxuXHRcdFx0dHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0JC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkF1dG9SZWZyZXNoID0gQXV0b1JlZnJlc2g7XHJcblxyXG59KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XHJcblxyXG4vKipcclxuICogTGF6eSBQbHVnaW5cclxuICogQHZlcnNpb24gMi4xLjBcclxuICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2lcclxuICogQGF1dGhvciBEYXZpZCBEZXV0c2NoXHJcbiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxyXG4gKi9cclxuOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyB0aGUgbGF6eSBwbHVnaW4uXHJcblx0ICogQGNsYXNzIFRoZSBMYXp5IFBsdWdpblxyXG5cdCAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWxcclxuXHQgKi9cclxuXHR2YXIgTGF6eSA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBSZWZlcmVuY2UgdG8gdGhlIGNvcmUuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T3dsfVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9jb3JlID0gY2Fyb3VzZWw7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBBbHJlYWR5IGxvYWRlZCBpdGVtcy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtBcnJheS48alF1ZXJ5Pn1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fbG9hZGVkID0gW107XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBFdmVudCBoYW5kbGVycy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2hhbmRsZXJzID0ge1xyXG5cdFx0XHQnaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIGNoYW5nZS5vd2wuY2Fyb3VzZWwgcmVzaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoIWUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoIXRoaXMuX2NvcmUuc2V0dGluZ3MgfHwgIXRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQpIHtcclxuXHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICgoZS5wcm9wZXJ0eSAmJiBlLnByb3BlcnR5Lm5hbWUgPT0gJ3Bvc2l0aW9uJykgfHwgZS50eXBlID09ICdpbml0aWFsaXplZCcpIHtcclxuXHRcdFx0XHRcdHZhciBzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsXHJcblx0XHRcdFx0XHRcdG4gPSAoc2V0dGluZ3MuY2VudGVyICYmIE1hdGguY2VpbChzZXR0aW5ncy5pdGVtcyAvIDIpIHx8IHNldHRpbmdzLml0ZW1zKSxcclxuXHRcdFx0XHRcdFx0aSA9ICgoc2V0dGluZ3MuY2VudGVyICYmIG4gKiAtMSkgfHwgMCksXHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uID0gKGUucHJvcGVydHkgJiYgZS5wcm9wZXJ0eS52YWx1ZSAhPT0gdW5kZWZpbmVkID8gZS5wcm9wZXJ0eS52YWx1ZSA6IHRoaXMuX2NvcmUuY3VycmVudCgpKSArIGksXHJcblx0XHRcdFx0XHRcdGNsb25lcyA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoLFxyXG5cdFx0XHRcdFx0XHRsb2FkID0gJC5wcm94eShmdW5jdGlvbihpLCB2KSB7IHRoaXMubG9hZCh2KSB9LCB0aGlzKTtcclxuXHJcblx0XHRcdFx0XHR3aGlsZSAoaSsrIDwgbikge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxvYWQoY2xvbmVzIC8gMiArIHRoaXMuX2NvcmUucmVsYXRpdmUocG9zaXRpb24pKTtcclxuXHRcdFx0XHRcdFx0Y2xvbmVzICYmICQuZWFjaCh0aGlzLl9jb3JlLmNsb25lcyh0aGlzLl9jb3JlLnJlbGF0aXZlKHBvc2l0aW9uKSksIGxvYWQpO1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbisrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcylcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gc2V0IHRoZSBkZWZhdWx0IG9wdGlvbnNcclxuXHRcdHRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBMYXp5LkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpO1xyXG5cclxuXHRcdC8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJcclxuXHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlZmF1bHQgb3B0aW9ucy5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0TGF6eS5EZWZhdWx0cyA9IHtcclxuXHRcdGxhenlMb2FkOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvYWRzIGFsbCByZXNvdXJjZXMgb2YgYW4gaXRlbSBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLlxyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbS5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICovXHJcblx0TGF6eS5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7XHJcblx0XHR2YXIgJGl0ZW0gPSB0aGlzLl9jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHBvc2l0aW9uKSxcclxuXHRcdFx0JGVsZW1lbnRzID0gJGl0ZW0gJiYgJGl0ZW0uZmluZCgnLm93bC1sYXp5Jyk7XHJcblxyXG5cdFx0aWYgKCEkZWxlbWVudHMgfHwgJC5pbkFycmF5KCRpdGVtLmdldCgwKSwgdGhpcy5fbG9hZGVkKSA+IC0xKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQkZWxlbWVudHMuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGluZGV4LCBlbGVtZW50KSB7XHJcblx0XHRcdHZhciAkZWxlbWVudCA9ICQoZWxlbWVudCksIGltYWdlLFxyXG5cdFx0XHRcdHVybCA9ICh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA+IDEgJiYgJGVsZW1lbnQuYXR0cignZGF0YS1zcmMtcmV0aW5hJykpIHx8ICRlbGVtZW50LmF0dHIoJ2RhdGEtc3JjJyk7XHJcblxyXG5cdFx0XHR0aGlzLl9jb3JlLnRyaWdnZXIoJ2xvYWQnLCB7IGVsZW1lbnQ6ICRlbGVtZW50LCB1cmw6IHVybCB9LCAnbGF6eScpO1xyXG5cclxuXHRcdFx0aWYgKCRlbGVtZW50LmlzKCdpbWcnKSkge1xyXG5cdFx0XHRcdCRlbGVtZW50Lm9uZSgnbG9hZC5vd2wubGF6eScsICQucHJveHkoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHQkZWxlbWVudC5jc3MoJ29wYWNpdHknLCAxKTtcclxuXHRcdFx0XHRcdHRoaXMuX2NvcmUudHJpZ2dlcignbG9hZGVkJywgeyBlbGVtZW50OiAkZWxlbWVudCwgdXJsOiB1cmwgfSwgJ2xhenknKTtcclxuXHRcdFx0XHR9LCB0aGlzKSkuYXR0cignc3JjJywgdXJsKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG5cdFx0XHRcdGltYWdlLm9ubG9hZCA9ICQucHJveHkoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHQkZWxlbWVudC5jc3Moe1xyXG5cdFx0XHRcdFx0XHQnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoXCInICsgdXJsICsgJ1wiKScsXHJcblx0XHRcdFx0XHRcdCdvcGFjaXR5JzogJzEnXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHRoaXMuX2NvcmUudHJpZ2dlcignbG9hZGVkJywgeyBlbGVtZW50OiAkZWxlbWVudCwgdXJsOiB1cmwgfSwgJ2xhenknKTtcclxuXHRcdFx0XHR9LCB0aGlzKTtcclxuXHRcdFx0XHRpbWFnZS5zcmMgPSB1cmw7XHJcblx0XHRcdH1cclxuXHRcdH0sIHRoaXMpKTtcclxuXHJcblx0XHR0aGlzLl9sb2FkZWQucHVzaCgkaXRlbS5nZXQoMCkpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdExhenkucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBoYW5kbGVyLCBwcm9wZXJ0eTtcclxuXHJcblx0XHRmb3IgKGhhbmRsZXIgaW4gdGhpcy5oYW5kbGVycykge1xyXG5cdFx0XHR0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLmhhbmRsZXJzW2hhbmRsZXJdKTtcclxuXHRcdH1cclxuXHRcdGZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHtcclxuXHRcdFx0dHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0JC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkxhenkgPSBMYXp5O1xyXG5cclxufSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xyXG5cclxuLyoqXHJcbiAqIEF1dG9IZWlnaHQgUGx1Z2luXHJcbiAqIEB2ZXJzaW9uIDIuMS4wXHJcbiAqIEBhdXRob3IgQmFydG9zeiBXb2pjaWVjaG93c2tpXHJcbiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaFxyXG4gKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVClcclxuICovXHJcbjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgdGhlIGF1dG8gaGVpZ2h0IHBsdWdpbi5cclxuXHQgKiBAY2xhc3MgVGhlIEF1dG8gSGVpZ2h0IFBsdWdpblxyXG5cdCAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWxcclxuXHQgKi9cclxuXHR2YXIgQXV0b0hlaWdodCA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7XHJcblx0XHQvKipcclxuXHRcdCAqIFJlZmVyZW5jZSB0byB0aGUgY29yZS5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPd2x9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2NvcmUgPSBjYXJvdXNlbDtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEFsbCBldmVudCBoYW5kbGVycy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2hhbmRsZXJzID0ge1xyXG5cdFx0XHQnaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIHJlZnJlc2hlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0KSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcyksXHJcblx0XHRcdCdjaGFuZ2VkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHQgJiYgZS5wcm9wZXJ0eS5uYW1lID09ICdwb3NpdGlvbicpe1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGUoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQnbG9hZGVkLm93bC5sYXp5JzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodFxyXG5cdFx0XHRcdFx0JiYgZS5lbGVtZW50LmNsb3Nlc3QoJy4nICsgdGhpcy5fY29yZS5zZXR0aW5ncy5pdGVtQ2xhc3MpLmluZGV4KCkgPT09IHRoaXMuX2NvcmUuY3VycmVudCgpKSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcylcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gc2V0IGRlZmF1bHQgb3B0aW9uc1xyXG5cdFx0dGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEF1dG9IZWlnaHQuRGVmYXVsdHMsIHRoaXMuX2NvcmUub3B0aW9ucyk7XHJcblxyXG5cdFx0Ly8gcmVnaXN0ZXIgZXZlbnQgaGFuZGxlcnNcclxuXHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlZmF1bHQgb3B0aW9ucy5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0QXV0b0hlaWdodC5EZWZhdWx0cyA9IHtcclxuXHRcdGF1dG9IZWlnaHQ6IGZhbHNlLFxyXG5cdFx0YXV0b0hlaWdodENsYXNzOiAnb3dsLWhlaWdodCdcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGVzIHRoZSB2aWV3LlxyXG5cdCAqL1xyXG5cdEF1dG9IZWlnaHQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIHN0YXJ0ID0gdGhpcy5fY29yZS5fY3VycmVudCxcclxuXHRcdFx0ZW5kID0gc3RhcnQgKyB0aGlzLl9jb3JlLnNldHRpbmdzLml0ZW1zLFxyXG5cdFx0XHR2aXNpYmxlID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS50b0FycmF5KCkuc2xpY2Uoc3RhcnQsIGVuZCksXHJcblx0XHRcdGhlaWdodHMgPSBbXSxcclxuXHRcdFx0bWF4aGVpZ2h0ID0gMDtcclxuXHJcblx0XHQkLmVhY2godmlzaWJsZSwgZnVuY3Rpb24oaW5kZXgsIGl0ZW0pIHtcclxuXHRcdFx0aGVpZ2h0cy5wdXNoKCQoaXRlbSkuaGVpZ2h0KCkpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0bWF4aGVpZ2h0ID0gTWF0aC5tYXguYXBwbHkobnVsbCwgaGVpZ2h0cyk7XHJcblxyXG5cdFx0dGhpcy5fY29yZS4kc3RhZ2UucGFyZW50KClcclxuXHRcdFx0LmhlaWdodChtYXhoZWlnaHQpXHJcblx0XHRcdC5hZGRDbGFzcyh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHRDbGFzcyk7XHJcblx0fTtcclxuXHJcblx0QXV0b0hlaWdodC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGhhbmRsZXIsIHByb3BlcnR5O1xyXG5cclxuXHRcdGZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykge1xyXG5cdFx0XHR0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7XHJcblx0XHR9XHJcblx0XHRmb3IgKHByb3BlcnR5IGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSB7XHJcblx0XHRcdHR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdCQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5BdXRvSGVpZ2h0ID0gQXV0b0hlaWdodDtcclxuXHJcbn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTtcclxuXHJcbi8qKlxyXG4gKiBWaWRlbyBQbHVnaW5cclxuICogQHZlcnNpb24gMi4xLjBcclxuICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2lcclxuICogQGF1dGhvciBEYXZpZCBEZXV0c2NoXHJcbiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxyXG4gKi9cclxuOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyB0aGUgdmlkZW8gcGx1Z2luLlxyXG5cdCAqIEBjbGFzcyBUaGUgVmlkZW8gUGx1Z2luXHJcblx0ICogQHBhcmFtIHtPd2x9IGNhcm91c2VsIC0gVGhlIE93bCBDYXJvdXNlbFxyXG5cdCAqL1xyXG5cdHZhciBWaWRlbyA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7XHJcblx0XHQvKipcclxuXHRcdCAqIFJlZmVyZW5jZSB0byB0aGUgY29yZS5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPd2x9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2NvcmUgPSBjYXJvdXNlbDtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIENhY2hlIGFsbCB2aWRlbyBVUkxzLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge09iamVjdH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fdmlkZW9zID0ge307XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBDdXJyZW50IHBsYXlpbmcgaXRlbS5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtqUXVlcnl9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX3BsYXlpbmcgPSBudWxsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogQWxsIGV2ZW50IGhhbmRsZXJzLlxyXG5cdFx0ICogQHRvZG8gVGhlIGNsb25lZCBjb250ZW50IHJlbW92YWxlIGlzIHRvbyBsYXRlXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T2JqZWN0fVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9oYW5kbGVycyA9IHtcclxuXHRcdFx0J2luaXRpYWxpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fY29yZS5yZWdpc3Rlcih7IHR5cGU6ICdzdGF0ZScsIG5hbWU6ICdwbGF5aW5nJywgdGFnczogWyAnaW50ZXJhY3RpbmcnIF0gfSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J3Jlc2l6ZS5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy52aWRlbyAmJiB0aGlzLmlzSW5GdWxsU2NyZWVuKCkpIHtcclxuXHRcdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQncmVmcmVzaGVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLmlzKCdyZXNpemluZycpKSB7XHJcblx0XHRcdFx0XHR0aGlzLl9jb3JlLiRzdGFnZS5maW5kKCcuY2xvbmVkIC5vd2wtdmlkZW8tZnJhbWUnKS5yZW1vdmUoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQnY2hhbmdlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nICYmIHRoaXMuX3BsYXlpbmcpIHtcclxuXHRcdFx0XHRcdHRoaXMuc3RvcCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcyksXHJcblx0XHRcdCdwcmVwYXJlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoIWUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR2YXIgJGVsZW1lbnQgPSAkKGUuY29udGVudCkuZmluZCgnLm93bC12aWRlbycpO1xyXG5cclxuXHRcdFx0XHRpZiAoJGVsZW1lbnQubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHQkZWxlbWVudC5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG5cdFx0XHRcdFx0dGhpcy5mZXRjaCgkZWxlbWVudCwgJChlLmNvbnRlbnQpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpXHJcblx0XHR9O1xyXG5cclxuXHRcdC8vIHNldCBkZWZhdWx0IG9wdGlvbnNcclxuXHRcdHRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBWaWRlby5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTtcclxuXHJcblx0XHQvLyByZWdpc3RlciBldmVudCBoYW5kbGVyc1xyXG5cdFx0dGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7XHJcblxyXG5cdFx0dGhpcy5fY29yZS4kZWxlbWVudC5vbignY2xpY2sub3dsLnZpZGVvJywgJy5vd2wtdmlkZW8tcGxheS1pY29uJywgJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdHRoaXMucGxheShlKTtcclxuXHRcdH0sIHRoaXMpKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IG9wdGlvbnMuXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdFZpZGVvLkRlZmF1bHRzID0ge1xyXG5cdFx0dmlkZW86IGZhbHNlLFxyXG5cdFx0dmlkZW9IZWlnaHQ6IGZhbHNlLFxyXG5cdFx0dmlkZW9XaWR0aDogZmFsc2VcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSB2aWRlbyBJRCBhbmQgdGhlIHR5cGUgKFlvdVR1YmUvVmltZW8vdnphYXIgb25seSkuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEBwYXJhbSB7alF1ZXJ5fSB0YXJnZXQgLSBUaGUgdGFyZ2V0IGNvbnRhaW5pbmcgdGhlIHZpZGVvIGRhdGEuXHJcblx0ICogQHBhcmFtIHtqUXVlcnl9IGl0ZW0gLSBUaGUgaXRlbSBjb250YWluaW5nIHRoZSB2aWRlby5cclxuXHQgKi9cclxuXHRWaWRlby5wcm90b3R5cGUuZmV0Y2ggPSBmdW5jdGlvbih0YXJnZXQsIGl0ZW0pIHtcclxuXHRcdFx0dmFyIHR5cGUgPSAoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRpZiAodGFyZ2V0LmF0dHIoJ2RhdGEtdmltZW8taWQnKSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gJ3ZpbWVvJztcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAodGFyZ2V0LmF0dHIoJ2RhdGEtdnphYXItaWQnKSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gJ3Z6YWFyJ1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuICd5b3V0dWJlJztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KSgpLFxyXG5cdFx0XHRcdGlkID0gdGFyZ2V0LmF0dHIoJ2RhdGEtdmltZW8taWQnKSB8fCB0YXJnZXQuYXR0cignZGF0YS15b3V0dWJlLWlkJykgfHwgdGFyZ2V0LmF0dHIoJ2RhdGEtdnphYXItaWQnKSxcclxuXHRcdFx0XHR3aWR0aCA9IHRhcmdldC5hdHRyKCdkYXRhLXdpZHRoJykgfHwgdGhpcy5fY29yZS5zZXR0aW5ncy52aWRlb1dpZHRoLFxyXG5cdFx0XHRcdGhlaWdodCA9IHRhcmdldC5hdHRyKCdkYXRhLWhlaWdodCcpIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MudmlkZW9IZWlnaHQsXHJcblx0XHRcdFx0dXJsID0gdGFyZ2V0LmF0dHIoJ2hyZWYnKTtcclxuXHJcblx0XHRpZiAodXJsKSB7XHJcblxyXG5cdFx0XHQvKlxyXG5cdFx0XHRcdFx0UGFyc2VzIHRoZSBpZCdzIG91dCBvZiB0aGUgZm9sbG93aW5nIHVybHMgKGFuZCBwcm9iYWJseSBtb3JlKTpcclxuXHRcdFx0XHRcdGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OmlkXHJcblx0XHRcdFx0XHRodHRwczovL3lvdXR1LmJlLzppZFxyXG5cdFx0XHRcdFx0aHR0cHM6Ly92aW1lby5jb20vOmlkXHJcblx0XHRcdFx0XHRodHRwczovL3ZpbWVvLmNvbS9jaGFubmVscy86Y2hhbm5lbC86aWRcclxuXHRcdFx0XHRcdGh0dHBzOi8vdmltZW8uY29tL2dyb3Vwcy86Z3JvdXAvdmlkZW9zLzppZFxyXG5cdFx0XHRcdFx0aHR0cHM6Ly9hcHAudnphYXIuY29tL3ZpZGVvcy86aWRcclxuXHJcblx0XHRcdFx0XHRWaXN1YWwgZXhhbXBsZTogaHR0cHM6Ly9yZWdleHBlci5jb20vIyhodHRwJTNBJTdDaHR0cHMlM0ElN0MpJTVDJTJGJTVDJTJGKHBsYXllci4lN0N3d3cuJTdDYXBwLiklM0YodmltZW8lNUMuY29tJTdDeW91dHUoYmUlNUMuY29tJTdDJTVDLmJlJTdDYmUlNUMuZ29vZ2xlYXBpcyU1Qy5jb20pJTdDdnphYXIlNUMuY29tKSU1QyUyRih2aWRlbyU1QyUyRiU3Q3ZpZGVvcyU1QyUyRiU3Q2VtYmVkJTVDJTJGJTdDY2hhbm5lbHMlNUMlMkYuJTJCJTVDJTJGJTdDZ3JvdXBzJTVDJTJGLiUyQiU1QyUyRiU3Q3dhdGNoJTVDJTNGdiUzRCU3Q3YlNUMlMkYpJTNGKCU1QkEtWmEtejAtOS5fJTI1LSU1RCopKCU1QyUyNiU1Q1MlMkIpJTNGXHJcblx0XHRcdCovXHJcblxyXG5cdFx0XHRpZCA9IHVybC5tYXRjaCgvKGh0dHA6fGh0dHBzOnwpXFwvXFwvKHBsYXllci58d3d3LnxhcHAuKT8odmltZW9cXC5jb218eW91dHUoYmVcXC5jb218XFwuYmV8YmVcXC5nb29nbGVhcGlzXFwuY29tKXx2emFhclxcLmNvbSlcXC8odmlkZW9cXC98dmlkZW9zXFwvfGVtYmVkXFwvfGNoYW5uZWxzXFwvLitcXC98Z3JvdXBzXFwvLitcXC98d2F0Y2hcXD92PXx2XFwvKT8oW0EtWmEtejAtOS5fJS1dKikoXFwmXFxTKyk/Lyk7XHJcblxyXG5cdFx0XHRpZiAoaWRbM10uaW5kZXhPZigneW91dHUnKSA+IC0xKSB7XHJcblx0XHRcdFx0dHlwZSA9ICd5b3V0dWJlJztcclxuXHRcdFx0fSBlbHNlIGlmIChpZFszXS5pbmRleE9mKCd2aW1lbycpID4gLTEpIHtcclxuXHRcdFx0XHR0eXBlID0gJ3ZpbWVvJztcclxuXHRcdFx0fSBlbHNlIGlmIChpZFszXS5pbmRleE9mKCd2emFhcicpID4gLTEpIHtcclxuXHRcdFx0XHR0eXBlID0gJ3Z6YWFyJztcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1ZpZGVvIFVSTCBub3Qgc3VwcG9ydGVkLicpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlkID0gaWRbNl07XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdmlkZW8gVVJMLicpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX3ZpZGVvc1t1cmxdID0ge1xyXG5cdFx0XHR0eXBlOiB0eXBlLFxyXG5cdFx0XHRpZDogaWQsXHJcblx0XHRcdHdpZHRoOiB3aWR0aCxcclxuXHRcdFx0aGVpZ2h0OiBoZWlnaHRcclxuXHRcdH07XHJcblxyXG5cdFx0aXRlbS5hdHRyKCdkYXRhLXZpZGVvJywgdXJsKTtcclxuXHJcblx0XHR0aGlzLnRodW1ibmFpbCh0YXJnZXQsIHRoaXMuX3ZpZGVvc1t1cmxdKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIHZpZGVvIHRodW1ibmFpbC5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHBhcmFtIHtqUXVlcnl9IHRhcmdldCAtIFRoZSB0YXJnZXQgY29udGFpbmluZyB0aGUgdmlkZW8gZGF0YS5cclxuXHQgKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFRoZSB2aWRlbyBpbmZvIG9iamVjdC5cclxuXHQgKiBAc2VlIGBmZXRjaGBcclxuXHQgKi9cclxuXHRWaWRlby5wcm90b3R5cGUudGh1bWJuYWlsID0gZnVuY3Rpb24odGFyZ2V0LCB2aWRlbykge1xyXG5cdFx0dmFyIHRuTGluayxcclxuXHRcdFx0aWNvbixcclxuXHRcdFx0cGF0aCxcclxuXHRcdFx0ZGltZW5zaW9ucyA9IHZpZGVvLndpZHRoICYmIHZpZGVvLmhlaWdodCA/ICdzdHlsZT1cIndpZHRoOicgKyB2aWRlby53aWR0aCArICdweDtoZWlnaHQ6JyArIHZpZGVvLmhlaWdodCArICdweDtcIicgOiAnJyxcclxuXHRcdFx0Y3VzdG9tVG4gPSB0YXJnZXQuZmluZCgnaW1nJyksXHJcblx0XHRcdHNyY1R5cGUgPSAnc3JjJyxcclxuXHRcdFx0bGF6eUNsYXNzID0gJycsXHJcblx0XHRcdHNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncyxcclxuXHRcdFx0Y3JlYXRlID0gZnVuY3Rpb24ocGF0aCkge1xyXG5cdFx0XHRcdGljb24gPSAnPGRpdiBjbGFzcz1cIm93bC12aWRlby1wbGF5LWljb25cIj48L2Rpdj4nO1xyXG5cclxuXHRcdFx0XHRpZiAoc2V0dGluZ3MubGF6eUxvYWQpIHtcclxuXHRcdFx0XHRcdHRuTGluayA9ICc8ZGl2IGNsYXNzPVwib3dsLXZpZGVvLXRuICcgKyBsYXp5Q2xhc3MgKyAnXCIgJyArIHNyY1R5cGUgKyAnPVwiJyArIHBhdGggKyAnXCI+PC9kaXY+JztcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dG5MaW5rID0gJzxkaXYgY2xhc3M9XCJvd2wtdmlkZW8tdG5cIiBzdHlsZT1cIm9wYWNpdHk6MTtiYWNrZ3JvdW5kLWltYWdlOnVybCgnICsgcGF0aCArICcpXCI+PC9kaXY+JztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGFyZ2V0LmFmdGVyKHRuTGluayk7XHJcblx0XHRcdFx0dGFyZ2V0LmFmdGVyKGljb24pO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdC8vIHdyYXAgdmlkZW8gY29udGVudCBpbnRvIG93bC12aWRlby13cmFwcGVyIGRpdlxyXG5cdFx0dGFyZ2V0LndyYXAoJzxkaXYgY2xhc3M9XCJvd2wtdmlkZW8td3JhcHBlclwiJyArIGRpbWVuc2lvbnMgKyAnPjwvZGl2PicpO1xyXG5cclxuXHRcdGlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmxhenlMb2FkKSB7XHJcblx0XHRcdHNyY1R5cGUgPSAnZGF0YS1zcmMnO1xyXG5cdFx0XHRsYXp5Q2xhc3MgPSAnb3dsLWxhenknO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGN1c3RvbSB0aHVtYm5haWxcclxuXHRcdGlmIChjdXN0b21Ubi5sZW5ndGgpIHtcclxuXHRcdFx0Y3JlYXRlKGN1c3RvbVRuLmF0dHIoc3JjVHlwZSkpO1xyXG5cdFx0XHRjdXN0b21Ubi5yZW1vdmUoKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh2aWRlby50eXBlID09PSAneW91dHViZScpIHtcclxuXHRcdFx0cGF0aCA9IFwiLy9pbWcueW91dHViZS5jb20vdmkvXCIgKyB2aWRlby5pZCArIFwiL2hxZGVmYXVsdC5qcGdcIjtcclxuXHRcdFx0Y3JlYXRlKHBhdGgpO1xyXG5cdFx0fSBlbHNlIGlmICh2aWRlby50eXBlID09PSAndmltZW8nKSB7XHJcblx0XHRcdCQuYWpheCh7XHJcblx0XHRcdFx0dHlwZTogJ0dFVCcsXHJcblx0XHRcdFx0dXJsOiAnLy92aW1lby5jb20vYXBpL3YyL3ZpZGVvLycgKyB2aWRlby5pZCArICcuanNvbicsXHJcblx0XHRcdFx0anNvbnA6ICdjYWxsYmFjaycsXHJcblx0XHRcdFx0ZGF0YVR5cGU6ICdqc29ucCcsXHJcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xyXG5cdFx0XHRcdFx0cGF0aCA9IGRhdGFbMF0udGh1bWJuYWlsX2xhcmdlO1xyXG5cdFx0XHRcdFx0Y3JlYXRlKHBhdGgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2emFhcicpIHtcclxuXHRcdFx0JC5hamF4KHtcclxuXHRcdFx0XHR0eXBlOiAnR0VUJyxcclxuXHRcdFx0XHR1cmw6ICcvL3Z6YWFyLmNvbS9hcGkvdmlkZW9zLycgKyB2aWRlby5pZCArICcuanNvbicsXHJcblx0XHRcdFx0anNvbnA6ICdjYWxsYmFjaycsXHJcblx0XHRcdFx0ZGF0YVR5cGU6ICdqc29ucCcsXHJcblx0XHRcdFx0c3VjY2VzczogZnVuY3Rpb24oZGF0YSkge1xyXG5cdFx0XHRcdFx0cGF0aCA9IGRhdGEuZnJhbWVncmFiX3VybDtcclxuXHRcdFx0XHRcdGNyZWF0ZShwYXRoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0b3BzIHRoZSBjdXJyZW50IHZpZGVvLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHRWaWRlby5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dGhpcy5fY29yZS50cmlnZ2VyKCdzdG9wJywgbnVsbCwgJ3ZpZGVvJyk7XHJcblx0XHR0aGlzLl9wbGF5aW5nLmZpbmQoJy5vd2wtdmlkZW8tZnJhbWUnKS5yZW1vdmUoKTtcclxuXHRcdHRoaXMuX3BsYXlpbmcucmVtb3ZlQ2xhc3MoJ293bC12aWRlby1wbGF5aW5nJyk7XHJcblx0XHR0aGlzLl9wbGF5aW5nID0gbnVsbDtcclxuXHRcdHRoaXMuX2NvcmUubGVhdmUoJ3BsYXlpbmcnKTtcclxuXHRcdHRoaXMuX2NvcmUudHJpZ2dlcignc3RvcHBlZCcsIG51bGwsICd2aWRlbycpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0YXJ0cyB0aGUgY3VycmVudCB2aWRlby5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLlxyXG5cdCAqL1xyXG5cdFZpZGVvLnByb3RvdHlwZS5wbGF5ID0gZnVuY3Rpb24oZXZlbnQpIHtcclxuXHRcdHZhciB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCksXHJcblx0XHRcdGl0ZW0gPSB0YXJnZXQuY2xvc2VzdCgnLicgKyB0aGlzLl9jb3JlLnNldHRpbmdzLml0ZW1DbGFzcyksXHJcblx0XHRcdHZpZGVvID0gdGhpcy5fdmlkZW9zW2l0ZW0uYXR0cignZGF0YS12aWRlbycpXSxcclxuXHRcdFx0d2lkdGggPSB2aWRlby53aWR0aCB8fCAnMTAwJScsXHJcblx0XHRcdGhlaWdodCA9IHZpZGVvLmhlaWdodCB8fCB0aGlzLl9jb3JlLiRzdGFnZS5oZWlnaHQoKSxcclxuXHRcdFx0aHRtbDtcclxuXHJcblx0XHRpZiAodGhpcy5fcGxheWluZykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fY29yZS5lbnRlcigncGxheWluZycpO1xyXG5cdFx0dGhpcy5fY29yZS50cmlnZ2VyKCdwbGF5JywgbnVsbCwgJ3ZpZGVvJyk7XHJcblxyXG5cdFx0aXRlbSA9IHRoaXMuX2NvcmUuaXRlbXModGhpcy5fY29yZS5yZWxhdGl2ZShpdGVtLmluZGV4KCkpKTtcclxuXHJcblx0XHR0aGlzLl9jb3JlLnJlc2V0KGl0ZW0uaW5kZXgoKSk7XHJcblxyXG5cdFx0aWYgKHZpZGVvLnR5cGUgPT09ICd5b3V0dWJlJykge1xyXG5cdFx0XHRodG1sID0gJzxpZnJhbWUgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArICdcIiBzcmM9XCIvL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8nICtcclxuXHRcdFx0XHR2aWRlby5pZCArICc/YXV0b3BsYXk9MSZyZWw9MCZ2PScgKyB2aWRlby5pZCArICdcIiBmcmFtZWJvcmRlcj1cIjBcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JztcclxuXHRcdH0gZWxzZSBpZiAodmlkZW8udHlwZSA9PT0gJ3ZpbWVvJykge1xyXG5cdFx0XHRodG1sID0gJzxpZnJhbWUgc3JjPVwiLy9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLycgKyB2aWRlby5pZCArXHJcblx0XHRcdFx0Jz9hdXRvcGxheT0xXCIgd2lkdGg9XCInICsgd2lkdGggKyAnXCIgaGVpZ2h0PVwiJyArIGhlaWdodCArXHJcblx0XHRcdFx0J1wiIGZyYW1lYm9yZGVyPVwiMFwiIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBtb3phbGxvd2Z1bGxzY3JlZW4gYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPic7XHJcblx0XHR9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2emFhcicpIHtcclxuXHRcdFx0aHRtbCA9ICc8aWZyYW1lIGZyYW1lYm9yZGVyPVwiMFwiJyArICdoZWlnaHQ9XCInICsgaGVpZ2h0ICsgJ1wiJyArICd3aWR0aD1cIicgKyB3aWR0aCArXHJcblx0XHRcdFx0J1wiIGFsbG93ZnVsbHNjcmVlbiBtb3phbGxvd2Z1bGxzY3JlZW4gd2Via2l0QWxsb3dGdWxsU2NyZWVuICcgK1xyXG5cdFx0XHRcdCdzcmM9XCIvL3ZpZXcudnphYXIuY29tLycgKyB2aWRlby5pZCArICcvcGxheWVyP2F1dG9wbGF5PXRydWVcIj48L2lmcmFtZT4nO1xyXG5cdFx0fVxyXG5cclxuXHRcdCQoJzxkaXYgY2xhc3M9XCJvd2wtdmlkZW8tZnJhbWVcIj4nICsgaHRtbCArICc8L2Rpdj4nKS5pbnNlcnRBZnRlcihpdGVtLmZpbmQoJy5vd2wtdmlkZW8nKSk7XHJcblxyXG5cdFx0dGhpcy5fcGxheWluZyA9IGl0ZW0uYWRkQ2xhc3MoJ293bC12aWRlby1wbGF5aW5nJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzIHdoZXRoZXIgYW4gdmlkZW8gaXMgY3VycmVudGx5IGluIGZ1bGwgc2NyZWVuIG1vZGUgb3Igbm90LlxyXG5cdCAqIEB0b2RvIEJhZCBzdHlsZSBiZWNhdXNlIGxvb2tzIGxpa2UgYSByZWFkb25seSBtZXRob2QgYnV0IGNoYW5nZXMgbWVtYmVycy5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICogQHJldHVybnMge0Jvb2xlYW59XHJcblx0ICovXHJcblx0VmlkZW8ucHJvdG90eXBlLmlzSW5GdWxsU2NyZWVuID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgZWxlbWVudCA9IGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50IHx8XHJcblx0XHRcdFx0ZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQ7XHJcblxyXG5cdFx0cmV0dXJuIGVsZW1lbnQgJiYgJChlbGVtZW50KS5wYXJlbnQoKS5oYXNDbGFzcygnb3dsLXZpZGVvLWZyYW1lJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVzdHJveXMgdGhlIHBsdWdpbi5cclxuXHQgKi9cclxuXHRWaWRlby5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGhhbmRsZXIsIHByb3BlcnR5O1xyXG5cclxuXHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKCdjbGljay5vd2wudmlkZW8nKTtcclxuXHJcblx0XHRmb3IgKGhhbmRsZXIgaW4gdGhpcy5faGFuZGxlcnMpIHtcclxuXHRcdFx0dGhpcy5fY29yZS4kZWxlbWVudC5vZmYoaGFuZGxlciwgdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0pO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkge1xyXG5cdFx0XHR0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuVmlkZW8gPSBWaWRlbztcclxuXHJcbn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTtcclxuXHJcbi8qKlxyXG4gKiBBbmltYXRlIFBsdWdpblxyXG4gKiBAdmVyc2lvbiAyLjEuMFxyXG4gKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraVxyXG4gKiBAYXV0aG9yIERhdmlkIERldXRzY2hcclxuICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpXHJcbiAqL1xyXG47KGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkge1xyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIHRoZSBhbmltYXRlIHBsdWdpbi5cclxuXHQgKiBAY2xhc3MgVGhlIE5hdmlnYXRpb24gUGx1Z2luXHJcblx0ICogQHBhcmFtIHtPd2x9IHNjb3BlIC0gVGhlIE93bCBDYXJvdXNlbFxyXG5cdCAqL1xyXG5cdHZhciBBbmltYXRlID0gZnVuY3Rpb24oc2NvcGUpIHtcclxuXHRcdHRoaXMuY29yZSA9IHNjb3BlO1xyXG5cdFx0dGhpcy5jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgQW5pbWF0ZS5EZWZhdWx0cywgdGhpcy5jb3JlLm9wdGlvbnMpO1xyXG5cdFx0dGhpcy5zd2FwcGluZyA9IHRydWU7XHJcblx0XHR0aGlzLnByZXZpb3VzID0gdW5kZWZpbmVkO1xyXG5cdFx0dGhpcy5uZXh0ID0gdW5kZWZpbmVkO1xyXG5cclxuXHRcdHRoaXMuaGFuZGxlcnMgPSB7XHJcblx0XHRcdCdjaGFuZ2Uub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PSAncG9zaXRpb24nKSB7XHJcblx0XHRcdFx0XHR0aGlzLnByZXZpb3VzID0gdGhpcy5jb3JlLmN1cnJlbnQoKTtcclxuXHRcdFx0XHRcdHRoaXMubmV4dCA9IGUucHJvcGVydHkudmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J2RyYWcub3dsLmNhcm91c2VsIGRyYWdnZWQub3dsLmNhcm91c2VsIHRyYW5zbGF0ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnN3YXBwaW5nID0gZS50eXBlID09ICd0cmFuc2xhdGVkJztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQndHJhbnNsYXRlLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLnN3YXBwaW5nICYmICh0aGlzLmNvcmUub3B0aW9ucy5hbmltYXRlT3V0IHx8IHRoaXMuY29yZS5vcHRpb25zLmFuaW1hdGVJbikpIHtcclxuXHRcdFx0XHRcdHRoaXMuc3dhcCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcylcclxuXHRcdH07XHJcblxyXG5cdFx0dGhpcy5jb3JlLiRlbGVtZW50Lm9uKHRoaXMuaGFuZGxlcnMpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlZmF1bHQgb3B0aW9ucy5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0QW5pbWF0ZS5EZWZhdWx0cyA9IHtcclxuXHRcdGFuaW1hdGVPdXQ6IGZhbHNlLFxyXG5cdFx0YW5pbWF0ZUluOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRvZ2dsZXMgdGhlIGFuaW1hdGlvbiBjbGFzc2VzIHdoZW5ldmVyIGFuIHRyYW5zbGF0aW9ucyBzdGFydHMuXHJcblx0ICogQHByb3RlY3RlZFxyXG5cdCAqIEByZXR1cm5zIHtCb29sZWFufHVuZGVmaW5lZH1cclxuXHQgKi9cclxuXHRBbmltYXRlLnByb3RvdHlwZS5zd2FwID0gZnVuY3Rpb24oKSB7XHJcblxyXG5cdFx0aWYgKHRoaXMuY29yZS5zZXR0aW5ncy5pdGVtcyAhPT0gMSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCEkLnN1cHBvcnQuYW5pbWF0aW9uIHx8ICEkLnN1cHBvcnQudHJhbnNpdGlvbikge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jb3JlLnNwZWVkKDApO1xyXG5cclxuXHRcdHZhciBsZWZ0LFxyXG5cdFx0XHRjbGVhciA9ICQucHJveHkodGhpcy5jbGVhciwgdGhpcyksXHJcblx0XHRcdHByZXZpb3VzID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMucHJldmlvdXMpLFxyXG5cdFx0XHRuZXh0ID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMubmV4dCksXHJcblx0XHRcdGluY29taW5nID0gdGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbixcclxuXHRcdFx0b3V0Z29pbmcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZU91dDtcclxuXHJcblx0XHRpZiAodGhpcy5jb3JlLmN1cnJlbnQoKSA9PT0gdGhpcy5wcmV2aW91cykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKG91dGdvaW5nKSB7XHJcblx0XHRcdGxlZnQgPSB0aGlzLmNvcmUuY29vcmRpbmF0ZXModGhpcy5wcmV2aW91cykgLSB0aGlzLmNvcmUuY29vcmRpbmF0ZXModGhpcy5uZXh0KTtcclxuXHRcdFx0cHJldmlvdXMub25lKCQuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjbGVhcilcclxuXHRcdFx0XHQuY3NzKCB7ICdsZWZ0JzogbGVmdCArICdweCcgfSApXHJcblx0XHRcdFx0LmFkZENsYXNzKCdhbmltYXRlZCBvd2wtYW5pbWF0ZWQtb3V0JylcclxuXHRcdFx0XHQuYWRkQ2xhc3Mob3V0Z29pbmcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpbmNvbWluZykge1xyXG5cdFx0XHRuZXh0Lm9uZSgkLnN1cHBvcnQuYW5pbWF0aW9uLmVuZCwgY2xlYXIpXHJcblx0XHRcdFx0LmFkZENsYXNzKCdhbmltYXRlZCBvd2wtYW5pbWF0ZWQtaW4nKVxyXG5cdFx0XHRcdC5hZGRDbGFzcyhpbmNvbWluZyk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0QW5pbWF0ZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbihlKSB7XHJcblx0XHQkKGUudGFyZ2V0KS5jc3MoIHsgJ2xlZnQnOiAnJyB9IClcclxuXHRcdFx0LnJlbW92ZUNsYXNzKCdhbmltYXRlZCBvd2wtYW5pbWF0ZWQtb3V0IG93bC1hbmltYXRlZC1pbicpXHJcblx0XHRcdC5yZW1vdmVDbGFzcyh0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZUluKVxyXG5cdFx0XHQucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVPdXQpO1xyXG5cdFx0dGhpcy5jb3JlLm9uVHJhbnNpdGlvbkVuZCgpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdEFuaW1hdGUucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBoYW5kbGVyLCBwcm9wZXJ0eTtcclxuXHJcblx0XHRmb3IgKGhhbmRsZXIgaW4gdGhpcy5oYW5kbGVycykge1xyXG5cdFx0XHR0aGlzLmNvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuaGFuZGxlcnNbaGFuZGxlcl0pO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkge1xyXG5cdFx0XHR0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQW5pbWF0ZSA9IEFuaW1hdGU7XHJcblxyXG59KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XHJcblxyXG4vKipcclxuICogQXV0b3BsYXkgUGx1Z2luXHJcbiAqIEB2ZXJzaW9uIDIuMS4wXHJcbiAqIEBhdXRob3IgQmFydG9zeiBXb2pjaWVjaG93c2tpXHJcbiAqIEBhdXRob3IgQXJ0dXMgS29sYW5vd3NraVxyXG4gKiBAYXV0aG9yIERhdmlkIERldXRzY2hcclxuICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpXHJcbiAqL1xyXG47KGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkge1xyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIHRoZSBhdXRvcGxheSBwbHVnaW4uXHJcblx0ICogQGNsYXNzIFRoZSBBdXRvcGxheSBQbHVnaW5cclxuXHQgKiBAcGFyYW0ge093bH0gc2NvcGUgLSBUaGUgT3dsIENhcm91c2VsXHJcblx0ICovXHJcblx0dmFyIEF1dG9wbGF5ID0gZnVuY3Rpb24oY2Fyb3VzZWwpIHtcclxuXHRcdC8qKlxyXG5cdFx0ICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge093bH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fY29yZSA9IGNhcm91c2VsO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogVGhlIGF1dG9wbGF5IHRpbWVvdXQuXHJcblx0XHQgKiBAdHlwZSB7VGltZW91dH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fdGltZW91dCA9IG51bGw7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBJbmRpY2F0ZXMgd2hlbmV2ZXIgdGhlIGF1dG9wbGF5IGlzIHBhdXNlZC5cclxuXHRcdCAqIEB0eXBlIHtCb29sZWFufVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9wYXVzZWQgPSBmYWxzZTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEFsbCBldmVudCBoYW5kbGVycy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPYmplY3R9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2hhbmRsZXJzID0ge1xyXG5cdFx0XHQnY2hhbmdlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAnc2V0dGluZ3MnKSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnBsYXkoKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuc3RvcCgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nKSB7XHJcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKCdwbGF5PycsIGUpO1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXkpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5fc2V0QXV0b1BsYXlJbnRlcnZhbCgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcyksXHJcblx0XHRcdCdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSkge1xyXG5cdFx0XHRcdFx0dGhpcy5wbGF5KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J3BsYXkub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbihlLCB0LCBzKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXkodCwgcyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J3N0b3Aub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnN0b3AoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQnbW91c2VvdmVyLm93bC5hdXRvcGxheSc6ICQucHJveHkoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHtcclxuXHRcdFx0XHRcdHRoaXMucGF1c2UoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQnbW91c2VsZWF2ZS5vd2wuYXV0b3BsYXknOiAkLnByb3h5KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7XHJcblx0XHRcdFx0XHR0aGlzLnBsYXkoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQndG91Y2hzdGFydC5vd2wuY29yZSc6ICQucHJveHkoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlIb3ZlclBhdXNlICYmIHRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHtcclxuXHRcdFx0XHRcdHRoaXMucGF1c2UoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQndG91Y2hlbmQub3dsLmNvcmUnOiAkLnByb3h5KGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSkge1xyXG5cdFx0XHRcdFx0dGhpcy5wbGF5KCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKVxyXG5cdFx0fTtcclxuXHJcblx0XHQvLyByZWdpc3RlciBldmVudCBoYW5kbGVyc1xyXG5cdFx0dGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7XHJcblxyXG5cdFx0Ly8gc2V0IGRlZmF1bHQgb3B0aW9uc1xyXG5cdFx0dGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEF1dG9wbGF5LkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlZmF1bHQgb3B0aW9ucy5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0QXV0b3BsYXkuRGVmYXVsdHMgPSB7XHJcblx0XHRhdXRvcGxheTogZmFsc2UsXHJcblx0XHRhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXHJcblx0XHRhdXRvcGxheUhvdmVyUGF1c2U6IGZhbHNlLFxyXG5cdFx0YXV0b3BsYXlTcGVlZDogZmFsc2VcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTdGFydHMgdGhlIGF1dG9wbGF5LlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3RpbWVvdXRdIC0gVGhlIGludGVydmFsIGJlZm9yZSB0aGUgbmV4dCBhbmltYXRpb24gc3RhcnRzLlxyXG5cdCAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWRdIC0gVGhlIGFuaW1hdGlvbiBzcGVlZCBmb3IgdGhlIGFuaW1hdGlvbnMuXHJcblx0ICovXHJcblx0QXV0b3BsYXkucHJvdG90eXBlLnBsYXkgPSBmdW5jdGlvbih0aW1lb3V0LCBzcGVlZCkge1xyXG5cdFx0dGhpcy5fcGF1c2VkID0gZmFsc2U7XHJcblxyXG5cdFx0aWYgKHRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2NvcmUuZW50ZXIoJ3JvdGF0aW5nJyk7XHJcblxyXG5cdFx0dGhpcy5fc2V0QXV0b1BsYXlJbnRlcnZhbCgpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgYSBuZXcgdGltZW91dFxyXG5cdCAqIEBwcml2YXRlXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFt0aW1lb3V0XSAtIFRoZSBpbnRlcnZhbCBiZWZvcmUgdGhlIG5leHQgYW5pbWF0aW9uIHN0YXJ0cy5cclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgZm9yIHRoZSBhbmltYXRpb25zLlxyXG5cdCAqIEByZXR1cm4ge1RpbWVvdXR9XHJcblx0ICovXHJcblx0QXV0b3BsYXkucHJvdG90eXBlLl9nZXROZXh0VGltZW91dCA9IGZ1bmN0aW9uKHRpbWVvdXQsIHNwZWVkKSB7XHJcblx0XHRpZiAoIHRoaXMuX3RpbWVvdXQgKSB7XHJcblx0XHRcdHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gd2luZG93LnNldFRpbWVvdXQoJC5wcm94eShmdW5jdGlvbigpIHtcclxuXHRcdFx0aWYgKHRoaXMuX3BhdXNlZCB8fCB0aGlzLl9jb3JlLmlzKCdidXN5JykgfHwgdGhpcy5fY29yZS5pcygnaW50ZXJhY3RpbmcnKSB8fCBkb2N1bWVudC5oaWRkZW4pIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5fY29yZS5uZXh0KHNwZWVkIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlTcGVlZCk7XHJcblx0XHR9LCB0aGlzKSwgdGltZW91dCB8fCB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5VGltZW91dCk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2V0cyBhdXRvcGxheSBpbiBtb3Rpb24uXHJcblx0ICogQHByaXZhdGVcclxuXHQgKi9cclxuXHRBdXRvcGxheS5wcm90b3R5cGUuX3NldEF1dG9QbGF5SW50ZXJ2YWwgPSBmdW5jdGlvbigpIHtcclxuXHRcdHRoaXMuX3RpbWVvdXQgPSB0aGlzLl9nZXROZXh0VGltZW91dCgpO1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0b3BzIHRoZSBhdXRvcGxheS5cclxuXHQgKiBAcHVibGljXHJcblx0ICovXHJcblx0QXV0b3BsYXkucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbigpIHtcclxuXHRcdGlmICghdGhpcy5fY29yZS5pcygncm90YXRpbmcnKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0d2luZG93LmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtcclxuXHRcdHRoaXMuX2NvcmUubGVhdmUoJ3JvdGF0aW5nJyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU3RvcHMgdGhlIGF1dG9wbGF5LlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHRBdXRvcGxheS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbigpIHtcclxuXHRcdGlmICghdGhpcy5fY29yZS5pcygncm90YXRpbmcnKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fcGF1c2VkID0gdHJ1ZTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEZXN0cm95cyB0aGUgcGx1Z2luLlxyXG5cdCAqL1xyXG5cdEF1dG9wbGF5LnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgaGFuZGxlciwgcHJvcGVydHk7XHJcblxyXG5cdFx0dGhpcy5zdG9wKCk7XHJcblxyXG5cdFx0Zm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7XHJcblx0XHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdKTtcclxuXHRcdH1cclxuXHRcdGZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHtcclxuXHRcdFx0dHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0JC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLmF1dG9wbGF5ID0gQXV0b3BsYXk7XHJcblxyXG59KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7XHJcblxyXG4vKipcclxuICogTmF2aWdhdGlvbiBQbHVnaW5cclxuICogQHZlcnNpb24gMi4xLjBcclxuICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpXHJcbiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaFxyXG4gKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVClcclxuICovXHJcbjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7XHJcblx0J3VzZSBzdHJpY3QnO1xyXG5cclxuXHQvKipcclxuXHQgKiBDcmVhdGVzIHRoZSBuYXZpZ2F0aW9uIHBsdWdpbi5cclxuXHQgKiBAY2xhc3MgVGhlIE5hdmlnYXRpb24gUGx1Z2luXHJcblx0ICogQHBhcmFtIHtPd2x9IGNhcm91c2VsIC0gVGhlIE93bCBDYXJvdXNlbC5cclxuXHQgKi9cclxuXHR2YXIgTmF2aWdhdGlvbiA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7XHJcblx0XHQvKipcclxuXHRcdCAqIFJlZmVyZW5jZSB0byB0aGUgY29yZS5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtPd2x9XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2NvcmUgPSBjYXJvdXNlbDtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBwbHVnaW4gaXMgaW5pdGlhbGl6ZWQgb3Igbm90LlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge0Jvb2xlYW59XHJcblx0XHQgKi9cclxuXHRcdHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBUaGUgY3VycmVudCBwYWdpbmcgaW5kZXhlcy5cclxuXHRcdCAqIEBwcm90ZWN0ZWRcclxuXHRcdCAqIEB0eXBlIHtBcnJheX1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fcGFnZXMgPSBbXTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIEFsbCBET00gZWxlbWVudHMgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge09iamVjdH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fY29udHJvbHMgPSB7fTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIE1hcmt1cCBmb3IgYW4gaW5kaWNhdG9yLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge0FycmF5LjxTdHJpbmc+fVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl90ZW1wbGF0ZXMgPSBbXTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFRoZSBjYXJvdXNlbCBlbGVtZW50LlxyXG5cdFx0ICogQHR5cGUge2pRdWVyeX1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQ7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBPdmVycmlkZGVuIG1ldGhvZHMgb2YgdGhlIGNhcm91c2VsLlxyXG5cdFx0ICogQHByb3RlY3RlZFxyXG5cdFx0ICogQHR5cGUge09iamVjdH1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy5fb3ZlcnJpZGVzID0ge1xyXG5cdFx0XHRuZXh0OiB0aGlzLl9jb3JlLm5leHQsXHJcblx0XHRcdHByZXY6IHRoaXMuX2NvcmUucHJldixcclxuXHRcdFx0dG86IHRoaXMuX2NvcmUudG9cclxuXHRcdH07XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBBbGwgZXZlbnQgaGFuZGxlcnMuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T2JqZWN0fVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9oYW5kbGVycyA9IHtcclxuXHRcdFx0J3ByZXBhcmVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdHNEYXRhKSB7XHJcblx0XHRcdFx0XHR0aGlzLl90ZW1wbGF0ZXMucHVzaCgnPGRpdiBjbGFzcz1cIicgKyB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdENsYXNzICsgJ1wiPicgK1xyXG5cdFx0XHRcdFx0XHQkKGUuY29udGVudCkuZmluZCgnW2RhdGEtZG90XScpLmFkZEJhY2soJ1tkYXRhLWRvdF0nKS5hdHRyKCdkYXRhLWRvdCcpICsgJzwvZGl2PicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcyksXHJcblx0XHRcdCdhZGRlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fdGVtcGxhdGVzLnNwbGljZShlLnBvc2l0aW9uLCAwLCB0aGlzLl90ZW1wbGF0ZXMucG9wKCkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSwgdGhpcyksXHJcblx0XHRcdCdyZW1vdmUub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuZG90c0RhdGEpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RlbXBsYXRlcy5zcGxpY2UoZS5wb3NpdGlvbiwgMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PSAncG9zaXRpb24nKSB7XHJcblx0XHRcdFx0XHR0aGlzLmRyYXcoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQnaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmICF0aGlzLl9pbml0aWFsaXplZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5fY29yZS50cmlnZ2VyKCdpbml0aWFsaXplJywgbnVsbCwgJ25hdmlnYXRpb24nKTtcclxuXHRcdFx0XHRcdHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy51cGRhdGUoKTtcclxuXHRcdFx0XHRcdHRoaXMuZHJhdygpO1xyXG5cdFx0XHRcdFx0dGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5fY29yZS50cmlnZ2VyKCdpbml0aWFsaXplZCcsIG51bGwsICduYXZpZ2F0aW9uJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J3JlZnJlc2hlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHRpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5faW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuX2NvcmUudHJpZ2dlcigncmVmcmVzaCcsIG51bGwsICduYXZpZ2F0aW9uJyk7XHJcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5kcmF3KCk7XHJcblx0XHRcdFx0XHR0aGlzLl9jb3JlLnRyaWdnZXIoJ3JlZnJlc2hlZCcsIG51bGwsICduYXZpZ2F0aW9uJyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKVxyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBzZXQgZGVmYXVsdCBvcHRpb25zXHJcblx0XHR0aGlzLl9jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTmF2aWdhdGlvbi5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTtcclxuXHJcblx0XHQvLyByZWdpc3RlciBldmVudCBoYW5kbGVyc1xyXG5cdFx0dGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVmYXVsdCBvcHRpb25zLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAdG9kbyBSZW5hbWUgYHNsaWRlQnlgIHRvIGBuYXZCeWBcclxuXHQgKi9cclxuXHROYXZpZ2F0aW9uLkRlZmF1bHRzID0ge1xyXG5cdFx0bmF2OiBmYWxzZSxcclxuXHRcdG5hdlRleHQ6IFsgJ3ByZXYnLCAnbmV4dCcgXSxcclxuXHRcdG5hdlNwZWVkOiBmYWxzZSxcclxuXHRcdG5hdkVsZW1lbnQ6ICdkaXYnLFxyXG5cdFx0bmF2Q29udGFpbmVyOiBmYWxzZSxcclxuXHRcdG5hdkNvbnRhaW5lckNsYXNzOiAnb3dsLW5hdicsXHJcblx0XHRuYXZDbGFzczogWyAnb3dsLXByZXYnLCAnb3dsLW5leHQnIF0sXHJcblx0XHRzbGlkZUJ5OiAxLFxyXG5cdFx0ZG90Q2xhc3M6ICdvd2wtZG90JyxcclxuXHRcdGRvdHNDbGFzczogJ293bC1kb3RzJyxcclxuXHRcdGRvdHM6IHRydWUsXHJcblx0XHRkb3RzRWFjaDogZmFsc2UsXHJcblx0XHRkb3RzRGF0YTogZmFsc2UsXHJcblx0XHRkb3RzU3BlZWQ6IGZhbHNlLFxyXG5cdFx0ZG90c0NvbnRhaW5lcjogZmFsc2VcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBJbml0aWFsaXplcyB0aGUgbGF5b3V0IG9mIHRoZSBwbHVnaW4gYW5kIGV4dGVuZHMgdGhlIGNhcm91c2VsLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKi9cclxuXHROYXZpZ2F0aW9uLnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgb3ZlcnJpZGUsXHJcblx0XHRcdHNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncztcclxuXHJcblx0XHQvLyBjcmVhdGUgRE9NIHN0cnVjdHVyZSBmb3IgcmVsYXRpdmUgbmF2aWdhdGlvblxyXG5cdFx0dGhpcy5fY29udHJvbHMuJHJlbGF0aXZlID0gKHNldHRpbmdzLm5hdkNvbnRhaW5lciA/ICQoc2V0dGluZ3MubmF2Q29udGFpbmVyKVxyXG5cdFx0XHQ6ICQoJzxkaXY+JykuYWRkQ2xhc3Moc2V0dGluZ3MubmF2Q29udGFpbmVyQ2xhc3MpLmFwcGVuZFRvKHRoaXMuJGVsZW1lbnQpKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcclxuXHJcblx0XHR0aGlzLl9jb250cm9scy4kcHJldmlvdXMgPSAkKCc8JyArIHNldHRpbmdzLm5hdkVsZW1lbnQgKyAnPicpXHJcblx0XHRcdC5hZGRDbGFzcyhzZXR0aW5ncy5uYXZDbGFzc1swXSlcclxuXHRcdFx0Lmh0bWwoc2V0dGluZ3MubmF2VGV4dFswXSlcclxuXHRcdFx0LnByZXBlbmRUbyh0aGlzLl9jb250cm9scy4kcmVsYXRpdmUpXHJcblx0XHRcdC5vbignY2xpY2snLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0XHR0aGlzLnByZXYoc2V0dGluZ3MubmF2U3BlZWQpO1xyXG5cdFx0XHR9LCB0aGlzKSk7XHJcblx0XHR0aGlzLl9jb250cm9scy4kbmV4dCA9ICQoJzwnICsgc2V0dGluZ3MubmF2RWxlbWVudCArICc+JylcclxuXHRcdFx0LmFkZENsYXNzKHNldHRpbmdzLm5hdkNsYXNzWzFdKVxyXG5cdFx0XHQuaHRtbChzZXR0aW5ncy5uYXZUZXh0WzFdKVxyXG5cdFx0XHQuYXBwZW5kVG8odGhpcy5fY29udHJvbHMuJHJlbGF0aXZlKVxyXG5cdFx0XHQub24oJ2NsaWNrJywgJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0dGhpcy5uZXh0KHNldHRpbmdzLm5hdlNwZWVkKTtcclxuXHRcdFx0fSwgdGhpcykpO1xyXG5cclxuXHRcdC8vIGNyZWF0ZSBET00gc3RydWN0dXJlIGZvciBhYnNvbHV0ZSBuYXZpZ2F0aW9uXHJcblx0XHRpZiAoIXNldHRpbmdzLmRvdHNEYXRhKSB7XHJcblx0XHRcdHRoaXMuX3RlbXBsYXRlcyA9IFsgJCgnPGRpdj4nKVxyXG5cdFx0XHRcdC5hZGRDbGFzcyhzZXR0aW5ncy5kb3RDbGFzcylcclxuXHRcdFx0XHQuYXBwZW5kKCQoJzxzcGFuPicpKVxyXG5cdFx0XHRcdC5wcm9wKCdvdXRlckhUTUwnKSBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSA9IChzZXR0aW5ncy5kb3RzQ29udGFpbmVyID8gJChzZXR0aW5ncy5kb3RzQ29udGFpbmVyKVxyXG5cdFx0XHQ6ICQoJzxkaXY+JykuYWRkQ2xhc3Moc2V0dGluZ3MuZG90c0NsYXNzKS5hcHBlbmRUbyh0aGlzLiRlbGVtZW50KSkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XHJcblxyXG5cdFx0dGhpcy5fY29udHJvbHMuJGFic29sdXRlLm9uKCdjbGljaycsICdkaXYnLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHtcclxuXHRcdFx0dmFyIGluZGV4ID0gJChlLnRhcmdldCkucGFyZW50KCkuaXModGhpcy5fY29udHJvbHMuJGFic29sdXRlKVxyXG5cdFx0XHRcdD8gJChlLnRhcmdldCkuaW5kZXgoKSA6ICQoZS50YXJnZXQpLnBhcmVudCgpLmluZGV4KCk7XHJcblxyXG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0XHR0aGlzLnRvKGluZGV4LCBzZXR0aW5ncy5kb3RzU3BlZWQpO1xyXG5cdFx0fSwgdGhpcykpO1xyXG5cclxuXHRcdC8vIG92ZXJyaWRlIHB1YmxpYyBtZXRob2RzIG9mIHRoZSBjYXJvdXNlbFxyXG5cdFx0Zm9yIChvdmVycmlkZSBpbiB0aGlzLl9vdmVycmlkZXMpIHtcclxuXHRcdFx0dGhpcy5fY29yZVtvdmVycmlkZV0gPSAkLnByb3h5KHRoaXNbb3ZlcnJpZGVdLCB0aGlzKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEZXN0cm95cyB0aGUgcGx1Z2luLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKi9cclxuXHROYXZpZ2F0aW9uLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgaGFuZGxlciwgY29udHJvbCwgcHJvcGVydHksIG92ZXJyaWRlO1xyXG5cclxuXHRcdGZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykge1xyXG5cdFx0XHR0aGlzLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7XHJcblx0XHR9XHJcblx0XHRmb3IgKGNvbnRyb2wgaW4gdGhpcy5fY29udHJvbHMpIHtcclxuXHRcdFx0dGhpcy5fY29udHJvbHNbY29udHJvbF0ucmVtb3ZlKCk7XHJcblx0XHR9XHJcblx0XHRmb3IgKG92ZXJyaWRlIGluIHRoaXMub3ZlcmlkZXMpIHtcclxuXHRcdFx0dGhpcy5fY29yZVtvdmVycmlkZV0gPSB0aGlzLl9vdmVycmlkZXNbb3ZlcnJpZGVdO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkge1xyXG5cdFx0XHR0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGVzIHRoZSBpbnRlcm5hbCBzdGF0ZS5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICovXHJcblx0TmF2aWdhdGlvbi5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgaSwgaiwgayxcclxuXHRcdFx0bG93ZXIgPSB0aGlzLl9jb3JlLmNsb25lcygpLmxlbmd0aCAvIDIsXHJcblx0XHRcdHVwcGVyID0gbG93ZXIgKyB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoLFxyXG5cdFx0XHRtYXhpbXVtID0gdGhpcy5fY29yZS5tYXhpbXVtKHRydWUpLFxyXG5cdFx0XHRzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsXHJcblx0XHRcdHNpemUgPSBzZXR0aW5ncy5jZW50ZXIgfHwgc2V0dGluZ3MuYXV0b1dpZHRoIHx8IHNldHRpbmdzLmRvdHNEYXRhXHJcblx0XHRcdFx0PyAxIDogc2V0dGluZ3MuZG90c0VhY2ggfHwgc2V0dGluZ3MuaXRlbXM7XHJcblxyXG5cdFx0aWYgKHNldHRpbmdzLnNsaWRlQnkgIT09ICdwYWdlJykge1xyXG5cdFx0XHRzZXR0aW5ncy5zbGlkZUJ5ID0gTWF0aC5taW4oc2V0dGluZ3Muc2xpZGVCeSwgc2V0dGluZ3MuaXRlbXMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChzZXR0aW5ncy5kb3RzIHx8IHNldHRpbmdzLnNsaWRlQnkgPT0gJ3BhZ2UnKSB7XHJcblx0XHRcdHRoaXMuX3BhZ2VzID0gW107XHJcblxyXG5cdFx0XHRmb3IgKGkgPSBsb3dlciwgaiA9IDAsIGsgPSAwOyBpIDwgdXBwZXI7IGkrKykge1xyXG5cdFx0XHRcdGlmIChqID49IHNpemUgfHwgaiA9PT0gMCkge1xyXG5cdFx0XHRcdFx0dGhpcy5fcGFnZXMucHVzaCh7XHJcblx0XHRcdFx0XHRcdHN0YXJ0OiBNYXRoLm1pbihtYXhpbXVtLCBpIC0gbG93ZXIpLFxyXG5cdFx0XHRcdFx0XHRlbmQ6IGkgLSBsb3dlciArIHNpemUgLSAxXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdGlmIChNYXRoLm1pbihtYXhpbXVtLCBpIC0gbG93ZXIpID09PSBtYXhpbXVtKSB7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aiA9IDAsICsraztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aiArPSB0aGlzLl9jb3JlLm1lcmdlcnModGhpcy5fY29yZS5yZWxhdGl2ZShpKSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEcmF3cyB0aGUgdXNlciBpbnRlcmZhY2UuXHJcblx0ICogQHRvZG8gVGhlIG9wdGlvbiBgZG90c0RhdGFgIHdvbnQgd29yay5cclxuXHQgKiBAcHJvdGVjdGVkXHJcblx0ICovXHJcblx0TmF2aWdhdGlvbi5wcm90b3R5cGUuZHJhdyA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGRpZmZlcmVuY2UsXHJcblx0XHRcdHNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncyxcclxuXHRcdFx0ZGlzYWJsZWQgPSB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoIDw9IHNldHRpbmdzLml0ZW1zLFxyXG5cdFx0XHRpbmRleCA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpLFxyXG5cdFx0XHRsb29wID0gc2V0dGluZ3MubG9vcCB8fCBzZXR0aW5ncy5yZXdpbmQ7XHJcblxyXG5cdFx0dGhpcy5fY29udHJvbHMuJHJlbGF0aXZlLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFzZXR0aW5ncy5uYXYgfHwgZGlzYWJsZWQpO1xyXG5cclxuXHRcdGlmIChzZXR0aW5ncy5uYXYpIHtcclxuXHRcdFx0dGhpcy5fY29udHJvbHMuJHByZXZpb3VzLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFsb29wICYmIGluZGV4IDw9IHRoaXMuX2NvcmUubWluaW11bSh0cnVlKSk7XHJcblx0XHRcdHRoaXMuX2NvbnRyb2xzLiRuZXh0LnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFsb29wICYmIGluZGV4ID49IHRoaXMuX2NvcmUubWF4aW11bSh0cnVlKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5fY29udHJvbHMuJGFic29sdXRlLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFzZXR0aW5ncy5kb3RzIHx8IGRpc2FibGVkKTtcclxuXHJcblx0XHRpZiAoc2V0dGluZ3MuZG90cykge1xyXG5cdFx0XHRkaWZmZXJlbmNlID0gdGhpcy5fcGFnZXMubGVuZ3RoIC0gdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmNoaWxkcmVuKCkubGVuZ3RoO1xyXG5cclxuXHRcdFx0aWYgKHNldHRpbmdzLmRvdHNEYXRhICYmIGRpZmZlcmVuY2UgIT09IDApIHtcclxuXHRcdFx0XHR0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuaHRtbCh0aGlzLl90ZW1wbGF0ZXMuam9pbignJykpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGRpZmZlcmVuY2UgPiAwKSB7XHJcblx0XHRcdFx0dGhpcy5fY29udHJvbHMuJGFic29sdXRlLmFwcGVuZChuZXcgQXJyYXkoZGlmZmVyZW5jZSArIDEpLmpvaW4odGhpcy5fdGVtcGxhdGVzWzBdKSk7XHJcblx0XHRcdH0gZWxzZSBpZiAoZGlmZmVyZW5jZSA8IDApIHtcclxuXHRcdFx0XHR0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5zbGljZShkaWZmZXJlbmNlKS5yZW1vdmUoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5fY29udHJvbHMuJGFic29sdXRlLmZpbmQoJy5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XHJcblx0XHRcdHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5jaGlsZHJlbigpLmVxKCQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpKS5hZGRDbGFzcygnYWN0aXZlJyk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRXh0ZW5kcyBldmVudCBkYXRhLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBldmVudCBvYmplY3Qgd2hpY2ggZ2V0cyB0aHJvd24uXHJcblx0ICovXHJcblx0TmF2aWdhdGlvbi5wcm90b3R5cGUub25UcmlnZ2VyID0gZnVuY3Rpb24oZXZlbnQpIHtcclxuXHRcdHZhciBzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3M7XHJcblxyXG5cdFx0ZXZlbnQucGFnZSA9IHtcclxuXHRcdFx0aW5kZXg6ICQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpLFxyXG5cdFx0XHRjb3VudDogdGhpcy5fcGFnZXMubGVuZ3RoLFxyXG5cdFx0XHRzaXplOiBzZXR0aW5ncyAmJiAoc2V0dGluZ3MuY2VudGVyIHx8IHNldHRpbmdzLmF1dG9XaWR0aCB8fCBzZXR0aW5ncy5kb3RzRGF0YVxyXG5cdFx0XHRcdD8gMSA6IHNldHRpbmdzLmRvdHNFYWNoIHx8IHNldHRpbmdzLml0ZW1zKVxyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBjdXJyZW50IHBhZ2UgcG9zaXRpb24gb2YgdGhlIGNhcm91c2VsLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfVxyXG5cdCAqL1xyXG5cdE5hdmlnYXRpb24ucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBjdXJyZW50ID0gdGhpcy5fY29yZS5yZWxhdGl2ZSh0aGlzLl9jb3JlLmN1cnJlbnQoKSk7XHJcblx0XHRyZXR1cm4gJC5ncmVwKHRoaXMuX3BhZ2VzLCAkLnByb3h5KGZ1bmN0aW9uKHBhZ2UsIGluZGV4KSB7XHJcblx0XHRcdHJldHVybiBwYWdlLnN0YXJ0IDw9IGN1cnJlbnQgJiYgcGFnZS5lbmQgPj0gY3VycmVudDtcclxuXHRcdH0sIHRoaXMpKS5wb3AoKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBjdXJyZW50IHN1Y2Nlc29yL3ByZWRlY2Vzc29yIHBvc2l0aW9uLlxyXG5cdCAqIEBwcm90ZWN0ZWRcclxuXHQgKiBAcmV0dXJucyB7TnVtYmVyfVxyXG5cdCAqL1xyXG5cdE5hdmlnYXRpb24ucHJvdG90eXBlLmdldFBvc2l0aW9uID0gZnVuY3Rpb24oc3VjY2Vzc29yKSB7XHJcblx0XHR2YXIgcG9zaXRpb24sIGxlbmd0aCxcclxuXHRcdFx0c2V0dGluZ3MgPSB0aGlzLl9jb3JlLnNldHRpbmdzO1xyXG5cclxuXHRcdGlmIChzZXR0aW5ncy5zbGlkZUJ5ID09ICdwYWdlJykge1xyXG5cdFx0XHRwb3NpdGlvbiA9ICQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpO1xyXG5cdFx0XHRsZW5ndGggPSB0aGlzLl9wYWdlcy5sZW5ndGg7XHJcblx0XHRcdHN1Y2Nlc3NvciA/ICsrcG9zaXRpb24gOiAtLXBvc2l0aW9uO1xyXG5cdFx0XHRwb3NpdGlvbiA9IHRoaXMuX3BhZ2VzWygocG9zaXRpb24gJSBsZW5ndGgpICsgbGVuZ3RoKSAlIGxlbmd0aF0uc3RhcnQ7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRwb3NpdGlvbiA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpO1xyXG5cdFx0XHRsZW5ndGggPSB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoO1xyXG5cdFx0XHRzdWNjZXNzb3IgPyBwb3NpdGlvbiArPSBzZXR0aW5ncy5zbGlkZUJ5IDogcG9zaXRpb24gLT0gc2V0dGluZ3Muc2xpZGVCeTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcG9zaXRpb247XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2xpZGVzIHRvIHRoZSBuZXh0IGl0ZW0gb3IgcGFnZS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZD1mYWxzZV0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLlxyXG5cdCAqL1xyXG5cdE5hdmlnYXRpb24ucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbihzcGVlZCkge1xyXG5cdFx0JC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24odHJ1ZSksIHNwZWVkKTtcclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBTbGlkZXMgdG8gdGhlIHByZXZpb3VzIGl0ZW0gb3IgcGFnZS5cclxuXHQgKiBAcHVibGljXHJcblx0ICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZD1mYWxzZV0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLlxyXG5cdCAqL1xyXG5cdE5hdmlnYXRpb24ucHJvdG90eXBlLnByZXYgPSBmdW5jdGlvbihzcGVlZCkge1xyXG5cdFx0JC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuZ2V0UG9zaXRpb24oZmFsc2UpLCBzcGVlZCk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogU2xpZGVzIHRvIHRoZSBzcGVjaWZpZWQgaXRlbSBvciBwYWdlLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgcG9zaXRpb24gb2YgdGhlIGl0ZW0gb3IgcGFnZS5cclxuXHQgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uXHJcblx0ICogQHBhcmFtIHtCb29sZWFufSBbc3RhbmRhcmQ9ZmFsc2VdIC0gV2hldGhlciB0byB1c2UgdGhlIHN0YW5kYXJkIGJlaGF2aW91ciBvciBub3QuXHJcblx0ICovXHJcblx0TmF2aWdhdGlvbi5wcm90b3R5cGUudG8gPSBmdW5jdGlvbihwb3NpdGlvbiwgc3BlZWQsIHN0YW5kYXJkKSB7XHJcblx0XHR2YXIgbGVuZ3RoO1xyXG5cclxuXHRcdGlmICghc3RhbmRhcmQgJiYgdGhpcy5fcGFnZXMubGVuZ3RoKSB7XHJcblx0XHRcdGxlbmd0aCA9IHRoaXMuX3BhZ2VzLmxlbmd0aDtcclxuXHRcdFx0JC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHRoaXMuX3BhZ2VzWygocG9zaXRpb24gJSBsZW5ndGgpICsgbGVuZ3RoKSAlIGxlbmd0aF0uc3RhcnQsIHNwZWVkKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdCQucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKShwb3NpdGlvbiwgc3BlZWQpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdCQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5OYXZpZ2F0aW9uID0gTmF2aWdhdGlvbjtcclxuXHJcbn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTtcclxuXHJcbi8qKlxyXG4gKiBIYXNoIFBsdWdpblxyXG4gKiBAdmVyc2lvbiAyLjEuMFxyXG4gKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2lcclxuICogQGF1dGhvciBEYXZpZCBEZXV0c2NoXHJcbiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKVxyXG4gKi9cclxuOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHtcclxuXHQndXNlIHN0cmljdCc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENyZWF0ZXMgdGhlIGhhc2ggcGx1Z2luLlxyXG5cdCAqIEBjbGFzcyBUaGUgSGFzaCBQbHVnaW5cclxuXHQgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsXHJcblx0ICovXHJcblx0dmFyIEhhc2ggPSBmdW5jdGlvbihjYXJvdXNlbCkge1xyXG5cdFx0LyoqXHJcblx0XHQgKiBSZWZlcmVuY2UgdG8gdGhlIGNvcmUuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T3dsfVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9jb3JlID0gY2Fyb3VzZWw7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBIYXNoIGluZGV4IGZvciB0aGUgaXRlbXMuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T2JqZWN0fVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9oYXNoZXMgPSB7fTtcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFRoZSBjYXJvdXNlbCBlbGVtZW50LlxyXG5cdFx0ICogQHR5cGUge2pRdWVyeX1cclxuXHRcdCAqL1xyXG5cdFx0dGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQ7XHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBBbGwgZXZlbnQgaGFuZGxlcnMuXHJcblx0XHQgKiBAcHJvdGVjdGVkXHJcblx0XHQgKiBAdHlwZSB7T2JqZWN0fVxyXG5cdFx0ICovXHJcblx0XHR0aGlzLl9oYW5kbGVycyA9IHtcclxuXHRcdFx0J2luaXRpYWxpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkge1xyXG5cdFx0XHRcdGlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLnN0YXJ0UG9zaXRpb24gPT09ICdVUkxIYXNoJykge1xyXG5cdFx0XHRcdFx0JCh3aW5kb3cpLnRyaWdnZXIoJ2hhc2hjaGFuZ2Uub3dsLm5hdmlnYXRpb24nKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpLFxyXG5cdFx0XHQncHJlcGFyZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlKSB7XHJcblx0XHRcdFx0XHR2YXIgaGFzaCA9ICQoZS5jb250ZW50KS5maW5kKCdbZGF0YS1oYXNoXScpLmFkZEJhY2soJ1tkYXRhLWhhc2hdJykuYXR0cignZGF0YS1oYXNoJyk7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCFoYXNoKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0aGlzLl9oYXNoZXNbaGFzaF0gPSBlLmNvbnRlbnQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LCB0aGlzKSxcclxuXHRcdFx0J2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdFx0aWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PT0gJ3Bvc2l0aW9uJykge1xyXG5cdFx0XHRcdFx0dmFyIGN1cnJlbnQgPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpKSxcclxuXHRcdFx0XHRcdFx0aGFzaCA9ICQubWFwKHRoaXMuX2hhc2hlcywgZnVuY3Rpb24oaXRlbSwgaGFzaCkge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiBpdGVtID09PSBjdXJyZW50ID8gaGFzaCA6IG51bGw7XHJcblx0XHRcdFx0XHRcdH0pLmpvaW4oKTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIWhhc2ggfHwgd2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSkgPT09IGhhc2gpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gaGFzaDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sIHRoaXMpXHJcblx0XHR9O1xyXG5cclxuXHRcdC8vIHNldCBkZWZhdWx0IG9wdGlvbnNcclxuXHRcdHRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBIYXNoLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpO1xyXG5cclxuXHRcdC8vIHJlZ2lzdGVyIHRoZSBldmVudCBoYW5kbGVyc1xyXG5cdFx0dGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7XHJcblxyXG5cdFx0Ly8gcmVnaXN0ZXIgZXZlbnQgbGlzdGVuZXIgZm9yIGhhc2ggbmF2aWdhdGlvblxyXG5cdFx0JCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uJywgJC5wcm94eShmdW5jdGlvbihlKSB7XHJcblx0XHRcdHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKDEpLFxyXG5cdFx0XHRcdGl0ZW1zID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKSxcclxuXHRcdFx0XHRwb3NpdGlvbiA9IHRoaXMuX2hhc2hlc1toYXNoXSAmJiBpdGVtcy5pbmRleCh0aGlzLl9oYXNoZXNbaGFzaF0pO1xyXG5cclxuXHRcdFx0aWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgcG9zaXRpb24gPT09IHRoaXMuX2NvcmUuY3VycmVudCgpKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aGlzLl9jb3JlLnRvKHRoaXMuX2NvcmUucmVsYXRpdmUocG9zaXRpb24pLCBmYWxzZSwgdHJ1ZSk7XHJcblx0XHR9LCB0aGlzKSk7XHJcblx0fTtcclxuXHJcblx0LyoqXHJcblx0ICogRGVmYXVsdCBvcHRpb25zLlxyXG5cdCAqIEBwdWJsaWNcclxuXHQgKi9cclxuXHRIYXNoLkRlZmF1bHRzID0ge1xyXG5cdFx0VVJMaGFzaExpc3RlbmVyOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uXHJcblx0ICogQHB1YmxpY1xyXG5cdCAqL1xyXG5cdEhhc2gucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBoYW5kbGVyLCBwcm9wZXJ0eTtcclxuXHJcblx0XHQkKHdpbmRvdykub2ZmKCdoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uJyk7XHJcblxyXG5cdFx0Zm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7XHJcblx0XHRcdHRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdKTtcclxuXHRcdH1cclxuXHRcdGZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHtcclxuXHRcdFx0dHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcblx0JC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkhhc2ggPSBIYXNoO1xyXG5cclxufSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xyXG5cclxuLyoqXHJcbiAqIFN1cHBvcnQgUGx1Z2luXHJcbiAqXHJcbiAqIEB2ZXJzaW9uIDIuMS4wXHJcbiAqIEBhdXRob3IgVml2aWQgUGxhbmV0IFNvZnR3YXJlIEdtYkhcclxuICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpXHJcbiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaFxyXG4gKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVClcclxuICovXHJcbjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7XHJcblxyXG5cdHZhciBzdHlsZSA9ICQoJzxzdXBwb3J0PicpLmdldCgwKS5zdHlsZSxcclxuXHRcdHByZWZpeGVzID0gJ1dlYmtpdCBNb3ogTyBtcycuc3BsaXQoJyAnKSxcclxuXHRcdGV2ZW50cyA9IHtcclxuXHRcdFx0dHJhbnNpdGlvbjoge1xyXG5cdFx0XHRcdGVuZDoge1xyXG5cdFx0XHRcdFx0V2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLFxyXG5cdFx0XHRcdFx0TW96VHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnLFxyXG5cdFx0XHRcdFx0T1RyYW5zaXRpb246ICdvVHJhbnNpdGlvbkVuZCcsXHJcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCdcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdGFuaW1hdGlvbjoge1xyXG5cdFx0XHRcdGVuZDoge1xyXG5cdFx0XHRcdFx0V2Via2l0QW5pbWF0aW9uOiAnd2Via2l0QW5pbWF0aW9uRW5kJyxcclxuXHRcdFx0XHRcdE1vekFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcsXHJcblx0XHRcdFx0XHRPQW5pbWF0aW9uOiAnb0FuaW1hdGlvbkVuZCcsXHJcblx0XHRcdFx0XHRhbmltYXRpb246ICdhbmltYXRpb25lbmQnXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0dGVzdHMgPSB7XHJcblx0XHRcdGNzc3RyYW5zZm9ybXM6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiAhIXRlc3QoJ3RyYW5zZm9ybScpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjc3N0cmFuc2Zvcm1zM2Q6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiAhIXRlc3QoJ3BlcnNwZWN0aXZlJyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNzc3RyYW5zaXRpb25zOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gISF0ZXN0KCd0cmFuc2l0aW9uJyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGNzc2FuaW1hdGlvbnM6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHJldHVybiAhIXRlc3QoJ2FuaW1hdGlvbicpO1xyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRmdW5jdGlvbiB0ZXN0KHByb3BlcnR5LCBwcmVmaXhlZCkge1xyXG5cdFx0dmFyIHJlc3VsdCA9IGZhbHNlLFxyXG5cdFx0XHR1cHBlciA9IHByb3BlcnR5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcHJvcGVydHkuc2xpY2UoMSk7XHJcblxyXG5cdFx0JC5lYWNoKChwcm9wZXJ0eSArICcgJyArIHByZWZpeGVzLmpvaW4odXBwZXIgKyAnICcpICsgdXBwZXIpLnNwbGl0KCcgJyksIGZ1bmN0aW9uKGksIHByb3BlcnR5KSB7XHJcblx0XHRcdGlmIChzdHlsZVtwcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdHJlc3VsdCA9IHByZWZpeGVkID8gcHJvcGVydHkgOiB0cnVlO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHByZWZpeGVkKHByb3BlcnR5KSB7XHJcblx0XHRyZXR1cm4gdGVzdChwcm9wZXJ0eSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRpZiAodGVzdHMuY3NzdHJhbnNpdGlvbnMoKSkge1xyXG5cdFx0LyoganNoaW50IC1XMDUzICovXHJcblx0XHQkLnN1cHBvcnQudHJhbnNpdGlvbiA9IG5ldyBTdHJpbmcocHJlZml4ZWQoJ3RyYW5zaXRpb24nKSlcclxuXHRcdCQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCA9IGV2ZW50cy50cmFuc2l0aW9uLmVuZFsgJC5zdXBwb3J0LnRyYW5zaXRpb24gXTtcclxuXHR9XHJcblxyXG5cdGlmICh0ZXN0cy5jc3NhbmltYXRpb25zKCkpIHtcclxuXHRcdC8qIGpzaGludCAtVzA1MyAqL1xyXG5cdFx0JC5zdXBwb3J0LmFuaW1hdGlvbiA9IG5ldyBTdHJpbmcocHJlZml4ZWQoJ2FuaW1hdGlvbicpKVxyXG5cdFx0JC5zdXBwb3J0LmFuaW1hdGlvbi5lbmQgPSBldmVudHMuYW5pbWF0aW9uLmVuZFsgJC5zdXBwb3J0LmFuaW1hdGlvbiBdO1xyXG5cdH1cclxuXHJcblx0aWYgKHRlc3RzLmNzc3RyYW5zZm9ybXMoKSkge1xyXG5cdFx0LyoganNoaW50IC1XMDUzICovXHJcblx0XHQkLnN1cHBvcnQudHJhbnNmb3JtID0gbmV3IFN0cmluZyhwcmVmaXhlZCgndHJhbnNmb3JtJykpO1xyXG5cdFx0JC5zdXBwb3J0LnRyYW5zZm9ybTNkID0gdGVzdHMuY3NzdHJhbnNmb3JtczNkKCk7XHJcblx0fVxyXG5cclxufSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpO1xyXG4iLCIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBmYW5jeUJveCB2My4yLjFcclxuLy9cclxuLy8gTGljZW5zZWQgR1BMdjMgZm9yIG9wZW4gc291cmNlIHVzZVxyXG4vLyBvciBmYW5jeUJveCBDb21tZXJjaWFsIExpY2Vuc2UgZm9yIGNvbW1lcmNpYWwgdXNlXHJcbi8vXHJcbi8vIGh0dHA6Ly9mYW5jeWFwcHMuY29tL2ZhbmN5Ym94L1xyXG4vLyBDb3B5cmlnaHQgMjAxNyBmYW5jeUFwcHNcclxuLy9cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuIWZ1bmN0aW9uKHQsZSxuLG8pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIGEodCl7dmFyIGU9bih0LmN1cnJlbnRUYXJnZXQpLG89dC5kYXRhP3QuZGF0YS5vcHRpb25zOnt9LGE9ZS5hdHRyKFwiZGF0YS1mYW5jeWJveFwiKXx8XCJcIixpPTAscz1bXTt0LmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodC5wcmV2ZW50RGVmYXVsdCgpLGE/KHM9by5zZWxlY3Rvcj9uKG8uc2VsZWN0b3IpOnQuZGF0YT90LmRhdGEuaXRlbXM6W10scz1zLmxlbmd0aD9zLmZpbHRlcignW2RhdGEtZmFuY3lib3g9XCInK2ErJ1wiXScpOm4oJ1tkYXRhLWZhbmN5Ym94PVwiJythKydcIl0nKSxpPXMuaW5kZXgoZSksaTwwJiYoaT0wKSk6cz1bZV0sbi5mYW5jeWJveC5vcGVuKHMsbyxpKSl9aWYobil7aWYobi5mbi5mYW5jeWJveClyZXR1cm4gdm9pZChcImNvbnNvbGVcImluIHQmJmNvbnNvbGUubG9nKFwiZmFuY3lCb3ggYWxyZWFkeSBpbml0aWFsaXplZFwiKSk7dmFyIGk9e2xvb3A6ITEsbWFyZ2luOls0NCwwXSxndXR0ZXI6NTAsa2V5Ym9hcmQ6ITAsYXJyb3dzOiEwLGluZm9iYXI6ITAsdG9vbGJhcjohMCxidXR0b25zOltcInNsaWRlU2hvd1wiLFwiZnVsbFNjcmVlblwiLFwidGh1bWJzXCIsXCJzaGFyZVwiLFwiY2xvc2VcIl0saWRsZVRpbWU6MyxzbWFsbEJ0bjpcImF1dG9cIixwcm90ZWN0OiExLG1vZGFsOiExLGltYWdlOntwcmVsb2FkOlwiYXV0b1wifSxhamF4OntzZXR0aW5nczp7ZGF0YTp7ZmFuY3lib3g6ITB9fX0saWZyYW1lOnt0cGw6JzxpZnJhbWUgaWQ9XCJmYW5jeWJveC1mcmFtZXtybmR9XCIgbmFtZT1cImZhbmN5Ym94LWZyYW1le3JuZH1cIiBjbGFzcz1cImZhbmN5Ym94LWlmcmFtZVwiIGZyYW1lYm9yZGVyPVwiMFwiIHZzcGFjZT1cIjBcIiBoc3BhY2U9XCIwXCIgd2Via2l0QWxsb3dGdWxsU2NyZWVuIG1vemFsbG93ZnVsbHNjcmVlbiBhbGxvd0Z1bGxTY3JlZW4gYWxsb3d0cmFuc3BhcmVuY3k9XCJ0cnVlXCIgc3JjPVwiXCI+PC9pZnJhbWU+JyxwcmVsb2FkOiEwLGNzczp7fSxhdHRyOntzY3JvbGxpbmc6XCJhdXRvXCJ9fSxkZWZhdWx0VHlwZTpcImltYWdlXCIsYW5pbWF0aW9uRWZmZWN0Olwiem9vbVwiLGFuaW1hdGlvbkR1cmF0aW9uOjUwMCx6b29tT3BhY2l0eTpcImF1dG9cIix0cmFuc2l0aW9uRWZmZWN0OlwiZmFkZVwiLHRyYW5zaXRpb25EdXJhdGlvbjozNjYsc2xpZGVDbGFzczpcIlwiLGJhc2VDbGFzczpcIlwiLGJhc2VUcGw6JzxkaXYgY2xhc3M9XCJmYW5jeWJveC1jb250YWluZXJcIiByb2xlPVwiZGlhbG9nXCIgdGFiaW5kZXg9XCItMVwiPjxkaXYgY2xhc3M9XCJmYW5jeWJveC1iZ1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJmYW5jeWJveC1pbm5lclwiPjxkaXYgY2xhc3M9XCJmYW5jeWJveC1pbmZvYmFyXCI+PHNwYW4gZGF0YS1mYW5jeWJveC1pbmRleD48L3NwYW4+Jm5ic3A7LyZuYnNwOzxzcGFuIGRhdGEtZmFuY3lib3gtY291bnQ+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9XCJmYW5jeWJveC10b29sYmFyXCI+e3tidXR0b25zfX08L2Rpdj48ZGl2IGNsYXNzPVwiZmFuY3lib3gtbmF2aWdhdGlvblwiPnt7YXJyb3dzfX08L2Rpdj48ZGl2IGNsYXNzPVwiZmFuY3lib3gtc3RhZ2VcIj48L2Rpdj48ZGl2IGNsYXNzPVwiZmFuY3lib3gtY2FwdGlvbi13cmFwXCI+PGRpdiBjbGFzcz1cImZhbmN5Ym94LWNhcHRpb25cIj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nLHNwaW5uZXJUcGw6JzxkaXYgY2xhc3M9XCJmYW5jeWJveC1sb2FkaW5nXCI+PC9kaXY+JyxlcnJvclRwbDonPGRpdiBjbGFzcz1cImZhbmN5Ym94LWVycm9yXCI+PHA+e3tFUlJPUn19PHA+PC9kaXY+JyxidG5UcGw6e2Rvd25sb2FkOic8YSBkb3dubG9hZCBkYXRhLWZhbmN5Ym94LWRvd25sb2FkIGNsYXNzPVwiZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tZG93bmxvYWRcIiB0aXRsZT1cInt7RE9XTkxPQUR9fVwiPjxzdmcgdmlld0JveD1cIjAgMCA0MCA0MFwiPjxwYXRoIGQ9XCJNMjAsMjMgTDIwLDggTDIwLDIzIEwxMywxNiBMMjAsMjMgTDI3LDE2IEwyMCwyMyBNOSwyOCBMMzEsMjhcIiAvPjwvc3ZnPjwvYT4nLGNsb3NlOic8YnV0dG9uIGRhdGEtZmFuY3lib3gtY2xvc2UgY2xhc3M9XCJmYW5jeWJveC1idXR0b24gZmFuY3lib3gtYnV0dG9uLS1jbG9zZVwiIHRpdGxlPVwie3tDTE9TRX19XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDQwIDQwXCI+PHBhdGggZD1cIk0xMCwxMCBMMzAsMzAgTTMwLDEwIEwxMCwzMFwiIC8+PC9zdmc+PC9idXR0b24+JyxzbWFsbEJ0bjonPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LWNsb3NlIGNsYXNzPVwiZmFuY3lib3gtY2xvc2Utc21hbGxcIiB0aXRsZT1cInt7Q0xPU0V9fVwiPjwvYnV0dG9uPicsYXJyb3dMZWZ0Oic8YnV0dG9uIGRhdGEtZmFuY3lib3gtcHJldiBjbGFzcz1cImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLWFycm93X2xlZnRcIiB0aXRsZT1cInt7UFJFVn19XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDQwIDQwXCI+PHBhdGggZD1cIk0xMCwyMCBMMzAsMjAgTDEwLDIwIEwxOCwyOCBMMTAsMjAgTDE4LDEyIEwxMCwyMFwiPjwvcGF0aD48L3N2Zz48L2J1dHRvbj4nLGFycm93UmlnaHQ6JzxidXR0b24gZGF0YS1mYW5jeWJveC1uZXh0IGNsYXNzPVwiZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tYXJyb3dfcmlnaHRcIiB0aXRsZT1cInt7TkVYVH19XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDQwIDQwXCI+PHBhdGggZD1cIk0zMCwyMCBMMTAsMjAgTDMwLDIwIEwyMiwyOCBMMzAsMjAgTDIyLDEyIEwzMCwyMFwiPjwvcGF0aD48L3N2Zz48L2J1dHRvbj4nfSxwYXJlbnRFbDpcImJvZHlcIixhdXRvRm9jdXM6ITEsYmFja0ZvY3VzOiEwLHRyYXBGb2N1czohMCxmdWxsU2NyZWVuOnthdXRvU3RhcnQ6ITF9LHRvdWNoOnt2ZXJ0aWNhbDohMCxtb21lbnR1bTohMH0saGFzaDpudWxsLG1lZGlhOnt9LHNsaWRlU2hvdzp7YXV0b1N0YXJ0OiExLHNwZWVkOjRlM30sdGh1bWJzOnthdXRvU3RhcnQ6ITEsaGlkZU9uQ2xvc2U6ITAscGFyZW50RWw6XCIuZmFuY3lib3gtY29udGFpbmVyXCJ9LG9uSW5pdDpuLm5vb3AsYmVmb3JlTG9hZDpuLm5vb3AsYWZ0ZXJMb2FkOm4ubm9vcCxiZWZvcmVTaG93Om4ubm9vcCxhZnRlclNob3c6bi5ub29wLGJlZm9yZUNsb3NlOm4ubm9vcCxhZnRlckNsb3NlOm4ubm9vcCxvbkFjdGl2YXRlOm4ubm9vcCxvbkRlYWN0aXZhdGU6bi5ub29wLGNsaWNrQ29udGVudDpmdW5jdGlvbih0LGUpe3JldHVyblwiaW1hZ2VcIj09PXQudHlwZSYmXCJ6b29tXCJ9LGNsaWNrU2xpZGU6XCJjbG9zZVwiLGNsaWNrT3V0c2lkZTpcImNsb3NlXCIsZGJsY2xpY2tDb250ZW50OiExLGRibGNsaWNrU2xpZGU6ITEsZGJsY2xpY2tPdXRzaWRlOiExLG1vYmlsZTp7bWFyZ2luOjAsY2xpY2tDb250ZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJpbWFnZVwiPT09dC50eXBlJiZcInRvZ2dsZUNvbnRyb2xzXCJ9LGNsaWNrU2xpZGU6ZnVuY3Rpb24odCxlKXtyZXR1cm5cImltYWdlXCI9PT10LnR5cGU/XCJ0b2dnbGVDb250cm9sc1wiOlwiY2xvc2VcIn0sZGJsY2xpY2tDb250ZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJpbWFnZVwiPT09dC50eXBlJiZcInpvb21cIn0sZGJsY2xpY2tTbGlkZTpmdW5jdGlvbih0LGUpe3JldHVyblwiaW1hZ2VcIj09PXQudHlwZSYmXCJ6b29tXCJ9fSxsYW5nOlwiZW5cIixpMThuOntlbjp7Q0xPU0U6XCJDbG9zZVwiLE5FWFQ6XCJOZXh0XCIsUFJFVjpcIlByZXZpb3VzXCIsRVJST1I6XCJUaGUgcmVxdWVzdGVkIGNvbnRlbnQgY2Fubm90IGJlIGxvYWRlZC4gPGJyLz4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5cIixQTEFZX1NUQVJUOlwiU3RhcnQgc2xpZGVzaG93XCIsUExBWV9TVE9QOlwiUGF1c2Ugc2xpZGVzaG93XCIsRlVMTF9TQ1JFRU46XCJGdWxsIHNjcmVlblwiLFRIVU1CUzpcIlRodW1ibmFpbHNcIixET1dOTE9BRDpcIkRvd25sb2FkXCIsU0hBUkU6XCJTaGFyZVwifSxkZTp7Q0xPU0U6XCJTY2hsaWVzc2VuXCIsTkVYVDpcIldlaXRlclwiLFBSRVY6XCJadXLDvGNrXCIsRVJST1I6XCJEaWUgYW5nZWZvcmRlcnRlbiBEYXRlbiBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuLiA8YnIvPiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgbm9jaG1hbC5cIixQTEFZX1NUQVJUOlwiRGlhc2NoYXUgc3RhcnRlblwiLFBMQVlfU1RPUDpcIkRpYXNjaGF1IGJlZW5kZW5cIixGVUxMX1NDUkVFTjpcIlZvbGxiaWxkXCIsVEhVTUJTOlwiVm9yc2NoYXViaWxkZXJcIixET1dOTE9BRDpcIkhlcnVudGVybGFkZW5cIixTSEFSRTpcIlRlaWxlblwifX19LHM9bih0KSxyPW4oZSksYz0wLGw9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuaGFzT3duUHJvcGVydHkmJnQgaW5zdGFuY2VvZiBufSx1PWZ1bmN0aW9uKCl7cmV0dXJuIHQucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx0LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8dC5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHQub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIHQuc2V0VGltZW91dChlLDFlMy82MCl9fSgpLGQ9ZnVuY3Rpb24oKXt2YXIgdCxuPWUuY3JlYXRlRWxlbWVudChcImZha2VlbGVtZW50XCIpLGE9e3RyYW5zaXRpb246XCJ0cmFuc2l0aW9uZW5kXCIsT1RyYW5zaXRpb246XCJvVHJhbnNpdGlvbkVuZFwiLE1velRyYW5zaXRpb246XCJ0cmFuc2l0aW9uZW5kXCIsV2Via2l0VHJhbnNpdGlvbjpcIndlYmtpdFRyYW5zaXRpb25FbmRcIn07Zm9yKHQgaW4gYSlpZihuLnN0eWxlW3RdIT09bylyZXR1cm4gYVt0XX0oKSxmPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lmxlbmd0aCYmdFswXS5vZmZzZXRIZWlnaHR9LHA9ZnVuY3Rpb24odCxvLGEpe3ZhciBzPXRoaXM7cy5vcHRzPW4uZXh0ZW5kKCEwLHtpbmRleDphfSxpLG98fHt9KSxuLmZhbmN5Ym94LmlzTW9iaWxlJiYocy5vcHRzPW4uZXh0ZW5kKCEwLHt9LHMub3B0cyxzLm9wdHMubW9iaWxlKSksbyYmbi5pc0FycmF5KG8uYnV0dG9ucykmJihzLm9wdHMuYnV0dG9ucz1vLmJ1dHRvbnMpLHMuaWQ9cy5vcHRzLmlkfHwrK2Mscy5ncm91cD1bXSxzLmN1cnJJbmRleD1wYXJzZUludChzLm9wdHMuaW5kZXgsMTApfHwwLHMucHJldkluZGV4PW51bGwscy5wcmV2UG9zPW51bGwscy5jdXJyUG9zPTAscy5maXJzdFJ1bj1udWxsLHMuY3JlYXRlR3JvdXAodCkscy5ncm91cC5sZW5ndGgmJihzLiRsYXN0Rm9jdXM9bihlLmFjdGl2ZUVsZW1lbnQpLmJsdXIoKSxzLnNsaWRlcz17fSxzLmluaXQoKSl9O24uZXh0ZW5kKHAucHJvdG90eXBlLHtpbml0OmZ1bmN0aW9uKCl7dmFyIGEsaSxzLGM9dGhpcyxsPWMuZ3JvdXBbYy5jdXJySW5kZXhdLHU9bC5vcHRzLGQ9bi5mYW5jeWJveC5zY3JvbGxiYXJXaWR0aDtjLnNjcm9sbFRvcD1yLnNjcm9sbFRvcCgpLGMuc2Nyb2xsTGVmdD1yLnNjcm9sbExlZnQoKSxuLmZhbmN5Ym94LmdldEluc3RhbmNlKCl8fChuKFwiYm9keVwiKS5hZGRDbGFzcyhcImZhbmN5Ym94LWFjdGl2ZVwiKSwvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmIXQuTVNTdHJlYW0/XCJpbWFnZVwiIT09bC50eXBlJiZuKFwiYm9keVwiKS5jc3MoXCJ0b3BcIixuKFwiYm9keVwiKS5zY3JvbGxUb3AoKSotMSkuYWRkQ2xhc3MoXCJmYW5jeWJveC1pb3NmaXhcIik6IW4uZmFuY3lib3guaXNNb2JpbGUmJmUuYm9keS5zY3JvbGxIZWlnaHQ+dC5pbm5lckhlaWdodCYmKGQ9PT1vJiYoYT1uKCc8ZGl2IHN0eWxlPVwid2lkdGg6NTBweDtoZWlnaHQ6NTBweDtvdmVyZmxvdzpzY3JvbGw7XCIgLz4nKS5hcHBlbmRUbyhcImJvZHlcIiksZD1uLmZhbmN5Ym94LnNjcm9sbGJhcldpZHRoPWFbMF0ub2Zmc2V0V2lkdGgtYVswXS5jbGllbnRXaWR0aCxhLnJlbW92ZSgpKSxuKFwiaGVhZFwiKS5hcHBlbmQoJzxzdHlsZSBpZD1cImZhbmN5Ym94LXN0eWxlLW5vc2Nyb2xsXCIgdHlwZT1cInRleHQvY3NzXCI+LmNvbXBlbnNhdGUtZm9yLXNjcm9sbGJhciB7IG1hcmdpbi1yaWdodDogJytkK1wicHg7IH08L3N0eWxlPlwiKSxuKFwiYm9keVwiKS5hZGRDbGFzcyhcImNvbXBlbnNhdGUtZm9yLXNjcm9sbGJhclwiKSkpLHM9XCJcIixuLmVhY2godS5idXR0b25zLGZ1bmN0aW9uKHQsZSl7cys9dS5idG5UcGxbZV18fFwiXCJ9KSxpPW4oYy50cmFuc2xhdGUoYyx1LmJhc2VUcGwucmVwbGFjZShcInt7YnV0dG9uc319XCIscykucmVwbGFjZShcInt7YXJyb3dzfX1cIix1LmJ0blRwbC5hcnJvd0xlZnQrdS5idG5UcGwuYXJyb3dSaWdodCkpKS5hdHRyKFwiaWRcIixcImZhbmN5Ym94LWNvbnRhaW5lci1cIitjLmlkKS5hZGRDbGFzcyhcImZhbmN5Ym94LWlzLWhpZGRlblwiKS5hZGRDbGFzcyh1LmJhc2VDbGFzcykuZGF0YShcIkZhbmN5Qm94XCIsYykuYXBwZW5kVG8odS5wYXJlbnRFbCksYy4kcmVmcz17Y29udGFpbmVyOml9LFtcImJnXCIsXCJpbm5lclwiLFwiaW5mb2JhclwiLFwidG9vbGJhclwiLFwic3RhZ2VcIixcImNhcHRpb25cIixcIm5hdmlnYXRpb25cIl0uZm9yRWFjaChmdW5jdGlvbih0KXtjLiRyZWZzW3RdPWkuZmluZChcIi5mYW5jeWJveC1cIit0KX0pLGMudHJpZ2dlcihcIm9uSW5pdFwiKSxjLmFjdGl2YXRlKCksYy5qdW1wVG8oYy5jdXJySW5kZXgpfSx0cmFuc2xhdGU6ZnVuY3Rpb24odCxlKXt2YXIgbj10Lm9wdHMuaTE4blt0Lm9wdHMubGFuZ107cmV0dXJuIGUucmVwbGFjZSgvXFx7XFx7KFxcdyspXFx9XFx9L2csZnVuY3Rpb24odCxlKXt2YXIgYT1uW2VdO3JldHVybiBhPT09bz90OmF9KX0sY3JlYXRlR3JvdXA6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxhPW4ubWFrZUFycmF5KHQpO24uZWFjaChhLGZ1bmN0aW9uKHQsYSl7dmFyIGkscyxyLGMsbD17fSx1PXt9O24uaXNQbGFpbk9iamVjdChhKT8obD1hLHU9YS5vcHRzfHxhKTpcIm9iamVjdFwiPT09bi50eXBlKGEpJiZuKGEpLmxlbmd0aD8oaT1uKGEpLHU9aS5kYXRhKCksdT1uLmV4dGVuZCh7fSx1LHUub3B0aW9uc3x8e30pLHUuJG9yaWc9aSxsLnNyYz11LnNyY3x8aS5hdHRyKFwiaHJlZlwiKSxsLnR5cGV8fGwuc3JjfHwobC50eXBlPVwiaW5saW5lXCIsbC5zcmM9YSkpOmw9e3R5cGU6XCJodG1sXCIsc3JjOmErXCJcIn0sbC5vcHRzPW4uZXh0ZW5kKCEwLHt9LGUub3B0cyx1KSxuLmlzQXJyYXkodS5idXR0b25zKSYmKGwub3B0cy5idXR0b25zPXUuYnV0dG9ucykscz1sLnR5cGV8fGwub3B0cy50eXBlLHI9bC5zcmN8fFwiXCIsIXMmJnImJihyLm1hdGNoKC8oXmRhdGE6aW1hZ2VcXC9bYS16MC05K1xcLz1dKiwpfChcXC4oanAoZXxnfGVnKXxnaWZ8cG5nfGJtcHx3ZWJwfHN2Z3xpY28pKChcXD98IykuKik/JCkvaSk/cz1cImltYWdlXCI6ci5tYXRjaCgvXFwuKHBkZikoKFxcP3wjKS4qKT8kL2kpP3M9XCJwZGZcIjpcIiNcIj09PXIuY2hhckF0KDApJiYocz1cImlubGluZVwiKSkscz9sLnR5cGU9czplLnRyaWdnZXIoXCJvYmplY3ROZWVkc1R5cGVcIixsKSxsLmluZGV4PWUuZ3JvdXAubGVuZ3RoLGwub3B0cy4kb3JpZyYmIWwub3B0cy4kb3JpZy5sZW5ndGgmJmRlbGV0ZSBsLm9wdHMuJG9yaWcsIWwub3B0cy4kdGh1bWImJmwub3B0cy4kb3JpZyYmKGwub3B0cy4kdGh1bWI9bC5vcHRzLiRvcmlnLmZpbmQoXCJpbWc6Zmlyc3RcIikpLGwub3B0cy4kdGh1bWImJiFsLm9wdHMuJHRodW1iLmxlbmd0aCYmZGVsZXRlIGwub3B0cy4kdGh1bWIsXCJmdW5jdGlvblwiPT09bi50eXBlKGUub3B0cy5jYXB0aW9uKSYmKGwub3B0cy5jYXB0aW9uPWUub3B0cy5jYXB0aW9uLmFwcGx5KGEsW2UsbF0pKSxsLm9wdHMuY2FwdGlvbiBpbnN0YW5jZW9mIG58fChsLm9wdHMuY2FwdGlvbj1sLm9wdHMuY2FwdGlvbj09PW8/XCJcIjpsLm9wdHMuY2FwdGlvbitcIlwiKSxcImFqYXhcIj09PXMmJihjPXIuc3BsaXQoL1xccysvLDIpLGMubGVuZ3RoPjEmJihsLnNyYz1jLnNoaWZ0KCksbC5vcHRzLmZpbHRlcj1jLnNoaWZ0KCkpKSxcImF1dG9cIj09bC5vcHRzLnNtYWxsQnRuJiYobi5pbkFycmF5KHMsW1wiaHRtbFwiLFwiaW5saW5lXCIsXCJhamF4XCJdKT4tMT8obC5vcHRzLnRvb2xiYXI9ITEsbC5vcHRzLnNtYWxsQnRuPSEwKTpsLm9wdHMuc21hbGxCdG49ITEpLFwicGRmXCI9PT1zJiYobC50eXBlPVwiaWZyYW1lXCIsbC5vcHRzLmlmcmFtZS5wcmVsb2FkPSExKSxsLm9wdHMubW9kYWwmJihsLm9wdHM9bi5leHRlbmQoITAsbC5vcHRzLHtpbmZvYmFyOjAsdG9vbGJhcjowLHNtYWxsQnRuOjAsa2V5Ym9hcmQ6MCxzbGlkZVNob3c6MCxmdWxsU2NyZWVuOjAsdGh1bWJzOjAsdG91Y2g6MCxjbGlja0NvbnRlbnQ6ITEsY2xpY2tTbGlkZTohMSxjbGlja091dHNpZGU6ITEsZGJsY2xpY2tDb250ZW50OiExLGRibGNsaWNrU2xpZGU6ITEsZGJsY2xpY2tPdXRzaWRlOiExfSkpLGUuZ3JvdXAucHVzaChsKX0pfSxhZGRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgbz10aGlzO28ucmVtb3ZlRXZlbnRzKCksby4kcmVmcy5jb250YWluZXIub24oXCJjbGljay5mYi1jbG9zZVwiLFwiW2RhdGEtZmFuY3lib3gtY2xvc2VdXCIsZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKSx0LnByZXZlbnREZWZhdWx0KCksby5jbG9zZSh0KX0pLm9uKFwiY2xpY2suZmItcHJldiB0b3VjaGVuZC5mYi1wcmV2XCIsXCJbZGF0YS1mYW5jeWJveC1wcmV2XVwiLGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpLG8ucHJldmlvdXMoKX0pLm9uKFwiY2xpY2suZmItbmV4dCB0b3VjaGVuZC5mYi1uZXh0XCIsXCJbZGF0YS1mYW5jeWJveC1uZXh0XVwiLGZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpLG8ubmV4dCgpfSkscy5vbihcIm9yaWVudGF0aW9uY2hhbmdlLmZiIHJlc2l6ZS5mYlwiLGZ1bmN0aW9uKHQpe3QmJnQub3JpZ2luYWxFdmVudCYmXCJyZXNpemVcIj09PXQub3JpZ2luYWxFdmVudC50eXBlP3UoZnVuY3Rpb24oKXtvLnVwZGF0ZSgpfSk6KG8uJHJlZnMuc3RhZ2UuaGlkZSgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLiRyZWZzLnN0YWdlLnNob3coKSxvLnVwZGF0ZSgpfSw2MDApKX0pLHIub24oXCJmb2N1c2luLmZiXCIsZnVuY3Rpb24odCl7dmFyIGE9bi5mYW5jeWJveD9uLmZhbmN5Ym94LmdldEluc3RhbmNlKCk6bnVsbDthLmlzQ2xvc2luZ3x8IWEuY3VycmVudHx8IWEuY3VycmVudC5vcHRzLnRyYXBGb2N1c3x8bih0LnRhcmdldCkuaGFzQ2xhc3MoXCJmYW5jeWJveC1jb250YWluZXJcIil8fG4odC50YXJnZXQpLmlzKGUpfHxhJiZcImZpeGVkXCIhPT1uKHQudGFyZ2V0KS5jc3MoXCJwb3NpdGlvblwiKSYmIWEuJHJlZnMuY29udGFpbmVyLmhhcyh0LnRhcmdldCkubGVuZ3RoJiYodC5zdG9wUHJvcGFnYXRpb24oKSxhLmZvY3VzKCkscy5zY3JvbGxUb3Aoby5zY3JvbGxUb3ApLnNjcm9sbExlZnQoby5zY3JvbGxMZWZ0KSl9KSxyLm9uKFwia2V5ZG93bi5mYlwiLGZ1bmN0aW9uKHQpe3ZhciBlPW8uY3VycmVudCxhPXQua2V5Q29kZXx8dC53aGljaDtpZihlJiZlLm9wdHMua2V5Ym9hcmQmJiFuKHQudGFyZ2V0KS5pcyhcImlucHV0XCIpJiYhbih0LnRhcmdldCkuaXMoXCJ0ZXh0YXJlYVwiKSlyZXR1cm4gOD09PWF8fDI3PT09YT8odC5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgby5jbG9zZSh0KSk6Mzc9PT1hfHwzOD09PWE/KHQucHJldmVudERlZmF1bHQoKSx2b2lkIG8ucHJldmlvdXMoKSk6Mzk9PT1hfHw0MD09PWE/KHQucHJldmVudERlZmF1bHQoKSx2b2lkIG8ubmV4dCgpKTp2b2lkIG8udHJpZ2dlcihcImFmdGVyS2V5ZG93blwiLHQsYSl9KSxvLmdyb3VwW28uY3VyckluZGV4XS5vcHRzLmlkbGVUaW1lJiYoby5pZGxlU2Vjb25kc0NvdW50ZXI9MCxyLm9uKFwibW91c2Vtb3ZlLmZiLWlkbGUgbW91c2VsZWF2ZS5mYi1pZGxlIG1vdXNlZG93bi5mYi1pZGxlIHRvdWNoc3RhcnQuZmItaWRsZSB0b3VjaG1vdmUuZmItaWRsZSBzY3JvbGwuZmItaWRsZSBrZXlkb3duLmZiLWlkbGVcIixmdW5jdGlvbih0KXtvLmlkbGVTZWNvbmRzQ291bnRlcj0wLG8uaXNJZGxlJiZvLnNob3dDb250cm9scygpLG8uaXNJZGxlPSExfSksby5pZGxlSW50ZXJ2YWw9dC5zZXRJbnRlcnZhbChmdW5jdGlvbigpe28uaWRsZVNlY29uZHNDb3VudGVyKyssby5pZGxlU2Vjb25kc0NvdW50ZXI+PW8uZ3JvdXBbby5jdXJySW5kZXhdLm9wdHMuaWRsZVRpbWUmJihvLmlzSWRsZT0hMCxvLmlkbGVTZWNvbmRzQ291bnRlcj0wLG8uaGlkZUNvbnRyb2xzKCkpfSwxZTMpKX0scmVtb3ZlRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztzLm9mZihcIm9yaWVudGF0aW9uY2hhbmdlLmZiIHJlc2l6ZS5mYlwiKSxyLm9mZihcImZvY3VzaW4uZmIga2V5ZG93bi5mYiAuZmItaWRsZVwiKSx0aGlzLiRyZWZzLmNvbnRhaW5lci5vZmYoXCIuZmItY2xvc2UgLmZiLXByZXYgLmZiLW5leHRcIiksZS5pZGxlSW50ZXJ2YWwmJih0LmNsZWFySW50ZXJ2YWwoZS5pZGxlSW50ZXJ2YWwpLGUuaWRsZUludGVydmFsPW51bGwpfSxwcmV2aW91czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5qdW1wVG8odGhpcy5jdXJyUG9zLTEsdCl9LG5leHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuanVtcFRvKHRoaXMuY3VyclBvcysxLHQpfSxqdW1wVG86ZnVuY3Rpb24odCxlLGEpe3ZhciBpLHMscixjLGwsdSxkLHA9dGhpcyxoPXAuZ3JvdXAubGVuZ3RoO2lmKCEocC5pc1NsaWRpbmd8fHAuaXNDbG9zaW5nfHxwLmlzQW5pbWF0aW5nJiZwLmZpcnN0UnVuKSl7aWYodD1wYXJzZUludCh0LDEwKSxzPXAuY3VycmVudD9wLmN1cnJlbnQub3B0cy5sb29wOnAub3B0cy5sb29wLCFzJiYodDwwfHx0Pj1oKSlyZXR1cm4hMTtpZihpPXAuZmlyc3RSdW49bnVsbD09PXAuZmlyc3RSdW4sIShoPDImJiFpJiZwLmlzU2xpZGluZykpe2lmKGM9cC5jdXJyZW50LHAucHJldkluZGV4PXAuY3VyckluZGV4LHAucHJldlBvcz1wLmN1cnJQb3Mscj1wLmNyZWF0ZVNsaWRlKHQpLGg+MSYmKChzfHxyLmluZGV4PjApJiZwLmNyZWF0ZVNsaWRlKHQtMSksKHN8fHIuaW5kZXg8aC0xKSYmcC5jcmVhdGVTbGlkZSh0KzEpKSxwLmN1cnJlbnQ9cixwLmN1cnJJbmRleD1yLmluZGV4LHAuY3VyclBvcz1yLnBvcyxwLnRyaWdnZXIoXCJiZWZvcmVTaG93XCIsaSkscC51cGRhdGVDb250cm9scygpLHU9bi5mYW5jeWJveC5nZXRUcmFuc2xhdGUoci4kc2xpZGUpLHIuaXNNb3ZlZD0oMCE9PXUubGVmdHx8MCE9PXUudG9wKSYmIXIuJHNsaWRlLmhhc0NsYXNzKFwiZmFuY3lib3gtYW5pbWF0ZWRcIiksci5mb3JjZWREdXJhdGlvbj1vLG4uaXNOdW1lcmljKGUpP3IuZm9yY2VkRHVyYXRpb249ZTplPXIub3B0c1tpP1wiYW5pbWF0aW9uRHVyYXRpb25cIjpcInRyYW5zaXRpb25EdXJhdGlvblwiXSxlPXBhcnNlSW50KGUsMTApLGkpcmV0dXJuIHIub3B0cy5hbmltYXRpb25FZmZlY3QmJmUmJnAuJHJlZnMuY29udGFpbmVyLmNzcyhcInRyYW5zaXRpb24tZHVyYXRpb25cIixlK1wibXNcIikscC4kcmVmcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1pcy1oaWRkZW5cIiksZihwLiRyZWZzLmNvbnRhaW5lcikscC4kcmVmcy5jb250YWluZXIuYWRkQ2xhc3MoXCJmYW5jeWJveC1pcy1vcGVuXCIpLHIuJHNsaWRlLmFkZENsYXNzKFwiZmFuY3lib3gtc2xpZGUtLWN1cnJlbnRcIikscC5sb2FkU2xpZGUociksdm9pZCBwLnByZWxvYWQoKTtuLmVhY2gocC5zbGlkZXMsZnVuY3Rpb24odCxlKXtuLmZhbmN5Ym94LnN0b3AoZS4kc2xpZGUpfSksci4kc2xpZGUucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1zbGlkZS0tbmV4dCBmYW5jeWJveC1zbGlkZS0tcHJldmlvdXNcIikuYWRkQ2xhc3MoXCJmYW5jeWJveC1zbGlkZS0tY3VycmVudFwiKSxyLmlzTW92ZWQ/KGw9TWF0aC5yb3VuZChyLiRzbGlkZS53aWR0aCgpKSxuLmVhY2gocC5zbGlkZXMsZnVuY3Rpb24odCxvKXt2YXIgYT1vLnBvcy1yLnBvcztuLmZhbmN5Ym94LmFuaW1hdGUoby4kc2xpZGUse3RvcDowLGxlZnQ6YSpsK2Eqby5vcHRzLmd1dHRlcn0sZSxmdW5jdGlvbigpe28uJHNsaWRlLnJlbW92ZUF0dHIoXCJzdHlsZVwiKS5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LXNsaWRlLS1uZXh0IGZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c1wiKSxvLnBvcz09PXAuY3VyclBvcyYmKHIuaXNNb3ZlZD0hMSxwLmNvbXBsZXRlKCkpfSl9KSk6cC4kcmVmcy5zdGFnZS5jaGlsZHJlbigpLnJlbW92ZUF0dHIoXCJzdHlsZVwiKSxyLmlzTG9hZGVkP3AucmV2ZWFsQ29udGVudChyKTpwLmxvYWRTbGlkZShyKSxwLnByZWxvYWQoKSxjLnBvcyE9PXIucG9zJiYoZD1cImZhbmN5Ym94LXNsaWRlLS1cIisoYy5wb3M+ci5wb3M/XCJuZXh0XCI6XCJwcmV2aW91c1wiKSxjLiRzbGlkZS5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LXNsaWRlLS1jb21wbGV0ZSBmYW5jeWJveC1zbGlkZS0tY3VycmVudCBmYW5jeWJveC1zbGlkZS0tbmV4dCBmYW5jeWJveC1zbGlkZS0tcHJldmlvdXNcIiksYy5pc0NvbXBsZXRlPSExLGUmJihyLmlzTW92ZWR8fHIub3B0cy50cmFuc2l0aW9uRWZmZWN0KSYmKHIuaXNNb3ZlZD9jLiRzbGlkZS5hZGRDbGFzcyhkKTooZD1cImZhbmN5Ym94LWFuaW1hdGVkIFwiK2QrXCIgZmFuY3lib3gtZngtXCIrci5vcHRzLnRyYW5zaXRpb25FZmZlY3Qsbi5mYW5jeWJveC5hbmltYXRlKGMuJHNsaWRlLGQsZSxmdW5jdGlvbigpe2MuJHNsaWRlLnJlbW92ZUNsYXNzKGQpLnJlbW92ZUF0dHIoXCJzdHlsZVwiKX0pKSkpfX19LGNyZWF0ZVNsaWRlOmZ1bmN0aW9uKHQpe3ZhciBlLG8sYT10aGlzO3JldHVybiBvPXQlYS5ncm91cC5sZW5ndGgsbz1vPDA/YS5ncm91cC5sZW5ndGgrbzpvLCFhLnNsaWRlc1t0XSYmYS5ncm91cFtvXSYmKGU9bignPGRpdiBjbGFzcz1cImZhbmN5Ym94LXNsaWRlXCI+PC9kaXY+JykuYXBwZW5kVG8oYS4kcmVmcy5zdGFnZSksYS5zbGlkZXNbdF09bi5leHRlbmQoITAse30sYS5ncm91cFtvXSx7cG9zOnQsJHNsaWRlOmUsaXNMb2FkZWQ6ITF9KSxhLnVwZGF0ZVNsaWRlKGEuc2xpZGVzW3RdKSksYS5zbGlkZXNbdF19LHNjYWxlVG9BY3R1YWw6ZnVuY3Rpb24odCxlLGEpe3ZhciBpLHMscixjLGwsdT10aGlzLGQ9dS5jdXJyZW50LGY9ZC4kY29udGVudCxwPXBhcnNlSW50KGQuJHNsaWRlLndpZHRoKCksMTApLGg9cGFyc2VJbnQoZC4kc2xpZGUuaGVpZ2h0KCksMTApLGc9ZC53aWR0aCxiPWQuaGVpZ2h0O1wiaW1hZ2VcIiE9ZC50eXBlfHxkLmhhc0Vycm9yfHwhZnx8dS5pc0FuaW1hdGluZ3x8KG4uZmFuY3lib3guc3RvcChmKSx1LmlzQW5pbWF0aW5nPSEwLHQ9dD09PW8/LjUqcDp0LGU9ZT09PW8/LjUqaDplLGk9bi5mYW5jeWJveC5nZXRUcmFuc2xhdGUoZiksYz1nL2kud2lkdGgsbD1iL2kuaGVpZ2h0LHM9LjUqcC0uNSpnLHI9LjUqaC0uNSpiLGc+cCYmKHM9aS5sZWZ0KmMtKHQqYy10KSxzPjAmJihzPTApLHM8cC1nJiYocz1wLWcpKSxiPmgmJihyPWkudG9wKmwtKGUqbC1lKSxyPjAmJihyPTApLHI8aC1iJiYocj1oLWIpKSx1LnVwZGF0ZUN1cnNvcihnLGIpLG4uZmFuY3lib3guYW5pbWF0ZShmLHt0b3A6cixsZWZ0OnMsc2NhbGVYOmMsc2NhbGVZOmx9LGF8fDMzMCxmdW5jdGlvbigpe3UuaXNBbmltYXRpbmc9ITF9KSx1LlNsaWRlU2hvdyYmdS5TbGlkZVNob3cuaXNBY3RpdmUmJnUuU2xpZGVTaG93LnN0b3AoKSl9LHNjYWxlVG9GaXQ6ZnVuY3Rpb24odCl7dmFyIGUsbz10aGlzLGE9by5jdXJyZW50LGk9YS4kY29udGVudDtcImltYWdlXCIhPWEudHlwZXx8YS5oYXNFcnJvcnx8IWl8fG8uaXNBbmltYXRpbmd8fChuLmZhbmN5Ym94LnN0b3AoaSksby5pc0FuaW1hdGluZz0hMCxlPW8uZ2V0Rml0UG9zKGEpLG8udXBkYXRlQ3Vyc29yKGUud2lkdGgsZS5oZWlnaHQpLG4uZmFuY3lib3guYW5pbWF0ZShpLHt0b3A6ZS50b3AsbGVmdDplLmxlZnQsc2NhbGVYOmUud2lkdGgvaS53aWR0aCgpLHNjYWxlWTplLmhlaWdodC9pLmhlaWdodCgpfSx0fHwzMzAsZnVuY3Rpb24oKXtvLmlzQW5pbWF0aW5nPSExfSkpfSxnZXRGaXRQb3M6ZnVuY3Rpb24odCl7dmFyIGUsbyxhLGkscyxyPXRoaXMsYz10LiRjb250ZW50LGw9dC53aWR0aCx1PXQuaGVpZ2h0LGQ9dC5vcHRzLm1hcmdpbjtyZXR1cm4hKCFjfHwhYy5sZW5ndGh8fCFsJiYhdSkmJihcIm51bWJlclwiPT09bi50eXBlKGQpJiYoZD1bZCxkXSksMj09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMV0sZFswXSxkWzFdXSksZT1wYXJzZUludChyLiRyZWZzLnN0YWdlLndpZHRoKCksMTApLShkWzFdK2RbM10pLG89cGFyc2VJbnQoci4kcmVmcy5zdGFnZS5oZWlnaHQoKSwxMCktKGRbMF0rZFsyXSksYT1NYXRoLm1pbigxLGUvbCxvL3UpLGk9TWF0aC5mbG9vcihhKmwpLHM9TWF0aC5mbG9vcihhKnUpLHt0b3A6TWF0aC5mbG9vciguNSooby1zKSkrZFswXSxsZWZ0Ok1hdGguZmxvb3IoLjUqKGUtaSkpK2RbM10sd2lkdGg6aSxoZWlnaHQ6c30pfSx1cGRhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO24uZWFjaCh0LnNsaWRlcyxmdW5jdGlvbihlLG4pe3QudXBkYXRlU2xpZGUobil9KX0sdXBkYXRlU2xpZGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxvPXQuJGNvbnRlbnQ7byYmKHQud2lkdGh8fHQuaGVpZ2h0KSYmKG4uZmFuY3lib3guc3RvcChvKSxuLmZhbmN5Ym94LnNldFRyYW5zbGF0ZShvLGUuZ2V0Rml0UG9zKHQpKSx0LnBvcz09PWUuY3VyclBvcyYmZS51cGRhdGVDdXJzb3IoKSksdC4kc2xpZGUudHJpZ2dlcihcInJlZnJlc2hcIiksZS50cmlnZ2VyKFwib25VcGRhdGVcIix0KX0sdXBkYXRlQ3Vyc29yOmZ1bmN0aW9uKHQsZSl7dmFyIG4sYT10aGlzLGk9YS4kcmVmcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1pcy16b29tYWJsZSBmYW5jeWJveC1jYW4tem9vbUluIGZhbmN5Ym94LWNhbi1kcmFnIGZhbmN5Ym94LWNhbi16b29tT3V0XCIpO2EuY3VycmVudCYmIWEuaXNDbG9zaW5nJiYoYS5pc1pvb21hYmxlKCk/KGkuYWRkQ2xhc3MoXCJmYW5jeWJveC1pcy16b29tYWJsZVwiKSxuPXQhPT1vJiZlIT09bz90PGEuY3VycmVudC53aWR0aCYmZTxhLmN1cnJlbnQuaGVpZ2h0OmEuaXNTY2FsZWREb3duKCksbj9pLmFkZENsYXNzKFwiZmFuY3lib3gtY2FuLXpvb21JblwiKTphLmN1cnJlbnQub3B0cy50b3VjaD9pLmFkZENsYXNzKFwiZmFuY3lib3gtY2FuLWRyYWdcIik6aS5hZGRDbGFzcyhcImZhbmN5Ym94LWNhbi16b29tT3V0XCIpKTphLmN1cnJlbnQub3B0cy50b3VjaCYmaS5hZGRDbGFzcyhcImZhbmN5Ym94LWNhbi1kcmFnXCIpKX0saXNab29tYWJsZTpmdW5jdGlvbigpe3ZhciB0LGU9dGhpcyxvPWUuY3VycmVudDtpZihvJiYhZS5pc0Nsb3NpbmcpcmV0dXJuISEoXCJpbWFnZVwiPT09by50eXBlJiZvLmlzTG9hZGVkJiYhby5oYXNFcnJvciYmKFwiem9vbVwiPT09by5vcHRzLmNsaWNrQ29udGVudHx8bi5pc0Z1bmN0aW9uKG8ub3B0cy5jbGlja0NvbnRlbnQpJiZcInpvb21cIj09PW8ub3B0cy5jbGlja0NvbnRlbnQobykpJiYodD1lLmdldEZpdFBvcyhvKSxvLndpZHRoPnQud2lkdGh8fG8uaGVpZ2h0PnQuaGVpZ2h0KSl9LGlzU2NhbGVkRG93bjpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LmN1cnJlbnQsbz1lLiRjb250ZW50LGE9ITE7cmV0dXJuIG8mJihhPW4uZmFuY3lib3guZ2V0VHJhbnNsYXRlKG8pLGE9YS53aWR0aDxlLndpZHRofHxhLmhlaWdodDxlLmhlaWdodCksYX0sY2FuUGFuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuY3VycmVudCxuPWUuJGNvbnRlbnQsbz0hMTtyZXR1cm4gbiYmKG89dC5nZXRGaXRQb3MoZSksbz1NYXRoLmFicyhuLndpZHRoKCktby53aWR0aCk+MXx8TWF0aC5hYnMobi5oZWlnaHQoKS1vLmhlaWdodCk+MSksb30sbG9hZFNsaWRlOmZ1bmN0aW9uKHQpe3ZhciBlLG8sYSxpPXRoaXM7aWYoIXQuaXNMb2FkaW5nJiYhdC5pc0xvYWRlZCl7c3dpdGNoKHQuaXNMb2FkaW5nPSEwLGkudHJpZ2dlcihcImJlZm9yZUxvYWRcIix0KSxlPXQudHlwZSxvPXQuJHNsaWRlLG8ub2ZmKFwicmVmcmVzaFwiKS50cmlnZ2VyKFwib25SZXNldFwiKS5hZGRDbGFzcyhcImZhbmN5Ym94LXNsaWRlLS1cIisoZXx8XCJ1bmtub3duXCIpKS5hZGRDbGFzcyh0Lm9wdHMuc2xpZGVDbGFzcyksZSl7Y2FzZVwiaW1hZ2VcIjppLnNldEltYWdlKHQpO2JyZWFrO2Nhc2VcImlmcmFtZVwiOmkuc2V0SWZyYW1lKHQpO2JyZWFrO2Nhc2VcImh0bWxcIjppLnNldENvbnRlbnQodCx0LnNyY3x8dC5jb250ZW50KTticmVhaztjYXNlXCJpbmxpbmVcIjpuKHQuc3JjKS5sZW5ndGg/aS5zZXRDb250ZW50KHQsbih0LnNyYykpOmkuc2V0RXJyb3IodCk7YnJlYWs7Y2FzZVwiYWpheFwiOmkuc2hvd0xvYWRpbmcodCksYT1uLmFqYXgobi5leHRlbmQoe30sdC5vcHRzLmFqYXguc2V0dGluZ3Mse3VybDp0LnNyYyxzdWNjZXNzOmZ1bmN0aW9uKGUsbil7XCJzdWNjZXNzXCI9PT1uJiZpLnNldENvbnRlbnQodCxlKX0sZXJyb3I6ZnVuY3Rpb24oZSxuKXtlJiZcImFib3J0XCIhPT1uJiZpLnNldEVycm9yKHQpfX0pKSxvLm9uZShcIm9uUmVzZXRcIixmdW5jdGlvbigpe2EuYWJvcnQoKX0pO2JyZWFrO2RlZmF1bHQ6aS5zZXRFcnJvcih0KX1yZXR1cm4hMH19LHNldEltYWdlOmZ1bmN0aW9uKGUpe3ZhciBvLGEsaSxzLHI9dGhpcyxjPWUub3B0cy5zcmNzZXR8fGUub3B0cy5pbWFnZS5zcmNzZXQ7aWYoYyl7aT10LmRldmljZVBpeGVsUmF0aW98fDEscz10LmlubmVyV2lkdGgqaSxhPWMuc3BsaXQoXCIsXCIpLm1hcChmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gdC50cmltKCkuc3BsaXQoL1xccysvKS5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7dmFyIG89cGFyc2VJbnQodC5zdWJzdHJpbmcoMCx0Lmxlbmd0aC0xKSwxMCk7cmV0dXJuIDA9PT1uP2UudXJsPXQ6dm9pZChvJiYoZS52YWx1ZT1vLGUucG9zdGZpeD10W3QubGVuZ3RoLTFdKSl9KSxlfSksYS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudmFsdWUtZS52YWx1ZX0pO2Zvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKXt2YXIgdT1hW2xdO2lmKFwid1wiPT09dS5wb3N0Zml4JiZ1LnZhbHVlPj1zfHxcInhcIj09PXUucG9zdGZpeCYmdS52YWx1ZT49aSl7bz11O2JyZWFrfX0hbyYmYS5sZW5ndGgmJihvPWFbYS5sZW5ndGgtMV0pLG8mJihlLnNyYz1vLnVybCxlLndpZHRoJiZlLmhlaWdodCYmXCJ3XCI9PW8ucG9zdGZpeCYmKGUuaGVpZ2h0PWUud2lkdGgvZS5oZWlnaHQqby52YWx1ZSxlLndpZHRoPW8udmFsdWUpKX1lLiRjb250ZW50PW4oJzxkaXYgY2xhc3M9XCJmYW5jeWJveC1pbWFnZS13cmFwXCI+PC9kaXY+JykuYWRkQ2xhc3MoXCJmYW5jeWJveC1pcy1oaWRkZW5cIikuYXBwZW5kVG8oZS4kc2xpZGUpLGUub3B0cy5wcmVsb2FkIT09ITEmJmUub3B0cy53aWR0aCYmZS5vcHRzLmhlaWdodCYmKGUub3B0cy50aHVtYnx8ZS5vcHRzLiR0aHVtYik/KGUud2lkdGg9ZS5vcHRzLndpZHRoLGUuaGVpZ2h0PWUub3B0cy5oZWlnaHQsZS4kZ2hvc3Q9bihcIjxpbWcgLz5cIikub25lKFwiZXJyb3JcIixmdW5jdGlvbigpe24odGhpcykucmVtb3ZlKCksZS4kZ2hvc3Q9bnVsbCxyLnNldEJpZ0ltYWdlKGUpfSkub25lKFwibG9hZFwiLGZ1bmN0aW9uKCl7ci5hZnRlckxvYWQoZSksci5zZXRCaWdJbWFnZShlKX0pLmFkZENsYXNzKFwiZmFuY3lib3gtaW1hZ2VcIikuYXBwZW5kVG8oZS4kY29udGVudCkuYXR0cihcInNyY1wiLGUub3B0cy50aHVtYnx8ZS5vcHRzLiR0aHVtYi5hdHRyKFwic3JjXCIpKSk6ci5zZXRCaWdJbWFnZShlKX0sc2V0QmlnSW1hZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxvPW4oXCI8aW1nIC8+XCIpO3QuJGltYWdlPW8ub25lKFwiZXJyb3JcIixmdW5jdGlvbigpe2Uuc2V0RXJyb3IodCl9KS5vbmUoXCJsb2FkXCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodC50aW1vdXRzKSx0LnRpbW91dHM9bnVsbCxlLmlzQ2xvc2luZ3x8KHQud2lkdGg9dGhpcy5uYXR1cmFsV2lkdGgsdC5oZWlnaHQ9dGhpcy5uYXR1cmFsSGVpZ2h0LHQub3B0cy5pbWFnZS5zcmNzZXQmJm8uYXR0cihcInNpemVzXCIsXCIxMDB2d1wiKS5hdHRyKFwic3Jjc2V0XCIsdC5vcHRzLmltYWdlLnNyY3NldCksZS5oaWRlTG9hZGluZyh0KSx0LiRnaG9zdD90LnRpbW91dHM9c2V0VGltZW91dChmdW5jdGlvbigpe3QudGltb3V0cz1udWxsLHQuJGdob3N0LmhpZGUoKX0sTWF0aC5taW4oMzAwLE1hdGgubWF4KDFlMyx0LmhlaWdodC8xNjAwKSkpOmUuYWZ0ZXJMb2FkKHQpKX0pLmFkZENsYXNzKFwiZmFuY3lib3gtaW1hZ2VcIikuYXR0cihcInNyY1wiLHQuc3JjKS5hcHBlbmRUbyh0LiRjb250ZW50KSwob1swXS5jb21wbGV0ZXx8XCJjb21wbGV0ZVwiPT1vWzBdLnJlYWR5U3RhdGUpJiZvWzBdLm5hdHVyYWxXaWR0aCYmb1swXS5uYXR1cmFsSGVpZ2h0P28udHJpZ2dlcihcImxvYWRcIik6b1swXS5lcnJvcj9vLnRyaWdnZXIoXCJlcnJvclwiKTp0LnRpbW91dHM9c2V0VGltZW91dChmdW5jdGlvbigpe29bMF0uY29tcGxldGV8fHQuaGFzRXJyb3J8fGUuc2hvd0xvYWRpbmcodCl9LDEwMCl9LHNldElmcmFtZTpmdW5jdGlvbih0KXt2YXIgZSxhPXRoaXMsaT10Lm9wdHMuaWZyYW1lLHM9dC4kc2xpZGU7dC4kY29udGVudD1uKCc8ZGl2IGNsYXNzPVwiZmFuY3lib3gtY29udGVudCcrKGkucHJlbG9hZD9cIiBmYW5jeWJveC1pcy1oaWRkZW5cIjpcIlwiKSsnXCI+PC9kaXY+JykuY3NzKGkuY3NzKS5hcHBlbmRUbyhzKSxlPW4oaS50cGwucmVwbGFjZSgvXFx7cm5kXFx9L2csKG5ldyBEYXRlKS5nZXRUaW1lKCkpKS5hdHRyKGkuYXR0cikuYXBwZW5kVG8odC4kY29udGVudCksaS5wcmVsb2FkPyhhLnNob3dMb2FkaW5nKHQpLGUub24oXCJsb2FkLmZiIGVycm9yLmZiXCIsZnVuY3Rpb24oZSl7dGhpcy5pc1JlYWR5PTEsdC4kc2xpZGUudHJpZ2dlcihcInJlZnJlc2hcIiksYS5hZnRlckxvYWQodCl9KSxzLm9uKFwicmVmcmVzaC5mYlwiLGZ1bmN0aW9uKCl7dmFyIG4sYSxzLHI9dC4kY29udGVudCxjPWkuY3NzLndpZHRoLGw9aS5jc3MuaGVpZ2h0O2lmKDE9PT1lWzBdLmlzUmVhZHkpe3RyeXthPWUuY29udGVudHMoKSxzPWEuZmluZChcImJvZHlcIil9Y2F0Y2godCl7fXMmJnMubGVuZ3RoJiYoYz09PW8mJihuPWVbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgsYz1NYXRoLmNlaWwocy5vdXRlcldpZHRoKCEwKSsoci53aWR0aCgpLW4pKSxjKz1yLm91dGVyV2lkdGgoKS1yLmlubmVyV2lkdGgoKSksbD09PW8mJihsPU1hdGguY2VpbChzLm91dGVySGVpZ2h0KCEwKSksbCs9ci5vdXRlckhlaWdodCgpLXIuaW5uZXJIZWlnaHQoKSksYyYmci53aWR0aChjKSxsJiZyLmhlaWdodChsKSksci5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LWlzLWhpZGRlblwiKX19KSk6dGhpcy5hZnRlckxvYWQodCksZS5hdHRyKFwic3JjXCIsdC5zcmMpLHQub3B0cy5zbWFsbEJ0bj09PSEwJiZ0LiRjb250ZW50LnByZXBlbmQoYS50cmFuc2xhdGUodCx0Lm9wdHMuYnRuVHBsLnNtYWxsQnRuKSkscy5vbmUoXCJvblJlc2V0XCIsZnVuY3Rpb24oKXt0cnl7bih0aGlzKS5maW5kKFwiaWZyYW1lXCIpLmhpZGUoKS5hdHRyKFwic3JjXCIsXCIvL2Fib3V0OmJsYW5rXCIpfWNhdGNoKHQpe31uKHRoaXMpLmVtcHR5KCksdC5pc0xvYWRlZD0hMX0pfSxzZXRDb250ZW50OmZ1bmN0aW9uKHQsZSl7dmFyIG89dGhpcztvLmlzQ2xvc2luZ3x8KG8uaGlkZUxvYWRpbmcodCksdC4kc2xpZGUuZW1wdHkoKSxsKGUpJiZlLnBhcmVudCgpLmxlbmd0aD8oZS5wYXJlbnQoXCIuZmFuY3lib3gtc2xpZGUtLWlubGluZVwiKS50cmlnZ2VyKFwib25SZXNldFwiKSx0LiRwbGFjZWhvbGRlcj1uKFwiPGRpdj48L2Rpdj5cIikuaGlkZSgpLmluc2VydEFmdGVyKGUpLGUuY3NzKFwiZGlzcGxheVwiLFwiaW5saW5lLWJsb2NrXCIpKTp0Lmhhc0Vycm9yfHwoXCJzdHJpbmdcIj09PW4udHlwZShlKSYmKGU9bihcIjxkaXY+XCIpLmFwcGVuZChuLnRyaW0oZSkpLmNvbnRlbnRzKCksMz09PWVbMF0ubm9kZVR5cGUmJihlPW4oXCI8ZGl2PlwiKS5odG1sKGUpKSksdC5vcHRzLmZpbHRlciYmKGU9bihcIjxkaXY+XCIpLmh0bWwoZSkuZmluZCh0Lm9wdHMuZmlsdGVyKSkpLHQuJHNsaWRlLm9uZShcIm9uUmVzZXRcIixmdW5jdGlvbigpe3QuJHBsYWNlaG9sZGVyJiYodC4kcGxhY2Vob2xkZXIuYWZ0ZXIoZS5oaWRlKCkpLnJlbW92ZSgpLHQuJHBsYWNlaG9sZGVyPW51bGwpLHQuJHNtYWxsQnRuJiYodC4kc21hbGxCdG4ucmVtb3ZlKCksdC4kc21hbGxCdG49bnVsbCksdC5oYXNFcnJvcnx8KG4odGhpcykuZW1wdHkoKSx0LmlzTG9hZGVkPSExKX0pLHQuJGNvbnRlbnQ9bihlKS5hcHBlbmRUbyh0LiRzbGlkZSksdGhpcy5hZnRlckxvYWQodCkpfSxzZXRFcnJvcjpmdW5jdGlvbih0KXt0Lmhhc0Vycm9yPSEwLHQuJHNsaWRlLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtc2xpZGUtLVwiK3QudHlwZSksdGhpcy5zZXRDb250ZW50KHQsdGhpcy50cmFuc2xhdGUodCx0Lm9wdHMuZXJyb3JUcGwpKX0sc2hvd0xvYWRpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0PXR8fGUuY3VycmVudCx0JiYhdC4kc3Bpbm5lciYmKHQuJHNwaW5uZXI9bihlLm9wdHMuc3Bpbm5lclRwbCkuYXBwZW5kVG8odC4kc2xpZGUpKX0saGlkZUxvYWRpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0PXR8fGUuY3VycmVudCx0JiZ0LiRzcGlubmVyJiYodC4kc3Bpbm5lci5yZW1vdmUoKSxkZWxldGUgdC4kc3Bpbm5lcil9LGFmdGVyTG9hZDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2UuaXNDbG9zaW5nfHwodC5pc0xvYWRpbmc9ITEsdC5pc0xvYWRlZD0hMCxlLnRyaWdnZXIoXCJhZnRlckxvYWRcIix0KSxlLmhpZGVMb2FkaW5nKHQpLHQub3B0cy5zbWFsbEJ0biYmIXQuJHNtYWxsQnRuJiYodC4kc21hbGxCdG49bihlLnRyYW5zbGF0ZSh0LHQub3B0cy5idG5UcGwuc21hbGxCdG4pKS5hcHBlbmRUbyh0LiRjb250ZW50LmZpbHRlcihcImRpdixmb3JtXCIpLmZpcnN0KCkpKSx0Lm9wdHMucHJvdGVjdCYmdC4kY29udGVudCYmIXQuaGFzRXJyb3ImJih0LiRjb250ZW50Lm9uKFwiY29udGV4dG1lbnUuZmJcIixmdW5jdGlvbih0KXtyZXR1cm4gMj09dC5idXR0b24mJnQucHJldmVudERlZmF1bHQoKSwhMH0pLFwiaW1hZ2VcIj09PXQudHlwZSYmbignPGRpdiBjbGFzcz1cImZhbmN5Ym94LXNwYWNlYmFsbFwiPjwvZGl2PicpLmFwcGVuZFRvKHQuJGNvbnRlbnQpKSxlLnJldmVhbENvbnRlbnQodCkpfSxyZXZlYWxDb250ZW50OmZ1bmN0aW9uKHQpe3ZhciBlLGEsaSxzLHIsYz10aGlzLGw9dC4kc2xpZGUsdT0hMTtyZXR1cm4gZT10Lm9wdHNbYy5maXJzdFJ1bj9cImFuaW1hdGlvbkVmZmVjdFwiOlwidHJhbnNpdGlvbkVmZmVjdFwiXSxpPXQub3B0c1tjLmZpcnN0UnVuP1wiYW5pbWF0aW9uRHVyYXRpb25cIjpcInRyYW5zaXRpb25EdXJhdGlvblwiXSxpPXBhcnNlSW50KHQuZm9yY2VkRHVyYXRpb249PT1vP2k6dC5mb3JjZWREdXJhdGlvbiwxMCksIXQuaXNNb3ZlZCYmdC5wb3M9PT1jLmN1cnJQb3MmJml8fChlPSExKSxcInpvb21cIiE9PWV8fHQucG9zPT09Yy5jdXJyUG9zJiZpJiZcImltYWdlXCI9PT10LnR5cGUmJiF0Lmhhc0Vycm9yJiYodT1jLmdldFRodW1iUG9zKHQpKXx8KGU9XCJmYWRlXCIpLFwiem9vbVwiPT09ZT8ocj1jLmdldEZpdFBvcyh0KSxyLnNjYWxlWD1yLndpZHRoL3Uud2lkdGgsci5zY2FsZVk9ci5oZWlnaHQvdS5oZWlnaHQsZGVsZXRlIHIud2lkdGgsZGVsZXRlIHIuaGVpZ2h0LHM9dC5vcHRzLnpvb21PcGFjaXR5LFwiYXV0b1wiPT1zJiYocz1NYXRoLmFicyh0LndpZHRoL3QuaGVpZ2h0LXUud2lkdGgvdS5oZWlnaHQpPi4xKSxzJiYodS5vcGFjaXR5PS4xLHIub3BhY2l0eT0xKSxuLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSh0LiRjb250ZW50LnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtaXMtaGlkZGVuXCIpLHUpLGYodC4kY29udGVudCksdm9pZCBuLmZhbmN5Ym94LmFuaW1hdGUodC4kY29udGVudCxyLGksZnVuY3Rpb24oKXtjLmNvbXBsZXRlKCl9KSk6KGMudXBkYXRlU2xpZGUodCksZT8obi5mYW5jeWJveC5zdG9wKGwpLGE9XCJmYW5jeWJveC1hbmltYXRlZCBmYW5jeWJveC1zbGlkZS0tXCIrKHQucG9zPj1jLnByZXZQb3M/XCJuZXh0XCI6XCJwcmV2aW91c1wiKStcIiBmYW5jeWJveC1meC1cIitlLGwucmVtb3ZlQXR0cihcInN0eWxlXCIpLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQgZmFuY3lib3gtc2xpZGUtLW5leHQgZmFuY3lib3gtc2xpZGUtLXByZXZpb3VzXCIpLmFkZENsYXNzKGEpLHQuJGNvbnRlbnQucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1pcy1oaWRkZW5cIiksZihsKSx2b2lkIG4uZmFuY3lib3guYW5pbWF0ZShsLFwiZmFuY3lib3gtc2xpZGUtLWN1cnJlbnRcIixpLGZ1bmN0aW9uKGUpe2wucmVtb3ZlQ2xhc3MoYSkucmVtb3ZlQXR0cihcInN0eWxlXCIpLHQucG9zPT09Yy5jdXJyUG9zJiZjLmNvbXBsZXRlKCl9LCEwKSk6KGYobCksdC4kY29udGVudC5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LWlzLWhpZGRlblwiKSx2b2lkKHQucG9zPT09Yy5jdXJyUG9zJiZjLmNvbXBsZXRlKCkpKSl9LGdldFRodW1iUG9zOmZ1bmN0aW9uKG8pe3ZhciBhLGk9dGhpcyxzPSExLHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciBvLGE9ZVswXSxpPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1bXTtudWxsIT09YS5wYXJlbnRFbGVtZW50OylcImhpZGRlblwiIT09bihhLnBhcmVudEVsZW1lbnQpLmNzcyhcIm92ZXJmbG93XCIpJiZcImF1dG9cIiE9PW4oYS5wYXJlbnRFbGVtZW50KS5jc3MoXCJvdmVyZmxvd1wiKXx8cy5wdXNoKGEucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYT1hLnBhcmVudEVsZW1lbnQ7cmV0dXJuIG89cy5ldmVyeShmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1pbihpLnJpZ2h0LHQucmlnaHQpLU1hdGgubWF4KGkubGVmdCx0LmxlZnQpLG49TWF0aC5taW4oaS5ib3R0b20sdC5ib3R0b20pLU1hdGgubWF4KGkudG9wLHQudG9wKTtyZXR1cm4gZT4wJiZuPjB9KSxvJiZpLmJvdHRvbT4wJiZpLnJpZ2h0PjAmJmkubGVmdDxuKHQpLndpZHRoKCkmJmkudG9wPG4odCkuaGVpZ2h0KCl9LGM9by5vcHRzLiR0aHVtYixsPWM/Yy5vZmZzZXQoKTowO3JldHVybiBsJiZjWzBdLm93bmVyRG9jdW1lbnQ9PT1lJiZyKGMpJiYoYT1pLiRyZWZzLnN0YWdlLm9mZnNldCgpLHM9e3RvcDpsLnRvcC1hLnRvcCtwYXJzZUZsb2F0KGMuY3NzKFwiYm9yZGVyLXRvcC13aWR0aFwiKXx8MCksbGVmdDpsLmxlZnQtYS5sZWZ0K3BhcnNlRmxvYXQoYy5jc3MoXCJib3JkZXItbGVmdC13aWR0aFwiKXx8MCksd2lkdGg6Yy53aWR0aCgpLGhlaWdodDpjLmhlaWdodCgpLHNjYWxlWDoxLHNjYWxlWToxfSksc30sY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLG89dC5jdXJyZW50LGE9e307by5pc01vdmVkfHwhby5pc0xvYWRlZHx8by5pc0NvbXBsZXRlfHwoby5pc0NvbXBsZXRlPSEwLG8uJHNsaWRlLnNpYmxpbmdzKCkudHJpZ2dlcihcIm9uUmVzZXRcIiksZihvLiRzbGlkZSksby4kc2xpZGUuYWRkQ2xhc3MoXCJmYW5jeWJveC1zbGlkZS0tY29tcGxldGVcIiksbi5lYWNoKHQuc2xpZGVzLGZ1bmN0aW9uKGUsbyl7by5wb3M+PXQuY3VyclBvcy0xJiZvLnBvczw9dC5jdXJyUG9zKzE/YVtvLnBvc109bzpvJiYobi5mYW5jeWJveC5zdG9wKG8uJHNsaWRlKSxvLiRzbGlkZS5vZmYoKS5yZW1vdmUoKSl9KSx0LnNsaWRlcz1hLHQudXBkYXRlQ3Vyc29yKCksdC50cmlnZ2VyKFwiYWZ0ZXJTaG93XCIpLChuKGUuYWN0aXZlRWxlbWVudCkuaXMoXCJbZGlzYWJsZWRdXCIpfHxvLm9wdHMuYXV0b0ZvY3VzJiZcImltYWdlXCIhPW8udHlwZSYmXCJpZnJhbWVcIiE9PW8udHlwZSkmJnQuZm9jdXMoKSl9LHByZWxvYWQ6ZnVuY3Rpb24oKXt2YXIgdCxlLG49dGhpcztuLmdyb3VwLmxlbmd0aDwyfHwodD1uLnNsaWRlc1tuLmN1cnJQb3MrMV0sZT1uLnNsaWRlc1tuLmN1cnJQb3MtMV0sdCYmXCJpbWFnZVwiPT09dC50eXBlJiZuLmxvYWRTbGlkZSh0KSxlJiZcImltYWdlXCI9PT1lLnR5cGUmJm4ubG9hZFNsaWRlKGUpKX0sZm9jdXM6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMuY3VycmVudDt0aGlzLmlzQ2xvc2luZ3x8KGUmJmUuaXNDb21wbGV0ZSYmKHQ9ZS4kc2xpZGUuZmluZChcImlucHV0W2F1dG9mb2N1c106ZW5hYmxlZDp2aXNpYmxlOmZpcnN0XCIpLHQubGVuZ3RofHwodD1lLiRzbGlkZS5maW5kKFwiYnV0dG9uLDppbnB1dCxbdGFiaW5kZXhdLGFcIikuZmlsdGVyKFwiOmVuYWJsZWQ6dmlzaWJsZTpmaXJzdFwiKSkpLHQ9dCYmdC5sZW5ndGg/dDp0aGlzLiRyZWZzLmNvbnRhaW5lcix0LmZvY3VzKCkpfSxhY3RpdmF0ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7bihcIi5mYW5jeWJveC1jb250YWluZXJcIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPW4odGhpcykuZGF0YShcIkZhbmN5Qm94XCIpO2UmJmUuaWQhPT10LmlkJiYhZS5pc0Nsb3NpbmcmJihlLnRyaWdnZXIoXCJvbkRlYWN0aXZhdGVcIiksZS5yZW1vdmVFdmVudHMoKSxlLmlzVmlzaWJsZT0hMSl9KSx0LmlzVmlzaWJsZT0hMCwodC5jdXJyZW50fHx0LmlzSWRsZSkmJih0LnVwZGF0ZSgpLHQudXBkYXRlQ29udHJvbHMoKSksdC50cmlnZ2VyKFwib25BY3RpdmF0ZVwiKSx0LmFkZEV2ZW50cygpfSxjbG9zZTpmdW5jdGlvbih0LGUpe3ZhciBvLGEsaSxzLHIsYyxsPXRoaXMsZj1sLmN1cnJlbnQscD1mdW5jdGlvbigpe2wuY2xlYW5VcCh0KX07cmV0dXJuIWwuaXNDbG9zaW5nJiYobC5pc0Nsb3Npbmc9ITAsbC50cmlnZ2VyKFwiYmVmb3JlQ2xvc2VcIix0KT09PSExPyhsLmlzQ2xvc2luZz0hMSx1KGZ1bmN0aW9uKCl7bC51cGRhdGUoKX0pLCExKToobC5yZW1vdmVFdmVudHMoKSxmLnRpbW91dHMmJmNsZWFyVGltZW91dChmLnRpbW91dHMpLGk9Zi4kY29udGVudCxvPWYub3B0cy5hbmltYXRpb25FZmZlY3QsYT1uLmlzTnVtZXJpYyhlKT9lOm8/Zi5vcHRzLmFuaW1hdGlvbkR1cmF0aW9uOjAsZi4kc2xpZGUub2ZmKGQpLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtc2xpZGUtLWNvbXBsZXRlIGZhbmN5Ym94LXNsaWRlLS1uZXh0IGZhbmN5Ym94LXNsaWRlLS1wcmV2aW91cyBmYW5jeWJveC1hbmltYXRlZFwiKSxmLiRzbGlkZS5zaWJsaW5ncygpLnRyaWdnZXIoXCJvblJlc2V0XCIpLnJlbW92ZSgpLGEmJmwuJHJlZnMuY29udGFpbmVyLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtaXMtb3BlblwiKS5hZGRDbGFzcyhcImZhbmN5Ym94LWlzLWNsb3NpbmdcIiksbC5oaWRlTG9hZGluZyhmKSxsLmhpZGVDb250cm9scygpLGwudXBkYXRlQ3Vyc29yKCksXCJ6b29tXCIhPT1vfHx0IT09ITAmJmkmJmEmJlwiaW1hZ2VcIj09PWYudHlwZSYmIWYuaGFzRXJyb3ImJihjPWwuZ2V0VGh1bWJQb3MoZikpfHwobz1cImZhZGVcIiksXCJ6b29tXCI9PT1vPyhuLmZhbmN5Ym94LnN0b3AoaSkscj1uLmZhbmN5Ym94LmdldFRyYW5zbGF0ZShpKSxyLndpZHRoPXIud2lkdGgqci5zY2FsZVgsci5oZWlnaHQ9ci5oZWlnaHQqci5zY2FsZVkscz1mLm9wdHMuem9vbU9wYWNpdHksXCJhdXRvXCI9PXMmJihzPU1hdGguYWJzKGYud2lkdGgvZi5oZWlnaHQtYy53aWR0aC9jLmhlaWdodCk+LjEpLHMmJihjLm9wYWNpdHk9MCksci5zY2FsZVg9ci53aWR0aC9jLndpZHRoLHIuc2NhbGVZPXIuaGVpZ2h0L2MuaGVpZ2h0LHIud2lkdGg9Yy53aWR0aCxyLmhlaWdodD1jLmhlaWdodCxuLmZhbmN5Ym94LnNldFRyYW5zbGF0ZShmLiRjb250ZW50LHIpLG4uZmFuY3lib3guYW5pbWF0ZShmLiRjb250ZW50LGMsYSxwKSwhMCk6KG8mJmE/dD09PSEwP3NldFRpbWVvdXQocCxhKTpuLmZhbmN5Ym94LmFuaW1hdGUoZi4kc2xpZGUucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1zbGlkZS0tY3VycmVudFwiKSxcImZhbmN5Ym94LWFuaW1hdGVkIGZhbmN5Ym94LXNsaWRlLS1wcmV2aW91cyBmYW5jeWJveC1meC1cIitvLGEscCk6cCgpLCEwKSkpfSxjbGVhblVwOmZ1bmN0aW9uKHQpe3ZhciBvLGEsaT10aGlzLHI9bihcImJvZHlcIik7aS5jdXJyZW50LiRzbGlkZS50cmlnZ2VyKFwib25SZXNldFwiKSxpLiRyZWZzLmNvbnRhaW5lci5lbXB0eSgpLnJlbW92ZSgpLGkudHJpZ2dlcihcImFmdGVyQ2xvc2VcIix0KSxpLiRsYXN0Rm9jdXMmJmkuY3VycmVudC5vcHRzLmJhY2tGb2N1cyYmaS4kbGFzdEZvY3VzLmZvY3VzKCksaS5jdXJyZW50PW51bGwsbz1uLmZhbmN5Ym94LmdldEluc3RhbmNlKCksbz9vLmFjdGl2YXRlKCk6KHMuc2Nyb2xsVG9wKGkuc2Nyb2xsVG9wKS5zY3JvbGxMZWZ0KGkuc2Nyb2xsTGVmdCksci5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LWFjdGl2ZSBjb21wZW5zYXRlLWZvci1zY3JvbGxiYXJcIiksci5oYXNDbGFzcyhcImZhbmN5Ym94LWlvc2ZpeFwiKSYmKGE9cGFyc2VJbnQoZS5ib2R5LnN0eWxlLnRvcCwxMCksci5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LWlvc2ZpeFwiKS5jc3MoXCJ0b3BcIixcIlwiKS5zY3JvbGxUb3AoYSotMSkpLG4oXCIjZmFuY3lib3gtc3R5bGUtbm9zY3JvbGxcIikucmVtb3ZlKCkpfSx0cmlnZ2VyOmZ1bmN0aW9uKHQsZSl7dmFyIG8sYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksaT10aGlzLHM9ZSYmZS5vcHRzP2U6aS5jdXJyZW50O3JldHVybiBzP2EudW5zaGlmdChzKTpzPWksYS51bnNoaWZ0KGkpLG4uaXNGdW5jdGlvbihzLm9wdHNbdF0pJiYobz1zLm9wdHNbdF0uYXBwbHkocyxhKSksbz09PSExP286dm9pZChcImFmdGVyQ2xvc2VcIiE9PXQmJmkuJHJlZnM/aS4kcmVmcy5jb250YWluZXIudHJpZ2dlcih0K1wiLmZiXCIsYSk6ci50cmlnZ2VyKHQrXCIuZmJcIixhKSl9LHVwZGF0ZUNvbnRyb2xzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1lLmN1cnJlbnQsbz1uLmluZGV4LGE9bi5vcHRzLmNhcHRpb24saT1lLiRyZWZzLmNvbnRhaW5lcixzPWUuJHJlZnMuY2FwdGlvbjtuLiRzbGlkZS50cmlnZ2VyKFwicmVmcmVzaFwiKSxlLiRjYXB0aW9uPWEmJmEubGVuZ3RoP3MuaHRtbChhKTpudWxsLGUuaXNIaWRkZW5Db250cm9sc3x8ZS5pc0lkbGV8fGUuc2hvd0NvbnRyb2xzKCksaS5maW5kKFwiW2RhdGEtZmFuY3lib3gtY291bnRdXCIpLmh0bWwoZS5ncm91cC5sZW5ndGgpLGkuZmluZChcIltkYXRhLWZhbmN5Ym94LWluZGV4XVwiKS5odG1sKG8rMSksaS5maW5kKFwiW2RhdGEtZmFuY3lib3gtcHJldl1cIikucHJvcChcImRpc2FibGVkXCIsIW4ub3B0cy5sb29wJiZvPD0wKSxpLmZpbmQoXCJbZGF0YS1mYW5jeWJveC1uZXh0XVwiKS5wcm9wKFwiZGlzYWJsZWRcIiwhbi5vcHRzLmxvb3AmJm8+PWUuZ3JvdXAubGVuZ3RoLTEpLFwiaW1hZ2VcIj09PW4udHlwZT9pLmZpbmQoXCJbZGF0YS1mYW5jeWJveC1kb3dubG9hZF1cIikuYXR0cihcImhyZWZcIixuLm9wdHMuaW1hZ2Uuc3JjfHxuLnNyYyk6aS5maW5kKFwiW2RhdGEtZmFuY3lib3gtZG93bmxvYWRdXCIpLmhpZGUoKX0saGlkZUNvbnRyb2xzOmZ1bmN0aW9uKCl7dGhpcy5pc0hpZGRlbkNvbnRyb2xzPSEwLHRoaXMuJHJlZnMuY29udGFpbmVyLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtc2hvdy1pbmZvYmFyIGZhbmN5Ym94LXNob3ctdG9vbGJhciBmYW5jeWJveC1zaG93LWNhcHRpb24gZmFuY3lib3gtc2hvdy1uYXZcIil9LHNob3dDb250cm9sczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LmN1cnJlbnQ/dC5jdXJyZW50Lm9wdHM6dC5vcHRzLG49dC4kcmVmcy5jb250YWluZXI7dC5pc0hpZGRlbkNvbnRyb2xzPSExLHQuaWRsZVNlY29uZHNDb3VudGVyPTAsbi50b2dnbGVDbGFzcyhcImZhbmN5Ym94LXNob3ctdG9vbGJhclwiLCEoIWUudG9vbGJhcnx8IWUuYnV0dG9ucykpLnRvZ2dsZUNsYXNzKFwiZmFuY3lib3gtc2hvdy1pbmZvYmFyXCIsISEoZS5pbmZvYmFyJiZ0Lmdyb3VwLmxlbmd0aD4xKSkudG9nZ2xlQ2xhc3MoXCJmYW5jeWJveC1zaG93LW5hdlwiLCEhKGUuYXJyb3dzJiZ0Lmdyb3VwLmxlbmd0aD4xKSkudG9nZ2xlQ2xhc3MoXCJmYW5jeWJveC1pcy1tb2RhbFwiLCEhZS5tb2RhbCksdC4kY2FwdGlvbj9uLmFkZENsYXNzKFwiZmFuY3lib3gtc2hvdy1jYXB0aW9uIFwiKTpuLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtc2hvdy1jYXB0aW9uXCIpfSx0b2dnbGVDb250cm9sczpmdW5jdGlvbigpe3RoaXMuaXNIaWRkZW5Db250cm9scz90aGlzLnNob3dDb250cm9scygpOnRoaXMuaGlkZUNvbnRyb2xzKCl9fSksbi5mYW5jeWJveD17dmVyc2lvbjpcIjMuMi4xXCIsZGVmYXVsdHM6aSxnZXRJbnN0YW5jZTpmdW5jdGlvbih0KXt2YXIgZT1uKCcuZmFuY3lib3gtY29udGFpbmVyOm5vdChcIi5mYW5jeWJveC1pcy1jbG9zaW5nXCIpOmxhc3QnKS5kYXRhKFwiRmFuY3lCb3hcIiksbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7cmV0dXJuIGUgaW5zdGFuY2VvZiBwJiYoXCJzdHJpbmdcIj09PW4udHlwZSh0KT9lW3RdLmFwcGx5KGUsbyk6XCJmdW5jdGlvblwiPT09bi50eXBlKHQpJiZ0LmFwcGx5KGUsbyksZSl9LG9wZW46ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuZXcgcCh0LGUsbil9LGNsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0SW5zdGFuY2UoKTtlJiYoZS5jbG9zZSgpLHQ9PT0hMCYmdGhpcy5jbG9zZSgpKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuY2xvc2UoITApLHIub2ZmKFwiY2xpY2suZmItc3RhcnRcIil9LGlzTW9iaWxlOmUuY3JlYXRlVG91Y2ghPT1vJiYvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLHVzZTNkOmZ1bmN0aW9uKCl7dmFyIG49ZS5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3JldHVybiB0LmdldENvbXB1dGVkU3R5bGUmJnQuZ2V0Q29tcHV0ZWRTdHlsZShuKS5nZXRQcm9wZXJ0eVZhbHVlKFwidHJhbnNmb3JtXCIpJiYhKGUuZG9jdW1lbnRNb2RlJiZlLmRvY3VtZW50TW9kZTwxMSl9KCksZ2V0VHJhbnNsYXRlOmZ1bmN0aW9uKHQpe3ZhciBlO2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuITE7aWYoZT10LmVxKDApLmNzcyhcInRyYW5zZm9ybVwiKSxlJiZlLmluZGV4T2YoXCJtYXRyaXhcIikhPT0tMT8oZT1lLnNwbGl0KFwiKFwiKVsxXSxlPWUuc3BsaXQoXCIpXCIpWzBdLGU9ZS5zcGxpdChcIixcIikpOmU9W10sZS5sZW5ndGgpZT1lLmxlbmd0aD4xMD9bZVsxM10sZVsxMl0sZVswXSxlWzVdXTpbZVs1XSxlWzRdLGVbMF0sZVszXV0sZT1lLm1hcChwYXJzZUZsb2F0KTtlbHNle2U9WzAsMCwxLDFdO3ZhciBuPS9cXC4qdHJhbnNsYXRlXFwoKC4qKXB4LCguKilweFxcKS9pLG89bi5leGVjKHQuZXEoMCkuYXR0cihcInN0eWxlXCIpKTtvJiYoZVswXT1wYXJzZUZsb2F0KG9bMl0pLGVbMV09cGFyc2VGbG9hdChvWzFdKSl9cmV0dXJue3RvcDplWzBdLGxlZnQ6ZVsxXSxzY2FsZVg6ZVsyXSxzY2FsZVk6ZVszXSxvcGFjaXR5OnBhcnNlRmxvYXQodC5jc3MoXCJvcGFjaXR5XCIpKSx3aWR0aDp0LndpZHRoKCksaGVpZ2h0OnQuaGVpZ2h0KCl9fSxzZXRUcmFuc2xhdGU6ZnVuY3Rpb24odCxlKXt2YXIgbj1cIlwiLGE9e307aWYodCYmZSlyZXR1cm4gZS5sZWZ0PT09byYmZS50b3A9PT1vfHwobj0oZS5sZWZ0PT09bz90LnBvc2l0aW9uKCkubGVmdDplLmxlZnQpK1wicHgsIFwiKyhlLnRvcD09PW8/dC5wb3NpdGlvbigpLnRvcDplLnRvcCkrXCJweFwiLG49dGhpcy51c2UzZD9cInRyYW5zbGF0ZTNkKFwiK24rXCIsIDBweClcIjpcInRyYW5zbGF0ZShcIituK1wiKVwiKSxlLnNjYWxlWCE9PW8mJmUuc2NhbGVZIT09byYmKG49KG4ubGVuZ3RoP24rXCIgXCI6XCJcIikrXCJzY2FsZShcIitlLnNjYWxlWCtcIiwgXCIrZS5zY2FsZVkrXCIpXCIpLG4ubGVuZ3RoJiYoYS50cmFuc2Zvcm09biksZS5vcGFjaXR5IT09byYmKGEub3BhY2l0eT1lLm9wYWNpdHkpLGUud2lkdGghPT1vJiYoYS53aWR0aD1lLndpZHRoKSxlLmhlaWdodCE9PW8mJihhLmhlaWdodD1lLmhlaWdodCksdC5jc3MoYSl9LGFuaW1hdGU6ZnVuY3Rpb24odCxlLGEsaSxzKXtuLmlzRnVuY3Rpb24oYSkmJihpPWEsYT1udWxsKSxuLmlzUGxhaW5PYmplY3QoZSl8fHQucmVtb3ZlQXR0cihcInN0eWxlXCIpLHQub24oZHx8XCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24oYSl7KCFhfHwhYS5vcmlnaW5hbEV2ZW50fHx0LmlzKGEub3JpZ2luYWxFdmVudC50YXJnZXQpJiZcInotaW5kZXhcIiE9YS5vcmlnaW5hbEV2ZW50LnByb3BlcnR5TmFtZSkmJihuLmZhbmN5Ym94LnN0b3AodCksbi5pc1BsYWluT2JqZWN0KGUpP2Uuc2NhbGVYIT09byYmZS5zY2FsZVkhPT1vJiYodC5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIsXCIwbXNcIiksZS53aWR0aD1NYXRoLnJvdW5kKHQud2lkdGgoKSplLnNjYWxlWCksZS5oZWlnaHQ9TWF0aC5yb3VuZCh0LmhlaWdodCgpKmUuc2NhbGVZKSxlLnNjYWxlWD0xLGUuc2NhbGVZPTEsbi5mYW5jeWJveC5zZXRUcmFuc2xhdGUodCxlKSk6cyE9PSEwJiZ0LnJlbW92ZUNsYXNzKGUpLG4uaXNGdW5jdGlvbihpKSYmaShhKSl9KSxuLmlzTnVtZXJpYyhhKSYmdC5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIsYStcIm1zXCIpLG4uaXNQbGFpbk9iamVjdChlKT9uLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSh0LGUpOnQuYWRkQ2xhc3MoZSksZS5zY2FsZVgmJnQuaGFzQ2xhc3MoXCJmYW5jeWJveC1pbWFnZS13cmFwXCIpJiZ0LnBhcmVudCgpLmFkZENsYXNzKFwiZmFuY3lib3gtaXMtc2NhbGluZ1wiKSx0LmRhdGEoXCJ0aW1lclwiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnRyaWdnZXIoXCJ0cmFuc2l0aW9uZW5kXCIpfSxhKzE2KSl9LHN0b3A6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHQuZGF0YShcInRpbWVyXCIpKSx0Lm9mZihkfHxcInRyYW5zaXRpb25lbmRcIiksdC5oYXNDbGFzcyhcImZhbmN5Ym94LWltYWdlLXdyYXBcIikmJnQucGFyZW50KCkucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1pcy1zY2FsaW5nXCIpfX0sbi5mbi5mYW5jeWJveD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdD10fHx7fSxlPXQuc2VsZWN0b3J8fCExLGU/bihcImJvZHlcIikub2ZmKFwiY2xpY2suZmItc3RhcnRcIixlKS5vbihcImNsaWNrLmZiLXN0YXJ0XCIsZSx7b3B0aW9uczp0fSxhKTp0aGlzLm9mZihcImNsaWNrLmZiLXN0YXJ0XCIpLm9uKFwiY2xpY2suZmItc3RhcnRcIix7aXRlbXM6dGhpcyxvcHRpb25zOnR9LGEpLHRoaXN9LHIub24oXCJjbGljay5mYi1zdGFydFwiLFwiW2RhdGEtZmFuY3lib3hdXCIsYSl9fSh3aW5kb3csZG9jdW1lbnQsd2luZG93LmpRdWVyeXx8alF1ZXJ5KSxmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjt2YXIgZT1mdW5jdGlvbihlLG4sbyl7aWYoZSlyZXR1cm4gbz1vfHxcIlwiLFwib2JqZWN0XCI9PT10LnR5cGUobykmJihvPXQucGFyYW0obywhMCkpLHQuZWFjaChuLGZ1bmN0aW9uKHQsbil7ZT1lLnJlcGxhY2UoXCIkXCIrdCxufHxcIlwiKX0pLG8ubGVuZ3RoJiYoZSs9KGUuaW5kZXhPZihcIj9cIik+MD9cIiZcIjpcIj9cIikrbyksZX0sbj17eW91dHViZTp7bWF0Y2hlcjovKHlvdXR1YmVcXC5jb218eW91dHVcXC5iZXx5b3V0dWJlXFwtbm9jb29raWVcXC5jb20pXFwvKHdhdGNoXFw/KC4qJik/dj18dlxcL3x1XFwvfGVtYmVkXFwvPyk/KHZpZGVvc2VyaWVzXFw/bGlzdD0oLiopfFtcXHctXXsxMX18XFw/bGlzdFR5cGU9KC4qKSZsaXN0PSguKikpKC4qKS9pLHBhcmFtczp7YXV0b3BsYXk6MSxhdXRvaGlkZToxLGZzOjEscmVsOjAsaGQ6MSx3bW9kZTpcInRyYW5zcGFyZW50XCIsZW5hYmxlanNhcGk6MSxodG1sNToxfSxwYXJhbVBsYWNlOjgsdHlwZTpcImlmcmFtZVwiLHVybDpcIi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyQ0XCIsdGh1bWI6XCIvL2ltZy55b3V0dWJlLmNvbS92aS8kNC9ocWRlZmF1bHQuanBnXCJ9LHZpbWVvOnttYXRjaGVyOi9eLit2aW1lby5jb21cXC8oLipcXC8pPyhbXFxkXSspKC4qKT8vLHBhcmFtczp7YXV0b3BsYXk6MSxoZDoxLHNob3dfdGl0bGU6MSxzaG93X2J5bGluZToxLHNob3dfcG9ydHJhaXQ6MCxmdWxsc2NyZWVuOjEsYXBpOjF9LHBhcmFtUGxhY2U6Myx0eXBlOlwiaWZyYW1lXCIsdXJsOlwiLy9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLyQyXCJ9LG1ldGFjYWZlOnttYXRjaGVyOi9tZXRhY2FmZS5jb21cXC93YXRjaFxcLyhcXGQrKVxcLyguKik/Lyx0eXBlOlwiaWZyYW1lXCIsdXJsOlwiLy93d3cubWV0YWNhZmUuY29tL2VtYmVkLyQxLz9hcD0xXCJ9LGRhaWx5bW90aW9uOnttYXRjaGVyOi9kYWlseW1vdGlvbi5jb21cXC92aWRlb1xcLyguKilcXC8/KC4qKS8scGFyYW1zOnthZGRpdGlvbmFsSW5mb3M6MCxhdXRvU3RhcnQ6MX0sdHlwZTpcImlmcmFtZVwiLHVybDpcIi8vd3d3LmRhaWx5bW90aW9uLmNvbS9lbWJlZC92aWRlby8kMVwifSx2aW5lOnttYXRjaGVyOi92aW5lLmNvXFwvdlxcLyhbYS16QS1aMC05XFw/XFw9XFwtXSspLyx0eXBlOlwiaWZyYW1lXCIsdXJsOlwiLy92aW5lLmNvL3YvJDEvZW1iZWQvc2ltcGxlXCJ9LGluc3RhZ3JhbTp7bWF0Y2hlcjovKGluc3RhZ3JcXC5hbXxpbnN0YWdyYW1cXC5jb20pXFwvcFxcLyhbYS16QS1aMC05X1xcLV0rKVxcLz8vaSx0eXBlOlwiaW1hZ2VcIix1cmw6XCIvLyQxL3AvJDIvbWVkaWEvP3NpemU9bFwifSxnbWFwX3BsYWNlOnttYXRjaGVyOi8obWFwc1xcLik/Z29vZ2xlXFwuKFthLXpdezIsM30oXFwuW2Etel17Mn0pPylcXC8oKChtYXBzXFwvKHBsYWNlXFwvKC4qKVxcLyk/XFxAKC4qKSwoXFxkKy4/XFxkKz8peikpfChcXD9sbD0pKSguKik/L2ksdHlwZTpcImlmcmFtZVwiLHVybDpmdW5jdGlvbih0KXtyZXR1cm5cIi8vbWFwcy5nb29nbGUuXCIrdFsyXStcIi8/bGw9XCIrKHRbOV0/dFs5XStcIiZ6PVwiK01hdGguZmxvb3IodFsxMF0pKyh0WzEyXT90WzEyXS5yZXBsYWNlKC9eXFwvLyxcIiZcIik6XCJcIik6dFsxMl0pK1wiJm91dHB1dD1cIisodFsxMl0mJnRbMTJdLmluZGV4T2YoXCJsYXllcj1jXCIpPjA/XCJzdmVtYmVkXCI6XCJlbWJlZFwiKX19LGdtYXBfc2VhcmNoOnttYXRjaGVyOi8obWFwc1xcLik/Z29vZ2xlXFwuKFthLXpdezIsM30oXFwuW2Etel17Mn0pPylcXC8obWFwc1xcL3NlYXJjaFxcLykoLiopL2ksdHlwZTpcImlmcmFtZVwiLHVybDpmdW5jdGlvbih0KXtyZXR1cm5cIi8vbWFwcy5nb29nbGUuXCIrdFsyXStcIi9tYXBzP3E9XCIrdFs1XS5yZXBsYWNlKFwicXVlcnk9XCIsXCJxPVwiKS5yZXBsYWNlKFwiYXBpPTFcIixcIlwiKStcIiZvdXRwdXQ9ZW1iZWRcIjtcclxufX19O3QoZG9jdW1lbnQpLm9uKFwib2JqZWN0TmVlZHNUeXBlLmZiXCIsZnVuY3Rpb24obyxhLGkpe3ZhciBzLHIsYyxsLHUsZCxmLHA9aS5zcmN8fFwiXCIsaD0hMTtzPXQuZXh0ZW5kKCEwLHt9LG4saS5vcHRzLm1lZGlhKSx0LmVhY2gocyxmdW5jdGlvbihuLG8pe2lmKGM9cC5tYXRjaChvLm1hdGNoZXIpKXtpZihoPW8udHlwZSxkPXt9LG8ucGFyYW1QbGFjZSYmY1tvLnBhcmFtUGxhY2VdKXt1PWNbby5wYXJhbVBsYWNlXSxcIj9cIj09dVswXSYmKHU9dS5zdWJzdHJpbmcoMSkpLHU9dS5zcGxpdChcIiZcIik7Zm9yKHZhciBhPTA7YTx1Lmxlbmd0aDsrK2Epe3ZhciBzPXVbYV0uc3BsaXQoXCI9XCIsMik7Mj09cy5sZW5ndGgmJihkW3NbMF1dPWRlY29kZVVSSUNvbXBvbmVudChzWzFdLnJlcGxhY2UoL1xcKy9nLFwiIFwiKSkpfX1yZXR1cm4gbD10LmV4dGVuZCghMCx7fSxvLnBhcmFtcyxpLm9wdHNbbl0sZCkscD1cImZ1bmN0aW9uXCI9PT10LnR5cGUoby51cmwpP28udXJsLmNhbGwodGhpcyxjLGwsaSk6ZShvLnVybCxjLGwpLHI9XCJmdW5jdGlvblwiPT09dC50eXBlKG8udGh1bWIpP28udGh1bWIuY2FsbCh0aGlzLGMsbCxpKTplKG8udGh1bWIsYyksXCJ2aW1lb1wiPT09biYmKHA9cC5yZXBsYWNlKFwiJiUyM1wiLFwiI1wiKSksITF9fSksaD8oaS5zcmM9cCxpLnR5cGU9aCxpLm9wdHMudGh1bWJ8fGkub3B0cy4kdGh1bWImJmkub3B0cy4kdGh1bWIubGVuZ3RofHwoaS5vcHRzLnRodW1iPXIpLFwiaWZyYW1lXCI9PT1oJiYodC5leHRlbmQoITAsaS5vcHRzLHtpZnJhbWU6e3ByZWxvYWQ6ITEsYXR0cjp7c2Nyb2xsaW5nOlwibm9cIn19fSksaS5jb250ZW50UHJvdmlkZXI9ZixpLm9wdHMuc2xpZGVDbGFzcys9XCIgZmFuY3lib3gtc2xpZGUtLVwiKyhcImdtYXBfcGxhY2VcIj09Znx8XCJnbWFwX3NlYXJjaFwiPT1mP1wibWFwXCI6XCJ2aWRlb1wiKSkpOnAmJihpLnR5cGU9aS5vcHRzLmRlZmF1bHRUeXBlKX0pfSh3aW5kb3cualF1ZXJ5fHxqUXVlcnkpLGZ1bmN0aW9uKHQsZSxuKXtcInVzZSBzdHJpY3RcIjt2YXIgbz1mdW5jdGlvbigpe3JldHVybiB0LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8dC53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHQubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx0Lm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGZ1bmN0aW9uKGUpe3JldHVybiB0LnNldFRpbWVvdXQoZSwxZTMvNjApfX0oKSxhPWZ1bmN0aW9uKCl7cmV0dXJuIHQuY2FuY2VsQW5pbWF0aW9uRnJhbWV8fHQud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHQubW96Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHQub0NhbmNlbEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihlKXt0LmNsZWFyVGltZW91dChlKX19KCksaT1mdW5jdGlvbihlKXt2YXIgbj1bXTtlPWUub3JpZ2luYWxFdmVudHx8ZXx8dC5lLGU9ZS50b3VjaGVzJiZlLnRvdWNoZXMubGVuZ3RoP2UudG91Y2hlczplLmNoYW5nZWRUb3VjaGVzJiZlLmNoYW5nZWRUb3VjaGVzLmxlbmd0aD9lLmNoYW5nZWRUb3VjaGVzOltlXTtmb3IodmFyIG8gaW4gZSllW29dLnBhZ2VYP24ucHVzaCh7eDplW29dLnBhZ2VYLHk6ZVtvXS5wYWdlWX0pOmVbb10uY2xpZW50WCYmbi5wdXNoKHt4OmVbb10uY2xpZW50WCx5OmVbb10uY2xpZW50WX0pO3JldHVybiBufSxzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZSYmdD9cInhcIj09PW4/dC54LWUueDpcInlcIj09PW4/dC55LWUueTpNYXRoLnNxcnQoTWF0aC5wb3codC54LWUueCwyKStNYXRoLnBvdyh0LnktZS55LDIpKTowfSxyPWZ1bmN0aW9uKHQpe2lmKHQuaXMoJ2EsYXJlYSxidXR0b24sW3JvbGU9XCJidXR0b25cIl0saW5wdXQsbGFiZWwsc2VsZWN0LHN1bW1hcnksdGV4dGFyZWEnKXx8bi5pc0Z1bmN0aW9uKHQuZ2V0KDApLm9uY2xpY2spfHx0LmRhdGEoXCJzZWxlY3RhYmxlXCIpKXJldHVybiEwO2Zvcih2YXIgZT0wLG89dFswXS5hdHRyaWJ1dGVzLGE9by5sZW5ndGg7ZTxhO2UrKylpZihcImRhdGEtZmFuY3lib3gtXCI9PT1vW2VdLm5vZGVOYW1lLnN1YnN0cigwLDE0KSlyZXR1cm4hMDtyZXR1cm4hMX0sYz1mdW5jdGlvbihlKXt2YXIgbj10LmdldENvbXB1dGVkU3R5bGUoZSlbXCJvdmVyZmxvdy15XCJdLG89dC5nZXRDb21wdXRlZFN0eWxlKGUpW1wib3ZlcmZsb3cteFwiXSxhPShcInNjcm9sbFwiPT09bnx8XCJhdXRvXCI9PT1uKSYmZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQsaT0oXCJzY3JvbGxcIj09PW98fFwiYXV0b1wiPT09bykmJmUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aDtyZXR1cm4gYXx8aX0sbD1mdW5jdGlvbih0KXtmb3IodmFyIGU9ITE7Oyl7aWYoZT1jKHQuZ2V0KDApKSlicmVhaztpZih0PXQucGFyZW50KCksIXQubGVuZ3RofHx0Lmhhc0NsYXNzKFwiZmFuY3lib3gtc3RhZ2VcIil8fHQuaXMoXCJib2R5XCIpKWJyZWFrfXJldHVybiBlfSx1PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7ZS5pbnN0YW5jZT10LGUuJGJnPXQuJHJlZnMuYmcsZS4kc3RhZ2U9dC4kcmVmcy5zdGFnZSxlLiRjb250YWluZXI9dC4kcmVmcy5jb250YWluZXIsZS5kZXN0cm95KCksZS4kY29udGFpbmVyLm9uKFwidG91Y2hzdGFydC5mYi50b3VjaCBtb3VzZWRvd24uZmIudG91Y2hcIixuLnByb3h5KGUsXCJvbnRvdWNoc3RhcnRcIikpfTt1LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy4kY29udGFpbmVyLm9mZihcIi5mYi50b3VjaFwiKX0sdS5wcm90b3R5cGUub250b3VjaHN0YXJ0PWZ1bmN0aW9uKG8pe3ZhciBhPXRoaXMsYz1uKG8udGFyZ2V0KSx1PWEuaW5zdGFuY2UsZD11LmN1cnJlbnQsZj1kLiRjb250ZW50LHA9XCJ0b3VjaHN0YXJ0XCI9PW8udHlwZTtpZihwJiZhLiRjb250YWluZXIub2ZmKFwibW91c2Vkb3duLmZiLnRvdWNoXCIpLCFkfHxhLmluc3RhbmNlLmlzQW5pbWF0aW5nfHxhLmluc3RhbmNlLmlzQ2xvc2luZylyZXR1cm4gby5zdG9wUHJvcGFnYXRpb24oKSx2b2lkIG8ucHJldmVudERlZmF1bHQoKTtpZigoIW8ub3JpZ2luYWxFdmVudHx8MiE9by5vcmlnaW5hbEV2ZW50LmJ1dHRvbikmJmMubGVuZ3RoJiYhcihjKSYmIXIoYy5wYXJlbnQoKSkmJiEoby5vcmlnaW5hbEV2ZW50LmNsaWVudFg+Y1swXS5jbGllbnRXaWR0aCtjLm9mZnNldCgpLmxlZnQpJiYoYS5zdGFydFBvaW50cz1pKG8pLGEuc3RhcnRQb2ludHMmJiEoYS5zdGFydFBvaW50cy5sZW5ndGg+MSYmdS5pc1NsaWRpbmcpKSl7aWYoYS4kdGFyZ2V0PWMsYS4kY29udGVudD1mLGEuY2FuVGFwPSEwLGEub3B0cz1kLm9wdHMudG91Y2gsbihlKS5vZmYoXCIuZmIudG91Y2hcIiksbihlKS5vbihwP1widG91Y2hlbmQuZmIudG91Y2ggdG91Y2hjYW5jZWwuZmIudG91Y2hcIjpcIm1vdXNldXAuZmIudG91Y2ggbW91c2VsZWF2ZS5mYi50b3VjaFwiLG4ucHJveHkoYSxcIm9udG91Y2hlbmRcIikpLG4oZSkub24ocD9cInRvdWNobW92ZS5mYi50b3VjaFwiOlwibW91c2Vtb3ZlLmZiLnRvdWNoXCIsbi5wcm94eShhLFwib250b3VjaG1vdmVcIikpLCFhLm9wdHMmJiF1LmNhblBhbigpfHwhYy5pcyhhLiRzdGFnZSkmJiFhLiRzdGFnZS5maW5kKGMpLmxlbmd0aClyZXR1cm4gdm9pZChjLmlzKFwiaW1nXCIpJiZvLnByZXZlbnREZWZhdWx0KCkpO28uc3RvcFByb3BhZ2F0aW9uKCksbi5mYW5jeWJveC5pc01vYmlsZSYmKGwoYS4kdGFyZ2V0KXx8bChhLiR0YXJnZXQucGFyZW50KCkpKXx8by5wcmV2ZW50RGVmYXVsdCgpLGEuY2FudmFzV2lkdGg9TWF0aC5yb3VuZChkLiRzbGlkZVswXS5jbGllbnRXaWR0aCksYS5jYW52YXNIZWlnaHQ9TWF0aC5yb3VuZChkLiRzbGlkZVswXS5jbGllbnRIZWlnaHQpLGEuc3RhcnRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGEuZGlzdGFuY2VYPWEuZGlzdGFuY2VZPWEuZGlzdGFuY2U9MCxhLmlzUGFubmluZz0hMSxhLmlzU3dpcGluZz0hMSxhLmlzWm9vbWluZz0hMSxhLnNsaWRlclN0YXJ0UG9zPWEuc2xpZGVyTGFzdFBvc3x8e3RvcDowLGxlZnQ6MH0sYS5jb250ZW50U3RhcnRQb3M9bi5mYW5jeWJveC5nZXRUcmFuc2xhdGUoYS4kY29udGVudCksYS5jb250ZW50TGFzdFBvcz1udWxsLDEhPT1hLnN0YXJ0UG9pbnRzLmxlbmd0aHx8YS5pc1pvb21pbmd8fChhLmNhblRhcD0hdS5pc1NsaWRpbmcsXCJpbWFnZVwiPT09ZC50eXBlJiYoYS5jb250ZW50U3RhcnRQb3Mud2lkdGg+YS5jYW52YXNXaWR0aCsxfHxhLmNvbnRlbnRTdGFydFBvcy5oZWlnaHQ+YS5jYW52YXNIZWlnaHQrMSk/KG4uZmFuY3lib3guc3RvcChhLiRjb250ZW50KSxhLiRjb250ZW50LmNzcyhcInRyYW5zaXRpb24tZHVyYXRpb25cIixcIjBtc1wiKSxhLmlzUGFubmluZz0hMCk6YS5pc1N3aXBpbmc9ITAsYS4kY29udGFpbmVyLmFkZENsYXNzKFwiZmFuY3lib3gtY29udHJvbHMtLWlzR3JhYmJpbmdcIikpLDIhPT1hLnN0YXJ0UG9pbnRzLmxlbmd0aHx8dS5pc0FuaW1hdGluZ3x8ZC5oYXNFcnJvcnx8XCJpbWFnZVwiIT09ZC50eXBlfHwhZC5pc0xvYWRlZCYmIWQuJGdob3N0fHwoYS5pc1pvb21pbmc9ITAsYS5pc1N3aXBpbmc9ITEsYS5pc1Bhbm5pbmc9ITEsbi5mYW5jeWJveC5zdG9wKGEuJGNvbnRlbnQpLGEuJGNvbnRlbnQuY3NzKFwidHJhbnNpdGlvbi1kdXJhdGlvblwiLFwiMG1zXCIpLGEuY2VudGVyUG9pbnRTdGFydFg9LjUqKGEuc3RhcnRQb2ludHNbMF0ueCthLnN0YXJ0UG9pbnRzWzFdLngpLW4odCkuc2Nyb2xsTGVmdCgpLGEuY2VudGVyUG9pbnRTdGFydFk9LjUqKGEuc3RhcnRQb2ludHNbMF0ueSthLnN0YXJ0UG9pbnRzWzFdLnkpLW4odCkuc2Nyb2xsVG9wKCksYS5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFg9KGEuY2VudGVyUG9pbnRTdGFydFgtYS5jb250ZW50U3RhcnRQb3MubGVmdCkvYS5jb250ZW50U3RhcnRQb3Mud2lkdGgsYS5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFk9KGEuY2VudGVyUG9pbnRTdGFydFktYS5jb250ZW50U3RhcnRQb3MudG9wKS9hLmNvbnRlbnRTdGFydFBvcy5oZWlnaHQsYS5zdGFydERpc3RhbmNlQmV0d2VlbkZpbmdlcnM9cyhhLnN0YXJ0UG9pbnRzWzBdLGEuc3RhcnRQb2ludHNbMV0pKX19LHUucHJvdG90eXBlLm9udG91Y2htb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoZS5uZXdQb2ludHM9aSh0KSxuLmZhbmN5Ym94LmlzTW9iaWxlJiYobChlLiR0YXJnZXQpfHxsKGUuJHRhcmdldC5wYXJlbnQoKSkpKXJldHVybiB0LnN0b3BQcm9wYWdhdGlvbigpLHZvaWQoZS5jYW5UYXA9ITEpO2lmKChlLm9wdHN8fGUuaW5zdGFuY2UuY2FuUGFuKCkpJiZlLm5ld1BvaW50cyYmZS5uZXdQb2ludHMubGVuZ3RoJiYoZS5kaXN0YW5jZVg9cyhlLm5ld1BvaW50c1swXSxlLnN0YXJ0UG9pbnRzWzBdLFwieFwiKSxlLmRpc3RhbmNlWT1zKGUubmV3UG9pbnRzWzBdLGUuc3RhcnRQb2ludHNbMF0sXCJ5XCIpLGUuZGlzdGFuY2U9cyhlLm5ld1BvaW50c1swXSxlLnN0YXJ0UG9pbnRzWzBdKSxlLmRpc3RhbmNlPjApKXtpZighZS4kdGFyZ2V0LmlzKGUuJHN0YWdlKSYmIWUuJHN0YWdlLmZpbmQoZS4kdGFyZ2V0KS5sZW5ndGgpcmV0dXJuO3Quc3RvcFByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpLGUuaXNTd2lwaW5nP2Uub25Td2lwZSgpOmUuaXNQYW5uaW5nP2Uub25QYW4oKTplLmlzWm9vbWluZyYmZS5vblpvb20oKX19LHUucHJvdG90eXBlLm9uU3dpcGU9ZnVuY3Rpb24oKXt2YXIgZSxpPXRoaXMscz1pLmlzU3dpcGluZyxyPWkuc2xpZGVyU3RhcnRQb3MubGVmdHx8MDtzPT09ITA/TWF0aC5hYnMoaS5kaXN0YW5jZSk+MTAmJihpLmNhblRhcD0hMSxpLmluc3RhbmNlLmdyb3VwLmxlbmd0aDwyJiZpLm9wdHMudmVydGljYWw/aS5pc1N3aXBpbmc9XCJ5XCI6aS5pbnN0YW5jZS5pc1NsaWRpbmd8fGkub3B0cy52ZXJ0aWNhbD09PSExfHxcImF1dG9cIj09PWkub3B0cy52ZXJ0aWNhbCYmbih0KS53aWR0aCgpPjgwMD9pLmlzU3dpcGluZz1cInhcIjooZT1NYXRoLmFicygxODAqTWF0aC5hdGFuMihpLmRpc3RhbmNlWSxpLmRpc3RhbmNlWCkvTWF0aC5QSSksaS5pc1N3aXBpbmc9ZT40NSYmZTwxMzU/XCJ5XCI6XCJ4XCIpLGkuaW5zdGFuY2UuaXNTbGlkaW5nPWkuaXNTd2lwaW5nLGkuc3RhcnRQb2ludHM9aS5uZXdQb2ludHMsbi5lYWNoKGkuaW5zdGFuY2Uuc2xpZGVzLGZ1bmN0aW9uKHQsZSl7bi5mYW5jeWJveC5zdG9wKGUuJHNsaWRlKSxlLiRzbGlkZS5jc3MoXCJ0cmFuc2l0aW9uLWR1cmF0aW9uXCIsXCIwbXNcIiksZS5pblRyYW5zaXRpb249ITEsZS5wb3M9PT1pLmluc3RhbmNlLmN1cnJlbnQucG9zJiYoaS5zbGlkZXJTdGFydFBvcy5sZWZ0PW4uZmFuY3lib3guZ2V0VHJhbnNsYXRlKGUuJHNsaWRlKS5sZWZ0KX0pLGkuaW5zdGFuY2UuU2xpZGVTaG93JiZpLmluc3RhbmNlLlNsaWRlU2hvdy5pc0FjdGl2ZSYmaS5pbnN0YW5jZS5TbGlkZVNob3cuc3RvcCgpKTooXCJ4XCI9PXMmJihpLmRpc3RhbmNlWD4wJiYoaS5pbnN0YW5jZS5ncm91cC5sZW5ndGg8Mnx8MD09PWkuaW5zdGFuY2UuY3VycmVudC5pbmRleCYmIWkuaW5zdGFuY2UuY3VycmVudC5vcHRzLmxvb3ApP3IrPU1hdGgucG93KGkuZGlzdGFuY2VYLC44KTppLmRpc3RhbmNlWDwwJiYoaS5pbnN0YW5jZS5ncm91cC5sZW5ndGg8Mnx8aS5pbnN0YW5jZS5jdXJyZW50LmluZGV4PT09aS5pbnN0YW5jZS5ncm91cC5sZW5ndGgtMSYmIWkuaW5zdGFuY2UuY3VycmVudC5vcHRzLmxvb3ApP3ItPU1hdGgucG93KC1pLmRpc3RhbmNlWCwuOCk6cis9aS5kaXN0YW5jZVgpLGkuc2xpZGVyTGFzdFBvcz17dG9wOlwieFwiPT1zPzA6aS5zbGlkZXJTdGFydFBvcy50b3AraS5kaXN0YW5jZVksbGVmdDpyfSxpLnJlcXVlc3RJZCYmKGEoaS5yZXF1ZXN0SWQpLGkucmVxdWVzdElkPW51bGwpLGkucmVxdWVzdElkPW8oZnVuY3Rpb24oKXtpLnNsaWRlckxhc3RQb3MmJihuLmVhY2goaS5pbnN0YW5jZS5zbGlkZXMsZnVuY3Rpb24odCxlKXt2YXIgbz1lLnBvcy1pLmluc3RhbmNlLmN1cnJQb3M7bi5mYW5jeWJveC5zZXRUcmFuc2xhdGUoZS4kc2xpZGUse3RvcDppLnNsaWRlckxhc3RQb3MudG9wLGxlZnQ6aS5zbGlkZXJMYXN0UG9zLmxlZnQrbyppLmNhbnZhc1dpZHRoK28qZS5vcHRzLmd1dHRlcn0pfSksaS4kY29udGFpbmVyLmFkZENsYXNzKFwiZmFuY3lib3gtaXMtc2xpZGluZ1wiKSl9KSl9LHUucHJvdG90eXBlLm9uUGFuPWZ1bmN0aW9uKCl7dmFyIHQsZSxpLHM9dGhpcztzLmNhblRhcD0hMSx0PXMuY29udGVudFN0YXJ0UG9zLndpZHRoPnMuY2FudmFzV2lkdGg/cy5jb250ZW50U3RhcnRQb3MubGVmdCtzLmRpc3RhbmNlWDpzLmNvbnRlbnRTdGFydFBvcy5sZWZ0LGU9cy5jb250ZW50U3RhcnRQb3MudG9wK3MuZGlzdGFuY2VZLGk9cy5saW1pdE1vdmVtZW50KHQsZSxzLmNvbnRlbnRTdGFydFBvcy53aWR0aCxzLmNvbnRlbnRTdGFydFBvcy5oZWlnaHQpLGkuc2NhbGVYPXMuY29udGVudFN0YXJ0UG9zLnNjYWxlWCxpLnNjYWxlWT1zLmNvbnRlbnRTdGFydFBvcy5zY2FsZVkscy5jb250ZW50TGFzdFBvcz1pLHMucmVxdWVzdElkJiYoYShzLnJlcXVlc3RJZCkscy5yZXF1ZXN0SWQ9bnVsbCkscy5yZXF1ZXN0SWQ9byhmdW5jdGlvbigpe24uZmFuY3lib3guc2V0VHJhbnNsYXRlKHMuJGNvbnRlbnQscy5jb250ZW50TGFzdFBvcyl9KX0sdS5wcm90b3R5cGUubGltaXRNb3ZlbWVudD1mdW5jdGlvbih0LGUsbixvKXt2YXIgYSxpLHMscixjPXRoaXMsbD1jLmNhbnZhc1dpZHRoLHU9Yy5jYW52YXNIZWlnaHQsZD1jLmNvbnRlbnRTdGFydFBvcy5sZWZ0LGY9Yy5jb250ZW50U3RhcnRQb3MudG9wLHA9Yy5kaXN0YW5jZVgsaD1jLmRpc3RhbmNlWTtyZXR1cm4gYT1NYXRoLm1heCgwLC41KmwtLjUqbiksaT1NYXRoLm1heCgwLC41KnUtLjUqbykscz1NYXRoLm1pbihsLW4sLjUqbC0uNSpuKSxyPU1hdGgubWluKHUtbywuNSp1LS41Km8pLG4+bCYmKHA+MCYmdD5hJiYodD1hLTErTWF0aC5wb3coLWErZCtwLC44KXx8MCkscDwwJiZ0PHMmJih0PXMrMS1NYXRoLnBvdyhzLWQtcCwuOCl8fDApKSxvPnUmJihoPjAmJmU+aSYmKGU9aS0xK01hdGgucG93KC1pK2YraCwuOCl8fDApLGg8MCYmZTxyJiYoZT1yKzEtTWF0aC5wb3coci1mLWgsLjgpfHwwKSkse3RvcDplLGxlZnQ6dH19LHUucHJvdG90eXBlLmxpbWl0UG9zaXRpb249ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGE9dGhpcyxpPWEuY2FudmFzV2lkdGgscz1hLmNhbnZhc0hlaWdodDtyZXR1cm4gbj5pPyh0PXQ+MD8wOnQsdD10PGktbj9pLW46dCk6dD1NYXRoLm1heCgwLGkvMi1uLzIpLG8+cz8oZT1lPjA/MDplLGU9ZTxzLW8/cy1vOmUpOmU9TWF0aC5tYXgoMCxzLzItby8yKSx7dG9wOmUsbGVmdDp0fX0sdS5wcm90b3R5cGUub25ab29tPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyxpPWUuY29udGVudFN0YXJ0UG9zLndpZHRoLHI9ZS5jb250ZW50U3RhcnRQb3MuaGVpZ2h0LGM9ZS5jb250ZW50U3RhcnRQb3MubGVmdCxsPWUuY29udGVudFN0YXJ0UG9zLnRvcCx1PXMoZS5uZXdQb2ludHNbMF0sZS5uZXdQb2ludHNbMV0pLGQ9dS9lLnN0YXJ0RGlzdGFuY2VCZXR3ZWVuRmluZ2VycyxmPU1hdGguZmxvb3IoaSpkKSxwPU1hdGguZmxvb3IocipkKSxoPShpLWYpKmUucGVyY2VudGFnZU9mSW1hZ2VBdFBpbmNoUG9pbnRYLGc9KHItcCkqZS5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFksYj0oZS5uZXdQb2ludHNbMF0ueCtlLm5ld1BvaW50c1sxXS54KS8yLW4odCkuc2Nyb2xsTGVmdCgpLG09KGUubmV3UG9pbnRzWzBdLnkrZS5uZXdQb2ludHNbMV0ueSkvMi1uKHQpLnNjcm9sbFRvcCgpLHk9Yi1lLmNlbnRlclBvaW50U3RhcnRYLHY9bS1lLmNlbnRlclBvaW50U3RhcnRZLHg9YysoaCt5KSx3PWwrKGcrdiksJD17dG9wOncsbGVmdDp4LHNjYWxlWDplLmNvbnRlbnRTdGFydFBvcy5zY2FsZVgqZCxzY2FsZVk6ZS5jb250ZW50U3RhcnRQb3Muc2NhbGVZKmR9O2UuY2FuVGFwPSExLGUubmV3V2lkdGg9ZixlLm5ld0hlaWdodD1wLGUuY29udGVudExhc3RQb3M9JCxlLnJlcXVlc3RJZCYmKGEoZS5yZXF1ZXN0SWQpLGUucmVxdWVzdElkPW51bGwpLGUucmVxdWVzdElkPW8oZnVuY3Rpb24oKXtuLmZhbmN5Ym94LnNldFRyYW5zbGF0ZShlLiRjb250ZW50LGUuY29udGVudExhc3RQb3MpfSl9LHUucHJvdG90eXBlLm9udG91Y2hlbmQ9ZnVuY3Rpb24odCl7dmFyIG89dGhpcyxzPU1hdGgubWF4KChuZXcgRGF0ZSkuZ2V0VGltZSgpLW8uc3RhcnRUaW1lLDEpLHI9by5pc1N3aXBpbmcsYz1vLmlzUGFubmluZyxsPW8uaXNab29taW5nO3JldHVybiBvLmVuZFBvaW50cz1pKHQpLG8uJGNvbnRhaW5lci5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LWNvbnRyb2xzLS1pc0dyYWJiaW5nXCIpLG4oZSkub2ZmKFwiLmZiLnRvdWNoXCIpLG8ucmVxdWVzdElkJiYoYShvLnJlcXVlc3RJZCksby5yZXF1ZXN0SWQ9bnVsbCksby5pc1N3aXBpbmc9ITEsby5pc1Bhbm5pbmc9ITEsby5pc1pvb21pbmc9ITEsby5jYW5UYXA/by5vblRhcCh0KTooby5zcGVlZD0zNjYsby52ZWxvY2l0eVg9by5kaXN0YW5jZVgvcyouNSxvLnZlbG9jaXR5WT1vLmRpc3RhbmNlWS9zKi41LG8uc3BlZWRYPU1hdGgubWF4KC41Km8uc3BlZWQsTWF0aC5taW4oMS41Km8uc3BlZWQsMS9NYXRoLmFicyhvLnZlbG9jaXR5WCkqby5zcGVlZCkpLHZvaWQoYz9vLmVuZFBhbm5pbmcoKTpsP28uZW5kWm9vbWluZygpOm8uZW5kU3dpcGluZyhyKSkpfSx1LnByb3RvdHlwZS5lbmRTd2lwaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbz0hMTtlLmluc3RhbmNlLmlzU2xpZGluZz0hMSxlLnNsaWRlckxhc3RQb3M9bnVsbCxcInlcIj09dCYmTWF0aC5hYnMoZS5kaXN0YW5jZVkpPjUwPyhuLmZhbmN5Ym94LmFuaW1hdGUoZS5pbnN0YW5jZS5jdXJyZW50LiRzbGlkZSx7dG9wOmUuc2xpZGVyU3RhcnRQb3MudG9wK2UuZGlzdGFuY2VZKzE1MCplLnZlbG9jaXR5WSxvcGFjaXR5OjB9LDE1MCksbz1lLmluc3RhbmNlLmNsb3NlKCEwLDMwMCkpOlwieFwiPT10JiZlLmRpc3RhbmNlWD41MCYmZS5pbnN0YW5jZS5ncm91cC5sZW5ndGg+MT9vPWUuaW5zdGFuY2UucHJldmlvdXMoZS5zcGVlZFgpOlwieFwiPT10JiZlLmRpc3RhbmNlWDwtNTAmJmUuaW5zdGFuY2UuZ3JvdXAubGVuZ3RoPjEmJihvPWUuaW5zdGFuY2UubmV4dChlLnNwZWVkWCkpLG8hPT0hMXx8XCJ4XCIhPXQmJlwieVwiIT10fHxlLmluc3RhbmNlLmp1bXBUbyhlLmluc3RhbmNlLmN1cnJlbnQuaW5kZXgsMTUwKSxlLiRjb250YWluZXIucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1pcy1zbGlkaW5nXCIpfSx1LnByb3RvdHlwZS5lbmRQYW5uaW5nPWZ1bmN0aW9uKCl7dmFyIHQsZSxvLGE9dGhpczthLmNvbnRlbnRMYXN0UG9zJiYoYS5vcHRzLm1vbWVudHVtPT09ITE/KHQ9YS5jb250ZW50TGFzdFBvcy5sZWZ0LGU9YS5jb250ZW50TGFzdFBvcy50b3ApOih0PWEuY29udGVudExhc3RQb3MubGVmdCthLnZlbG9jaXR5WCphLnNwZWVkLGU9YS5jb250ZW50TGFzdFBvcy50b3ArYS52ZWxvY2l0eVkqYS5zcGVlZCksbz1hLmxpbWl0UG9zaXRpb24odCxlLGEuY29udGVudFN0YXJ0UG9zLndpZHRoLGEuY29udGVudFN0YXJ0UG9zLmhlaWdodCksby53aWR0aD1hLmNvbnRlbnRTdGFydFBvcy53aWR0aCxvLmhlaWdodD1hLmNvbnRlbnRTdGFydFBvcy5oZWlnaHQsbi5mYW5jeWJveC5hbmltYXRlKGEuJGNvbnRlbnQsbywzMzApKX0sdS5wcm90b3R5cGUuZW5kWm9vbWluZz1mdW5jdGlvbigpe3ZhciB0LGUsbyxhLGk9dGhpcyxzPWkuaW5zdGFuY2UuY3VycmVudCxyPWkubmV3V2lkdGgsYz1pLm5ld0hlaWdodDtpLmNvbnRlbnRMYXN0UG9zJiYodD1pLmNvbnRlbnRMYXN0UG9zLmxlZnQsZT1pLmNvbnRlbnRMYXN0UG9zLnRvcCxhPXt0b3A6ZSxsZWZ0OnQsd2lkdGg6cixoZWlnaHQ6YyxzY2FsZVg6MSxzY2FsZVk6MX0sbi5mYW5jeWJveC5zZXRUcmFuc2xhdGUoaS4kY29udGVudCxhKSxyPGkuY2FudmFzV2lkdGgmJmM8aS5jYW52YXNIZWlnaHQ/aS5pbnN0YW5jZS5zY2FsZVRvRml0KDE1MCk6cj5zLndpZHRofHxjPnMuaGVpZ2h0P2kuaW5zdGFuY2Uuc2NhbGVUb0FjdHVhbChpLmNlbnRlclBvaW50U3RhcnRYLGkuY2VudGVyUG9pbnRTdGFydFksMTUwKToobz1pLmxpbWl0UG9zaXRpb24odCxlLHIsYyksbi5mYW5jeWJveC5zZXRUcmFuc2xhdGUoaS5jb250ZW50LG4uZmFuY3lib3guZ2V0VHJhbnNsYXRlKGkuJGNvbnRlbnQpKSxuLmZhbmN5Ym94LmFuaW1hdGUoaS4kY29udGVudCxvLDE1MCkpKX0sdS5wcm90b3R5cGUub25UYXA9ZnVuY3Rpb24odCl7dmFyIGUsbz10aGlzLGE9bih0LnRhcmdldCkscz1vLmluc3RhbmNlLHI9cy5jdXJyZW50LGM9dCYmaSh0KXx8by5zdGFydFBvaW50cyxsPWNbMF0/Y1swXS54LW8uJHN0YWdlLm9mZnNldCgpLmxlZnQ6MCx1PWNbMF0/Y1swXS55LW8uJHN0YWdlLm9mZnNldCgpLnRvcDowLGQ9ZnVuY3Rpb24oZSl7dmFyIGE9ci5vcHRzW2VdO2lmKG4uaXNGdW5jdGlvbihhKSYmKGE9YS5hcHBseShzLFtyLHRdKSksYSlzd2l0Y2goYSl7Y2FzZVwiY2xvc2VcIjpzLmNsb3NlKG8uc3RhcnRFdmVudCk7YnJlYWs7Y2FzZVwidG9nZ2xlQ29udHJvbHNcIjpzLnRvZ2dsZUNvbnRyb2xzKCEwKTticmVhaztjYXNlXCJuZXh0XCI6cy5uZXh0KCk7YnJlYWs7Y2FzZVwibmV4dE9yQ2xvc2VcIjpzLmdyb3VwLmxlbmd0aD4xP3MubmV4dCgpOnMuY2xvc2Uoby5zdGFydEV2ZW50KTticmVhaztjYXNlXCJ6b29tXCI6XCJpbWFnZVwiPT1yLnR5cGUmJihyLmlzTG9hZGVkfHxyLiRnaG9zdCkmJihzLmNhblBhbigpP3Muc2NhbGVUb0ZpdCgpOnMuaXNTY2FsZWREb3duKCk/cy5zY2FsZVRvQWN0dWFsKGwsdSk6cy5ncm91cC5sZW5ndGg8MiYmcy5jbG9zZShvLnN0YXJ0RXZlbnQpKX19O2lmKCEodC5vcmlnaW5hbEV2ZW50JiYyPT10Lm9yaWdpbmFsRXZlbnQuYnV0dG9ufHxzLmlzU2xpZGluZ3x8bD5hWzBdLmNsaWVudFdpZHRoK2Eub2Zmc2V0KCkubGVmdCkpe2lmKGEuaXMoXCIuZmFuY3lib3gtYmcsLmZhbmN5Ym94LWlubmVyLC5mYW5jeWJveC1vdXRlciwuZmFuY3lib3gtY29udGFpbmVyXCIpKWU9XCJPdXRzaWRlXCI7ZWxzZSBpZihhLmlzKFwiLmZhbmN5Ym94LXNsaWRlXCIpKWU9XCJTbGlkZVwiO2Vsc2V7aWYoIXMuY3VycmVudC4kY29udGVudHx8IXMuY3VycmVudC4kY29udGVudC5oYXModC50YXJnZXQpLmxlbmd0aClyZXR1cm47ZT1cIkNvbnRlbnRcIn1pZihvLnRhcHBlZCl7aWYoY2xlYXJUaW1lb3V0KG8udGFwcGVkKSxvLnRhcHBlZD1udWxsLE1hdGguYWJzKGwtby50YXBYKT41MHx8TWF0aC5hYnModS1vLnRhcFkpPjUwfHxzLmlzU2xpZGluZylyZXR1cm4gdGhpcztkKFwiZGJsY2xpY2tcIitlKX1lbHNlIG8udGFwWD1sLG8udGFwWT11LHIub3B0c1tcImRibGNsaWNrXCIrZV0mJnIub3B0c1tcImRibGNsaWNrXCIrZV0hPT1yLm9wdHNbXCJjbGlja1wiK2VdP28udGFwcGVkPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtvLnRhcHBlZD1udWxsLGQoXCJjbGlja1wiK2UpfSwzMDApOmQoXCJjbGlja1wiK2UpO3JldHVybiB0aGlzfX0sbihlKS5vbihcIm9uQWN0aXZhdGUuZmJcIixmdW5jdGlvbih0LGUpe2UmJiFlLkd1ZXN0dXJlcyYmKGUuR3Vlc3R1cmVzPW5ldyB1KGUpKX0pLG4oZSkub24oXCJiZWZvcmVDbG9zZS5mYlwiLGZ1bmN0aW9uKHQsZSl7ZSYmZS5HdWVzdHVyZXMmJmUuR3Vlc3R1cmVzLmRlc3Ryb3koKX0pfSh3aW5kb3csZG9jdW1lbnQsd2luZG93LmpRdWVyeXx8alF1ZXJ5KSxmdW5jdGlvbih0LGUpe1widXNlIHN0cmljdFwiO2UuZXh0ZW5kKCEwLGUuZmFuY3lib3guZGVmYXVsdHMse2J0blRwbDp7c2xpZGVTaG93Oic8YnV0dG9uIGRhdGEtZmFuY3lib3gtcGxheSBjbGFzcz1cImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLXBsYXlcIiB0aXRsZT1cInt7UExBWV9TVEFSVH19XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDQwIDQwXCI+PHBhdGggZD1cIk0xMywxMiBMMjcsMjAgTDEzLDI3IFpcIiAvPjxwYXRoIGQ9XCJNMTUsMTAgdjE5IE0yMywxMCB2MTlcIiAvPjwvc3ZnPjwvYnV0dG9uPid9LHNsaWRlU2hvdzp7YXV0b1N0YXJ0OiExLHNwZWVkOjNlM319KTt2YXIgbj1mdW5jdGlvbih0KXt0aGlzLmluc3RhbmNlPXQsdGhpcy5pbml0KCl9O2UuZXh0ZW5kKG4ucHJvdG90eXBlLHt0aW1lcjpudWxsLGlzQWN0aXZlOiExLCRidXR0b246bnVsbCxpbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0LiRidXR0b249dC5pbnN0YW5jZS4kcmVmcy50b29sYmFyLmZpbmQoXCJbZGF0YS1mYW5jeWJveC1wbGF5XVwiKS5vbihcImNsaWNrXCIsZnVuY3Rpb24oKXt0LnRvZ2dsZSgpfSksKHQuaW5zdGFuY2UuZ3JvdXAubGVuZ3RoPDJ8fCF0Lmluc3RhbmNlLmdyb3VwW3QuaW5zdGFuY2UuY3VyckluZGV4XS5vcHRzLnNsaWRlU2hvdykmJnQuJGJ1dHRvbi5oaWRlKCl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2UuaW5zdGFuY2UmJmUuaW5zdGFuY2UuY3VycmVudCYmKHQ9PT0hMHx8ZS5pbnN0YW5jZS5jdXJyZW50Lm9wdHMubG9vcHx8ZS5pbnN0YW5jZS5jdXJySW5kZXg8ZS5pbnN0YW5jZS5ncm91cC5sZW5ndGgtMSk/ZS50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5pc0FjdGl2ZSYmZS5pbnN0YW5jZS5qdW1wVG8oKGUuaW5zdGFuY2UuY3VyckluZGV4KzEpJWUuaW5zdGFuY2UuZ3JvdXAubGVuZ3RoKX0sZS5pbnN0YW5jZS5jdXJyZW50Lm9wdHMuc2xpZGVTaG93LnNwZWVkKTooZS5zdG9wKCksZS5pbnN0YW5jZS5pZGxlU2Vjb25kc0NvdW50ZXI9MCxlLmluc3RhbmNlLnNob3dDb250cm9scygpKX0sY2xlYXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2NsZWFyVGltZW91dCh0LnRpbWVyKSx0LnRpbWVyPW51bGx9LHN0YXJ0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuaW5zdGFuY2UuY3VycmVudDtlJiYodC5pc0FjdGl2ZT0hMCx0LiRidXR0b24uYXR0cihcInRpdGxlXCIsZS5vcHRzLmkxOG5bZS5vcHRzLmxhbmddLlBMQVlfU1RPUCkucmVtb3ZlQ2xhc3MoXCJmYW5jeWJveC1idXR0b24tLXBsYXlcIikuYWRkQ2xhc3MoXCJmYW5jeWJveC1idXR0b24tLXBhdXNlXCIpLHQuc2V0KCEwKSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5pbnN0YW5jZS5jdXJyZW50O3QuY2xlYXIoKSx0LiRidXR0b24uYXR0cihcInRpdGxlXCIsZS5vcHRzLmkxOG5bZS5vcHRzLmxhbmddLlBMQVlfU1RBUlQpLnJlbW92ZUNsYXNzKFwiZmFuY3lib3gtYnV0dG9uLS1wYXVzZVwiKS5hZGRDbGFzcyhcImZhbmN5Ym94LWJ1dHRvbi0tcGxheVwiKSx0LmlzQWN0aXZlPSExfSx0b2dnbGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3QuaXNBY3RpdmU/dC5zdG9wKCk6dC5zdGFydCgpfX0pLGUodCkub24oe1wib25Jbml0LmZiXCI6ZnVuY3Rpb24odCxlKXtlJiYhZS5TbGlkZVNob3cmJihlLlNsaWRlU2hvdz1uZXcgbihlKSl9LFwiYmVmb3JlU2hvdy5mYlwiOmZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBhPWUmJmUuU2xpZGVTaG93O28/YSYmbi5vcHRzLnNsaWRlU2hvdy5hdXRvU3RhcnQmJmEuc3RhcnQoKTphJiZhLmlzQWN0aXZlJiZhLmNsZWFyKCl9LFwiYWZ0ZXJTaG93LmZiXCI6ZnVuY3Rpb24odCxlLG4pe3ZhciBvPWUmJmUuU2xpZGVTaG93O28mJm8uaXNBY3RpdmUmJm8uc2V0KCl9LFwiYWZ0ZXJLZXlkb3duLmZiXCI6ZnVuY3Rpb24obixvLGEsaSxzKXt2YXIgcj1vJiZvLlNsaWRlU2hvdzshcnx8IWEub3B0cy5zbGlkZVNob3d8fDgwIT09cyYmMzIhPT1zfHxlKHQuYWN0aXZlRWxlbWVudCkuaXMoXCJidXR0b24sYSxpbnB1dFwiKXx8KGkucHJldmVudERlZmF1bHQoKSxyLnRvZ2dsZSgpKX0sXCJiZWZvcmVDbG9zZS5mYiBvbkRlYWN0aXZhdGUuZmJcIjpmdW5jdGlvbih0LGUpe3ZhciBuPWUmJmUuU2xpZGVTaG93O24mJm4uc3RvcCgpfX0pLGUodCkub24oXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsZnVuY3Rpb24oKXt2YXIgbj1lLmZhbmN5Ym94LmdldEluc3RhbmNlKCksbz1uJiZuLlNsaWRlU2hvdztvJiZvLmlzQWN0aXZlJiYodC5oaWRkZW4/by5jbGVhcigpOm8uc2V0KCkpfSl9KGRvY3VtZW50LHdpbmRvdy5qUXVlcnl8fGpRdWVyeSksZnVuY3Rpb24odCxlKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1mdW5jdGlvbigpe3ZhciBlLG4sbyxhPVtbXCJyZXF1ZXN0RnVsbHNjcmVlblwiLFwiZXhpdEZ1bGxzY3JlZW5cIixcImZ1bGxzY3JlZW5FbGVtZW50XCIsXCJmdWxsc2NyZWVuRW5hYmxlZFwiLFwiZnVsbHNjcmVlbmNoYW5nZVwiLFwiZnVsbHNjcmVlbmVycm9yXCJdLFtcIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuXCIsXCJ3ZWJraXRFeGl0RnVsbHNjcmVlblwiLFwid2Via2l0RnVsbHNjcmVlbkVsZW1lbnRcIixcIndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkXCIsXCJ3ZWJraXRmdWxsc2NyZWVuY2hhbmdlXCIsXCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3JcIl0sW1wid2Via2l0UmVxdWVzdEZ1bGxTY3JlZW5cIixcIndlYmtpdENhbmNlbEZ1bGxTY3JlZW5cIixcIndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudFwiLFwid2Via2l0Q2FuY2VsRnVsbFNjcmVlblwiLFwid2Via2l0ZnVsbHNjcmVlbmNoYW5nZVwiLFwid2Via2l0ZnVsbHNjcmVlbmVycm9yXCJdLFtcIm1velJlcXVlc3RGdWxsU2NyZWVuXCIsXCJtb3pDYW5jZWxGdWxsU2NyZWVuXCIsXCJtb3pGdWxsU2NyZWVuRWxlbWVudFwiLFwibW96RnVsbFNjcmVlbkVuYWJsZWRcIixcIm1vemZ1bGxzY3JlZW5jaGFuZ2VcIixcIm1vemZ1bGxzY3JlZW5lcnJvclwiXSxbXCJtc1JlcXVlc3RGdWxsc2NyZWVuXCIsXCJtc0V4aXRGdWxsc2NyZWVuXCIsXCJtc0Z1bGxzY3JlZW5FbGVtZW50XCIsXCJtc0Z1bGxzY3JlZW5FbmFibGVkXCIsXCJNU0Z1bGxzY3JlZW5DaGFuZ2VcIixcIk1TRnVsbHNjcmVlbkVycm9yXCJdXSxpPXt9O2ZvcihuPTA7bjxhLmxlbmd0aDtuKyspaWYoZT1hW25dLGUmJmVbMV1pbiB0KXtmb3Iobz0wO288ZS5sZW5ndGg7bysrKWlbYVswXVtvXV09ZVtvXTtyZXR1cm4gaX1yZXR1cm4hMX0oKTtpZighbilyZXR1cm4gdm9pZChlJiZlLmZhbmN5Ym94JiYoZS5mYW5jeWJveC5kZWZhdWx0cy5idG5UcGwuZnVsbFNjcmVlbj0hMSkpO3ZhciBvPXtyZXF1ZXN0OmZ1bmN0aW9uKGUpe2U9ZXx8dC5kb2N1bWVudEVsZW1lbnQsZVtuLnJlcXVlc3RGdWxsc2NyZWVuXShlLkFMTE9XX0tFWUJPQVJEX0lOUFVUKX0sZXhpdDpmdW5jdGlvbigpe3Rbbi5leGl0RnVsbHNjcmVlbl0oKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe2U9ZXx8dC5kb2N1bWVudEVsZW1lbnQsdGhpcy5pc0Z1bGxzY3JlZW4oKT90aGlzLmV4aXQoKTp0aGlzLnJlcXVlc3QoZSl9LGlzRnVsbHNjcmVlbjpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRbbi5mdWxsc2NyZWVuRWxlbWVudF0pfSxlbmFibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odFtuLmZ1bGxzY3JlZW5FbmFibGVkXSl9fTtlLmV4dGVuZCghMCxlLmZhbmN5Ym94LmRlZmF1bHRzLHtidG5UcGw6e2Z1bGxTY3JlZW46JzxidXR0b24gZGF0YS1mYW5jeWJveC1mdWxsc2NyZWVuIGNsYXNzPVwiZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tZnVsbHNjcmVlblwiIHRpdGxlPVwie3tGVUxMX1NDUkVFTn19XCI+PHN2ZyB2aWV3Qm94PVwiMCAwIDQwIDQwXCI+PHBhdGggZD1cIk05LDEyIGgyMiB2MTYgaC0yMiB2LTE2IHYxNiBoMjIgdi0xNiBaXCIgLz48L3N2Zz48L2J1dHRvbj4nfSxmdWxsU2NyZWVuOnthdXRvU3RhcnQ6ITF9fSksZSh0KS5vbih7XCJvbkluaXQuZmJcIjpmdW5jdGlvbih0LGUpe3ZhciBuO2UmJmUuZ3JvdXBbZS5jdXJySW5kZXhdLm9wdHMuZnVsbFNjcmVlbj8obj1lLiRyZWZzLmNvbnRhaW5lcixuLm9uKFwiY2xpY2suZmItZnVsbHNjcmVlblwiLFwiW2RhdGEtZmFuY3lib3gtZnVsbHNjcmVlbl1cIixmdW5jdGlvbih0KXt0LnN0b3BQcm9wYWdhdGlvbigpLHQucHJldmVudERlZmF1bHQoKSxvLnRvZ2dsZShuWzBdKX0pLGUub3B0cy5mdWxsU2NyZWVuJiZlLm9wdHMuZnVsbFNjcmVlbi5hdXRvU3RhcnQ9PT0hMCYmby5yZXF1ZXN0KG5bMF0pLGUuRnVsbFNjcmVlbj1vKTplJiZlLiRyZWZzLnRvb2xiYXIuZmluZChcIltkYXRhLWZhbmN5Ym94LWZ1bGxzY3JlZW5dXCIpLmhpZGUoKX0sXCJhZnRlcktleWRvd24uZmJcIjpmdW5jdGlvbih0LGUsbixvLGEpe2UmJmUuRnVsbFNjcmVlbiYmNzA9PT1hJiYoby5wcmV2ZW50RGVmYXVsdCgpLGUuRnVsbFNjcmVlbi50b2dnbGUoZS4kcmVmcy5jb250YWluZXJbMF0pKX0sXCJiZWZvcmVDbG9zZS5mYlwiOmZ1bmN0aW9uKHQpe3QmJnQuRnVsbFNjcmVlbiYmby5leGl0KCl9fSksZSh0KS5vbihuLmZ1bGxzY3JlZW5jaGFuZ2UsZnVuY3Rpb24oKXt2YXIgdD1vLmlzRnVsbHNjcmVlbigpLG49ZS5mYW5jeWJveC5nZXRJbnN0YW5jZSgpO24mJihuLmN1cnJlbnQmJlwiaW1hZ2VcIj09PW4uY3VycmVudC50eXBlJiZuLmlzQW5pbWF0aW5nJiYobi5jdXJyZW50LiRjb250ZW50LmNzcyhcInRyYW5zaXRpb25cIixcIm5vbmVcIiksbi5pc0FuaW1hdGluZz0hMSxuLnVwZGF0ZSghMCwhMCwwKSksbi50cmlnZ2VyKFwib25GdWxsc2NyZWVuQ2hhbmdlXCIsdCksbi4kcmVmcy5jb250YWluZXIudG9nZ2xlQ2xhc3MoXCJmYW5jeWJveC1pcy1mdWxsc2NyZWVuXCIsdCkpfSl9KGRvY3VtZW50LHdpbmRvdy5qUXVlcnl8fGpRdWVyeSksZnVuY3Rpb24odCxlKXtcInVzZSBzdHJpY3RcIjtlLmV4dGVuZCghMCxlLmZhbmN5Ym94LmRlZmF1bHRzLHtidG5UcGw6e3RodW1iczonPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LXRodW1icyBjbGFzcz1cImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLXRodW1ic1wiIHRpdGxlPVwie3tUSFVNQlN9fVwiPjxzdmcgdmlld0JveD1cIjAgMCAxMjAgMTIwXCI+PHBhdGggZD1cIk0zMCwzMCBoMTQgdjE0IGgtMTQgWiBNNTAsMzAgaDE0IHYxNCBoLTE0IFogTTcwLDMwIGgxNCB2MTQgaC0xNCBaIE0zMCw1MCBoMTQgdjE0IGgtMTQgWiBNNTAsNTAgaDE0IHYxNCBoLTE0IFogTTcwLDUwIGgxNCB2MTQgaC0xNCBaIE0zMCw3MCBoMTQgdjE0IGgtMTQgWiBNNTAsNzAgaDE0IHYxNCBoLTE0IFogTTcwLDcwIGgxNCB2MTQgaC0xNCBaXCIgLz48L3N2Zz48L2J1dHRvbj4nfSx0aHVtYnM6e2F1dG9TdGFydDohMSxoaWRlT25DbG9zZTohMCxwYXJlbnRFbDpcIi5mYW5jeWJveC1jb250YWluZXJcIn19KTt2YXIgbj1mdW5jdGlvbih0KXt0aGlzLmluc3RhbmNlPXQsdGhpcy5pbml0KCl9O2UuZXh0ZW5kKG4ucHJvdG90eXBlLHskYnV0dG9uOm51bGwsJGdyaWQ6bnVsbCwkbGlzdDpudWxsLGlzVmlzaWJsZTohMSxpbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXQuaW5zdGFuY2Usbj1lLmdyb3VwWzBdLG89ZS5ncm91cFsxXTt0Lm9wdHM9ZS5ncm91cFtlLmN1cnJJbmRleF0ub3B0cy50aHVtYnMsdC4kYnV0dG9uPWUuJHJlZnMudG9vbGJhci5maW5kKFwiW2RhdGEtZmFuY3lib3gtdGh1bWJzXVwiKSx0Lm9wdHMmJm4mJm8mJihcImltYWdlXCI9PW4udHlwZXx8bi5vcHRzLnRodW1ifHxuLm9wdHMuJHRodW1iKSYmKFwiaW1hZ2VcIj09by50eXBlfHxvLm9wdHMudGh1bWJ8fG8ub3B0cy4kdGh1bWIpPyh0LiRidXR0b24uc2hvdygpLm9uKFwiY2xpY2tcIixmdW5jdGlvbigpe3QudG9nZ2xlKCl9KSx0LmlzQWN0aXZlPSEwLHQub3B0cy5hdXRvU3RhcnQ9PT0hMCYmdC5zaG93KCkpOih0LiRidXR0b24uaGlkZSgpLHQuaXNBY3RpdmU9ITEpfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxuLG89dGhpcyxhPW8uaW5zdGFuY2UsaT1vLm9wdHMucGFyZW50RWw7by4kZ3JpZD1lKCc8ZGl2IGNsYXNzPVwiZmFuY3lib3gtdGh1bWJzXCI+PC9kaXY+JykuYXBwZW5kVG8oYS4kcmVmcy5jb250YWluZXIuZmluZChpKS5hZGRCYWNrKCkuZmlsdGVyKGkpKSx0PVwiPHVsPlwiLGUuZWFjaChhLmdyb3VwLGZ1bmN0aW9uKGUsbyl7bj1vLm9wdHMudGh1bWJ8fChvLm9wdHMuJHRodW1iP28ub3B0cy4kdGh1bWIuYXR0cihcInNyY1wiKTpudWxsKSxufHxcImltYWdlXCIhPT1vLnR5cGV8fChuPW8uc3JjKSxuJiZuLmxlbmd0aCYmKHQrPSc8bGkgZGF0YS1pbmRleD1cIicrZSsnXCIgIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiZmFuY3lib3gtdGh1bWJzLWxvYWRpbmdcIj48aW1nIGRhdGEtc3JjPVwiJytuKydcIiAvPjwvbGk+Jyl9KSx0Kz1cIjwvdWw+XCIsby4kbGlzdD1lKHQpLmFwcGVuZFRvKG8uJGdyaWQpLm9uKFwiY2xpY2tcIixcImxpXCIsZnVuY3Rpb24oKXthLmp1bXBUbyhlKHRoaXMpLmRhdGEoXCJpbmRleFwiKSl9KSxvLiRsaXN0LmZpbmQoXCJpbWdcIikuaGlkZSgpLm9uZShcImxvYWRcIixmdW5jdGlvbigpe3ZhciB0LG4sbyxhLGk9ZSh0aGlzKS5wYXJlbnQoKS5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LXRodW1icy1sb2FkaW5nXCIpLHM9aS5vdXRlcldpZHRoKCkscj1pLm91dGVySGVpZ2h0KCk7dD10aGlzLm5hdHVyYWxXaWR0aHx8dGhpcy53aWR0aCxuPXRoaXMubmF0dXJhbEhlaWdodHx8dGhpcy5oZWlnaHQsbz10L3MsYT1uL3Isbz49MSYmYT49MSYmKG8+YT8odC89YSxuPXIpOih0PXMsbi89bykpLGUodGhpcykuY3NzKHt3aWR0aDpNYXRoLmZsb29yKHQpLGhlaWdodDpNYXRoLmZsb29yKG4pLFwibWFyZ2luLXRvcFwiOk1hdGgubWluKDAsTWF0aC5mbG9vciguMypyLS4zKm4pKSxcIm1hcmdpbi1sZWZ0XCI6TWF0aC5taW4oMCxNYXRoLmZsb29yKC41KnMtLjUqdCkpfSkuc2hvdygpfSkuZWFjaChmdW5jdGlvbigpe3RoaXMuc3JjPWUodGhpcykuZGF0YShcInNyY1wiKX0pfSxmb2N1czpmdW5jdGlvbih0KXt2YXIgZSxuLG89dGhpcy4kbGlzdDt0aGlzLmluc3RhbmNlLmN1cnJlbnQmJihlPW8uY2hpbGRyZW4oKS5yZW1vdmVDbGFzcyhcImZhbmN5Ym94LXRodW1icy1hY3RpdmVcIikuZmlsdGVyKCdbZGF0YS1pbmRleD1cIicrdGhpcy5pbnN0YW5jZS5jdXJyZW50LmluZGV4KydcIl0nKS5hZGRDbGFzcyhcImZhbmN5Ym94LXRodW1icy1hY3RpdmVcIiksbj1lLnBvc2l0aW9uKCksbi50b3A8MHx8bi50b3A+by5oZWlnaHQoKS1lLm91dGVySGVpZ2h0KCk/by5zdG9wKCkuYW5pbWF0ZSh7c2Nyb2xsVG9wOm8uc2Nyb2xsVG9wKCkrbi50b3B9LHQpOihuLmxlZnQ8MHx8bi5sZWZ0Pm8ud2lkdGgoKS1lLm91dGVyV2lkdGgoKSkmJm8uc3RvcCgpLmFuaW1hdGUoe3Njcm9sbExlZnQ6by5zY3JvbGxMZWZ0KCkrbi5sZWZ0fSx0KSl9LHVwZGF0ZTpmdW5jdGlvbigpe3RoaXMuaW5zdGFuY2UuJHJlZnMuY29udGFpbmVyLnRvZ2dsZUNsYXNzKFwiZmFuY3lib3gtc2hvdy10aHVtYnNcIix0aGlzLmlzVmlzaWJsZSksdGhpcy5pc1Zpc2libGU/KHRoaXMuJGdyaWR8fHRoaXMuY3JlYXRlKCksdGhpcy5pbnN0YW5jZS50cmlnZ2VyKFwib25UaHVtYnNTaG93XCIpLHRoaXMuZm9jdXMoMCkpOnRoaXMuJGdyaWQmJnRoaXMuaW5zdGFuY2UudHJpZ2dlcihcIm9uVGh1bWJzSGlkZVwiKSx0aGlzLmluc3RhbmNlLnVwZGF0ZSgpfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5pc1Zpc2libGU9ITEsdGhpcy51cGRhdGUoKX0sc2hvdzpmdW5jdGlvbigpe3RoaXMuaXNWaXNpYmxlPSEwLHRoaXMudXBkYXRlKCl9LHRvZ2dsZTpmdW5jdGlvbigpe3RoaXMuaXNWaXNpYmxlPSF0aGlzLmlzVmlzaWJsZSx0aGlzLnVwZGF0ZSgpfX0pLGUodCkub24oe1wib25Jbml0LmZiXCI6ZnVuY3Rpb24odCxlKXt2YXIgbztlJiYhZS5UaHVtYnMmJihvPWUuVGh1bWJzPW5ldyBuKGUpKX0sXCJiZWZvcmVTaG93LmZiXCI6ZnVuY3Rpb24odCxlLG4sbyl7dmFyIGE9ZSYmZS5UaHVtYnM7YSYmYS5pc1Zpc2libGUmJmEuZm9jdXMobz8wOjI1MCl9LFwiYWZ0ZXJLZXlkb3duLmZiXCI6ZnVuY3Rpb24odCxlLG4sbyxhKXt2YXIgaT1lJiZlLlRodW1icztpJiZpLmlzQWN0aXZlJiY3MT09PWEmJihvLnByZXZlbnREZWZhdWx0KCksaS50b2dnbGUoKSl9LFwiYmVmb3JlQ2xvc2UuZmJcIjpmdW5jdGlvbih0LGUpe3ZhciBuPWUmJmUuVGh1bWJzO24mJm4uaXNWaXNpYmxlJiZuLm9wdHMuaGlkZU9uQ2xvc2UhPT0hMSYmbi4kZ3JpZC5oaWRlKCl9fSl9KGRvY3VtZW50LHdpbmRvdy5qUXVlcnkpLGZ1bmN0aW9uKHQsZSl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHRlbmQoITAsZS5mYW5jeWJveC5kZWZhdWx0cyx7YnRuVHBsOntzaGFyZTonPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LXNoYXJlIGNsYXNzPVwiZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tc2hhcmVcIiB0aXRsZT1cInt7U0hBUkV9fVwiPjxzdmcgdmlld0JveD1cIjAgMCA0MCA0MFwiPjxwYXRoIGQ9XCJNNiwzMCBDOCwxOCAxOSwxNiAyMywxNiBMMjMsMTYgTDIzLDEwIEwzMywyMCBMMjMsMjkgTDIzLDI0IEMxOSwyNCA4LDI3IDYsMzAgWlwiPjwvc3ZnPjwvYnV0dG9uPid9LHNoYXJlOnt0cGw6JzxkaXYgY2xhc3M9XCJmYW5jeWJveC1zaGFyZVwiPjxoMT57e1NIQVJFfX08L2gxPjxwPjxhIGhyZWY9XCJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT17e3NyY319XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJmYW5jeWJveC1zaGFyZV9idXR0b25cIj48c3ZnIHZlcnNpb249XCIxLjFcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCIgZmlsbD1cIiMzYjU5OThcIj48cGF0aCBkPVwiTTI3LjYgM2gtMjMuMmMtLjggMC0xLjQuNi0xLjQgMS40djIzLjFjMCAuOS42IDEuNSAxLjQgMS41aDEyLjV2LTEwLjFoLTMuNHYtMy45aDMuNHYtMi45YzAtMy40IDIuMS01LjIgNS01LjIgMS40IDAgMi43LjEgMyAuMnYzLjVoLTIuMWMtMS42IDAtMS45LjgtMS45IDEuOXYyLjVoMy45bC0uNSAzLjloLTMuNHYxMC4xaDYuNmMuOCAwIDEuNC0uNiAxLjQtMS40di0yMy4yYy4xLS44LS41LTEuNC0xLjMtMS40elwiPjwvcGF0aD48L3N2Zz48c3Bhbj5GYWNlYm9vazwvc3Bhbj48L2E+PGEgaHJlZj1cImh0dHBzOi8vd3d3LnBpbnRlcmVzdC5jb20vcGluL2NyZWF0ZS9idXR0b24vP3VybD17e3NyY319JmFtcDtkZXNjcmlwdGlvbj17e2Rlc2NyfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImZhbmN5Ym94LXNoYXJlX2J1dHRvblwiPjxzdmcgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwiI2M5MjIyOFwiPjxwYXRoIGQ9XCJNMTYgM2MtNy4yIDAtMTMgNS44LTEzIDEzIDAgNS41IDMuNCAxMC4yIDguMyAxMi4xLS4xLTEtLjItMi42IDAtMy43LjItMSAxLjUtNi41IDEuNS02LjVzLS40LS44LS40LTEuOWMwLTEuOCAxLTMuMiAyLjQtMy4yIDEuMSAwIDEuNi44IDEuNiAxLjggMCAxLjEtLjcgMi44LTEuMSA0LjMtLjMgMS4zLjYgMi4zIDEuOSAyLjMgMi4zIDAgNC4xLTIuNCA0LjEtNiAwLTMuMS0yLjItNS4zLTUuNC01LjMtMy43IDAtNS45IDIuOC01LjkgNS42IDAgMS4xLjQgMi4zIDEgMyAuMS4xLjEuMi4xLjQtLjEuNC0uMyAxLjMtLjQgMS41LS4xLjItLjIuMy0uNC4yLTEuNi0uOC0yLjYtMy4xLTIuNi01IDAtNC4xIDMtNy45IDguNi03LjkgNC41IDAgOCAzLjIgOCA3LjUgMCA0LjUtMi44IDguMS02LjcgOC4xLTEuMyAwLTIuNi0uNy0zLTEuNSAwIDAtLjcgMi41LS44IDMuMS0uMyAxLjEtMS4xIDIuNS0xLjYgMy40IDEuMi40IDIuNS42IDMuOC42IDcuMiAwIDEzLTUuOCAxMy0xMyAwLTcuMS01LjgtMTIuOS0xMy0xMi45elwiPjwvcGF0aD48L3N2Zz48c3Bhbj5QaW50ZXJlc3Q8L3NwYW4+PC9hPjxhIGhyZWY9XCJodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD91cmw9e3tzcmN9fSZhbXA7dGV4dD17e2Rlc2NyfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImZhbmN5Ym94LXNoYXJlX2J1dHRvblwiPjxzdmcgdmVyc2lvbj1cIjEuMVwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIiBmaWxsPVwiIzFkYTFmMlwiPjxwYXRoIGQ9XCJNMzAgNy4zYy0xIC41LTIuMS44LTMuMy45IDEuMi0uNyAyLjEtMS44IDIuNS0zLjItMS4xLjctMi4zIDEuMS0zLjYgMS40LTEtMS4xLTIuNS0xLjgtNC4yLTEuOC0zLjIgMC01LjcgMi42LTUuNyA1LjcgMCAuNS4xLjkuMSAxLjMtNC44LS4yLTktMi41LTExLjgtNi0uNS45LS44IDEuOS0uOCAzIDAgMiAxIDMuOCAyLjYgNC44LS45IDAtMS44LS4zLTIuNi0uN3YuMWMwIDIuOCAyIDUuMSA0LjYgNS42LS41LjEtMSAuMi0xLjUuMi0uNCAwLS43IDAtMS4xLS4xLjcgMi4zIDIuOSAzLjkgNS40IDQtMiAxLjUtNC40IDIuNS03LjEgMi41LS41IDAtLjkgMC0xLjQtLjEgMi41IDEuNiA1LjYgMi42IDguOCAyLjYgMTAuNiAwIDE2LjMtOC44IDE2LjMtMTYuM3YtLjdjMS4xLTEgMi0yIDIuOC0zLjJ6XCI+PC9wYXRoPjwvc3ZnPjxzcGFuPlR3aXR0ZXI8L3NwYW4+PC9hPjwvcD48L2Rpdj4nfX0pLGUodCkub24oXCJjbGlja1wiLFwiW2RhdGEtZmFuY3lib3gtc2hhcmVdXCIsZnVuY3Rpb24oKXt2YXIgdCxuPWUuZmFuY3lib3guZ2V0SW5zdGFuY2UoKTtuJiYodD1uLmN1cnJlbnQub3B0cy5zaGFyZS50cGwucmVwbGFjZSgvXFx7XFx7c3JjXFx9XFx9L2csZW5jb2RlVVJJQ29tcG9uZW50KG4uY3VycmVudC5vcHRzLmhhc2g9PT0hMT9uLmN1cnJlbnQuc3JjOndpbmRvdy5sb2NhdGlvbikpLG4uJGNhcHRpb24mJih0PXQucmVwbGFjZSgvXFx7XFx7ZGVzY3JcXH1cXH0vZyxlbmNvZGVVUklDb21wb25lbnQobi4kY2FwdGlvbi50ZXh0KCkpKSksZS5mYW5jeWJveC5vcGVuKHtzcmM6bi50cmFuc2xhdGUobix0KSx0eXBlOlwiaHRtbFwiLG9wdHM6e2F1dG9Gb2N1czohMSxhbmltYXRpb25FZmZlY3Q6XCJmYWRlXCJ9fSkpfSl9KGRvY3VtZW50LHdpbmRvdy5qUXVlcnl8fGpRdWVyeSksZnVuY3Rpb24odCxlLG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG8oKXt2YXIgdD1lLmxvY2F0aW9uLmhhc2guc3Vic3RyKDEpLG49dC5zcGxpdChcIi1cIiksbz1uLmxlbmd0aD4xJiYvXlxcKz9cXGQrJC8udGVzdChuW24ubGVuZ3RoLTFdKT9wYXJzZUludChuLnBvcCgtMSksMTApfHwxOjEsYT1uLmpvaW4oXCItXCIpO3JldHVybiBvPDEmJihvPTEpLHtoYXNoOnQsaW5kZXg6byxnYWxsZXJ5OmF9fWZ1bmN0aW9uIGEodCl7dmFyIGU7XCJcIiE9PXQuZ2FsbGVyeSYmKGU9bihcIltkYXRhLWZhbmN5Ym94PSdcIituLmVzY2FwZVNlbGVjdG9yKHQuZ2FsbGVyeSkrXCInXVwiKS5lcSh0LmluZGV4LTEpLGUubGVuZ3RofHwoZT1uKFwiI1wiK24uZXNjYXBlU2VsZWN0b3IodC5nYWxsZXJ5KSkpLGUubGVuZ3RoJiYocz0hMSxlLnRyaWdnZXIoXCJjbGlja1wiKSkpfWZ1bmN0aW9uIGkodCl7dmFyIGU7cmV0dXJuISF0JiYoZT10LmN1cnJlbnQ/dC5jdXJyZW50Lm9wdHM6dC5vcHRzLGUuaGFzaHx8KGUuJG9yaWc/ZS4kb3JpZy5kYXRhKFwiZmFuY3lib3hcIik6XCJcIikpfW4uZXNjYXBlU2VsZWN0b3J8fChuLmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPS8oW1xcMC1cXHgxZlxceDdmXXxeLT9cXGQpfF4tJHxbXlxceDgwLVxcdUZGRkZcXHctXS9nLG49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT9cIlxcMFwiPT09dD9cIu+/vVwiOnQuc2xpY2UoMCwtMSkrXCJcXFxcXCIrdC5jaGFyQ29kZUF0KHQubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KStcIiBcIjpcIlxcXFxcIit0fTtyZXR1cm4odCtcIlwiKS5yZXBsYWNlKGUsbil9KTt2YXIgcz0hMCxyPW51bGwsYz1udWxsO24oZnVuY3Rpb24oKXtuLmZhbmN5Ym94LmRlZmF1bHRzLmhhc2ghPT0hMSYmKG4odCkub24oe1wib25Jbml0LmZiXCI6ZnVuY3Rpb24odCxlKXt2YXIgbixhO2UuZ3JvdXBbZS5jdXJySW5kZXhdLm9wdHMuaGFzaCE9PSExJiYobj1vKCksYT1pKGUpLGEmJm4uZ2FsbGVyeSYmYT09bi5nYWxsZXJ5JiYoZS5jdXJySW5kZXg9bi5pbmRleC0xKSl9LFwiYmVmb3JlU2hvdy5mYlwiOmZ1bmN0aW9uKG4sbyxhKXt2YXIgbDthJiZhLm9wdHMuaGFzaCE9PSExJiYobD1pKG8pLGwmJlwiXCIhPT1sJiYoZS5sb2NhdGlvbi5oYXNoLmluZGV4T2YobCk8MCYmKG8ub3B0cy5vcmlnSGFzaD1lLmxvY2F0aW9uLmhhc2gpLHI9bCsoby5ncm91cC5sZW5ndGg+MT9cIi1cIisoYS5pbmRleCsxKTpcIlwiKSxcInJlcGxhY2VTdGF0ZVwiaW4gZS5oaXN0b3J5PyhjJiZjbGVhclRpbWVvdXQoYyksYz1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5oaXN0b3J5W3M/XCJwdXNoU3RhdGVcIjpcInJlcGxhY2VTdGF0ZVwiXSh7fSx0LnRpdGxlLGUubG9jYXRpb24ucGF0aG5hbWUrZS5sb2NhdGlvbi5zZWFyY2grXCIjXCIrciksYz1udWxsLHM9ITF9LDMwMCkpOmUubG9jYXRpb24uaGFzaD1yKSl9LFwiYmVmb3JlQ2xvc2UuZmJcIjpmdW5jdGlvbihvLGEscyl7dmFyIGwsdTtjJiZjbGVhclRpbWVvdXQoYykscy5vcHRzLmhhc2ghPT0hMSYmKGw9aShhKSx1PWEmJmEub3B0cy5vcmlnSGFzaD9hLm9wdHMub3JpZ0hhc2g6XCJcIixsJiZcIlwiIT09bCYmKFwicmVwbGFjZVN0YXRlXCJpbiBoaXN0b3J5P2UuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sdC50aXRsZSxlLmxvY2F0aW9uLnBhdGhuYW1lK2UubG9jYXRpb24uc2VhcmNoK3UpOihlLmxvY2F0aW9uLmhhc2g9dSxuKGUpLnNjcm9sbFRvcChhLnNjcm9sbFRvcCkuc2Nyb2xsTGVmdChhLnNjcm9sbExlZnQpKSkscj1udWxsKX19KSxuKGUpLm9uKFwiaGFzaGNoYW5nZS5mYlwiLGZ1bmN0aW9uKCl7dmFyIHQ9bygpO24uZmFuY3lib3guZ2V0SW5zdGFuY2UoKT8hcnx8cj09PXQuZ2FsbGVyeStcIi1cIit0LmluZGV4fHwxPT09dC5pbmRleCYmcj09dC5nYWxsZXJ5fHwocj1udWxsLG4uZmFuY3lib3guY2xvc2UoKSk6XCJcIiE9PXQuZ2FsbGVyeSYmYSh0KX0pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXthKG8oKSl9LDUwKSl9KX0oZG9jdW1lbnQsd2luZG93LHdpbmRvdy5qUXVlcnl8fGpRdWVyeSk7Il19

/* End */
;
; /* Start:"a:4:{s:4:"full";s:70:"/local/templates/autoglass/js/jquery.maskedinput.min.js?15450689724324";s:6:"source";s:55:"/local/templates/autoglass/js/jquery.maskedinput.min.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
/*
    jQuery Masked Input Plugin
    Copyright (c) 2007 - 2015 Josh Bush (digitalbush.com)
    Licensed under the MIT license (http://digitalbush.com/projects/masked-input-plugin/#license)
    Version: 1.4.1
*/
!function(a){"function"==typeof define&amp;&amp;define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b,c=navigator.userAgent,d=/iphone/i.test(c),e=/chrome/i.test(c),f=/android/i.test(c);a.mask={definitions:{9:"[0-9]",a:"[A-Za-z]","*":"[A-Za-z0-9]"},autoclear:!0,dataName:"rawMaskFn",placeholder:"_"},a.fn.extend({caret:function(a,b){var c;if(0!==this.length&amp;&amp;!this.is(":hidden"))return"number"==typeof a?(b="number"==typeof b?b:a,this.each(function(){this.setSelectionRange?this.setSelectionRange(a,b):this.createTextRange&amp;&amp;(c=this.createTextRange(),c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select())})):(this[0].setSelectionRange?(a=this[0].selectionStart,b=this[0].selectionEnd):document.selection&amp;&amp;document.selection.createRange&amp;&amp;(c=document.selection.createRange(),a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length),{begin:a,end:b})},unmask:function(){return this.trigger("unmask")},mask:function(c,g){var h,i,j,k,l,m,n,o;if(!c&amp;&amp;this.length&gt;0){h=a(this[0]);var p=h.data(a.mask.dataName);return p?p():void 0}return g=a.extend({autoclear:a.mask.autoclear,placeholder:a.mask.placeholder,completed:null},g),i=a.mask.definitions,j=[],k=n=c.length,l=null,a.each(c.split(""),function(a,b){"?"==b?(n--,k=a):i[b]?(j.push(new RegExp(i[b])),null===l&amp;&amp;(l=j.length-1),k&gt;a&amp;&amp;(m=j.length-1)):j.push(null)}),this.trigger("unmask").each(function(){function h(){if(g.completed){for(var a=l;m&gt;=a;a++)if(j[a]&amp;&amp;C[a]===p(a))return;g.completed.call(B)}}function p(a){return g.placeholder.charAt(a&lt;g.placeholder.length?a:0)}function q(a){for(;++a&lt;n&amp;&amp;!j[a];);return a}function r(a){for(;--a&gt;=0&amp;&amp;!j[a];);return a}function s(a,b){var c,d;if(!(0&gt;a)){for(c=a,d=q(b);n&gt;c;c++)if(j[c]){if(!(n&gt;d&amp;&amp;j[c].test(C[d])))break;C[c]=C[d],C[d]=p(d),d=q(d)}z(),B.caret(Math.max(l,a))}}function t(a){var b,c,d,e;for(b=a,c=p(a);n&gt;b;b++)if(j[b]){if(d=q(b),e=C[b],C[b]=c,!(n&gt;d&amp;&amp;j[d].test(e)))break;c=e}}function u(){var a=B.val(),b=B.caret();if(o&amp;&amp;o.length&amp;&amp;o.length&gt;a.length){for(A(!0);b.begin&gt;0&amp;&amp;!j[b.begin-1];)b.begin--;if(0===b.begin)for(;b.begin&lt;l&amp;&amp;!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}else{for(A(!0);b.begin&lt;n&amp;&amp;!j[b.begin];)b.begin++;B.caret(b.begin,b.begin)}h()}function v(){A(),B.val()!=E&amp;&amp;B.change()}function w(a){if(!B.prop("readonly")){var b,c,e,f=a.which||a.keyCode;o=B.val(),8===f||46===f||d&amp;&amp;127===f?(b=B.caret(),c=b.begin,e=b.end,e-c===0&amp;&amp;(c=46!==f?r(c):e=q(c-1),e=46===f?q(e):e),y(c,e),s(c,e-1),a.preventDefault()):13===f?v.call(this,a):27===f&amp;&amp;(B.val(E),B.caret(0,A()),a.preventDefault())}}function x(b){if(!B.prop("readonly")){var c,d,e,g=b.which||b.keyCode,i=B.caret();if(!(b.ctrlKey||b.altKey||b.metaKey||32&gt;g)&amp;&amp;g&amp;&amp;13!==g){if(i.end-i.begin!==0&amp;&amp;(y(i.begin,i.end),s(i.begin,i.end-1)),c=q(i.begin-1),n&gt;c&amp;&amp;(d=String.fromCharCode(g),j[c].test(d))){if(t(c),C[c]=d,z(),e=q(c),f){var k=function(){a.proxy(a.fn.caret,B,e)()};setTimeout(k,0)}else B.caret(e);i.begin&lt;=m&amp;&amp;h()}b.preventDefault()}}}function y(a,b){var c;for(c=a;b&gt;c&amp;&amp;n&gt;c;c++)j[c]&amp;&amp;(C[c]=p(c))}function z(){B.val(C.join(""))}function A(a){var b,c,d,e=B.val(),f=-1;for(b=0,d=0;n&gt;b;b++)if(j[b]){for(C[b]=p(b);d++&lt;e.length;)if(c=e.charAt(d-1),j[b].test(c)){C[b]=c,f=b;break}if(d&gt;e.length){y(b+1,n);break}}else C[b]===e.charAt(d)&amp;&amp;d++,k&gt;b&amp;&amp;(f=b);return a?z():k&gt;f+1?g.autoclear||C.join("")===D?(B.val()&amp;&amp;B.val(""),y(0,n)):z():(z(),B.val(B.val().substring(0,f+1))),k?b:l}var B=a(this),C=a.map(c.split(""),function(a,b){return"?"!=a?i[a]?p(b):a:void 0}),D=C.join(""),E=B.val();B.data(a.mask.dataName,function(){return a.map(C,function(a,b){return j[b]&amp;&amp;a!=p(b)?a:null}).join("")}),B.one("unmask",function(){B.off(".mask").removeData(a.mask.dataName)}).on("focus.mask",function(){if(!B.prop("readonly")){clearTimeout(b);var a;E=B.val(),a=A(),b=setTimeout(function(){B.get(0)===document.activeElement&amp;&amp;(z(),a==c.replace("?","").length?B.caret(0,a):B.caret(a))},10)}}).on("blur.mask",v).on("keydown.mask",w).on("keypress.mask",x).on("input.mask paste.mask",function(){B.prop("readonly")||setTimeout(function(){var a=A(!0);B.caret(a),h()},0)}),e&amp;&amp;f&amp;&amp;B.off("input.mask").on("input.mask",u),A()})}})});
/* End */
;
; /* Start:"a:4:{s:4:"full";s:53:"/local/templates/autoglass/js/main.js?155983200121811";s:6:"source";s:37:"/local/templates/autoglass/js/main.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
'use strict';

$(function () {
	svg4everybody();
	
	// slider
	var gallery =  $('.js-gallery');
	gallery.owlCarousel({
		items: 4,
		nav: false,
		dots: true,
		dotsEach: true,
		loop: true,
		margin: 10,
		smartSpeed: 550,
		autoplay: false,
		autoplayHoverPause: false,
		autoWidth: true,
		onInitialized: fancy,
		onChanged: fancy,
		responsive: {
			0: {
				items: 1
			},
			479: {
				items: 2,
				margin: 20,
			},
			767: {
				items: 3
			},
			1200: {
				items: 4
			},
		}
	});
	function fancy(event){
		var el = event.target;
		$(el).find('.owl-item a').fancybox({
			loop: true,
			infobar: false,
			buttons: [
				"zoom",
				"fullScreen",
				"close"
			],
		});
	}
	
	// filter
	$('.js-filter-name').click(function(){
		if($(this).next('.filter-brand').is(':visible')){
			$(this).next('.filter-brand').fadeOut(200);  
		} else {
			$('.filter-brand').fadeOut(200);
			$(this).next('.filter-brand').fadeIn(200);
		}  
	});
	$('.filter-brand__close').click(function(){
		$('.filter-brand').fadeOut(200);
	});
	// РєР»РёРє РІ СЃРІРѕР±РѕРґРЅРѕР№ Р·РѕРЅРµ
	$(document).click( function(event){
		if($('.filter-brand').is(':visible') &amp;&amp; $(event.target).closest(".filter__item").length)
			return;
			$('.filter-brand').fadeOut(200);
			event.stopPropagation();
	});
	
  // up
	$('.js-up').click(function(){
		$('body,html').animate({
			scrollTop: 0
		}, 500);
		return false;
	});
	
	// menu
	var $sect = $('.page-header__link');
	if ($sect.length &gt; 0)
	{
		$sect.click(function(e){
			e.preventDefault();
			
			var $t = $(this);
			var id = $t.attr('href');
			
			if (0 == id.indexOf('#'))
			{
				$sect.removeClass('active');
				$t.addClass('active');
				
				var $id = $(id);
				if ($id.length &gt; 0)
				{
					$('body,html').animate({
						scrollTop: $id.offset().top - $('.page-header').outerHeight(true)
					}, 500);
					if ($(window).width() &lt; 768)
						$('.js-gamb').click();
				}
			}
			else
				window.location.assign(id);
			
			return false;
		});
		
		var sect = window.location.hash || '';
		if (!isBlank(sect))
		{
			var $goto = $('.page-header__link[href="' + sect + '"]');
			if ($goto.length &gt; 0)
			{
				$sect.removeClass('active');
				$goto.addClass('active');
			}
			
			var $id = $(sect);
			if ($id.length &gt; 0)
			{
				$('body,html').animate({
					scrollTop: $id.offset().top - $('.page-header').outerHeight(true)
				}, 500);
			}
		}
	}
	
	$(window).scroll(function(){
		scrolledWindow();
		animateInsurance();
	});
	scrolledWindow();
	animateInsurance();
	
	// gamb
	$('.js-gamb').click(function(){
		if($(this).hasClass('open'))
		{
			$('.js-gamb, .js-gamb-hidden, .page-header').removeClass('open');
		}
		else
		{
			$('.js-gamb, .js-gamb-hidden, .page-header').addClass('open');
		}
	});
	$(window).resize(function(){
		if($(window).width() &lt; 768)
		{
			$('header .page-header__contacts, .page-header__nav').appendTo('.js-gamb-hidden');
		}
		else
		{
			$('.page-header__nav').insertAfter('.page-header__logo');
			$('header .page-header__contacts').insertAfter('.page-header__info');
		}
	});
	if($(window).width() &lt; 768)
	{
		$('header .page-header__contacts, .page-header__nav').appendTo('.js-gamb-hidden');
	}
	
	$('input[name=taddress]').val('РђРІС‚РѕСЃС‚С‘РєР»Р°');
	$('input[type="tel"]').mask('+9(999)999-99-99');
	$('input[name="year"], input[name="insurance"]').mask("9999");
	$('input[name="vin"]').mask("****************?**");
	
	// counter
	var $counter = $('#counter-1');
	if ($counter.length &gt; 0)
	{
		var ts = (new Date()).getTime() + 11.25 * 24 * 60 * 60 * 1000;
		$counter.countdown({
				timestamp : ts,
				callback : function(days, hours, minutes, seconds) {
				}
		});
	}
	
	$("[data-fancybox][data-form-enroll]").fancybox({
		beforeShow: function(instance, current){
			var address = instance.current.opts.$orig.parent().data('address') || '';
			if (isBlank(address))
				address = instance.current.opts.$orig.data('address') || '';
			var $form = $(current.src).find('form');
			$('.js-enroll-form-address', $form).text(address);
			$('input[name="address"]', $form).val(address);
		}
	});
	
	buyFancybox();
	
	scrollToCatalogList();
	
	$('#js-callback-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/callback.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$.fancybox.close();
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РєР°Р· Р·РІРѕРЅРєР°!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-enroll-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/order-enroll.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$.fancybox.close();
							$('.js-clear-field', $form).val('');
							$('.js-enroll-form-address', $form).text('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РїРёСЃСЊ РѕРЅ-Р»Р°Р№РЅ!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-vin-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/order-vin.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$('.js-clear-field', $form).val('');
							$('.js-clear-select', $form).find('option').each(function(){
								var $t = $(this);
								var selected = $t.attr('selected') || '';
								$t.prop('selected', ('selected' == selected));
							});
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РїСЂРѕСЃ РЅР° СЃС‚РµРєР»Рѕ РїРѕ VIN!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-insurance-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="insurance"]', $form);
		var value = $control.val() || '';
		if (isBlank(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="name"]', $form);
		var value = $control.val() || '';
		if (isBlank(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/order-insurance.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°СЏРІРєСѓ РЅР° РїРѕР»СѓС‡РµРЅРёРµ СЃС‚СЂР°С…РѕРІРєРё!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-discount-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/order-discount.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$.fancybox.close();
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РєР°Р· РЅР° СЃС‚РµРєР»Рѕ СЃРѕ СЃРєРёРґРєРѕР№!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-buy-form, #js-install-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="email"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isEmail(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/order-buy.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$.fancybox.close();
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РєР°Р· РЅР° СЃС‚РµРєР»Рѕ!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
});

function scrolledWindow()
{
	if($(window).scrollTop() &gt; 20)
	{
		$('.page-header').addClass('fixed');
	}
	else
	{
		$('.page-header').removeClass('fixed');
	}
}

function animateInsurance(span)
{
	span = +span || 1;
	var $target = $('.js-insurance-section');
	
	if ($target.length &gt; 0)
	{
		var scroll = $(window).scrollTop();
		var it = $target.offset().top;
		var ih = $target.height();
		var wh = $(window).innerHeight();
		var min = it - wh / 2 + span;
		if (min &lt; 0)
			min = 0;
		var max = min + ih / 3 + span;
		
		if (scroll &gt;= min &amp;&amp; scroll &lt;= max)
		{
			var opacity = (scroll - min) / (max - min);
			if (opacity &lt; 0)
				opacity = 0;
			if (opacity &gt; 1)
				opacity = 1;
			$('#js-insurance-title, #js-insurance-umbrella').css({'opacity': opacity});
		}
	}
}

function showSelectedVendors(url)
{
	url = url.substring(0, url.length - 1);
	var $vendors = $('.js-checkbox-vendor:checked');
	
	if (!isBlank(url) &amp;&amp; $vendors.length &gt; 0)
	{
		$vendors.each(function(){
			var vendor = $(this).val() || '';
			
			if (!isBlank(vendor) &amp;&amp; !~url.indexOf(vendor))
			{
				url = url + '-' + vendor;
			}
		});
		
		url += '/';
		window.location = url;
	}
	return false;
}

function showNextPage(e, page)
{
	e.preventDefault();
	
	page = +page || 0;
	var action = '';
	var $catalog = $('#catalog');
	
	if ($catalog.hasClass('processing'))
		return false;
	
	if (typeof(loadMore) != 'undefined' &amp;&amp; typeof(loadMore.actionUrl) != 'undefined' &amp;&amp; !isBlank(loadMore.actionUrl))
		action = loadMore.actionUrl + '?AJAX=Y';
	
	if (page &gt; 0 &amp;&amp; !isBlank(action) &amp;&amp; $catalog.length &gt; 0)
	{
		$catalog.addClass('processing');
		showLoading();
	
		$.ajax({
			type: "GET",
			url: action,
			data: {PAGEN_1: page},
			success: function(data){
					if (!isBlank(data))
					{
						$('.js-items-view-more').remove();
						$catalog.append(data);
						buyFancybox();
					}
					
					$catalog.removeClass('processing');
					hideLoading();
				},
			error: function(XMLHttpRequest, textStatus, errorThrown){
					console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					
					$catalog.removeClass('processing');
					hideLoading();
				}
		});
	}
	
	return false;
}

function showAll(e)
{
	e.preventDefault();
	
	var action = '';
	var $catalog = $('#catalog');
	
	if ($catalog.hasClass('processing'))
		return false;
	
	if (typeof(loadMore) != 'undefined' &amp;&amp; typeof(loadMore.actionUrl) != 'undefined' &amp;&amp; !isBlank(loadMore.actionUrl))
		action = loadMore.actionUrl + '?AJAX=Y';
	
	if (!isBlank(action) &amp;&amp; $catalog.length &gt; 0)
	{
		$catalog.addClass('processing');
		showLoading();
	
		$.ajax({
			type: "GET",
			url: action,
			data: {PAGEN_1: 1, LOAD_ALL: 'Y'},
			success: function(data){
					if (!isBlank(data))
					{
						$('.js-items-view-more').remove();
						$catalog.html(data);
						buyFancybox();
					}
					
					$catalog.removeClass('processing');
					hideLoading();
				},
			error: function(XMLHttpRequest, textStatus, errorThrown){
					console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					
					$catalog.removeClass('processing');
					hideLoading();
				}
		});
	}
	
	return false;
}

function buyFancybox()
{
	$control = $('.js-new-fancybox');
	
	if ($control.length &gt; 0)
	{
		$control.fancybox({
			beforeShow: function(instance, current){
				var $button = instance.current.opts.$orig;
				var $form = $(current.src).find('form');
				var id = $button.data('id') || '';
				var glass = $button.data('glass') || '';
				var eurocode = $button.data('eurocode') || '';
				var vendor = $button.data('vendor') || '';
				var price = $button.data('price') || '';
				
				$('input[name="id"]', $form).val(id);
				$('input[name="glass"]', $form).val(glass);
				$('input[name="eurocode"]', $form).val(eurocode);
				$('input[name="vendor"]', $form).val(vendor);
				$('input[name="price"]', $form).val(price);
			}
		});
		
		$control.removeClass('js-new-fancybox');
	}
}

function scrollToCatalogList()
{
	if (typeof(scrollToCatalog) != 'undefined' &amp;&amp; 'Y' == scrollToCatalog)
	{
		var co = $('#catalog').offset().top - $('header').height() - 20;
		
		$('html, body').animate({scrollTop: co}, 'fast');
	}
}

function showAllBrands(e)
{
	e.preventDefault();
	e.stopPropagation();
	
	$('html, body').animate({scrollTop: $('#menu2').offset().top}, 'slow');
	$('.js-filter-name-brand').next('.filter-brand').fadeIn(200);
	
	return false;
}

function showLoading()
{
	$('#overlay').show();
	$('#loading').fadeIn('slow');
}

function hideLoading()
{
	$('#loading').fadeOut('slow');
	$('#overlay').delay(100).hide();
}

function showSuccessPopup()
{
	$('#overlay').show();
	$('#success').fadeIn('slow');
}

function hideSuccessPopup()
{
	$('#success').fadeOut('slow');
	$('#overlay').delay(100).hide();
}

function resumeFormValidation()
{
	$('.js-clear-field, .js-uncheck-field').on('focus', function(){
		$(this).parents('form').removeAttr('novalidate');
	});
}

function trim(str) {
	var newstr = str.replace(/^\s*(.+?)\s*$/, '$1');
	if (newstr == ' ')
		return '';
	else
		return newstr;
}

function dropSpaces(str) {
	var newstr = trim(str);
	return newstr.replace(/\s+/g, '');
}

function isBlank(str) {
	return (!str || /^\s*$/.test(str));
}

function isPhone(phone) {
	var template = /^\+[0-9]\([0-9]{3}\)[0-9]{3}-[0-9]{2}-[0-9]{2}$/;
	phone = dropSpaces(phone);
	if (template.test(phone))
	{
		return true;
	}
  return false;
}

function isEmail(address) {
	var true_email = new RegExp(/[a-z0-9!$%&amp;'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!$%&amp;'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{4}|ru|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/);
	return true_email.test(address);
}
/* End */
;
; /* Start:"a:4:{s:4:"full";s:63:"/local/templates/autoglass/js/sotrudnichestvo.js?15450689724141";s:6:"source";s:48:"/local/templates/autoglass/js/sotrudnichestvo.js";s:3:"min";s:0:"";s:3:"map";s:0:"";}"*/
'use strict';

$(document).ready(function(){
	$('[data-fancybox][data-delivery-calc]').fancybox({
		iframe: {
			css: {
				width : '332px',
				height: '305px'
			}
		}
	});
	
	$('#js-price-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="email"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isEmail(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/download-price.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$.fancybox.close();
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°РїСЂРѕСЃ РЅР° СЃРєР°С‡РёРІР°РЅРёРµ РїСЂР°Р№СЃР°!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
	$('#js-sotrud-form').submit(function(e){
		$form = $(this);
		$form.removeAttr('novalidate');
		
		if ($form.hasClass('processing'))
			return false;
		$form.addClass('processing');
		
		$('.has-error', $form).removeClass('has-error');
		
		var $control = $('input[name="name"]', $form);
		var value = $control.val() || '';
		if (isBlank(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="phone"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isPhone(value))
			$control.addClass('has-error');
		
		var $control = $('input[name="email"]', $form);
		var value = $control.val() || '';
		if (isBlank(value) || !isEmail(value))
			$control.addClass('has-error');
		
		var bErrors = ($('.has-error', $form).length &gt; 0);
		
		e.preventDefault();
		
		if (!bErrors)
		{
			showLoading();
			
			$.ajax({
				type: 'POST',
				url: '/ajax/sotrudnichestvo.php?ajax=Y',
				data: $form.serialize() + '&amp;sessid=' + BX.bitrix_sessid(),
				success: function(data){
						$form.removeClass('processing');
						hideLoading();
						
						if (typeof(data) != 'undefined' &amp;&amp; typeof(data.success) != 'undefined' &amp;&amp; data.success == true)
						{
							$('.js-clear-field', $form).val('');
							$form.attr('novalidate', 'novalidate');
							resumeFormValidation();
							showSuccessPopup();
							setTimeout(function(){
								hideSuccessPopup();
							}, 3000);
						}
						else
						{
							alert('РќРµ СѓРґР°Р»РѕСЃСЊ РѕС‚РїСЂР°РІРёС‚СЊ Р·Р°СЏРІРєСѓ РЅР° СЃРѕС‚СЂСѓРґРЅРёС‡РµСЃС‚РІРѕ!\r\nРџРѕРїСЂРѕР±СѓР№С‚Рµ РµС‰С‘ СЂР°Р·.');
							if (typeof(data) != 'undefined' &amp;&amp; typeof(data.message) != 'undefined' &amp;&amp; !isBlank(data.message))
								console.log(data.message);
						}
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
						$form.removeClass('processing');
						hideLoading();
						
						console.log("Error with ajax Function: " + textStatus + " " + errorThrown);
					}
			});
		}
		else
		{
			$form.removeClass('processing');
		}
		
		return false;
	});
	
});
/* End */
;; /* /local/templates/autoglass/js/libs.min.js?1545068972846232*/
; /* /local/templates/autoglass/js/jquery.maskedinput.min.js?15450689724324*/
; /* /local/templates/autoglass/js/main.js?155983200121811*/
; /* /local/templates/autoglass/js/sotrudnichestvo.js?15450689724141*/
</pre></body></html>