@touchtech/baselayer-ui 2.22.8-beta.2 → 2.22.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/styles.css +11 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
* Licensed under the MIT license.
|
|
10
10
|
*/
|
|
11
11
|
var r="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function o(e,t){for(var n=t.slice(0,t.length-1),r=0;r<n.length;r++)n[r]=e[n[r].toLowerCase()];return n}function i(e){"string"!=typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var u={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":r?173:189,"=":r?61:187,";":r?59:186,"'":222,"[":219,"]":221,"\\":220},l={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},d={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},f={16:!1,18:!1,17:!1,91:!1},c={},s=1;s<20;s++)u["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return u[e.toLowerCase()]||l[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function h(e){_=e||"all"}function y(){return _||"all"}var b=function(e){var t=e.key,n=e.scope,r=e.method,a=e.splitKey,u=void 0===a?"+":a;i(t).forEach((function(e){var t=e.split(u),a=t.length,i=t[a-1],d="*"===i?"*":m(i);if(c[d]){n||(n=y());var f=a>1?o(l,t):[];c[d]=c[d].map((function(e){return(!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,a=!0,o=0;o<n.length;o++)-1===r.indexOf(n[o])&&(a=!1);return a}(e.mods,f)?{}:e}))}}))};function g(e,t,n){var r;if(t.scope===n||"all"===t.scope){for(var a in r=t.mods.length>0,f)Object.prototype.hasOwnProperty.call(f,a)&&(!f[a]&&t.mods.indexOf(+a)>-1||f[a]&&-1===t.mods.indexOf(+a))&&(r=!1);(0!==t.mods.length||f[16]||f[18]||f[17]||f[91])&&!r&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function O(e){var t=c["*"],n=e.keyCode||e.which||e.charCode;if(P.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===v.indexOf(n)&&229!==n&&v.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=d[t];e[t]&&-1===v.indexOf(n)?v.push(n):!e[t]&&v.indexOf(n)>-1?v.splice(v.indexOf(n),1):"metaKey"===t&&e[t]&&3===v.length&&(e.ctrlKey||e.shiftKey||e.altKey||(v=v.slice(v.indexOf(n))))})),n in f){for(var r in f[n]=!0,l)l[r]===n&&(P[r]=!0);if(!t)return}for(var a in f)Object.prototype.hasOwnProperty.call(f,a)&&(f[a]=e[d[a]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===v.indexOf(17)&&v.push(17),-1===v.indexOf(18)&&v.push(18),f[17]=!0,f[18]=!0);var o=y();if(t)for(var i=0;i<t.length;i++)t[i].scope===o&&("keydown"===e.type&&t[i].keydown||"keyup"===e.type&&t[i].keyup)&&g(e,t[i],o);if(n in c)for(var u=0;u<c[n].length;u++)if(("keydown"===e.type&&c[n][u].keydown||"keyup"===e.type&&c[n][u].keyup)&&c[n][u].key){for(var s=c[n][u],_=s.splitKey,p=s.key.split(_),h=[],b=0;b<p.length;b++)h.push(m(p[b]));h.sort().join("")===v.sort().join("")&&g(e,s,o)}}}function P(e,t,n){v=[];var r=i(e),u=[],d="all",s=document,_=0,h=!1,y=!0,b="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(d=t.scope),t.element&&(s=t.element),t.keyup&&(h=t.keyup),void 0!==t.keydown&&(y=t.keydown),"string"==typeof t.splitKey&&(b=t.splitKey)),"string"==typeof t&&(d=t);_<r.length;_++)u=[],(e=r[_].split(b)).length>1&&(u=o(l,e)),(e="*"===(e=e[e.length-1])?"*":m(e))in c||(c[e]=[]),c[e].push({keyup:h,keydown:y,scope:d,mods:u,shortcut:r[_],method:n,key:r[_],splitKey:b});void 0!==s&&!function(e){return p.indexOf(e)>-1}(s)&&window&&(p.push(s),a(s,"keydown",(function(e){O(e)})),a(window,"focus",(function(){v=[]})),a(s,"keyup",(function(e){O(e),function(e){var t=e.keyCode||e.which||e.charCode,n=v.indexOf(t);if(n>=0&&v.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&v.splice(0,v.length),93!==t&&224!==t||(t=91),t in f)for(var r in f[t]=!1,l)l[r]===t&&(P[r]=!1)}(e)})))}var j={setScope:h,getScope:y,deleteScope:function(e,t){var n,r;for(var a in e||(e=y()),c)if(Object.prototype.hasOwnProperty.call(c,a))for(n=c[a],r=0;r<n.length;)n[r].scope===e?n.splice(r,1):r++;y()===e&&h(t||"all")},getPressedKeyCodes:function(){return v.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=m(e)),-1!==v.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,r=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(r=!1),r},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&b(e)}));else if("object"==typeof e)e.key&&b(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n[0],o=n[1];"function"==typeof a&&(o=a,a=""),b({key:e,scope:a,method:o,splitKey:"+"})}}else Object.keys(c).forEach((function(e){return delete c[e]}))}};for(var M in j)Object.prototype.hasOwnProperty.call(j,M)&&(P[M]=j[M]);if("undefined"!=typeof window){var w=window.hotkeys;P.noConflict=function(e){return e&&window.hotkeys===P&&(window.hotkeys=w),P},window.hotkeys=P}var E=P,k=n(0);function C(){return E.isPressed}E.filter=function(){return!0};var x=function(e,t){var n=e.target,r=n&&n.tagName;return Boolean(r&&t&&t.includes(r))};function S(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,i=a.filter,u=a.keyup,l=a.keydown,d=a.filterPreventDefault,f=void 0===d||d,c=a.enabled,s=void 0===c||c,v=a.enableOnContentEditable,_=void 0!==v&&v,p=Object(k.useRef)(null),m=Object(k.useCallback)((function(e,n){var r;return i&&!i(e)?!f:!!(x(e,["INPUT","TEXTAREA","SELECT"])&&!x(e,o)||null!=(r=e.target)&&r.isContentEditable&&!_)||(null===p.current||document.activeElement===p.current)&&(t(e,n),!0)}),r?[p,o,i].concat(r):[p,o,i]);return Object(k.useEffect)((function(){if(s)return u&&!0!==l&&(n.keydown=!1),E(e,n||{},m),function(){return E.unbind(e,m)}}),[m,e,s]),p}var N=E.isPressed}]));
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmlsZUlucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQubW9kdWxlLmNzcz8xMjk5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcz83YWJmIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3M/OWI5MyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vSWNvbkJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3M/ZDI4ZCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcz9jYzM3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzPzk1YTciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3M/NDY0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcz8zNzA5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3M/OTZkMiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3M/NTA0OSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcz8wNDI3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcz8yMWM1Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3M/Y2QzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcz9jZjYxIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzPzlhMzYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3M/ZTIyMyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnV0dG9uQmFkZ2UiLCJvbkNsaWNrIiwiY29udGFpbmVyUmVmIiwiZGlzYWJsZWQiLCJpbnZlcnRlZCIsInJvdW5kZWQiLCJub1NoYWRvdyIsIm5vUGFkZGluZyIsIm5vQm9yZGVyIiwidHJhbnNwYXJlbnQiLCJzdHJldGNoSG9yaXpvbnRhbGx5Iiwic3RyZXRjaFZlcnRpY2FsbHkiLCJhdXRvRm9jdXMiLCJvZmZzZXRTaWRlcyIsImFsaWduIiwic2l6ZSIsInR5cGUiLCJyZWYiLCJjb250YWluZXIiLCJsZWZ0T2Zmc2V0IiwiaW5jbHVkZXMiLCJyaWdodE9mZnNldCIsInJvbGUiLCJjb250ZW50IiwiQ29tcG9uZW50IiwicHJvcHMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZSIsInRhcmdldCIsIkxhYmVsIiwiaW5wdXRSZWYiLCJjaGVja2JveCIsImNvbG9ycyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xvciIsImRpcmVjdGlvbiIsImNvbG9yUGlja2VyIiwibWFwIiwiY29sb3IiLCJDb2xvclN3YXRjaCIsImlzU2VsZWN0ZWQiLCJjb2xvclN3YXRjaCIsInNlbGVjdGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZXhDb2RlIiwic3JPbmx5IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJoZWFkZXIiLCJpc09wZW4iLCJidXR0b25zTGVmdCIsImJ1dHRvbnNSaWdodCIsIm9uQ2xvc2UiLCJub092ZXJsYXkiLCJiYXNlWkluZGV4IiwiTW9kYWwiLCJtb2RhbEhlYWRlciIsIm1vZGFsQ29udGVudCIsIm1vZGFsQnV0dG9uc0NvbnRhaW5lciIsIm1vZGFsQnV0dG9ucyIsImRpc3BsYXlOYW1lIiwiYnV0dG9uIiwidXNlSG90a2V5cyIsImhhbmRsZU92ZXJsYXlDbGljayIsInpJbmRleCIsIm92ZXJsYXkiLCJtb2RhbCIsIm1vZGFsQnV0dG9uIiwiYWNjZXB0IiwibXVsdGlwbGUiLCJpbnB1dCIsImlkIiwibGF5b3V0IiwicGxhY2VtZW50IiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwicGFyZW50IiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInZlcnRpY2FsUGxhY2VtZW50IiwiZml4ZWQiLCJzcmMiLCJhbHQiLCJpY29uIiwiY3Jvc3NPcmlnaW4iLCJiYWRnZUNvbnRlbnQiLCJ0b3BPZmZzZXQiLCJib3R0b21PZmZzZXQiLCJJY29uIiwiQnV0dG9uQmFkZ2UiLCJzcmNXaWR0aCIsInNyY0hlaWdodCIsImRlY29kaW5nIiwibG9hZGluZyIsImltYWdlRWxlbWVudCIsImltYWdlIiwid2lkdGgiLCJoZWlnaHQiLCJoYXNPdmVybGF5IiwiaGVhZGVyQWN0aW9ucyIsImhlYWRlckxhYmVsIiwibGlzdCIsImFjdGl2ZSIsImxpc3RWaWV3SXRlbSIsIkJ1dHRvbiIsIkJ1dHRvbkxpbmsiLCJhcyIsImZvb3RlciIsIm1lbnUiLCJvcGVuIiwic2Nyb2xsQ29udGFpbmVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsIm9uQmx1ciIsIm9uS2V5RG93biIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInRvYXN0IiwidG9hc3RDb250YWluZXIiLCJwb3N0ZXIiLCJtdXRlZCIsImxvb3AiLCJhdXRvUGxheSIsInZpZGVvIiwicGxheXNJbmxpbmUiLCJpbml0aWFsVmFsdWUiLCJ1c2VTdGF0ZSIsInNldFZhbHVlIiwibmV3VmFsdWUiLCJwcmV2VmFsdWUiLCJjYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsImhhbmRsZUNsaWNrIiwiZXZlbnQiLCJjdXJyZW50IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNmZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImFkZEV2ZW50IiwibWV0aG9kIiwiYXR0YWNoRXZlbnQiLCJjb25jYXQiLCJ3aW5kb3ciLCJnZXRNb2RzIiwibW9kaWZpZXIiLCJtb2RzIiwic2xpY2UiLCJnZXRLZXlzIiwia2V5cyIsInJlcGxhY2UiLCJzcGxpdCIsImluZGV4IiwibGFzdEluZGV4T2YiLCJzcGxpY2UiLCJfa2V5TWFwIiwiYmFja3NwYWNlIiwidGFiIiwiY2xlYXIiLCJlbnRlciIsInJldHVybiIsImVzYyIsImVzY2FwZSIsInNwYWNlIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwiZGVsIiwiZGVsZXRlIiwiaW5zIiwiaW5zZXJ0IiwiaG9tZSIsImVuZCIsInBhZ2V1cCIsInBhZ2Vkb3duIiwiY2Fwc2xvY2siLCJudW1fMCIsIm51bV8xIiwibnVtXzIiLCJudW1fMyIsIm51bV80IiwibnVtXzUiLCJudW1fNiIsIm51bV83IiwibnVtXzgiLCJudW1fOSIsIm51bV9tdWx0aXBseSIsIm51bV9hZGQiLCJudW1fZW50ZXIiLCJudW1fc3VidHJhY3QiLCJudW1fZGVjaW1hbCIsIm51bV9kaXZpZGUiLCInIiwiX21vZGlmaWVyIiwic2hpZnQiLCJvcHRpb24iLCJjdHJsIiwiY29udHJvbCIsImNtZCIsImNvbW1hbmQiLCJtb2RpZmllck1hcCIsIjE2IiwiMTgiLCIxNyIsIjkxIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsIl9tb2RzIiwiX2hhbmRsZXJzIiwiX2Rvd25LZXlzIiwiX3Njb3BlIiwiZWxlbWVudEhhc0JpbmRFdmVudCIsImNvZGUiLCJ4IiwidG9VcHBlckNhc2UiLCJjaGFyQ29kZUF0Iiwic2V0U2NvcGUiLCJzY29wZSIsImdldFNjb3BlIiwiZWFjaFVuYmluZCIsIl9yZWYiLCJfcmVmJHNwbGl0S2V5Iiwic3BsaXRLZXkiLCJmb3JFYWNoIiwib3JpZ2luS2V5IiwidW5iaW5kS2V5cyIsImxlbiIsImxhc3RLZXkiLCJrZXlDb2RlIiwicmVjb3JkIiwiYTEiLCJhMiIsImFycjEiLCJhcnIyIiwiaXNJbmRleCIsImNvbXBhcmVBcnJheSIsImV2ZW50SGFuZGxlciIsImhhbmRsZXIiLCJtb2RpZmllcnNNYXRjaCIsInkiLCJzaG9ydGN1dCIsInByZXZlbnREZWZhdWx0IiwicmV0dXJuVmFsdWUiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJkaXNwYXRjaCIsImFzdGVyaXNrIiwid2hpY2giLCJjaGFyQ29kZSIsImhvdGtleXMiLCJmaWx0ZXIiLCJ0aGlzIiwicHVzaCIsImtleU5hbWUiLCJrZXlOdW0iLCJnZXRNb2RpZmllclN0YXRlIiwia2V5ZG93biIsImtleXVwIiwiX2kiLCJrZXlTaG9ydGN1dCIsIl9kb3duS2V5c0N1cnJlbnQiLCJhIiwic29ydCIsImpvaW4iLCJlbGVtZW50IiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsInRhZ0ZpbHRlciIsImVuYWJsZU9uVGFncyIsInRhcmdldFRhZ05hbWUiLCJCb29sZWFuIiwib3B0aW9ucyIsImRlcHMiLCJfcmVmMiIsIl9yZWYyJGZpbHRlclByZXZlbnREZSIsImZpbHRlclByZXZlbnREZWZhdWx0IiwiX3JlZjIkZW5hYmxlZCIsImVuYWJsZWQiLCJfcmVmMiRlbmFibGVPbkNvbnRlbnQiLCJlbmFibGVPbkNvbnRlbnRFZGl0YWJsZSIsIm1lbW9pc2VkQ2FsbGJhY2siLCJrZXlib2FyZEV2ZW50IiwiaG90a2V5c0V2ZW50IiwiX2tleWJvYXJkRXZlbnQkdGFyZ2V0IiwiYWN0aXZlRWxlbWVudCIsImlzSG90a2V5UHJlc3NlZCJdLCJtYXBwaW5ncyI6IjZEQUNFLElBQUlBLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVDLFFBR25DLElBQUlDLEVBQVNKLEVBQWlCRSxHQUFZLENBQ3pDRyxFQUFHSCxFQUNISSxHQUFHLEVBQ0hILFFBQVMsSUFVVixPQU5BSSxFQUFRTCxHQUFVTSxLQUFLSixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTRixHQUcvREcsRUFBT0UsR0FBSSxFQUdKRixFQUFPRCxRQTBEZixPQXJEQUYsRUFBb0JRLEVBQUlGLEVBR3hCTixFQUFvQlMsRUFBSVYsRUFHeEJDLEVBQW9CVSxFQUFJLFNBQVNSLEVBQVNTLEVBQU1DLEdBQzNDWixFQUFvQmEsRUFBRVgsRUFBU1MsSUFDbENHLE9BQU9DLGVB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SWdDLEVBQVFGLEdBQVcsR0FDbkJILEVBQWVLLEVBQU1MLGFBQ3JCMUMsRUFBUytDLEVBQU0vQyxPQUNmTyxFQUFRd0MsRUFBTXhDLE1BQ2RELEVBQVV5QyxFQUFNekMsUUFDaEIwQyxFQUF3QkQsRUFBTUUscUJBQzlCQSxPQUFpRCxJQUExQkQsR0FBMENBLEVBQ2pFRSxFQUFnQkgsRUFBTUksUUFDdEJBLE9BQTRCLElBQWxCRCxHQUFrQ0EsRUFDNUNFLEVBQXdCTCxFQUFNTSx3QkFDOUJBLE9BQW9ELElBQTFCRCxHQUEyQ0EsRUFFckUvUyxFQUFNLGlCQUFPLE1BRWJpVCxFQUFtQix1QkFBWSxTQUFVQyxFQUFlQyxHQUMxRCxJQUFJQyxFQUVKLE9BQUl6RCxJQUFXQSxFQUFPdUQsSUFDWk4sS0EzQkxSLEVBK0IrQmMsRUEvQmpCLENBQUMsUUFBUyxXQUFZLGFBK0JjZCxFQUFVYyxFQUFlYixJQUFtRSxPQUFqRGUsRUFBd0JGLEVBQWNqUyxTQUFtQm1TLEVBQXNCN0Isb0JBQXNCeUIsS0FJbkwsT0FBaEJoVCxFQUFJK0gsU0FBb0JFLFNBQVNvTCxnQkFBa0JyVCxFQUFJK0gsV0FDekRMLEVBQVN3TCxFQUFlQyxJQUNqQixLQUlSVixFQUFPLENBQUN6UyxFQUFLcVMsRUFBYzFDLEdBQVEvRyxPQUFPNkosR0FBUSxDQUFDelMsRUFBS3FTLEVBQWMxQyxJQWdCekUsT0FmQSxxQkFBVSxXQUNSLEdBQUttRCxFQVVMLE9BTEk1QyxJQUFxQixJQUFaRCxJQUNYdUMsRUFBUXZDLFNBQVUsR0FHcEIsRUFBUTlHLEVBQU1xSixHQUFXLEdBQUlTLEdBQ3RCLFdBQ0wsT0FBTyxFQUFReEIsT0FBT3RJLEVBQU04SixNQUU3QixDQUFDQSxFQUFrQjlKLEVBQU0ySixJQUNyQjlTLEVBR1QsSUFBSXNULEVBQWtCLEVBQVFuQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMYWJlbCB9IGZyb20gXCIuL0xhYmVsXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL0ljb25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25MaW5rIH0gZnJvbSBcIi4vQnV0dG9uTGlua1wiO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vQ29sb3JTd2F0Y2hcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibGlzdFZpZXdJdGVtXCI6XCJfMWZqMmFuaWVRMEpLeENBWmtTYWFwa1wifTsiLCJleHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvbkJhZGdlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NoZWNrYm94XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JQaWNrZXJcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmlsZUlucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmtcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xpc3RWaWV3XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTWVudVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xhYmVsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVG9hc3RcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9WaWRlb1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uQmFkZ2UubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uQmFkZ2UoeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH06IEJ1dHRvbkJhZGdlUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuYnV0dG9uQmFkZ2UsIGNsYXNzTmFtZV0pfT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uQmFkZ2U7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIEJ1dHRvblByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICByb3VuZGVkPzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xyXG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uKHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgb25DbGljayxcclxuICBjb250YWluZXJSZWYsXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXHJcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICB0eXBlLFxyXG59OiBCdXR0b25Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgID5cclxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxyXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICAgICkgOiAoXHJcbiAgICAgICAgY2hpbGRyZW5cclxuICAgICAgKX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xMnc1V09GM0tzYTJKQjUtWU9YeUQ3XCIsXCJsZWZ0XCI6XCJfMlRGVjcyRHJReDVKR1NoTmN1dDRFLVwiLFwic21hbGxcIjpcInVUQnJjanBIcDk2UkN3RjVVRHpmMFwiLFwibGFyZ2VcIjpcIl8xNFNTZnM1U1ZXSzdOeHVaQnFNZ3pCXCIsXCJ4bGFyZ2VcIjpcIl8xU1F1MlFXdzJhN2V3NDdXVzEyWlNnXCIsXCJpbnZlcnRlZFwiOlwiXzJoWmhoaThCZ0VfZWtRVm45ZVg5RFhcIixcInJvdW5kZWRcIjpcIlZCRE9TY1ljUW5VMmV5dGtBX1BjNlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yR1RZM1htYU91OTIzTTlzRVJzNmFrXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMTVRMEdHa2dZSl9hTG0wMW5HRTVZaFwiLFwibm9TaGFkb3dcIjpcIlJld21EcWpwNm5VZUVZSEVLelRKRFwiLFwibm9Cb3JkZXJcIjpcIm5acUlVUFQ4Y1o4N0JXNHI4a3hVXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzY2OWxSNHkyQUg5N0ExbHk1TVlXT1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNpY3V0WEh3eklpb3d0N2JWYTNZaWJcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMmtDa3hQa3BsUDF4cWpma2Vwb3lOcFwiLFwibm9QYWRkaW5nXCI6XCJfM2tOYkNnY0ktUl9GRlEtM082VDBsYVwiLFwiY29udGVudFwiOlwiXzJiRjFBU2NFeHNrdU9wdXpkLWNEXzZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIE9mZnNldFNpZGUgPSBcImxlZnRcIiB8IFwicmlnaHRcIjtcclxuXHJcbnR5cGUgQnV0dG9uTGlua1Byb3BzID1cclxuICB8IHtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gICAgICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcclxuICAgICAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xyXG4gICAgICBzaXplPzogU2l6ZTtcclxuICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xyXG4gICAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIEJ1dHRvbkxpbmsoe1xyXG4gIGFzOiBDb21wb25lbnQsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIHNpemUsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcclxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgLi4ucHJvcHNcclxufTogQnV0dG9uTGlua1Byb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxDb21wb25lbnRcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMuZGlzYWJsZWRdOiBkaXNhYmxlZCxcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcclxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIGNoaWxkcmVuXHJcbiAgICAgICl9XHJcbiAgICA8L0NvbXBvbmVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCdXR0b25MaW5rO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJkaXNhYmxlZFwiOlwiXzJMYW1jZzBpVUlPajFxalVHaG9UQkJcIixcImNvbnRlbnRcIjpcInNORHJxM2NYNkk2US1PdXVzejdUaVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vQ2hlY2tib3hcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ2hlY2tib3gubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIENoZWNrYm94UHJvcHMgPSB7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBjaGVja2VkPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBzaXplPzogU2l6ZTtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuXHJcbn07XHJcblxyXG5mdW5jdGlvbiBDaGVja2JveCh7XHJcbiAgbGFiZWwsXHJcbiAgb25DaGFuZ2UsXHJcbiAgcGxhY2Vob2xkZXIsXHJcbiAgY2hlY2tlZCxcclxuICBkaXNhYmxlZCxcclxuICBuYW1lLFxyXG4gIGNsYXNzTmFtZSxcclxuICBpbmRldGVybWluYXRlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxyXG59OiBDaGVja2JveFByb3BzKSB7XHJcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXHJcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxyXG4gICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZCksXHJcbiAgICBbb25DaGFuZ2VdXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxMYWJlbCB2YWx1ZT17bGFiZWx9PlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94XCJcclxuICAgICAgICByZWY9eyhpbnB1dFJlZikgPT4ge1xyXG4gICAgICAgICAgaWYgKGlucHV0UmVmKSB7XHJcbiAgICAgICAgICAgIGlucHV0UmVmLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH19XHJcbiAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cclxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNoZWNrYm94LCBjbGFzc05hbWUsIHN0eWxlc1tzaXplXV0pfVxyXG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XHJcbiAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxyXG4gICAgICAgIG5hbWU9e25hbWV9XHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBhdXRvRm9jdXM9e2F1dG9Gb2N1c31cclxuICAgICAgLz5cclxuICAgIDwvTGFiZWw+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQ2hlY2tib3g7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xhYmVsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTGFiZWxJbnB1dFByb3BzID0ge1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTExhYmVsRWxlbWVudD47XHJcbiAgdmFsdWU6IFJlYWN0Tm9kZTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIExhYmVsKHsgY2xhc3NOYW1lLCBjaGlsZHJlbiwgdmFsdWUsIGNvbnRhaW5lclJlZiB9OiBMYWJlbElucHV0UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGxhYmVsXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBjbGFzc05hbWVdKX1cclxuICAgID5cclxuICAgICAge3ZhbHVlfVxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2xhYmVsPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IExhYmVsO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzE1RGJzX1g1SVQ5dGttQXNNWFBOVkpcIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjaGVja2JveFwiOlwiXzIxSzJlazIxX0JfQnBPdHZIdzZoZzhcIixcInNtYWxsXCI6XCJfMUppX185VS1ENVVkVzJOSldXVVByQ1wiLFwibWVkaXVtXCI6XCJfM0tKUzJGUlMydGQ5MFFyNnIzM0wyOFwiLFwibGFyZ2VcIjpcIl8xajdvZENFRVgyRGtnZ3BJWnVGNE1JXCIsXCJ4bGFyZ2VcIjpcIl8zS1p3aFVteEJKZWIyeHRrODhnYUdXXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9Db2xvclBpY2tlclwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IENvbG9yU3dhdGNoIH0gZnJvbSBcIi4uL0NvbG9yU3dhdGNoXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JQaWNrZXIubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBDb2xvclBpY2tlclByb3BzID0ge1xyXG4gIGNvbG9yczogQ29sb3JbXTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xyXG4gIG9uU2VsZWN0OiAoY29sb3I6IENvbG9yKSA9PiB2b2lkO1xyXG4gIHNlbGVjdGVkQ29sb3I/OiBDb2xvcjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIENvbG9yUGlja2VyKHtcclxuICBjb2xvcnMsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIG9uU2VsZWN0LFxyXG4gIHNlbGVjdGVkQ29sb3IsXHJcbiAgZGlyZWN0aW9uID0gXCJ2ZXJ0aWNhbFwiLFxyXG59OiBDb2xvclBpY2tlclByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb2xvclBpY2tlciwgc3R5bGVzW2RpcmVjdGlvbl1dKX1cclxuICAgID5cclxuICAgICAge2NvbG9ycy5tYXAoKGNvbG9yOiBDb2xvcikgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8Q29sb3JTd2F0Y2hcclxuICAgICAgICAgICAga2V5PXtjb2xvci5rZXl9XHJcbiAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cclxuICAgICAgICAgICAgaXNTZWxlY3RlZD17Y29sb3IgPT09IHNlbGVjdGVkQ29sb3J9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0KGNvbG9yKX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSl9XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb2xvclBpY2tlcjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yU3dhdGNoLm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgQ29sb3JTd2F0Y2hQcm9wcyA9IHtcclxuICBjb2xvcjogQ29sb3I7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcclxuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIENvbG9yU3dhdGNoKHtcclxuICBjb2xvcixcclxuICBjb250YWluZXJSZWYsXHJcbiAgb25DbGljayxcclxuICBpc1NlbGVjdGVkID0gZmFsc2UsXHJcbn06IENvbG9yU3dhdGNoUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmNvbG9yU3dhdGNoLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuc2VsZWN0ZWRdOiBpc1NlbGVjdGVkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cImNvbG9yLXN3YXRjaFwiXHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3IuaGV4Q29kZSB9fVxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5zck9ubHl9PntgU2VsZWN0ICR7Y29sb3IubGFiZWx9IGNvbG9yYH08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb2xvclN3YXRjaDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb2xvclN3YXRjaFwiOlwiZHY3aXVjVFFxLVpoVVJVdXAtUHVWXCIsXCJzZWxlY3RlZFwiOlwiXzFMYkFneWlpRV8xdWpXOTBkLTZpdXVcIixcInNyT25seVwiOlwiXzFldGt1c2xoWlZFUE5zazFRZ2hURW9cIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb2xvclBpY2tlclwiOlwiXzJGMU9uLVNBM21Na2haUEZyRGpXSWNcIixcImhvcml6b250YWxcIjpcIl8xV0ZZeU1ra1lMTDczbl9fclBVVWJ2XCIsXCJ2ZXJ0aWNhbFwiOlwiXzFsSW9hMmJqX3Ria1FpZTBJcEUyTG5cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25maXJtYXRpb25Nb2RhbCB9IGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSBcIi4uL01vZGFsXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBDb25maXJtYXRpb25Nb2RhbFByb3BzID0ge1xyXG4gIGJ1dHRvbnNMZWZ0PzogUmVhY3RFbGVtZW50W107XHJcbiAgYnV0dG9uc1JpZ2h0PzogUmVhY3RFbGVtZW50W107XHJcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBoZWFkZXI6IHN0cmluZztcclxuICBpc09wZW46IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBub092ZXJsYXk/OiBib29sZWFuO1xyXG4gIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcclxuICBiYXNlWkluZGV4PzogbnVtYmVyO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29uZmlybWF0aW9uTW9kYWwoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBoZWFkZXIsXHJcbiAgaXNPcGVuLFxyXG4gIGJ1dHRvbnNMZWZ0ID0gW10sXHJcbiAgYnV0dG9uc1JpZ2h0ID0gW10sXHJcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIG5vT3ZlcmxheSA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgYmFzZVpJbmRleCA9IDEwMTksXHJcbn06IENvbmZpcm1hdGlvbk1vZGFsUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPE1vZGFsXHJcbiAgICAgIGNvbnRhaW5lclJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBpc09wZW49e2lzT3Blbn1cclxuICAgICAgb25DbG9zZT17b25DbG9zZX1cclxuICAgICAgbm9PdmVybGF5PXtub092ZXJsYXl9XHJcbiAgICAgIG5vU2hhZG93PXtub1NoYWRvd31cclxuICAgICAgYmFzZVpJbmRleD17YmFzZVpJbmRleH1cclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxyXG4gICAgICAgIDxoMSBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEhlYWRlcn0+e2hlYWRlcn08L2gxPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgICBzdHlsZXMubW9kYWxDb250ZW50LFxyXG4gICAgICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXHJcbiAgICAgICAgICBdKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnNDb250YWluZXJ9PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zTGVmdH08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc1JpZ2h0fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvTW9kYWw+XHJcbiAgKTtcclxufVxyXG5cclxuQ29uZmlybWF0aW9uTW9kYWwuZGlzcGxheU5hbWUgPSBcIkNvbmZpcm1hdGlvbk1vZGFsXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb25maXJtYXRpb25Nb2RhbDtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyB1c2VIb3RrZXlzIH0gZnJvbSBcInJlYWN0LWhvdGtleXMtaG9va1wiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01vZGFsLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTW9kYWxQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgaXNPcGVuOiBib29sZWFuO1xyXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xyXG4gIGJ1dHRvbj86IFJlYWN0Tm9kZTtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gIG5vT3ZlcmxheT86IGJvb2xlYW47XHJcbiAgYmFzZVpJbmRleD86IG51bWJlcjtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1vZGFsKHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgaXNPcGVuLFxyXG4gIGJ1dHRvbixcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9PdmVybGF5ID0gZmFsc2UsXHJcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxyXG4gIGJhc2VaSW5kZXggPSAxMDA5LFxyXG59OiBNb2RhbFByb3BzKSB7XHJcbiAgdXNlSG90a2V5cyhcIkVzY2FwZVwiLCBvbkNsb3NlKTtcclxuXHJcbiAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xyXG4gICAgb25DbG9zZSgpO1xyXG4gIH0sIFtvbkNsb3NlXSk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICBpc09wZW4gJiYgKFxyXG4gICAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBzdHlsZT17eyB6SW5kZXg6IGJhc2VaSW5kZXggfX1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgICBzdHlsZXMub3ZlcmxheSxcclxuICAgICAgICAgICAgeyBbc3R5bGVzLm5vT3ZlcmxheV06IG5vT3ZlcmxheSB9LFxyXG4gICAgICAgICAgXSl9XHJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLW92ZXJsYXlcIlxyXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlT3ZlcmxheUNsaWNrfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4ICsgMSB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbCxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdKX1cclxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWxcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7YnV0dG9uICYmIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgc3R5bGU9e3sgekluZGV4OiBiYXNlWkluZGV4ICsgMiB9fVxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge2J1dHRvbn1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1vZGFsO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIl8yMFpLR1k0VHdaeHAwS1o2RTd5NFdCXCIsXCJub092ZXJsYXlcIjpcIl8yQUx3MnAtREh4WURoWXZSelE0aW5CXCIsXCJtb2RhbFwiOlwiXzI1TEJOMzFfbUkxSTF1SEREUDRPMElcIixcInRyYW5zcGFyZW50XCI6XCJfM1oyS2wxckVIWlFNTFVzWEYxZjdsb1wiLFwibm9TaGFkb3dcIjpcIl8zQ2ZTVC10bi10c3Zjb2RTeGVsaVFxXCIsXCJtb2RhbEJ1dHRvblwiOlwiXzFlTzB4M00wcE44LTc5SXVZdVRfQ2xcIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIktnQzVwd3RzSGF2dVZPTHViQUxhZVwiLFwibW9kYWxIZWFkZXJcIjpcIl8xYlROWE1SNW1aRlhzMW8wdXhraFJQXCIsXCJtb2RhbENvbnRlbnRcIjpcInF1UDVvNFE5bmxVbzFmVDdzYlBWQVwiLFwibm9QYWRkaW5nXCI6XCJfMVVnb19ESFNUNFJiV3pJeEhQaGo3blwiLFwibW9kYWxCdXR0b25zQ29udGFpbmVyXCI6XCJfMmJHTDdYakR5NnNFM0psZVU5OGhqeVwiLFwibW9kYWxCdXR0b25zXCI6XCJfM1hmZkZlTjlWRUlweXRobVZKMlU4Q1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVJbnB1dCB9IGZyb20gXCIuL0ZpbGVJbnB1dFwiO1xyXG5leHBvcnQgeyBGaWxlSW5wdXRTaXplIH0gZnJvbSBcIi4vRmlsZUlucHV0XCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBDaGFuZ2VFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vRmlsZUlucHV0Lm1vZHVsZS5jc3NcIjtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbGVJbnB1dFNpemUgPSBTaXplO1xyXG5cclxudHlwZSBQcm9wcyA9IHtcclxuICBvbkNoYW5nZTogKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xyXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgYWNjZXB0Pzogc3RyaW5nO1xyXG4gIG11bHRpcGxlPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudD47XHJcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XHJcbiAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xyXG4gIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gIHNpemU/OiBGaWxlSW5wdXRTaXplO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gRmlsZUlucHV0KHtcclxuICBjaGlsZHJlbixcclxuICBhY2NlcHQsXHJcbiAgb25DaGFuZ2UsXHJcbiAgaW5wdXRSZWYsXHJcbiAgbXVsdGlwbGUgPSBmYWxzZSxcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgc3RyZXRjaEhvcml6b250YWxseSA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG59OiBQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bGFiZWxcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmxhYmVsLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxyXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxyXG4gICAgICAgICAgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcsXHJcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hIb3Jpem9udGFsbHldOiBzdHJldGNoSG9yaXpvbnRhbGx5LFxyXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5pbnB1dH1cclxuICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgaWQ9XCJmaWxlXCJcclxuICAgICAgICBhY2NlcHQ9e2FjY2VwdH1cclxuICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XHJcbiAgICAgICAgcmVmPXtpbnB1dFJlZn1cclxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxyXG4gICAgICAvPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2xhYmVsPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZpbGVJbnB1dDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpbnB1dFwiOlwiXzNWWHpyNnptVzdUNmFyeDlfdkNBRlZcIixcImxhYmVsXCI6XCJ6N3MyaGR3R1Qza2N6NTFfbUp4bXZcIixcInNtYWxsXCI6XCJfMnpyNThoS2tnY3dZTUIxd3VBSnRvUlwiLFwibGFyZ2VcIjpcIl8xQ05iTGVqSTQ2ajNDU1JVN3RRR2JlXCIsXCJ4bGFyZ2VcIjpcIl8ydGplWGR3eDMtZG5TXzkyMXJ1cEJsXCIsXCJpbnZlcnRlZFwiOlwiXzMybGRMTUVMa1N5ZFhlb2c4QkNCaS1cIixcInJvdW5kZWRcIjpcIlhuNERmN3JReG0wUUFITmV1dk5MXCIsXCJub1NoYWRvd1wiOlwiTmVBT29ZZ2IwaE9QblRWend0Z0REXCIsXCJub0JvcmRlclwiOlwiXzN3VnpiNFBScWh4dXBYanVCMFJCbFNcIixcIm5vUGFkZGluZ1wiOlwiXzF4UHRYZWpfbWhQRGJsenZjcmxmTzhcIixcInRyYW5zcGFyZW50XCI6XCJTMHpEZmdzVTFEZ08wVXVUU09mazRcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcImVtZWdMQ0gtV19uN0t1VEpsT3NRQVwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIlZIWlI2aFdLNmZTRGZSTHVoSDdvTlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZsb2F0aW5nUGFuZWwgfSBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBQbGFjZW1lbnQgPSB7XHJcbiAgaG9yaXpvbnRhbDpcclxuICAgIHwgXCJyaWdodFwiXHJcbiAgICB8IFwicmlnaHRFZGdlXCJcclxuICAgIHwgXCJyaWdodE9uRWRnZVwiXHJcbiAgICB8IFwibGVmdFwiXHJcbiAgICB8IFwibGVmdEVkZ2VcIlxyXG4gICAgfCBcImxlZnRPbkVkZ2VcIlxyXG4gICAgfCBcImxlZnRPbkVkZ2VcIlxyXG4gICAgfCBcImNlbnRlclwiO1xyXG4gIHZlcnRpY2FsOlxyXG4gICAgfCBcInRvcFwiXHJcbiAgICB8IFwidG9wRWRnZVwiXHJcbiAgICB8IFwidG9wT25FZGdlXCJcclxuICAgIHwgXCJib3R0b21cIlxyXG4gICAgfCBcImJvdHRvbUVkZ2VcIlxyXG4gICAgfCBcImJvdHRvbU9uRWRnZVwiXHJcbiAgICB8IFwiY2VudGVyXCI7XHJcbiAgcGFyZW50OiBcInZpZXdwb3J0XCIgfCBcImNvbnRhaW5lclwiO1xyXG59O1xyXG5cclxudHlwZSBGbG9hdGluZ1BhbmVsUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGxheW91dD86IFwiY29sdW1uXCIgfCBcInJvd1wiO1xyXG4gIHBsYWNlbWVudD86IFBsYWNlbWVudDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIEZsb2F0aW5nUGFuZWwoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBsYXlvdXQgPSBcImNvbHVtblwiLFxyXG4gIHBsYWNlbWVudCA9IHsgaG9yaXpvbnRhbDogXCJjZW50ZXJcIiwgdmVydGljYWw6IFwiYm90dG9tXCIsIHBhcmVudDogXCJ2aWV3cG9ydFwiIH0sXHJcbn06IEZsb2F0aW5nUGFuZWxQcm9wcykge1xyXG4gIGNvbnN0IGhvcml6b250YWxQbGFjZW1lbnQgPVxyXG4gICAgcGxhY2VtZW50Lmhvcml6b250YWwgPT09IFwiY2VudGVyXCJcclxuICAgICAgPyBcImhvcml6b250YWxDZW50ZXJcIlxyXG4gICAgICA6IHBsYWNlbWVudC5ob3Jpem9udGFsO1xyXG5cclxuICBjb25zdCB2ZXJ0aWNhbFBsYWNlbWVudCA9XHJcbiAgICBwbGFjZW1lbnQudmVydGljYWwgPT09IFwiY2VudGVyXCIgPyBcInZlcnRpY2FsQ2VudGVyXCIgOiBwbGFjZW1lbnQudmVydGljYWw7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cImZsb2F0aW5nLXBhbmVsXCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcclxuICAgICAgICBzdHlsZXNbaG9yaXpvbnRhbFBsYWNlbWVudF0sXHJcbiAgICAgICAgc3R5bGVzW3ZlcnRpY2FsUGxhY2VtZW50XSxcclxuICAgICAgICBzdHlsZXNbbGF5b3V0XSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLmZpeGVkXTogcGxhY2VtZW50LnBhcmVudCAhPT0gXCJjb250YWluZXJcIixcclxuICAgICAgICB9LFxyXG4gICAgICBdKX1cclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRmxvYXRpbmdQYW5lbDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8ycjBGa1lKN1NLMVlqQjNIS0hNQWloXCIsXCJyb3dcIjpcIl8zUi1GRjhlTXUwQ1M0ZU5YM2xUZENSXCIsXCJjb2x1bW5cIjpcIl8xb0tPZUFnWmp3eE5NM3VHZkx0NklPXCIsXCJmaXhlZFwiOlwiXzNvUUdXZ1NJTmJ5dGI0dXY5MkNTdlRcIixcInBsYWluXCI6XCJpTWY4b2QtYklxc0hBdnhvZkR1emJcIixcInRyYW5zcGFyZW50XCI6XCJkMm95eDVweXNxajg5OGFTOEczRThcIixcInRvcFwiOlwiXzExY1BZcTFkaFF5elZJTVplazFfSW9cIixcInRvcEVkZ2VcIjpcIl8yX2luZUN5MU1RbFlQNnFNZXdkMXo1XCIsXCJ0b3BPbkVkZ2VcIjpcIl8xcnZDc0RvZDVibFRPeUFsNGtEd04wXCIsXCJyaWdodFwiOlwiXzFTSVlCY1JncVM0VlBoVzlNODBZNHpcIixcInJpZ2h0RWRnZVwiOlwiUUE2OWYwRDhiVENKSHJET3I4bTFyXCIsXCJyaWdodE9uRWRnZVwiOlwiXzJQaVRVbDBKWXpFQ25PMDg1MWd6M2FcIixcImJvdHRvbVwiOlwiXzMwNWdCbVR3QWVYWmZBX005dHNWTm9cIixcImJvdHRvbUVkZ2VcIjpcIl8xUGNEWGJMWjJYSFBrZWlfSF9yNThwXCIsXCJib3R0b21PbkVkZ2VcIjpcIl8ydm90NHFwcjU4V25iNnB2SFluamtjXCIsXCJsZWZ0XCI6XCJzSXRnQlY0V3REeDR2WjNhLVA0aXhcIixcImxlZnRFZGdlXCI6XCJfMU5KMUZ6SV9hYktpLVc2a2MycjJjNlwiLFwibGVmdE9uRWRnZVwiOlwiXzEyRXZ3YmFWUU5XUFplMzdTbzhMX21cIixcImhvcml6b250YWxDZW50ZXJcIjpcIl8yamlTeEViQ1RLVnpEdGVHUTF1b0VmXCIsXCJ2ZXJ0aWNhbENlbnRlclwiOlwiXzJmOUQ0NkJCLWdlelB2dzhUWnhKdnBcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbi5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIEljb25Qcm9wcyA9IHtcclxuICBhbHQ/OiBzdHJpbmc7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxJbWFnZUVsZW1lbnQ+O1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICBzcmM6IHN0cmluZztcclxuICBzaXplPzogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIiB8IFwieGxhcmdlXCI7XHJcbn07XHJcbmZ1bmN0aW9uIEljb24oe1xyXG4gIHNyYyxcclxuICBhbHQsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbn06IEljb25Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8aW1nXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuaWNvbixcclxuICAgICAgICBzdHlsZXNbc2l6ZV0sXHJcbiAgICAgICAgeyBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcclxuICAgICAgZGF0YS10ZXN0aWQ9XCJpY29uXCJcclxuICAgICAgYWx0PXthbHR9XHJcbiAgICAgIHNyYz17c3JjfVxyXG4gICAgLz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJY29uO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImljb25cIjpcIl8zM2NUTThpOHFhakZHeS0wMHR5MFJ3XCIsXCJzbWFsbFwiOlwiTVVpM2lremNQWmRvNTlBZm9YZE9GXCIsXCJtZWRpdW1cIjpcIl8yVkNLcXk1OU5TRmRmRGlFMG94YXN6XCIsXCJsYXJnZVwiOlwiXzJVVVVmMm5fYTBQWXBROGtvd0tIenBcIixcInhsYXJnZVwiOlwib0RJRVk4VTRUd0NKa2pGN3hhUUJPXCIsXCJpbnZlcnRlZFwiOlwiXzJxelV0VTFUZF9jNTh2TThBTHFTVldcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QsIFN5bnRoZXRpY0V2ZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvblwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b24ubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIEljb25CdXR0b25Qcm9wcyA9IHtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcclxuICBzcmM6IHN0cmluZztcclxuICBhbHQ6IHN0cmluZztcclxuICBiYWRnZUNvbnRlbnQ/OiBSZWFjdE5vZGU7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICByb3VuZGVkPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xyXG4gIHNpemU/OiBTaXplO1xyXG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcclxuICBvZmZzZXRTaWRlcz86IEFycmF5PFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gSWNvbkJ1dHRvbih7XHJcbiAgY2xhc3NOYW1lLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBzcmMsXHJcbiAgYWx0LFxyXG4gIGJhZGdlQ29udGVudCA9IG51bGwsXHJcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcclxuICBvbkNsaWNrID0gKCkgPT4ge30sXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIG5vU2hhZG93ID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICB0eXBlID0gXCJidXR0b25cIixcclxufTogSWNvbkJ1dHRvblByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxidXR0b25cclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXHJcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXHJcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXHJcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5ib3R0b21PZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwiYm90dG9tXCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgIHR5cGU9e3R5cGV9XHJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgPlxyXG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cclxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b247XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJSZ3lsbFhUcXAzX2paNkEyTmJ2ZzZcIixcInNtYWxsXCI6XCJfMXcwaFpsT2JlTDdFRzg3enNMLTl2TlwiLFwibWVkaXVtXCI6XCJFSzFidkpaalcxMTlEbzc5U3RMN0lcIixcImxhcmdlXCI6XCJQZ3lRWEsxeXlDTXE4QlNhWUNiY2hcIixcInhsYXJnZVwiOlwicWhrSHpJb0lvd25yZXhIelFTdXVVXCIsXCJyb3VuZGVkXCI6XCJfM3FxYTFrMEM5Sk1Qc0JSU3o2WjB5WVwiLFwidG9wT2Zmc2V0XCI6XCJfM1ZaUDdEb2hoWjd6OGZpNHotSDhqTlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yWFhoSjMtY1ljWGJJVk5tbW5POHlIXCIsXCJib3R0b21PZmZzZXRcIjpcIlpKSVg3VnE1bXVzamQ2czRoQ1NiUFwiLFwibGVmdE9mZnNldFwiOlwiXzFRVldpeWl2VzlVeGVvTnUzVWRudjZcIixcImludmVydGVkXCI6XCJfMmpaelhobkhxcWJ0dW00ZEJkbDFsS1wiLFwibm9TaGFkb3dcIjpcIl8zZnh2V2lPTkZGWXRNdURjWHA4c3l1XCIsXCJub0JvcmRlclwiOlwiXzNFdXh1cG5xT1Z1U29Vc2JLek5uXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzM1YlJJaThCdEQ0UktTSnZaYmpfc21cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uTGluayB9IGZyb20gXCIuL0ljb25CdXR0b25MaW5rXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4uL0J1dHRvbkJhZGdlXCI7XHJcblxyXG50eXBlIE9mZnNldFNpZGUgPSBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiO1xyXG5cclxudHlwZSBJY29uQnV0dG9uTGlua1Byb3BzID1cclxuICB8IHtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50PjtcclxuICAgICAgc3JjOiBzdHJpbmc7XHJcbiAgICAgIGFsdDogc3RyaW5nO1xyXG4gICAgICBiYWRnZUNvbnRlbnQ/OiBSZWFjdE5vZGU7XHJcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcclxuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcclxuICAgICAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgICAgIG5vQm9yZGVyPzogYm9vbGVhbjtcclxuICAgICAgc2l6ZT86IFNpemU7XHJcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XHJcbiAgICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIEljb25CdXR0b25MaW5rKHtcclxuICBhczogQ29tcG9uZW50LFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBjbGFzc05hbWUsXHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIG9mZnNldFNpZGVzID0gW10sXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICAuLi5wcm9wc1xyXG59OiBJY29uQnV0dG9uTGlua1Byb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxDb21wb25lbnRcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvbi1idXR0b24tbGlua1wiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXHJcbiAgICAgICAgICBbc3R5bGVzLmRpc2FibGVkXTogZGlzYWJsZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXHJcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXHJcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5ib3R0b21PZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwiYm90dG9tXCIpLFxyXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxyXG4gICAgICB7YmFkZ2VDb250ZW50ICYmIDxCdXR0b25CYWRnZT57YmFkZ2VDb250ZW50fTwvQnV0dG9uQmFkZ2U+fVxyXG4gICAgPC9Db21wb25lbnQ+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbkxpbms7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfM3dqeGpDenZfbHBoZFdtNzNKZ0F5cFwiLFwic21hbGxcIjpcIl8zMk1ZbVpiSHpVVTBiM2RNY21Kc2lNXCIsXCJtZWRpdW1cIjpcIl8xODlyWUoyVHZhQnlyQzNTN0NmM25tXCIsXCJsYXJnZVwiOlwiXzJhWVNTVFVnOHd2ckFET1MxODh4TVwiLFwieGxhcmdlXCI6XCJ2czNLWXZVN1pjbmh3MlNPeVNDTmZcIixcInJvdW5kZWRcIjpcIl8xOGloNjdMTDBuN1hsNjFnTEc4czBrXCIsXCJ0b3BPZmZzZXRcIjpcIl8xcDdoN1c2UXNESHBiYTZtZ3lXVUw5XCIsXCJyaWdodE9mZnNldFwiOlwiXzNmeE1JQl9KejVDWUlmd3VaaFEyOGlcIixcImJvdHRvbU9mZnNldFwiOlwiXzExM200Q1dpbUx2c2pVOXhJeFBxN2lcIixcImxlZnRPZmZzZXRcIjpcIl82Q2hvdjJNb3lVeHloV3hLbjM2OEtcIixcImludmVydGVkXCI6XCJfM2VxT0pRejR1ZS1lWEx2cTI3QXNZNVwiLFwibm9TaGFkb3dcIjpcImxGNkRfVjIweDMydjlaeXNxd0M2OFwiLFwibm9Cb3JkZXJcIjpcIl8zczZxQ29sTGpwamw0UnJvN21WVHhTXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzJJWk85cEsxMzFVOTFjeUtYaXhneERcIixcImRpc2FibGVkXCI6XCJfMWpRZ1g3a2ctbFNZVm0tUGdEaVlxcFwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlLCBJbWFnZVByb3BzIH0gZnJvbSBcIi4vSW1hZ2VcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ltYWdlLm1vZHVsZS5jc3NcIjtcclxuXHJcbmV4cG9ydCB0eXBlIEltYWdlUHJvcHMgPSB7XHJcbiAgYWx0Pzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgbGF5b3V0PzogXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcclxuICBzcmM6IHN0cmluZztcclxuICBzcmNXaWR0aD86IG51bWJlcjtcclxuICBzcmNIZWlnaHQ/OiBudW1iZXI7XHJcbiAgZGVjb2Rpbmc/OiBcImFzeW5jXCIgfCBcInN5bmNcIiB8IFwiYXV0b1wiLFxyXG4gIGxvYWRpbmc/OiBcImVhZ2VyXCIgfCBcImxhenlcIlxyXG59O1xyXG5cclxuZnVuY3Rpb24gSW1hZ2VDb21wb25lbnQoe1xyXG4gIHNyYyxcclxuICBhbHQsXHJcbiAgc3JjV2lkdGgsXHJcbiAgc3JjSGVpZ2h0LFxyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcclxuICBkZWNvZGluZz0gXCJhdXRvXCIsXHJcbiAgbG9hZGluZz0gXCJlYWdlclwiXHJcbn06IEltYWdlUHJvcHMpIHtcclxuICBjb25zdCBpbWFnZUVsZW1lbnQgPSAoXHJcbiAgICA8aW1nXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5pbWFnZSwgc3R5bGVzW2xheW91dF1dKX1cclxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICBkYXRhLXRlc3RpZD1cImltYWdlXCJcclxuICAgICAgYWx0PXthbHR9XHJcbiAgICAgIHNyYz17c3JjfVxyXG4gICAgICB3aWR0aD17c3JjV2lkdGh9XHJcbiAgICAgIGhlaWdodD17c3JjSGVpZ2h0fVxyXG4gICAgICBkZWNvZGluZz17ZGVjb2Rpbmd9XHJcbiAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XHJcbiAgICAvPlxyXG4gICk7XHJcblxyXG4gIHJldHVybiBjaGlsZHJlbiA/IChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XHJcbiAgICA+XHJcbiAgICAgIHtpbWFnZUVsZW1lbnR9XHJcbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XHJcbiAgICA8L2Rpdj5cclxuICApIDogKFxyXG4gICAgaW1hZ2VFbGVtZW50XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VDb21wb25lbnQ7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMVYwMEdwel9rZXFVV0dFZlo3NHdqU1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJNdFVmWXB3NVY4VXByeHFfRV95U2FcIixcIm92ZXJsYXlcIjpcInoxRFZIeGoxWlBLNzNPSVFSY2s3alwiLFwiaW1hZ2VcIjpcIl8zOU9qVEdXZDd4bXhjbDZudUktZzJMXCIsXCJjb3ZlclwiOlwiXzNxS2RwMm1LNmY3RzV6QXpYbHpnckVcIixcImNvbnRhaW5cIjpcIl8yb19HNFhiQi1Rb3piZnVrNF9WMDBoXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfMnhndURrR3UxbVIyeVBhWS1oek44b1wiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xOVdNYTN0cVJ4dlVoREtGWjhZMlBCXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXcgfSBmcm9tIFwiLi9MaXN0Vmlld1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3SXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3SXRlbVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3TGlua0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0xpbmtJdGVtXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3Lm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTGlzdFZpZXdQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGhlYWRlcj86IHN0cmluZztcclxuICBoZWFkZXJBY3Rpb25zPzogUmVhY3ROb2RlO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTGlzdFZpZXcoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBjb250YWluZXJSZWYsXHJcbiAgaGVhZGVyLFxyXG4gIGhlYWRlckFjdGlvbnMsXHJcbn06IExpc3RWaWV3UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgY2xhc3NOYW1lXSl9PlxyXG4gICAgICB7KGhlYWRlciB8fCBoZWFkZXJBY3Rpb25zKSAmJiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxyXG4gICAgICAgICAge2hlYWRlciAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyTGFiZWx9PntoZWFkZXJ9PC9oMz59XHJcbiAgICAgICAgICB7aGVhZGVyQWN0aW9uc31cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKX1cclxuICAgICAgPHVsIGNsYXNzTmFtZT17c3R5bGVzLmxpc3R9PntjaGlsZHJlbn08L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXc7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJEY1dvRWJpb2w5cHgtRlFBX1RwT2tcIixcImhlYWRlclwiOlwiXzJqYXZCOHNBRHg2ZERncVhOM01DTFBcIixcImhlYWRlckxhYmVsXCI6XCJfM2lNT2ZJeU5MMVNFbXYySjhaRERtV1wiLFwibGlzdFwiOlwiXzNfS210Yk1QcFBIZ0pGTTlaQl94bkFcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiLi4vQnV0dG9uXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBMaXN0Vmlld0l0ZW1Qcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gIHNpemU/OiBTaXplO1xyXG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTGlzdFZpZXdJdGVtKHtcclxuICBjaGlsZHJlbixcclxuICBhY3RpdmUgPSBmYWxzZSxcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcclxufTogTGlzdFZpZXdJdGVtUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5saXN0Vmlld0l0ZW1dKX0+XHJcbiAgICAgIDxCdXR0b25cclxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxyXG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cclxuICAgICAgICBub1BhZGRpbmc9e25vUGFkZGluZ31cclxuICAgICAgICBhbGlnbj17YWxpZ259XHJcbiAgICAgICAgc2l6ZT17c2l6ZX1cclxuICAgICAgICBzdHJldGNoSG9yaXpvbnRhbGx5XHJcbiAgICAgICAgbm9TaGFkb3dcclxuICAgICAgICBub0JvcmRlclxyXG4gICAgICA+XHJcbiAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICA8L0J1dHRvbj5cclxuICAgIDwvbGk+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdJdGVtO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25MaW5rIH0gZnJvbSBcIi4uL0J1dHRvbkxpbmtcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIExpc3RWaWV3TGlua0l0ZW1Qcm9wcyA9XHJcbiAgfCB7XHJcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XHJcbiAgICAgIGFjdGl2ZTogYm9vbGVhbjtcclxuICAgICAgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XHJcbiAgICAgIG5vUGFkZGluZzogYm9vbGVhbjtcclxuICAgICAgYWxpZ246IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcclxuICAgICAgc2l6ZTogU2l6ZTtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIExpc3RWaWV3TGlua0l0ZW0oe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGFzOiBDb21wb25lbnQsXHJcbiAgYWN0aXZlID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgLi4ucHJvcHNcclxufTogTGlzdFZpZXdMaW5rSXRlbVByb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxyXG4gICAgICA8QnV0dG9uTGlua1xyXG4gICAgICAgIGFzPXtDb21wb25lbnR9XHJcbiAgICAgICAgaW52ZXJ0ZWQ9e2FjdGl2ZX1cclxuICAgICAgICB0cmFuc3BhcmVudD17dHJhbnNwYXJlbnR9XHJcbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XHJcbiAgICAgICAgYWxpZ249e2FsaWdufVxyXG4gICAgICAgIHNpemU9e3NpemV9XHJcbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxyXG4gICAgICAgIG5vU2hhZG93XHJcbiAgICAgICAgbm9Cb3JkZXJcclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvQnV0dG9uTGluaz5cclxuICAgIDwvbGk+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdMaW5rSXRlbTtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vTWVudVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVDb250YWluZXIsIE1lbnVQbGFjZW1lbnQgfSBmcm9tIFwiLi9NZW51Q29udGFpbmVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUl0ZW0gfSBmcm9tIFwiLi9NZW51SXRlbVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVMaW5rSXRlbSB9IGZyb20gXCIuL01lbnVMaW5rSXRlbVwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51Lm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgaXNPcGVuPzogYm9vbGVhbjtcclxuICBoZWFkZXI/OiBzdHJpbmc7XHJcbiAgZm9vdGVyPzogUmVhY3ROb2RlO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTWVudSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGNsYXNzTmFtZSxcclxuICBpc09wZW4gPSB0cnVlLFxyXG4gIGhlYWRlcixcclxuICBmb290ZXIsXHJcbn06IE1lbnVQcm9wcykge1xyXG4gIGlmICghaXNPcGVuKSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICBzdHlsZXMubWVudSxcclxuICAgICAgICAgIHsgW3N0eWxlcy5vcGVuXTogaXNPcGVuIH0sXHJcbiAgICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgICAgXSl9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnNjcm9sbENvbnRhaW5lcn0+XHJcbiAgICAgICAgICB7aGVhZGVyICYmIGlzT3BlbiAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyfT57aGVhZGVyfTwvaDM+fVxyXG4gICAgICAgICAgPHVsPntpc09wZW4gJiYgY2hpbGRyZW59PC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7Zm9vdGVyICYmIGlzT3BlbiAmJiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgICAgICAgIHN0eWxlcy5mb290ZXIsXHJcbiAgICAgICAgICAgICAgeyBbc3R5bGVzLm5vQm9yZGVyXTogIWNoaWxkcmVuIH0sXHJcbiAgICAgICAgICAgIF0pfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7Zm9vdGVyfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8Lz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNZW51O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVcIjpcIl8xTDUtcHZfUDZNMm9HZW9SZU1uTzJKXCIsXCJvcGVuXCI6XCJfMUo3cEZrdmtqUVFSV2ttZy0wWFRXWlwiLFwiZW50cmFuY2VcIjpcIl8zY3Flc1FHZjlDeXU2NkRzb0t0RjBxXCIsXCJoZWFkZXJcIjpcInBPUFlhVjAxbzlXQjdCdzRWZ2l3XCIsXCJmb290ZXJcIjpcIl8zbUNjY252TmROLVhaWlM3UEx4YXYwXCIsXCJub0JvcmRlclwiOlwiXzI2dFVPZjlnSS1hUmZhZl9JZXlQVUlcIixcInNjcm9sbENvbnRhaW5lclwiOlwiXzFtcU1VcmQxMy0xVGxvdkdDQk9lcGZcIn07IiwiaW1wb3J0IFJlYWN0LCB7XHJcbiAgUmVhY3ROb2RlLFxyXG4gIFJlYWN0RWxlbWVudCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEZvcndhcmRlZFJlZixcclxufSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1lbnVQbGFjZW1lbnQgPSB7XHJcbiAgaG9yaXpvbnRhbDogXCJyaWdodFwiIHwgXCJsZWZ0XCI7XHJcbiAgdmVydGljYWw6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xyXG59O1xyXG5cclxudHlwZSBNZW51Q29udGFpbmVyUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBidXR0b24/OiBSZWFjdEVsZW1lbnQ7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIHBsYWNlbWVudD86IE1lbnVQbGFjZW1lbnQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBNZW51Q29udGFpbmVyKFxyXG4gIHtcclxuICAgIGNoaWxkcmVuLFxyXG4gICAgYnV0dG9uLFxyXG4gICAgY2xhc3NOYW1lLFxyXG4gICAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcclxuICB9OiBNZW51Q29udGFpbmVyUHJvcHMsXHJcbiAgcmVmOiBGb3J3YXJkZWRSZWY8SFRNTERpdkVsZW1lbnQ+XHJcbikge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBjbGFzc05hbWVdKX0+XHJcbiAgICAgIHtidXR0b259XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICBzdHlsZXMubWVudUNvbnRhaW5lcixcclxuICAgICAgICAgIHN0eWxlc1twbGFjZW1lbnQuaG9yaXpvbnRhbF0sXHJcbiAgICAgICAgICBzdHlsZXNbcGxhY2VtZW50LnZlcnRpY2FsXSxcclxuICAgICAgICBdKX1cclxuICAgICAgPlxyXG4gICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmb3J3YXJkUmVmKE1lbnVDb250YWluZXIpO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzNENElRWldDdEg4TVRYcnY1OU1ZS0ZcIixcIm1lbnVDb250YWluZXJcIjpcIl8xXzJzRkZWek5YbUpYX1BUcEhaZ0VMXCIsXCJ0b3BcIjpcIlF2QzR5Nm1mMVlXLWJsSzZQU041SVwiLFwicmlnaHRcIjpcIl8zbXJWYndrbVZtbGNGRGFkUG9lY2M3XCIsXCJsZWZ0XCI6XCJYZlE0YmpuS0ZhQVltUVR1UkstNkFcIixcImJvdHRvbVwiOlwiXzM5X3R5Ylg1Slo2WS11ajQ3Z1BzS1ZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51SXRlbS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxMSUVsZW1lbnQ+KSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTWVudUl0ZW0oe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNsYXNzTmFtZSxcclxuICBvbkNsaWNrLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIGlzQWN0aXZlID0gZmFsc2UsXHJcbn06IE1lbnVJdGVtUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGxpXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5tZW51SXRlbSxcclxuICAgICAgICB7IFtzdHlsZXMuYWN0aXZlXTogaXNBY3RpdmUgfSxcclxuICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBdKX1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9saT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNZW51SXRlbTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51SXRlbVwiOlwiXzJLc1JDRWdFX003d29YamhwUnVWdW9cIixcIm5vUGFkZGluZ1wiOlwiXzJjcU1KSEp5Q2pBVThaUFpBVjBZRDVcIixcImFjdGl2ZVwiOlwiXzFYblhaaUFyaHZVZXlYZ3FVYUctUDdcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51TGlua0l0ZW0ubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBNZW51TGlua0l0ZW1Qcm9wcyA9XHJcbiAgfCB7XHJcbiAgICAgIGFzOiBFbGVtZW50VHlwZTtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XHJcbiAgICAgIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgICB9XHJcbiAgfCBhbnk7XHJcblxyXG5mdW5jdGlvbiBNZW51TGlua0l0ZW0oe1xyXG4gIGFzOiBDb21wb25lbnQsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIC4uLnByb3BzXHJcbn06IE1lbnVMaW5rSXRlbVByb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxDb21wb25lbnRcclxuICAgICAgZGF0YS10ZXN0aWQ9XCJtZW51LWxpbmstaXRlbVwiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5tZW51TGlua0l0ZW0sXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9Db21wb25lbnQ+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVudUxpbmtJdGVtO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVMaW5rSXRlbVwiOlwiXzN6NXQ5Q0FoY0F3Vk90T1ZsQV80R3dcIixcIm5vUGFkZGluZ1wiOlwiYk5YaWt5RVpJSU9NMUhnc0FpM2Z0XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJtZW51SXRlbVwiOlwiXzN0SVdBaE1EdFB6QUg0YkFyd3BST3ZcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBPdmVybGF5IH0gZnJvbSBcIi4vT3ZlcmxheVwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL092ZXJsYXkubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBPdmVybGF5UHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBpc0ZpeGVkPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE92ZXJsYXkoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIGlzRml4ZWQgPSBmYWxzZSxcclxuICBvbkNsaWNrID0gKCkgPT4ge30sXHJcbn06IE92ZXJsYXlQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBkYXRhLXRlc3RpZD1cIm92ZXJsYXlcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMub3ZlcmxheSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXHJcbiAgICAgICAgICBbc3R5bGVzLmZpeGVkXTogaXNGaXhlZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdKX1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgID5cclxuICAgICAge2NoaWxkcmVufVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgT3ZlcmxheTtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJJMGRtLUxkbS1TaVMwdjVYLXZvMGdcIixcInRyYW5zcGFyZW50XCI6XCJfM3FkRGRseW5ITG5vZk4xREt2dllROFwiLFwiZml4ZWRcIjpcIl8xZ1h5OVhTM0YtSnRxZGpaQmNvS1N3XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dElucHV0IH0gZnJvbSBcIi4vVGV4dElucHV0XCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RleHRJbnB1dC5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IFNpemUsIFRleHRJbnB1dFR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgVGV4dElucHV0UHJvcHMgPSB7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgb25DaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcclxuICBvbkJsdXI/OiAoKSA9PiB2b2lkO1xyXG4gIG9uS2V5RG93bj86IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xyXG4gIHNpemU/OiBTaXplO1xyXG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gVGV4dElucHV0KHtcclxuICBsYWJlbCxcclxuICBvbkNoYW5nZSxcclxuICBvbkJsdXIsXHJcbiAgb25LZXlEb3duLFxyXG4gIHBsYWNlaG9sZGVyLFxyXG4gIHZhbHVlLFxyXG4gIG5hbWUsXHJcbiAgaW5wdXRSZWYsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgdHlwZSA9IFwidGV4dFwiLFxyXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbn06IFRleHRJbnB1dFByb3BzKSB7XHJcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXHJcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XHJcbiAgICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBbb25DaGFuZ2VdXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgaW5wdXRFbGVtZW50ID0gKFxyXG4gICAgPGlucHV0XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXRcIlxyXG4gICAgICByZWY9e2lucHV0UmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudGV4dElucHV0LCBzdHlsZXNbc2l6ZV0sIHtbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXJ9XSl9XHJcbiAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XHJcbiAgICAgIG9uQmx1cj17b25CbHVyfVxyXG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cclxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxyXG4gICAgICBuYW1lPXtuYW1lfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICB2YWx1ZT17dmFsdWV9XHJcbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgLz5cclxuICApO1xyXG4gIGlmIChsYWJlbCkge1xyXG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiA8PntpbnB1dEVsZW1lbnR9PC8+O1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBUZXh0SW5wdXQ7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIixcInhsYXJnZVwiOlwiXzNzdDhFR291bk9nak51THBvRXJDMHNcIixcIm5vQm9yZGVyXCI6XCJwdFJaN0E1Z2lXN0ZCM21rOFFMQ01cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9hc3RDb250YWluZXIgfSBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lclwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3QubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBUb2FzdFByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIFRvYXN0KHsgY2hpbGRyZW4sIGNvbnRhaW5lclJlZiwgb25DbGljayA9ICgpID0+IHt9IH06IFRvYXN0UHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudG9hc3R9XHJcbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3RcIlxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUb2FzdDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdFwiOlwiXzJOM1hpSDhSVm5FQVlsekJEX0pDcVpcIixcImVudHJhbmNlXCI6XCJfMTljdzN6eDZmVTRSTUdNYUdNNXpKWlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3RDb250YWluZXIubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBUb2FzdENvbnRhaW5lclByb3BzID0ge1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG4gIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbn07XHJcbmZ1bmN0aW9uIFRvYXN0Q29udGFpbmVyKHsgY2hpbGRyZW4sIGJhc2VaSW5kZXggfTogVG9hc3RDb250YWluZXJQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50b2FzdENvbnRhaW5lcl0pfVxyXG4gICAgICBzdHlsZT17eyB6SW5kZXg6IGJhc2VaSW5kZXggfX1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdC1jb250YWluZXJcIlxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUb2FzdENvbnRhaW5lcjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdENvbnRhaW5lclwiOlwiXzNSVDJhYmZ6SzBydC1ZamNycVhMbnJcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWRlbywgVmlkZW9Qcm9wcyB9IGZyb20gXCIuL1ZpZGVvXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1ZpZGVvLm1vZHVsZS5jc3NcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGVyZSBpcyBhIGtub3duIGlzc3VlIGluIFJlYWN0IGluIHJlZ2FyZHMgdG8gdGhlICdtdXRlZCcgcHJvcGVydHkgd2hpY2ggY2F1c2VzIHRoZSB3YXJuaW5nOlxyXG4gKiBcIldhcm5pbmc6IHVuc3RhYmxlX2ZsdXNoRGlzY3JldGVVcGRhdGVzOiBDYW5ub3QgZmx1c2ggdXBkYXRlcyB3aGVuIFJlYWN0IGlzIGFscmVhZHkgcmVuZGVyaW5nLlwiXHJcbiAqXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTAzODlcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy82NTQ0XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0aW5nLWxpYnJhcnkvcmVhY3QtdGVzdGluZy1saWJyYXJ5L2lzc3Vlcy80NzBcclxuICovXHJcblxyXG50eXBlIExheW91dCA9IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XHJcblxyXG5leHBvcnQgdHlwZSBWaWRlb1Byb3BzID0ge1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBsYXlvdXQ/OiBMYXlvdXQ7XHJcbiAgYXV0b1BsYXk/OiBib29sZWFuO1xyXG4gIGxvb3A/OiBib29sZWFuO1xyXG4gIG11dGVkPzogYm9vbGVhbjtcclxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIHBvc3Rlcj86IHN0cmluZztcclxufTtcclxuXHJcbmZ1bmN0aW9uIFZpZGVvKHtcclxuICBzcmMsXHJcbiAgdHlwZSxcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgcG9zdGVyLFxyXG4gIG11dGVkID0gdHJ1ZSxcclxuICBsb29wID0gdHJ1ZSxcclxuICBhdXRvUGxheSA9IHRydWUsXHJcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXHJcbn06IFZpZGVvUHJvcHMpIHtcclxuICByZXR1cm4gY2hpbGRyZW4gPyAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxyXG4gICAgPlxyXG4gICAgICA8dmlkZW9cclxuICAgICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcclxuICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnZpZGVvLCBzdHlsZXNbbGF5b3V0XV0pfVxyXG4gICAgICAgIG11dGVkPXttdXRlZH1cclxuICAgICAgICBsb29wPXtsb29wfVxyXG4gICAgICAgIGF1dG9QbGF5PXthdXRvUGxheX1cclxuICAgICAgICBwb3N0ZXI9e3Bvc3Rlcn1cclxuICAgICAgICBwbGF5c0lubGluZVxyXG4gICAgICA+XHJcbiAgICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxyXG4gICAgICA8L3ZpZGVvPlxyXG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxyXG4gICAgPC9kaXY+XHJcbiAgKSA6IChcclxuICAgIDx2aWRlb1xyXG4gICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcclxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XHJcbiAgICAgIG11dGVkPXttdXRlZH1cclxuICAgICAgbG9vcD17bG9vcH1cclxuICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxyXG4gICAgICBwb3N0ZXI9e3Bvc3Rlcn1cclxuICAgICAgcGxheXNJbmxpbmVcclxuICAgID5cclxuICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxyXG4gICAgPC92aWRlbz5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBWaWRlbztcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xZDU1d1h1UUtwdDk3UHFRSFl4NW1XXCIsXCJoYXNPdmVybGF5XCI6XCJfMkRBTTF4N1Axd3VZTlA4VERtWEdYY1wiLFwidmlkZW9cIjpcIl8zalFfcXBVTHRyMHVGU1RXYkQwTlZaXCIsXCJjb3ZlclwiOlwiXzFxblZMaGVHekRJNk5vOV9ud2I3aGxcIixcImNvbnRhaW5cIjpcIl8xWDI4Nk5JU0kwd3EyS0szZGpWaHUzXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJPZWdsLThnZDJLNWx6M21VR0pfVXpcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMS1IenBUWV9XdEdjWmMyNXdDb3RlWVwiLFwib3ZlcmxheVwiOlwiXzJUdlhzcUFJVW5HU3FtNmtuSkZoTDNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUb2dnbGUgfSBmcm9tIFwiLi91c2VUb2dnbGVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi91c2VPdXRzaWRlQ2xpY2tcIjtcclxuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUb2dnbGUoXHJcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2VcclxuKTogW2Jvb2xlYW4sIChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHZvaWRdIHtcclxuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGluaXRpYWxWYWx1ZSk7XHJcblxyXG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHtcclxuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFZhbHVlKChwcmV2VmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4gIXByZXZWYWx1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gW3ZhbHVlLCB0b2dnbGVdO1xyXG59XHJcbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XHJcblxyXG50eXBlIENhbGxiYWNrID0gKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU91dHNpZGVDbGljayhjYWxsYmFjazogQ2FsbGJhY2spIHtcclxuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKCFyZWYuY3VycmVudCB8fCByZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNhbGxiYWNrKGV2ZW50KTtcclxuICAgIH07XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgaGFuZGxlQ2xpY2spO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIGhhbmRsZUNsaWNrKTtcclxuXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBoYW5kbGVDbGljayk7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBoYW5kbGVDbGljayk7XHJcbiAgICB9O1xyXG4gIH0sIFtjYWxsYmFja10pO1xyXG5cclxuICByZXR1cm4gcmVmO1xyXG59XHJcbiIsIi8qIVxuICogaG90a2V5cy1qcyB2My44LjdcbiAqIEEgc2ltcGxlIG1pY3JvLWxpYnJhcnkgZm9yIGRlZmluaW5nIGFuZCBkaXNwYXRjaGluZyBrZXlib2FyZCBzaG9ydGN1dHMuIEl0IGhhcyBubyBkZXBlbmRlbmNpZXMuXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyMSBrZW5ueSB3b25nIDx3b3dvaG9vQHFxLmNvbT5cbiAqIGh0dHA6Ly9qYXl3Y2psb3ZlLmdpdGh1Yi5pby9ob3RrZXlzXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG52YXIgaXNmZiA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+IDAgOiBmYWxzZTsgLy8g57uR5a6a5LqL5Lu2XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KG9iamVjdCwgZXZlbnQsIG1ldGhvZCkge1xuICBpZiAob2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbWV0aG9kLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAob2JqZWN0LmF0dGFjaEV2ZW50KSB7XG4gICAgb2JqZWN0LmF0dGFjaEV2ZW50KFwib25cIi5jb25jYXQoZXZlbnQpLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtZXRob2Qod2luZG93LmV2ZW50KTtcbiAgICB9KTtcbiAgfVxufSAvLyDkv67ppbDplK7ovazmjaLmiJDlr7nlupTnmoTplK7noIFcblxuXG5mdW5jdGlvbiBnZXRNb2RzKG1vZGlmaWVyLCBrZXkpIHtcbiAgdmFyIG1vZHMgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kcy5sZW5ndGg7IGkrKykge1xuICAgIG1vZHNbaV0gPSBtb2RpZmllclttb2RzW2ldLnRvTG93ZXJDYXNlKCldO1xuICB9XG5cbiAgcmV0dXJuIG1vZHM7XG59IC8vIOWkhOeQhuS8oOeahGtleeWtl+espuS4sui9rOaNouaIkOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGdldEtleXMoa2V5KSB7XG4gIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykga2V5ID0gJyc7XG4gIGtleSA9IGtleS5yZXBsYWNlKC9cXHMvZywgJycpOyAvLyDljLnphY3ku7vkvZXnqbrnmb3lrZfnrKYs5YyF5ous56m65qC844CB5Yi26KGo56ym44CB5o2i6aG156ym562J562JXG5cbiAgdmFyIGtleXMgPSBrZXkuc3BsaXQoJywnKTsgLy8g5ZCM5pe26K6+572u5aSa5Liq5b+r5o236ZSu77yM5LulJywn5YiG5YmyXG5cbiAgdmFyIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7IC8vIOW/q+aNt+mUruWPr+iDveWMheWQqycsJ++8jOmcgOeJueauiuWkhOeQhlxuXG4gIGZvciAoOyBpbmRleCA+PSAwOykge1xuICAgIGtleXNbaW5kZXggLSAxXSArPSAnLCc7XG4gICAga2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn0gLy8g5q+U6L6D5L+u6aWw6ZSu55qE5pWw57uEXG5cblxuZnVuY3Rpb24gY29tcGFyZUFycmF5KGExLCBhMikge1xuICB2YXIgYXJyMSA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMSA6IGEyO1xuICB2YXIgYXJyMiA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMiA6IGExO1xuICB2YXIgaXNJbmRleCA9IHRydWU7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIxLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycjIuaW5kZXhPZihhcnIxW2ldKSA9PT0gLTEpIGlzSW5kZXggPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0luZGV4O1xufVxuXG52YXIgX2tleU1hcCA9IHtcbiAgYmFja3NwYWNlOiA4LFxuICB0YWI6IDksXG4gIGNsZWFyOiAxMixcbiAgZW50ZXI6IDEzLFxuICByZXR1cm46IDEzLFxuICBlc2M6IDI3LFxuICBlc2NhcGU6IDI3LFxuICBzcGFjZTogMzIsXG4gIGxlZnQ6IDM3LFxuICB1cDogMzgsXG4gIHJpZ2h0OiAzOSxcbiAgZG93bjogNDAsXG4gIGRlbDogNDYsXG4gIGRlbGV0ZTogNDYsXG4gIGluczogNDUsXG4gIGluc2VydDogNDUsXG4gIGhvbWU6IDM2LFxuICBlbmQ6IDM1LFxuICBwYWdldXA6IDMzLFxuICBwYWdlZG93bjogMzQsXG4gIGNhcHNsb2NrOiAyMCxcbiAgbnVtXzA6IDk2LFxuICBudW1fMTogOTcsXG4gIG51bV8yOiA5OCxcbiAgbnVtXzM6IDk5LFxuICBudW1fNDogMTAwLFxuICBudW1fNTogMTAxLFxuICBudW1fNjogMTAyLFxuICBudW1fNzogMTAzLFxuICBudW1fODogMTA0LFxuICBudW1fOTogMTA1LFxuICBudW1fbXVsdGlwbHk6IDEwNixcbiAgbnVtX2FkZDogMTA3LFxuICBudW1fZW50ZXI6IDEwOCxcbiAgbnVtX3N1YnRyYWN0OiAxMDksXG4gIG51bV9kZWNpbWFsOiAxMTAsXG4gIG51bV9kaXZpZGU6IDExMSxcbiAgJ+KHqic6IDIwLFxuICAnLCc6IDE4OCxcbiAgJy4nOiAxOTAsXG4gICcvJzogMTkxLFxuICAnYCc6IDE5MixcbiAgJy0nOiBpc2ZmID8gMTczIDogMTg5LFxuICAnPSc6IGlzZmYgPyA2MSA6IDE4NyxcbiAgJzsnOiBpc2ZmID8gNTkgOiAxODYsXG4gICdcXCcnOiAyMjIsXG4gICdbJzogMjE5LFxuICAnXSc6IDIyMSxcbiAgJ1xcXFwnOiAyMjBcbn07IC8vIE1vZGlmaWVyIEtleXNcblxudmFyIF9tb2RpZmllciA9IHtcbiAgLy8gc2hpZnRLZXlcbiAgJ+KHpyc6IDE2LFxuICBzaGlmdDogMTYsXG4gIC8vIGFsdEtleVxuICAn4oylJzogMTgsXG4gIGFsdDogMTgsXG4gIG9wdGlvbjogMTgsXG4gIC8vIGN0cmxLZXlcbiAgJ+KMgyc6IDE3LFxuICBjdHJsOiAxNyxcbiAgY29udHJvbDogMTcsXG4gIC8vIG1ldGFLZXlcbiAgJ+KMmCc6IDkxLFxuICBjbWQ6IDkxLFxuICBjb21tYW5kOiA5MVxufTtcbnZhciBtb2RpZmllck1hcCA9IHtcbiAgMTY6ICdzaGlmdEtleScsXG4gIDE4OiAnYWx0S2V5JyxcbiAgMTc6ICdjdHJsS2V5JyxcbiAgOTE6ICdtZXRhS2V5JyxcbiAgc2hpZnRLZXk6IDE2LFxuICBjdHJsS2V5OiAxNyxcbiAgYWx0S2V5OiAxOCxcbiAgbWV0YUtleTogOTFcbn07XG52YXIgX21vZHMgPSB7XG4gIDE2OiBmYWxzZSxcbiAgMTg6IGZhbHNlLFxuICAxNzogZmFsc2UsXG4gIDkxOiBmYWxzZVxufTtcbnZhciBfaGFuZGxlcnMgPSB7fTsgLy8gRjF+RjEyIHNwZWNpYWwga2V5XG5cbmZvciAodmFyIGsgPSAxOyBrIDwgMjA7IGsrKykge1xuICBfa2V5TWFwW1wiZlwiLmNvbmNhdChrKV0gPSAxMTEgKyBrO1xufVxuXG52YXIgX2Rvd25LZXlzID0gW107IC8vIOiusOW9leaRgeS4i+eahOe7keWumumUrlxuXG52YXIgX3Njb3BlID0gJ2FsbCc7IC8vIOm7mOiupOeDremUruiMg+WbtFxuXG52YXIgZWxlbWVudEhhc0JpbmRFdmVudCA9IFtdOyAvLyDlt7Lnu5Hlrprkuovku7bnmoToioLngrnorrDlvZVcbi8vIOi/lOWbnumUrueggVxuXG52YXIgY29kZSA9IGZ1bmN0aW9uIGNvZGUoeCkge1xuICByZXR1cm4gX2tleU1hcFt4LnRvTG93ZXJDYXNlKCldIHx8IF9tb2RpZmllclt4LnRvTG93ZXJDYXNlKCldIHx8IHgudG9VcHBlckNhc2UoKS5jaGFyQ29kZUF0KDApO1xufTsgLy8g6K6+572u6I635Y+W5b2T5YmN6IyD5Zu077yI6buY6K6k5Li6J+aJgOaciSfvvIlcblxuXG5mdW5jdGlvbiBzZXRTY29wZShzY29wZSkge1xuICBfc2NvcGUgPSBzY29wZSB8fCAnYWxsJztcbn0gLy8g6I635Y+W5b2T5YmN6IyD5Zu0XG5cblxuZnVuY3Rpb24gZ2V0U2NvcGUoKSB7XG4gIHJldHVybiBfc2NvcGUgfHwgJ2FsbCc7XG59IC8vIOiOt+WPluaRgeS4i+e7keWumumUrueahOmUruWAvFxuXG5cbmZ1bmN0aW9uIGdldFByZXNzZWRLZXlDb2RlcygpIHtcbiAgcmV0dXJuIF9kb3duS2V5cy5zbGljZSgwKTtcbn0gLy8g6KGo5Y2V5o6n5Lu25o6n5Lu25Yik5patIOi/lOWbniBCb29sZWFuXG4vLyBob3RrZXkgaXMgZWZmZWN0aXZlIG9ubHkgd2hlbiBmaWx0ZXIgcmV0dXJuIHRydWVcblxuXG5mdW5jdGlvbiBmaWx0ZXIoZXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICB2YXIgdGFnTmFtZSA9IHRhcmdldC50YWdOYW1lO1xuICB2YXIgZmxhZyA9IHRydWU7IC8vIGlnbm9yZTogaXNDb250ZW50RWRpdGFibGUgPT09ICd0cnVlJywgPGlucHV0PiBhbmQgPHRleHRhcmVhPiB3aGVuIHJlYWRPbmx5IHN0YXRlIGlzIGZhbHNlLCA8c2VsZWN0PlxuXG4gIGlmICh0YXJnZXQuaXNDb250ZW50RWRpdGFibGUgfHwgKHRhZ05hbWUgPT09ICdJTlBVVCcgfHwgdGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCB0YWdOYW1lID09PSAnU0VMRUNUJykgJiYgIXRhcmdldC5yZWFkT25seSkge1xuICAgIGZsYWcgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmbGFnO1xufSAvLyDliKTmlq3mkYHkuIvnmoTplK7mmK/lkKbkuLrmn5DkuKrplK7vvIzov5Tlm550cnVl5oiW6ICFZmFsc2VcblxuXG5mdW5jdGlvbiBpc1ByZXNzZWQoa2V5Q29kZSkge1xuICBpZiAodHlwZW9mIGtleUNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5Q29kZSA9IGNvZGUoa2V5Q29kZSk7IC8vIOi9rOaNouaIkOmUrueggVxuICB9XG5cbiAgcmV0dXJuIF9kb3duS2V5cy5pbmRleE9mKGtleUNvZGUpICE9PSAtMTtcbn0gLy8g5b6q546v5Yig6ZmkaGFuZGxlcnPkuK3nmoTmiYDmnIkgc2NvcGUo6IyD5Zu0KVxuXG5cbmZ1bmN0aW9uIGRlbGV0ZVNjb3BlKHNjb3BlLCBuZXdTY29wZSkge1xuICB2YXIgaGFuZGxlcnM7XG4gIHZhciBpOyAvLyDmsqHmnInmjIflrppzY29wZe+8jOiOt+WPlnNjb3BlXG5cbiAgaWYgKCFzY29wZSkgc2NvcGUgPSBnZXRTY29wZSgpO1xuXG4gIGZvciAodmFyIGtleSBpbiBfaGFuZGxlcnMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9oYW5kbGVycywga2V5KSkge1xuICAgICAgaGFuZGxlcnMgPSBfaGFuZGxlcnNba2V5XTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IGhhbmRsZXJzLmxlbmd0aDspIHtcbiAgICAgICAgaWYgKGhhbmRsZXJzW2ldLnNjb3BlID09PSBzY29wZSkgaGFuZGxlcnMuc3BsaWNlKGksIDEpO2Vsc2UgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyDlpoLmnpxzY29wZeiiq+WIoOmZpO+8jOWwhnNjb3Bl6YeN572u5Li6YWxsXG5cblxuICBpZiAoZ2V0U2NvcGUoKSA9PT0gc2NvcGUpIHNldFNjb3BlKG5ld1Njb3BlIHx8ICdhbGwnKTtcbn0gLy8g5riF6Zmk5L+u6aWw6ZSuXG5cblxuZnVuY3Rpb24gY2xlYXJNb2RpZmllcihldmVudCkge1xuICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCB8fCBldmVudC5jaGFyQ29kZTtcblxuICB2YXIgaSA9IF9kb3duS2V5cy5pbmRleE9mKGtleSk7IC8vIOS7juWIl+ihqOS4rea4hemZpOaMieWOi+i/h+eahOmUrlxuXG5cbiAgaWYgKGkgPj0gMCkge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoaSwgMSk7XG4gIH0gLy8g54m55q6K5aSE55CGIGNtbWFuZCDplK7vvIzlnKggY21tYW5kIOe7hOWQiOW/q+aNt+mUriBrZXl1cCDlj6rmiafooYzkuIDmrKHnmoTpl67pophcblxuXG4gIGlmIChldmVudC5rZXkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdtZXRhJykge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoMCwgX2Rvd25LZXlzLmxlbmd0aCk7XG4gIH0gLy8g5L+u6aWw6ZSuIHNoaWZ0S2V5IGFsdEtleSBjdHJsS2V5IChjb21tYW5kfHxtZXRhS2V5KSDmuIXpmaRcblxuXG4gIGlmIChrZXkgPT09IDkzIHx8IGtleSA9PT0gMjI0KSBrZXkgPSA5MTtcblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IGZhbHNlOyAvLyDlsIbkv67ppbDplK7ph43nva7kuLpmYWxzZVxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1bmJpbmQoa2V5c0luZm8pIHtcbiAgLy8gdW5iaW5kKCksIHVuYmluZCBhbGwga2V5c1xuICBpZiAoIWtleXNJbmZvKSB7XG4gICAgT2JqZWN0LmtleXMoX2hhbmRsZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHJldHVybiBkZWxldGUgX2hhbmRsZXJzW2tleV07XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShrZXlzSW5mbykpIHtcbiAgICAvLyBzdXBwb3J0IGxpa2UgOiB1bmJpbmQoW3trZXk6ICdjdHJsK2EnLCBzY29wZTogJ3MxJ30sIHtrZXk6ICdjdHJsLWEnLCBzY29wZTogJ3MyJywgc3BsaXRLZXk6ICctJ31dKVxuICAgIGtleXNJbmZvLmZvckVhY2goZnVuY3Rpb24gKGluZm8pIHtcbiAgICAgIGlmIChpbmZvLmtleSkgZWFjaFVuYmluZChpbmZvKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh0eXBlb2Yga2V5c0luZm8gPT09ICdvYmplY3QnKSB7XG4gICAgLy8gc3VwcG9ydCBsaWtlIHVuYmluZCh7a2V5OiAnY3RybCthLCBjdHJsK2InLCBzY29wZTonYWJjJ30pXG4gICAgaWYgKGtleXNJbmZvLmtleSkgZWFjaFVuYmluZChrZXlzSW5mbyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGtleXNJbmZvID09PSAnc3RyaW5nJykge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnQgb2xkIG1ldGhvZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB2YXIgc2NvcGUgPSBhcmdzWzBdLFxuICAgICAgICBtZXRob2QgPSBhcmdzWzFdO1xuXG4gICAgaWYgKHR5cGVvZiBzY29wZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbWV0aG9kID0gc2NvcGU7XG4gICAgICBzY29wZSA9ICcnO1xuICAgIH1cblxuICAgIGVhY2hVbmJpbmQoe1xuICAgICAga2V5OiBrZXlzSW5mbyxcbiAgICAgIHNjb3BlOiBzY29wZSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgc3BsaXRLZXk6ICcrJ1xuICAgIH0pO1xuICB9XG59IC8vIOino+mZpOe7keWumuafkOS4quiMg+WbtOeahOW/q+aNt+mUrlxuXG5cbnZhciBlYWNoVW5iaW5kID0gZnVuY3Rpb24gZWFjaFVuYmluZChfcmVmKSB7XG4gIHZhciBrZXkgPSBfcmVmLmtleSxcbiAgICAgIHNjb3BlID0gX3JlZi5zY29wZSxcbiAgICAgIG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgX3JlZiRzcGxpdEtleSA9IF9yZWYuc3BsaXRLZXksXG4gICAgICBzcGxpdEtleSA9IF9yZWYkc3BsaXRLZXkgPT09IHZvaWQgMCA/ICcrJyA6IF9yZWYkc3BsaXRLZXk7XG4gIHZhciBtdWx0aXBsZUtleXMgPSBnZXRLZXlzKGtleSk7XG4gIG11bHRpcGxlS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChvcmlnaW5LZXkpIHtcbiAgICB2YXIgdW5iaW5kS2V5cyA9IG9yaWdpbktleS5zcGxpdChzcGxpdEtleSk7XG4gICAgdmFyIGxlbiA9IHVuYmluZEtleXMubGVuZ3RoO1xuICAgIHZhciBsYXN0S2V5ID0gdW5iaW5kS2V5c1tsZW4gLSAxXTtcbiAgICB2YXIga2V5Q29kZSA9IGxhc3RLZXkgPT09ICcqJyA/ICcqJyA6IGNvZGUobGFzdEtleSk7XG4gICAgaWYgKCFfaGFuZGxlcnNba2V5Q29kZV0pIHJldHVybjsgLy8g5Yik5pat5piv5ZCm5Lyg5YWl6IyD5Zu077yM5rKh5pyJ5bCx6I635Y+W6IyD5Zu0XG5cbiAgICBpZiAoIXNjb3BlKSBzY29wZSA9IGdldFNjb3BlKCk7XG4gICAgdmFyIG1vZHMgPSBsZW4gPiAxID8gZ2V0TW9kcyhfbW9kaWZpZXIsIHVuYmluZEtleXMpIDogW107XG4gICAgX2hhbmRsZXJzW2tleUNvZGVdID0gX2hhbmRsZXJzW2tleUNvZGVdLm1hcChmdW5jdGlvbiAocmVjb3JkKSB7XG4gICAgICAvLyDpgJrov4flh73mlbDliKTmlq3vvIzmmK/lkKbop6PpmaTnu5HlrprvvIzlh73mlbDnm7jnrYnnm7TmjqXov5Tlm55cbiAgICAgIHZhciBpc01hdGNoaW5nTWV0aG9kID0gbWV0aG9kID8gcmVjb3JkLm1ldGhvZCA9PT0gbWV0aG9kIDogdHJ1ZTtcblxuICAgICAgaWYgKGlzTWF0Y2hpbmdNZXRob2QgJiYgcmVjb3JkLnNjb3BlID09PSBzY29wZSAmJiBjb21wYXJlQXJyYXkocmVjb3JkLm1vZHMsIG1vZHMpKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfSk7XG59OyAvLyDlr7nnm5HlkKzlr7nlupTlv6vmjbfplK7nmoTlm57osIPlh73mlbDov5vooYzlpITnkIZcblxuXG5mdW5jdGlvbiBldmVudEhhbmRsZXIoZXZlbnQsIGhhbmRsZXIsIHNjb3BlKSB7XG4gIHZhciBtb2RpZmllcnNNYXRjaDsgLy8g55yL5a6D5piv5ZCm5Zyo5b2T5YmN6IyD5Zu0XG5cbiAgaWYgKGhhbmRsZXIuc2NvcGUgPT09IHNjb3BlIHx8IGhhbmRsZXIuc2NvcGUgPT09ICdhbGwnKSB7XG4gICAgLy8g5qOA5p+l5piv5ZCm5Yy56YWN5L+u6aWw56ym77yI5aaC5p6c5pyJ6L+U5ZuedHJ1Ze+8iVxuICAgIG1vZGlmaWVyc01hdGNoID0gaGFuZGxlci5tb2RzLmxlbmd0aCA+IDA7XG5cbiAgICBmb3IgKHZhciB5IGluIF9tb2RzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9tb2RzLCB5KSkge1xuICAgICAgICBpZiAoIV9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA+IC0xIHx8IF9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA9PT0gLTEpIHtcbiAgICAgICAgICBtb2RpZmllcnNNYXRjaCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyDosIPnlKjlpITnkIbnqIvluo/vvIzlpoLmnpzmmK/kv67ppbDplK7kuI3lgZrlpITnkIZcblxuXG4gICAgaWYgKGhhbmRsZXIubW9kcy5sZW5ndGggPT09IDAgJiYgIV9tb2RzWzE2XSAmJiAhX21vZHNbMThdICYmICFfbW9kc1sxN10gJiYgIV9tb2RzWzkxXSB8fCBtb2RpZmllcnNNYXRjaCB8fCBoYW5kbGVyLnNob3J0Y3V0ID09PSAnKicpIHtcbiAgICAgIGlmIChoYW5kbGVyLm1ldGhvZChldmVudCwgaGFuZGxlcikgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtlbHNlIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICAgIGlmIChldmVudC5zdG9wUHJvcGFnYXRpb24pIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDlpITnkIZrZXlkb3du5LqL5Lu2XG5cblxuZnVuY3Rpb24gZGlzcGF0Y2goZXZlbnQpIHtcbiAgdmFyIGFzdGVyaXNrID0gX2hhbmRsZXJzWycqJ107XG4gIHZhciBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmNoYXJDb2RlOyAvLyDooajljZXmjqfku7bov4fmu6Qg6buY6K6k6KGo5Y2V5o6n5Lu25LiN6Kem5Y+R5b+r5o236ZSuXG5cbiAgaWYgKCFob3RrZXlzLmZpbHRlci5jYWxsKHRoaXMsIGV2ZW50KSkgcmV0dXJuOyAvLyBHZWNrbyhGaXJlZm94KeeahGNvbW1hbmTplK7lgLwyMjTvvIzlnKhXZWJraXQoQ2hyb21lKeS4reS/neaMgeS4gOiHtFxuICAvLyBXZWJraXTlt6blj7MgY29tbWFuZCDplK7lgLzkuI3kuIDmoLdcblxuICBpZiAoa2V5ID09PSA5MyB8fCBrZXkgPT09IDIyNCkga2V5ID0gOTE7XG4gIC8qKlxuICAgKiBDb2xsZWN0IGJvdW5kIGtleXNcbiAgICogSWYgYW4gSW5wdXQgTWV0aG9kIEVkaXRvciBpcyBwcm9jZXNzaW5nIGtleSBpbnB1dCBhbmQgdGhlIGV2ZW50IGlzIGtleWRvd24sIHJldHVybiAyMjkuXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI1MDQzOTM0L2lzLWl0LW9rLXRvLWlnbm9yZS1rZXlkb3duLWV2ZW50cy13aXRoLWtleWNvZGUtMjI5XG4gICAqIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAxMEp1bFNlcC9hdHQtMDE4Mi9rZXlDb2RlLXNwZWMuaHRtbFxuICAgKi9cblxuICBpZiAoX2Rvd25LZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEgJiYga2V5ICE9PSAyMjkpIF9kb3duS2V5cy5wdXNoKGtleSk7XG4gIC8qKlxuICAgKiBKZXN0IHRlc3QgY2FzZXMgYXJlIHJlcXVpcmVkLlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIFsnY3RybEtleScsICdhbHRLZXknLCAnc2hpZnRLZXknLCAnbWV0YUtleSddLmZvckVhY2goZnVuY3Rpb24gKGtleU5hbWUpIHtcbiAgICB2YXIga2V5TnVtID0gbW9kaWZpZXJNYXBba2V5TmFtZV07XG5cbiAgICBpZiAoZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKGtleU51bSk7XG4gICAgfSBlbHNlIGlmICghZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA+IC0xKSB7XG4gICAgICBfZG93bktleXMuc3BsaWNlKF9kb3duS2V5cy5pbmRleE9mKGtleU51bSksIDEpO1xuICAgIH0gZWxzZSBpZiAoa2V5TmFtZSA9PT0gJ21ldGFLZXknICYmIGV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5sZW5ndGggPT09IDMpIHtcbiAgICAgIC8qKlxuICAgICAgICogRml4IGlmIENvbW1hbmQgaXMgcHJlc3NlZDpcbiAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAqL1xuICAgICAgaWYgKCEoZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgIF9kb3duS2V5cyA9IF9kb3duS2V5cy5zbGljZShfZG93bktleXMuaW5kZXhPZihrZXlOdW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICAvKipcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKi9cblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IHRydWU7IC8vIOWwhueJueauiuWtl+espueahGtleeazqOWGjOWIsCBob3RrZXlzIOS4ilxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFhc3RlcmlzaykgcmV0dXJuO1xuICB9IC8vIOWwhiBtb2RpZmllck1hcCDph4zpnaLnmoTkv67ppbDplK7nu5HlrprliLAgZXZlbnQg5LitXG5cblxuICBmb3IgKHZhciBlIGluIF9tb2RzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfbW9kcywgZSkpIHtcbiAgICAgIF9tb2RzW2VdID0gZXZlbnRbbW9kaWZpZXJNYXBbZV1dO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2pheXdjamxvdmUvaG90a2V5cy9wdWxsLzEyOVxuICAgKiBUaGlzIHNvbHZlcyB0aGUgaXNzdWUgaW4gRmlyZWZveCBvbiBXaW5kb3dzIHdoZXJlIGhvdGtleXMgY29ycmVzcG9uZGluZyB0byBzcGVjaWFsIGNoYXJhY3RlcnMgd291bGQgbm90IHRyaWdnZXIuXG4gICAqIEFuIGV4YW1wbGUgb2YgdGhpcyBpcyBjdHJsK2FsdCttIG9uIGEgU3dlZGlzaCBrZXlib2FyZCB3aGljaCBpcyB1c2VkIHRvIHR5cGUgzrwuXG4gICAqIEJyb3dzZXIgc3VwcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1rZXlib2FyZGV2ZW50LWdldG1vZGlmaWVyc3RhdGVcbiAgICovXG5cblxuICBpZiAoZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSAmJiAhKGV2ZW50LmFsdEtleSAmJiAhZXZlbnQuY3RybEtleSkgJiYgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgnQWx0R3JhcGgnKSkge1xuICAgIGlmIChfZG93bktleXMuaW5kZXhPZigxNykgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaCgxNyk7XG4gICAgfVxuXG4gICAgaWYgKF9kb3duS2V5cy5pbmRleE9mKDE4KSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKDE4KTtcbiAgICB9XG5cbiAgICBfbW9kc1sxN10gPSB0cnVlO1xuICAgIF9tb2RzWzE4XSA9IHRydWU7XG4gIH0gLy8g6I635Y+W6IyD5Zu0IOm7mOiupOS4uiBgYWxsYFxuXG5cbiAgdmFyIHNjb3BlID0gZ2V0U2NvcGUoKTsgLy8g5a+55Lu75L2V5b+r5o236ZSu6YO96ZyA6KaB5YGa55qE5aSE55CGXG5cbiAgaWYgKGFzdGVyaXNrKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhc3Rlcmlzay5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFzdGVyaXNrW2ldLnNjb3BlID09PSBzY29wZSAmJiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIGFzdGVyaXNrW2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBhc3Rlcmlza1tpXS5rZXl1cCkpIHtcbiAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCBhc3Rlcmlza1tpXSwgc2NvcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBrZXkg5LiN5ZyoIF9oYW5kbGVycyDkuK3ov5Tlm55cblxuXG4gIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSByZXR1cm47XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IF9oYW5kbGVyc1trZXldLmxlbmd0aDsgX2krKykge1xuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgJiYgX2hhbmRsZXJzW2tleV1bX2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBfaGFuZGxlcnNba2V5XVtfaV0ua2V5dXApIHtcbiAgICAgIGlmIChfaGFuZGxlcnNba2V5XVtfaV0ua2V5KSB7XG4gICAgICAgIHZhciByZWNvcmQgPSBfaGFuZGxlcnNba2V5XVtfaV07XG4gICAgICAgIHZhciBzcGxpdEtleSA9IHJlY29yZC5zcGxpdEtleTtcbiAgICAgICAgdmFyIGtleVNob3J0Y3V0ID0gcmVjb3JkLmtleS5zcGxpdChzcGxpdEtleSk7XG4gICAgICAgIHZhciBfZG93bktleXNDdXJyZW50ID0gW107IC8vIOiusOW9leW9k+WJjeaMiemUrumUruWAvFxuXG4gICAgICAgIGZvciAodmFyIGEgPSAwOyBhIDwga2V5U2hvcnRjdXQubGVuZ3RoOyBhKyspIHtcbiAgICAgICAgICBfZG93bktleXNDdXJyZW50LnB1c2goY29kZShrZXlTaG9ydGN1dFthXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9kb3duS2V5c0N1cnJlbnQuc29ydCgpLmpvaW4oJycpID09PSBfZG93bktleXMuc29ydCgpLmpvaW4oJycpKSB7XG4gICAgICAgICAgLy8g5om+5Yiw5aSE55CG5YaF5a65XG4gICAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCByZWNvcmQsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDliKTmlq0gZWxlbWVudCDmmK/lkKblt7Lnu4/nu5Hlrprkuovku7ZcblxuXG5mdW5jdGlvbiBpc0VsZW1lbnRCaW5kKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnRIYXNCaW5kRXZlbnQuaW5kZXhPZihlbGVtZW50KSA+IC0xO1xufVxuXG5mdW5jdGlvbiBob3RrZXlzKGtleSwgb3B0aW9uLCBtZXRob2QpIHtcbiAgX2Rvd25LZXlzID0gW107XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhrZXkpOyAvLyDpnIDopoHlpITnkIbnmoTlv6vmjbfplK7liJfooahcblxuICB2YXIgbW9kcyA9IFtdO1xuICB2YXIgc2NvcGUgPSAnYWxsJzsgLy8gc2NvcGXpu5jorqTkuLphbGzvvIzmiYDmnInojIPlm7Tpg73mnInmlYhcblxuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50OyAvLyDlv6vmjbfplK7kuovku7bnu5HlrproioLngrlcblxuICB2YXIgaSA9IDA7XG4gIHZhciBrZXl1cCA9IGZhbHNlO1xuICB2YXIga2V5ZG93biA9IHRydWU7XG4gIHZhciBzcGxpdEtleSA9ICcrJzsgLy8g5a+55Li66K6+5a6a6IyD5Zu055qE5Yik5patXG5cbiAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBtZXRob2QgPSBvcHRpb247XG4gIH1cblxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9wdGlvbikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgaWYgKG9wdGlvbi5zY29wZSkgc2NvcGUgPSBvcHRpb24uc2NvcGU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24uZWxlbWVudCkgZWxlbWVudCA9IG9wdGlvbi5lbGVtZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmtleXVwKSBrZXl1cCA9IG9wdGlvbi5rZXl1cDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5rZXlkb3duICE9PSB1bmRlZmluZWQpIGtleWRvd24gPSBvcHRpb24ua2V5ZG93bjsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb24uc3BsaXRLZXkgPT09ICdzdHJpbmcnKSBzcGxpdEtleSA9IG9wdGlvbi5zcGxpdEtleTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBzY29wZSA9IG9wdGlvbjsgLy8g5a+55LqO5q+P5Liq5b+r5o236ZSu6L+b6KGM5aSE55CGXG5cbiAgZm9yICg7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXS5zcGxpdChzcGxpdEtleSk7IC8vIOaMiemUruWIl+ihqFxuXG4gICAgbW9kcyA9IFtdOyAvLyDlpoLmnpzmmK/nu4TlkIjlv6vmjbfplK7lj5blvpfnu4TlkIjlv6vmjbfplK5cblxuICAgIGlmIChrZXkubGVuZ3RoID4gMSkgbW9kcyA9IGdldE1vZHMoX21vZGlmaWVyLCBrZXkpOyAvLyDlsIbpnZ7kv67ppbDplK7ovazljJbkuLrplK7noIFcblxuICAgIGtleSA9IGtleVtrZXkubGVuZ3RoIC0gMV07XG4gICAga2V5ID0ga2V5ID09PSAnKicgPyAnKicgOiBjb2RlKGtleSk7IC8vICrooajnpLrljLnphY3miYDmnInlv6vmjbfplK5cbiAgICAvLyDliKTmlq1rZXnmmK/lkKblnKhfaGFuZGxlcnPkuK3vvIzkuI3lnKjlsLHotYvkuIDkuKrnqbrmlbDnu4RcblxuICAgIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSBfaGFuZGxlcnNba2V5XSA9IFtdO1xuXG4gICAgX2hhbmRsZXJzW2tleV0ucHVzaCh7XG4gICAgICBrZXl1cDoga2V5dXAsXG4gICAgICBrZXlkb3duOiBrZXlkb3duLFxuICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgbW9kczogbW9kcyxcbiAgICAgIHNob3J0Y3V0OiBrZXlzW2ldLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBrZXk6IGtleXNbaV0sXG4gICAgICBzcGxpdEtleTogc3BsaXRLZXlcbiAgICB9KTtcbiAgfSAvLyDlnKjlhajlsYBkb2N1bWVudOS4iuiuvue9ruW/q+aNt+mUrlxuXG5cbiAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhaXNFbGVtZW50QmluZChlbGVtZW50KSAmJiB3aW5kb3cpIHtcbiAgICBlbGVtZW50SGFzQmluZEV2ZW50LnB1c2goZWxlbWVudCk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnQod2luZG93LCAnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfZG93bktleXMgPSBbXTtcbiAgICB9KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgICBjbGVhck1vZGlmaWVyKGUpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBfYXBpID0ge1xuICBzZXRTY29wZTogc2V0U2NvcGUsXG4gIGdldFNjb3BlOiBnZXRTY29wZSxcbiAgZGVsZXRlU2NvcGU6IGRlbGV0ZVNjb3BlLFxuICBnZXRQcmVzc2VkS2V5Q29kZXM6IGdldFByZXNzZWRLZXlDb2RlcyxcbiAgaXNQcmVzc2VkOiBpc1ByZXNzZWQsXG4gIGZpbHRlcjogZmlsdGVyLFxuICB1bmJpbmQ6IHVuYmluZFxufTtcblxuZm9yICh2YXIgYSBpbiBfYXBpKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2FwaSwgYSkpIHtcbiAgICBob3RrZXlzW2FdID0gX2FwaVthXTtcbiAgfVxufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIF9ob3RrZXlzID0gd2luZG93LmhvdGtleXM7XG5cbiAgaG90a2V5cy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKGRlZXApIHtcbiAgICBpZiAoZGVlcCAmJiB3aW5kb3cuaG90a2V5cyA9PT0gaG90a2V5cykge1xuICAgICAgd2luZG93LmhvdGtleXMgPSBfaG90a2V5cztcbiAgICB9XG5cbiAgICByZXR1cm4gaG90a2V5cztcbiAgfTtcblxuICB3aW5kb3cuaG90a2V5cyA9IGhvdGtleXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhvdGtleXM7XG4iLCJpbXBvcnQgaG90a2V5cyBmcm9tICdob3RrZXlzLWpzJztcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFVzZSBpc0hvdGtleVByZXNzZWQgaW5zdGVhZC4gV2lsbCBiZSByZW1vdmVkIHZlcnNpb24gNC5cclxuICovXG5cbmZ1bmN0aW9uIHVzZUlzSG90a2V5UHJlc3NlZCgpIHtcbiAgcmV0dXJuIGhvdGtleXMuaXNQcmVzc2VkO1xufVxuXG5ob3RrZXlzLmZpbHRlciA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRydWU7XG59O1xuXG52YXIgdGFnRmlsdGVyID0gZnVuY3Rpb24gdGFnRmlsdGVyKF9yZWYsIGVuYWJsZU9uVGFncykge1xuICB2YXIgdGFyZ2V0ID0gX3JlZi50YXJnZXQ7XG4gIHZhciB0YXJnZXRUYWdOYW1lID0gdGFyZ2V0ICYmIHRhcmdldC50YWdOYW1lO1xuICByZXR1cm4gQm9vbGVhbih0YXJnZXRUYWdOYW1lICYmIGVuYWJsZU9uVGFncyAmJiBlbmFibGVPblRhZ3MuaW5jbHVkZXModGFyZ2V0VGFnTmFtZSkpO1xufTtcblxudmFyIGlzS2V5Ym9hcmRFdmVudFRyaWdnZXJlZEJ5SW5wdXQgPSBmdW5jdGlvbiBpc0tleWJvYXJkRXZlbnRUcmlnZ2VyZWRCeUlucHV0KGV2KSB7XG4gIHJldHVybiB0YWdGaWx0ZXIoZXYsIFsnSU5QVVQnLCAnVEVYVEFSRUEnLCAnU0VMRUNUJ10pO1xufTtcblxuZnVuY3Rpb24gdXNlSG90a2V5cyhrZXlzLCBjYWxsYmFjaywgb3B0aW9ucywgZGVwcykge1xuICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgZGVwcyA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHZhciBfcmVmMiA9IG9wdGlvbnMgfHwge30sXG4gICAgICBlbmFibGVPblRhZ3MgPSBfcmVmMi5lbmFibGVPblRhZ3MsXG4gICAgICBmaWx0ZXIgPSBfcmVmMi5maWx0ZXIsXG4gICAgICBrZXl1cCA9IF9yZWYyLmtleXVwLFxuICAgICAga2V5ZG93biA9IF9yZWYyLmtleWRvd24sXG4gICAgICBfcmVmMiRmaWx0ZXJQcmV2ZW50RGUgPSBfcmVmMi5maWx0ZXJQcmV2ZW50RGVmYXVsdCxcbiAgICAgIGZpbHRlclByZXZlbnREZWZhdWx0ID0gX3JlZjIkZmlsdGVyUHJldmVudERlID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjIkZmlsdGVyUHJldmVudERlLFxuICAgICAgX3JlZjIkZW5hYmxlZCA9IF9yZWYyLmVuYWJsZWQsXG4gICAgICBlbmFibGVkID0gX3JlZjIkZW5hYmxlZCA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9yZWYyJGVuYWJsZWQsXG4gICAgICBfcmVmMiRlbmFibGVPbkNvbnRlbnQgPSBfcmVmMi5lbmFibGVPbkNvbnRlbnRFZGl0YWJsZSxcbiAgICAgIGVuYWJsZU9uQ29udGVudEVkaXRhYmxlID0gX3JlZjIkZW5hYmxlT25Db250ZW50ID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYyJGVuYWJsZU9uQ29udGVudDtcblxuICB2YXIgcmVmID0gdXNlUmVmKG51bGwpOyAvLyBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgY2FsbGJhY2sgZGV0ZXJtaW5lcyBpZiB0aGUgYnJvd3NlcnMgZGVmYXVsdCBiZWhhdmlvciBpcyBwcmV2ZW50ZWQuXG5cbiAgdmFyIG1lbW9pc2VkQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KSB7XG4gICAgdmFyIF9rZXlib2FyZEV2ZW50JHRhcmdldDtcblxuICAgIGlmIChmaWx0ZXIgJiYgIWZpbHRlcihrZXlib2FyZEV2ZW50KSkge1xuICAgICAgcmV0dXJuICFmaWx0ZXJQcmV2ZW50RGVmYXVsdDtcbiAgICB9IC8vIENoZWNrIHdoZXRoZXIgdGhlIGhvdGtleXMgd2FzIHRyaWdnZXJlZCBpbnNpZGUgYW4gaW5wdXQgYW5kIHRoYXQgaW5wdXQgaXMgZW5hYmxlZCBvciBpZiBpdCB3YXMgdHJpZ2dlcmVkIGJ5IGEgY29udGVudCBlZGl0YWJsZSB0YWcgYW5kIGl0IGlzIGVuYWJsZWQuXG5cblxuICAgIGlmIChpc0tleWJvYXJkRXZlbnRUcmlnZ2VyZWRCeUlucHV0KGtleWJvYXJkRXZlbnQpICYmICF0YWdGaWx0ZXIoa2V5Ym9hcmRFdmVudCwgZW5hYmxlT25UYWdzKSB8fCAoX2tleWJvYXJkRXZlbnQkdGFyZ2V0ID0ga2V5Ym9hcmRFdmVudC50YXJnZXQpICE9IG51bGwgJiYgX2tleWJvYXJkRXZlbnQkdGFyZ2V0LmlzQ29udGVudEVkaXRhYmxlICYmICFlbmFibGVPbkNvbnRlbnRFZGl0YWJsZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJlZi5jdXJyZW50ID09PSBudWxsIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHJlZi5jdXJyZW50KSB7XG4gICAgICBjYWxsYmFjayhrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LCBkZXBzID8gW3JlZiwgZW5hYmxlT25UYWdzLCBmaWx0ZXJdLmNvbmNhdChkZXBzKSA6IFtyZWYsIGVuYWJsZU9uVGFncywgZmlsdGVyXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFlbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBJbiB0aGlzIGNhc2Uga2V5ZG93biBpcyBsaWtlbHkgdW5kZWZpbmVkLCBzbyB3ZSBzZXQgaXQgdG8gZmFsc2UsIHNpbmNlIGhvdGtleXMgbmVlZHMgdGhlIGBrZXlkb3duYCBrZXkgdG8gaGF2ZSBhIHZhbHVlLlxuXG5cbiAgICBpZiAoa2V5dXAgJiYga2V5ZG93biAhPT0gdHJ1ZSkge1xuICAgICAgb3B0aW9ucy5rZXlkb3duID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaG90a2V5cyhrZXlzLCBvcHRpb25zIHx8IHt9LCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGhvdGtleXMudW5iaW5kKGtleXMsIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIH07XG4gIH0sIFttZW1vaXNlZENhbGxiYWNrLCBrZXlzLCBlbmFibGVkXSk7XG4gIHJldHVybiByZWY7XG59XG5cbnZhciBpc0hvdGtleVByZXNzZWQgPSBob3RrZXlzLmlzUHJlc3NlZDtcblxuZXhwb3J0IHsgaXNIb3RrZXlQcmVzc2VkLCB1c2VIb3RrZXlzLCB1c2VJc0hvdGtleVByZXNzZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWhvdGtleXMtaG9vay5lc20uanMubWFwXG4iXSwic291cmNlUm9vdCI6IiJ9
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmlsZUlucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ZpbGVJbnB1dC9GaWxlSW5wdXQubW9kdWxlLmNzcz8xMjk5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcz83YWJmIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3M/OWI5MyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vSWNvbkJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3M/ZDI4ZCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcz9jYzM3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzPzk1YTciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3M/NDY0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcz8zNzA5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3M/OTZkMiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3M/NTA0OSIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcz8wNDI3Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcz8yMWM1Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3M/Y2QzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcz9jZjYxIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzPzlhMzYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3M/ZTIyMyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiYnV0dG9uQmFkZ2UiLCJvbkNsaWNrIiwiY29udGFpbmVyUmVmIiwiZGlzYWJsZWQiLCJpbnZlcnRlZCIsInJvdW5kZWQiLCJub1NoYWRvdyIsIm5vUGFkZGluZyIsIm5vQm9yZGVyIiwidHJhbnNwYXJlbnQiLCJzdHJldGNoSG9yaXpvbnRhbGx5Iiwic3RyZXRjaFZlcnRpY2FsbHkiLCJhdXRvRm9jdXMiLCJvZmZzZXRTaWRlcyIsImFsaWduIiwic2l6ZSIsInR5cGUiLCJyZWYiLCJjb250YWluZXIiLCJsZWZ0T2Zmc2V0IiwiaW5jbHVkZXMiLCJyaWdodE9mZnNldCIsInJvbGUiLCJjb250ZW50IiwiQ29tcG9uZW50IiwicHJvcHMiLCJsYWJlbCIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImhhbmRsZUNoYW5nZSIsInVzZUNhbGxiYWNrIiwiZSIsInRhcmdldCIsIkxhYmVsIiwiaW5wdXRSZWYiLCJjaGVja2JveCIsImNvbG9ycyIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRDb2xvciIsImRpcmVjdGlvbiIsImNvbG9yUGlja2VyIiwibWFwIiwiY29sb3IiLCJDb2xvclN3YXRjaCIsImlzU2VsZWN0ZWQiLCJjb2xvclN3YXRjaCIsInNlbGVjdGVkIiwic3R5bGUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJoZXhDb2RlIiwic3JPbmx5IiwiQ29uZmlybWF0aW9uTW9kYWwiLCJoZWFkZXIiLCJpc09wZW4iLCJidXR0b25zTGVmdCIsImJ1dHRvbnNSaWdodCIsIm9uQ2xvc2UiLCJub092ZXJsYXkiLCJiYXNlWkluZGV4IiwiTW9kYWwiLCJtb2RhbEhlYWRlciIsIm1vZGFsQ29udGVudCIsIm1vZGFsQnV0dG9uc0NvbnRhaW5lciIsIm1vZGFsQnV0dG9ucyIsImRpc3BsYXlOYW1lIiwiYnV0dG9uIiwidXNlSG90a2V5cyIsImhhbmRsZU92ZXJsYXlDbGljayIsInpJbmRleCIsIm92ZXJsYXkiLCJtb2RhbCIsIm1vZGFsQnV0dG9uIiwiYWNjZXB0IiwibXVsdGlwbGUiLCJpbnB1dCIsImlkIiwibGF5b3V0IiwicGxhY2VtZW50IiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwicGFyZW50IiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInZlcnRpY2FsUGxhY2VtZW50IiwiZml4ZWQiLCJzcmMiLCJhbHQiLCJpY29uIiwiY3Jvc3NPcmlnaW4iLCJiYWRnZUNvbnRlbnQiLCJ0b3BPZmZzZXQiLCJib3R0b21PZmZzZXQiLCJJY29uIiwiQnV0dG9uQmFkZ2UiLCJzcmNXaWR0aCIsInNyY0hlaWdodCIsImRlY29kaW5nIiwibG9hZGluZyIsImltYWdlRWxlbWVudCIsImltYWdlIiwid2lkdGgiLCJoZWlnaHQiLCJoYXNPdmVybGF5IiwiaGVhZGVyQWN0aW9ucyIsImhlYWRlckxhYmVsIiwibGlzdCIsImFjdGl2ZSIsImxpc3RWaWV3SXRlbSIsIkJ1dHRvbiIsIkJ1dHRvbkxpbmsiLCJhcyIsImZvb3RlciIsIm1lbnUiLCJvcGVuIiwic2Nyb2xsQ29udGFpbmVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsIm9uQmx1ciIsIm9uS2V5RG93biIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInRvYXN0IiwidG9hc3RDb250YWluZXIiLCJwb3N0ZXIiLCJtdXRlZCIsImxvb3AiLCJhdXRvUGxheSIsInZpZGVvIiwicGxheXNJbmxpbmUiLCJpbml0aWFsVmFsdWUiLCJ1c2VTdGF0ZSIsInNldFZhbHVlIiwibmV3VmFsdWUiLCJwcmV2VmFsdWUiLCJjYWxsYmFjayIsInVzZVJlZiIsInVzZUVmZmVjdCIsImhhbmRsZUNsaWNrIiwiZXZlbnQiLCJjdXJyZW50IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNmZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImFkZEV2ZW50IiwibWV0aG9kIiwiYXR0YWNoRXZlbnQiLCJjb25jYXQiLCJ3aW5kb3ciLCJnZXRNb2RzIiwibW9kaWZpZXIiLCJtb2RzIiwic2xpY2UiLCJnZXRLZXlzIiwia2V5cyIsInJlcGxhY2UiLCJzcGxpdCIsImluZGV4IiwibGFzdEluZGV4T2YiLCJzcGxpY2UiLCJfa2V5TWFwIiwiYmFja3NwYWNlIiwidGFiIiwiY2xlYXIiLCJlbnRlciIsInJldHVybiIsImVzYyIsImVzY2FwZSIsInNwYWNlIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwiZGVsIiwiZGVsZXRlIiwiaW5zIiwiaW5zZXJ0IiwiaG9tZSIsImVuZCIsInBhZ2V1cCIsInBhZ2Vkb3duIiwiY2Fwc2xvY2siLCJudW1fMCIsIm51bV8xIiwibnVtXzIiLCJudW1fMyIsIm51bV80IiwibnVtXzUiLCJudW1fNiIsIm51bV83IiwibnVtXzgiLCJudW1fOSIsIm51bV9tdWx0aXBseSIsIm51bV9hZGQiLCJudW1fZW50ZXIiLCJudW1fc3VidHJhY3QiLCJudW1fZGVjaW1hbCIsIm51bV9kaXZpZGUiLCInIiwiX21vZGlmaWVyIiwic2hpZnQiLCJvcHRpb24iLCJjdHJsIiwiY29udHJvbCIsImNtZCIsImNvbW1hbmQiLCJtb2RpZmllck1hcCIsIjE2IiwiMTgiLCIxNyIsIjkxIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsIl9tb2RzIiwiX2hhbmRsZXJzIiwiX2Rvd25LZXlzIiwiX3Njb3BlIiwiZWxlbWVudEhhc0JpbmRFdmVudCIsImNvZGUiLCJ4IiwidG9VcHBlckNhc2UiLCJjaGFyQ29kZUF0Iiwic2V0U2NvcGUiLCJzY29wZSIsImdldFNjb3BlIiwiZWFjaFVuYmluZCIsIl9yZWYiLCJfcmVmJHNwbGl0S2V5Iiwic3BsaXRLZXkiLCJmb3JFYWNoIiwib3JpZ2luS2V5IiwidW5iaW5kS2V5cyIsImxlbiIsImxhc3RLZXkiLCJrZXlDb2RlIiwicmVjb3JkIiwiYTEiLCJhMiIsImFycjEiLCJhcnIyIiwiaXNJbmRleCIsImNvbXBhcmVBcnJheSIsImV2ZW50SGFuZGxlciIsImhhbmRsZXIiLCJtb2RpZmllcnNNYXRjaCIsInkiLCJzaG9ydGN1dCIsInByZXZlbnREZWZhdWx0IiwicmV0dXJuVmFsdWUiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJkaXNwYXRjaCIsImFzdGVyaXNrIiwid2hpY2giLCJjaGFyQ29kZSIsImhvdGtleXMiLCJmaWx0ZXIiLCJ0aGlzIiwicHVzaCIsImtleU5hbWUiLCJrZXlOdW0iLCJnZXRNb2RpZmllclN0YXRlIiwia2V5ZG93biIsImtleXVwIiwiX2kiLCJrZXlTaG9ydGN1dCIsIl9kb3duS2V5c0N1cnJlbnQiLCJhIiwic29ydCIsImpvaW4iLCJlbGVtZW50IiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsInRhZ0ZpbHRlciIsImVuYWJsZU9uVGFncyIsInRhcmdldFRhZ05hbWUiLCJCb29sZWFuIiwib3B0aW9ucyIsImRlcHMiLCJfcmVmMiIsIl9yZWYyJGZpbHRlclByZXZlbnREZSIsImZpbHRlclByZXZlbnREZWZhdWx0IiwiX3JlZjIkZW5hYmxlZCIsImVuYWJsZWQiLCJfcmVmMiRlbmFibGVPbkNvbnRlbnQiLCJlbmFibGVPbkNvbnRlbnRFZGl0YWJsZSIsIm1lbW9pc2VkQ2FsbGJhY2siLCJrZXlib2FyZEV2ZW50IiwiaG90a2V5c0V2ZW50IiwiX2tleWJvYXJkRXZlbnQkdGFyZ2V0IiwiYWN0aXZlRWxlbWVudCIsImlzSG90a2V5UHJlc3NlZCJdLCJtYXBwaW5ncyI6IjZEQUNFLElBQUlBLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVDLFFBR25DLElBQUlDLEVBQVNKLEVBQWlCRSxHQUFZLENBQ3pDRyxFQUFHSCxFQUNISSxHQUFHLEVBQ0hILFFBQVMsSUFVVixPQU5BSSxFQUFRTCxHQUFVTSxLQUFLSixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTRixHQUcvREcsRUFBT0UsR0FBSSxFQUdKRixFQUFPRCxRQTBEZixPQXJEQUYsRUFBb0JRLEVBQUlGLEVBR3hCTixFQUFvQlMsRUFBSVYsRUFHeEJDLEVBQW9CVSxFQUFJLFNBQVNSLEVBQVNTLEVBQU1DLEdBQzNDWixFQUFvQmEsRUFBRVgsRUFBU1MsSUFDbENHLE9BQU9DLGVBQWViLEVBQVNTLEVBQU0sQ0FBRUssWUFBWSxFQUFNQyxJQUFLTCxLQUtoRVosRUFBb0JrQixFQUFJLFNBQVNoQixHQUNYLG9CQUFYaUIsUUFBMEJBLE9BQU9DLGFBQzFDTixPQUFPQyxlQUFlYixFQUFTaUIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEUCxPQUFPQyxlQUFlYixFQUFTLGFBQWMsQ0FBRW1CLE9BQU8sS0FRdkRyQixFQUFvQnNCLEVBQUksU0FBU0QsRUFBT0UsR0FFdkMsR0FEVSxFQUFQQSxJQUFVRixFQUFRckIsRUFBb0JxQixJQUMvQixFQUFQRSxFQUFVLE9BQU9GLEVBQ3BCLEdBQVcsRUFBUEUsR0FBOEIsaUJBQVZGLEdBQXNCQSxHQUFTQSxFQUFNRyxXQUFZLE9BQU9ILEVBQ2hGLElBQUlJLEVBQUtYLE9BQU9ZLE9BQU8sTUFHdkIsR0FGQTFCLEVBQW9Ca0IsRUFBRU8sR0FDdEJYLE9BQU9DLGVBQWVVLEVBQUksVUFBVyxDQUFFVCxZQUFZLEVBQU1LLE1BQU9BLElBQ3RELEVBQVBFLEdBQTRCLGlCQUFURixFQUFtQixJQUFJLElBQUlNLEtBQU9OLEVBQU9yQixFQUFvQlUsRUFBRWUsRUFBSUUsRUFBSyxTQUFTQSxHQUFPLE9BQU9OLEVBQU1NLElBQVFDLEtBQUssS0FBTUQsSUFDOUksT0FBT0YsR0FJUnpCLEVBQW9CNkIsRUFBSSxTQUFTMUIsR0FDaEMsSUFBSVMsRUFBU1QsR0FBVUEsRUFBT3FCLFdBQzdCLFdBQXdCLE9BQU9yQixFQUFnQixTQUMvQyxXQUE4QixPQUFPQSxHQUV0QyxPQURBSCxFQUFvQlUsRUFBRUUsRUFBUSxJQUFLQSxHQUM1QkEsR0FJUlosRUFBb0JhLEVBQUksU0FBU2lCLEVBQVFDLEdBQVksT0FBT2pCLE9BQU9rQixVQUFVQyxlQUFlMUIsS0FBS3VCLEVBQVFDLElBR3pHL0IsRUFBb0JrQyxFQUFJLEdBSWpCbEMsRUFBb0JBLEVBQW9CbUMsRUFBSSxJLGdCQ2xGckRoQyxFQUFPRCxRQUFVa0MsUUFBUSxVLDZCQ0F6QixtREFBSUMsRUFBVUMsTUFBTUQsUUFFTCxTQUFTRSxFQUFHQyxHQUN6QixJQUFJQyxFQUFNLEdBRVYsR0FBbUIsaUJBQVJELEdBQW1DLGlCQUFSQSxFQUFrQixPQUFPQSxHQUFPLEdBRXRFLEdBQUlILEVBQVFHLEdBQ1YsSUFBSyxJQUFXRSxFQUFQQyxFQUFJLEVBQVFBLEVBQUlILEVBQUlJLE9BQVFELElBQ1IsTUFBdEJELEVBQU1ILEVBQUdDLEVBQUlHLE9BQ2hCRixJQUFRQSxHQUFPLEtBQU9DLFFBSTFCLElBQUssSUFBSUMsS0FBS0gsRUFDUkEsRUFBSVAsZUFBZVUsSUFBTUgsRUFBSUcsS0FBSUYsSUFBUUEsR0FBTyxLQUFPRSxHQUcvRCxPQUFPRixJLHVMQ2xCVCxZQUFTLGdGQUFBSSxZLGlMQ0FULFlBQVMsMEVBQUFBLFksZ0xDQVQsWUFBUyx5RUFBQUEsWSxrTENBVCxZQUFTLDJFQUFBQSxZLHNMQ0FULFlBQVMsK0VBQUFBLFksdUxDQVQsWUFBUyxnRkFBQUEsWSxpTENBVCxZQUFTLDBFQUFBQSxZLDZCQ0FULE9BQ2UsV0FBQyxhQUFlLDRCLHVaQ0QvQixVQUNBLFVBQ0EsVUFDQSxXQUNBLFdBQ0EsVUFDQSxXQUNBLFdBQ0EsV0FDQSxVQUNBLFdBQ0EsV0FDQSxXQUNBLFdBQ0EsV0FDQSxVQUNBLFdBQ0EsVUFDQSxXQUNBLFdBQ0EsV0FDQSxZLGtLQ3JCQSxjQUNBLFVBRUEsV0FhQSxVQU5BLFNBQXFCLEcsSUFBRUMsRUFBUSxXQUFFQyxFQUFTLFlBQ3hDLE9BQ0UsK0JBQUtBLFVBQVcsVUFBUyxDQUFDLFVBQU9DLFlBQWFELEtBQWNELEssNkJDWmhFLE9BQ2UsV0FBQyxZQUFjLDRCLGtLQ0Q5QixjQUNBLFVBRUEsV0FrRkEsVUExREEsU0FBZ0IsRyxNQUNkQSxFQUFRLFdBQ1JDLEVBQVMsWUFDVEUsRUFBTyxVQUNQQyxFQUFZLGVBQ1osSUFBQUMsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFDLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBQyxlQUFPLElBQUcsR0FBSyxFQUNmLElBQUFDLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBQyxpQkFBUyxJQUFHLEdBQUssRUFDakIsSUFBQUMsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFDLG1CQUFXLElBQUcsR0FBSyxFQUNuQixJQUFBQywyQkFBbUIsSUFBRyxHQUFLLEVBQzNCLElBQUFDLHlCQUFpQixJQUFHLEdBQUssRUFDekIsSUFBQUMsaUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUFDLG1CQUFXLElBQUcsS0FBRSxFQUNoQixJQUFBQyxhQUFLLElBQUcsV0FBUSxFQUNoQixJQUFBQyxZQUFJLElBQUcsV0FBUSxFQUNmQyxFQUFJLE9BRUosT0FDRSxrQ0FDRUMsSUFBS2YsRUFDTEgsVUFBVyxVQUFTLENBQ2xCLFVBQU9tQixVQUNQLFVBQU9ILEdBQ1AsVUFBT0QsSSxLQUVMLEVBQUMsVUFBT1YsVUFBV0EsRUFDbkIsRUFBQyxVQUFPQyxTQUFVQSxFQUNsQixFQUFDLFVBQU9DLFVBQVdBLEVBQ25CLEVBQUMsVUFBT0MsV0FBWUEsRUFDcEIsRUFBQyxVQUFPQyxVQUFXQSxFQUNuQixFQUFDLFVBQU9DLGFBQWNBLEVBQ3RCLEVBQUMsVUFBT0MscUJBQXNCQSxFQUM5QixFQUFDLFVBQU9DLG1CQUFvQkEsRUFDNUIsRUFBQyxVQUFPUSxZQUFhZCxHQUFXUSxFQUFZTyxTQUFTLFFBQ3JELEVBQUMsVUFBT0MsYUFBY2hCLEdBQVdRLEVBQVlPLFNBQVMsUyxHQUV4RHJCLElBRUZJLFNBQVVBLEVBQ1ZTLFVBQVdBLEVBQ1hYLFFBQVNBLEVBQ1RlLEtBQU1BLEVBQ05NLEtBQUssVUFFZ0IsaUJBQWJ4QixHQUNSUixNQUFNRCxRQUFRUyxJQUNkQSxFQUFTRixPQUNQLCtCQUFLRyxVQUFXLFVBQU93QixTQUFVekIsR0FDL0IsSyw2QkM5RVYsT0FDZSxXQUFDLFVBQVksMEJBQTBCLEtBQU8sMEJBQTBCLE1BQVEsd0JBQXdCLE1BQVEsMEJBQTBCLE9BQVMsMEJBQTBCLFNBQVcsMEJBQTBCLFFBQVUsd0JBQXdCLFlBQWMsMEJBQTBCLFdBQWEsMEJBQTBCLFNBQVcsd0JBQXdCLFNBQVcsdUJBQXVCLFlBQWMseUJBQXlCLG9CQUFzQiwwQkFBMEIsa0JBQW9CLDBCQUEwQixVQUFZLDBCQUEwQixRQUFVLDRCLHF1QkNENWtCLGNBQ0EsVUFFQSxXQXFGQSxVQTNEQSxTQUFvQixHLE1BQ2QwQixFQUFTLEtBQ2IxQixFQUFRLFdBQ1JDLEVBQVMsWUFDVGdCLEVBQUksT0FDSmIsRUFBWSxlQUNaLElBQUFFLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBQyxlQUFPLElBQUcsR0FBSyxFQUNmLElBQUFJLG1CQUFXLElBQUcsR0FBSyxFQUNuQixJQUFBSCxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQUMsaUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUFDLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBRSwyQkFBbUIsSUFBRyxHQUFLLEVBQzNCLElBQUFDLHlCQUFpQixJQUFHLEdBQUssRUFDekIsSUFBQVIsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFVLG1CQUFXLElBQUcsS0FBRSxFQUNoQixJQUFBQyxhQUFLLElBQUcsV0FBUSxFQUNiVyxFQUFLLElBakJVLHFNQXVCbEIsWUFKeUIsSUFBZEQsSUFDVEEsRUFBWSxLQUlaLHdCQUFDQSxFQUFTLEdBQ1JQLElBQUtmLEVBQVksY0FDTCxjQUNaSCxVQUFXLFVBQVMsQ0FDbEIsVUFBT21CLFVBQ1AsVUFBT0gsR0FDUCxVQUFPRCxJLEtBRUwsRUFBQyxVQUFPVixVQUFXQSxFQUNuQixFQUFDLFVBQU9DLFNBQVVBLEVBQ2xCLEVBQUMsVUFBT0MsVUFBV0EsRUFDbkIsRUFBQyxVQUFPQyxXQUFZQSxFQUNwQixFQUFDLFVBQU9DLFVBQVdBLEVBQ25CLEVBQUMsVUFBT0wsVUFBV0EsRUFDbkIsRUFBQyxVQUFPTSxhQUFjQSxFQUN0QixFQUFDLFVBQU9DLHFCQUFzQkEsRUFDOUIsRUFBQyxVQUFPQyxtQkFBb0JBLEVBQzVCLEVBQUMsVUFBT1EsWUFBYWQsR0FBV1EsRUFBWU8sU0FBUyxRQUNyRCxFQUFDLFVBQU9DLGFBQWNoQixHQUFXUSxFQUFZTyxTQUFTLFMsR0FFeERyQixLQUVFMEIsR0FFaUIsaUJBQWIzQixHQUNSUixNQUFNRCxRQUFRUyxJQUNkQSxFQUFTRixPQUNQLCtCQUFLRyxVQUFXLFVBQU93QixTQUFVekIsR0FDL0IsSyw2QkNqRlYsT0FDZSxXQUFDLFVBQVksMEJBQTBCLEtBQU8sMEJBQTBCLE1BQVEsMEJBQTBCLE9BQVMsMEJBQTBCLE1BQVEsMEJBQTBCLE9BQVMseUJBQXlCLFNBQVcsMEJBQTBCLFFBQVUsMEJBQTBCLFlBQWMsMEJBQTBCLFdBQWEsMEJBQTBCLFNBQVcsMEJBQTBCLFlBQWMsMEJBQTBCLG9CQUFzQiwwQkFBMEIsa0JBQW9CLDBCQUEwQixVQUFZLDBCQUEwQixTQUFXLDBCQUEwQixTQUFXLDBCQUEwQixRQUFVLDBCLG9MQ0Q3cEIsWUFBUyw2RUFBQUQsWSwyckJDQVQsY0FDQSxVQUVBLE9BR0EsV0F3REEsVUF4Q0EsU0FBa0IsRyxJQUNoQjZCLEVBQUssUUFDTEMsRUFBUSxXQUNSQyxFQUFXLGNBQ1hDLEVBQU8sVUFDUDFCLEVBQVEsV0FDUnhDLEVBQUksT0FDSm9DLEVBQVMsWUFDVCtCLEVBQWEsZ0JBQ2IsSUFBQWYsWUFBSSxJQUFHLFdBQVEsRUFDZixJQUFBSCxpQkFBUyxJQUFHLEdBQUssRUFFWG1CLEVBQWUsRUFBQUMsYUFDbkIsU0FBQ0MsR0FDQyxPQUFBTixFQUFVTSxFQUFFQyxPQUE0QkwsV0FDMUMsQ0FBQ0YsSUFHSCxPQUNFLHdCQUFDLEVBQUFRLE1BQUssQ0FBQzlELE1BQU9xRCxHQUNaLCtDQUNjLFdBQ1pULElBQUssU0FBQ21CLEdBQ0FBLElBQ0ZBLEVBQVNOLGNBQWdCQSxJQUc3QkQsUUFBU0EsRUFDVDFCLFNBQVVBLEVBQ1ZKLFVBQVcsVUFBUyxDQUFDLFVBQU9zQyxTQUFVdEMsRUFBVyxVQUFPZ0IsS0FDeERZLFNBQVVJLEVBQ1ZILFlBQWFBLEVBQ2JqRSxLQUFNQSxFQUNOcUQsS0FBSyxXQUNMSixVQUFXQSxPLGtLQ3hEbkIsY0FDQSxVQUVBLFdBcUJBLFVBWkEsU0FBZSxHLElBQUViLEVBQVMsWUFBRUQsRUFBUSxXQUFFekIsRUFBSyxRQUFFNkIsRUFBWSxlQUN2RCxPQUNFLGlDQUNFZSxJQUFLZixFQUNMSCxVQUFXLFVBQVMsQ0FBQyxVQUFPbUIsVUFBV25CLEtBRXRDMUIsRUFDQXlCLEssNkJDbkJQLE9BQ2UsV0FBQyxVQUFZLDRCLDZCQ0Q1QixPQUNlLFdBQUMsU0FBVywwQkFBMEIsTUFBUSwwQkFBMEIsT0FBUywwQkFBMEIsTUFBUSwwQkFBMEIsT0FBUyw0Qix1TENEckssWUFBUyxnRkFBQUQsWSxrS0NBVCxjQUNBLFVBRUEsT0FDQSxXQXFDQSxVQTFCQSxTQUFxQixHLElBQ25CeUMsRUFBTSxTQUNOcEMsRUFBWSxlQUNacUMsRUFBUSxXQUNSQyxFQUFhLGdCQUNiLElBQUFDLGlCQUFTLElBQUcsYUFBVSxFQUV0QixPQUNFLCtCQUNFeEIsSUFBS2YsRUFDTEgsVUFBVyxVQUFTLENBQUMsVUFBTzJDLFlBQWEsVUFBT0QsTUFFL0NILEVBQU9LLEtBQUksU0FBQ0MsR0FDWCxPQUNFLHdCQUFDLEVBQUFDLFlBQVcsQ0FDVmxFLElBQUtpRSxFQUFNakUsSUFDWGlFLE1BQU9BLEVBQ1BFLFdBQVlGLElBQVVKLEVBQ3RCdkMsUUFBUyxXQUFNLE9BQUFzQyxFQUFTSyxZLGtLQ2pDcEMsY0FDQSxVQUVBLFdBa0NBLFVBeEJBLFNBQXFCLEcsTUFDbkJBLEVBQUssUUFDTDFDLEVBQVksZUFDWkQsRUFBTyxVQUNQLElBQUE2QyxrQkFBVSxJQUFHLEdBQUssRUFFbEIsT0FDRSxrQ0FDRTdCLElBQUtmLEVBQ0xILFVBQVcsVUFBUyxDQUNsQixVQUFPZ0QsYSxLQUVMLEVBQUMsVUFBT0MsVUFBV0YsRSxLQUVyQixjQUNVLGVBQ1o3QyxRQUFTQSxFQUNUZ0QsTUFBTyxDQUFFQyxnQkFBaUJOLEVBQU1PLFVBRWhDLGdDQUFNcEQsVUFBVyxVQUFPcUQsUUFBUyxVQUFVUixFQUFNbEIsTUFBSyxhLDZCQ2hDNUQsT0FDZSxXQUFDLFlBQWMsd0JBQXdCLFNBQVcsMEJBQTBCLE9BQVMsNEIsNkJDRHBHLE9BQ2UsV0FBQyxZQUFjLDBCQUEwQixXQUFhLDBCQUEwQixTQUFXLDRCLDZMQ0QxRyxZQUFTLHNGQUFBN0IsWSxrS0NBVCxjQUNBLFVBRUEsT0FDQSxXQWdCQSxTQUFTd0QsRUFBa0IsRyxNQUN6QnZELEVBQVEsV0FDUkksRUFBWSxlQUNab0QsRUFBTSxTQUNOQyxFQUFNLFNBQ04sSUFBQUMsbUJBQVcsSUFBRyxLQUFFLEVBQ2hCLElBQUFDLG9CQUFZLElBQUcsS0FBRSxFQUNqQixJQUFBQyxlQUFPLElBQUcsZUFBUSxFQUNsQixJQUFBbkQsaUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUFvRCxpQkFBUyxJQUFHLEdBQUssRUFDakIsSUFBQXJELGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBc0Qsa0JBQVUsSUFBRyxPQUFJLEVBRWpCLE9BQ0Usd0JBQUMsRUFBQUMsTUFBSyxDQUNKM0QsYUFBY0EsRUFDZHFELE9BQVFBLEVBQ1JHLFFBQVNBLEVBQ1RDLFVBQVdBLEVBQ1hyRCxTQUFVQSxFQUNWc0QsV0FBWUEsR0FFWiwrQkFBSzdELFVBQVcsVUFBT21CLFdBQ3JCLDhCQUFJbkIsVUFBVyxVQUFPK0QsYUFBY1IsR0FDcEMsK0JBQ0V2RCxVQUFXLFVBQVMsQ0FDbEIsVUFBT2dFLGMsS0FDTCxFQUFDLFVBQU94RCxXQUFZQSxFQUFTLE1BR2hDVCxHQUVILCtCQUFLQyxVQUFXLFVBQU9pRSx1QkFDckIsK0JBQUtqRSxVQUFXLFVBQU9rRSxjQUFlVCxHQUN0QywrQkFBS3pELFVBQVcsVUFBT2tFLGNBQWVSLE1BT2hESixFQUFrQmEsWUFBYyxvQkFFaEMsVUFBZWIsRywyckJDL0RmLGNBQ0EsUUFDQSxVQUVBLFdBcUVBLFVBdkRBLFNBQWUsRyxRQUNidkQsRUFBUSxXQUNSSSxFQUFZLGVBQ1pxRCxFQUFNLFNBQ05ZLEVBQU0sU0FDTixJQUFBMUQsbUJBQVcsSUFBRyxHQUFLLEVBQ25CLElBQUFILGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBcUQsaUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUFELGVBQU8sSUFBRyxlQUFRLEVBQ2xCLElBQUFFLGtCQUFVLElBQUcsT0FBSSxFQUVqQixFQUFBUSxXQUFXLFNBQVVWLEdBRXJCLElBQU1XLEVBQXFCLEVBQUFyQyxhQUFZLFdBQ3JDMEIsTUFDQyxDQUFDQSxJQUVKLE9BQ0VILEdBQ0UsK0JBQUt0QyxJQUFLZixHQUNSLCtCQUNFK0MsTUFBTyxDQUFFcUIsT0FBUVYsR0FDakI3RCxVQUFXLFVBQVMsQ0FDbEIsVUFBT3dFLFMsS0FDTCxFQUFDLFVBQU9aLFdBQVlBLEVBQVMsS0FDL0IsY0FDVSxnQkFDWjFELFFBQVNvRSxJQUVYLCtCQUNFcEIsTUFBTyxDQUFFcUIsT0FBUVYsRUFBYSxHQUM5QjdELFVBQVcsVUFBUyxDQUNsQixVQUFPeUUsTyxLQUVMLEVBQUMsVUFBTy9ELGFBQWNBLEVBQ3RCLEVBQUMsVUFBT0gsVUFBV0EsRSxLQUVyQixjQUNVLFNBRVhSLEdBRUZxRSxHQUNDLCtCQUNFbEIsTUFBTyxDQUFFcUIsT0FBUVYsRUFBYSxHQUM5QjdELFVBQVcsVUFBTzBFLGFBRWpCTixNLDZCQ2pFYixPQUNlLFdBQUMsUUFBVSwwQkFBMEIsVUFBWSwwQkFBMEIsTUFBUSwwQkFBMEIsWUFBYywwQkFBMEIsU0FBVywwQkFBMEIsWUFBYyw0Qiw2QkNEdk4sT0FDZSxXQUFDLFVBQVksd0JBQXdCLFlBQWMsMEJBQTBCLGFBQWUsd0JBQXdCLFVBQVksMEJBQTBCLHNCQUF3QiwwQkFBMEIsYUFBZSw0QixxTENEMU8sWUFBUyw4RUFBQXRFLFksa0tDQVQsY0FDQSxVQUdBLFdBdUVBLFVBakRBLFNBQW1CLEcsTUFDakJDLEVBQVEsV0FDUjRFLEVBQU0sU0FDTi9DLEVBQVEsV0FDUlMsRUFBUSxXQUNSLElBQUF1QyxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQXhFLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBQyxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQUUsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFFLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBRCxpQkFBUyxJQUFHLEdBQUssRUFDakIsSUFBQUUsbUJBQVcsSUFBRyxHQUFLLEVBQ25CLElBQUFDLDJCQUFtQixJQUFHLEdBQUssRUFDM0IsSUFBQUMseUJBQWlCLElBQUcsR0FBSyxFQUN6QixJQUFBTixlQUFPLElBQUcsR0FBSyxFQUNmLElBQUFVLFlBQUksSUFBRyxXQUFRLEVBRWYsT0FDRSxpQ0FDRWhCLFVBQVcsVUFBUyxDQUNsQixVQUFPMkIsTUFDUCxVQUFPWCxJLEtBRUwsRUFBQyxVQUFPWCxVQUFXQSxFQUNuQixFQUFDLFVBQU9DLFNBQVVBLEVBQ2xCLEVBQUMsVUFBT0MsVUFBV0EsRUFDbkIsRUFBQyxVQUFPRSxVQUFXQSxFQUNuQixFQUFDLFVBQU9ELFdBQVlBLEVBQ3BCLEVBQUMsVUFBT0UsYUFBY0EsRUFDdEIsRUFBQyxVQUFPQyxxQkFBc0JBLEVBQzlCLEVBQUMsVUFBT0MsbUJBQW9CQSxFLE1BSWhDLGlDQUNFWixVQUFXLFVBQU82RSxNQUNsQjVELEtBQUssT0FDTDZELEdBQUcsT0FDSEgsT0FBUUEsRUFDUkMsU0FBVUEsRUFDVjFELElBQUttQixFQUNMakMsU0FBVUEsRUFDVndCLFNBQVVBLElBRVg3QixLLDZCQ3RFUCxPQUNlLFdBQUMsTUFBUSwwQkFBMEIsTUFBUSx3QkFBd0IsTUFBUSwwQkFBMEIsTUFBUSwwQkFBMEIsT0FBUywwQkFBMEIsU0FBVywwQkFBMEIsUUFBVSx1QkFBdUIsU0FBVyx3QkFBd0IsU0FBVywwQkFBMEIsVUFBWSwwQkFBMEIsWUFBYyx3QkFBd0Isb0JBQXNCLHdCQUF3QixrQkFBb0IsMEIseUxDRHJkLFlBQVMsa0ZBQUFELFksa0tDQVQsY0FDQSxVQUVBLFdBK0RBLFVBakNBLFNBQXVCLEcsTUFDckJDLEVBQVEsV0FDUkksRUFBWSxlQUNaLElBQUE0RSxjQUFNLElBQUcsV0FBUSxFQUNqQixJQUFBQyxpQkFBUyxJQUFHLEdBQUVDLFdBQVksU0FBVUMsU0FBVSxTQUFVQyxPQUFRLFlBQVksRUFFdEVDLEVBQ3FCLFdBQXpCSixFQUFVQyxXQUNOLG1CQUNBRCxFQUFVQyxXQUVWSSxFQUNtQixXQUF2QkwsRUFBVUUsU0FBd0IsaUJBQW1CRixFQUFVRSxTQUVqRSxPQUNFLCtCQUNFaEUsSUFBS2YsRUFBWSxjQUNMLGlCQUNaSCxVQUFXLFVBQVMsQ0FDbEIsVUFBT21CLFVBQ1AsVUFBT2lFLEdBQ1AsVUFBT0MsR0FDUCxVQUFPTixJLEtBRUwsRUFBQyxVQUFPTyxPQUE2QixjQUFyQk4sRUFBVUcsTyxNQUk3QnBGLEssNkJDN0RQLE9BQ2UsV0FBQyxVQUFZLDBCQUEwQixJQUFNLDBCQUEwQixPQUFTLDBCQUEwQixNQUFRLDBCQUEwQixNQUFRLHdCQUF3QixZQUFjLHdCQUF3QixJQUFNLDBCQUEwQixRQUFVLDBCQUEwQixVQUFZLDBCQUEwQixNQUFRLDBCQUEwQixVQUFZLHdCQUF3QixZQUFjLDBCQUEwQixPQUFTLDBCQUEwQixXQUFhLDBCQUEwQixhQUFlLDBCQUEwQixLQUFPLHdCQUF3QixTQUFXLDBCQUEwQixXQUFhLDBCQUEwQixpQkFBbUIsMEJBQTBCLGVBQWlCLDRCLGtLQ0RydEIsY0FDQSxVQUNBLFdBZ0NBLFVBdkJBLFNBQWMsRyxNQUNad0YsRUFBRyxNQUNIQyxFQUFHLE1BQ0hyRixFQUFZLGVBQ1osSUFBQWEsWUFBSSxJQUFHLFdBQVEsRUFDZixJQUFBWCxnQkFBUSxJQUFHLEdBQUssRUFFaEIsT0FDRSwrQkFDRWEsSUFBS2YsRUFDTEgsVUFBVyxVQUFTLENBQ2xCLFVBQU95RixLQUNQLFVBQU96RSxJLEtBQ0wsRUFBQyxVQUFPWCxVQUFXQSxFQUFRLEtBRS9CcUYsWUFBWSxZQUFXLGNBQ1gsT0FDWkYsSUFBS0EsRUFDTEQsSUFBS0EsTSw2QkM3QlgsT0FDZSxXQUFDLEtBQU8sMEJBQTBCLE1BQVEsd0JBQXdCLE9BQVMsMEJBQTBCLE1BQVEsMEJBQTBCLE9BQVMsd0JBQXdCLFNBQVcsNEIsc0xDRGxNLFlBQVMsK0VBQUF6RixZLGtLQ0FULGNBQ0EsVUFFQSxPQUNBLFdBQ0EsT0FvRUEsVUEvQ0EsU0FBb0IsRyxNQUNsQkUsRUFBUyxZQUNURyxFQUFZLGVBQ1pvRixFQUFHLE1BQ0hDLEVBQUcsTUFDSCxJQUFBRyxvQkFBWSxJQUFHLE9BQUksRUFDbkIsSUFBQTdFLG1CQUFXLElBQUcsS0FBRSxFQUNoQixJQUFBWixlQUFPLElBQUcsZUFBUSxFQUNsQixJQUFBRSxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQUMsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFFLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBRSxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQUMsbUJBQVcsSUFBRyxHQUFLLEVBQ25CLElBQUFKLGVBQU8sSUFBRyxHQUFLLEVBQ2YsSUFBQVUsWUFBSSxJQUFHLFdBQVEsRUFDZixJQUFBQyxZQUFJLElBQUcsV0FBUSxFQUVmLE9BQ0Usa0NBQ0VDLElBQUtmLEVBQ0xILFVBQVcsVUFBUyxDQUNsQixVQUFPbUIsVUFDUCxVQUFPSCxJLEtBRUwsRUFBQyxVQUFPWCxVQUFXQSxFQUNuQixFQUFDLFVBQU9DLFNBQVVBLEVBQ2xCLEVBQUMsVUFBT0MsVUFBV0EsRUFDbkIsRUFBQyxVQUFPRSxVQUFXQSxFQUNuQixFQUFDLFVBQU9DLGFBQWNBLEVBQ3RCLEVBQUMsVUFBT2tGLFdBQVl0RixHQUFXUSxFQUFZTyxTQUFTLE9BQ3BELEVBQUMsVUFBT0MsYUFBY2hCLEdBQVdRLEVBQVlPLFNBQVMsU0FDdEQsRUFBQyxVQUFPd0UsY0FBZXZGLEdBQVdRLEVBQVlPLFNBQVMsVUFDdkQsRUFBQyxVQUFPRCxZQUFhZCxHQUFXUSxFQUFZTyxTQUFTLFEsR0FFdkRyQixJQUVGSSxTQUFVQSxFQUNWRixRQUFTQSxFQUNUZSxLQUFNQSxFQUNOTSxLQUFLLFVBRUwsd0JBQUMsRUFBQXVFLEtBQUksQ0FBQ1AsSUFBS0EsRUFBS0MsSUFBS0EsRUFBS3hFLEtBQU1BLEVBQU1YLFNBQVVBLElBQy9Dc0YsR0FBZ0Isd0JBQUMsRUFBQUksWUFBVyxLQUFFSixNLDZCQ3BFckMsT0FDZSxXQUFDLFVBQVksd0JBQXdCLE1BQVEsMEJBQTBCLE9BQVMsd0JBQXdCLE1BQVEsd0JBQXdCLE9BQVMsd0JBQXdCLFFBQVUsMEJBQTBCLFVBQVksMEJBQTBCLFlBQWMsMEJBQTBCLGFBQWUsd0JBQXdCLFdBQWEsMEJBQTBCLFNBQVcsMEJBQTBCLFNBQVcsMEJBQTBCLFNBQVcsd0JBQXdCLFlBQWMsNEIsMExDRG5mLFlBQVMsbUZBQUE3RixZLHF1QkNBVCxjQUVBLFVBQ0EsT0FDQSxXQUVBLE9BeUVBLFVBbERBLFNBQXdCLEcsTUFDbEIyQixFQUFTLEtBQ2J0QixFQUFZLGVBQ1pILEVBQVMsWUFDVHVGLEVBQUcsTUFDSEMsRUFBRyxNQUNILElBQUFHLG9CQUFZLElBQUcsT0FBSSxFQUNuQixJQUFBdEYsZ0JBQVEsSUFBRyxHQUFLLEVBQ2hCLElBQUFFLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBRSxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQUMsbUJBQVcsSUFBRyxHQUFLLEVBQ25CLElBQUFKLGVBQU8sSUFBRyxHQUFLLEVBQ2YsSUFBQVEsbUJBQVcsSUFBRyxLQUFFLEVBQ2hCLElBQUFWLGdCQUFRLElBQUcsR0FBSyxFQUNoQixJQUFBWSxZQUFJLElBQUcsV0FBUSxFQUNaVSxFQUFLLElBZmMsdUpBcUJ0QixZQUp5QixJQUFkRCxJQUNUQSxFQUFZLEtBSVosd0JBQUNBLEVBQVMsR0FDUlAsSUFBS2YsRUFBWSxjQUNMLG1CQUNaSCxVQUFXLFVBQVMsQ0FDbEIsVUFBT21CLFVBQ1AsVUFBT0gsSSxLQUVMLEVBQUMsVUFBT1gsVUFBV0EsRUFDbkIsRUFBQyxVQUFPQyxTQUFVQSxFQUNsQixFQUFDLFVBQU9DLFVBQVdBLEVBQ25CLEVBQUMsVUFBT0UsVUFBV0EsRUFDbkIsRUFBQyxVQUFPTCxVQUFXQSxFQUNuQixFQUFDLFVBQU9NLGFBQWNBLEVBQ3RCLEVBQUMsVUFBT2tGLFdBQVl0RixHQUFXUSxFQUFZTyxTQUFTLE9BQ3BELEVBQUMsVUFBT0MsYUFBY2hCLEdBQVdRLEVBQVlPLFNBQVMsU0FDdEQsRUFBQyxVQUFPd0UsY0FBZXZGLEdBQVdRLEVBQVlPLFNBQVMsVUFDdkQsRUFBQyxVQUFPRCxZQUFhZCxHQUFXUSxFQUFZTyxTQUFTLFEsR0FFdkRyQixLQUVFMEIsR0FFSix3QkFBQyxFQUFBb0UsS0FBSSxDQUFDUCxJQUFLQSxFQUFLQyxJQUFLQSxFQUFLeEUsS0FBTUEsRUFBTVgsU0FBVUEsSUFDL0NzRixHQUFnQix3QkFBQyxFQUFBSSxZQUFXLEtBQUVKLE0sNkJDMUVyQyxPQUNlLFdBQUMsVUFBWSwwQkFBMEIsTUFBUSwwQkFBMEIsT0FBUywwQkFBMEIsTUFBUSx5QkFBeUIsT0FBUyx3QkFBd0IsUUFBVSwwQkFBMEIsVUFBWSwwQkFBMEIsWUFBYywwQkFBMEIsYUFBZSwwQkFBMEIsV0FBYSx5QkFBeUIsU0FBVywwQkFBMEIsU0FBVyx3QkFBd0IsU0FBVywwQkFBMEIsWUFBYywwQkFBMEIsU0FBVyw0QixpTENEOWhCLFlBQVMsMEVBQUE3RixZLGtLQ0FULGNBQ0EsVUFFQSxXQW9EQSxVQXRDQSxTQUF3QixHLElBQ3RCeUYsRUFBRyxNQUNIQyxFQUFHLE1BQ0hRLEVBQVEsV0FDUkMsRUFBUyxZQUNUbEcsRUFBUSxXQUNSSSxFQUFZLGVBQ1osSUFBQTRFLGNBQU0sSUFBRyxZQUFTLEVBQ2xCLElBQUFtQixnQkFBUSxNQUFFLE9BQU0sRUFDaEIsSUFBQUMsZUFBTyxNQUFFLFFBQU8sRUFFVkMsRUFDSiwrQkFDRXBHLFVBQVcsVUFBUyxDQUFDLFVBQU9xRyxNQUFPLFVBQU90QixLQUMxQ1csWUFBWSxZQUFXLGNBQ1gsUUFDWkYsSUFBS0EsRUFDTEQsSUFBS0EsRUFDTGUsTUFBT04sRUFDUE8sT0FBUU4sRUFDUkMsU0FBVUEsRUFDVkMsUUFBU0EsSUFJYixPQUFPcEcsRUFDTCwrQkFDRW1CLElBQUtmLEVBQ0xILFVBQVcsVUFBUyxDQUFDLFVBQU9tQixVQUFXLFVBQU9xRixjQUU3Q0osRUFDQXJHLEdBQVksK0JBQUtDLFVBQVcsVUFBT3dFLFNBQVV6RSxJQUU5QyxJLDZCQ2xETixPQUNlLFdBQUMsVUFBWSwwQkFBMEIsV0FBYSwwQkFBMEIsUUFBVSx3QkFBd0IsTUFBUSwwQkFBMEIsTUFBUSwwQkFBMEIsUUFBVSwwQkFBMEIsb0JBQXNCLDBCQUEwQixrQkFBb0IsNEIsc05DRDNTLFlBQVMsNkVBQUFELFdBQ1QsWUFBUyxpRkFBQUEsV0FDVCxZQUFTLHFGQUFBQSxZLGtLQ0ZULGNBQ0EsVUFFQSxXQThCQSxVQXBCQSxTQUFrQixHLElBQ2hCQyxFQUFRLFdBQ1JDLEVBQVMsWUFDVEcsRUFBWSxlQUNab0QsRUFBTSxTQUNOa0QsRUFBYSxnQkFFYixPQUNFLCtCQUFLdkYsSUFBS2YsRUFBY0gsVUFBVyxVQUFTLENBQUMsVUFBT21CLFVBQVduQixNQUMzRHVELEdBQVVrRCxJQUNWLCtCQUFLekcsVUFBVyxVQUFPdUQsUUFDcEJBLEdBQVUsOEJBQUl2RCxVQUFXLFVBQU8wRyxhQUFjbkQsR0FDOUNrRCxHQUdMLDhCQUFJekcsVUFBVyxVQUFPMkcsTUFBTzVHLE0sNkJDNUJuQyxPQUNlLFdBQUMsVUFBWSx3QkFBd0IsT0FBUywwQkFBMEIsWUFBYywwQkFBMEIsS0FBTyw0QixrS0NEdEksY0FDQSxVQUVBLE9BRUEsVUEyQ0EsVUE5QkEsU0FBc0IsRyxJQUNwQkEsRUFBUSxXQUNSLElBQUE2RyxjQUFNLElBQUcsR0FBSyxFQUNkLElBQUF4RyxnQkFBUSxJQUFHLEdBQUssRUFDaEIsSUFBQU0sbUJBQVcsSUFBRyxHQUFLLEVBQ25CLElBQUFGLGlCQUFTLElBQUcsR0FBSyxFQUNqQixJQUFBUSxZQUFJLElBQUcsV0FBUSxFQUNmLElBQUFELGFBQUssSUFBRyxXQUFRLEVBQ2hCLElBQUFiLGVBQU8sSUFBRyxlQUFRLEVBRWxCLE9BQ0UsOEJBQUlGLFVBQVcsVUFBUyxDQUFDLFVBQU82RyxnQkFDOUIsd0JBQUMsRUFBQUMsT0FBTSxDQUNMNUcsUUFBU0EsRUFDVEUsU0FBVUEsRUFDVkMsU0FBVXVHLEVBQ1ZsRyxZQUFhQSxFQUNiRixVQUFXQSxFQUNYTyxNQUFPQSxFQUNQQyxLQUFNQSxFQUNOTCxxQkFBbUIsRUFDbkJKLFVBQVEsRUFDUkUsVUFBUSxHQUVQVixNLHF1QkMxQ1QsY0FDQSxVQUVBLE9BQ0EsVUFpREEsVUFsQ0EsU0FBMEIsR0FDeEIsSUFBQUEsRUFBUSxXQUNKMEIsRUFBUyxLQUNiLElBQUFtRixjQUFNLElBQUcsR0FBSyxFQUNkLElBQUFsRyxtQkFBVyxJQUFHLEdBQUssRUFDbkIsSUFBQUYsaUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUFPLGFBQUssSUFBRyxXQUFRLEVBQ2hCLElBQUFDLFlBQUksSUFBRyxXQUFRLEVBQ1pVLEVBQUssSUFSZ0IscUVBY3hCLFlBSnlCLElBQWRELElBQ1RBLEVBQVksS0FJWiw4QkFBSXpCLFVBQVcsVUFBUyxDQUFDLFVBQU82RyxnQkFDOUIsd0JBQUMsRUFBQUUsV0FBVSxHQUNUQyxHQUFJdkYsRUFDSnBCLFNBQVV1RyxFQUNWbEcsWUFBYUEsRUFDYkYsVUFBV0EsRUFDWE8sTUFBT0EsRUFDUEMsS0FBTUEsRUFDTkwscUJBQW1CLEVBQ25CSixVQUFRLEVBQ1JFLFVBQVEsR0FDSmlCLEdBRUgzQixNLDBOQy9DVCxZQUFTLHlFQUFBRCxXQUNULFlBQVMsa0ZBQUFBLFdBQ1QsWUFBUyw2RUFBQUEsV0FDVCxZQUFTLGlGQUFBQSxZLGtLQ0hULGNBQ0EsVUFFQSxXQW9EQSxVQXpDQSxTQUFjLEcsUUFDWkMsRUFBUSxXQUNSSSxFQUFZLGVBQ1pILEVBQVMsWUFDVCxJQUFBd0QsY0FBTSxJQUFHLEdBQUksRUFDYkQsRUFBTSxTQUNOMEQsRUFBTSxTQUVOLE9BQUt6RCxFQUtILGdEQUNFLCtCQUNFdEMsSUFBS2YsRUFDTEgsVUFBVyxVQUFTLENBQ2xCLFVBQU9rSCxNLEtBQ0wsRUFBQyxVQUFPQyxNQUFPM0QsRUFBTSxHQUN2QnhELEtBR0YsK0JBQUtBLFVBQVcsVUFBT29ILGlCQUNwQjdELEdBQVVDLEdBQVUsOEJBQUl4RCxVQUFXLFVBQU91RCxRQUFTQSxHQUNwRCxrQ0FBS0MsR0FBVXpELElBRWhCa0gsR0FBVXpELEdBQ1QsK0JBQ0V4RCxVQUFXLFVBQVMsQ0FDbEIsVUFBT2lILFEsS0FDTCxFQUFDLFVBQU94RyxXQUFZVixFQUFRLE1BRy9Ca0gsS0F4QkYsTyw2QkN2QlgsT0FDZSxXQUFDLEtBQU8sMEJBQTBCLEtBQU8sMEJBQTBCLFNBQVcsMEJBQTBCLE9BQVMsdUJBQXVCLE9BQVMsMEJBQTBCLFNBQVcsMEJBQTBCLGdCQUFrQiw0QiwyckJDRGpQLGNBTUEsVUFFQSxXQXdDQSxVQUFlLEVBQUFJLFlBMUJmLFNBQ0UsRUFNQW5HLEcsSUFMRW5CLEVBQVEsV0FDUnFFLEVBQU0sU0FDTnBFLEVBQVMsWUFDVCxJQUFBZ0YsaUJBQVMsSUFBRyxHQUFFQyxXQUFZLE9BQVFDLFNBQVUsVUFBVSxFQUl4RCxPQUNFLCtCQUFLaEUsSUFBS0EsRUFBS2xCLFVBQVcsVUFBUyxDQUFDLFVBQU9tQixVQUFXbkIsS0FDbkRvRSxFQUVELCtCQUNFcEUsVUFBVyxVQUFTLENBQ2xCLFVBQU9zSCxjQUNQLFVBQU90QyxFQUFVQyxZQUNqQixVQUFPRCxFQUFVRSxhQUdsQm5GLFEsNkJDMUNULE9BQ2UsV0FBQyxVQUFZLDBCQUEwQixjQUFnQiwwQkFBMEIsSUFBTSx3QkFBd0IsTUFBUSwwQkFBMEIsS0FBTyx3QkFBd0IsT0FBUyw0QixrS0NEeE0sY0FDQSxVQUVBLFdBZ0NBLFVBdEJBLFNBQWtCLEcsUUFDaEJBLEVBQVEsV0FDUkMsRUFBUyxZQUNURSxFQUFPLFVBQ1AsSUFBQU0saUJBQVMsSUFBRyxHQUFLLEVBQ2pCLElBQUErRyxnQkFBUSxJQUFHLEdBQUssRUFFaEIsT0FDRSw4QkFDRXZILFVBQVcsVUFBUyxDQUNsQixVQUFPd0gsVSxLQUNMLEVBQUMsVUFBT1osUUFBU1csRUFBUSxJLEtBQ3pCLEVBQUMsVUFBTy9HLFdBQVlBLEVBQVMsR0FDL0JSLElBRUZFLFFBQVNBLEdBRVJILEssNkJDOUJQLE9BQ2UsV0FBQyxTQUFXLDBCQUEwQixVQUFZLDBCQUEwQixPQUFTLDRCLHF1QkNEcEcsY0FDQSxVQUVBLFdBcUNBLFVBMUJBLFNBQXNCLEcsTUFDaEIwQixFQUFTLEtBQ2IxQixFQUFRLFdBQ1JDLEVBQVMsWUFDVCxJQUFBUSxpQkFBUyxJQUFHLEdBQUssRUFDZGtCLEVBQUssSUFMWSwyQ0FXcEIsWUFKeUIsSUFBZEQsSUFDVEEsRUFBWSxLQUlaLHdCQUFDQSxFQUFTLGlCQUNJLGlCQUNaekIsVUFBVyxVQUFTLENBQ2xCLFVBQU95SCxhQUNQekgsRyxLQUNFLEVBQUMsVUFBT1EsV0FBWUEsRUFBUyxNQUU3QmtCLEdBRUgzQixLLDZCQ25DUCxPQUNlLFdBQUMsYUFBZSwwQkFBMEIsVUFBWSx3QkFBd0IsT0FBUywwQkFBMEIsU0FBVyw0QixtTENEM0ksWUFBUyw0RUFBQUQsWSxrS0NBVCxjQUNBLFVBQ0EsV0FtQ0EsVUF6QkEsU0FBaUIsRyxNQUNmQyxFQUFRLFdBQ1JJLEVBQVksZUFDWixJQUFBTyxtQkFBVyxJQUFHLEdBQUssRUFDbkIsSUFBQWdILGVBQU8sSUFBRyxHQUFLLEVBQ2YsSUFBQXhILGVBQU8sSUFBRyxlQUFRLEVBRWxCLE9BQ0UsK0JBQ0VnQixJQUFLZixFQUFZLGNBQ0wsVUFDWkgsVUFBVyxVQUFTLENBQ2xCLFVBQU93RSxTLEtBRUwsRUFBQyxVQUFPOUQsYUFBY0EsRUFDdEIsRUFBQyxVQUFPNEUsT0FBUW9DLEUsS0FHcEJ4SCxRQUFTQSxHQUVSSCxLLDZCQ2hDUCxPQUNlLFdBQUMsUUFBVSx3QkFBd0IsWUFBYywwQkFBMEIsTUFBUSw0QixxTENEbEcsWUFBUyw4RUFBQUQsWSwyckJDQVQsY0FDQSxVQUVBLE9BQ0EsV0E4REEsVUE1Q0EsU0FBbUIsRyxNQUNqQjZCLEVBQUssUUFDTEMsRUFBUSxXQUNSK0YsRUFBTSxTQUNOQyxFQUFTLFlBQ1QvRixFQUFXLGNBQ1h2RCxFQUFLLFFBQ0xWLEVBQUksT0FDSnlFLEVBQVEsV0FDUixJQUFBckIsWUFBSSxJQUFHLFdBQVEsRUFDZixJQUFBQyxZQUFJLElBQUcsU0FBTSxFQUNiLElBQUFKLGlCQUFTLElBQUcsR0FBSyxFQUNqQixJQUFBSixnQkFBUSxJQUFHLEdBQUssRUFFVnVCLEVBQWUsRUFBQUMsYUFDbkIsU0FBQ0MsR0FDS04sR0FDRkEsRUFBVU0sRUFBRUMsT0FBNEI3RCxTQUc1QyxDQUFDc0QsSUFHR2lHLEVBQ0osK0NBQ2MsUUFDWjNHLElBQUttQixFQUNMckMsVUFBVyxVQUFTLENBQUMsVUFBTzhILFVBQVcsVUFBTzlHLElBQUssS0FBRyxFQUFDLFVBQU9QLFVBQVdBLEVBQVEsS0FDakZtQixTQUFVSSxFQUNWMkYsT0FBUUEsRUFDUkMsVUFBV0EsRUFDWC9GLFlBQWFBLEVBQ2JqRSxLQUFNQSxFQUNOcUQsS0FBTUEsRUFDTjNDLE1BQU9BLEVBQ1B1QyxVQUFXQSxJQUdmLE9BQUljLEVBQ0ssd0JBQUMsRUFBQVMsTUFBSyxDQUFDOUQsTUFBT3FELEdBQVFrRyxHQUV0QixnREFBR0EsSyw2QkMvRGQsT0FDZSxXQUFDLFVBQVksMEJBQTBCLE1BQVEsMEJBQTBCLE9BQVMsMEJBQTBCLE1BQVEsMEJBQTBCLE9BQVMsMEJBQTBCLFNBQVcsMEIsa01DRDNNLFlBQVMsMEVBQUEvSCxXQUNULFlBQVMsbUZBQUFBLFksa0tDRFQsY0FFQSxXQXFCQSxVQWJBLFNBQWUsRyxJQUFFQyxFQUFRLFdBQUVJLEVBQVksZUFBRSxJQUFBRCxlQUFPLElBQUcsZUFBUSxFQUN6RCxPQUNFLCtCQUNFZ0IsSUFBS2YsRUFDTEgsVUFBVyxVQUFPK0gsTUFDbEI3SCxRQUFTQSxFQUFPLGNBQ0osU0FFWEgsSyw2QkNsQlAsT0FDZSxXQUFDLE1BQVEsMEJBQTBCLFNBQVcsNEIsa0tDRDdELGNBRUEsVUFDQSxXQWtCQSxVQVpBLFNBQXdCLEcsSUFBRUEsRUFBUSxXQUFFOEQsRUFBVSxhQUM1QyxPQUNFLCtCQUNFN0QsVUFBVyxVQUFTLENBQUMsVUFBT2dJLGlCQUM1QjlFLE1BQU8sQ0FBRXFCLE9BQVFWLEdBQVksY0FDakIsbUJBRVg5RCxLLDZCQ2hCUCxPQUNlLFdBQUMsZUFBaUIsNEIsaUxDRGpDLFlBQVMsMEVBQUFELFksa0tDQVQsY0FDQSxVQUVBLFdBdUVBLFVBOUNBLFNBQWUsRyxJQUNieUYsRUFBRyxNQUNIdEUsRUFBSSxPQUNKbEIsRUFBUSxXQUNSSSxFQUFZLGVBQ1o4SCxFQUFNLFNBQ04sSUFBQUMsYUFBSyxJQUFHLEdBQUksRUFDWixJQUFBQyxZQUFJLElBQUcsR0FBSSxFQUNYLElBQUFDLGdCQUFRLElBQUcsR0FBSSxFQUNmLElBQUFyRCxjQUFNLElBQUcsWUFBUyxFQUVsQixPQUFPaEYsRUFDTCwrQkFDRW1CLElBQUtmLEVBQ0xILFVBQVcsVUFBUyxDQUFDLFVBQU9tQixVQUFXLFVBQU9xRixjQUU5QywrQ0FDYyxRQUNaZCxZQUFZLFlBQ1oxRixVQUFXLFVBQVMsQ0FBQyxVQUFPcUksTUFBTyxVQUFPdEQsS0FDMUNtRCxNQUFPQSxFQUNQQyxLQUFNQSxFQUNOQyxTQUFVQSxFQUNWSCxPQUFRQSxFQUNSSyxhQUFXLEdBRVgsZ0RBQW9CLFNBQVMvQyxJQUFLQSxFQUFLdEUsS0FBTUEsS0FFOUNsQixHQUFZLCtCQUFLQyxVQUFXLFVBQU93RSxTQUFVekUsSUFHaEQsK0NBQ2MsUUFDWjJGLFlBQVksWUFDWjFGLFVBQVcsVUFBUyxDQUFDLFVBQU9xSSxNQUFPLFVBQU90RCxLQUMxQ21ELE1BQU9BLEVBQ1BDLEtBQU1BLEVBQ05DLFNBQVVBLEVBQ1ZILE9BQVFBLEVBQ1JLLGFBQVcsR0FFWCxnREFBb0IsU0FBUy9DLElBQUtBLEVBQUt0RSxLQUFNQSxPLDZCQ3JFbkQsT0FDZSxXQUFDLFVBQVksMEJBQTBCLFdBQWEsMEJBQTBCLE1BQVEsMEJBQTBCLE1BQVEsMEJBQTBCLFFBQVUsMEJBQTBCLG9CQUFzQix3QkFBd0Isa0JBQW9CLDBCQUEwQixRQUFVLDRCLHVNQ0QzUyxZQUFTLDhFQUFBbkIsV0FDVCxZQUFTLG9GQUFBQSxZLDhFQ0RULFdBRUEsbUJBQ0V5SSxRQUFBLElBQUFBLE9BQUEsR0FFTSxNQUFvQixFQUFBQyxTQUFrQkQsR0FBckNqSyxFQUFLLEtBQUVtSyxFQUFRLEtBWXRCLE1BQU8sQ0FBQ25LLEVBVk8sRUFBQTJELGFBQVksU0FBQ3lHLEdBRXhCRCxFQURzQixrQkFBYkMsRUFDQUEsRUFFQSxTQUFDQyxHQUNSLE9BQVFBLE1BR1gsTyw4RUNmTCxXQUlBLG1CQUF3Q0MsR0FDdEMsSUFBTTFILEVBQU0sRUFBQTJILFNBb0JaLE9BbEJBLEVBQUFDLFdBQVUsV0FDUixJQUFNQyxFQUFjLFNBQUNDLEdBQ2Q5SCxFQUFJK0gsVUFBVy9ILEVBQUkrSCxRQUFRQyxTQUFTRixFQUFNN0csU0FJL0N5RyxFQUFTSSxJQU1YLE9BSEFHLFNBQVNDLGlCQUFpQixVQUFXTCxHQUNyQ0ksU0FBU0MsaUJBQWlCLFdBQVlMLEdBRS9CLFdBQ0xJLFNBQVNFLG9CQUFvQixVQUFXTixHQUN4Q0ksU0FBU0Usb0JBQW9CLFdBQVlOLE1BRTFDLENBQUNILElBRUcxSCxJOzs7Ozs7Ozs7O0FDZlQsSUFBSW9JLEVBQTRCLG9CQUFkQyxXQUE0QkEsVUFBVUMsVUFBVUMsY0FBY0MsUUFBUSxXQUFhLEVBRXJHLFNBQVNDLEVBQVM1SyxFQUFRaUssRUFBT1ksR0FDM0I3SyxFQUFPcUssaUJBQ1RySyxFQUFPcUssaUJBQWlCSixFQUFPWSxHQUFRLEdBQzlCN0ssRUFBTzhLLGFBQ2hCOUssRUFBTzhLLFlBQVksS0FBS0MsT0FBT2QsSUFBUSxXQUNyQ1ksRUFBT0csT0FBT2YsVUFNcEIsU0FBU2dCLEVBQVFDLEVBQVVyTCxHQUd6QixJQUZBLElBQUlzTCxFQUFPdEwsRUFBSXVMLE1BQU0sRUFBR3ZMLEVBQUlpQixPQUFTLEdBRTVCeEMsRUFBSSxFQUFHQSxFQUFJNk0sRUFBS3JLLE9BQVF4QyxJQUMvQjZNLEVBQUs3TSxHQUFLNE0sRUFBU0MsRUFBSzdNLEdBQUdvTSxlQUc3QixPQUFPUyxFQUlULFNBQVNFLEVBQVF4TCxHQUNJLGlCQUFSQSxJQUFrQkEsRUFBTSxJQU9uQyxJQUpBLElBQUl5TCxHQUZKekwsRUFBTUEsRUFBSTBMLFFBQVEsTUFBTyxLQUVWQyxNQUFNLEtBRWpCQyxFQUFRSCxFQUFLSSxZQUFZLElBRXRCRCxHQUFTLEdBQ2RILEVBQUtHLEVBQVEsSUFBTSxJQUNuQkgsRUFBS0ssT0FBT0YsRUFBTyxHQUNuQkEsRUFBUUgsRUFBS0ksWUFBWSxJQUczQixPQUFPSixFQXVHVCxJQXZGQSxJQUFJTSxFQUFVLENBQ1pDLFVBQVcsRUFDWEMsSUFBSyxFQUNMQyxNQUFPLEdBQ1BDLE1BQU8sR0FDUEMsT0FBUSxHQUNSQyxJQUFLLEdBQ0xDLE9BQVEsR0FDUkMsTUFBTyxHQUNQQyxLQUFNLEdBQ05DLEdBQUksR0FDSkMsTUFBTyxHQUNQQyxLQUFNLEdBQ05DLElBQUssR0FDTEMsT0FBUSxHQUNSQyxJQUFLLEdBQ0xDLE9BQVEsR0FDUkMsS0FBTSxHQUNOQyxJQUFLLEdBQ0xDLE9BQVEsR0FDUkMsU0FBVSxHQUNWQyxTQUFVLEdBQ1ZDLE1BQU8sR0FDUEMsTUFBTyxHQUNQQyxNQUFPLEdBQ1BDLE1BQU8sR0FDUEMsTUFBTyxJQUNQQyxNQUFPLElBQ1BDLE1BQU8sSUFDUEMsTUFBTyxJQUNQQyxNQUFPLElBQ1BDLE1BQU8sSUFDUEMsYUFBYyxJQUNkQyxRQUFTLElBQ1RDLFVBQVcsSUFDWEMsYUFBYyxJQUNkQyxZQUFhLElBQ2JDLFdBQVksSUFDWixJQUFLLEdBQ0wsSUFBSyxJQUNMLElBQUssSUFDTCxJQUFLLElBQ0wsSUFBSyxJQUNMLElBQUsxRCxFQUFPLElBQU0sSUFDbEIsSUFBS0EsRUFBTyxHQUFLLElBQ2pCLElBQUtBLEVBQU8sR0FBSyxJQUNqQjJELElBQU0sSUFDTixJQUFLLElBQ0wsSUFBSyxJQUNMLEtBQU0sS0FHSkMsRUFBWSxDQUVkLElBQUssR0FDTEMsTUFBTyxHQUVQLElBQUssR0FDTDNILElBQUssR0FDTDRILE9BQVEsR0FFUixJQUFLLEdBQ0xDLEtBQU0sR0FDTkMsUUFBUyxHQUVULElBQUssR0FDTEMsSUFBSyxHQUNMQyxRQUFTLElBRVBDLEVBQWMsQ0FDaEJDLEdBQUksV0FDSkMsR0FBSSxTQUNKQyxHQUFJLFVBQ0pDLEdBQUksVUFDSkMsU0FBVSxHQUNWQyxRQUFTLEdBQ1RDLE9BQVEsR0FDUkMsUUFBUyxJQUVQQyxFQUFRLENBQ1ZSLElBQUksRUFDSkMsSUFBSSxFQUNKQyxJQUFJLEVBQ0pDLElBQUksR0FFRk0sRUFBWSxHQUVQdk8sRUFBSSxFQUFHQSxFQUFJLEdBQUlBLElBQ3RCK0ssRUFBUSxJQUFJYixPQUFPbEssSUFBTSxJQUFNQSxFQUdqQyxJQUFJd08sRUFBWSxHQUVaQyxFQUFTLE1BRVRDLEVBQXNCLEdBR3RCQyxFQUFPLFNBQWNDLEdBQ3ZCLE9BQU83RCxFQUFRNkQsRUFBRS9FLGdCQUFrQnlELEVBQVVzQixFQUFFL0UsZ0JBQWtCK0UsRUFBRUMsY0FBY0MsV0FBVyxJQUk5RixTQUFTQyxFQUFTQyxHQUNoQlAsRUFBU08sR0FBUyxNQUlwQixTQUFTQyxJQUNQLE9BQU9SLEdBQVUsTUF1SG5CLElBQUlTLEVBQWEsU0FBb0JDLEdBQ25DLElBQUluUSxFQUFNbVEsRUFBS25RLElBQ1hnUSxFQUFRRyxFQUFLSCxNQUNiaEYsRUFBU21GLEVBQUtuRixPQUNkb0YsRUFBZ0JELEVBQUtFLFNBQ3JCQSxPQUE2QixJQUFsQkQsRUFBMkIsSUFBTUEsRUFDN0I1RSxFQUFReEwsR0FDZHNRLFNBQVEsU0FBVUMsR0FDN0IsSUFBSUMsRUFBYUQsRUFBVTVFLE1BQU0wRSxHQUM3QkksRUFBTUQsRUFBV3ZQLE9BQ2pCeVAsRUFBVUYsRUFBV0MsRUFBTSxHQUMzQkUsRUFBc0IsTUFBWkQsRUFBa0IsSUFBTWYsRUFBS2UsR0FDM0MsR0FBS25CLEVBQVVvQixHQUFmLENBRUtYLElBQU9BLEVBQVFDLEtBQ3BCLElBQUkzRSxFQUFPbUYsRUFBTSxFQUFJckYsRUFBUWtELEVBQVdrQyxHQUFjLEdBQ3REakIsRUFBVW9CLEdBQVdwQixFQUFVb0IsR0FBUzNNLEtBQUksU0FBVTRNLEdBSXBELFFBRnVCNUYsR0FBUzRGLEVBQU81RixTQUFXQSxJQUUxQjRGLEVBQU9aLFFBQVVBLEdBcFEvQyxTQUFzQmEsRUFBSUMsR0FLeEIsSUFKQSxJQUFJQyxFQUFPRixFQUFHNVAsUUFBVTZQLEVBQUc3UCxPQUFTNFAsRUFBS0MsRUFDckNFLEVBQU9ILEVBQUc1UCxRQUFVNlAsRUFBRzdQLE9BQVM2UCxFQUFLRCxFQUNyQ0ksR0FBVSxFQUVMeFMsRUFBSSxFQUFHQSxFQUFJc1MsRUFBSzlQLE9BQVF4QyxLQUNBLElBQTNCdVMsRUFBS2xHLFFBQVFpRyxFQUFLdFMsTUFBWXdTLEdBQVUsR0FHOUMsT0FBT0EsRUEyUCtDQyxDQUFhTixFQUFPdEYsS0FBTUEsR0FDbkUsR0FHRnNGLFVBTWIsU0FBU08sRUFBYS9HLEVBQU9nSCxFQUFTcEIsR0FDcEMsSUFBSXFCLEVBRUosR0FBSUQsRUFBUXBCLFFBQVVBLEdBQTJCLFFBQWxCb0IsRUFBUXBCLE1BQWlCLENBSXRELElBQUssSUFBSXNCLEtBRlRELEVBQWlCRCxFQUFROUYsS0FBS3JLLE9BQVMsRUFFekJxTyxFQUNSblEsT0FBT2tCLFVBQVVDLGVBQWUxQixLQUFLMFEsRUFBT2dDLE1BQ3pDaEMsRUFBTWdDLElBQU1GLEVBQVE5RixLQUFLUixTQUFTd0csSUFBTSxHQUFLaEMsRUFBTWdDLEtBQW9DLElBQTlCRixFQUFROUYsS0FBS1IsU0FBU3dHLE1BQ2xGRCxHQUFpQixJQU1LLElBQXhCRCxFQUFROUYsS0FBS3JLLFFBQWlCcU8sRUFBTSxLQUFRQSxFQUFNLEtBQVFBLEVBQU0sS0FBUUEsRUFBTSxPQUFPK0IsR0FBdUMsTUFBckJELEVBQVFHLFdBQzFFLElBQW5DSCxFQUFRcEcsT0FBT1osRUFBT2dILEtBQ3BCaEgsRUFBTW9ILGVBQWdCcEgsRUFBTW9ILGlCQUFzQnBILEVBQU1xSCxhQUFjLEVBQ3RFckgsRUFBTXNILGlCQUFpQnRILEVBQU1zSCxrQkFDN0J0SCxFQUFNdUgsZUFBY3ZILEVBQU11SCxjQUFlLEtBT3JELFNBQVNDLEVBQVN4SCxHQUNoQixJQUFJeUgsRUFBV3RDLEVBQVUsS0FDckJ2UCxFQUFNb0ssRUFBTXVHLFNBQVd2RyxFQUFNMEgsT0FBUzFILEVBQU0ySCxTQUVoRCxHQUFLQyxFQUFRQyxPQUFPclQsS0FBS3NULEtBQU05SCxHQUEvQixDQXNDQSxHQW5DWSxLQUFScEssR0FBc0IsTUFBUkEsSUFBYUEsRUFBTSxLQVFMLElBQTVCd1AsRUFBVTFFLFFBQVE5SyxJQUF1QixNQUFSQSxHQUFhd1AsRUFBVTJDLEtBQUtuUyxHQU1qRSxDQUFDLFVBQVcsU0FBVSxXQUFZLFdBQVdzUSxTQUFRLFNBQVU4QixHQUM3RCxJQUFJQyxFQUFTeEQsRUFBWXVELEdBRXJCaEksRUFBTWdJLEtBQTJDLElBQS9CNUMsRUFBVTFFLFFBQVF1SCxHQUN0QzdDLEVBQVUyQyxLQUFLRSxJQUNMakksRUFBTWdJLElBQVk1QyxFQUFVMUUsUUFBUXVILElBQVcsRUFDekQ3QyxFQUFVMUQsT0FBTzBELEVBQVUxRSxRQUFRdUgsR0FBUyxHQUN2QixZQUFaRCxHQUF5QmhJLEVBQU1nSSxJQUFpQyxJQUFyQjVDLEVBQVV2TyxTQUt4RG1KLEVBQU0rRSxTQUFXL0UsRUFBTThFLFVBQVk5RSxFQUFNZ0YsU0FDN0NJLEVBQVlBLEVBQVVqRSxNQUFNaUUsRUFBVTFFLFFBQVF1SCxTQVFoRHJTLEtBQU9zUCxFQUFPLENBR2hCLElBQUssSUFBSXRPLEtBRlRzTyxFQUFNdFAsSUFBTyxFQUVDc08sRUFDUkEsRUFBVXROLEtBQU9oQixJQUFLZ1MsRUFBUWhSLElBQUssR0FHekMsSUFBSzZRLEVBQVUsT0FJakIsSUFBSyxJQUFJdk8sS0FBS2dNLEVBQ1JuUSxPQUFPa0IsVUFBVUMsZUFBZTFCLEtBQUswUSxFQUFPaE0sS0FDOUNnTSxFQUFNaE0sR0FBSzhHLEVBQU15RSxFQUFZdkwsS0FXN0I4RyxFQUFNa0ksb0JBQXNCbEksRUFBTWdGLFFBQVdoRixFQUFNK0UsVUFBWS9FLEVBQU1rSSxpQkFBaUIsZUFDekQsSUFBM0I5QyxFQUFVMUUsUUFBUSxLQUNwQjBFLEVBQVUyQyxLQUFLLEtBR2MsSUFBM0IzQyxFQUFVMUUsUUFBUSxLQUNwQjBFLEVBQVUyQyxLQUFLLElBR2pCN0MsRUFBTSxLQUFNLEVBQ1pBLEVBQU0sS0FBTSxHQUlkLElBQUlVLEVBQVFDLElBRVosR0FBSTRCLEVBQ0YsSUFBSyxJQUFJcFQsRUFBSSxFQUFHQSxFQUFJb1QsRUFBUzVRLE9BQVF4QyxJQUMvQm9ULEVBQVNwVCxHQUFHdVIsUUFBVUEsSUFBeUIsWUFBZjVGLEVBQU0vSCxNQUFzQndQLEVBQVNwVCxHQUFHOFQsU0FBMEIsVUFBZm5JLEVBQU0vSCxNQUFvQndQLEVBQVNwVCxHQUFHK1QsUUFDM0hyQixFQUFhL0csRUFBT3lILEVBQVNwVCxHQUFJdVIsR0FNdkMsR0FBTWhRLEtBQU91UCxFQUViLElBQUssSUFBSWtELEVBQUssRUFBR0EsRUFBS2xELEVBQVV2UCxHQUFLaUIsT0FBUXdSLElBQzNDLElBQW1CLFlBQWZySSxFQUFNL0gsTUFBc0JrTixFQUFVdlAsR0FBS3lTLEdBQUlGLFNBQTBCLFVBQWZuSSxFQUFNL0gsTUFBb0JrTixFQUFVdlAsR0FBS3lTLEdBQUlELFFBQ3JHakQsRUFBVXZQLEdBQUt5UyxHQUFJelMsSUFBSyxDQU0xQixJQUxBLElBQUk0USxFQUFTckIsRUFBVXZQLEdBQUt5UyxHQUN4QnBDLEVBQVdPLEVBQU9QLFNBQ2xCcUMsRUFBYzlCLEVBQU81USxJQUFJMkwsTUFBTTBFLEdBQy9Cc0MsRUFBbUIsR0FFZEMsRUFBSSxFQUFHQSxFQUFJRixFQUFZelIsT0FBUTJSLElBQ3RDRCxFQUFpQlIsS0FBS3hDLEVBQUsrQyxFQUFZRSxLQUdyQ0QsRUFBaUJFLE9BQU9DLEtBQUssTUFBUXRELEVBQVVxRCxPQUFPQyxLQUFLLEtBRTdEM0IsRUFBYS9HLEVBQU93RyxFQUFRWixLQVl0QyxTQUFTZ0MsRUFBUWhTLEVBQUt3TyxFQUFReEQsR0FDNUJ3RSxFQUFZLEdBQ1osSUFBSS9ELEVBQU9ELEVBQVF4TCxHQUVmc0wsRUFBTyxHQUNQMEUsRUFBUSxNQUVSK0MsRUFBVXhJLFNBRVY5TCxFQUFJLEVBQ0orVCxHQUFRLEVBQ1JELEdBQVUsRUFDVmxDLEVBQVcsSUFvQmYsU0FsQmUyQyxJQUFYaEksR0FBMEMsbUJBQVh3RCxJQUNqQ3hELEVBQVN3RCxHQUdvQyxvQkFBM0NyUCxPQUFPa0IsVUFBVTRTLFNBQVNyVSxLQUFLNFAsS0FDN0JBLEVBQU93QixRQUFPQSxFQUFReEIsRUFBT3dCLE9BRTdCeEIsRUFBT3VFLFVBQVNBLEVBQVV2RSxFQUFPdUUsU0FFakN2RSxFQUFPZ0UsUUFBT0EsRUFBUWhFLEVBQU9nRSxZQUVWUSxJQUFuQnhFLEVBQU8rRCxVQUF1QkEsRUFBVS9ELEVBQU8rRCxTQUVwQixpQkFBcEIvRCxFQUFPNkIsV0FBdUJBLEVBQVc3QixFQUFPNkIsV0FHdkMsaUJBQVg3QixJQUFxQndCLEVBQVF4QixHQUVqQy9QLEVBQUlnTixFQUFLeEssT0FBUXhDLElBR3RCNk0sRUFBTyxJQUZQdEwsRUFBTXlMLEVBQUtoTixHQUFHa04sTUFBTTBFLElBSVpwUCxPQUFTLElBQUdxSyxFQUFPRixFQUFRa0QsRUFBV3RPLEtBRzlDQSxFQUFjLE9BRGRBLEVBQU1BLEVBQUlBLEVBQUlpQixPQUFTLElBQ0gsSUFBTTBPLEVBQUszUCxNQUdsQnVQLElBQVlBLEVBQVV2UCxHQUFPLElBRTFDdVAsRUFBVXZQLEdBQUttUyxLQUFLLENBQ2xCSyxNQUFPQSxFQUNQRCxRQUFTQSxFQUNUdkMsTUFBT0EsRUFDUDFFLEtBQU1BLEVBQ05pRyxTQUFVOUYsRUFBS2hOLEdBQ2Z1TSxPQUFRQSxFQUNSaEwsSUFBS3lMLEVBQUtoTixHQUNWNFIsU0FBVUEsU0FLUyxJQUFaMEMsSUE5RGIsU0FBdUJBLEdBQ3JCLE9BQU9yRCxFQUFvQjVFLFFBQVFpSSxJQUFZLEVBNkRSRyxDQUFjSCxJQUFZNUgsU0FDL0R1RSxFQUFvQnlDLEtBQUtZLEdBQ3pCaEksRUFBU2dJLEVBQVMsV0FBVyxTQUFVelAsR0FDckNzTyxFQUFTdE8sTUFFWHlILEVBQVNJLE9BQVEsU0FBUyxXQUN4QnFFLEVBQVksTUFFZHpFLEVBQVNnSSxFQUFTLFNBQVMsU0FBVXpQLEdBQ25Dc08sRUFBU3RPLEdBclRmLFNBQXVCOEcsR0FDckIsSUFBSXBLLEVBQU1vSyxFQUFNdUcsU0FBV3ZHLEVBQU0wSCxPQUFTMUgsRUFBTTJILFNBRTVDdFQsRUFBSStRLEVBQVUxRSxRQUFROUssR0FlMUIsR0FaSXZCLEdBQUssR0FDUCtRLEVBQVUxRCxPQUFPck4sRUFBRyxHQUlsQjJMLEVBQU1wSyxLQUFtQyxTQUE1Qm9LLEVBQU1wSyxJQUFJNkssZUFDekIyRSxFQUFVMUQsT0FBTyxFQUFHMEQsRUFBVXZPLFFBSXBCLEtBQVJqQixHQUFzQixNQUFSQSxJQUFhQSxFQUFNLElBRWpDQSxLQUFPc1AsRUFHVCxJQUFLLElBQUl0TyxLQUZUc08sRUFBTXRQLElBQU8sRUFFQ3NPLEVBQ1JBLEVBQVV0TixLQUFPaEIsSUFBS2dTLEVBQVFoUixJQUFLLEdBZ1N2Q21TLENBQWM3UCxPQUtwQixJQUFJOFAsRUFBTyxDQUNUckQsU0FBVUEsRUFDVkUsU0FBVUEsRUFDVm9ELFlBblZGLFNBQXFCckQsRUFBT3NELEdBQzFCLElBQUlDLEVBQ0E5VSxFQUlKLElBQUssSUFBSXVCLEtBRkpnUSxJQUFPQSxFQUFRQyxLQUVKVixFQUNkLEdBQUlwUSxPQUFPa0IsVUFBVUMsZUFBZTFCLEtBQUsyUSxFQUFXdlAsR0FHbEQsSUFGQXVULEVBQVdoRSxFQUFVdlAsR0FFaEJ2QixFQUFJLEVBQUdBLEVBQUk4VSxFQUFTdFMsUUFDbkJzUyxFQUFTOVUsR0FBR3VSLFFBQVVBLEVBQU91RCxFQUFTekgsT0FBT3JOLEVBQUcsR0FBUUEsSUFNOUR3UixNQUFlRCxHQUFPRCxFQUFTdUQsR0FBWSxRQW1VL0NFLG1CQWhYRixXQUNFLE9BQU9oRSxFQUFVakUsTUFBTSxJQWdYdkJrSSxVQTlWRixTQUFtQjlDLEdBS2pCLE1BSnVCLGlCQUFaQSxJQUNUQSxFQUFVaEIsRUFBS2dCLEtBR3NCLElBQWhDbkIsRUFBVTFFLFFBQVE2RixJQTBWekJzQixPQTVXRixTQUFnQjdILEdBQ2QsSUFBSTdHLEVBQVM2RyxFQUFNN0csUUFBVTZHLEVBQU1zSixXQUMvQkMsRUFBVXBRLEVBQU9vUSxRQUNqQkMsR0FBTyxFQU1YLE9BSklyUSxFQUFPc1Esb0JBQWtDLFVBQVpGLEdBQW1DLGFBQVpBLEdBQXNDLFdBQVpBLEdBQTBCcFEsRUFBT3VRLFlBQ2pIRixHQUFPLEdBR0ZBLEdBb1dQRyxPQXZTRixTQUFnQkMsR0FFZCxHQUFLQSxHQUlFLEdBQUlyVCxNQUFNRCxRQUFRc1QsR0FFdkJBLEVBQVMxRCxTQUFRLFNBQVUyRCxHQUNyQkEsRUFBS2pVLEtBQUtrUSxFQUFXK0QsV0FFdEIsR0FBd0IsaUJBQWJELEVBRVpBLEVBQVNoVSxLQUFLa1EsRUFBVzhELFFBQ3hCLEdBQXdCLGlCQUFiQSxFQUF1QixDQUN2QyxJQUFLLElBQUlFLEVBQU9DLFVBQVVsVCxPQUFRbVQsRUFBTyxJQUFJelQsTUFBTXVULEVBQU8sRUFBSUEsRUFBTyxFQUFJLEdBQUlHLEVBQU8sRUFBR0EsRUFBT0gsRUFBTUcsSUFDbEdELEVBQUtDLEVBQU8sR0FBS0YsVUFBVUUsR0FLN0IsSUFBSXJFLEVBQVFvRSxFQUFLLEdBQ2JwSixFQUFTb0osRUFBSyxHQUVHLG1CQUFWcEUsSUFDVGhGLEVBQVNnRixFQUNUQSxFQUFRLElBR1ZFLEVBQVcsQ0FDVGxRLElBQUtnVSxFQUNMaEUsTUFBT0EsRUFDUGhGLE9BQVFBLEVBQ1JxRixTQUFVLFlBOUJabFIsT0FBT3NNLEtBQUs4RCxHQUFXZSxTQUFRLFNBQVV0USxHQUN2QyxjQUFjdVAsRUFBVXZQLFFBc1M5QixJQUFLLElBQUk0UyxLQUFLUSxFQUNSalUsT0FBT2tCLFVBQVVDLGVBQWUxQixLQUFLd1UsRUFBTVIsS0FDN0NaLEVBQVFZLEdBQUtRLEVBQUtSLElBSXRCLEdBQXNCLG9CQUFYekgsT0FBd0IsQ0FDakMsSUFBSW1KLEVBQVduSixPQUFPNkcsUUFFdEJBLEVBQVF1QyxXQUFhLFNBQVVDLEdBSzdCLE9BSklBLEdBQVFySixPQUFPNkcsVUFBWUEsSUFDN0I3RyxPQUFPNkcsUUFBVXNDLEdBR1p0QyxHQUdUN0csT0FBTzZHLFFBQVVBLEVBR0osUSxPQ3BqQmYsU0FBU3lDLElBQ1AsT0FBTyxFQUFRaEIsVUFHakIsRUFBUXhCLE9BQVMsV0FDZixPQUFPLEdBR1QsSUFBSXlDLEVBQVksU0FBbUJ2RSxFQUFNd0UsR0FDdkMsSUFBSXBSLEVBQVM0TSxFQUFLNU0sT0FDZHFSLEVBQWdCclIsR0FBVUEsRUFBT29RLFFBQ3JDLE9BQU9rQixRQUFRRCxHQUFpQkQsR0FBZ0JBLEVBQWFsUyxTQUFTbVMsS0FPeEUsU0FBU25QLEVBQVdnRyxFQUFNekIsRUFBVThLLEVBQVNDLEdBQ3ZDRCxhQUFtQm5VLFFBQ3JCb1UsRUFBT0QsRUFDUEEsT0FBVTlCLEdBR1osSUFBSWdDLEVBQVFGLEdBQVcsR0FDbkJILEVBQWVLLEVBQU1MLGFBQ3JCMUMsRUFBUytDLEVBQU0vQyxPQUNmTyxFQUFRd0MsRUFBTXhDLE1BQ2RELEVBQVV5QyxFQUFNekMsUUFDaEIwQyxFQUF3QkQsRUFBTUUscUJBQzlCQSxPQUFpRCxJQUExQkQsR0FBMENBLEVBQ2pFRSxFQUFnQkgsRUFBTUksUUFDdEJBLE9BQTRCLElBQWxCRCxHQUFrQ0EsRUFDNUNFLEVBQXdCTCxFQUFNTSx3QkFDOUJBLE9BQW9ELElBQTFCRCxHQUEyQ0EsRUFFckUvUyxFQUFNLGlCQUFPLE1BRWJpVCxFQUFtQix1QkFBWSxTQUFVQyxFQUFlQyxHQUMxRCxJQUFJQyxFQUVKLE9BQUl6RCxJQUFXQSxFQUFPdUQsSUFDWk4sS0EzQkxSLEVBK0IrQmMsRUEvQmpCLENBQUMsUUFBUyxXQUFZLGFBK0JjZCxFQUFVYyxFQUFlYixJQUFtRSxPQUFqRGUsRUFBd0JGLEVBQWNqUyxTQUFtQm1TLEVBQXNCN0Isb0JBQXNCeUIsS0FJbkwsT0FBaEJoVCxFQUFJK0gsU0FBb0JFLFNBQVNvTCxnQkFBa0JyVCxFQUFJK0gsV0FDekRMLEVBQVN3TCxFQUFlQyxJQUNqQixLQUlSVixFQUFPLENBQUN6UyxFQUFLcVMsRUFBYzFDLEdBQVEvRyxPQUFPNkosR0FBUSxDQUFDelMsRUFBS3FTLEVBQWMxQyxJQWdCekUsT0FmQSxxQkFBVSxXQUNSLEdBQUttRCxFQVVMLE9BTEk1QyxJQUFxQixJQUFaRCxJQUNYdUMsRUFBUXZDLFNBQVUsR0FHcEIsRUFBUTlHLEVBQU1xSixHQUFXLEdBQUlTLEdBQ3RCLFdBQ0wsT0FBTyxFQUFReEIsT0FBT3RJLEVBQU04SixNQUU3QixDQUFDQSxFQUFrQjlKLEVBQU0ySixJQUNyQjlTLEVBR1QsSUFBSXNULEVBQWtCLEVBQVFuQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMYWJlbCB9IGZyb20gXCIuL0xhYmVsXCI7XHJcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL0ljb25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25MaW5rIH0gZnJvbSBcIi4vQnV0dG9uTGlua1wiO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vQ29sb3JTd2F0Y2hcIjtcclxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibGlzdFZpZXdJdGVtXCI6XCJfMWZqMmFuaWVRMEpLeENBWmtTYWFwa1wifTsiLCJleHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvbkJhZGdlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NoZWNrYm94XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQ29sb3JQaWNrZXJcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmlsZUlucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmtcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xpc3RWaWV3XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTWVudVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xhYmVsXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVG9hc3RcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9WaWRlb1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uQmFkZ2UubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uQmFkZ2UoeyBjaGlsZHJlbiwgY2xhc3NOYW1lIH06IEJ1dHRvbkJhZGdlUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuYnV0dG9uQmFkZ2UsIGNsYXNzTmFtZV0pfT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uQmFkZ2U7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIEJ1dHRvblByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGludmVydGVkPzogYm9vbGVhbjtcclxuICByb3VuZGVkPzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xyXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcclxuICBhdXRvRm9jdXM/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xyXG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQnV0dG9uKHtcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgb25DbGljayxcclxuICBjb250YWluZXJSZWYsXHJcbiAgZGlzYWJsZWQgPSBmYWxzZSxcclxuICBpbnZlcnRlZCA9IGZhbHNlLFxyXG4gIHJvdW5kZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXHJcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICB0eXBlLFxyXG59OiBCdXR0b25Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgICB0eXBlPXt0eXBlfVxyXG4gICAgICByb2xlPVwiYnV0dG9uXCJcclxuICAgID5cclxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxyXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XHJcbiAgICAgICkgOiAoXHJcbiAgICAgICAgY2hpbGRyZW5cclxuICAgICAgKX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xMnc1V09GM0tzYTJKQjUtWU9YeUQ3XCIsXCJsZWZ0XCI6XCJfMlRGVjcyRHJReDVKR1NoTmN1dDRFLVwiLFwic21hbGxcIjpcInVUQnJjanBIcDk2UkN3RjVVRHpmMFwiLFwibGFyZ2VcIjpcIl8xNFNTZnM1U1ZXSzdOeHVaQnFNZ3pCXCIsXCJ4bGFyZ2VcIjpcIl8xU1F1MlFXdzJhN2V3NDdXVzEyWlNnXCIsXCJpbnZlcnRlZFwiOlwiXzJoWmhoaThCZ0VfZWtRVm45ZVg5RFhcIixcInJvdW5kZWRcIjpcIlZCRE9TY1ljUW5VMmV5dGtBX1BjNlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yR1RZM1htYU91OTIzTTlzRVJzNmFrXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMTVRMEdHa2dZSl9hTG0wMW5HRTVZaFwiLFwibm9TaGFkb3dcIjpcIlJld21EcWpwNm5VZUVZSEVLelRKRFwiLFwibm9Cb3JkZXJcIjpcIm5acUlVUFQ4Y1o4N0JXNHI4a3hVXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzY2OWxSNHkyQUg5N0ExbHk1TVlXT1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNpY3V0WEh3eklpb3d0N2JWYTNZaWJcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMmtDa3hQa3BsUDF4cWpma2Vwb3lOcFwiLFwibm9QYWRkaW5nXCI6XCJfM2tOYkNnY0ktUl9GRlEtM082VDBsYVwiLFwiY29udGVudFwiOlwiXzJiRjFBU2NFeHNrdU9wdXpkLWNEXzZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIE9mZnNldFNpZGUgPSBcImxlZnRcIiB8IFwicmlnaHRcIjtcclxuXHJcbnR5cGUgQnV0dG9uTGlua1Byb3BzID1cclxuICB8IHtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gICAgICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcclxuICAgICAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xyXG4gICAgICBzaXplPzogU2l6ZTtcclxuICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xyXG4gICAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIEJ1dHRvbkxpbmsoe1xyXG4gIGFzOiBDb21wb25lbnQsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIHNpemUsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcclxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgLi4ucHJvcHNcclxufTogQnV0dG9uTGlua1Byb3BzKSB7XHJcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgIENvbXBvbmVudCA9IFwiYVwiO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxDb21wb25lbnRcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMuZGlzYWJsZWRdOiBkaXNhYmxlZCxcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICB7Li4ucHJvcHN9XHJcbiAgICA+XHJcbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcclxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcclxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIGNoaWxkcmVuXHJcbiAgICAgICl9XHJcbiAgICA8L0NvbXBvbmVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCdXR0b25MaW5rO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJkaXNhYmxlZFwiOlwiXzJMYW1jZzBpVUlPajFxalVHaG9UQkJcIixcImNvbnRlbnRcIjpcInNORHJxM2NYNkk2US1PdXVzejdUaVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vQ2hlY2tib3hcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ2hlY2tib3gubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBDaGVja2JveFByb3BzID0ge1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcblxyXG59O1xyXG5cclxuZnVuY3Rpb24gQ2hlY2tib3goe1xyXG4gIGxhYmVsLFxyXG4gIG9uQ2hhbmdlLFxyXG4gIHBsYWNlaG9sZGVyLFxyXG4gIGNoZWNrZWQsXHJcbiAgZGlzYWJsZWQsXHJcbiAgbmFtZSxcclxuICBjbGFzc05hbWUsXHJcbiAgaW5kZXRlcm1pbmF0ZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICBhdXRvRm9jdXMgPSBmYWxzZSxcclxufTogQ2hlY2tib3hQcm9wcykge1xyXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxyXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cclxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpLFxyXG4gICAgW29uQ2hhbmdlXVxyXG4gICk7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8TGFiZWwgdmFsdWU9e2xhYmVsfSA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIHJlZj17KGlucHV0UmVmKSA9PiB7XHJcbiAgICAgICAgICBpZiAoaW5wdXRSZWYpIHtcclxuICAgICAgICAgICAgaW5wdXRSZWYuaW5kZXRlcm1pbmF0ZSA9IGluZGV0ZXJtaW5hdGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGVja2VkPXtjaGVja2VkfVxyXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY2hlY2tib3gsIGNsYXNzTmFtZSwgc3R5bGVzW3NpemVdXSl9XHJcbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cclxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XHJcbiAgICAgICAgbmFtZT17bmFtZX1cclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxyXG4gICAgICAvPlxyXG4gICAgPC9MYWJlbD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGFiZWwubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBMYWJlbElucHV0UHJvcHMgPSB7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MTGFiZWxFbGVtZW50PjtcclxuICB2YWx1ZTogUmVhY3ROb2RlO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTGFiZWwoeyBjbGFzc05hbWUsIGNoaWxkcmVuLCB2YWx1ZSwgY29udGFpbmVyUmVmIH06IExhYmVsSW5wdXRQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bGFiZWxcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfVxyXG4gICAgPlxyXG4gICAgICB7dmFsdWV9XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvbGFiZWw+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTGFiZWw7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTVEYnNfWDVJVDl0a21Bc01YUE5WSlwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNoZWNrYm94XCI6XCJfMjFLMmVrMjFfQl9CcE90dkh3NmhnOFwiLFwic21hbGxcIjpcIl8xSmlfXzlVLUQ1VWRXMk5KV1dVUHJDXCIsXCJtZWRpdW1cIjpcIl8zS0pTMkZSUzJ0ZDkwUXI2cjMzTDI4XCIsXCJsYXJnZVwiOlwiXzFqN29kQ0VFWDJEa2dncEladUY0TUlcIixcInhsYXJnZVwiOlwiXzNLWndoVW14QkplYjJ4dGs4OGdhR1dcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL0NvbG9yUGlja2VyXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi4vQ29sb3JTd2F0Y2hcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db2xvclBpY2tlci5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XHJcblxyXG50eXBlIENvbG9yUGlja2VyUHJvcHMgPSB7XHJcbiAgY29sb3JzOiBDb2xvcltdO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgZGlyZWN0aW9uPzogXCJob3Jpem9udGFsXCIgfCBcInZlcnRpY2FsXCI7XHJcbiAgb25TZWxlY3Q6IChjb2xvcjogQ29sb3IpID0+IHZvaWQ7XHJcbiAgc2VsZWN0ZWRDb2xvcj86IENvbG9yO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29sb3JQaWNrZXIoe1xyXG4gIGNvbG9ycyxcclxuICBjb250YWluZXJSZWYsXHJcbiAgb25TZWxlY3QsXHJcbiAgc2VsZWN0ZWRDb2xvcixcclxuICBkaXJlY3Rpb24gPSBcInZlcnRpY2FsXCIsXHJcbn06IENvbG9yUGlja2VyUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbG9yUGlja2VyLCBzdHlsZXNbZGlyZWN0aW9uXV0pfVxyXG4gICAgPlxyXG4gICAgICB7Y29sb3JzLm1hcCgoY29sb3I6IENvbG9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxDb2xvclN3YXRjaFxyXG4gICAgICAgICAgICBrZXk9e2NvbG9yLmtleX1cclxuICAgICAgICAgICAgY29sb3I9e2NvbG9yfVxyXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvciA9PT0gc2VsZWN0ZWRDb2xvcn1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3QoY29sb3IpfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApO1xyXG4gICAgICB9KX1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JTd2F0Y2gubW9kdWxlLmNzc1wiO1xyXG5pbXBvcnQgeyBDb2xvciB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBDb2xvclN3YXRjaFByb3BzID0ge1xyXG4gIGNvbG9yOiBDb2xvcjtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQ29sb3JTd2F0Y2goe1xyXG4gIGNvbG9yLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBvbkNsaWNrLFxyXG4gIGlzU2VsZWN0ZWQgPSBmYWxzZSxcclxufTogQ29sb3JTd2F0Y2hQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29sb3JTd2F0Y2gsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5zZWxlY3RlZF06IGlzU2VsZWN0ZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiY29sb3Itc3dhdGNoXCJcclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvci5oZXhDb2RlIH19XHJcbiAgICA+XHJcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnNyT25seX0+e2BTZWxlY3QgJHtjb2xvci5sYWJlbH0gY29sb3JgfTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbG9yU3dhdGNoO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yU3dhdGNoXCI6XCJkdjdpdWNUUXEtWmhVUlV1cC1QdVZcIixcInNlbGVjdGVkXCI6XCJfMUxiQWd5aWlFXzF1alc5MGQtNml1dVwiLFwic3JPbmx5XCI6XCJfMWV0a3VzbGhaVkVQTnNrMVFnaFRFb1wifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yUGlja2VyXCI6XCJfMkYxT24tU0EzbU1raFpQRnJEaldJY1wiLFwiaG9yaXpvbnRhbFwiOlwiXzFXRll5TWtrWUxMNzNuX19yUFVVYnZcIixcInZlcnRpY2FsXCI6XCJfMWxJb2EyYmpfdGJrUWllMElwRTJMblwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpcm1hdGlvbk1vZGFsIH0gZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWxcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi4vTW9kYWxcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIENvbmZpcm1hdGlvbk1vZGFsUHJvcHMgPSB7XHJcbiAgYnV0dG9uc0xlZnQ/OiBSZWFjdEVsZW1lbnRbXTtcclxuICBidXR0b25zUmlnaHQ/OiBSZWFjdEVsZW1lbnRbXTtcclxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGhlYWRlcjogc3RyaW5nO1xyXG4gIGlzT3BlbjogYm9vbGVhbjtcclxuICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gIG5vT3ZlcmxheT86IGJvb2xlYW47XHJcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xyXG4gIGJhc2VaSW5kZXg/OiBudW1iZXI7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBDb25maXJtYXRpb25Nb2RhbCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGhlYWRlcixcclxuICBpc09wZW4sXHJcbiAgYnV0dG9uc0xlZnQgPSBbXSxcclxuICBidXR0b25zUmlnaHQgPSBbXSxcclxuICBvbkNsb3NlID0gKCkgPT4ge30sXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgbm9PdmVybGF5ID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBiYXNlWkluZGV4ID0gMTAxOSxcclxufTogQ29uZmlybWF0aW9uTW9kYWxQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8TW9kYWxcclxuICAgICAgY29udGFpbmVyUmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGlzT3Blbj17aXNPcGVufVxyXG4gICAgICBvbkNsb3NlPXtvbkNsb3NlfVxyXG4gICAgICBub092ZXJsYXk9e25vT3ZlcmxheX1cclxuICAgICAgbm9TaGFkb3c9e25vU2hhZG93fVxyXG4gICAgICBiYXNlWkluZGV4PXtiYXNlWkluZGV4fVxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XHJcbiAgICAgICAgPGgxIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsSGVhZGVyfT57aGVhZGVyfTwvaDE+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbENvbnRlbnQsXHJcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcclxuICAgICAgICAgIF0pfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc0NvbnRhaW5lcn0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNMZWZ0fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zUmlnaHR9PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9Nb2RhbD5cclxuICApO1xyXG59XHJcblxyXG5Db25maXJtYXRpb25Nb2RhbC5kaXNwbGF5TmFtZSA9IFwiQ29uZmlybWF0aW9uTW9kYWxcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IENvbmZpcm1hdGlvbk1vZGFsO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IHVzZUhvdGtleXMgfSBmcm9tIFwicmVhY3QtaG90a2V5cy1ob29rXCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTW9kYWwubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBNb2RhbFByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBpc09wZW46IGJvb2xlYW47XHJcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XHJcbiAgYnV0dG9uPzogUmVhY3ROb2RlO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBub1NoYWRvdz86IGJvb2xlYW47XHJcbiAgbm9PdmVybGF5PzogYm9vbGVhbjtcclxuICBiYXNlWkluZGV4PzogbnVtYmVyO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gTW9kYWwoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBpc09wZW4sXHJcbiAgYnV0dG9uLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub092ZXJsYXkgPSBmYWxzZSxcclxuICBvbkNsb3NlID0gKCkgPT4ge30sXHJcbiAgYmFzZVpJbmRleCA9IDEwMDksXHJcbn06IE1vZGFsUHJvcHMpIHtcclxuICB1c2VIb3RrZXlzKFwiRXNjYXBlXCIsIG9uQ2xvc2UpO1xyXG5cclxuICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XHJcbiAgICBvbkNsb3NlKCk7XHJcbiAgfSwgW29uQ2xvc2VdKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIGlzT3BlbiAmJiAoXHJcbiAgICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCB9fVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICAgIHN0eWxlcy5vdmVybGF5LFxyXG4gICAgICAgICAgICB7IFtzdHlsZXMubm9PdmVybGF5XTogbm9PdmVybGF5IH0sXHJcbiAgICAgICAgICBdKX1cclxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtb3ZlcmxheVwiXHJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPdmVybGF5Q2xpY2t9XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBzdHlsZT17eyB6SW5kZXg6IGJhc2VaSW5kZXggKyAxIH19XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgICAgc3R5bGVzLm1vZGFsLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxyXG4gICAgICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0pfVxyXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtidXR0b24gJiYgKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBzdHlsZT17eyB6SW5kZXg6IGJhc2VaSW5kZXggKyAyIH19XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9ufVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7YnV0dG9ufVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiXzIwWktHWTRUd1p4cDBLWjZFN3k0V0JcIixcIm5vT3ZlcmxheVwiOlwiXzJBTHcycC1ESHhZRGhZdlJ6UTRpbkJcIixcIm1vZGFsXCI6XCJfMjVMQk4zMV9tSTFJMXVIRERQNE8wSVwiLFwidHJhbnNwYXJlbnRcIjpcIl8zWjJLbDFyRUhaUU1MVXNYRjFmN2xvXCIsXCJub1NoYWRvd1wiOlwiXzNDZlNULXRuLXRzdmNvZFN4ZWxpUXFcIixcIm1vZGFsQnV0dG9uXCI6XCJfMWVPMHgzTTBwTjgtNzlJdVl1VF9DbFwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiS2dDNXB3dHNIYXZ1Vk9MdWJBTGFlXCIsXCJtb2RhbEhlYWRlclwiOlwiXzFiVE5YTVI1bVpGWHMxbzB1eGtoUlBcIixcIm1vZGFsQ29udGVudFwiOlwicXVQNW80UTlubFVvMWZUN3NiUFZBXCIsXCJub1BhZGRpbmdcIjpcIl8xVWdvX0RIU1Q0UmJXekl4SFBoajduXCIsXCJtb2RhbEJ1dHRvbnNDb250YWluZXJcIjpcIl8yYkdMN1hqRHk2c0UzSmxlVTk4aGp5XCIsXCJtb2RhbEJ1dHRvbnNcIjpcIl8zWGZmRmVOOVZFSXB5dGhtVkoyVThDXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUlucHV0IH0gZnJvbSBcIi4vRmlsZUlucHV0XCI7XHJcbmV4cG9ydCB7IEZpbGVJbnB1dFNpemUgfSBmcm9tIFwiLi9GaWxlSW5wdXRcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IENoYW5nZUV2ZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GaWxlSW5wdXQubW9kdWxlLmNzc1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsZUlucHV0U2l6ZSA9IFNpemU7XHJcblxyXG50eXBlIFByb3BzID0ge1xyXG4gIG9uQ2hhbmdlOiAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBhY2NlcHQ/OiBzdHJpbmc7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBpbnB1dFJlZj86IFJlYWN0LlJlZk9iamVjdDxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xyXG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcclxuICBub1BhZGRpbmc/OiBib29sZWFuO1xyXG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcclxuICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XHJcbiAgcm91bmRlZD86IGJvb2xlYW47XHJcbiAgc2l6ZT86IEZpbGVJbnB1dFNpemU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBGaWxlSW5wdXQoe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGFjY2VwdCxcclxuICBvbkNoYW5nZSxcclxuICBpbnB1dFJlZixcclxuICBtdWx0aXBsZSA9IGZhbHNlLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXHJcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcclxuICByb3VuZGVkID0gZmFsc2UsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbn06IFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxsYWJlbFxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMubGFiZWwsXHJcbiAgICAgICAgc3R5bGVzW3NpemVdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcclxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXHJcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXHJcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXHJcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXHJcbiAgICAgICAgfSxcclxuICAgICAgXSl9XHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmlucHV0fVxyXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICBpZD1cImZpbGVcIlxyXG4gICAgICAgIGFjY2VwdD17YWNjZXB0fVxyXG4gICAgICAgIG11bHRpcGxlPXttdWx0aXBsZX1cclxuICAgICAgICByZWY9e2lucHV0UmVmfVxyXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XHJcbiAgICAgIC8+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvbGFiZWw+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRmlsZUlucHV0O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImlucHV0XCI6XCJfM1ZYenI2em1XN1Q2YXJ4OV92Q0FGVlwiLFwibGFiZWxcIjpcIno3czJoZHdHVDNrY3o1MV9tSnhtdlwiLFwic21hbGxcIjpcIl8yenI1OGhLa2djd1lNQjF3dUFKdG9SXCIsXCJsYXJnZVwiOlwiXzFDTmJMZWpJNDZqM0NTUlU3dFFHYmVcIixcInhsYXJnZVwiOlwiXzJ0amVYZHd4My1kblNfOTIxcnVwQmxcIixcImludmVydGVkXCI6XCJfMzJsZExNRUxrU3lkWGVvZzhCQ0JpLVwiLFwicm91bmRlZFwiOlwiWG40RGY3clF4bTBRQUhOZXV2TkxcIixcIm5vU2hhZG93XCI6XCJOZUFPb1lnYjBoT1BuVFZ6d3RnRERcIixcIm5vQm9yZGVyXCI6XCJfM3dWemI0UFJxaHh1cFhqdUIwUkJsU1wiLFwibm9QYWRkaW5nXCI6XCJfMXhQdFhlal9taFBEYmx6dmNybGZPOFwiLFwidHJhbnNwYXJlbnRcIjpcIlMwekRmZ3NVMURnTzBVdVRTT2ZrNFwiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiZW1lZ0xDSC1XX243S3VUSmxPc1FBXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiVkhaUjZoV0s2ZlNEZlJMdWhIN29OXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgRmxvYXRpbmdQYW5lbCB9IGZyb20gXCIuL0Zsb2F0aW5nUGFuZWxcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vRmxvYXRpbmdQYW5lbC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIFBsYWNlbWVudCA9IHtcclxuICBob3Jpem9udGFsOlxyXG4gICAgfCBcInJpZ2h0XCJcclxuICAgIHwgXCJyaWdodEVkZ2VcIlxyXG4gICAgfCBcInJpZ2h0T25FZGdlXCJcclxuICAgIHwgXCJsZWZ0XCJcclxuICAgIHwgXCJsZWZ0RWRnZVwiXHJcbiAgICB8IFwibGVmdE9uRWRnZVwiXHJcbiAgICB8IFwibGVmdE9uRWRnZVwiXHJcbiAgICB8IFwiY2VudGVyXCI7XHJcbiAgdmVydGljYWw6XHJcbiAgICB8IFwidG9wXCJcclxuICAgIHwgXCJ0b3BFZGdlXCJcclxuICAgIHwgXCJ0b3BPbkVkZ2VcIlxyXG4gICAgfCBcImJvdHRvbVwiXHJcbiAgICB8IFwiYm90dG9tRWRnZVwiXHJcbiAgICB8IFwiYm90dG9tT25FZGdlXCJcclxuICAgIHwgXCJjZW50ZXJcIjtcclxuICBwYXJlbnQ6IFwidmlld3BvcnRcIiB8IFwiY29udGFpbmVyXCI7XHJcbn07XHJcblxyXG50eXBlIEZsb2F0aW5nUGFuZWxQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgbGF5b3V0PzogXCJjb2x1bW5cIiB8IFwicm93XCI7XHJcbiAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xyXG59O1xyXG5cclxuZnVuY3Rpb24gRmxvYXRpbmdQYW5lbCh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGxheW91dCA9IFwiY29sdW1uXCIsXHJcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImNlbnRlclwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiwgcGFyZW50OiBcInZpZXdwb3J0XCIgfSxcclxufTogRmxvYXRpbmdQYW5lbFByb3BzKSB7XHJcbiAgY29uc3QgaG9yaXpvbnRhbFBsYWNlbWVudCA9XHJcbiAgICBwbGFjZW1lbnQuaG9yaXpvbnRhbCA9PT0gXCJjZW50ZXJcIlxyXG4gICAgICA/IFwiaG9yaXpvbnRhbENlbnRlclwiXHJcbiAgICAgIDogcGxhY2VtZW50Lmhvcml6b250YWw7XHJcblxyXG4gIGNvbnN0IHZlcnRpY2FsUGxhY2VtZW50ID1cclxuICAgIHBsYWNlbWVudC52ZXJ0aWNhbCA9PT0gXCJjZW50ZXJcIiA/IFwidmVydGljYWxDZW50ZXJcIiA6IHBsYWNlbWVudC52ZXJ0aWNhbDtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiZmxvYXRpbmctcGFuZWxcIlxyXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxyXG4gICAgICAgIHN0eWxlc1tob3Jpem9udGFsUGxhY2VtZW50XSxcclxuICAgICAgICBzdHlsZXNbdmVydGljYWxQbGFjZW1lbnRdLFxyXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBwbGFjZW1lbnQucGFyZW50ICE9PSBcImNvbnRhaW5lclwiLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGbG9hdGluZ1BhbmVsO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJyMEZrWUo3U0sxWWpCM0hLSE1BaWhcIixcInJvd1wiOlwiXzNSLUZGOGVNdTBDUzRlTlgzbFRkQ1JcIixcImNvbHVtblwiOlwiXzFvS09lQWdaand4Tk0zdUdmTHQ2SU9cIixcImZpeGVkXCI6XCJfM29RR1dnU0lOYnl0YjR1djkyQ1N2VFwiLFwicGxhaW5cIjpcImlNZjhvZC1iSXFzSEF2eG9mRHV6YlwiLFwidHJhbnNwYXJlbnRcIjpcImQyb3l4NXB5c3FqODk4YVM4RzNFOFwiLFwidG9wXCI6XCJfMTFjUFlxMWRoUXl6VklNWmVrMV9Jb1wiLFwidG9wRWRnZVwiOlwiXzJfaW5lQ3kxTVFsWVA2cU1ld2QxejVcIixcInRvcE9uRWRnZVwiOlwiXzFydkNzRG9kNWJsVE95QWw0a0R3TjBcIixcInJpZ2h0XCI6XCJfMVNJWUJjUmdxUzRWUGhXOU04MFk0elwiLFwicmlnaHRFZGdlXCI6XCJRQTY5ZjBEOGJUQ0pIckRPcjhtMXJcIixcInJpZ2h0T25FZGdlXCI6XCJfMlBpVFVsMEpZekVDbk8wODUxZ3ozYVwiLFwiYm90dG9tXCI6XCJfMzA1Z0JtVHdBZVhaZkFfTTl0c1ZOb1wiLFwiYm90dG9tRWRnZVwiOlwiXzFQY0RYYkxaMlhIUGtlaV9IX3I1OHBcIixcImJvdHRvbU9uRWRnZVwiOlwiXzJ2b3Q0cXByNThXbmI2cHZIWW5qa2NcIixcImxlZnRcIjpcInNJdGdCVjRXdER4NHZaM2EtUDRpeFwiLFwibGVmdEVkZ2VcIjpcIl8xTkoxRnpJX2FiS2ktVzZrYzJyMmM2XCIsXCJsZWZ0T25FZGdlXCI6XCJfMTJFdndiYVZRTldQWmUzN1NvOExfbVwiLFwiaG9yaXpvbnRhbENlbnRlclwiOlwiXzJqaVN4RWJDVEtWekR0ZUdRMXVvRWZcIixcInZlcnRpY2FsQ2VudGVyXCI6XCJfMmY5RDQ2QkItZ2V6UHZ3OFRaeEp2cFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgSWNvblByb3BzID0ge1xyXG4gIGFsdD86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEltYWdlRWxlbWVudD47XHJcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIHNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiIHwgXCJ4bGFyZ2VcIjtcclxufTtcclxuZnVuY3Rpb24gSWNvbih7XHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBjb250YWluZXJSZWYsXHJcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxufTogSWNvblByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxpbWdcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5pY29uLFxyXG4gICAgICAgIHN0eWxlc1tzaXplXSxcclxuICAgICAgICB7IFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCB9LFxyXG4gICAgICBdKX1cclxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxyXG4gICAgICBkYXRhLXRlc3RpZD1cImljb25cIlxyXG4gICAgICBhbHQ9e2FsdH1cclxuICAgICAgc3JjPXtzcmN9XHJcbiAgICAvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEljb247XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaWNvblwiOlwiXzMzY1RNOGk4cWFqRkd5LTAwdHkwUndcIixcInNtYWxsXCI6XCJNVWkzaWt6Y1BaZG81OUFmb1hkT0ZcIixcIm1lZGl1bVwiOlwiXzJWQ0txeTU5TlNGZGZEaUUwb3hhc3pcIixcImxhcmdlXCI6XCJfMlVVVWYybl9hMFBZcFE4a293S0h6cFwiLFwieGxhcmdlXCI6XCJvRElFWThVNFR3Q0prakY3eGFRQk9cIixcImludmVydGVkXCI6XCJfMnF6VXRVMVRkX2M1OHZNOEFMcVNWV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b24gfSBmcm9tIFwiLi9JY29uQnV0dG9uXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5cclxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbi5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4uL0J1dHRvbkJhZGdlXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgSWNvbkJ1dHRvblByb3BzID0ge1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIGFsdDogc3RyaW5nO1xyXG4gIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xyXG4gIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICBub0JvcmRlcj86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xyXG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIj47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBJY29uQnV0dG9uKHtcclxuICBjbGFzc05hbWUsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIHNyYyxcclxuICBhbHQsXHJcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcclxuICBvZmZzZXRTaWRlcyA9IFtdLFxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIGludmVydGVkID0gZmFsc2UsXHJcbiAgbm9TaGFkb3cgPSBmYWxzZSxcclxuICBub0JvcmRlciA9IGZhbHNlLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgcm91bmRlZCA9IGZhbHNlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIHR5cGUgPSBcImJ1dHRvblwiLFxyXG59OiBJY29uQnV0dG9uUHJvcHMpIHtcclxuICByZXR1cm4gKFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcclxuICAgICAgICBzdHlsZXNbc2l6ZV0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgdHlwZT17dHlwZX1cclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICA+XHJcbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxyXG4gICAgICB7YmFkZ2VDb250ZW50ICYmIDxCdXR0b25CYWRnZT57YmFkZ2VDb250ZW50fTwvQnV0dG9uQmFkZ2U+fVxyXG4gICAgPC9idXR0b24+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIlJneWxsWFRxcDNfalo2QTJOYnZnNlwiLFwic21hbGxcIjpcIl8xdzBoWmxPYmVMN0VHODd6c0wtOXZOXCIsXCJtZWRpdW1cIjpcIkVLMWJ2SlpqVzExOURvNzlTdEw3SVwiLFwibGFyZ2VcIjpcIlBneVFYSzF5eUNNcThCU2FZQ2JjaFwiLFwieGxhcmdlXCI6XCJxaGtIeklvSW93bnJleEh6UVN1dVVcIixcInJvdW5kZWRcIjpcIl8zcXFhMWswQzlKTVBzQlJTejZaMHlZXCIsXCJ0b3BPZmZzZXRcIjpcIl8zVlpQN0RvaGhaN3o4Zmk0ei1IOGpOXCIsXCJyaWdodE9mZnNldFwiOlwiXzJYWGhKMy1jWWNYYklWTm1tbk84eUhcIixcImJvdHRvbU9mZnNldFwiOlwiWkpJWDdWcTVtdXNqZDZzNGhDU2JQXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMVFWV2l5aXZXOVV4ZW9OdTNVZG52NlwiLFwiaW52ZXJ0ZWRcIjpcIl8yalp6WGhuSHFxYnR1bTRkQmRsMWxLXCIsXCJub1NoYWRvd1wiOlwiXzNmeHZXaU9ORkZZdE11RGNYcDhzeXVcIixcIm5vQm9yZGVyXCI6XCJfM0V1eHVwbnFPVnVTb1VzYkt6Tm5cIixcInRyYW5zcGFyZW50XCI6XCJfMzViUklpOEJ0RDRSS1NKdlpial9zbVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b25MaW5rIH0gZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmtcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xyXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuaW1wb3J0IHsgQnV0dG9uQmFkZ2UgfSBmcm9tIFwiLi4vQnV0dG9uQmFkZ2VcIjtcclxuXHJcbnR5cGUgT2Zmc2V0U2lkZSA9IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XHJcblxyXG50eXBlIEljb25CdXR0b25MaW5rUHJvcHMgPVxyXG4gIHwge1xyXG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xyXG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xyXG4gICAgICBzcmM6IHN0cmluZztcclxuICAgICAgYWx0OiBzdHJpbmc7XHJcbiAgICAgIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcclxuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XHJcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XHJcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcclxuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gICAgICBzaXplPzogU2l6ZTtcclxuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcclxuICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gSWNvbkJ1dHRvbkxpbmsoe1xyXG4gIGFzOiBDb21wb25lbnQsXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGNsYXNzTmFtZSxcclxuICBzcmMsXHJcbiAgYWx0LFxyXG4gIGJhZGdlQ29udGVudCA9IG51bGwsXHJcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcclxuICBub1NoYWRvdyA9IGZhbHNlLFxyXG4gIG5vQm9yZGVyID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICByb3VuZGVkID0gZmFsc2UsXHJcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcclxuICBkaXNhYmxlZCA9IGZhbHNlLFxyXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxyXG4gIC4uLnByb3BzXHJcbn06IEljb25CdXR0b25MaW5rUHJvcHMpIHtcclxuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPENvbXBvbmVudFxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJpY29uLWJ1dHRvbi1saW5rXCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcclxuICAgICAgICBzdHlsZXNbc2l6ZV0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxyXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcclxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcclxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcclxuICAgICAgICAgIFtzdHlsZXMuZGlzYWJsZWRdOiBkaXNhYmxlZCxcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcclxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXHJcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgXSl9XHJcbiAgICAgIHsuLi5wcm9wc31cclxuICAgID5cclxuICAgICAgPEljb24gc3JjPXtzcmN9IGFsdD17YWx0fSBzaXplPXtzaXplfSBpbnZlcnRlZD17aW52ZXJ0ZWR9IC8+XHJcbiAgICAgIHtiYWRnZUNvbnRlbnQgJiYgPEJ1dHRvbkJhZGdlPntiYWRnZUNvbnRlbnR9PC9CdXR0b25CYWRnZT59XHJcbiAgICA8L0NvbXBvbmVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uTGluaztcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zd2p4akN6dl9scGhkV203M0pnQXlwXCIsXCJzbWFsbFwiOlwiXzMyTVltWmJIelVVMGIzZE1jbUpzaU1cIixcIm1lZGl1bVwiOlwiXzE4OXJZSjJUdmFCeXJDM1M3Q2Yzbm1cIixcImxhcmdlXCI6XCJfMmFZU1NUVWc4d3ZyQURPUzE4OHhNXCIsXCJ4bGFyZ2VcIjpcInZzM0tZdlU3WmNuaHcyU095U0NOZlwiLFwicm91bmRlZFwiOlwiXzE4aWg2N0xMMG43WGw2MWdMRzhzMGtcIixcInRvcE9mZnNldFwiOlwiXzFwN2g3VzZRc0RIcGJhNm1neVdVTDlcIixcInJpZ2h0T2Zmc2V0XCI6XCJfM2Z4TUlCX0p6NUNZSWZ3dVpoUTI4aVwiLFwiYm90dG9tT2Zmc2V0XCI6XCJfMTEzbTRDV2ltTHZzalU5eEl4UHE3aVwiLFwibGVmdE9mZnNldFwiOlwiXzZDaG92Mk1veVV4eWhXeEtuMzY4S1wiLFwiaW52ZXJ0ZWRcIjpcIl8zZXFPSlF6NHVlLWVYTHZxMjdBc1k1XCIsXCJub1NoYWRvd1wiOlwibEY2RF9WMjB4MzJ2OVp5c3F3QzY4XCIsXCJub0JvcmRlclwiOlwiXzNzNnFDb2xManBqbDRScm83bVZUeFNcIixcInRyYW5zcGFyZW50XCI6XCJfMklaTzlwSzEzMVU5MWN5S1hpeGd4RFwiLFwiZGlzYWJsZWRcIjpcIl8xalFnWDdrZy1sU1lWbS1QZ0RpWXFwXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UsIEltYWdlUHJvcHMgfSBmcm9tIFwiLi9JbWFnZVwiO1xyXG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSW1hZ2UubW9kdWxlLmNzc1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgSW1hZ2VQcm9wcyA9IHtcclxuICBhbHQ/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcclxuICBsYXlvdXQ/OiBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xyXG4gIHNyYzogc3RyaW5nO1xyXG4gIHNyY1dpZHRoPzogbnVtYmVyO1xyXG4gIHNyY0hlaWdodD86IG51bWJlcjtcclxuICBkZWNvZGluZz86IFwiYXN5bmNcIiB8IFwic3luY1wiIHwgXCJhdXRvXCIsXHJcbiAgbG9hZGluZz86IFwiZWFnZXJcIiB8IFwibGF6eVwiXHJcbn07XHJcblxyXG5mdW5jdGlvbiBJbWFnZUNvbXBvbmVudCh7XHJcbiAgc3JjLFxyXG4gIGFsdCxcclxuICBzcmNXaWR0aCxcclxuICBzcmNIZWlnaHQsXHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxyXG4gIGRlY29kaW5nPSBcImF1dG9cIixcclxuICBsb2FkaW5nPSBcImVhZ2VyXCJcclxufTogSW1hZ2VQcm9wcykge1xyXG4gIGNvbnN0IGltYWdlRWxlbWVudCA9IChcclxuICAgIDxpbWdcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmltYWdlLCBzdHlsZXNbbGF5b3V0XV0pfVxyXG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXHJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxyXG4gICAgICBhbHQ9e2FsdH1cclxuICAgICAgc3JjPXtzcmN9XHJcbiAgICAgIHdpZHRoPXtzcmNXaWR0aH1cclxuICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XHJcbiAgICAgIGRlY29kaW5nPXtkZWNvZGluZ31cclxuICAgICAgbG9hZGluZz17bG9hZGluZ31cclxuICAgIC8+XHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxyXG4gICAgPGRpdlxyXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cclxuICAgID5cclxuICAgICAge2ltYWdlRWxlbWVudH1cclxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cclxuICAgIDwvZGl2PlxyXG4gICkgOiAoXHJcbiAgICBpbWFnZUVsZW1lbnRcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbWFnZUNvbXBvbmVudDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xVjAwR3B6X2tlcVVXR0VmWjc0d2pTXCIsXCJoYXNPdmVybGF5XCI6XCJfMk10VWZZcHc1VjhVcHJ4cV9FX3lTYVwiLFwib3ZlcmxheVwiOlwiejFEVkh4ajFaUEs3M09JUVJjazdqXCIsXCJpbWFnZVwiOlwiXzM5T2pUR1dkN3hteGNsNm51SS1nMkxcIixcImNvdmVyXCI6XCJfM3FLZHAybUs2ZjdHNXpBelhsemdyRVwiLFwiY29udGFpblwiOlwiXzJvX0c0WGJCLVFvemJmdWs0X1YwMGhcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8yeGd1RGtHdTFtUjJ5UGFZLWh6TjhvXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzE5V01hM3RxUnh2VWhES0ZaOFkyUEJcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0VmlldyB9IGZyb20gXCIuL0xpc3RWaWV3XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdJdGVtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdMaW5rSXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3TGlua0l0ZW1cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXcubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBMaXN0Vmlld1Byb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgaGVhZGVyPzogc3RyaW5nO1xyXG4gIGhlYWRlckFjdGlvbnM/OiBSZWFjdE5vZGU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBMaXN0Vmlldyh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBoZWFkZXIsXHJcbiAgaGVhZGVyQWN0aW9ucyxcclxufTogTGlzdFZpZXdQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBjbGFzc05hbWVdKX0+XHJcbiAgICAgIHsoaGVhZGVyIHx8IGhlYWRlckFjdGlvbnMpICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlcn0+XHJcbiAgICAgICAgICB7aGVhZGVyICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJMYWJlbH0+e2hlYWRlcn08L2gzPn1cclxuICAgICAgICAgIHtoZWFkZXJBY3Rpb25zfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgICA8dWwgY2xhc3NOYW1lPXtzdHlsZXMubGlzdH0+e2NoaWxkcmVufTwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0VmlldztcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIkRjV29FYmlvbDlweC1GUUFfVHBPa1wiLFwiaGVhZGVyXCI6XCJfMmphdkI4c0FEeDZkRGdxWE4zTUNMUFwiLFwiaGVhZGVyTGFiZWxcIjpcIl8zaU1PZkl5TkwxU0VtdjJKOFpERG1XXCIsXCJsaXN0XCI6XCJfM19LbXRiTVBwUEhnSkZNOVpCX3huQVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9CdXR0b25cIjtcclxuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIExpc3RWaWV3SXRlbVByb3BzID0ge1xyXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIG5vUGFkZGluZz86IGJvb2xlYW47XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XHJcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xyXG4gIGNoaWxkcmVuLFxyXG4gIGFjdGl2ZSA9IGZhbHNlLFxyXG4gIGRpc2FibGVkID0gZmFsc2UsXHJcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcclxuICBub1BhZGRpbmcgPSBmYWxzZSxcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICBhbGlnbiA9IFwiY2VudGVyXCIsXHJcbiAgb25DbGljayA9ICgpID0+IHt9LFxyXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cclxuICAgICAgPEJ1dHRvblxyXG4gICAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XHJcbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxyXG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XHJcbiAgICAgICAgdHJhbnNwYXJlbnQ9e3RyYW5zcGFyZW50fVxyXG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxyXG4gICAgICAgIGFsaWduPXthbGlnbn1cclxuICAgICAgICBzaXplPXtzaXplfVxyXG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcclxuICAgICAgICBub1NoYWRvd1xyXG4gICAgICAgIG5vQm9yZGVyXHJcbiAgICAgID5cclxuICAgICAgICB7Y2hpbGRyZW59XHJcbiAgICAgIDwvQnV0dG9uPlxyXG4gICAgPC9saT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XHJcbiIsImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkxpbmsgfSBmcm9tIFwiLi4vQnV0dG9uTGlua1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XHJcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcclxuXHJcbnR5cGUgTGlzdFZpZXdMaW5rSXRlbVByb3BzID1cclxuICB8IHtcclxuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcclxuICAgICAgYWN0aXZlOiBib29sZWFuO1xyXG4gICAgICB0cmFuc3BhcmVudDogYm9vbGVhbjtcclxuICAgICAgbm9QYWRkaW5nOiBib29sZWFuO1xyXG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xyXG4gICAgICBzaXplOiBTaXplO1xyXG4gICAgfVxyXG4gIHwgYW55O1xyXG5cclxuZnVuY3Rpb24gTGlzdFZpZXdMaW5rSXRlbSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgYXM6IENvbXBvbmVudCxcclxuICBhY3RpdmUgPSBmYWxzZSxcclxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxyXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxyXG4gIGFsaWduID0gXCJjZW50ZXJcIixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICAuLi5wcm9wc1xyXG59OiBMaXN0Vmlld0xpbmtJdGVtUHJvcHMpIHtcclxuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5saXN0Vmlld0l0ZW1dKX0+XHJcbiAgICAgIDxCdXR0b25MaW5rXHJcbiAgICAgICAgYXM9e0NvbXBvbmVudH1cclxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxyXG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cclxuICAgICAgICBub1BhZGRpbmc9e25vUGFkZGluZ31cclxuICAgICAgICBhbGlnbj17YWxpZ259XHJcbiAgICAgICAgc2l6ZT17c2l6ZX1cclxuICAgICAgICBzdHJldGNoSG9yaXpvbnRhbGx5XHJcbiAgICAgICAgbm9TaGFkb3dcclxuICAgICAgICBub0JvcmRlclxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgPC9CdXR0b25MaW5rPlxyXG4gICAgPC9saT5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xyXG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIE1lbnUgfSBmcm9tIFwiLi9NZW51XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUNvbnRhaW5lciwgTWVudVBsYWNlbWVudCB9IGZyb20gXCIuL01lbnVDb250YWluZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUxpbmtJdGVtIH0gZnJvbSBcIi4vTWVudUxpbmtJdGVtXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnUubW9kdWxlLmNzc1wiO1xyXG5cclxudHlwZSBNZW51UHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBpc09wZW4/OiBib29sZWFuO1xyXG4gIGhlYWRlcj86IHN0cmluZztcclxuICBmb290ZXI/OiBSZWFjdE5vZGU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBNZW51KHtcclxuICBjaGlsZHJlbixcclxuICBjb250YWluZXJSZWYsXHJcbiAgY2xhc3NOYW1lLFxyXG4gIGlzT3BlbiA9IHRydWUsXHJcbiAgaGVhZGVyLFxyXG4gIGZvb3RlcixcclxufTogTWVudVByb3BzKSB7XHJcbiAgaWYgKCFpc09wZW4pIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgIHN0eWxlcy5tZW51LFxyXG4gICAgICAgICAgeyBbc3R5bGVzLm9wZW5dOiBpc09wZW4gfSxcclxuICAgICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICBdKX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuc2Nyb2xsQ29udGFpbmVyfT5cclxuICAgICAgICAgIHtoZWFkZXIgJiYgaXNPcGVuICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PntoZWFkZXJ9PC9oMz59XHJcbiAgICAgICAgICA8dWw+e2lzT3BlbiAmJiBjaGlsZHJlbn08L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtmb290ZXIgJiYgaXNPcGVuICYmIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgICAgICAgc3R5bGVzLmZvb3RlcixcclxuICAgICAgICAgICAgICB7IFtzdHlsZXMubm9Cb3JkZXJdOiAhY2hpbGRyZW4gfSxcclxuICAgICAgICAgICAgXSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtmb290ZXJ9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbnU7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudVwiOlwiXzFMNS1wdl9QNk0yb0dlb1JlTW5PMkpcIixcIm9wZW5cIjpcIl8xSjdwRmt2a2pRUVJXa21nLTBYVFdaXCIsXCJlbnRyYW5jZVwiOlwiXzNjcWVzUUdmOUN5dTY2RHNvS3RGMHFcIixcImhlYWRlclwiOlwicE9QWWFWMDFvOVdCN0J3NFZnaXdcIixcImZvb3RlclwiOlwiXzNtQ2NjbnZOZE4tWFpaUzdQTHhhdjBcIixcIm5vQm9yZGVyXCI6XCJfMjZ0VU9mOWdJLWFSZmFmX0lleVBVSVwiLFwic2Nyb2xsQ29udGFpbmVyXCI6XCJfMW1xTVVyZDEzLTFUbG92R0NCT2VwZlwifTsiLCJpbXBvcnQgUmVhY3QsIHtcclxuICBSZWFjdE5vZGUsXHJcbiAgUmVhY3RFbGVtZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgRm9yd2FyZGVkUmVmLFxyXG59IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVDb250YWluZXIubW9kdWxlLmNzc1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgTWVudVBsYWNlbWVudCA9IHtcclxuICBob3Jpem9udGFsOiBcInJpZ2h0XCIgfCBcImxlZnRcIjtcclxuICB2ZXJ0aWNhbDogXCJ0b3BcIiB8IFwiYm90dG9tXCI7XHJcbn07XHJcblxyXG50eXBlIE1lbnVDb250YWluZXJQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGJ1dHRvbj86IFJlYWN0RWxlbWVudDtcclxuICBjbGFzc05hbWU/OiBzdHJpbmc7XHJcbiAgcGxhY2VtZW50PzogTWVudVBsYWNlbWVudDtcclxufTtcclxuXHJcbmZ1bmN0aW9uIE1lbnVDb250YWluZXIoXHJcbiAge1xyXG4gICAgY2hpbGRyZW4sXHJcbiAgICBidXR0b24sXHJcbiAgICBjbGFzc05hbWUsXHJcbiAgICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwibGVmdFwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiB9LFxyXG4gIH06IE1lbnVDb250YWluZXJQcm9wcyxcclxuICByZWY6IEZvcndhcmRlZFJlZjxIVE1MRGl2RWxlbWVudD5cclxuKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cclxuICAgICAge2J1dHRvbn1cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcclxuICAgICAgICAgIHN0eWxlcy5tZW51Q29udGFpbmVyLFxyXG4gICAgICAgICAgc3R5bGVzW3BsYWNlbWVudC5ob3Jpem9udGFsXSxcclxuICAgICAgICAgIHN0eWxlc1twbGFjZW1lbnQudmVydGljYWxdLFxyXG4gICAgICAgIF0pfVxyXG4gICAgICA+XHJcbiAgICAgICAge2NoaWxkcmVufVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZvcndhcmRSZWYoTWVudUNvbnRhaW5lcik7XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfM0Q0SVFaV0N0SDhNVFhydjU5TVlLRlwiLFwibWVudUNvbnRhaW5lclwiOlwiXzFfMnNGRlZ6TlhtSlhfUFRwSFpnRUxcIixcInRvcFwiOlwiUXZDNHk2bWYxWVctYmxLNlBTTjVJXCIsXCJyaWdodFwiOlwiXzNtclZid2ttVm1sY0ZEYWRQb2VjYzdcIixcImxlZnRcIjpcIlhmUTRiam5LRmFBWW1RVHVSSy02QVwiLFwiYm90dG9tXCI6XCJfMzlfdHliWDVKWjZZLXVqNDdnUHNLVlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVJdGVtLm1vZHVsZS5jc3NcIjtcclxuXHJcbnR5cGUgTWVudUl0ZW1Qcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNsYXNzTmFtZT86IHN0cmluZztcclxuICBpc0FjdGl2ZT86IGJvb2xlYW47XHJcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTExJRWxlbWVudD4pID0+IHZvaWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBNZW51SXRlbSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY2xhc3NOYW1lLFxyXG4gIG9uQ2xpY2ssXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgaXNBY3RpdmUgPSBmYWxzZSxcclxufTogTWVudUl0ZW1Qcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8bGlcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLm1lbnVJdGVtLFxyXG4gICAgICAgIHsgW3N0eWxlcy5hY3RpdmVdOiBpc0FjdGl2ZSB9LFxyXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgIF0pfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2xpPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE1lbnVJdGVtO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVJdGVtXCI6XCJfMktzUkNFZ0VfTTd3b1hqaHBSdVZ1b1wiLFwibm9QYWRkaW5nXCI6XCJfMmNxTUpISnlDakFVOFpQWkFWMFlENVwiLFwiYWN0aXZlXCI6XCJfMVhuWFppQXJodlVleVhncVVhRy1QN1wifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcblxyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIE1lbnVMaW5rSXRlbVByb3BzID1cclxuICB8IHtcclxuICAgICAgYXM6IEVsZW1lbnRUeXBlO1xyXG4gICAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcclxuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuICAgIH1cclxuICB8IGFueTtcclxuXHJcbmZ1bmN0aW9uIE1lbnVMaW5rSXRlbSh7XHJcbiAgYXM6IENvbXBvbmVudCxcclxuICBjaGlsZHJlbixcclxuICBjbGFzc05hbWUsXHJcbiAgbm9QYWRkaW5nID0gZmFsc2UsXHJcbiAgLi4ucHJvcHNcclxufTogTWVudUxpbmtJdGVtUHJvcHMpIHtcclxuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPENvbXBvbmVudFxyXG4gICAgICBkYXRhLXRlc3RpZD1cIm1lbnUtbGluay1pdGVtXCJcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXHJcbiAgICAgICAgc3R5bGVzLm1lbnVMaW5rSXRlbSxcclxuICAgICAgICBjbGFzc05hbWUsXHJcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxyXG4gICAgICBdKX1cclxuICAgICAgey4uLnByb3BzfVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L0NvbXBvbmVudD5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNZW51TGlua0l0ZW07XHJcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUxpbmtJdGVtXCI6XCJfM3o1dDlDQWhjQXdWT3RPVmxBXzRHd1wiLFwibm9QYWRkaW5nXCI6XCJiTlhpa3lFWklJT00xSGdzQWkzZnRcIixcImFjdGl2ZVwiOlwiXzFaLW1QdmV3R1VnNDg0UVBjOUh4cTJcIixcIm1lbnVJdGVtXCI6XCJfM3RJV0FoTUR0UHpBSDRiQXJ3cFJPdlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIE92ZXJsYXkgfSBmcm9tIFwiLi9PdmVybGF5XCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vT3ZlcmxheS5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIE92ZXJsYXlQcm9wcyA9IHtcclxuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xyXG4gIGlzRml4ZWQ/OiBib29sZWFuO1xyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gT3ZlcmxheSh7XHJcbiAgY2hpbGRyZW4sXHJcbiAgY29udGFpbmVyUmVmLFxyXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXHJcbiAgaXNGaXhlZCA9IGZhbHNlLFxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcclxufTogT3ZlcmxheVByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGRhdGEtdGVzdGlkPVwib3ZlcmxheVwiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xyXG4gICAgICAgIHN0eWxlcy5vdmVybGF5LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcclxuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBpc0ZpeGVkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pfVxyXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxyXG4gICAgPlxyXG4gICAgICB7Y2hpbGRyZW59XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBPdmVybGF5O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIkkwZG0tTGRtLVNpUzB2NVgtdm8wZ1wiLFwidHJhbnNwYXJlbnRcIjpcIl8zcWREZGx5bkhMbm9mTjFES3Z2WVE4XCIsXCJmaXhlZFwiOlwiXzFnWHk5WFMzRi1KdHFkalpCY29LU3dcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0SW5wdXQgfSBmcm9tIFwiLi9UZXh0SW5wdXRcIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVGV4dElucHV0Lm1vZHVsZS5jc3NcIjtcclxuaW1wb3J0IHsgU2l6ZSwgVGV4dElucHV0VHlwZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5cclxudHlwZSBUZXh0SW5wdXRQcm9wcyA9IHtcclxuICBsYWJlbD86IHN0cmluZztcclxuICBvbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xyXG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XHJcbiAgb25LZXlEb3duPzogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgdHlwZT86IFRleHRJbnB1dFR5cGU7XHJcbiAgc2l6ZT86IFNpemU7XHJcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xyXG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XHJcbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudD47XHJcbn07XHJcblxyXG5mdW5jdGlvbiBUZXh0SW5wdXQoe1xyXG4gIGxhYmVsLFxyXG4gIG9uQ2hhbmdlLFxyXG4gIG9uQmx1cixcclxuICBvbktleURvd24sXHJcbiAgcGxhY2Vob2xkZXIsXHJcbiAgdmFsdWUsXHJcbiAgbmFtZSxcclxuICBpbnB1dFJlZixcclxuICBzaXplID0gXCJtZWRpdW1cIixcclxuICB0eXBlID0gXCJ0ZXh0XCIsXHJcbiAgYXV0b0ZvY3VzID0gZmFsc2UsXHJcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcclxufTogVGV4dElucHV0UHJvcHMpIHtcclxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcclxuICAgIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcclxuICAgICAgaWYgKG9uQ2hhbmdlKSB7XHJcbiAgICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIFtvbkNoYW5nZV1cclxuICApO1xyXG5cclxuICBjb25zdCBpbnB1dEVsZW1lbnQgPSAoXHJcbiAgICA8aW5wdXRcclxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbnB1dFwiXHJcbiAgICAgIHJlZj17aW5wdXRSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50ZXh0SW5wdXQsIHN0eWxlc1tzaXplXSwge1tzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcn1dKX1cclxuICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cclxuICAgICAgb25CbHVyPXtvbkJsdXJ9XHJcbiAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxyXG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XHJcbiAgICAgIG5hbWU9e25hbWV9XHJcbiAgICAgIHR5cGU9e3R5cGV9XHJcbiAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XHJcbiAgICAvPlxyXG4gICk7XHJcbiAgaWYgKGxhYmVsKSB7XHJcbiAgICByZXR1cm4gPExhYmVsIHZhbHVlPXtsYWJlbH0+e2lucHV0RWxlbWVudH08L0xhYmVsPjtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIDw+e2lucHV0RWxlbWVudH08Lz47XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dDtcclxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0ZXh0SW5wdXRcIjpcIl8yaWZGVEJ5eHZRRjVlUll3TUFTYWU3XCIsXCJzbWFsbFwiOlwiXzE4aUxOaHFjNVR6NVBQbzJrNF9UQmhcIixcIm1lZGl1bVwiOlwiXzFqYVJ5amVhdEpSeEV1amdQR3pXenhcIixcImxhcmdlXCI6XCJfMzRkNUgzWDhXMFVnWDlCOGR0UFJBT1wiLFwieGxhcmdlXCI6XCJfM3N0OEVHb3VuT2dqTnVMcG9FckMwc1wiLFwibm9Cb3JkZXJcIjpcInB0Ulo3QTVnaVc3RkIzbWs4UUxDTVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0IH0gZnJvbSBcIi4vVG9hc3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdENvbnRhaW5lciB9IGZyb20gXCIuL1RvYXN0Q29udGFpbmVyXCI7XHJcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdC5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIFRvYXN0UHJvcHMgPSB7XHJcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcclxuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gVG9hc3QoeyBjaGlsZHJlbiwgY29udGFpbmVyUmVmLCBvbkNsaWNrID0gKCkgPT4ge30gfTogVG9hc3RQcm9wcykge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2XHJcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxyXG4gICAgICBjbGFzc05hbWU9e3N0eWxlcy50b2FzdH1cclxuICAgICAgb25DbGljaz17b25DbGlja31cclxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdFwiXHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRvYXN0O1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0XCI6XCJfMk4zWGlIOFJWbkVBWWx6QkRfSkNxWlwiLFwiZW50cmFuY2VcIjpcIl8xOWN3M3p4NmZVNFJNR01hR001ekpaXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzXCI7XHJcblxyXG50eXBlIFRvYXN0Q29udGFpbmVyUHJvcHMgPSB7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XHJcbiAgYmFzZVpJbmRleD86IG51bWJlcjtcclxufTtcclxuZnVuY3Rpb24gVG9hc3RDb250YWluZXIoeyBjaGlsZHJlbiwgYmFzZVpJbmRleCB9OiBUb2FzdENvbnRhaW5lclByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRvYXN0Q29udGFpbmVyXSl9XHJcbiAgICAgIHN0eWxlPXt7IHpJbmRleDogYmFzZVpJbmRleCB9fVxyXG4gICAgICBkYXRhLXRlc3RpZD1cInRvYXN0LWNvbnRhaW5lclwiXHJcbiAgICA+XHJcbiAgICAgIHtjaGlsZHJlbn1cclxuICAgIDwvZGl2PlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRvYXN0Q29udGFpbmVyO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0Q29udGFpbmVyXCI6XCJfM1JUMmFiZnpLMHJ0LVlqY3JxWExuclwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFZpZGVvLCBWaWRlb1Byb3BzIH0gZnJvbSBcIi4vVmlkZW9cIjtcclxuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcclxuXHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVmlkZW8ubW9kdWxlLmNzc1wiO1xyXG5cclxuLyoqXHJcbiAqIFRoZXJlIGlzIGEga25vd24gaXNzdWUgaW4gUmVhY3QgaW4gcmVnYXJkcyB0byB0aGUgJ211dGVkJyBwcm9wZXJ0eSB3aGljaCBjYXVzZXMgdGhlIHdhcm5pbmc6XHJcbiAqIFwiV2FybmluZzogdW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuXCJcclxuICpcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMDM4OVxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY1NDRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctbGlicmFyeS9yZWFjdC10ZXN0aW5nLWxpYnJhcnkvaXNzdWVzLzQ3MFxyXG4gKi9cclxuXHJcbnR5cGUgTGF5b3V0ID0gXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcclxuXHJcbmV4cG9ydCB0eXBlIFZpZGVvUHJvcHMgPSB7XHJcbiAgc3JjOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGxheW91dD86IExheW91dDtcclxuICBhdXRvUGxheT86IGJvb2xlYW47XHJcbiAgbG9vcD86IGJvb2xlYW47XHJcbiAgbXV0ZWQ/OiBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xyXG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XHJcbiAgcG9zdGVyPzogc3RyaW5nO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gVmlkZW8oe1xyXG4gIHNyYyxcclxuICB0eXBlLFxyXG4gIGNoaWxkcmVuLFxyXG4gIGNvbnRhaW5lclJlZixcclxuICBwb3N0ZXIsXHJcbiAgbXV0ZWQgPSB0cnVlLFxyXG4gIGxvb3AgPSB0cnVlLFxyXG4gIGF1dG9QbGF5ID0gdHJ1ZSxcclxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcclxufTogVmlkZW9Qcm9wcykge1xyXG4gIHJldHVybiBjaGlsZHJlbiA/IChcclxuICAgIDxkaXZcclxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XHJcbiAgICA+XHJcbiAgICAgIDx2aWRlb1xyXG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxyXG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcclxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XHJcbiAgICAgICAgbXV0ZWQ9e211dGVkfVxyXG4gICAgICAgIGxvb3A9e2xvb3B9XHJcbiAgICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxyXG4gICAgICAgIHBvc3Rlcj17cG9zdGVyfVxyXG4gICAgICAgIHBsYXlzSW5saW5lXHJcbiAgICAgID5cclxuICAgICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XHJcbiAgICAgIDwvdmlkZW8+XHJcbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XHJcbiAgICA8L2Rpdj5cclxuICApIDogKFxyXG4gICAgPHZpZGVvXHJcbiAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxyXG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXHJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cclxuICAgICAgbXV0ZWQ9e211dGVkfVxyXG4gICAgICBsb29wPXtsb29wfVxyXG4gICAgICBhdXRvUGxheT17YXV0b1BsYXl9XHJcbiAgICAgIHBvc3Rlcj17cG9zdGVyfVxyXG4gICAgICBwbGF5c0lubGluZVxyXG4gICAgPlxyXG4gICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XHJcbiAgICA8L3ZpZGVvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFZpZGVvO1xyXG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFkNTV3WHVRS3B0OTdQcVFIWXg1bVdcIixcImhhc092ZXJsYXlcIjpcIl8yREFNMXg3UDF3dVlOUDhURG1YR1hjXCIsXCJ2aWRlb1wiOlwiXzNqUV9xcFVMdHIwdUZTVFdiRDBOVlpcIixcImNvdmVyXCI6XCJfMXFuVkxoZUd6REk2Tm85X253YjdobFwiLFwiY29udGFpblwiOlwiXzFYMjg2TklTSTB3cTJLSzNkalZodTNcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIk9lZ2wtOGdkMks1bHozbVVHSl9VelwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xLUh6cFRZX1d0R2NaYzI1d0NvdGVZXCIsXCJvdmVybGF5XCI6XCJfMlR2WHNxQUlVbkdTcW02a25KRmhMM1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRvZ2dsZSB9IGZyb20gXCIuL3VzZVRvZ2dsZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuL3VzZU91dHNpZGVDbGlja1wiO1xyXG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVRvZ2dsZShcclxuICBpbml0aWFsVmFsdWUgPSBmYWxzZVxyXG4pOiBbYm9vbGVhbiwgKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4gdm9pZF0ge1xyXG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oaW5pdGlhbFZhbHVlKTtcclxuXHJcbiAgY29uc3QgdG9nZ2xlID0gdXNlQ2FsbGJhY2soKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2V0VmFsdWUoKHByZXZWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAhcHJldlZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiBbdmFsdWUsIHRvZ2dsZV07XHJcbn1cclxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcclxuXHJcbnR5cGUgQ2FsbGJhY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlT3V0c2lkZUNsaWNrKGNhbGxiYWNrOiBDYWxsYmFjaykge1xyXG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgdXNlRWZmZWN0KCgpID0+IHtcclxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBpZiAoIXJlZi5jdXJyZW50IHx8IHJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FsbGJhY2soZXZlbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBoYW5kbGVDbGljayk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgaGFuZGxlQ2xpY2spO1xyXG5cclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZUNsaWNrKTtcclxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIGhhbmRsZUNsaWNrKTtcclxuICAgIH07XHJcbiAgfSwgW2NhbGxiYWNrXSk7XHJcblxyXG4gIHJldHVybiByZWY7XHJcbn1cclxuIiwiLyohXG4gKiBob3RrZXlzLWpzIHYzLjguN1xuICogQSBzaW1wbGUgbWljcm8tbGlicmFyeSBmb3IgZGVmaW5pbmcgYW5kIGRpc3BhdGNoaW5nIGtleWJvYXJkIHNob3J0Y3V0cy4gSXQgaGFzIG5vIGRlcGVuZGVuY2llcy5cbiAqIFxuICogQ29weXJpZ2h0IChjKSAyMDIxIGtlbm55IHdvbmcgPHdvd29ob29AcXEuY29tPlxuICogaHR0cDovL2pheXdjamxvdmUuZ2l0aHViLmlvL2hvdGtleXNcbiAqIFxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICovXG5cbnZhciBpc2ZmID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgPyBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gMCA6IGZhbHNlOyAvLyDnu5Hlrprkuovku7ZcblxuZnVuY3Rpb24gYWRkRXZlbnQob2JqZWN0LCBldmVudCwgbWV0aG9kKSB7XG4gIGlmIChvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBtZXRob2QsIGZhbHNlKTtcbiAgfSBlbHNlIGlmIChvYmplY3QuYXR0YWNoRXZlbnQpIHtcbiAgICBvYmplY3QuYXR0YWNoRXZlbnQoXCJvblwiLmNvbmNhdChldmVudCksIGZ1bmN0aW9uICgpIHtcbiAgICAgIG1ldGhvZCh3aW5kb3cuZXZlbnQpO1xuICAgIH0pO1xuICB9XG59IC8vIOS/rumlsOmUrui9rOaNouaIkOWvueW6lOeahOmUrueggVxuXG5cbmZ1bmN0aW9uIGdldE1vZHMobW9kaWZpZXIsIGtleSkge1xuICB2YXIgbW9kcyA9IGtleS5zbGljZSgwLCBrZXkubGVuZ3RoIC0gMSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RzLmxlbmd0aDsgaSsrKSB7XG4gICAgbW9kc1tpXSA9IG1vZGlmaWVyW21vZHNbaV0udG9Mb3dlckNhc2UoKV07XG4gIH1cblxuICByZXR1cm4gbW9kcztcbn0gLy8g5aSE55CG5Lyg55qEa2V55a2X56ym5Liy6L2s5o2i5oiQ5pWw57uEXG5cblxuZnVuY3Rpb24gZ2V0S2V5cyhrZXkpIHtcbiAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSBrZXkgPSAnJztcbiAga2V5ID0ga2V5LnJlcGxhY2UoL1xccy9nLCAnJyk7IC8vIOWMuemFjeS7u+S9leepuueZveWtl+espizljIXmi6znqbrmoLzjgIHliLbooajnrKbjgIHmjaLpobXnrKbnrYnnrYlcblxuICB2YXIga2V5cyA9IGtleS5zcGxpdCgnLCcpOyAvLyDlkIzml7borr7nva7lpJrkuKrlv6vmjbfplK7vvIzku6UnLCfliIblibJcblxuICB2YXIgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTsgLy8g5b+r5o236ZSu5Y+v6IO95YyF5ZCrJywn77yM6ZyA54m55q6K5aSE55CGXG5cbiAgZm9yICg7IGluZGV4ID49IDA7KSB7XG4gICAga2V5c1tpbmRleCAtIDFdICs9ICcsJztcbiAgICBrZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufSAvLyDmr5TovoPkv67ppbDplK7nmoTmlbDnu4RcblxuXG5mdW5jdGlvbiBjb21wYXJlQXJyYXkoYTEsIGEyKSB7XG4gIHZhciBhcnIxID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGExIDogYTI7XG4gIHZhciBhcnIyID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGEyIDogYTE7XG4gIHZhciBpc0luZGV4ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFycjEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyMi5pbmRleE9mKGFycjFbaV0pID09PSAtMSkgaXNJbmRleCA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzSW5kZXg7XG59XG5cbnZhciBfa2V5TWFwID0ge1xuICBiYWNrc3BhY2U6IDgsXG4gIHRhYjogOSxcbiAgY2xlYXI6IDEyLFxuICBlbnRlcjogMTMsXG4gIHJldHVybjogMTMsXG4gIGVzYzogMjcsXG4gIGVzY2FwZTogMjcsXG4gIHNwYWNlOiAzMixcbiAgbGVmdDogMzcsXG4gIHVwOiAzOCxcbiAgcmlnaHQ6IDM5LFxuICBkb3duOiA0MCxcbiAgZGVsOiA0NixcbiAgZGVsZXRlOiA0NixcbiAgaW5zOiA0NSxcbiAgaW5zZXJ0OiA0NSxcbiAgaG9tZTogMzYsXG4gIGVuZDogMzUsXG4gIHBhZ2V1cDogMzMsXG4gIHBhZ2Vkb3duOiAzNCxcbiAgY2Fwc2xvY2s6IDIwLFxuICBudW1fMDogOTYsXG4gIG51bV8xOiA5NyxcbiAgbnVtXzI6IDk4LFxuICBudW1fMzogOTksXG4gIG51bV80OiAxMDAsXG4gIG51bV81OiAxMDEsXG4gIG51bV82OiAxMDIsXG4gIG51bV83OiAxMDMsXG4gIG51bV84OiAxMDQsXG4gIG51bV85OiAxMDUsXG4gIG51bV9tdWx0aXBseTogMTA2LFxuICBudW1fYWRkOiAxMDcsXG4gIG51bV9lbnRlcjogMTA4LFxuICBudW1fc3VidHJhY3Q6IDEwOSxcbiAgbnVtX2RlY2ltYWw6IDExMCxcbiAgbnVtX2RpdmlkZTogMTExLFxuICAn4oeqJzogMjAsXG4gICcsJzogMTg4LFxuICAnLic6IDE5MCxcbiAgJy8nOiAxOTEsXG4gICdgJzogMTkyLFxuICAnLSc6IGlzZmYgPyAxNzMgOiAxODksXG4gICc9JzogaXNmZiA/IDYxIDogMTg3LFxuICAnOyc6IGlzZmYgPyA1OSA6IDE4NixcbiAgJ1xcJyc6IDIyMixcbiAgJ1snOiAyMTksXG4gICddJzogMjIxLFxuICAnXFxcXCc6IDIyMFxufTsgLy8gTW9kaWZpZXIgS2V5c1xuXG52YXIgX21vZGlmaWVyID0ge1xuICAvLyBzaGlmdEtleVxuICAn4oenJzogMTYsXG4gIHNoaWZ0OiAxNixcbiAgLy8gYWx0S2V5XG4gICfijKUnOiAxOCxcbiAgYWx0OiAxOCxcbiAgb3B0aW9uOiAxOCxcbiAgLy8gY3RybEtleVxuICAn4oyDJzogMTcsXG4gIGN0cmw6IDE3LFxuICBjb250cm9sOiAxNyxcbiAgLy8gbWV0YUtleVxuICAn4oyYJzogOTEsXG4gIGNtZDogOTEsXG4gIGNvbW1hbmQ6IDkxXG59O1xudmFyIG1vZGlmaWVyTWFwID0ge1xuICAxNjogJ3NoaWZ0S2V5JyxcbiAgMTg6ICdhbHRLZXknLFxuICAxNzogJ2N0cmxLZXknLFxuICA5MTogJ21ldGFLZXknLFxuICBzaGlmdEtleTogMTYsXG4gIGN0cmxLZXk6IDE3LFxuICBhbHRLZXk6IDE4LFxuICBtZXRhS2V5OiA5MVxufTtcbnZhciBfbW9kcyA9IHtcbiAgMTY6IGZhbHNlLFxuICAxODogZmFsc2UsXG4gIDE3OiBmYWxzZSxcbiAgOTE6IGZhbHNlXG59O1xudmFyIF9oYW5kbGVycyA9IHt9OyAvLyBGMX5GMTIgc3BlY2lhbCBrZXlcblxuZm9yICh2YXIgayA9IDE7IGsgPCAyMDsgaysrKSB7XG4gIF9rZXlNYXBbXCJmXCIuY29uY2F0KGspXSA9IDExMSArIGs7XG59XG5cbnZhciBfZG93bktleXMgPSBbXTsgLy8g6K6w5b2V5pGB5LiL55qE57uR5a6a6ZSuXG5cbnZhciBfc2NvcGUgPSAnYWxsJzsgLy8g6buY6K6k54Ot6ZSu6IyD5Zu0XG5cbnZhciBlbGVtZW50SGFzQmluZEV2ZW50ID0gW107IC8vIOW3sue7keWumuS6i+S7tueahOiKgueCueiusOW9lVxuLy8g6L+U5Zue6ZSu56CBXG5cbnZhciBjb2RlID0gZnVuY3Rpb24gY29kZSh4KSB7XG4gIHJldHVybiBfa2V5TWFwW3gudG9Mb3dlckNhc2UoKV0gfHwgX21vZGlmaWVyW3gudG9Mb3dlckNhc2UoKV0gfHwgeC50b1VwcGVyQ2FzZSgpLmNoYXJDb2RlQXQoMCk7XG59OyAvLyDorr7nva7ojrflj5blvZPliY3ojIPlm7TvvIjpu5jorqTkuLon5omA5pyJJ++8iVxuXG5cbmZ1bmN0aW9uIHNldFNjb3BlKHNjb3BlKSB7XG4gIF9zY29wZSA9IHNjb3BlIHx8ICdhbGwnO1xufSAvLyDojrflj5blvZPliY3ojIPlm7RcblxuXG5mdW5jdGlvbiBnZXRTY29wZSgpIHtcbiAgcmV0dXJuIF9zY29wZSB8fCAnYWxsJztcbn0gLy8g6I635Y+W5pGB5LiL57uR5a6a6ZSu55qE6ZSu5YC8XG5cblxuZnVuY3Rpb24gZ2V0UHJlc3NlZEtleUNvZGVzKCkge1xuICByZXR1cm4gX2Rvd25LZXlzLnNsaWNlKDApO1xufSAvLyDooajljZXmjqfku7bmjqfku7bliKTmlq0g6L+U5ZueIEJvb2xlYW5cbi8vIGhvdGtleSBpcyBlZmZlY3RpdmUgb25seSB3aGVuIGZpbHRlciByZXR1cm4gdHJ1ZVxuXG5cbmZ1bmN0aW9uIGZpbHRlcihldmVudCkge1xuICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gIHZhciB0YWdOYW1lID0gdGFyZ2V0LnRhZ05hbWU7XG4gIHZhciBmbGFnID0gdHJ1ZTsgLy8gaWdub3JlOiBpc0NvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnLCA8aW5wdXQ+IGFuZCA8dGV4dGFyZWE+IHdoZW4gcmVhZE9ubHkgc3RhdGUgaXMgZmFsc2UsIDxzZWxlY3Q+XG5cbiAgaWYgKHRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSB8fCAodGFnTmFtZSA9PT0gJ0lOUFVUJyB8fCB0YWdOYW1lID09PSAnVEVYVEFSRUEnIHx8IHRhZ05hbWUgPT09ICdTRUxFQ1QnKSAmJiAhdGFyZ2V0LnJlYWRPbmx5KSB7XG4gICAgZmxhZyA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGZsYWc7XG59IC8vIOWIpOaWreaRgeS4i+eahOmUruaYr+WQpuS4uuafkOS4qumUru+8jOi/lOWbnnRydWXmiJbogIVmYWxzZVxuXG5cbmZ1bmN0aW9uIGlzUHJlc3NlZChrZXlDb2RlKSB7XG4gIGlmICh0eXBlb2Yga2V5Q29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBrZXlDb2RlID0gY29kZShrZXlDb2RlKTsgLy8g6L2s5o2i5oiQ6ZSu56CBXG4gIH1cblxuICByZXR1cm4gX2Rvd25LZXlzLmluZGV4T2Yoa2V5Q29kZSkgIT09IC0xO1xufSAvLyDlvqrnjq/liKDpmaRoYW5kbGVyc+S4reeahOaJgOaciSBzY29wZSjojIPlm7QpXG5cblxuZnVuY3Rpb24gZGVsZXRlU2NvcGUoc2NvcGUsIG5ld1Njb3BlKSB7XG4gIHZhciBoYW5kbGVycztcbiAgdmFyIGk7IC8vIOayoeacieaMh+WumnNjb3Bl77yM6I635Y+Wc2NvcGVcblxuICBpZiAoIXNjb3BlKSBzY29wZSA9IGdldFNjb3BlKCk7XG5cbiAgZm9yICh2YXIga2V5IGluIF9oYW5kbGVycykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2hhbmRsZXJzLCBrZXkpKSB7XG4gICAgICBoYW5kbGVycyA9IF9oYW5kbGVyc1trZXldO1xuXG4gICAgICBmb3IgKGkgPSAwOyBpIDwgaGFuZGxlcnMubGVuZ3RoOykge1xuICAgICAgICBpZiAoaGFuZGxlcnNbaV0uc2NvcGUgPT09IHNjb3BlKSBoYW5kbGVycy5zcGxpY2UoaSwgMSk7ZWxzZSBpKys7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIOWmguaenHNjb3Bl6KKr5Yig6Zmk77yM5bCGc2NvcGXph43nva7kuLphbGxcblxuXG4gIGlmIChnZXRTY29wZSgpID09PSBzY29wZSkgc2V0U2NvcGUobmV3U2NvcGUgfHwgJ2FsbCcpO1xufSAvLyDmuIXpmaTkv67ppbDplK5cblxuXG5mdW5jdGlvbiBjbGVhck1vZGlmaWVyKGV2ZW50KSB7XG4gIHZhciBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmNoYXJDb2RlO1xuXG4gIHZhciBpID0gX2Rvd25LZXlzLmluZGV4T2Yoa2V5KTsgLy8g5LuO5YiX6KGo5Lit5riF6Zmk5oyJ5Y6L6L+H55qE6ZSuXG5cblxuICBpZiAoaSA+PSAwKSB7XG4gICAgX2Rvd25LZXlzLnNwbGljZShpLCAxKTtcbiAgfSAvLyDnibnmrorlpITnkIYgY21tYW5kIOmUru+8jOWcqCBjbW1hbmQg57uE5ZCI5b+r5o236ZSuIGtleXVwIOWPquaJp+ihjOS4gOasoeeahOmXrumimFxuXG5cbiAgaWYgKGV2ZW50LmtleSAmJiBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ21ldGEnKSB7XG4gICAgX2Rvd25LZXlzLnNwbGljZSgwLCBfZG93bktleXMubGVuZ3RoKTtcbiAgfSAvLyDkv67ppbDplK4gc2hpZnRLZXkgYWx0S2V5IGN0cmxLZXkgKGNvbW1hbmR8fG1ldGFLZXkpIOa4hemZpFxuXG5cbiAgaWYgKGtleSA9PT0gOTMgfHwga2V5ID09PSAyMjQpIGtleSA9IDkxO1xuXG4gIGlmIChrZXkgaW4gX21vZHMpIHtcbiAgICBfbW9kc1trZXldID0gZmFsc2U7IC8vIOWwhuS/rumlsOmUrumHjee9ruS4umZhbHNlXG5cbiAgICBmb3IgKHZhciBrIGluIF9tb2RpZmllcikge1xuICAgICAgaWYgKF9tb2RpZmllcltrXSA9PT0ga2V5KSBob3RrZXlzW2tdID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVuYmluZChrZXlzSW5mbykge1xuICAvLyB1bmJpbmQoKSwgdW5iaW5kIGFsbCBrZXlzXG4gIGlmICgha2V5c0luZm8pIHtcbiAgICBPYmplY3Qua2V5cyhfaGFuZGxlcnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIGRlbGV0ZSBfaGFuZGxlcnNba2V5XTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGtleXNJbmZvKSkge1xuICAgIC8vIHN1cHBvcnQgbGlrZSA6IHVuYmluZChbe2tleTogJ2N0cmwrYScsIHNjb3BlOiAnczEnfSwge2tleTogJ2N0cmwtYScsIHNjb3BlOiAnczInLCBzcGxpdEtleTogJy0nfV0pXG4gICAga2V5c0luZm8uZm9yRWFjaChmdW5jdGlvbiAoaW5mbykge1xuICAgICAgaWYgKGluZm8ua2V5KSBlYWNoVW5iaW5kKGluZm8pO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBrZXlzSW5mbyA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBzdXBwb3J0IGxpa2UgdW5iaW5kKHtrZXk6ICdjdHJsK2EsIGN0cmwrYicsIHNjb3BlOidhYmMnfSlcbiAgICBpZiAoa2V5c0luZm8ua2V5KSBlYWNoVW5iaW5kKGtleXNJbmZvKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Yga2V5c0luZm8gPT09ICdzdHJpbmcnKSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5IC0gMV0gPSBhcmd1bWVudHNbX2tleV07XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydCBvbGQgbWV0aG9kXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICAgIHZhciBzY29wZSA9IGFyZ3NbMF0sXG4gICAgICAgIG1ldGhvZCA9IGFyZ3NbMV07XG5cbiAgICBpZiAodHlwZW9mIHNjb3BlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBtZXRob2QgPSBzY29wZTtcbiAgICAgIHNjb3BlID0gJyc7XG4gICAgfVxuXG4gICAgZWFjaFVuYmluZCh7XG4gICAgICBrZXk6IGtleXNJbmZvLFxuICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBzcGxpdEtleTogJysnXG4gICAgfSk7XG4gIH1cbn0gLy8g6Kej6Zmk57uR5a6a5p+Q5Liq6IyD5Zu055qE5b+r5o236ZSuXG5cblxudmFyIGVhY2hVbmJpbmQgPSBmdW5jdGlvbiBlYWNoVW5iaW5kKF9yZWYpIHtcbiAgdmFyIGtleSA9IF9yZWYua2V5LFxuICAgICAgc2NvcGUgPSBfcmVmLnNjb3BlLFxuICAgICAgbWV0aG9kID0gX3JlZi5tZXRob2QsXG4gICAgICBfcmVmJHNwbGl0S2V5ID0gX3JlZi5zcGxpdEtleSxcbiAgICAgIHNwbGl0S2V5ID0gX3JlZiRzcGxpdEtleSA9PT0gdm9pZCAwID8gJysnIDogX3JlZiRzcGxpdEtleTtcbiAgdmFyIG11bHRpcGxlS2V5cyA9IGdldEtleXMoa2V5KTtcbiAgbXVsdGlwbGVLZXlzLmZvckVhY2goZnVuY3Rpb24gKG9yaWdpbktleSkge1xuICAgIHZhciB1bmJpbmRLZXlzID0gb3JpZ2luS2V5LnNwbGl0KHNwbGl0S2V5KTtcbiAgICB2YXIgbGVuID0gdW5iaW5kS2V5cy5sZW5ndGg7XG4gICAgdmFyIGxhc3RLZXkgPSB1bmJpbmRLZXlzW2xlbiAtIDFdO1xuICAgIHZhciBrZXlDb2RlID0gbGFzdEtleSA9PT0gJyonID8gJyonIDogY29kZShsYXN0S2V5KTtcbiAgICBpZiAoIV9oYW5kbGVyc1trZXlDb2RlXSkgcmV0dXJuOyAvLyDliKTmlq3mmK/lkKbkvKDlhaXojIPlm7TvvIzmsqHmnInlsLHojrflj5bojIPlm7RcblxuICAgIGlmICghc2NvcGUpIHNjb3BlID0gZ2V0U2NvcGUoKTtcbiAgICB2YXIgbW9kcyA9IGxlbiA+IDEgPyBnZXRNb2RzKF9tb2RpZmllciwgdW5iaW5kS2V5cykgOiBbXTtcbiAgICBfaGFuZGxlcnNba2V5Q29kZV0gPSBfaGFuZGxlcnNba2V5Q29kZV0ubWFwKGZ1bmN0aW9uIChyZWNvcmQpIHtcbiAgICAgIC8vIOmAmui/h+WHveaVsOWIpOaWre+8jOaYr+WQpuino+mZpOe7keWumu+8jOWHveaVsOebuOetieebtOaOpei/lOWbnlxuICAgICAgdmFyIGlzTWF0Y2hpbmdNZXRob2QgPSBtZXRob2QgPyByZWNvcmQubWV0aG9kID09PSBtZXRob2QgOiB0cnVlO1xuXG4gICAgICBpZiAoaXNNYXRjaGluZ01ldGhvZCAmJiByZWNvcmQuc2NvcGUgPT09IHNjb3BlICYmIGNvbXBhcmVBcnJheShyZWNvcmQubW9kcywgbW9kcykpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICB9KTtcbn07IC8vIOWvueebkeWQrOWvueW6lOW/q+aNt+mUrueahOWbnuiwg+WHveaVsOi/m+ihjOWkhOeQhlxuXG5cbmZ1bmN0aW9uIGV2ZW50SGFuZGxlcihldmVudCwgaGFuZGxlciwgc2NvcGUpIHtcbiAgdmFyIG1vZGlmaWVyc01hdGNoOyAvLyDnnIvlroPmmK/lkKblnKjlvZPliY3ojIPlm7RcblxuICBpZiAoaGFuZGxlci5zY29wZSA9PT0gc2NvcGUgfHwgaGFuZGxlci5zY29wZSA9PT0gJ2FsbCcpIHtcbiAgICAvLyDmo4Dmn6XmmK/lkKbljLnphY3kv67ppbDnrKbvvIjlpoLmnpzmnInov5Tlm550cnVl77yJXG4gICAgbW9kaWZpZXJzTWF0Y2ggPSBoYW5kbGVyLm1vZHMubGVuZ3RoID4gMDtcblxuICAgIGZvciAodmFyIHkgaW4gX21vZHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX21vZHMsIHkpKSB7XG4gICAgICAgIGlmICghX21vZHNbeV0gJiYgaGFuZGxlci5tb2RzLmluZGV4T2YoK3kpID4gLTEgfHwgX21vZHNbeV0gJiYgaGFuZGxlci5tb2RzLmluZGV4T2YoK3kpID09PSAtMSkge1xuICAgICAgICAgIG1vZGlmaWVyc01hdGNoID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIOiwg+eUqOWkhOeQhueoi+W6j++8jOWmguaenOaYr+S/rumlsOmUruS4jeWBmuWkhOeQhlxuXG5cbiAgICBpZiAoaGFuZGxlci5tb2RzLmxlbmd0aCA9PT0gMCAmJiAhX21vZHNbMTZdICYmICFfbW9kc1sxOF0gJiYgIV9tb2RzWzE3XSAmJiAhX21vZHNbOTFdIHx8IG1vZGlmaWVyc01hdGNoIHx8IGhhbmRsZXIuc2hvcnRjdXQgPT09ICcqJykge1xuICAgICAgaWYgKGhhbmRsZXIubWV0aG9kKGV2ZW50LCBoYW5kbGVyKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGV2ZW50LnByZXZlbnREZWZhdWx0KSBldmVudC5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxCdWJibGUpIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIOWkhOeQhmtleWRvd27kuovku7ZcblxuXG5mdW5jdGlvbiBkaXNwYXRjaChldmVudCkge1xuICB2YXIgYXN0ZXJpc2sgPSBfaGFuZGxlcnNbJyonXTtcbiAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2ggfHwgZXZlbnQuY2hhckNvZGU7IC8vIOihqOWNleaOp+S7tui/h+a7pCDpu5jorqTooajljZXmjqfku7bkuI3op6blj5Hlv6vmjbfplK5cblxuICBpZiAoIWhvdGtleXMuZmlsdGVyLmNhbGwodGhpcywgZXZlbnQpKSByZXR1cm47IC8vIEdlY2tvKEZpcmVmb3gp55qEY29tbWFuZOmUruWAvDIyNO+8jOWcqFdlYmtpdChDaHJvbWUp5Lit5L+d5oyB5LiA6Ie0XG4gIC8vIFdlYmtpdOW3puWPsyBjb21tYW5kIOmUruWAvOS4jeS4gOagt1xuXG4gIGlmIChrZXkgPT09IDkzIHx8IGtleSA9PT0gMjI0KSBrZXkgPSA5MTtcbiAgLyoqXG4gICAqIENvbGxlY3QgYm91bmQga2V5c1xuICAgKiBJZiBhbiBJbnB1dCBNZXRob2QgRWRpdG9yIGlzIHByb2Nlc3Npbmcga2V5IGlucHV0IGFuZCB0aGUgZXZlbnQgaXMga2V5ZG93biwgcmV0dXJuIDIyOS5cbiAgICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjUwNDM5MzQvaXMtaXQtb2stdG8taWdub3JlLWtleWRvd24tZXZlbnRzLXdpdGgta2V5Y29kZS0yMjlcbiAgICogaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LWRvbS8yMDEwSnVsU2VwL2F0dC0wMTgyL2tleUNvZGUtc3BlYy5odG1sXG4gICAqL1xuXG4gIGlmIChfZG93bktleXMuaW5kZXhPZihrZXkpID09PSAtMSAmJiBrZXkgIT09IDIyOSkgX2Rvd25LZXlzLnB1c2goa2V5KTtcbiAgLyoqXG4gICAqIEplc3QgdGVzdCBjYXNlcyBhcmUgcmVxdWlyZWQuXG4gICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICovXG5cbiAgWydjdHJsS2V5JywgJ2FsdEtleScsICdzaGlmdEtleScsICdtZXRhS2V5J10uZm9yRWFjaChmdW5jdGlvbiAoa2V5TmFtZSkge1xuICAgIHZhciBrZXlOdW0gPSBtb2RpZmllck1hcFtrZXlOYW1lXTtcblxuICAgIGlmIChldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMuaW5kZXhPZihrZXlOdW0pID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goa2V5TnVtKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMuaW5kZXhPZihrZXlOdW0pID4gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5zcGxpY2UoX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSwgMSk7XG4gICAgfSBlbHNlIGlmIChrZXlOYW1lID09PSAnbWV0YUtleScgJiYgZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmxlbmd0aCA9PT0gMykge1xuICAgICAgLyoqXG4gICAgICAgKiBGaXggaWYgQ29tbWFuZCBpcyBwcmVzc2VkOlxuICAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICovXG4gICAgICBpZiAoIShldmVudC5jdHJsS2V5IHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50LmFsdEtleSkpIHtcbiAgICAgICAgX2Rvd25LZXlzID0gX2Rvd25LZXlzLnNsaWNlKF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIC8qKlxuICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqL1xuXG4gIGlmIChrZXkgaW4gX21vZHMpIHtcbiAgICBfbW9kc1trZXldID0gdHJ1ZTsgLy8g5bCG54m55q6K5a2X56ym55qEa2V55rOo5YaM5YiwIGhvdGtleXMg5LiKXG5cbiAgICBmb3IgKHZhciBrIGluIF9tb2RpZmllcikge1xuICAgICAgaWYgKF9tb2RpZmllcltrXSA9PT0ga2V5KSBob3RrZXlzW2tdID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWFzdGVyaXNrKSByZXR1cm47XG4gIH0gLy8g5bCGIG1vZGlmaWVyTWFwIOmHjOmdoueahOS/rumlsOmUrue7keWumuWIsCBldmVudCDkuK1cblxuXG4gIGZvciAodmFyIGUgaW4gX21vZHMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9tb2RzLCBlKSkge1xuICAgICAgX21vZHNbZV0gPSBldmVudFttb2RpZmllck1hcFtlXV07XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBodHRwczovL2dpdGh1Yi5jb20vamF5d2NqbG92ZS9ob3RrZXlzL3B1bGwvMTI5XG4gICAqIFRoaXMgc29sdmVzIHRoZSBpc3N1ZSBpbiBGaXJlZm94IG9uIFdpbmRvd3Mgd2hlcmUgaG90a2V5cyBjb3JyZXNwb25kaW5nIHRvIHNwZWNpYWwgY2hhcmFjdGVycyB3b3VsZCBub3QgdHJpZ2dlci5cbiAgICogQW4gZXhhbXBsZSBvZiB0aGlzIGlzIGN0cmwrYWx0K20gb24gYSBTd2VkaXNoIGtleWJvYXJkIHdoaWNoIGlzIHVzZWQgdG8gdHlwZSDOvC5cbiAgICogQnJvd3NlciBzdXBwb3J0OiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWtleWJvYXJkZXZlbnQtZ2V0bW9kaWZpZXJzdGF0ZVxuICAgKi9cblxuXG4gIGlmIChldmVudC5nZXRNb2RpZmllclN0YXRlICYmICEoZXZlbnQuYWx0S2V5ICYmICFldmVudC5jdHJsS2V5KSAmJiBldmVudC5nZXRNb2RpZmllclN0YXRlKCdBbHRHcmFwaCcpKSB7XG4gICAgaWYgKF9kb3duS2V5cy5pbmRleE9mKDE3KSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKDE3KTtcbiAgICB9XG5cbiAgICBpZiAoX2Rvd25LZXlzLmluZGV4T2YoMTgpID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goMTgpO1xuICAgIH1cblxuICAgIF9tb2RzWzE3XSA9IHRydWU7XG4gICAgX21vZHNbMThdID0gdHJ1ZTtcbiAgfSAvLyDojrflj5bojIPlm7Qg6buY6K6k5Li6IGBhbGxgXG5cblxuICB2YXIgc2NvcGUgPSBnZXRTY29wZSgpOyAvLyDlr7nku7vkvZXlv6vmjbfplK7pg73pnIDopoHlgZrnmoTlpITnkIZcblxuICBpZiAoYXN0ZXJpc2spIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFzdGVyaXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXN0ZXJpc2tbaV0uc2NvcGUgPT09IHNjb3BlICYmIChldmVudC50eXBlID09PSAna2V5ZG93bicgJiYgYXN0ZXJpc2tbaV0ua2V5ZG93biB8fCBldmVudC50eXBlID09PSAna2V5dXAnICYmIGFzdGVyaXNrW2ldLmtleXVwKSkge1xuICAgICAgICBldmVudEhhbmRsZXIoZXZlbnQsIGFzdGVyaXNrW2ldLCBzY29wZSk7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIGtleSDkuI3lnKggX2hhbmRsZXJzIOS4rei/lOWbnlxuXG5cbiAgaWYgKCEoa2V5IGluIF9oYW5kbGVycykpIHJldHVybjtcblxuICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgX2hhbmRsZXJzW2tleV0ubGVuZ3RoOyBfaSsrKSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyAmJiBfaGFuZGxlcnNba2V5XVtfaV0ua2V5ZG93biB8fCBldmVudC50eXBlID09PSAna2V5dXAnICYmIF9oYW5kbGVyc1trZXldW19pXS5rZXl1cCkge1xuICAgICAgaWYgKF9oYW5kbGVyc1trZXldW19pXS5rZXkpIHtcbiAgICAgICAgdmFyIHJlY29yZCA9IF9oYW5kbGVyc1trZXldW19pXTtcbiAgICAgICAgdmFyIHNwbGl0S2V5ID0gcmVjb3JkLnNwbGl0S2V5O1xuICAgICAgICB2YXIga2V5U2hvcnRjdXQgPSByZWNvcmQua2V5LnNwbGl0KHNwbGl0S2V5KTtcbiAgICAgICAgdmFyIF9kb3duS2V5c0N1cnJlbnQgPSBbXTsgLy8g6K6w5b2V5b2T5YmN5oyJ6ZSu6ZSu5YC8XG5cbiAgICAgICAgZm9yICh2YXIgYSA9IDA7IGEgPCBrZXlTaG9ydGN1dC5sZW5ndGg7IGErKykge1xuICAgICAgICAgIF9kb3duS2V5c0N1cnJlbnQucHVzaChjb2RlKGtleVNob3J0Y3V0W2FdKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoX2Rvd25LZXlzQ3VycmVudC5zb3J0KCkuam9pbignJykgPT09IF9kb3duS2V5cy5zb3J0KCkuam9pbignJykpIHtcbiAgICAgICAgICAvLyDmib7liLDlpITnkIblhoXlrrlcbiAgICAgICAgICBldmVudEhhbmRsZXIoZXZlbnQsIHJlY29yZCwgc2NvcGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59IC8vIOWIpOaWrSBlbGVtZW50IOaYr+WQpuW3sue7j+e7keWumuS6i+S7tlxuXG5cbmZ1bmN0aW9uIGlzRWxlbWVudEJpbmQoZWxlbWVudCkge1xuICByZXR1cm4gZWxlbWVudEhhc0JpbmRFdmVudC5pbmRleE9mKGVsZW1lbnQpID4gLTE7XG59XG5cbmZ1bmN0aW9uIGhvdGtleXMoa2V5LCBvcHRpb24sIG1ldGhvZCkge1xuICBfZG93bktleXMgPSBbXTtcbiAgdmFyIGtleXMgPSBnZXRLZXlzKGtleSk7IC8vIOmcgOimgeWkhOeQhueahOW/q+aNt+mUruWIl+ihqFxuXG4gIHZhciBtb2RzID0gW107XG4gIHZhciBzY29wZSA9ICdhbGwnOyAvLyBzY29wZem7mOiupOS4umFsbO+8jOaJgOacieiMg+WbtOmDveacieaViFxuXG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQ7IC8vIOW/q+aNt+mUruS6i+S7tue7keWumuiKgueCuVxuXG4gIHZhciBpID0gMDtcbiAgdmFyIGtleXVwID0gZmFsc2U7XG4gIHZhciBrZXlkb3duID0gdHJ1ZTtcbiAgdmFyIHNwbGl0S2V5ID0gJysnOyAvLyDlr7nkuLrorr7lrprojIPlm7TnmoTliKTmlq1cblxuICBpZiAobWV0aG9kID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIG1ldGhvZCA9IG9wdGlvbjtcbiAgfVxuXG4gIGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob3B0aW9uKSA9PT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICBpZiAob3B0aW9uLnNjb3BlKSBzY29wZSA9IG9wdGlvbi5zY29wZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5lbGVtZW50KSBlbGVtZW50ID0gb3B0aW9uLmVsZW1lbnQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24ua2V5dXApIGtleXVwID0gb3B0aW9uLmtleXVwOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmtleWRvd24gIT09IHVuZGVmaW5lZCkga2V5ZG93biA9IG9wdGlvbi5rZXlkb3duOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAodHlwZW9mIG9wdGlvbi5zcGxpdEtleSA9PT0gJ3N0cmluZycpIHNwbGl0S2V5ID0gb3B0aW9uLnNwbGl0S2V5OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycpIHNjb3BlID0gb3B0aW9uOyAvLyDlr7nkuo7mr4/kuKrlv6vmjbfplK7ov5vooYzlpITnkIZcblxuICBmb3IgKDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldLnNwbGl0KHNwbGl0S2V5KTsgLy8g5oyJ6ZSu5YiX6KGoXG5cbiAgICBtb2RzID0gW107IC8vIOWmguaenOaYr+e7hOWQiOW/q+aNt+mUruWPluW+l+e7hOWQiOW/q+aNt+mUrlxuXG4gICAgaWYgKGtleS5sZW5ndGggPiAxKSBtb2RzID0gZ2V0TW9kcyhfbW9kaWZpZXIsIGtleSk7IC8vIOWwhumdnuS/rumlsOmUrui9rOWMluS4uumUrueggVxuXG4gICAga2V5ID0ga2V5W2tleS5sZW5ndGggLSAxXTtcbiAgICBrZXkgPSBrZXkgPT09ICcqJyA/ICcqJyA6IGNvZGUoa2V5KTsgLy8gKuihqOekuuWMuemFjeaJgOacieW/q+aNt+mUrlxuICAgIC8vIOWIpOaWrWtleeaYr+WQpuWcqF9oYW5kbGVyc+S4re+8jOS4jeWcqOWwsei1i+S4gOS4quepuuaVsOe7hFxuXG4gICAgaWYgKCEoa2V5IGluIF9oYW5kbGVycykpIF9oYW5kbGVyc1trZXldID0gW107XG5cbiAgICBfaGFuZGxlcnNba2V5XS5wdXNoKHtcbiAgICAgIGtleXVwOiBrZXl1cCxcbiAgICAgIGtleWRvd246IGtleWRvd24sXG4gICAgICBzY29wZTogc2NvcGUsXG4gICAgICBtb2RzOiBtb2RzLFxuICAgICAgc2hvcnRjdXQ6IGtleXNbaV0sXG4gICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgIGtleToga2V5c1tpXSxcbiAgICAgIHNwbGl0S2V5OiBzcGxpdEtleVxuICAgIH0pO1xuICB9IC8vIOWcqOWFqOWxgGRvY3VtZW505LiK6K6+572u5b+r5o236ZSuXG5cblxuICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmICFpc0VsZW1lbnRCaW5kKGVsZW1lbnQpICYmIHdpbmRvdykge1xuICAgIGVsZW1lbnRIYXNCaW5kRXZlbnQucHVzaChlbGVtZW50KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5ZG93bicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICB9KTtcbiAgICBhZGRFdmVudCh3aW5kb3csICdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIF9kb3duS2V5cyA9IFtdO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50KGVsZW1lbnQsICdrZXl1cCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICAgIGNsZWFyTW9kaWZpZXIoZSk7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIF9hcGkgPSB7XG4gIHNldFNjb3BlOiBzZXRTY29wZSxcbiAgZ2V0U2NvcGU6IGdldFNjb3BlLFxuICBkZWxldGVTY29wZTogZGVsZXRlU2NvcGUsXG4gIGdldFByZXNzZWRLZXlDb2RlczogZ2V0UHJlc3NlZEtleUNvZGVzLFxuICBpc1ByZXNzZWQ6IGlzUHJlc3NlZCxcbiAgZmlsdGVyOiBmaWx0ZXIsXG4gIHVuYmluZDogdW5iaW5kXG59O1xuXG5mb3IgKHZhciBhIGluIF9hcGkpIHtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfYXBpLCBhKSkge1xuICAgIGhvdGtleXNbYV0gPSBfYXBpW2FdO1xuICB9XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB2YXIgX2hvdGtleXMgPSB3aW5kb3cuaG90a2V5cztcblxuICBob3RrZXlzLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoZGVlcCkge1xuICAgIGlmIChkZWVwICYmIHdpbmRvdy5ob3RrZXlzID09PSBob3RrZXlzKSB7XG4gICAgICB3aW5kb3cuaG90a2V5cyA9IF9ob3RrZXlzO1xuICAgIH1cblxuICAgIHJldHVybiBob3RrZXlzO1xuICB9O1xuXG4gIHdpbmRvdy5ob3RrZXlzID0gaG90a2V5cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaG90a2V5cztcbiIsImltcG9ydCBob3RrZXlzIGZyb20gJ2hvdGtleXMtanMnO1xuaW1wb3J0IHsgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG4vKipcclxuICogQGRlcHJlY2F0ZWQgVXNlIGlzSG90a2V5UHJlc3NlZCBpbnN0ZWFkLiBXaWxsIGJlIHJlbW92ZWQgdmVyc2lvbiA0LlxyXG4gKi9cblxuZnVuY3Rpb24gdXNlSXNIb3RrZXlQcmVzc2VkKCkge1xuICByZXR1cm4gaG90a2V5cy5pc1ByZXNzZWQ7XG59XG5cbmhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdHJ1ZTtcbn07XG5cbnZhciB0YWdGaWx0ZXIgPSBmdW5jdGlvbiB0YWdGaWx0ZXIoX3JlZiwgZW5hYmxlT25UYWdzKSB7XG4gIHZhciB0YXJnZXQgPSBfcmVmLnRhcmdldDtcbiAgdmFyIHRhcmdldFRhZ05hbWUgPSB0YXJnZXQgJiYgdGFyZ2V0LnRhZ05hbWU7XG4gIHJldHVybiBCb29sZWFuKHRhcmdldFRhZ05hbWUgJiYgZW5hYmxlT25UYWdzICYmIGVuYWJsZU9uVGFncy5pbmNsdWRlcyh0YXJnZXRUYWdOYW1lKSk7XG59O1xuXG52YXIgaXNLZXlib2FyZEV2ZW50VHJpZ2dlcmVkQnlJbnB1dCA9IGZ1bmN0aW9uIGlzS2V5Ym9hcmRFdmVudFRyaWdnZXJlZEJ5SW5wdXQoZXYpIHtcbiAgcmV0dXJuIHRhZ0ZpbHRlcihldiwgWydJTlBVVCcsICdURVhUQVJFQScsICdTRUxFQ1QnXSk7XG59O1xuXG5mdW5jdGlvbiB1c2VIb3RrZXlzKGtleXMsIGNhbGxiYWNrLCBvcHRpb25zLCBkZXBzKSB7XG4gIGlmIChvcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBkZXBzID0gb3B0aW9ucztcbiAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdmFyIF9yZWYyID0gb3B0aW9ucyB8fCB7fSxcbiAgICAgIGVuYWJsZU9uVGFncyA9IF9yZWYyLmVuYWJsZU9uVGFncyxcbiAgICAgIGZpbHRlciA9IF9yZWYyLmZpbHRlcixcbiAgICAgIGtleXVwID0gX3JlZjIua2V5dXAsXG4gICAgICBrZXlkb3duID0gX3JlZjIua2V5ZG93bixcbiAgICAgIF9yZWYyJGZpbHRlclByZXZlbnREZSA9IF9yZWYyLmZpbHRlclByZXZlbnREZWZhdWx0LFxuICAgICAgZmlsdGVyUHJldmVudERlZmF1bHQgPSBfcmVmMiRmaWx0ZXJQcmV2ZW50RGUgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmMiRmaWx0ZXJQcmV2ZW50RGUsXG4gICAgICBfcmVmMiRlbmFibGVkID0gX3JlZjIuZW5hYmxlZCxcbiAgICAgIGVuYWJsZWQgPSBfcmVmMiRlbmFibGVkID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjIkZW5hYmxlZCxcbiAgICAgIF9yZWYyJGVuYWJsZU9uQ29udGVudCA9IF9yZWYyLmVuYWJsZU9uQ29udGVudEVkaXRhYmxlLFxuICAgICAgZW5hYmxlT25Db250ZW50RWRpdGFibGUgPSBfcmVmMiRlbmFibGVPbkNvbnRlbnQgPT09IHZvaWQgMCA/IGZhbHNlIDogX3JlZjIkZW5hYmxlT25Db250ZW50O1xuXG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7IC8vIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBjYWxsYmFjayBkZXRlcm1pbmVzIGlmIHRoZSBicm93c2VycyBkZWZhdWx0IGJlaGF2aW9yIGlzIHByZXZlbnRlZC5cblxuICB2YXIgbWVtb2lzZWRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpIHtcbiAgICB2YXIgX2tleWJvYXJkRXZlbnQkdGFyZ2V0O1xuXG4gICAgaWYgKGZpbHRlciAmJiAhZmlsdGVyKGtleWJvYXJkRXZlbnQpKSB7XG4gICAgICByZXR1cm4gIWZpbHRlclByZXZlbnREZWZhdWx0O1xuICAgIH0gLy8gQ2hlY2sgd2hldGhlciB0aGUgaG90a2V5cyB3YXMgdHJpZ2dlcmVkIGluc2lkZSBhbiBpbnB1dCBhbmQgdGhhdCBpbnB1dCBpcyBlbmFibGVkIG9yIGlmIGl0IHdhcyB0cmlnZ2VyZWQgYnkgYSBjb250ZW50IGVkaXRhYmxlIHRhZyBhbmQgaXQgaXMgZW5hYmxlZC5cblxuXG4gICAgaWYgKGlzS2V5Ym9hcmRFdmVudFRyaWdnZXJlZEJ5SW5wdXQoa2V5Ym9hcmRFdmVudCkgJiYgIXRhZ0ZpbHRlcihrZXlib2FyZEV2ZW50LCBlbmFibGVPblRhZ3MpIHx8IChfa2V5Ym9hcmRFdmVudCR0YXJnZXQgPSBrZXlib2FyZEV2ZW50LnRhcmdldCkgIT0gbnVsbCAmJiBfa2V5Ym9hcmRFdmVudCR0YXJnZXQuaXNDb250ZW50RWRpdGFibGUgJiYgIWVuYWJsZU9uQ29udGVudEVkaXRhYmxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxiYWNrKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sIGRlcHMgPyBbcmVmLCBlbmFibGVPblRhZ3MsIGZpbHRlcl0uY29uY2F0KGRlcHMpIDogW3JlZiwgZW5hYmxlT25UYWdzLCBmaWx0ZXJdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIWVuYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIEluIHRoaXMgY2FzZSBrZXlkb3duIGlzIGxpa2VseSB1bmRlZmluZWQsIHNvIHdlIHNldCBpdCB0byBmYWxzZSwgc2luY2UgaG90a2V5cyBuZWVkcyB0aGUgYGtleWRvd25gIGtleSB0byBoYXZlIGEgdmFsdWUuXG5cblxuICAgIGlmIChrZXl1cCAmJiBrZXlkb3duICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmtleWRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBob3RrZXlzKGtleXMsIG9wdGlvbnMgfHwge30sIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaG90a2V5cy51bmJpbmQoa2V5cywgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgfTtcbiAgfSwgW21lbW9pc2VkQ2FsbGJhY2ssIGtleXMsIGVuYWJsZWRdKTtcbiAgcmV0dXJuIHJlZjtcbn1cblxudmFyIGlzSG90a2V5UHJlc3NlZCA9IGhvdGtleXMuaXNQcmVzc2VkO1xuXG5leHBvcnQgeyBpc0hvdGtleVByZXNzZWQsIHVzZUhvdGtleXMsIHVzZUlzSG90a2V5UHJlc3NlZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcy5tYXBcbiJdLCJzb3VyY2VSb290IjoiIn0=
|
package/dist/styles.css
CHANGED
|
@@ -275,8 +275,8 @@
|
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
._21K2ek21_B_BpOtvHw6hg8._3KJS2FRS2td90Qr6r33L28 {
|
|
278
|
-
width: calc(var(--theme-button-height-medium,
|
|
279
|
-
height: calc(var(--theme-button-height-medium,
|
|
278
|
+
width: calc(var(--theme-button-height-medium, 42px) / 2);
|
|
279
|
+
height: calc(var(--theme-button-height-medium, 42px) / 2);
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
._21K2ek21_B_BpOtvHw6hg8._1j7odCEEX2DkggpIZuF4MI {
|
|
@@ -292,8 +292,6 @@
|
|
|
292
292
|
._21K2ek21_B_BpOtvHw6hg8 {
|
|
293
293
|
contain: strict;
|
|
294
294
|
outline: none;
|
|
295
|
-
width: calc(var(--theme-button-height-medium, 41px) / 2);
|
|
296
|
-
height: calc(var(--theme-button-height-medium, 41px) / 2);
|
|
297
295
|
vertical-align: top;
|
|
298
296
|
background-color: #fff;
|
|
299
297
|
background-repeat: no-repeat;
|
|
@@ -301,6 +299,7 @@
|
|
|
301
299
|
background-size: contain;
|
|
302
300
|
border: 1px solid var(--theme-button-foreground-color, #0e0e0f);
|
|
303
301
|
appearance: none;
|
|
302
|
+
-webkit-appearance: none;
|
|
304
303
|
}
|
|
305
304
|
|
|
306
305
|
._21K2ek21_B_BpOtvHw6hg8:checked {
|
|
@@ -312,6 +311,13 @@
|
|
|
312
311
|
background-color: var(--theme-button-foreground-color, #0e0e0f);
|
|
313
312
|
background-image: url("data:image/svg+xml,%3Csvg width='9' height='2' viewBox='0 0 6 2' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline y1='1' x2='6' y2='1' stroke='white'/%3E%3C/svg%3E");
|
|
314
313
|
}
|
|
314
|
+
|
|
315
|
+
._21K2ek21_B_BpOtvHw6hg8:disabled {
|
|
316
|
+
pointer-events: none;
|
|
317
|
+
cursor: default;
|
|
318
|
+
background-color: #f0f0f0;
|
|
319
|
+
border-color: #e0e0e0;
|
|
320
|
+
}
|
|
315
321
|
|
|
316
322
|
.dv7iucTQq-ZhURUup-PuV {
|
|
317
323
|
--color-swatch-size: var(--theme-button-height, 41px);
|
|
@@ -1363,4 +1369,4 @@
|
|
|
1363
1369
|
}
|
|
1364
1370
|
|
|
1365
1371
|
|
|
1366
|
-
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25CYWRnZS9CdXR0b25CYWRnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GaWxlSW5wdXQvRmlsZUlucHV0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51SXRlbS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L1RleHRJbnB1dC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOENBQThDOztFQUU5QywrREFBK0Q7RUFDL0QsaURBQWlEO0VBQ2pELHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QsNENBQTRDO0VBQzVDLDRCQUE0QjtFQUM1Qix5QkFBeUI7RUFDekIsMEVBQTBFO0VBQzFFLGlCQUFpQjtFQUNqQix1REFBdUQ7O0VBRXZELCtEQUErRDtFQUMvRCxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLFVBQVU7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bEIsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7QUFDViIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ1dHRvbkJhZGdlIHtcclxuICAtLWJhZGdlLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQsIDIycHgpO1xyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHBhZGRpbmc6IDAgNnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYmFkZ2Utc2l6ZSkgKiAwLjUpO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tYmFkZ2Utc2l6ZSk7XHJcbiAgaGVpZ2h0OiB2YXIoLS1iYWRnZS1zaXplKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtZmFtaWx5LCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xyXG5cclxuICAvKiBwb3NpdGlvbmluZyB0aGUgYmFkZ2UgaXRzZWxmIHJlbGF0aXZlIHRvIGl0cyBidXR0b24gcGFyZW50ICovXHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogY2FsYyh2YXIoLS1iYWRnZS1zaXplKSAqIC0wLjUpO1xyXG4gIHJpZ2h0OiA1cHg7XHJcblxyXG4gIC8qIGNlbnRlciBjaGlsZHJlbiAqL1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCk7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aGVtZS1idXR0b24tYm9yZGVyLWNvbG9yLCAjMGUwZTBmKTtcclxuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRoZW1lLWJ1dHRvbi1sZXR0ZXItc3BhY2luZywgMC4xNWVtKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtZmFtaWx5LCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmKTtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtbWVkaXVtLCB2YXIoLS10aGVtZS1mb250LXNpemUsIDEzcHgpKTtcclxuICBmb250LXdlaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtd2VpZ2h0LCA1MDApO1xyXG4gIGhlaWdodDogdmFyKC0tYnV0dG9uLXNpemUpO1xyXG4gIHBhZGRpbmc6IDAgdmFyKC0tdGhlbWUtYnV0dG9uLXBhZGRpbmcsIDEuNjJlbSk7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xyXG4gIHRleHQtYWxpZ246IC13ZWJraXQtY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5jb250YWluZXI6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6ZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDAuMztcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sZWZ0IHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG59XHJcblxyXG4uY29udGFpbmVyLnNtYWxsIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXNtYWxsLCAzMHB4KTtcclxuXHJcbiAgZm9udC1zaXplOiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1zaXplLXNtYWxsLCAwLjc1cmVtKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sYXJnZSB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIueGxhcmdlIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXhsYXJnZSwgODBweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaW52ZXJ0ZWQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMik7XHJcbiAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAqIDAuNik7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5yaWdodC1vZmZzZXQge1xyXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc3RyZXRjaC1ob3Jpem9udGFsbHkge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnN0cmV0Y2gtdmVydGljYWxseSB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGNvbHVtbi1nYXA6IDFlbTtcclxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgd2lkdGg6IG1pbi1jb250ZW50O1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCk7XHJcblxyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgIzBlMGUwZik7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRoZW1lLWJ1dHRvbi1sZXR0ZXItc3BhY2luZywgMC4xNWVtKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtZmFtaWx5LCBoZWx2ZXRpY2EsIGFyaWFsLCBzYW5zLXNlcmlmKTtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtbWVkaXVtLCB2YXIoLS10aGVtZS1mb250LXNpemUsIDEzcHgpKTtcclxuICBmb250LXdlaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtd2VpZ2h0LCA1MDApO1xyXG4gIHBhZGRpbmc6IDAgdmFyKC0tdGhlbWUtYnV0dG9uLXBhZGRpbmcsIDEuNjJlbSk7XHJcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XHJcbiAgd2lkdGg6IG1pbi1jb250ZW50O1xyXG4gIG1hcmdpbjogMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcclxuICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmZvY3VzIHtcclxuICBvdXRsaW5lOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6YWN0aXZlIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjM7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubGVmdCB7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc21hbGwge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xyXG5cclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm1lZGl1bSB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xyXG5cclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtbWVkaXVtLCB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sYXJnZSB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIueGxhcmdlIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXhsYXJnZSwgODBweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaW52ZXJ0ZWQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMik7XHJcbiAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAqIDAuNik7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5yaWdodC1vZmZzZXQge1xyXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc3RyZXRjaC1ob3Jpem9udGFsbHkge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnN0cmV0Y2gtdmVydGljYWxseSB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLXBhZGRpbmcge1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIuZGlzYWJsZWQge1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBvcGFjaXR5OiAwLjM7XHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGNvbHVtbi1nYXA6IDFlbTtcclxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IG1pbi1jb250ZW50O1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWlucHV0LWxhYmVsLWZvbnQtc2l6ZSwgMC43NXJlbSk7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWlucHV0LWxhYmVsLWZvbnQtZmFtaWx5LCBzYW5zLXNlcmlmKTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGxpbmUtaGVpZ2h0OiAyZW07XHJcbn1cclxuIiwiLmNoZWNrYm94LnNtYWxsIHtcclxuICB3aWR0aDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXNtYWxsLCAzMHB4KSAvIDIpO1xyXG4gIGhlaWdodDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXNtYWxsLCAzMHB4KSAvIDIpO1xyXG59XHJcblxyXG4uY2hlY2tib3gubWVkaXVtIHtcclxuICB3aWR0aDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCkgLyAyKTtcclxuICBoZWlnaHQ6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpIC8gMik7XHJcbn1cclxuXHJcbi5jaGVja2JveC5sYXJnZSB7XHJcbiAgd2lkdGg6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCkgLyAyKTtcclxuICBoZWlnaHQ6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCkgLyAyKTtcclxufVxyXG5cclxuLmNoZWNrYm94LnhsYXJnZSB7XHJcbiAgd2lkdGg6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpIC8gMik7XHJcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQteGxhcmdlLCA4MHB4KSAvIDIpO1xyXG59XHJcblxyXG4uY2hlY2tib3gge1xyXG4gIGNvbnRhaW46IHN0cmljdDtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHdpZHRoOiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KSAvIDIpO1xyXG4gIGhlaWdodDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCkgLyAyKTtcclxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBhcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4uY2hlY2tib3g6Y2hlY2tlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzYnIGhlaWdodD0nNCcgdmlld0JveD0nMCAwIDggNicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEuMDAwNDkgMi44ODIzNUwzLjA3NzQxIDVMNy4wMDA0OSAxJyBzdHJva2U9J3doaXRlJyBzdHJva2UtbGluZWNhcD0nc3F1YXJlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xyXG59XHJcblxyXG4uY2hlY2tib3g6aW5kZXRlcm1pbmF0ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzknIGhlaWdodD0nMicgdmlld0JveD0nMCAwIDYgMicgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ2xpbmUgeTE9JzEnIHgyPSc2JyB5Mj0nMScgc3Ryb2tlPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKTtcclxufVxyXG4iLCIuY29sb3Itc3dhdGNoIHtcclxuICAtLWNvbG9yLXN3YXRjaC1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCA0MXB4KTtcclxuICAtLWNvbG9yLXN3YXRjaC1zaGFkb3c6IHZhcihcclxuICAgIC0tdGhlbWUtYnV0dG9uLXNoYWRvdyxcclxuICAgIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpXHJcbiAgKTtcclxuXHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcclxuICBib3gtc2hhZG93OiB2YXIoLS1jb2xvci1zd2F0Y2gtc2hhZG93KTtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGhlaWdodDogdmFyKC0tY29sb3Itc3dhdGNoLXNpemUpO1xyXG4gIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcclxuICB3aWR0aDogdmFyKC0tY29sb3Itc3dhdGNoLXNpemUpO1xyXG59XHJcblxyXG4uY29sb3Itc3dhdGNoOmhvdmVyIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XHJcbn1cclxuXHJcbi5jb2xvci1zd2F0Y2g6bm90KC5zZWxlY3RlZCk6YWN0aXZlIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XHJcbn1cclxuXHJcbi5jb2xvci1zd2F0Y2guc2VsZWN0ZWQge1xyXG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodCwgNDFweCkgKiAxLjUpO1xyXG59XHJcblxyXG4vKlxyXG4gKiBTZWUgaHR0cHM6Ly9nb21ha2V0aGluZ3MuY29tL2hpZGRlbi1jb250ZW50LWZvci1iZXR0ZXItYTExeS8jaGlkaW5nLXRoZS1saW5rXHJcbiovXHJcbi5zci1vbmx5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbn1cclxuIiwiLmNvbG9yLXBpY2tlciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgZ3JpZC1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDEwcHgpO1xyXG59XHJcblxyXG4uY29sb3ItcGlja2VyLmhvcml6b250YWwge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxufVxyXG5cclxuLmNvbG9yLXBpY2tlci52ZXJ0aWNhbCB7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcclxuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuIiwiLm92ZXJsYXkge1xyXG4gIGJvdHRvbTogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbGVmdDogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1vZGFsLW92ZXJsYXktY29sb3IsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XHJcbn1cclxuXHJcbi5vdmVybGF5Lm5vLW92ZXJsYXkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbW9kYWwtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbW9kYWwtc2hhZG93LCAwIDAgNTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4ubW9kYWwudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbC5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbC1idXR0b24ge1xyXG4gIGJvdHRvbTogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbiAgbGVmdDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIG1pbi13aWR0aDogMzN2dztcclxufVxyXG5cclxuLm1vZGFsLWhlYWRlciB7XHJcbiAgcGFkZGluZzogMWVtIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSkgMS41ZW1cclxuICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XHJcbiAgZm9udC1zaXplOiB2YXIoLS10aGVtZS1jb25maXJtYXRpb24tbW9kYWwtaGVhZGVyLWZvbnQtc2l6ZSwgMnJlbSk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtYXV0by1mbG93OiByb3c7XHJcbiAgcm93LWdhcDogMWVtO1xyXG4gIHBhZGRpbmc6IDJyZW0gdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKTtcclxufVxyXG5cclxuLm1vZGFsLWNvbnRlbnQubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1vZGFsLWJ1dHRvbnMtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBhZGRpbmc6IGNhbGMoXHJcbiAgICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSkgKiAxLjI1XHJcbiAgICApXHJcbiAgICB2YXIoLS10aGVtZS1jb25maXJtYXRpb24tbW9kYWwtaG9yaXpvbnRhbC1wYWRkaW5nLCAxLjVyZW0pO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLm1vZGFsLWJ1dHRvbnMge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICBjb2x1bW4tZ2FwOiB2YXIoLS10aGVtZS1idXR0b24tZ2FwLCAxMHB4KTtcclxufVxyXG4iLCIuaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdGhlbWUtYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjE1ZW0pO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTNweCkpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XHJcbiAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIHZhcigtLXRoZW1lLWJ1dHRvbi1wYWRkaW5nLCAxLjYyZW0pO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xyXG4gIHRleHQtYWxpZ246IC13ZWJraXQtY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5sYWJlbC5zbWFsbCB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1zbWFsbCwgMzBweCk7XHJcblxyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcbn1cclxuXHJcbi5sYWJlbC5sYXJnZSB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XHJcbn1cclxuXHJcbi5sYWJlbC54bGFyZ2Uge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxufVxyXG5cclxuLmxhYmVsLmludmVydGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxufVxyXG5cclxuLmxhYmVsLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMik7XHJcbiAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAqIDAuNik7XHJcbn1cclxuXHJcbi5sYWJlbDpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmxhYmVsOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjM7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbDphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubGFiZWwubm8tc2hhZG93IHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4ubGFiZWwubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubGFiZWwudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbC5zdHJldGNoLWhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5sYWJlbC5zdHJldGNoLXZlcnRpY2FsbHkge1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgbWF4LWhlaWdodDogMTAwdmg7XHJcbiAgbWF4LXdpZHRoOiAxMDB2dztcclxuICB6LWluZGV4OiAxMDAzO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdyB7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxufVxyXG5cclxuLmNvbnRhaW5lci5jb2x1bW4ge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5jb250YWluZXIuZml4ZWQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnBsYWluIHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnRyYW5zcGFyZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmNvbnRhaW5lci50b3Age1xyXG4gIHRvcDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudG9wLWVkZ2Uge1xyXG4gIHRvcDogMDtcclxufVxyXG5cclxuLmNvbnRhaW5lci50b3Atb24tZWRnZSB7XHJcbiAgdG9wOiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yaWdodCB7XHJcbiAgcmlnaHQ6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LWVkZ2Uge1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2Uge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmJvdHRvbSB7XHJcbiAgYm90dG9tOiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5ib3R0b20tZWRnZSB7XHJcbiAgYm90dG9tOiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmJvdHRvbS1vbi1lZGdlIHtcclxuICBib3R0b206IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubGVmdCB7XHJcbiAgbGVmdDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubGVmdC1lZGdlIHtcclxuICBsZWZ0OiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZSB7XHJcbiAgbGVmdDogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaG9yaXpvbnRhbC1jZW50ZXIge1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudmVydGljYWwtY2VudGVyIHtcclxuICB0b3A6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaG9yaXpvbnRhbC1jZW50ZXIudmVydGljYWwtY2VudGVyIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhvcml6b250YWwtY2VudGVyLmNvbnRhaW5lci5ib3R0b20tb24tZWRnZSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci52ZXJ0aWNhbC1jZW50ZXIuY29udGFpbmVyLmxlZnQtb24tZWRnZSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudmVydGljYWwtY2VudGVyLmNvbnRhaW5lci5yaWdodC1vbi1lZGdlIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2UuY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucmlnaHQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNTAlKTtcclxufVxyXG4iLCIuaWNvbiB7XHJcbiAgLS1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1tZWRpdW0sIDE2cHgpO1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcclxuICB3aWR0aDogdmFyKC0tc2l6ZSk7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjJzIC13ZWJraXQtZmlsdGVyIGVhc2Utb3V0O1xyXG4gIC1tb3otdHJhbnNpdGlvbjogMC4ycyAtbW96LWZpbHRlciBlYXNlLW91dDtcclxuICAtbW96LXRyYW5zaXRpb246IDAuMnMgZmlsdGVyIGVhc2Utb3V0O1xyXG4gIC1tcy10cmFuc2l0aW9uOiAwLjJzIC1tcy1maWx0ZXIgZWFzZS1vdXQ7XHJcbiAgLW8tdHJhbnNpdGlvbjogMC4ycyAtby1maWx0ZXIgZWFzZS1vdXQ7XHJcbiAgdHJhbnNpdGlvbjogMC4ycyBmaWx0ZXIgZWFzZS1vdXQsIDAuMnMgLXdlYmtpdC1maWx0ZXIgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi5pY29uLnNtYWxsIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcclxufVxyXG5cclxuLmljb24ubWVkaXVtIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XHJcbn1cclxuXHJcbi5pY29uLmxhcmdlIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LWxhcmdlLCAyM3B4KTtcclxufVxyXG5cclxuLmljb24ueGxhcmdlIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XHJcbn1cclxuXHJcbi5pY29uLmludmVydGVkIHtcclxuICBmaWx0ZXI6IGludmVydCgxKTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcclxuXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgIzBlMGUwZik7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtYnV0dG9uLXNoYWRvdywgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogMDtcclxuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xyXG4gIHdpZHRoOiBtaW4tY29udGVudDtcclxuICBwYWRkaW5nOiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAxLjUpO1xyXG4gIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcclxufVxyXG5cclxuLmNvbnRhaW5lci5zbWFsbCB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5tZWRpdW0ge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1tZWRpdW0sIDE2cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxhcmdlIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbGFyZ2UsIDIzcHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnhsYXJnZSB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuMjUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQudG9wLW9mZnNldCB7XHJcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQuYm90dG9tLW9mZnNldCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmFjdGl2ZSB7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmludmVydGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuIiwiLmNvbnRhaW5lciB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XHJcblxyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXJnaW46IDA7XHJcbiAgaGVpZ2h0OiBtaW4tY29udGVudDtcclxuICB3aWR0aDogbWluLWNvbnRlbnQ7XHJcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS41KTtcclxuICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc21hbGwge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1zbWFsbCwgMTJweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubWVkaXVtIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sYXJnZSB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LWxhcmdlLCAyM3B4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci54bGFyZ2Uge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC14bGFyZ2UsIDM1cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBwYWRkaW5nOiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAxLjI1KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnRvcC1vZmZzZXQge1xyXG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5yaWdodC1vZmZzZXQge1xyXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xyXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5sZWZ0LW9mZnNldCB7XHJcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXI6ZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDAuMztcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5pbnZlcnRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tc2hhZG93IHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLWJvcmRlciB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnRyYW5zcGFyZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmRpc2FibGVkIHtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgY29udGFpbjogc3RyaWN0O1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG59XHJcblxyXG4ub3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxufVxyXG5cclxuLmltYWdlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmltYWdlLmNvdmVyIHtcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1heC1oZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5pbWFnZS5jb250YWluIHtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmltYWdlLnN0cmV0Y2hIb3Jpem9udGFsbHkge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmltYWdlLnN0cmV0Y2hWZXJ0aWNhbGx5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxuICB3aWR0aDogYXV0bztcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGNvbnRhaW46IGNvbnRlbnQ7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGhlbWUtbGlzdC12aWV3LWJvcmRlci1jb2xvciwgI2RkZCk7XHJcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWhlYWRlci1wYWRkaW5nLCAxLjI1cmVtIDEuNXJlbSAxLjc1cmVtIDEuNXJlbSk7XHJcbiAgLW1zLWZsZXg6IDAgMCBhdXRvO1xyXG4gIC13ZWJraXQtZmxleDogMCAwIGF1dG87XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbn1cclxuXHJcbi5oZWFkZXJMYWJlbCB7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIDFlbSAwIDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmxpc3Qge1xyXG4gIGNvbnRhaW46IGNvbnRlbnQ7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuIiwiLmxpc3Qtdmlldy1pdGVtIHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLXNlcGFyYXRvci1jb2xvciwgI2RkZCk7XHJcbn1cclxuXHJcbi5saXN0LXZpZXctaXRlbTpsYXN0LWNoaWxkIHtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG59XHJcbiIsIi5tZW51IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLW1lbnUtc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4ubWVudSB1bCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm1lbnUub3BlbiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBhbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxufVxyXG5cclxuLmhlYWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1saXN0LXZpZXctYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1oZWFkZXItcGFkZGluZywgMS4yNXJlbSAxLjVyZW0gMS43NXJlbSAxLjVyZW0pO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC1mYW1pbHksIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XHJcbiAgbWluLXdpZHRoOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0td2lkdGgsIDQxcHgpO1xyXG4gIHBhZGRpbmc6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1wYWRkaW5nLCAwIDEuNXJlbSk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmZvb3Rlci5uby1ib3JkZXIge1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLnNjcm9sbC1jb250YWluZXIge1xyXG4gIG1heC1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtbWF4LWhlaWdodCwgMzB2aCk7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGVudHJhbmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuIiwiLmNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtYXV0by1jb2x1bW5zOiBtaW4tY29udGVudDtcclxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gIGNvbHVtbi1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDEwcHgpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyLnRvcC5yaWdodCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xyXG4gIGJvdHRvbTogMTAwJTtcclxuICByaWdodDogMDtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyLnRvcC5sZWZ0IHtcclxuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1tZW51LW1hcmdpbiwgMXJlbSk7XHJcbiAgYm90dG9tOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lci5ib3R0b20ucmlnaHQge1xyXG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcclxuICB0b3A6IDEwMCU7XHJcbiAgcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lci5ib3R0b20ubGVmdCB7XHJcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xyXG4gIHRvcDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG59XHJcbiIsIi5tZW51LWl0ZW0ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtZmFtaWx5LCBzYW5zLXNlcmlmKTtcclxuICBmb250LXdlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtd2VpZ2h0LCA1MDApO1xyXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1oZWlnaHQsIDQxcHgpO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcclxuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tcGFkZGluZywgMCAxLjVyZW0pO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5tZW51LWl0ZW0ubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1lbnUtaXRlbS5hY3RpdmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuIiwiLm1lbnUtbGluay1pdGVtIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1tZW51LWJvcmRlci1jb2xvciwgI2RkZCk7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29udGFpbjogbGF5b3V0O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XHJcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LXdlaWdodCwgNTAwKTtcclxuICBoZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1oZWlnaHQsIDQxcHgpO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcclxuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tcGFkZGluZywgMCAxLjVyZW0pO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5tZW51LWxpbmstaXRlbS5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubWVudS1saW5rLWl0ZW0uYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLm1lbnUtbGluay1pdGVtOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuIiwiLm92ZXJsYXkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXHJcbiAgICAtLXRoZW1lLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcixcclxuICAgIHJnYmEoMjQwLCAyNDAsIDI0MCwgMC43NSlcclxuICApO1xyXG59XHJcblxyXG4ub3ZlcmxheS50cmFuc3BhcmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5vdmVybGF5LmZpeGVkIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbn1cclxuIiwiLnRleHQtaW5wdXQge1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgI2IwYjBiMCk7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgZm9udC1zaXplOiB2YXIoXHJcbiAgICAtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLW1lZGl1bSxcclxuICAgIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweClcclxuICApO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1pbnB1dC1mb250LXdlaWdodCwgNDAwKTtcclxuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LW1lZGl1bSwgNDFweCk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGV4dC1pbnB1dC5zbWFsbCB7XHJcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1zbWFsbCwgMzBweCk7XHJcbiAgZm9udC1zaXplOiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcbn1cclxuXHJcbi50ZXh0LWlucHV0Lm1lZGl1bSB7XHJcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1tZWRpdW0sIDQxcHgpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKFxyXG4gICAgLS10aGVtZS10ZXh0LWlucHV0LWZvbnQtc2l6ZS1tZWRpdW0sXHJcbiAgICB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpXHJcbiAgKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQubGFyZ2Uge1xyXG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQtbGFyZ2UsIDU0cHgpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbGFyZ2UsIDEuMjVyZW0pO1xyXG59XHJcblxyXG4udGV4dC1pbnB1dC54bGFyZ2Uge1xyXG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLXhsYXJnZSwgMi41cmVtKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQ6Zm9jdXMge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1mb3JlZ3JvdW5kLWNvbG9yLCAjMjIyKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQubm8tYm9yZGVyIHtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG59XHJcbiIsIi50b2FzdCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBhbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS10b2FzdC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS10b2FzdC1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XHJcbiAgY29udGFpbjogbGF5b3V0O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBtaW4taGVpZ2h0OiB2YXIoLS10aGVtZS10b2FzdC1taW4taGVpZ2h0LCA1MHB4KTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGVudHJhbmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuIiwiLnRvYXN0LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgYm90dG9tOiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQsIDMwcHgpICogMS41KTtcclxuICB6LWluZGV4OiAyMDtcclxufVxyXG5cclxuLnRvYXN0LWNvbnRhaW5lciA+ICoge1xyXG4gIG1hcmdpbjogdmFyKC0tdGhlbWUtdG9hc3QtbWFyZ2luLCA1cHgpO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIGNvbnRhaW46IHN0cmljdDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG59XHJcblxyXG4udmlkZW8ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4udmlkZW8uY292ZXIge1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLnZpZGVvLmNvbnRhaW4ge1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4udmlkZW8uc3RyZXRjaEhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi52aWRlby5zdHJldGNoVmVydGljYWxseSB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4ub3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
|
|
1372
|
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25CYWRnZS9CdXR0b25CYWRnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GaWxlSW5wdXQvRmlsZUlucHV0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51SXRlbS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L1RleHRJbnB1dC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby5tb2R1bGUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsOENBQThDOztFQUU5QywrREFBK0Q7RUFDL0QsaURBQWlEO0VBQ2pELHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QsNENBQTRDO0VBQzVDLDRCQUE0QjtFQUM1Qix5QkFBeUI7RUFDekIsMEVBQTBFO0VBQzFFLGlCQUFpQjtFQUNqQix1REFBdUQ7O0VBRXZELCtEQUErRDtFQUMvRCxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLFVBQVU7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Q0Usc0NBQXNDO0FBQ3hDOztBQ2RBO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsTUFBTTtFQUNOLFNBQVM7RUFDVCxPQUFPO0VBQ1AsUUFBUTtBQUNWIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYnV0dG9uQmFkZ2Uge1xyXG4gIC0tYmFkZ2Utc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodCwgMjJweCk7XHJcblxyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgcGFkZGluZzogMCA2cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1iYWRnZS1zaXplKSAqIDAuNSk7XHJcbiAgbWluLXdpZHRoOiB2YXIoLS1iYWRnZS1zaXplKTtcclxuICBoZWlnaHQ6IHZhcigtLWJhZGdlLXNpemUpO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcblxyXG4gIC8qIHBvc2l0aW9uaW5nIHRoZSBiYWRnZSBpdHNlbGYgcmVsYXRpdmUgdG8gaXRzIGJ1dHRvbiBwYXJlbnQgKi9cclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiBjYWxjKHZhcigtLWJhZGdlLXNpemUpICogLTAuNSk7XHJcbiAgcmlnaHQ6IDVweDtcclxuXHJcbiAgLyogY2VudGVyIGNoaWxkcmVuICovXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdGhlbWUtYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjE1ZW0pO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTNweCkpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XHJcbiAgcGFkZGluZzogMCB2YXIoLS10aGVtZS1idXR0b24tcGFkZGluZywgMS42MmVtKTtcclxuICBtYXJnaW46IDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1vdXQ7XHJcbiAgdGV4dC1hbGlnbjogLXdlYmtpdC1jZW50ZXI7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmFjdGl2ZSB7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc21hbGwge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xyXG5cclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxhcmdlIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci54bGFyZ2Uge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5pbnZlcnRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyKTtcclxuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xyXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLXNoYWRvdyB7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci50cmFuc3BhcmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5zdHJldGNoLWhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc3RyZXRjaC12ZXJ0aWNhbGx5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgY29sdW1uLWdhcDogMWVtO1xyXG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogbWluLWNvbnRlbnQ7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcclxuXHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aGVtZS1idXR0b24tYm9yZGVyLWNvbG9yLCAjMGUwZTBmKTtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdGhlbWUtYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjE1ZW0pO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTNweCkpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgcGFkZGluZzogMCB2YXIoLS10aGVtZS1idXR0b24tcGFkZGluZywgMS42MmVtKTtcclxuICBoZWlnaHQ6IHZhcigtLWJ1dHRvbi1zaXplKTtcclxuICB3aWR0aDogbWluLWNvbnRlbnQ7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xyXG4gIHRleHQtYWxpZ246IC13ZWJraXQtY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5jb250YWluZXI6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6ZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDAuMztcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sZWZ0IHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcclxufVxyXG5cclxuLmNvbnRhaW5lci5zbWFsbCB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1zbWFsbCwgMzBweCk7XHJcblxyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubWVkaXVtIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCk7XHJcblxyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweCkpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxhcmdlIHtcclxuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci54bGFyZ2Uge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5pbnZlcnRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyKTtcclxuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xyXG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLXNoYWRvdyB7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci50cmFuc3BhcmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5zdHJldGNoLWhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc3RyZXRjaC12ZXJ0aWNhbGx5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5kaXNhYmxlZCB7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG4gIG9wYWNpdHk6IDAuMztcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgY29sdW1uLWdhcDogMWVtO1xyXG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogbWluLWNvbnRlbnQ7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtaW5wdXQtbGFiZWwtZm9udC1zaXplLCAwLjc1cmVtKTtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtaW5wdXQtbGFiZWwtZm9udC1mYW1pbHksIHNhbnMtc2VyaWYpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgbGluZS1oZWlnaHQ6IDJlbTtcclxufVxyXG4iLCIuY2hlY2tib3guc21hbGwge1xyXG4gIHdpZHRoOiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpIC8gMik7XHJcbiAgaGVpZ2h0OiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpIC8gMik7XHJcbn1cclxuXHJcbi5jaGVja2JveC5tZWRpdW0ge1xyXG4gIHdpZHRoOiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MnB4KSAvIDIpO1xyXG4gIGhlaWdodDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDJweCkgLyAyKTtcclxufVxyXG5cclxuLmNoZWNrYm94LmxhcmdlIHtcclxuICB3aWR0aDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KSAvIDIpO1xyXG4gIGhlaWdodDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KSAvIDIpO1xyXG59XHJcblxyXG4uY2hlY2tib3gueGxhcmdlIHtcclxuICB3aWR0aDogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXhsYXJnZSwgODBweCkgLyAyKTtcclxuICBoZWlnaHQ6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpIC8gMik7XHJcbn1cclxuXHJcbi5jaGVja2JveCB7XHJcbiAgY29udGFpbjogc3RyaWN0O1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XHJcbn1cclxuXHJcbi5jaGVja2JveDpjaGVja2VkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nNicgaGVpZ2h0PSc0JyB2aWV3Qm94PScwIDAgOCA2JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDcGF0aCBkPSdNMS4wMDA0OSAyLjg4MjM1TDMuMDc3NDEgNUw3LjAwMDQ5IDEnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS1saW5lY2FwPSdzcXVhcmUnLyUzRSUzQy9zdmclM0VcIik7XHJcbn1cclxuXHJcbi5jaGVja2JveDppbmRldGVybWluYXRlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nOScgaGVpZ2h0PScyJyB2aWV3Qm94PScwIDAgNiAyJyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNFJTNDbGluZSB5MT0nMScgeDI9JzYnIHkyPScxJyBzdHJva2U9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpO1xyXG59XHJcblxyXG4uY2hlY2tib3g6ZGlzYWJsZWQge1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGN1cnNvcjogZGVmYXVsdDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xyXG4gIGJvcmRlci1jb2xvcjogI2UwZTBlMDtcclxufVxyXG4iLCIuY29sb3Itc3dhdGNoIHtcclxuICAtLWNvbG9yLXN3YXRjaC1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCA0MXB4KTtcclxuICAtLWNvbG9yLXN3YXRjaC1zaGFkb3c6IHZhcihcclxuICAgIC0tdGhlbWUtYnV0dG9uLXNoYWRvdyxcclxuICAgIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpXHJcbiAgKTtcclxuXHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcclxuICBib3gtc2hhZG93OiB2YXIoLS1jb2xvci1zd2F0Y2gtc2hhZG93KTtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGhlaWdodDogdmFyKC0tY29sb3Itc3dhdGNoLXNpemUpO1xyXG4gIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcclxuICB3aWR0aDogdmFyKC0tY29sb3Itc3dhdGNoLXNpemUpO1xyXG59XHJcblxyXG4uY29sb3Itc3dhdGNoOmhvdmVyIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XHJcbn1cclxuXHJcbi5jb2xvci1zd2F0Y2g6bm90KC5zZWxlY3RlZCk6YWN0aXZlIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XHJcbn1cclxuXHJcbi5jb2xvci1zd2F0Y2guc2VsZWN0ZWQge1xyXG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodCwgNDFweCkgKiAxLjUpO1xyXG59XHJcblxyXG4vKlxyXG4gKiBTZWUgaHR0cHM6Ly9nb21ha2V0aGluZ3MuY29tL2hpZGRlbi1jb250ZW50LWZvci1iZXR0ZXItYTExeS8jaGlkaW5nLXRoZS1saW5rXHJcbiovXHJcbi5zci1vbmx5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDFweDtcclxuICBoZWlnaHQ6IDFweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogLTFweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBib3JkZXItd2lkdGg6IDA7XHJcbn1cclxuIiwiLmNvbG9yLXBpY2tlciB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgZ3JpZC1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDEwcHgpO1xyXG59XHJcblxyXG4uY29sb3ItcGlja2VyLmhvcml6b250YWwge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxufVxyXG5cclxuLmNvbG9yLXBpY2tlci52ZXJ0aWNhbCB7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcclxuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuIiwiLm92ZXJsYXkge1xyXG4gIGJvdHRvbTogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgbGVmdDogMDtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1vZGFsLW92ZXJsYXktY29sb3IsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KSk7XHJcbn1cclxuXHJcbi5vdmVybGF5Lm5vLW92ZXJsYXkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbW9kYWwtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbW9kYWwtc2hhZG93LCAwIDAgNTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgbGVmdDogNTAlO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4ubW9kYWwudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbC5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5tb2RhbC1idXR0b24ge1xyXG4gIGJvdHRvbTogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbiAgbGVmdDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIG1pbi13aWR0aDogMzN2dztcclxufVxyXG5cclxuLm1vZGFsLWhlYWRlciB7XHJcbiAgcGFkZGluZzogMWVtIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSkgMS41ZW1cclxuICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XHJcbiAgZm9udC1zaXplOiB2YXIoLS10aGVtZS1jb25maXJtYXRpb24tbW9kYWwtaGVhZGVyLWZvbnQtc2l6ZSwgMnJlbSk7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5tb2RhbC1jb250ZW50IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtYXV0by1mbG93OiByb3c7XHJcbiAgcm93LWdhcDogMWVtO1xyXG4gIHBhZGRpbmc6IDJyZW0gdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKTtcclxufVxyXG5cclxuLm1vZGFsLWNvbnRlbnQubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1vZGFsLWJ1dHRvbnMtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBhZGRpbmc6IGNhbGMoXHJcbiAgICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSkgKiAxLjI1XHJcbiAgICApXHJcbiAgICB2YXIoLS10aGVtZS1jb25maXJtYXRpb24tbW9kYWwtaG9yaXpvbnRhbC1wYWRkaW5nLCAxLjVyZW0pO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLm1vZGFsLWJ1dHRvbnMge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcclxuICBjb2x1bW4tZ2FwOiB2YXIoLS10aGVtZS1idXR0b24tZ2FwLCAxMHB4KTtcclxufVxyXG4iLCIuaW5wdXQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbCB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xyXG5cclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdGhlbWUtYnV0dG9uLWxldHRlci1zcGFjaW5nLCAwLjE1ZW0pO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTNweCkpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XHJcbiAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIHZhcigtLXRoZW1lLWJ1dHRvbi1wYWRkaW5nLCAxLjYyZW0pO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xyXG4gIHRleHQtYWxpZ246IC13ZWJraXQtY2VudGVyO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5sYWJlbC5zbWFsbCB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1zbWFsbCwgMzBweCk7XHJcblxyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcbn1cclxuXHJcbi5sYWJlbC5sYXJnZSB7XHJcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XHJcbn1cclxuXHJcbi5sYWJlbC54bGFyZ2Uge1xyXG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxufVxyXG5cclxuLmxhYmVsLmludmVydGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxufVxyXG5cclxuLmxhYmVsLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYnV0dG9uLXNpemUpIC8gMik7XHJcbiAgcGFkZGluZzogMCBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAqIDAuNik7XHJcbn1cclxuXHJcbi5sYWJlbDpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmxhYmVsOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjM7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbDphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5sYWJlbDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubGFiZWwubm8tc2hhZG93IHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4ubGFiZWwubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbC5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubGFiZWwudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5sYWJlbC5zdHJldGNoLWhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5sYWJlbC5zdHJldGNoLXZlcnRpY2FsbHkge1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgbWF4LWhlaWdodDogMTAwdmg7XHJcbiAgbWF4LXdpZHRoOiAxMDB2dztcclxuICB6LWluZGV4OiAxMDAzO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdyB7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxufVxyXG5cclxuLmNvbnRhaW5lci5jb2x1bW4ge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5jb250YWluZXIuZml4ZWQge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnBsYWluIHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnRyYW5zcGFyZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmNvbnRhaW5lci50b3Age1xyXG4gIHRvcDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudG9wLWVkZ2Uge1xyXG4gIHRvcDogMDtcclxufVxyXG5cclxuLmNvbnRhaW5lci50b3Atb24tZWRnZSB7XHJcbiAgdG9wOiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yaWdodCB7XHJcbiAgcmlnaHQ6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LWVkZ2Uge1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2Uge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmJvdHRvbSB7XHJcbiAgYm90dG9tOiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5ib3R0b20tZWRnZSB7XHJcbiAgYm90dG9tOiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmJvdHRvbS1vbi1lZGdlIHtcclxuICBib3R0b206IDA7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubGVmdCB7XHJcbiAgbGVmdDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubGVmdC1lZGdlIHtcclxuICBsZWZ0OiAwO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZSB7XHJcbiAgbGVmdDogMDtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaG9yaXpvbnRhbC1jZW50ZXIge1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudmVydGljYWwtY2VudGVyIHtcclxuICB0b3A6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIuaG9yaXpvbnRhbC1jZW50ZXIudmVydGljYWwtY2VudGVyIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhvcml6b250YWwtY2VudGVyLmNvbnRhaW5lci5ib3R0b20tb24tZWRnZSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci52ZXJ0aWNhbC1jZW50ZXIuY29udGFpbmVyLmxlZnQtb24tZWRnZSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIudmVydGljYWwtY2VudGVyLmNvbnRhaW5lci5yaWdodC1vbi1lZGdlIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2UuY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDUwJSk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucmlnaHQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgNTAlKTtcclxufVxyXG4iLCIuaWNvbiB7XHJcbiAgLS1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1tZWRpdW0sIDE2cHgpO1xyXG5cclxuICBkaXNwbGF5OiBibG9jaztcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcclxuICB3aWR0aDogdmFyKC0tc2l6ZSk7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjJzIC13ZWJraXQtZmlsdGVyIGVhc2Utb3V0O1xyXG4gIC1tb3otdHJhbnNpdGlvbjogMC4ycyAtbW96LWZpbHRlciBlYXNlLW91dDtcclxuICAtbW96LXRyYW5zaXRpb246IDAuMnMgZmlsdGVyIGVhc2Utb3V0O1xyXG4gIC1tcy10cmFuc2l0aW9uOiAwLjJzIC1tcy1maWx0ZXIgZWFzZS1vdXQ7XHJcbiAgLW8tdHJhbnNpdGlvbjogMC4ycyAtby1maWx0ZXIgZWFzZS1vdXQ7XHJcbiAgdHJhbnNpdGlvbjogMC4ycyBmaWx0ZXIgZWFzZS1vdXQsIDAuMnMgLXdlYmtpdC1maWx0ZXIgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi5pY29uLnNtYWxsIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcclxufVxyXG5cclxuLmljb24ubWVkaXVtIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XHJcbn1cclxuXHJcbi5pY29uLmxhcmdlIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LWxhcmdlLCAyM3B4KTtcclxufVxyXG5cclxuLmljb24ueGxhcmdlIHtcclxuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XHJcbn1cclxuXHJcbi5pY29uLmludmVydGVkIHtcclxuICBmaWx0ZXI6IGludmVydCgxKTtcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcclxuXHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgIzBlMGUwZik7XHJcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtYnV0dG9uLXNoYWRvdywgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIG1hcmdpbjogMDtcclxuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xyXG4gIHdpZHRoOiBtaW4tY29udGVudDtcclxuICBwYWRkaW5nOiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAxLjUpO1xyXG4gIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcclxufVxyXG5cclxuLmNvbnRhaW5lci5zbWFsbCB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5tZWRpdW0ge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1tZWRpdW0sIDE2cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmxhcmdlIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbGFyZ2UsIDIzcHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnhsYXJnZSB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZCB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuMjUpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQudG9wLW9mZnNldCB7XHJcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XHJcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQuYm90dG9tLW9mZnNldCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcclxuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyOmFjdGl2ZSB7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmludmVydGVkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tYm9yZGVyIHtcclxuICBib3JkZXI6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuIiwiLmNvbnRhaW5lciB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XHJcblxyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBtYXJnaW46IDA7XHJcbiAgaGVpZ2h0OiBtaW4tY29udGVudDtcclxuICB3aWR0aDogbWluLWNvbnRlbnQ7XHJcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS41KTtcclxuICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1vdXQ7XHJcbn1cclxuXHJcbi5jb250YWluZXIuc21hbGwge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1zbWFsbCwgMTJweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIubWVkaXVtIHtcclxuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5sYXJnZSB7XHJcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LWxhcmdlLCAyM3B4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci54bGFyZ2Uge1xyXG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC14bGFyZ2UsIDM1cHgpO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnJvdW5kZWQge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBwYWRkaW5nOiBjYWxjKHZhcigtLWljb24tc2l6ZSkgLyAxLjI1KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLnRvcC1vZmZzZXQge1xyXG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5yaWdodC1vZmZzZXQge1xyXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xyXG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXIucm91bmRlZC5sZWZ0LW9mZnNldCB7XHJcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6Zm9jdXMge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbn1cclxuXHJcbi5jb250YWluZXI6ZGlzYWJsZWQge1xyXG4gIG9wYWNpdHk6IDAuMztcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxufVxyXG5cclxuLmNvbnRhaW5lcjphY3RpdmUge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XHJcbn1cclxuXHJcbi5jb250YWluZXI6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcclxufVxyXG5cclxuLmNvbnRhaW5lci5pbnZlcnRlZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbn1cclxuXHJcbi5jb250YWluZXIubm8tc2hhZG93IHtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLm5vLWJvcmRlciB7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLnRyYW5zcGFyZW50IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmRpc2FibGVkIHtcclxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgb3BhY2l0eTogMC4zO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgY29udGFpbjogc3RyaWN0O1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG59XHJcblxyXG4ub3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHRvcDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxufVxyXG5cclxuLmltYWdlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLmltYWdlLmNvdmVyIHtcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1heC1oZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5pbWFnZS5jb250YWluIHtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmltYWdlLnN0cmV0Y2hIb3Jpem9udGFsbHkge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmltYWdlLnN0cmV0Y2hWZXJ0aWNhbGx5IHtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxuICB3aWR0aDogYXV0bztcclxufVxyXG4iLCIuY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGNvbnRhaW46IGNvbnRlbnQ7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtYXgtaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGhlbWUtbGlzdC12aWV3LWJvcmRlci1jb2xvciwgI2RkZCk7XHJcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWhlYWRlci1wYWRkaW5nLCAxLjI1cmVtIDEuNXJlbSAxLjc1cmVtIDEuNXJlbSk7XHJcbiAgLW1zLWZsZXg6IDAgMCBhdXRvO1xyXG4gIC13ZWJraXQtZmxleDogMCAwIGF1dG87XHJcbiAgZmxleDogMCAwIGF1dG87XHJcbn1cclxuXHJcbi5oZWFkZXJMYWJlbCB7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBwYWRkaW5nOiAwIDFlbSAwIDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmxpc3Qge1xyXG4gIGNvbnRhaW46IGNvbnRlbnQ7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgbWF4LWhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDA7XHJcbn1cclxuIiwiLmxpc3Qtdmlldy1pdGVtIHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLXNlcGFyYXRvci1jb2xvciwgI2RkZCk7XHJcbn1cclxuXHJcbi5saXN0LXZpZXctaXRlbTpsYXN0LWNoaWxkIHtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG59XHJcbiIsIi5tZW51IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLW1lbnUtc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB6LWluZGV4OiAxO1xyXG59XHJcblxyXG4ubWVudSB1bCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxufVxyXG5cclxuLm1lbnUub3BlbiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBhbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxufVxyXG5cclxuLmhlYWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1saXN0LXZpZXctYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHBhZGRpbmc6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1oZWFkZXItcGFkZGluZywgMS4yNXJlbSAxLjVyZW0gMS43NXJlbSAxLjVyZW0pO1xyXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5mb290ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC1mYW1pbHksIHNhbnMtc2VyaWYpO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC13ZWlnaHQsIDUwMCk7XHJcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XHJcbiAgbWluLXdpZHRoOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0td2lkdGgsIDQxcHgpO1xyXG4gIHBhZGRpbmc6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1wYWRkaW5nLCAwIDEuNXJlbSk7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxufVxyXG5cclxuLmZvb3Rlci5uby1ib3JkZXIge1xyXG4gIGJvcmRlcjogbm9uZTtcclxufVxyXG5cclxuLnNjcm9sbC1jb250YWluZXIge1xyXG4gIG1heC1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtbWF4LWhlaWdodCwgMzB2aCk7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGVudHJhbmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuIiwiLmNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtYXV0by1jb2x1bW5zOiBtaW4tY29udGVudDtcclxuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xyXG4gIGNvbHVtbi1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDEwcHgpO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyLnRvcC5yaWdodCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xyXG4gIGJvdHRvbTogMTAwJTtcclxuICByaWdodDogMDtcclxufVxyXG5cclxuLm1lbnUtY29udGFpbmVyLnRvcC5sZWZ0IHtcclxuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1tZW51LW1hcmdpbiwgMXJlbSk7XHJcbiAgYm90dG9tOiAxMDAlO1xyXG4gIGxlZnQ6IDA7XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lci5ib3R0b20ucmlnaHQge1xyXG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcclxuICB0b3A6IDEwMCU7XHJcbiAgcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5tZW51LWNvbnRhaW5lci5ib3R0b20ubGVmdCB7XHJcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xyXG4gIHRvcDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG59XHJcbiIsIi5tZW51LWl0ZW0ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcclxuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcclxuICBjb250YWluOiBsYXlvdXQ7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtZmFtaWx5LCBzYW5zLXNlcmlmKTtcclxuICBmb250LXdlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtd2VpZ2h0LCA1MDApO1xyXG4gIG1pbi1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1oZWlnaHQsIDQxcHgpO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcclxuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tcGFkZGluZywgMCAxLjVyZW0pO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5tZW51LWl0ZW0ubm8tcGFkZGluZyB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLm1lbnUtaXRlbS5hY3RpdmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuIiwiLm1lbnUtbGluay1pdGVtIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1tZW51LWJvcmRlci1jb2xvciwgI2RkZCk7XHJcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XHJcbiAgY29udGFpbjogbGF5b3V0O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XHJcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LXdlaWdodCwgNTAwKTtcclxuICBoZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1oZWlnaHQsIDQxcHgpO1xyXG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcclxuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tcGFkZGluZywgMCAxLjVyZW0pO1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbn1cclxuXHJcbi5tZW51LWxpbmstaXRlbS5uby1wYWRkaW5nIHtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4ubWVudS1saW5rLWl0ZW0uYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xyXG4gIGNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLm1lbnUtbGluay1pdGVtOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWhvdmVyLWJhY2tncm91bmQtY29sb3IsICNkZGQpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmxhc3QtY2hpbGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuIiwiLm92ZXJsYXkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRvcDogMDtcclxuICByaWdodDogMDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoXHJcbiAgICAtLXRoZW1lLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcixcclxuICAgIHJnYmEoMjQwLCAyNDAsIDI0MCwgMC43NSlcclxuICApO1xyXG59XHJcblxyXG4ub3ZlcmxheS50cmFuc3BhcmVudCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5vdmVybGF5LmZpeGVkIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbn1cclxuIiwiLnRleHQtaW5wdXQge1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgI2IwYjBiMCk7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBjb250YWluOiBzdHJpY3Q7XHJcbiAgZm9udC1zaXplOiB2YXIoXHJcbiAgICAtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLW1lZGl1bSxcclxuICAgIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweClcclxuICApO1xyXG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1pbnB1dC1mb250LXdlaWdodCwgNDAwKTtcclxuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LW1lZGl1bSwgNDFweCk7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4udGV4dC1pbnB1dC5zbWFsbCB7XHJcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1zbWFsbCwgMzBweCk7XHJcbiAgZm9udC1zaXplOiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XHJcbn1cclxuXHJcbi50ZXh0LWlucHV0Lm1lZGl1bSB7XHJcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1tZWRpdW0sIDQxcHgpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKFxyXG4gICAgLS10aGVtZS10ZXh0LWlucHV0LWZvbnQtc2l6ZS1tZWRpdW0sXHJcbiAgICB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpXHJcbiAgKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQubGFyZ2Uge1xyXG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQtbGFyZ2UsIDU0cHgpO1xyXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbGFyZ2UsIDEuMjVyZW0pO1xyXG59XHJcblxyXG4udGV4dC1pbnB1dC54bGFyZ2Uge1xyXG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQteGxhcmdlLCA4MHB4KTtcclxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLXhsYXJnZSwgMi41cmVtKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQ6Zm9jdXMge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1mb3JlZ3JvdW5kLWNvbG9yLCAjMjIyKTtcclxufVxyXG5cclxuLnRleHQtaW5wdXQubm8tYm9yZGVyIHtcclxuICBib3JkZXItYm90dG9tOiBub25lO1xyXG59XHJcbiIsIi50b2FzdCB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBhbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS10b2FzdC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcclxuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS10b2FzdC1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XHJcbiAgY29udGFpbjogbGF5b3V0O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBtaW4taGVpZ2h0OiB2YXIoLS10aGVtZS10b2FzdC1taW4taGVpZ2h0LCA1MHB4KTtcclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIGVudHJhbmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gICAgdHJhbnNmb3JtOiBpbml0aWFsO1xyXG4gIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XHJcbiAgMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgICB0cmFuc2Zvcm06IGluaXRpYWw7XHJcbiAgfVxyXG4gIDUwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDtcclxuICAgIHRyYW5zZm9ybTogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuIiwiLnRvYXN0LWNvbnRhaW5lciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIGxlZnQ6IDUwJTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XHJcbiAgYm90dG9tOiBjYWxjKHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQsIDMwcHgpICogMS41KTtcclxuICB6LWluZGV4OiAyMDtcclxufVxyXG5cclxuLnRvYXN0LWNvbnRhaW5lciA+ICoge1xyXG4gIG1hcmdpbjogdmFyKC0tdGhlbWUtdG9hc3QtbWFyZ2luLCA1cHgpO1xyXG59XHJcbiIsIi5jb250YWluZXIge1xyXG4gIGNvbnRhaW46IHN0cmljdDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcclxuICBjb250YWluOiBjb250ZW50O1xyXG59XHJcblxyXG4udmlkZW8ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4udmlkZW8uY292ZXIge1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLnZpZGVvLmNvbnRhaW4ge1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4udmlkZW8uc3RyZXRjaEhvcml6b250YWxseSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi52aWRlby5zdHJldGNoVmVydGljYWxseSB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG59XHJcblxyXG4ub3ZlcmxheSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB0b3A6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/
|