@touchtech/baselayer-ui 2.12.9 → 2.12.11-alpha.0

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.
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { Size } from "../../types";
2
3
  declare type CheckboxProps = {
3
4
  label?: string;
@@ -8,7 +8,7 @@ import { ReactNode, RefObject } from "react";
8
8
  * https://github.com/testing-library/react-testing-library/issues/470
9
9
  */
10
10
  declare type Layout = "cover" | "contain" | "stretchHorizontally" | "stretchVertically";
11
- declare type VideoProps = {
11
+ export declare type VideoProps = {
12
12
  src: string;
13
13
  type: string;
14
14
  layout?: Layout;
@@ -1 +1 @@
1
- export { default as Video } from "./Video";
1
+ export { default as Video, VideoProps } from "./Video";
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,"⇪":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}function x(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=Object(k.useRef)(null),f=Object(k.useCallback)((function(e,n){return(null===d.current||document.activeElement===d.current)&&(t(e,n),!0)}),r?[d].concat(r):[d]);return Object(k.useEffect)((function(){return n&&n.enableOnTags&&(E.filter=function(e){var t=e.target,n=e.srcElement,r=t&&t.tagName||n&&n.tagName;return Boolean(r&&o&&o.includes(r))}),i&&(E.filter=i),u&&!0!==l&&(n.keydown=!1),E(e,n||{},f),function(){return E.unbind(e,f)}}),[f,n,o,i,e]),d}}]));
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvRmxvYXRpbmdQYW5lbC5tb2R1bGUuY3NzPzdhYmYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24ubW9kdWxlLmNzcz85YjkzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcz9kMjhkIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL0ljb25CdXR0b25MaW5rLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzP2NjMzciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLm1vZHVsZS5jc3M/OTVhNyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcz80NjRlIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3SXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudS5tb2R1bGUuY3NzPzM3MDkiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcz85NmQyIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0ubW9kdWxlLmNzcz81MDQ5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzPzA0MjciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS5tb2R1bGUuY3NzPzIxYzUiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubW9kdWxlLmNzcz9jZDM2Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC5tb2R1bGUuY3NzP2NmNjEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3M/OWEzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8ubW9kdWxlLmNzcz9lMjIzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlVG9nZ2xlLnRzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy91c2VPdXRzaWRlQ2xpY2sudHMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2hvdGtleXMtanMvZGlzdC9ob3RrZXlzLmVzbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaG90a2V5cy1ob29rL2Rpc3QvcmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcyJdLCJuYW1lcyI6WyJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZXhwb3J0cyIsIm1vZHVsZSIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsInJlcXVpcmUiLCJpc0FycmF5IiwiQXJyYXkiLCJjYyIsIm9iaiIsIm91dCIsInRtcCIsImsiLCJsZW5ndGgiLCJkZWZhdWx0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJidXR0b25CYWRnZSIsIm9uQ2xpY2siLCJjb250YWluZXJSZWYiLCJkaXNhYmxlZCIsImludmVydGVkIiwicm91bmRlZCIsIm5vU2hhZG93Iiwibm9QYWRkaW5nIiwibm9Cb3JkZXIiLCJ0cmFuc3BhcmVudCIsInN0cmV0Y2hIb3Jpem9udGFsbHkiLCJzdHJldGNoVmVydGljYWxseSIsIm9mZnNldFNpZGVzIiwiYWxpZ24iLCJzaXplIiwidHlwZSIsInJlZiIsImNvbnRhaW5lciIsImxlZnRPZmZzZXQiLCJpbmNsdWRlcyIsInJpZ2h0T2Zmc2V0Iiwicm9sZSIsImNvbnRlbnQiLCJDb21wb25lbnQiLCJwcm9wcyIsImxhYmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiYXV0b0ZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJlIiwidGFyZ2V0IiwiTGFiZWwiLCJpbnB1dFJlZiIsImlucHV0IiwiY29sb3JzIiwib25TZWxlY3QiLCJzZWxlY3RlZENvbG9yIiwiZGlyZWN0aW9uIiwiY29sb3JQaWNrZXIiLCJtYXAiLCJjb2xvciIsIkNvbG9yU3dhdGNoIiwiaXNTZWxlY3RlZCIsImNvbG9yU3dhdGNoIiwic2VsZWN0ZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsImhleENvZGUiLCJzck9ubHkiLCJDb25maXJtYXRpb25Nb2RhbCIsImhlYWRlciIsImlzT3BlbiIsImJ1dHRvbnNMZWZ0IiwiYnV0dG9uc1JpZ2h0Iiwib25DbG9zZSIsIk1vZGFsIiwibW9kYWxIZWFkZXIiLCJtb2RhbENvbnRlbnQiLCJtb2RhbEJ1dHRvbnNDb250YWluZXIiLCJtb2RhbEJ1dHRvbnMiLCJkaXNwbGF5TmFtZSIsImJ1dHRvbiIsInVzZUhvdGtleXMiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJvdmVybGF5IiwibW9kYWwiLCJtb2RhbEJ1dHRvbiIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwiYmFkZ2VDb250ZW50IiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsIkJ1dHRvbkJhZGdlIiwiZW1wdHlJbWFnZSIsInNyY1dpZHRoIiwic3JjSGVpZ2h0IiwiYW5pbWF0aW9uIiwidXNlU3RhdGUiLCJpc0xvYWRlZCIsInNldElzTG9hZGVkIiwiaW1hZ2VSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJpbWFnZSIsIkltYWdlIiwib25sb2FkIiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsImhhc092ZXJsYXkiLCJmYWRlSW4iLCJzY2FsZVVwIiwid2lkdGgiLCJoZWlnaHQiLCJoZWFkZXJBY3Rpb25zIiwiaGVhZGVyTGFiZWwiLCJsaXN0IiwiYWN0aXZlIiwibGlzdFZpZXdJdGVtIiwiQnV0dG9uIiwiQnV0dG9uTGluayIsImFzIiwibWVudSIsIm9wZW4iLCJtZW51SGVhZGVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsIm9uQmx1ciIsIm9uS2V5RG93biIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInRvYXN0IiwidG9hc3RDb250YWluZXIiLCJtdXRlZCIsImxvb3AiLCJhdXRvUGxheSIsInZpZGVvIiwicGxheXNJbmxpbmUiLCJpbml0aWFsVmFsdWUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwicHJldlZhbHVlIiwiY2FsbGJhY2siLCJoYW5kbGVDbGljayIsImV2ZW50IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNmZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImFkZEV2ZW50IiwibWV0aG9kIiwiYXR0YWNoRXZlbnQiLCJjb25jYXQiLCJ3aW5kb3ciLCJnZXRNb2RzIiwibW9kaWZpZXIiLCJtb2RzIiwic2xpY2UiLCJnZXRLZXlzIiwia2V5cyIsInJlcGxhY2UiLCJzcGxpdCIsImluZGV4IiwibGFzdEluZGV4T2YiLCJzcGxpY2UiLCJfa2V5TWFwIiwiYmFja3NwYWNlIiwidGFiIiwiY2xlYXIiLCJlbnRlciIsInJldHVybiIsImVzYyIsImVzY2FwZSIsInNwYWNlIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwiZGVsIiwiZGVsZXRlIiwiaW5zIiwiaW5zZXJ0IiwiaG9tZSIsImVuZCIsInBhZ2V1cCIsInBhZ2Vkb3duIiwiY2Fwc2xvY2siLCInIiwiX21vZGlmaWVyIiwic2hpZnQiLCJvcHRpb24iLCJjdHJsIiwiY29udHJvbCIsImNtZCIsImNvbW1hbmQiLCJtb2RpZmllck1hcCIsIjE2IiwiMTgiLCIxNyIsIjkxIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsIl9tb2RzIiwiX2hhbmRsZXJzIiwiX2Rvd25LZXlzIiwiX3Njb3BlIiwiZWxlbWVudEhhc0JpbmRFdmVudCIsImNvZGUiLCJ4IiwidG9VcHBlckNhc2UiLCJjaGFyQ29kZUF0Iiwic2V0U2NvcGUiLCJzY29wZSIsImdldFNjb3BlIiwiZWFjaFVuYmluZCIsIl9yZWYiLCJfcmVmJHNwbGl0S2V5Iiwic3BsaXRLZXkiLCJmb3JFYWNoIiwib3JpZ2luS2V5IiwidW5iaW5kS2V5cyIsImxlbiIsImxhc3RLZXkiLCJrZXlDb2RlIiwicmVjb3JkIiwiYTEiLCJhMiIsImFycjEiLCJhcnIyIiwiaXNJbmRleCIsImNvbXBhcmVBcnJheSIsImV2ZW50SGFuZGxlciIsImhhbmRsZXIiLCJtb2RpZmllcnNNYXRjaCIsInkiLCJzaG9ydGN1dCIsInByZXZlbnREZWZhdWx0IiwicmV0dXJuVmFsdWUiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJkaXNwYXRjaCIsImFzdGVyaXNrIiwid2hpY2giLCJjaGFyQ29kZSIsImhvdGtleXMiLCJmaWx0ZXIiLCJ0aGlzIiwicHVzaCIsImtleU5hbWUiLCJrZXlOdW0iLCJnZXRNb2RpZmllclN0YXRlIiwia2V5ZG93biIsImtleXVwIiwiX2kiLCJrZXlTaG9ydGN1dCIsIl9kb3duS2V5c0N1cnJlbnQiLCJhIiwic29ydCIsImpvaW4iLCJlbGVtZW50IiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsIm9wdGlvbnMiLCJkZXBzIiwiZW5hYmxlT25UYWdzIiwibWVtb2lzZWRDYWxsYmFjayIsImtleWJvYXJkRXZlbnQiLCJob3RrZXlzRXZlbnQiLCJhY3RpdmVFbGVtZW50IiwiX3JlZjIiLCJ0YXJnZXRUYWdOYW1lIiwiQm9v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UUUsZUFDckIsRUFBUTNDLE9BQVMsU0FBVWdELEdBQ3pCLElBQUl4USxFQUFTd1EsRUFBTXhRLE9BQ2ZpUCxFQUFhdUIsRUFBTXZCLFdBRW5Cd0IsRUFBZ0J6USxHQUFVQSxFQUFPa1AsU0FBV0QsR0FBY0EsRUFBV0MsUUFDekUsT0FBT3dCLFFBQVFELEdBQWlCTixHQUFnQkEsRUFBYWxSLFNBQVN3UixNQUl0RWpELElBQVEsRUFBUUEsT0FBU0EsR0FFekJPLElBQXFCLElBQVpELElBQ1htQyxFQUFRbkMsU0FBVSxHQUdwQixFQUFROUYsRUFBTWlJLEdBQVcsR0FBSUcsR0FDdEIsV0FDTCxPQUFPLEVBQVFkLE9BQU90SCxFQUFNb0ksTUFFN0IsQ0FBQ0EsRUFBa0JILEVBQVNFLEVBQWMzQyxFQUFReEYsSUFDOUNsSiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tIFwiLi9MYWJlbFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uIH0gZnJvbSBcIi4vSWNvblwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uTGluayB9IGZyb20gXCIuL0J1dHRvbkxpbmtcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi9Db2xvclN3YXRjaFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImxpc3RWaWV3SXRlbVwiOlwiXzFmajJhbmllUTBKS3hDQVprU2FhcGtcIn07IiwiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25CYWRnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9DaGVja2JveFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclBpY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0Vmlld1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9NZW51XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL092ZXJsYXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTGFiZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RvYXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1ZpZGVvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3NcIjtcblxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBCdXR0b25CYWRnZSh7IGNoaWxkcmVuLCBjbGFzc05hbWUgfTogQnV0dG9uQmFkZ2VQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmJ1dHRvbkJhZGdlLCBjbGFzc05hbWVdKX0+e2NoaWxkcmVufTwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b25CYWRnZTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIEJ1dHRvblByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBub0JvcmRlcj86IGJvb2xlYW47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IFNpemU7XG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xufTtcblxuZnVuY3Rpb24gQnV0dG9uKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgY29udGFpbmVyUmVmLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIHR5cGUsXG59OiBCdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7dHlwZW9mIGNoaWxkcmVuICE9PSBcInN0cmluZ1wiICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICApfVxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzEydzVXT0YzS3NhMkpCNS1ZT1h5RDdcIixcImxlZnRcIjpcIl8yVEZWNzJEclF4NUpHU2hOY3V0NEUtXCIsXCJzbWFsbFwiOlwidVRCcmNqcEhwOTZSQ3dGNVVEemYwXCIsXCJsYXJnZVwiOlwiXzE0U1NmczVTVldLN054dVpCcU1nekJcIixcInhsYXJnZVwiOlwiXzFTUXUyUVd3MmE3ZXc0N1dXMTJaU2dcIixcImludmVydGVkXCI6XCJfMmhaaGhpOEJnRV9la1FWbjllWDlEWFwiLFwicm91bmRlZFwiOlwiVkJET1NjWWNRblUyZXl0a0FfUGM2XCIsXCJyaWdodE9mZnNldFwiOlwiXzJHVFkzWG1hT3U5MjNNOXNFUnM2YWtcIixcImxlZnRPZmZzZXRcIjpcIl8xNVEwR0drZ1lKX2FMbTAxbkdFNVloXCIsXCJub1NoYWRvd1wiOlwiUmV3bURxanA2blVlRVlIRUt6VEpEXCIsXCJub0JvcmRlclwiOlwiblpxSVVQVDhjWjg3Qlc0cjhreFVcIixcInRyYW5zcGFyZW50XCI6XCJfNjY5bFI0eTJBSDk3QTFseTVNWVdPXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM2ljdXRYSHd6SWlvd3Q3YlZhM1lpYlwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8ya0NreFBrcGxQMXhxamZrZXBveU5wXCIsXCJub1BhZGRpbmdcIjpcIl8za05iQ2djSS1SX0ZGUS0zTzZUMGxhXCIsXCJjb250ZW50XCI6XCJfMmJGMUFTY0V4c2t1T3B1emQtY0RfNlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgT2Zmc2V0U2lkZSA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuXG50eXBlIEJ1dHRvbkxpbmtQcm9wcyA9XG4gIHwge1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICAgICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc/OiBib29sZWFuO1xuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICAgICAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gICAgICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XG4gICAgICBzaXplPzogU2l6ZTtcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XG4gICAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBCdXR0b25MaW5rKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgc2l6ZSxcbiAgY29udGFpbmVyUmVmLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgLi4ucHJvcHNcbn06IEJ1dHRvbkxpbmtQcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICl9XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkxpbms7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJjb250ZW50XCI6XCJzTkRycTNjWDZJNlEtT3V1c3o3VGlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL0NoZWNrYm94XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ2hlY2tib3gubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIENoZWNrYm94UHJvcHMgPSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86IFNpemU7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gQ2hlY2tib3goe1xuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIHBsYWNlaG9sZGVyLFxuICBjaGVja2VkLFxuICBkaXNhYmxlZCxcbiAgbmFtZSxcbiAgaW5kZXRlcm1pbmF0ZSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxufTogQ2hlY2tib3hQcm9wcykge1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpLFxuICAgIFtvbkNoYW5nZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxMYWJlbCB2YWx1ZT17bGFiZWx9PlxuICAgICAgPGlucHV0XG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hlY2tib3hcIlxuICAgICAgICByZWY9eyhpbnB1dFJlZikgPT4ge1xuICAgICAgICAgIGlmIChpbnB1dFJlZikge1xuICAgICAgICAgICAgaW5wdXRSZWYuaW5kZXRlcm1pbmF0ZSA9IGluZGV0ZXJtaW5hdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBjaGVja2VkPXtjaGVja2VkfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5pbnB1dCwgc3R5bGVzW3NpemVdXSl9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAvPlxuICAgIDwvTGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGFiZWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIExhYmVsSW5wdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MTGFiZWxFbGVtZW50PjtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIExhYmVsKHsgY2hpbGRyZW4sIHZhbHVlLCBjb250YWluZXJSZWYgfTogTGFiZWxJbnB1dFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsIHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAge3ZhbHVlfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExhYmVsO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xNURic19YNUlUOXRrbUFzTVhQTlZKXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaW5wdXRcIjpcIl8xcDJobWptTTFxTlpUWklpRkhGSXh1XCIsXCJzbWFsbFwiOlwiXzFKaV9fOVUtRDVVZFcyTkpXV1VQckNcIixcIm1lZGl1bVwiOlwiXzNLSlMyRlJTMnRkOTBRcjZyMzNMMjhcIixcImxhcmdlXCI6XCJfMWo3b2RDRUVYMkRrZ2dwSVp1RjRNSVwiLFwieGxhcmdlXCI6XCJfM0tad2hVbXhCSmViMnh0azg4Z2FHV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yUGlja2VyIH0gZnJvbSBcIi4vQ29sb3JQaWNrZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi4vQ29sb3JTd2F0Y2hcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JQaWNrZXIubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclBpY2tlclByb3BzID0ge1xuICBjb2xvcnM6IENvbG9yW107XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuICBvblNlbGVjdDogKGNvbG9yOiBDb2xvcikgPT4gdm9pZDtcbiAgc2VsZWN0ZWRDb2xvcj86IENvbG9yO1xufTtcblxuZnVuY3Rpb24gQ29sb3JQaWNrZXIoe1xuICBjb2xvcnMsXG4gIGNvbnRhaW5lclJlZixcbiAgb25TZWxlY3QsXG4gIHNlbGVjdGVkQ29sb3IsXG4gIGRpcmVjdGlvbiA9IFwidmVydGljYWxcIixcbn06IENvbG9yUGlja2VyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb2xvclBpY2tlciwgc3R5bGVzW2RpcmVjdGlvbl1dKX1cbiAgICA+XG4gICAgICB7Y29sb3JzLm1hcCgoY29sb3I6IENvbG9yKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbG9yU3dhdGNoXG4gICAgICAgICAgICBrZXk9e2NvbG9yLmtleX1cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2NvbG9yID09PSBzZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3QoY29sb3IpfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JQaWNrZXI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JTd2F0Y2gubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclN3YXRjaFByb3BzID0ge1xuICBjb2xvcjogQ29sb3I7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIENvbG9yU3dhdGNoKHtcbiAgY29sb3IsXG4gIGNvbnRhaW5lclJlZixcbiAgb25DbGljayxcbiAgaXNTZWxlY3RlZCA9IGZhbHNlLFxufTogQ29sb3JTd2F0Y2hQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb2xvclN3YXRjaCxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc2VsZWN0ZWRdOiBpc1NlbGVjdGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBkYXRhLXRlc3RpZD1cImNvbG9yLXN3YXRjaFwiXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvci5oZXhDb2RlIH19XG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc3JPbmx5fT57YFNlbGVjdCAke2NvbG9yLmxhYmVsfSBjb2xvcmB9PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xvclN3YXRjaDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JTd2F0Y2hcIjpcImR2N2l1Y1RRcS1aaFVSVXVwLVB1VlwiLFwic2VsZWN0ZWRcIjpcIl8xTGJBZ3lpaUVfMXVqVzkwZC02aXV1XCIsXCJzck9ubHlcIjpcIl8xZXRrdXNsaFpWRVBOc2sxUWdoVEVvXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JQaWNrZXJcIjpcIl8yRjFPbi1TQTNtTWtoWlBGckRqV0ljXCIsXCJob3Jpem9udGFsXCI6XCJfMVdGWXlNa2tZTEw3M25fX3JQVVVidlwiLFwidmVydGljYWxcIjpcIl8xbElvYTJial90YmtRaWUwSXBFMkxuXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29uZmlybWF0aW9uTW9kYWwgfSBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi4vTW9kYWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIENvbmZpcm1hdGlvbk1vZGFsUHJvcHMgPSB7XG4gIGJ1dHRvbnNMZWZ0PzogUmVhY3RFbGVtZW50W107XG4gIGJ1dHRvbnNSaWdodD86IFJlYWN0RWxlbWVudFtdO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBDb25maXJtYXRpb25Nb2RhbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGhlYWRlcixcbiAgaXNPcGVuLFxuICBidXR0b25zTGVmdCA9IFtdLFxuICBidXR0b25zUmlnaHQgPSBbXSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbn06IENvbmZpcm1hdGlvbk1vZGFsUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8TW9kYWwgY29udGFpbmVyUmVmPXtjb250YWluZXJSZWZ9IGlzT3Blbj17aXNPcGVufSBvbkNsb3NlPXtvbkNsb3NlfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgICAgPGgxIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsSGVhZGVyfT57aGVhZGVyfTwvaDE+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbENvbnRlbnQsXG4gICAgICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXG4gICAgICAgICAgXSl9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc0NvbnRhaW5lcn0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zTGVmdH08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNSaWdodH08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L01vZGFsPlxuICApO1xufVxuXG5Db25maXJtYXRpb25Nb2RhbC5kaXNwbGF5TmFtZSA9IFwiQ29uZmlybWF0aW9uTW9kYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZmlybWF0aW9uTW9kYWw7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VIb3RrZXlzIH0gZnJvbSBcInJlYWN0LWhvdGtleXMtaG9va1wiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01vZGFsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNb2RhbFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBpc09wZW46IGJvb2xlYW47XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBidXR0b24/OiBSZWFjdE5vZGU7XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gTW9kYWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBpc09wZW4sXG4gIGJ1dHRvbixcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxufTogTW9kYWxQcm9wcykge1xuICB1c2VIb3RrZXlzKFwiRXNjYXBlXCIsIG9uQ2xvc2UpO1xuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsb3NlKCk7XG4gIH0sIFtvbkNsb3NlXSk7XG5cbiAgcmV0dXJuIChcbiAgICBpc09wZW4gJiYgKFxuICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtb3ZlcmxheVwiXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlT3ZlcmxheUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgIHN0eWxlcy5tb2RhbCwgXG4gICAgICAgICAge1xuICAgICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LCBcbiAgICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvd1xuICAgICAgICAgIH1cbiAgICAgICAgXSl9IGRhdGEtdGVzdGlkPVwibW9kYWxcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7YnV0dG9uICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259PntidXR0b259PC9kaXY+fVxuICAgICAgPC9kaXY+XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RhbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiXzIwWktHWTRUd1p4cDBLWjZFN3k0V0JcIixcIm1vZGFsXCI6XCJfMjVMQk4zMV9tSTFJMXVIRERQNE8wSVwiLFwidHJhbnNwYXJlbnRcIjpcIl8zWjJLbDFyRUhaUU1MVXNYRjFmN2xvXCIsXCJub1NoYWRvd1wiOlwiXzNDZlNULXRuLXRzdmNvZFN4ZWxpUXFcIixcIm1vZGFsQnV0dG9uXCI6XCJfMWVPMHgzTTBwTjgtNzlJdVl1VF9DbFwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiS2dDNXB3dHNIYXZ1Vk9MdWJBTGFlXCIsXCJtb2RhbEhlYWRlclwiOlwiXzFiVE5YTVI1bVpGWHMxbzB1eGtoUlBcIixcIm1vZGFsQ29udGVudFwiOlwicXVQNW80UTlubFVvMWZUN3NiUFZBXCIsXCJub1BhZGRpbmdcIjpcIl8xVWdvX0RIU1Q0UmJXekl4SFBoajduXCIsXCJtb2RhbEJ1dHRvbnNDb250YWluZXJcIjpcIl8yYkdMN1hqRHk2c0UzSmxlVTk4aGp5XCIsXCJtb2RhbEJ1dHRvbnNcIjpcIl8zWGZmRmVOOVZFSXB5dGhtVkoyVThDXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgRmxvYXRpbmdQYW5lbCB9IGZyb20gXCIuL0Zsb2F0aW5nUGFuZWxcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIFBsYWNlbWVudCA9IHtcbiAgaG9yaXpvbnRhbDpcbiAgICB8IFwicmlnaHRcIlxuICAgIHwgXCJyaWdodEVkZ2VcIlxuICAgIHwgXCJyaWdodE9uRWRnZVwiXG4gICAgfCBcImxlZnRcIlxuICAgIHwgXCJsZWZ0RWRnZVwiXG4gICAgfCBcImxlZnRPbkVkZ2VcIlxuICAgIHwgXCJsZWZ0T25FZGdlXCJcbiAgICB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsOlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJ0b3BFZGdlXCJcbiAgICB8IFwidG9wT25FZGdlXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwiYm90dG9tRWRnZVwiXG4gICAgfCBcImJvdHRvbU9uRWRnZVwiXG4gICAgfCBcImNlbnRlclwiO1xuICBwYXJlbnQ6IFwidmlld3BvcnRcIiB8IFwiY29udGFpbmVyXCI7XG59O1xuXG50eXBlIEZsb2F0aW5nUGFuZWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbGF5b3V0PzogXCJjb2x1bW5cIiB8IFwicm93XCI7XG4gIHBsYWNlbWVudD86IFBsYWNlbWVudDtcbn07XG5cbmZ1bmN0aW9uIEZsb2F0aW5nUGFuZWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBsYXlvdXQgPSBcImNvbHVtblwiLFxuICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwiY2VudGVyXCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiLCBwYXJlbnQ6IFwidmlld3BvcnRcIiB9LFxufTogRmxvYXRpbmdQYW5lbFByb3BzKSB7XG4gIGNvbnN0IGhvcml6b250YWxQbGFjZW1lbnQgPVxuICAgIHBsYWNlbWVudC5ob3Jpem9udGFsID09PSBcImNlbnRlclwiXG4gICAgICA/IFwiaG9yaXpvbnRhbENlbnRlclwiXG4gICAgICA6IHBsYWNlbWVudC5ob3Jpem9udGFsO1xuXG4gIGNvbnN0IHZlcnRpY2FsUGxhY2VtZW50ID1cbiAgICBwbGFjZW1lbnQudmVydGljYWwgPT09IFwiY2VudGVyXCIgPyBcInZlcnRpY2FsQ2VudGVyXCIgOiBwbGFjZW1lbnQudmVydGljYWw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiZmxvYXRpbmctcGFuZWxcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tob3Jpem9udGFsUGxhY2VtZW50XSxcbiAgICAgICAgc3R5bGVzW3ZlcnRpY2FsUGxhY2VtZW50XSxcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmZpeGVkXTogcGxhY2VtZW50LnBhcmVudCAhPT0gXCJjb250YWluZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmxvYXRpbmdQYW5lbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMnIwRmtZSjdTSzFZakIzSEtITUFpaFwiLFwicm93XCI6XCJfM1ItRkY4ZU11MENTNGVOWDNsVGRDUlwiLFwiY29sdW1uXCI6XCJfMW9LT2VBZ1pqd3hOTTN1R2ZMdDZJT1wiLFwiZml4ZWRcIjpcIl8zb1FHV2dTSU5ieXRiNHV2OTJDU3ZUXCIsXCJwbGFpblwiOlwiaU1mOG9kLWJJcXNIQXZ4b2ZEdXpiXCIsXCJ0cmFuc3BhcmVudFwiOlwiZDJveXg1cHlzcWo4OThhUzhHM0U4XCIsXCJ0b3BcIjpcIl8xMWNQWXExZGhReXpWSU1aZWsxX0lvXCIsXCJ0b3BFZGdlXCI6XCJfMl9pbmVDeTFNUWxZUDZxTWV3ZDF6NVwiLFwidG9wT25FZGdlXCI6XCJfMXJ2Q3NEb2Q1YmxUT3lBbDRrRHdOMFwiLFwicmlnaHRcIjpcIl8xU0lZQmNSZ3FTNFZQaFc5TTgwWTR6XCIsXCJyaWdodEVkZ2VcIjpcIlFBNjlmMEQ4YlRDSkhyRE9yOG0xclwiLFwicmlnaHRPbkVkZ2VcIjpcIl8yUGlUVWwwSll6RUNuTzA4NTFnejNhXCIsXCJib3R0b21cIjpcIl8zMDVnQm1Ud0FlWFpmQV9NOXRzVk5vXCIsXCJib3R0b21FZGdlXCI6XCJfMVBjRFhiTFoyWEhQa2VpX0hfcjU4cFwiLFwiYm90dG9tT25FZGdlXCI6XCJfMnZvdDRxcHI1OFduYjZwdkhZbmprY1wiLFwibGVmdFwiOlwic0l0Z0JWNFd0RHg0dlozYS1QNGl4XCIsXCJsZWZ0RWRnZVwiOlwiXzFOSjFGeklfYWJLaS1XNmtjMnIyYzZcIixcImxlZnRPbkVkZ2VcIjpcIl8xMkV2d2JhVlFOV1BaZTM3U284TF9tXCIsXCJob3Jpem9udGFsQ2VudGVyXCI6XCJfMmppU3hFYkNUS1Z6RHRlR1ExdW9FZlwiLFwidmVydGljYWxDZW50ZXJcIjpcIl8yZjlENDZCQi1nZXpQdnc4VFp4SnZwXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbi5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgSWNvblByb3BzID0ge1xuICBhbHQ/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MSW1hZ2VFbGVtZW50PjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICBzcmM6IHN0cmluZztcbiAgc2l6ZT86IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCIgfCBcInhsYXJnZVwiO1xufTtcbmZ1bmN0aW9uIEljb24oe1xuICBzcmMsXG4gIGFsdCxcbiAgY29udGFpbmVyUmVmLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbn06IEljb25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxpbWdcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5pY29uLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHsgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkIH0sXG4gICAgICBdKX1cbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvblwiXG4gICAgICBhbHQ9e2FsdH1cbiAgICAgIHNyYz17c3JjfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImljb25cIjpcIl8zM2NUTThpOHFhakZHeS0wMHR5MFJ3XCIsXCJzbWFsbFwiOlwiTVVpM2lremNQWmRvNTlBZm9YZE9GXCIsXCJtZWRpdW1cIjpcIl8yVkNLcXk1OU5TRmRmRGlFMG94YXN6XCIsXCJsYXJnZVwiOlwiXzJVVVVmMm5fYTBQWXBROGtvd0tIenBcIixcInhsYXJnZVwiOlwib0RJRVk4VTRUd0NKa2pGN3hhUUJPXCIsXCJpbnZlcnRlZFwiOlwiXzJxelV0VTFUZF9jNTh2TThBTHFTVldcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbi5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIEljb25CdXR0b25Qcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBzcmM6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG4gIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBzaXplPzogU2l6ZTtcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xuICBvZmZzZXRTaWRlcz86IEFycmF5PFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI+O1xufTtcblxuZnVuY3Rpb24gSWNvbkJ1dHRvbih7XG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBzcmMsXG4gIGFsdCxcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgb25DbGljayA9ICgpID0+IHt9LFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICB0eXBlID0gXCJidXR0b25cIixcbn06IEljb25CdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJSZ3lsbFhUcXAzX2paNkEyTmJ2ZzZcIixcInNtYWxsXCI6XCJfMXcwaFpsT2JlTDdFRzg3enNMLTl2TlwiLFwibWVkaXVtXCI6XCJFSzFidkpaalcxMTlEbzc5U3RMN0lcIixcImxhcmdlXCI6XCJQZ3lRWEsxeXlDTXE4QlNhWUNiY2hcIixcInhsYXJnZVwiOlwicWhrSHpJb0lvd25yZXhIelFTdXVVXCIsXCJyb3VuZGVkXCI6XCJfM3FxYTFrMEM5Sk1Qc0JSU3o2WjB5WVwiLFwidG9wT2Zmc2V0XCI6XCJfM1ZaUDdEb2hoWjd6OGZpNHotSDhqTlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yWFhoSjMtY1ljWGJJVk5tbW5POHlIXCIsXCJib3R0b21PZmZzZXRcIjpcIlpKSVg3VnE1bXVzamQ2czRoQ1NiUFwiLFwibGVmdE9mZnNldFwiOlwiXzFRVldpeWl2VzlVeGVvTnUzVWRudjZcIixcImludmVydGVkXCI6XCJfMmpaelhobkhxcWJ0dW00ZEJkbDFsS1wiLFwibm9TaGFkb3dcIjpcIl8zZnh2V2lPTkZGWXRNdURjWHA4c3l1XCIsXCJub0JvcmRlclwiOlwiXzNFdXh1cG5xT1Z1U29Vc2JLek5uXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzM1YlJJaThCdEQ0UktTSnZaYmpfc21cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uTGluayB9IGZyb20gXCIuL0ljb25CdXR0b25MaW5rXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xuXG50eXBlIE9mZnNldFNpZGUgPSBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiO1xuXG50eXBlIEljb25CdXR0b25MaW5rUHJvcHMgPVxuICB8IHtcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xuICAgICAgc3JjOiBzdHJpbmc7XG4gICAgICBhbHQ6IHN0cmluZztcbiAgICAgIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIGludmVydGVkPzogYm9vbGVhbjtcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICAgICAgbm9TaGFkb3c/OiBib29sZWFuO1xuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICAgICAgc2l6ZT86IFNpemU7XG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xuICAgIH1cbiAgfCBhbnk7XG5cbmZ1bmN0aW9uIEljb25CdXR0b25MaW5rKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY29udGFpbmVyUmVmLFxuICBjbGFzc05hbWUsXG4gIHNyYyxcbiAgYWx0LFxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICAuLi5wcm9wc1xufTogSWNvbkJ1dHRvbkxpbmtQcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvbi1idXR0b24tbGlua1wiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgICAgW3N0eWxlcy5ib3R0b21PZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwiYm90dG9tXCIpLFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cbiAgICAgIHtiYWRnZUNvbnRlbnQgJiYgPEJ1dHRvbkJhZGdlPntiYWRnZUNvbnRlbnR9PC9CdXR0b25CYWRnZT59XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b25MaW5rO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zd2p4akN6dl9scGhkV203M0pnQXlwXCIsXCJzbWFsbFwiOlwiXzMyTVltWmJIelVVMGIzZE1jbUpzaU1cIixcIm1lZGl1bVwiOlwiXzE4OXJZSjJUdmFCeXJDM1M3Q2Yzbm1cIixcImxhcmdlXCI6XCJfMmFZU1NUVWc4d3ZyQURPUzE4OHhNXCIsXCJ4bGFyZ2VcIjpcInZzM0tZdlU3WmNuaHcyU095U0NOZlwiLFwicm91bmRlZFwiOlwiXzE4aWg2N0xMMG43WGw2MWdMRzhzMGtcIixcInRvcE9mZnNldFwiOlwiXzFwN2g3VzZRc0RIcGJhNm1neVdVTDlcIixcInJpZ2h0T2Zmc2V0XCI6XCJfM2Z4TUlCX0p6NUNZSWZ3dVpoUTI4aVwiLFwiYm90dG9tT2Zmc2V0XCI6XCJfMTEzbTRDV2ltTHZzalU5eEl4UHE3aVwiLFwibGVmdE9mZnNldFwiOlwiXzZDaG92Mk1veVV4eWhXeEtuMzY4S1wiLFwiaW52ZXJ0ZWRcIjpcIl8zZXFPSlF6NHVlLWVYTHZxMjdBc1k1XCIsXCJub1NoYWRvd1wiOlwibEY2RF9WMjB4MzJ2OVp5c3F3QzY4XCIsXCJub0JvcmRlclwiOlwiXzNzNnFDb2xManBqbDRScm83bVZUeFNcIixcInRyYW5zcGFyZW50XCI6XCJfMklaTzlwSzEzMVU5MWN5S1hpeGd4RFwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlLCBJbWFnZVByb3BzIH0gZnJvbSBcIi4vSW1hZ2VcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ltYWdlLm1vZHVsZS5jc3NcIjtcblxuZXhwb3J0IGNvbnN0IGVtcHR5SW1hZ2UgPVxuICBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPVwiOyAvLyAxeDFwbmdcblxuZXhwb3J0IHR5cGUgSW1hZ2VQcm9wcyA9IHtcbiAgYW5pbWF0aW9uPzogXCJmYWRlSW5cIiB8IFwic2NhbGVVcFwiO1xuICBhbHQ/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBsYXlvdXQ/OiBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xuICBzcmM6IHN0cmluZztcbiAgc3JjV2lkdGg/OiBudW1iZXI7XG4gIHNyY0hlaWdodD86IG51bWJlcjtcbn07XG5cbmZ1bmN0aW9uIEltYWdlQ29tcG9uZW50KHtcbiAgc3JjLFxuICBhbHQsXG4gIHNyY1dpZHRoLFxuICBzcmNIZWlnaHQsXG4gIGNoaWxkcmVuLFxuICBhbmltYXRpb24sXG4gIGNvbnRhaW5lclJlZixcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXG59OiBJbWFnZVByb3BzKSB7XG4gIGNvbnN0IFtpc0xvYWRlZCwgc2V0SXNMb2FkZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpbWFnZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGltYWdlLmNyb3NzT3JpZ2luID0gXCJhbm9ueW1vdXNcIjtcbiAgICBpbWFnZS5zcmMgPSBzcmM7XG4gICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgaW1hZ2VSZWYuY3VycmVudD8uc2V0QXR0cmlidXRlKFwic3JjXCIsIHNyYyk7XG4gICAgICBzZXRJc0xvYWRlZCh0cnVlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGltYWdlLnNyYyA9IFwiXCI7XG4gICAgICBkZWxldGUgaW1hZ2Uub25sb2FkO1xuICAgICAgZGVsZXRlIGltYWdlLnNyYztcbiAgICAgIGRlbGV0ZSBpbWFnZS5jcm9zc09yaWdpbjtcbiAgICAgIGltYWdlID0gbnVsbDtcbiAgICB9O1xuICB9LCBbc3JjXSk7XG5cbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgIHN0eWxlcy5pbWFnZSxcbiAgICAgICAgICBzdHlsZXNbbGF5b3V0XSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbc3R5bGVzLmZhZGVJbl06IGFuaW1hdGlvbiA9PT0gXCJmYWRlSW5cIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICAgIFtzdHlsZXMuc2NhbGVVcF06IGFuaW1hdGlvbiA9PT0gXCJzY2FsZVVwXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSl9XG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbWFnZVwiXG4gICAgICAgIGFsdD17YWx0fVxuICAgICAgICBzcmM9e2VtcHR5SW1hZ2V9XG4gICAgICAgIHdpZHRoPXtzcmNXaWR0aH1cbiAgICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XG4gICAgICAvPlxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8aW1nXG4gICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5pbWFnZSxcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmZhZGVJbl06IGFuaW1hdGlvbiA9PT0gXCJmYWRlSW5cIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICBbc3R5bGVzLnNjYWxlVXBdOiBhbmltYXRpb24gPT09IFwic2NhbGVVcFwiICYmIGlzTG9hZGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImltYWdlXCJcbiAgICAgIGFsdD17YWx0fVxuICAgICAgc3JjPXtlbXB0eUltYWdlfVxuICAgICAgd2lkdGg9e3NyY1dpZHRofVxuICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XG4gICAgLz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VDb21wb25lbnQ7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFWMDBHcHpfa2VxVVdHRWZaNzR3alNcIixcImhhc092ZXJsYXlcIjpcIl8yTXRVZllwdzVWOFVwcnhxX0VfeVNhXCIsXCJvdmVybGF5XCI6XCJ6MURWSHhqMVpQSzczT0lRUmNrN2pcIixcImltYWdlXCI6XCJfMzlPalRHV2Q3eG14Y2w2bnVJLWcyTFwiLFwiY292ZXJcIjpcIl8zcUtkcDJtSzZmN0c1ekF6WGx6Z3JFXCIsXCJjb250YWluXCI6XCJfMm9fRzRYYkItUW96YmZ1azRfVjAwaFwiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzJ4Z3VEa0d1MW1SMnlQYVktaHpOOG9cIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMTlXTWEzdHFSeHZVaERLRlo4WTJQQlwiLFwiZmFkZUluXCI6XCJfMzZPUzJHY3Nqd0VnSFAwby04QXgxbVwiLFwiZmFkZUluQW5pbWF0aW9uXCI6XCItZXltTjZoV3pKblJ4OFhoazFEV09cIixcInNjYWxlVXBcIjpcIl8xVVVSQUJabk1sTGYwS1BVVUQyUk56XCIsXCJzY2FsZVVwQW5pbWF0aW9uXCI6XCJfM2tvdHdWOWp2cEhTUG1qdE9VbGc3TVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3IH0gZnJvbSBcIi4vTGlzdFZpZXdcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3TGlua0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0xpbmtJdGVtXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlldy5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTGlzdFZpZXdQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIGhlYWRlckFjdGlvbnM/OiBSZWFjdE5vZGU7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlldyh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaGVhZGVyLFxuICBoZWFkZXJBY3Rpb25zLFxufTogTGlzdFZpZXdQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHsoaGVhZGVyIHx8IGhlYWRlckFjdGlvbnMpICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxuICAgICAgICAgIHtoZWFkZXIgJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlckxhYmVsfT57aGVhZGVyfTwvaDM+fVxuICAgICAgICAgIHtoZWFkZXJBY3Rpb25zfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8dWwgY2xhc3NOYW1lPXtzdHlsZXMubGlzdH0+e2NoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIkRjV29FYmlvbDlweC1GUUFfVHBPa1wiLFwiaGVhZGVyXCI6XCJfMmphdkI4c0FEeDZkRGdxWE4zTUNMUFwiLFwiaGVhZGVyTGFiZWxcIjpcIl8zaU1PZkl5TkwxU0VtdjJKOFpERG1XXCIsXCJsaXN0XCI6XCJfM19LbXRiTVBwUEhnSkZNOVpCX3huQVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9CdXR0b25cIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBMaXN0Vmlld0l0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIHNpemU/OiBTaXplO1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xuICBjaGlsZHJlbixcbiAgYWN0aXZlID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBCdXR0b25MaW5rIH0gZnJvbSBcIi4uL0J1dHRvbkxpbmtcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBMaXN0Vmlld0xpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgYWN0aXZlOiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc6IGJvb2xlYW47XG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgICAgc2l6ZTogU2l6ZTtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0xpbmtJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFzOiBDb21wb25lbnQsXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IExpc3RWaWV3TGlua0l0ZW1Qcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25MaW5rXG4gICAgICAgIGFzPXtDb21wb25lbnR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQnV0dG9uTGluaz5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51LCBNZW51UGxhY2VtZW50IH0gZnJvbSBcIi4vTWVudVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51Q29udGFpbmVyIH0gZnJvbSBcIi4vTWVudUNvbnRhaW5lclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVMaW5rSXRlbSB9IGZyb20gXCIuL01lbnVMaW5rSXRlbVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnUubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgdHlwZSBNZW51UGxhY2VtZW50ID0ge1xuICBob3Jpem9udGFsOiBcInJpZ2h0XCIgfCBcImxlZnRcIjtcbiAgdmVydGljYWw6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBNZW51UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBwbGFjZW1lbnQ/OiBNZW51UGxhY2VtZW50O1xufTtcblxuZnVuY3Rpb24gTWVudSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgaXNPcGVuID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcbiAgaGVhZGVyLFxufTogTWVudVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm1lbnUsXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQuaG9yaXpvbnRhbF0sXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQudmVydGljYWxdLFxuICAgICAgICB7IFtzdHlsZXMub3Blbl06IGlzT3BlbiB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7aGVhZGVyICYmIGlzT3BlbiAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMubWVudUhlYWRlcn0+e2hlYWRlcn08L2gzPn1cbiAgICAgIDx1bD57aXNPcGVuICYmIGNoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVcIjpcIl8xTDUtcHZfUDZNMm9HZW9SZU1uTzJKXCIsXCJ0b3BcIjpcIl8zMWxkWUdVNFUweHBLdVVfLS1XY2phXCIsXCJyaWdodFwiOlwiT2JIeE1pdmwzNWkxS2dJN1RnZ2M5XCIsXCJsZWZ0XCI6XCJfMkd6YzBYZkwtaDVOeUhLVkR2NXIta1wiLFwiYm90dG9tXCI6XCJfM0VEbWlTZlBSWk1sSGxTSDkzNDdsR1wiLFwib3BlblwiOlwiXzFKN3BGa3ZralFRUldrbWctMFhUV1pcIixcImVudHJhbmNlXCI6XCJfM2NxZXNRR2Y5Q3l1NjZEc29LdEYwcVwiLFwibWVudUhlYWRlclwiOlwiXzJveHNQT3NwQUhQQ2VLVFBIZWdlSFVcIn07IiwiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUNvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHJlZj86ICgpID0+IHZvaWQgfCB7IGN1cnJlbnQ6IGFueSB9O1xufVxuXG5mdW5jdGlvbiBNZW51Q29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZX06IE1lbnVDb250YWluZXJQcm9wcywgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLm1lbnVDb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZihNZW51Q29udGFpbmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUNvbnRhaW5lclwiOlwiXzFfMnNGRlZ6TlhtSlhfUFRwSFpnRUxcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBNZW51SXRlbSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBpc0FjdGl2ZSA9IGZhbHNlLFxufTogTWVudUl0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51SXRlbSxcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51SXRlbTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUl0ZW1cIjpcIl8yS3NSQ0VnRV9NN3dvWGpocFJ1VnVvXCIsXCJub1BhZGRpbmdcIjpcIl8yY3FNSkhKeUNqQVU4WlBaQVYwWUQ1XCIsXCJhY3RpdmVcIjpcIl8xWG5YWmlBcmh2VWV5WGdxVWFHLVA3XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUxpbmtJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51TGlua0l0ZW1Qcm9wcyA9XG4gIHwge1xuICAgICAgYXM6IEVsZW1lbnRUeXBlO1xuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBNZW51TGlua0l0ZW0oe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgLi4ucHJvcHNcbn06IE1lbnVMaW5rSXRlbVByb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51TGlua0l0ZW0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51TGlua0l0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVMaW5rSXRlbVwiOlwiXzN6NXQ5Q0FoY0F3Vk90T1ZsQV80R3dcIixcIm5vUGFkZGluZ1wiOlwiYk5YaWt5RVpJSU9NMUhnc0FpM2Z0XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJtZW51SXRlbVwiOlwiXzN0SVdBaE1EdFB6QUg0YkFyd3BST3ZcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBPdmVybGF5IH0gZnJvbSBcIi4vT3ZlcmxheVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL092ZXJsYXkubW9kdWxlLmNzc1wiO1xuXG50eXBlIE92ZXJsYXlQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBPdmVybGF5KHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgaXNGaXhlZCA9IGZhbHNlLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBPdmVybGF5UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwib3ZlcmxheVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm92ZXJsYXksXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IGlzRml4ZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPdmVybGF5O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJJMGRtLUxkbS1TaVMwdjVYLXZvMGdcIixcInRyYW5zcGFyZW50XCI6XCJfM3FkRGRseW5ITG5vZk4xREt2dllROFwiLFwiZml4ZWRcIjpcIl8xZ1h5OVhTM0YtSnRxZGpaQmNvS1N3XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dElucHV0IH0gZnJvbSBcIi4vVGV4dElucHV0XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVGV4dElucHV0Lm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUsIFRleHRJbnB1dFR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBUZXh0SW5wdXRQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIG9uS2V5RG93bj86IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVGV4dElucHV0VHlwZTtcbiAgc2l6ZT86IFNpemU7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xufTtcblxuZnVuY3Rpb24gVGV4dElucHV0KHtcbiAgbGFiZWwsXG4gIG9uQ2hhbmdlLFxuICBvbkJsdXIsXG4gIG9uS2V5RG93bixcbiAgcGxhY2Vob2xkZXIsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpbnB1dFJlZixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxuICB0eXBlID0gXCJ0ZXh0XCIsXG59OiBUZXh0SW5wdXRQcm9wcykge1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG5cbiAgY29uc3QgaW5wdXRFbGVtZW50ID0gKFxuICAgIDxpbnB1dFxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbnB1dFwiXG4gICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRleHRJbnB1dCwgc3R5bGVzW3NpemVdXSl9XG4gICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgLz5cbiAgKTtcbiAgaWYgKGxhYmVsKSB7XG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDw+e2lucHV0RWxlbWVudH08Lz47XG4gIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIixcInhsYXJnZVwiOlwiXzNzdDhFR291bk9nak51THBvRXJDMHNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0Q29udGFpbmVyIH0gZnJvbSBcIi4vVG9hc3RDb250YWluZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBUb2FzdFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIFRvYXN0KHsgY2hpbGRyZW4sIGNvbnRhaW5lclJlZiwgb25DbGljayA9ICgpID0+IHt9IH06IFRvYXN0UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3RcIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3Q7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0XCI6XCJfMk4zWGlIOFJWbkVBWWx6QkRfSkNxWlwiLFwiZW50cmFuY2VcIjpcIl8xOWN3M3p4NmZVNFJNR01hR001ekpaXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgVG9hc3RDb250YWluZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5mdW5jdGlvbiBUb2FzdENvbnRhaW5lcih7IGNoaWxkcmVuIH06IFRvYXN0Q29udGFpbmVyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RDb250YWluZXJdKX1cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3QtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0Q29udGFpbmVyO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdENvbnRhaW5lclwiOlwiXzNSVDJhYmZ6SzBydC1ZamNycVhMbnJcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWRlbyB9IGZyb20gXCIuL1ZpZGVvXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9WaWRlby5tb2R1bGUuY3NzXCI7XG5cbi8qKlxuICogVGhlcmUgaXMgYSBrbm93biBpc3N1ZSBpbiBSZWFjdCBpbiByZWdhcmRzIHRvIHRoZSAnbXV0ZWQnIHByb3BlcnR5IHdoaWNoIGNhdXNlcyB0aGUgd2FybmluZzpcbiAqIFwiV2FybmluZzogdW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuXCJcbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEwMzg5XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY1NDRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0aW5nLWxpYnJhcnkvcmVhY3QtdGVzdGluZy1saWJyYXJ5L2lzc3Vlcy80NzBcbiAqL1xuXG50eXBlIExheW91dCA9IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XG5cbnR5cGUgVmlkZW9Qcm9wcyA9IHtcbiAgc3JjOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbGF5b3V0PzogTGF5b3V0O1xuICBhdXRvUGxheT86IGJvb2xlYW47XG4gIGxvb3A/OiBib29sZWFuO1xuICBtdXRlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuZnVuY3Rpb24gVmlkZW8oe1xuICBzcmMsXG4gIHR5cGUsXG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIG11dGVkID0gdHJ1ZSxcbiAgbG9vcCA9IHRydWUsXG4gIGF1dG9QbGF5ID0gdHJ1ZSxcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXG59OiBWaWRlb1Byb3BzKSB7XG4gIHJldHVybiBjaGlsZHJlbiA/IChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XG4gICAgPlxuICAgICAgPHZpZGVvXG4gICAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxuICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cbiAgICAgICAgbXV0ZWQ9e211dGVkfVxuICAgICAgICBsb29wPXtsb29wfVxuICAgICAgICBhdXRvUGxheT17YXV0b1BsYXl9XG4gICAgICAgIHBsYXlzSW5saW5lPXt0cnVlfVxuICAgICAgPlxuICAgICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XG4gICAgICA8L3ZpZGVvPlxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8dmlkZW9cbiAgICAgIGRhdGEtdGVzdGlkPVwidmlkZW9cIlxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnZpZGVvLCBzdHlsZXNbbGF5b3V0XV0pfVxuICAgICAgbXV0ZWQ9e211dGVkfVxuICAgICAgbG9vcD17bG9vcH1cbiAgICAgIGF1dG9QbGF5PXthdXRvUGxheX1cbiAgICAgIHBsYXlzSW5saW5lPXt0cnVlfVxuICAgID5cbiAgICAgIDxzb3VyY2UgZGF0YS10ZXN0aWQ9XCJzb3VyY2VcIiBzcmM9e3NyY30gdHlwZT17dHlwZX0gLz5cbiAgICA8L3ZpZGVvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBWaWRlbztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMWQ1NXdYdVFLcHQ5N1BxUUhZeDVtV1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJEQU0xeDdQMXd1WU5QOFREbVhHWGNcIixcInZpZGVvXCI6XCJfM2pRX3FwVUx0cjB1RlNUV2JEME5WWlwiLFwiY292ZXJcIjpcIl8xcW5WTGhlR3pESTZObzlfbndiN2hsXCIsXCJjb250YWluXCI6XCJfMVgyODZOSVNJMHdxMktLM2RqVmh1M1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiT2VnbC04Z2QySzVsejNtVUdKX1V6XCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzEtSHpwVFlfV3RHY1pjMjV3Q290ZVlcIixcIm92ZXJsYXlcIjpcIl8yVHZYc3FBSVVuR1NxbTZrbkpGaEwzXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVG9nZ2xlIH0gZnJvbSBcIi4vdXNlVG9nZ2xlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuL3VzZU91dHNpZGVDbGlja1wiO1xuIiwiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVRvZ2dsZShcbiAgaW5pdGlhbFZhbHVlID0gZmFsc2Vcbik6IFtib29sZWFuLCAobmV3VmFsdWU/OiBib29sZWFuKSA9PiB2b2lkXSB7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGU8Ym9vbGVhbj4oaW5pdGlhbFZhbHVlKTtcblxuICBjb25zdCB0b2dnbGUgPSAobmV3VmFsdWU/OiBib29sZWFuKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VmFsdWUoKHByZXZWYWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gIXByZXZWYWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gW3ZhbHVlLCB1c2VDYWxsYmFjayh0b2dnbGUsIFt2YWx1ZV0pXTtcbn1cblxuIiwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxudHlwZSBDYWxsYmFjayA9IChldmVudDogRXZlbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZU91dHNpZGVDbGljayhjYWxsYmFjazogQ2FsbGJhY2spIHtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXJlZi5jdXJyZW50IHx8IHJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNhbGxiYWNrKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBoYW5kbGVDbGljayk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZUNsaWNrKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIGhhbmRsZUNsaWNrKTtcbiAgICB9O1xuICB9LCBbY2FsbGJhY2tdKTtcblxuICByZXR1cm4gcmVmO1xufVxuIiwiLyohXG4gKiBob3RrZXlzLWpzIHYzLjguMVxuICogQSBzaW1wbGUgbWljcm8tbGlicmFyeSBmb3IgZGVmaW5pbmcgYW5kIGRpc3BhdGNoaW5nIGtleWJvYXJkIHNob3J0Y3V0cy4gSXQgaGFzIG5vIGRlcGVuZGVuY2llcy5cbiAqIFxuICogQ29weXJpZ2h0IChjKSAyMDIwIGtlbm55IHdvbmcgPHdvd29ob29AcXEuY29tPlxuICogaHR0cDovL2pheXdjamxvdmUuZ2l0aHViLmlvL2hvdGtleXNcbiAqIFxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICovXG5cbnZhciBpc2ZmID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgPyBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gMCA6IGZhbHNlOyAvLyDnu5Hlrprkuovku7ZcblxuZnVuY3Rpb24gYWRkRXZlbnQob2JqZWN0LCBldmVudCwgbWV0aG9kKSB7XG4gIGlmIChvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIG9iamVjdC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBtZXRob2QsIGZhbHNlKTtcbiAgfSBlbHNlIGlmIChvYmplY3QuYXR0YWNoRXZlbnQpIHtcbiAgICBvYmplY3QuYXR0YWNoRXZlbnQoXCJvblwiLmNvbmNhdChldmVudCksIGZ1bmN0aW9uICgpIHtcbiAgICAgIG1ldGhvZCh3aW5kb3cuZXZlbnQpO1xuICAgIH0pO1xuICB9XG59IC8vIOS/rumlsOmUrui9rOaNouaIkOWvueW6lOeahOmUrueggVxuXG5cbmZ1bmN0aW9uIGdldE1vZHMobW9kaWZpZXIsIGtleSkge1xuICB2YXIgbW9kcyA9IGtleS5zbGljZSgwLCBrZXkubGVuZ3RoIC0gMSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RzLmxlbmd0aDsgaSsrKSB7XG4gICAgbW9kc1tpXSA9IG1vZGlmaWVyW21vZHNbaV0udG9Mb3dlckNhc2UoKV07XG4gIH1cblxuICByZXR1cm4gbW9kcztcbn0gLy8g5aSE55CG5Lyg55qEa2V55a2X56ym5Liy6L2s5o2i5oiQ5pWw57uEXG5cblxuZnVuY3Rpb24gZ2V0S2V5cyhrZXkpIHtcbiAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSBrZXkgPSAnJztcbiAga2V5ID0ga2V5LnJlcGxhY2UoL1xccy9nLCAnJyk7IC8vIOWMuemFjeS7u+S9leepuueZveWtl+espizljIXmi6znqbrmoLzjgIHliLbooajnrKbjgIHmjaLpobXnrKbnrYnnrYlcblxuICB2YXIga2V5cyA9IGtleS5zcGxpdCgnLCcpOyAvLyDlkIzml7borr7nva7lpJrkuKrlv6vmjbfplK7vvIzku6UnLCfliIblibJcblxuICB2YXIgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTsgLy8g5b+r5o236ZSu5Y+v6IO95YyF5ZCrJywn77yM6ZyA54m55q6K5aSE55CGXG5cbiAgZm9yICg7IGluZGV4ID49IDA7KSB7XG4gICAga2V5c1tpbmRleCAtIDFdICs9ICcsJztcbiAgICBrZXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgaW5kZXggPSBrZXlzLmxhc3RJbmRleE9mKCcnKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufSAvLyDmr5TovoPkv67ppbDplK7nmoTmlbDnu4RcblxuXG5mdW5jdGlvbiBjb21wYXJlQXJyYXkoYTEsIGEyKSB7XG4gIHZhciBhcnIxID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGExIDogYTI7XG4gIHZhciBhcnIyID0gYTEubGVuZ3RoID49IGEyLmxlbmd0aCA/IGEyIDogYTE7XG4gIHZhciBpc0luZGV4ID0gdHJ1ZTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGFycjEubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyMi5pbmRleE9mKGFycjFbaV0pID09PSAtMSkgaXNJbmRleCA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzSW5kZXg7XG59XG5cbnZhciBfa2V5TWFwID0ge1xuICBiYWNrc3BhY2U6IDgsXG4gIHRhYjogOSxcbiAgY2xlYXI6IDEyLFxuICBlbnRlcjogMTMsXG4gIHJldHVybjogMTMsXG4gIGVzYzogMjcsXG4gIGVzY2FwZTogMjcsXG4gIHNwYWNlOiAzMixcbiAgbGVmdDogMzcsXG4gIHVwOiAzOCxcbiAgcmlnaHQ6IDM5LFxuICBkb3duOiA0MCxcbiAgZGVsOiA0NixcbiAgZGVsZXRlOiA0NixcbiAgaW5zOiA0NSxcbiAgaW5zZXJ0OiA0NSxcbiAgaG9tZTogMzYsXG4gIGVuZDogMzUsXG4gIHBhZ2V1cDogMzMsXG4gIHBhZ2Vkb3duOiAzNCxcbiAgY2Fwc2xvY2s6IDIwLFxuICAn4oeqJzogMjAsXG4gICcsJzogMTg4LFxuICAnLic6IDE5MCxcbiAgJy8nOiAxOTEsXG4gICdgJzogMTkyLFxuICAnLSc6IGlzZmYgPyAxNzMgOiAxODksXG4gICc9JzogaXNmZiA/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+r5o236ZSuXG5cblxuICBpZiAodHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmICFpc0VsZW1lbnRCaW5kKGVsZW1lbnQpICYmIHdpbmRvdykge1xuICAgIGVsZW1lbnRIYXNCaW5kRXZlbnQucHVzaChlbGVtZW50KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5ZG93bicsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICB9KTtcbiAgICBhZGRFdmVudCh3aW5kb3csICdmb2N1cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIF9kb3duS2V5cyA9IFtdO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50KGVsZW1lbnQsICdrZXl1cCcsIGZ1bmN0aW9uIChlKSB7XG4gICAgICBkaXNwYXRjaChlKTtcbiAgICAgIGNsZWFyTW9kaWZpZXIoZSk7XG4gICAgfSk7XG4gIH1cbn1cblxudmFyIF9hcGkgPSB7XG4gIHNldFNjb3BlOiBzZXRTY29wZSxcbiAgZ2V0U2NvcGU6IGdldFNjb3BlLFxuICBkZWxldGVTY29wZTogZGVsZXRlU2NvcGUsXG4gIGdldFByZXNzZWRLZXlDb2RlczogZ2V0UHJlc3NlZEtleUNvZGVzLFxuICBpc1ByZXNzZWQ6IGlzUHJlc3NlZCxcbiAgZmlsdGVyOiBmaWx0ZXIsXG4gIHVuYmluZDogdW5iaW5kXG59O1xuXG5mb3IgKHZhciBhIGluIF9hcGkpIHtcbiAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfYXBpLCBhKSkge1xuICAgIGhvdGtleXNbYV0gPSBfYXBpW2FdO1xuICB9XG59XG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICB2YXIgX2hvdGtleXMgPSB3aW5kb3cuaG90a2V5cztcblxuICBob3RrZXlzLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoZGVlcCkge1xuICAgIGlmIChkZWVwICYmIHdpbmRvdy5ob3RrZXlzID09PSBob3RrZXlzKSB7XG4gICAgICB3aW5kb3cuaG90a2V5cyA9IF9ob3RrZXlzO1xuICAgIH1cblxuICAgIHJldHVybiBob3RrZXlzO1xuICB9O1xuXG4gIHdpbmRvdy5ob3RrZXlzID0gaG90a2V5cztcbn1cblxuZXhwb3J0IGRlZmF1bHQgaG90a2V5cztcbiIsImltcG9ydCBob3RrZXlzIGZyb20gJ2hvdGtleXMtanMnO1xuaW1wb3J0IHsgdXNlUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5mdW5jdGlvbiB1c2VJc0hvdGtleVByZXNzZWQoKSB7XG4gIHJldHVybiBob3RrZXlzLmlzUHJlc3NlZDtcbn1cblxuZnVuY3Rpb24gdXNlSG90a2V5cyhrZXlzLCBjYWxsYmFjaywgb3B0aW9ucywgZGVwcykge1xuICBpZiAob3B0aW9ucyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgZGVwcyA9IG9wdGlvbnM7XG4gICAgb3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHZhciBfcmVmID0gb3B0aW9ucyB8fCB7fSxcbiAgICAgIGVuYWJsZU9uVGFncyA9IF9yZWYuZW5hYmxlT25UYWdzLFxuICAgICAgZmlsdGVyID0gX3JlZi5maWx0ZXIsXG4gICAgICBrZXl1cCA9IF9yZWYua2V5dXAsXG4gICAgICBrZXlkb3duID0gX3JlZi5rZXlkb3duO1xuXG4gIHZhciByZWYgPSB1c2VSZWYobnVsbCk7XG4gIHZhciBtZW1vaXNlZENhbGxiYWNrID0gdXNlQ2FsbGJhY2soZnVuY3Rpb24gKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCkge1xuICAgIGlmIChyZWYuY3VycmVudCA9PT0gbnVsbCB8fCBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSByZWYuY3VycmVudCkge1xuICAgICAgY2FsbGJhY2soa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSwgZGVwcyA/IFtyZWZdLmNvbmNhdChkZXBzKSA6IFtyZWZdKTtcbiAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmVuYWJsZU9uVGFncykge1xuICAgICAgaG90a2V5cy5maWx0ZXIgPSBmdW5jdGlvbiAoX3JlZjIpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9IF9yZWYyLnRhcmdldCxcbiAgICAgICAgICAgIHNyY0VsZW1lbnQgPSBfcmVmMi5zcmNFbGVtZW50O1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHZhciB0YXJnZXRUYWdOYW1lID0gdGFyZ2V0ICYmIHRhcmdldC50YWdOYW1lIHx8IHNyY0VsZW1lbnQgJiYgc3JjRWxlbWVudC50YWdOYW1lO1xuICAgICAgICByZXR1cm4gQm9vbGVhbih0YXJnZXRUYWdOYW1lICYmIGVuYWJsZU9uVGFncyAmJiBlbmFibGVPblRhZ3MuaW5jbHVkZXModGFyZ2V0VGFnTmFtZSkpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyKSBob3RrZXlzLmZpbHRlciA9IGZpbHRlcjtcblxuICAgIGlmIChrZXl1cCAmJiBrZXlkb3duICE9PSB0cnVlKSB7XG4gICAgICBvcHRpb25zLmtleWRvd24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBob3RrZXlzKGtleXMsIG9wdGlvbnMgfHwge30sIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaG90a2V5cy51bmJpbmQoa2V5cywgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgfTtcbiAgfSwgW21lbW9pc2VkQ2FsbGJhY2ssIG9wdGlvbnMsIGVuYWJsZU9uVGFncywgZmlsdGVyLCBrZXlzXSk7XG4gIHJldHVybiByZWY7XG59XG5cbmV4cG9ydCB7IHVzZUhvdGtleXMsIHVzZUlzSG90a2V5UHJlc3NlZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcy5tYXBcbiJdLCJzb3VyY2VSb290IjoiIn0=
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3M/OWE0ZSIsIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uQmFkZ2UvQnV0dG9uQmFkZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkJhZGdlL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3M/MzJhYiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vQnV0dG9uLm1vZHVsZS5jc3M/Y2Q0NiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzPzA4NDEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL0xhYmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzPzFmMTEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ2hlY2tib3gvQ2hlY2tib3gubW9kdWxlLmNzcz80ZWViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcz8yM2ViIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLm1vZHVsZS5jc3M/ZTE4OCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3M/MGVkZiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzPzI3YjMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvRmxvYXRpbmdQYW5lbC5tb2R1bGUuY3NzPzdhYmYiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbi9JY29uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24ubW9kdWxlLmNzcz85YjkzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcz9kMjhkIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rL0ljb25CdXR0b25MaW5rLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzP2NjMzciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLm1vZHVsZS5jc3M/OTVhNyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcz80NjRlIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3SXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudS5tb2R1bGUuY3NzPzM3MDkiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcz85NmQyIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0ubW9kdWxlLmNzcz81MDQ5Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzPzA0MjciLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS5tb2R1bGUuY3NzPzIxYzUiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubW9kdWxlLmNzcz9jZDM2Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC5tb2R1bGUuY3NzP2NmNjEiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3M/OWEzNiIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8ubW9kdWxlLmNzcz9lMjIzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlVG9nZ2xlLnRzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy91c2VPdXRzaWRlQ2xpY2sudHMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2hvdGtleXMtanMvZGlzdC9ob3RrZXlzLmVzbS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3QtaG90a2V5cy1ob29rL2Rpc3QvcmVhY3QtaG90a2V5cy1ob29rLmVzbS5qcyJdLCJuYW1lcyI6WyJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZXhwb3J0cyIsIm1vZHVsZSIsImkiLCJsIiwibW9kdWxlcyIsImNhbGwiLCJtIiwiYyIsImQiLCJuYW1lIiwiZ2V0dGVyIiwibyIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsInIiLCJTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsInZhbHVlIiwidCIsIm1vZGUiLCJfX2VzTW9kdWxlIiwibnMiLCJjcmVhdGUiLCJrZXkiLCJiaW5kIiwibiIsIm9iamVjdCIsInByb3BlcnR5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJwIiwicyIsInJlcXVpcmUiLCJpc0FycmF5IiwiQXJyYXkiLCJjYyIsIm9iaiIsIm91dCIsInRtcCIsImsiLCJsZW5ndGgiLCJkZWZhdWx0IiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJidXR0b25CYWRnZSIsIm9uQ2xpY2siLCJjb250YWluZXJSZWYiLCJkaXNhYmxlZCIsImludmVydGVkIiwicm91bmRlZCIsIm5vU2hhZG93Iiwibm9QYWRkaW5nIiwibm9Cb3JkZXIiLCJ0cmFuc3BhcmVudCIsInN0cmV0Y2hIb3Jpem9udGFsbHkiLCJzdHJldGNoVmVydGljYWxseSIsIm9mZnNldFNpZGVzIiwiYWxpZ24iLCJzaXplIiwidHlwZSIsInJlZiIsImNvbnRhaW5lciIsImxlZnRPZmZzZXQiLCJpbmNsdWRlcyIsInJpZ2h0T2Zmc2V0Iiwicm9sZSIsImNvbnRlbnQiLCJDb21wb25lbnQiLCJwcm9wcyIsImxhYmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiYXV0b0ZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJlIiwidGFyZ2V0IiwiTGFiZWwiLCJpbnB1dFJlZiIsImlucHV0IiwiY29sb3JzIiwib25TZWxlY3QiLCJzZWxlY3RlZENvbG9yIiwiZGlyZWN0aW9uIiwiY29sb3JQaWNrZXIiLCJtYXAiLCJjb2xvciIsIkNvbG9yU3dhdGNoIiwiaXNTZWxlY3RlZCIsImNvbG9yU3dhdGNoIiwic2VsZWN0ZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsImhleENvZGUiLCJzck9ubHkiLCJDb25maXJtYXRpb25Nb2RhbCIsImhlYWRlciIsImlzT3BlbiIsImJ1dHRvbnNMZWZ0IiwiYnV0dG9uc1JpZ2h0Iiwib25DbG9zZSIsIk1vZGFsIiwibW9kYWxIZWFkZXIiLCJtb2RhbENvbnRlbnQiLCJtb2RhbEJ1dHRvbnNDb250YWluZXIiLCJtb2RhbEJ1dHRvbnMiLCJkaXNwbGF5TmFtZSIsImJ1dHRvbiIsInVzZUhvdGtleXMiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJvdmVybGF5IiwibW9kYWwiLCJtb2RhbEJ1dHRvbiIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwiYmFkZ2VDb250ZW50IiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsIkJ1dHRvbkJhZGdlIiwiZW1wdHlJbWFnZSIsInNyY1dpZHRoIiwic3JjSGVpZ2h0IiwiYW5pbWF0aW9uIiwidXNlU3RhdGUiLCJpc0xvYWRlZCIsInNldElzTG9hZGVkIiwiaW1hZ2VSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJpbWFnZSIsIkltYWdlIiwib25sb2FkIiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsImhhc092ZXJsYXkiLCJmYWRlSW4iLCJzY2FsZVVwIiwid2lkdGgiLCJoZWlnaHQiLCJoZWFkZXJBY3Rpb25zIiwiaGVhZGVyTGFiZWwiLCJsaXN0IiwiYWN0aXZlIiwibGlzdFZpZXdJdGVtIiwiQnV0dG9uIiwiQnV0dG9uTGluayIsImFzIiwibWVudSIsIm9wZW4iLCJtZW51SGVhZGVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsIm9uQmx1ciIsIm9uS2V5RG93biIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInRvYXN0IiwidG9hc3RDb250YWluZXIiLCJtdXRlZCIsImxvb3AiLCJhdXRvUGxheSIsInZpZGVvIiwicGxheXNJbmxpbmUiLCJpbml0aWFsVmFsdWUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwicHJldlZhbHVlIiwiY2FsbGJhY2siLCJoYW5kbGVDbGljayIsImV2ZW50IiwiY29udGFpbnMiLCJkb2N1bWVudCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaXNmZiIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImFkZEV2ZW50IiwibWV0aG9kIiwiYXR0YWNoRXZlbnQiLCJjb25jYXQiLCJ3aW5kb3ciLCJnZXRNb2RzIiwibW9kaWZpZXIiLCJtb2RzIiwic2xpY2UiLCJnZXRLZXlzIiwia2V5cyIsInJlcGxhY2UiLCJzcGxpdCIsImluZGV4IiwibGFzdEluZGV4T2YiLCJzcGxpY2UiLCJfa2V5TWFwIiwiYmFja3NwYWNlIiwidGFiIiwiY2xlYXIiLCJlbnRlciIsInJldHVybiIsImVzYyIsImVzY2FwZSIsInNwYWNlIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwiZGVsIiwiZGVsZXRlIiwiaW5zIiwiaW5zZXJ0IiwiaG9tZSIsImVuZCIsInBhZ2V1cCIsInBhZ2Vkb3duIiwiY2Fwc2xvY2siLCInIiwiX21vZGlmaWVyIiwic2hpZnQiLCJvcHRpb24iLCJjdHJsIiwiY29udHJvbCIsImNtZCIsImNvbW1hbmQiLCJtb2RpZmllck1hcCIsIjE2IiwiMTgiLCIxNyIsIjkxIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsIl9tb2RzIiwiX2hhbmRsZXJzIiwiX2Rvd25LZXlzIiwiX3Njb3BlIiwiZWxlbWVudEhhc0JpbmRFdmVudCIsImNvZGUiLCJ4IiwidG9VcHBlckNhc2UiLCJjaGFyQ29kZUF0Iiwic2V0U2NvcGUiLCJzY29wZSIsImdldFNjb3BlIiwiZWFjaFVuYmluZCIsIl9yZWYiLCJfcmVmJHNwbGl0S2V5Iiwic3BsaXRLZXkiLCJmb3JFYWNoIiwib3JpZ2luS2V5IiwidW5iaW5kS2V5cyIsImxlbiIsImxhc3RLZXkiLCJrZXlDb2RlIiwicmVjb3JkIiwiYTEiLCJhMiIsImFycjEiLCJhcnIyIiwiaXNJbmRleCIsImNvbXBhcmVBcnJheSIsImV2ZW50SGFuZGxlciIsImhhbmRsZXIiLCJtb2RpZmllcnNNYXRjaCIsInkiLCJzaG9ydGN1dCIsInByZXZlbnREZWZhdWx0IiwicmV0dXJuVmFsdWUiLCJzdG9wUHJvcGFnYXRpb24iLCJjYW5jZWxCdWJibGUiLCJkaXNwYXRjaCIsImFzdGVyaXNrIiwid2hpY2giLCJjaGFyQ29kZSIsImhvdGtleXMiLCJmaWx0ZXIiLCJ0aGlzIiwicHVzaCIsImtleU5hbWUiLCJrZXlOdW0iLCJnZXRNb2RpZmllclN0YXRlIiwia2V5ZG93biIsImtleXVwIiwiX2kiLCJrZXlTaG9ydGN1dCIsIl9kb3duS2V5c0N1cnJlbnQiLCJhIiwic29ydCIsImpvaW4iLCJlbGVtZW50IiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsIm9wdGlvbnMiLCJkZXBzIiwiZW5hYmxlT25UYWdzIiwibWVtb2lzZWRDYWxsYmFjayIsImtleWJvYXJkRXZlbnQiLCJob3RrZXlzRXZlbnQiLCJhY3RpdmVFbGVtZW50IiwiX3JlZjIiLCJ0YXJnZXRUYWdOYW1lIiwiQm9v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UUUsZUFDckIsRUFBUTNDLE9BQVMsU0FBVWdELEdBQ3pCLElBQUl4USxFQUFTd1EsRUFBTXhRLE9BQ2ZpUCxFQUFhdUIsRUFBTXZCLFdBRW5Cd0IsRUFBZ0J6USxHQUFVQSxFQUFPa1AsU0FBV0QsR0FBY0EsRUFBV0MsUUFDekUsT0FBT3dCLFFBQVFELEdBQWlCTixHQUFnQkEsRUFBYWxSLFNBQVN3UixNQUl0RWpELElBQVEsRUFBUUEsT0FBU0EsR0FFekJPLElBQXFCLElBQVpELElBQ1htQyxFQUFRbkMsU0FBVSxHQUdwQixFQUFROUYsRUFBTWlJLEdBQVcsR0FBSUcsR0FDdEIsV0FDTCxPQUFPLEVBQVFkLE9BQU90SCxFQUFNb0ksTUFFN0IsQ0FBQ0EsRUFBa0JILEVBQVNFLEVBQWMzQyxFQUFReEYsSUFDOUNsSiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAxMCk7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJ2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY2Mob2JqKSB7XG4gIHZhciBvdXQgPSBcIlwiXG5cbiAgaWYgKHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIikgcmV0dXJuIG9iaiB8fCBcIlwiXG5cbiAgaWYgKGlzQXJyYXkob2JqKSlcbiAgICBmb3IgKHZhciBrID0gMCwgdG1wOyBrIDwgb2JqLmxlbmd0aDsgaysrKSB7XG4gICAgICBpZiAoKHRtcCA9IGNjKG9ialtrXSkpICE9PSBcIlwiKSB7XG4gICAgICAgIG91dCArPSAob3V0ICYmIFwiIFwiKSArIHRtcFxuICAgICAgfVxuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGsgaW4gb2JqKSB7XG4gICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspICYmIG9ialtrXSkgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsga1xuICAgIH1cblxuICByZXR1cm4gb3V0XG59XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbkJhZGdlIH0gZnJvbSBcIi4vQnV0dG9uQmFkZ2VcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tIFwiLi9MYWJlbFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uIH0gZnJvbSBcIi4vSWNvblwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9CdXR0b25cIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uTGluayB9IGZyb20gXCIuL0J1dHRvbkxpbmtcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi9Db2xvclN3YXRjaFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL01vZGFsXCI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImxpc3RWaWV3SXRlbVwiOlwiXzFmajJhbmllUTBKS3hDQVprU2FhcGtcIn07IiwiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25CYWRnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9DaGVja2JveFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclBpY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0Vmlld1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9NZW51XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL092ZXJsYXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTGFiZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RvYXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1ZpZGVvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkJhZGdlLm1vZHVsZS5jc3NcIjtcblxudHlwZSBCdXR0b25CYWRnZVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBCdXR0b25CYWRnZSh7IGNoaWxkcmVuLCBjbGFzc05hbWUgfTogQnV0dG9uQmFkZ2VQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmJ1dHRvbkJhZGdlLCBjbGFzc05hbWVdKX0+e2NoaWxkcmVufTwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b25CYWRnZTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiYnV0dG9uQmFkZ2VcIjpcIl8xVWxZRkVHYzNkTWd0b05pbDZTT3g1XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b24ubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIEJ1dHRvblByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBub0JvcmRlcj86IGJvb2xlYW47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IFNpemU7XG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XG4gIG9mZnNldFNpZGVzPzogQXJyYXk8XCJsZWZ0XCIgfCBcInJpZ2h0XCI+O1xufTtcblxuZnVuY3Rpb24gQnV0dG9uKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgY29udGFpbmVyUmVmLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIHR5cGUsXG59OiBCdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICB7dHlwZW9mIGNoaWxkcmVuICE9PSBcInN0cmluZ1wiICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICApfVxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzEydzVXT0YzS3NhMkpCNS1ZT1h5RDdcIixcImxlZnRcIjpcIl8yVEZWNzJEclF4NUpHU2hOY3V0NEUtXCIsXCJzbWFsbFwiOlwidVRCcmNqcEhwOTZSQ3dGNVVEemYwXCIsXCJsYXJnZVwiOlwiXzE0U1NmczVTVldLN054dVpCcU1nekJcIixcInhsYXJnZVwiOlwiXzFTUXUyUVd3MmE3ZXc0N1dXMTJaU2dcIixcImludmVydGVkXCI6XCJfMmhaaGhpOEJnRV9la1FWbjllWDlEWFwiLFwicm91bmRlZFwiOlwiVkJET1NjWWNRblUyZXl0a0FfUGM2XCIsXCJyaWdodE9mZnNldFwiOlwiXzJHVFkzWG1hT3U5MjNNOXNFUnM2YWtcIixcImxlZnRPZmZzZXRcIjpcIl8xNVEwR0drZ1lKX2FMbTAxbkdFNVloXCIsXCJub1NoYWRvd1wiOlwiUmV3bURxanA2blVlRVlIRUt6VEpEXCIsXCJub0JvcmRlclwiOlwiblpxSVVQVDhjWjg3Qlc0cjhreFVcIixcInRyYW5zcGFyZW50XCI6XCJfNjY5bFI0eTJBSDk3QTFseTVNWVdPXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM2ljdXRYSHd6SWlvd3Q3YlZhM1lpYlwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8ya0NreFBrcGxQMXhxamZrZXBveU5wXCIsXCJub1BhZGRpbmdcIjpcIl8za05iQ2djSS1SX0ZGUS0zTzZUMGxhXCIsXCJjb250ZW50XCI6XCJfMmJGMUFTY0V4c2t1T3B1emQtY0RfNlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgT2Zmc2V0U2lkZSA9IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuXG50eXBlIEJ1dHRvbkxpbmtQcm9wcyA9XG4gIHwge1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICAgICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc/OiBib29sZWFuO1xuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICAgICAgc3RyZXRjaEhvcml6b250YWxseT86IGJvb2xlYW47XG4gICAgICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XG4gICAgICBzaXplPzogU2l6ZTtcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XG4gICAgICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBCdXR0b25MaW5rKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgc2l6ZSxcbiAgY29udGFpbmVyUmVmLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICBzdHJldGNoSG9yaXpvbnRhbGx5ID0gZmFsc2UsXG4gIHN0cmV0Y2hWZXJ0aWNhbGx5ID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgLi4ucHJvcHNcbn06IEJ1dHRvbkxpbmtQcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiYnV0dG9uLWxpbmtcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAgc3R5bGVzW2FsaWduXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaEhvcml6b250YWxseV06IHN0cmV0Y2hIb3Jpem9udGFsbHksXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoVmVydGljYWxseV06IHN0cmV0Y2hWZXJ0aWNhbGx5LFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICl9XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbkxpbms7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJRdTlSYUc1NXBXeUphVF9fM19vRkFcIixcImxlZnRcIjpcIl8zbngzZ05Qemo2TFRfMWh3blFIeE9KXCIsXCJzbWFsbFwiOlwiXzJMdl82eHgyR2wzMzVLVDlJb29qM2dcIixcIm1lZGl1bVwiOlwiXzNIeDhwaGF6M3pMcU5zZUFwTklXWkhcIixcImxhcmdlXCI6XCJfMi1PRVlGb0l2bHM0TjJDUnVZLWVKclwiLFwieGxhcmdlXCI6XCJfNnhGWUFQQVB3QVdsaG0wZ2R0b1pSXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJjb250ZW50XCI6XCJzTkRycTNjWDZJNlEtT3V1c3o3VGlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL0NoZWNrYm94XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ2hlY2tib3gubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIENoZWNrYm94UHJvcHMgPSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkNoYW5nZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86IFNpemU7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGluZGV0ZXJtaW5hdGU/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gQ2hlY2tib3goe1xuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIHBsYWNlaG9sZGVyLFxuICBjaGVja2VkLFxuICBkaXNhYmxlZCxcbiAgbmFtZSxcbiAgaW5kZXRlcm1pbmF0ZSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxufTogQ2hlY2tib3hQcm9wcykge1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpLFxuICAgIFtvbkNoYW5nZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxMYWJlbCB2YWx1ZT17bGFiZWx9PlxuICAgICAgPGlucHV0XG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hlY2tib3hcIlxuICAgICAgICByZWY9eyhpbnB1dFJlZikgPT4ge1xuICAgICAgICAgIGlmIChpbnB1dFJlZikge1xuICAgICAgICAgICAgaW5wdXRSZWYuaW5kZXRlcm1pbmF0ZSA9IGluZGV0ZXJtaW5hdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBjaGVja2VkPXtjaGVja2VkfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5pbnB1dCwgc3R5bGVzW3NpemVdXSl9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAvPlxuICAgIDwvTGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGFiZWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIExhYmVsSW5wdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MTGFiZWxFbGVtZW50PjtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIExhYmVsKHsgY2hpbGRyZW4sIHZhbHVlLCBjb250YWluZXJSZWYgfTogTGFiZWxJbnB1dFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsIHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAge3ZhbHVlfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExhYmVsO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xNURic19YNUlUOXRrbUFzTVhQTlZKXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaW5wdXRcIjpcIl8xcDJobWptTTFxTlpUWklpRkhGSXh1XCIsXCJzbWFsbFwiOlwiXzFKaV9fOVUtRDVVZFcyTkpXV1VQckNcIixcIm1lZGl1bVwiOlwiXzNLSlMyRlJTMnRkOTBRcjZyMzNMMjhcIixcImxhcmdlXCI6XCJfMWo3b2RDRUVYMkRrZ2dwSVp1RjRNSVwiLFwieGxhcmdlXCI6XCJfM0tad2hVbXhCSmViMnh0azg4Z2FHV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yUGlja2VyIH0gZnJvbSBcIi4vQ29sb3JQaWNrZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi4vQ29sb3JTd2F0Y2hcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JQaWNrZXIubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclBpY2tlclByb3BzID0ge1xuICBjb2xvcnM6IENvbG9yW107XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuICBvblNlbGVjdDogKGNvbG9yOiBDb2xvcikgPT4gdm9pZDtcbiAgc2VsZWN0ZWRDb2xvcj86IENvbG9yO1xufTtcblxuZnVuY3Rpb24gQ29sb3JQaWNrZXIoe1xuICBjb2xvcnMsXG4gIGNvbnRhaW5lclJlZixcbiAgb25TZWxlY3QsXG4gIHNlbGVjdGVkQ29sb3IsXG4gIGRpcmVjdGlvbiA9IFwidmVydGljYWxcIixcbn06IENvbG9yUGlja2VyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb2xvclBpY2tlciwgc3R5bGVzW2RpcmVjdGlvbl1dKX1cbiAgICA+XG4gICAgICB7Y29sb3JzLm1hcCgoY29sb3I6IENvbG9yKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbG9yU3dhdGNoXG4gICAgICAgICAgICBrZXk9e2NvbG9yLmtleX1cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2NvbG9yID09PSBzZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3QoY29sb3IpfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JQaWNrZXI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JTd2F0Y2gubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclN3YXRjaFByb3BzID0ge1xuICBjb2xvcjogQ29sb3I7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIENvbG9yU3dhdGNoKHtcbiAgY29sb3IsXG4gIGNvbnRhaW5lclJlZixcbiAgb25DbGljayxcbiAgaXNTZWxlY3RlZCA9IGZhbHNlLFxufTogQ29sb3JTd2F0Y2hQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb2xvclN3YXRjaCxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc2VsZWN0ZWRdOiBpc1NlbGVjdGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBkYXRhLXRlc3RpZD1cImNvbG9yLXN3YXRjaFwiXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjb2xvci5oZXhDb2RlIH19XG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc3JPbmx5fT57YFNlbGVjdCAke2NvbG9yLmxhYmVsfSBjb2xvcmB9PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDb2xvclN3YXRjaDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JTd2F0Y2hcIjpcImR2N2l1Y1RRcS1aaFVSVXVwLVB1VlwiLFwic2VsZWN0ZWRcIjpcIl8xTGJBZ3lpaUVfMXVqVzkwZC02aXV1XCIsXCJzck9ubHlcIjpcIl8xZXRrdXNsaFpWRVBOc2sxUWdoVEVvXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29sb3JQaWNrZXJcIjpcIl8yRjFPbi1TQTNtTWtoWlBGckRqV0ljXCIsXCJob3Jpem9udGFsXCI6XCJfMVdGWXlNa2tZTEw3M25fX3JQVVVidlwiLFwidmVydGljYWxcIjpcIl8xbElvYTJial90YmtRaWUwSXBFMkxuXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQ29uZmlybWF0aW9uTW9kYWwgfSBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0RWxlbWVudCwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi4vTW9kYWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIENvbmZpcm1hdGlvbk1vZGFsUHJvcHMgPSB7XG4gIGJ1dHRvbnNMZWZ0PzogUmVhY3RFbGVtZW50W107XG4gIGJ1dHRvbnNSaWdodD86IFJlYWN0RWxlbWVudFtdO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBDb25maXJtYXRpb25Nb2RhbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGhlYWRlcixcbiAgaXNPcGVuLFxuICBidXR0b25zTGVmdCA9IFtdLFxuICBidXR0b25zUmlnaHQgPSBbXSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbn06IENvbmZpcm1hdGlvbk1vZGFsUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8TW9kYWwgY29udGFpbmVyUmVmPXtjb250YWluZXJSZWZ9IGlzT3Blbj17aXNPcGVufSBvbkNsb3NlPXtvbkNsb3NlfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgICAgPGgxIGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsSGVhZGVyfT57aGVhZGVyfTwvaDE+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICAgIHN0eWxlcy5tb2RhbENvbnRlbnQsXG4gICAgICAgICAgICB7IFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nIH0sXG4gICAgICAgICAgXSl9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc0NvbnRhaW5lcn0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zTGVmdH08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNSaWdodH08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L01vZGFsPlxuICApO1xufVxuXG5Db25maXJtYXRpb25Nb2RhbC5kaXNwbGF5TmFtZSA9IFwiQ29uZmlybWF0aW9uTW9kYWxcIjtcblxuZXhwb3J0IGRlZmF1bHQgQ29uZmlybWF0aW9uTW9kYWw7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VIb3RrZXlzIH0gZnJvbSBcInJlYWN0LWhvdGtleXMtaG9va1wiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01vZGFsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNb2RhbFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBpc09wZW46IGJvb2xlYW47XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBidXR0b24/OiBSZWFjdE5vZGU7XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgbm9TaGFkb3c/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gTW9kYWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBpc09wZW4sXG4gIGJ1dHRvbixcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgb25DbG9zZSA9ICgpID0+IHt9LFxufTogTW9kYWxQcm9wcykge1xuICB1c2VIb3RrZXlzKFwiRXNjYXBlXCIsIG9uQ2xvc2UpO1xuXG4gIGNvbnN0IGhhbmRsZU92ZXJsYXlDbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsb3NlKCk7XG4gIH0sIFtvbkNsb3NlXSk7XG5cbiAgcmV0dXJuIChcbiAgICBpc09wZW4gJiYgKFxuICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9kYWwtb3ZlcmxheVwiXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlT3ZlcmxheUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgIHN0eWxlcy5tb2RhbCwgXG4gICAgICAgICAge1xuICAgICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LCBcbiAgICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvd1xuICAgICAgICAgIH1cbiAgICAgICAgXSl9IGRhdGEtdGVzdGlkPVwibW9kYWxcIj5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7YnV0dG9uICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b259PntidXR0b259PC9kaXY+fVxuICAgICAgPC9kaXY+XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RhbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiXzIwWktHWTRUd1p4cDBLWjZFN3k0V0JcIixcIm1vZGFsXCI6XCJfMjVMQk4zMV9tSTFJMXVIRERQNE8wSVwiLFwidHJhbnNwYXJlbnRcIjpcIl8zWjJLbDFyRUhaUU1MVXNYRjFmN2xvXCIsXCJub1NoYWRvd1wiOlwiXzNDZlNULXRuLXRzdmNvZFN4ZWxpUXFcIixcIm1vZGFsQnV0dG9uXCI6XCJfMWVPMHgzTTBwTjgtNzlJdVl1VF9DbFwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiS2dDNXB3dHNIYXZ1Vk9MdWJBTGFlXCIsXCJtb2RhbEhlYWRlclwiOlwiXzFiVE5YTVI1bVpGWHMxbzB1eGtoUlBcIixcIm1vZGFsQ29udGVudFwiOlwicXVQNW80UTlubFVvMWZUN3NiUFZBXCIsXCJub1BhZGRpbmdcIjpcIl8xVWdvX0RIU1Q0UmJXekl4SFBoajduXCIsXCJtb2RhbEJ1dHRvbnNDb250YWluZXJcIjpcIl8yYkdMN1hqRHk2c0UzSmxlVTk4aGp5XCIsXCJtb2RhbEJ1dHRvbnNcIjpcIl8zWGZmRmVOOVZFSXB5dGhtVkoyVThDXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgRmxvYXRpbmdQYW5lbCB9IGZyb20gXCIuL0Zsb2F0aW5nUGFuZWxcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIFBsYWNlbWVudCA9IHtcbiAgaG9yaXpvbnRhbDpcbiAgICB8IFwicmlnaHRcIlxuICAgIHwgXCJyaWdodEVkZ2VcIlxuICAgIHwgXCJyaWdodE9uRWRnZVwiXG4gICAgfCBcImxlZnRcIlxuICAgIHwgXCJsZWZ0RWRnZVwiXG4gICAgfCBcImxlZnRPbkVkZ2VcIlxuICAgIHwgXCJsZWZ0T25FZGdlXCJcbiAgICB8IFwiY2VudGVyXCI7XG4gIHZlcnRpY2FsOlxuICAgIHwgXCJ0b3BcIlxuICAgIHwgXCJ0b3BFZGdlXCJcbiAgICB8IFwidG9wT25FZGdlXCJcbiAgICB8IFwiYm90dG9tXCJcbiAgICB8IFwiYm90dG9tRWRnZVwiXG4gICAgfCBcImJvdHRvbU9uRWRnZVwiXG4gICAgfCBcImNlbnRlclwiO1xuICBwYXJlbnQ6IFwidmlld3BvcnRcIiB8IFwiY29udGFpbmVyXCI7XG59O1xuXG50eXBlIEZsb2F0aW5nUGFuZWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbGF5b3V0PzogXCJjb2x1bW5cIiB8IFwicm93XCI7XG4gIHBsYWNlbWVudD86IFBsYWNlbWVudDtcbn07XG5cbmZ1bmN0aW9uIEZsb2F0aW5nUGFuZWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBsYXlvdXQgPSBcImNvbHVtblwiLFxuICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwiY2VudGVyXCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiLCBwYXJlbnQ6IFwidmlld3BvcnRcIiB9LFxufTogRmxvYXRpbmdQYW5lbFByb3BzKSB7XG4gIGNvbnN0IGhvcml6b250YWxQbGFjZW1lbnQgPVxuICAgIHBsYWNlbWVudC5ob3Jpem9udGFsID09PSBcImNlbnRlclwiXG4gICAgICA/IFwiaG9yaXpvbnRhbENlbnRlclwiXG4gICAgICA6IHBsYWNlbWVudC5ob3Jpem9udGFsO1xuXG4gIGNvbnN0IHZlcnRpY2FsUGxhY2VtZW50ID1cbiAgICBwbGFjZW1lbnQudmVydGljYWwgPT09IFwiY2VudGVyXCIgPyBcInZlcnRpY2FsQ2VudGVyXCIgOiBwbGFjZW1lbnQudmVydGljYWw7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiZmxvYXRpbmctcGFuZWxcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tob3Jpem9udGFsUGxhY2VtZW50XSxcbiAgICAgICAgc3R5bGVzW3ZlcnRpY2FsUGxhY2VtZW50XSxcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmZpeGVkXTogcGxhY2VtZW50LnBhcmVudCAhPT0gXCJjb250YWluZXJcIixcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmxvYXRpbmdQYW5lbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMnIwRmtZSjdTSzFZakIzSEtITUFpaFwiLFwicm93XCI6XCJfM1ItRkY4ZU11MENTNGVOWDNsVGRDUlwiLFwiY29sdW1uXCI6XCJfMW9LT2VBZ1pqd3hOTTN1R2ZMdDZJT1wiLFwiZml4ZWRcIjpcIl8zb1FHV2dTSU5ieXRiNHV2OTJDU3ZUXCIsXCJwbGFpblwiOlwiaU1mOG9kLWJJcXNIQXZ4b2ZEdXpiXCIsXCJ0cmFuc3BhcmVudFwiOlwiZDJveXg1cHlzcWo4OThhUzhHM0U4XCIsXCJ0b3BcIjpcIl8xMWNQWXExZGhReXpWSU1aZWsxX0lvXCIsXCJ0b3BFZGdlXCI6XCJfMl9pbmVDeTFNUWxZUDZxTWV3ZDF6NVwiLFwidG9wT25FZGdlXCI6XCJfMXJ2Q3NEb2Q1YmxUT3lBbDRrRHdOMFwiLFwicmlnaHRcIjpcIl8xU0lZQmNSZ3FTNFZQaFc5TTgwWTR6XCIsXCJyaWdodEVkZ2VcIjpcIlFBNjlmMEQ4YlRDSkhyRE9yOG0xclwiLFwicmlnaHRPbkVkZ2VcIjpcIl8yUGlUVWwwSll6RUNuTzA4NTFnejNhXCIsXCJib3R0b21cIjpcIl8zMDVnQm1Ud0FlWFpmQV9NOXRzVk5vXCIsXCJib3R0b21FZGdlXCI6XCJfMVBjRFhiTFoyWEhQa2VpX0hfcjU4cFwiLFwiYm90dG9tT25FZGdlXCI6XCJfMnZvdDRxcHI1OFduYjZwdkhZbmprY1wiLFwibGVmdFwiOlwic0l0Z0JWNFd0RHg0dlozYS1QNGl4XCIsXCJsZWZ0RWRnZVwiOlwiXzFOSjFGeklfYWJLaS1XNmtjMnIyYzZcIixcImxlZnRPbkVkZ2VcIjpcIl8xMkV2d2JhVlFOV1BaZTM3U284TF9tXCIsXCJob3Jpem9udGFsQ2VudGVyXCI6XCJfMmppU3hFYkNUS1Z6RHRlR1ExdW9FZlwiLFwidmVydGljYWxDZW50ZXJcIjpcIl8yZjlENDZCQi1nZXpQdnc4VFp4SnZwXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbi5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgSWNvblByb3BzID0ge1xuICBhbHQ/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MSW1hZ2VFbGVtZW50PjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICBzcmM6IHN0cmluZztcbiAgc2l6ZT86IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCIgfCBcInhsYXJnZVwiO1xufTtcbmZ1bmN0aW9uIEljb24oe1xuICBzcmMsXG4gIGFsdCxcbiAgY29udGFpbmVyUmVmLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbn06IEljb25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxpbWdcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5pY29uLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHsgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkIH0sXG4gICAgICBdKX1cbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvblwiXG4gICAgICBhbHQ9e2FsdH1cbiAgICAgIHNyYz17c3JjfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImljb25cIjpcIl8zM2NUTThpOHFhakZHeS0wMHR5MFJ3XCIsXCJzbWFsbFwiOlwiTVVpM2lremNQWmRvNTlBZm9YZE9GXCIsXCJtZWRpdW1cIjpcIl8yVkNLcXk1OU5TRmRmRGlFMG94YXN6XCIsXCJsYXJnZVwiOlwiXzJVVVVmMm5fYTBQWXBROGtvd0tIenBcIixcInhsYXJnZVwiOlwib0RJRVk4VTRUd0NKa2pGN3hhUUJPXCIsXCJpbnZlcnRlZFwiOlwiXzJxelV0VTFUZF9jNTh2TThBTHFTVldcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbi5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIEljb25CdXR0b25Qcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBzcmM6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG4gIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBzaXplPzogU2l6ZTtcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xuICBvZmZzZXRTaWRlcz86IEFycmF5PFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI+O1xufTtcblxuZnVuY3Rpb24gSWNvbkJ1dHRvbih7XG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBzcmMsXG4gIGFsdCxcbiAgYmFkZ2VDb250ZW50ID0gbnVsbCxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgb25DbGljayA9ICgpID0+IHt9LFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICB0eXBlID0gXCJidXR0b25cIixcbn06IEljb25CdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxuICAgICAge2JhZGdlQ29udGVudCAmJiA8QnV0dG9uQmFkZ2U+e2JhZGdlQ29udGVudH08L0J1dHRvbkJhZGdlPn1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJSZ3lsbFhUcXAzX2paNkEyTmJ2ZzZcIixcInNtYWxsXCI6XCJfMXcwaFpsT2JlTDdFRzg3enNMLTl2TlwiLFwibWVkaXVtXCI6XCJFSzFidkpaalcxMTlEbzc5U3RMN0lcIixcImxhcmdlXCI6XCJQZ3lRWEsxeXlDTXE4QlNhWUNiY2hcIixcInhsYXJnZVwiOlwicWhrSHpJb0lvd25yZXhIelFTdXVVXCIsXCJyb3VuZGVkXCI6XCJfM3FxYTFrMEM5Sk1Qc0JSU3o2WjB5WVwiLFwidG9wT2Zmc2V0XCI6XCJfM1ZaUDdEb2hoWjd6OGZpNHotSDhqTlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yWFhoSjMtY1ljWGJJVk5tbW5POHlIXCIsXCJib3R0b21PZmZzZXRcIjpcIlpKSVg3VnE1bXVzamQ2czRoQ1NiUFwiLFwibGVmdE9mZnNldFwiOlwiXzFRVldpeWl2VzlVeGVvTnUzVWRudjZcIixcImludmVydGVkXCI6XCJfMmpaelhobkhxcWJ0dW00ZEJkbDFsS1wiLFwibm9TaGFkb3dcIjpcIl8zZnh2V2lPTkZGWXRNdURjWHA4c3l1XCIsXCJub0JvcmRlclwiOlwiXzNFdXh1cG5xT1Z1U29Vc2JLek5uXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzM1YlJJaThCdEQ0UktTSnZaYmpfc21cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uTGluayB9IGZyb20gXCIuL0ljb25CdXR0b25MaW5rXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBCdXR0b25CYWRnZSB9IGZyb20gXCIuLi9CdXR0b25CYWRnZVwiO1xuXG50eXBlIE9mZnNldFNpZGUgPSBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiO1xuXG50eXBlIEljb25CdXR0b25MaW5rUHJvcHMgPVxuICB8IHtcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XG4gICAgICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEVsZW1lbnQ+O1xuICAgICAgc3JjOiBzdHJpbmc7XG4gICAgICBhbHQ6IHN0cmluZztcbiAgICAgIGJhZGdlQ29udGVudD86IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIGludmVydGVkPzogYm9vbGVhbjtcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICAgICAgbm9TaGFkb3c/OiBib29sZWFuO1xuICAgICAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICAgICAgc2l6ZT86IFNpemU7XG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xuICAgIH1cbiAgfCBhbnk7XG5cbmZ1bmN0aW9uIEljb25CdXR0b25MaW5rKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY29udGFpbmVyUmVmLFxuICBjbGFzc05hbWUsXG4gIHNyYyxcbiAgYWx0LFxuICBiYWRnZUNvbnRlbnQgPSBudWxsLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICAuLi5wcm9wc1xufTogSWNvbkJ1dHRvbkxpbmtQcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29tcG9uZW50XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvbi1idXR0b24tbGlua1wiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy50b3BPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwidG9wXCIpLFxuICAgICAgICAgIFtzdHlsZXMucmlnaHRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwicmlnaHRcIiksXG4gICAgICAgICAgW3N0eWxlcy5ib3R0b21PZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwiYm90dG9tXCIpLFxuICAgICAgICAgIFtzdHlsZXMubGVmdE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJsZWZ0XCIpLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cbiAgICAgIHtiYWRnZUNvbnRlbnQgJiYgPEJ1dHRvbkJhZGdlPntiYWRnZUNvbnRlbnR9PC9CdXR0b25CYWRnZT59XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b25MaW5rO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zd2p4akN6dl9scGhkV203M0pnQXlwXCIsXCJzbWFsbFwiOlwiXzMyTVltWmJIelVVMGIzZE1jbUpzaU1cIixcIm1lZGl1bVwiOlwiXzE4OXJZSjJUdmFCeXJDM1M3Q2Yzbm1cIixcImxhcmdlXCI6XCJfMmFZU1NUVWc4d3ZyQURPUzE4OHhNXCIsXCJ4bGFyZ2VcIjpcInZzM0tZdlU3WmNuaHcyU095U0NOZlwiLFwicm91bmRlZFwiOlwiXzE4aWg2N0xMMG43WGw2MWdMRzhzMGtcIixcInRvcE9mZnNldFwiOlwiXzFwN2g3VzZRc0RIcGJhNm1neVdVTDlcIixcInJpZ2h0T2Zmc2V0XCI6XCJfM2Z4TUlCX0p6NUNZSWZ3dVpoUTI4aVwiLFwiYm90dG9tT2Zmc2V0XCI6XCJfMTEzbTRDV2ltTHZzalU5eEl4UHE3aVwiLFwibGVmdE9mZnNldFwiOlwiXzZDaG92Mk1veVV4eWhXeEtuMzY4S1wiLFwiaW52ZXJ0ZWRcIjpcIl8zZXFPSlF6NHVlLWVYTHZxMjdBc1k1XCIsXCJub1NoYWRvd1wiOlwibEY2RF9WMjB4MzJ2OVp5c3F3QzY4XCIsXCJub0JvcmRlclwiOlwiXzNzNnFDb2xManBqbDRScm83bVZUeFNcIixcInRyYW5zcGFyZW50XCI6XCJfMklaTzlwSzEzMVU5MWN5S1hpeGd4RFwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlLCBJbWFnZVByb3BzIH0gZnJvbSBcIi4vSW1hZ2VcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ltYWdlLm1vZHVsZS5jc3NcIjtcblxuZXhwb3J0IGNvbnN0IGVtcHR5SW1hZ2UgPVxuICBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPVwiOyAvLyAxeDFwbmdcblxuZXhwb3J0IHR5cGUgSW1hZ2VQcm9wcyA9IHtcbiAgYW5pbWF0aW9uPzogXCJmYWRlSW5cIiB8IFwic2NhbGVVcFwiO1xuICBhbHQ/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBsYXlvdXQ/OiBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xuICBzcmM6IHN0cmluZztcbiAgc3JjV2lkdGg/OiBudW1iZXI7XG4gIHNyY0hlaWdodD86IG51bWJlcjtcbn07XG5cbmZ1bmN0aW9uIEltYWdlQ29tcG9uZW50KHtcbiAgc3JjLFxuICBhbHQsXG4gIHNyY1dpZHRoLFxuICBzcmNIZWlnaHQsXG4gIGNoaWxkcmVuLFxuICBhbmltYXRpb24sXG4gIGNvbnRhaW5lclJlZixcbiAgbGF5b3V0ID0gXCJjb250YWluXCIsXG59OiBJbWFnZVByb3BzKSB7XG4gIGNvbnN0IFtpc0xvYWRlZCwgc2V0SXNMb2FkZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpbWFnZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgIGltYWdlLmNyb3NzT3JpZ2luID0gXCJhbm9ueW1vdXNcIjtcbiAgICBpbWFnZS5zcmMgPSBzcmM7XG4gICAgaW1hZ2Uub25sb2FkID0gKCkgPT4ge1xuICAgICAgaW1hZ2VSZWYuY3VycmVudD8uc2V0QXR0cmlidXRlKFwic3JjXCIsIHNyYyk7XG4gICAgICBzZXRJc0xvYWRlZCh0cnVlKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGltYWdlLnNyYyA9IFwiXCI7XG4gICAgICBkZWxldGUgaW1hZ2Uub25sb2FkO1xuICAgICAgZGVsZXRlIGltYWdlLnNyYztcbiAgICAgIGRlbGV0ZSBpbWFnZS5jcm9zc09yaWdpbjtcbiAgICAgIGltYWdlID0gbnVsbDtcbiAgICB9O1xuICB9LCBbc3JjXSk7XG5cbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgIHN0eWxlcy5pbWFnZSxcbiAgICAgICAgICBzdHlsZXNbbGF5b3V0XSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbc3R5bGVzLmZhZGVJbl06IGFuaW1hdGlvbiA9PT0gXCJmYWRlSW5cIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICAgIFtzdHlsZXMuc2NhbGVVcF06IGFuaW1hdGlvbiA9PT0gXCJzY2FsZVVwXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSl9XG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJpbWFnZVwiXG4gICAgICAgIGFsdD17YWx0fVxuICAgICAgICBzcmM9e2VtcHR5SW1hZ2V9XG4gICAgICAgIHdpZHRoPXtzcmNXaWR0aH1cbiAgICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XG4gICAgICAvPlxuICAgICAge2NoaWxkcmVuICYmIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX0+e2NoaWxkcmVufTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKSA6IChcbiAgICA8aW1nXG4gICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5pbWFnZSxcbiAgICAgICAgc3R5bGVzW2xheW91dF0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmZhZGVJbl06IGFuaW1hdGlvbiA9PT0gXCJmYWRlSW5cIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICBbc3R5bGVzLnNjYWxlVXBdOiBhbmltYXRpb24gPT09IFwic2NhbGVVcFwiICYmIGlzTG9hZGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImltYWdlXCJcbiAgICAgIGFsdD17YWx0fVxuICAgICAgc3JjPXtlbXB0eUltYWdlfVxuICAgICAgd2lkdGg9e3NyY1dpZHRofVxuICAgICAgaGVpZ2h0PXtzcmNIZWlnaHR9XG4gICAgLz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW1hZ2VDb21wb25lbnQ7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFWMDBHcHpfa2VxVVdHRWZaNzR3alNcIixcImhhc092ZXJsYXlcIjpcIl8yTXRVZllwdzVWOFVwcnhxX0VfeVNhXCIsXCJvdmVybGF5XCI6XCJ6MURWSHhqMVpQSzczT0lRUmNrN2pcIixcImltYWdlXCI6XCJfMzlPalRHV2Q3eG14Y2w2bnVJLWcyTFwiLFwiY292ZXJcIjpcIl8zcUtkcDJtSzZmN0c1ekF6WGx6Z3JFXCIsXCJjb250YWluXCI6XCJfMm9fRzRYYkItUW96YmZ1azRfVjAwaFwiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzJ4Z3VEa0d1MW1SMnlQYVktaHpOOG9cIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMTlXTWEzdHFSeHZVaERLRlo4WTJQQlwiLFwiZmFkZUluXCI6XCJfMzZPUzJHY3Nqd0VnSFAwby04QXgxbVwiLFwiZmFkZUluQW5pbWF0aW9uXCI6XCItZXltTjZoV3pKblJ4OFhoazFEV09cIixcInNjYWxlVXBcIjpcIl8xVVVSQUJabk1sTGYwS1BVVUQyUk56XCIsXCJzY2FsZVVwQW5pbWF0aW9uXCI6XCJfM2tvdHdWOWp2cEhTUG1qdE9VbGc3TVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3IH0gZnJvbSBcIi4vTGlzdFZpZXdcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3TGlua0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0xpbmtJdGVtXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlldy5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTGlzdFZpZXdQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIGhlYWRlckFjdGlvbnM/OiBSZWFjdE5vZGU7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlldyh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgaGVhZGVyLFxuICBoZWFkZXJBY3Rpb25zLFxufTogTGlzdFZpZXdQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9IGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHsoaGVhZGVyIHx8IGhlYWRlckFjdGlvbnMpICYmIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJ9PlxuICAgICAgICAgIHtoZWFkZXIgJiYgPGgzIGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlckxhYmVsfT57aGVhZGVyfTwvaDM+fVxuICAgICAgICAgIHtoZWFkZXJBY3Rpb25zfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICA8dWwgY2xhc3NOYW1lPXtzdHlsZXMubGlzdH0+e2NoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RWaWV3O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIkRjV29FYmlvbDlweC1GUUFfVHBPa1wiLFwiaGVhZGVyXCI6XCJfMmphdkI4c0FEeDZkRGdxWE4zTUNMUFwiLFwiaGVhZGVyTGFiZWxcIjpcIl8zaU1PZkl5TkwxU0VtdjJKOFpERG1XXCIsXCJsaXN0XCI6XCJfM19LbXRiTVBwUEhnSkZNOVpCX3huQVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCIuLi9CdXR0b25cIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBMaXN0Vmlld0l0ZW1Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIHNpemU/OiBTaXplO1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xuICBjaGlsZHJlbixcbiAgYWN0aXZlID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBCdXR0b25MaW5rIH0gZnJvbSBcIi4uL0J1dHRvbkxpbmtcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBMaXN0Vmlld0xpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgYWN0aXZlOiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc6IGJvb2xlYW47XG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgICAgc2l6ZTogU2l6ZTtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0xpbmtJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFzOiBDb21wb25lbnQsXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IExpc3RWaWV3TGlua0l0ZW1Qcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25MaW5rXG4gICAgICAgIGFzPXtDb21wb25lbnR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQnV0dG9uTGluaz5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51LCBNZW51UGxhY2VtZW50IH0gZnJvbSBcIi4vTWVudVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51Q29udGFpbmVyIH0gZnJvbSBcIi4vTWVudUNvbnRhaW5lclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVMaW5rSXRlbSB9IGZyb20gXCIuL01lbnVMaW5rSXRlbVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnUubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgdHlwZSBNZW51UGxhY2VtZW50ID0ge1xuICBob3Jpem9udGFsOiBcInJpZ2h0XCIgfCBcImxlZnRcIjtcbiAgdmVydGljYWw6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBNZW51UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBwbGFjZW1lbnQ/OiBNZW51UGxhY2VtZW50O1xufTtcblxuZnVuY3Rpb24gTWVudSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgaXNPcGVuID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcbiAgaGVhZGVyLFxufTogTWVudVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm1lbnUsXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQuaG9yaXpvbnRhbF0sXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQudmVydGljYWxdLFxuICAgICAgICB7IFtzdHlsZXMub3Blbl06IGlzT3BlbiB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7aGVhZGVyICYmIGlzT3BlbiAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMubWVudUhlYWRlcn0+e2hlYWRlcn08L2gzPn1cbiAgICAgIDx1bD57aXNPcGVuICYmIGNoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVcIjpcIl8xTDUtcHZfUDZNMm9HZW9SZU1uTzJKXCIsXCJ0b3BcIjpcIl8zMWxkWUdVNFUweHBLdVVfLS1XY2phXCIsXCJyaWdodFwiOlwiT2JIeE1pdmwzNWkxS2dJN1RnZ2M5XCIsXCJsZWZ0XCI6XCJfMkd6YzBYZkwtaDVOeUhLVkR2NXIta1wiLFwiYm90dG9tXCI6XCJfM0VEbWlTZlBSWk1sSGxTSDkzNDdsR1wiLFwib3BlblwiOlwiXzFKN3BGa3ZralFRUldrbWctMFhUV1pcIixcImVudHJhbmNlXCI6XCJfM2NxZXNRR2Y5Q3l1NjZEc29LdEYwcVwiLFwibWVudUhlYWRlclwiOlwiXzJveHNQT3NwQUhQQ2VLVFBIZWdlSFVcIn07IiwiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUNvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHJlZj86ICgpID0+IHZvaWQgfCB7IGN1cnJlbnQ6IGFueSB9O1xufVxuXG5mdW5jdGlvbiBNZW51Q29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZX06IE1lbnVDb250YWluZXJQcm9wcywgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLm1lbnVDb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZihNZW51Q29udGFpbmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUNvbnRhaW5lclwiOlwiXzFfMnNGRlZ6TlhtSlhfUFRwSFpnRUxcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBNZW51SXRlbSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBpc0FjdGl2ZSA9IGZhbHNlLFxufTogTWVudUl0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51SXRlbSxcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXG4gICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51SXRlbTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUl0ZW1cIjpcIl8yS3NSQ0VnRV9NN3dvWGpocFJ1VnVvXCIsXCJub1BhZGRpbmdcIjpcIl8yY3FNSkhKeUNqQVU4WlBaQVYwWUQ1XCIsXCJhY3RpdmVcIjpcIl8xWG5YWmlBcmh2VWV5WGdxVWFHLVA3XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUxpbmtJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51TGlua0l0ZW1Qcm9wcyA9XG4gIHwge1xuICAgICAgYXM6IEVsZW1lbnRUeXBlO1xuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBNZW51TGlua0l0ZW0oe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgLi4ucHJvcHNcbn06IE1lbnVMaW5rSXRlbVByb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51TGlua0l0ZW0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51TGlua0l0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVMaW5rSXRlbVwiOlwiXzN6NXQ5Q0FoY0F3Vk90T1ZsQV80R3dcIixcIm5vUGFkZGluZ1wiOlwiYk5YaWt5RVpJSU9NMUhnc0FpM2Z0XCIsXCJhY3RpdmVcIjpcIl8xWi1tUHZld0dVZzQ4NFFQYzlIeHEyXCIsXCJtZW51SXRlbVwiOlwiXzN0SVdBaE1EdFB6QUg0YkFyd3BST3ZcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBPdmVybGF5IH0gZnJvbSBcIi4vT3ZlcmxheVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL092ZXJsYXkubW9kdWxlLmNzc1wiO1xuXG50eXBlIE92ZXJsYXlQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBPdmVybGF5KHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgaXNGaXhlZCA9IGZhbHNlLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBPdmVybGF5UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGRhdGEtdGVzdGlkPVwib3ZlcmxheVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm92ZXJsYXksXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IGlzRml4ZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBPdmVybGF5O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJJMGRtLUxkbS1TaVMwdjVYLXZvMGdcIixcInRyYW5zcGFyZW50XCI6XCJfM3FkRGRseW5ITG5vZk4xREt2dllROFwiLFwiZml4ZWRcIjpcIl8xZ1h5OVhTM0YtSnRxZGpaQmNvS1N3XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dElucHV0IH0gZnJvbSBcIi4vVGV4dElucHV0XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgTGFiZWwgfSBmcm9tIFwiLi4vTGFiZWxcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVGV4dElucHV0Lm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUsIFRleHRJbnB1dFR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBUZXh0SW5wdXRQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIG9uS2V5RG93bj86IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVGV4dElucHV0VHlwZTtcbiAgc2l6ZT86IFNpemU7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xufTtcblxuZnVuY3Rpb24gVGV4dElucHV0KHtcbiAgbGFiZWwsXG4gIG9uQ2hhbmdlLFxuICBvbkJsdXIsXG4gIG9uS2V5RG93bixcbiAgcGxhY2Vob2xkZXIsXG4gIHZhbHVlLFxuICBuYW1lLFxuICBpbnB1dFJlZixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxuICB0eXBlID0gXCJ0ZXh0XCIsXG59OiBUZXh0SW5wdXRQcm9wcykge1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG5cbiAgY29uc3QgaW5wdXRFbGVtZW50ID0gKFxuICAgIDxpbnB1dFxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbnB1dFwiXG4gICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRleHRJbnB1dCwgc3R5bGVzW3NpemVdXSl9XG4gICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgLz5cbiAgKTtcbiAgaWYgKGxhYmVsKSB7XG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDw+e2lucHV0RWxlbWVudH08Lz47XG4gIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIixcInhsYXJnZVwiOlwiXzNzdDhFR291bk9nak51THBvRXJDMHNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0Q29udGFpbmVyIH0gZnJvbSBcIi4vVG9hc3RDb250YWluZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBUb2FzdFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIFRvYXN0KHsgY2hpbGRyZW4sIGNvbnRhaW5lclJlZiwgb25DbGljayA9ICgpID0+IHt9IH06IFRvYXN0UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0fVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3RcIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3Q7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0XCI6XCJfMk4zWGlIOFJWbkVBWWx6QkRfSkNxWlwiLFwiZW50cmFuY2VcIjpcIl8xOWN3M3p4NmZVNFJNR01hR001ekpaXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgVG9hc3RDb250YWluZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59XG5mdW5jdGlvbiBUb2FzdENvbnRhaW5lcih7IGNoaWxkcmVuIH06IFRvYXN0Q29udGFpbmVyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RDb250YWluZXJdKX1cbiAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3QtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0Q29udGFpbmVyO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJ0b2FzdENvbnRhaW5lclwiOlwiXzNSVDJhYmZ6SzBydC1ZamNycVhMbnJcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBWaWRlbywgVmlkZW9Qcm9wcyB9IGZyb20gXCIuL1ZpZGVvXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9WaWRlby5tb2R1bGUuY3NzXCI7XG5cbi8qKlxuICogVGhlcmUgaXMgYSBrbm93biBpc3N1ZSBpbiBSZWFjdCBpbiByZWdhcmRzIHRvIHRoZSAnbXV0ZWQnIHByb3BlcnR5IHdoaWNoIGNhdXNlcyB0aGUgd2FybmluZzpcbiAqIFwiV2FybmluZzogdW5zdGFibGVfZmx1c2hEaXNjcmV0ZVVwZGF0ZXM6IENhbm5vdCBmbHVzaCB1cGRhdGVzIHdoZW4gUmVhY3QgaXMgYWxyZWFkeSByZW5kZXJpbmcuXCJcbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEwMzg5XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzY1NDRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS90ZXN0aW5nLWxpYnJhcnkvcmVhY3QtdGVzdGluZy1saWJyYXJ5L2lzc3Vlcy80NzBcbiAqL1xuXG50eXBlIExheW91dCA9IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XG5cbmV4cG9ydCB0eXBlIFZpZGVvUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGxheW91dD86IExheW91dDtcbiAgYXV0b1BsYXk/OiBib29sZWFuO1xuICBsb29wPzogYm9vbGVhbjtcbiAgbXV0ZWQ/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmZ1bmN0aW9uIFZpZGVvKHtcbiAgc3JjLFxuICB0eXBlLFxuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBtdXRlZCA9IHRydWUsXG4gIGxvb3AgPSB0cnVlLFxuICBhdXRvUGxheSA9IHRydWUsXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxufTogVmlkZW9Qcm9wcykge1xuICByZXR1cm4gY2hpbGRyZW4gPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxuICAgID5cbiAgICAgIDx2aWRlb1xuICAgICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XG4gICAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxuICAgICAgICBwbGF5c0lubGluZT17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxuICAgICAgPC92aWRlbz5cbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XG4gICAgPC9kaXY+XG4gICkgOiAoXG4gICAgPHZpZGVvXG4gICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cbiAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgIGxvb3A9e2xvb3B9XG4gICAgICBhdXRvUGxheT17YXV0b1BsYXl9XG4gICAgICBwbGF5c0lubGluZT17dHJ1ZX1cbiAgICA+XG4gICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XG4gICAgPC92aWRlbz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlkZW87XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFkNTV3WHVRS3B0OTdQcVFIWXg1bVdcIixcImhhc092ZXJsYXlcIjpcIl8yREFNMXg3UDF3dVlOUDhURG1YR1hjXCIsXCJ2aWRlb1wiOlwiXzNqUV9xcFVMdHIwdUZTVFdiRDBOVlpcIixcImNvdmVyXCI6XCJfMXFuVkxoZUd6REk2Tm85X253YjdobFwiLFwiY29udGFpblwiOlwiXzFYMjg2TklTSTB3cTJLSzNkalZodTNcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIk9lZ2wtOGdkMks1bHozbVVHSl9VelwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xLUh6cFRZX1d0R2NaYzI1d0NvdGVZXCIsXCJvdmVybGF5XCI6XCJfMlR2WHNxQUlVbkdTcW02a25KRmhMM1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRvZ2dsZSB9IGZyb20gXCIuL3VzZVRvZ2dsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi91c2VPdXRzaWRlQ2xpY2tcIjtcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUb2dnbGUoXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlXG4pOiBbYm9vbGVhbiwgKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4gdm9pZF0ge1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGluaXRpYWxWYWx1ZSk7XG5cbiAgY29uc3QgdG9nZ2xlID0gKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZhbHVlKChwcmV2VmFsdWUpID0+IHtcbiAgICAgICAgcmV0dXJuICFwcmV2VmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIFt2YWx1ZSwgdXNlQ2FsbGJhY2sodG9nZ2xlLCBbdmFsdWVdKV07XG59XG5cbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbnR5cGUgQ2FsbGJhY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VPdXRzaWRlQ2xpY2soY2FsbGJhY2s6IENhbGxiYWNrKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCFyZWYuY3VycmVudCB8fCByZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgaGFuZGxlQ2xpY2spO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBoYW5kbGVDbGljayk7XG4gICAgfTtcbiAgfSwgW2NhbGxiYWNrXSk7XG5cbiAgcmV0dXJuIHJlZjtcbn1cbiIsIi8qIVxuICogaG90a2V5cy1qcyB2My44LjFcbiAqIEEgc2ltcGxlIG1pY3JvLWxpYnJhcnkgZm9yIGRlZmluaW5nIGFuZCBkaXNwYXRjaGluZyBrZXlib2FyZCBzaG9ydGN1dHMuIEl0IGhhcyBubyBkZXBlbmRlbmNpZXMuXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyMCBrZW5ueSB3b25nIDx3b3dvaG9vQHFxLmNvbT5cbiAqIGh0dHA6Ly9qYXl3Y2psb3ZlLmdpdGh1Yi5pby9ob3RrZXlzXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG52YXIgaXNmZiA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+IDAgOiBmYWxzZTsgLy8g57uR5a6a5LqL5Lu2XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KG9iamVjdCwgZXZlbnQsIG1ldGhvZCkge1xuICBpZiAob2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbWV0aG9kLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAob2JqZWN0LmF0dGFjaEV2ZW50KSB7XG4gICAgb2JqZWN0LmF0dGFjaEV2ZW50KFwib25cIi5jb25jYXQoZXZlbnQpLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtZXRob2Qod2luZG93LmV2ZW50KTtcbiAgICB9KTtcbiAgfVxufSAvLyDkv67ppbDplK7ovazmjaLmiJDlr7nlupTnmoTplK7noIFcblxuXG5mdW5jdGlvbiBnZXRNb2RzKG1vZGlmaWVyLCBrZXkpIHtcbiAgdmFyIG1vZHMgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kcy5sZW5ndGg7IGkrKykge1xuICAgIG1vZHNbaV0gPSBtb2RpZmllclttb2RzW2ldLnRvTG93ZXJDYXNlKCldO1xuICB9XG5cbiAgcmV0dXJuIG1vZHM7XG59IC8vIOWkhOeQhuS8oOeahGtleeWtl+espuS4sui9rOaNouaIkOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGdldEtleXMoa2V5KSB7XG4gIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykga2V5ID0gJyc7XG4gIGtleSA9IGtleS5yZXBsYWNlKC9cXHMvZywgJycpOyAvLyDljLnphY3ku7vkvZXnqbrnmb3lrZfnrKYs5YyF5ous56m65qC844CB5Yi26KGo56ym44CB5o2i6aG156ym562J562JXG5cbiAgdmFyIGtleXMgPSBrZXkuc3BsaXQoJywnKTsgLy8g5ZCM5pe26K6+572u5aSa5Liq5b+r5o236ZSu77yM5LulJywn5YiG5YmyXG5cbiAgdmFyIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7IC8vIOW/q+aNt+mUruWPr+iDveWMheWQqycsJ++8jOmcgOeJueauiuWkhOeQhlxuXG4gIGZvciAoOyBpbmRleCA+PSAwOykge1xuICAgIGtleXNbaW5kZXggLSAxXSArPSAnLCc7XG4gICAga2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn0gLy8g5q+U6L6D5L+u6aWw6ZSu55qE5pWw57uEXG5cblxuZnVuY3Rpb24gY29tcGFyZUFycmF5KGExLCBhMikge1xuICB2YXIgYXJyMSA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMSA6IGEyO1xuICB2YXIgYXJyMiA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMiA6IGExO1xuICB2YXIgaXNJbmRleCA9IHRydWU7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIxLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycjIuaW5kZXhPZihhcnIxW2ldKSA9PT0gLTEpIGlzSW5kZXggPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0luZGV4O1xufVxuXG52YXIgX2tleU1hcCA9IHtcbiAgYmFja3NwYWNlOiA4LFxuICB0YWI6IDksXG4gIGNsZWFyOiAxMixcbiAgZW50ZXI6IDEzLFxuICByZXR1cm46IDEzLFxuICBlc2M6IDI3LFxuICBlc2NhcGU6IDI3LFxuICBzcGFjZTogMzIsXG4gIGxlZnQ6IDM3LFxuICB1cDogMzgsXG4gIHJpZ2h0OiAzOSxcbiAgZG93bjogNDAsXG4gIGRlbDogNDYsXG4gIGRlbGV0ZTogNDYsXG4gIGluczogNDUsXG4gIGluc2VydDogNDUsXG4gIGhvbWU6IDM2LFxuICBlbmQ6IDM1LFxuICBwYWdldXA6IDMzLFxuICBwYWdlZG93bjogMzQsXG4gIGNhcHNsb2NrOiAyMCxcbiAgJ+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+mUrlxuXG5cbiAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhaXNFbGVtZW50QmluZChlbGVtZW50KSAmJiB3aW5kb3cpIHtcbiAgICBlbGVtZW50SGFzQmluZEV2ZW50LnB1c2goZWxlbWVudCk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnQod2luZG93LCAnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfZG93bktleXMgPSBbXTtcbiAgICB9KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgICBjbGVhck1vZGlmaWVyKGUpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBfYXBpID0ge1xuICBzZXRTY29wZTogc2V0U2NvcGUsXG4gIGdldFNjb3BlOiBnZXRTY29wZSxcbiAgZGVsZXRlU2NvcGU6IGRlbGV0ZVNjb3BlLFxuICBnZXRQcmVzc2VkS2V5Q29kZXM6IGdldFByZXNzZWRLZXlDb2RlcyxcbiAgaXNQcmVzc2VkOiBpc1ByZXNzZWQsXG4gIGZpbHRlcjogZmlsdGVyLFxuICB1bmJpbmQ6IHVuYmluZFxufTtcblxuZm9yICh2YXIgYSBpbiBfYXBpKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2FwaSwgYSkpIHtcbiAgICBob3RrZXlzW2FdID0gX2FwaVthXTtcbiAgfVxufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIF9ob3RrZXlzID0gd2luZG93LmhvdGtleXM7XG5cbiAgaG90a2V5cy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKGRlZXApIHtcbiAgICBpZiAoZGVlcCAmJiB3aW5kb3cuaG90a2V5cyA9PT0gaG90a2V5cykge1xuICAgICAgd2luZG93LmhvdGtleXMgPSBfaG90a2V5cztcbiAgICB9XG5cbiAgICByZXR1cm4gaG90a2V5cztcbiAgfTtcblxuICB3aW5kb3cuaG90a2V5cyA9IGhvdGtleXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhvdGtleXM7XG4iLCJpbXBvcnQgaG90a2V5cyBmcm9tICdob3RrZXlzLWpzJztcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlSXNIb3RrZXlQcmVzc2VkKCkge1xuICByZXR1cm4gaG90a2V5cy5pc1ByZXNzZWQ7XG59XG5cbmZ1bmN0aW9uIHVzZUhvdGtleXMoa2V5cywgY2FsbGJhY2ssIG9wdGlvbnMsIGRlcHMpIHtcbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGRlcHMgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX3JlZiA9IG9wdGlvbnMgfHwge30sXG4gICAgICBlbmFibGVPblRhZ3MgPSBfcmVmLmVuYWJsZU9uVGFncyxcbiAgICAgIGZpbHRlciA9IF9yZWYuZmlsdGVyLFxuICAgICAga2V5dXAgPSBfcmVmLmtleXVwLFxuICAgICAga2V5ZG93biA9IF9yZWYua2V5ZG93bjtcblxuICB2YXIgcmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgbWVtb2lzZWRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpIHtcbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxiYWNrKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sIGRlcHMgPyBbcmVmXS5jb25jYXQoZGVwcykgOiBbcmVmXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmFibGVPblRhZ3MpIHtcbiAgICAgIGhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSBfcmVmMi50YXJnZXQsXG4gICAgICAgICAgICBzcmNFbGVtZW50ID0gX3JlZjIuc3JjRWxlbWVudDtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB2YXIgdGFyZ2V0VGFnTmFtZSA9IHRhcmdldCAmJiB0YXJnZXQudGFnTmFtZSB8fCBzcmNFbGVtZW50ICYmIHNyY0VsZW1lbnQudGFnTmFtZTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGFyZ2V0VGFnTmFtZSAmJiBlbmFibGVPblRhZ3MgJiYgZW5hYmxlT25UYWdzLmluY2x1ZGVzKHRhcmdldFRhZ05hbWUpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcikgaG90a2V5cy5maWx0ZXIgPSBmaWx0ZXI7XG5cbiAgICBpZiAoa2V5dXAgJiYga2V5ZG93biAhPT0gdHJ1ZSkge1xuICAgICAgb3B0aW9ucy5rZXlkb3duID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaG90a2V5cyhrZXlzLCBvcHRpb25zIHx8IHt9LCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGhvdGtleXMudW5iaW5kKGtleXMsIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIH07XG4gIH0sIFttZW1vaXNlZENhbGxiYWNrLCBvcHRpb25zLCBlbmFibGVPblRhZ3MsIGZpbHRlciwga2V5c10pO1xuICByZXR1cm4gcmVmO1xufVxuXG5leHBvcnQgeyB1c2VIb3RrZXlzLCB1c2VJc0hvdGtleVByZXNzZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWhvdGtleXMtaG9vay5lc20uanMubWFwXG4iXSwic291cmNlUm9vdCI6IiJ9
package/dist/styles.css CHANGED
@@ -448,7 +448,7 @@
448
448
  contain: layout;
449
449
  max-height: 100vh;
450
450
  max-width: 100vw;
451
- z-index: 3;
451
+ z-index: 1000;
452
452
  }
453
453
 
454
454
  ._2r0FkYJ7SK1YjB3HKHMAih._3R-FF8eMu0CS4eNX3lTdCR {
@@ -1249,4 +1249,4 @@
1249
1249
  }
1250
1250
 
1251
1251
 
1252
- /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25CYWRnZS9CdXR0b25CYWRnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4Q0FBOEM7O0VBRTlDLCtEQUErRDtFQUMvRCxpREFBaUQ7RUFDakQsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCw0Q0FBNEM7RUFDNUMsNEJBQTRCO0VBQzVCLHlCQUF5QjtFQUN6QiwwRUFBMEU7RUFDMUUsaUJBQWlCO0VBQ2pCLHVEQUF1RDs7RUFFdkQsK0RBQStEO0VBQy9ELGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsVUFBVTs7RUFFVixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FDdkJB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QixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7QUFDViIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ1dHRvbkJhZGdlIHtcbiAgLS1iYWRnZS1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCAyMnB4KTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJhZGdlLXNpemUpICogMC41KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1iYWRnZS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1iYWRnZS1zaXplKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LWZhbWlseSwgaGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xuXG4gIC8qIHBvc2l0aW9uaW5nIHRoZSBiYWRnZSBpdHNlbGYgcmVsYXRpdmUgdG8gaXRzIGJ1dHRvbiBwYXJlbnQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGModmFyKC0tYmFkZ2Utc2l6ZSkgKiAtMC41KTtcbiAgcmlnaHQ6IDVweDtcblxuICAvKiBjZW50ZXIgY2hpbGRyZW4gKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIuY29udGFpbmVyIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgIzBlMGUwZik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LWZhbWlseSwgaGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweCkpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjM1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xuICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXI6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250YWluZXIuc21hbGwge1xuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXNtYWxsLCAzMHB4KTtcblxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xufVxuXG4uY29udGFpbmVyLmxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuXG4uY29udGFpbmVyLmludmVydGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5zdHJldGNoLWhvcml6b250YWxseSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY29udGFpbmVyLnN0cmV0Y2gtdmVydGljYWxseSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNvbnRhaW5lci5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBjb2x1bW4tZ2FwOiAxZW07XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBtaW4tY29udGVudDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aGVtZS1idXR0b24tYm9yZGVyLWNvbG9yLCAjMGUwZTBmKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtYnV0dG9uLXNoYWRvdywgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtbWVkaXVtLCB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjM1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xuICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXI6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNvbnRhaW5lci5zbWFsbCB7XG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xuXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XG59XG5cbi5jb250YWluZXIubWVkaXVtIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweCkpO1xufVxuXG4uY29udGFpbmVyLmxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuXG4uY29udGFpbmVyLmludmVydGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci50cmFuc3BhcmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY29udGFpbmVyLnN0cmV0Y2gtaG9yaXpvbnRhbGx5IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb250YWluZXIuc3RyZXRjaC12ZXJ0aWNhbGx5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFpbmVyLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY29udGFpbmVyLm5vLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBjb2x1bW4tZ2FwOiAxZW07XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi5jb250YWluZXIge1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWlucHV0LWxhYmVsLWZvbnQtc2l6ZSwgMC43NXJlbSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1pbnB1dC1sYWJlbC1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMmVtO1xufVxuIiwiLmlucHV0IHtcbiAgY29udGFpbjogc3RyaWN0O1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcbn1cblxuLmlucHV0LnNtYWxsIHtcbiAgd2lkdGg6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xufVxuXG4uaW5wdXQubWVkaXVtIHtcbiAgd2lkdGg6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCk7XG59XG5cbi5pbnB1dC5sYXJnZSB7XG4gIHdpZHRoOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcbn1cblxuLmlucHV0LnhsYXJnZSB7XG4gIHdpZHRoOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXhsYXJnZSwgODBweCk7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuIiwiLmNvbG9yLXN3YXRjaCB7XG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQsIDQxcHgpO1xuICAtLWNvbG9yLXN3YXRjaC1zaGFkb3c6IHZhcihcbiAgICAtLXRoZW1lLWJ1dHRvbi1zaGFkb3csXG4gICAgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSlcbiAgKTtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tY29sb3Itc3dhdGNoLXNoYWRvdyk7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiB2YXIoLS1jb2xvci1zd2F0Y2gtc2l6ZSk7XG59XG5cbi5jb2xvci1zd2F0Y2g6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuXG4uY29sb3Itc3dhdGNoOm5vdCguc2VsZWN0ZWQpOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbn1cblxuLmNvbG9yLXN3YXRjaC5zZWxlY3RlZCB7XG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodCwgNDFweCkgKiAxLjUpO1xufVxuXG4vKlxuICogU2VlIGh0dHBzOi8vZ29tYWtldGhpbmdzLmNvbS9oaWRkZW4tY29udGVudC1mb3ItYmV0dGVyLWExMXkvI2hpZGluZy10aGUtbGlua1xuKi9cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItd2lkdGg6IDA7XG59XG4iLCIuY29sb3ItcGlja2VyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgY29udGFpbjogbGF5b3V0O1xuICBncmlkLWdhcDogdmFyKC0tdGhlbWUtYnV0dG9uLWdhcCwgMTBweCk7XG59XG5cbi5jb2xvci1waWNrZXIuaG9yaXpvbnRhbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG59XG5cbi5jb2xvci1waWNrZXIudmVydGljYWwge1xuICBncmlkLWF1dG8tZmxvdzogcm93O1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIub3ZlcmxheSB7XG4gIGJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk7XG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmUpIG9yIChiYWNrZHJvcC1maWx0ZXI6IG5vbmUpIHtcbiAgLm92ZXJsYXkge1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgfVxufVxuXG4vKiBzbGlnaHRseSB0cmFuc3BhcmVudCBmYWxsYmFjayBmb3IgRmlyZWZveCAobm90IHN1cHBvcnRpbmcgYmFja2Ryb3AtZmlsdGVyKSAqL1xuQHN1cHBvcnRzIG5vdCAoKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lKSBvciAoYmFja2Ryb3AtZmlsdGVyOiBub25lKSkge1xuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKFxuICAgICAgLS10aGVtZS1tb2RhbC1vdmVybGF5LWNvbG9yLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXG4gICAgKTtcbiAgfVxufVxuXG4ubW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tb2RhbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbW9kYWwtc2hhZG93LCAwIDAgNTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ubW9kYWwudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1vZGFsLm5vLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tb2RhbC1idXR0b24ge1xuICBib3R0b206IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xuICBsZWZ0OiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMTtcbn1cbiIsIi5jb250YWluZXIge1xuICBtaW4td2lkdGg6IDMzdnc7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAxZW0gdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKSAxLjVlbVxuICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhlYWRlci1mb250LXNpemUsIDJyZW0pO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDA7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbiAgcm93LWdhcDogMWVtO1xuICBwYWRkaW5nOiAycmVtIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XG59XG5cbi5tb2RhbC1jb250ZW50Lm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubW9kYWwtYnV0dG9ucy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiBjYWxjKFxuICAgICAgdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKSAqIDEuMjVcbiAgICApXG4gICAgdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubW9kYWwtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGNvbHVtbi1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDdweCk7XG59XG4iLCIuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICB6LWluZGV4OiAzO1xufVxuXG4uY29udGFpbmVyLnJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5jb250YWluZXIuY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNvbnRhaW5lci5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLmNvbnRhaW5lci5wbGFpbiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNvbnRhaW5lci50b3Age1xuICB0b3A6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xufVxuXG4uY29udGFpbmVyLnRvcC1lZGdlIHtcbiAgdG9wOiAwO1xufVxuXG4uY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5jb250YWluZXIucmlnaHQge1xuICByaWdodDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XG59XG5cbi5jb250YWluZXIucmlnaHQtZWRnZSB7XG4gIHJpZ2h0OiAwO1xufVxuXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2Uge1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG59XG5cbi5jb250YWluZXIuYm90dG9tIHtcbiAgYm90dG9tOiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcbn1cblxuLmNvbnRhaW5lci5ib3R0b20tZWRnZSB7XG4gIGJvdHRvbTogMDtcbn1cblxuLmNvbnRhaW5lci5ib3R0b20tb24tZWRnZSB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIGxlZnQ6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xufVxuXG4uY29udGFpbmVyLmxlZnQtZWRnZSB7XG4gIGxlZnQ6IDA7XG59XG5cbi5jb250YWluZXIubGVmdC1vbi1lZGdlIHtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4uY29udGFpbmVyLmhvcml6b250YWwtY2VudGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5jb250YWluZXIudmVydGljYWwtY2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci52ZXJ0aWNhbC1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xufVxuXG4uY29udGFpbmVyLnZlcnRpY2FsLWNlbnRlci5jb250YWluZXIubGVmdC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5jb250YWluZXIudmVydGljYWwtY2VudGVyLmNvbnRhaW5lci5yaWdodC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5sZWZ0LW9uLWVkZ2UuY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5jb250YWluZXIucmlnaHQtb24tZWRnZS5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xufVxuXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xufVxuXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2UuY29udGFpbmVyLmJvdHRvbS1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpO1xufVxuIiwiLmljb24ge1xuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuMnMgLXdlYmtpdC1maWx0ZXIgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogMC4ycyAtbW96LWZpbHRlciBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiAwLjJzIGZpbHRlciBlYXNlLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IDAuMnMgLW1zLWZpbHRlciBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogMC4ycyAtby1maWx0ZXIgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IDAuMnMgZmlsdGVyIGVhc2Utb3V0LCAwLjJzIC13ZWJraXQtZmlsdGVyIGVhc2Utb3V0O1xufVxuXG4uaWNvbi5zbWFsbCB7XG4gIC0tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtc21hbGwsIDEycHgpO1xufVxuXG4uaWNvbi5tZWRpdW0ge1xuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XG59XG5cbi5pY29uLmxhcmdlIHtcbiAgLS1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5pY29uLnhsYXJnZSB7XG4gIC0tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQteGxhcmdlLCAzNXB4KTtcbn1cblxuLmljb24uaW52ZXJ0ZWQge1xuICBmaWx0ZXI6IGludmVydCgxKTtcbn1cbiIsIi5jb250YWluZXIge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcblxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xufVxuXG4uY29udGFpbmVyLnNtYWxsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcbn1cblxuLmNvbnRhaW5lci5tZWRpdW0ge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcbn1cblxuLmNvbnRhaW5lci5sYXJnZSB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XG59XG5cbi5jb250YWluZXIucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS4yNSk7XG59XG5cbi5jb250YWluZXIucm91bmRlZC50b3Atb2Zmc2V0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY29udGFpbmVyOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXIuaW52ZXJ0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbiIsIi5jb250YWluZXIge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcblxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xufVxuXG4uY29udGFpbmVyLnNtYWxsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcbn1cblxuLmNvbnRhaW5lci5tZWRpdW0ge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcbn1cblxuLmNvbnRhaW5lci5sYXJnZSB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XG59XG5cbi5jb250YWluZXIucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS4yNSk7XG59XG5cbi5jb250YWluZXIucm91bmRlZC50b3Atb2Zmc2V0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY29udGFpbmVyOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXIuaW52ZXJ0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbiIsIkBrZXlmcmFtZXMgZmFkZUluQW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzY2FsZVVwQW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29udGFpbjogc3RyaWN0O1xufVxuXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcbiAgY29udGFpbjogY29udGVudDtcbn1cblxuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb250YWluOiBjb250ZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1hZ2UuY292ZXIge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW1hZ2UuY29udGFpbiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmltYWdlLnN0cmV0Y2hIb3Jpem9udGFsbHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uaW1hZ2Uuc3RyZXRjaFZlcnRpY2FsbHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uZmFkZS1pbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5BbmltYXRpb247XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG4uc2NhbGUtdXAge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNjVzO1xuICBhbmltYXRpb24tbmFtZTogc2NhbGVVcEFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbnRhaW46IGNvbnRlbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWxpc3Qtdmlldy1ib3JkZXItY29sb3IsICNkZGQpO1xuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1saXN0LXZpZXctaGVhZGVyLXBhZGRpbmcsIDEuMjVyZW0gMS41cmVtIDEuNzVyZW0gMS41cmVtKTtcbn1cblxuLmhlYWRlckxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY29udGFpbjogY29udGVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMWVtIDAgMDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5saXN0IHtcbiAgY29udGFpbjogY29udGVudDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLmxpc3Qtdmlldy1pdGVtIHtcbiAgY29udGFpbjogY29udGVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLXNlcGFyYXRvci1jb2xvciwgI2RkZCk7XG59XG5cbi5saXN0LXZpZXctaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5tZW51IHtcbiAgY29udGFpbjogY29udGVudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbWVudS1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtbWF4LWhlaWdodCwgNTB2aCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLm1lbnUgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5tZW51LnRvcC5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcbiAgYm90dG9tOiAxMDAlO1xuICByaWdodDogMDtcbn1cblxuLm1lbnUudG9wLmxlZnQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1tZW51LW1hcmdpbiwgMXJlbSk7XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLm1lbnUuYm90dG9tLnJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xufVxuXG4ubWVudS5ib3R0b20ubGVmdCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuXG4ubWVudS5vcGVuIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcbiAgYW5pbWF0aW9uOiBlbnRyYW5jZSAwLjVzIGVhc2UtaW4tb3V0IGJvdGg7XG59XG5cbi5tZW51LWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWxpc3Qtdmlldy1ib3JkZXItY29sb3IsICNkZGQpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWhlYWRlci1wYWRkaW5nLCAxLjI1cmVtIDEuNXJlbSAxLjc1cmVtIDEuNXJlbSk7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZW50cmFuY2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuIiwiLm1lbnUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIubWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbnRhaW46IGxheW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtZmFtaWx5LCBzYW5zLXNlcmlmKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LXdlaWdodCwgNTAwKTtcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXBhZGRpbmcsIDAgMS41cmVtKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbnUtaXRlbS5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1lbnUtaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcbn1cblxuLm1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5tZW51LWxpbmstaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1tZW51LWJvcmRlci1jb2xvciwgI2RkZCk7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC13ZWlnaHQsIDUwMCk7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXBhZGRpbmcsIDAgMS41cmVtKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbnUtbGluay1pdGVtLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVudS1saW5rLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1lbnUtbGluay1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcbn1cblxuLm1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5vdmVybGF5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGFpbjogc3RyaWN0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKFxuICAgIC0tdGhlbWUtb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yLFxuICAgIHJnYmEoMjQwLCAyNDAsIDI0MCwgMC43NSlcbiAgKTtcbn1cblxuLm92ZXJsYXkudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm92ZXJsYXkuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4iLCIudGV4dC1pbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICNiMGIwYjApO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb250YWluOiBzdHJpY3Q7XG4gIGZvbnQtc2l6ZTogdmFyKFxuICAgIC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbWVkaXVtLFxuICAgIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweClcbiAgKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLWlucHV0LWZvbnQtd2VpZ2h0LCA0MDApO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LW1lZGl1bSwgNDFweCk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1pbnB1dC5zbWFsbCB7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQtc21hbGwsIDMwcHgpO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLXNtYWxsLCAwLjc1cmVtKTtcbn1cblxuLnRleHQtaW5wdXQubWVkaXVtIHtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuICBmb250LXNpemU6IHZhcihcbiAgICAtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLW1lZGl1bSxcbiAgICB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpXG4gICk7XG59XG5cbi50ZXh0LWlucHV0LmxhcmdlIHtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1sYXJnZSwgNTRweCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbGFyZ2UsIDEuMjVyZW0pO1xufVxuXG4udGV4dC1pbnB1dC54bGFyZ2Uge1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LXhsYXJnZSwgODBweCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUteGxhcmdlLCAyLjVyZW0pO1xufVxuXG4udGV4dC1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1mb3JlZ3JvdW5kLWNvbG9yLCAjMjIyKTtcbn1cbiIsIi50b2FzdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBlbnRyYW5jZSAwLjVzIGVhc2UtaW4tb3V0IGJvdGg7XG4gIGFuaW1hdGlvbjogZW50cmFuY2UgMC41cyBlYXNlLWluLW91dCBib3RoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS10b2FzdC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtdG9hc3Qtc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtdG9hc3QtbWluLWhlaWdodCwgNTBweCk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBlbnRyYW5jZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGVudHJhbmNlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4iLCIudG9hc3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCAzMHB4KSAqIDEuNSk7XG4gIHotaW5kZXg6IDIwO1xufVxuXG4udG9hc3QtY29udGFpbmVyID4gKiB7XG4gIG1hcmdpbjogdmFyKC0tdGhlbWUtdG9hc3QtbWFyZ2luLCA1cHgpO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcbiAgY29udGFpbjogY29udGVudDtcbn1cblxuLnZpZGVvIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby5jb3ZlciB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8uY29udGFpbiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWRlby5zdHJldGNoSG9yaXpvbnRhbGx5IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi52aWRlby5zdHJldGNoVmVydGljYWxseSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/
1252
+ /*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25CYWRnZS9CdXR0b25CYWRnZS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01vZGFsL01vZGFsLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ltYWdlL0ltYWdlLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSw4Q0FBOEM7O0VBRTlDLCtEQUErRDtFQUMvRCxpREFBaUQ7RUFDakQsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCw0Q0FBNEM7RUFDNUMsNEJBQTRCO0VBQzVCLHlCQUF5QjtFQUN6QiwwRUFBMEU7RUFDMUUsaUJBQWlCO0VBQ2pCLHVEQUF1RDs7RUFFdkQsK0RBQStEO0VBQy9ELGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsVUFBVTs7RUFFVixvQkFBb0I7RUFDcEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FDdkJB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QixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLE1BQU07RUFDTixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7QUFDViIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmJ1dHRvbkJhZGdlIHtcbiAgLS1iYWRnZS1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCAyMnB4KTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJhZGdlLXNpemUpICogMC41KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1iYWRnZS1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1iYWRnZS1zaXplKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LWZhbWlseSwgaGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xuXG4gIC8qIHBvc2l0aW9uaW5nIHRoZSBiYWRnZSBpdHNlbGYgcmVsYXRpdmUgdG8gaXRzIGJ1dHRvbiBwYXJlbnQgKi9cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGModmFyKC0tYmFkZ2Utc2l6ZSkgKiAtMC41KTtcbiAgcmlnaHQ6IDVweDtcblxuICAvKiBjZW50ZXIgY2hpbGRyZW4gKi9cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIuY29udGFpbmVyIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGhlbWUtYnV0dG9uLWJvcmRlci1jb2xvciwgIzBlMGUwZik7XG4gIGJveC1zaGFkb3c6IHZhcigtLXRoZW1lLWJ1dHRvbi1zaGFkb3csIDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LWZhbWlseSwgaGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweCkpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjM1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xuICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXI6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jb250YWluZXIuc21hbGwge1xuICAtLWJ1dHRvbi1zaXplOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXNtYWxsLCAzMHB4KTtcblxuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtc21hbGwsIDAuNzVyZW0pO1xufVxuXG4uY29udGFpbmVyLmxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuXG4uY29udGFpbmVyLmludmVydGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5zdHJldGNoLWhvcml6b250YWxseSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY29udGFpbmVyLnN0cmV0Y2gtdmVydGljYWxseSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNvbnRhaW5lci5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBjb2x1bW4tZ2FwOiAxZW07XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiBtaW4tY29udGVudDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10aGVtZS1idXR0b24tYm9yZGVyLWNvbG9yLCAjMGUwZTBmKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtYnV0dG9uLXNoYWRvdywgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1idXR0b24tZm9udC1mYW1pbHksIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWYpO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1mb250LXNpemUtbWVkaXVtLCB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogdmFyKC0tYnV0dG9uLXNpemUpO1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjM1ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xuICB0ZXh0LWFsaWduOiAtd2Via2l0LWNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXI6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLmNvbnRhaW5lcjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmNvbnRhaW5lci5zbWFsbCB7XG4gIC0tYnV0dG9uLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xuXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1zbWFsbCwgMC43NXJlbSk7XG59XG5cbi5jb250YWluZXIubWVkaXVtIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuXG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWZvbnQtc2l6ZS1tZWRpdW0sIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweCkpO1xufVxuXG4uY29udGFpbmVyLmxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1sYXJnZSwgNTRweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1idXR0b24tc2l6ZTogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuXG4uY29udGFpbmVyLmludmVydGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtYnV0dG9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQge1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIpO1xuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tYnV0dG9uLXNpemUpICogMC42KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmxlZnQtb2Zmc2V0IHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1yb3VuZGVkLW9mZnNldCwgLTRweCk7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci50cmFuc3BhcmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uY29udGFpbmVyLnN0cmV0Y2gtaG9yaXpvbnRhbGx5IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jb250YWluZXIuc3RyZXRjaC12ZXJ0aWNhbGx5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFpbmVyLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY29udGFpbmVyLm5vLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLmNvbnRlbnQge1xuICBkaXNwbGF5OiBncmlkO1xuICBjb2x1bW4tZ2FwOiAxZW07XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIGhlaWdodDogMTAwJTtcbn1cbiIsIi5jb250YWluZXIge1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLWlucHV0LWxhYmVsLWZvbnQtc2l6ZSwgMC43NXJlbSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS10aGVtZS1pbnB1dC1sYWJlbC1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMmVtO1xufVxuIiwiLmlucHV0IHtcbiAgY29udGFpbjogc3RyaWN0O1xuICBvdXRsaW5lOiBub25lO1xuICB3aWR0aDogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcbn1cblxuLmlucHV0LnNtYWxsIHtcbiAgd2lkdGg6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtc21hbGwsIDMwcHgpO1xufVxuXG4uaW5wdXQubWVkaXVtIHtcbiAgd2lkdGg6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQtbWVkaXVtLCA0MXB4KTtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LW1lZGl1bSwgNDFweCk7XG59XG5cbi5pbnB1dC5sYXJnZSB7XG4gIHdpZHRoOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LWxhcmdlLCA1NHB4KTtcbn1cblxuLmlucHV0LnhsYXJnZSB7XG4gIHdpZHRoOiB2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LXhsYXJnZSwgODBweCk7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodC14bGFyZ2UsIDgwcHgpO1xufVxuIiwiLmNvbG9yLXN3YXRjaCB7XG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IHZhcigtLXRoZW1lLWJ1dHRvbi1oZWlnaHQsIDQxcHgpO1xuICAtLWNvbG9yLXN3YXRjaC1zaGFkb3c6IHZhcihcbiAgICAtLXRoZW1lLWJ1dHRvbi1zaGFkb3csXG4gICAgMCAwIDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMSlcbiAgKTtcblxuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tY29sb3Itc3dhdGNoLXNoYWRvdyk7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IHZhcigtLWNvbG9yLXN3YXRjaC1zaXplKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiB2YXIoLS1jb2xvci1zd2F0Y2gtc2l6ZSk7XG59XG5cbi5jb2xvci1zd2F0Y2g6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xufVxuXG4uY29sb3Itc3dhdGNoOm5vdCguc2VsZWN0ZWQpOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbn1cblxuLmNvbG9yLXN3YXRjaC5zZWxlY3RlZCB7XG4gIC0tY29sb3Itc3dhdGNoLXNpemU6IGNhbGModmFyKC0tdGhlbWUtYnV0dG9uLWhlaWdodCwgNDFweCkgKiAxLjUpO1xufVxuXG4vKlxuICogU2VlIGh0dHBzOi8vZ29tYWtldGhpbmdzLmNvbS9oaWRkZW4tY29udGVudC1mb3ItYmV0dGVyLWExMXkvI2hpZGluZy10aGUtbGlua1xuKi9cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItd2lkdGg6IDA7XG59XG4iLCIuY29sb3ItcGlja2VyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgY29udGFpbjogbGF5b3V0O1xuICBncmlkLWdhcDogdmFyKC0tdGhlbWUtYnV0dG9uLWdhcCwgMTBweCk7XG59XG5cbi5jb2xvci1waWNrZXIuaG9yaXpvbnRhbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG59XG5cbi5jb2xvci1waWNrZXIudmVydGljYWwge1xuICBncmlkLWF1dG8tZmxvdzogcm93O1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIub3ZlcmxheSB7XG4gIGJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk7XG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmUpIG9yIChiYWNrZHJvcC1maWx0ZXI6IG5vbmUpIHtcbiAgLm92ZXJsYXkge1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMnB4KTtcbiAgfVxufVxuXG4vKiBzbGlnaHRseSB0cmFuc3BhcmVudCBmYWxsYmFjayBmb3IgRmlyZWZveCAobm90IHN1cHBvcnRpbmcgYmFja2Ryb3AtZmlsdGVyKSAqL1xuQHN1cHBvcnRzIG5vdCAoKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBub25lKSBvciAoYmFja2Ryb3AtZmlsdGVyOiBub25lKSkge1xuICAub3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKFxuICAgICAgLS10aGVtZS1tb2RhbC1vdmVybGF5LWNvbG9yLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpXG4gICAgKTtcbiAgfVxufVxuXG4ubW9kYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tb2RhbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbW9kYWwtc2hhZG93LCAwIDAgNTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ubW9kYWwudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1vZGFsLm5vLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tb2RhbC1idXR0b24ge1xuICBib3R0b206IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xuICBsZWZ0OiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMTtcbn1cbiIsIi5jb250YWluZXIge1xuICBtaW4td2lkdGg6IDMzdnc7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAxZW0gdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKSAxLjVlbVxuICAgIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhlYWRlci1mb250LXNpemUsIDJyZW0pO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IDA7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbiAgcm93LWdhcDogMWVtO1xuICBwYWRkaW5nOiAycmVtIHZhcigtLXRoZW1lLWNvbmZpcm1hdGlvbi1tb2RhbC1ob3Jpem9udGFsLXBhZGRpbmcsIDEuNXJlbSk7XG59XG5cbi5tb2RhbC1jb250ZW50Lm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubW9kYWwtYnV0dG9ucy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiBjYWxjKFxuICAgICAgdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKSAqIDEuMjVcbiAgICApXG4gICAgdmFyKC0tdGhlbWUtY29uZmlybWF0aW9uLW1vZGFsLWhvcml6b250YWwtcGFkZGluZywgMS41cmVtKTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubW9kYWwtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGNvbHVtbi1nYXA6IHZhcigtLXRoZW1lLWJ1dHRvbi1nYXAsIDdweCk7XG59XG4iLCIuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY29udGFpbmVyLnJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi5jb250YWluZXIuY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNvbnRhaW5lci5maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLmNvbnRhaW5lci5wbGFpbiB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNvbnRhaW5lci50b3Age1xuICB0b3A6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xufVxuXG4uY29udGFpbmVyLnRvcC1lZGdlIHtcbiAgdG9wOiAwO1xufVxuXG4uY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5jb250YWluZXIucmlnaHQge1xuICByaWdodDogdmFyKC0tdGhlbWUtb3V0ZXItcGFkZGluZywgMjFweCk7XG59XG5cbi5jb250YWluZXIucmlnaHQtZWRnZSB7XG4gIHJpZ2h0OiAwO1xufVxuXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2Uge1xuICByaWdodDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG59XG5cbi5jb250YWluZXIuYm90dG9tIHtcbiAgYm90dG9tOiB2YXIoLS10aGVtZS1vdXRlci1wYWRkaW5nLCAyMXB4KTtcbn1cblxuLmNvbnRhaW5lci5ib3R0b20tZWRnZSB7XG4gIGJvdHRvbTogMDtcbn1cblxuLmNvbnRhaW5lci5ib3R0b20tb24tZWRnZSB7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG59XG5cbi5jb250YWluZXIubGVmdCB7XG4gIGxlZnQ6IHZhcigtLXRoZW1lLW91dGVyLXBhZGRpbmcsIDIxcHgpO1xufVxuXG4uY29udGFpbmVyLmxlZnQtZWRnZSB7XG4gIGxlZnQ6IDA7XG59XG5cbi5jb250YWluZXIubGVmdC1vbi1lZGdlIHtcbiAgbGVmdDogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4uY29udGFpbmVyLmhvcml6b250YWwtY2VudGVyIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi5jb250YWluZXIudmVydGljYWwtY2VudGVyIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci52ZXJ0aWNhbC1jZW50ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5ob3Jpem9udGFsLWNlbnRlci5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xufVxuXG4uY29udGFpbmVyLnZlcnRpY2FsLWNlbnRlci5jb250YWluZXIubGVmdC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5jb250YWluZXIudmVydGljYWwtY2VudGVyLmNvbnRhaW5lci5yaWdodC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtNTAlKTtcbn1cblxuLmNvbnRhaW5lci5sZWZ0LW9uLWVkZ2UuY29udGFpbmVyLnRvcC1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi5jb250YWluZXIucmlnaHQtb24tZWRnZS5jb250YWluZXIudG9wLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC01MCUpO1xufVxuXG4uY29udGFpbmVyLmxlZnQtb24tZWRnZS5jb250YWluZXIuYm90dG9tLW9uLWVkZ2Uge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xufVxuXG4uY29udGFpbmVyLnJpZ2h0LW9uLWVkZ2UuY29udGFpbmVyLmJvdHRvbS1vbi1lZGdlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpO1xufVxuIiwiLmljb24ge1xuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAtd2Via2l0LXRyYW5zaXRpb246IDAuMnMgLXdlYmtpdC1maWx0ZXIgZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogMC4ycyAtbW96LWZpbHRlciBlYXNlLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiAwLjJzIGZpbHRlciBlYXNlLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IDAuMnMgLW1zLWZpbHRlciBlYXNlLW91dDtcbiAgLW8tdHJhbnNpdGlvbjogMC4ycyAtby1maWx0ZXIgZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb246IDAuMnMgZmlsdGVyIGVhc2Utb3V0LCAwLjJzIC13ZWJraXQtZmlsdGVyIGVhc2Utb3V0O1xufVxuXG4uaWNvbi5zbWFsbCB7XG4gIC0tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtc21hbGwsIDEycHgpO1xufVxuXG4uaWNvbi5tZWRpdW0ge1xuICAtLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LW1lZGl1bSwgMTZweCk7XG59XG5cbi5pY29uLmxhcmdlIHtcbiAgLS1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5pY29uLnhsYXJnZSB7XG4gIC0tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQteGxhcmdlLCAzNXB4KTtcbn1cblxuLmljb24uaW52ZXJ0ZWQge1xuICBmaWx0ZXI6IGludmVydCgxKTtcbn1cbiIsIi5jb250YWluZXIge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcblxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xufVxuXG4uY29udGFpbmVyLnNtYWxsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcbn1cblxuLmNvbnRhaW5lci5tZWRpdW0ge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcbn1cblxuLmNvbnRhaW5lci5sYXJnZSB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XG59XG5cbi5jb250YWluZXIucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS4yNSk7XG59XG5cbi5jb250YWluZXIucm91bmRlZC50b3Atb2Zmc2V0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY29udGFpbmVyOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXIuaW52ZXJ0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbiIsIi5jb250YWluZXIge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcblxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICMwZTBlMGYpO1xuICBib3gtc2hhZG93OiB2YXIoLS10aGVtZS1idXR0b24tc2hhZG93LCAwIDAgMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0taWNvbi1zaXplKSAvIDEuNSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjFzIGVhc2Utb3V0O1xufVxuXG4uY29udGFpbmVyLnNtYWxsIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXNtYWxsLCAxMnB4KTtcbn1cblxuLmNvbnRhaW5lci5tZWRpdW0ge1xuICAtLWljb24tc2l6ZTogdmFyKC0tdGhlbWUtaWNvbi1oZWlnaHQtbWVkaXVtLCAxNnB4KTtcbn1cblxuLmNvbnRhaW5lci5sYXJnZSB7XG4gIC0taWNvbi1zaXplOiB2YXIoLS10aGVtZS1pY29uLWhlaWdodC1sYXJnZSwgMjNweCk7XG59XG5cbi5jb250YWluZXIueGxhcmdlIHtcbiAgLS1pY29uLXNpemU6IHZhcigtLXRoZW1lLWljb24taGVpZ2h0LXhsYXJnZSwgMzVweCk7XG59XG5cbi5jb250YWluZXIucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1pY29uLXNpemUpIC8gMS4yNSk7XG59XG5cbi5jb250YWluZXIucm91bmRlZC50b3Atb2Zmc2V0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLnJpZ2h0LW9mZnNldCB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lci5yb3VuZGVkLmJvdHRvbS1vZmZzZXQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1idXR0b24tcm91bmRlZC1vZmZzZXQsIC00cHgpO1xufVxuXG4uY29udGFpbmVyLnJvdW5kZWQubGVmdC1vZmZzZXQge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tdGhlbWUtYnV0dG9uLXJvdW5kZWQtb2Zmc2V0LCAtNHB4KTtcbn1cblxuLmNvbnRhaW5lcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5jb250YWluZXI6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY29udGFpbmVyOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jb250YWluZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24taG92ZXItYmFja2dyb3VuZC1jb2xvciwgI2RkZCk7XG59XG5cbi5jb250YWluZXIuaW52ZXJ0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1idXR0b24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG59XG5cbi5jb250YWluZXIubm8tc2hhZG93IHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNvbnRhaW5lci5uby1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jb250YWluZXIudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbiIsIkBrZXlmcmFtZXMgZmFkZUluQW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzY2FsZVVwQW5pbWF0aW9uIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjYpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29udGFpbjogc3RyaWN0O1xufVxuXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcbiAgY29udGFpbjogY29udGVudDtcbn1cblxuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb250YWluOiBjb250ZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1hZ2UuY292ZXIge1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG4uaW1hZ2UuY29udGFpbiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLmltYWdlLnN0cmV0Y2hIb3Jpem9udGFsbHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uaW1hZ2Uuc3RyZXRjaFZlcnRpY2FsbHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uZmFkZS1pbiB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5BbmltYXRpb247XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG4uc2NhbGUtdXAge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNjVzO1xuICBhbmltYXRpb24tbmFtZTogc2NhbGVVcEFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbnRhaW46IGNvbnRlbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWxpc3Qtdmlldy1ib3JkZXItY29sb3IsICNkZGQpO1xuICBwYWRkaW5nOiB2YXIoLS10aGVtZS1saXN0LXZpZXctaGVhZGVyLXBhZGRpbmcsIDEuMjVyZW0gMS41cmVtIDEuNzVyZW0gMS41cmVtKTtcbn1cblxuLmhlYWRlckxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY29udGFpbjogY29udGVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMWVtIDAgMDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5saXN0IHtcbiAgY29udGFpbjogY29udGVudDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLmxpc3Qtdmlldy1pdGVtIHtcbiAgY29udGFpbjogY29udGVudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLXNlcGFyYXRvci1jb2xvciwgI2RkZCk7XG59XG5cbi5saXN0LXZpZXctaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5tZW51IHtcbiAgY29udGFpbjogY29udGVudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtbWVudS1zaGFkb3csIDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG4gIG1heC1oZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtbWF4LWhlaWdodCwgNTB2aCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLm1lbnUgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5tZW51LnRvcC5yaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcbiAgYm90dG9tOiAxMDAlO1xuICByaWdodDogMDtcbn1cblxuLm1lbnUudG9wLmxlZnQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS10aGVtZS1tZW51LW1hcmdpbiwgMXJlbSk7XG4gIGJvdHRvbTogMTAwJTtcbiAgbGVmdDogMDtcbn1cblxuLm1lbnUuYm90dG9tLnJpZ2h0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tdGhlbWUtbWVudS1tYXJnaW4sIDFyZW0pO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xufVxuXG4ubWVudS5ib3R0b20ubGVmdCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXRoZW1lLW1lbnUtbWFyZ2luLCAxcmVtKTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xufVxuXG4ubWVudS5vcGVuIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IGVudHJhbmNlIDAuNXMgZWFzZS1pbi1vdXQgYm90aDtcbiAgYW5pbWF0aW9uOiBlbnRyYW5jZSAwLjVzIGVhc2UtaW4tb3V0IGJvdGg7XG59XG5cbi5tZW51LWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLWxpc3Qtdmlldy1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWxpc3Qtdmlldy1ib3JkZXItY29sb3IsICNkZGQpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbGlzdC12aWV3LWhlYWRlci1wYWRkaW5nLCAxLjI1cmVtIDEuNXJlbSAxLjc1cmVtIDEuNXJlbSk7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZW50cmFuY2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBlbnRyYW5jZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuIiwiLm1lbnUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIubWVudS1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLW1lbnUtYm9yZGVyLWNvbG9yLCAjZGRkKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtZm9yZWdyb3VuZC1jb2xvciwgIzBlMGUwZik7XG4gIGNvbnRhaW46IGxheW91dDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmb250LWZhbWlseTogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWZvbnQtZmFtaWx5LCBzYW5zLXNlcmlmKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LXdlaWdodCwgNTAwKTtcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXBhZGRpbmcsIDAgMS41cmVtKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbnUtaXRlbS5uby1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1lbnUtaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb2xvcjogdmFyKC0tdGhlbWUtbWVudS1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcbn1cblxuLm1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5tZW51LWxpbmstaXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1tZW51LWJvcmRlci1jb2xvciwgI2RkZCk7XG4gIGNvbG9yOiB2YXIoLS10aGVtZS1tZW51LWZvcmVncm91bmQtY29sb3IsICMwZTBlMGYpO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXRoZW1lLW1lbnUtaXRlbS1mb250LWZhbWlseSwgc2Fucy1zZXJpZik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS10aGVtZS1tZW51LWl0ZW0tZm9udC13ZWlnaHQsIDUwMCk7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLWhlaWdodCwgNDFweCk7XG4gIG1pbi13aWR0aDogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXdpZHRoLCA0MXB4KTtcbiAgcGFkZGluZzogdmFyKC0tdGhlbWUtbWVudS1pdGVtLXBhZGRpbmcsIDAgMS41cmVtKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbnUtbGluay1pdGVtLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWVudS1saW5rLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1mb3JlZ3JvdW5kLWNvbG9yLCAjMGUwZTBmKTtcbiAgY29sb3I6IHZhcigtLXRoZW1lLW1lbnUtYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1lbnUtbGluay1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGhlbWUtbWVudS1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZGRkKTtcbn1cblxuLm1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIi5vdmVybGF5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGFpbjogc3RyaWN0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKFxuICAgIC0tdGhlbWUtb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yLFxuICAgIHJnYmEoMjQwLCAyNDAsIDI0MCwgMC43NSlcbiAgKTtcbn1cblxuLm92ZXJsYXkudHJhbnNwYXJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm92ZXJsYXkuZml4ZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG59XG4iLCIudGV4dC1pbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXRoZW1lLWJ1dHRvbi1ib3JkZXItY29sb3IsICNiMGIwYjApO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb250YWluOiBzdHJpY3Q7XG4gIGZvbnQtc2l6ZTogdmFyKFxuICAgIC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbWVkaXVtLFxuICAgIHZhcigtLXRoZW1lLWZvbnQtc2l6ZSwgMTVweClcbiAgKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLXRoZW1lLWlucHV0LWZvbnQtd2VpZ2h0LCA0MDApO1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LW1lZGl1bSwgNDFweCk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udGV4dC1pbnB1dC5zbWFsbCB7XG4gIGhlaWdodDogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1oZWlnaHQtc21hbGwsIDMwcHgpO1xuICBmb250LXNpemU6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLXNtYWxsLCAwLjc1cmVtKTtcbn1cblxuLnRleHQtaW5wdXQubWVkaXVtIHtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1tZWRpdW0sIDQxcHgpO1xuICBmb250LXNpemU6IHZhcihcbiAgICAtLXRoZW1lLXRleHQtaW5wdXQtZm9udC1zaXplLW1lZGl1bSxcbiAgICB2YXIoLS10aGVtZS1mb250LXNpemUsIDE1cHgpXG4gICk7XG59XG5cbi50ZXh0LWlucHV0LmxhcmdlIHtcbiAgaGVpZ2h0OiB2YXIoLS10aGVtZS10ZXh0LWlucHV0LWhlaWdodC1sYXJnZSwgNTRweCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUtbGFyZ2UsIDEuMjVyZW0pO1xufVxuXG4udGV4dC1pbnB1dC54bGFyZ2Uge1xuICBoZWlnaHQ6IHZhcigtLXRoZW1lLXRleHQtaW5wdXQtaGVpZ2h0LXhsYXJnZSwgODBweCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tdGhlbWUtdGV4dC1pbnB1dC1mb250LXNpemUteGxhcmdlLCAyLjVyZW0pO1xufVxuXG4udGV4dC1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS10aGVtZS1mb3JlZ3JvdW5kLWNvbG9yLCAjMjIyKTtcbn1cbiIsIi50b2FzdCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBlbnRyYW5jZSAwLjVzIGVhc2UtaW4tb3V0IGJvdGg7XG4gIGFuaW1hdGlvbjogZW50cmFuY2UgMC41cyBlYXNlLWluLW91dCBib3RoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10aGVtZS10b2FzdC1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tdGhlbWUtdG9hc3Qtc2hhZG93LCAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWluLWhlaWdodDogdmFyKC0tdGhlbWUtdG9hc3QtbWluLWhlaWdodCwgNTBweCk7XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBlbnRyYW5jZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGVudHJhbmNlIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG4gIDUwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG4iLCIudG9hc3QtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJvdHRvbTogY2FsYyh2YXIoLS10aGVtZS1idXR0b24taGVpZ2h0LCAzMHB4KSAqIDEuNSk7XG4gIHotaW5kZXg6IDIwO1xufVxuXG4udG9hc3QtY29udGFpbmVyID4gKiB7XG4gIG1hcmdpbjogdmFyKC0tdGhlbWUtdG9hc3QtbWFyZ2luLCA1cHgpO1xufVxuIiwiLmNvbnRhaW5lciB7XG4gIGNvbnRhaW46IHN0cmljdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uY29udGFpbmVyLmhhcy1vdmVybGF5IHtcbiAgY29udGFpbjogY29udGVudDtcbn1cblxuLnZpZGVvIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby5jb3ZlciB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmlkZW8uY29udGFpbiB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWRlby5zdHJldGNoSG9yaXpvbnRhbGx5IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi52aWRlby5zdHJldGNoVmVydGljYWxseSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@touchtech/baselayer-ui",
3
- "version": "2.12.9",
3
+ "version": "2.12.11-alpha.0",
4
4
  "description": "React UI component library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",