aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorache <ache@ache.one>2018-04-30 08:21:09 +0200
committerache <ache@ache.one>2018-04-30 08:21:09 +0200
commit9af1a546a505c2fe151fb8ddbd9963d11e54e40e (patch)
tree9335b0441a249a83ef344d96a918ee2466f712d6
parentAdd new plugins (diff)
Update rollup editor
-rw-r--r--public/js/hmd.min.js2
1 files changed, 2 insertions, 0 deletions
diff --git a/public/js/hmd.min.js b/public/js/hmd.min.js
new file mode 100644
index 0000000..f00f411
--- /dev/null
+++ b/public/js/hmd.min.js
@@ -0,0 +1,2 @@
+var hmd=function(){"use strict";var e=function(){for(var e={},n=0;n<arguments.length;n++){var r=arguments[n];for(var a in r)t.call(r,a)&&(e[a]=r[a])}return e},t=Object.prototype.hasOwnProperty;var n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;var i=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var i,o,l=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in i=Object(arguments[s]))r.call(i,c)&&(l[c]=i[c]);if(n){o=n(i);for(var u=0;u<o.length;u++)a.call(i,o[u])&&(l[o[u]]=i[o[u]])}}return l},o=function(e,t,n){return null!=n||"object"==typeof t&&!Array.isArray(t)||(n=t,t={}),i({},t,{type:String(e)},null!=n&&(Array.isArray(n)?{children:n}:{value:String(n)}))},l=function e(t,n,r,a,i){var o=null!==a&&void 0!==a;var l=null!==r&&void 0!==r;var c=s(t);if(l&&("number"!=typeof r||r<0||r===1/0))throw new Error("Expected positive finite index or child node");if(o&&(!e(null,a)||!a.children))throw new Error("Expected parent node");if(!n||!n.type||"string"!=typeof n.type)return!1;if(o!==l)throw new Error("Expected both parent and index");return Boolean(c.call(i,n,r,a))};function s(e){if("string"==typeof e)return function(e){return function(t){return Boolean(t&&t.type===e)}}(e);if(null===e||void 0===e)return c;if("object"==typeof e)return("length"in e?function(e){var t=function(e){var t=[],n=e.length,r=-1;for(;++r<n;)t[r]=s(e[r]);return t}(e),n=t.length;return function(){var e=-1;for(;++e<n;)if(t[e].apply(this,arguments))return!0;return!1}}:function(e){return function(t){var n;for(n in e)if(t[n]!==e[n])return!1;return!0}})(e);if("function"==typeof e)return e;throw new Error("Expected function, string, or object as test")}function c(){return!0}var u=g,d=!0,p="skip",m=!1;function g(e,t,n,r){function a(e,i,o){var s;return i=i||(o?0:null),t&&e.type!==t&&!l(t,e,i,o||null)||(s=n(e,i,o||null)),s===m?s:e.children&&s!==p&&function(e,t){var n,i,o=r?-1:1,l=(r?e.length:-1)+o;for(;l>-1&&l<e.length;){if(n=e[l],(i=n&&a(n,l,t))===m)return i;l="number"==typeof i?i:l+o}return d}(e.children,e)===m?m:s}"function"==typeof t&&"function"!=typeof n&&(r=n,n=t,t=null),a(e)}g.CONTINUE=d,g.SKIP=p,g.EXIT=m;"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function h(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function f(e,t){return e(t={exports:{}},t.exports),t.exports}var _=f(function(e,t){var n=t;function r(e){return function(t){var n=t&&t.position&&t.position[e]||{};return{line:n.line||null,column:n.column||null,offset:isNaN(n.offset)?null:n.offset}}}n.start=r("start"),n.end=r("end")}),E=function(e){var t=T(T(e).position),n=T(t.start),r=T(t.end);return!(n.line&&n.column&&r.line&&r.column)};function T(e){return e&&"object"==typeof e?e:{}}var b=function(e,t){return function(e){return function(t){var n=t&&A(t);return n&&v.call(e,n)?e[n]:null}}(function(e,t){var n={};if(!e||!e.type)throw new Error("mdast-util-definitions expected node");return u(e,"definition",t&&t.commonmark?function(e){var t=A(e.identifier);v.call(n,t)||(n[t]=e)}:function(e){n[A(e.identifier)]=e}),n}(e,t))},v={}.hasOwnProperty;function A(e){return e.toUpperCase()}var S=f(function(e,t){(t=e.exports=function(e){return e.replace(/^\s*|\s*$/g,"")}).left=function(e){return e.replace(/^\s*/,"")},t.right=function(e){return e.replace(/\s*$/,"")}}),y=(S.left,S.right,function(e,t){var n,r,a=t.children||[],i=a.length,o=[],l=-1;for(;++l<i;)(n=N(e,a[l],t))&&(l&&"break"===a[l-1].type&&(n.value&&(n.value=S.left(n.value)),(r=n.children&&n.children[0])&&r.value&&(r.value=S.left(r.value))),o=o.concat(n));return o});var N=function(e,t,n){var r=t&&t.type,a=C.call(e.handlers,r)?e.handlers[r]:null;if(!r)throw new Error("Expected node, got `"+t+"`");return("function"==typeof a?a:function(e,t){if(function(e){var t=e.data||{};if(C.call(t,"hName")||C.call(t,"hProperties")||C.call(t,"hChildren"))return!1;return"value"in e}(t))return e.augment(t,o("text",t.value));return e(t,"div",y(e,t))})(e,t,n)},C={}.hasOwnProperty;var O=function(e,t){return e(t,"hr")};var M=function(e,t){var n=[],r=-1,a=e.length;t&&n.push(o("text","\n"));for(;++r<a;)r&&n.push(o("text","\n")),n.push(e[r]);t&&0!==e.length&&n.push(o("text","\n"));return n};var x=function(e,t){var n={},r=t.ordered?"ol":"ul";"number"==typeof t.start&&1!==t.start&&(n.start=t.start);return e(t,r,n,M(y(e,t),!0))};var w=function(e){var t,n=e.footnotes,r=n.length,a=-1,i=[];if(!r)return null;for(;++a<r;)t=n[a],i[a]={type:"listItem",data:{hProperties:{id:"fn-"+t.identifier}},children:t.children.concat({type:"link",url:"#fnref-"+t.identifier,data:{hProperties:{className:["footnote-backref"]}},children:[{type:"text",value:"↩"}]}),position:t.position};return e(null,"div",{className:["footnotes"]},M([O(e),x(e,{type:"list",ordered:!0,children:i})],!0))};var R=function(e,t){return e(t,"blockquote",M(y(e,t),!0))};var D=function(e,t){return[e(t,"br"),o("text","\n")]};var I,k="",L=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var n=e.length*t;if(I!==e||void 0===I)I=e,k="";else if(k.length>=n)return k.substr(0,n);for(;n>k.length&&t>1;)1&t&&(k+=e),t>>=1,e+=e;return k=(k+=e).substr(0,n)};var P=function(e,t){var n,r,a="string"==typeof e,i=a&&e.length,o=0,l=-1,s=-1,c=t||4,u=[];if(!a)throw new Error("detab expected string");for(;++l<i;)(n=e.charCodeAt(l))===B?(s+=r=c-(s+1)%c,u.push(e.slice(o,l)+L(" ",r)),o=l+1):n===F||n===U?s=-1:s++;return u.push(e.slice(o)),u.join("")},B=9,F=10,U=13;var H=function(e,t){var n=t.value?P(t.value+"\n"):"",r=t.lang&&t.lang.match(/^[^ \t]+(?=[ \t]|$)/),a={};r&&(a.className=["language-"+r]);return e(t.position,"pre",[e(t,"code",a,[o("text",n)])])};var G=function(e,t){return e(t,"del",y(e,t))};var q=function(e,t){return e(t,"em",y(e,t))};var z=function(e,t){var n=t.identifier;return e(t.position,"sup",{id:"fnref-"+n},[e(t,"a",{href:"#fn-"+n,className:["footnote-ref"]},[o("text",n)])])};var K=function(e,t){var n=[],r=1,a=e.footnotes,i=a.length,o=-1;for(;++o<i;)n[o]=a[o].identifier;for(;-1!==n.indexOf(String(r));)r++;return r=String(r),a.push({type:"footnoteDefinition",identifier:r,children:[{type:"paragraph",children:t.children}],position:t.position}),z(e,{type:"footnoteReference",identifier:r,position:t.position})};var j=function(e,t){return e(t,"h"+t.depth,y(e,t))};var V=function(e,t){return e.dangerous?e.augment(t,o("raw",t.value)):null};var $={};function W(e,t,n){var r,a,i,o,l,s="";for("string"!=typeof t&&(n=t,t=W.defaultChars),void 0===n&&(n=!0),l=function(e){var t,n,r=$[e];if(r)return r;for(r=$[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?r.push(n):r.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)r[e.charCodeAt(t)]=e[t];return r}(t),r=0,a=e.length;r<a;r++)if(i=e.charCodeAt(r),n&&37===i&&r+2<a&&/^[0-9a-f]{2}$/i.test(e.slice(r+1,r+3)))s+=e.slice(r,r+3),r+=2;else if(i<128)s+=l[i];else if(i>=55296&&i<=57343){if(i>=55296&&i<=56319&&r+1<a&&(o=e.charCodeAt(r+1))>=56320&&o<=57343){s+=encodeURIComponent(e[r]+e[r+1]),r++;continue}s+="%EF%BF%BD"}else s+=encodeURIComponent(e[r]);return s}W.defaultChars=";/?:@&=+$,-_.!~*'()#",W.componentChars="-_.!~*'()";var Y=W,Q=function(e,t,n){var r=t.referenceType;if("collapsed"!==r&&"full"!==r&&!n)return"imageReference"===t.type?o("text","!["+t.alt+"]"):[o("text","[")].concat(y(e,t),o("text","]"))};var X=function(e){return String(e).replace(/\s+/g," ")};var Z=function(e){return String(e).replace(J,ee)},J=/[ \t]*\n+[ \t]*/g,ee="\n";var te={blockquote:R,break:D,code:H,delete:G,emphasis:q,footnoteReference:z,footnote:K,heading:j,html:V,imageReference:function(e,t){var n=e.definition(t.identifier),r={src:Y(n&&n.url||""),alt:t.alt};n&&null!==n.title&&void 0!==n.title&&(r.title=n.title);return Q(e,t,n)||e(t,"img",r)},image:function(e,t){var n={src:Y(t.url),alt:t.alt};null!==t.title&&void 0!==t.title&&(n.title=t.title);return e(t,"img",n)},inlineCode:function(e,t){return e(t,"code",[o("text",X(t.value))])},linkReference:function(e,t){var n=e.definition(t.identifier),r={href:Y(n&&n.url||"")};n&&null!==n.title&&void 0!==n.title&&(r.title=n.title);return Q(e,t,n)||e(t,"a",r,y(e,t))},link:function(e,t){var n={href:Y(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);return e(t,"a",n,y(e,t))},listItem:function(e,t,n){var r,a,i=t.children,l=i[0],s={},c=!1;n&&n.loose||1!==i.length||"paragraph"!==l.type||(c=!0);r=y(e,c?l:t),"boolean"==typeof t.checked&&(c||l&&"paragraph"===l.type||r.unshift(e(null,"p",[])),0!==(a=c?r:r[0].children).length&&a.unshift(o("text"," ")),a.unshift(e(null,"input",{type:"checkbox",checked:t.checked,disabled:!0})),s.className=["task-list-item"]);c||0===r.length||(r=M(r,!0));return e(t,"li",s,r)},list:x,paragraph:function(e,t){return e(t,"p",y(e,t))},root:function(e,t){return e.augment(t,o("root",M(y(e,t))))},strong:function(e,t){return e(t,"strong",y(e,t))},table:function(e,t){var n,r,a,i,o,l=t.children,s=l.length,c=t.align,u=c.length,d=[];for(;s--;){for(r=l[s].children,i=0===s?"th":"td",n=u,a=[];n--;)o=r[n],a[n]=e(o,i,{align:c[n]},o?M(y(e,o)):[]);d[s]=e(l[s],"tr",M(a,!0))}return e(t,"table",M([e(d[0].position,"thead",M([d[0]],!0)),e({start:_.start(d[1]),end:_.end(d[d.length-1])},"tbody",M(d.slice(1),!0))],!0))},text:function(e,t){return e.augment(t,o("text",Z(t.value)))},thematicBreak:O,toml:ne,yaml:ne,definition:ne,footnoteDefinition:ne};function ne(){return null}var re=function(t,n){var r=function(t,n){var r=n||{},a=r.allowDangerousHTML;return o.dangerous=a,o.definition=b(t,r),o.footnotes=[],o.augment=i,o.handlers=e(te,r.handlers||{}),u(t,"footnoteDefinition",function(e){o.footnotes.push(e)}),o;function i(t,n){var r,a;return t&&"data"in t&&(r=t.data,"element"===n.type&&r.hName&&(n.tagName=r.hName),"element"===n.type&&r.hProperties&&(n.properties=e(n.properties,r.hProperties)),n.children&&r.hChildren&&(n.children=r.hChildren)),a=t&&t.position?t:{position:t},E(a)||(n.position={start:_.start(a),end:_.end(a)}),n}function o(e,t,n,r){return(void 0===r||null===r)&&"object"==typeof n&&"length"in n&&(r=n,n={}),i(e,{type:"element",tagName:t,properties:n||{},children:r||[]})}}(t,n),a=N(r,t),i=w(r);a&&a.children&&i&&(a.children=a.children.concat(o("text","\n"),i));return a},ae=function(e,t){e&&!e.process&&(t=e,e=null);return e?function(e,t){return function(n,r,a){e.run(re(n,t),r,function(e){a(e)})}}(e,t):function(e){return function(t){return re(t,e)}}(t)};var ie=function(e){return le.test("number"==typeof e?oe(e):e.charAt(0))},oe=String.fromCharCode,le=/\s/;var se="|",ce="||";function ue(e,t){return e.indexOf(ce,t)}var de=function(){function e(e,t,n){if(this.options.gfm&&t.charAt(0)===se&&t.charAt(1)===se&&!t.startsWith(se.repeat(4))&&!ie(t.charAt(2))){var r="",a="",i="",o="",l=1,s=t.length,c=e.now();for(c.column+=2,c.offset+=2;++l<s;){if(!((r=t.charAt(l))!==se||a!==se||i&&ie(i)))return!!n||e(ce+o+ce)({type:"kbd",children:this.tokenizeInline(o,c),data:{hName:"kbd"}});o+=a,i=a,a=r}}}e.locator=ue;var t=this.Parser,n=t.prototype.inlineTokenizers,r=t.prototype.inlineMethods;n.kbd=e,r.splice(r.indexOf("text"),0,"kbd");var a=this.Compiler;a&&(a.prototype.visitors.kbd=function(e){return"||"+this.all(e).join("")+"||"})};function pe(e,t){return e.indexOf("$",t)}const me=/^\\\$/,ge=/^\$((?:\\\$|[^$])+)\$/,he=/^\$\$((?:\\\$|[^$])+)\$\$/;var fe=function(e){var t=String(e),n=t.length;for(;t.charAt(--n)===_e;);return t.slice(0,n+1)},_e="\n";var Ee="\n",Te="\t",be=" ",ve="$",Ae=2,Se=4,ye=function(e={}){(function(e){const t=this.Parser,n=t.prototype.blockTokenizers,r=t.prototype.blockMethods;n.math=function(e,t,n){for(var r,a,i,o,l,s,c,u,d,p,m=t.length+1,g=0,h="";g<m&&((i=t.charAt(g))===be||i===Te);)h+=i,g++;if(d=g,(i=t.charAt(g))!==ve)return;for(g++,a=i,r=1,h+=i;g<m&&(i=t.charAt(g))===a;)h+=i,r++,g++;if(r<Ae)return;for(;g<m&&(i=t.charAt(g))!==Ee;){if(i===ve)return;h+=i,g++}if(i=t.charAt(g),n)return!0;for((p=e.now()).column+=h.length,p.offset+=h.length,o=c=u=l=s="";g<m;)if(l+=c,s+=u,c=u="",(i=t.charAt(g))===Ee){for(l?(c+=i,u+=i):h+=i,o="",g++;g<m&&(i=t.charAt(g))===be;)o+=i,g++;if(c+=o,u+=o.slice(d),!(o.length>=Se)){for(o="";g<m&&(i=t.charAt(g))===a;)o+=i,g++;if(c+=o,u+=o,!(o.length<r)){for(o="";g<m&&(i=t.charAt(g))!==Ee;)c+=i,u+=i,g++;break}}}else l+=i,u+=i,g++;h+=l+c;const f=fe(s);return e(h)({type:"math",value:f,data:{hName:"div",hProperties:{className:"math"},hChildren:[{type:"text",value:f}]}})},r.splice(r.indexOf("fencedCode")+1,0,"math");const a=t.prototype.interruptParagraph,i=t.prototype.interruptList,o=t.prototype.interruptBlockquote;a.splice(a.indexOf("fencedCode")+1,0,["math"]),i.splice(i.indexOf("fencedCode")+1,0,["math"]),o.splice(o.indexOf("fencedCode")+1,0,["math"]);const l=this.Compiler;null!=l&&(l.prototype.visitors.math=function(e){return"$$\n"+e.value+"\n$$"})}).call(this,e),function(e){function t(t,n,r){let a=!0,i=he.exec(n);i||(i=ge.exec(n),a=!1);const o=me.exec(n);if(o)return!!r||t(o[0])({type:"text",value:"$"});if("\\$"===n.slice(-2))return t(n)({type:"text",value:n.slice(0,-2)+"$"});if(i){if(r)return!0;if(i[0].includes("`")&&n.slice(i[0].length).includes("`")){const e=n.slice(0,n.indexOf("`"));return t(e)({type:"text",value:e})}const o=i[1].trim();return t(i[0])({type:"inlineMath",value:o,data:{hName:"span",hProperties:{className:"inlineMath"+(a&&e.inlineMathDouble?" inlineMathDouble":"")},hChildren:[{type:"text",value:o}]}})}}t.locator=pe;const n=this.Parser,r=n.prototype.inlineTokenizers,a=n.prototype.inlineMethods;r.math=t,a.splice(a.indexOf("text"),0,"math");const i=this.Compiler;null!=i&&(i.prototype.visitors.inlineMath=function(e){return"$"+e.value+"$"})}.call(this,e)},Ne=f(function(e,t){!function(e){var t=[],n=Object.keys,r={},a={},i=/^(no-?highlight|plain|text)$/i,o=/\blang(?:uage)?-([\w-]+)\b/i,l=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,s="</span>",c={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function u(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function d(e){return e.nodeName.toLowerCase()}function p(e,t){var n=e&&e.exec(t);return n&&0===n.index}function m(e){return i.test(e)}function g(e){var t,n={},r=Array.prototype.slice.call(arguments,1);for(t in e)n[t]=e[t];return r.forEach(function(e){for(t in e)n[t]=e[t]}),n}function h(e){var t=[];return function e(n,r){for(var a=n.firstChild;a;a=a.nextSibling)3===a.nodeType?r+=a.nodeValue.length:1===a.nodeType&&(t.push({event:"start",offset:r,node:a}),r=e(a,r),d(a).match(/br|hr|img|input/)||t.push({event:"stop",offset:r,node:a}));return r}(e,0),t}function f(e){function t(e){return e&&e.source||e}function r(n,r){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(r?"g":""))}!function a(i,o){if(!i.compiled){if(i.compiled=!0,i.keywords=i.keywords||i.beginKeywords,i.keywords){var l={},s=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");l[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof i.keywords?s("keyword",i.keywords):n(i.keywords).forEach(function(e){s(e,i.keywords[e])}),i.keywords=l}i.lexemesRe=r(i.lexemes||/\w+/,!0),o&&(i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")\\b"),i.begin||(i.begin=/\B|\b/),i.beginRe=r(i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(i.endRe=r(i.end)),i.terminator_end=t(i.end)||"",i.endsWithParent&&o.terminator_end&&(i.terminator_end+=(i.end?"|":"")+o.terminator_end)),i.illegal&&(i.illegalRe=r(i.illegal)),null==i.relevance&&(i.relevance=1),i.contains||(i.contains=[]),i.contains=Array.prototype.concat.apply([],i.contains.map(function(e){return function(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(t){return g(e,{variants:null},t)})),e.cached_variants||e.endsWithParent&&[g(e)]||[e]}("self"===e?i:e)})),i.contains.forEach(function(e){a(e,i)}),i.starts&&a(i.starts,o);var c=i.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([i.terminator_end,i.illegal]).map(t).filter(Boolean);i.terminators=c.length?r(c.join("|"),!0):{exec:function(){return null}}}}(e)}function _(e,t,n,a){function i(e,t){var n=g.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(n)&&e.keywords[n]}function o(e,t,n,r){var a=r?"":c.classPrefix,i='<span class="'+a,o=n?"":s;return(i+=e+'">')+t+o}function l(){v+=null!=T.subLanguage?function(){var e="string"==typeof T.subLanguage;if(e&&!r[T.subLanguage])return u(S);var t=e?_(T.subLanguage,S,!0,b[T.subLanguage]):E(S,T.subLanguage.length?T.subLanguage:void 0);return T.relevance>0&&(y+=t.relevance),e&&(b[T.subLanguage]=t.top),o(t.language,t.value,!1,!0)}():function(){var e,t,n,r;if(!T.keywords)return u(S);for(r="",t=0,T.lexemesRe.lastIndex=0,n=T.lexemesRe.exec(S);n;)r+=u(S.substring(t,n.index)),(e=i(T,n))?(y+=e[1],r+=o(e[0],u(n[0]))):r+=u(n[0]),t=T.lexemesRe.lastIndex,n=T.lexemesRe.exec(S);return r+u(S.substr(t))}(),S=""}function d(e){v+=e.className?o(e.className,"",!0):"",T=Object.create(e,{parent:{value:T}})}function m(e,t){if(S+=e,null==t)return l(),0;var r=function(e,t){var n,r;for(n=0,r=t.contains.length;n<r;n++)if(p(t.contains[n].beginRe,e))return t.contains[n]}(t,T);if(r)return r.skip?S+=t:(r.excludeBegin&&(S+=t),l(),r.returnBegin||r.excludeBegin||(S=t)),d(r),r.returnBegin?0:t.length;var a=function e(t,n){if(p(t.endRe,n)){for(;t.endsParent&&t.parent;)t=t.parent;return t}if(t.endsWithParent)return e(t.parent,n)}(T,t);if(a){var i=T;i.skip?S+=t:(i.returnEnd||i.excludeEnd||(S+=t),l(),i.excludeEnd&&(S=t));do{T.className&&(v+=s),T.skip||(y+=T.relevance),T=T.parent}while(T!==a.parent);return a.starts&&d(a.starts),i.returnEnd?0:t.length}if(function(e,t){return!n&&p(t.illegalRe,e)}(t,T))throw new Error('Illegal lexeme "'+t+'" for mode "'+(T.className||"<unnamed>")+'"');return S+=t,t.length||1}var g=A(e);if(!g)throw new Error('Unknown language: "'+e+'"');f(g);var h,T=a||g,b={},v="";for(h=T;h!==g;h=h.parent)h.className&&(v=o(h.className,"",!0)+v);var S="",y=0;try{for(var N,C,O=0;T.terminators.lastIndex=O,N=T.terminators.exec(t);)C=m(t.substring(O,N.index),N[0]),O=N.index+C;for(m(t.substr(O)),h=T;h.parent;h=h.parent)h.className&&(v+=s);return{relevance:y,value:v,language:e,top:T}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{relevance:0,value:u(t)};throw e}}function E(e,t){t=t||c.languages||n(r);var a={relevance:0,value:u(e)},i=a;return t.filter(A).forEach(function(t){var n=_(t,e,!1);n.language=t,n.relevance>i.relevance&&(i=n),n.relevance>a.relevance&&(i=a,a=n)}),i.language&&(a.second_best=i),a}function T(e){return c.tabReplace||c.useBR?e.replace(l,function(e,t){return c.useBR&&"\n"===e?"<br>":c.tabReplace?t.replace(/\t/g,c.tabReplace):""}):e}function b(e){var n,r,i,l,s,p=function(e){var t,n,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",n=o.exec(i))return A(n[1])?n[1]:"no-highlight";for(i=i.split(/\s+/),t=0,r=i.length;t<r;t++)if(m(a=i[t])||A(a))return a}(e);m(p)||(c.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e,s=n.textContent,i=p?_(p,s,!0):E(s),(r=h(n)).length&&((l=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=i.value,i.value=function(e,n,r){var a=0,i="",o=[];function l(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function s(e){i+="<"+d(e)+t.map.call(e.attributes,function(e){return" "+e.nodeName+'="'+u(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function c(e){i+="</"+d(e)+">"}function p(e){("start"===e.event?s:c)(e.node)}for(;e.length||n.length;){var m=l();if(i+=u(r.substring(a,m[0].offset)),a=m[0].offset,m===e){o.reverse().forEach(c);do{p(m.splice(0,1)[0]),m=l()}while(m===e&&m.length&&m[0].offset===a);o.reverse().forEach(s)}else"start"===m[0].event?o.push(m[0].node):o.pop(),p(m.splice(0,1)[0])}return i+u(r.substr(a))}(r,h(l),s)),i.value=T(i.value),e.innerHTML=i.value,e.className=function(e,t,n){var r=t?a[t]:n,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),-1===e.indexOf(r)&&i.push(r),i.join(" ").trim()}(e.className,p,i.language),e.result={language:i.language,re:i.relevance},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.relevance}))}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");t.forEach.call(e,b)}}function A(e){return e=(e||"").toLowerCase(),r[e]||r[a[e]]}e.highlight=_,e.highlightAuto=E,e.fixMarkup=T,e.highlightBlock=b,e.configure=function(e){c=g(c,e)},e.initHighlighting=v,e.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)},e.registerLanguage=function(t,n){var i=r[t]=n(e);i.aliases&&i.aliases.forEach(function(e){a[e]=t})},e.listLanguages=function(){return n(r)},e.getLanguage=A,e.inherit=g,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(t,n,r){var a=e.inherit({className:"comment",begin:t,end:n,contains:[]},r||{});return a.contains.push(e.PHRASAL_WORDS_MODE),a.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),a},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0}}(t)});function Ce(){}Ce.prototype=Ne;var Oe=new Ce,Me=Oe;Oe.highlight=function(e,t,n){var r=(n||{}).prefix;null!==r&&void 0!==r||(r=Re);return je(Ke(e,t,!0,r))},Oe.highlightAuto=ze,Oe.registerLanguage=function(e,t){var n=(Ge[e]=t(Oe)).aliases,r=n&&n.length,a=-1;He.push(e);for(;++a<r;)qe[n[a]]=e},Oe.getLanguage=We;var xe=Ne.inherit,we={}.hasOwnProperty,Re="hljs-",De="case_insensitive",Ie="cached_variants",ke="",Le=" ",Pe="|",Be="element",Fe="text",Ue="span",He=[],Ge={},qe={};function ze(e,t){var n,r,a,i,o=t||{},l=o.prefix,s=o.subset||He,c=s.length,u=-1;if(null!==l&&void 0!==l||(l=Re),"string"!=typeof e)throw new Error("Expected `string` for value, got `"+e+"`");for(r=je({}),n=je({});++u<c;)We(i=s[u])&&((a=je(Ke(i,e,!1,l))).language=i,a.relevance>r.relevance&&(r=a),a.relevance>n.relevance&&(r=n,n=a));return r.language&&(n.secondBest=r),n}function Ke(e,t,n,r,a){var i,o,l,s,c,u,d,p,m={},g=[],h=ke,f=0;if("string"!=typeof e)throw new Error("Expected `string` for name, got `"+e+"`");if("string"!=typeof t)throw new Error("Expected `string` for value, got `"+t+"`");if(i=We(e),l=o=a||i,s=p=[],!i)throw new Error("Unknown language: `"+e+"` is not registered");!function(e){function t(t,r){return new RegExp(n(t),"m"+(e[De]?"i":"")+(r?"g":""))}function n(e){return e&&e.source||e}!function r(a,i){var o={};var l;if(a.compiled)return;a.compiled=!0;a.keywords=a.keywords||a.beginKeywords;a.keywords&&("string"==typeof a.keywords?s("keyword",a.keywords):Object.keys(a.keywords).forEach(function(e){s(e,a.keywords[e])}),a.keywords=o);a.lexemesRe=t(a.lexemes||/\w+/,!0);i&&(a.beginKeywords&&(a.begin="\\b("+a.beginKeywords.split(Le).join(Pe)+")\\b"),a.begin||(a.begin=/\B|\b/),a.beginRe=t(a.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(a.endRe=t(a.end)),a.terminatorEnd=n(a.end)||ke,a.endsWithParent&&i.terminatorEnd&&(a.terminatorEnd+=(a.end?Pe:ke)+i.terminatorEnd));a.illegal&&(a.illegalRe=t(a.illegal));void 0===a.relevance&&(a.relevance=1);a.contains||(a.contains=[]);a.contains=Array.prototype.concat.apply([],a.contains.map(function(e){return function(e){e.variants&&!e[Ie]&&(e[Ie]=e.variants.map(function(t){return xe(e,{variants:null},t)}));return e[Ie]||e.endsWithParent&&[xe(e)]||[e]}("self"===e?a:e)}));a.contains.forEach(function(e){r(e,a)});a.starts&&r(a.starts,i);l=a.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([a.terminatorEnd,a.illegal]).map(n).filter(Boolean);a.terminators=l.length?t(l.join(Pe),!0):{exec:$e};function s(t,n){var r,a,i,l;for(e[De]&&(n=n.toLowerCase()),r=n.split(Le),l=r.length,i=-1;++i<l;)a=r[i].split(Pe),o[a[0]]=[t,a[1]?Number(a[1]):1]}}(e)}(i);try{for(c=o.terminators.lastIndex=0,d=o.terminators.exec(t);d;)u=_(t.substring(c,d.index),d[0]),c=o.terminators.lastIndex=d.index+u,d=o.terminators.exec(t);for(_(t.substr(c)),l=o;l.parent;)l.className&&y(),l=l.parent;return{relevance:f,value:s,language:e,top:o}}catch(e){if(-1===e.message.indexOf("Illegal"))throw e;return{relevance:0,value:v(t,[])}}function _(e,t){var r,a,i;if(h+=e,void 0===t)return b(T(),s),0;if(r=function(e,t){var n=t.contains,r=n.length,a=-1;for(;++a<r;)if(Ve(n[a].beginRe,e))return n[a]}(t,o))return b(T(),s),E(r,t),r.returnBegin?0:t.length;if(a=function e(t,n){if(Ve(t.endRe,n)){for(;t.endsParent&&t.parent;)t=t.parent;return t}if(t.endsWithParent)return e(t.parent,n)}(o,t)){(i=o).returnEnd||i.excludeEnd||(h+=t),b(T(),s);do{o.className&&y(),f+=o.relevance,o=o.parent}while(o!==a.parent);return i.excludeEnd&&v(t,s),h=ke,a.starts&&E(a.starts,ke),i.returnEnd?0:t.length}if(function(e,t){return!n&&Ve(t.illegalRe,e)}(t,o))throw new Error('Illegal lexeme "'+t+'" for mode "'+(o.className||"<unnamed>")+'"');return h+=t,t.length||1}function E(e,t){var n;e.className&&(n=A(e.className,[])),e.returnBegin?h=ke:e.excludeBegin?(v(t,s),h=ke):h=t,n&&(s.push(n),g.push(s),s=n.children),o=Object.create(e,{parent:{value:o}})}function T(){var e=void 0===o.subLanguage?function(){var e,t,n,r,a=[];if(!o.keywords)return v(h,a);e=0,o.lexemesRe.lastIndex=0,t=o.lexemesRe.exec(h);for(;t;)v(h.substring(e,t.index),a),(r=S(o,t))?(f+=r[1],n=A(r[0],[]),a.push(n),v(t[0],n.children)):v(t[0],a),e=o.lexemesRe.lastIndex,t=o.lexemesRe.exec(h);return v(h.substr(e),a),a}():function(){var e,t="string"==typeof o.subLanguage;if(t&&!Ge[o.subLanguage])return v(h,[]);e=t?Ke(o.subLanguage,h,!0,r,m[o.subLanguage]):ze(h,{subset:o.subLanguage.length?o.subLanguage:void 0,prefix:r});o.relevance>0&&(f+=e.relevance);t&&(m[o.subLanguage]=e.top);return[A(e.language,e.value,!0)]}();return h=ke,e}function b(e,t){for(var n,r=e.length,a=-1;++a<r;)(n=e[a]).type===Fe?v(n.value,t):t.push(n)}function v(e,t){var n;return e&&((n=t[t.length-1])&&n.type===Fe?n.value+=e:t.push(function(e){return{type:Fe,value:e}}(e))),t}function A(e,t,n){return{type:Be,tagName:Ue,properties:{className:[(n?ke:r)+e]},children:t}}function S(e,t){var n=t[0];return i[De]&&(n=n.toLowerCase()),we.call(e.keywords,n)&&e.keywords[n]}function y(){s=g.pop()||p}}function je(e){return{relevance:e.relevance||0,language:e.language||null,value:e.value||[]}}function Ve(e,t){var n=e&&e.exec(t);return n&&0===n.index}function $e(){return null}function We(e){return e=e.toLowerCase(),Ge[e]||Ge[qe[e]]}var Ye=function(e){var t="[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+",n="далее возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ",r="null истина ложь неопределено",a=e.inherit(e.NUMBER_MODE),i={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},o={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},l=e.inherit(e.C_LINE_COMMENT_MODE);return{case_insensitive:!0,lexemes:t,keywords:{keyword:n,built_in:"разделительстраниц разделительстрок символтабуляции ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ",class:"webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени форматкартинки ширинаподчиненныхэлементовформы виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц отображениевремениэлементовпланировщика типфайлаформатированногодокумента обходрезультатазапроса типзаписизапроса видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов доступкфайлу режимдиалогавыборафайла режимоткрытияфайла типизмеренияпостроителязапроса видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs форматдатыjson экранированиесимволовjson видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных использованиеусловногооформлениякомпоновкиданных важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты статусразборапочтовогосообщения режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии типхранилищасертификатовкриптографии кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip режимсохраненияпутейzip уровеньсжатияzip звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса типномерадокумента типномеразадачи типформы удалениедвижений важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты",type:"comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура фиксированноесоответствие фиксированныймассив ",literal:r},contains:[{className:"meta",lexemes:t,begin:"#|&",end:"$",keywords:{"meta-keyword":n+"загрузитьизфайла вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент "},contains:[l]},{className:"function",lexemes:t,variants:[{begin:"процедура|функция",end:"\\)",keywords:"процедура функция"},{begin:"конецпроцедуры|конецфункции",keywords:"конецпроцедуры конецфункции"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",lexemes:t,begin:t,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{keyword:"знач",literal:r},contains:[a,i,o]},l]},e.inherit(e.TITLE_MODE,{begin:t})]},l,{className:"symbol",begin:"~",end:";|:",excludeEnd:!0},a,i,o]}},Qe=function(e){var t="^[a-zA-Z][a-zA-Z0-9-]*",n="[!@#$^&',?+~`|:]",r=e.COMMENT(";","$"),a={begin:t+"\\s*=",returnBegin:!0,end:/=/,relevance:0,contains:[{className:"attribute",begin:t}]};return{illegal:n,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"].join(" "),contains:[a,r,{className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},{className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},{className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},{className:"symbol",begin:/%[si]/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}},Xe=function(e){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}},Ze=function(e){var t={className:"rest_arg",begin:"[.]{3}",end:"[a-zA-Z_$][a-zA-Z0-9_$]*",relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"package",end:"{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:";",keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t]},{begin:":\\s*([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)"}]},e.METHOD_GUARD],illegal:/#/}},Je=function(e){var t="[A-Za-z](_?[A-Za-z0-9.])*",n=e.COMMENT("--","$"),r={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:"[]{}%#'\"",contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:t,endsParent:!0,relevance:0}]};return{case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[n,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"symbol",begin:"'"+t},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:"[]{}%#'\""},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[n,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:"[]{}%#'\""},r,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:"[]{}%#'\""}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:"[]{}%#'\""},r]}},et=function(e){var t={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:"</?",end:">"},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"meta",begin:"\\s\\[",end:"\\]$"},{className:"variable",begin:"[\\$%]\\{",end:"\\}",contains:["self",t]},t,e.QUOTE_STRING_MODE]}}],illegal:/\S/}},tt=function(e){var t=e.inherit(e.QUOTE_STRING_MODE,{illegal:""}),n={className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_NUMBER_MODE,t]},r=e.COMMENT("--","$"),a=[r,e.COMMENT("\\(\\*","\\*\\)",{contains:["self",r]}),e.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"built_in",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"literal",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference)|POSIX file|POSIX path|(date|time) string|quoted form)\\b"},{beginKeywords:"on",illegal:"[${=;\\n]",contains:[e.UNDERSCORE_TITLE_MODE,n]}].concat(a),illegal:"//|->|=>|\\[\\["}},nt=function(e){var t={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},n={className:"string",variants:[{begin:'(u8?|U)?L?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},r={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},a={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(n,{className:"meta-string"}),{className:"meta-string",begin:/<[^\n>]*>/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i=e.IDENT_RE+"\\s*\\(",o={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"},l=[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,n];return{aliases:["c","cc","h","c++","h++","hpp"],keywords:o,illegal:"</",contains:l.concat([a,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:o,contains:["self",t]},{begin:e.IDENT_RE+"::",keywords:o},{variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:o,contains:l.concat([{begin:/\(/,end:/\)/,keywords:o,contains:l.concat(["self"]),relevance:0}]),relevance:0},{className:"function",begin:"("+e.IDENT_RE+"[\\*&\\s]+)+"+i,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:o,illegal:/[^\w\s\*&]/,contains:[{begin:i,returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,r,t]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},{className:"class",beginKeywords:"class struct",end:/[{;:]/,contains:[{begin:/</,end:/>/,contains:["self"]},e.TITLE_MODE]}]),exports:{preprocessor:a,strings:n,keywords:o}}},rt=function(e){var t=e.getLanguage("cpp").exports;return{keywords:{keyword:"boolean byte word string String array "+t.keywords.keyword,built_in:"setup loop while catch for if do goto try switch case else default break continue return KeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put",literal:"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW"},contains:[t.preprocessor,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}},at=function(e){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+e.IDENT_RE,keywords:{meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},e.COMMENT("[;@]","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}},it=function(e){var t={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],case_insensitive:!0,contains:[{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{begin:/<\?(php)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0}]},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{name:"style"},contains:[t],starts:{end:"</style>",returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{name:"script"},contains:[t],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"meta",variants:[{begin:/<\?xml/,end:/\?>/,relevance:10},{begin:/<\?\w+/,end:/\?>/}]},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0},t]}]}},ot=function(e){return{aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,5}) .+?( \\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}},lt=function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance";return{keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:t+" get set args call",excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:t+" get set args call",relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:t,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}},st=function(e){var t={begin:"`[\\s\\S]"};return{case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"A|0 true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"subst",begin:"%(?=[a-zA-Z0-9#_$@])",end:"%",illegal:"[^a-zA-Z0-9#_$@]"},{className:"built_in",begin:"^\\s*\\w+\\s*,"},{className:"meta",begin:"^\\s*#w+",end:"$",relevance:0},{className:"symbol",contains:[t],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,"}]}},ct=function(e){var t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={begin:"\\$[A-z0-9_]+"},r={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait",literal:"True False And Null Not Or"},contains:[t,n,r,a,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"comments include include-once NoTrayIcon OnAutoItStartRegister pragma compile RequireAdmin"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[r,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},r,t]},{className:"symbol",begin:"@[A-z0-9_]+"},{className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,r,a]}]}]}},ut=function(e){return{case_insensitive:!0,lexemes:"\\.?"+e.IDENT_RE,keywords:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}},dt=function(e){return{keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}},pt=function(e){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}},mt=function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]};return{aliases:["sh","zsh"],lexemes:/\b-?[a-z\._]+\b/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"meta",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,n,{className:"string",begin:/'/,end:/'/},t]}},gt=function(e){return{case_insensitive:!0,illegal:"^.",lexemes:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keywords:{keyword:"ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO HEX$ IF|0 THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE WEND WIDTH WINDOW WRITE XOR"},contains:[e.QUOTE_STRING_MODE,e.COMMENT("REM","$",{relevance:10}),e.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b([0-9]+[0-9edED.]*[#!]?)",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}},ht=function(e){return{contains:[{className:"attribute",begin:/</,end:/>/},{begin:/::=/,starts:{end:/$/,contains:[{begin:/</,end:/>/},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}]}},ft=function(e){var t={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[t]},t]}},_t=function(e){var t="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},a={className:"string",begin:/(#\d+)+/},i={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[r,a]}].concat(n)},o={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,i]};return{case_insensitive:!0,keywords:{keyword:t,literal:"false true"},illegal:/\/\*/,contains:[r,a,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{className:"string",begin:'"',end:'"'},e.NUMBER_MODE,o,i]}},Et=function(e){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}},Tt=function(e){var t="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},r=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=r,{keywords:{keyword:t+" shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",meta:"doc by license see throws tagged"},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(r)}},bt=function(e){return{aliases:["clean","icl","dcl"],keywords:{keyword:"if let in with where case of class instance otherwise implementation definition system module from import qualified as special code inline foreign export ccall stdcall generic derive infix infixl infixr",literal:"True False"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:"->|<-[|:]?|::|#!?|>>=|\\{\\||\\|\\}|:==|=:|\\.\\.|<>|`"}]}},vt=function(e){var t="[a-zA-Z_\\-!.?+*=<>&#'][a-zA-Z_\\-!.?+*=<>&#'0-9/;:]*",n={begin:t,relevance:0},r={className:"number",begin:"[-+]?\\d+(\\.\\d+)?",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i=e.COMMENT(";","$",{relevance:0}),o={className:"literal",begin:/\b(true|false|nil)\b/},l={begin:"[\\[\\{]",end:"[\\]\\}]"},s={className:"comment",begin:"\\^"+t},c=e.COMMENT("\\^\\{","\\}"),u={className:"symbol",begin:"[:]{1,2}"+t},d={begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},m={keywords:{"builtin-name":"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},lexemes:t,className:"name",begin:t,starts:p},g=[d,a,s,c,i,u,l,r,o,n];return d.contains=[e.COMMENT("comment",""),m,p],p.contains=g,l.contains=g,c.contains=[l],{aliases:["clj"],illegal:/\S/,contains:[d,a,s,c,i,u,l,r,o]}},At=function(e){return{contains:[{className:"meta",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}},St=function(e){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or equal less greater strless strgreater strequal matches"},contains:[{className:"variable",begin:"\\${",end:"}"},e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}},yt=function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},a=[e.BINARY_NUMBER_MODE,e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[r,e.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+n},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{begin:"```",end:"```"},{begin:"`",end:"`"}]}];r.contains=a;var i=e.inherit(e.TITLE_MODE,{begin:n}),o={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(a)}]};return{aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:a.concat([e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+n+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[i,o]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[o]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i]},{begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}},Nt=function(e){return{keywords:{keyword:"_ as at cofix else end exists exists2 fix for forall fun if IF in let match mod Prop return Set then Type using where with Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture Conjectures Constant constr Constraint Constructors Context Corollary CreateHintDb Cut Declare Defined Definition Delimit Dependencies DependentDerive Drop eauto End Equality Eval Example Existential Existentials Existing Export exporting Extern Extract Extraction Fact Field Fields File Fixpoint Focus for From Function Functional Generalizable Global Goal Grab Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident Identity If Immediate Implicit Import Include Inductive Infix Info Initial Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation Obligations Opaque Open Optimize Options Parameter Parameters Parametric Path Paths pattern Polymorphic Preterm Print Printing Program Projections Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused Unfold Universe Universes Unset Unshelve using Variable Variables Variant Verbose Visibility where with",built_in:"abstract absurd admit after apply as assert assumption at auto autorewrite autounfold before bottom btauto by case case_eq cbn cbv change classical_left classical_right clear clearbody cofix compare compute congruence constr_eq constructor contradict contradiction cut cutrewrite cycle decide decompose dependent destruct destruction dintuition discriminate discrR do double dtauto eapply eassumption eauto ecase econstructor edestruct ediscriminate eelim eexact eexists einduction einjection eleft elim elimtype enough equality erewrite eright esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail field field_simplify field_simplify_eq first firstorder fix fold fourier functional generalize generalizing gfail give_up has_evar hnf idtac in induction injection instantiate intro intro_pattern intros intuition inversion inversion_clear is_evar is_var lapply lazy left lia lra move native_compute nia nsatz omega once pattern pose progress proof psatz quote record red refine reflexivity remember rename repeat replace revert revgoals rewrite rewrite_strat right ring ring_simplify rtauto set setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve specialize split split_Rabs split_Rmult stepl stepr subst sum swap symmetry tactic tauto time timeout top transitivity trivial try tryif unfold unify until using vm_compute with"},contains:[e.QUOTE_STRING_MODE,e.COMMENT("\\(\\*","\\*\\)"),e.C_NUMBER_MODE,{className:"type",excludeBegin:!0,begin:"\\|\\s*",end:"\\w+"},{begin:/[-=]>/}]}},Ct=function(e){return{case_insensitive:!0,aliases:["cos","cls"],keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in",begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in",begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword",begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)</,end:/>/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*</,end:/>\s*>/,subLanguage:"xml"}]}},Ot=function(e){var t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string",literal:"Master Started Slave Stopped start promote demote stop monitor true false"},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:"primitive rsc_template",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal",begin:"[-]?(infinity|inf)",relevance:0},{className:"attr",begin:/([A-Za-z\$_\#][\w_-]+)=/,relevance:0},{className:"tag",begin:"</?",end:"/?>",relevance:0}]}},Mt=function(e){var t="(_[uif](8|16|32|64))?",n="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",r={keyword:"abstract alias as as? asm begin break case class def do else elsif end ensure enum extend for fun if include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? return require select self sizeof struct super then type typeof union uninitialized unless until when while with yield __DIR__ __END_LINE__ __FILE__ __LINE__",literal:"false nil true"},a={className:"subst",begin:"#{",end:"}",keywords:r},i={className:"template-variable",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:r};function o(e,t){var n=[{begin:e,end:t}];return n[0].contains=n,n}var l={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%w?{",end:"}",contains:o("{","}")},{begin:"%w?<",end:">",contains:o("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"},{begin:/<<-\w+$/,end:/^\s*\w+$/}],relevance:0},s=[i,l,{className:"string",variants:[{begin:"%q\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%q\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%q{",end:"}",contains:o("{","}")},{begin:"%q<",end:">",contains:o("<",">")},{begin:"%q/",end:"/"},{begin:"%q%",end:"%"},{begin:"%q-",end:"-"},{begin:"%q\\|",end:"\\|"},{begin:/<<-'\w+'$/,end:/^\s*\w+$/}],relevance:0},{begin:"(!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~)\\s*",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"//[a-z]*",relevance:0},{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%r{",end:"}",contains:o("{","}")},{begin:"%r<",end:">",contains:o("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:"%r\\(",end:"\\)",contains:o("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:o("\\[","\\]")},{begin:"%r{",end:"}",contains:o("{","}")},{begin:"%r<",end:">",contains:o("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},{className:"meta",begin:"@\\[",end:"\\]",contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"})]},e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<"}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:n,endsParent:!0})],relevance:5},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[l,{begin:n}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+t},{begin:"\\b0o([0-7_]*[0-7])"+t},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+t},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+t}],relevance:0}];return a.contains=s,i.contains=s.slice(1),{aliases:["cr"],lexemes:"[a-zA-Z_]\\w*[!?=]?",keywords:r,contains:s}},xt=function(e){var t={keyword:"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield",literal:"null false true"},n={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},r=e.inherit(n,{illegal:/\n/}),a={className:"subst",begin:"{",end:"}",keywords:t},i=e.inherit(a,{illegal:/\n/}),o={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},e.BACKSLASH_ESCAPE,i]},l={className:"string",begin:/\$@"/,end:'"',contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},a]},s=e.inherit(l,{illegal:/\n/,contains:[{begin:"{{"},{begin:"}}"},{begin:'""'},i]});a.contains=[l,o,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],i.contains=[s,o,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];var c={variants:[l,o,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"}},c,e.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"meta-string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+u+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[c,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}},wt=function(e){return{case_insensitive:!1,lexemes:"[a-zA-Z][a-zA-Z0-9_-]*",keywords:{keyword:"base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src"},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}},Rt=function(e){var t={begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{endsWithParent:!0,excludeEnd:!0,contains:[{begin:/[\w-]+\(/,returnBegin:!0,contains:[{className:"built_in",begin:/[\w-]+/},{begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]},e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"#[0-9A-Fa-f]+"},{className:"meta",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/},{className:"selector-class",begin:/\.[A-Za-z0-9_-]+/},{className:"selector-attr",begin:/\[/,end:/\]/,illegal:"$"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{begin:"@",end:"[{;]",illegal:/:/,contains:[{className:"keyword",begin:/\w+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,t]}]}},Dt=function(e){var t="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",n="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",r={className:"number",begin:"\\b"+t+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},a={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+t+"(i|[fF]i|Li))",relevance:0},i={className:"string",begin:"'("+n+"|.)",end:"'",illegal:"."},o={className:"string",begin:'"',contains:[{begin:n,relevance:0}],end:'"[cwd]?'},l=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:{keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,l,{className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},o,{className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},{className:"string",begin:"`",end:"`[cwd]?"},{className:"string",begin:'q"\\{',end:'\\}"'},a,r,i,{className:"meta",begin:"^#!",end:"$",relevance:5},{className:"meta",begin:"#(line)",end:"$",relevance:5},{className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"}]}},It=function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"quote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"^```w*s*$",end:"^```s*$"},{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},kt=function(e){var t={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},n={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]}]};t.contains=[e.C_NUMBER_MODE,n];return{keywords:{keyword:"assert async await break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch sync this throw true try var void while with yield abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"},contains:[n,e.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),e.COMMENT("///","$",{subLanguage:"markdown"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}},Lt=function(e){var t="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure absolute reintroduce operator as is abstract alias assembler bitpacked break continue cppdecl cvar enumerator experimental platform deprecated unimplemented dynamic export far16 forward generic helper implements interrupt iochecks local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat specialize strict unaligned varargs ",n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},a={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},i={className:"string",begin:/(#\d+)+/},o={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},l={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[a,i,r].concat(n)},r].concat(n)};return{aliases:["dpr","dfm","pas","pascal","freepascal","lazarus","lpr","lfm"],case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[a,i,e.NUMBER_MODE,o,l,r].concat(n)}},Pt=function(e){return{aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^\-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"addition",begin:"^\\!",end:"$"}]}},Bt=function(e){var t={begin:/\|[A-Za-z]+:?/,keywords:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),e.COMMENT(/\{#/,/#}/),{className:"template-tag",begin:/\{%/,end:/%}/,contains:[{className:"name",begin:/\w+/,keywords:{name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/}}/,contains:[t]}]}},Ft=function(e){return{aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"},e.inherit(e.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]}},Ut=function(e){return{aliases:["docker"],case_insensitive:!0,keywords:"from maintainer expose env arg user onbuild stopsignal",contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]\n/,subLanguage:"bash"}}],illegal:"</"}},Ht=function(e){var t=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10});return{aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",built_in:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux shift cd dir echo setlocal endlocal set pause copy append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{className:"number",begin:"\\b\\d+",relevance:0},t]}},Gt=function(e){return{keywords:"dsconfig",contains:[{className:"keyword",begin:"^dsconfig",end:"\\s",excludeEnd:!0,relevance:10},{className:"built_in",begin:"(list|create|get|set|delete)-(\\w+)",end:"\\s",excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in",begin:"--(\\w+)",end:"\\s",excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{className:"string",begin:/'/,end:/'/},{className:"string",begin:"[\\w-?]+:\\w+",end:"\\W",relevance:0},{className:"string",begin:"\\w+-?\\w+",end:"\\W",relevance:0},e.HASH_COMMENT_MODE]}},qt=function(e){var t={className:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},n={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}],relevance:0},r={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[e.inherit(t,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"}]},t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},a={className:"variable",begin:"\\&[a-z\\d_]*\\b"},i={className:"meta-keyword",begin:"/[a-z][a-z\\d-]*/"},o={className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},l={className:"params",begin:"<",end:">",contains:[n,a]},s={className:"class",begin:/[a-zA-Z_][a-zA-Z\d_@]*\s{/,end:/[{;=]/,returnBegin:!0,excludeEnd:!0};return{keywords:"",contains:[{className:"class",begin:"/\\s*{",end:"};",relevance:10,contains:[a,i,o,s,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t]},a,i,o,s,l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,t,r,{begin:e.IDENT_RE+"::",keywords:""}]}},zt=function(e){return{aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/,end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}]}},Kt=function(e){var t=e.COMMENT(/\(\*/,/\*\)/);return{illegal:/\S/,contains:[t,{className:"attribute",begin:/^[ ]*[a-zA-Z][a-zA-Z-]*([\s-]+[a-zA-Z][a-zA-Z]*)*/},{begin:/=/,end:/;/,contains:[t,{className:"meta",begin:/\?.*\?/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}]}},jt=function(e){var t="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",n="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",r={className:"subst",begin:"#\\{",end:"}",lexemes:t,keywords:n},a={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},i={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},o=e.inherit(i,{className:"class",beginKeywords:"defimpl defmodule defprotocol defrecord",end:/\bdo\b|$|;/}),l=[a,e.HASH_COMMENT_MODE,o,i,{className:"symbol",begin:":(?!\\s)",contains:[a,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:t+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return r.contains=l,{lexemes:t,keywords:n,contains:l}},Vt=function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},t]};return{keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port effect command subscription",contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[r,t],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[n,r,{begin:"{",end:"}",contains:r.contains},t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"port",end:"$",keywords:"port",contains:[t]},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}],illegal:/;/}},$t=function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",n={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},r={className:"doctag",begin:"@[A-Za-z]+"},a={begin:"#<",end:">"},i=[e.COMMENT("#","$",{contains:[r]}),e.COMMENT("^\\=begin","^\\=end",{contains:[r],relevance:10}),e.COMMENT("^__END__","\\n$")],o={className:"subst",begin:"#\\{",end:"}",keywords:n},l={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{begin:/<<(-?)\w+$/,end:/^\s*\w+$/}]},s={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:n},c=[l,a,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(i)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),s].concat(i)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[l,{begin:t}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{className:"params",begin:/\|/,end:/\|/,keywords:n},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[a,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(i),relevance:0}].concat(i);o.contains=c,s.contains=c;var u=[{begin:/^\s*=>/,starts:{end:"$",contains:c}},{className:"meta",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:i.concat(u).concat(c)}},Wt=function(e){return{subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}},Yt=function(e){return{keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}},Qt=function(e){var t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",r={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},a=e.COMMENT("%","$"),i={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},o={begin:"fun\\s+"+t+"/\\d+"},l={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},s={begin:"{",end:"}",relevance:0},c={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},u={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},d={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},p={beginKeywords:"fun receive if try case",end:"end",keywords:r};p.contains=[a,o,e.inherit(e.APOS_STRING_MODE,{className:""}),p,l,e.QUOTE_STRING_MODE,i,s,c,u,d];var m=[a,o,p,l,e.QUOTE_STRING_MODE,i,s,c,u,d];l.contains[1].contains=m,s.contains=m,d.contains[1].contains=m;var g={className:"params",begin:"\\(",end:"\\)",contains:m};return{aliases:["erl"],keywords:r,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[g,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:r,contains:m}},a,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[g]},i,e.QUOTE_STRING_MODE,d,c,u,s,{begin:/\.$/}]}},Xt=function(e){return{aliases:["xlsx","xls"],case_insensitive:!0,lexemes:/[a-zA-Z][\w\.]*/,keywords:{built_in:"ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF|0 IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST"},contains:[{begin:/^=/,end:/[^=]/,returnEnd:!0,illegal:/=/,relevance:10},{className:"symbol",begin:/\b[A-Z]{1,2}\d+\b/,end:/[^\d]/,excludeEnd:!0,relevance:0},{className:"symbol",begin:/[A-Z]{0,2}\d*:[A-Z]{0,2}\d*/,relevance:0},e.BACKSLASH_ESCAPE,e.QUOTE_STRING_MODE,{className:"number",begin:e.NUMBER_RE+"(%)?",relevance:0},e.COMMENT(/\bN\(/,/\)/,{excludeBegin:!0,excludeEnd:!0,illegal:/\n/})]}},Zt=function(e){return{contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}},Jt=function(e){var t={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[{className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]};return{keywords:{literal:"true false",keyword:"case class def else enum if impl import in lat rel index let match namespace switch type yield with"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"',end:'"'}]},t,e.C_NUMBER_MODE]}},en=function(e){return{case_insensitive:!0,aliases:["f90","f95"],keywords:{literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}},tn=function(e){var t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}},nn=function(e){var t={keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes",literal:"eps inf na","built-in":"abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power randBinomial randLinear randTriangle round rPower sigmoid sign signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion handleCollect handleDelete handleStatus handleSubmit heapFree heapLimit heapSize jobHandle jobKill jobStatus jobTerminate licenseLevel licenseStatus maxExecError sleep timeClose timeComp timeElapsed timeExec timeStart"},n={className:"symbol",variants:[{begin:/\=[lgenxc]=/},{begin:/\$/}]},r={className:"comment",variants:[{begin:"'",end:"'"},{begin:'"',end:'"'}],illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},a={begin:"/",end:"/",keywords:t,contains:[r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},i={begin:/[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,excludeBegin:!0,end:"$",endsWithParent:!0,contains:[r,a,{className:"comment",begin:/([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,relevance:0}]};return{aliases:["gms"],case_insensitive:!0,keywords:t,contains:[e.COMMENT(/^\$ontext/,/^\$offtext/),{className:"meta",begin:"^\\$[a-z0-9]+",end:"$",returnBegin:!0,contains:[{className:"meta-keyword",begin:"^\\$[a-z0-9]+"}]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{beginKeywords:"set sets parameter parameters variable variables scalar scalars equation equations",end:";",contains:[e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,a,i]},{beginKeywords:"table",end:";",returnBegin:!0,contains:[{beginKeywords:"table",end:"$",contains:[i]},e.COMMENT("^\\*","$"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE]},{className:"function",begin:/^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,returnBegin:!0,contains:[{className:"title",begin:/^[a-z0-9_]+/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},n]},e.C_NUMBER_MODE,n]}},rn=function(e){var t={keyword:"and bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new not open or output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint",built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname threadBegin threadEnd threadEndFor threadFor threadJoin threadStat time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin strtrim sylvester",literal:"DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES DB_TRANSACTIONS DB_UNICODE DB_VIEWS"},n={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[{className:"meta-string",begin:'"',end:'"',illegal:"\\n"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r=e.UNDERSCORE_IDENT_RE+"\\s*\\(?",a=[{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}];return{aliases:["gss"],case_insensitive:!0,keywords:t,illegal:"(\\{[%#]|[%#]\\})",contains:[e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("@","@"),n,{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"function",beginKeywords:"proc keyword",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n].concat(a)},{className:"function",beginKeywords:"fn",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r+e.IDENT_RE+"\\)?\\s*\\=\\s*",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE].concat(a)},{className:"function",begin:"\\bexternal (proc|keyword|fn)\\s+",end:";",excludeEnd:!0,keywords:t,contains:[{begin:r,returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",begin:"\\bexternal (matrix|string|array|sparse matrix|struct "+e.IDENT_RE+")\\s+",end:";",excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}},an=function(e){var t=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+e.C_NUMBER_RE}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:"[A-Z_][A-Z0-9_.]*",keywords:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR",contains:[{className:"meta",begin:"\\%"},{className:"meta",begin:"([O])([0-9]+)"}].concat(t)}},on=function(e){return{aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}},ln=function(e){return{keywords:{keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly",type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBufferiimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",built_in:"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow",literal:"true false"},illegal:'"',contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"}]}},sn=function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:t,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"`"}]},{className:"number",variants:[{begin:e.C_NUMBER_RE+"[dflsi]",relevance:1},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",end:/\s*\{/,excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,illegal:/["']/}]}]}},cn=function(e){return{keywords:{keyword:"println readln print import module function local return let var while for foreach times in case when match with break continue augment augmentation each find filter reduce if then else otherwise try catch finally raise throw orIfNull DynamicObject|10 DynamicVariable struct Observable map set vector list array",literal:"true false null"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}},un=function(e){return{case_insensitive:!0,keywords:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}},dn=function(e){return{keywords:{literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},{className:"string",begin:"'''",end:"'''"},{className:"string",begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,{className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.BINARY_NUMBER_MODE,{className:"class",beginKeywords:"class interface trait enum",end:"{",illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{className:"string",begin:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{begin:/\?/,end:/\:/},{className:"symbol",begin:"^\\s*[A-Za-z0-9_$]+:",relevance:0}],illegal:/#|<\//}},pn=function(e){return{case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{className:"tag",begin:"^\\s*%",contains:[{className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+"},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:"{\\s*",end:"\\s*}",contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:"#{",starts:{end:"}",subLanguage:"ruby"}}]}},mn=function(e){var t={"builtin-name":"each in with if else unless bindattr action collection debugger log outlet template unbound view yield"};return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,keywords:t,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,keywords:t}]}},gn=function(e){var t={variants:[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})]},n={className:"meta",begin:"{-#",end:"#-}"},r={className:"meta",begin:"^#",end:"$"},a={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},i={begin:"\\(",end:"\\)",illegal:'"',contains:[n,r,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),t]};return{aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[i,t],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[i,t],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[a,i,t]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[n,a,i,{begin:"{",end:"}",contains:i.contains},t]},{beginKeywords:"default",end:"$",contains:[a,i,t]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,t]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[a,e.QUOTE_STRING_MODE,t]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},n,r,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,a,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),t,{begin:"->|<-"}]}},hn=function(e){return{aliases:["hx"],keywords:{keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",built_in:"trace this",literal:"true false null _"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$",end:"\\W}"}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end error"}},{className:"type",begin:":[ \t]*",end:"[^A-Za-z0-9_ \t\\->]",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:":[ \t]*",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract",end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0,excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0,keywords:"class interface",contains:[{className:"keyword",begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//}},fn=function(e){return{case_insensitive:!0,lexemes:/[\w\._]+/,keywords:"goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"string",begin:'{"',end:'"}',contains:[e.BACKSLASH_ESCAPE]},e.COMMENT(";","$",{relevance:0}),{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib"},contains:[e.inherit(e.QUOTE_STRING_MODE,{className:"meta-string"}),e.NUMBER_MODE,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"symbol",begin:"^\\*(\\w+|@)"},e.NUMBER_MODE,e.C_NUMBER_MODE]}},_n=function(e){var t="action collection component concat debugger each each-in else get hash if input link-to loc log mut outlet partial query-params render textarea unbound unless with yield view",n=(e.QUOTE_STRING_MODE,{endsWithParent:!0,relevance:0,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE,{illegal:/\}\}/,begin:/[a-zA-Z0-9_]+=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[a-zA-Z0-9_]+/}]},e.NUMBER_MODE]});return{case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT("{{!(--)?","(--)?}}"),{className:"template-tag",begin:/\{\{[#\/]/,end:/\}\}/,contains:[{className:"name",begin:/[a-zA-Z\.\-]+/,keywords:{"builtin-name":t},starts:n}]},{className:"template-variable",begin:/\{\{[a-zA-Z][a-zA-Z\-]+/,end:/\}\}/,keywords:{keyword:"as",built_in:t},contains:[e.QUOTE_STRING_MODE]}]}},En=function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],illegal:"\\S",contains:[{begin:"^"+t,end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{begin:"^[A-Z]+ (.*?) "+t+"$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{begin:t},{className:"keyword",begin:"[A-Z]+"}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{end:"$",relevance:0}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}},Tn=function(e){var t="[a-zA-Z_\\-!.?+*=<>&#'][a-zA-Z_\\-!.?+*=<>&#'0-9/;:]*",n={begin:t,relevance:0},r={className:"number",begin:"[-+]?\\d+(\\.\\d+)?",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i=e.COMMENT(";","$",{relevance:0}),o={className:"literal",begin:/\b([Tt]rue|[Ff]alse|nil|None)\b/},l={begin:"[\\[\\{]",end:"[\\]\\}]"},s={className:"comment",begin:"\\^"+t},c=e.COMMENT("\\^\\{","\\}"),u={className:"symbol",begin:"[:]{1,2}"+t},d={begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},m={keywords:{"builtin-name":"!= % %= & &= * ** **= *= *map + += , --build-class-- --import-- -= . / // //= /= < << <<= <= = > >= >> >>= @ @= ^ ^= abs accumulate all and any ap-compose ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast callable calling-module-name car case cdr chain chr coll? combinations compile compress cond cons cons? continue count curry cut cycle dec def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first flatten float? fn fnc fnr for for* format fraction genexpr gensym get getattr global globals group-by hasattr hash hex id identity if if* if-not if-python2 import in inc input instance? integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass iter iterable? iterate iterator? keyword keyword? lambda last len let lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all map max merge-with method-decorator min multi-decorator multicombinations name neg? next none? nonlocal not not-in not? nth numeric? oct odd? open or ord partition permutations pos? post-route postwalk pow prewalk print product profile/calls profile/cpu put-route quasiquote quote raise range read read-str recursive-replace reduce remove repeat repeatedly repr require rest round route route-with-methods rwm second seq set-comp setattr setv some sorted string string? sum switch symbol? take take-nth take-while tee try unless unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms xi xor yield yield-from zero? zip zip-longest | |= ~"},lexemes:t,className:"name",begin:t,starts:p},g=[d,a,s,c,i,u,l,r,o,n];return d.contains=[e.COMMENT("comment",""),m,p],p.contains=g,l.contains=g,{aliases:["hylang"],illegal:/\S/,contains:[{className:"meta",begin:"^#!",end:"$"},d,a,s,c,i,u,l,r,o]}},bn=function(e){return{aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:"\\[",end:"\\]"}]},{className:"section",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment",begin:"\\[",end:"\\]",contains:["self"]}]}},vn=function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT(";","$"),e.HASH_COMMENT_MODE,{className:"section",begin:/^\s*\[+/,end:/\]+/},{begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",returnBegin:!0,contains:[{className:"attr",begin:/[a-z0-9\[\]_-]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[{className:"literal",begin:/\bon|off|true|false|yes|no\b/},{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},t,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},e.NUMBER_MODE]}]}]}},An=function(e){return{case_insensitive:!0,keywords:{literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}},Sn=function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",n={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},n,{className:"meta",begin:"@[A-Za-z]+"}]}},yn=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},r={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},a={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},i={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,a]};a.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,r,e.REGEXP_MODE];var o=a.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:o}]}]},{begin:/</,end:/(\/\w+|\w+\/)>/,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}},Nn=function(e){var t={className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}],relevance:0};return{aliases:["wildfly-cli"],lexemes:"[a-z-]+",keywords:{keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"params",begin:/--[\w\-=\/]+/},{className:"function",begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B(([\/.])[\w\-.\/=]+)+/},t]}},Cn=function(e){var t={literal:"true false null"},n=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],r={end:",",endsWithParent:!0,excludeEnd:!0,contains:n,keywords:t},a={begin:"{",end:"}",contains:[{className:"attr",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n"},e.inherit(r,{begin:/:/})],illegal:"\\S"},i={begin:"\\[",end:"\\]",contains:[e.inherit(r)],illegal:"\\S"};return n.splice(n.length,0,a,i),{contains:n,keywords:t,illegal:"\\S"}},On=function(e){var t={keyword:"in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ",literal:"true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ",built_in:"ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool "},n="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",r={lexemes:n,keywords:t,illegal:/<\//},a={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},i={className:"variable",begin:"\\$"+n},o={className:"string",contains:[e.BACKSLASH_ESCAPE,a,i],variants:[{begin:/\w*"""/,end:/"""\w*/,relevance:10},{begin:/\w*"/,end:/"\w*/}]},l={className:"string",contains:[e.BACKSLASH_ESCAPE,a,i],begin:"`",end:"`"},s={className:"meta",begin:"@"+n};return r.contains=[{className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},o,l,s,{className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]},e.HASH_COMMENT_MODE,{className:"keyword",begin:"\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b"},{begin:/<:/}],a.contains=r.contains,r},Mn=function(e){return{contains:[{className:"meta",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"},aliases:["jldoctest"]}]}},xn=function(e){var t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit initinterface annotation data sealed internal infix operator out by constructor super trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:"\\${",end:"}",contains:[e.APOS_STRING_MODE,e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},i={className:"string",variants:[{begin:'"""',end:'"""',contains:[a,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,r]}]},o={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},l={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(i,{className:"meta-string"})]}]};return{keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},n,o,l,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,l,i,e.C_NUMBER_MODE]},e.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0},o,l]},i,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.C_NUMBER_MODE]}},wn=function(e){var t="\\]|\\?>",n={literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else fail_if fail_ifnot fail if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},r=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),a={className:"meta",begin:"\\[noprocess\\]",starts:{end:"\\[/noprocess\\]",returnEnd:!0,contains:[r]}},i={className:"meta",begin:"\\[/noprocess|<\\?(lasso(script)?|=)"},o={className:"symbol",begin:"'[a-zA-Z_][\\w.]*'"},l=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{begin:e.C_NUMBER_RE+"|(-?infinity|NaN)\\b"}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{variants:[{begin:"[#$][a-zA-Z_][\\w.]*"},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"type",begin:"::\\s*",end:"[a-zA-Z_][\\w.]*",illegal:"\\W"},{className:"params",variants:[{begin:"-(?!infinity)[a-zA-Z_][\\w.]*",relevance:0},{begin:"(\\.\\.\\.)"}]},{begin:/(->|\.)\s*/,relevance:0,contains:[o]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z_][\\w.]*(=(?!>))?|[-+*/%](?!>)"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:"[a-zA-Z_][\\w.]*|&[lg]t;",keywords:n,contains:[{className:"meta",begin:t,relevance:0,starts:{end:"\\[|<\\?(lasso(script)?|=)",returnEnd:!0,relevance:0,contains:[r]}},a,i,{className:"meta",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:"[a-zA-Z_][\\w.]*|&[lg]t;",keywords:n,contains:[{className:"meta",begin:t,relevance:0,starts:{end:"\\[noprocess\\]|<\\?(lasso(script)?|=)",returnEnd:!0,contains:[r]}},a,i].concat(l)}},{className:"meta",begin:"\\[",relevance:0},{className:"meta",begin:"^#!",end:"lasso9$",relevance:10}].concat(l)}},Rn=function(e){return{contains:[{className:"attribute",begin:"^dn",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0},relevance:10},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0}},{className:"literal",begin:"^-",end:"$"},e.HASH_COMMENT_MODE]}},Dn=function(e){return{contains:[{className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:" {",returnBegin:!0,excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title",begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]}},In=function(e){var t="([\\w-]+|@{[\\w-]+})",n=[],r=[],a=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},i=function(e,t,n){return{className:e,begin:t,relevance:n}},o={begin:"\\(",end:"\\)",contains:r,relevance:0};r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a("'"),a('"'),e.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},i("number","#[0-9A-Fa-f]+\\b"),o,i("variable","@@?[\\w-]+",10),i("variable","@{[\\w-]+}"),i("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0},{className:"meta",begin:"!important"});var l=r.concat({begin:"{",end:"}",contains:n}),s={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(r)},c={begin:t+"\\s*:",returnBegin:!0,end:"[;}]",relevance:0,contains:[{className:"attribute",begin:t,end:":",excludeEnd:!0,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:r}}]},u={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:r,relevance:0}},d={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:l}},p={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:t,end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,i("keyword","all\\b"),i("variable","@{[\\w-]+}"),i("selector-tag",t+"%?",0),i("selector-id","#"+t),i("selector-class","\\."+t,0),i("selector-tag","&",0),{className:"selector-attr",begin:"\\[",end:"\\]"},{className:"selector-pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{begin:"\\(",end:"\\)",contains:l},{begin:"!important"}]};return n.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,d,c,p),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:n}},kn=function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",n="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",r={className:"literal",begin:"\\b(t{1}|nil)\\b"},a={className:"number",variants:[{begin:n,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+n+" +"+n,end:"\\)"}]},i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o=e.COMMENT(";","$",{relevance:0}),l={begin:"\\*",end:"\\*"},s={className:"symbol",begin:"[:&]"+t},c={begin:t,relevance:0},u={begin:"\\|[^]*?\\|"},d={contains:[a,i,l,s,{begin:"\\(",end:"\\)",contains:["self",r,i,a,c]},c],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'\\|[^]*?\\|"}]},p={variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},m={begin:"\\(\\s*",end:"\\)"},g={endsWithParent:!0,relevance:0};return m.contains=[{className:"name",variants:[{begin:t},{begin:"\\|[^]*?\\|"}]},g],g.contains=[d,p,m,r,a,i,o,l,s,u,c],{illegal:/\S/,contains:[a,{className:"meta",begin:"^#!",end:"$"},r,i,o,d,p,m,c]}},Ln=function(e){var t={begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},n=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],r=e.inherit(e.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),a=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",literal:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[a,r],relevance:0},{beginKeywords:"command on",end:"$",contains:[t,a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r]},{className:"meta",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,r].concat(n),illegal:";$|^\\[|^=|&|{"}},Pn=function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},n="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",r=e.inherit(e.TITLE_MODE,{begin:n}),a={className:"subst",begin:/#\{/,end:/}/,keywords:t},i={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:t},o=[e.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,i]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a,i]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"regexp",variants:[{begin:"//",end:"//[gim]*",contains:[a,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{begin:"@"+n},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];a.contains=o;var l={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(o)}]};return{aliases:["ls"],keywords:t,illegal:/\/\*/,contains:o.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,{className:"function",contains:[r,l],returnBegin:!0,variants:[{begin:"("+n+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+n+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+n+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[r]},r]},{begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}},Bn=function(e){var t="([-a-zA-Z$._][\\w\\-$.]*)";return{keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[{className:"keyword",begin:"i\\d+"},e.COMMENT(";","\\n",{relevance:0}),e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:'"',end:'[^\\\\]"'}],relevance:0},{className:"title",variants:[{begin:"@"+t},{begin:"@\\d+"},{begin:"!"+t},{begin:"!\\d+"+t}]},{className:"symbol",variants:[{begin:"%"+t},{begin:"%\\d+"},{begin:"#\\d+"}]},{className:"number",variants:[{begin:"0[xX][a-fA-F0-9]+"},{begin:"-?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?"}],relevance:0}]}},Fn=function(e){var t={className:"string",begin:'"',end:'"',contains:[{className:"subst",begin:/\\[tn"\\]/}]},n={className:"number",begin:e.C_NUMBER_RE};return{illegal:":",contains:[t,{className:"comment",variants:[e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/")]},n,{className:"section",variants:[{begin:"\\b(?:state|default)\\b"},{begin:"\\b(?:state_(?:entry|exit)|touch(?:_(?:start|end))?|(?:land_)?collision(?:_(?:start|end))?|timer|listen|(?:no_)?sensor|control|(?:not_)?at_(?:rot_)?target|money|email|experience_permissions(?:_denied)?|run_time_permissions|changed|attach|dataserver|moving_(?:start|end)|link_message|(?:on|object)_rez|remote_data|http_re(?:sponse|quest)|path_update|transaction_result)\\b"}]},{className:"built_in",begin:"\\b(?:ll(?:AgentInExperience|(?:Create|DataSize|Delete|KeyCount|Keys|Read|Update)KeyValue|GetExperience(?:Details|ErrorMessage)|ReturnObjectsBy(?:ID|Owner)|Json(?:2List|[GS]etValue|ValueType)|Sin|Cos|Tan|Atan2|Sqrt|Pow|Abs|Fabs|Frand|Floor|Ceil|Round|Vec(?:Mag|Norm|Dist)|Rot(?:Between|2(?:Euler|Fwd|Left|Up))|(?:Euler|Axes)2Rot|Whisper|(?:Region|Owner)?Say|Shout|Listen(?:Control|Remove)?|Sensor(?:Repeat|Remove)?|Detected(?:Name|Key|Owner|Type|Pos|Vel|Grab|Rot|Group|LinkNumber)|Die|Ground|Wind|(?:[GS]et)(?:AnimationOverride|MemoryLimit|PrimMediaParams|ParcelMusicURL|Object(?:Desc|Name)|PhysicsMaterial|Status|Scale|Color|Alpha|Texture|Pos|Rot|Force|Torque)|ResetAnimationOverride|(?:Scale|Offset|Rotate)Texture|(?:Rot)?Target(?:Remove)?|(?:Stop)?MoveToTarget|Apply(?:Rotational)?Impulse|Set(?:KeyframedMotion|ContentType|RegionPos|(?:Angular)?Velocity|Buoyancy|HoverHeight|ForceAndTorque|TimerEvent|ScriptState|Damage|TextureAnim|Sound(?:Queueing|Radius)|Vehicle(?:Type|(?:Float|Vector|Rotation)Param)|(?:Touch|Sit)?Text|Camera(?:Eye|At)Offset|PrimitiveParams|ClickAction|Link(?:Alpha|Color|PrimitiveParams(?:Fast)?|Texture(?:Anim)?|Camera|Media)|RemoteScriptAccessPin|PayPrice|LocalRot)|ScaleByFactor|Get(?:(?:Max|Min)ScaleFactor|ClosestNavPoint|StaticPath|SimStats|Env|PrimitiveParams|Link(?:PrimitiveParams|Number(?:OfSides)?|Key|Name|Media)|HTTPHeader|FreeURLs|Object(?:Details|PermMask|PrimCount)|Parcel(?:MaxPrims|Details|Prim(?:Count|Owners))|Attached(?:List)?|(?:SPMax|Free|Used)Memory|Region(?:Name|TimeDilation|FPS|Corner|AgentCount)|Root(?:Position|Rotation)|UnixTime|(?:Parcel|Region)Flags|(?:Wall|GMT)clock|SimulatorHostname|BoundingBox|GeometricCenter|Creator|NumberOf(?:Prims|NotecardLines|Sides)|Animation(?:List)?|(?:Camera|Local)(?:Pos|Rot)|Vel|Accel|Omega|Time(?:stamp|OfDay)|(?:Object|CenterOf)?Mass|MassMKS|Energy|Owner|(?:Owner)?Key|SunDirection|Texture(?:Offset|Scale|Rot)|Inventory(?:Number|Name|Key|Type|Creator|PermMask)|Permissions(?:Key)?|StartParameter|List(?:Length|EntryType)|Date|Agent(?:Size|Info|Language|List)|LandOwnerAt|NotecardLine|Script(?:Name|State))|(?:Get|Reset|GetAndReset)Time|PlaySound(?:Slave)?|LoopSound(?:Master|Slave)?|(?:Trigger|Stop|Preload)Sound|(?:(?:Get|Delete)Sub|Insert)String|To(?:Upper|Lower)|Give(?:InventoryList|Money)|RezObject|(?:Stop)?LookAt|Sleep|CollisionFilter|(?:Take|Release)Controls|DetachFromAvatar|AttachToAvatar(?:Temp)?|InstantMessage|(?:GetNext)?Email|StopHover|MinEventDelay|RotLookAt|String(?:Length|Trim)|(?:Start|Stop)Animation|TargetOmega|Request(?:Experience)?Permissions|(?:Create|Break)Link|BreakAllLinks|(?:Give|Remove)Inventory|Water|PassTouches|Request(?:Agent|Inventory)Data|TeleportAgent(?:Home|GlobalCoords)?|ModifyLand|CollisionSound|ResetScript|MessageLinked|PushObject|PassCollisions|AxisAngle2Rot|Rot2(?:Axis|Angle)|A(?:cos|sin)|AngleBetween|AllowInventoryDrop|SubStringIndex|List2(?:CSV|Integer|Json|Float|String|Key|Vector|Rot|List(?:Strided)?)|DeleteSubList|List(?:Statistics|Sort|Randomize|(?:Insert|Find|Replace)List)|EdgeOfWorld|AdjustSoundVolume|Key2Name|TriggerSoundLimited|EjectFromLand|(?:CSV|ParseString)2List|OverMyLand|SameGroup|UnSit|Ground(?:Slope|Normal|Contour)|GroundRepel|(?:Set|Remove)VehicleFlags|(?:AvatarOn)?(?:Link)?SitTarget|Script(?:Danger|Profiler)|Dialog|VolumeDetect|ResetOtherScript|RemoteLoadScriptPin|(?:Open|Close)RemoteDataChannel|SendRemoteData|RemoteDataReply|(?:Integer|String)ToBase64|XorBase64|Log(?:10)?|Base64To(?:String|Integer)|ParseStringKeepNulls|RezAtRoot|RequestSimulatorData|ForceMouselook|(?:Load|Release|(?:E|Une)scape)URL|ParcelMedia(?:CommandList|Query)|ModPow|MapDestination|(?:RemoveFrom|AddTo|Reset)Land(?:Pass|Ban)List|(?:Set|Clear)CameraParams|HTTP(?:Request|Response)|TextBox|DetectedTouch(?:UV|Face|Pos|(?:N|Bin)ormal|ST)|(?:MD5|SHA1|DumpList2)String|Request(?:Secure)?URL|Clear(?:Prim|Link)Media|(?:Link)?ParticleSystem|(?:Get|Request)(?:Username|DisplayName)|RegionSayTo|CastRay|GenerateKey|TransferLindenDollars|ManageEstateAccess|(?:Create|Delete)Character|ExecCharacterCmd|Evade|FleeFrom|NavigateTo|PatrolPoints|Pursue|UpdateCharacter|WanderWithin))\\b"},{className:"literal",variants:[{begin:"\\b(?:PI|TWO_PI|PI_BY_TWO|DEG_TO_RAD|RAD_TO_DEG|SQRT2)\\b"},{begin:"\\b(?:XP_ERROR_(?:EXPERIENCES_DISABLED|EXPERIENCE_(?:DISABLED|SUSPENDED)|INVALID_(?:EXPERIENCE|PARAMETERS)|KEY_NOT_FOUND|MATURITY_EXCEEDED|NONE|NOT_(?:FOUND|PERMITTED(?:_LAND)?)|NO_EXPERIENCE|QUOTA_EXCEEDED|RETRY_UPDATE|STORAGE_EXCEPTION|STORE_DISABLED|THROTTLED|UNKNOWN_ERROR)|JSON_APPEND|STATUS_(?:PHYSICS|ROTATE_[XYZ]|PHANTOM|SANDBOX|BLOCK_GRAB(?:_OBJECT)?|(?:DIE|RETURN)_AT_EDGE|CAST_SHADOWS|OK|MALFORMED_PARAMS|TYPE_MISMATCH|BOUNDS_ERROR|NOT_(?:FOUND|SUPPORTED)|INTERNAL_ERROR|WHITELIST_FAILED)|AGENT(?:_(?:BY_(?:LEGACY_|USER)NAME|FLYING|ATTACHMENTS|SCRIPTED|MOUSELOOK|SITTING|ON_OBJECT|AWAY|WALKING|IN_AIR|TYPING|CROUCHING|BUSY|ALWAYS_RUN|AUTOPILOT|LIST_(?:PARCEL(?:_OWNER)?|REGION)))?|CAMERA_(?:PITCH|DISTANCE|BEHINDNESS_(?:ANGLE|LAG)|(?:FOCUS|POSITION)(?:_(?:THRESHOLD|LOCKED|LAG))?|FOCUS_OFFSET|ACTIVE)|ANIM_ON|LOOP|REVERSE|PING_PONG|SMOOTH|ROTATE|SCALE|ALL_SIDES|LINK_(?:ROOT|SET|ALL_(?:OTHERS|CHILDREN)|THIS)|ACTIVE|PASS(?:IVE|_(?:ALWAYS|IF_NOT_HANDLED|NEVER))|SCRIPTED|CONTROL_(?:FWD|BACK|(?:ROT_)?(?:LEFT|RIGHT)|UP|DOWN|(?:ML_)?LBUTTON)|PERMISSION_(?:RETURN_OBJECTS|DEBIT|OVERRIDE_ANIMATIONS|SILENT_ESTATE_MANAGEMENT|TAKE_CONTROLS|TRIGGER_ANIMATION|ATTACH|CHANGE_LINKS|(?:CONTROL|TRACK)_CAMERA|TELEPORT)|INVENTORY_(?:TEXTURE|SOUND|OBJECT|SCRIPT|LANDMARK|CLOTHING|NOTECARD|BODYPART|ANIMATION|GESTURE|ALL|NONE)|CHANGED_(?:INVENTORY|COLOR|SHAPE|SCALE|TEXTURE|LINK|ALLOWED_DROP|OWNER|REGION(?:_START)?|TELEPORT|MEDIA)|OBJECT_(?:CLICK_ACTION|HOVER_HEIGHT|LAST_OWNER_ID|(?:PHYSICS|SERVER|STREAMING)_COST|UNKNOWN_DETAIL|CHARACTER_TIME|PHANTOM|PHYSICS|TEMP_ON_REZ|NAME|DESC|POS|PRIM_(?:COUNT|EQUIVALENCE)|RETURN_(?:PARCEL(?:_OWNER)?|REGION)|REZZER_KEY|ROO?T|VELOCITY|OMEGA|OWNER|GROUP|CREATOR|ATTACHED_POINT|RENDER_WEIGHT|(?:BODY_SHAPE|PATHFINDING)_TYPE|(?:RUNNING|TOTAL)_SCRIPT_COUNT|TOTAL_INVENTORY_COUNT|SCRIPT_(?:MEMORY|TIME))|TYPE_(?:INTEGER|FLOAT|STRING|KEY|VECTOR|ROTATION|INVALID)|(?:DEBUG|PUBLIC)_CHANNEL|ATTACH_(?:AVATAR_CENTER|CHEST|HEAD|BACK|PELVIS|MOUTH|CHIN|NECK|NOSE|BELLY|[LR](?:SHOULDER|HAND|FOOT|EAR|EYE|[UL](?:ARM|LEG)|HIP)|(?:LEFT|RIGHT)_PEC|HUD_(?:CENTER_[12]|TOP_(?:RIGHT|CENTER|LEFT)|BOTTOM(?:_(?:RIGHT|LEFT))?)|[LR]HAND_RING1|TAIL_(?:BASE|TIP)|[LR]WING|FACE_(?:JAW|[LR]EAR|[LR]EYE|TOUNGE)|GROIN|HIND_[LR]FOOT)|LAND_(?:LEVEL|RAISE|LOWER|SMOOTH|NOISE|REVERT)|DATA_(?:ONLINE|NAME|BORN|SIM_(?:POS|STATUS|RATING)|PAYINFO)|PAYMENT_INFO_(?:ON_FILE|USED)|REMOTE_DATA_(?:CHANNEL|REQUEST|REPLY)|PSYS_(?:PART_(?:BF_(?:ZERO|ONE(?:_MINUS_(?:DEST_COLOR|SOURCE_(ALPHA|COLOR)))?|DEST_COLOR|SOURCE_(ALPHA|COLOR))|BLEND_FUNC_(DEST|SOURCE)|FLAGS|(?:START|END)_(?:COLOR|ALPHA|SCALE|GLOW)|MAX_AGE|(?:RIBBON|WIND|INTERP_(?:COLOR|SCALE)|BOUNCE|FOLLOW_(?:SRC|VELOCITY)|TARGET_(?:POS|LINEAR)|EMISSIVE)_MASK)|SRC_(?:MAX_AGE|PATTERN|ANGLE_(?:BEGIN|END)|BURST_(?:RATE|PART_COUNT|RADIUS|SPEED_(?:MIN|MAX))|ACCEL|TEXTURE|TARGET_KEY|OMEGA|PATTERN_(?:DROP|EXPLODE|ANGLE(?:_CONE(?:_EMPTY)?)?)))|VEHICLE_(?:REFERENCE_FRAME|TYPE_(?:NONE|SLED|CAR|BOAT|AIRPLANE|BALLOON)|(?:LINEAR|ANGULAR)_(?:FRICTION_TIMESCALE|MOTOR_DIRECTION)|LINEAR_MOTOR_OFFSET|HOVER_(?:HEIGHT|EFFICIENCY|TIMESCALE)|BUOYANCY|(?:LINEAR|ANGULAR)_(?:DEFLECTION_(?:EFFICIENCY|TIMESCALE)|MOTOR_(?:DECAY_)?TIMESCALE)|VERTICAL_ATTRACTION_(?:EFFICIENCY|TIMESCALE)|BANKING_(?:EFFICIENCY|MIX|TIMESCALE)|FLAG_(?:NO_DEFLECTION_UP|LIMIT_(?:ROLL_ONLY|MOTOR_UP)|HOVER_(?:(?:WATER|TERRAIN|UP)_ONLY|GLOBAL_HEIGHT)|MOUSELOOK_(?:STEER|BANK)|CAMERA_DECOUPLED))|PRIM_(?:ALPHA_MODE(?:_(?:BLEND|EMISSIVE|MASK|NONE))?|NORMAL|SPECULAR|TYPE(?:_(?:BOX|CYLINDER|PRISM|SPHERE|TORUS|TUBE|RING|SCULPT))?|HOLE_(?:DEFAULT|CIRCLE|SQUARE|TRIANGLE)|MATERIAL(?:_(?:STONE|METAL|GLASS|WOOD|FLESH|PLASTIC|RUBBER))?|SHINY_(?:NONE|LOW|MEDIUM|HIGH)|BUMP_(?:NONE|BRIGHT|DARK|WOOD|BARK|BRICKS|CHECKER|CONCRETE|TILE|STONE|DISKS|GRAVEL|BLOBS|SIDING|LARGETILE|STUCCO|SUCTION|WEAVE)|TEXGEN_(?:DEFAULT|PLANAR)|SCULPT_(?:TYPE_(?:SPHERE|TORUS|PLANE|CYLINDER|MASK)|FLAG_(?:MIRROR|INVERT))|PHYSICS(?:_(?:SHAPE_(?:CONVEX|NONE|PRIM|TYPE)))?|(?:POS|ROT)_LOCAL|SLICE|TEXT|FLEXIBLE|POINT_LIGHT|TEMP_ON_REZ|PHANTOM|POSITION|SIZE|ROTATION|TEXTURE|NAME|OMEGA|DESC|LINK_TARGET|COLOR|BUMP_SHINY|FULLBRIGHT|TEXGEN|GLOW|MEDIA_(?:ALT_IMAGE_ENABLE|CONTROLS|(?:CURRENT|HOME)_URL|AUTO_(?:LOOP|PLAY|SCALE|ZOOM)|FIRST_CLICK_INTERACT|(?:WIDTH|HEIGHT)_PIXELS|WHITELIST(?:_ENABLE)?|PERMS_(?:INTERACT|CONTROL)|PARAM_MAX|CONTROLS_(?:STANDARD|MINI)|PERM_(?:NONE|OWNER|GROUP|ANYONE)|MAX_(?:URL_LENGTH|WHITELIST_(?:SIZE|COUNT)|(?:WIDTH|HEIGHT)_PIXELS)))|MASK_(?:BASE|OWNER|GROUP|EVERYONE|NEXT)|PERM_(?:TRANSFER|MODIFY|COPY|MOVE|ALL)|PARCEL_(?:MEDIA_COMMAND_(?:STOP|PAUSE|PLAY|LOOP|TEXTURE|URL|TIME|AGENT|UNLOAD|AUTO_ALIGN|TYPE|SIZE|DESC|LOOP_SET)|FLAG_(?:ALLOW_(?:FLY|(?:GROUP_)?SCRIPTS|LANDMARK|TERRAFORM|DAMAGE|CREATE_(?:GROUP_)?OBJECTS)|USE_(?:ACCESS_(?:GROUP|LIST)|BAN_LIST|LAND_PASS_LIST)|LOCAL_SOUND_ONLY|RESTRICT_PUSHOBJECT|ALLOW_(?:GROUP|ALL)_OBJECT_ENTRY)|COUNT_(?:TOTAL|OWNER|GROUP|OTHER|SELECTED|TEMP)|DETAILS_(?:NAME|DESC|OWNER|GROUP|AREA|ID|SEE_AVATARS))|LIST_STAT_(?:MAX|MIN|MEAN|MEDIAN|STD_DEV|SUM(?:_SQUARES)?|NUM_COUNT|GEOMETRIC_MEAN|RANGE)|PAY_(?:HIDE|DEFAULT)|REGION_FLAG_(?:ALLOW_DAMAGE|FIXED_SUN|BLOCK_TERRAFORM|SANDBOX|DISABLE_(?:COLLISIONS|PHYSICS)|BLOCK_FLY|ALLOW_DIRECT_TELEPORT|RESTRICT_PUSHOBJECT)|HTTP_(?:METHOD|MIMETYPE|BODY_(?:MAXLENGTH|TRUNCATED)|CUSTOM_HEADER|PRAGMA_NO_CACHE|VERBOSE_THROTTLE|VERIFY_CERT)|STRING_(?:TRIM(?:_(?:HEAD|TAIL))?)|CLICK_ACTION_(?:NONE|TOUCH|SIT|BUY|PAY|OPEN(?:_MEDIA)?|PLAY|ZOOM)|TOUCH_INVALID_FACE|PROFILE_(?:NONE|SCRIPT_MEMORY)|RC_(?:DATA_FLAGS|DETECT_PHANTOM|GET_(?:LINK_NUM|NORMAL|ROOT_KEY)|MAX_HITS|REJECT_(?:TYPES|AGENTS|(?:NON)?PHYSICAL|LAND))|RCERR_(?:CAST_TIME_EXCEEDED|SIM_PERF_LOW|UNKNOWN)|ESTATE_ACCESS_(?:ALLOWED_(?:AGENT|GROUP)_(?:ADD|REMOVE)|BANNED_AGENT_(?:ADD|REMOVE))|DENSITY|FRICTION|RESTITUTION|GRAVITY_MULTIPLIER|KFM_(?:COMMAND|CMD_(?:PLAY|STOP|PAUSE)|MODE|FORWARD|LOOP|PING_PONG|REVERSE|DATA|ROTATION|TRANSLATION)|ERR_(?:GENERIC|PARCEL_PERMISSIONS|MALFORMED_PARAMS|RUNTIME_PERMISSIONS|THROTTLED)|CHARACTER_(?:CMD_(?:(?:SMOOTH_)?STOP|JUMP)|DESIRED_(?:TURN_)?SPEED|RADIUS|STAY_WITHIN_PARCEL|LENGTH|ORIENTATION|ACCOUNT_FOR_SKIPPED_FRAMES|AVOIDANCE_MODE|TYPE(?:_(?:[ABCD]|NONE))?|MAX_(?:DECEL|TURN_RADIUS|(?:ACCEL|SPEED)))|PURSUIT_(?:OFFSET|FUZZ_FACTOR|GOAL_TOLERANCE|INTERCEPT)|REQUIRE_LINE_OF_SIGHT|FORCE_DIRECT_PATH|VERTICAL|HORIZONTAL|AVOID_(?:CHARACTERS|DYNAMIC_OBSTACLES|NONE)|PU_(?:EVADE_(?:HIDDEN|SPOTTED)|FAILURE_(?:DYNAMIC_PATHFINDING_DISABLED|INVALID_(?:GOAL|START)|NO_(?:NAVMESH|VALID_DESTINATION)|OTHER|TARGET_GONE|(?:PARCEL_)?UNREACHABLE)|(?:GOAL|SLOWDOWN_DISTANCE)_REACHED)|TRAVERSAL_TYPE(?:_(?:FAST|NONE|SLOW))?|CONTENT_TYPE_(?:ATOM|FORM|HTML|JSON|LLSD|RSS|TEXT|XHTML|XML)|GCNP_(?:RADIUS|STATIC)|(?:PATROL|WANDER)_PAUSE_AT_WAYPOINTS|OPT_(?:AVATAR|CHARACTER|EXCLUSION_VOLUME|LEGACY_LINKSET|MATERIAL_VOLUME|OTHER|STATIC_OBSTACLE|WALKABLE)|SIM_STAT_PCT_CHARS_STEPPED)\\b"},{begin:"\\b(?:FALSE|TRUE)\\b"},{begin:"\\b(?:ZERO_ROTATION)\\b"},{begin:"\\b(?:EOF|JSON_(?:ARRAY|DELETE|FALSE|INVALID|NULL|NUMBER|OBJECT|STRING|TRUE)|NULL_KEY|TEXTURE_(?:BLANK|DEFAULT|MEDIA|PLYWOOD|TRANSPARENT)|URL_REQUEST_(?:GRANTED|DENIED))\\b"},{begin:"\\b(?:ZERO_VECTOR|TOUCH_INVALID_(?:TEXCOORD|VECTOR))\\b"}]},{className:"type",begin:"\\b(?:integer|float|string|key|vector|quaternion|rotation|list)\\b"}]}},Un=function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},n=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:{literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type unpack xpcall arg selfcoroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:n.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:n}].concat(n)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}},Hn=function(e){var t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t]},r={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[t]},a={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*[:+?]?=",illegal:"\\n",returnBegin:!0,contains:[{begin:"^"+e.UNDERSCORE_IDENT_RE,end:"[:+?]?=",excludeEnd:!0}]},i={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[t]};return{aliases:["mk","mak"],keywords:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath",lexemes:/[\w-]+/,contains:[e.HASH_COMMENT_MODE,t,n,r,a,{className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{"meta-keyword":".PHONY"},lexemes:/[\.\w]+/},i]}},Gn=function(e){return{aliases:["mma"],lexemes:"(\\$|\\b)"+e.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:/\{/,end:/\}/,illegal:/:/}]}},qn=function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}],n={relevance:0,contains:[{begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}]}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},n.contains[0]]},{begin:"\\[",end:"\\]",contains:t,relevance:0,starts:n},{begin:"\\{",end:/}/,contains:t,relevance:0,starts:n},{begin:/\)/,relevance:0,starts:n},e.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.COMMENT("\\%","$")].concat(t)}},zn=function(e){return{lexemes:"[A-Za-z_%][0-9A-Za-z_%]*",keywords:{keyword:"if then else elseif for thru do while unless step in and or not",literal:"true false unknown inf minf ind und %e %i %pi %phi %gamma",built_in:" abasep abs absint absolute_real_time acos acosh acot acoth acsc acsch activate addcol add_edge add_edges addmatrices addrow add_vertex add_vertices adjacency_matrix adjoin adjoint af agd airy airy_ai airy_bi airy_dai airy_dbi algsys alg_type alias allroots alphacharp alphanumericp amortization %and annuity_fv annuity_pv antid antidiff AntiDifference append appendfile apply apply1 apply2 applyb1 apropos args arit_amortization arithmetic arithsum array arrayapply arrayinfo arraymake arraysetapply ascii asec asech asin asinh askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume assume_external_byte_order asympa at atan atan2 atanh atensimp atom atvalue augcoefmatrix augmented_lagrangian_method av average_degree backtrace bars barsplot barsplot_description base64 base64_decode bashindices batch batchload bc2 bdvac belln benefit_cost bern bernpoly bernstein_approx bernstein_expand bernstein_poly bessel bessel_i bessel_j bessel_k bessel_simplify bessel_y beta beta_incomplete beta_incomplete_generalized beta_incomplete_regularized bezout bfallroots bffac bf_find_root bf_fmin_cobyla bfhzeta bfloat bfloatp bfpsi bfpsi0 bfzeta biconnected_components bimetric binomial bipartition block blockmatrixp bode_gain bode_phase bothcoef box boxplot boxplot_description break bug_report build_info|10 buildq build_sample burn cabs canform canten cardinality carg cartan cartesian_product catch cauchy_matrix cbffac cdf_bernoulli cdf_beta cdf_binomial cdf_cauchy cdf_chi2 cdf_continuous_uniform cdf_discrete_uniform cdf_exp cdf_f cdf_gamma cdf_general_finite_discrete cdf_geometric cdf_gumbel cdf_hypergeometric cdf_laplace cdf_logistic cdf_lognormal cdf_negative_binomial cdf_noncentral_chi2 cdf_noncentral_student_t cdf_normal cdf_pareto cdf_poisson cdf_rank_sum cdf_rayleigh cdf_signed_rank cdf_student_t cdf_weibull cdisplay ceiling central_moment cequal cequalignore cf cfdisrep cfexpand cgeodesic cgreaterp cgreaterpignore changename changevar chaosgame charat charfun charfun2 charlist charp charpoly chdir chebyshev_t chebyshev_u checkdiv check_overlaps chinese cholesky christof chromatic_index chromatic_number cint circulant_graph clear_edge_weight clear_rules clear_vertex_label clebsch_gordan clebsch_graph clessp clesspignore close closefile cmetric coeff coefmatrix cograd col collapse collectterms columnop columnspace columnswap columnvector combination combine comp2pui compare compfile compile compile_file complement_graph complete_bipartite_graph complete_graph complex_number_p components compose_functions concan concat conjugate conmetderiv connected_components connect_vertices cons constant constantp constituent constvalue cont2part content continuous_freq contortion contour_plot contract contract_edge contragrad contrib_ode convert coord copy copy_file copy_graph copylist copymatrix cor cos cosh cot coth cov cov1 covdiff covect covers crc24sum create_graph create_list csc csch csetup cspline ctaylor ct_coordsys ctransform ctranspose cube_graph cuboctahedron_graph cunlisp cv cycle_digraph cycle_graph cylindrical days360 dblint deactivate declare declare_constvalue declare_dimensions declare_fundamental_dimensions declare_fundamental_units declare_qty declare_translated declare_unit_conversion declare_units declare_weights decsym defcon define define_alt_display define_variable defint defmatch defrule defstruct deftaylor degree_sequence del delete deleten delta demo demoivre denom depends derivdegree derivlist describe desolve determinant dfloat dgauss_a dgauss_b dgeev dgemm dgeqrf dgesv dgesvd diag diagmatrix diag_matrix diagmatrixp diameter diff digitcharp dimacs_export dimacs_import dimension dimensionless dimensions dimensions_as_list direct directory discrete_freq disjoin disjointp disolate disp dispcon dispform dispfun dispJordan display disprule dispterms distrib divide divisors divsum dkummer_m dkummer_u dlange dodecahedron_graph dotproduct dotsimp dpart draw draw2d draw3d drawdf draw_file draw_graph dscalar echelon edge_coloring edge_connectivity edges eigens_by_jacobi eigenvalues eigenvectors eighth einstein eivals eivects elapsed_real_time elapsed_run_time ele2comp ele2polynome ele2pui elem elementp elevation_grid elim elim_allbut eliminate eliminate_using ellipse elliptic_e elliptic_ec elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix empty_graph emptyp endcons entermatrix entertensor entier equal equalp equiv_classes erf erfc erf_generalized erfi errcatch error errormsg errors euler ev eval_string evenp every evolution evolution2d evundiff example exp expand expandwrt expandwrt_factored expint expintegral_chi expintegral_ci expintegral_e expintegral_e1 expintegral_ei expintegral_e_simplify expintegral_li expintegral_shi expintegral_si explicit explose exponentialize express expt exsec extdiff extract_linear_equations extremal_subset ezgcd %f f90 facsum factcomb factor factorfacsum factorial factorout factorsum facts fast_central_elements fast_linsolve fasttimes featurep fernfale fft fib fibtophi fifth filename_merge file_search file_type fillarray findde find_root find_root_abs find_root_error find_root_rel first fix flatten flength float floatnump floor flower_snark flush flush1deriv flushd flushnd flush_output fmin_cobyla forget fortran fourcos fourexpand fourier fourier_elim fourint fourintcos fourintsin foursimp foursin fourth fposition frame_bracket freeof freshline fresnel_c fresnel_s from_adjacency_matrix frucht_graph full_listify fullmap fullmapl fullratsimp fullratsubst fullsetify funcsolve fundamental_dimensions fundamental_units fundef funmake funp fv g0 g1 gamma gamma_greek gamma_incomplete gamma_incomplete_generalized gamma_incomplete_regularized gauss gauss_a gauss_b gaussprob gcd gcdex gcdivide gcfac gcfactor gd generalized_lambert_w genfact gen_laguerre genmatrix gensym geo_amortization geo_annuity_fv geo_annuity_pv geomap geometric geometric_mean geosum get getcurrentdirectory get_edge_weight getenv get_lu_factors get_output_stream_string get_pixel get_plot_option get_tex_environment get_tex_environment_default get_vertex_label gfactor gfactorsum ggf girth global_variances gn gnuplot_close gnuplot_replot gnuplot_reset gnuplot_restart gnuplot_start go Gosper GosperSum gr2d gr3d gradef gramschmidt graph6_decode graph6_encode graph6_export graph6_import graph_center graph_charpoly graph_eigenvalues graph_flow graph_order graph_periphery graph_product graph_size graph_union great_rhombicosidodecahedron_graph great_rhombicuboctahedron_graph grid_graph grind grobner_basis grotzch_graph hamilton_cycle hamilton_path hankel hankel_1 hankel_2 harmonic harmonic_mean hav heawood_graph hermite hessian hgfred hilbertmap hilbert_matrix hipow histogram histogram_description hodge horner hypergeometric i0 i1 %ibes ic1 ic2 ic_convert ichr1 ichr2 icosahedron_graph icosidodecahedron_graph icurvature ident identfor identity idiff idim idummy ieqn %if ifactors iframes ifs igcdex igeodesic_coords ilt image imagpart imetric implicit implicit_derivative implicit_plot indexed_tensor indices induced_subgraph inferencep inference_result infix info_display init_atensor init_ctensor in_neighbors innerproduct inpart inprod inrt integerp integer_partitions integrate intersect intersection intervalp intopois intosum invariant1 invariant2 inverse_fft inverse_jacobi_cd inverse_jacobi_cn inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd inverse_jacobi_sn invert invert_by_adjoint invert_by_lu inv_mod irr is is_biconnected is_bipartite is_connected is_digraph is_edge_in_graph is_graph is_graph_or_digraph ishow is_isomorphic isolate isomorphism is_planar isqrt isreal_p is_sconnected is_tree is_vertex_in_graph items_inference %j j0 j1 jacobi jacobian jacobi_cd jacobi_cn jacobi_cs jacobi_dc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_p jacobi_sc jacobi_sd jacobi_sn JF jn join jordan julia julia_set julia_sin %k kdels kdelta kill killcontext kostka kron_delta kronecker_product kummer_m kummer_u kurtosis kurtosis_bernoulli kurtosis_beta kurtosis_binomial kurtosis_chi2 kurtosis_continuous_uniform kurtosis_discrete_uniform kurtosis_exp kurtosis_f kurtosis_gamma kurtosis_general_finite_discrete kurtosis_geometric kurtosis_gumbel kurtosis_hypergeometric kurtosis_laplace kurtosis_logistic kurtosis_lognormal kurtosis_negative_binomial kurtosis_noncentral_chi2 kurtosis_noncentral_student_t kurtosis_normal kurtosis_pareto kurtosis_poisson kurtosis_rayleigh kurtosis_student_t kurtosis_weibull label labels lagrange laguerre lambda lambert_w laplace laplacian_matrix last lbfgs lc2kdt lcharp lc_l lcm lc_u ldefint ldisp ldisplay legendre_p legendre_q leinstein length let letrules letsimp levi_civita lfreeof lgtreillis lhs li liediff limit Lindstedt linear linearinterpol linear_program linear_regression line_graph linsolve listarray list_correlations listify list_matrix_entries list_nc_monomials listoftens listofvars listp lmax lmin load loadfile local locate_matrix_entry log logcontract log_gamma lopow lorentz_gauge lowercasep lpart lratsubst lreduce lriemann lsquares_estimates lsquares_estimates_approximate lsquares_estimates_exact lsquares_mse lsquares_residual_mse lsquares_residuals lsum ltreillis lu_backsub lucas lu_factor %m macroexpand macroexpand1 make_array makebox makefact makegamma make_graph make_level_picture makelist makeOrders make_poly_continent make_poly_country make_polygon make_random_state make_rgb_picture makeset make_string_input_stream make_string_output_stream make_transform mandelbrot mandelbrot_set map mapatom maplist matchdeclare matchfix mat_cond mat_fullunblocker mat_function mathml_display mat_norm matrix matrixmap matrixp matrix_size mattrace mat_trace mat_unblocker max max_clique max_degree max_flow maximize_lp max_independent_set max_matching maybe md5sum mean mean_bernoulli mean_beta mean_binomial mean_chi2 mean_continuous_uniform mean_deviation mean_discrete_uniform mean_exp mean_f mean_gamma mean_general_finite_discrete mean_geometric mean_gumbel mean_hypergeometric mean_laplace mean_logistic mean_lognormal mean_negative_binomial mean_noncentral_chi2 mean_noncentral_student_t mean_normal mean_pareto mean_poisson mean_rayleigh mean_student_t mean_weibull median median_deviation member mesh metricexpandall mgf1_sha1 min min_degree min_edge_cut minfactorial minimalPoly minimize_lp minimum_spanning_tree minor minpack_lsquares minpack_solve min_vertex_cover min_vertex_cut mkdir mnewton mod mode_declare mode_identity ModeMatrix moebius mon2schur mono monomial_dimensions multibernstein_poly multi_display_for_texinfo multi_elem multinomial multinomial_coeff multi_orbit multiplot_mode multi_pui multsym multthru mycielski_graph nary natural_unit nc_degree ncexpt ncharpoly negative_picture neighbors new newcontext newdet new_graph newline newton new_variable next_prime nicedummies niceindices ninth nofix nonarray noncentral_moment nonmetricity nonnegintegerp nonscalarp nonzeroandfreeof notequal nounify nptetrad npv nroots nterms ntermst nthroot nullity nullspace num numbered_boundaries numberp number_to_octets num_distinct_partitions numerval numfactor num_partitions nusum nzeta nzetai nzetar octets_to_number octets_to_oid odd_girth oddp ode2 ode_check odelin oid_to_octets op opena opena_binary openr openr_binary openw openw_binary operatorp opsubst optimize %or orbit orbits ordergreat ordergreatp orderless orderlessp orthogonal_complement orthopoly_recur orthopoly_weight outermap out_neighbors outofpois pade parabolic_cylinder_d parametric parametric_surface parg parGosper parse_string parse_timedate part part2cont partfrac partition partition_set partpol path_digraph path_graph pathname_directory pathname_name pathname_type pdf_bernoulli pdf_beta pdf_binomial pdf_cauchy pdf_chi2 pdf_continuous_uniform pdf_discrete_uniform pdf_exp pdf_f pdf_gamma pdf_general_finite_discrete pdf_geometric pdf_gumbel pdf_hypergeometric pdf_laplace pdf_logistic pdf_lognormal pdf_negative_binomial pdf_noncentral_chi2 pdf_noncentral_student_t pdf_normal pdf_pareto pdf_poisson pdf_rank_sum pdf_rayleigh pdf_signed_rank pdf_student_t pdf_weibull pearson_skewness permanent permut permutation permutations petersen_graph petrov pickapart picture_equalp picturep piechart piechart_description planar_embedding playback plog plot2d plot3d plotdf ploteq plsquares pochhammer points poisdiff poisexpt poisint poismap poisplus poissimp poissubst poistimes poistrim polar polarform polartorect polar_to_xy poly_add poly_buchberger poly_buchberger_criterion poly_colon_ideal poly_content polydecomp poly_depends_p poly_elimination_ideal poly_exact_divide poly_expand poly_expt poly_gcd polygon poly_grobner poly_grobner_equal poly_grobner_member poly_grobner_subsetp poly_ideal_intersection poly_ideal_polysaturation poly_ideal_polysaturation1 poly_ideal_saturation poly_ideal_saturation1 poly_lcm poly_minimization polymod poly_multiply polynome2ele polynomialp poly_normal_form poly_normalize poly_normalize_list poly_polysaturation_extension poly_primitive_part poly_pseudo_divide poly_reduced_grobner poly_reduction poly_saturation_extension poly_s_polynomial poly_subtract polytocompanion pop postfix potential power_mod powerseries powerset prefix prev_prime primep primes principal_components print printf printfile print_graph printpois printprops prodrac product properties propvars psi psubst ptriangularize pui pui2comp pui2ele pui2polynome pui_direct puireduc push put pv qput qrange qty quad_control quad_qag quad_qagi quad_qagp quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quadrilateral quantile quantile_bernoulli quantile_beta quantile_binomial quantile_cauchy quantile_chi2 quantile_continuous_uniform quantile_discrete_uniform quantile_exp quantile_f quantile_gamma quantile_general_finite_discrete quantile_geometric quantile_gumbel quantile_hypergeometric quantile_laplace quantile_logistic quantile_lognormal quantile_negative_binomial quantile_noncentral_chi2 quantile_noncentral_student_t quantile_normal quantile_pareto quantile_poisson quantile_rayleigh quantile_student_t quantile_weibull quartile_skewness quit qunit quotient racah_v racah_w radcan radius random random_bernoulli random_beta random_binomial random_bipartite_graph random_cauchy random_chi2 random_continuous_uniform random_digraph random_discrete_uniform random_exp random_f random_gamma random_general_finite_discrete random_geometric random_graph random_graph1 random_gumbel random_hypergeometric random_laplace random_logistic random_lognormal random_negative_binomial random_network random_noncentral_chi2 random_noncentral_student_t random_normal random_pareto random_permutation random_poisson random_rayleigh random_regular_graph random_student_t random_tournament random_tree random_weibull range rank rat ratcoef ratdenom ratdiff ratdisrep ratexpand ratinterpol rational rationalize ratnumer ratnump ratp ratsimp ratsubst ratvars ratweight read read_array read_binary_array read_binary_list read_binary_matrix readbyte readchar read_hashed_array readline read_list read_matrix read_nested_list readonly read_xpm real_imagpart_to_conjugate realpart realroots rearray rectangle rectform rectform_log_if_constant recttopolar rediff reduce_consts reduce_order region region_boundaries region_boundaries_plus rem remainder remarray rembox remcomps remcon remcoord remfun remfunction remlet remove remove_constvalue remove_dimensions remove_edge remove_fundamental_dimensions remove_fundamental_units remove_plot_option remove_vertex rempart remrule remsym remvalue rename rename_file reset reset_displays residue resolvante resolvante_alternee1 resolvante_bipartite resolvante_diedrale resolvante_klein resolvante_klein3 resolvante_produit_sym resolvante_unitaire resolvante_vierer rest resultant return reveal reverse revert revert2 rgb2level rhs ricci riemann rinvariant risch rk rmdir rncombine romberg room rootscontract round row rowop rowswap rreduce run_testsuite %s save saving scalarp scaled_bessel_i scaled_bessel_i0 scaled_bessel_i1 scalefactors scanmap scatterplot scatterplot_description scene schur2comp sconcat scopy scsimp scurvature sdowncase sec sech second sequal sequalignore set_alt_display setdifference set_draw_defaults set_edge_weight setelmx setequalp setify setp set_partitions set_plot_option set_prompt set_random_state set_tex_environment set_tex_environment_default setunits setup_autoload set_up_dot_simplifications set_vertex_label seventh sexplode sf sha1sum sha256sum shortest_path shortest_weighted_path show showcomps showratvars sierpinskiale sierpinskimap sign signum similaritytransform simp_inequality simplify_sum simplode simpmetderiv simtran sin sinh sinsert sinvertcase sixth skewness skewness_bernoulli skewness_beta skewness_binomial skewness_chi2 skewness_continuous_uniform skewness_discrete_uniform skewness_exp skewness_f skewness_gamma skewness_general_finite_discrete skewness_geometric skewness_gumbel skewness_hypergeometric skewness_laplace skewness_logistic skewness_lognormal skewness_negative_binomial skewness_noncentral_chi2 skewness_noncentral_student_t skewness_normal skewness_pareto skewness_poisson skewness_rayleigh skewness_student_t skewness_weibull slength smake small_rhombicosidodecahedron_graph small_rhombicuboctahedron_graph smax smin smismatch snowmap snub_cube_graph snub_dodecahedron_graph solve solve_rec solve_rec_rat some somrac sort sparse6_decode sparse6_encode sparse6_export sparse6_import specint spherical spherical_bessel_j spherical_bessel_y spherical_hankel1 spherical_hankel2 spherical_harmonic spherical_to_xyz splice split sposition sprint sqfr sqrt sqrtdenest sremove sremovefirst sreverse ssearch ssort sstatus ssubst ssubstfirst staircase standardize standardize_inverse_trig starplot starplot_description status std std1 std_bernoulli std_beta std_binomial std_chi2 std_continuous_uniform std_discrete_uniform std_exp std_f std_gamma std_general_finite_discrete std_geometric std_gumbel std_hypergeometric std_laplace std_logistic std_lognormal std_negative_binomial std_noncentral_chi2 std_noncentral_student_t std_normal std_pareto std_poisson std_rayleigh std_student_t std_weibull stemplot stirling stirling1 stirling2 strim striml strimr string stringout stringp strong_components struve_h struve_l sublis sublist sublist_indices submatrix subsample subset subsetp subst substinpart subst_parallel substpart substring subvar subvarp sum sumcontract summand_to_rec supcase supcontext symbolp symmdifference symmetricp system take_channel take_inference tan tanh taylor taylorinfo taylorp taylor_simplifier taytorat tcl_output tcontract tellrat tellsimp tellsimpafter tentex tenth test_mean test_means_difference test_normality test_proportion test_proportions_difference test_rank_sum test_sign test_signed_rank test_variance test_variance_ratio tex tex1 tex_display texput %th third throw time timedate timer timer_info tldefint tlimit todd_coxeter toeplitz tokens to_lisp topological_sort to_poly to_poly_solve totaldisrep totalfourier totient tpartpol trace tracematrix trace_options transform_sample translate translate_file transpose treefale tree_reduce treillis treinat triangle triangularize trigexpand trigrat trigreduce trigsimp trunc truncate truncated_cube_graph truncated_dodecahedron_graph truncated_icosahedron_graph truncated_tetrahedron_graph tr_warnings_get tube tutte_graph ueivects uforget ultraspherical underlying_graph undiff union unique uniteigenvectors unitp units unit_step unitvector unorder unsum untellrat untimer untrace uppercasep uricci uriemann uvect vandermonde_matrix var var1 var_bernoulli var_beta var_binomial var_chi2 var_continuous_uniform var_discrete_uniform var_exp var_f var_gamma var_general_finite_discrete var_geometric var_gumbel var_hypergeometric var_laplace var_logistic var_lognormal var_negative_binomial var_noncentral_chi2 var_noncentral_student_t var_normal var_pareto var_poisson var_rayleigh var_student_t var_weibull vector vectorpotential vectorsimp verbify vers vertex_coloring vertex_connectivity vertex_degree vertex_distance vertex_eccentricity vertex_in_degree vertex_out_degree vertices vertices_to_cycle vertices_to_path %w weyl wheel_graph wiener_index wigner_3j wigner_6j wigner_9j with_stdout write_binary_data writebyte write_data writefile wronskian xreduce xthru %y Zeilberger zeroequiv zerofor zeromatrix zeromatrixp zeta zgeev zheev zlange zn_add_table zn_carmichael_lambda zn_characteristic_factors zn_determinant zn_factor_generators zn_invert_by_lu zn_log zn_mult_table absboxchar activecontexts adapt_depth additive adim aform algebraic algepsilon algexact aliases allbut all_dotsimp_denoms allocation allsym alphabetic animation antisymmetric arrays askexp assume_pos assume_pos_pred assumescalar asymbol atomgrad atrig1 axes axis_3d axis_bottom axis_left axis_right axis_top azimuth background background_color backsubst berlefact bernstein_explicit besselexpand beta_args_sum_to_integer beta_expand bftorat bftrunc bindtest border boundaries_array box boxchar breakup %c capping cauchysum cbrange cbtics center cflength cframe_flag cnonmet_flag color color_bar color_bar_tics colorbox columns commutative complex cone context contexts contour contour_levels cosnpiflag ctaypov ctaypt ctayswitch ctayvar ct_coords ctorsion_flag ctrgsimp cube current_let_rule_package cylinder data_file_name debugmode decreasing default_let_rule_package delay dependencies derivabbrev derivsubst detout diagmetric diff dim dimensions dispflag display2d|10 display_format_internal distribute_over doallmxops domain domxexpt domxmxops domxnctimes dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules draw_graph_program draw_realpart edge_color edge_coloring edge_partition edge_type edge_width %edispflag elevation %emode endphi endtheta engineering_format_floats enhanced3d %enumer epsilon_lp erfflag erf_representation errormsg error_size error_syms error_type %e_to_numlog eval even evenfun evflag evfun ev_point expandwrt_denom expintexpand expintrep expon expop exptdispflag exptisolate exptsubst facexpand facsum_combine factlim factorflag factorial_expand factors_only fb feature features file_name file_output_append file_search_demo file_search_lisp file_search_maxima|10 file_search_tests file_search_usage file_type_lisp file_type_maxima|10 fill_color fill_density filled_func fixed_vertices flipflag float2bf font font_size fortindent fortspaces fpprec fpprintprec functions gamma_expand gammalim gdet genindex gensumnum GGFCFMAX GGFINFINITY globalsolve gnuplot_command gnuplot_curve_styles gnuplot_curve_titles gnuplot_default_term_command gnuplot_dumb_term_command gnuplot_file_args gnuplot_file_name gnuplot_out_file gnuplot_pdf_term_command gnuplot_pm3d gnuplot_png_term_command gnuplot_postamble gnuplot_preamble gnuplot_ps_term_command gnuplot_svg_term_command gnuplot_term gnuplot_view_args Gosper_in_Zeilberger gradefs grid grid2d grind halfangles head_angle head_both head_length head_type height hypergeometric_representation %iargs ibase icc1 icc2 icounter idummyx ieqnprint ifb ifc1 ifc2 ifg ifgi ifr iframe_bracket_form ifri igeowedge_flag ikt1 ikt2 imaginary inchar increasing infeval infinity inflag infolists inm inmc1 inmc2 intanalysis integer integervalued integrate_use_rootsof integration_constant integration_constant_counter interpolate_color intfaclim ip_grid ip_grid_in irrational isolate_wrt_times iterations itr julia_parameter %k1 %k2 keepfloat key key_pos kinvariant kt label label_alignment label_orientation labels lassociative lbfgs_ncorrections lbfgs_nfeval_max leftjust legend letrat let_rule_packages lfg lg lhospitallim limsubst linear linear_solver linechar linel|10 linenum line_type linewidth line_width linsolve_params linsolvewarn lispdisp listarith listconstvars listdummyvars lmxchar load_pathname loadprint logabs logarc logcb logconcoeffp logexpand lognegint logsimp logx logx_secondary logy logy_secondary logz lriem m1pbranch macroexpansion macros mainvar manual_demo maperror mapprint matrix_element_add matrix_element_mult matrix_element_transpose maxapplydepth maxapplyheight maxima_tempdir|10 maxima_userdir|10 maxnegex MAX_ORD maxposex maxpsifracdenom maxpsifracnum maxpsinegint maxpsiposint maxtayorder mesh_lines_color method mod_big_prime mode_check_errorp mode_checkp mode_check_warnp mod_test mod_threshold modular_linear_solver modulus multiplicative multiplicities myoptions nary negdistrib negsumdispflag newline newtonepsilon newtonmaxiter nextlayerfactor niceindicespref nm nmc noeval nolabels nonegative_lp noninteger nonscalar noun noundisp nouns np npi nticks ntrig numer numer_pbranch obase odd oddfun opacity opproperties opsubst optimprefix optionset orientation origin orthopoly_returns_intervals outative outchar packagefile palette partswitch pdf_file pfeformat phiresolution %piargs piece pivot_count_sx pivot_max_sx plot_format plot_options plot_realpart png_file pochhammer_max_index points pointsize point_size points_joined point_type poislim poisson poly_coefficient_ring poly_elimination_order polyfactor poly_grobner_algorithm poly_grobner_debug poly_monomial_order poly_primary_elimination_order poly_return_term_list poly_secondary_elimination_order poly_top_reduction_only posfun position powerdisp pred prederror primep_number_of_tests product_use_gamma program programmode promote_float_to_bigfloat prompt proportional_axes props psexpand ps_file radexpand radius radsubstflag rassociative ratalgdenom ratchristof ratdenomdivide rateinstein ratepsilon ratfac rational ratmx ratprint ratriemann ratsimpexpons ratvarswitch ratweights ratweyl ratwtlvl real realonly redraw refcheck resolution restart resultant ric riem rmxchar %rnum_list rombergabs rombergit rombergmin rombergtol rootsconmode rootsepsilon run_viewer same_xy same_xyz savedef savefactors scalar scalarmatrixp scale scale_lp setcheck setcheckbreak setval show_edge_color show_edges show_edge_type show_edge_width show_id show_label showtime show_vertex_color show_vertex_size show_vertex_type show_vertices show_weight simp simplified_output simplify_products simpproduct simpsum sinnpiflag solvedecomposes solveexplicit solvefactors solvenullwarn solveradcan solvetrigwarn space sparse sphere spring_embedding_depth sqrtdispflag stardisp startphi starttheta stats_numer stringdisp structures style sublis_apply_lambda subnumsimp sumexpand sumsplitfact surface surface_hide svg_file symmetric tab taylordepth taylor_logexpand taylor_order_coefficients taylor_truncate_polynomials tensorkill terminal testsuite_files thetaresolution timer_devalue title tlimswitch tr track transcompile transform transform_xy translate_fast_arrays transparent transrun tr_array_as_ref tr_bound_function_applyp tr_file_tty_messagesp tr_float_can_branch_complex tr_function_call_default trigexpandplus trigexpandtimes triginverses trigsign trivial_solutions tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars tr_warn_bad_function_calls tr_warn_fexpr tr_warn_meval tr_warn_mode tr_warn_undeclared tr_warn_undefined_variable tstep ttyoff tube_extremes ufg ug %unitexpand unit_vectors uric uriem use_fast_arrays user_preamble usersetunits values vect_cross verbose vertex_color vertex_coloring vertex_partition vertex_size vertex_type view warnings weyl width windowname windowtitle wired_surface wireframe xaxis xaxis_color xaxis_secondary xaxis_type xaxis_width xlabel xlabel_secondary xlength xrange xrange_secondary xtics xtics_axis xtics_rotate xtics_rotate_secondary xtics_secondary xtics_secondary_axis xu_grid x_voxel xy_file xyplane xy_scale yaxis yaxis_color yaxis_secondary yaxis_type yaxis_width ylabel ylabel_secondary ylength yrange yrange_secondary ytics ytics_axis ytics_rotate ytics_rotate_secondary ytics_secondary ytics_secondary_axis yv_grid y_voxel yx_ratio zaxis zaxis_color zaxis_type zaxis_width zeroa zerob zerobern zeta%pi zlabel zlabel_rotate zlength zmin zn_primroot_limit zn_primroot_pretest",symbol:"_ __ %|0 %%|0"},contains:[{className:"comment",begin:"/\\*",end:"\\*/",contains:["self"]},e.QUOTE_STRING_MODE,{className:"number",relevance:0,variants:[{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Ee][-+]?\\d+\\b"},{begin:"\\b(\\d+|\\d+\\.|\\.\\d+|\\d+\\.\\d+)[Bb][-+]?\\d+\\b",relevance:10},{begin:"\\b(\\.\\d+|\\d+\\.\\d+)\\b"},{begin:"\\b(\\d+|0[0-9A-Za-z]+)\\.?\\b"}]}],illegal:/@/}},Kn=function(e){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"</",contains:[e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}},jn=function(e){var t=e.COMMENT("%","$"),n=e.inherit(e.APOS_STRING_MODE,{relevance:0}),r=e.inherit(e.QUOTE_STRING_MODE,{relevance:0});r.contains.push({className:"subst",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0});return{aliases:["m","moo"],keywords:{keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",meta:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}]},t,e.C_BLOCK_COMMENT_MODE,{className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},e.NUMBER_MODE,n,r,{begin:/:-/}]}},Vn=function(e){return{case_insensitive:!0,aliases:["mips"],lexemes:"\\.?"+e.IDENT_RE,keywords:{meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ",built_in:"$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 k0 k1 gp sp fp ra $f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 $f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt "},contains:[{className:"keyword",begin:"\\b(addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(.hb)?|jr(.hb)?|lbu?|lhu?|ll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|move|msubu?|mthi|mtlo|mul|multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|srlv?|subu?|sw[lr]?|xori?|wsbh|abs.[sd]|add.[sd]|alnv.ps|bc1[ft]l?|c.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et]).[sd]|(ceil|floor|round|trunc).[lw].[sd]|cfc1|cvt.d.[lsw]|cvt.l.[dsw]|cvt.ps.s|cvt.s.[dlw]|cvt.s.p[lu]|cvt.w.[dls]|div.[ds]|ldx?c1|luxc1|lwx?c1|madd.[sd]|mfc1|mov[fntz]?.[ds]|msub.[sd]|mth?c1|mul.[ds]|neg.[ds]|nmadd.[ds]|nmsub.[ds]|p[lu][lu].ps|recip.fmt|r?sqrt.[ds]|sdx?c1|sub.[ds]|suxc1|swx?c1|break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|tlti?u?|tnei?|wait|wrpgpr)",end:"\\s"},e.COMMENT("[;#]","$"),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"0x[0-9a-f]+"},{begin:"\\b-?\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^\\s*[0-9]+:"},{begin:"[0-9]+[bf]"}],relevance:0}],illegal:"/"}},$n=function(e){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}},Wn=function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",n={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:t},r={begin:"->{",end:"}"},a={variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},i=[e.BACKSLASH_ESCAPE,n,a],o=[a,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),r,{className:"string",contains:i,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return n.contains=o,r.contains=o,{aliases:["pl","pm"],lexemes:/[\w\.]+/,keywords:t,contains:o}},Yn=function(e){return{subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}},Qn=function(e){var t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw import",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"built_in",begin:"\\b(self|super)\\b"},{className:"meta",begin:"\\s*#",end:"$",keywords:{"meta-keyword":"if else elseif endif end then"}},{className:"meta",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}},Xn=function(e){var t={keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using",literal:"true false nil",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},n="[A-Za-z$_][0-9A-Za-z$_]*",r={className:"subst",begin:/#\{/,end:/}/,keywords:t},a=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r]}]},{className:"built_in",begin:"@__"+e.IDENT_RE},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];r.contains=a;var i=e.inherit(e.TITLE_MODE,{begin:n}),o={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(a)}]};return{aliases:["moon"],keywords:t,illegal:/\/\*/,contains:a.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+n+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[i,o]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[o]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i]},{className:"name",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}},Zn=function(e){return{case_insensitive:!0,contains:[{beginKeywords:"build create index delete drop explain infer|10 insert merge prepare select update upsert|10",end:/;/,endsWithParent:!0,keywords:{keyword:"all alter analyze and any array as asc begin between binary boolean break bucket build by call case cast cluster collate collection commit connect continue correlate cover create database dataset datastore declare decrement delete derived desc describe distinct do drop each element else end every except exclude execute exists explain fetch first flatten for force from function grant group gsi having if ignore ilike in include increment index infer inline inner insert intersect into is join key keys keyspace known last left let letting like limit lsm map mapping matched materialized merge minus namespace nest not number object offset on option or order outer over parse partition password path pool prepare primary private privilege procedure public raw realm reduce rename return returning revoke right role rollback satisfies schema select self semi set show some start statistics string system then to transaction trigger truncate under union unique unknown unnest unset update upsert use user using validate value valued values via view when where while with within work xor",literal:"true false null missing|5",built_in:"array_agg array_append array_concat array_contains array_count array_distinct array_ifnull array_length array_max array_min array_position array_prepend array_put array_range array_remove array_repeat array_replace array_reverse array_sort array_sum avg count max min sum greatest least ifmissing ifmissingornull ifnull missingif nullif ifinf ifnan ifnanorinf naninf neginfif posinfif clock_millis clock_str date_add_millis date_add_str date_diff_millis date_diff_str date_part_millis date_part_str date_trunc_millis date_trunc_str duration_to_str millis str_to_millis millis_to_str millis_to_utc millis_to_zone_name now_millis now_str str_to_duration str_to_utc str_to_zone_name decode_json encode_json encoded_size poly_length base64 base64_encode base64_decode meta uuid abs acos asin atan atan2 ceil cos degrees e exp ln log floor pi power radians random round sign sin sqrt tan trunc object_length object_names object_pairs object_inner_pairs object_values object_inner_values object_add object_put object_remove object_unwrap regexp_contains regexp_like regexp_position regexp_replace contains initcap length lower ltrim position repeat replace rtrim split substr title trim upper isarray isatom isboolean isnumber isobject isstring type toarray toatom toboolean tonumber toobject tostring"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"symbol",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE],relevance:2},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_BLOCK_COMMENT_MODE]}},Jn=function(e){var t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},n={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},t]};return{aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+{",returnBegin:!0,end:"{",contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:n}],relevance:0}],illegal:"[^\\s\\}]"}},er=function(e){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}},tr=function(e){var t={keyword:"rec with let in inherit assert if else then",literal:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},n={className:"subst",begin:/\$\{/,end:/}/,keywords:t},r={className:"string",contains:[n],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},a=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/}]}];return n.contains=a,{aliases:["nixos"],keywords:t,contains:a}},nr=function(e){var t={className:"variable",begin:/\$+{[\w\.:-]+}/},n={className:"variable",begin:/\$+\w+/,illegal:/\(\){}/},r={className:"variable",begin:/\$+\([\w\^\.:-]+\)/},a={className:"string",variants:[{begin:'"',end:'"'},{begin:"'",end:"'"},{begin:"`",end:"`"}],illegal:/\n/,contains:[{className:"subst",begin:/\$(\\[nrt]|\$)/},{className:"variable",begin:/\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)/},t,n,r]};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib"},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup",end:"$"},a,{className:"keyword",begin:/\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)/},t,n,r,{className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},{className:"class",begin:/\w+\:\:\w+/},e.NUMBER_MODE]}},rr=function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:{keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},lexemes:t,illegal:"</",contains:[{className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"}]},{className:"meta",begin:"#",end:"$",contains:[{className:"meta-string",variants:[{begin:'"',end:'"'},{begin:"<",end:">"}]}]},{className:"class",begin:"("+n.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:n,lexemes:t,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}},ar=function(e){return{aliases:["ml"],keywords:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}},ir=function(e){var t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",n,r,t,{className:"literal",begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},r,t,{begin:"[*!#%]",relevance:0},a]}},or=function(e){var t="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",n=e.COMMENT("{","}",{relevance:0}),r=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),a={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},i={className:"string",begin:"(#\\d+)+"},o={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[a,i]},n,r]};return{case_insensitive:!0,lexemes:/\.?\w+/,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',contains:[n,r,e.C_LINE_COMMENT_MODE,a,i,e.NUMBER_MODE,o,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:t,contains:[a,i,n,r,e.C_LINE_COMMENT_MODE,o]}]}},lr=function(e){var t=e.COMMENT("{","}",{contains:["self"]});return{subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT("\\^rem{","}",{relevance:10,contains:[t]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{className:"keyword",begin:"\\^[\\w\\-\\.\\:]+"},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}},sr=function(e){return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"variable",begin:/\$[\w\d#@][\w\d_]*/},{className:"variable",begin:/<(?!\/)/,end:/>/}]}},cr=function(e){var t={begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},n={className:"meta",begin:/<\?(php)?|\?>/},r={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[n]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,{className:"keyword",begin:/\$this\b/},t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,r,a]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},r,a]}},ur=function(e){var t={className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},n={className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},r={className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},a={begin:e.IDENT_RE+"'",relevance:0};return{keywords:{keyword:"actor addressof and as be break class compile_error compile_intrinsicconsume continue delegate digestof do else elseif embed end errorfor fun if ifdef in interface is isnt lambda let match new not objector primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},contains:[{className:"class",beginKeywords:"class actor",end:"$",contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE]},{className:"function",beginKeywords:"new fun",end:"=>",contains:[e.TITLE_MODE,{begin:/\(/,end:/\)/,contains:[r,a,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:/:/,endsWithParent:!0,contains:[r]},e.C_LINE_COMMENT_MODE]},r,{className:"string",begin:'"""',end:'"""',relevance:10},t,n,a,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}},dr=function(e){var t={begin:"`[\\s\\S]",relevance:0},n={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},r={className:"string",variants:[{begin:/"/,end:/"/},{begin:/@"/,end:/^"@/}],contains:[t,n,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},a=e.inherit(e.COMMENT(null,null),{variants:[{begin:/#/,end:/$/},{begin:/<#/,end:/#>/}],contains:[{className:"doctag",variants:[{begin:/\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{begin:/\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\s+\S+/}]}]});return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",built_in:"Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Add-MDTPersistentDrive Disable-MDTMonitorService Enable-MDTMonitorService Get-MDTDeploymentShareStatistics Get-MDTMonitorData Get-MDTOperatingSystemCatalog Get-MDTPersistentDrive Import-MDTApplication Import-MDTDriver Import-MDTOperatingSystem Import-MDTPackage Import-MDTTaskSequence New-MDTDatabase Remove-MDTMonitorData Remove-MDTPersistentDrive Restore-MDTPersistentDrive Set-MDTMonitorData Test-MDTDeploymentShare Test-MDTMonitorData Update-MDTDatabaseSchema Update-MDTDeploymentShare Update-MDTLinkedDS Update-MDTMedia Update-MDTMedia Add-VamtProductKey Export-VamtData Find-VamtManagedMachine Get-VamtConfirmationId Get-VamtProduct Get-VamtProductKey Import-VamtData Initialize-VamtData Install-VamtConfirmationId Install-VamtProductActivation Install-VamtProductKey Update-VamtProduct",nomarkup:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[t,e.NUMBER_MODE,r,{className:"string",variants:[{begin:/'/,end:/'/},{begin:/@'/,end:/^'@/}]},{className:"literal",begin:/\$(null|true|false)\b/},n,a]}},pr=function(e){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",literal:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",title:"setup draw",built_in:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}},mr=function(e){return{contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}},gr=function(e){var t={begin:/\(/,end:/\)/,relevance:0},n={begin:/\[/,end:/\]/},r={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},a={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},i=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},t,{begin:/:-/},n,r,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,a,{className:"string",begin:/0\'(\\\'|.)/},{className:"string",begin:/0\'\\s/},e.C_NUMBER_MODE];return t.contains=i,n.contains=i,{contains:i.concat([{begin:/\.$/}])}},hr=function(e){return{keywords:{keyword:"package import option optional required repeated group",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}},fr=function(e){var t=e.COMMENT("#","$"),n=e.inherit(e.TITLE_MODE,{begin:"([A-Za-z_]|::)(\\w|::)*"}),r={className:"variable",begin:"\\$([A-Za-z_]|::)(\\w|::)*"},a={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[t,r,a,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[n,t]},{beginKeywords:"define",end:/\{/,contains:[{className:"section",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"keyword",begin:e.IDENT_RE},{begin:/\{/,end:/\}/,keywords:{keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},relevance:0,contains:[a,t,{begin:"[a-zA-Z_]+\\s*=>",returnBegin:!0,end:"=>",contains:[{className:"attr",begin:e.IDENT_RE}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},r]}],relevance:0}]}},_r=function(e){return{aliases:["pb","pbi"],keywords:"And As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect Continue Data DataSection EndDataSection Debug DebugLevel Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndEnumeration EndIf EndImport EndInterface EndMacro EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration Extends FakeReturn For Next ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface Macro NewList Not Or ProcedureReturn Protected Prototype PrototypeC Read ReDim Repeat Until Restore Return Select Shared Static Step Structure StructureUnion Swap To Wend While With XIncludeFile XOr Procedure ProcedureC ProcedureCDLL ProcedureDLL Declare DeclareC DeclareCDLL DeclareDLL",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]}},Er=function(e){var t={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},n={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/,end:/\}/,keywords:t,illegal:/#/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[n],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[n],relevance:10},{begin:/(fr|rf|f)'''/,end:/'''/,contains:[n,r]},{begin:/(fr|rf|f)"""/,end:/"""/,contains:[n,r]},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},{begin:/(fr|rf|f)'/,end:/'/,contains:[r]},{begin:/(fr|rf|f)"/,end:/"/,contains:[r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},i={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},o={className:"params",begin:/\(/,end:/\)/,contains:["self",n,i,a]};return r.contains=[a,i,n],{aliases:["py","gyp"],keywords:t,illegal:/(<\/|->|\?)|=>/,contains:[n,i,a,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def"},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,o,{begin:/->/,endsWithParent:!0,keywords:"None"}]},{className:"meta",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}},Tr=function(e){return{aliases:["k","kdb"],keywords:{keyword:"do while select delete by update from",literal:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},lexemes:/(`?)[A-Za-z0-9_]+\b/,contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}},br=function(e){var t="[a-zA-Z_][a-zA-Z0-9\\._]*",n={className:"attribute",begin:"\\bid\\s*:",starts:{className:"string",end:t,returnEnd:!1}},r={begin:t+"\\s*:",returnBegin:!0,contains:[{className:"attribute",begin:t,end:"\\s*:",excludeEnd:!0,relevance:0}],relevance:0},a={begin:t+"\\s*{",end:"{",returnBegin:!0,relevance:0,contains:[e.inherit(e.TITLE_MODE,{begin:t})]};return{aliases:["qt"],case_insensitive:!1,keywords:{keyword:"in of on if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await import",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Behavior bool color coordinate date double enumeration font geocircle georectangle geoshape int list matrix4x4 parent point quaternion real rect size string url variant vector2d vector3d vector4dPromise"},contains:[{className:"meta",begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"keyword",begin:"\\bsignal\\b",starts:{className:"string",end:"(\\(|:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"keyword",begin:"\\bproperty\\b",starts:{className:"string",end:"(:|=|;|,|//|/\\*|$)",returnEnd:!0}},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:"\\."+e.IDENT_RE,relevance:0},n,r,a],illegal:/#/}},vr=function(e){var t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[e.HASH_COMMENT_MODE,{begin:t,lexemes:t,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}},Ar=function(e){return{keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"</",contains:[e.HASH_COMMENT_MODE,e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}},Sr=function(e){var t="[a-zA-Z-_][^\\n{]+\\{",n={className:"attribute",begin:/[a-zA-Z-_]+/,end:/\s*:/,excludeEnd:!0,starts:{end:";",relevance:0,contains:[{className:"variable",begin:/\.[a-zA-Z-_]+/},{className:"keyword",begin:/\(optional\)/}]}};return{aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+t,end:"}",keywords:"facet",contains:[n,e.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+t,end:"}",keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",n,e.HASH_COMMENT_MODE]},{begin:"^"+t,end:"}",contains:[n,e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}},yr=function(e){var t="foreach do while for if from to step else on-error and or not in",n="true false yes no nothing nil null",r={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},i={className:"string",begin:/'/,end:/'/};return{aliases:["routeros","mikrotik"],case_insensitive:!0,lexemes:/:?[\w-]+/,keywords:{literal:n,keyword:t+" :"+t.split(" ").join(" :")+" :"+"global local beep delay put len typeof pick log time set find environment terminal error execute parse resolve toarray tobool toid toip toip6 tonum tostr totime".split(" ").join(" :")},contains:[{variants:[{begin:/^@/,end:/$/},{begin:/\/\*/,end:/\*\//},{begin:/%%/,end:/$/},{begin:/^'/,end:/$/},{begin:/^\s*\/[\w-]+=/,end:/$/},{begin:/\/\//,end:/$/},{begin:/^\[\</,end:/\>\]$/},{begin:/<\//,end:/>/},{begin:/^facet /,end:/\}/},{begin:"^1\\.\\.(\\d+)$",end:/$/}],illegal:/./},e.COMMENT("^#","$"),a,i,r,{begin:/[\w-]+\=([^\s\{\}\[\]\(\)]+)/,relevance:0,returnBegin:!0,contains:[{className:"attribute",begin:/[^=]+/},{begin:/=/,endsWithParent:!0,relevance:0,contains:[a,i,r,{className:"literal",begin:"\\b("+n.split(" ").join("|")+")\\b"},{begin:/("[^"]*"|[^\s\{\}\[\]]+)/}]}]},{className:"number",begin:/\*[0-9a-fA-F]+/},{begin:"\\b("+"add remove enable disable set get print export edit find run debug error info warning".split(" ").join("|")+")([\\s[(]|])",returnBegin:!0,contains:[{className:"builtin-name",begin:/\w+/}]},{className:"built_in",variants:[{begin:"(\\.\\./|/|\\s)(("+"traffic-flow traffic-generator firewall scheduler aaa accounting address-list address align area bandwidth-server bfd bgp bridge client clock community config connection console customer default dhcp-client dhcp-server discovery dns e-mail ethernet filter firewall firmware gps graphing group hardware health hotspot identity igmp-proxy incoming instance interface ip ipsec ipv6 irq l2tp-server lcd ldp logging mac-server mac-winbox mangle manual mirror mme mpls nat nd neighbor network note ntp ospf ospf-v3 ovpn-server page peer pim ping policy pool port ppp pppoe-client pptp-server prefix profile proposal proxy queue radius resource rip ripng route routing screen script security-profiles server service service-port settings shares smb sms sniffer snmp snooper socks sstp-server system tool tracking type upgrade upnp user-manager users user vlan secret vrrp watchdog web-access wireless pptp pppoe lan wan layer7-protocol lease simple raw".split(" ").join("|")+");?\\s)+",relevance:10},{begin:/\.\./}]}]}},Nr=function(e){return{keywords:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"surface displacement light volume imager",end:"\\("},{beginKeywords:"illuminate illuminance gather",end:"\\("}]}},Cr=function(e){return{keywords:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"literal",variants:[{begin:"#\\s+[a-zA-Z\\ \\.]*",relevance:0},{begin:"#[a-zA-Z\\ \\.]+"}]}]}},Or=function(e){var t="([ui](8|16|32|64|128|size)|f(32|64))?",n="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{aliases:["rs"],keywords:{keyword:"alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default",literal:"true false Some None Ok Err",built_in:n},lexemes:e.IDENT_RE+"!?",illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],relevance:0},{className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#\\!?\\[",end:"\\]",contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"\\S"},{className:"class",beginKeywords:"trait enum struct union",end:"{",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"},{begin:e.IDENT_RE+"::",keywords:{built_in:n}},{begin:"->"}]}},Mr=function(e){var t={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:"\\${",end:"}"}]},n={className:"string",variants:[{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'"""',end:'"""',relevance:10},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[t],relevance:10}]},r={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},a={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[r]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[r]},a]},o={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[a]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},r,o,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}},xr=function(e){var t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},r={className:"number",variants:[{begin:"(\\-|\\+)?\\d+([./]\\d+)?",relevance:0},{begin:"(\\-|\\+)?\\d+([./]\\d+)?[+\\-](\\-|\\+)?\\d+([./]\\d+)?i",relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},a=e.QUOTE_STRING_MODE,i=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],o={begin:t,relevance:0},l={className:"symbol",begin:"'"+t},s={endsWithParent:!0,relevance:0},c={variants:[{begin:/'/},{begin:"`"}],contains:[{begin:"\\(",end:"\\)",contains:["self",n,a,r,o,l]}]},u={className:"name",begin:t,lexemes:t,keywords:{"builtin-name":"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"}},d={variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{begin:/lambda/,endsWithParent:!0,returnBegin:!0,contains:[u,{begin:/\(/,end:/\)/,endsParent:!0,contains:[o]}]},u,s]};return s.contains=[n,r,a,o,l,c,d].concat(i),{illegal:/\S/,contains:[{className:"meta",begin:"^#!",end:"$"},r,a,l,c,d].concat(i)}},wr=function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],lexemes:/%?\w+/,keywords:{keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while",literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{begin:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}},Rr=function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},n={className:"number",begin:"#[0-9A-Fa-f]+"};e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE;return{case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"selector-id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"selector-attr",begin:"\\[",end:"\\]",illegal:"$"},{className:"selector-tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:":",end:";",contains:[t,n,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"meta",begin:"!important"}]},{begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n,e.CSS_NUMBER_MODE,{begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}},Dr=function(e){return{aliases:["console"],contains:[{className:"meta",begin:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{end:"$",subLanguage:"bash"}}]}},Ir=function(e){var t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"];return{aliases:["smali"],contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{begin:"\\s("+["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"].join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+t.join("|")+")\\s"},{begin:"\\s("+t.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"].join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}},kr=function(e){var t={className:"string",begin:"\\$.{1}"},n={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{aliases:["st"],keywords:"self super nil true false thisContext",contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:"[a-z][a-zA-Z0-9_]*:",relevance:0},e.C_NUMBER_MODE,n,t,{begin:"\\|[ ]*[a-z][a-zA-Z0-9_]*([ ]+[a-z][a-zA-Z0-9_]*)*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?[a-z][a-zA-Z0-9_]*"}]},{begin:"\\#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,t,e.C_NUMBER_MODE,n]}]}},Lr=function(e){return{aliases:["ml"],keywords:{keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}},Pr=function(e){var t=e.getLanguage("cpp").exports;return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:"case catch default do else exit exitWith for forEach from if switch then throw to try waitUntil while with",built_in:"abs accTime acos action actionIDs actionKeys actionKeysImages actionKeysNames actionKeysNamesArray actionName actionParams activateAddons activatedAddons activateKey add3DENConnection add3DENEventHandler add3DENLayer addAction addBackpack addBackpackCargo addBackpackCargoGlobal addBackpackGlobal addCamShake addCuratorAddons addCuratorCameraArea addCuratorEditableObjects addCuratorEditingArea addCuratorPoints addEditorObject addEventHandler addGoggles addGroupIcon addHandgunItem addHeadgear addItem addItemCargo addItemCargoGlobal addItemPool addItemToBackpack addItemToUniform addItemToVest addLiveStats addMagazine addMagazineAmmoCargo addMagazineCargo addMagazineCargoGlobal addMagazineGlobal addMagazinePool addMagazines addMagazineTurret addMenu addMenuItem addMissionEventHandler addMPEventHandler addMusicEventHandler addOwnedMine addPlayerScores addPrimaryWeaponItem addPublicVariableEventHandler addRating addResources addScore addScoreSide addSecondaryWeaponItem addSwitchableUnit addTeamMember addToRemainsCollector addUniform addVehicle addVest addWaypoint addWeapon addWeaponCargo addWeaponCargoGlobal addWeaponGlobal addWeaponItem addWeaponPool addWeaponTurret agent agents AGLToASL aimedAtTarget aimPos airDensityRTD airportSide AISFinishHeal alive all3DENEntities allControls allCurators allCutLayers allDead allDeadMen allDisplays allGroups allMapMarkers allMines allMissionObjects allow3DMode allowCrewInImmobile allowCuratorLogicIgnoreAreas allowDamage allowDammage allowFileOperations allowFleeing allowGetIn allowSprint allPlayers allSites allTurrets allUnits allUnitsUAV allVariables ammo and animate animateDoor animateSource animationNames animationPhase animationSourcePhase animationState append apply armoryPoints arrayIntersect asin ASLToAGL ASLToATL assert assignAsCargo assignAsCargoIndex assignAsCommander assignAsDriver assignAsGunner assignAsTurret assignCurator assignedCargo assignedCommander assignedDriver assignedGunner assignedItems assignedTarget assignedTeam assignedVehicle assignedVehicleRole assignItem assignTeam assignToAirport atan atan2 atg ATLToASL attachedObject attachedObjects attachedTo attachObject attachTo attackEnabled backpack backpackCargo backpackContainer backpackItems backpackMagazines backpackSpaceFor behaviour benchmark binocular blufor boundingBox boundingBoxReal boundingCenter breakOut breakTo briefingName buildingExit buildingPos buttonAction buttonSetAction cadetMode call callExtension camCommand camCommit camCommitPrepared camCommitted camConstuctionSetParams camCreate camDestroy cameraEffect cameraEffectEnableHUD cameraInterest cameraOn cameraView campaignConfigFile camPreload camPreloaded camPrepareBank camPrepareDir camPrepareDive camPrepareFocus camPrepareFov camPrepareFovRange camPreparePos camPrepareRelPos camPrepareTarget camSetBank camSetDir camSetDive camSetFocus camSetFov camSetFovRange camSetPos camSetRelPos camSetTarget camTarget camUseNVG canAdd canAddItemToBackpack canAddItemToUniform canAddItemToVest cancelSimpleTaskDestination canFire canMove canSlingLoad canStand canSuspend canUnloadInCombat canVehicleCargo captive captiveNum cbChecked cbSetChecked ceil channelEnabled cheatsEnabled checkAIFeature checkVisibility civilian className clearAllItemsFromBackpack clearBackpackCargo clearBackpackCargoGlobal clearGroupIcons clearItemCargo clearItemCargoGlobal clearItemPool clearMagazineCargo clearMagazineCargoGlobal clearMagazinePool clearOverlay clearRadio clearWeaponCargo clearWeaponCargoGlobal clearWeaponPool clientOwner closeDialog closeDisplay closeOverlay collapseObjectTree collect3DENHistory combatMode commandArtilleryFire commandChat commander commandFire commandFollow commandFSM commandGetOut commandingMenu commandMove commandRadio commandStop commandSuppressiveFire commandTarget commandWatch comment commitOverlay compile compileFinal completedFSM composeText configClasses configFile configHierarchy configName configNull configProperties configSourceAddonList configSourceMod configSourceModList connectTerminalToUAV controlNull controlsGroupCtrl copyFromClipboard copyToClipboard copyWaypoints cos count countEnemy countFriendly countSide countType countUnknown create3DENComposition create3DENEntity createAgent createCenter createDialog createDiaryLink createDiaryRecord createDiarySubject createDisplay createGearDialog createGroup createGuardedPoint createLocation createMarker createMarkerLocal createMenu createMine createMissionDisplay createMPCampaignDisplay createSimpleObject createSimpleTask createSite createSoundSource createTask createTeam createTrigger createUnit createVehicle createVehicleCrew createVehicleLocal crew ctrlActivate ctrlAddEventHandler ctrlAngle ctrlAutoScrollDelay ctrlAutoScrollRewind ctrlAutoScrollSpeed ctrlChecked ctrlClassName ctrlCommit ctrlCommitted ctrlCreate ctrlDelete ctrlEnable ctrlEnabled ctrlFade ctrlHTMLLoaded ctrlIDC ctrlIDD ctrlMapAnimAdd ctrlMapAnimClear ctrlMapAnimCommit ctrlMapAnimDone ctrlMapCursor ctrlMapMouseOver ctrlMapScale ctrlMapScreenToWorld ctrlMapWorldToScreen ctrlModel ctrlModelDirAndUp ctrlModelScale ctrlParent ctrlParentControlsGroup ctrlPosition ctrlRemoveAllEventHandlers ctrlRemoveEventHandler ctrlScale ctrlSetActiveColor ctrlSetAngle ctrlSetAutoScrollDelay ctrlSetAutoScrollRewind ctrlSetAutoScrollSpeed ctrlSetBackgroundColor ctrlSetChecked ctrlSetEventHandler ctrlSetFade ctrlSetFocus ctrlSetFont ctrlSetFontH1 ctrlSetFontH1B ctrlSetFontH2 ctrlSetFontH2B ctrlSetFontH3 ctrlSetFontH3B ctrlSetFontH4 ctrlSetFontH4B ctrlSetFontH5 ctrlSetFontH5B ctrlSetFontH6 ctrlSetFontH6B ctrlSetFontHeight ctrlSetFontHeightH1 ctrlSetFontHeightH2 ctrlSetFontHeightH3 ctrlSetFontHeightH4 ctrlSetFontHeightH5 ctrlSetFontHeightH6 ctrlSetFontHeightSecondary ctrlSetFontP ctrlSetFontPB ctrlSetFontSecondary ctrlSetForegroundColor ctrlSetModel ctrlSetModelDirAndUp ctrlSetModelScale ctrlSetPosition ctrlSetScale ctrlSetStructuredText ctrlSetText ctrlSetTextColor ctrlSetTooltip ctrlSetTooltipColorBox ctrlSetTooltipColorShade ctrlSetTooltipColorText ctrlShow ctrlShown ctrlText ctrlTextHeight ctrlType ctrlVisible curatorAddons curatorCamera curatorCameraArea curatorCameraAreaCeiling curatorCoef curatorEditableObjects curatorEditingArea curatorEditingAreaType curatorMouseOver curatorPoints curatorRegisteredObjects curatorSelected curatorWaypointCost current3DENOperation currentChannel currentCommand currentMagazine currentMagazineDetail currentMagazineDetailTurret currentMagazineTurret currentMuzzle currentNamespace currentTask currentTasks currentThrowable currentVisionMode currentWaypoint currentWeapon currentWeaponMode currentWeaponTurret currentZeroing cursorObject cursorTarget customChat customRadio cutFadeOut cutObj cutRsc cutText damage date dateToNumber daytime deActivateKey debriefingText debugFSM debugLog deg delete3DENEntities deleteAt deleteCenter deleteCollection deleteEditorObject deleteGroup deleteIdentity deleteLocation deleteMarker deleteMarkerLocal deleteRange deleteResources deleteSite deleteStatus deleteTeam deleteVehicle deleteVehicleCrew deleteWaypoint detach detectedMines diag_activeMissionFSMs diag_activeScripts diag_activeSQFScripts diag_activeSQSScripts diag_captureFrame diag_captureSlowFrame diag_codePerformance diag_drawMode diag_enable diag_enabled diag_fps diag_fpsMin diag_frameNo diag_list diag_log diag_logSlowFrame diag_mergeConfigFile diag_recordTurretLimits diag_tickTime diag_toggle dialog diarySubjectExists didJIP didJIPOwner difficulty difficultyEnabled difficultyEnabledRTD difficultyOption direction directSay disableAI disableCollisionWith disableConversation disableDebriefingStats disableNVGEquipment disableRemoteSensors disableSerialization disableTIEquipment disableUAVConnectability disableUserInput displayAddEventHandler displayCtrl displayNull displayParent displayRemoveAllEventHandlers displayRemoveEventHandler displaySetEventHandler dissolveTeam distance distance2D distanceSqr distributionRegion do3DENAction doArtilleryFire doFire doFollow doFSM doGetOut doMove doorPhase doStop doSuppressiveFire doTarget doWatch drawArrow drawEllipse drawIcon drawIcon3D drawLine drawLine3D drawLink drawLocation drawPolygon drawRectangle driver drop east echo edit3DENMissionAttributes editObject editorSetEventHandler effectiveCommander emptyPositions enableAI enableAIFeature enableAimPrecision enableAttack enableAudioFeature enableCamShake enableCaustics enableChannel enableCollisionWith enableCopilot enableDebriefingStats enableDiagLegend enableEndDialog enableEngineArtillery enableEnvironment enableFatigue enableGunLights enableIRLasers enableMimics enablePersonTurret enableRadio enableReload enableRopeAttach enableSatNormalOnDetail enableSaving enableSentences enableSimulation enableSimulationGlobal enableStamina enableTeamSwitch enableUAVConnectability enableUAVWaypoints enableVehicleCargo endLoadingScreen endMission engineOn enginesIsOnRTD enginesRpmRTD enginesTorqueRTD entities estimatedEndServerTime estimatedTimeLeft evalObjectArgument everyBackpack everyContainer exec execEditorScript execFSM execVM exp expectedDestination exportJIPMessages eyeDirection eyePos face faction fadeMusic fadeRadio fadeSound fadeSpeech failMission fillWeaponsFromPool find findCover findDisplay findEditorObject findEmptyPosition findEmptyPositionReady findNearestEnemy finishMissionInit finite fire fireAtTarget firstBackpack flag flagOwner flagSide flagTexture fleeing floor flyInHeight flyInHeightASL fog fogForecast fogParams forceAddUniform forcedMap forceEnd forceMap forceRespawn forceSpeed forceWalk forceWeaponFire forceWeatherChange forEachMember forEachMemberAgent forEachMemberTeam format formation formationDirection formationLeader formationMembers formationPosition formationTask formatText formLeader freeLook fromEditor fuel fullCrew gearIDCAmmoCount gearSlotAmmoCount gearSlotData get3DENActionState get3DENAttribute get3DENCamera get3DENConnections get3DENEntity get3DENEntityID get3DENGrid get3DENIconsVisible get3DENLayerEntities get3DENLinesVisible get3DENMissionAttribute get3DENMouseOver get3DENSelected getAimingCoef getAllHitPointsDamage getAllOwnedMines getAmmoCargo getAnimAimPrecision getAnimSpeedCoef getArray getArtilleryAmmo getArtilleryComputerSettings getArtilleryETA getAssignedCuratorLogic getAssignedCuratorUnit getBackpackCargo getBleedingRemaining getBurningValue getCameraViewDirection getCargoIndex getCenterOfMass getClientState getClientStateNumber getConnectedUAV getCustomAimingCoef getDammage getDescription getDir getDirVisual getDLCs getEditorCamera getEditorMode getEditorObjectScope getElevationOffset getFatigue getFriend getFSMVariable getFuelCargo getGroupIcon getGroupIconParams getGroupIcons getHideFrom getHit getHitIndex getHitPointDamage getItemCargo getMagazineCargo getMarkerColor getMarkerPos getMarkerSize getMarkerType getMass getMissionConfig getMissionConfigValue getMissionDLCs getMissionLayerEntities getModelInfo getMousePosition getNumber getObjectArgument getObjectChildren getObjectDLC getObjectMaterials getObjectProxy getObjectTextures getObjectType getObjectViewDistance getOxygenRemaining getPersonUsedDLCs getPilotCameraDirection getPilotCameraPosition getPilotCameraRotation getPilotCameraTarget getPlayerChannel getPlayerScores getPlayerUID getPos getPosASL getPosASLVisual getPosASLW getPosATL getPosATLVisual getPosVisual getPosWorld getRelDir getRelPos getRemoteSensorsDisabled getRepairCargo getResolution getShadowDistance getShotParents getSlingLoad getSpeed getStamina getStatValue getSuppression getTerrainHeightASL getText getUnitLoadout getUnitTrait getVariable getVehicleCargo getWeaponCargo getWeaponSway getWPPos glanceAt globalChat globalRadio goggles goto group groupChat groupFromNetId groupIconSelectable groupIconsVisible groupId groupOwner groupRadio groupSelectedUnits groupSelectUnit grpNull gunner gusts halt handgunItems handgunMagazine handgunWeapon handsHit hasInterface hasPilotCamera hasWeapon hcAllGroups hcGroupParams hcLeader hcRemoveAllGroups hcRemoveGroup hcSelected hcSelectGroup hcSetGroup hcShowBar hcShownBar headgear hideBody hideObject hideObjectGlobal hideSelection hint hintC hintCadet hintSilent hmd hostMission htmlLoad HUDMovementLevels humidity image importAllGroups importance in inArea inAreaArray incapacitatedState independent inflame inflamed inGameUISetEventHandler inheritsFrom initAmbientLife inPolygon inputAction inRangeOfArtillery insertEditorObject intersect is3DEN is3DENMultiplayer isAbleToBreathe isAgent isArray isAutoHoverOn isAutonomous isAutotest isBleeding isBurning isClass isCollisionLightOn isCopilotEnabled isDedicated isDLCAvailable isEngineOn isEqualTo isEqualType isEqualTypeAll isEqualTypeAny isEqualTypeArray isEqualTypeParams isFilePatchingEnabled isFlashlightOn isFlatEmpty isForcedWalk isFormationLeader isHidden isInRemainsCollector isInstructorFigureEnabled isIRLaserOn isKeyActive isKindOf isLightOn isLocalized isManualFire isMarkedForCollection isMultiplayer isMultiplayerSolo isNil isNull isNumber isObjectHidden isObjectRTD isOnRoad isPipEnabled isPlayer isRealTime isRemoteExecuted isRemoteExecutedJIP isServer isShowing3DIcons isSprintAllowed isStaminaEnabled isSteamMission isStreamFriendlyUIEnabled isText isTouchingGround isTurnedOut isTutHintsEnabled isUAVConnectable isUAVConnected isUniformAllowed isVehicleCargo isWalking isWeaponDeployed isWeaponRested itemCargo items itemsWithMagazines join joinAs joinAsSilent joinSilent joinString kbAddDatabase kbAddDatabaseTargets kbAddTopic kbHasTopic kbReact kbRemoveTopic kbTell kbWasSaid keyImage keyName knowsAbout land landAt landResult language laserTarget lbAdd lbClear lbColor lbCurSel lbData lbDelete lbIsSelected lbPicture lbSelection lbSetColor lbSetCurSel lbSetData lbSetPicture lbSetPictureColor lbSetPictureColorDisabled lbSetPictureColorSelected lbSetSelectColor lbSetSelectColorRight lbSetSelected lbSetTooltip lbSetValue lbSize lbSort lbSortByValue lbText lbValue leader leaderboardDeInit leaderboardGetRows leaderboardInit leaveVehicle libraryCredits libraryDisclaimers lifeState lightAttachObject lightDetachObject lightIsOn lightnings limitSpeed linearConversion lineBreak lineIntersects lineIntersectsObjs lineIntersectsSurfaces lineIntersectsWith linkItem list listObjects ln lnbAddArray lnbAddColumn lnbAddRow lnbClear lnbColor lnbCurSelRow lnbData lnbDeleteColumn lnbDeleteRow lnbGetColumnsPosition lnbPicture lnbSetColor lnbSetColumnsPos lnbSetCurSelRow lnbSetData lnbSetPicture lnbSetText lnbSetValue lnbSize lnbText lnbValue load loadAbs loadBackpack loadFile loadGame loadIdentity loadMagazine loadOverlay loadStatus loadUniform loadVest local localize locationNull locationPosition lock lockCameraTo lockCargo lockDriver locked lockedCargo lockedDriver lockedTurret lockIdentity lockTurret lockWP log logEntities logNetwork logNetworkTerminate lookAt lookAtPos magazineCargo magazines magazinesAllTurrets magazinesAmmo magazinesAmmoCargo magazinesAmmoFull magazinesDetail magazinesDetailBackpack magazinesDetailUniform magazinesDetailVest magazinesTurret magazineTurretAmmo mapAnimAdd mapAnimClear mapAnimCommit mapAnimDone mapCenterOnCamera mapGridPosition markAsFinishedOnSteam markerAlpha markerBrush markerColor markerDir markerPos markerShape markerSize markerText markerType max members menuAction menuAdd menuChecked menuClear menuCollapse menuData menuDelete menuEnable menuEnabled menuExpand menuHover menuPicture menuSetAction menuSetCheck menuSetData menuSetPicture menuSetValue menuShortcut menuShortcutText menuSize menuSort menuText menuURL menuValue min mineActive mineDetectedBy missionConfigFile missionDifficulty missionName missionNamespace missionStart missionVersion mod modelToWorld modelToWorldVisual modParams moonIntensity moonPhase morale move move3DENCamera moveInAny moveInCargo moveInCommander moveInDriver moveInGunner moveInTurret moveObjectToEnd moveOut moveTime moveTo moveToCompleted moveToFailed musicVolume name nameSound nearEntities nearestBuilding nearestLocation nearestLocations nearestLocationWithDubbing nearestObject nearestObjects nearestTerrainObjects nearObjects nearObjectsReady nearRoads nearSupplies nearTargets needReload netId netObjNull newOverlay nextMenuItemIndex nextWeatherChange nMenuItems not numberToDate objectCurators objectFromNetId objectParent objNull objStatus onBriefingGroup onBriefingNotes onBriefingPlan onBriefingTeamSwitch onCommandModeChanged onDoubleClick onEachFrame onGroupIconClick onGroupIconOverEnter onGroupIconOverLeave onHCGroupSelectionChanged onMapSingleClick onPlayerConnected onPlayerDisconnected onPreloadFinished onPreloadStarted onShowNewObject onTeamSwitch openCuratorInterface openDLCPage openMap openYoutubeVideo opfor or orderGetIn overcast overcastForecast owner param params parseNumber parseText parsingNamespace particlesQuality pi pickWeaponPool pitch pixelGrid pixelGridBase pixelGridNoUIScale pixelH pixelW playableSlotsNumber playableUnits playAction playActionNow player playerRespawnTime playerSide playersNumber playGesture playMission playMove playMoveNow playMusic playScriptedMission playSound playSound3D position positionCameraToWorld posScreenToWorld posWorldToScreen ppEffectAdjust ppEffectCommit ppEffectCommitted ppEffectCreate ppEffectDestroy ppEffectEnable ppEffectEnabled ppEffectForceInNVG precision preloadCamera preloadObject preloadSound preloadTitleObj preloadTitleRsc preprocessFile preprocessFileLineNumbers primaryWeapon primaryWeaponItems primaryWeaponMagazine priority private processDiaryLink productVersion profileName profileNamespace profileNameSteam progressLoadingScreen progressPosition progressSetPosition publicVariable publicVariableClient publicVariableServer pushBack pushBackUnique putWeaponPool queryItemsPool queryMagazinePool queryWeaponPool rad radioChannelAdd radioChannelCreate radioChannelRemove radioChannelSetCallSign radioChannelSetLabel radioVolume rain rainbow random rank rankId rating rectangular registeredTasks registerTask reload reloadEnabled remoteControl remoteExec remoteExecCall remove3DENConnection remove3DENEventHandler remove3DENLayer removeAction removeAll3DENEventHandlers removeAllActions removeAllAssignedItems removeAllContainers removeAllCuratorAddons removeAllCuratorCameraAreas removeAllCuratorEditingAreas removeAllEventHandlers removeAllHandgunItems removeAllItems removeAllItemsWithMagazines removeAllMissionEventHandlers removeAllMPEventHandlers removeAllMusicEventHandlers removeAllOwnedMines removeAllPrimaryWeaponItems removeAllWeapons removeBackpack removeBackpackGlobal removeCuratorAddons removeCuratorCameraArea removeCuratorEditableObjects removeCuratorEditingArea removeDrawIcon removeDrawLinks removeEventHandler removeFromRemainsCollector removeGoggles removeGroupIcon removeHandgunItem removeHeadgear removeItem removeItemFromBackpack removeItemFromUniform removeItemFromVest removeItems removeMagazine removeMagazineGlobal removeMagazines removeMagazinesTurret removeMagazineTurret removeMenuItem removeMissionEventHandler removeMPEventHandler removeMusicEventHandler removeOwnedMine removePrimaryWeaponItem removeSecondaryWeaponItem removeSimpleTask removeSwitchableUnit removeTeamMember removeUniform removeVest removeWeapon removeWeaponGlobal removeWeaponTurret requiredVersion resetCamShake resetSubgroupDirection resistance resize resources respawnVehicle restartEditorCamera reveal revealMine reverse reversedMouseY roadAt roadsConnectedTo roleDescription ropeAttachedObjects ropeAttachedTo ropeAttachEnabled ropeAttachTo ropeCreate ropeCut ropeDestroy ropeDetach ropeEndPosition ropeLength ropes ropeUnwind ropeUnwound rotorsForcesRTD rotorsRpmRTD round runInitScript safeZoneH safeZoneW safeZoneWAbs safeZoneX safeZoneXAbs safeZoneY save3DENInventory saveGame saveIdentity saveJoysticks saveOverlay saveProfileNamespace saveStatus saveVar savingEnabled say say2D say3D scopeName score scoreSide screenshot screenToWorld scriptDone scriptName scriptNull scudState secondaryWeapon secondaryWeaponItems secondaryWeaponMagazine select selectBestPlaces selectDiarySubject selectedEditorObjects selectEditorObject selectionNames selectionPosition selectLeader selectMax selectMin selectNoPlayer selectPlayer selectRandom selectWeapon selectWeaponTurret sendAUMessage sendSimpleCommand sendTask sendTaskResult sendUDPMessage serverCommand serverCommandAvailable serverCommandExecutable serverName serverTime set set3DENAttribute set3DENAttributes set3DENGrid set3DENIconsVisible set3DENLayer set3DENLinesVisible set3DENMissionAttributes set3DENModelsVisible set3DENObjectType set3DENSelected setAccTime setAirportSide setAmmo setAmmoCargo setAnimSpeedCoef setAperture setApertureNew setArmoryPoints setAttributes setAutonomous setBehaviour setBleedingRemaining setCameraInterest setCamShakeDefParams setCamShakeParams setCamUseTi setCaptive setCenterOfMass setCollisionLight setCombatMode setCompassOscillation setCuratorCameraAreaCeiling setCuratorCoef setCuratorEditingAreaType setCuratorWaypointCost setCurrentChannel setCurrentTask setCurrentWaypoint setCustomAimCoef setDamage setDammage setDate setDebriefingText setDefaultCamera setDestination setDetailMapBlendPars setDir setDirection setDrawIcon setDropInterval setEditorMode setEditorObjectScope setEffectCondition setFace setFaceAnimation setFatigue setFlagOwner setFlagSide setFlagTexture setFog setFormation setFormationTask setFormDir setFriend setFromEditor setFSMVariable setFuel setFuelCargo setGroupIcon setGroupIconParams setGroupIconsSelectable setGroupIconsVisible setGroupId setGroupIdGlobal setGroupOwner setGusts setHideBehind setHit setHitIndex setHitPointDamage setHorizonParallaxCoef setHUDMovementLevels setIdentity setImportance setLeader setLightAmbient setLightAttenuation setLightBrightness setLightColor setLightDayLight setLightFlareMaxDistance setLightFlareSize setLightIntensity setLightnings setLightUseFlare setLocalWindParams setMagazineTurretAmmo setMarkerAlpha setMarkerAlphaLocal setMarkerBrush setMarkerBrushLocal setMarkerColor setMarkerColorLocal setMarkerDir setMarkerDirLocal setMarkerPos setMarkerPosLocal setMarkerShape setMarkerShapeLocal setMarkerSize setMarkerSizeLocal setMarkerText setMarkerTextLocal setMarkerType setMarkerTypeLocal setMass setMimic setMousePosition setMusicEffect setMusicEventHandler setName setNameSound setObjectArguments setObjectMaterial setObjectMaterialGlobal setObjectProxy setObjectTexture setObjectTextureGlobal setObjectViewDistance setOvercast setOwner setOxygenRemaining setParticleCircle setParticleClass setParticleFire setParticleParams setParticleRandom setPilotCameraDirection setPilotCameraRotation setPilotCameraTarget setPilotLight setPiPEffect setPitch setPlayable setPlayerRespawnTime setPos setPosASL setPosASL2 setPosASLW setPosATL setPosition setPosWorld setRadioMsg setRain setRainbow setRandomLip setRank setRectangular setRepairCargo setShadowDistance setShotParents setSide setSimpleTaskAlwaysVisible setSimpleTaskCustomData setSimpleTaskDescription setSimpleTaskDestination setSimpleTaskTarget setSimpleTaskType setSimulWeatherLayers setSize setSkill setSlingLoad setSoundEffect setSpeaker setSpeech setSpeedMode setStamina setStaminaScheme setStatValue setSuppression setSystemOfUnits setTargetAge setTaskResult setTaskState setTerrainGrid setText setTimeMultiplier setTitleEffect setTriggerActivation setTriggerArea setTriggerStatements setTriggerText setTriggerTimeout setTriggerType setType setUnconscious setUnitAbility setUnitLoadout setUnitPos setUnitPosWeak setUnitRank setUnitRecoilCoefficient setUnitTrait setUnloadInCombat setUserActionText setVariable setVectorDir setVectorDirAndUp setVectorUp setVehicleAmmo setVehicleAmmoDef setVehicleArmor setVehicleCargo setVehicleId setVehicleLock setVehiclePosition setVehicleTiPars setVehicleVarName setVelocity setVelocityTransformation setViewDistance setVisibleIfTreeCollapsed setWaves setWaypointBehaviour setWaypointCombatMode setWaypointCompletionRadius setWaypointDescription setWaypointForceBehaviour setWaypointFormation setWaypointHousePosition setWaypointLoiterRadius setWaypointLoiterType setWaypointName setWaypointPosition setWaypointScript setWaypointSpeed setWaypointStatements setWaypointTimeout setWaypointType setWaypointVisible setWeaponReloadingTime setWind setWindDir setWindForce setWindStr setWPPos show3DIcons showChat showCinemaBorder showCommandingMenu showCompass showCuratorCompass showGPS showHUD showLegend showMap shownArtilleryComputer shownChat shownCompass shownCuratorCompass showNewEditorObject shownGPS shownHUD shownMap shownPad shownRadio shownScoretable shownUAVFeed shownWarrant shownWatch showPad showRadio showScoretable showSubtitles showUAVFeed showWarrant showWatch showWaypoint showWaypoints side sideAmbientLife sideChat sideEmpty sideEnemy sideFriendly sideLogic sideRadio sideUnknown simpleTasks simulationEnabled simulCloudDensity simulCloudOcclusion simulInClouds simulWeatherSync sin size sizeOf skill skillFinal skipTime sleep sliderPosition sliderRange sliderSetPosition sliderSetRange sliderSetSpeed sliderSpeed slingLoadAssistantShown soldierMagazines someAmmo sort soundVolume spawn speaker speed speedMode splitString sqrt squadParams stance startLoadingScreen step stop stopEngineRTD stopped str sunOrMoon supportInfo suppressFor surfaceIsWater surfaceNormal surfaceType swimInDepth switchableUnits switchAction switchCamera switchGesture switchLight switchMove synchronizedObjects synchronizedTriggers synchronizedWaypoints synchronizeObjectsAdd synchronizeObjectsRemove synchronizeTrigger synchronizeWaypoint systemChat systemOfUnits tan targetKnowledge targetsAggregate targetsQuery taskAlwaysVisible taskChildren taskCompleted taskCustomData taskDescription taskDestination taskHint taskMarkerOffset taskNull taskParent taskResult taskState taskType teamMember teamMemberNull teamName teams teamSwitch teamSwitchEnabled teamType terminate terrainIntersect terrainIntersectASL text textLog textLogFormat tg time timeMultiplier titleCut titleFadeOut titleObj titleRsc titleText toArray toFixed toLower toString toUpper triggerActivated triggerActivation triggerArea triggerAttachedVehicle triggerAttachObject triggerAttachVehicle triggerStatements triggerText triggerTimeout triggerTimeoutCurrent triggerType turretLocal turretOwner turretUnit tvAdd tvClear tvCollapse tvCount tvCurSel tvData tvDelete tvExpand tvPicture tvSetCurSel tvSetData tvSetPicture tvSetPictureColor tvSetPictureColorDisabled tvSetPictureColorSelected tvSetPictureRight tvSetPictureRightColor tvSetPictureRightColorDisabled tvSetPictureRightColorSelected tvSetText tvSetTooltip tvSetValue tvSort tvSortByValue tvText tvTooltip tvValue type typeName typeOf UAVControl uiNamespace uiSleep unassignCurator unassignItem unassignTeam unassignVehicle underwater uniform uniformContainer uniformItems uniformMagazines unitAddons unitAimPosition unitAimPositionVisual unitBackpack unitIsUAV unitPos unitReady unitRecoilCoefficient units unitsBelowHeight unlinkItem unlockAchievement unregisterTask updateDrawIcon updateMenuItem updateObjectTree useAISteeringComponent useAudioTimeForMoves vectorAdd vectorCos vectorCrossProduct vectorDiff vectorDir vectorDirVisual vectorDistance vectorDistanceSqr vectorDotProduct vectorFromTo vectorMagnitude vectorMagnitudeSqr vectorMultiply vectorNormalized vectorUp vectorUpVisual vehicle vehicleCargoEnabled vehicleChat vehicleRadio vehicles vehicleVarName velocity velocityModelSpace verifySignature vest vestContainer vestItems vestMagazines viewDistance visibleCompass visibleGPS visibleMap visiblePosition visiblePositionASL visibleScoretable visibleWatch waves waypointAttachedObject waypointAttachedVehicle waypointAttachObject waypointAttachVehicle waypointBehaviour waypointCombatMode waypointCompletionRadius waypointDescription waypointForceBehaviour waypointFormation waypointHousePosition waypointLoiterRadius waypointLoiterType waypointName waypointPosition waypoints waypointScript waypointsEnabledUAV waypointShow waypointSpeed waypointStatements waypointTimeout waypointTimeoutCurrent waypointType waypointVisible weaponAccessories weaponAccessoriesCargo weaponCargo weaponDirection weaponInertia weaponLowered weapons weaponsItems weaponsItemsCargo weaponState weaponsTurret weightRTD west WFSideText wind",literal:"true false nil"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.NUMBER_MODE,{className:"variable",begin:/\b_+[a-zA-Z_]\w*/},{className:"title",begin:/[a-zA-Z][a-zA-Z0-9]+_fnc_\w*/},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},t.preprocessor],illegal:/#/}},Br=function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}},Fr=function(e){return{contains:[e.HASH_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE,lexemes:e.UNDERSCORE_IDENT_RE,keywords:{name:"for in while repeat until if then else",symbol:"bernoulli bernoulli_logit binomial binomial_logit beta_binomial hypergeometric categorical categorical_logit ordered_logistic neg_binomial neg_binomial_2 neg_binomial_2_log poisson poisson_log multinomial normal exp_mod_normal skew_normal student_t cauchy double_exponential logistic gumbel lognormal chi_square inv_chi_square scaled_inv_chi_square exponential inv_gamma weibull frechet rayleigh wiener pareto pareto_type_2 von_mises uniform multi_normal multi_normal_prec multi_normal_cholesky multi_gp multi_gp_cholesky multi_student_t gaussian_dlm_obs dirichlet lkj_corr lkj_corr_cholesky wishart inv_wishart","selector-tag":"int real vector simplex unit_vector ordered positive_ordered row_vector matrix cholesky_factor_corr cholesky_factor_cov corr_matrix cov_matrix",title:"functions model data parameters quantities transformed generated",literal:"true false"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0}]}},Ur=function(e){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d|0 datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e|0 ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g|0 gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h|0 hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l|0 la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m|0 ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n|0 nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u|0 unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"symbol",begin:/`[a-zA-Z0-9_]+'/},{className:"variable",begin:/\$\{?[a-zA-Z0-9_]+\}?/},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},e.COMMENT("^[ \t]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}},Hr=function(e){return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:"[A-Z_][A-Z0-9_.]*",keywords:{keyword:"HEADER ENDSEC DATA"},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}},Gr=function(e){var t={className:"variable",begin:"\\$"+e.IDENT_RE},n={className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},r="[\\.\\s\\n\\[\\:,]";return{aliases:["styl"],case_insensitive:!1,keywords:"if else for in",illegal:"("+["\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)","(\\bdef\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"].join("|")+")",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+r,returnBegin:!0,contains:[{className:"selector-class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+r,returnBegin:!0,contains:[{className:"selector-id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"].join("|")+")"+r,returnBegin:!0,contains:[{className:"selector-tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"&?:?:\\b("+["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"].join("|")+")"+r},{begin:"@("+["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"].join("|")+")\\b"},t,e.CSS_NUMBER_MODE,e.NUMBER_MODE,{className:"function",begin:"^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[n,t,e.APOS_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse().join("|")+")\\b",starts:{end:/;|$/,contains:[n,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/\./,relevance:0}}]}},qr=function(e){return{case_insensitive:!0,contains:[{className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}},zr=function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},a={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},i=e.inherit(e.QUOTE_STRING_MODE,{contains:[r,e.BACKSLASH_ESCAPE]});return r.contains=[a],{keywords:t,contains:[i,e.C_LINE_COMMENT_MODE,n,{className:"type",begin:"\\b[A-Z][\\wÀ-ʸ']*",relevance:0},a,{className:"function",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{begin:/</,end:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",a,i,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{className:"meta",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,n]}]}},Kr=function(e){return{contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\(/,end:/\)/,contains:["self",{begin:/\\./}]}],relevance:10},{className:"keyword",begin:/\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,end:/\(/,excludeEnd:!0},{className:"variable",begin:/%[_a-zA-Z0-9:]*/,end:"%"},{className:"symbol",begin:/\\./}]}},jr=function(e){var t="[a-zA-Z_][\\w\\-]*",n={className:"attr",variants:[{begin:"^[ \\-]*"+t+":"},{begin:'^[ \\-]*"'+t+'":'},{begin:"^[ \\-]*'"+t+"':"}]},r={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:"{{",end:"}}"},{begin:"%{",end:"}"}]}]};return{case_insensitive:!0,aliases:["yml","YAML","yaml"],contains:[n,{className:"meta",begin:"^---s*$",relevance:10},{className:"string",begin:"[\\|>] *$",returnEnd:!0,contains:r.contains,end:n.variants[0].begin},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!!"+e.UNDERSCORE_IDENT_RE},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"^ *-",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:"true false yes no null",keywords:{literal:"true false yes no null"}},e.C_NUMBER_MODE,r]}},Vr=function(e){return{case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:"(s+)?---$",end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}},$r=function(e){return{aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]}]}},Wr=function(e){var t={className:"tag",begin:/\\/,relevance:0,contains:[{className:"name",variants:[{begin:/[a-zA-Zа-яА-я]+[*]?/},{begin:/[^a-zA-Zа-яА-я0-9]/}],starts:{endsWithParent:!0,relevance:0,contains:[{className:"string",variants:[{begin:/\[/,end:/\]/},{begin:/\{/,end:/\}/}]},{begin:/\s*=\s*/,endsWithParent:!0,relevance:0,contains:[{className:"number",begin:/-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{contains:[t,{className:"formula",contains:[t],relevance:0,variants:[{begin:/\$\$/,end:/\$\$/},{begin:/\$/,end:/\$/}]},e.COMMENT("%","$",{relevance:0})]}},Yr=function(e){return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:"bool byte i16 i32 i64 double string binary",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:"bool byte i16 i32 i64 double string binary",contains:["self"]}]}},Qr=function(e){var t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"};return{keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET PROG ATTR MN POS",literal:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER| TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}},Xr=function(e){var t="attribute block constant cycle date dump include max min parent random range source template_from_string",n={beginKeywords:t,keywords:{name:t},relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},r={begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[n]},a="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return a=a+" "+a.split(" ").map(function(e){return"end"+e}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#}/),{className:"template-tag",begin:/\{%/,end:/%}/,contains:[{className:"name",begin:/\w+/,keywords:a,starts:{endsWithParent:!0,contains:[r,n],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/}}/,contains:["self",r,n]}]}},Zr=function(e){var t={keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise"};return{aliases:["ts"],keywords:t,contains:[{className:"meta",begin:/^\s*['"]use strict['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+e.IDENT_RE+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.IDENT_RE},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:["self",e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}]}],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/%/,relevance:0},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0,contains:["self",{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}]},{begin:/module\./,keywords:{built_in:"module"},relevance:0},{beginKeywords:"module",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0},{className:"meta",begin:"@[A-Za-z]+"}]}},Jr=function(e){return{keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:"{",excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$",relevance:2}]}},ea=function(e){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT("'","$",{returnBegin:!0,contains:[{className:"doctag",begin:"'''|\x3c!--|--\x3e",contains:[e.PHRASAL_WORDS_MODE]},{className:"doctag",begin:"</?",end:">",contains:[e.PHRASAL_WORDS_MODE]}]}),e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end region externalsource"}}]}},ta=function(e){return{aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}},na=function(e){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}},ra=function(e){return{aliases:["v","sv","svh"],case_insensitive:!1,keywords:{keyword:"accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind bins binsof bit break buf|0 bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin function generate|5 genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import incdir include initial inout input inside instance int integer interconnect interface intersect join join_any join_none large let liblist library local localparam logic longint macromodule matches medium modport module nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 or output package packed parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor",literal:"null",built_in:"$finish $stop $exit $fatal $error $warning $info $realtime $time $printtimescale $bitstoreal $bitstoshortreal $itor $signed $cast $bits $stime $timeformat $realtobits $shortrealtobits $rtoi $unsigned $asserton $assertkill $assertpasson $assertfailon $assertnonvacuouson $assertoff $assertcontrol $assertpassoff $assertfailoff $assertvacuousoff $isunbounded $sampled $fell $changed $past_gclk $fell_gclk $changed_gclk $rising_gclk $steady_gclk $coverage_control $coverage_get $coverage_save $set_coverage_db_name $rose $stable $past $rose_gclk $stable_gclk $future_gclk $falling_gclk $changing_gclk $display $coverage_get_max $coverage_merge $get_coverage $load_coverage_db $typename $unpacked_dimensions $left $low $increment $clog2 $ln $log10 $exp $sqrt $pow $floor $ceil $sin $cos $tan $countbits $onehot $isunknown $fatal $warning $dimensions $right $high $size $asin $acos $atan $atan2 $hypot $sinh $cosh $tanh $asinh $acosh $atanh $countones $onehot0 $error $info $random $dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson $dist_t $dist_uniform $q_initialize $q_remove $q_exam $async$and$array $async$nand$array $async$or$array $async$nor$array $sync$and$array $sync$nand$array $sync$or$array $sync$nor$array $q_add $q_full $psprintf $async$and$plane $async$nand$plane $async$or$plane $async$nor$plane $sync$and$plane $sync$nand$plane $sync$or$plane $sync$nor$plane $system $display $displayb $displayh $displayo $strobe $strobeb $strobeh $strobeo $write $readmemb $readmemh $writememh $value$plusargs $dumpvars $dumpon $dumplimit $dumpports $dumpportson $dumpportslimit $writeb $writeh $writeo $monitor $monitorb $monitorh $monitoro $writememb $dumpfile $dumpoff $dumpall $dumpflush $dumpportsoff $dumpportsall $dumpportsflush $fclose $fdisplay $fdisplayb $fdisplayh $fdisplayo $fstrobe $fstrobeb $fstrobeh $fstrobeo $swrite $swriteb $swriteh $swriteo $fscanf $fread $fseek $fflush $feof $fopen $fwrite $fwriteb $fwriteh $fwriteo $fmonitor $fmonitorb $fmonitorh $fmonitoro $sformat $sformatf $fgetc $ungetc $fgets $sscanf $rewind $ftell $ferror"},lexemes:/[\w\$]+/,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"number",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"\\b((\\d+'(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\B(('(b|h|o|d|B|H|O|D))[0-9xzXZa-fA-F_]+)"},{begin:"\\b([0-9_])+",relevance:0}]},{className:"variable",variants:[{begin:"#\\((?!parameter).+\\)"},{begin:"\\.\\w+",relevance:0}]},{className:"meta",begin:"`",end:"$",keywords:{"meta-keyword":"define __FILE__ __LINE__ begin_keywords celldefine default_nettype define else elsif end_keywords endcelldefine endif ifdef ifndef include line nounconnected_drive pragma resetall timescale unconnected_drive undef undefineall"},relevance:0}]}},aa=function(e){return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert assume assume_guarantee attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",built_in:"boolean bit character integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_logic std_logic_vector unsigned signed boolean_vector integer_vector std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signedreal_vector time_vector",literal:"false true note warning error failure line text side width"},illegal:"{",contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}},ia=function(e){return{lexemes:/[!#@\w]+/,keywords:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp"},illegal:/;/,contains:[e.NUMBER_MODE,e.APOS_STRING_MODE,{className:"string",begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT('"',"$"),{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"symbol",begin:/<[\w-]+>/}]}},oa=function(e){return{case_insensitive:!0,lexemes:"[.%]?"+e.IDENT_RE,keywords:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",built_in:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr",meta:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:"symbol",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"subst",begin:"%[0-9]+",relevance:0},{className:"subst",begin:"%!S+",relevance:0},{className:"meta",begin:/^\s*\.[\w_-]+/}]}},la=function(e){var t={keyword:"if then else do while until for loop import with is as where when by data constant integer real text name boolean symbol infix prefix postfix block tree",literal:"true false nil",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts"},n={className:"string",begin:'"',end:'"',illegal:"\\n"},r={beginKeywords:"import",end:"$",keywords:t,contains:[n]},a={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:t}})]};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:"<<",end:">>"},a,r,{className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}},sa=function(e){var t={begin:"{",end:"}"},n=[{begin:/\$[a-zA-Z0-9\-]+/},{className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doctag",begin:"@\\w+"}]},{className:"meta",begin:"%\\w+"},t];return t.contains=n,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:"for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",literal:"false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute"},contains:n}},ca=function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:"<<<['\"]?\\w+['\"]?$",end:"^\\w+;",contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_BLOCK_COMMENT_MODE,t,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},t,n]}},ua=f(function(e){var t=e.exports=Me;t.registerLanguage("1c",Ye),t.registerLanguage("abnf",Qe),t.registerLanguage("accesslog",Xe),t.registerLanguage("actionscript",Ze),t.registerLanguage("ada",Je),t.registerLanguage("apache",et),t.registerLanguage("applescript",tt),t.registerLanguage("cpp",nt),t.registerLanguage("arduino",rt),t.registerLanguage("armasm",at),t.registerLanguage("xml",it),t.registerLanguage("asciidoc",ot),t.registerLanguage("aspectj",lt),t.registerLanguage("autohotkey",st),t.registerLanguage("autoit",ct),t.registerLanguage("avrasm",ut),t.registerLanguage("awk",dt),t.registerLanguage("axapta",pt),t.registerLanguage("bash",mt),t.registerLanguage("basic",gt),t.registerLanguage("bnf",ht),t.registerLanguage("brainfuck",ft),t.registerLanguage("cal",_t),t.registerLanguage("capnproto",Et),t.registerLanguage("ceylon",Tt),t.registerLanguage("clean",bt),t.registerLanguage("clojure",vt),t.registerLanguage("clojure-repl",At),t.registerLanguage("cmake",St),t.registerLanguage("coffeescript",yt),t.registerLanguage("coq",Nt),t.registerLanguage("cos",Ct),t.registerLanguage("crmsh",Ot),t.registerLanguage("crystal",Mt),t.registerLanguage("cs",xt),t.registerLanguage("csp",wt),t.registerLanguage("css",Rt),t.registerLanguage("d",Dt),t.registerLanguage("markdown",It),t.registerLanguage("dart",kt),t.registerLanguage("delphi",Lt),t.registerLanguage("diff",Pt),t.registerLanguage("django",Bt),t.registerLanguage("dns",Ft),t.registerLanguage("dockerfile",Ut),t.registerLanguage("dos",Ht),t.registerLanguage("dsconfig",Gt),t.registerLanguage("dts",qt),t.registerLanguage("dust",zt),t.registerLanguage("ebnf",Kt),t.registerLanguage("elixir",jt),t.registerLanguage("elm",Vt),t.registerLanguage("ruby",$t),t.registerLanguage("erb",Wt),t.registerLanguage("erlang-repl",Yt),t.registerLanguage("erlang",Qt),t.registerLanguage("excel",Xt),t.registerLanguage("fix",Zt),t.registerLanguage("flix",Jt),t.registerLanguage("fortran",en),t.registerLanguage("fsharp",tn),t.registerLanguage("gams",nn),t.registerLanguage("gauss",rn),t.registerLanguage("gcode",an),t.registerLanguage("gherkin",on),t.registerLanguage("glsl",ln),t.registerLanguage("go",sn),t.registerLanguage("golo",cn),t.registerLanguage("gradle",un),t.registerLanguage("groovy",dn),t.registerLanguage("haml",pn),t.registerLanguage("handlebars",mn),t.registerLanguage("haskell",gn),t.registerLanguage("haxe",hn),t.registerLanguage("hsp",fn),t.registerLanguage("htmlbars",_n),t.registerLanguage("http",En),t.registerLanguage("hy",Tn),t.registerLanguage("inform7",bn),t.registerLanguage("ini",vn),t.registerLanguage("irpf90",An),t.registerLanguage("java",Sn),t.registerLanguage("javascript",yn),t.registerLanguage("jboss-cli",Nn),t.registerLanguage("json",Cn),t.registerLanguage("julia",On),t.registerLanguage("julia-repl",Mn),t.registerLanguage("kotlin",xn),t.registerLanguage("lasso",wn),t.registerLanguage("ldif",Rn),t.registerLanguage("leaf",Dn),t.registerLanguage("less",In),t.registerLanguage("lisp",kn),t.registerLanguage("livecodeserver",Ln),t.registerLanguage("livescript",Pn),t.registerLanguage("llvm",Bn),t.registerLanguage("lsl",Fn),t.registerLanguage("lua",Un),t.registerLanguage("makefile",Hn),t.registerLanguage("mathematica",Gn),t.registerLanguage("matlab",qn),t.registerLanguage("maxima",zn),t.registerLanguage("mel",Kn),t.registerLanguage("mercury",jn),t.registerLanguage("mipsasm",Vn),t.registerLanguage("mizar",$n),t.registerLanguage("perl",Wn),t.registerLanguage("mojolicious",Yn),t.registerLanguage("monkey",Qn),t.registerLanguage("moonscript",Xn),t.registerLanguage("n1ql",Zn),t.registerLanguage("nginx",Jn),t.registerLanguage("nimrod",er),t.registerLanguage("nix",tr),t.registerLanguage("nsis",nr),t.registerLanguage("objectivec",rr),t.registerLanguage("ocaml",ar),t.registerLanguage("openscad",ir),t.registerLanguage("oxygene",or),t.registerLanguage("parser3",lr),t.registerLanguage("pf",sr),t.registerLanguage("php",cr),t.registerLanguage("pony",ur),t.registerLanguage("powershell",dr),t.registerLanguage("processing",pr),t.registerLanguage("profile",mr),t.registerLanguage("prolog",gr),t.registerLanguage("protobuf",hr),t.registerLanguage("puppet",fr),t.registerLanguage("purebasic",_r),t.registerLanguage("python",Er),t.registerLanguage("q",Tr),t.registerLanguage("qml",br),t.registerLanguage("r",vr),t.registerLanguage("rib",Ar),t.registerLanguage("roboconf",Sr),t.registerLanguage("routeros",yr),t.registerLanguage("rsl",Nr),t.registerLanguage("ruleslanguage",Cr),t.registerLanguage("rust",Or),t.registerLanguage("scala",Mr),t.registerLanguage("scheme",xr),t.registerLanguage("scilab",wr),t.registerLanguage("scss",Rr),t.registerLanguage("shell",Dr),t.registerLanguage("smali",Ir),t.registerLanguage("smalltalk",kr),t.registerLanguage("sml",Lr),t.registerLanguage("sqf",Pr),t.registerLanguage("sql",Br),t.registerLanguage("stan",Fr),t.registerLanguage("stata",Ur),t.registerLanguage("step21",Hr),t.registerLanguage("stylus",Gr),t.registerLanguage("subunit",qr),t.registerLanguage("swift",zr),t.registerLanguage("taggerscript",Kr),t.registerLanguage("yaml",jr),t.registerLanguage("tap",Vr),t.registerLanguage("tcl",$r),t.registerLanguage("tex",Wr),t.registerLanguage("thrift",Yr),t.registerLanguage("tp",Qr),t.registerLanguage("twig",Xr),t.registerLanguage("typescript",Zr),t.registerLanguage("vala",Jr),t.registerLanguage("vbnet",ea),t.registerLanguage("vbscript",ta),t.registerLanguage("vbscript-html",na),t.registerLanguage("verilog",ra),t.registerLanguage("vhdl",aa),t.registerLanguage("vim",ia),t.registerLanguage("x86asm",oa),t.registerLanguage("xl",la),t.registerLanguage("xquery",sa),t.registerLanguage("zephir",ca)}),da=f(function(e,t){t.__esModule=!0,t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.include,a=e.exclude;function i(e){var r=e.lang;if(!(!r||t&&!~t.indexOf(r)||a&&~a.indexOf(r))){var i=e.data;i||(e.data=i={});try{i.hChildren=n.default.highlight(r,e.value).value}catch(t){i.hChildren=n.default.highlightAuto(e.value).value}i.hProperties=i.hProperties||{},i.hProperties.className=["hljs"].concat(i.hProperties.className||[],["language-"+r])}}return function(e){return(0,r.default)(e,"code",i)}};var n=a(ua),r=a(u);function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default});h(da);var pa=function(){return function(e,t,n){return function(e){u(e,"blockquote",(e,t,n)=>{const r=e.children[0];if("paragraph"===r.type&&"text"===r.children[0].type){const a=r.children[0];if(a.value.startsWith("!secret")){e.type="div",a.value=a.value.substr(7);let r="";a.value.indexOf("\n")>=0?(r=a.value.substr(0,a.value.indexOf("\n")),a.value=a.value.substr(a.value.indexOf("\n"))):(r=a.value,a.value="");const i={type:"special-box-secret",children:[e,{type:"summary",data:{hName:"summary",hChildren:[{type:"text",value:r||"Spoiler"}]}}],data:{hName:"details",hProperties:{className:"special-box secret"}}};return n.children.splice(t,1,i),e}if(a.value.startsWith("!information")||a.value.startsWith("!good")||a.value.startsWith("!bad")||a.value.startsWith("!comment")||a.value.startsWith("!attention")||a.value.startsWith("!question")){e.type="div",e.data={hName:"div",hProperties:{className:"special-box-content"}};let r="";a.value.indexOf("\n")>0?(r=a.value.substr(1,a.value.indexOf("\n")),a.value=a.value.substr(a.value.indexOf("\n"))):(r=a.value.substr(1),a.value="");const i={type:"special-box-div",children:[e],data:{hName:"div",hProperties:{className:`special-box ${r}`}}};return n.children.splice(t,1,i),e}}return e})}(e),"function"==typeof n?n(null,e,t):e}};var ma=function(){return function(e,t,n){return function(e){let t=0;u(e,"list",e=>{let n=!0,r=0;const a=[];return Array.from(e.children).forEach(e=>{e.children&&"paragraph"===e.children[0].type&&e.children[0].children&&e.children[0].children[0].value?"~!=".indexOf(e.children[0].children[0].value[0])<0&&(n=!1):n=!1}),n&&(Array.from(e.children).forEach(e=>{"paragraph"===e.children[0].type&&("~"===e.children[0].children[0].value[0]?a.push(.5):"!"===e.children[0].children[0].value[0]?a.push(0):a.push(1),e.children[0].children[0].value=`${e.children[0].children[0].value.slice(1)}\r`)}),e.type="mc",e.data={hName:"fieldset",hProperties:{className:"mc check",id:`mc_${t}`}},e.children=[{type:"list-item-mc",data:{hName:"ul"},children:e.children.map(e=>({type:"input-list-item",data:{hName:"li"},children:[{type:"input-list-input",data:{hName:"input",hProperties:{checked:e.checked,type:"checkbox",id:`mc_${t}_${r}`,className:"!~="[2*a[r]]}}},{type:"input-list-label",data:{hName:"label",hProperties:{for:`mc_${t}_${r++}`}},children:function(e){let t=[];return"paragraph"===e[0].type&&(t=e[0].children),t[0].value=t[0].value.trim(),"blockquote"===e[e.length-1].type&&(e[e.length-1].type="div",e[e.length-1].data={hName:"blockquote",hProperties:{className:"hiden_block_quote"}}),t=t.concat(e.slice(1))}(e.children)}]}))},{type:"field-button",data:{hName:"input",hProperties:{onclick:`check('mc_${t}',[${String(a)}])`,value:"Validate",type:"button"}}}],t++),e})}(e),"function"==typeof n?n(null,e,t):e}},ga={prop:{key:void 0,class:void 0,id:void 0},eaten:""};var ha=function(e,t){var n,r,a="",i=!1,o=!1,l={key:void 0,class:void 0,id:void 0},s="";void 0===t&&(t=0);var c=function(){return t>=e.length||"\n\r{}".indexOf(e[t])>-1?(i&&"}"!==e[t]&&(o=!0),!0):"}"===e[t]&&i},u="",d=function(n){for(u="";t<e.length&&"\n\r{}".indexOf(e.charAt(t))<0&&n.indexOf(e.charAt(t))>=0;)a+=e.charAt(t),u+=e.charAt(t),t++;return c()},p=function(r){for(u="";t<e.length&&"\n\r{}".indexOf(e.charAt(t))<0&&r.indexOf(e.charAt(t))<0;)a+=e.charAt(t),u+=e.charAt(t),t++;return s?n=u:s=u,c()},m=function(r){if(u="",e[t]!==r){for(;t<e.length&&(r!==e[t]||"\\"===e[t-1])&&"\n"!==e[t]&&"\r"!==e[t];)a+=e.charAt(t),u+=e.charAt(t),t++;return"\n"===e[t]||"\r"===e[t]||t>=e.length?(o=!0,!0):(s?n=u.replace(/\\"/g,'"'):s=u.replace(/\\"/g,'"'),c())}},g=function(e){return a+=e,t++,c()},h=function(){switch(r){case"id":l.id=l.id||s;break;case"class":l.class||(l.class=[]),l.class.indexOf(s)<0&&l.class.push(s);break;case"key":if(!s)return ga;"id"!==s&&"class"!==s&&(l[s]=n)}r=void 0,s="",n=void 0};for(d(" \t\v"),"{"===e[t]&&(g("{"),i=!0);!c()&&!d(" \t\v");){if("."===e.charAt(t)){if(r="class",g(".")){o=!0;break}}else if("#"===e.charAt(t)){if(r="id",g("#")){o=!0;break}}else r="key";if(p("=\t\b\v  ")||!s)break;if("="===e.charAt(t)&&"key"===r){if(g("="))break;if('"'===e.charAt(t)){if(g('"'))break;if(m('"'))break;if('"'!==e.charAt(t))return ga;if(g('"'))break}else if("'"===e.charAt(t)){if(g("'"))break;if(m("'"))break;if("'"!==e.charAt(t))return ga;if(g("'"))break}else if(p(" \t\n\r\v=}"))break}h()}if(h(),i){if(!(t<e.length&&"}"===e[t]))return ga;i=!1,g("}")}return o?ga:{prop:l,eaten:a}};const fa="[__",_a="__]";function Ea(e,t){return e.indexOf(fa,t)}var Ta=function(){function e(e,t,n){if(!this.options.gfm||!t.startsWith(fa))return;let r="",a=1;const i=t.length,o=e.now();for(o.column+=2,o.offset+=2;!t.startsWith(_a,a)&&++a<i;)if(r+=t.charAt(a),"\n"===t.charAt(a))return!0;let l="",s={key:void 0,class:void 0,id:void 0};if("{"===t.charAt(a+_a.length)){const e=ha(t,a+_a.length);l=e.eaten,s=e.prop}return!!n||("password"!==s.type&&(s.type="text"),s.placeholder=r.replace(/^_*/g,"").replace(/_*$/g,"")||void 0,!(a<i)||e(fa+r.slice(1)+_a.slice(1)+l)({type:"line-input",children:[],data:{hName:"input",hProperties:s}}))}e.locator=Ea;const t=this.Parser,n=t.prototype.inlineTokenizers,r=t.prototype.inlineMethods;n.input=e,r.splice(r.indexOf("url"),0,"input");const a=this.Compiler;a&&(a.prototype.visitors.lineinput=function(e){return`[__${this.all(e).join("")}__]`})};const ba="[",va=/(\| *[vV] *])({[^\n]*})?/;function Aa(e,t){return e.indexOf(ba,t)}var Sa=function(){let e="|v]";function t(t,n){if(!this.options.gfm||!n.startsWith(ba))return;let r="",a=1;const i=n.length,o=t.now();o.column+=2,o.offset+=2;let l=null;if(!((l=n.substr(1).match(va))&&a<i))return;r+=n.substr(1,l.index),e=l[1],a+=l.index+e.length;let s="",c={class:void 0,id:void 0};if("{"===n.charAt(a)){const e=ha(n,a);a+=(s=e.eaten).length,c=e.prop}return!(a<=i)||t(ba+r+e+s)({type:"select",children:[],data:{hName:"select",hProperties:c,hChildren:r.split("|").filter(e=>e).map(e=>{const t=e.trim();return{type:"element",tagName:"option",properties:{value:t},children:[{type:"text",value:t}]}})}})}t.locator=Aa;const n=this.Parser,r=n.prototype.inlineTokenizers,a=n.prototype.inlineMethods;r.select=t,a.splice(a.indexOf("url"),0,"select");const i=this.Compiler;i&&(i.prototype.visitors.lineselect=function(t){return ba+this.all(t).join("")+e})};const ya=/^(\[_+\n)/g,Na=/(_+])/g;function Ca(e,t){return e.indexOf(ya,t)}var Oa=function(){function e(e,t){if(!this.options.gfm||0!==t.search(ya))return;let n={class:void 0,id:void 0},r="";if(t.search(Na)>0){if(t.search(Na)+t.match(Na)[0].length<t.length&&"{"===t.charAt(t.search(Na)+t.match(Na)[0].length)){const e=ha(t,t.search(Na)+t.match(Na)[0].length);r=e.eaten,n=e.prop}let a=t.search(Na);return a!==t.match(ya)[0].length&&(a-=1),e(t.slice(0,t.search(Na)+t.match(Na)[0].length)+r)({type:"textarea",data:{hName:"TEXTAREA",hProperties:n,hChildren:[{type:"text",value:t.slice(t.match(ya)[0].length,a)}]}})}return!0}e.locator=Ca;const t=this.Parser,n=t.prototype.blockTokenizers,r=t.prototype.blockMethods;n.textinput=e,r.splice(r.indexOf("fencedCode")+1,0,"textinput");const a=this.Compiler;a&&(a.prototype.visitors.textinput=function(e){return`[__${this.all(e).join("")}__]`})},Ma={REPLACEMENT_CHARACTER:"�",CODE_POINTS:{EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},CODE_POINT_SEQUENCES:{DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],CDATA_END_STRING:[93,93,62],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]}},xa=f(function(e){var t=Ma.CODE_POINTS;var n=e.exports=function(){this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536};n.prototype.dropParsedChunk=function(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])},n.prototype._addGap=function(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos},n.prototype._processHighRangeCodePoint=function(e){if(this.pos!==this.lastCharPos){var n=this.html.charCodeAt(this.pos+1);a=n,(r=e)>=55296&&r<=56319&&a>=56320&&a<=57343&&(this.pos++,e=function(e,t){return 1024*(e-55296)+9216+t}(e,n),this._addGap())}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,t.EOF;var r,a;return e},n.prototype.write=function(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t},n.prototype.insertHtmlAtCurrentPos=function(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1},n.prototype.advance=function(){if(this.pos++,this.pos>this.lastCharPos)return this.lastChunkWritten||(this.endOfChunkHit=!0),t.EOF;var e=this.html.charCodeAt(this.pos);return this.skipNextNewLine&&e===t.LINE_FEED?(this.skipNextNewLine=!1,this._addGap(),this.advance()):e===t.CARRIAGE_RETURN?(this.skipNextNewLine=!0,t.LINE_FEED):(this.skipNextNewLine=!1,e>=55296?this._processHighRangeCodePoint(e):e)},n.prototype.retreat=function(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}),wa=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]),Ra=f(function(e){var t=Ma.CODE_POINTS,n=Ma.CODE_POINT_SEQUENCES,r={0:65533,13:13,128:8364,129:129,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,141:141,142:381,143:143,144:144,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,157:157,158:382,159:376},a="DATA_STATE";function i(e){return e===t.SPACE||e===t.LINE_FEED||e===t.TABULATION||e===t.FORM_FEED}function o(e){return e>=t.DIGIT_0&&e<=t.DIGIT_9}function l(e){return e>=t.LATIN_CAPITAL_A&&e<=t.LATIN_CAPITAL_Z}function s(e){return e>=t.LATIN_SMALL_A&&e<=t.LATIN_SMALL_Z}function c(e){return s(e)||l(e)}function u(e,n){return o(e)||n&&(e>=t.LATIN_CAPITAL_A&&e<=t.LATIN_CAPITAL_F||e>=t.LATIN_SMALL_A&&e<=t.LATIN_SMALL_F)}function d(e){return e+32}function p(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(e>>>10&1023|55296)+String.fromCharCode(56320|1023&e))}function m(e){return String.fromCharCode(d(e))}function g(e,t){for(var n=wa[++e],r=++e,a=r+n-1;r<=a;){var i=r+a>>>1,o=wa[i];if(o<t)r=i+1;else{if(!(o>t))return wa[i+n];a=i-1}}return-1}var h=e.exports=function(){this.preprocessor=new xa,this.tokenQueue=[],this.allowCDATA=!1,this.state=a,this.returnState="",this.tempBuff=[],this.additionalAllowedCp=void 0,this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null};h.CHARACTER_TOKEN="CHARACTER_TOKEN",h.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",h.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",h.START_TAG_TOKEN="START_TAG_TOKEN",h.END_TAG_TOKEN="END_TAG_TOKEN",h.COMMENT_TOKEN="COMMENT_TOKEN",h.DOCTYPE_TOKEN="DOCTYPE_TOKEN",h.EOF_TOKEN="EOF_TOKEN",h.HIBERNATION_TOKEN="HIBERNATION_TOKEN",h.MODE={DATA:a,RCDATA:"RCDATA_STATE",RAWTEXT:"RAWTEXT_STATE",SCRIPT_DATA:"SCRIPT_DATA_STATE",PLAINTEXT:"PLAINTEXT_STATE"},h.getTokenAttr=function(e,t){for(var n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null},h.prototype.getNextToken=function(){for(;!this.tokenQueue.length&&this.active;){this._hibernationSnapshot();var e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()},h.prototype.write=function(e,t){this.active=!0,this.preprocessor.write(e,t)},h.prototype.insertHtmlAtCurrentPos=function(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)},h.prototype._hibernationSnapshot=function(){this.consumedAfterSnapshot=0},h.prototype._ensureHibernation=function(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:h.HIBERNATION_TOKEN}),!0}return!1},h.prototype._consume=function(){return this.consumedAfterSnapshot++,this.preprocessor.advance()},h.prototype._unconsume=function(){this.consumedAfterSnapshot--,this.preprocessor.retreat()},h.prototype._unconsumeSeveral=function(e){for(;e--;)this._unconsume()},h.prototype._reconsumeInState=function(e){this.state=e,this._unconsume()},h.prototype._consumeSubsequentIfMatch=function(e,n,r){for(var a=0,i=!0,o=e.length,l=0,s=n,c=void 0;l<o;l++){if(l>0&&(s=this._consume(),a++),s===t.EOF){i=!1;break}if(s!==(c=e[l])&&(r||s!==d(c))){i=!1;break}}return i||this._unconsumeSeveral(a),i},h.prototype._lookahead=function(){var e=this._consume();return this._unconsume(),e},h.prototype.isTempBufferEqualToScriptString=function(){if(this.tempBuff.length!==n.SCRIPT_STRING.length)return!1;for(var e=0;e<this.tempBuff.length;e++)if(this.tempBuff[e]!==n.SCRIPT_STRING[e])return!1;return!0},h.prototype._createStartTagToken=function(){this.currentToken={type:h.START_TAG_TOKEN,tagName:"",selfClosing:!1,attrs:[]}},h.prototype._createEndTagToken=function(){this.currentToken={type:h.END_TAG_TOKEN,tagName:"",attrs:[]}},h.prototype._createCommentToken=function(){this.currentToken={type:h.COMMENT_TOKEN,data:""}},h.prototype._createDoctypeToken=function(e){this.currentToken={type:h.DOCTYPE_TOKEN,name:e,forceQuirks:!1,publicId:null,systemId:null}},h.prototype._createCharacterToken=function(e,t){this.currentCharacterToken={type:e,chars:t}},h.prototype._createAttr=function(e){this.currentAttr={name:e,value:""}},h.prototype._isDuplicateAttr=function(){return null!==h.getTokenAttr(this.currentToken,this.currentAttr.name)},h.prototype._leaveAttrName=function(e){this.state=e,this._isDuplicateAttr()||this.currentToken.attrs.push(this.currentAttr)},h.prototype._leaveAttrValue=function(e){this.state=e},h.prototype._isAppropriateEndTagToken=function(){return this.lastStartTagName===this.currentToken.tagName},h.prototype._emitCurrentToken=function(){this._emitCurrentCharacterToken(),this.currentToken.type===h.START_TAG_TOKEN&&(this.lastStartTagName=this.currentToken.tagName),this.tokenQueue.push(this.currentToken),this.currentToken=null},h.prototype._emitCurrentCharacterToken=function(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)},h.prototype._emitEOFToken=function(){this._emitCurrentCharacterToken(),this.tokenQueue.push({type:h.EOF_TOKEN})},h.prototype._appendCharToCurrentCharacterToken=function(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)},h.prototype._emitCodePoint=function(e){var n=h.CHARACTER_TOKEN;i(e)?n=h.WHITESPACE_CHARACTER_TOKEN:e===t.NULL&&(n=h.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(n,p(e))},h.prototype._emitSeveralCodePoints=function(e){for(var t=0;t<e.length;t++)this._emitCodePoint(e[t])},h.prototype._emitChar=function(e){this._appendCharToCurrentCharacterToken(h.CHARACTER_TOKEN,e)},h.prototype._consumeNumericEntity=function(e){var n="",a=void 0;do{n+=p(this._consume()),a=this._lookahead()}while(a!==t.EOF&&u(a,e));this._lookahead()===t.SEMICOLON&&this._consume();var i,o=parseInt(n,e?16:10),l=r[o];return l||((i=o)>=55296&&i<=57343||i>1114111?t.REPLACEMENT_CHARACTER:o)},h.prototype._consumeNamedEntity=function(e){for(var n=null,r=0,a=null,i=0,l=!1,s=0;s>-1;){var u=wa[s],d=u<7;if(d&&1&u&&(n=2&u?[wa[++s],wa[++s]]:[wa[++s]],r=i,a===t.SEMICOLON)){l=!0;break}if(i++,(a=this._consume())===t.EOF)break;s=d?4&u?g(s,a):-1:a===u?++s:-1}if(n){if(!l&&(this._unconsumeSeveral(i-r),e)){var p=this._lookahead();if(p===t.EQUALS_SIGN||function(e){return c(e)||o(e)}(p))return this._unconsumeSeveral(r),null}return n}return this._unconsumeSeveral(i),null},h.prototype._consumeCharacterReference=function(e,n){if(i(e)||e===t.GREATER_THAN_SIGN||e===t.AMPERSAND||e===this.additionalAllowedCp||e===t.EOF)return this._unconsume(),null;if(e===t.NUMBER_SIGN){var r=!1,a=this._lookahead();return a!==t.LATIN_SMALL_X&&a!==t.LATIN_CAPITAL_X||(this._consume(),r=!0),(a=this._lookahead())!==t.EOF&&u(a,r)?[this._consumeNumericEntity(r)]:(this._unconsumeSeveral(r?2:1),null)}return this._unconsume(),this._consumeNamedEntity(n)};var f=h.prototype;f.DATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.AMPERSAND?this.state="CHARACTER_REFERENCE_IN_DATA_STATE":e===t.LESS_THAN_SIGN?this.state="TAG_OPEN_STATE":e===t.NULL?this._emitCodePoint(e):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},f.CHARACTER_REFERENCE_IN_DATA_STATE=function(e){this.additionalAllowedCp=void 0;var t=this._consumeCharacterReference(e,!1);this._ensureHibernation()||(t?this._emitSeveralCodePoints(t):this._emitChar("&"),this.state=a)},f.RCDATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.AMPERSAND?this.state="CHARACTER_REFERENCE_IN_RCDATA_STATE":e===t.LESS_THAN_SIGN?this.state="RCDATA_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},f.CHARACTER_REFERENCE_IN_RCDATA_STATE=function(e){this.additionalAllowedCp=void 0;var t=this._consumeCharacterReference(e,!1);this._ensureHibernation()||(t?this._emitSeveralCodePoints(t):this._emitChar("&"),this.state="RCDATA_STATE")},f.RAWTEXT_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.LESS_THAN_SIGN?this.state="RAWTEXT_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},f.SCRIPT_DATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},f.PLAINTEXT_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},f.TAG_OPEN_STATE=function(e){e===t.EXCLAMATION_MARK?this.state="MARKUP_DECLARATION_OPEN_STATE":e===t.SOLIDUS?this.state="END_TAG_OPEN_STATE":c(e)?(this._createStartTagToken(),this._reconsumeInState("TAG_NAME_STATE")):e===t.QUESTION_MARK?this._reconsumeInState("BOGUS_COMMENT_STATE"):(this._emitChar("<"),this._reconsumeInState(a))},f.END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("TAG_NAME_STATE")):e===t.GREATER_THAN_SIGN?this.state=a:e===t.EOF?(this._reconsumeInState(a),this._emitChar("<"),this._emitChar("/")):this._reconsumeInState("BOGUS_COMMENT_STATE")},f.TAG_NAME_STATE=function(e){i(e)?this.state="BEFORE_ATTRIBUTE_NAME_STATE":e===t.SOLIDUS?this.state="SELF_CLOSING_START_TAG_STATE":e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):l(e)?this.currentToken.tagName+=m(e):e===t.NULL?this.currentToken.tagName+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentToken.tagName+=p(e)},f.RCDATA_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="RCDATA_END_TAG_OPEN_STATE"):(this._emitChar("<"),this._reconsumeInState("RCDATA_STATE"))},f.RCDATA_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("RCDATA_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("RCDATA_STATE"))},f.RCDATA_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this.state=a,void this._emitCurrentToken()}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("RCDATA_STATE")}},f.RAWTEXT_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="RAWTEXT_END_TAG_OPEN_STATE"):(this._emitChar("<"),this._reconsumeInState("RAWTEXT_STATE"))},f.RAWTEXT_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("RAWTEXT_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("RAWTEXT_STATE"))},f.RAWTEXT_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("RAWTEXT_STATE")}},f.SCRIPT_DATA_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_END_TAG_OPEN_STATE"):e===t.EXCLAMATION_MARK?(this.state="SCRIPT_DATA_ESCAPE_START_STATE",this._emitChar("<"),this._emitChar("!")):(this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_STATE"))},f.SCRIPT_DATA_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("SCRIPT_DATA_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("SCRIPT_DATA_STATE"))},f.SCRIPT_DATA_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("SCRIPT_DATA_STATE")}},f.SCRIPT_DATA_ESCAPE_START_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPE_START_DASH_STATE",this._emitChar("-")):this._reconsumeInState("SCRIPT_DATA_STATE")},f.SCRIPT_DATA_ESCAPE_START_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):this._reconsumeInState("SCRIPT_DATA_STATE")},f.SCRIPT_DATA_ESCAPED_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._reconsumeInState(a):this._emitCodePoint(e)},f.SCRIPT_DATA_ESCAPED_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.NULL?(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitChar(Ma.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e))},f.SCRIPT_DATA_ESCAPED_DASH_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this._emitChar("-"):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.GREATER_THAN_SIGN?(this.state="SCRIPT_DATA_STATE",this._emitChar(">")):e===t.NULL?(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitChar(Ma.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e))},f.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE"):c(e)?(this.tempBuff=[],this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE")):(this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE"))},f.SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE"))},f.SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE")}},f.SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN?(this.state=this.isTempBufferEqualToScriptString()?"SCRIPT_DATA_DOUBLE_ESCAPED_STATE":"SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e)):l(e)?(this.tempBuff.push(d(e)),this._emitCodePoint(e)):s(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE")},f.SCRIPT_DATA_DOUBLE_ESCAPED_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.NULL?this._emitChar(Ma.REPLACEMENT_CHARACTER):e===t.EOF?this._reconsumeInState(a):this._emitCodePoint(e)},f.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.NULL?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitChar(Ma.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e))},f.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this._emitChar("-"):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.GREATER_THAN_SIGN?(this.state="SCRIPT_DATA_STATE",this._emitChar(">")):e===t.NULL?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitChar(Ma.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e))},f.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",this._emitChar("/")):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")},f.SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN?(this.state=this.isTempBufferEqualToScriptString()?"SCRIPT_DATA_ESCAPED_STATE":"SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e)):l(e)?(this.tempBuff.push(d(e)),this._emitCodePoint(e)):s(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")},f.BEFORE_ATTRIBUTE_NAME_STATE=function(e){i(e)||(e===t.SOLIDUS||e===t.GREATER_THAN_SIGN||e===t.EOF?this._reconsumeInState("AFTER_ATTRIBUTE_NAME_STATE"):e===t.EQUALS_SIGN?(this._createAttr("="),this.state="ATTRIBUTE_NAME_STATE"):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))},f.ATTRIBUTE_NAME_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN||e===t.EOF?(this._leaveAttrName("AFTER_ATTRIBUTE_NAME_STATE"),this._unconsume()):e===t.EQUALS_SIGN?this._leaveAttrName("BEFORE_ATTRIBUTE_VALUE_STATE"):l(e)?this.currentAttr.name+=m(e):e===t.QUOTATION_MARK||e===t.APOSTROPHE||e===t.LESS_THAN_SIGN?this.currentAttr.name+=p(e):e===t.NULL?this.currentAttr.name+=Ma.REPLACEMENT_CHARACTER:this.currentAttr.name+=p(e)},f.AFTER_ATTRIBUTE_NAME_STATE=function(e){i(e)||(e===t.SOLIDUS?this.state="SELF_CLOSING_START_TAG_STATE":e===t.EQUALS_SIGN?this.state="BEFORE_ATTRIBUTE_VALUE_STATE":e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))},f.BEFORE_ATTRIBUTE_VALUE_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?this.state="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE":e===t.APOSTROPHE?this.state="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE":this._reconsumeInState("ATTRIBUTE_VALUE_UNQUOTED_STATE"))},f.ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":e===t.AMPERSAND?(this.additionalAllowedCp=t.QUOTATION_MARK,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.NULL?this.currentAttr.value+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},f.ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":e===t.AMPERSAND?(this.additionalAllowedCp=t.APOSTROPHE,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.NULL?this.currentAttr.value+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},f.ATTRIBUTE_VALUE_UNQUOTED_STATE=function(e){i(e)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):e===t.AMPERSAND?(this.additionalAllowedCp=t.GREATER_THAN_SIGN,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.GREATER_THAN_SIGN?(this._leaveAttrValue(a),this._emitCurrentToken()):e===t.NULL?this.currentAttr.value+=Ma.REPLACEMENT_CHARACTER:e===t.QUOTATION_MARK||e===t.APOSTROPHE||e===t.LESS_THAN_SIGN||e===t.EQUALS_SIGN||e===t.GRAVE_ACCENT?this.currentAttr.value+=p(e):e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},f.CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE=function(e){var t=this._consumeCharacterReference(e,!0);if(!this._ensureHibernation()){if(t)for(var n=0;n<t.length;n++)this.currentAttr.value+=p(t[n]);else this.currentAttr.value+="&";this.state=this.returnState}},f.AFTER_ATTRIBUTE_VALUE_QUOTED_STATE=function(e){i(e)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):e===t.SOLIDUS?this._leaveAttrValue("SELF_CLOSING_START_TAG_STATE"):e===t.GREATER_THAN_SIGN?(this._leaveAttrValue(a),this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE")},f.SELF_CLOSING_START_TAG_STATE=function(e){e===t.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=a,this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE")},f.BOGUS_COMMENT_STATE=function(){this._createCommentToken(),this._reconsumeInState("BOGUS_COMMENT_STATE_CONTINUATION")},f.BOGUS_COMMENT_STATE_CONTINUATION=function(e){for(;;){if(e===t.GREATER_THAN_SIGN){this.state=a;break}if(e===t.EOF){this._reconsumeInState(a);break}if(this.currentToken.data+=e===t.NULL?Ma.REPLACEMENT_CHARACTER:p(e),this._hibernationSnapshot(),e=this._consume(),this._ensureHibernation())return}this._emitCurrentToken()},f.MARKUP_DECLARATION_OPEN_STATE=function(e){var t=this._consumeSubsequentIfMatch(n.DASH_DASH_STRING,e,!0),r=!t&&this._consumeSubsequentIfMatch(n.DOCTYPE_STRING,e,!1),a=!t&&!r&&this.allowCDATA&&this._consumeSubsequentIfMatch(n.CDATA_START_STRING,e,!0);this._ensureHibernation()||(t?(this._createCommentToken(),this.state="COMMENT_START_STATE"):r?this.state="DOCTYPE_STATE":a?this.state="CDATA_SECTION_STATE":this._reconsumeInState("BOGUS_COMMENT_STATE"))},f.COMMENT_START_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_START_DASH_STATE":e===t.NULL?(this.currentToken.data+=Ma.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+=p(e),this.state="COMMENT_STATE")},f.COMMENT_START_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_STATE":e===t.NULL?(this.currentToken.data+="-",this.currentToken.data+=Ma.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="-",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},f.COMMENT_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_DASH_STATE":e===t.NULL?this.currentToken.data+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.data+=p(e)},f.COMMENT_END_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_STATE":e===t.NULL?(this.currentToken.data+="-",this.currentToken.data+=Ma.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="-",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},f.COMMENT_END_STATE=function(e){e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EXCLAMATION_MARK?this.state="COMMENT_END_BANG_STATE":e===t.HYPHEN_MINUS?this.currentToken.data+="-":e===t.NULL?(this.currentToken.data+="--",this.currentToken.data+=Ma.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._reconsumeInState(a),this._emitCurrentToken()):(this.currentToken.data+="--",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},f.COMMENT_END_BANG_STATE=function(e){e===t.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state="COMMENT_END_DASH_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.NULL?(this.currentToken.data+="--!",this.currentToken.data+=Ma.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="--!",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},f.DOCTYPE_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):(this._createDoctypeToken(""),this._reconsumeInState("DOCTYPE_NAME_STATE")))},f.DOCTYPE_NAME_STATE=function(e){i(e)||e===t.GREATER_THAN_SIGN||e===t.EOF?this._reconsumeInState("AFTER_DOCTYPE_NAME_STATE"):l(e)?this.currentToken.name+=m(e):e===t.NULL?this.currentToken.name+=Ma.REPLACEMENT_CHARACTER:this.currentToken.name+=p(e)},f.AFTER_DOCTYPE_NAME_STATE=function(e){if(!i(e))if(e===t.GREATER_THAN_SIGN)this.state=a,this._emitCurrentToken();else{var r=this._consumeSubsequentIfMatch(n.PUBLIC_STRING,e,!1),o=!r&&this._consumeSubsequentIfMatch(n.SYSTEM_STRING,e,!1);this._ensureHibernation()||(r?this.state="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE":o?this.state="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE":(this.currentToken.forceQuirks=!0,this.state="BOGUS_DOCTYPE_STATE"))}},f.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},f.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE":e===t.NULL?this.currentToken.publicId+=Ma.REPLACEMENT_CHARACTER:e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.publicId+=p(e)},f.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE":e===t.NULL?this.currentToken.publicId+=Ma.REPLACEMENT_CHARACTER:e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.publicId+=p(e)},f.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},f.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},f.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.NULL?this.currentToken.systemId+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.systemId+=p(e)},f.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.NULL?this.currentToken.systemId+=Ma.REPLACEMENT_CHARACTER:e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.systemId+=p(e)},f.AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.state="BOGUS_DOCTYPE_STATE")},f.BOGUS_DOCTYPE_STATE=function(e){e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.EOF&&(this._emitCurrentToken(),this._reconsumeInState(a))},f.CDATA_SECTION_STATE=function(e){for(;;){if(e===t.EOF){this._reconsumeInState(a);break}var r=this._consumeSubsequentIfMatch(n.CDATA_END_STRING,e,!0);if(this._ensureHibernation())break;if(r){this.state=a;break}if(this._emitCodePoint(e),this._hibernationSnapshot(),e=this._consume(),this._ensureHibernation())break}}}),Da=f(function(e,t){var n=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},t.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};var r=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",MENUITEM:"menuitem",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"},a=t.SPECIAL_ELEMENTS=Object.create(null);a[n.HTML]=Object.create(null),a[n.HTML][r.ADDRESS]=!0,a[n.HTML][r.APPLET]=!0,a[n.HTML][r.AREA]=!0,a[n.HTML][r.ARTICLE]=!0,a[n.HTML][r.ASIDE]=!0,a[n.HTML][r.BASE]=!0,a[n.HTML][r.BASEFONT]=!0,a[n.HTML][r.BGSOUND]=!0,a[n.HTML][r.BLOCKQUOTE]=!0,a[n.HTML][r.BODY]=!0,a[n.HTML][r.BR]=!0,a[n.HTML][r.BUTTON]=!0,a[n.HTML][r.CAPTION]=!0,a[n.HTML][r.CENTER]=!0,a[n.HTML][r.COL]=!0,a[n.HTML][r.COLGROUP]=!0,a[n.HTML][r.DD]=!0,a[n.HTML][r.DETAILS]=!0,a[n.HTML][r.DIR]=!0,a[n.HTML][r.DIV]=!0,a[n.HTML][r.DL]=!0,a[n.HTML][r.DT]=!0,a[n.HTML][r.EMBED]=!0,a[n.HTML][r.FIELDSET]=!0,a[n.HTML][r.FIGCAPTION]=!0,a[n.HTML][r.FIGURE]=!0,a[n.HTML][r.FOOTER]=!0,a[n.HTML][r.FORM]=!0,a[n.HTML][r.FRAME]=!0,a[n.HTML][r.FRAMESET]=!0,a[n.HTML][r.H1]=!0,a[n.HTML][r.H2]=!0,a[n.HTML][r.H3]=!0,a[n.HTML][r.H4]=!0,a[n.HTML][r.H5]=!0,a[n.HTML][r.H6]=!0,a[n.HTML][r.HEAD]=!0,a[n.HTML][r.HEADER]=!0,a[n.HTML][r.HGROUP]=!0,a[n.HTML][r.HR]=!0,a[n.HTML][r.HTML]=!0,a[n.HTML][r.IFRAME]=!0,a[n.HTML][r.IMG]=!0,a[n.HTML][r.INPUT]=!0,a[n.HTML][r.LI]=!0,a[n.HTML][r.LINK]=!0,a[n.HTML][r.LISTING]=!0,a[n.HTML][r.MAIN]=!0,a[n.HTML][r.MARQUEE]=!0,a[n.HTML][r.MENU]=!0,a[n.HTML][r.META]=!0,a[n.HTML][r.NAV]=!0,a[n.HTML][r.NOEMBED]=!0,a[n.HTML][r.NOFRAMES]=!0,a[n.HTML][r.NOSCRIPT]=!0,a[n.HTML][r.OBJECT]=!0,a[n.HTML][r.OL]=!0,a[n.HTML][r.P]=!0,a[n.HTML][r.PARAM]=!0,a[n.HTML][r.PLAINTEXT]=!0,a[n.HTML][r.PRE]=!0,a[n.HTML][r.SCRIPT]=!0,a[n.HTML][r.SECTION]=!0,a[n.HTML][r.SELECT]=!0,a[n.HTML][r.SOURCE]=!0,a[n.HTML][r.STYLE]=!0,a[n.HTML][r.SUMMARY]=!0,a[n.HTML][r.TABLE]=!0,a[n.HTML][r.TBODY]=!0,a[n.HTML][r.TD]=!0,a[n.HTML][r.TEMPLATE]=!0,a[n.HTML][r.TEXTAREA]=!0,a[n.HTML][r.TFOOT]=!0,a[n.HTML][r.TH]=!0,a[n.HTML][r.THEAD]=!0,a[n.HTML][r.TITLE]=!0,a[n.HTML][r.TR]=!0,a[n.HTML][r.TRACK]=!0,a[n.HTML][r.UL]=!0,a[n.HTML][r.WBR]=!0,a[n.HTML][r.XMP]=!0,a[n.MATHML]=Object.create(null),a[n.MATHML][r.MI]=!0,a[n.MATHML][r.MO]=!0,a[n.MATHML][r.MN]=!0,a[n.MATHML][r.MS]=!0,a[n.MATHML][r.MTEXT]=!0,a[n.MATHML][r.ANNOTATION_XML]=!0,a[n.SVG]=Object.create(null),a[n.SVG][r.TITLE]=!0,a[n.SVG][r.FOREIGN_OBJECT]=!0,a[n.SVG][r.DESC]=!0}),Ia=(Da.NAMESPACES,Da.ATTRS,Da.DOCUMENT_MODE,Da.TAG_NAMES,Da.SPECIAL_ELEMENTS,f(function(e){var t=Da.TAG_NAMES,n=Da.NAMESPACES;function r(e){switch(e.length){case 1:return e===t.P;case 2:return e===t.RB||e===t.RP||e===t.RT||e===t.DD||e===t.DT||e===t.LI;case 3:return e===t.RTC;case 6:return e===t.OPTION;case 8:return e===t.OPTGROUP||e===t.MENUITEM}return!1}function a(e,r){switch(e.length){case 2:if(e===t.TD||e===t.TH)return r===n.HTML;if(e===t.MI||e===t.MO||e===t.MN||e===t.MS)return r===n.MATHML;break;case 4:if(e===t.HTML)return r===n.HTML;if(e===t.DESC)return r===n.SVG;break;case 5:if(e===t.TABLE)return r===n.HTML;if(e===t.MTEXT)return r===n.MATHML;if(e===t.TITLE)return r===n.SVG;break;case 6:return(e===t.APPLET||e===t.OBJECT)&&r===n.HTML;case 7:return(e===t.CAPTION||e===t.MARQUEE)&&r===n.HTML;case 8:return e===t.TEMPLATE&&r===n.HTML;case 13:return e===t.FOREIGN_OBJECT&&r===n.SVG;case 14:return e===t.ANNOTATION_XML&&r===n.MATHML}return!1}var i=e.exports=function(e,t){this.stackTop=-1,this.items=[],this.current=e,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=t};i.prototype._indexOf=function(e){for(var t=-1,n=this.stackTop;n>=0;n--)if(this.items[n]===e){t=n;break}return t},i.prototype._isInTemplate=function(){return this.currentTagName===t.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===n.HTML},i.prototype._updateCurrentElement=function(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null},i.prototype.push=function(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++},i.prototype.pop=function(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()},i.prototype.replace=function(e,t){var n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&this._updateCurrentElement()},i.prototype.insertAfter=function(e,t){var n=this._indexOf(e)+1;this.items.splice(n,0,t),n===++this.stackTop&&this._updateCurrentElement()},i.prototype.popUntilTagNamePopped=function(e){for(;this.stackTop>-1;){var t=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&r===n.HTML)break}},i.prototype.popUntilElementPopped=function(e){for(;this.stackTop>-1;){var t=this.current;if(this.pop(),t===e)break}},i.prototype.popUntilNumberedHeaderPopped=function(){for(;this.stackTop>-1;){var e=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===t.H1||e===t.H2||e===t.H3||e===t.H4||e===t.H5||e===t.H6&&r===n.HTML)break}},i.prototype.popUntilTableCellPopped=function(){for(;this.stackTop>-1;){var e=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===t.TD||e===t.TH&&r===n.HTML)break}},i.prototype.popAllUpToHtmlElement=function(){this.stackTop=0,this._updateCurrentElement()},i.prototype.clearBackToTableContext=function(){for(;this.currentTagName!==t.TABLE&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.clearBackToTableBodyContext=function(){for(;this.currentTagName!==t.TBODY&&this.currentTagName!==t.TFOOT&&this.currentTagName!==t.THEAD&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.clearBackToTableRowContext=function(){for(;this.currentTagName!==t.TR&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.remove=function(e){for(var t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}},i.prototype.tryPeekProperlyNestedBodyElement=function(){var e=this.items[1];return e&&this.treeAdapter.getTagName(e)===t.BODY?e:null},i.prototype.contains=function(e){return this._indexOf(e)>-1},i.prototype.getCommonAncestor=function(e){var t=this._indexOf(e);return--t>=0?this.items[t]:null},i.prototype.isRootHtmlElementCurrent=function(){return 0===this.stackTop&&this.currentTagName===t.HTML},i.prototype.hasInScope=function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(r===e&&i===n.HTML)return!0;if(a(r,i))return!1}return!0},i.prototype.hasNumberedHeaderInScope=function(){for(var e=this.stackTop;e>=0;e--){var r=this.treeAdapter.getTagName(this.items[e]),i=this.treeAdapter.getNamespaceURI(this.items[e]);if((r===t.H1||r===t.H2||r===t.H3||r===t.H4||r===t.H5||r===t.H6)&&i===n.HTML)return!0;if(a(r,i))return!1}return!0},i.prototype.hasInListItemScope=function(e){for(var r=this.stackTop;r>=0;r--){var i=this.treeAdapter.getTagName(this.items[r]),o=this.treeAdapter.getNamespaceURI(this.items[r]);if(i===e&&o===n.HTML)return!0;if((i===t.UL||i===t.OL)&&o===n.HTML||a(i,o))return!1}return!0},i.prototype.hasInButtonScope=function(e){for(var r=this.stackTop;r>=0;r--){var i=this.treeAdapter.getTagName(this.items[r]),o=this.treeAdapter.getNamespaceURI(this.items[r]);if(i===e&&o===n.HTML)return!0;if(i===t.BUTTON&&o===n.HTML||a(i,o))return!1}return!0},i.prototype.hasInTableScope=function(e){for(var r=this.stackTop;r>=0;r--){var a=this.treeAdapter.getTagName(this.items[r]);if(this.treeAdapter.getNamespaceURI(this.items[r])===n.HTML){if(a===e)return!0;if(a===t.TABLE||a===t.TEMPLATE||a===t.HTML)return!1}}return!0},i.prototype.hasTableBodyContextInTableScope=function(){for(var e=this.stackTop;e>=0;e--){var r=this.treeAdapter.getTagName(this.items[e]);if(this.treeAdapter.getNamespaceURI(this.items[e])===n.HTML){if(r===t.TBODY||r===t.THEAD||r===t.TFOOT)return!0;if(r===t.TABLE||r===t.HTML)return!1}}return!0},i.prototype.hasInSelectScope=function(e){for(var r=this.stackTop;r>=0;r--){var a=this.treeAdapter.getTagName(this.items[r]);if(this.treeAdapter.getNamespaceURI(this.items[r])===n.HTML){if(a===e)return!0;if(a!==t.OPTION&&a!==t.OPTGROUP)return!1}}return!0},i.prototype.generateImpliedEndTags=function(){for(;r(this.currentTagName);)this.pop()},i.prototype.generateImpliedEndTagsWithExclusion=function(e){for(;r(this.currentTagName)&&this.currentTagName!==e;)this.pop()}})),ka=f(function(e){var t=e.exports=function(e){this.length=0,this.entries=[],this.treeAdapter=e,this.bookmark=null};t.MARKER_ENTRY="MARKER_ENTRY",t.ELEMENT_ENTRY="ELEMENT_ENTRY",t.prototype._getNoahArkConditionCandidates=function(e){var n=[];if(this.length>=3)for(var r=this.treeAdapter.getAttrList(e).length,a=this.treeAdapter.getTagName(e),i=this.treeAdapter.getNamespaceURI(e),o=this.length-1;o>=0;o--){var l=this.entries[o];if(l.type===t.MARKER_ENTRY)break;var s=l.element,c=this.treeAdapter.getAttrList(s);this.treeAdapter.getTagName(s)===a&&this.treeAdapter.getNamespaceURI(s)===i&&c.length===r&&n.push({idx:o,attrs:c})}return n.length<3?[]:n},t.prototype._ensureNoahArkCondition=function(e){var t=this._getNoahArkConditionCandidates(e),n=t.length;if(n){for(var r=this.treeAdapter.getAttrList(e),a=r.length,i=Object.create(null),o=0;o<a;o++){var l=r[o];i[l.name]=l.value}for(o=0;o<a;o++)for(var s=0;s<n;s++){var c=t[s].attrs[o];if(i[c.name]!==c.value&&(t.splice(s,1),n--),t.length<3)return}for(o=n-1;o>=2;o--)this.entries.splice(t[o].idx,1),this.length--}},t.prototype.insertMarker=function(){this.entries.push({type:t.MARKER_ENTRY}),this.length++},t.prototype.pushElement=function(e,n){this._ensureNoahArkCondition(e),this.entries.push({type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++},t.prototype.insertElementAfterBookmark=function(e,n){for(var r=this.length-1;r>=0&&this.entries[r]!==this.bookmark;r--);this.entries.splice(r+1,0,{type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++},t.prototype.removeEntry=function(e){for(var t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}},t.prototype.clearToLastMarker=function(){for(;this.length;){var e=this.entries.pop();if(this.length--,e.type===t.MARKER_ENTRY)break}},t.prototype.getElementEntryInScopeWithTagName=function(e){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===t.MARKER_ENTRY)return null;if(this.treeAdapter.getTagName(r.element)===e)return r}return null},t.prototype.getElementEntry=function(e){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===t.ELEMENT_ENTRY&&r.element===e)return r}return null}}),La=f(function(e){(e.exports=function(e){var t={},n=this._getOverriddenMethods(this,t);Object.keys(n).forEach(function(r){"function"==typeof n[r]&&(t[r]=e[r],e[r]=n[r])})}).prototype._getOverriddenMethods=function(){throw new Error("Not implemented")}}),Pa="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},Ba=[],Fa=[],Ua="undefined"!=typeof Uint8Array?Uint8Array:Array,Ha=!1;function Ga(){Ha=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,n=e.length;t<n;++t)Ba[t]=e[t],Fa[e.charCodeAt(t)]=t;Fa["-".charCodeAt(0)]=62,Fa["_".charCodeAt(0)]=63}function qa(e,t,n){for(var r,a,i=[],o=t;o<n;o+=3)r=(e[o]<<16)+(e[o+1]<<8)+e[o+2],i.push(Ba[(a=r)>>18&63]+Ba[a>>12&63]+Ba[a>>6&63]+Ba[63&a]);return i.join("")}function za(e){var t;Ha||Ga();for(var n=e.length,r=n%3,a="",i=[],o=0,l=n-r;o<l;o+=16383)i.push(qa(e,o,o+16383>l?l:o+16383));return 1===r?(t=e[n-1],a+=Ba[t>>2],a+=Ba[t<<4&63],a+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],a+=Ba[t>>10],a+=Ba[t>>4&63],a+=Ba[t<<2&63],a+="="),i.push(a),i.join("")}function Ka(e,t,n,r,a){var i,o,l=8*a-r-1,s=(1<<l)-1,c=s>>1,u=-7,d=n?a-1:0,p=n?-1:1,m=e[t+d];for(d+=p,i=m&(1<<-u)-1,m>>=-u,u+=l;u>0;i=256*i+e[t+d],d+=p,u-=8);for(o=i&(1<<-u)-1,i>>=-u,u+=r;u>0;o=256*o+e[t+d],d+=p,u-=8);if(0===i)i=1-c;else{if(i===s)return o?NaN:1/0*(m?-1:1);o+=Math.pow(2,r),i-=c}return(m?-1:1)*o*Math.pow(2,i-r)}function ja(e,t,n,r,a,i){var o,l,s,c=8*i-a-1,u=(1<<c)-1,d=u>>1,p=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,m=r?0:i-1,g=r?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(l=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-o))<1&&(o--,s*=2),(t+=o+d>=1?p/s:p*Math.pow(2,1-d))*s>=2&&(o++,s/=2),o+d>=u?(l=0,o=u):o+d>=1?(l=(t*s-1)*Math.pow(2,a),o+=d):(l=t*Math.pow(2,d-1)*Math.pow(2,a),o=0));a>=8;e[n+m]=255&l,m+=g,l/=256,a-=8);for(o=o<<a|l,c+=a;c>0;e[n+m]=255&o,m+=g,o/=256,c-=8);e[n+m-g]|=128*h}var Va={}.toString,$a=Array.isArray||function(e){return"[object Array]"==Va.call(e)};function Wa(){return Qa.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Ya(e,t){if(Wa()<t)throw new RangeError("Invalid typed array length");return Qa.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=Qa.prototype:(null===e&&(e=new Qa(t)),e.length=t),e}function Qa(e,t,n){if(!(Qa.TYPED_ARRAY_SUPPORT||this instanceof Qa))return new Qa(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return Ja(this,e)}return Xa(this,e,t,n)}function Xa(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);Qa.TYPED_ARRAY_SUPPORT?(e=t).__proto__=Qa.prototype:e=ei(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!Qa.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|ri(t,n),a=(e=Ya(e,r)).write(t,n);a!==r&&(e=e.slice(0,a));return e}(e,t,n):function(e,t){if(ni(t)){var n=0|ti(t.length);return 0===(e=Ya(e,n)).length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?Ya(e,0):ei(e,t);if("Buffer"===t.type&&$a(t.data))return ei(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function Za(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function Ja(e,t){if(Za(t),e=Ya(e,t<0?0:0|ti(t)),!Qa.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function ei(e,t){var n=t.length<0?0:0|ti(t.length);e=Ya(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function ti(e){if(e>=Wa())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Wa().toString(16)+" bytes");return 0|e}function ni(e){return!(null==e||!e._isBuffer)}function ri(e,t){if(ni(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return xi(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return wi(e).length;default:if(r)return xi(e).length;t=(""+t).toLowerCase(),r=!0}}function ai(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function ii(e,t,n,r,a){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=a?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(a)return-1;n=e.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof t&&(t=Qa.from(t,r)),ni(t))return 0===t.length?-1:oi(e,t,n,r,a);if("number"==typeof t)return t&=255,Qa.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):oi(e,[t],n,r,a);throw new TypeError("val must be string, number or Buffer")}function oi(e,t,n,r,a){var i,o=1,l=e.length,s=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,l/=2,s/=2,n/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(a){var u=-1;for(i=n;i<l;i++)if(c(e,i)===c(t,-1===u?0:i-u)){if(-1===u&&(u=i),i-u+1===s)return u*o}else-1!==u&&(i-=i-u),u=-1}else for(n+s>l&&(n=l-s),i=n;i>=0;i--){for(var d=!0,p=0;p<s;p++)if(c(e,i+p)!==c(t,p)){d=!1;break}if(d)return i}return-1}function li(e,t,n,r){n=Number(n)||0;var a=e.length-n;r?(r=Number(r))>a&&(r=a):r=a;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var o=0;o<r;++o){var l=parseInt(t.substr(2*o,2),16);if(isNaN(l))return o;e[n+o]=l}return o}function si(e,t,n,r){return Ri(xi(t,e.length-n),e,n,r)}function ci(e,t,n,r){return Ri(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function ui(e,t,n,r){return ci(e,t,n,r)}function di(e,t,n,r){return Ri(wi(t),e,n,r)}function pi(e,t,n,r){return Ri(function(e,t){for(var n,r,a,i=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,a=n%256,i.push(a),i.push(r);return i}(t,e.length-n),e,n,r)}function mi(e,t,n){return 0===t&&n===e.length?za(e):za(e.slice(t,n))}function gi(e,t,n){n=Math.min(e.length,n);for(var r=[],a=t;a<n;){var i,o,l,s,c=e[a],u=null,d=c>239?4:c>223?3:c>191?2:1;if(a+d<=n)switch(d){case 1:c<128&&(u=c);break;case 2:128==(192&(i=e[a+1]))&&(s=(31&c)<<6|63&i)>127&&(u=s);break;case 3:i=e[a+1],o=e[a+2],128==(192&i)&&128==(192&o)&&(s=(15&c)<<12|(63&i)<<6|63&o)>2047&&(s<55296||s>57343)&&(u=s);break;case 4:i=e[a+1],o=e[a+2],l=e[a+3],128==(192&i)&&128==(192&o)&&128==(192&l)&&(s=(15&c)<<18|(63&i)<<12|(63&o)<<6|63&l)>65535&&s<1114112&&(u=s)}null===u?(u=65533,d=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),a+=d}return function(e){var t=e.length;if(t<=hi)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=hi));return n}(r)}Qa.TYPED_ARRAY_SUPPORT=void 0===Pa.TYPED_ARRAY_SUPPORT||Pa.TYPED_ARRAY_SUPPORT,Qa.poolSize=8192,Qa._augment=function(e){return e.__proto__=Qa.prototype,e},Qa.from=function(e,t,n){return Xa(null,e,t,n)},Qa.TYPED_ARRAY_SUPPORT&&(Qa.prototype.__proto__=Uint8Array.prototype,Qa.__proto__=Uint8Array),Qa.alloc=function(e,t,n){return function(e,t,n,r){return Za(t),t<=0?Ya(e,t):void 0!==n?"string"==typeof r?Ya(e,t).fill(n,r):Ya(e,t).fill(n):Ya(e,t)}(null,e,t,n)},Qa.allocUnsafe=function(e){return Ja(null,e)},Qa.allocUnsafeSlow=function(e){return Ja(null,e)},Qa.isBuffer=Di,Qa.compare=function(e,t){if(!ni(e)||!ni(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,a=0,i=Math.min(n,r);a<i;++a)if(e[a]!==t[a]){n=e[a],r=t[a];break}return n<r?-1:r<n?1:0},Qa.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Qa.concat=function(e,t){if(!$a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return Qa.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=Qa.allocUnsafe(t),a=0;for(n=0;n<e.length;++n){var i=e[n];if(!ni(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,a),a+=i.length}return r},Qa.byteLength=ri,Qa.prototype._isBuffer=!0,Qa.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)ai(this,t,t+1);return this},Qa.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)ai(this,t,t+3),ai(this,t+1,t+2);return this},Qa.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)ai(this,t,t+7),ai(this,t+1,t+6),ai(this,t+2,t+5),ai(this,t+3,t+4);return this},Qa.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?gi(this,0,e):function(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return Ei(this,t,n);case"utf8":case"utf-8":return gi(this,t,n);case"ascii":return fi(this,t,n);case"latin1":case"binary":return _i(this,t,n);case"base64":return mi(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ti(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},Qa.prototype.equals=function(e){if(!ni(e))throw new TypeError("Argument must be a Buffer");return this===e||0===Qa.compare(this,e)},Qa.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},Qa.prototype.compare=function(e,t,n,r,a){if(!ni(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===a&&(a=this.length),t<0||n>e.length||r<0||a>this.length)throw new RangeError("out of range index");if(r>=a&&t>=n)return 0;if(r>=a)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,a>>>=0,this===e)return 0;for(var i=a-r,o=n-t,l=Math.min(i,o),s=this.slice(r,a),c=e.slice(t,n),u=0;u<l;++u)if(s[u]!==c[u]){i=s[u],o=c[u];break}return i<o?-1:o<i?1:0},Qa.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},Qa.prototype.indexOf=function(e,t,n){return ii(this,e,t,n,!0)},Qa.prototype.lastIndexOf=function(e,t,n){return ii(this,e,t,n,!1)},Qa.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var a=this.length-t;if((void 0===n||n>a)&&(n=a),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return li(this,e,t,n);case"utf8":case"utf-8":return si(this,e,t,n);case"ascii":return ci(this,e,t,n);case"latin1":case"binary":return ui(this,e,t,n);case"base64":return di(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pi(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Qa.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var hi=4096;function fi(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(127&e[a]);return r}function _i(e,t,n){var r="";n=Math.min(e.length,n);for(var a=t;a<n;++a)r+=String.fromCharCode(e[a]);return r}function Ei(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var a="",i=t;i<n;++i)a+=Mi(e[i]);return a}function Ti(e,t,n){for(var r=e.slice(t,n),a="",i=0;i<r.length;i+=2)a+=String.fromCharCode(r[i]+256*r[i+1]);return a}function bi(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function vi(e,t,n,r,a,i){if(!ni(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function Ai(e,t,n,r){t<0&&(t=65535+t+1);for(var a=0,i=Math.min(e.length-n,2);a<i;++a)e[n+a]=(t&255<<8*(r?a:1-a))>>>8*(r?a:1-a)}function Si(e,t,n,r){t<0&&(t=4294967295+t+1);for(var a=0,i=Math.min(e.length-n,4);a<i;++a)e[n+a]=t>>>8*(r?a:3-a)&255}function yi(e,t,n,r,a,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function Ni(e,t,n,r,a){return a||yi(e,0,n,4),ja(e,t,n,r,23,4),n+4}function Ci(e,t,n,r,a){return a||yi(e,0,n,8),ja(e,t,n,r,52,8),n+8}Qa.prototype.slice=function(e,t){var n,r=this.length;if(e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),Qa.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=Qa.prototype;else{var a=t-e;n=new Qa(a,void 0);for(var i=0;i<a;++i)n[i]=this[i+e]}return n},Qa.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||bi(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r},Qa.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||bi(e,t,this.length);for(var r=this[e+--t],a=1;t>0&&(a*=256);)r+=this[e+--t]*a;return r},Qa.prototype.readUInt8=function(e,t){return t||bi(e,1,this.length),this[e]},Qa.prototype.readUInt16LE=function(e,t){return t||bi(e,2,this.length),this[e]|this[e+1]<<8},Qa.prototype.readUInt16BE=function(e,t){return t||bi(e,2,this.length),this[e]<<8|this[e+1]},Qa.prototype.readUInt32LE=function(e,t){return t||bi(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},Qa.prototype.readUInt32BE=function(e,t){return t||bi(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},Qa.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||bi(e,t,this.length);for(var r=this[e],a=1,i=0;++i<t&&(a*=256);)r+=this[e+i]*a;return r>=(a*=128)&&(r-=Math.pow(2,8*t)),r},Qa.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||bi(e,t,this.length);for(var r=t,a=1,i=this[e+--r];r>0&&(a*=256);)i+=this[e+--r]*a;return i>=(a*=128)&&(i-=Math.pow(2,8*t)),i},Qa.prototype.readInt8=function(e,t){return t||bi(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},Qa.prototype.readInt16LE=function(e,t){t||bi(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},Qa.prototype.readInt16BE=function(e,t){t||bi(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},Qa.prototype.readInt32LE=function(e,t){return t||bi(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},Qa.prototype.readInt32BE=function(e,t){return t||bi(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},Qa.prototype.readFloatLE=function(e,t){return t||bi(e,4,this.length),Ka(this,e,!0,23,4)},Qa.prototype.readFloatBE=function(e,t){return t||bi(e,4,this.length),Ka(this,e,!1,23,4)},Qa.prototype.readDoubleLE=function(e,t){return t||bi(e,8,this.length),Ka(this,e,!0,52,8)},Qa.prototype.readDoubleBE=function(e,t){return t||bi(e,8,this.length),Ka(this,e,!1,52,8)},Qa.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||vi(this,e,t,n,Math.pow(2,8*n)-1,0);var a=1,i=0;for(this[t]=255&e;++i<n&&(a*=256);)this[t+i]=e/a&255;return t+n},Qa.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||vi(this,e,t,n,Math.pow(2,8*n)-1,0);var a=n-1,i=1;for(this[t+a]=255&e;--a>=0&&(i*=256);)this[t+a]=e/i&255;return t+n},Qa.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,1,255,0),Qa.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},Qa.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,2,65535,0),Qa.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ai(this,e,t,!0),t+2},Qa.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,2,65535,0),Qa.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ai(this,e,t,!1),t+2},Qa.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,4,4294967295,0),Qa.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):Si(this,e,t,!0),t+4},Qa.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,4,4294967295,0),Qa.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Si(this,e,t,!1),t+4},Qa.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);vi(this,e,t,n,a-1,-a)}var i=0,o=1,l=0;for(this[t]=255&e;++i<n&&(o*=256);)e<0&&0===l&&0!==this[t+i-1]&&(l=1),this[t+i]=(e/o>>0)-l&255;return t+n},Qa.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var a=Math.pow(2,8*n-1);vi(this,e,t,n,a-1,-a)}var i=n-1,o=1,l=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===l&&0!==this[t+i+1]&&(l=1),this[t+i]=(e/o>>0)-l&255;return t+n},Qa.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,1,127,-128),Qa.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},Qa.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,2,32767,-32768),Qa.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):Ai(this,e,t,!0),t+2},Qa.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,2,32767,-32768),Qa.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):Ai(this,e,t,!1),t+2},Qa.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,4,2147483647,-2147483648),Qa.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):Si(this,e,t,!0),t+4},Qa.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||vi(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),Qa.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):Si(this,e,t,!1),t+4},Qa.prototype.writeFloatLE=function(e,t,n){return Ni(this,e,t,!0,n)},Qa.prototype.writeFloatBE=function(e,t,n){return Ni(this,e,t,!1,n)},Qa.prototype.writeDoubleLE=function(e,t,n){return Ci(this,e,t,!0,n)},Qa.prototype.writeDoubleBE=function(e,t,n){return Ci(this,e,t,!1,n)},Qa.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var a,i=r-n;if(this===e&&n<t&&t<r)for(a=i-1;a>=0;--a)e[a+t]=this[a+n];else if(i<1e3||!Qa.TYPED_ARRAY_SUPPORT)for(a=0;a<i;++a)e[a+t]=this[a+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},Qa.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var a=e.charCodeAt(0);a<256&&(e=a)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Qa.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var o=ni(e)?e:xi(new Qa(e,r).toString()),l=o.length;for(i=0;i<n-t;++i)this[i+t]=o[i%l]}return this};var Oi=/[^+\/0-9A-Za-z-_]/g;function Mi(e){return e<16?"0"+e.toString(16):e.toString(16)}function xi(e,t){var n;t=t||1/0;for(var r=e.length,a=null,i=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!a){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&i.push(239,191,189);continue}a=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),a=n;continue}n=65536+(a-55296<<10|n-56320)}else a&&(t-=3)>-1&&i.push(239,191,189);if(a=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function wi(e){return function(e){var t,n,r,a,i,o;Ha||Ga();var l=e.length;if(l%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===e[l-2]?2:"="===e[l-1]?1:0,o=new Ua(3*l/4-i),r=i>0?l-4:l;var s=0;for(t=0,n=0;t<r;t+=4,n+=3)a=Fa[e.charCodeAt(t)]<<18|Fa[e.charCodeAt(t+1)]<<12|Fa[e.charCodeAt(t+2)]<<6|Fa[e.charCodeAt(t+3)],o[s++]=a>>16&255,o[s++]=a>>8&255,o[s++]=255&a;return 2===i?(a=Fa[e.charCodeAt(t)]<<2|Fa[e.charCodeAt(t+1)]>>4,o[s++]=255&a):1===i&&(a=Fa[e.charCodeAt(t)]<<10|Fa[e.charCodeAt(t+1)]<<4|Fa[e.charCodeAt(t+2)]>>2,o[s++]=a>>8&255,o[s++]=255&a),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(Oi,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Ri(e,t,n,r){for(var a=0;a<r&&!(a+n>=t.length||a>=e.length);++a)t[a+n]=e[a];return a}function Di(e){return null!=e&&(!!e._isBuffer||Ii(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Ii(e.slice(0,0))}(e))}function Ii(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function ki(){throw new Error("setTimeout has not been defined")}function Li(){throw new Error("clearTimeout has not been defined")}var Pi=ki,Bi=Li;function Fi(e){if(Pi===setTimeout)return setTimeout(e,0);if((Pi===ki||!Pi)&&setTimeout)return Pi=setTimeout,setTimeout(e,0);try{return Pi(e,0)}catch(t){try{return Pi.call(null,e,0)}catch(t){return Pi.call(this,e,0)}}}"function"==typeof Pa.setTimeout&&(Pi=setTimeout),"function"==typeof Pa.clearTimeout&&(Bi=clearTimeout);var Ui,Hi=[],Gi=!1,qi=-1;function zi(){Gi&&Ui&&(Gi=!1,Ui.length?Hi=Ui.concat(Hi):qi=-1,Hi.length&&Ki())}function Ki(){if(!Gi){var e=Fi(zi);Gi=!0;for(var t=Hi.length;t;){for(Ui=Hi,Hi=[];++qi<t;)Ui&&Ui[qi].run();qi=-1,t=Hi.length}Ui=null,Gi=!1,function(e){if(Bi===clearTimeout)return clearTimeout(e);if((Bi===Li||!Bi)&&clearTimeout)return Bi=clearTimeout,clearTimeout(e);try{Bi(e)}catch(t){try{return Bi.call(null,e)}catch(t){return Bi.call(this,e)}}}(e)}}function ji(e,t){this.fun=e,this.array=t}ji.prototype.run=function(){this.fun.apply(null,this.array)};function Vi(){}var $i=Vi,Wi=Vi,Yi=Vi,Qi=Vi,Xi=Vi,Zi=Vi,Ji=Vi;var eo=Pa.performance||{},to=eo.now||eo.mozNow||eo.msNow||eo.oNow||eo.webkitNow||function(){return(new Date).getTime()};var no=new Date;var ro={nextTick:function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];Hi.push(new ji(e,t)),1!==Hi.length||Gi||Fi(Ki)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:$i,addListener:Wi,once:Yi,off:Qi,removeListener:Xi,removeAllListeners:Zi,emit:Ji,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*to.call(eo),n=Math.floor(t),r=Math.floor(t%1*1e9);return e&&(n-=e[0],(r-=e[1])<0&&(n--,r+=1e9)),[n,r]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-no)/1e3}},ao="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},io=/%[sdj%]/g;function oo(e){if(!So(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(po(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,a=r.length,i=String(e).replace(io,function(e){if("%%"===e)return"%";if(n>=a)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),o=r[n];n<a;o=r[++n])bo(o)||!Oo(o)?i+=" "+o:i+=" "+po(o);return i}function lo(e,t){if(No(Pa.process))return function(){return lo(e,t).apply(this,arguments)};if(!0===ro.noDeprecation)return e;var n=!1;return function(){if(!n){if(ro.throwDeprecation)throw new Error(t);ro.traceDeprecation?console.trace(t):console.error(t),n=!0}return e.apply(this,arguments)}}var so,co={};function uo(e){if(No(so)&&(so=ro.env.NODE_DEBUG||""),e=e.toUpperCase(),!co[e])if(new RegExp("\\b"+e+"\\b","i").test(so)){co[e]=function(){var t=oo.apply(null,arguments);console.error("%s %d: %s",e,0,t)}}else co[e]=function(){};return co[e]}function po(e,t){var n={seen:[],stylize:go};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),To(t)?n.showHidden=t:t&&Bo(n,t),No(n.showHidden)&&(n.showHidden=!1),No(n.depth)&&(n.depth=2),No(n.colors)&&(n.colors=!1),No(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=mo),ho(n,e,n.depth)}function mo(e,t){var n=po.styles[t];return n?"["+po.colors[n][0]+"m"+e+"["+po.colors[n][1]+"m":e}function go(e,t){return e}function ho(e,t,n){if(e.customInspect&&t&&wo(t.inspect)&&t.inspect!==po&&(!t.constructor||t.constructor.prototype!==t)){var r=t.inspect(n,e);return So(r)||(r=ho(e,r,n)),r}var a=function(e,t){if(No(t))return e.stylize("undefined","undefined");if(So(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(Ao(t))return e.stylize(""+t,"number");if(To(t))return e.stylize(""+t,"boolean");if(bo(t))return e.stylize("null","null")}(e,t);if(a)return a;var i=Object.keys(t),o=function(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}(i);if(e.showHidden&&(i=Object.getOwnPropertyNames(t)),xo(t)&&(i.indexOf("message")>=0||i.indexOf("description")>=0))return fo(t);if(0===i.length){if(wo(t)){var l=t.name?": "+t.name:"";return e.stylize("[Function"+l+"]","special")}if(Co(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Mo(t))return e.stylize(Date.prototype.toString.call(t),"date");if(xo(t))return fo(t)}var s,c="",u=!1,d=["{","}"];(Eo(t)&&(u=!0,d=["[","]"]),wo(t))&&(c=" [Function"+(t.name?": "+t.name:"")+"]");return Co(t)&&(c=" "+RegExp.prototype.toString.call(t)),Mo(t)&&(c=" "+Date.prototype.toUTCString.call(t)),xo(t)&&(c=" "+fo(t)),0!==i.length||u&&0!=t.length?n<0?Co(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),s=u?function(e,t,n,r,a){for(var i=[],o=0,l=t.length;o<l;++o)Fo(t,String(o))?i.push(_o(e,t,n,r,String(o),!0)):i.push("");return a.forEach(function(a){a.match(/^\d+$/)||i.push(_o(e,t,n,r,a,!0))}),i}(e,t,n,o,i):i.map(function(r){return _o(e,t,n,o,r,u)}),e.seen.pop(),function(e,t,n){if(e.reduce(function(e,t){return 0,t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(s,c,d)):d[0]+c+d[1]}function fo(e){return"["+Error.prototype.toString.call(e)+"]"}function _o(e,t,n,r,a,i){var o,l,s;if((s=Object.getOwnPropertyDescriptor(t,a)||{value:t[a]}).get?l=s.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):s.set&&(l=e.stylize("[Setter]","special")),Fo(r,a)||(o="["+a+"]"),l||(e.seen.indexOf(s.value)<0?(l=bo(n)?ho(e,s.value,null):ho(e,s.value,n-1)).indexOf("\n")>-1&&(l=i?l.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+l.split("\n").map(function(e){return" "+e}).join("\n")):l=e.stylize("[Circular]","special")),No(o)){if(i&&a.match(/^\d+$/))return l;(o=JSON.stringify(""+a)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+l}function Eo(e){return Array.isArray(e)}function To(e){return"boolean"==typeof e}function bo(e){return null===e}function vo(e){return null==e}function Ao(e){return"number"==typeof e}function So(e){return"string"==typeof e}function yo(e){return"symbol"==typeof e}function No(e){return void 0===e}function Co(e){return Oo(e)&&"[object RegExp]"===Io(e)}function Oo(e){return"object"==typeof e&&null!==e}function Mo(e){return Oo(e)&&"[object Date]"===Io(e)}function xo(e){return Oo(e)&&("[object Error]"===Io(e)||e instanceof Error)}function wo(e){return"function"==typeof e}function Ro(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function Do(e){return Di(e)}function Io(e){return Object.prototype.toString.call(e)}function ko(e){return e<10?"0"+e.toString(10):e.toString(10)}po.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},po.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var Lo=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Po(){var e,t;console.log("%s - %s",(e=new Date,t=[ko(e.getHours()),ko(e.getMinutes()),ko(e.getSeconds())].join(":"),[e.getDate(),Lo[e.getMonth()],t].join(" ")),oo.apply(null,arguments))}function Bo(e,t){if(!t||!Oo(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}function Fo(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Uo={inherits:ao,_extend:Bo,log:Po,isBuffer:Do,isPrimitive:Ro,isFunction:wo,isError:xo,isDate:Mo,isObject:Oo,isRegExp:Co,isUndefined:No,isSymbol:yo,isString:So,isNumber:Ao,isNullOrUndefined:vo,isNull:bo,isBoolean:To,isArray:Eo,inspect:po,deprecate:lo,format:oo,debuglog:uo},Ho=Object.freeze({format:oo,deprecate:lo,debuglog:uo,inspect:po,isArray:Eo,isBoolean:To,isNull:bo,isNullOrUndefined:vo,isNumber:Ao,isString:So,isSymbol:yo,isUndefined:No,isRegExp:Co,isObject:Oo,isDate:Mo,isError:xo,isFunction:wo,isPrimitive:Ro,isBuffer:Do,log:Po,inherits:ao,_extend:Bo,default:Uo}),Go=Ho&&Uo||Ho,qo=f(function(e){var t=Go.inherits,n=Ma.CODE_POINTS,r=e.exports=function(e){return e.__locTracker||(e.__locTracker=this,La.call(this,e),this.preprocessor=e,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.col=-1,this.line=1),e.__locTracker};t(r,La),Object.defineProperty(r.prototype,"offset",{get:function(){return this.droppedBufferSize+this.preprocessor.pos}}),r.prototype._getOverriddenMethods=function(e,t){return{advance:function(){var r=t.advance.call(this);return e.isEol&&(e.isEol=!1,e.line++,e.lineStartPos=e.offset),r===n.LINE_FEED&&(e.isEol=!0),e.col=e.offset-e.lineStartPos+1,r},retreat:function(){t.retreat.call(this),e.isEol=!1,e.col=e.offset-e.lineStartPos+1},dropParsedChunk:function(){var n=this.pos;t.dropParsedChunk.call(this),e.droppedBufferSize+=n-this.pos}}}}),zo=f(function(e){var t=Go.inherits,n=e.exports=function(e){La.call(this,e),this.tokenizer=e,this.posTracker=new qo(e.preprocessor),this.currentAttrLocation=null,this.currentTokenLocation=null};t(n,La),n.prototype._getCurrentLocation=function(){return{line:this.posTracker.line,col:this.posTracker.col,startOffset:this.posTracker.offset,endOffset:-1}},n.prototype._attachCurrentAttrLocationInfo=function(){this.currentAttrLocation.endOffset=this.posTracker.offset;var e=this.tokenizer.currentToken,t=this.tokenizer.currentAttr;e.location.attrs||(e.location.attrs=Object.create(null)),e.location.attrs[t.name]=this.currentAttrLocation},n.prototype._getOverriddenMethods=function(e,t){var n={_createStartTagToken:function(){t._createStartTagToken.call(this),this.currentToken.location=e.currentTokenLocation},_createEndTagToken:function(){t._createEndTagToken.call(this),this.currentToken.location=e.currentTokenLocation},_createCommentToken:function(){t._createCommentToken.call(this),this.currentToken.location=e.currentTokenLocation},_createDoctypeToken:function(n){t._createDoctypeToken.call(this,n),this.currentToken.location=e.currentTokenLocation},_createCharacterToken:function(n,r){t._createCharacterToken.call(this,n,r),this.currentCharacterToken.location=e.currentTokenLocation},_createAttr:function(n){t._createAttr.call(this,n),e.currentAttrLocation=e._getCurrentLocation()},_leaveAttrName:function(n){t._leaveAttrName.call(this,n),e._attachCurrentAttrLocationInfo()},_leaveAttrValue:function(n){t._leaveAttrValue.call(this,n),e._attachCurrentAttrLocationInfo()},_emitCurrentToken:function(){this.currentCharacterToken&&(this.currentCharacterToken.location.endOffset=this.currentToken.location.startOffset),this.currentToken.location.endOffset=e.posTracker.offset+1,t._emitCurrentToken.call(this)},_emitCurrentCharacterToken:function(){this.currentCharacterToken&&-1===this.currentCharacterToken.location.endOffset&&(this.currentCharacterToken.location.endOffset=e.posTracker.offset),t._emitCurrentCharacterToken.call(this)}};return Object.keys(Ra.MODE).forEach(function(r){var a=Ra.MODE[r];n[a]=function(n){e.currentTokenLocation=e._getCurrentLocation(),t[a].call(this,n)}}),n}}),Ko=f(function(e){var t=Go.inherits,n=e.exports=function(e,t){La.call(this,e),this.onItemPop=t.onItemPop};t(n,La),n.prototype._getOverriddenMethods=function(e,t){return{pop:function(){e.onItemPop(this.current),t.pop.call(this)},popAllUpToHtmlElement:function(){for(var n=this.stackTop;n>0;n--)e.onItemPop(this.items[n]);t.popAllUpToHtmlElement.call(this)},remove:function(n){e.onItemPop(this.current),t.remove.call(this,n)}}}}),jo=f(function(e){var t=Go.inherits,n=Da.TAG_NAMES,r=e.exports=function(e){La.call(this,e),this.parser=e,this.posTracker=null,this.lastStartTagToken=null,this.lastFosterParentingLocation=null,this.currentToken=null};t(r,La),r.prototype._setStartLocation=function(e){this.lastStartTagToken?(e.__location=Object.create(this.lastStartTagToken.location),e.__location.startTag=this.lastStartTagToken.location):e.__location=null},r.prototype._setEndLocation=function(e,t){var n=e.__location;if(n)if(t.location){var r=t.location,a=this.parser.treeAdapter.getTagName(e);t.type===Ra.END_TAG_TOKEN&&a===t.tagName?(n.endTag=Object.create(r),n.endOffset=r.endOffset):n.endOffset=r.startOffset}else t.type===Ra.EOF_TOKEN&&(n.endOffset=this.posTracker.offset)},r.prototype._getOverriddenMethods=function(e,t){return{_bootstrap:function(n,r){t._bootstrap.call(this,n,r),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null,e.posTracker=new qo(this.tokenizer.preprocessor),new zo(this.tokenizer),new Ko(this.openElements,{onItemPop:function(t){e._setEndLocation(t,e.currentToken)}})},_runParsingLoop:function(n){t._runParsingLoop.call(this,n);for(var r=this.openElements.stackTop;r>=0;r--)e._setEndLocation(this.openElements.items[r],e.currentToken)},_processTokenInForeignContent:function(n){e.currentToken=n,t._processTokenInForeignContent.call(this,n)},_processToken:function(r){if(e.currentToken=r,t._processToken.call(this,r),r.type===Ra.END_TAG_TOKEN&&(r.tagName===n.HTML||r.tagName===n.BODY&&this.openElements.hasInScope(n.BODY)))for(var a=this.openElements.stackTop;a>=0;a--){var i=this.openElements.items[a];if(this.treeAdapter.getTagName(i)===r.tagName){e._setEndLocation(i,r);break}}},_setDocumentType:function(e){t._setDocumentType.call(this,e);for(var n=this.treeAdapter.getChildNodes(this.document),r=n.length,a=0;a<r;a++){var i=n[a];if(this.treeAdapter.isDocumentTypeNode(i)){i.__location=e.location;break}}},_attachElementToTree:function(n){e._setStartLocation(n),e.lastStartTagToken=null,t._attachElementToTree.call(this,n)},_appendElement:function(n,r){e.lastStartTagToken=n,t._appendElement.call(this,n,r)},_insertElement:function(n,r){e.lastStartTagToken=n,t._insertElement.call(this,n,r)},_insertTemplate:function(n){e.lastStartTagToken=n,t._insertTemplate.call(this,n),this.treeAdapter.getTemplateContent(this.openElements.current).__location=null},_insertFakeRootElement:function(){t._insertFakeRootElement.call(this),this.openElements.current.__location=null},_appendCommentNode:function(e,n){t._appendCommentNode.call(this,e,n);var r=this.treeAdapter.getChildNodes(n);r[r.length-1].__location=e.location},_findFosterParentingLocation:function(){return e.lastFosterParentingLocation=t._findFosterParentingLocation.call(this),e.lastFosterParentingLocation},_insertCharacters:function(n){t._insertCharacters.call(this,n);var r=this._shouldFosterParentOnInsertion(),a=r&&e.lastFosterParentingLocation.parent||this.openElements.currentTmplContent||this.openElements.current,i=this.treeAdapter.getChildNodes(a),o=i[r&&e.lastFosterParentingLocation.beforeElement?i.indexOf(e.lastFosterParentingLocation.beforeElement)-1:i.length-1];o.__location?o.__location.endOffset=n.location.endOffset:o.__location=n.location}}}}),Vo=f(function(e,t){var n=Da.DOCUMENT_MODE;t.createDocument=function(){return{nodeName:"#document",mode:n.NO_QUIRKS,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},t.createElement=function(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};var r=function(e){return{nodeName:"#text",value:e,parentNode:null}},a=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},i=t.insertBefore=function(e,t,n){var r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,n,r){for(var i=null,o=0;o<e.childNodes.length;o++)if("#documentType"===e.childNodes[o].nodeName){i=e.childNodes[o];break}i?(i.name=t,i.publicId=n,i.systemId=r):a(e,{nodeName:"#documentType",name:t,publicId:n,systemId:r})},t.setDocumentMode=function(e,t){e.mode=t},t.getDocumentMode=function(e){return e.mode},t.detachNode=function(e){if(e.parentNode){var t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},t.insertText=function(e,t){if(e.childNodes.length){var n=e.childNodes[e.childNodes.length-1];if("#text"===n.nodeName)return void(n.value+=t)}a(e,r(t))},t.insertTextBefore=function(e,t,n){var a=e.childNodes[e.childNodes.indexOf(n)-1];a&&"#text"===a.nodeName?a.value+=t:i(e,r(t),n)},t.adoptAttributes=function(e,t){for(var n=[],r=0;r<e.attrs.length;r++)n.push(e.attrs[r].name);for(var a=0;a<t.length;a++)-1===n.indexOf(t[a].name)&&e.attrs.push(t[a])},t.getFirstChild=function(e){return e.childNodes[0]},t.getChildNodes=function(e){return e.childNodes},t.getParentNode=function(e){return e.parentNode},t.getAttrList=function(e){return e.attrs},t.getTagName=function(e){return e.tagName},t.getNamespaceURI=function(e){return e.namespaceURI},t.getTextNodeContent=function(e){return e.value},t.getCommentNodeContent=function(e){return e.data},t.getDocumentTypeNodeName=function(e){return e.name},t.getDocumentTypeNodePublicId=function(e){return e.publicId},t.getDocumentTypeNodeSystemId=function(e){return e.systemId},t.isTextNode=function(e){return"#text"===e.nodeName},t.isCommentNode=function(e){return"#comment"===e.nodeName},t.isDocumentTypeNode=function(e){return"#documentType"===e.nodeName},t.isElementNode=function(e){return!!e.tagName}}),$o=(Vo.createDocument,Vo.createDocumentFragment,Vo.createElement,Vo.createCommentNode,Vo.appendChild,Vo.insertBefore,Vo.setTemplateContent,Vo.getTemplateContent,Vo.setDocumentType,Vo.setDocumentMode,Vo.getDocumentMode,Vo.detachNode,Vo.insertText,Vo.insertTextBefore,Vo.adoptAttributes,Vo.getFirstChild,Vo.getChildNodes,Vo.getParentNode,Vo.getAttrList,Vo.getTagName,Vo.getNamespaceURI,Vo.getTextNodeContent,Vo.getCommentNodeContent,Vo.getDocumentTypeNodeName,Vo.getDocumentTypeNodePublicId,Vo.getDocumentTypeNodeSystemId,Vo.isTextNode,Vo.isCommentNode,Vo.isDocumentTypeNode,Vo.isElementNode,Da.DOCUMENT_MODE),Wo=["+//silmaril//dtd html pro v0r11 19970101//en","-//advasoft ltd//dtd html 3.0 aswedit + extensions//en","-//as//dtd html 3.0 aswedit + extensions//en","-//ietf//dtd html 2.0 level 1//en","-//ietf//dtd html 2.0 level 2//en","-//ietf//dtd html 2.0 strict level 1//en","-//ietf//dtd html 2.0 strict level 2//en","-//ietf//dtd html 2.0 strict//en","-//ietf//dtd html 2.0//en","-//ietf//dtd html 2.1e//en","-//ietf//dtd html 3.0//en","-//ietf//dtd html 3.0//en//","-//ietf//dtd html 3.2 final//en","-//ietf//dtd html 3.2//en","-//ietf//dtd html 3//en","-//ietf//dtd html level 0//en","-//ietf//dtd html level 0//en//2.0","-//ietf//dtd html level 1//en","-//ietf//dtd html level 1//en//2.0","-//ietf//dtd html level 2//en","-//ietf//dtd html level 2//en//2.0","-//ietf//dtd html level 3//en","-//ietf//dtd html level 3//en//3.0","-//ietf//dtd html strict level 0//en","-//ietf//dtd html strict level 0//en//2.0","-//ietf//dtd html strict level 1//en","-//ietf//dtd html strict level 1//en//2.0","-//ietf//dtd html strict level 2//en","-//ietf//dtd html strict level 2//en//2.0","-//ietf//dtd html strict level 3//en","-//ietf//dtd html strict level 3//en//3.0","-//ietf//dtd html strict//en","-//ietf//dtd html strict//en//2.0","-//ietf//dtd html strict//en//3.0","-//ietf//dtd html//en","-//ietf//dtd html//en//2.0","-//ietf//dtd html//en//3.0","-//metrius//dtd metrius presentational//en","-//microsoft//dtd internet explorer 2.0 html strict//en","-//microsoft//dtd internet explorer 2.0 html//en","-//microsoft//dtd internet explorer 2.0 tables//en","-//microsoft//dtd internet explorer 3.0 html strict//en","-//microsoft//dtd internet explorer 3.0 html//en","-//microsoft//dtd internet explorer 3.0 tables//en","-//netscape comm. corp.//dtd html//en","-//netscape comm. corp.//dtd strict html//en","-//o'reilly and associates//dtd html 2.0//en","-//o'reilly and associates//dtd html extended 1.0//en","-//spyglass//dtd html 2.0 extended//en","-//sq//dtd html 2.0 hotmetal + extensions//en","-//sun microsystems corp.//dtd hotjava html//en","-//sun microsystems corp.//dtd hotjava strict html//en","-//w3c//dtd html 3 1995-03-24//en","-//w3c//dtd html 3.2 draft//en","-//w3c//dtd html 3.2 final//en","-//w3c//dtd html 3.2//en","-//w3c//dtd html 3.2s draft//en","-//w3c//dtd html 4.0 frameset//en","-//w3c//dtd html 4.0 transitional//en","-//w3c//dtd html experimental 19960712//en","-//w3c//dtd html experimental 970421//en","-//w3c//dtd w3 html//en","-//w3o//dtd w3 html 3.0//en","-//w3o//dtd w3 html 3.0//en//","-//webtechs//dtd mozilla html 2.0//en","-//webtechs//dtd mozilla html//en"],Yo=Wo.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),Qo=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],Xo=["-//W3C//DTD XHTML 1.0 Frameset//","-//W3C//DTD XHTML 1.0 Transitional//"],Zo=Xo.concat(["-//W3C//DTD HTML 4.01 Frameset//","-//W3C//DTD HTML 4.01 Transitional//"]);function Jo(e){var t=-1!==e.indexOf('"')?"'":'"';return t+e+t}function el(e,t){for(var n=0;n<t.length;n++)if(0===e.indexOf(t[n]))return!0;return!1}var tl,nl,rl,al={getDocumentMode:function(e,t,n){if("html"!==e)return $o.QUIRKS;if(n&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===n.toLowerCase())return $o.QUIRKS;if(null!==t){if(t=t.toLowerCase(),Qo.indexOf(t)>-1)return $o.QUIRKS;var r=null===n?Yo:Wo;if(el(t,r))return $o.QUIRKS;if(el(t,r=null===n?Xo:Zo))return $o.LIMITED_QUIRKS}return $o.NO_QUIRKS},serializeContent:function(e,t,n){var r="!DOCTYPE ";return e&&(r+=e),null!==t?r+=" PUBLIC "+Jo(t):null!==n&&(r+=" SYSTEM"),null!==n&&(r+=" "+Jo(n)),r}},il=f(function(e,t){var n=Da.TAG_NAMES,r=Da.NAMESPACES,a=Da.ATTRS,i={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},o={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},l={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:r.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:r.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:r.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:r.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:r.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:r.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:r.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:r.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:r.XML},"xml:space":{prefix:"xml",name:"space",namespace:r.XML},xmlns:{prefix:"",name:"xmlns",namespace:r.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:r.XMLNS}},s=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},c=Object.create(null);c[n.B]=!0,c[n.BIG]=!0,c[n.BLOCKQUOTE]=!0,c[n.BODY]=!0,c[n.BR]=!0,c[n.CENTER]=!0,c[n.CODE]=!0,c[n.DD]=!0,c[n.DIV]=!0,c[n.DL]=!0,c[n.DT]=!0,c[n.EM]=!0,c[n.EMBED]=!0,c[n.H1]=!0,c[n.H2]=!0,c[n.H3]=!0,c[n.H4]=!0,c[n.H5]=!0,c[n.H6]=!0,c[n.HEAD]=!0,c[n.HR]=!0,c[n.I]=!0,c[n.IMG]=!0,c[n.LI]=!0,c[n.LISTING]=!0,c[n.MENU]=!0,c[n.META]=!0,c[n.NOBR]=!0,c[n.OL]=!0,c[n.P]=!0,c[n.PRE]=!0,c[n.RUBY]=!0,c[n.S]=!0,c[n.SMALL]=!0,c[n.SPAN]=!0,c[n.STRONG]=!0,c[n.STRIKE]=!0,c[n.SUB]=!0,c[n.SUP]=!0,c[n.TABLE]=!0,c[n.TT]=!0,c[n.U]=!0,c[n.UL]=!0,c[n.VAR]=!0,t.causesExit=function(e){var t=e.tagName;return!!(t===n.FONT&&(null!==Ra.getTokenAttr(e,a.COLOR)||null!==Ra.getTokenAttr(e,a.SIZE)||null!==Ra.getTokenAttr(e,a.FACE)))||c[t]},t.adjustTokenMathMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++)if("definitionurl"===e.attrs[t].name){e.attrs[t].name="definitionURL";break}},t.adjustTokenSVGAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=o[e.attrs[t].name];n&&(e.attrs[t].name=n)}},t.adjustTokenXMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=l[e.attrs[t].name];n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}},t.adjustTokenSVGTagName=function(e){var t=s[e.tagName];t&&(e.tagName=t)},t.isIntegrationPoint=function(e,t,o,l){return!(l&&l!==r.HTML||!function(e,t,o){if(t===r.MATHML&&e===n.ANNOTATION_XML)for(var l=0;l<o.length;l++)if(o[l].name===a.ENCODING){var s=o[l].value.toLowerCase();return s===i.TEXT_HTML||s===i.APPLICATION_XML}return t===r.SVG&&(e===n.FOREIGN_OBJECT||e===n.DESC||e===n.TITLE)}(e,t,o))||!(l&&l!==r.MATHML||!function(e,t){return t===r.MATHML&&(e===n.MI||e===n.MO||e===n.MN||e===n.MS||e===n.MTEXT)}(e,t))}}),ol=(il.SVG_TAG_NAMES_ADJUSTMENT_MAP,il.causesExit,il.adjustTokenMathMLAttrs,il.adjustTokenSVGAttrs,il.adjustTokenXMLAttrs,il.adjustTokenSVGTagName,il.isIntegrationPoint,f(function(e){var t=Da.TAG_NAMES,n=Da.NAMESPACES,r=Da.ATTRS,a={locationInfo:!1,treeAdapter:Vo},i="hidden",o=8,l=3,s="BEFORE_HTML_MODE",c="BEFORE_HEAD_MODE",u="IN_HEAD_MODE",d="AFTER_HEAD_MODE",p="IN_BODY_MODE",m="TEXT_MODE",g="IN_TABLE_MODE",h="IN_TABLE_TEXT_MODE",f="IN_CAPTION_MODE",_="IN_COLUMN_GROUP_MODE",E="IN_TABLE_BODY_MODE",T="IN_ROW_MODE",b="IN_CELL_MODE",v="IN_SELECT_MODE",A="IN_SELECT_IN_TABLE_MODE",S="IN_TEMPLATE_MODE",y="AFTER_BODY_MODE",N="IN_FRAMESET_MODE",C="AFTER_FRAMESET_MODE",O="AFTER_AFTER_BODY_MODE",M="AFTER_AFTER_FRAMESET_MODE",x=Object.create(null);x[t.TR]=T,x[t.TBODY]=x[t.THEAD]=x[t.TFOOT]=E,x[t.CAPTION]=f,x[t.COLGROUP]=_,x[t.TABLE]=g,x[t.BODY]=p,x[t.FRAMESET]=N;var w=Object.create(null);w[t.CAPTION]=w[t.COLGROUP]=w[t.TBODY]=w[t.TFOOT]=w[t.THEAD]=g,w[t.COL]=_,w[t.TR]=E,w[t.TD]=w[t.TH]=T;var R=Object.create(null);R.INITIAL_MODE=Object.create(null),R.INITIAL_MODE[Ra.CHARACTER_TOKEN]=R.INITIAL_MODE[Ra.NULL_CHARACTER_TOKEN]=j,R.INITIAL_MODE[Ra.WHITESPACE_CHARACTER_TOKEN]=H,R.INITIAL_MODE[Ra.COMMENT_TOKEN]=G,R.INITIAL_MODE[Ra.DOCTYPE_TOKEN]=function(e,t){e._setDocumentType(t);var n=t.forceQuirks?Da.DOCUMENT_MODE.QUIRKS:al.getDocumentMode(t.name,t.publicId,t.systemId);e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=s},R.INITIAL_MODE[Ra.START_TAG_TOKEN]=R.INITIAL_MODE[Ra.END_TAG_TOKEN]=R.INITIAL_MODE[Ra.EOF_TOKEN]=j,R[s]=Object.create(null),R[s][Ra.CHARACTER_TOKEN]=R[s][Ra.NULL_CHARACTER_TOKEN]=V,R[s][Ra.WHITESPACE_CHARACTER_TOKEN]=H,R[s][Ra.COMMENT_TOKEN]=G,R[s][Ra.DOCTYPE_TOKEN]=H,R[s][Ra.START_TAG_TOKEN]=function(e,r){r.tagName===t.HTML?(e._insertElement(r,n.HTML),e.insertionMode=c):V(e,r)},R[s][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r!==t.HTML&&r!==t.HEAD&&r!==t.BODY&&r!==t.BR||V(e,n)},R[s][Ra.EOF_TOKEN]=V,R[c]=Object.create(null),R[c][Ra.CHARACTER_TOKEN]=R[c][Ra.NULL_CHARACTER_TOKEN]=$,R[c][Ra.WHITESPACE_CHARACTER_TOKEN]=H,R[c][Ra.COMMENT_TOKEN]=G,R[c][Ra.DOCTYPE_TOKEN]=H,R[c][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.HEAD?(e._insertElement(r,n.HTML),e.headElement=e.openElements.current,e.insertionMode=u):$(e,r)},R[c][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r!==t.HEAD&&r!==t.BODY&&r!==t.HTML&&r!==t.BR||$(e,n)},R[c][Ra.EOF_TOKEN]=$,R[u]=Object.create(null),R[u][Ra.CHARACTER_TOKEN]=R[u][Ra.NULL_CHARACTER_TOKEN]=Q,R[u][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[u][Ra.COMMENT_TOKEN]=G,R[u][Ra.DOCTYPE_TOKEN]=H,R[u][Ra.START_TAG_TOKEN]=W,R[u][Ra.END_TAG_TOKEN]=Y,R[u][Ra.EOF_TOKEN]=Q,R[d]=Object.create(null),R[d][Ra.CHARACTER_TOKEN]=R[d][Ra.NULL_CHARACTER_TOKEN]=X,R[d][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[d][Ra.COMMENT_TOKEN]=G,R[d][Ra.DOCTYPE_TOKEN]=H,R[d][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.BODY?(e._insertElement(r,n.HTML),e.framesetOk=!1,e.insertionMode=p):a===t.FRAMESET?(e._insertElement(r,n.HTML),e.insertionMode=N):a===t.BASE||a===t.BASEFONT||a===t.BGSOUND||a===t.LINK||a===t.META||a===t.NOFRAMES||a===t.SCRIPT||a===t.STYLE||a===t.TEMPLATE||a===t.TITLE?(e.openElements.push(e.headElement),W(e,r),e.openElements.remove(e.headElement)):a!==t.HEAD&&X(e,r)},R[d][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.BODY||r===t.HTML||r===t.BR?X(e,n):r===t.TEMPLATE&&Y(e,n)},R[d][Ra.EOF_TOKEN]=X,R[p]=Object.create(null),R[p][Ra.CHARACTER_TOKEN]=J,R[p][Ra.NULL_CHARACTER_TOKEN]=H,R[p][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[p][Ra.COMMENT_TOKEN]=G,R[p][Ra.DOCTYPE_TOKEN]=H,R[p][Ra.START_TAG_TOKEN]=ue,R[p][Ra.END_TAG_TOKEN]=ge,R[p][Ra.EOF_TOKEN]=he,R[m]=Object.create(null),R[m][Ra.CHARACTER_TOKEN]=R[m][Ra.NULL_CHARACTER_TOKEN]=R[m][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[m][Ra.COMMENT_TOKEN]=R[m][Ra.DOCTYPE_TOKEN]=R[m][Ra.START_TAG_TOKEN]=H,R[m][Ra.END_TAG_TOKEN]=function(e,n){n.tagName===t.SCRIPT&&(e.pendingScript=e.openElements.current);e.openElements.pop(),e.insertionMode=e.originalInsertionMode},R[m][Ra.EOF_TOKEN]=function(e,t){e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)},R[g]=Object.create(null),R[g][Ra.CHARACTER_TOKEN]=R[g][Ra.NULL_CHARACTER_TOKEN]=R[g][Ra.WHITESPACE_CHARACTER_TOKEN]=fe,R[g][Ra.COMMENT_TOKEN]=G,R[g][Ra.DOCTYPE_TOKEN]=H,R[g][Ra.START_TAG_TOKEN]=_e,R[g][Ra.END_TAG_TOKEN]=Ee,R[g][Ra.EOF_TOKEN]=he,R[h]=Object.create(null),R[h][Ra.CHARACTER_TOKEN]=function(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0},R[h][Ra.NULL_CHARACTER_TOKEN]=H,R[h][Ra.WHITESPACE_CHARACTER_TOKEN]=function(e,t){e.pendingCharacterTokens.push(t)},R[h][Ra.COMMENT_TOKEN]=R[h][Ra.DOCTYPE_TOKEN]=R[h][Ra.START_TAG_TOKEN]=R[h][Ra.END_TAG_TOKEN]=R[h][Ra.EOF_TOKEN]=function(e,t){var n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)Te(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)},R[f]=Object.create(null),R[f][Ra.CHARACTER_TOKEN]=J,R[f][Ra.NULL_CHARACTER_TOKEN]=H,R[f][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[f][Ra.COMMENT_TOKEN]=G,R[f][Ra.DOCTYPE_TOKEN]=H,R[f][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.COL||r===t.COLGROUP||r===t.TBODY||r===t.TD||r===t.TFOOT||r===t.TH||r===t.THEAD||r===t.TR?e.openElements.hasInTableScope(t.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=g,e._processToken(n)):ue(e,n)},R[f][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE?e.openElements.hasInTableScope(t.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=g,r===t.TABLE&&e._processToken(n)):r!==t.BODY&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&r!==t.TBODY&&r!==t.TD&&r!==t.TFOOT&&r!==t.TH&&r!==t.THEAD&&r!==t.TR&&ge(e,n)},R[f][Ra.EOF_TOKEN]=he,R[_]=Object.create(null),R[_][Ra.CHARACTER_TOKEN]=R[_][Ra.NULL_CHARACTER_TOKEN]=be,R[_][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[_][Ra.COMMENT_TOKEN]=G,R[_][Ra.DOCTYPE_TOKEN]=H,R[_][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.COL?e._appendElement(r,n.HTML):a===t.TEMPLATE?W(e,r):be(e,r)},R[_][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.COLGROUP?e.openElements.currentTagName===t.COLGROUP&&(e.openElements.pop(),e.insertionMode=g):r===t.TEMPLATE?Y(e,n):r!==t.COL&&be(e,n)},R[_][Ra.EOF_TOKEN]=he,R[E]=Object.create(null),R[E][Ra.CHARACTER_TOKEN]=R[E][Ra.NULL_CHARACTER_TOKEN]=R[E][Ra.WHITESPACE_CHARACTER_TOKEN]=fe,R[E][Ra.COMMENT_TOKEN]=G,R[E][Ra.DOCTYPE_TOKEN]=H,R[E][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(r,n.HTML),e.insertionMode=T):a===t.TH||a===t.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(t.TR),e.insertionMode=T,e._processToken(r)):a===t.CAPTION||a===t.COL||a===t.COLGROUP||a===t.TBODY||a===t.TFOOT||a===t.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g,e._processToken(r)):_e(e,r)},R[E][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TBODY||r===t.TFOOT||r===t.THEAD?e.openElements.hasInTableScope(r)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g):r===t.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g,e._processToken(n)):(r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP||r!==t.HTML&&r!==t.TD&&r!==t.TH&&r!==t.TR)&&Ee(e,n)},R[E][Ra.EOF_TOKEN]=he,R[T]=Object.create(null),R[T][Ra.CHARACTER_TOKEN]=R[T][Ra.NULL_CHARACTER_TOKEN]=R[T][Ra.WHITESPACE_CHARACTER_TOKEN]=fe,R[T][Ra.COMMENT_TOKEN]=G,R[T][Ra.DOCTYPE_TOKEN]=H,R[T][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.TH||a===t.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(r,n.HTML),e.insertionMode=b,e.activeFormattingElements.insertMarker()):a===t.CAPTION||a===t.COL||a===t.COLGROUP||a===t.TBODY||a===t.TFOOT||a===t.THEAD||a===t.TR?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(r)):_e(e,r)},R[T][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TR?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E):r===t.TABLE?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(n)):r===t.TBODY||r===t.TFOOT||r===t.THEAD?(e.openElements.hasInTableScope(r)||e.openElements.hasInTableScope(t.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(n)):(r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP||r!==t.HTML&&r!==t.TD&&r!==t.TH)&&Ee(e,n)},R[T][Ra.EOF_TOKEN]=he,R[b]=Object.create(null),R[b][Ra.CHARACTER_TOKEN]=J,R[b][Ra.NULL_CHARACTER_TOKEN]=H,R[b][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[b][Ra.COMMENT_TOKEN]=G,R[b][Ra.DOCTYPE_TOKEN]=H,R[b][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.COL||r===t.COLGROUP||r===t.TBODY||r===t.TD||r===t.TFOOT||r===t.TH||r===t.THEAD||r===t.TR?(e.openElements.hasInTableScope(t.TD)||e.openElements.hasInTableScope(t.TH))&&(e._closeTableCell(),e._processToken(n)):ue(e,n)},R[b][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TD||r===t.TH?e.openElements.hasInTableScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=T):r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR?e.openElements.hasInTableScope(r)&&(e._closeTableCell(),e._processToken(n)):r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&ge(e,n)},R[b][Ra.EOF_TOKEN]=he,R[v]=Object.create(null),R[v][Ra.CHARACTER_TOKEN]=z,R[v][Ra.NULL_CHARACTER_TOKEN]=H,R[v][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[v][Ra.COMMENT_TOKEN]=G,R[v][Ra.DOCTYPE_TOKEN]=H,R[v][Ra.START_TAG_TOKEN]=ve,R[v][Ra.END_TAG_TOKEN]=Ae,R[v][Ra.EOF_TOKEN]=he,R[A]=Object.create(null),R[A][Ra.CHARACTER_TOKEN]=z,R[A][Ra.NULL_CHARACTER_TOKEN]=H,R[A][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[A][Ra.COMMENT_TOKEN]=G,R[A][Ra.DOCTYPE_TOKEN]=H,R[A][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR||r===t.TD||r===t.TH?(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),e._processToken(n)):ve(e,n)},R[A][Ra.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR||r===t.TD||r===t.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),e._processToken(n)):Ae(e,n)},R[A][Ra.EOF_TOKEN]=he,R[S]=Object.create(null),R[S][Ra.CHARACTER_TOKEN]=J,R[S][Ra.NULL_CHARACTER_TOKEN]=H,R[S][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[S][Ra.COMMENT_TOKEN]=G,R[S][Ra.DOCTYPE_TOKEN]=H,R[S][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;if(r===t.BASE||r===t.BASEFONT||r===t.BGSOUND||r===t.LINK||r===t.META||r===t.NOFRAMES||r===t.SCRIPT||r===t.STYLE||r===t.TEMPLATE||r===t.TITLE)W(e,n);else{var a=w[r]||p;e._popTmplInsertionMode(),e._pushTmplInsertionMode(a),e.insertionMode=a,e._processToken(n)}},R[S][Ra.END_TAG_TOKEN]=function(e,n){n.tagName===t.TEMPLATE&&Y(e,n)},R[S][Ra.EOF_TOKEN]=Se,R[y]=Object.create(null),R[y][Ra.CHARACTER_TOKEN]=R[y][Ra.NULL_CHARACTER_TOKEN]=ye,R[y][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[y][Ra.COMMENT_TOKEN]=function(e,t){e._appendCommentNode(t,e.openElements.items[0])},R[y][Ra.DOCTYPE_TOKEN]=H,R[y][Ra.START_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?ue(e,n):ye(e,n)},R[y][Ra.END_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?e.fragmentContext||(e.insertionMode=O):ye(e,n)},R[y][Ra.EOF_TOKEN]=K,R[N]=Object.create(null),R[N][Ra.CHARACTER_TOKEN]=R[N][Ra.NULL_CHARACTER_TOKEN]=H,R[N][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[N][Ra.COMMENT_TOKEN]=G,R[N][Ra.DOCTYPE_TOKEN]=H,R[N][Ra.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.FRAMESET?e._insertElement(r,n.HTML):a===t.FRAME?e._appendElement(r,n.HTML):a===t.NOFRAMES&&W(e,r)},R[N][Ra.END_TAG_TOKEN]=function(e,n){n.tagName!==t.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===t.FRAMESET||(e.insertionMode=C))},R[N][Ra.EOF_TOKEN]=K,R[C]=Object.create(null),R[C][Ra.CHARACTER_TOKEN]=R[C][Ra.NULL_CHARACTER_TOKEN]=H,R[C][Ra.WHITESPACE_CHARACTER_TOKEN]=z,R[C][Ra.COMMENT_TOKEN]=G,R[C][Ra.DOCTYPE_TOKEN]=H,R[C][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.HTML?ue(e,n):r===t.NOFRAMES&&W(e,n)},R[C][Ra.END_TAG_TOKEN]=function(e,n){n.tagName===t.HTML&&(e.insertionMode=M)},R[C][Ra.EOF_TOKEN]=K,R[O]=Object.create(null),R[O][Ra.CHARACTER_TOKEN]=Ne,R[O][Ra.NULL_CHARACTER_TOKEN]=Ne,R[O][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[O][Ra.COMMENT_TOKEN]=q,R[O][Ra.DOCTYPE_TOKEN]=H,R[O][Ra.START_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?ue(e,n):Ne(e,n)},R[O][Ra.END_TAG_TOKEN]=Ne,R[O][Ra.EOF_TOKEN]=K,R[M]=Object.create(null),R[M][Ra.CHARACTER_TOKEN]=R[M][Ra.NULL_CHARACTER_TOKEN]=H,R[M][Ra.WHITESPACE_CHARACTER_TOKEN]=Z,R[M][Ra.COMMENT_TOKEN]=q,R[M][Ra.DOCTYPE_TOKEN]=H,R[M][Ra.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.HTML?ue(e,n):r===t.NOFRAMES&&W(e,n)},R[M][Ra.END_TAG_TOKEN]=H,R[M][Ra.EOF_TOKEN]=K;var D=e.exports=function(e){this.options=function(e,t){return[e,t=t||Object.create(null)].reduce(function(e,t){return Object.keys(t).forEach(function(n){e[n]=t[n]}),e},Object.create(null))}(a,e),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.locationInfo&&new jo(this)};function I(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):me(e,t),n}function k(e,t){for(var n=null,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r];if(a===t.element)break;e._isSpecialElement(a)&&(n=a)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function L(e,t,n){for(var r=t,a=e.openElements.getCommonAncestor(t),i=0,o=a;o!==n;i++,o=a){a=e.openElements.getCommonAncestor(o);var s=e.activeFormattingElements.getElementEntry(o),c=s&&i>=l;!s||c?(c&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=P(e,s),r===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(o,r),r=o)}return r}function P(e,t){var n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function B(e,r,a){if(e._isElementCausesFosterParenting(r))e._fosterParentElement(a);else{var i=e.treeAdapter.getTagName(r),o=e.treeAdapter.getNamespaceURI(r);i===t.TEMPLATE&&o===n.HTML&&(r=e.treeAdapter.getTemplateContent(r)),e.treeAdapter.appendChild(r,a)}}function F(e,t,n){var r=e.treeAdapter.getNamespaceURI(n.element),a=n.token,i=e.treeAdapter.createElement(a.tagName,r,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i)}function U(e,t){for(var n,r=0;r<o&&(n=I(e,t));r++){var a=k(e,n);if(!a)break;e.activeFormattingElements.bookmark=n;var i=L(e,a,n.element),l=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),B(e,l,i),F(e,a,n)}}function H(){}function G(e,t){e._appendCommentNode(t,e.openElements.currentTmplContent||e.openElements.current)}function q(e,t){e._appendCommentNode(t,e.document)}function z(e,t){e._insertCharacters(t)}function K(e){e.stopped=!0}function j(e,t){e.treeAdapter.setDocumentMode(e.document,Da.DOCUMENT_MODE.QUIRKS),e.insertionMode=s,e._processToken(t)}function V(e,t){e._insertFakeRootElement(),e.insertionMode=c,e._processToken(t)}function $(e,n){e._insertFakeElement(t.HEAD),e.headElement=e.openElements.current,e.insertionMode=u,e._processToken(n)}function W(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.BASE||a===t.BASEFONT||a===t.BGSOUND||a===t.LINK||a===t.META?e._appendElement(r,n.HTML):a===t.TITLE?e._switchToTextParsing(r,Ra.MODE.RCDATA):a===t.NOSCRIPT||a===t.NOFRAMES||a===t.STYLE?e._switchToTextParsing(r,Ra.MODE.RAWTEXT):a===t.SCRIPT?e._switchToTextParsing(r,Ra.MODE.SCRIPT_DATA):a===t.TEMPLATE?(e._insertTemplate(r,n.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=S,e._pushTmplInsertionMode(S)):a!==t.HEAD&&Q(e,r)}function Y(e,n){var r=n.tagName;r===t.HEAD?(e.openElements.pop(),e.insertionMode=d):r===t.BODY||r===t.BR||r===t.HTML?Q(e,n):r===t.TEMPLATE&&e.openElements.tmplCount>0&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode())}function Q(e,t){e.openElements.pop(),e.insertionMode=d,e._processToken(t)}function X(e,n){e._insertFakeElement(t.BODY),e.insertionMode=p,e._processToken(n)}function Z(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function J(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function ee(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML)}function te(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function ne(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function re(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function ae(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,n.HTML),e.framesetOk=!1}function ie(e,t){e._appendElement(t,n.HTML)}function oe(e,t){e._switchToTextParsing(t,Ra.MODE.RAWTEXT)}function le(e,r){e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML)}function se(e,r){e.openElements.hasInScope(t.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(r,n.HTML)}function ce(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML)}function ue(e,a){var o=a.tagName;switch(o.length){case 1:o===t.I||o===t.S||o===t.B||o===t.U?ne(e,a):o===t.P?ee(e,a):o===t.A?function(e,r){var a=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.A);a&&(U(e,r),e.openElements.remove(a.element),e.activeFormattingElements.removeEntry(a)),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}(e,a):ce(e,a);break;case 2:o===t.DL||o===t.OL||o===t.UL?ee(e,a):o===t.H1||o===t.H2||o===t.H3||o===t.H4||o===t.H5||o===t.H6?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement();var a=e.openElements.currentTagName;a!==t.H1&&a!==t.H2&&a!==t.H3&&a!==t.H4&&a!==t.H5&&a!==t.H6||e.openElements.pop(),e._insertElement(r,n.HTML)}(e,a):o===t.LI||o===t.DD||o===t.DT?function(e,r){e.framesetOk=!1;for(var a=r.tagName,i=e.openElements.stackTop;i>=0;i--){var o=e.openElements.items[i],l=e.treeAdapter.getTagName(o),s=null;if(a===t.LI&&l===t.LI?s=t.LI:a!==t.DD&&a!==t.DT||l!==t.DD&&l!==t.DT||(s=l),s){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(l!==t.ADDRESS&&l!==t.DIV&&l!==t.P&&e._isSpecialElement(o))break}e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML)}(e,a):o===t.EM||o===t.TT?ne(e,a):o===t.BR?ae(e,a):o===t.HR?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._appendElement(r,n.HTML),e.framesetOk=!1}(e,a):o===t.RB?se(e,a):o===t.RT||o===t.RP?function(e,r){e.openElements.hasInScope(t.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(t.RTC),e._insertElement(r,n.HTML)}(e,a):o!==t.TH&&o!==t.TD&&o!==t.TR&&ce(e,a);break;case 3:o===t.DIV||o===t.DIR||o===t.NAV?ee(e,a):o===t.PRE?te(e,a):o===t.BIG?ne(e,a):o===t.IMG||o===t.WBR?ae(e,a):o===t.XMP?function(e,n){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(n,Ra.MODE.RAWTEXT)}(e,a):o===t.SVG?function(e,t){e._reconstructActiveFormattingElements(),il.adjustTokenSVGAttrs(t),il.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,n.SVG):e._insertElement(t,n.SVG)}(e,a):o===t.RTC?se(e,a):o!==t.COL&&ce(e,a);break;case 4:o===t.HTML?function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,a):o===t.BASE||o===t.LINK||o===t.META?W(e,a):o===t.BODY?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,a):o===t.MAIN?ee(e,a):o===t.FORM?function(e,r){var a=e.openElements.tmplCount>0;e.formElement&&!a||(e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),a||(e.formElement=e.openElements.current))}(e,a):o===t.CODE||o===t.FONT?ne(e,a):o===t.NOBR?function(e,r){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(t.NOBR)&&(U(e,r),e._reconstructActiveFormattingElements()),e._insertElement(r,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}(e,a):o===t.AREA?ae(e,a):o===t.MATH?function(e,t){e._reconstructActiveFormattingElements(),il.adjustTokenMathMLAttrs(t),il.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,n.MATHML):e._insertElement(t,n.MATHML)}(e,a):o===t.MENU?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._insertElement(r,n.HTML)}(e,a):o!==t.HEAD&&ce(e,a);break;case 5:o===t.STYLE||o===t.TITLE?W(e,a):o===t.ASIDE?ee(e,a):o===t.SMALL?ne(e,a):o===t.TABLE?function(e,r){e.treeAdapter.getDocumentMode(e.document)!==Da.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.framesetOk=!1,e.insertionMode=g}(e,a):o===t.EMBED?ae(e,a):o===t.INPUT?function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,n.HTML);var a=Ra.getTokenAttr(t,r.TYPE);a&&a.toLowerCase()===i||(e.framesetOk=!1)}(e,a):o===t.PARAM||o===t.TRACK?ie(e,a):o===t.IMAGE?function(e,n){n.tagName=t.IMG,ae(e,n)}(e,a):o!==t.FRAME&&o!==t.TBODY&&o!==t.TFOOT&&o!==t.THEAD&&ce(e,a);break;case 6:o===t.SCRIPT?W(e,a):o===t.CENTER||o===t.FIGURE||o===t.FOOTER||o===t.HEADER||o===t.HGROUP?ee(e,a):o===t.BUTTON?function(e,r){e.openElements.hasInScope(t.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML),e.framesetOk=!1}(e,a):o===t.STRIKE||o===t.STRONG?ne(e,a):o===t.APPLET||o===t.OBJECT?re(e,a):o===t.KEYGEN?ae(e,a):o===t.SOURCE?ie(e,a):o===t.IFRAME?function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,Ra.MODE.RAWTEXT)}(e,a):o===t.SELECT?function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.framesetOk=!1,e.insertionMode===g||e.insertionMode===f||e.insertionMode===E||e.insertionMode===T||e.insertionMode===b?e.insertionMode=A:e.insertionMode=v}(e,a):o===t.OPTION?le(e,a):ce(e,a);break;case 7:o===t.BGSOUND?W(e,a):o===t.DETAILS||o===t.ADDRESS||o===t.ARTICLE||o===t.SECTION||o===t.SUMMARY?ee(e,a):o===t.LISTING?te(e,a):o===t.MARQUEE?re(e,a):o===t.NOEMBED?oe(e,a):o!==t.CAPTION&&ce(e,a);break;case 8:o===t.BASEFONT?W(e,a):o===t.MENUITEM?function(e,r){e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML)}(e,a):o===t.FRAMESET?function(e,t){var r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,n.HTML),e.insertionMode=N)}(e,a):o===t.FIELDSET?ee(e,a):o===t.TEXTAREA?function(e,t){e._insertElement(t,n.HTML),e.skipNextNewLine=!0,e.tokenizer.state=Ra.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=m}(e,a):o===t.TEMPLATE?W(e,a):o===t.NOSCRIPT?oe(e,a):o===t.OPTGROUP?le(e,a):o!==t.COLGROUP&&ce(e,a);break;case 9:o===t.PLAINTEXT?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.tokenizer.state=Ra.MODE.PLAINTEXT}(e,a):ce(e,a);break;case 10:o===t.BLOCKQUOTE||o===t.FIGCAPTION?ee(e,a):ce(e,a);break;default:ce(e,a)}}function de(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function pe(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function me(e,t){for(var n=t.tagName,r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getTagName(a)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(a);break}if(e._isSpecialElement(a))break}}function ge(e,n){var r=n.tagName;switch(r.length){case 1:r===t.A||r===t.B||r===t.I||r===t.S||r===t.U?U(e,n):r===t.P?function(e){e.openElements.hasInButtonScope(t.P)||e._insertFakeElement(t.P),e._closePElement()}(e):me(e,n);break;case 2:r===t.DL||r===t.UL||r===t.OL?de(e,n):r===t.LI?function(e){e.openElements.hasInListItemScope(t.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(t.LI),e.openElements.popUntilTagNamePopped(t.LI))}(e):r===t.DD||r===t.DT?function(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,n):r===t.H1||r===t.H2||r===t.H3||r===t.H4||r===t.H5||r===t.H6?function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e):r===t.BR?function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(t.BR),e.openElements.pop(),e.framesetOk=!1}(e):r===t.EM||r===t.TT?U(e,n):me(e,n);break;case 3:r===t.BIG?U(e,n):r===t.DIR||r===t.DIV||r===t.NAV?de(e,n):me(e,n);break;case 4:r===t.BODY?function(e){e.openElements.hasInScope(t.BODY)&&(e.insertionMode=y)}(e):r===t.HTML?function(e,n){e.openElements.hasInScope(t.BODY)&&(e.insertionMode=y,e._processToken(n))}(e,n):r===t.FORM?function(e){var n=e.openElements.tmplCount>0,r=e.formElement;n||(e.formElement=null),(r||n)&&e.openElements.hasInScope(t.FORM)&&(e.openElements.generateImpliedEndTags(),n?e.openElements.popUntilTagNamePopped(t.FORM):e.openElements.remove(r))}(e):r===t.CODE||r===t.FONT||r===t.NOBR?U(e,n):r===t.MAIN||r===t.MENU?de(e,n):me(e,n);break;case 5:r===t.ASIDE?de(e,n):r===t.SMALL?U(e,n):me(e,n);break;case 6:r===t.CENTER||r===t.FIGURE||r===t.FOOTER||r===t.HEADER||r===t.HGROUP?de(e,n):r===t.APPLET||r===t.OBJECT?pe(e,n):r===t.STRIKE||r===t.STRONG?U(e,n):me(e,n);break;case 7:r===t.ADDRESS||r===t.ARTICLE||r===t.DETAILS||r===t.SECTION||r===t.SUMMARY?de(e,n):r===t.MARQUEE?pe(e,n):me(e,n);break;case 8:r===t.FIELDSET?de(e,n):r===t.TEMPLATE?Y(e,n):me(e,n);break;case 10:r===t.BLOCKQUOTE||r===t.FIGCAPTION?de(e,n):me(e,n);break;default:me(e,n)}}function he(e,t){e.tmplInsertionModeStackTop>-1?Se(e,t):e.stopped=!0}function fe(e,n){var r=e.openElements.currentTagName;r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=h,e._processToken(n)):Te(e,n)}function _e(e,a){var o=a.tagName;switch(o.length){case 2:o===t.TD||o===t.TH||o===t.TR?function(e,n){e.openElements.clearBackToTableContext(),e._insertFakeElement(t.TBODY),e.insertionMode=E,e._processToken(n)}(e,a):Te(e,a);break;case 3:o===t.COL?function(e,n){e.openElements.clearBackToTableContext(),e._insertFakeElement(t.COLGROUP),e.insertionMode=_,e._processToken(n)}(e,a):Te(e,a);break;case 4:o===t.FORM?function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,n.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,a):Te(e,a);break;case 5:o===t.TABLE?function(e,n){e.openElements.hasInTableScope(t.TABLE)&&(e.openElements.popUntilTagNamePopped(t.TABLE),e._resetInsertionMode(),e._processToken(n))}(e,a):o===t.STYLE?W(e,a):o===t.TBODY||o===t.TFOOT||o===t.THEAD?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,n.HTML),e.insertionMode=E}(e,a):o===t.INPUT?function(e,t){var a=Ra.getTokenAttr(t,r.TYPE);a&&a.toLowerCase()===i?e._appendElement(t,n.HTML):Te(e,t)}(e,a):Te(e,a);break;case 6:o===t.SCRIPT?W(e,a):Te(e,a);break;case 7:o===t.CAPTION?function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,n.HTML),e.insertionMode=f}(e,a):Te(e,a);break;case 8:o===t.COLGROUP?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,n.HTML),e.insertionMode=_}(e,a):o===t.TEMPLATE?W(e,a):Te(e,a);break;default:Te(e,a)}}function Ee(e,n){var r=n.tagName;r===t.TABLE?e.openElements.hasInTableScope(t.TABLE)&&(e.openElements.popUntilTagNamePopped(t.TABLE),e._resetInsertionMode()):r===t.TEMPLATE?Y(e,n):r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&r!==t.TBODY&&r!==t.TD&&r!==t.TFOOT&&r!==t.TH&&r!==t.THEAD&&r!==t.TR&&Te(e,n)}function Te(e,t){var n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function be(e,n){e.openElements.currentTagName===t.COLGROUP&&(e.openElements.pop(),e.insertionMode=g,e._processToken(n))}function ve(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.OPTION?(e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e._insertElement(r,n.HTML)):a===t.OPTGROUP?(e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e.openElements.currentTagName===t.OPTGROUP&&e.openElements.pop(),e._insertElement(r,n.HTML)):a===t.INPUT||a===t.KEYGEN||a===t.TEXTAREA||a===t.SELECT?e.openElements.hasInSelectScope(t.SELECT)&&(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),a!==t.SELECT&&e._processToken(r)):a!==t.SCRIPT&&a!==t.TEMPLATE||W(e,r)}function Ae(e,n){var r=n.tagName;if(r===t.OPTGROUP){var a=e.openElements.items[e.openElements.stackTop-1],i=a&&e.treeAdapter.getTagName(a);e.openElements.currentTagName===t.OPTION&&i===t.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagName===t.OPTGROUP&&e.openElements.pop()}else r===t.OPTION?e.openElements.currentTagName===t.OPTION&&e.openElements.pop():r===t.SELECT&&e.openElements.hasInSelectScope(t.SELECT)?(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode()):r===t.TEMPLATE&&Y(e,n)}function Se(e,n){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(t.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(n)):e.stopped=!0}function ye(e,t){e.insertionMode=p,e._processToken(t)}function Ne(e,t){e.insertionMode=p,e._processToken(t)}D.prototype.parse=function(e){var t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),t},D.prototype.parseFragment=function(e,r){r||(r=this.treeAdapter.createElement(t.TEMPLATE,n.HTML,[]));var a=this.treeAdapter.createElement("documentmock",n.HTML,[]);this._bootstrap(a,r),this.treeAdapter.getTagName(r)===t.TEMPLATE&&this._pushTmplInsertionMode(S),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);var i=this.treeAdapter.getFirstChild(a),o=this.treeAdapter.createDocumentFragment();return this._adoptNodes(i,o),o},D.prototype._bootstrap=function(e,t){this.tokenizer=new Ra(this.options),this.stopped=!1,this.insertionMode="INITIAL_MODE",this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new Ia(this.document,this.treeAdapter),this.activeFormattingElements=new ka(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1},D.prototype._runParsingLoop=function(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();var t=this.tokenizer.getNextToken();if(t.type===Ra.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.type===Ra.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)continue;t.chars=t.chars.substr(1)}if(this._processInputToken(t),e&&this.pendingScript)break}},D.prototype.runParsingLoopForCurrentChunk=function(e,t){if(this._runParsingLoop(t),t&&this.pendingScript){var n=this.pendingScript;return this.pendingScript=null,void t(n)}e&&e()},D.prototype._setupTokenizerCDATAMode=function(){var e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==n.HTML&&!this._isIntegrationPoint(e)},D.prototype._switchToTextParsing=function(e,t){this._insertElement(e,n.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=m},D.prototype.switchToPlaintextParsing=function(){this.insertionMode=m,this.originalInsertionMode=p,this.tokenizer.state=Ra.MODE.PLAINTEXT},D.prototype._getAdjustedCurrentElement=function(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current},D.prototype._findFormInFragmentContext=function(){var e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===t.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)},D.prototype._initTokenizerForFragmentParsing=function(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===n.HTML){var e=this.treeAdapter.getTagName(this.fragmentContext);e===t.TITLE||e===t.TEXTAREA?this.tokenizer.state=Ra.MODE.RCDATA:e===t.STYLE||e===t.XMP||e===t.IFRAME||e===t.NOEMBED||e===t.NOFRAMES||e===t.NOSCRIPT?this.tokenizer.state=Ra.MODE.RAWTEXT:e===t.SCRIPT?this.tokenizer.state=Ra.MODE.SCRIPT_DATA:e===t.PLAINTEXT&&(this.tokenizer.state=Ra.MODE.PLAINTEXT)}},D.prototype._setDocumentType=function(e){this.treeAdapter.setDocumentType(this.document,e.name,e.publicId,e.systemId)},D.prototype._attachElementToTree=function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}},D.prototype._appendElement=function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n)},D.prototype._insertElement=function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n),this.openElements.push(n)},D.prototype._insertFakeElement=function(e){var t=this.treeAdapter.createElement(e,n.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)},D.prototype._insertTemplate=function(e){var t=this.treeAdapter.createElement(e.tagName,n.HTML,e.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,r),this._attachElementToTree(t),this.openElements.push(t)},D.prototype._insertFakeRootElement=function(){var e=this.treeAdapter.createElement(t.HTML,n.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)},D.prototype._appendCommentNode=function(e,t){var n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n)},D.prototype._insertCharacters=function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}},D.prototype._adoptNodes=function(e,t){for(;;){var n=this.treeAdapter.getFirstChild(e);if(!n)break;this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}},D.prototype._shouldProcessTokenInForeignContent=function(e){var r=this._getAdjustedCurrentElement();if(!r||r===this.document)return!1;var a=this.treeAdapter.getNamespaceURI(r);if(a===n.HTML)return!1;if(this.treeAdapter.getTagName(r)===t.ANNOTATION_XML&&a===n.MATHML&&e.type===Ra.START_TAG_TOKEN&&e.tagName===t.SVG)return!1;var i=e.type===Ra.CHARACTER_TOKEN||e.type===Ra.NULL_CHARACTER_TOKEN||e.type===Ra.WHITESPACE_CHARACTER_TOKEN;return(!(e.type===Ra.START_TAG_TOKEN&&e.tagName!==t.MGLYPH&&e.tagName!==t.MALIGNMARK)&&!i||!this._isIntegrationPoint(r,n.MATHML))&&((e.type!==Ra.START_TAG_TOKEN&&!i||!this._isIntegrationPoint(r,n.HTML))&&e.type!==Ra.EOF_TOKEN)},D.prototype._processToken=function(e){R[this.insertionMode][e.type](this,e)},D.prototype._processTokenInBodyMode=function(e){R[p][e.type](this,e)},D.prototype._processTokenInForeignContent=function(e){e.type===Ra.CHARACTER_TOKEN?function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e):e.type===Ra.NULL_CHARACTER_TOKEN?function(e,t){t.chars=Ma.REPLACEMENT_CHARACTER,e._insertCharacters(t)}(this,e):e.type===Ra.WHITESPACE_CHARACTER_TOKEN?z(this,e):e.type===Ra.COMMENT_TOKEN?G(this,e):e.type===Ra.START_TAG_TOKEN?function(e,t){if(il.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==n.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{var r=e._getAdjustedCurrentElement(),a=e.treeAdapter.getNamespaceURI(r);a===n.MATHML?il.adjustTokenMathMLAttrs(t):a===n.SVG&&(il.adjustTokenSVGTagName(t),il.adjustTokenSVGAttrs(t)),il.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,a):e._insertElement(t,a)}}(this,e):e.type===Ra.END_TAG_TOKEN&&function(e,t){for(var r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(a)===n.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(a).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(a);break}}}(this,e)},D.prototype._processInputToken=function(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e)},D.prototype._isIntegrationPoint=function(e,t){var n=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e),a=this.treeAdapter.getAttrList(e);return il.isIntegrationPoint(n,r,a,t)},D.prototype._reconstructActiveFormattingElements=function(){var e=this.activeFormattingElements.length;if(e){var t=e,n=null;do{if(t--,(n=this.activeFormattingElements.entries[t]).type===ka.MARKER_ENTRY||this.openElements.contains(n.element)){t++;break}}while(t>0);for(var r=t;r<e;r++)n=this.activeFormattingElements.entries[r],this._insertElement(n.token,this.treeAdapter.getNamespaceURI(n.element)),n.element=this.openElements.current}},D.prototype._closeTableCell=function(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=T},D.prototype._closePElement=function(){this.openElements.generateImpliedEndTagsWithExclusion(t.P),this.openElements.popUntilTagNamePopped(t.P)},D.prototype._resetInsertionMode=function(){for(var e=this.openElements.stackTop,n=!1;e>=0;e--){var r=this.openElements.items[e];0===e&&(n=!0,this.fragmentContext&&(r=this.fragmentContext));var a=this.treeAdapter.getTagName(r),i=x[a];if(i){this.insertionMode=i;break}if(!(n||a!==t.TD&&a!==t.TH)){this.insertionMode=b;break}if(!n&&a===t.HEAD){this.insertionMode=u;break}if(a===t.SELECT){this._resetInsertionModeForSelect(e);break}if(a===t.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}if(a===t.HTML){this.insertionMode=this.headElement?d:c;break}if(n){this.insertionMode=p;break}}},D.prototype._resetInsertionModeForSelect=function(e){if(e>0)for(var n=e-1;n>0;n--){var r=this.openElements.items[n],a=this.treeAdapter.getTagName(r);if(a===t.TEMPLATE)break;if(a===t.TABLE)return void(this.insertionMode=A)}this.insertionMode=v},D.prototype._pushTmplInsertionMode=function(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e},D.prototype._popTmplInsertionMode=function(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]},D.prototype._isElementCausesFosterParenting=function(e){var n=this.treeAdapter.getTagName(e);return n===t.TABLE||n===t.TBODY||n===t.TFOOT||n===t.THEAD||n===t.TR},D.prototype._shouldFosterParentOnInsertion=function(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)},D.prototype._findFosterParentingLocation=function(){for(var e={parent:null,beforeElement:null},r=this.openElements.stackTop;r>=0;r--){var a=this.openElements.items[r],i=this.treeAdapter.getTagName(a),o=this.treeAdapter.getNamespaceURI(a);if(i===t.TEMPLATE&&o===n.HTML){e.parent=this.treeAdapter.getTemplateContent(a);break}if(i===t.TABLE){e.parent=this.treeAdapter.getParentNode(a),e.parent?e.beforeElement=a:e.parent=this.openElements.items[r-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e},D.prototype._fosterParentElement=function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)},D.prototype._fosterParentText=function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)},D.prototype._isSpecialElement=function(e){var t=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);return Da.SPECIAL_ELEMENTS[n][t]}})),ll=dl,sl={abbr:null,accept:256,acceptCharset:128,accessKey:128,action:null,allowFullScreen:9,allowTransparency:1,alt:null,as:null,async:8,autoComplete:128,autoFocus:8,autoPlay:8,capture:9,cellPadding:null,cellSpacing:null,challenge:1,charSet:1,checked:10,cite:null,className:129,cols:49,colSpan:null,command:null,content:null,contentEditable:null,contextMenu:1,controls:10,controlsList:128,coords:272,crossOrigin:null,data:null,dateTime:1,default:8,defer:8,dir:null,dirName:null,disabled:9,download:64,draggable:null,dropzone:128,encType:null,form:1,formAction:1,formEncType:1,formMethod:1,formNoValidate:8,formTarget:1,frameBorder:1,headers:128,height:49,hidden:9,high:16,href:null,hrefLang:null,htmlFor:128,httpEquiv:128,id:2,inputMode:1,is:1,isMap:8,keyParams:1,keyType:1,kind:null,label:null,lang:null,list:1,loop:10,low:16,manifest:1,marginHeight:16,marginWidth:16,max:null,maxLength:49,media:1,mediaGroup:null,menu:null,method:null,min:null,minLength:49,multiple:10,muted:10,name:null,nonce:null,noValidate:8,open:8,optimum:16,pattern:null,ping:128,placeholder:null,playsInline:8,poster:null,preload:null,profile:null,radioGroup:null,readOnly:10,referrerPolicy:null,rel:129,required:8,reversed:8,role:1,rows:49,rowSpan:48,sandbox:128,scope:null,scoped:8,scrolling:null,seamless:9,selected:10,shape:null,size:49,sizes:129,slot:null,sortable:8,sorted:128,span:48,spellCheck:null,src:null,srcDoc:2,srcLang:null,srcSet:257,start:16,step:null,style:null,summary:null,tabIndex:16,target:null,title:null,translate:null,type:null,typeMustMatch:8,useMap:null,value:2,volume:48,width:17,wmode:1,wrap:null,autoCapitalize:null,autoCorrect:null,autoSave:null,itemProp:129,itemScope:9,itemType:129,itemID:1,itemRef:129,property:null,results:null,security:1,unselectable:1,xmlLang:1,xmlBase:1},cl={xmlbase:"xml:base",xmllang:"xml:lang",classname:"class",htmlfor:"for",httpequiv:"http-equiv",acceptcharset:"accept-charset"},ul={};for(tl in dl.all=ul,sl)nl=ml(tl),nl=cl[nl]||nl,rl=sl[tl],ul[nl]={name:nl,propertyName:tl,mustUseAttribute:pl(rl,1),mustUseProperty:pl(rl,2),boolean:pl(rl,8),overloadedBoolean:pl(rl,64),numeric:pl(rl,16),positiveNumeric:pl(rl,48),commaSeparated:pl(rl,256),spaceSeparated:pl(rl,128)};function dl(e){var t=ml(e);return ul[cl[t]||t]}function pl(e,t){return(e&t)===t}function ml(e){return e.toLowerCase()}var gl=function(){var e=[].map.call(arguments,function(e){return e.trim()}).filter(function(e){return e.length}).join("-");return e.length?1===e.length?e.toLowerCase():/[_.\- ]+/.test(e)?(e=function(e){for(var t=!1,n=0;n<e.length;n++){var r=e.charAt(n);t&&/[a-zA-Z]/.test(r)&&r.toUpperCase()===r?(e=e.substr(0,n)+"-"+e.substr(n),t=!1,n++):t=r.toLowerCase()===r}return e}(e)).replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,function(e,t){return t.toUpperCase()}):e===e.toUpperCase()?e.toLowerCase():e[0]!==e[0].toLowerCase()?e[0].toLowerCase()+e.slice(1):e:""},hl=function(e){var t=function(e){var t=[],n=e.indexOf("\n");for(;-1!==n;)t.push(n+1),n=e.indexOf("\n",n+1);return t.push(e.length+1),t}(String(e));return{toPosition:function(e){return function(t){var n=-1,r=e.length;if(t<0)return{};for(;++n<r;)if(e[n]>t)return{line:n+1,column:t-(e[n-1]||0)+1,offset:t};return{}}}(t),toOffset:function(e){return function(t){var n=t&&t.line,r=t&&t.column;if(!isNaN(n)&&!isNaN(r)&&n-1 in e)return(e[n-2]||0)+r-1||0;return-1}}(t)}};var fl=function(e){var t,n,r,a,i=null,o=[],l=e||"",s="div",c=null,u=-1,d=l.length;t={type:"element",tagName:null,properties:{},children:[]},c=null;for(;++u<=d;)(n=l.charCodeAt(u))&&n!==_l&&n!==El||((r=l.slice(a,u))&&(c===_l?o.push(r):c===El?i=r:s=r),a=u+1,c=n);t.tagName=s,i&&(t.properties.id=i);0!==o.length&&(t.properties.className=o);return t},_l=".".charCodeAt(0),El="#".charCodeAt(0);var Tl=function(e){var t=S(String(e||vl));if(t===vl)return[];return t.split(Sl)},bl=function(e){return S(e.join(Al))},vl="",Al=" ",Sl=/[ \t\n\r\f]+/g;var yl={parse:Tl,stringify:bl},Nl=function(e){var t,n=[],r=String(e||xl),a=r.indexOf(Ol),i=0,o=!1;for(;!o;)-1===a&&(a=r.length,o=!0),!(t=S(r.slice(i,a)))&&o||n.push(t),i=a+1,a=r.indexOf(Ol,i);return n},Cl=function(e,t){var n=t||{},r=n.padLeft;e[e.length-1]===xl&&(e=e.concat(xl));return S(e.join((n.padRight?Ml:xl)+Ol+(r||void 0===r||null===r?Ml:xl)))},Ol=",",Ml=" ",xl="";var wl={parse:Nl,stringify:Cl},Rl=yl.parse,Dl=wl.parse,Il=function(e,t,n){var r,a=fl(e);t&&!n&&("string"==typeof t||"length"in t||function(e,t){var n=t.type;"string"==typeof n&&(n=n.toLowerCase());if("input"===e||!n||"string"!=typeof n)return!1;if("object"==typeof t.children&&"length"in t.children)return!0;if("button"===e)return"menu"!==n&&"submit"!==n&&"reset"!==n&&"button"!==n;return"value"in t}(a.tagName,t))&&(n=t,t=null);if(t)for(r in t)kl(a.properties,r,t[r]);(function e(t,n){var r,a;if(null!==n&&void 0!==n)if("string"!=typeof n&&"number"!=typeof n||(n={type:"text",value:String(n)}),"object"==typeof n&&"length"in n)for(r=-1,a=n.length;++r<a;)e(t,n[r]);else{if("object"!=typeof n||!("type"in n))throw new Error("Expected node, nodes, or string, got `"+n+"`");t.push(n)}})(a.children,n),"template"===a.tagName&&(a.content={type:"root",children:a.children},a.children=[]);return a};function kl(e,t,n){var r,a=ll(t)||{},i=n;if(null!==n&&void 0!==n&&n==n){if("style"===t){if("string"!=typeof n){for(r in i=[],n)i.push([r,n[r]].join(": "));i=i.join("; ")}}else a.spaceSeparated?(i="string"==typeof n?Rl(i):i,"class"===t&&e.className&&(i=e.className.concat(i))):a.commaSeparated&&(i="string"==typeof n?Dl(i):i);i=function e(t,n,r){var a=r;var i;var o;if("object"==typeof r&&"length"in r){for(o=r.length,i=-1,a=[];++i<o;)a[i]=e(t,n,r[i]);return a}t.numeric||t.positiveNumeric?isNaN(a)||""===a||(a=Number(a)):(t.boolean||t.overloadedBoolean)&&("string"!=typeof a||""!==a&&r.toLowerCase()!==n||(a=!0));return a}(a,t,i),e[a.propertyName||gl(t)]=i}}var Ll=function(e,t){var n,r=t||{};r.messages?(n=r,r={}):n=r.file;return Fl(e,{file:n,toPosition:n?hl(n).toPosition:null,verbose:r.verbose,location:!1})},Pl={}.hasOwnProperty,Bl={"#document":Ul,"#document-fragment":Ul,"#text":function(e){return{type:"text",value:e.value}},"#comment":function(e){return{type:"comment",value:e.data}},"#documentType":function(e){return{type:"doctype",name:e.name||"",public:e.publicId||null,system:e.systemId||null}}};function Fl(e,t){var n,r,a,i=Pl.call(Bl,e.nodeName)?Bl[e.nodeName]:Hl;return e.childNodes&&(n=function(e,t){var n=e.length,r=-1,a=[];for(;++r<n;)a[r]=Fl(e[r],t);return a}(e.childNodes,t)),r=i(e,n,t),e.__location&&t.toPosition&&(t.location=!0,(a=ql(e.__location,e,r,t))&&(r.position=a)),r}function Ul(e,t,n){var r,a="quirks"===e.mode||"limited-quirks"===e.mode,i={type:"root",children:t};return i.data={quirksMode:a},e.__location?n.toPosition&&(n.location=!0,r=e.__location):n.file&&n.location&&(r={startOffset:0,endOffset:String(n.file).length}),(r=r&&ql(r,e,i,n))&&(i.position=r),i}function Hl(e,t,n){for(var r,a,i,o={},l=e.attrs,s=l.length,c=-1;++c<s;)o[((r=l[c]).prefix?r.prefix+":":"")+r.name]=r.value;return a=Il(e.tagName,o,t),"template"===e.nodeName&&"content"in e&&(i=e.content,e.__location&&(i.__location={startOffset:e.__location.startTag.endOffset,endOffset:e.__location.endTag.startOffset}),a.content=Fl(e.content,n)),a}function Gl(e,t){return{start:e(t.startOffset),end:e(t.endOffset)}}function ql(e,t,n,r){var a,i,o=e.startOffset,l=e.endOffset,s=e.attrs||{},c={};for(a in s)c[(ll(a)||{}).propertyName||gl(a)]=Gl(r.toPosition,s[a]);if("element"!==n.type||e.endTag||((i=n.children[n.children.length-1])&&i.position?l=i.position.end?i.position.end.offset:null:e.startTag&&(l=e.startTag.endOffset)),r.verbose&&"element"===n.type&&(n.data={position:{opening:Gl(r.toPosition,e.startTag||e),closing:e.endTag?Gl(r.toPosition,e.endTag):null,properties:c}}),o="number"==typeof o?r.toPosition(o):null,l="number"==typeof l?r.toPosition(l):null,o||l)return{start:o,end:l}}var zl=f(function(e,t){var n=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,r=/-[a-z\u00E0-\u00F6\u00F8-\u00FE]/g;e.exports=t=function(e){return e.replace(n,function(e){return"-"+e.toLowerCase()})},t.reverse=function(e){return e.replace(r,function(e){return e.slice(1).toUpperCase()})}}),Kl=(zl.reverse,Object.prototype.toString),jl=function(e){var t=Kl.call(e),n="[object Arguments]"===t;return n||(n="[object Array]"!==t&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===Kl.call(e.callee)),n},Vl=Object.prototype.hasOwnProperty,$l=Object.prototype.toString,Wl=Array.prototype.slice,Yl=Object.prototype.propertyIsEnumerable,Ql=!Yl.call({toString:null},"toString"),Xl=Yl.call(function(){},"prototype"),Zl=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Jl=function(e){var t=e.constructor;return t&&t.prototype===e},es={$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},ts=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!es["$"+e]&&Vl.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{Jl(window[e])}catch(e){return!0}}catch(e){return!0}return!1}(),ns=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===$l.call(e),r=jl(e),a=t&&"[object String]"===$l.call(e),i=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var o=Xl&&n;if(a&&e.length>0&&!Vl.call(e,0))for(var l=0;l<e.length;++l)i.push(String(l));if(r&&e.length>0)for(var s=0;s<e.length;++s)i.push(String(s));else for(var c in e)o&&"prototype"===c||!Vl.call(e,c)||i.push(String(c));if(Ql)for(var u=function(e){if("undefined"==typeof window||!ts)return Jl(e);try{return Jl(e)}catch(e){return!1}}(e),d=0;d<Zl.length;++d)u&&"constructor"===Zl[d]||!Vl.call(e,Zl[d])||i.push(Zl[d]);return i};ns.shim=function(){if(Object.keys){if(!function(){return 2===(Object.keys(arguments)||"").length}(1,2)){var e=Object.keys;Object.keys=function(t){return jl(t)?e(Wl.call(t)):e(t)}}}else Object.keys=ns;return Object.keys||ns};var rs=ns,as=Object.prototype.hasOwnProperty,is=Object.prototype.toString,os="function"==typeof Symbol&&"symbol"==typeof Symbol(),ls=Object.prototype.toString,ss=Object.defineProperty&&function(){var e={};try{for(var t in Object.defineProperty(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),cs=function(e,t,n,r){var a;t in e&&("function"!=typeof(a=r)||"[object Function]"!==ls.call(a)||!r())||(ss?Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},us=function(e,t){var n=arguments.length>2?arguments[2]:{},r=rs(t);os&&(r=r.concat(Object.getOwnPropertySymbols(t))),function(e,t,n){if("[object Function]"!==is.call(t))throw new TypeError("iterator must be a function");var r=e.length;if(r===+r)for(var a=0;a<r;a++)t.call(n,e[a],a,e);else for(var i in e)as.call(e,i)&&t.call(n,e[i],i,e)}(r,function(r){cs(e,r,t[r],n[r])})};us.supportsDescriptors=!!ss;var ds=us,ps=function(e){return e!=e},ms=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:ps};ds(ps,{getPolyfill:ms,implementation:ps,shim:function(){var e=ms();return ds(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}});var gs=ps,hs=function(e,t,n){var r,a;if("function"!=typeof e)throw new Error("h is not a function");r=function(e){var t=e&&e("div");return Boolean(t&&("_owner"in t||"_store"in t)&&null===t.key)}(e),a=function(e){try{return"VirtualNode"===e("div").type}catch(e){}return!1}(e),(null===n||void 0===n)&&(n=(!0===r||!0===a)&&"h-");if(l("root",t))t=1===t.children.length&&l("element",t.children[0])?t.children[0]:{type:"element",tagName:"div",properties:{},children:t.children};else if(!l("element",t))throw new Error("Expected root or element, not `"+(t&&t.type||t)+"`");return function e(t,n,r){var a=n.tagName;var i;var o;var s;var c;var u;var d;var p;var m;i=n.properties;o={};for(c in i)fs(o,c,i[c],r);!0===r.vdom&&(a=a.toUpperCase());!0===r.hyperscript&&o.id&&(a+="#"+o.id,delete o.id);!0!==r.hyperscript&&!0!==r.vdom||!o.className||(a+="."+yl.parse(o.className).join("."),delete o.className);"string"==typeof o.style&&(!0===r.vdom?(o.attributes||(o.attributes={}),o.attributes.style=o.style,delete o.style):!0===r.react&&(o.style=function(e){var t,n,r,a={},i=e.split(";"),o=i.length,l=-1;for(;++l<o;)t=i[l],-1!==(r=t.indexOf(":"))&&(n=_s(S(t.slice(0,r))),a[n]=S(t.slice(r+1)));return a}(o.style)));r.prefix&&(r.key++,o.key=r.prefix+r.key);u=[];s=n.children||[];d=s.length;p=-1;for(;++p<d;)m=s[p],l("element",m)?u.push(e(t,m,r)):l("text",m)&&u.push(m.value);return 0===u.length?t(a,o):t(a,o,u)}(e,t,{prefix:n,key:0,react:r,vdom:a,hyperscript:function(e){return Boolean(e&&e.context&&e.cleanup)}(e)})};function fs(e,t,n,r){var a,i=ll(t)||{};if(!(null===n||void 0===n||!1===n||gs(n)||i.boolean&&!n)){if(t=i.name||zl(t),null!==n&&"object"==typeof n&&"length"in n&&(n=(i.commaSeparated?wl:yl).stringify(n)),i.boolean&&!0===r.hyperscript&&(n=""),"class"!==i.name&&(i.mustUseAttribute||!i.name)&&(!0===r.vdom?a="attributes":!0===r.hyperscript&&(a="attrs"),a))return void 0===e[a]&&(e[a]={}),void(e[a][t]=n);e[i.propertyName||t]=n}}function _s(e){return"-ms-"===e.slice(0,4)&&(e="ms-"+e.slice(4)),e.replace(/-([a-z])/g,Es)}function Es(e,t){return t.toUpperCase()}const Ts="http://www.w3.org/1999/xhtml",bs="http://www.w3.org/1998/Math/MathML",vs="http://www.w3.org/2000/svg",As="http://www.w3.org/1999/xlink",Ss="http://www.w3.org/XML/1998/namespace",ys="http://www.w3.org/2000/xmlns/";var Ns={html:Ts,mathml:bs,svg:vs,xlink:As,xml:Ss,xmlns:ys},Cs=Object.freeze({html:Ts,mathml:bs,svg:vs,xlink:As,xml:Ss,xmlns:ys,default:Ns}),Os=function(e,t){var n=t||{};function r(t){var n=r.invalid,a=r.handlers;return t&&xs.call(t,e)&&(n=xs.call(a,t[e])?a[t[e]]:r.unknown),(n||Ms).apply(this,arguments)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r},Ms=Function.prototype,xs={}.hasOwnProperty;var ws=Array.isArray,Rs=Object.prototype.toString,Ds=ws||function(e){return"[object Array]"===Rs.call(e)};var Is=function(e,t){var n=t||{},r=n.key,a=n.indices,i=n.gapless;"string"==typeof n&&(r=n);null==a&&(a=!0);return function(t){var n,o,l=[],s=t,c=-1;r&&(Ds(t)?s=null:t=s[r]);n=t.length;for(;++c<n;)o=a?e.call(this,t[c],c,s):e.call(this,t[c],s),i&&null==o||l.push(o);return l}};var ks=Cs&&Ns||Cs,Ls=qs,Ps={}.hasOwnProperty,Bs=Os("type"),Fs=Is(Bs,{key:"children",indices:!1}),Us=["__location","childNodes","content","parentNode","namespaceURI"];Bs.handlers.root=function(e){var t=e.data||{};return{nodeName:"#document",mode:Ps.call(t,"quirksMode")&&Boolean(t.quirksMode)?"quirks":"no-quirks",childNodes:Fs(e)}},Bs.handlers.element=function(t){var n=e(t);return n.children=[],hs(function(r,a){var i,o,l,s=[];for(l in a)o={name:l,value:a[l]},Ps.call(Gs,l)&&(o=e(o,Gs[l])),s.push(o);return"template"===r&&(delete(i=qs(n.content)).mode,i.nodeName="#document-fragment"),zs(t,{nodeName:t.tagName,tagName:t.tagName,attrs:s,childNodes:t.children?Fs(t):[]},i)},n)},Bs.handlers.text=function(e){return zs(e,{nodeName:"#text",value:e.value})},Bs.handlers.comment=function(e){return zs(e,{nodeName:"#comment",data:e.value})},Bs.handlers.doctype=function(e){return zs(e,{nodeName:"#documentType",name:e.name,publicId:e.public||null,systemId:e.system||null})};var Hs={math:ks.mathml,svg:ks.svg},Gs={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:ks.xlink},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:ks.xlink},"xlink:href":{prefix:"xlink",name:"href",namespace:ks.xlink},"xlink:role":{prefix:"xlink",name:"role",namespace:ks.xlink},"xlink:show":{prefix:"xlink",name:"show",namespace:ks.xlink},"xlink:title":{prefix:"xlink",name:"title",namespace:ks.xlink},"xlink:type":{prefix:"xlink",name:"type",namespace:ks.xlink},"xml:base":{prefix:"xml",name:"base",namespace:ks.xml},"xml:lang":{prefix:"xml",name:"lang",namespace:ks.xml},"xml:space":{prefix:"xml",name:"space",namespace:ks.xml},xmlns:{prefix:"",name:"xmlns",namespace:ks.xmlns},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:ks.xmlns}};function qs(e){return function e(t,n,r){var a=t.__location;var i=t.childNodes;var o=t.tagName;var l={};var s;var c;var u;for(u in t)-1===Us.indexOf(u)&&(l[u]=t[u]);Ps.call(Hs,o)&&(r=Hs[o]);Ps.call(l,"tagName")&&(l.namespaceURI=r);if(i)for(l.childNodes=i,s=i.length,c=-1;++c<s;)i[c]=e(i[c],l,r);"template"===o&&(l.content=e(t.content,null,r));n&&(l.parentNode=n);a&&(l.__location=a);return l}(Bs(e),null,ks.html)}function zs(e,t,n){return e.position&&e.position.start&&e.position.end&&(t.__location={line:e.position.start.line,col:e.position.start.column,startOffset:e.position.start.offset,endOffset:e.position.end.offset}),n&&(t.content=n),t}var Ks=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","isindex","keygen","link","menuitem","meta","nextid","param","source","track","wbr"],js=Object.freeze({default:Ks}),Vs=js&&Ks||js,$s=function(e,t){var n,r,a=new ol({locationInfo:!0}),i=Os("type"),o=function(e){var t="root"===e.type?e.children[0]:e;if(t&&("doctype"===t.type||"html"===t.tagName))return tc;return nc}(e);if(i.handlers.root=function(e){u(e.children)},i.handlers.element=function(e){var t=-1!==Vs.indexOf(e.tagName);a._processToken(function(e){var t=_.start(e),n=_.end(e);return{type:Qs,tagName:e.tagName,selfClosing:!1,attrs:function(e){return Ls({type:"element",properties:e.properties}).attrs}(e),location:{line:t.line,col:t.column,startOffset:t.offset,endOffset:n.offset,attrs:{},startTag:{line:t.line,col:t.column,startOffset:t.offset,endOffset:n.offset}}}}(e),ks.html),u(e.children),t||a._processToken(function(e){var t=_.end(e);return{type:Xs,tagName:e.tagName,attrs:[],location:{line:t.line,col:t.column,startOffset:t.offset,endOffset:t.offset}}}(e))},i.handlers.text=function(e){var t=_.start(e);a._processToken({type:Ys,chars:e.value,location:{line:t.line,col:t.column,startOffset:t.offset,endOffset:_.end(e).offset}})},i.handlers.comment=function(e){var t=_.start(e);a._processToken({type:Js,data:e.value,location:{line:t.line,col:t.column,startOffset:t.offset,endOffset:_.end(e).offset}})},i.handlers.doctype=function(e){var t=Ls(e);a._processToken({type:ec,name:t.name,forceQuirks:!1,publicId:t.publicId,systemId:t.systemId})},i.handlers.raw=function(e){var t=_.start(e).offset;n.html=null,n.lastCharPos=-1,n.pos=-1,null!==t&&(n.__locTracker.droppedBufferSize=t),a.tokenizer.write(e.value),function(e){for(var t,n=e.tokenizer;!e.stopped;){if(e._setupTokenizerCDATAMode(),(t=n.getNextToken()).type===Zs){(t=n.currentCharacterToken||n.currentToken)&&e._processInputToken(t),n.currentToken=null,n.currentCharacterToken=null;break}e._processInputToken(t)}}(a)},i.unknown=rc,r=Ll(o===nc?(l={nodeName:"template",tagName:"template",attrs:[],namespaceURI:ks.html,childNodes:[]},s={nodeName:"documentmock",tagName:"documentmock",attrs:[],namespaceURI:ks.html,childNodes:[]},c={nodeName:"#document-fragment",childNodes:[]},a._bootstrap(s,l),a._pushTmplInsertionMode(Ws),a._initTokenizerForFragmentParsing(),a._insertFakeRootElement(),a._resetInsertionMode(),a._findFormInFragmentContext(),n=a.tokenizer.preprocessor,i(e),a._adoptNodes(s.childNodes[0],c),c):function(){var t=a.treeAdapter.createDocument();return a._bootstrap(t,null),i(e),t}(),t),"root"!==e.type&&1===r.children.length)return r.children[0];var l,s,c;return r;function u(e){var t=0,n=-1;for(e&&(t=e.length);++n<t;)i(e[n])}},Ws="IN_TEMPLATE_MODE",Ys="CHARACTER_TOKEN",Qs="START_TAG_TOKEN",Xs="END_TAG_TOKEN",Zs="HIBERNATION_TOKEN",Js="COMMENT_TOKEN",ec="DOCTYPE_TOKEN",tc="document",nc="fragment";function rc(e){throw new Error("Cannot compile `"+e.type+"` node")}var ac=function(){return $s};var ic=f(function(e,t){var n;n=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=63)}([function(e,t,n){var r=n(57),a=n.n(r),i=n(18),o=n.n(i),l=n(12),s=n(30),c=n(28),u=n(5),d=n(13),p=n(19),m=["\\imath","ı","\\jmath","ȷ","\\pounds","\\mathsterling","\\textsterling","£"],g=function(e,t,n){return c.a[n][e]&&c.a[n][e].replace&&(e=c.a[n][e].replace),{value:e,metrics:s.a.getCharacterMetrics(e,t,n)}},h=function(e,t,n,r,a){var i=g(e,t,n),o=i.metrics;e=i.value;var s=void 0;if(o){var c=o.italic;"text"===n&&(c=0),s=new l.a.symbolNode(e,o.height,o.depth,c,o.skew,o.width,a)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+e+"' in style '"+t+"'"),s=new l.a.symbolNode(e,0,0,0,0,0,a);if(r){s.maxFontSize=r.sizeMultiplier,r.style.isTight()&&s.classes.push("mtight");var u=r.getColor();u&&(s.style.color=u)}return s},f=function(e,t,n,r,a){if("mathord"===a){var i=_(e,t,n,r);return h(e,i.fontName,t,n,r.concat([i.fontClass]))}if("textord"===a){if("ams"===(c.a[t][e]&&c.a[t][e].font)){var o=b("amsrm",n.fontWeight,n.fontShape);return h(e,o,t,n,r.concat("amsrm",n.fontWeight,n.fontShape))}var l=b("textrm",n.fontWeight,n.fontShape);return h(e,l,t,n,r.concat(n.fontWeight,n.fontShape))}throw new Error("unexpected type: "+a+" in mathDefault")},_=function(e,t,n,r){return/[0-9]/.test(e.charAt(0))||u.a.contains(m,e)?{fontName:"Main-Italic",fontClass:"mainit"}:{fontName:"Math-Italic",fontClass:"mathit"}},E=function(e){var t=0,n=0,r=0,a=!0,i=!1,l=void 0;try{for(var s,c=o()(e.children);!(a=(s=c.next()).done);a=!0){var u=s.value;u.height>t&&(t=u.height),u.depth>n&&(n=u.depth),u.maxFontSize>r&&(r=u.maxFontSize)}}catch(e){i=!0,l=e}finally{try{!a&&c.return&&c.return()}finally{if(i)throw l}}e.height=t,e.depth=n,e.maxFontSize=r},T=function(e,t,n,r){var a=new l.a.span(e,t,n,r);return E(a),a},b=function(e,t,n){return v(e)+"-"+A(t,n)},v=function(e){var t="";switch(e){case"amsrm":t="AMS";break;case"textrm":t="Main";break;case"textsf":t="SansSerif";break;case"texttt":t="Typewriter";break;default:throw new Error("Invalid font provided: "+e)}return t},A=function(e,t){var n="";return"textbf"===e&&(n+="Bold"),"textit"===t&&(n+="Italic"),n||"Regular"},S={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},y={vec:["vec",.471,.714]};t.a={fontMap:S,makeSymbol:h,mathsym:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return n&&n.fontFamily&&"boldsymbol"===n.fontFamily&&g(e,"Main-Bold",t).metrics?h(e,"Main-Bold",t,n,r.concat(["mathbf"])):"\\"===e||"main"===c.a[t][e].font?h(e,"Main-Regular",t,n,r):h(e,"AMS-Regular",t,n,r.concat(["amsrm"]))},makeSpan:T,makeLineSpan:function(e,t){var n=t.fontMetrics().defaultRuleThickness,r=d.a.ruleSpan(e,n,t);return r.height=n,r.style.height=5*r.height+"em",r.maxFontSize=1,r},makeAnchor:function(e,t,n,r){var a=new l.a.anchor(e,t,n,r);return E(a),a},makeFragment:function(e){var t=new l.a.documentFragment(e);return E(t),t},makeVList:function(e,t){var n=function(e){if("individualShift"===e.positionType){for(var t=e.children,n=[t[0]],r=-t[0].shift-t[0].elem.depth,a=r,i=1;i<t.length;i++){var l=-t[i].shift-a-t[i].elem.depth,s=l-(t[i-1].elem.height+t[i-1].elem.depth);a+=l,n.push({type:"kern",size:s}),n.push(t[i])}return{children:n,depth:r}}var c=void 0;if("top"===e.positionType){var u=e.positionData,d=!0,p=!1,m=void 0;try{for(var g,h=o()(e.children);!(d=(g=h.next()).done);d=!0){var f=g.value;u-="kern"===f.type?f.size:f.elem.height+f.elem.depth}}catch(e){p=!0,m=e}finally{try{!d&&h.return&&h.return()}finally{if(p)throw m}}c=u}else if("bottom"===e.positionType)c=-e.positionData;else{var _=e.children[0];if("elem"!==_.type)throw new Error('First child must have type "elem".');if("shift"===e.positionType)c=-_.elem.depth-e.positionData;else{if("firstBaseline"!==e.positionType)throw new Error("Invalid positionType "+e.positionType+".");c=-_.elem.depth}}return{children:e.children,depth:c}}(e),r=n.children,a=n.depth,i=0,s=!0,c=!1,u=void 0;try{for(var d,p=o()(r);!(s=(d=p.next()).done);s=!0){var m=d.value;if("elem"===m.type){var g=m.elem;i=Math.max(i,g.maxFontSize,g.height)}}}catch(e){c=!0,u=e}finally{try{!s&&p.return&&p.return()}finally{if(c)throw u}}i+=2;var h=T(["pstrut"],[]);h.style.height=i+"em";var f=[],_=a,E=a,b=a,v=!0,A=!1,S=void 0;try{for(var y,N=o()(r);!(v=(y=N.next()).done);v=!0){var C=y.value;if("kern"===C.type)b+=C.size;else{var O=C.elem,M=C.wrapperClasses||[],x=C.wrapperStyle||{},w=T(M,[h,O],void 0,x);w.style.top=-i-b-O.depth+"em",C.marginLeft&&(w.style.marginLeft=C.marginLeft),C.marginRight&&(w.style.marginRight=C.marginRight),f.push(w),b+=O.height+O.depth}_=Math.min(_,b),E=Math.max(E,b)}}catch(e){A=!0,S=e}finally{try{!v&&N.return&&N.return()}finally{if(A)throw S}}var R=T(["vlist"],f);R.style.height=E+"em";var D=void 0;if(_<0){var I=T(["vlist"],[]);I.style.height=-_+"em";var k=T(["vlist-s"],[new l.a.symbolNode("​")]);D=[T(["vlist-r"],[R,k]),T(["vlist-r"],[I])]}else D=[T(["vlist-r"],[R])];var L=T(["vlist-t"],D);return 2===D.length&&L.classes.push("vlist-t2"),L.height=E,L.depth=-_,L},makeOrd:function(e,t,n){var r=e.mode,a=e.value,i=["mord"],o=t.fontFamily;if(o){var l=void 0,s=void 0;if("boldsymbol"===o){var c=function(e,t,n,r){return g(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}}(a,r);l=c.fontName,s=[c.fontClass]}else if("mathit"===o||u.a.contains(m,a)){var d=_(a,r,t,i);l=d.fontName,s=[d.fontClass]}else-1!==o.indexOf("math")||"math"===r?(l=S[o].fontName,s=[o]):(l=b(o,t.fontWeight,t.fontShape),s=[o,t.fontWeight,t.fontShape]);return g(a,l,r).metrics?h(a,l,r,t,i.concat(s)):f(a,r,t,i,n)}return f(a,r,t,i,n)},makeVerb:function(e,t){var n=e.value.body;return n=e.value.star?n.replace(/ /g,"␣"):n.replace(/ /g," ")},makeGlue:function(e,t){var n=T(["mord","rule"],[],t),r=Object(p.a)(e,t);return n.style.marginRight=r+"em",n},staticSvg:function(e,t){var n=a()(y[e],3),r=n[0],i=n[1],o=n[2],s=new l.a.pathNode(r),c=new l.a.svgNode([s],{width:i+"em",height:o+"em",style:"width:"+i+"em",viewBox:"0 0 "+1e3*i+" "+1e3*o,preserveAspectRatio:"xMinYMin"}),u=T(["overlay"],[c],t);return u.height=o,u.style.height=o+"em",u.style.width=i+"em",u},svgData:y,tryCombineChars:function(e){for(var t=0;t<e.length-1;t++)e[t].tryCombine(e[t+1])&&(e.splice(t+1,1),t--);return e},spacingFunctions:{"\\qquad":{size:"2em",className:"qquad"},"\\quad":{size:"1em",className:"quad"},"\\enspace":{size:"0.5em",className:"enspace"},"\\;":{size:"0.277778em",className:"thickspace"},"\\:":{size:"0.22222em",className:"mediumspace"},"\\,":{size:"0.16667em",className:"thinspace"},"\\!":{size:"-0.16667em",className:"negativethinspace"}}}},function(e,t,n){var r=n(18),a=n.n(r),i=n(7),o=n.n(i),l=n(10),s=n.n(l),c=n(5),u=function(){function e(t,n){o()(this,e),this.type=t,this.attributes={},this.children=n||[]}return s()(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);var n=!0,r=!1,i=void 0;try{for(var o,l=a()(this.children);!(n=(o=l.next()).done);n=!0){var s=o.value;e.appendChild(s.toNode())}}catch(e){r=!0,i=e}finally{try{!n&&l.return&&l.return()}finally{if(r)throw i}}return e}},{key:"toMarkup",value:function(){var e="<"+this.type;for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+'="',e+=c.a.escape(this.attributes[t]),e+='"');e+=">";for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+="</"+this.type+">"}},{key:"toText",value:function(){return"mspace"===this.type?"0.16667em"===this.attributes.width?" ":" ":this.children.map(function(e){return e.toText()}).join("")}}]),e}(),d=function(){function e(t){o()(this,e),this.text=t}return s()(e,[{key:"toNode",value:function(){return document.createTextNode(this.text)}},{key:"toMarkup",value:function(){return c.a.escape(this.text)}},{key:"toText",value:function(){return this.text}}]),e}();t.a={MathNode:u,TextNode:d}},function(e,t,n){n.d(t,"e",function(){return d}),n.d(t,"d",function(){return m}),n.d(t,"a",function(){return h}),n.d(t,"b",function(){return f}),t.c=function(e,t,n){var a=h(e,n),o=new i.a.MathNode("mrow",a),l=new i.a.MathNode("annotation",[new i.a.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var s=new i.a.MathNode("semantics",[o,l]),c=new i.a.MathNode("math",[s]);return r.a.makeSpan(["katex-mathml"],[c])};var r=n(0),a=n(30),i=n(1),o=n(6),l=n(9),s=n(28),c=n(5),u=n(13),d=function(e,t){return s.a[t][e]&&s.a[t][e].replace&&(e=s.a[t][e].replace),new i.a.TextNode(e)},p=function(e,t){var n=t.fontFamily;if(!n)return null;var i=e.mode;if("mathit"===n)return"italic";if("boldsymbol"===n)return"bold-italic";var o=e.value;if(c.a.contains(["\\imath","\\jmath"],o))return null;s.a[i][o]&&s.a[i][o].replace&&(o=s.a[i][o].replace);var l=r.a.fontMap[n].fontName;return a.a.getCharacterMetrics(o,l,i)?r.a.fontMap[n].variant:null},m={},g={mi:"italic",mn:"normal",mtext:"normal"};m.mathord=function(e,t){var n=new i.a.MathNode("mi",[d(e.value,e.mode)]),r=p(e,t)||"italic";return r!==g[n.type]&&n.setAttribute("mathvariant",r),n},m.textord=function(e,t){var n=d(e.value,e.mode),r=p(e,t)||"normal",a=void 0;return a="text"===e.mode?new i.a.MathNode("mtext",[n]):/[0-9]/.test(e.value)?new i.a.MathNode("mn",[n]):"\\prime"===e.value?new i.a.MathNode("mo",[n]):new i.a.MathNode("mi",[n]),r!==g[a.type]&&a.setAttribute("mathvariant",r),a},m.bin=function(e,t){var n=new i.a.MathNode("mo",[d(e.value,e.mode)]),r=p(e,t);return"bold-italic"===r&&n.setAttribute("mathvariant",r),n},m.rel=function(e){return new i.a.MathNode("mo",[d(e.value,e.mode)])},m.open=function(e){return new i.a.MathNode("mo",[d(e.value,e.mode)])},m.close=function(e){return new i.a.MathNode("mo",[d(e.value,e.mode)])},m.inner=function(e){return new i.a.MathNode("mo",[d(e.value,e.mode)])},m.punct=function(e){var t=new i.a.MathNode("mo",[d(e.value,e.mode)]);return t.setAttribute("separator","true"),t},m.ordgroup=function(e,t){var n=h(e.value,t);return new i.a.MathNode("mrow",n)},m.supsub=function(e,t){var n=!1,r=void 0;e.value.base&&"horizBrace"===e.value.base.value.type&&!!e.value.sup===e.value.base.value.isOver&&(n=!0,r=e.value.base.value.isOver);var a=[f(e.value.base,t,!0)];e.value.sub&&a.push(f(e.value.sub,t,!0)),e.value.sup&&a.push(f(e.value.sup,t,!0));var o=void 0;if(n)o=r?"mover":"munder";else if(e.value.sub)if(e.value.sup){var s=e.value.base;o=s&&s.value.limits&&t.style===l.a.DISPLAY?"munderover":"msubsup"}else{var c=e.value.base;o=c&&c.value.limits&&t.style===l.a.DISPLAY?"munder":"msub"}else{var u=e.value.base;o=u&&u.value.limits&&t.style===l.a.DISPLAY?"mover":"msup"}return new i.a.MathNode(o,a)},m.spacing=function(e){var t=void 0;return"\\ "===e.value||"\\space"===e.value||" "===e.value||"~"===e.value?t=new i.a.MathNode("mtext",[new i.a.TextNode(" ")]):(t=new i.a.MathNode("mspace")).setAttribute("width",r.a.spacingFunctions[e.value].size),t},m.horizBrace=function(e,t){var n=u.a.mathMLnode(e.value.label);return new i.a.MathNode(e.value.isOver?"mover":"munder",[f(e.value.base,t),n])},m.xArrow=function(e,t){var n=u.a.mathMLnode(e.value.label),r=void 0,a=void 0;if(e.value.body){var o=f(e.value.body,t);e.value.below?(a=f(e.value.below,t),r=new i.a.MathNode("munderover",[n,a,o])):r=new i.a.MathNode("mover",[n,o])}else e.value.below?(a=f(e.value.below,t),r=new i.a.MathNode("munder",[n,a])):r=new i.a.MathNode("mover",[n]);return r},m.mclass=function(e,t){var n=h(e.value.value,t);return new i.a.MathNode("mstyle",n)},m.raisebox=function(e,t){var n=new i.a.MathNode("mpadded",[f(e.value.body,t)]),r=e.value.dy.value.number+e.value.dy.value.unit;return n.setAttribute("voffset",r),n};var h=function(e,t){for(var n=[],r=0;r<e.length;r++){var a=e[r];n.push(f(a,t))}return n},f=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return new i.a.MathNode("mrow");if(m[e.type]){var r=m[e.type](e,t);return n&&"mrow"===r.type&&1===r.children.length?r.children[0]:r}throw new o.a("Got group of unknown type: '"+e.type+"'")}},function(e,t,n){n.d(t,"a",function(){return i}),t.b=function(e){for(var t=e.type,n=e.names,o=e.props,l=e.handler,s=e.htmlBuilder,c=e.mathmlBuilder,u={numArgs:o.numArgs,argTypes:o.argTypes,greediness:void 0===o.greediness?1:o.greediness,allowedInText:!!o.allowedInText,allowedInMath:void 0===o.allowedInMath||o.allowedInMath,numOptionalArgs:o.numOptionalArgs||0,infix:!!o.infix,handler:l},d=0;d<n.length;++d)i[n[d]]=u;t&&(s&&(r.d[t]=s),c&&(a.d[t]=c))},n.d(t,"c",function(){return o});var r=n(4),a=n(2),i={};var o=function(e){return"ordgroup"===e.type?e.value:[e]}},function(e,t,n){n.d(t,"a",function(){return T}),n.d(t,"e",function(){return S}),n.d(t,"d",function(){return y}),n.d(t,"b",function(){return N}),t.c=function(e,t){e=JSON.parse(a()(e));var n=T(e,t,!0),r=h(["base"],n,t),i=h(["strut"]),o=h(["strut","bottom"]);i.style.height=r.height+"em",o.style.height=r.height+r.depth+"em",o.style.verticalAlign=-r.depth+"em";var l=h(["katex-html"],[i,o,r]);return l.setAttribute("aria-hidden","true"),l};var r=n(77),a=n.n(r),i=n(35),o=n.n(i),l=n(6),s=n(9),c=n(0),u=n(12),d=n(19),p=n(5),m=n(13),g=n(112),h=c.a.makeSpan,f=function(e,t){return e?p.a.contains(["mbin","mopen","mrel","mop","mpunct"],v(e,"right")):t},_=function(e,t){return e?p.a.contains(["mrel","mclose","mpunct"],v(e,"left")):t},E={display:s.a.DISPLAY,text:s.a.TEXT,script:s.a.SCRIPT,scriptscript:s.a.SCRIPTSCRIPT},T=function(e,t,n){for(var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[null,null],a=[],i=0;i<e.length;i++){var l=e[i],s=N(l,t);s instanceof u.a.documentFragment?a.push.apply(a,o()(s.children)):a.push(s)}for(var d=[r[0]&&h([r[0]],[],t)].concat(o()(a.filter(function(e){return e&&"mspace"!==e.classes[0]})),[r[1]&&h([r[1]],[],t)]),p=1;p<d.length-1;p++){var m=b(d[p],"left");"mbin"===m.classes[0]&&f(d[p-1],n)&&(m.classes[0]="mord");var T=b(d[p],"right");"mbin"===T.classes[0]&&_(d[p+1],n)&&(T.classes[0]="mord")}for(var S=[],y=0,C=0;C<a.length;C++)if(S.push(a[C]),"mspace"!==a[C].classes[0]&&y<d.length-1){0===y&&(S.pop(),C--);var O=v(d[y],"right"),M=v(d[y+1],"left");if(O&&M&&n){var x=A(d[y+1])?g.b[O][M]:g.a[O][M];if(x){var w=t;1===e.length&&("sizing"===e[0].type?w=t.havingSize(e[0].value.size):"styling"===e[0].type&&(w=t.havingStyle(E[e[0].value.style]))),S.push(c.a.makeGlue(x,w))}}y++}for(var R=0;R<S.length;R++)"̸"===S[R].value&&(S[R].style.position="absolute",S[R].style.paddingLeft="0.8em");return S},b=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"right";if((t instanceof u.a.documentFragment||t instanceof u.a.anchor)&&t.children.length){if("right"===n)return e(t.children[t.children.length-1]);if("left"===n)return e(t.children[0])}return t},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"right";return e?(e=b(e,t),p.a.contains(["mord","mop","mbin","mrel","mopen","mclose","mpunct","minner"],e.classes[0])?e.classes[0]:null):null},A=function(e){return e=b(e,"left"),p.a.contains(e.classes,"mtight")},S=function(e,t){var n=["nulldelimiter"].concat(e.baseSizingClasses());return h(t.concat(n))},y={mathord:function(e,t){return c.a.makeOrd(e,t,"mathord")},textord:function(e,t){return c.a.makeOrd(e,t,"textord")},bin:function(e,t){return c.a.mathsym(e.value,e.mode,t,["mbin"])},rel:function(e,t){return c.a.mathsym(e.value,e.mode,t,["mrel"])},open:function(e,t){return c.a.mathsym(e.value,e.mode,t,["mopen"])},close:function(e,t){return c.a.mathsym(e.value,e.mode,t,["mclose"])},inner:function(e,t){return c.a.mathsym(e.value,e.mode,t,["minner"])},punct:function(e,t){return c.a.mathsym(e.value,e.mode,t,["mpunct"])},ordgroup:function(e,t){return h(["mord"],T(e.value,t,!0),t)}};y.supsub=function(e,t){if(function(e,t){if(e.value.base){var n=e.value.base;return"op"===n.type?n.value.limits&&(t.style.size===s.a.DISPLAY.size||n.value.alwaysHandleSupSub):"accent"===n.type?p.a.isCharacterBox(n.value.base):"horizBrace"===n.type?!e.value.sub===n.value.isOver:null}return!1}(e,t))return y[e.value.base.type](e,t);var n=N(e.value.base,t),r=void 0,a=void 0,i=t.fontMetrics(),o=void 0,l=0,d=0;e.value.sup&&(o=t.havingStyle(t.style.sup()),r=N(e.value.sup,o,t),p.a.isCharacterBox(e.value.base)||(l=n.height-o.fontMetrics().supDrop*o.sizeMultiplier/t.sizeMultiplier)),e.value.sub&&(o=t.havingStyle(t.style.sub()),a=N(e.value.sub,o,t),p.a.isCharacterBox(e.value.base)||(d=n.depth+o.fontMetrics().subDrop*o.sizeMultiplier/t.sizeMultiplier));var m=void 0;m=t.style===s.a.DISPLAY?i.sup1:t.style.cramped?i.sup3:i.sup2;var g=t.sizeMultiplier,f=.5/i.ptPerEm/g+"em",_=void 0;if(e.value.sup)if(e.value.sub){l=Math.max(l,m,r.depth+.25*i.xHeight),d=Math.max(d,i.sub2);var E=i.defaultRuleThickness;if(l-r.depth-(a.height-d)<4*E){d=4*E-(l-r.depth)+a.height;var T=.8*i.xHeight-(l-r.depth);T>0&&(l+=T,d-=T)}var b=[{type:"elem",elem:a,shift:d,marginRight:f},{type:"elem",elem:r,shift:-l,marginRight:f}];n instanceof u.a.symbolNode&&(b[0].marginLeft=-n.italic+"em"),_=c.a.makeVList({positionType:"individualShift",children:b},t)}else l=Math.max(l,m,r.depth+.25*i.xHeight),_=c.a.makeVList({positionType:"shift",positionData:-l,children:[{type:"elem",elem:r,marginRight:f}]},t);else{d=Math.max(d,i.sub1,a.height-.8*i.xHeight);var A=[{type:"elem",elem:a,marginRight:f}];n instanceof u.a.symbolNode&&(A[0].marginLeft=-n.italic+"em"),_=c.a.makeVList({positionType:"shift",positionData:d,children:A},t)}var S=v(n)||"mord";return h([S],[n,h(["msupsub"],[_])],t)},y.spacing=function(e,t){return"\\ "===e.value||"\\space"===e.value||" "===e.value||"~"===e.value?"text"===e.mode?c.a.makeOrd(e,t,"textord"):h(["mspace"],[c.a.mathsym(e.value,e.mode,t)],t):h(["mspace",c.a.spacingFunctions[e.value].className],[],t)},y.horizBrace=function(e,t){var n=t.style,r="supsub"===e.type,a=void 0,i=void 0;r&&(e.value.sup?(i=t.havingStyle(n.sup()),a=N(e.value.sup,i,t)):(i=t.havingStyle(n.sub()),a=N(e.value.sub,i,t)),e=e.value.base);var o=N(e.value.base,t.havingBaseStyle(s.a.DISPLAY)),l=m.a.svgSpan(e,t),u=void 0;if(e.value.isOver?(u=c.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:l}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(u=c.a.makeVList({positionType:"bottom",positionData:o.depth+.1+l.height,children:[{type:"elem",elem:l},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var d=h(["mord",e.value.isOver?"mover":"munder"],[u],t);u=e.value.isOver?c.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:d},{type:"kern",size:.2},{type:"elem",elem:a}]},t):c.a.makeVList({positionType:"bottom",positionData:d.depth+.2+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:d}]},t)}return h(["mord",e.value.isOver?"mover":"munder"],[u],t)},y.xArrow=function(e,t){var n=t.style,r=t.havingStyle(n.sup()),a=N(e.value.body,r,t);a.classes.push("x-arrow-pad");var i=void 0;e.value.below&&(r=t.havingStyle(n.sub()),(i=N(e.value.below,r,t)).classes.push("x-arrow-pad"));var o=m.a.svgSpan(e,t),l=-t.fontMetrics().axisHeight+.5*o.height,s=-t.fontMetrics().axisHeight-.5*o.height-.111;"\\xleftequilibrium"===e.value.label&&(s-=a.depth);var u=void 0;if(e.value.below){var d=-t.fontMetrics().axisHeight+i.height+.5*o.height+.111;u=c.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:o,shift:l},{type:"elem",elem:i,shift:d}]},t)}else u=c.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:s},{type:"elem",elem:o,shift:l}]},t);return u.children[0].children[0].children[1].classes.push("svg-align"),h(["mrel","x-arrow"],[u],t)},y.mclass=function(e,t){var n=T(e.value.value,t,!0);return h([e.value.mclass],n,t)},y.raisebox=function(e,t){var n=y.sizing({value:{value:[{type:"text",value:{body:e.value.value,font:"mathrm"}}],size:6}},t),r=Object(d.a)(e.value.dy.value,t);return c.a.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:n}]},t)};var N=function(e,t,n){if(!e)return h();if(y[e.type]){var r=y[e.type](e,t);if(n&&t.size!==n.size){r=h(t.sizingClasses(n),[r],t);var a=t.sizeMultiplier/n.sizeMultiplier;r.height*=a,r.depth*=a}return r}throw new l.a("Got group of unknown type: '"+e.type+"'")}},function(e,t,n){var r=Array.prototype.indexOf,a=function(e,t){if(null==e)return-1;if(r&&e.indexOf===r)return e.indexOf(t);for(var n=e.length,a=0;a<n;a++)if(e[a]===t)return a;return-1},i=/([A-Z])/g,o={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},l=/[&><"']/g;var s=void 0;if("undefined"!=typeof document){var c=document.createElement("span");s="textContent"in c?function(e,t){e.textContent=t}:function(e,t){e.innerText=t}}var u=function e(t){return!!t&&("ordgroup"===t.type?1===t.value.length?e(t.value[0]):t:"color"===t.type?1===t.value.value.length?e(t.value.value[0]):t:"font"===t.type?e(t.value.body):t)};t.a={contains:function(e,t){return-1!==a(e,t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(l,function(e){return o[e]})},hyphenate:function(e){return e.replace(i,"-$1").toLowerCase()},indexOf:a,setTextContent:s,clearNode:function(e){s(e,"")},getBaseElem:u,isCharacterBox:function(e){var t=u(e);return"mathord"===t.type||"textord"===t.type||"bin"===t.type||"rel"===t.type||"inner"===t.type||"open"===t.type||"close"===t.type||"punct"===t.type}}},function(e,t,n){var r=n(7),a=n.n(r),i=(n(14),n(27),function e(t,n){a()(this,e);var r="KaTeX parse error: "+t,i=void 0,o=n&&n.loc;if(o&&o.start<=o.end){var l=o.lexer.input;i=o.start;var s=o.end;i===l.length?r+=" at end of input: ":r+=" at position "+(i+1)+": ";var c=l.slice(i,s).replace(/[^]/g,"$&̲");r+=(i>15?"…"+l.slice(i-15,i):l.slice(0,i))+c+(s+15<l.length?l.slice(s,s+15)+"…":l.slice(s))}var u=new Error(r);return u.name="ParseError",u.__proto__=e.prototype,u.position=i,u});i.prototype.__proto__=Error.prototype,t.a=i},function(e,t,n){t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(7),a=n.n(r),i=n(10),o=n.n(i),l=function(){function e(t,n,r){a()(this,e),this.id=t,this.size=n,this.cramped=r}return o()(e,[{key:"sup",value:function(){return s[c[this.id]]}},{key:"sub",value:function(){return s[u[this.id]]}},{key:"fracNum",value:function(){return s[d[this.id]]}},{key:"fracDen",value:function(){return s[p[this.id]]}},{key:"cramp",value:function(){return s[m[this.id]]}},{key:"text",value:function(){return s[g[this.id]]}},{key:"isTight",value:function(){return this.size>=2}}]),e}(),s=[new l(0,0,!1),new l(1,0,!0),new l(2,1,!1),new l(3,1,!0),new l(4,2,!1),new l(5,2,!0),new l(6,3,!1),new l(7,3,!0)],c=[4,5,4,5,6,7,6,7],u=[5,5,5,5,7,7,7,7],d=[2,3,4,5,6,7,6,7],p=[3,3,5,5,7,7,7,7],m=[1,1,3,3,5,5,7,7],g=[0,1,2,3,2,3,2,3];t.a={DISPLAY:s[0],TEXT:s[2],SCRIPT:s[4],SCRIPTSCRIPT:s[6]}},function(e,t,n){t.__esModule=!0;var r,a=n(73),i=(r=a)&&r.__esModule?r:{default:r};t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,i.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){var r=n(52)("wks"),a=n(32),i=n(16).Symbol,o="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=o&&i[e]||(o?i:a)("Symbol."+e))}).store=r},function(e,t,n){var r=n(18),a=n.n(r),i=n(105),o=n.n(i),l=n(7),s=n.n(l),c=n(10),u=n.n(c),d=n(42),p=n(5),m=n(111),g=function(e){for(var t=(e=e.slice()).length-1;t>=0;t--)e[t]||e.splice(t,1);return e.join(" ")},h=function(){function e(t,n,r,a){if(s()(this,e),this.classes=t||[],this.children=n||[],this.height=0,this.depth=0,this.maxFontSize=0,this.style=o()({},a),this.attributes={},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}}return u()(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"tryCombine",value:function(e){return!1}},{key:"toNode",value:function(){var e=document.createElement("span");for(var t in e.className=g(this.classes),this.style)Object.prototype.hasOwnProperty.call(this.style,t)&&(e.style[t]=this.style[t]);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&e.setAttribute(n,this.attributes[n]);for(var r=0;r<this.children.length;r++)e.appendChild(this.children[r].toNode());return e}},{key:"toMarkup",value:function(){var e="<span";this.classes.length&&(e+=' class="',e+=p.a.escape(g(this.classes)),e+='"');var t="";for(var n in this.style)this.style.hasOwnProperty(n)&&(t+=p.a.hyphenate(n)+":"+this.style[n]+";");for(var r in t&&(e+=' style="'+p.a.escape(t)+'"'),this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&(e+=" "+r+'="',e+=p.a.escape(this.attributes[r]),e+='"');e+=">";for(var a=0;a<this.children.length;a++)e+=this.children[a].toMarkup();return e+="</span>"}}]),e}(),f=function(){function e(t,n,r,a){s()(this,e),this.href=t,this.classes=n,this.children=r,this.height=0,this.depth=0,this.maxFontSize=0,this.style={},this.attributes={},a.style.isTight()&&this.classes.push("mtight");var i=a.getColor();i&&(this.style.color=i)}return u()(e,[{key:"setAttribute",value:function(e,t){this.attributes[e]=t}},{key:"tryCombine",value:function(e){return!1}},{key:"toNode",value:function(){var e=document.createElement("a");for(var t in e.setAttribute("href",this.href),this.classes.length&&(e.className=g(this.classes)),this.style)Object.prototype.hasOwnProperty.call(this.style,t)&&(e.style[t]=this.style[t]);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&e.setAttribute(n,this.attributes[n]);for(var r=0;r<this.children.length;r++)e.appendChild(this.children[r].toNode());return e}},{key:"toMarkup",value:function(){var e="<a";e+='href="'+(e+=p.a.escape(this.href))+'"',this.classes.length&&(e+=' class="'+p.a.escape(g(this.classes))+'"');var t="";for(var n in this.style)this.style.hasOwnProperty(n)&&(t+=p.a.hyphenate(n)+":"+this.style[n]+";");for(var r in t&&(e+=' style="'+p.a.escape(t)+'"'),this.attributes)"href"!==r&&Object.prototype.hasOwnProperty.call(this.attributes,r)&&(e+=" "+r+'="'+p.a.escape(this.attributes[r])+'"');e+=">";var i=!0,o=!1,l=void 0;try{for(var s,c=a()(this.children);!(i=(s=c.next()).done);i=!0){e+=s.value.toMarkup()}}catch(e){o=!0,l=e}finally{try{!i&&c.return&&c.return()}finally{if(o)throw l}}return e+="</a>"}}]),e}(),_=function(){function e(t){s()(this,e),this.children=t||[],this.height=0,this.depth=0,this.maxFontSize=0}return u()(e,[{key:"toNode",value:function(){for(var e=document.createDocumentFragment(),t=0;t<this.children.length;t++)e.appendChild(this.children[t].toNode());return e}},{key:"toMarkup",value:function(){for(var e="",t=0;t<this.children.length;t++)e+=this.children[t].toMarkup();return e}}]),e}(),E={"î":"ı̂","ï":"ı̈","í":"ı́","ì":"ı̀"},T=function(){function e(t,n,r,a,i,l,c,u){s()(this,e),this.value=t,this.height=n||0,this.depth=r||0,this.italic=a||0,this.skew=i||0,this.width=l||0,this.classes=c||[],this.style=o()({},u),this.maxFontSize=0;var p=Object(d.a)(this.value.charCodeAt(0));p&&this.classes.push(p+"_fallback"),/[îïíì]/.test(this.value)&&(this.value=E[this.value])}return u()(e,[{key:"tryCombine",value:function(t){if(!t||!(t instanceof e)||this.italic>0||g(this.classes)!==g(t.classes)||this.skew!==t.skew||this.maxFontSize!==t.maxFontSize)return!1;for(var n in this.style)if(this.style.hasOwnProperty(n)&&this.style[n]!==t.style[n])return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&this.style[r]!==t.style[r])return!1;return this.value+=t.value,this.height=Math.max(this.height,t.height),this.depth=Math.max(this.depth,t.depth),this.italic=t.italic,!0}},{key:"toNode",value:function(){var e=document.createTextNode(this.value),t=null;for(var n in this.italic>0&&((t=document.createElement("span")).style.marginRight=this.italic+"em"),this.classes.length>0&&((t=t||document.createElement("span")).className=g(this.classes)),this.style)this.style.hasOwnProperty(n)&&((t=t||document.createElement("span")).style[n]=this.style[n]);return t?(t.appendChild(e),t):e}},{key:"toMarkup",value:function(){var e=!1,t="<span";this.classes.length&&(e=!0,t+=' class="',t+=p.a.escape(g(this.classes)),t+='"');var n="";for(var r in this.italic>0&&(n+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(r)&&(n+=p.a.hyphenate(r)+":"+this.style[r]+";");n&&(e=!0,t+=' style="'+p.a.escape(n)+'"');var a=p.a.escape(this.value);return e?(t+=">",t+=a,t+="</span>"):a}}]),e}(),b=function(){function e(t,n){s()(this,e),this.children=t||[],this.attributes=n||{},this.height=0,this.depth=0,this.maxFontSize=0}return u()(e,[{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var n=0;n<this.children.length;n++)e.appendChild(this.children[n].toNode());return e}},{key:"toMarkup",value:function(){var e="<svg";for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+"='"+this.attributes[t]+"'");e+=">";for(var n=0;n<this.children.length;n++)e+=this.children[n].toMarkup();return e+="</svg>"}}]),e}(),v=function(){function e(t,n){s()(this,e),this.pathName=t,this.alternate=n}return u()(e,[{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?e.setAttribute("d",this.alternate):e.setAttribute("d",m.a.path[this.pathName]),e}},{key:"toMarkup",value:function(){return this.alternate?"<path d='"+this.alternate+"'/>":"<path d='"+m.a.path[this.pathName]+"'/>"}}]),e}(),A=function(){function e(t){s()(this,e),this.attributes=t||{}}return u()(e,[{key:"toNode",value:function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}},{key:"toMarkup",value:function(){var e="<line";for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&(e+=" "+t+"='"+this.attributes[t]+"'");return e+="/>"}}]),e}();t.a={span:h,anchor:f,documentFragment:_,symbolNode:T,svgNode:b,pathNode:v,lineNode:A}},function(e,t,n){var r=n(57),a=n.n(r),i=n(12),o=n(0),l=n(1),s=n(5),c={widehat:"^",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⎵",overbrace:"⏞",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋"},u={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,667],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},d=function(e){return"ordgroup"===e.type?e.value.length:1};t.a={encloseSpan:function(e,t,n,r){var a=void 0,l=e.height+e.depth+2*n;if(/fbox|color/.test(t)){if(a=o.a.makeSpan(["stretchy",t],[],r),"fbox"===t){var s=r.color&&r.getColor();s&&(a.style.borderColor=s)}}else{var c=[];/^[bx]cancel$/.test(t)&&c.push(new i.a.lineNode({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&c.push(new i.a.lineNode({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var u=new i.a.svgNode(c,{width:"100%",height:l+"em"});a=o.a.makeSpan([],[u],r)}return a.height=l,a.style.height=l+"em",a},mathMLnode:function(e){var t=new l.a.MathNode("mo",[new l.a.TextNode(c[e.substr(1)])]);return t.setAttribute("stretchy","true"),t},ruleSpan:function(e,t,n){var r=void 0,a=void 0,l="stretchy";return"vertical-separator"===e?(r=new i.a.pathNode("vertSeparator"),a=new i.a.svgNode([r],{width:"0.25em",height:"400em",viewBox:"0 0 250 400000",preserveAspectRatio:"xMinYMin slice"}),l="vertical-separator"):(r=new i.a.pathNode("stdHorizRule"),a=new i.a.svgNode([r],{width:"400em",height:5*t+"em",viewBox:"0 0 400000 200",preserveAspectRatio:"xMinYMin slice"})),o.a.makeSpan([l],[a],n)},svgSpan:function(e,t){var n=function(){var n=4e5,r=e.value.label.substr(1);if(s.a.contains(["widehat","widetilde","utilde"],r)){var l=d(e.value.base),c=void 0,p=void 0,m=void 0;if(l>5)c="widehat"===r?420:312,n="widehat"===r?2364:2340,m="widehat"===r?.42:.34,p=("widehat"===r?"widehat":"tilde")+"4";else{var g=[1,1,2,2,3,3][l];"widehat"===r?(n=[0,1062,2364,2364,2364][g],c=[0,239,300,360,420][g],m=[0,.24,.3,.3,.36,.42][g],p="widehat"+g):(n=[0,600,1033,2339,2340][g],c=[0,260,286,306,312][g],m=[0,.26,.286,.3,.306,.34][g],p="tilde"+g)}var h=new i.a.pathNode(p),f=new i.a.svgNode([h],{width:"100%",height:m+"em",viewBox:"0 0 "+n+" "+c,preserveAspectRatio:"none"});return{span:o.a.makeSpan([],[f],t),minWidth:0,height:m}}var _=[],E=a()(u[r],4),T=E[0],b=E[1],v=E[2],A=E[3],S=v/1e3,y=T.length,N=void 0,C=void 0;if(1===y)N=["hide-tail"],C=[A];else if(2===y)N=["halfarrow-left","halfarrow-right"],C=["xMinYMin","xMaxYMin"];else{if(3!==y)throw new Error("Correct katexImagesData or update code here to support\n "+y+" children.");N=["brace-left","brace-center","brace-right"],C=["xMinYMin","xMidYMin","xMaxYMin"]}for(var O=0;O<y;O++){var M=new i.a.pathNode(T[O]),x=new i.a.svgNode([M],{width:"400em",height:S+"em",viewBox:"0 0 "+n+" "+v,preserveAspectRatio:C[O]+" slice"}),w=o.a.makeSpan([N[O]],[x],t);if(1===y)return{span:w,minWidth:b,height:S};w.style.height=S+"em",_.push(w)}return{span:o.a.makeSpan(["stretchy"],_,t),minWidth:b,height:S}}(),r=n.span,l=n.minWidth,c=n.height;return r.height=c,r.style.height=c+"em",l>0&&(r.style.minWidth=l+"em"),r}}},function(e,t,n){var r=n(7),a=n.n(r),i=n(31);t.a=function e(t,n,r,o,l){a()(this,e),this.type=t,this.value=n,this.mode=r,this.loc=i.a.range(o,l)}},function(e,t,n){var r=n(22),a=n(70),i=n(71),o=Object.defineProperty;t.f=n(23)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),a)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){e.exports={}},function(e,t,n){e.exports={default:n(103),__esModule:!0}},function(e,t,n){n.d(t,"b",function(){return o}),n.d(t,"a",function(){return l});var r=n(6),a=(n(43),{pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375}),i={ex:!0,em:!0,mu:!0},o=function(e){return"string"!=typeof e&&(e=e.unit),e in a||e in i||"ex"===e},l=function(e,t){var n=void 0;if(e.unit in a)n=a[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)n=t.fontMetrics().cssEmPerMu;else{var i=void 0;if(i=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)n=i.fontMetrics().xHeight;else{if("em"!==e.unit)throw new r.a("Invalid unit: '"+e.unit+"'");n=i.fontMetrics().quad}i!==t&&(n*=i.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*n,t.maxSize)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(20);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(16),a=n(8),i=n(47),o=n(26),l=function(e,t,n){var s,c,u,d=e&l.F,p=e&l.G,m=e&l.S,g=e&l.P,h=e&l.B,f=e&l.W,_=p?a:a[t]||(a[t]={}),E=_.prototype,T=p?r:m?r[t]:(r[t]||{}).prototype;for(s in p&&(n=t),n)(c=!d&&T&&void 0!==T[s])&&s in _||(u=c?T[s]:n[s],_[s]=p&&"function"!=typeof T[s]?n[s]:h&&c?i(u,r):f&&T[s]==u?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(u):g&&"function"==typeof u?i(Function.call,u):u,g&&((_.virtual||(_.virtual={}))[s]=u,e&l.R&&E&&!E[s]&&o(E,s,u)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,n){var r=n(15),a=n(33);e.exports=n(23)?function(e,t,n){return r.f(e,t,a(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){n.d(t,"a",function(){return s});var r=n(7),a=n.n(r),i=n(10),o=n.n(i),l=n(31),s=function(){function e(t,n){a()(this,e),this.text=t,this.loc=n}return o()(e,[{key:"range",value:function(t,n){return new e(n,l.a.range(this,t))}}]),e}()},function(e,t,n){var r={math:{},text:{}};function a(e,t,n,a,i,o){r[e][i]={font:t,group:n,replace:a},o&&a&&(r[e][a]=r[e][i])}t.a=r;var i="math",o="text",l="main",s="ams",c="accent",u="bin",d="close",p="mathord",m="op",g="open",h="rel",f="spacing",_="textord";a(i,l,h,"≡","\\equiv",!0),a(i,l,h,"≺","\\prec",!0),a(i,l,h,"≻","\\succ",!0),a(i,l,h,"∼","\\sim",!0),a(i,l,h,"⊥","\\perp"),a(i,l,h,"⪯","\\preceq",!0),a(i,l,h,"⪰","\\succeq",!0),a(i,l,h,"≃","\\simeq",!0),a(i,l,h,"∣","\\mid",!0),a(i,l,h,"≪","\\ll"),a(i,l,h,"≫","\\gg",!0),a(i,l,h,"≍","\\asymp",!0),a(i,l,h,"∥","\\parallel"),a(i,l,h,"⋈","\\bowtie",!0),a(i,l,h,"⌣","\\smile",!0),a(i,l,h,"⊑","\\sqsubseteq",!0),a(i,l,h,"⊒","\\sqsupseteq",!0),a(i,l,h,"≐","\\doteq",!0),a(i,l,h,"⌢","\\frown",!0),a(i,l,h,"∋","\\ni",!0),a(i,l,h,"∝","\\propto",!0),a(i,l,h,"⊢","\\vdash",!0),a(i,l,h,"⊣","\\dashv",!0),a(i,l,h,"∋","\\owns"),a(i,l,"punct",".","\\ldotp"),a(i,l,"punct","⋅","\\cdotp"),a(i,l,_,"#","\\#"),a(o,l,_,"#","\\#"),a(i,l,_,"&","\\&"),a(o,l,_,"&","\\&"),a(i,l,_,"ℵ","\\aleph",!0),a(i,l,_,"∀","\\forall",!0),a(i,l,_,"ℏ","\\hbar"),a(i,l,_,"∃","\\exists",!0),a(i,l,_,"∇","\\nabla",!0),a(i,l,_,"♭","\\flat",!0),a(i,l,_,"ℓ","\\ell",!0),a(i,l,_,"♮","\\natural",!0),a(i,l,_,"♣","\\clubsuit",!0),a(i,l,_,"℘","\\wp",!0),a(i,l,_,"♯","\\sharp",!0),a(i,l,_,"♢","\\diamondsuit",!0),a(i,l,_,"ℜ","\\Re",!0),a(i,l,_,"♡","\\heartsuit",!0),a(i,l,_,"ℑ","\\Im",!0),a(i,l,_,"♠","\\spadesuit",!0),a(o,l,_,"§","\\S",!0),a(o,l,_,"¶","\\P",!0),a(i,l,_,"†","\\dag"),a(o,l,_,"†","\\dag"),a(o,l,_,"†","\\textdagger"),a(i,l,_,"‡","\\ddag"),a(o,l,_,"‡","\\ddag"),a(o,l,_,"†","\\textdaggerdbl"),a(i,l,d,"⎱","\\rmoustache"),a(i,l,g,"⎰","\\lmoustache"),a(i,l,d,"⟯","\\rgroup"),a(i,l,g,"⟮","\\lgroup"),a(i,l,u,"∓","\\mp",!0),a(i,l,u,"⊖","\\ominus",!0),a(i,l,u,"⊎","\\uplus",!0),a(i,l,u,"⊓","\\sqcap",!0),a(i,l,u,"∗","\\ast"),a(i,l,u,"⊔","\\sqcup",!0),a(i,l,u,"◯","\\bigcirc"),a(i,l,u,"∙","\\bullet"),a(i,l,u,"‡","\\ddagger"),a(i,l,u,"≀","\\wr",!0),a(i,l,u,"⨿","\\amalg"),a(i,l,u,"&","\\And"),a(i,l,h,"⟵","\\longleftarrow",!0),a(i,l,h,"⇐","\\Leftarrow",!0),a(i,l,h,"⟸","\\Longleftarrow",!0),a(i,l,h,"⟶","\\longrightarrow",!0),a(i,l,h,"⇒","\\Rightarrow",!0),a(i,l,h,"⟹","\\Longrightarrow",!0),a(i,l,h,"↔","\\leftrightarrow",!0),a(i,l,h,"⟷","\\longleftrightarrow",!0),a(i,l,h,"⇔","\\Leftrightarrow",!0),a(i,l,h,"⟺","\\Longleftrightarrow",!0),a(i,l,h,"↦","\\mapsto",!0),a(i,l,h,"⟼","\\longmapsto",!0),a(i,l,h,"↗","\\nearrow",!0),a(i,l,h,"↩","\\hookleftarrow",!0),a(i,l,h,"↪","\\hookrightarrow",!0),a(i,l,h,"↘","\\searrow",!0),a(i,l,h,"↼","\\leftharpoonup",!0),a(i,l,h,"⇀","\\rightharpoonup",!0),a(i,l,h,"↙","\\swarrow",!0),a(i,l,h,"↽","\\leftharpoondown",!0),a(i,l,h,"⇁","\\rightharpoondown",!0),a(i,l,h,"↖","\\nwarrow",!0),a(i,l,h,"⇌","\\rightleftharpoons",!0),a(i,s,h,"≮","\\nless",!0),a(i,s,h,"","\\nleqslant"),a(i,s,h,"","\\nleqq"),a(i,s,h,"⪇","\\lneq",!0),a(i,s,h,"≨","\\lneqq",!0),a(i,s,h,"","\\lvertneqq"),a(i,s,h,"⋦","\\lnsim",!0),a(i,s,h,"⪉","\\lnapprox",!0),a(i,s,h,"⊀","\\nprec",!0),a(i,s,h,"⋠","\\npreceq",!0),a(i,s,h,"⋨","\\precnsim",!0),a(i,s,h,"⪹","\\precnapprox",!0),a(i,s,h,"≁","\\nsim",!0),a(i,s,h,"","\\nshortmid"),a(i,s,h,"∤","\\nmid",!0),a(i,s,h,"⊬","\\nvdash",!0),a(i,s,h,"⊭","\\nvDash",!0),a(i,s,h,"⋪","\\ntriangleleft"),a(i,s,h,"⋬","\\ntrianglelefteq",!0),a(i,s,h,"⊊","\\subsetneq",!0),a(i,s,h,"","\\varsubsetneq"),a(i,s,h,"⫋","\\subsetneqq",!0),a(i,s,h,"","\\varsubsetneqq"),a(i,s,h,"≯","\\ngtr",!0),a(i,s,h,"","\\ngeqslant"),a(i,s,h,"","\\ngeqq"),a(i,s,h,"⪈","\\gneq",!0),a(i,s,h,"≩","\\gneqq",!0),a(i,s,h,"","\\gvertneqq"),a(i,s,h,"⋧","\\gnsim",!0),a(i,s,h,"⪊","\\gnapprox",!0),a(i,s,h,"⊁","\\nsucc",!0),a(i,s,h,"⋡","\\nsucceq",!0),a(i,s,h,"⋩","\\succnsim",!0),a(i,s,h,"⪺","\\succnapprox",!0),a(i,s,h,"≆","\\ncong",!0),a(i,s,h,"","\\nshortparallel"),a(i,s,h,"∦","\\nparallel",!0),a(i,s,h,"⊯","\\nVDash",!0),a(i,s,h,"⋫","\\ntriangleright"),a(i,s,h,"⋭","\\ntrianglerighteq",!0),a(i,s,h,"","\\nsupseteqq"),a(i,s,h,"⊋","\\supsetneq",!0),a(i,s,h,"","\\varsupsetneq"),a(i,s,h,"⫌","\\supsetneqq",!0),a(i,s,h,"","\\varsupsetneqq"),a(i,s,h,"⊮","\\nVdash",!0),a(i,s,h,"⪵","\\precneqq",!0),a(i,s,h,"⪶","\\succneqq",!0),a(i,s,h,"","\\nsubseteqq"),a(i,s,u,"⊴","\\unlhd"),a(i,s,u,"⊵","\\unrhd"),a(i,s,h,"↚","\\nleftarrow",!0),a(i,s,h,"↛","\\nrightarrow",!0),a(i,s,h,"⇍","\\nLeftarrow",!0),a(i,s,h,"⇏","\\nRightarrow",!0),a(i,s,h,"↮","\\nleftrightarrow",!0),a(i,s,h,"⇎","\\nLeftrightarrow",!0),a(i,s,h,"△","\\vartriangle"),a(i,s,_,"ℏ","\\hslash"),a(i,s,_,"▽","\\triangledown"),a(i,s,_,"◊","\\lozenge"),a(i,s,_,"Ⓢ","\\circledS"),a(i,s,_,"®","\\circledR"),a(o,s,_,"®","\\circledR"),a(i,s,_,"∡","\\measuredangle",!0),a(i,s,_,"∄","\\nexists"),a(i,s,_,"℧","\\mho"),a(i,s,_,"Ⅎ","\\Finv",!0),a(i,s,_,"⅁","\\Game",!0),a(i,s,_,"k","\\Bbbk"),a(i,s,_,"‵","\\backprime"),a(i,s,_,"▲","\\blacktriangle"),a(i,s,_,"▼","\\blacktriangledown"),a(i,s,_,"■","\\blacksquare"),a(i,s,_,"⧫","\\blacklozenge"),a(i,s,_,"★","\\bigstar"),a(i,s,_,"∢","\\sphericalangle",!0),a(i,s,_,"∁","\\complement",!0),a(i,s,_,"ð","\\eth",!0),a(i,s,_,"╱","\\diagup"),a(i,s,_,"╲","\\diagdown"),a(i,s,_,"□","\\square"),a(i,s,_,"□","\\Box"),a(i,s,_,"◊","\\Diamond"),a(i,s,_,"¥","\\yen",!0),a(i,s,_,"✓","\\checkmark",!0),a(o,s,_,"✓","\\checkmark"),a(i,s,_,"ℶ","\\beth",!0),a(i,s,_,"ℸ","\\daleth",!0),a(i,s,_,"ℷ","\\gimel",!0),a(i,s,_,"ϝ","\\digamma"),a(i,s,_,"ϰ","\\varkappa"),a(i,s,g,"┌","\\ulcorner"),a(i,s,d,"┐","\\urcorner"),a(i,s,g,"└","\\llcorner"),a(i,s,d,"┘","\\lrcorner"),a(i,s,h,"≦","\\leqq",!0),a(i,s,h,"⩽","\\leqslant"),a(i,s,h,"⪕","\\eqslantless",!0),a(i,s,h,"≲","\\lesssim"),a(i,s,h,"⪅","\\lessapprox"),a(i,s,h,"≊","\\approxeq",!0),a(i,s,u,"⋖","\\lessdot"),a(i,s,h,"⋘","\\lll"),a(i,s,h,"≶","\\lessgtr"),a(i,s,h,"⋚","\\lesseqgtr"),a(i,s,h,"⪋","\\lesseqqgtr"),a(i,s,h,"≑","\\doteqdot"),a(i,s,h,"≓","\\risingdotseq",!0),a(i,s,h,"≒","\\fallingdotseq",!0),a(i,s,h,"∽","\\backsim",!0),a(i,s,h,"⋍","\\backsimeq",!0),a(i,s,h,"⫅","\\subseteqq",!0),a(i,s,h,"⋐","\\Subset",!0),a(i,s,h,"⊏","\\sqsubset",!0),a(i,s,h,"≼","\\preccurlyeq",!0),a(i,s,h,"⋞","\\curlyeqprec",!0),a(i,s,h,"≾","\\precsim",!0),a(i,s,h,"⪷","\\precapprox",!0),a(i,s,h,"⊲","\\vartriangleleft"),a(i,s,h,"⊴","\\trianglelefteq"),a(i,s,h,"⊨","\\vDash"),a(i,s,h,"⊪","\\Vvdash",!0),a(i,s,h,"⌣","\\smallsmile"),a(i,s,h,"⌢","\\smallfrown"),a(i,s,h,"≏","\\bumpeq",!0),a(i,s,h,"≎","\\Bumpeq",!0),a(i,s,h,"≧","\\geqq",!0),a(i,s,h,"⩾","\\geqslant",!0),a(i,s,h,"⪖","\\eqslantgtr",!0),a(i,s,h,"≳","\\gtrsim",!0),a(i,s,h,"⪆","\\gtrapprox",!0),a(i,s,u,"⋗","\\gtrdot"),a(i,s,h,"⋙","\\ggg",!0),a(i,s,h,"≷","\\gtrless",!0),a(i,s,h,"⋛","\\gtreqless",!0),a(i,s,h,"⪌","\\gtreqqless",!0),a(i,s,h,"≖","\\eqcirc",!0),a(i,s,h,"≗","\\circeq",!0),a(i,s,h,"≜","\\triangleq",!0),a(i,s,h,"∼","\\thicksim"),a(i,s,h,"≈","\\thickapprox"),a(i,s,h,"⫆","\\supseteqq",!0),a(i,s,h,"⋑","\\Supset",!0),a(i,s,h,"⊐","\\sqsupset",!0),a(i,s,h,"≽","\\succcurlyeq",!0),a(i,s,h,"⋟","\\curlyeqsucc",!0),a(i,s,h,"≿","\\succsim",!0),a(i,s,h,"⪸","\\succapprox",!0),a(i,s,h,"⊳","\\vartriangleright"),a(i,s,h,"⊵","\\trianglerighteq"),a(i,s,h,"⊩","\\Vdash",!0),a(i,s,h,"∣","\\shortmid"),a(i,s,h,"∥","\\shortparallel"),a(i,s,h,"≬","\\between",!0),a(i,s,h,"⋔","\\pitchfork",!0),a(i,s,h,"∝","\\varpropto"),a(i,s,h,"◀","\\blacktriangleleft"),a(i,s,h,"∴","\\therefore",!0),a(i,s,h,"∍","\\backepsilon"),a(i,s,h,"▶","\\blacktriangleright"),a(i,s,h,"∵","\\because",!0),a(i,s,h,"⋘","\\llless"),a(i,s,h,"⋙","\\gggtr"),a(i,s,u,"⊲","\\lhd"),a(i,s,u,"⊳","\\rhd"),a(i,s,h,"≂","\\eqsim",!0),a(i,l,h,"⋈","\\Join"),a(i,s,h,"≑","\\Doteq",!0),a(i,s,u,"∔","\\dotplus",!0),a(i,s,u,"∖","\\smallsetminus"),a(i,s,u,"⋒","\\Cap",!0),a(i,s,u,"⋓","\\Cup",!0),a(i,s,u,"⩞","\\doublebarwedge",!0),a(i,s,u,"⊟","\\boxminus",!0),a(i,s,u,"⊞","\\boxplus",!0),a(i,s,u,"⋇","\\divideontimes",!0),a(i,s,u,"⋉","\\ltimes",!0),a(i,s,u,"⋊","\\rtimes",!0),a(i,s,u,"⋋","\\leftthreetimes",!0),a(i,s,u,"⋌","\\rightthreetimes",!0),a(i,s,u,"⋏","\\curlywedge",!0),a(i,s,u,"⋎","\\curlyvee",!0),a(i,s,u,"⊝","\\circleddash",!0),a(i,s,u,"⊛","\\circledast",!0),a(i,s,u,"⋅","\\centerdot"),a(i,s,u,"⊺","\\intercal",!0),a(i,s,u,"⋒","\\doublecap"),a(i,s,u,"⋓","\\doublecup"),a(i,s,u,"⊠","\\boxtimes",!0),a(i,s,h,"⇢","\\dashrightarrow",!0),a(i,s,h,"⇠","\\dashleftarrow",!0),a(i,s,h,"⇇","\\leftleftarrows",!0),a(i,s,h,"⇆","\\leftrightarrows",!0),a(i,s,h,"⇚","\\Lleftarrow",!0),a(i,s,h,"↞","\\twoheadleftarrow",!0),a(i,s,h,"↢","\\leftarrowtail",!0),a(i,s,h,"↫","\\looparrowleft",!0),a(i,s,h,"⇋","\\leftrightharpoons",!0),a(i,s,h,"↶","\\curvearrowleft",!0),a(i,s,h,"↺","\\circlearrowleft",!0),a(i,s,h,"↰","\\Lsh",!0),a(i,s,h,"⇈","\\upuparrows",!0),a(i,s,h,"↿","\\upharpoonleft",!0),a(i,s,h,"⇃","\\downharpoonleft",!0),a(i,s,h,"⊸","\\multimap",!0),a(i,s,h,"↭","\\leftrightsquigarrow",!0),a(i,s,h,"⇉","\\rightrightarrows",!0),a(i,s,h,"⇄","\\rightleftarrows",!0),a(i,s,h,"↠","\\twoheadrightarrow",!0),a(i,s,h,"↣","\\rightarrowtail",!0),a(i,s,h,"↬","\\looparrowright",!0),a(i,s,h,"↷","\\curvearrowright",!0),a(i,s,h,"↻","\\circlearrowright",!0),a(i,s,h,"↱","\\Rsh",!0),a(i,s,h,"⇊","\\downdownarrows",!0),a(i,s,h,"↾","\\upharpoonright",!0),a(i,s,h,"⇂","\\downharpoonright",!0),a(i,s,h,"⇝","\\rightsquigarrow",!0),a(i,s,h,"⇝","\\leadsto"),a(i,s,h,"⇛","\\Rrightarrow",!0),a(i,s,h,"↾","\\restriction"),a(i,l,_,"‘","`"),a(i,l,_,"$","\\$"),a(o,l,_,"$","\\$"),a(o,l,_,"$","\\textdollar"),a(i,l,_,"%","\\%"),a(o,l,_,"%","\\%"),a(i,l,_,"_","\\_"),a(o,l,_,"_","\\_"),a(o,l,_,"_","\\textunderscore"),a(i,l,_,"∠","\\angle",!0),a(i,l,_,"∞","\\infty",!0),a(i,l,_,"′","\\prime"),a(i,l,_,"△","\\triangle"),a(i,l,_,"Γ","\\Gamma",!0),a(i,l,_,"Δ","\\Delta",!0),a(i,l,_,"Θ","\\Theta",!0),a(i,l,_,"Λ","\\Lambda",!0),a(i,l,_,"Ξ","\\Xi",!0),a(i,l,_,"Π","\\Pi",!0),a(i,l,_,"Σ","\\Sigma",!0),a(i,l,_,"Υ","\\Upsilon",!0),a(i,l,_,"Φ","\\Phi",!0),a(i,l,_,"Ψ","\\Psi",!0),a(i,l,_,"Ω","\\Omega",!0),a(i,l,_,"¬","\\neg"),a(i,l,_,"¬","\\lnot"),a(i,l,_,"⊤","\\top"),a(i,l,_,"⊥","\\bot"),a(i,l,_,"∅","\\emptyset"),a(i,s,_,"∅","\\varnothing"),a(i,l,p,"α","\\alpha",!0),a(i,l,p,"β","\\beta",!0),a(i,l,p,"γ","\\gamma",!0),a(i,l,p,"δ","\\delta",!0),a(i,l,p,"ϵ","\\epsilon",!0),a(i,l,p,"ζ","\\zeta",!0),a(i,l,p,"η","\\eta",!0),a(i,l,p,"θ","\\theta",!0),a(i,l,p,"ι","\\iota",!0),a(i,l,p,"κ","\\kappa",!0),a(i,l,p,"λ","\\lambda",!0),a(i,l,p,"μ","\\mu",!0),a(i,l,p,"ν","\\nu",!0),a(i,l,p,"ξ","\\xi",!0),a(i,l,p,"ο","\\omicron",!0),a(i,l,p,"π","\\pi",!0),a(i,l,p,"ρ","\\rho",!0),a(i,l,p,"σ","\\sigma",!0),a(i,l,p,"τ","\\tau",!0),a(i,l,p,"υ","\\upsilon",!0),a(i,l,p,"ϕ","\\phi",!0),a(i,l,p,"χ","\\chi",!0),a(i,l,p,"ψ","\\psi",!0),a(i,l,p,"ω","\\omega",!0),a(i,l,p,"ε","\\varepsilon",!0),a(i,l,p,"ϑ","\\vartheta",!0),a(i,l,p,"ϖ","\\varpi",!0),a(i,l,p,"ϱ","\\varrho",!0),a(i,l,p,"ς","\\varsigma",!0),a(i,l,p,"φ","\\varphi",!0),a(i,l,u,"∗","*"),a(i,l,u,"+","+"),a(i,l,u,"−","-"),a(i,l,u,"⋅","\\cdot",!0),a(i,l,u,"∘","\\circ"),a(i,l,u,"÷","\\div",!0),a(i,l,u,"±","\\pm",!0),a(i,l,u,"×","\\times",!0),a(i,l,u,"∩","\\cap",!0),a(i,l,u,"∪","\\cup",!0),a(i,l,u,"∖","\\setminus"),a(i,l,u,"∧","\\land"),a(i,l,u,"∨","\\lor"),a(i,l,u,"∧","\\wedge",!0),a(i,l,u,"∨","\\vee",!0),a(i,l,_,"√","\\surd"),a(i,l,g,"(","("),a(i,l,g,"[","["),a(i,l,g,"⟨","\\langle",!0),a(i,l,g,"∣","\\lvert"),a(i,l,g,"∥","\\lVert"),a(i,l,d,")",")"),a(i,l,d,"]","]"),a(i,l,d,"?","?"),a(i,l,d,"!","!"),a(i,l,d,"⟩","\\rangle",!0),a(i,l,d,"∣","\\rvert"),a(i,l,d,"∥","\\rVert"),a(i,l,h,"=","="),a(i,l,h,"<","<"),a(i,l,h,">",">"),a(i,l,h,":",":"),a(i,l,h,"≈","\\approx",!0),a(i,l,h,"≅","\\cong",!0),a(i,l,h,"≥","\\ge"),a(i,l,h,"≥","\\geq",!0),a(i,l,h,"←","\\gets"),a(i,l,h,">","\\gt"),a(i,l,h,"∈","\\in",!0),a(i,l,h,"∉","\\notin",!0),a(i,l,h,"̸","\\not"),a(i,l,h,"⊂","\\subset",!0),a(i,l,h,"⊃","\\supset",!0),a(i,l,h,"⊆","\\subseteq",!0),a(i,l,h,"⊇","\\supseteq",!0),a(i,s,h,"⊈","\\nsubseteq",!0),a(i,s,h,"⊉","\\nsupseteq",!0),a(i,l,h,"⊨","\\models"),a(i,l,h,"←","\\leftarrow",!0),a(i,l,h,"≤","\\le"),a(i,l,h,"≤","\\leq",!0),a(i,l,h,"<","\\lt"),a(i,l,h,"≠","\\ne",!0),a(i,l,h,"≠","\\neq"),a(i,l,h,"→","\\rightarrow",!0),a(i,l,h,"→","\\to"),a(i,s,h,"≱","\\ngeq",!0),a(i,s,h,"≰","\\nleq",!0),a(i,l,f,null,"\\!"),a(i,l,f," ","\\ "),a(i,l,f," ","~"),a(i,l,f,null,"\\,"),a(i,l,f,null,"\\:"),a(i,l,f,null,"\\;"),a(i,l,f,null,"\\enspace"),a(i,l,f,null,"\\qquad"),a(i,l,f,null,"\\quad"),a(i,l,f," ","\\space"),a(i,l,f," ","\\nobreakspace"),a(o,l,f,null,"\\!"),a(o,l,f," ","\\ "),a(o,l,f," ","~"),a(o,l,f,null,"\\,"),a(o,l,f,null,"\\:"),a(o,l,f,null,"\\;"),a(o,l,f,null,"\\enspace"),a(o,l,f,null,"\\qquad"),a(o,l,f,null,"\\quad"),a(o,l,f," ","\\space"),a(o,l,f," ","\\nobreakspace"),a(i,l,"punct",",",","),a(i,l,"punct",";",";"),a(i,l,"punct",":","\\colon"),a(i,s,u,"⊼","\\barwedge",!0),a(i,s,u,"⊻","\\veebar",!0),a(i,l,u,"⊙","\\odot",!0),a(i,l,u,"⊕","\\oplus",!0),a(i,l,u,"⊗","\\otimes",!0),a(i,l,_,"∂","\\partial",!0),a(i,l,u,"⊘","\\oslash",!0),a(i,s,u,"⊚","\\circledcirc",!0),a(i,s,u,"⊡","\\boxdot",!0),a(i,l,u,"△","\\bigtriangleup"),a(i,l,u,"▽","\\bigtriangledown"),a(i,l,u,"†","\\dagger"),a(i,l,u,"⋄","\\diamond"),a(i,l,u,"⋆","\\star"),a(i,l,u,"◃","\\triangleleft"),a(i,l,u,"▹","\\triangleright"),a(i,l,g,"{","\\{"),a(o,l,_,"{","\\{"),a(o,l,_,"{","\\textbraceleft"),a(i,l,d,"}","\\}"),a(o,l,_,"}","\\}"),a(o,l,_,"}","\\textbraceright"),a(i,l,g,"{","\\lbrace"),a(i,l,d,"}","\\rbrace"),a(i,l,g,"[","\\lbrack"),a(i,l,d,"]","\\rbrack"),a(o,l,_,"<","\\textless"),a(o,l,_,">","\\textgreater"),a(i,l,g,"⌊","\\lfloor"),a(i,l,d,"⌋","\\rfloor"),a(i,l,g,"⌈","\\lceil"),a(i,l,d,"⌉","\\rceil"),a(i,l,_,"\\","\\backslash"),a(i,l,_,"∣","|"),a(i,l,_,"∣","\\vert"),a(o,l,_,"|","\\textbar"),a(i,l,_,"∥","\\|"),a(i,l,_,"∥","\\Vert"),a(o,l,_,"∥","\\textbardbl"),a(i,l,h,"↑","\\uparrow",!0),a(i,l,h,"⇑","\\Uparrow",!0),a(i,l,h,"↓","\\downarrow",!0),a(i,l,h,"⇓","\\Downarrow",!0),a(i,l,h,"↕","\\updownarrow",!0),a(i,l,h,"⇕","\\Updownarrow",!0),a(i,l,m,"∐","\\coprod"),a(i,l,m,"⋁","\\bigvee"),a(i,l,m,"⋀","\\bigwedge"),a(i,l,m,"⨄","\\biguplus"),a(i,l,m,"⋂","\\bigcap"),a(i,l,m,"⋃","\\bigcup"),a(i,l,m,"∫","\\int"),a(i,l,m,"∫","\\intop"),a(i,l,m,"∬","\\iint"),a(i,l,m,"∭","\\iiint"),a(i,l,m,"∏","\\prod"),a(i,l,m,"∑","\\sum"),a(i,l,m,"⨂","\\bigotimes"),a(i,l,m,"⨁","\\bigoplus"),a(i,l,m,"⨀","\\bigodot"),a(i,l,m,"∮","\\oint"),a(i,l,m,"⨆","\\bigsqcup"),a(i,l,m,"∫","\\smallint"),a(o,l,"inner","…","\\textellipsis"),a(i,l,"inner","…","\\mathellipsis"),a(o,l,"inner","…","\\ldots",!0),a(i,l,"inner","…","\\ldots",!0),a(i,l,"inner","⋯","\\@cdots",!0),a(i,l,"inner","⋱","\\ddots",!0),a(i,l,_,"⋮","\\vdots",!0),a(i,l,c,"ˊ","\\acute"),a(i,l,c,"ˋ","\\grave"),a(i,l,c,"¨","\\ddot"),a(i,l,c,"~","\\tilde"),a(i,l,c,"ˉ","\\bar"),a(i,l,c,"˘","\\breve"),a(i,l,c,"ˇ","\\check"),a(i,l,c,"^","\\hat"),a(i,l,c,"⃗","\\vec"),a(i,l,c,"˙","\\dot"),a(i,l,c,"˚","\\mathring"),a(i,l,p,"ı","\\imath",!0),a(i,l,p,"ȷ","\\jmath",!0),a(o,l,_,"ı","\\i",!0),a(o,l,_,"ȷ","\\j",!0),a(o,l,_,"ß","\\ss",!0),a(o,l,_,"æ","\\ae",!0),a(o,l,_,"æ","\\ae",!0),a(o,l,_,"œ","\\oe",!0),a(o,l,_,"ø","\\o",!0),a(o,l,_,"Æ","\\AE",!0),a(o,l,_,"Œ","\\OE",!0),a(o,l,_,"Ø","\\O",!0),a(o,l,c,"ˊ","\\'"),a(o,l,c,"ˋ","\\`"),a(o,l,c,"ˆ","\\^"),a(o,l,c,"˜","\\~"),a(o,l,c,"ˉ","\\="),a(o,l,c,"˘","\\u"),a(o,l,c,"˙","\\."),a(o,l,c,"˚","\\r"),a(o,l,c,"ˇ","\\v"),a(o,l,c,"¨",'\\"'),a(o,l,c,"˝","\\H"),a(o,l,_,"–","--"),a(o,l,_,"–","\\textendash"),a(o,l,_,"—","---"),a(o,l,_,"—","\\textemdash"),a(o,l,_,"‘","`"),a(o,l,_,"‘","\\textquoteleft"),a(o,l,_,"’","'"),a(o,l,_,"’","\\textquoteright"),a(o,l,_,"“","``"),a(o,l,_,"“","\\textquotedblleft"),a(o,l,_,"”","''"),a(o,l,_,"”","\\textquotedblright"),a(i,l,_,"°","\\degree"),a(o,l,_,"°","\\degree"),a(i,l,p,"£","\\pounds"),a(i,l,p,"£","\\mathsterling",!0),a(o,l,p,"£","\\pounds"),a(o,l,p,"£","\\textsterling",!0),a(i,s,_,"✠","\\maltese"),a(o,s,_,"✠","\\maltese"),a(o,l,f," ","\\ "),a(o,l,f," "," "),a(o,l,f," ","~");for(var E=0;E<'0123456789/@."'.length;E++){var T='0123456789/@."'.charAt(E);a(i,l,_,T,T)}for(var b=0;b<'0123456789!@*()-=+[]<>|";:?/.,'.length;b++){var v='0123456789!@*()-=+[]<>|";:?/.,'.charAt(b);a(o,l,_,v,v)}for(var A="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",S=0;S<A.length;S++){var y=A.charAt(S);a(i,l,p,y,y),a(o,l,_,y,y)}for(var N=0;N<"ÇÐÞçþ".length;N++){var C="ÇÐÞçþ".charAt(N);a(i,l,p,C,C),a(o,l,_,C,C)}a(o,l,_,"ð","ð"),a(o,l,_,"–","–"),a(o,l,_,"—","—"),a(o,l,_,"‘","‘"),a(o,l,_,"’","’"),a(o,l,_,"“","“"),a(o,l,_,"”","”")},function(e,t,n){var r=n(38);e.exports=function(e){return Object(r(e))}},function(e,t,n){var r=n(42),a=n(59),i={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2]},o={"Å":"A","Ç":"C","Ð":"D","Þ":"o","å":"a","ç":"c","ð":"d","þ":"o","А":"A","Б":"B","В":"B","Г":"F","Д":"A","Е":"E","Ж":"K","З":"3","И":"N","Й":"N","К":"K","Л":"N","М":"M","Н":"H","О":"O","П":"N","Р":"P","С":"C","Т":"T","У":"y","Ф":"O","Х":"X","Ц":"U","Ч":"h","Ш":"W","Щ":"W","Ъ":"B","Ы":"X","Ь":"B","Э":"3","Ю":"X","Я":"R","а":"a","б":"b","в":"a","г":"r","д":"y","е":"e","ж":"m","з":"e","и":"n","й":"n","к":"n","л":"n","м":"m","н":"n","о":"o","п":"n","р":"p","с":"c","т":"o","у":"y","ф":"b","х":"x","ц":"n","ч":"n","ш":"w","щ":"w","ъ":"a","ы":"m","ь":"a","э":"e","ю":"m","я":"r"},l={};t.a={getFontMetrics:function(e){var t=void 0;if(!l[t=e>=5?0:e>=3?1:2]){var n=l[t]={cssEmPerMu:i.quad[t]/18};for(var r in i)i.hasOwnProperty(r)&&(n[r]=i[r][t])}return l[t]},getCharacterMetrics:function(e,t,n){if(!a.a[t])throw new Error("Font metrics not found for font: "+t+".");var i=e.charCodeAt(0);e[0]in o&&(i=o[e[0]].charCodeAt(0));var l=a.a[t][i];if(l||"text"!==n||Object(r.b)(i)&&(l=a.a[t][77]),l)return{depth:l[0],height:l[1],italic:l[2],skew:l[3],width:l[4]}}}},function(e,t,n){var r=n(66),a=n.n(r),i=n(7),o=n.n(i),l=n(10),s=n.n(l),c=function(){function e(t,n,r){o()(this,e),this.lexer=t,this.start=n,this.end=r,a()(this)}return s()(e,null,[{key:"range",value:function(t,n){return n?t&&t.loc&&n.loc&&t.loc.lexer===n.loc.lexer?new e(t.loc.lexer,t.loc.start,n.loc.end):null:t&&t.loc}}]),e}();t.a=c},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(7),a=n.n(r),i=n(5);t.a=function e(t){a()(this,e),t=t||{},this.displayMode=i.a.deflt(t.displayMode,!1),this.throwOnError=i.a.deflt(t.throwOnError,!0),this.errorColor=i.a.deflt(t.errorColor,"#cc0000"),this.macros=t.macros||{},this.colorIsTextColor=i.a.deflt(t.colorIsTextColor,!1),this.maxSize=Math.max(0,i.a.deflt(t.maxSize,1/0))}},function(e,t,n){t.__esModule=!0;var r,a=n(79),i=(r=a)&&r.__esModule?r:{default:r};t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,i.default)(e)}},function(e,t,n){var r=n(81)(!0);n(48)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(87),a=n(53);e.exports=Object.keys||function(e){return r(e,a)}},function(e,t,n){var r=n(49),a=n(38);e.exports=function(e){return r(a(e))}},function(e,t,n){var r=n(52)("keys"),a=n(32);e.exports=function(e){return r[e]||(r[e]=a(e))}},function(e,t,n){t.a=function(e){var t=!0,n=!1,r=void 0;try{for(var a,i=o()(l);!(t=(a=i.next()).done);t=!0){var s=a.value,c=!0,u=!1,d=void 0;try{for(var p,m=o()(s.blocks);!(c=(p=m.next()).done);c=!0){var g=p.value;if(e>=g[0]&&e<=g[1])return s.name}}catch(e){u=!0,d=e}finally{try{!c&&m.return&&m.return()}finally{if(u)throw d}}}}catch(e){n=!0,r=e}finally{try{!t&&i.return&&i.return()}finally{if(n)throw r}}return null},t.b=function(e){for(var t=0;t<s.length;t+=2)if(e>=s[t]&&e<=s[t+1])return!0;return!1};var r=n(35),a=n.n(r),i=n(18),o=n.n(i),l=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var s=[];l.forEach(function(e){return e.blocks.forEach(function(e){return s.push.apply(s,a()(e))})})},function(e,t,n){var r=n(7),a=n.n(r),i=n(10),o=n.n(i),l=n(30),s=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],c=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],u=function(e,t){return t.size<2?e:s[e-1][t.size-1]},d=function(){function e(t){a()(this,e),this.style=t.style,this.color=t.color,this.size=t.size||e.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.fontFamily=t.fontFamily,this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=c[this.size-1],this.maxSize=t.maxSize,this._fontMetrics=void 0}return o()(e,[{key:"extend",value:function(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return new e(n)}},{key:"havingStyle",value:function(e){return this.style===e?this:this.extend({style:e,size:u(this.textSize,e)})}},{key:"havingCrampedStyle",value:function(){return this.havingStyle(this.style.cramp())}},{key:"havingSize",value:function(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:c[e-1]})}},{key:"havingBaseStyle",value:function(t){t=t||this.style.text();var n=u(e.BASESIZE,t);return this.size===n&&this.textSize===e.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}},{key:"withColor",value:function(e){return this.extend({color:e})}},{key:"withPhantom",value:function(){return this.extend({phantom:!0})}},{key:"withFontFamily",value:function(e){return this.extend({fontFamily:e||this.fontFamily})}},{key:"withFontWeight",value:function(e){return this.extend({fontWeight:e})}},{key:"withFontShape",value:function(e){return this.extend({fontShape:e})}},{key:"sizingClasses",value:function(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}},{key:"baseSizingClasses",value:function(){return this.size!==e.BASESIZE?["sizing","reset-size"+this.size,"size"+e.BASESIZE]:[]}},{key:"fontMetrics",value:function(){return this._fontMetrics||(this._fontMetrics=l.a.getFontMetrics(this.size)),this._fontMetrics}},{key:"getColor",value:function(){return this.phantom?"transparent":null!=this.color&&e.colorMap.hasOwnProperty(this.color)?e.colorMap[this.color]:this.color}}]),e}();d.BASESIZE=6,d.colorMap={"katex-blue":"#6495ed","katex-orange":"#ffa500","katex-pink":"#ff00af","katex-red":"#df0030","katex-green":"#28ae7b","katex-gray":"gray","katex-purple":"#9d38bd","katex-blueA":"#ccfaff","katex-blueB":"#80f6ff","katex-blueC":"#63d9ea","katex-blueD":"#11accd","katex-blueE":"#0c7f99","katex-tealA":"#94fff5","katex-tealB":"#26edd5","katex-tealC":"#01d1c1","katex-tealD":"#01a995","katex-tealE":"#208170","katex-greenA":"#b6ffb0","katex-greenB":"#8af281","katex-greenC":"#74cf70","katex-greenD":"#1fab54","katex-greenE":"#0d923f","katex-goldA":"#ffd0a9","katex-goldB":"#ffbb71","katex-goldC":"#ff9c39","katex-goldD":"#e07d10","katex-goldE":"#a75a05","katex-redA":"#fca9a9","katex-redB":"#ff8482","katex-redC":"#f9685d","katex-redD":"#e84d39","katex-redE":"#bc2612","katex-maroonA":"#ffbde0","katex-maroonB":"#ff92c6","katex-maroonC":"#ed5fa6","katex-maroonD":"#ca337c","katex-maroonE":"#9e034e","katex-purpleA":"#ddd7ff","katex-purpleB":"#c6b9fc","katex-purpleC":"#aa87ff","katex-purpleD":"#7854ab","katex-purpleE":"#543b78","katex-mintA":"#f5f9e8","katex-mintB":"#edf2df","katex-mintC":"#e0e5cc","katex-grayA":"#f6f7f7","katex-grayB":"#f0f1f2","katex-grayC":"#e3e5e6","katex-grayD":"#d6d8da","katex-grayE":"#babec2","katex-grayF":"#888d93","katex-grayG":"#626569","katex-grayH":"#3b3e40","katex-grayI":"#21242c","katex-kaBlue":"#314453","katex-kaGreen":"#71B307"},t.a=d},function(e,t,n){var r=n(6),a=n(9),i=n(12),o=n(0),l=n(30),s=n(28),c=n(5),u=function(e,t,n){return s.a.math[e]&&s.a.math[e].replace?l.a.getCharacterMetrics(s.a.math[e].replace,t,n):l.a.getCharacterMetrics(e,t,n)},d=function(e,t,n,r){var a=n.havingBaseStyle(t),i=o.a.makeSpan((r||[]).concat(a.sizingClasses(n)),[e],n);return i.delimSizeMultiplier=a.sizeMultiplier/n.sizeMultiplier,i.height*=i.delimSizeMultiplier,i.depth*=i.delimSizeMultiplier,i.maxFontSize=a.sizeMultiplier,i},p=function(e,t,n){var r=t.havingBaseStyle(n),a=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=a+"em",e.height-=a,e.depth+=a},m=function(e,t,n,r,i,l){var s=function(e,t,n,r){return o.a.makeSymbol(e,"Size"+t+"-Regular",n,r)}(e,t,i,r),c=d(o.a.makeSpan(["delimsizing","size"+t],[s],r),a.a.TEXT,r,l);return n&&p(c,r,a.a.TEXT),c},g=function(e,t,n){var r=void 0;return"Size1-Regular"===t?r="delim-size1":"Size4-Regular"===t&&(r="delim-size4"),{type:"elem",elem:o.a.makeSpan(["delimsizinginner",r],[o.a.makeSpan([],[o.a.makeSymbol(e,t,n)])])}},h=function(e,t,n,r,i,l){var s=void 0,c=void 0,p=void 0,m=void 0;s=p=m=e,c=null;var h="Size1-Regular";"\\uparrow"===e?p=m="⏐":"\\Uparrow"===e?p=m="‖":"\\downarrow"===e?s=p="⏐":"\\Downarrow"===e?s=p="‖":"\\updownarrow"===e?(s="\\uparrow",p="⏐",m="\\downarrow"):"\\Updownarrow"===e?(s="\\Uparrow",p="‖",m="\\Downarrow"):"["===e||"\\lbrack"===e?(s="⎡",p="⎢",m="⎣",h="Size4-Regular"):"]"===e||"\\rbrack"===e?(s="⎤",p="⎥",m="⎦",h="Size4-Regular"):"\\lfloor"===e?(p=s="⎢",m="⎣",h="Size4-Regular"):"\\lceil"===e?(s="⎡",p=m="⎢",h="Size4-Regular"):"\\rfloor"===e?(p=s="⎥",m="⎦",h="Size4-Regular"):"\\rceil"===e?(s="⎤",p=m="⎥",h="Size4-Regular"):"("===e?(s="⎛",p="⎜",m="⎝",h="Size4-Regular"):")"===e?(s="⎞",p="⎟",m="⎠",h="Size4-Regular"):"\\{"===e||"\\lbrace"===e?(s="⎧",c="⎨",m="⎩",p="⎪",h="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(s="⎫",c="⎬",m="⎭",p="⎪",h="Size4-Regular"):"\\lgroup"===e?(s="⎧",m="⎩",p="⎪",h="Size4-Regular"):"\\rgroup"===e?(s="⎫",m="⎭",p="⎪",h="Size4-Regular"):"\\lmoustache"===e?(s="⎧",m="⎭",p="⎪",h="Size4-Regular"):"\\rmoustache"===e&&(s="⎫",m="⎩",p="⎪",h="Size4-Regular");var f=u(s,h,i),_=f.height+f.depth,E=u(p,h,i),T=E.height+E.depth,b=u(m,h,i),v=b.height+b.depth,A=0,S=1;if(null!==c){var y=u(c,h,i);A=y.height+y.depth,S=2}var N=_+v+A,C=Math.ceil((t-N)/(S*T)),O=N+C*S*T,M=r.fontMetrics().axisHeight;n&&(M*=r.sizeMultiplier);var x=O/2-M,w=[];if(w.push(g(m,h,i)),null===c)for(var R=0;R<C;R++)w.push(g(p,h,i));else{for(var D=0;D<C;D++)w.push(g(p,h,i));w.push(g(c,h,i));for(var I=0;I<C;I++)w.push(g(p,h,i))}w.push(g(s,h,i));var k=r.havingBaseStyle(a.a.TEXT),L=o.a.makeVList({positionType:"bottom",positionData:x,children:w},k);return d(o.a.makeSpan(["delimsizing","mult"],[L],k),a.a.TEXT,r,l)},f=function(e,t,n,r){var a=void 0;"sqrtTall"===e&&(a="M702 80H400000v40H742v"+(n-54-80)+"l-4 4-4 4c-.667.7\n-2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1h-12l-28-84c-16.667-52-96.667\n-294.333-240-727l-212 -643 -85 170c-4-3.333-8.333-7.667-13 -13l-13-13l77-155\n 77-156c66 199.333 139 419.667 219 661 l218 661zM702 80H400000v40H742z");var l=new i.a.pathNode(e,a),s=new i.a.svgNode([l],{width:"400em",height:t+"em",viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return o.a.makeSpan(["hide-tail"],[s],r)},_=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","\\surd"],E=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache"],T=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],b=[0,1.2,1.8,2.4,3],v=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],A=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"stack"}],S=[{type:"small",style:a.a.SCRIPTSCRIPT},{type:"small",style:a.a.SCRIPT},{type:"small",style:a.a.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],y=function(e,t,n,r){for(var a,i=Math.min(2,3-r.style.size);i<n.length&&"stack"!==n[i].type;i++){var o=u(e,"small"===(a=n[i]).type?"Main-Regular":"large"===a.type?"Size"+a.size+"-Regular":"stack"===a.type?"Size4-Regular":void 0,"math"),l=o.height+o.depth;if("small"===n[i].type&&(l*=r.havingBaseStyle(n[i].style).sizeMultiplier),l>t)return n[i]}return n[n.length-1]},N=function(e,t,n,r,a,i){"<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle");var l=void 0;l=c.a.contains(T,e)?v:c.a.contains(_,e)?S:A;var s=y(e,t,l,r);return"small"===s.type?function(e,t,n,r,a,i){var l=o.a.makeSymbol(e,"Main-Regular",a,r),s=d(l,t,r,i);return n&&p(s,r,t),s}(e,s.style,n,r,a,i):"large"===s.type?m(e,s.size,n,r,a,i):h(e,t,n,r,a,i)};t.a={sqrtImage:function(e,t){var n=y("\\surd",e,S,t),r=void 0,a=t.sizeMultiplier,i=0,o=0,l=0;"small"===n.type?(l=1080,o=1*(a=t.havingBaseStyle(n.style).sizeMultiplier/t.sizeMultiplier),(r=f("sqrtMain",i=1.08*a,l,t)).style.minWidth="0.853em",r.advanceWidth=.833*a):"large"===n.type?(l=1080*b[n.size],o=b[n.size]/a,i=(b[n.size]+.08)/a,(r=f("sqrtSize"+n.size,i,l,t)).style.minWidth="1.02em",r.advanceWidth=1/a):(i=e/a+.08,o=e/a,l=Math.floor(1e3*e)+80,(r=f("sqrtTall",i,l,t)).style.minWidth="0.742em",r.advanceWidth=1.056/a);return r.height=o,r.style.height=i+"em",{span:r,ruleWidth:t.fontMetrics().sqrtRuleThickness*a}},sizedDelim:function(e,t,n,a,i){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),c.a.contains(_,e)||c.a.contains(T,e))return m(e,t,!1,n,a,i);if(c.a.contains(E,e))return h(e,b[t],!1,n,a,i);throw new r.a("Illegal delimiter: '"+e+"'")},customSizedDelim:N,leftRightDelim:function(e,t,n,r,a,i){var o=r.fontMetrics().axisHeight*r.sizeMultiplier,l=5/r.fontMetrics().ptPerEm,s=Math.max(t-o,n+o),c=Math.max(s/500*901,2*s-l);return N(e,c,!0,r,a,i)}}},function(e,t,n){var r=n(20),a=n(16).document,i=r(a)&&r(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,n){var r=n(25),a=n(8),i=n(24);e.exports=function(e,t){var n=(a.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",o)}},function(e,t,n){var r=n(72);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(82),a=n(25),i=n(83),o=n(26),l=n(21),s=n(17),c=n(84),u=n(54),d=n(91),p=n(11)("iterator"),m=!([].keys&&"next"in[].keys()),g=function(){return this};e.exports=function(e,t,n,h,f,_,E){c(n,t,h);var T,b,v,A=function(e){if(!m&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},S=t+" Iterator",y="values"==f,N=!1,C=e.prototype,O=C[p]||C["@@iterator"]||f&&C[f],M=O||A(f),x=f?y?A("entries"):M:void 0,w="Array"==t&&C.entries||O;if(w&&(v=d(w.call(new e)))!==Object.prototype&&(u(v,S,!0),r||l(v,p)||o(v,p,g)),y&&O&&"values"!==O.name&&(N=!0,M=function(){return O.call(this)}),r&&!E||!m&&!N&&C[p]||o(C,p,M),s[t]=M,s[S]=g,f)if(T={values:y?M:A("values"),keys:_?M:A("keys"),entries:x},E)for(b in T)b in C||i(C,b,T[b]);else a(a.P+a.F*(m||N),t,T);return T}},function(e,t,n){var r=n(50);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(37),a=Math.min;e.exports=function(e){return e>0?a(r(e),9007199254740991):0}},function(e,t,n){var r=n(16),a=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return a[e]||(a[e]={})}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(15).f,a=n(21),i=n(11)("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){var r=n(56),a=n(11)("iterator"),i=n(17);e.exports=n(8).getIteratorMethod=function(e){if(void 0!=e)return e[a]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(50),a=n(11)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),a))?n:i?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){t.__esModule=!0;var r=i(n(97)),a=i(n(18));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(){return function(e,t){if(Array.isArray(e))return e;if((0,r.default)(Object(e)))return function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var l,s=(0,a.default)(e);!(r=(l=s.next()).done)&&(n.push(l.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw o}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){n(99);for(var r=n(16),a=n(26),i=n(17),o=n(11)("toStringTag"),l=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],s=0;s<5;s++){var c=l[s],u=r[c],d=u&&u.prototype;d&&!d[o]&&a(d,o,c),i[c]=i.Array}},function(e,t,n){t.a={"AMS-Regular":{65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1187],8674:[-.064,.437,0,0,1167],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473]},"Fraktur-Regular":{33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],824:[.19444,.69444,0,0,0],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444]},"Main-BoldItalic":{33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],163:[0,.69444,0,0,.86853],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],163:[0,.69444,0,0,.76909],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],305:[0,.43056,0,.02778,.32246],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],567:[.19444,.43056,0,.08334,.38403],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,0],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,0],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],824:[.19444,.69444,0,0,0],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.12,0,0,1015],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,889],8617:[.011,.511,0,0,1015],8618:[.011,.511,0,0,1015],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,889],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,667],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.67,0,0,666],8800:[.215,.716,0,0,666],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,692],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,847],8942:[.03,.9,0,0,121],8943:[-.19,.31,0,0,1015],8945:[-.1,.82,0,0,1015],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,301],9137:[.244,.744,0,0,301],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,184],10223:[.244,.744,0,0,184],10229:[.011,.511,0,0,1470],10230:[.011,.511,0,0,1469],10231:[.011,.511,0,0,1748],10232:[.024,.525,0,0,1497],10233:[.024,.525,0,0,1526],10234:[.024,.525,0,0,1746],10236:[.011,.511,0,0,1498],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778]},"Math-BoldItalic":{47:[.19444,.69444,0,0,0],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333]},"Math-Italic":{47:[.19444,.69444,0,0,0],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},"Math-Regular":{65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},"SansSerif-Bold":{33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],176:[0,.69444,0,0,.66667],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],733:[0,.69444,0,0,.5],771:[0,.67659,0,0,.5],776:[0,.67937,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212]},"Size1-Regular":{40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],176:[0,.61111,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}}},function(e,t,n){t.a=c;var r=n(0),a=n(3),i=n(1),o=n(5),l=n(4),s=n(2);function c(e,t,n){for(var a=l.a(e,t,!1),i=t.sizeMultiplier/n.sizeMultiplier,s=0;s<a.length;s++){var c=o.a.indexOf(a[s].classes,"sizing");c<0?Array.prototype.push.apply(a[s].classes,t.sizingClasses(n)):a[s].classes[c+1]==="reset-size"+t.size&&(a[s].classes[c+1]="reset-size"+n.size),a[s].height*=i,a[s].depth*=i}return r.a.makeFragment(a)}var u=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];Object(a.b)({type:"sizing",names:u,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var n=e.breakOnTokenText,r=e.funcName,a=e.parser;a.consumeSpaces();var i=a.parseExpression(!1,n);return{type:"sizing",size:o.a.indexOf(u,r)+1,value:i}},htmlBuilder:function(e,t){var n=t.havingSize(e.value.size);return c(e.value.value,n,t)},mathmlBuilder:function(e,t){var n=t.havingSize(e.value.size),r=s.a(e.value.value,n),a=new i.a.MathNode("mstyle",r);return a.setAttribute("mathsize",n.sizeMultiplier+"em"),a}})},function(e,t,n){n.d(t,"a",function(){return i}),t.b=function(e){for(var t=e.type,n=e.names,o=e.props,l=e.handler,s=e.htmlBuilder,c=e.mathmlBuilder,u={numArgs:o.numArgs||0,greediness:1,allowedInText:!1,numOptionalArgs:0,handler:l},d=0;d<n.length;++d)i[n[d]]=u;s&&(r.d[t]=s);c&&(a.d[t]=c)};var r=n(4),a=n(2),i=(n(43),n(14),{})},function(e,t,n){n.d(t,"a",function(){return p}),n.d(t,"b",function(){return g});var r=n(7),a=n.n(r),i=n(10),o=n.n(i),l=n(145),s=n.n(l),c=n(6),u=n(31),d=n(27),p=new RegExp("[̀-ͯ]+$"),m=new RegExp("([ \r\n\t]+)|(%[^\n]*[\n]|[!-\\[\\]-‧‪-퟿豈-￿][̀-ͯ]*|[\ud800-\udbff][\udc00-\udfff][̀-ͯ]*|\\\\verb\\*([^]).*?\\3|\\\\verb([^*a-zA-Z]).*?\\4|\\\\[a-zA-Z@]+|\\\\[^\ud800-\udfff])"),g=new RegExp("^\\\\[a-zA-Z@]+"),h=new RegExp("^%[^\n]*[\n]"),f=function(){function e(t){a()(this,e),this.input=t,this.pos=0}return o()(e,[{key:"lex",value:function(){var e=this.input,t=this.pos;if(t===e.length)return new d.a("EOF",new u.a(this,t,t));var n=s()(m,e,t);if(null===n)throw new c.a("Unexpected character: '"+e[t]+"'",new d.a(e[t],new u.a(this,t,t+1)));var r=n[2]||" ",a=this.pos;this.pos+=n[0].length;var i=this.pos;return h.test(r)?this.lex():new d.a(r,new u.a(this,a,i))}}]),e}();t.c=f},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var r=n(64),a=(n.n(r),n(65));t.default=a.a},function(e,t){},function(e,t,n){var r=n(6),a=n(34),i=n(76),o=n(113),l=n(5),s=function(e,t,n){l.a.clearNode(t);var r=c(e,n).toNode();t.appendChild(r)};"undefined"!=typeof document&&"CSS1Compat"!==document.compatMode&&("undefined"!=typeof console&&console.warn("Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype."),s=function(){throw new r.a("KaTeX doesn't work in quirks mode.")});var c=function(e,t){var n=new a.a(t),r=Object(o.a)(e,n);return Object(i.b)(r,e,n)};t.a={render:s,renderToString:function(e,t){return c(e,t).toMarkup()},ParseError:r.a,__parse:function(e,t){var n=new a.a(t);return Object(o.a)(e,n)},__renderToDomTree:c,__renderToHTMLTree:function(e,t){var n=new a.a(t),r=Object(o.a)(e,n);return Object(i.a)(r,e,n)}}},function(e,t,n){e.exports={default:n(67),__esModule:!0}},function(e,t,n){n(68),e.exports=n(8).Object.freeze},function(e,t,n){var r=n(20),a=n(69).onFreeze;n(46)("freeze",function(e){return function(t){return e&&r(t)?e(a(t)):t}})},function(e,t,n){var r=n(32)("meta"),a=n(20),i=n(21),o=n(15).f,l=0,s=Object.isExtensible||function(){return!0},c=!n(24)(function(){return s(Object.preventExtensions({}))}),u=function(e){o(e,r,{value:{i:"O"+ ++l,w:{}}})},d=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return c&&d.NEED&&s(e)&&!i(e,r)&&u(e),e}}},function(e,t,n){e.exports=!n(23)&&!n(24)(function(){return 7!=Object.defineProperty(n(45)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(20);e.exports=function(e,t){if(!r(e))return e;var n,a;if(t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;if("function"==typeof(n=e.valueOf)&&!r(a=n.call(e)))return a;if(!t&&"function"==typeof(n=e.toString)&&!r(a=n.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){e.exports={default:n(74),__esModule:!0}},function(e,t,n){n(75);var r=n(8).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(25);r(r.S+r.F*!n(23),"Object",{defineProperty:n(15).f})},function(e,t,n){n.d(t,"b",function(){return c}),n.d(t,"a",function(){return u});var r=n(4),a=n(2),i=n(0),o=n(43),l=(n(34),n(9)),s=function(e){return new o.a({style:e.displayMode?l.a.DISPLAY:l.a.TEXT,maxSize:e.maxSize})},c=function(e,t,n){var o=s(n),l=Object(a.c)(e,t,o),c=Object(r.c)(e,o),u=i.a.makeSpan(["katex"],[l,c]);return n.displayMode?i.a.makeSpan(["katex-display"],[u]):u},u=function(e,t,n){var a=s(n),o=Object(r.c)(e,a),l=i.a.makeSpan(["katex"],[o]);return n.displayMode?i.a.makeSpan(["katex-display"],[l]):l}},function(e,t,n){e.exports={default:n(78),__esModule:!0}},function(e,t,n){var r=n(8),a=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return a.stringify.apply(a,arguments)}},function(e,t,n){e.exports={default:n(80),__esModule:!0}},function(e,t,n){n(36),n(92),e.exports=n(8).Array.from},function(e,t,n){var r=n(37),a=n(38);e.exports=function(e){return function(t,n){var i,o,l=String(a(t)),s=r(n),c=l.length;return s<0||s>=c?e?"":void 0:(i=l.charCodeAt(s))<55296||i>56319||s+1===c||(o=l.charCodeAt(s+1))<56320||o>57343?e?l.charAt(s):i:e?l.slice(s,s+2):o-56320+(i-55296<<10)+65536}}},function(e,t){e.exports=!0},function(e,t,n){e.exports=n(26)},function(e,t,n){var r=n(85),a=n(33),i=n(54),o={};n(26)(o,n(11)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(o,{next:a(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(22),a=n(86),i=n(53),o=n(41)("IE_PROTO"),l=function(){},s=function(){var e,t=n(45)("iframe"),r=i.length;for(t.style.display="none",n(90).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),s=e.F;r--;)delete s.prototype[i[r]];return s()};e.exports=Object.create||function(e,t){var n;return null!==e?(l.prototype=r(e),n=new l,l.prototype=null,n[o]=e):n=s(),void 0===t?n:a(n,t)}},function(e,t,n){var r=n(15),a=n(22),i=n(39);e.exports=n(23)?Object.defineProperties:function(e,t){a(e);for(var n,o=i(t),l=o.length,s=0;l>s;)r.f(e,n=o[s++],t[n]);return e}},function(e,t,n){var r=n(21),a=n(40),i=n(88)(!1),o=n(41)("IE_PROTO");e.exports=function(e,t){var n,l=a(e),s=0,c=[];for(n in l)n!=o&&r(l,n)&&c.push(n);for(;t.length>s;)r(l,n=t[s++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){var r=n(40),a=n(51),i=n(89);e.exports=function(e){return function(t,n,o){var l,s=r(t),c=a(s.length),u=i(o,c);if(e&&n!=n){for(;c>u;)if((l=s[u++])!=l)return!0}else for(;c>u;u++)if((e||u in s)&&s[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(37),a=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?a(e+t,0):i(e,t)}},function(e,t,n){e.exports=n(16).document&&document.documentElement},function(e,t,n){var r=n(21),a=n(29),i=n(41)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=a(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){var r=n(47),a=n(25),i=n(29),o=n(93),l=n(94),s=n(51),c=n(95),u=n(55);a(a.S+a.F*!n(96)(function(e){}),"Array",{from:function(e){var t,n,a,d,p=i(e),m="function"==typeof this?this:Array,g=arguments.length,h=g>1?arguments[1]:void 0,f=void 0!==h,_=0,E=u(p);if(f&&(h=r(h,g>2?arguments[2]:void 0,2)),void 0==E||m==Array&&l(E))for(n=new m(t=s(p.length));t>_;_++)c(n,_,f?h(p[_],_):p[_]);else for(d=E.call(p),n=new m;!(a=d.next()).done;_++)c(n,_,f?o(d,h,[a.value,_],!0):a.value);return n.length=_,n}})},function(e,t,n){var r=n(22);e.exports=function(e,t,n,a){try{return a?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(17),a=n(11)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[a]===e)}},function(e,t,n){var r=n(15),a=n(33);e.exports=function(e,t,n){t in e?r.f(e,t,a(0,n)):e[t]=n}},function(e,t,n){var r=n(11)("iterator"),a=!1;try{[7][r]().return=function(){a=!0}}catch(e){}e.exports=function(e,t){if(!t&&!a)return!1;var n=!1;try{var i=[7],o=i[r]();o.next=function(){return{done:n=!0}},i[r]=function(){return o},e(i)}catch(e){}return n}},function(e,t,n){e.exports={default:n(98),__esModule:!0}},function(e,t,n){n(58),n(36),e.exports=n(102)},function(e,t,n){var r=n(100),a=n(101),i=n(17),o=n(40);e.exports=n(48)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,a(1)):a(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(56),a=n(11)("iterator"),i=n(17);e.exports=n(8).isIterable=function(e){var t=Object(e);return void 0!==t[a]||"@@iterator"in t||i.hasOwnProperty(r(t))}},function(e,t,n){n(58),n(36),e.exports=n(104)},function(e,t,n){var r=n(22),a=n(55);e.exports=n(8).getIterator=function(e){var t=a(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){e.exports={default:n(106),__esModule:!0}},function(e,t,n){n(107),e.exports=n(8).Object.assign},function(e,t,n){var r=n(25);r(r.S+r.F,"Object",{assign:n(108)})},function(e,t,n){var r=n(39),a=n(109),i=n(110),o=n(29),l=n(49),s=Object.assign;e.exports=!s||n(24)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=s({},e)[n]||Object.keys(s({},t)).join("")!=r})?function(e,t){for(var n=o(e),s=arguments.length,c=1,u=a.f,d=i.f;s>c;)for(var p,m=l(arguments[c++]),g=u?r(m).concat(u(m)):r(m),h=g.length,f=0;h>f;)d.call(m,p=g[f++])&&(n[p]=m[p]);return n}:s},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r={stdHorizRule:"M0 80H400000 v40H0z M0 80H400000 v40H0z",vertSeparator:"M100 0h50V400000h-50zM100 0h50V400000h-50z",sqrtMain:"M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,\n-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,\n-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,\n35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,\n-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467\ns-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422\ns-65,47,-65,47z M834 80H400000v40H845z",sqrtSize1:"M263,681c0.7,0,18,39.7,52,119c34,79.3,68.167,\n158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120c340,-704.7,510.7,-1060.3,512,-1067\nc4.7,-7.3,11,-11,19,-11H40000v40H1012.3s-271.3,567,-271.3,567c-38.7,80.7,-84,\n175,-136,283c-52,108,-89.167,185.3,-111.5,232c-22.3,46.7,-33.8,70.3,-34.5,71\nc-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1s-109,-253,-109,-253c-72.7,-168,-109.3,\n-252,-110,-252c-10.7,8,-22,16.7,-34,26c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26\ns76,-59,76,-59s76,-60,76,-60z M1001 80H40000v40H1012z",sqrtSize2:"M1001,80H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,\n572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,\n-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39\nc-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60\ns208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,\n-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10z\nM1001 80H400000v40H1013z",sqrtSize3:"M424,2478c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,\n-342,-109.8,-513.3,-110.5,-514c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,\n25c-5.7,9.3,-9.8,16,-12.5,20s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,\n-13s76,-122,76,-122s77,-121,77,-121s209,968,209,968c0,-2,84.7,-361.7,254,-1079\nc169.3,-717.3,254.7,-1077.7,256,-1081c4,-6.7,10,-10,18,-10H400000v40H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M1001 80H400000v40H1014z",sqrtSize4:"M473,2793c339.3,-1799.3,509.3,-2700,510,-2702\nc3.3,-7.3,9.3,-11,18,-11H400000v40H1017.7s-90.5,478,-276.2,1466c-185.7,988,\n-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,\n-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200c0,-1.3,-5.3,8.7,-16,30c-10.7,\n21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26s76,-153,76,-153s77,-151,\n77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,606z\nM1001 80H400000v40H1017z",doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",baraboveleftarrow:"M1 500c30.67-18 59-41.833 85-71.5s45-61.17 57-94.5h23\nc15.33 0 23 .33 23 1 0 .67-5.33 12.67-16 36-16.67 34.67-39 67.33-67 98l-10 11\nh39904v40H96l9 10c27.33 30.67 50.67 65 70 103l14 33c0 .67-7.67 1-23 1h-22\nC116.67 596.33 69 540.67 1 500z M96 480 H400000 v40 H96z\nM1 147 H399905 v40 H1z M0 147 H399905 v40 H0z",rightarrowabovebar:"M400000 167c-70.67 42-118 97.67-142 167h-23c-15.33 0\n-23-.33-23-1 0-1.33 5.33-13.67 16-37 18-35.33 41.33-69 70-101l7-8h-39905\nv-40h39905c-389 0 0 0 0 0l-7-8c-28.67-32-52-65.67-70-101-10.67-23.33-16-35.67\n-16-37 0-.67 7.67-1 23-1h23c11.33 33.33 30 64.833 56 94.5s54.67 53.83 86 72.5z\nM0 147 H399905 v40 H0z M96 480 H400000 v40 H0z M96 480 H400000 v40 H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};t.a={path:r}},function(e,t,n){n.d(t,"a",function(){return o}),n.d(t,"b",function(){return l});var r={number:3,unit:"mu"},a={number:4,unit:"mu"},i={number:5,unit:"mu"},o={mord:{mop:r,mbin:a,mrel:i,minner:r},mop:{mord:r,mop:r,mrel:i,minner:r},mbin:{mord:a,mop:a,mopen:a,minner:a},mrel:{mord:i,mop:i,mopen:i,minner:i},mopen:{},mclose:{mop:r,mbin:a,mrel:i,minner:r},mpunct:{mord:r,mop:r,mrel:i,mopen:r,mclose:r,mpunct:r,minner:r},minner:{mord:r,mop:r,mbin:a,mrel:i,mopen:r,mpunct:r,minner:r}},l={mord:{mop:r},mop:{mord:r,mop:r},mbin:{},mrel:{},mopen:{},mclose:{mop:r},mpunct:{},minner:{mop:r}}},function(e,t,n){var r=n(114);t.a=function(e,t){if(!("string"==typeof e||e instanceof String))throw new TypeError("KaTeX can only parse string typed expression");return new r.a(e,t).parse()}},function(e,t,n){var r=n(7),a=n.n(r),i=n(10),o=n.n(i),l=n(115),s=n(142),c=n(144),u=n(28),d=n(19),p=n(42),m=n(148),g=n.n(m),h=n(149),f=n(14),_=n(6),E=n(62);n(34),n(27);function T(e,t){return{type:"arg",result:e,token:t}}function b(e){if("$"===e.type)throw new _.a("Unexpected $",e.token);return e}var v=function(){function e(t,n){a()(this,e),this.mode="math",this.gullet=new c.a(t,n.macros,this.mode),n.colorIsTextColor&&(this.gullet.macros["\\color"]="\\textcolor"),this.settings=n,this.leftrightDepth=0}return o()(e,[{key:"expect",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.nextToken.text!==e)throw new _.a("Expected '"+e+"', got '"+this.nextToken.text+"'",this.nextToken);t&&this.consume()}},{key:"consume",value:function(){this.nextToken=this.gullet.expandNextToken()}},{key:"switchMode",value:function(e){this.mode=e,this.gullet.switchMode(e)}},{key:"parse",value:function(){this.consume();var e=this.parseInput();return e}},{key:"parseInput",value:function(){var e=this.parseExpression(!1);return this.expect("EOF",!1),e}},{key:"parseExpression",value:function(t,n){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.nextToken;if(-1!==e.endOfExpression.indexOf(a.text))break;if(n&&a.text===n)break;if(t&&l.a[a.text]&&l.a[a.text].infix)break;var i=this.parseAtom(n);if(!i){if(!this.settings.throwOnError&&"\\"===a.text[0]){var o=this.handleUnsupportedCmd();r.push(o);continue}break}r.push(i)}return this.handleInfixNodes(r)}},{key:"handleInfixNodes",value:function(e){for(var t=-1,n=void 0,r=0;r<e.length;r++){var a=e[r];if("infix"===a.type){if(-1!==t)throw new _.a("only one infix operator per group",a.value.token);t=r,n=a.value.replaceWith}}if(-1!==t&&n){var i=void 0,o=void 0,l=e.slice(0,t),s=e.slice(t+1);i=1===l.length&&"ordgroup"===l[0].type?l[0]:new f.a("ordgroup",l,this.mode),o=1===s.length&&"ordgroup"===s[0].type?s[0]:new f.a("ordgroup",s,this.mode);var c=this.callFunction(n,[i,o],[]);return[new f.a(c.type,c,this.mode)]}return e}},{key:"handleSupSubscript",value:function(t){var n=this.nextToken,r=n.text;this.consume(),this.consumeSpaces();var a=this.parseGroup();if(!a){if(this.settings.throwOnError||"\\"!==this.nextToken.text[0])throw new _.a("Expected group after '"+r+"'",n);return this.handleUnsupportedCmd()}var i=b(a);if("fn"===i.type){if(l.a[i.result].greediness>e.SUPSUB_GREEDINESS)return this.parseGivenFunction(a);throw new _.a("Got function '"+i.result+"' with no arguments as "+t,n)}return i.result}},{key:"handleUnsupportedCmd",value:function(){for(var e=this.nextToken.text,t=[],n=0;n<e.length;n++)t.push(new f.a("textord",e[n],"text"));var r=new f.a("text",{body:t,type:"text"},this.mode),a=new f.a("color",{color:this.settings.errorColor,value:[r],type:"color"},this.mode);return this.consume(),a}},{key:"parseAtom",value:function(e){var t=this.parseImplicitGroup(e);if("text"===this.mode)return t;for(var n=void 0,r=void 0;;){this.consumeSpaces();var a=this.nextToken;if("\\limits"===a.text||"\\nolimits"===a.text){if(!t||"op"!==t.type)throw new _.a("Limit controls must follow a math operator",a);var i="\\limits"===a.text;t.value.limits=i,t.value.alwaysHandleSupSub=!0,this.consume()}else if("^"===a.text){if(n)throw new _.a("Double superscript",a);n=this.handleSupSubscript("superscript")}else if("_"===a.text){if(r)throw new _.a("Double subscript",a);r=this.handleSupSubscript("subscript")}else{if("'"!==a.text)break;if(n)throw new _.a("Double superscript",a);var o=new f.a("textord","\\prime",this.mode),l=[o];for(this.consume();"'"===this.nextToken.text;)l.push(o),this.consume();"^"===this.nextToken.text&&l.push(this.handleSupSubscript("superscript")),n=new f.a("ordgroup",l,this.mode)}}return n||r?new f.a("supsub",{base:t,sup:n,sub:r},this.mode):t}},{key:"parseImplicitGroup",value:function(e){var t=this.parseSymbol();if(null==t)return this.parseFunction();if("arg"===t.type)return this.parseGivenFunction(t);var n=t.result;if("$"===n){if("math"===this.mode)throw new _.a("$ within math mode");var r=this.mode;this.switchMode("math"),this.consume();var a=this.parseExpression(!1,"$");return this.expect("$",!1),this.switchMode(r),this.consume(),new f.a("styling",{style:"text",value:a},"math")}if("\\begin"===n){var i=this.parseGivenFunction(t),o=i.value.name;if(!s.a.hasOwnProperty(o))throw new _.a("No such environment: "+o,i.value.nameGroup);var l=s.a[o],c=this.parseArguments("\\begin{"+o+"}",l),u=c.args,d=c.optArgs,p={mode:this.mode,envName:o,parser:this},m=l.handler(p,u,d);this.expect("\\end",!1);var g=this.nextToken,h=this.parseFunction();if(!h)throw new _.a("failed to parse function after \\end");if(h.value.name!==o)throw new _.a("Mismatch: \\begin{"+o+"} matched by \\end{"+h.value.name+"}",g);return m}return this.parseGivenFunction(t,e)}},{key:"parseFunction",value:function(){var e=this.parseGroup();return e?this.parseGivenFunction(e):null}},{key:"parseGivenFunction",value:function(e,t){if("fn"===(e=b(e)).type){var n=e.result,r=l.a[n];if("text"===this.mode&&!r.allowedInText)throw new _.a("Can't use function '"+n+"' in text mode",e.token);if("math"===this.mode&&!1===r.allowedInMath)throw new _.a("Can't use function '"+n+"' in math mode",e.token);var a=this.parseArguments(n,r),i=a.args,o=a.optArgs,s=e.token,c=this.callFunction(n,i,o,s,t);return new f.a(c.type,c,this.mode)}return e.result}},{key:"callFunction",value:function(e,t,n,r,a){var i={funcName:e,parser:this,token:r,breakOnTokenText:a},o=l.a[e];if(o&&o.handler)return o.handler(i,t,n);throw new _.a("No function handler for "+e)}},{key:"parseArguments",value:function(e,t){var n=t.numArgs+t.numOptionalArgs;if(0===n)return{args:[],optArgs:[]};for(var r=t.greediness,a=[],i=[],o=0;o<n;o++){var s=t.argTypes&&t.argTypes[o],c=o<t.numOptionalArgs;o>0&&!c&&this.consumeSpaces(),0!==o||c||"math"!==this.mode||this.consumeSpaces();var u=this.nextToken,d=s?this.parseGroupOfType(s,c):this.parseGroup(c);if(!d){if(c){i.push(null);continue}if(this.settings.throwOnError||"\\"!==this.nextToken.text[0])throw new _.a("Expected group after '"+e+"'",u);d=T(this.handleUnsupportedCmd(),u)}var p=void 0;if("fn"===(d=b(d)).type){if(!(l.a[d.result].greediness>r))throw new _.a("Got function '"+d.result+"' as argument to '"+e+"'",u);p=this.parseGivenFunction(d)}else p=d.result;(c?i:a).push(p)}return{args:a,optArgs:i}}},{key:"parseGroupOfType",value:function(e,t){return"original"===e&&(e=this.mode),"color"===e?this.parseColorGroup(t):"size"===e?this.parseSizeGroup(t):"url"===e?this.parseUrlGroup(t):this.parseGroup(t,e)}},{key:"consumeSpaces",value:function(){for(;" "===this.nextToken.text;)this.consume()}},{key:"parseStringGroup",value:function(e,t){if(t&&"["!==this.nextToken.text)return null;var n=this.mode;this.mode="text",this.expect(t?"[":"{");for(var r="",a=this.nextToken,i=a;this.nextToken.text!==(t?"]":"}");){if("EOF"===this.nextToken.text)throw new _.a("Unexpected end of input in "+e,a.range(this.nextToken,r));r+=(i=this.nextToken).text,this.consume()}return this.mode=n,this.expect(t?"]":"}"),a.range(i,r)}},{key:"parseStringGroupWithBalancedBraces",value:function(e,t){if(t&&"["!==this.nextToken.text)return null;var n=this.mode;this.mode="text",this.expect(t?"[":"{");for(var r="",a=0,i=this.nextToken,o=i;a>0||this.nextToken.text!==(t?"]":"}");){if("EOF"===this.nextToken.text)throw new _.a("Unexpected end of input in "+e,i.range(this.nextToken,r));if(r+=(o=this.nextToken).text,"{"===o.text)a+=1;else if("}"===o.text){if(a<=0)throw new _.a("Unbalanced brace of input in "+e,i.range(this.nextToken,r));a-=1}this.consume()}return this.mode=n,this.expect(t?"]":"}"),i.range(o,r)}},{key:"parseRegexGroup",value:function(e,t){var n=this.mode;this.mode="text";for(var r=this.nextToken,a=r,i="";"EOF"!==this.nextToken.text&&e.test(i+this.nextToken.text);)i+=(a=this.nextToken).text,this.consume();if(""===i)throw new _.a("Invalid "+t+": '"+r.text+"'",r);return this.mode=n,r.range(a,i)}},{key:"parseColorGroup",value:function(e){var t=this.parseStringGroup("color",e);if(!t)return null;var n=/^(#[a-f0-9]{3}|#[a-f0-9]{6}|[a-z]+)$/i.exec(t.text);if(!n)throw new _.a("Invalid color: '"+t.text+"'",t);return T(new f.a("color",n[0],this.mode),t)}},{key:"parseUrlGroup",value:function(e){var t=this.parseStringGroupWithBalancedBraces("url",e);if(!t)return null;var n=t.text.replace(/\\([#$%&~_^{}])/g,"$1");return T(new f.a("url",n,this.mode),t)}},{key:"parseSizeGroup",value:function(e){var t=void 0;if(!(t=e||"{"===this.nextToken.text?this.parseStringGroup("size",e):this.parseRegexGroup(/^[-+]? *(?:$|\d+|\d+\.\d*|\.\d*) *[a-z]{0,2} *$/,"size")))return null;var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t.text);if(!n)throw new _.a("Invalid size: '"+t.text+"'",t);var r={number:+(n[1]+n[2]),unit:n[3]};if(!Object(d.b)(r))throw new _.a("Invalid unit: '"+r.unit+"'",t);return T(new f.a("size",r,this.mode),t)}},{key:"parseGroup",value:function(e,t){var n=this.mode,r=this.nextToken;if(this.nextToken.text===(e?"[":"{")){t&&this.switchMode(t),this.consume();var a=this.parseExpression(!1,e?"]":"}"),i=this.nextToken;return t&&this.switchMode(n),this.expect(e?"]":"}"),"text"===t&&this.formLigatures(a),T(new f.a("ordgroup",a,this.mode,r,i),r.range(i,r.text))}t&&this.switchMode(t);var o=e?null:this.parseSymbol();return t&&this.switchMode(n),o}},{key:"formLigatures",value:function(e){for(var t=e.length-1,n=0;n<t;++n){var r=e[n],a=r.value;"-"===a&&"-"===e[n+1].value&&(n+1<t&&"-"===e[n+2].value?(e.splice(n,3,new f.a("textord","---","text",r,e[n+2])),t-=2):(e.splice(n,2,new f.a("textord","--","text",r,e[n+1])),t-=1)),"'"!==a&&"`"!==a||e[n+1].value!==a||(e.splice(n,2,new f.a("textord",a+a,"text",r,e[n+1])),t-=1)}}},{key:"parseSymbol",value:function(){var e,t=this.nextToken,n=t.text;if(l.a[n])return this.consume(),{type:"fn",result:(e=t).text,token:e};if(/^\\verb[^a-zA-Z]/.test(n)){this.consume();var r=n.slice(5),a="*"===r.charAt(0);if(a&&(r=r.slice(1)),r.length<2||r.charAt(0)!==r.slice(-1))throw new _.a("\\verb assertion failed --\n please report what input caused this bug");return r=r.slice(1,-1),T(new f.a("verb",{body:r,star:a},"text"),t)}if("$"===n)return function(e){return{type:"$",result:"$",token:e}}(t);h.a.hasOwnProperty(n[0])&&!u.a[this.mode][n[0]]&&(n=h.a[n[0]]+n.substr(1));var i=E.a.exec(n);i&&("i"===(n=n.substring(0,i.index))?n="ı":"j"===n&&(n="ȷ"));var o=null;if(u.a[this.mode][n])o=new f.a(u.a[this.mode][n].group,n,this.mode,t);else{if("text"!==this.mode||!Object(p.b)(n.charCodeAt(0)))return null;o=new f.a("textord",n,this.mode,t)}if(this.consume(),i)for(var s=0;s<i[0].length;s++){var c=i[0][s];if(!g.a[c])throw new _.a("Unknown accent ' "+c+"'",t);var d=g.a[c][this.mode];if(!d)throw new _.a("Accent "+c+" unsupported in "+this.mode+" mode",t);o=new f.a("accent",{type:"accent",label:d,isStretchy:!1,isShifty:!0,base:o},this.mode,t)}return T(o,t)}}]),e}();v.endOfExpression=["}","\\end","\\right","&","\\\\","\\cr"],v.SUPSUB_GREEDINESS=1,t.a=v},function(e,t,n){var r=n(6),a=n(14),i=n(3),o=(n(116),n(117),n(118),n(119),n(120),n(121),n(122),n(123),n(124),n(125),n(126),n(127),n(128),n(129),n(130),n(131),n(60),n(132),n(133),n(137),n(138),n(139),n(140),n(141),i.a);t.a=o;var l=function(e,t,n){Object(i.b)({names:e,props:t,handler:n})};l(["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],{numArgs:1},function(e,t){var n=t[0];return{type:"mclass",mclass:"m"+e.funcName.substr(5),value:Object(i.c)(n)}}),l(["\\stackrel"],{numArgs:2},function(e,t){var n=t[0],r=t[1],o=new a.a("op",{type:"op",limits:!0,alwaysHandleSupSub:!0,symbol:!1,value:Object(i.c)(r)},r.mode);return{type:"mclass",mclass:"mrel",value:[new a.a("supsub",{base:o,sup:n,sub:null},n.mode)]}});var s={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint"};l(["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],{numArgs:0},function(e){return{type:"op",limits:!1,symbol:!1,body:e.funcName}}),l(["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],{numArgs:0},function(e){return{type:"op",limits:!0,symbol:!1,body:e.funcName}}),l(["\\int","\\iint","\\iiint","\\oint","∫","∬","∭","∮"],{numArgs:0},function(e){var t=e.funcName;return 1===t.length&&(t=s[t]),{type:"op",limits:!1,symbol:!0,body:t}}),l(["\\overbrace","\\underbrace"],{numArgs:1},function(e,t){var n=t[0];return{type:"horizBrace",label:e.funcName,isOver:/^\\over/.test(e.funcName),base:n}}),l(["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium"],{numArgs:1,numOptionalArgs:1},function(e,t,n){var r=n[0],a=t[0];return{type:"xArrow",label:e.funcName,body:a,below:r}}),l(["\\over","\\choose","\\atop"],{numArgs:0,infix:!0},function(e){var t=void 0;switch(e.funcName){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",replaceWith:t,token:e.token}}),l(["\\\\","\\cr"],{numArgs:0,numOptionalArgs:1,argTypes:["size"]},function(e,t,n){return{type:"cr",size:n[0]}}),l(["\\begin","\\end"],{numArgs:1,argTypes:["text"]},function(e,t){var n=t[0];if("ordgroup"!==n.type)throw new r.a("Invalid environment name",n);for(var a="",i=0;i<n.value.length;++i)a+=n.value[i].value;return{type:"environment",name:a,nameGroup:n}}),l(["\\raisebox"],{numArgs:2,argTypes:["size","text"],allowedInText:!0},function(e,t){var n=t[0],r=t[1];return{type:"raisebox",dy:n,body:r,value:Object(i.c)(r)}})},function(e,t,n){var r=n(3),a=n(0),i=n(12),o=n(1),l=n(44),s=n(9),c=n(4),u=n(2);Object(r.b)({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,n){var r=n[0];return{type:"sqrt",body:t[0],index:r}},htmlBuilder:function(e,t){var n=c.b(e.value.body,t.havingCrampedStyle());0===n.height&&(n.height=t.fontMetrics().xHeight),n instanceof i.a.documentFragment&&(n=a.a.makeSpan([],[n],t));var r=t.fontMetrics().defaultRuleThickness,o=r;t.style.id<s.a.TEXT.id&&(o=t.fontMetrics().xHeight);var u=r+o/4,d=(n.height+n.depth+u+r)*t.sizeMultiplier,p=l.a.sqrtImage(d,t),m=p.span,g=p.ruleWidth,h=m.height-g;h>n.height+n.depth+u&&(u=(u+h-n.height-n.depth)/2);var f=m.height-n.height-u-g;n.style.paddingLeft=m.advanceWidth+"em";var _=a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+f)},{type:"elem",elem:m},{type:"kern",size:g}]},t);if(e.value.index){var E=t.havingStyle(s.a.SCRIPTSCRIPT),T=c.b(e.value.index,E,t),b=.6*(_.height-_.depth),v=a.a.makeVList({positionType:"shift",positionData:-b,children:[{type:"elem",elem:T}]},t),A=a.a.makeSpan(["root"],[v]);return a.a.makeSpan(["mord","sqrt"],[A,_],t)}return a.a.makeSpan(["mord","sqrt"],[_],t)},mathmlBuilder:function(e,t){return e.value.index?new o.a.MathNode("mroot",[u.b(e.value.body,t),u.b(e.value.index,t)]):new o.a.MathNode("msqrt",[u.b(e.value.body,t)])}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(6),l=n(4),s=n(2),c=function(e,t){var n=l.a(e.value.value,t.withColor(e.value.color),!1);return new a.a.makeFragment(n)},u=function(e,t){var n=s.a(e.value.value,t),r=new i.a.MathNode("mstyle",n);return r.setAttribute("mathcolor",e.value.color),r};Object(r.b)({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:["color","original"]},handler:function(e,t){var n=t[0],a=t[1];return{type:"color",color:n.value,value:Object(r.c)(a)}},htmlBuilder:c,mathmlBuilder:u}),Object(r.b)({type:"color",names:["\\blue","\\orange","\\pink","\\red","\\green","\\gray","\\purple","\\blueA","\\blueB","\\blueC","\\blueD","\\blueE","\\tealA","\\tealB","\\tealC","\\tealD","\\tealE","\\greenA","\\greenB","\\greenC","\\greenD","\\greenE","\\goldA","\\goldB","\\goldC","\\goldD","\\goldE","\\redA","\\redB","\\redC","\\redD","\\redE","\\maroonA","\\maroonB","\\maroonC","\\maroonD","\\maroonE","\\purpleA","\\purpleB","\\purpleC","\\purpleD","\\purpleE","\\mintA","\\mintB","\\mintC","\\grayA","\\grayB","\\grayC","\\grayD","\\grayE","\\grayF","\\grayG","\\grayH","\\grayI","\\kaBlue","\\kaGreen"],props:{numArgs:1,allowedInText:!0,greediness:3},handler:function(e,t){var n=t[0];return{type:"color",color:"katex-"+e.funcName.slice(1),value:Object(r.c)(n)}},htmlBuilder:c,mathmlBuilder:u}),Object(r.b)({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,greediness:3,argTypes:["color"]},handler:function(e,t){var n=e.parser,r=e.breakOnTokenText,a=t[0];if(!a)throw new o.a("\\color not followed by color");var i=n.parseExpression(!0,r);return{type:"color",color:a.value,value:i}},htmlBuilder:c,mathmlBuilder:u})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2),s={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},c={"\\textbf":"textbf"},u={"\\textit":"textit"};Object(r.b)({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textit"],props:{numArgs:1,argTypes:["text"],greediness:2,allowedInText:!0},handler:function(e,t){var n=t[0];return{type:"text",body:Object(r.c)(n),font:e.funcName}},htmlBuilder:function(e,t){var n=e.value.font,r=void 0;r=s[n]?t.withFontFamily(s[n]):c[n]?t.withFontWeight(c[n]):t.withFontShape(u[n]);var i=o.a(e.value.body,r,!0);return a.a.tryCombineChars(i),a.a.makeSpan(["mord","text"],i,r)},mathmlBuilder:function(e,t){for(var n=e.value.body,r=[],a=null,o=0;o<n.length;o++){var s=l.b(n[o],t);"mtext"===s.type&&null!=a?Array.prototype.push.apply(a.children,s.children):(r.push(s),"mtext"===s.type&&(a=s))}return 1===r.length?r[0]:new i.a.MathNode("mrow",r)}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(5),l=n(13),s=n(4),c=n(2),u=function(e,t){var n=s.b(e.value.body,t),r=e.value.label.substr(1),i=t.sizeMultiplier,c=void 0,u=0,d=/color/.test(r);if("sout"===r)(c=a.a.makeSpan(["stretchy","sout"])).height=t.fontMetrics().defaultRuleThickness/i,u=-.5*t.fontMetrics().xHeight;else{n.classes.push(/cancel/.test(r)?"cancel-pad":"boxpad");var p=0;p=/box/.test(r)?"colorbox"===r?.3:.34:o.a.isCharacterBox(e.value.body)?.2:0,c=l.a.encloseSpan(n,r,p,t),u=n.depth+p,d&&(c.style.backgroundColor=e.value.backgroundColor.value,"fcolorbox"===r&&(c.style.borderColor=e.value.borderColor.value))}var m=void 0;return m=d?a.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:c,shift:u},{type:"elem",elem:n,shift:0}]},t):a.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:c,shift:u,wrapperClasses:/cancel/.test(r)?["svg-align"]:[]}]},t),/cancel/.test(r)?a.a.makeSpan(["mord","cancel-lap"],[m],t):a.a.makeSpan(["mord"],[m],t)},d=function(e,t){var n=new i.a.MathNode("menclose",[c.b(e.value.body,t)]);switch(e.value.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\colorbox":n.setAttribute("mathbackground",e.value.backgroundColor.value);break;case"\\fcolorbox":n.setAttribute("mathbackground",e.value.backgroundColor.value),n.setAttribute("notation","box");break;default:n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return n};Object(r.b)({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:["color","text"]},handler:function(e,t,n){var r=t[0],a=t[1];return{type:"enclose",label:e.funcName,backgroundColor:r,body:a}},htmlBuilder:u,mathmlBuilder:d}),Object(r.b)({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,greediness:3,argTypes:["color","color","text"]},handler:function(e,t,n){var r=t[0],a=t[1],i=t[2];return{type:"enclose",label:e.funcName,backgroundColor:a,borderColor:r,body:i}},htmlBuilder:u,mathmlBuilder:d}),Object(r.b)({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\fbox"],props:{numArgs:1},handler:function(e,t,n){var r=t[0];return{type:"enclose",label:e.funcName,body:r}},htmlBuilder:u,mathmlBuilder:d})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"overline",names:["\\overline"],props:{numArgs:1},handler:function(e,t){return{type:"overline",body:t[0]}},htmlBuilder:function(e,t){var n=o.b(e.value.body,t.havingCrampedStyle()),r=a.a.makeLineSpan("overline-line",t),i=a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:r.height},{type:"elem",elem:r}]},t);return a.a.makeSpan(["mord","overline"],[i],t)},mathmlBuilder:function(e,t){var n=new i.a.MathNode("mo",[new i.a.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new i.a.MathNode("mover",[l.b(e.value.body,t),n]);return r.setAttribute("accent","true"),r}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",body:t[0]}},htmlBuilder:function(e,t){var n=o.b(e.value.body,t),r=a.a.makeLineSpan("underline-line",t),i=a.a.makeVList({positionType:"top",positionData:n.height,children:[{type:"elem",elem:r},{type:"kern",size:5*r.height},{type:"elem",elem:n}]},t);return a.a.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var n=new i.a.MathNode("mo",[new i.a.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new i.a.MathNode("munder",[l.b(e.value.body,t),n]);return r.setAttribute("accentunder","true"),r}})},function(e,t,n){var r=n(0),a=n(3),i=n(1),o=n(19);Object(a.b)({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler:function(e,t,n){var r=n[0],a=t[0],i=t[1];return{type:"rule",shift:r&&r.value,width:a.value,height:i.value}},htmlBuilder:function(e,t){var n=r.a.makeSpan(["mord","rule"],[],t),a=0;e.value.shift&&(a=Object(o.a)(e.value.shift,t));var i=Object(o.a)(e.value.width,t),l=Object(o.a)(e.value.height,t);return n.style.borderRightWidth=i+"em",n.style.borderTopWidth=l+"em",n.style.bottom=a+"em",n.width=i,n.height=l+a,n.depth=-a,n.maxFontSize=1.125*l*t.sizeMultiplier,n},mathmlBuilder:function(e,t){return new i.a.MathNode("mrow")}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(19),l=n(6);Object(r.b)({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t){var n="m"===e.funcName[1],r="mu"===t[0].value.unit;if(n){if(r||"undefined"!=typeof console&&console.warn("In LaTeX, "+e.funcName+" supports only mu units, not "+t[0].value.unit+" units"),"math"!==e.parser.mode)throw new l.a("Can't use function '"+e.funcName+"' in text mode")}else r&&"undefined"!=typeof console&&console.warn("In LaTeX, "+e.funcName+" does not support mu units");return{type:"kern",dimension:t[0].value}},htmlBuilder:function(e,t){return a.a.makeGlue(e.value.dimension,t)},mathmlBuilder:function(e,t){var n=new i.a.MathNode("mspace"),r=Object(o.a)(e.value.dimension,t);return n.setAttribute("width",r+"em"),n}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"phantom",names:["\\phantom"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"phantom",value:Object(r.c)(n)}},htmlBuilder:function(e,t){var n=o.a(e.value.value,t.withPhantom(),!1);return new a.a.makeFragment(n)},mathmlBuilder:function(e,t){var n=l.a(e.value.value,t);return new i.a.MathNode("mphantom",n)}}),Object(r.b)({type:"hphantom",names:["\\hphantom"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"hphantom",value:Object(r.c)(n),body:n}},htmlBuilder:function(e,t){var n=a.a.makeSpan([],[o.b(e.value.body,t.withPhantom())]);if(n.height=0,n.depth=0,n.children)for(var r=0;r<n.children.length;r++)n.children[r].height=0,n.children[r].depth=0;return n=a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n}]},t)},mathmlBuilder:function(e,t){var n=l.a(e.value.value,t),r=new i.a.MathNode("mphantom",n);return r.setAttribute("height","0px"),r}}),Object(r.b)({type:"vphantom",names:["\\vphantom"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"vphantom",value:Object(r.c)(n),body:n}},htmlBuilder:function(e,t){var n=a.a.makeSpan(["inner"],[o.b(e.value.body,t.withPhantom())]),r=a.a.makeSpan(["fix"],[]);return a.a.makeSpan(["mord","rlap"],[n,r],t)},mathmlBuilder:function(e,t){var n=l.a(e.value.value,t),r=new i.a.MathNode("mphantom",n);return r.setAttribute("width","0px"),r}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(9),l=n(4),s=n(2),c=function(e,t){var n=[];if("bmod"===e.value.modType?t.style.isTight()?n.push(a.a.makeSpan(["mspace","thickspace"],[],t)):n.push(a.a.makeSpan(["mspace","muspace"],[],t)):t.style.size===o.a.DISPLAY.size?n.push(a.a.makeSpan(["mspace","quad"],[],t)):"mod"===e.value.modType?n.push(a.a.makeSpan(["mspace","twelvemuspace"],[],t)):n.push(a.a.makeSpan(["mspace","eightmuspace"],[],t)),"pod"!==e.value.modType&&"pmod"!==e.value.modType||n.push(a.a.mathsym("(",e.mode)),"pod"!==e.value.modType){var r=[a.a.mathsym("m",e.mode),a.a.mathsym("o",e.mode),a.a.mathsym("d",e.mode)];"bmod"===e.value.modType?(n.push(a.a.makeSpan(["mbin"],r,t)),t.style.isTight()?n.push(a.a.makeSpan(["mspace","thickspace"],[],t)):n.push(a.a.makeSpan(["mspace","muspace"],[],t))):(Array.prototype.push.apply(n,r),n.push(a.a.makeSpan(["mspace","sixmuspace"],[],t)))}return e.value.value&&Array.prototype.push.apply(n,l.a(e.value.value,t,!1)),"pod"!==e.value.modType&&"pmod"!==e.value.modType||n.push(a.a.mathsym(")",e.mode)),a.a.makeFragment(n)},u=function(e,t){var n=[];if("pod"!==e.value.modType&&"pmod"!==e.value.modType||n.push(new i.a.MathNode("mo",[s.e("(",e.mode)])),"pod"!==e.value.modType&&n.push(new i.a.MathNode("mo",[s.e("mod",e.mode)])),e.value.value){var r=new i.a.MathNode("mspace");r.setAttribute("width","0.333333em"),n.push(r),n=n.concat(s.a(e.value.value,t))}return"pod"!==e.value.modType&&"pmod"!==e.value.modType||n.push(new i.a.MathNode("mo",[s.e(")",e.mode)])),new i.a.MathNode("mo",n)};Object(r.b)({type:"mod",names:["\\bmod"],props:{numArgs:0},handler:function(e,t){return{type:"mod",modType:"bmod",value:null}},htmlBuilder:c,mathmlBuilder:u}),Object(r.b)({type:"mod",names:["\\pod","\\pmod","\\mod"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"mod",modType:e.funcName.substr(1),value:Object(r.c)(n)}},htmlBuilder:c,mathmlBuilder:u})},function(e,t,n){var r=n(3),a=n(0),i=n(12),o=n(1),l=n(5),s=n(9),c=n(4),u=n(2),d=function(e,t){var n=void 0,r=void 0,o=!1;"supsub"===e.type&&(n=e.value.sup,r=e.value.sub,e=e.value.base,o=!0);var u=t.style,d=!1;u.size===s.a.DISPLAY.size&&e.value.symbol&&!l.a.contains(["\\smallint"],e.value.body)&&(d=!0);var p=void 0;if(e.value.symbol){var m=d?"Size2-Regular":"Size1-Regular";p=a.a.makeSymbol(e.value.body,m,"math",t,["mop","op-symbol",d?"large-op":"small-op"])}else if(e.value.value){var g=c.a(e.value.value,t,!0);1===g.length&&g[0]instanceof i.a.symbolNode?(p=g[0]).classes[0]="mop":p=a.a.makeSpan(["mop"],g,t)}else{for(var h=[],f=1;f<e.value.body.length;f++)h.push(a.a.mathsym(e.value.body[f],e.mode));p=a.a.makeSpan(["mop"],h,t)}var _=0,E=0;if(p instanceof i.a.symbolNode&&(_=(p.height-p.depth)/2-t.fontMetrics().axisHeight,E=p.italic),o){p=a.a.makeSpan([],[p]);var T=void 0,b=void 0;if(n){var v=c.b(n,t.havingStyle(u.sup()),t);b={elem:v,kern:Math.max(t.fontMetrics().bigOpSpacing1,t.fontMetrics().bigOpSpacing3-v.depth)}}if(r){var A=c.b(r,t.havingStyle(u.sub()),t);T={elem:A,kern:Math.max(t.fontMetrics().bigOpSpacing2,t.fontMetrics().bigOpSpacing4-A.height)}}var S=void 0;if(b&&T){var y=t.fontMetrics().bigOpSpacing5+T.elem.height+T.elem.depth+T.kern+p.depth+_;S=a.a.makeVList({positionType:"bottom",positionData:y,children:[{type:"kern",size:t.fontMetrics().bigOpSpacing5},{type:"elem",elem:T.elem,marginLeft:-E+"em"},{type:"kern",size:T.kern},{type:"elem",elem:p},{type:"kern",size:b.kern},{type:"elem",elem:b.elem,marginLeft:E+"em"},{type:"kern",size:t.fontMetrics().bigOpSpacing5}]},t)}else if(T){var N=p.height-_;S=a.a.makeVList({positionType:"top",positionData:N,children:[{type:"kern",size:t.fontMetrics().bigOpSpacing5},{type:"elem",elem:T.elem,marginLeft:-E+"em"},{type:"kern",size:T.kern},{type:"elem",elem:p}]},t)}else{if(!b)return p;var C=p.depth+_;S=a.a.makeVList({positionType:"bottom",positionData:C,children:[{type:"elem",elem:p},{type:"kern",size:b.kern},{type:"elem",elem:b.elem,marginLeft:E+"em"},{type:"kern",size:t.fontMetrics().bigOpSpacing5}]},t)}return a.a.makeSpan(["mop","op-limits"],[S],t)}return _&&(p.style.position="relative",p.style.top=_+"em"),p},p=function(e,t){var n=void 0;if(e.value.symbol)n=new o.a.MathNode("mo",[u.e(e.value.body,e.mode)]);else{if(!e.value.value){n=new o.a.MathNode("mi",[new o.a.TextNode(e.value.body.slice(1))]);var r=new o.a.MathNode("mo",[u.e("⁡","text")]);return new i.a.documentFragment([n,r])}n=new o.a.MathNode("mo",u.a(e.value.value,t))}return n},m={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcap","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};Object(r.b)({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:function(e,t){var n=e.funcName;return 1===n.length&&(n=m[n]),{type:"op",limits:!0,symbol:!0,body:n}},htmlBuilder:d,mathmlBuilder:p}),Object(r.b)({type:"op",names:["\\mathop"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"op",limits:!1,symbol:!1,value:Object(r.c)(n)}},htmlBuilder:d,mathmlBuilder:p})},function(e,t,n){var r=n(18),a=n.n(r),i=n(3),o=n(0),l=n(1),s=n(12),c=n(4),u=n(2);Object(i.b)({type:"operatorname",names:["\\operatorname"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"operatorname",value:Object(i.c)(n)}},htmlBuilder:function(e,t){var n=[];if(e.value.value.length>0){var r="",i="",l=!0,u=!1,d=void 0;try{for(var p,m=a()(e.value.value);!(l=(p=m.next()).done);l=!0){var g=p.value;-1!=="*-/:".indexOf(g.value)&&(g.type="textord")}}catch(e){u=!0,d=e}finally{try{!l&&m.return&&m.return()}finally{if(u)throw d}}var h=c.a(e.value.value,t.withFontFamily("mathrm"),!0),f=!0,_=!1,E=void 0;try{for(var T,b=a()(h);!(f=(T=b.next()).done);f=!0){var v=T.value;v instanceof s.a.symbolNode?(r=(r=(r=v.value).replace(/\u2212/,"-")).replace(/\u2217/,"*"),i=/[\u0391-\u03D7]/.test(r)?"math":"text",n.push(o.a.mathsym(r,i))):n.push(v)}}catch(e){_=!0,E=e}finally{try{!f&&b.return&&b.return()}finally{if(_)throw E}}}return o.a.makeSpan(["mop"],n,t)},mathmlBuilder:function(e,t){var n=[];if(e.value.value.length>0){var r=u.a(e.value.value,t.withFontFamily("mathrm")).map(function(e){return e.toText()}).join("");r=(r=r.replace(/\u2212/g,"-")).replace(/\u2217/g,"*"),n=[new l.a.TextNode(r)]}var a=new l.a.MathNode("mi",n);a.setAttribute("mathvariant","normal");var i=new l.a.MathNode("mo",[u.e("⁡","text")]);return new s.a.documentFragment([a,i])}})},function(e,t,n){var r=n(3),a=n(0),i=n(44),o=n(1),l=n(9),s=n(4),c=n(2);Object(r.b)({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac"],props:{numArgs:2,greediness:2},handler:function(e,t){var n=t[0],r=t[1],a=void 0,i=null,o=null,l="auto";switch(e.funcName){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,i="(",o=")";break;default:throw new Error("Unrecognized genfrac command")}switch(e.funcName){case"\\dfrac":case"\\dbinom":l="display";break;case"\\tfrac":case"\\tbinom":l="text"}return{type:"genfrac",numer:n,denom:r,hasBarLine:a,leftDelim:i,rightDelim:o,size:l}},htmlBuilder:function(e,t){var n=t.style;"display"===e.value.size?n=l.a.DISPLAY:"text"===e.value.size&&(n=l.a.TEXT);var r=n.fracNum(),o=n.fracDen(),c=void 0;c=t.havingStyle(r);var u=s.b(e.value.numer,c,t);c=t.havingStyle(o);var d=s.b(e.value.denom,c,t),p=void 0,m=void 0,g=void 0;e.value.hasBarLine?(m=(p=a.a.makeLineSpan("frac-line",t)).height,g=p.height):(p=null,m=0,g=t.fontMetrics().defaultRuleThickness);var h=void 0,f=void 0,_=void 0;n.size===l.a.DISPLAY.size?(h=t.fontMetrics().num1,f=m>0?3*g:7*g,_=t.fontMetrics().denom1):(m>0?(h=t.fontMetrics().num2,f=g):(h=t.fontMetrics().num3,f=3*g),_=t.fontMetrics().denom2);var E=void 0;if(p){var T=t.fontMetrics().axisHeight;h-u.depth-(T+.5*m)<f&&(h+=f-(h-u.depth-(T+.5*m))),T-.5*m-(d.height-_)<f&&(_+=f-(T-.5*m-(d.height-_)));var b=-(T-.5*m);E=a.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:d,shift:_},{type:"elem",elem:p,shift:b+2*m},{type:"elem",elem:u,shift:-h}]},t)}else{var v=h-u.depth-(d.height-_);v<f&&(h+=.5*(f-v),_+=.5*(f-v)),E=a.a.makeVList({positionType:"individualShift",children:[{type:"elem",elem:d,shift:_},{type:"elem",elem:u,shift:-h}]},t)}c=t.havingStyle(n),E.height*=c.sizeMultiplier/t.sizeMultiplier,E.depth*=c.sizeMultiplier/t.sizeMultiplier;var A=void 0;A=n.size===l.a.DISPLAY.size?t.fontMetrics().delim1:t.fontMetrics().delim2;var S=void 0,y=void 0;return S=null==e.value.leftDelim?s.e(t,["mopen"]):i.a.customSizedDelim(e.value.leftDelim,A,!0,t.havingStyle(n),e.mode,["mopen"]),y=null==e.value.rightDelim?s.e(t,["mclose"]):i.a.customSizedDelim(e.value.rightDelim,A,!0,t.havingStyle(n),e.mode,["mclose"]),a.a.makeSpan(["mord"].concat(c.sizingClasses(t)),[S,a.a.makeSpan(["mfrac"],[E]),y],t)},mathmlBuilder:function(e,t){var n=new o.a.MathNode("mfrac",[c.b(e.value.numer,t),c.b(e.value.denom,t)]);if(e.value.hasBarLine||n.setAttribute("linethickness","0px"),null!=e.value.leftDelim||null!=e.value.rightDelim){var r=[];if(null!=e.value.leftDelim){var a=new o.a.MathNode("mo",[new o.a.TextNode(e.value.leftDelim)]);a.setAttribute("fence","true"),r.push(a)}if(r.push(n),null!=e.value.rightDelim){var i=new o.a.MathNode("mo",[new o.a.TextNode(e.value.rightDelim)]);i.setAttribute("fence","true"),r.push(i)}return new o.a.MathNode("mrow",r)}return n}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var n=t[0];return{type:"lap",alignment:e.funcName.slice(5),body:n}},htmlBuilder:function(e,t){var n=void 0;"clap"===e.value.alignment?(n=a.a.makeSpan([],[o.b(e.value.body,t)]),n=a.a.makeSpan(["inner"],[n],t)):n=a.a.makeSpan(["inner"],[o.b(e.value.body,t)]);var r=a.a.makeSpan(["fix"],[]);return a.a.makeSpan(["mord",e.value.alignment],[n,r],t)},mathmlBuilder:function(e,t){var n=new i.a.MathNode("mpadded",[l.b(e.value.body,t)]);if("rlap"!==e.value.alignment){var r="llap"===e.value.alignment?"-1":"-0.5";n.setAttribute("lspace",r+"width")}return n.setAttribute("width","0px"),n}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,n){var r=!1,a=!1,i=n[0];if(i)for(var o="",l=0;l<i.value.length;++l)if("t"===(o=i.value[l].value))r=!0;else{if("b"!==o){r=!1,a=!1;break}a=!0}else r=!0,a=!0;return{type:"smash",body:t[0],smashHeight:r,smashDepth:a}},htmlBuilder:function(e,t){var n=a.a.makeSpan(["mord"],[o.b(e.value.body,t)]);if(!e.value.smashHeight&&!e.value.smashDepth)return n;if(e.value.smashHeight&&(n.height=0,n.children))for(var r=0;r<n.children.length;r++)n.children[r].height=0;if(e.value.smashDepth&&(n.depth=0,n.children))for(var i=0;i<n.children.length;i++)n.children[i].depth=0;return a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n}]},t)},mathmlBuilder:function(e,t){var n=new i.a.MathNode("mpadded",[l.b(e.value.body,t)]);return e.value.smashHeight&&n.setAttribute("height","0px"),e.value.smashDepth&&n.setAttribute("depth","0px"),n}})},function(e,t,n){var r=n(0),a=n(3),i=n(44),o=n(1),l=n(6),s=n(5),c=n(4),u=n(2),d={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},p=["(",")","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\\lceil","\\rceil","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\\lmoustache","\\rmoustache","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function m(e,t){if(s.a.contains(p,e.value))return e;throw new l.a("Invalid delimiter: '"+e.value+"' after '"+t.funcName+"'",e)}Object(a.b)({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1},handler:function(e,t){var n=m(t[0],e);return{type:"delimsizing",size:d[e.funcName].size,mclass:d[e.funcName].mclass,value:n.value}},htmlBuilder:function(e,t){var n=e.value.value;return"."===n?r.a.makeSpan([e.value.mclass]):i.a.sizedDelim(n,e.value.size,t,e.mode,[e.value.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.value.value&&t.push(u.e(e.value.value,e.mode));var n=new o.a.MathNode("mo",t);return"mopen"===e.value.mclass||"mclose"===e.value.mclass?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n}}),Object(a.b)({type:"leftright",names:["\\left","\\right"],props:{numArgs:1},handler:function(e,t){var n=m(t[0],e);if("\\left"===e.funcName){var r=e.parser;++r.leftrightDepth;var a=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var i=r.parseFunction();if(!i)throw new l.a("failed to parse function after \\right");return{type:"leftright",body:a,left:n.value,right:i.value.value}}return{type:"leftright",value:n.value}},htmlBuilder:function(e,t){for(var n=c.a(e.value.body,t,!0,[null,"mclose"]),a=0,o=0,l=!1,s=0;s<n.length;s++)n[s].isMiddle?l=!0:(a=Math.max(n[s].height,a),o=Math.max(n[s].depth,o));a*=t.sizeMultiplier,o*=t.sizeMultiplier;var u=void 0;if(u="."===e.value.left?c.e(t,["mopen"]):i.a.leftRightDelim(e.value.left,a,o,t,e.mode,["mopen"]),n.unshift(u),l)for(var d=1;d<n.length;d++){var p=n[d];p.isMiddle&&(n[d]=i.a.leftRightDelim(p.isMiddle.value,a,o,p.isMiddle.options,e.mode,[]))}var m=void 0;return m="."===e.value.right?c.e(t,["mclose"]):i.a.leftRightDelim(e.value.right,a,o,t,e.mode,["mclose"]),n.push(m),r.a.makeSpan(["minner"],n,t)},mathmlBuilder:function(e,t){var n=u.a(e.value.body,t);if("."!==e.value.left){var r=new o.a.MathNode("mo",[u.e(e.value.left,e.mode)]);r.setAttribute("fence","true"),n.unshift(r)}if("."!==e.value.right){var a=new o.a.MathNode("mo",[u.e(e.value.right,e.mode)]);a.setAttribute("fence","true"),n.push(a)}return new o.a.MathNode("mrow",n)}}),Object(a.b)({type:"middle",names:["\\middle"],props:{numArgs:1},handler:function(e,t){var n=m(t[0],e);if(!e.parser.leftrightDepth)throw new l.a("\\middle without preceding \\left",n);return{type:"middle",value:n.value}},htmlBuilder:function(e,t){var n=void 0;return"."===e.value.value?n=c.e(t,[]):(n=i.a.sizedDelim(e.value.value,1,t,e.mode,[])).isMiddle={value:e.value.value,options:t},n},mathmlBuilder:function(e,t){var n=new o.a.MathNode("mo",[u.e(e.value.middle,e.mode)]);return n.setAttribute("fence","true"),n}})},function(e,t,n){var r=n(3),a=n(1),i=n(9),o=n(60),l=n(2),s={display:i.a.DISPLAY,text:i.a.TEXT,script:i.a.SCRIPT,scriptscript:i.a.SCRIPTSCRIPT};Object(r.b)({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0},handler:function(e,t){var n=e.breakOnTokenText,r=e.funcName,a=e.parser;a.consumeSpaces();var i=a.parseExpression(!0,n);return{type:"styling",style:r.slice(1,r.length-5),value:i}},htmlBuilder:function(e,t){var n=s[e.value.style],r=t.havingStyle(n);return Object(o.a)(e.value.value,r,t)},mathmlBuilder:function(e,t){var n={display:i.a.DISPLAY,text:i.a.TEXT,script:i.a.SCRIPT,scriptscript:i.a.SCRIPTSCRIPT}[e.value.style],r=t.havingStyle(n),o=l.a(e.value.value,r),s=new a.a.MathNode("mstyle",o),c={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.value.style];return s.setAttribute("scriptlevel",c[0]),s.setAttribute("displaystyle",c[1]),s}})},function(e,t,n){var r=n(134),a=n.n(r),i=n(3),o=n(14),l=n(4),s=n(2),c=function(e,t){var n=e.value.font;return l.b(e.value.body,t.withFontFamily(n))},u=function(e,t){var n=e.value.font;return s.b(e.value.body,t.withFontFamily(n))},d={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Object(i.b)({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\boldsymbol","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak","\\bm"],props:{numArgs:1,greediness:2},handler:function(e,t){var n=t[0],r=e.funcName;return r in d&&(r=d[r]),{type:"font",font:r.slice(1),body:n}},htmlBuilder:c,mathmlBuilder:u});var p={"\\rm":"mathrm","\\sf":"mathsf","\\tt":"mathtt","\\bf":"mathbf","\\it":"mathit"};Object(i.b)({type:"font",names:a()(p),props:{numArgs:0,allowedInText:!0},handler:function(e,t){var n=e.parser,r=e.funcName,a=e.breakOnTokenText;n.consumeSpaces();var i=n.parseExpression(!0,a);return{type:"font",font:p[r],body:new o.a("ordgroup",i,n.mode)}},htmlBuilder:c,mathmlBuilder:u})},function(e,t,n){e.exports={default:n(135),__esModule:!0}},function(e,t,n){n(136),e.exports=n(8).Object.keys},function(e,t,n){var r=n(29),a=n(39);n(46)("keys",function(){return function(e){return a(r(e))}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(5),l=n(13),s=n(4),c=n(2),u=function(e,t){var n=e.value.base,r=void 0;if("supsub"===e.type){var i=e;n=(e=i.value.base).value.base,i.value.base=n,r=s.b(i,t)}var c=s.b(n,t.havingCrampedStyle()),u=0;if(e.value.isShifty&&o.a.isCharacterBox(n)){var d=o.a.getBaseElem(n);u=s.b(d,t.havingCrampedStyle()).skew}var p=Math.min(c.height,t.fontMetrics().xHeight),m=void 0;if(e.value.isStretchy)m=l.a.svgSpan(e,t),m=a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"elem",elem:m,wrapperClasses:["svg-align"],wrapperStyle:u>0?{width:"calc(100% - "+2*u+"em)",marginLeft:2*u+"em"}:void 0}]},t);else{var g=void 0,h=void 0;"\\vec"===e.value.label?(g=a.a.staticSvg("vec",t),h=a.a.svgData.vec[1]):((g=a.a.makeSymbol(e.value.label,"Main-Regular",e.mode,t)).italic=0,h=g.width);var f=-h/2;f+=u,(m=a.a.makeSpan(["accent-body"],[g])).style.left=f+"em",m=a.a.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"kern",size:-p},{type:"elem",elem:m}]},t)}var _=a.a.makeSpan(["mord","accent"],[m],t);return r?(r.children[0]=_,r.height=Math.max(_.height,r.height),r.classes[0]="mord",r):_},d=function(e,t){var n=void 0;n=e.value.isStretchy?l.a.mathMLnode(e.value.label):new i.a.MathNode("mo",[c.e(e.value.label,e.mode)]);var r=new i.a.MathNode("mover",[c.b(e.value.base,t),n]);return r.setAttribute("accent","true"),r},p=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(function(e){return"\\"+e}).join("|"));Object(r.b)({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var n=t[0],r=!p.test(e.funcName),a=!r||"\\widehat"===e.funcName||"\\widetilde"===e.funcName;return{type:"accent",label:e.funcName,isStretchy:r,isShifty:a,base:n}},htmlBuilder:u,mathmlBuilder:d}),Object(r.b)({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\r","\\H","\\v"],props:{numArgs:1,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var n=t[0];return{type:"accent",label:e.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:u,mathmlBuilder:d})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(13),l=n(4),s=n(2);Object(r.b)({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var n=t[0];return{type:"accentUnder",label:e.funcName,base:n}},htmlBuilder:function(e,t){var n=l.b(e.value.base,t),r=o.a.svgSpan(e,t),i="\\utilde"===e.value.label?.12:0,s=a.a.makeVList({positionType:"bottom",positionData:r.height+i,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:n}]},t);return a.a.makeSpan(["mord","accentunder"],[s],t)},mathmlBuilder:function(e,t){var n=o.a.mathMLnode(e.value.label),r=new i.a.MathNode("munder",[s.b(e.value.body,t),n]);return r.setAttribute("accentunder","true"),r}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(6);Object(r.b)({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,n){throw new o.a("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var n=a.a.makeVerb(e,t),r=[],i=t.havingStyle(t.style.text()),o=0;o<n.length;o++)if(" "===n[o]){var l=a.a.makeSpan(["mord","rule"],[],i);l.style.marginLeft="0.525em",r.push(l)}else r.push(a.a.makeSymbol(n[o],"Typewriter-Regular",e.mode,i,["mathtt"]));return a.a.tryCombineChars(r),a.a.makeSpan(["mord","text"].concat(i.sizingClasses(t)),r,i)},mathmlBuilder:function(e,t){var n=new i.a.TextNode(a.a.makeVerb(e,t)),r=new i.a.MathNode("mtext",[n]);return r.setAttribute("mathvariant",a.a.fontMap.mathtt.variant),r}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(4),l=n(2);Object(r.b)({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"]},handler:function(e,t){var n=t[1];return{type:"href",href:t[0].value,body:Object(r.c)(n)}},htmlBuilder:function(e,t){var n=o.a(e.value.body,t,!1),r=e.value.href;return new a.a.makeAnchor(r,[],n,t)},mathmlBuilder:function(e,t){var n=l.a(e.value.body,t),r=new i.a.MathNode("mrow",n);return r.setAttribute("href",e.value.href),r}})},function(e,t,n){var r=n(3),a=n(0),i=n(1),o=n(9),l=n(4),s=n(2),c=function(e,t){var n=t.style;return n.size===o.a.DISPLAY.size?e.value.display:n.size===o.a.TEXT.size?e.value.text:n.size===o.a.SCRIPT.size?e.value.script:n.size===o.a.SCRIPTSCRIPT.size?e.value.scriptscript:e.value.text};Object(r.b)({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4},handler:function(e,t){return{type:"mathchoice",display:Object(r.c)(t[0]),text:Object(r.c)(t[1]),script:Object(r.c)(t[2]),scriptscript:Object(r.c)(t[3])}},htmlBuilder:function(e,t){var n=c(e,t),r=l.a(n,t,!1);return new a.a.makeFragment(r)},mathmlBuilder:function(e,t){var n=c(e,t),r=s.a(n,t,!1);return new i.a.MathNode("mrow",r)}})},function(e,t,n){var r=n(61),a=(n(143),r.a);t.a=a},function(e,t,n){var r=n(0),a=n(61),i=n(1),o=n(6),l=n(14),s=n(19),c=n(5),u=n(13),d=n(4),p=n(2);function m(e,t,n){for(var r=[],a=[r],i=[];;){var s=e.parseExpression(!1,void 0);s=new l.a("ordgroup",s,e.mode),n&&(s=new l.a("styling",{style:n,value:[s]},e.mode)),r.push(s);var c=e.nextToken.text;if("&"===c)e.consume();else{if("\\end"===c){var u=a[a.length-1];a.length>1&&1===u.length&&0===u[0].value.value[0].value.length&&a.pop();break}if("\\\\"!==c&&"\\cr"!==c)throw new o.a("Expected & or \\\\ or \\end",e.nextToken);var d=e.parseFunction();if(!d)throw new o.a("Failed to parse function after "+c);i.push(d.value.size),r=[],a.push(r)}}return t.body=a,t.rowGaps=i,new l.a(t.type,t,e.mode)}function g(e){return"d"===e.substr(0,1)?"display":"text"}var h=function(e,t){var n=void 0,a=void 0,i=e.value.body.length,l=0,p=new Array(i),m=1/t.fontMetrics().ptPerEm,g=5*m,h=12*m,f=3*m,_=c.a.deflt(e.value.arraystretch,1)*h,E=.7*_,T=.3*_,b=0;for(n=0;n<e.value.body.length;++n){var v=e.value.body[n],A=E,S=T;l<v.length&&(l=v.length);var y=new Array(v.length);for(a=0;a<v.length;++a){var N=d.b(v[a],t);S<N.depth&&(S=N.depth),A<N.height&&(A=N.height),y[a]=N}var C=0;e.value.rowGaps[n]&&(C=Object(s.a)(e.value.rowGaps[n].value,t))>0&&(S<(C+=T)&&(S=C),C=0),e.value.addJot&&(S+=f),y.height=A,y.depth=S,b+=A,y.pos=b,b+=S+C,p[n]=y}var O=b/2+t.fontMetrics().axisHeight,M=e.value.cols||[],x=[],w=void 0,R=void 0;for(a=0,R=0;a<l||R<M.length;++a,++R){for(var D=M[R]||{},I=!0;"separator"===D.type;){if(I||((w=r.a.makeSpan(["arraycolsep"],[])).style.width=t.fontMetrics().doubleRuleSep+"em",x.push(w)),"|"!==D.separator)throw new o.a("Invalid separator type: "+D.separator);var k=u.a.ruleSpan("vertical-separator",.05,t);k.style.height=b+"em",k.style.verticalAlign=-(b-O)+"em",x.push(k),D=M[++R]||{},I=!1}if(!(a>=l)){var L=void 0;(a>0||e.value.hskipBeforeAndAfter)&&0!==(L=c.a.deflt(D.pregap,g))&&((w=r.a.makeSpan(["arraycolsep"],[])).style.width=L+"em",x.push(w));var P=[];for(n=0;n<i;++n){var B=p[n],F=B[a];if(F){var U=B.pos-O;F.depth=B.depth,F.height=B.height,P.push({type:"elem",elem:F,shift:U})}}P=r.a.makeVList({positionType:"individualShift",children:P},t),P=r.a.makeSpan(["col-align-"+(D.align||"c")],[P]),x.push(P),(a<l-1||e.value.hskipBeforeAndAfter)&&0!==(L=c.a.deflt(D.postgap,g))&&((w=r.a.makeSpan(["arraycolsep"],[])).style.width=L+"em",x.push(w))}}return p=r.a.makeSpan(["mtable"],x),r.a.makeSpan(["mord"],[p],t)},f=function(e,t){return new i.a.MathNode("mtable",e.value.body.map(function(e){return new i.a.MathNode("mtr",e.map(function(e){return new i.a.MathNode("mtd",[p.b(e,t)])}))}))},_=function(e,t){var n={type:"array",cols:[],addJot:!0};n=m(e.parser,n,"display");var r=void 0,a=0,i=new l.a("ordgroup",[],e.mode);if(t[0]&&t[0].value){for(var s="",c=0;c<t[0].value.length;c++)s+=t[0].value[c].value;r=Number(s),a=2*r}var u=!a;n.value.body.forEach(function(e){for(var t=1;t<e.length;t+=2){e[t].value.value[0].value.unshift(i)}if(u)a<e.length&&(a=e.length);else{var n=e.length/2;if(r<n)throw new o.a("Too many math in a row: expected "+r+", but got "+n,e)}});for(var d=0;d<a;++d){var p="r",g=0;d%2==1?p="l":d>0&&u&&(g=1),n.value.cols[d]={type:"align",align:p,pregap:g,postgap:0}}return n};Object(a.b)({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var n=t[0],r={type:"array",cols:(n=n.value.map?n.value:[n]).map(function(e){var t=e.value;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};throw new o.a("Unknown column alignment: "+e.value,e)}),hskipBeforeAndAfter:!0};return r=m(e.parser,r,g(e.envName))},htmlBuilder:h,mathmlBuilder:f}),Object(a.b)({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName],n={type:"array",hskipBeforeAndAfter:!1};return n=m(e.parser,n,g(e.envName)),t&&(n=new l.a("leftright",{body:[n],left:t[0],right:t[1]},e.mode)),n},htmlBuilder:h,mathmlBuilder:f}),Object(a.b)({type:"array",names:["cases","dcases"],props:{numArgs:0},handler:function(e){var t={type:"array",arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]};return t=m(e.parser,t,g(e.envName)),t=new l.a("leftright",{body:[t],left:"\\{",right:"."},e.mode)},htmlBuilder:h,mathmlBuilder:f}),Object(a.b)({type:"array",names:["aligned"],props:{numArgs:0},handler:_,htmlBuilder:h,mathmlBuilder:f}),Object(a.b)({type:"array",names:["gathered"],props:{numArgs:0},handler:function(e){var t={type:"array",cols:[{type:"align",align:"c"}],addJot:!0};return t=m(e.parser,t,"display")},htmlBuilder:h,mathmlBuilder:f}),Object(a.b)({type:"array",names:["alignedat"],props:{numArgs:1},handler:_,htmlBuilder:h,mathmlBuilder:f})},function(e,t,n){var r=n(35),a=n.n(r),i=n(7),o=n.n(i),l=n(10),s=n.n(l),c=n(62),u=n(27),d=n(146),p=n(6),m=n(147),g=n.n(m),h=function(){function e(t,n,r){o()(this,e),this.lexer=new c.c(t),this.macros=g()({},d.a,n),this.mode=r,this.stack=[]}return s()(e,[{key:"switchMode",value:function(e){this.mode=e}},{key:"future",value:function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}},{key:"popToken",value:function(){return this.future(),this.stack.pop()}},{key:"pushToken",value:function(e){this.stack.push(e)}},{key:"pushTokens",value:function(e){var t;(t=this.stack).push.apply(t,a()(e))}},{key:"consumeSpaces",value:function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}}},{key:"consumeArgs",value:function(e){for(var t=[],n=0;n<e;++n){this.consumeSpaces();var r=this.popToken();if("{"===r.text){for(var a=[],i=1;0!==i;){var o=this.popToken();if(a.push(o),"{"===o.text)++i;else if("}"===o.text)--i;else if("EOF"===o.text)throw new p.a("End of input in macro argument",r)}a.pop(),a.reverse(),t[n]=a}else{if("EOF"===r.text)throw new p.a("End of input expecting macro argument");t[n]=[r]}}return t}},{key:"expandOnce",value:function(){var e=this.popToken(),t=e.text;if("\\"===t.charAt(0)&&c.b.test(t)&&this.consumeSpaces(),!this.macros.hasOwnProperty(t))return this.pushToken(e),e;var n=this._getExpansion(t),r=n.tokens,i=n.numArgs,o=r;if(i)for(var l=this.consumeArgs(i),s=(o=o.slice()).length-1;s>=0;--s){var u=o[s];if("#"===u.text){if(0===s)throw new p.a("Incomplete placeholder at end of macro body",u);if("#"===(u=o[--s]).text)o.splice(s+1,1);else{if(!/^[1-9]$/.test(u.text))throw new p.a("Not a valid argument number",u);var d;(d=o).splice.apply(d,[s,2].concat(a()(l[+u.text-1])))}}}return this.pushTokens(o),o}},{key:"expandAfterFuture",value:function(){return this.expandOnce(),this.future()}},{key:"expandNextToken",value:function(){for(;;){var e=this.expandOnce();if(e instanceof u.a){if("\\relax"!==e.text)return this.stack.pop();this.stack.pop()}}throw new Error}},{key:"_getExpansion",value:function(e){var t=this.macros[e],n="function"==typeof t?t(this):t;if("string"==typeof n){var r=0;if(-1!==n.indexOf("#"))for(var a=n.replace(/##/g,"");-1!==a.indexOf("#"+(r+1));)++r;for(var i=new c.c(n),o=[],l=i.lex();"EOF"!==l.text;)o.push(l),l=i.lex();o.reverse();var s={tokens:o,numArgs:r};return"function"!=typeof t&&(this.macros[e]=s),s}return n}}]),e}();t.a=h},function(e,t){e.exports=function(e,t,n){if(e.global||e.sticky)throw new Error("matchAt(...): Only non-global regexes are supported");var r=function(e){if(!e.__matchAtRelocatable){var t=e.source+"|()",n="g"+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"");e.__matchAtRelocatable=new RegExp(t,n)}return e.__matchAtRelocatable}(e);r.lastIndex=n;var a=r.exec(t);return null==a[a.length-1]?(a.length=a.length-1,a):null}},function(e,t,n){var r=n(59),a=n(28),i=n(5),o=(n(27),{});function l(e,t){o[e]=t}t.a=o,l("\\@firstoftwo",function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}}),l("\\@secondoftwo",function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}}),l("\\@ifnextchar",function(e){var t=e.consumeArgs(3),n=e.future();return 1===t[0].length&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}}),l("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),l("\\TextOrMath",function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}),l("\\bgroup","{"),l("\\egroup","}"),l("\\begingroup","{"),l("\\endgroup","}"),l("\\lq","`"),l("\\rq","'"),l("\\lbrack","["),l("\\rbrack","]"),l("\\aa","\\r a"),l("\\AA","\\r A"),l("ℂ","\\mathbb{C}"),l("ℍ","\\mathbb{H}"),l("ℕ","\\mathbb{N}"),l("ℙ","\\mathbb{P}"),l("ℚ","\\mathbb{Q}"),l("ℝ","\\mathbb{R}"),l("ℤ","\\mathbb{Z}"),l("·","\\cdotp"),l("\\llap","\\mathllap{\\textrm{#1}}"),l("\\rlap","\\mathrlap{\\textrm{#1}}"),l("\\clap","\\mathclap{\\textrm{#1}}"),l("\\varGamma","\\mathit{\\Gamma}"),l("\\varDelta","\\mathit{\\Delta}"),l("\\varTheta","\\mathit{\\Theta}"),l("\\varLambda","\\mathit{\\Lambda}"),l("\\varXi","\\mathit{\\Xi}"),l("\\varPi","\\mathit{\\Pi}"),l("\\varSigma","\\mathit{\\Sigma}"),l("\\varUpsilon","\\mathit{\\Upsilon}"),l("\\varPhi","\\mathit{\\Phi}"),l("\\varPsi","\\mathit{\\Psi}"),l("\\varOmega","\\mathit{\\Omega}"),l("\\overset","\\mathop{#2}\\limits^{#1}"),l("\\underset","\\mathop{#2}\\limits_{#1}"),l("\\boxed","\\fbox{\\displaystyle{#1}}"),l("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),l("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),l("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var s={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\implies":"\\dotsb","\\impliedby":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\iff":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\bmod":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};l("\\dots",function(e){var t="\\dotso",n=e.expandAfterFuture().text;return n in s?t=s[n]:"\\not"===n.substr(0,4)?t="\\dotsb":n in a.a.math&&i.a.contains(["bin","rel"],a.a.math[n].group)&&(t="\\dotsb"),t});var c={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};l("\\dotso",function(e){return e.future().text in c?"\\ldots\\,":"\\ldots"}),l("\\dotsc",function(e){var t=e.future().text;return t in c&&","!==t?"\\ldots\\,":"\\ldots"}),l("\\cdots",function(e){return e.future().text in c?"\\@cdots\\,":"\\@cdots"}),l("\\dotsb","\\cdots"),l("\\dotsm","\\cdots"),l("\\dotsi","\\!\\cdots"),l("\\dotsx","\\ldots\\,"),l("\\DOTSI","\\relax"),l("\\DOTSB","\\relax"),l("\\DOTSX","\\relax"),l("\\thinspace","\\,"),l("\\medspace","\\:"),l("\\thickspace","\\;"),l("\\TeX","\\textrm{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}");var u=r.a["Main-Regular"]["T".charCodeAt(0)][1]-.7*r.a["Main-Regular"]["A".charCodeAt(0)][1]+"em";l("\\LaTeX","\\textrm{L\\kern-.36em\\raisebox{"+u+"}{\\scriptsize A}\\kern-.15em\\TeX}"),l("\\KaTeX","\\textrm{K\\kern-.17em\\raisebox{"+u+"}{\\scriptsize A}\\kern-.15em\\TeX}"),l("\\hspace","\\@ifstar\\kern\\kern"),l("\\ordinarycolon",":"),l("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),l("\\dblcolon","\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon"),l("\\coloneqq","\\vcentcolon\\mathrel{\\mkern-1.2mu}="),l("\\Coloneqq","\\dblcolon\\mathrel{\\mkern-1.2mu}="),l("\\coloneq","\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}"),l("\\Coloneq","\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}"),l("\\eqqcolon","=\\mathrel{\\mkern-1.2mu}\\vcentcolon"),l("\\Eqqcolon","=\\mathrel{\\mkern-1.2mu}\\dblcolon"),l("\\eqcolon","\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon"),l("\\Eqcolon","\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon"),l("\\colonapprox","\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx"),l("\\Colonapprox","\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx"),l("\\colonsim","\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim"),l("\\Colonsim","\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim"),l("≔","\\coloneqq"),l("≕","\\eqqcolon"),l("⩴","\\Coloneqq"),l("\\ratio","\\vcentcolon"),l("\\coloncolon","\\dblcolon"),l("\\colonequals","\\coloneqq"),l("\\coloncolonequals","\\Coloneqq"),l("\\equalscolon","\\eqqcolon"),l("\\equalscoloncolon","\\Eqqcolon"),l("\\colonminus","\\coloneq"),l("\\coloncolonminus","\\Coloneq"),l("\\minuscolon","\\eqcolon"),l("\\minuscoloncolon","\\Eqcolon"),l("\\coloncolonapprox","\\Colonapprox"),l("\\coloncolonsim","\\Colonsim"),l("\\simcolon","\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon"),l("\\simcoloncolon","\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon"),l("\\approxcolon","\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon"),l("\\approxcoloncolon","\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon"),l("\\notni","\\not\\ni"),l("\\limsup","\\DOTSB\\mathop{\\operatorname{lim\\,sup}}\\limits"),l("\\liminf","\\DOTSB\\mathop{\\operatorname{lim\\,inf}}\\limits")},function(e,t,n){var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,o,l=function(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in n=Object(arguments[s]))a.call(n,c)&&(l[c]=n[c]);if(r){o=r(n);for(var u=0;u<o.length;u++)i.call(n,o[u])&&(l[o[u]]=n[o[u]])}}return l}},function(e,t){e.exports={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"}}},function(e,t,n){t.a={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","č":"č","ĉ":"ĉ","ċ":"ċ","ď":"ď","ḋ":"ḋ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ĺ":"ĺ","ľ":"ľ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ď":"Ď","Ḋ":"Ḋ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ĺ":"Ĺ","Ľ":"Ľ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ť":"Ť","Ṫ":"Ṫ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"}}]).default},e.exports=n()});h(ic);var oc=Object.prototype.hasOwnProperty,lc=Object.prototype.toString,sc=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===lc.call(e)},cc=function(e){if(!e||"[object Object]"!==lc.call(e))return!1;var t,n=oc.call(e,"constructor"),r=e.constructor&&e.constructor.prototype&&oc.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!n&&!r)return!1;for(t in e);return void 0===t||oc.call(e,t)},uc=function e(){var t,n,r,a,i,o,l=arguments[0],s=1,c=arguments.length,u=!1;for("boolean"==typeof l&&(u=l,l=arguments[1]||{},s=2),(null==l||"object"!=typeof l&&"function"!=typeof l)&&(l={});s<c;++s)if(null!=(t=arguments[s]))for(n in t)r=l[n],l!==(a=t[n])&&(u&&a&&(cc(a)||(i=sc(a)))?(i?(i=!1,o=r&&sc(r)?r:[]):o=r&&cc(r)?r:{},l[n]=e(u,o,a)):void 0!==a&&(l[n]=a));return l},dc=function(e){if(e)throw e};var pc={}.hasOwnProperty,mc=function(e){if(!e||"object"!=typeof e)return null;if(pc.call(e,"position")||pc.call(e,"type"))return hc(e.position);if(pc.call(e,"start")||pc.call(e,"end"))return hc(e);if(pc.call(e,"line")||pc.call(e,"column"))return gc(e);return null};function gc(e){return e&&"object"==typeof e||(e={}),fc(e.line)+":"+fc(e.column)}function hc(e){return e&&"object"==typeof e||(e={}),gc(e.start)+"-"+gc(e.end)}function fc(e){return e&&"number"==typeof e?e:1}var _c=bc;function Ec(){}Ec.prototype=Error.prototype,bc.prototype=new Ec;var Tc=bc.prototype;function bc(e,t,n){var r,a,i;"string"==typeof t&&(n=t,t=null),r=function(e){var t,n=[null,null];"string"==typeof e&&(-1===(t=e.indexOf(":"))?n[1]=e:(n[0]=e.slice(0,t),n[1]=e.slice(t+1)));return n}(n),a=mc(t)||"1:1",i={start:{line:null,column:null},end:{line:null,column:null}},t&&t.position&&(t=t.position),t&&(t.start?(i=t,t=t.start):i.start=t),e.stack&&(this.stack=e.stack,e=e.message),this.message=e,this.name=a,this.reason=e,this.line=t?t.line:null,this.column=t?t.column:null,this.location=i,this.source=r[0],this.ruleId=r[1]}function vc(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];"."===a?e.splice(r,1):".."===a?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}Tc.file="",Tc.name="",Tc.reason="",Tc.message="",Tc.stack="",Tc.fatal=null,Tc.column=null,Tc.line=null;var Ac=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Sc=function(e){return Ac.exec(e).slice(1)};function yc(){for(var e="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var r=n>=0?arguments[n]:"/";if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");r&&(e=r+"/"+e,t="/"===r.charAt(0))}return e=vc(Ic(e.split("/"),function(e){return!!e}),!t).join("/"),(t?"/":"")+e||"."}function Nc(e){var t=Cc(e),n="/"===kc(e,-1);return(e=vc(Ic(e.split("/"),function(e){return!!e}),!t).join("/"))||t||(e="."),e&&n&&(e+="/"),(t?"/":"")+e}function Cc(e){return"/"===e.charAt(0)}function Oc(){return Nc(Ic(Array.prototype.slice.call(arguments,0),function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))}function Mc(e,t){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=yc(e).substr(1),t=yc(t).substr(1);for(var r=n(e.split("/")),a=n(t.split("/")),i=Math.min(r.length,a.length),o=i,l=0;l<i;l++)if(r[l]!==a[l]){o=l;break}var s=[];for(l=o;l<r.length;l++)s.push("..");return(s=s.concat(a.slice(o))).join("/")}function xc(e){var t=Sc(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."}function wc(e,t){var n=Sc(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n}function Rc(e){return Sc(e)[3]}var Dc={extname:Rc,basename:wc,dirname:xc,sep:"/",delimiter:":",relative:Mc,join:Oc,isAbsolute:Cc,normalize:Nc,resolve:yc};function Ic(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var kc="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)},Lc=Object.freeze({resolve:yc,normalize:Nc,isAbsolute:Cc,join:Oc,relative:Mc,sep:"/",delimiter:":",dirname:xc,basename:wc,extname:Rc,default:Dc}),Pc=Lc&&Dc||Lc;var Bc=function(e,t){if("string"!=typeof e)return e;if(0===e.length)return e;var n=Pc.basename(e,Pc.extname(e))+t;return Pc.join(Pc.dirname(e),n)},Fc=function(e){return null!=e&&(Uc(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&Uc(e.slice(0,0))}(e)||!!e._isBuffer)};function Uc(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}var Hc=Kc,Gc={}.hasOwnProperty,qc=Kc.prototype;qc.toString=function(e){var t=this.contents||"";return Fc(t)?t.toString(e):String(t)};var zc=["history","path","basename","stem","extname","dirname"];function Kc(e){var t,n,r;if(e){if("string"==typeof e||Fc(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof Kc))return new Kc(e);for(this.data={},this.messages=[],this.history=[],this.cwd=ro.cwd(),n=-1,r=zc.length;++n<r;)t=zc[n],Gc.call(e,t)&&(this[t]=e[t]);for(t in e)-1===zc.indexOf(t)&&(this[t]=e[t])}function jc(e,t){if(-1!==e.indexOf(Pc.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Pc.sep+"`")}function Vc(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function $c(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}Object.defineProperty(qc,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){Vc(e,"path"),e!==this.path&&this.history.push(e)}}),Object.defineProperty(qc,"dirname",{get:function(){return"string"==typeof this.path?Pc.dirname(this.path):void 0},set:function(e){$c(this.path,"dirname"),this.path=Pc.join(e||"",this.basename)}}),Object.defineProperty(qc,"basename",{get:function(){return"string"==typeof this.path?Pc.basename(this.path):void 0},set:function(e){Vc(e,"basename"),jc(e,"basename"),this.path=Pc.join(this.dirname||"",e)}}),Object.defineProperty(qc,"extname",{get:function(){return"string"==typeof this.path?Pc.extname(this.path):void 0},set:function(e){var t=e||"";if(jc(t,"extname"),$c(this.path,"extname"),t){if("."!==t.charAt(0))throw new Error("`extname` must start with `.`");if(-1!==t.indexOf(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Bc(this.path,t)}}),Object.defineProperty(qc,"stem",{get:function(){return"string"==typeof this.path?Pc.basename(this.path,this.extname):void 0},set:function(e){Vc(e,"stem"),jc(e,"stem"),this.path=Pc.join(this.dirname||"",e+(this.extname||""))}});var Wc=Hc,Yc=Hc.prototype;function Qc(e,t,n){var r=this.path,a=new _c(e,t,n);return r&&(a.name=r+":"+a.name,a.file=r),a.fatal=!1,this.messages.push(a),a}Yc.message=Qc,Yc.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},Yc.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e},Yc.warn=Qc;var Xc=function(){var e=[],t={};return t.run=function(){var t=-1,n=Zc.call(arguments,0,-1),r=arguments[arguments.length-1];if("function"!=typeof r)throw new Error("Expected function as last argument, not "+r);(function a(i){var o=e[++t],l=Zc.call(arguments,0),s=l.slice(1),c=n.length,u=-1;if(i)r(i);else{for(;++u<c;)null!==s[u]&&void 0!==s[u]||(s[u]=n[u]);n=s,o?function(e,t){var n;return function(){var t,i=Zc.call(arguments,0),o=e.length>i.length;o&&i.push(r);try{t=e.apply(null,i)}catch(e){if(o&&n)throw e;return r(e)}o||(t&&"function"==typeof t.then?t.then(a,r):t instanceof Error?r(t):a(t))};function r(){n||(n=!0,t.apply(null,arguments))}function a(e){r(null,e)}}(o,a).apply(null,n):r.apply(null,[null].concat(n))}}).apply(null,[null].concat(n))},t.use=function(n){if("function"!=typeof n)throw new Error("Expected `fn` to be a function, not "+n);return e.push(n),t},t},Zc=[].slice;var Jc=Object.prototype.toString,eu=function(e){return"[object String]"===Jc.call(e)};var tu=function(e){return"[object Function]"===Object.prototype.toString.call(e)},nu=Object.prototype.toString,ru=function(e){var t;return"[object Object]"===nu.call(e)&&(null===(t=Object.getPrototypeOf(e))||t===Object.getPrototypeOf({}))},au=function e(){var t=[];var n=Xc();var r={};var a=!1;var i=-1;o.data=function(e,t){if(eu(e))return 2===arguments.length?(du("data",a),r[e]=t,o):ou.call(r,e)&&r[e]||null;if(e)return du("data",a),r=e,o;return r};o.freeze=l;o.attachers=t;o.use=function(e){var n;if(du("use",a),null===e||void 0===e);else if(tu(e))c.apply(null,arguments);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?s(e):i(e)}n&&(r.settings=uc(r.settings||{},n));return o;function i(e){s(e.plugins),e.settings&&(n=uc(n||{},e.settings))}function l(e){if(tu(e))c(e);else{if("object"!=typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?c.apply(null,e):i(e)}}function s(e){var t,n;if(null===e||void 0===e);else{if(!("object"==typeof e&&"length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(t=e.length,n=-1;++n<t;)l(e[n])}}function c(e,n){var r=function(e){var n,r=t.length,a=-1;for(;++a<r;)if((n=t[a])[0]===e)return n}(e);r?(ru(r[1])&&ru(n)&&(n=uc(r[1],n)),r[1]=n):t.push(iu.call(arguments))}};o.parse=function(e){var t,n=Wc(e);if(l(),cu("parse",t=o.Parser),su(t))return new t(String(n),n).parse();return t(String(n),n)};o.stringify=function(e,t){var n,r=Wc(t);if(l(),uu("stringify",n=o.Compiler),pu(e),su(n))return new n(e,r).compile();return n(e,r)};o.run=s;o.runSync=function(e,t){var n,r=!1;return s(e,t,function(e,t){r=!0,dc(e),n=t}),mu("runSync","run",r),n};o.process=c;o.processSync=function(e){var t,n=!1;return l(),cu("processSync",o.Parser),uu("processSync",o.Compiler),c(t=Wc(e),function(e){n=!0,dc(e)}),mu("processSync","process",n),t};return o;function o(){for(var n=e(),a=t.length,i=-1;++i<a;)n.use.apply(null,t[i]);return n.data(uc(!0,{},r)),n}function l(){var e,r,l,s;if(a)return o;for(;++i<t.length;)e=t[i],r=e[0],l=e[1],s=null,!1!==l&&(!0===l&&(e[1]=void 0),s=r.apply(o,e.slice(1)),tu(s)&&n.use(s));return a=!0,i=1/0,o}function s(e,t,r){if(pu(e),l(),!r&&tu(t)&&(r=t,t=null),!r)return new Promise(a);function a(a,i){n.run(e,Wc(t),function(t,n,o){n=n||e,t?i(t):a?a(n):r(null,n,o)})}a(null,r)}function c(e,t){if(l(),cu("process",o.Parser),uu("process",o.Compiler),!t)return new Promise(n);function n(n,r){var a=Wc(e);lu.run(o,{file:a},function(e){e?r(e):n?n(a):t(null,a)})}n(null,t)}}().freeze(),iu=[].slice,ou={}.hasOwnProperty,lu=Xc().use(function(e,t){t.tree=e.parse(t.file)}).use(function(e,t,n){e.run(t.tree,t.file,function(e,r,a){e?n(e):(t.tree=r,t.file=a,n())})}).use(function(e,t){t.file.contents=e.stringify(t.tree,t.file)});function su(e){return tu(e)&&function(e){var t;for(t in e)return!0;return!1}(e.prototype)}function cu(e,t){if(!tu(t))throw new Error("Cannot `"+e+"` without `Parser`")}function uu(e,t){if(!tu(t))throw new Error("Cannot `"+e+"` without `Compiler`")}function du(e,t){if(t)throw new Error("Cannot invoke `"+e+"` on a frozen processor.\nCreate a new processor first, by invoking it: use `processor()` instead of `processor`.")}function pu(e){if(!e||!eu(e.type))throw new Error("Expected node, got `"+e+"`")}function mu(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}var gu=Array.prototype.slice,hu=Object.prototype.toString,fu=(Function.prototype.bind||function(e){var t=this;if("function"!=typeof t||"[object Function]"!==hu.call(t))throw new TypeError("Function.prototype.bind called on incompatible "+t);for(var n,r=gu.call(arguments,1),a=Math.max(0,t.length-r.length),i=[],o=0;o<a;o++)i.push("$"+o);if(n=Function("binder","return function ("+i.join(",")+"){ return binder.apply(this,arguments); }")(function(){if(this instanceof n){var a=t.apply(this,r.concat(gu.call(arguments)));return Object(a)===a?a:this}return t.apply(e,r.concat(gu.call(arguments)))}),t.prototype){var l=function(){};l.prototype=t.prototype,n.prototype=new l,l.prototype=null}return n}).call(Function.call,Object.prototype.hasOwnProperty),_u=function(e,t){var n,r=t||{};r.messages?(n=r,r={}):n=r.file;return Tu(e,{file:n,toPosition:n?hl(n).toPosition:null,verbose:r.verbose,location:!1})},Eu={"#document":bu,"#document-fragment":bu,"#text":function(e){return{type:"text",value:e.value}},"#comment":function(e){return{type:"comment",value:e.data}},"#documentType":function(e){return{type:"doctype",name:e.name||"",public:e.publicId||null,system:e.systemId||null}}};function Tu(e,t){var n,r,a,i=fu(Eu,e.nodeName)?Eu[e.nodeName]:vu;return e.childNodes&&(n=function(e,t){var n=e.length,r=-1,a=[];for(;++r<n;)a[r]=Tu(e[r],t);return a}(e.childNodes,t)),r=i(e,n,t),e.__location&&t.toPosition&&(t.location=!0,(a=Su(e.__location,e,r,t))&&(r.position=a)),r}function bu(e,t,n){var r={type:"root",children:t,data:{quirksMode:e.quirksMode}};return n.file&&n.location&&(r.position=Su({startOffset:0,endOffset:String(n.file).length},e,r,n)),r}function vu(e,t){for(var n,r={},a=e.attrs,i=a.length,o=-1;++o<i;)r[((n=a[o]).prefix?n.prefix+":":"")+n.name]=n.value;return Il(e.tagName,r,t)}function Au(e,t){return{start:e(t.startOffset),end:e(t.endOffset)}}function Su(e,t,n,r){var a,i,o=e.startOffset,l=e.endOffset,s=e.attrs||{},c={};for(a in s)c[(ll(a)||{}).propertyName||gl(a)]=Au(r.toPosition,s[a]);if("element"!==n.type||e.endTag||((i=n.children[n.children.length-1])&&i.position?l=i.position.end?i.position.end.offset:null:e.startTag&&(l=e.startTag.endOffset)),r.verbose&&"element"===n.type&&(n.data={position:{opening:Au(r.toPosition,e.startTag||e),closing:e.endTag?Au(r.toPosition,e.endTag):null,properties:c}}),o="number"==typeof o?r.toPosition(o):null,l="number"==typeof l?r.toPosition(l):null,o||l)return{start:o,end:l}}var yu={REPLACEMENT_CHARACTER:"�",CODE_POINTS:{EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},CODE_POINT_SEQUENCES:{DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],CDATA_END_STRING:[93,93,62],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]}},Nu=f(function(e){var t=yu.CODE_POINTS;var n=e.exports=function(){this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.droppedBufferSize=0,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536};Object.defineProperty(n.prototype,"sourcePos",{get:function(){return this.droppedBufferSize+this.pos}}),n.prototype.dropParsedChunk=function(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.droppedBufferSize+=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])},n.prototype._addGap=function(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos},n.prototype._processHighRangeCodePoint=function(e){if(this.pos!==this.lastCharPos){var n=this.html.charCodeAt(this.pos+1);a=n,(r=e)>=55296&&r<=56319&&a>=56320&&a<=57343&&(this.pos++,e=function(e,t){return 1024*(e-55296)+9216+t}(e,n),this._addGap())}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,t.EOF;var r,a;return e},n.prototype.write=function(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t},n.prototype.insertHtmlAtCurrentPos=function(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1},n.prototype.advance=function(){if(this.pos++,this.pos>this.lastCharPos)return this.lastChunkWritten||(this.endOfChunkHit=!0),t.EOF;var e=this.html.charCodeAt(this.pos);return this.skipNextNewLine&&e===t.LINE_FEED?(this.skipNextNewLine=!1,this._addGap(),this.advance()):e===t.CARRIAGE_RETURN?(this.skipNextNewLine=!0,t.LINE_FEED):(this.skipNextNewLine=!1,e>=55296?this._processHighRangeCodePoint(e):e)},n.prototype.retreat=function(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}),Cu=yu.CODE_POINTS,Ou=function(e){var t=Object.getPrototypeOf(e),n=-1,r=-1,a=1,i=!1,o=[0],l=0,s=-1,c=1;function u(e){e.location={line:a,col:r,startOffset:n,endOffset:-1}}e._consume=function(){var e=t._consume.call(this);return i&&(i=!1,c++,o.push(this.preprocessor.sourcePos),l=this.preprocessor.sourcePos),e===Cu.LINE_FEED&&(i=!0),s=this.preprocessor.sourcePos-l+1,e},e._unconsume=function(){for(t._unconsume.call(this),i=!1;l>this.preprocessor.sourcePos&&o.length>1;)l=o.pop(),c--;s=this.preprocessor.sourcePos-l+1},e._createStartTagToken=function(){t._createStartTagToken.call(this),u(this.currentToken)},e._createEndTagToken=function(){t._createEndTagToken.call(this),u(this.currentToken)},e._createCommentToken=function(){t._createCommentToken.call(this),u(this.currentToken)},e._createDoctypeToken=function(e){t._createDoctypeToken.call(this,e),u(this.currentToken)},e._createCharacterToken=function(e,n){t._createCharacterToken.call(this,e,n),u(this.currentCharacterToken)},e._createAttr=function(e){t._createAttr.call(this,e),this.currentAttrLocation={line:c,col:s,startOffset:this.preprocessor.sourcePos,endOffset:-1}},e._leaveAttrName=function(e){t._leaveAttrName.call(this,e),this._attachCurrentAttrLocationInfo()},e._leaveAttrValue=function(e){t._leaveAttrValue.call(this,e),this._attachCurrentAttrLocationInfo()},e._attachCurrentAttrLocationInfo=function(){this.currentAttrLocation.endOffset=this.preprocessor.sourcePos,this.currentToken.location.attrs||(this.currentToken.location.attrs={}),this.currentToken.location.attrs[this.currentAttr.name]=this.currentAttrLocation},e._emitCurrentToken=function(){this.currentCharacterToken&&(this.currentCharacterToken.location.endOffset=this.currentToken.location.startOffset),this.currentToken.location.endOffset=this.preprocessor.sourcePos+1,t._emitCurrentToken.call(this)},e._emitCurrentCharacterToken=function(){this.currentCharacterToken&&-1===this.currentCharacterToken.location.endOffset&&(this.currentCharacterToken.location.endOffset=this.preprocessor.sourcePos),t._emitCurrentCharacterToken.call(this)},Object.keys(t.MODE).map(function(e){return t.MODE[e]}).forEach(function(i){e[i]=function(e){n=this.preprocessor.sourcePos,a=c,r=s,t[i].call(this,e)}})},Mu={65:{l:{69:{l:{108:{l:{105:{l:{103:{l:{59:{c:[198]}},c:[198]}}}}}}},77:{l:{80:{l:{59:{c:[38]}},c:[38]}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[193]}},c:[193]}}}}}}}}},98:{l:{114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[258]}}}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[194]}},c:[194]}}}}},121:{l:{59:{c:[1040]}}}}},102:{l:{114:{l:{59:{c:[120068]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[192]}},c:[192]}}}}}}}}},108:{l:{112:{l:{104:{l:{97:{l:{59:{c:[913]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[256]}}}}}}}}},110:{l:{100:{l:{59:{c:[10835]}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[260]}}}}}}},112:{l:{102:{l:{59:{c:[120120]}}}}}}},112:{l:{112:{l:{108:{l:{121:{l:{70:{l:{117:{l:{110:{l:{99:{l:{116:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8289]}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{110:{l:{103:{l:{59:{c:[197]}},c:[197]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119964]}}}}},115:{l:{105:{l:{103:{l:{110:{l:{59:{c:[8788]}}}}}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[195]}},c:[195]}}}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[196]}},c:[196]}}}}}}},66:{l:{97:{l:{99:{l:{107:{l:{115:{l:{108:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8726]}}}}}}}}}}}}}}},114:{l:{118:{l:{59:{c:[10983]}}},119:{l:{101:{l:{100:{l:{59:{c:[8966]}}}}}}}}}}},99:{l:{121:{l:{59:{c:[1041]}}}}},101:{l:{99:{l:{97:{l:{117:{l:{115:{l:{101:{l:{59:{c:[8757]}}}}}}}}}}},114:{l:{110:{l:{111:{l:{117:{l:{108:{l:{108:{l:{105:{l:{115:{l:{59:{c:[8492]}}}}}}}}}}}}}}}}},116:{l:{97:{l:{59:{c:[914]}}}}}}},102:{l:{114:{l:{59:{c:[120069]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120121]}}}}}}},114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[728]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8492]}}}}}}},117:{l:{109:{l:{112:{l:{101:{l:{113:{l:{59:{c:[8782]}}}}}}}}}}}}},67:{l:{72:{l:{99:{l:{121:{l:{59:{c:[1063]}}}}}}},79:{l:{80:{l:{89:{l:{59:{c:[169]}},c:[169]}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[262]}}}}}}}}},112:{l:{59:{c:[8914]},105:{l:{116:{l:{97:{l:{108:{l:{68:{l:{105:{l:{102:{l:{102:{l:{101:{l:{114:{l:{101:{l:{110:{l:{116:{l:{105:{l:{97:{l:{108:{l:{68:{l:{59:{c:[8517]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},121:{l:{108:{l:{101:{l:{121:{l:{115:{l:{59:{c:[8493]}}}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[268]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[199]}},c:[199]}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[264]}}}}}}},111:{l:{110:{l:{105:{l:{110:{l:{116:{l:{59:{c:[8752]}}}}}}}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[266]}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{108:{l:{97:{l:{59:{c:[184]}}}}}}}}}}},110:{l:{116:{l:{101:{l:{114:{l:{68:{l:{111:{l:{116:{l:{59:{c:[183]}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[8493]}}}}},104:{l:{105:{l:{59:{c:[935]}}}}},105:{l:{114:{l:{99:{l:{108:{l:{101:{l:{68:{l:{111:{l:{116:{l:{59:{c:[8857]}}}}}}},77:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[8854]}}}}}}}}}}},80:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8853]}}}}}}}}},84:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8855]}}}}}}}}}}}}}}}}}}}}},108:{l:{111:{l:{99:{l:{107:{l:{119:{l:{105:{l:{115:{l:{101:{l:{67:{l:{111:{l:{110:{l:{116:{l:{111:{l:{117:{l:{114:{l:{73:{l:{110:{l:{116:{l:{101:{l:{103:{l:{114:{l:{97:{l:{108:{l:{59:{c:[8754]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{101:{l:{67:{l:{117:{l:{114:{l:{108:{l:{121:{l:{68:{l:{111:{l:{117:{l:{98:{l:{108:{l:{101:{l:{81:{l:{117:{l:{111:{l:{116:{l:{101:{l:{59:{c:[8221]}}}}}}}}}}}}}}}}}}}}}}},81:{l:{117:{l:{111:{l:{116:{l:{101:{l:{59:{c:[8217]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{108:{l:{111:{l:{110:{l:{59:{c:[8759]},101:{l:{59:{c:[10868]}}}}}}}}},110:{l:{103:{l:{114:{l:{117:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8801]}}}}}}}}}}}}},105:{l:{110:{l:{116:{l:{59:{c:[8751]}}}}}}},116:{l:{111:{l:{117:{l:{114:{l:{73:{l:{110:{l:{116:{l:{101:{l:{103:{l:{114:{l:{97:{l:{108:{l:{59:{c:[8750]}}}}}}}}}}}}}}}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[8450]}}},114:{l:{111:{l:{100:{l:{117:{l:{99:{l:{116:{l:{59:{c:[8720]}}}}}}}}}}}}}}},117:{l:{110:{l:{116:{l:{101:{l:{114:{l:{67:{l:{108:{l:{111:{l:{99:{l:{107:{l:{119:{l:{105:{l:{115:{l:{101:{l:{67:{l:{111:{l:{110:{l:{116:{l:{111:{l:{117:{l:{114:{l:{73:{l:{110:{l:{116:{l:{101:{l:{103:{l:{114:{l:{97:{l:{108:{l:{59:{c:[8755]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{111:{l:{115:{l:{115:{l:{59:{c:[10799]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119966]}}}}}}},117:{l:{112:{l:{59:{c:[8915]},67:{l:{97:{l:{112:{l:{59:{c:[8781]}}}}}}}}}}}}},68:{l:{68:{l:{59:{c:[8517]},111:{l:{116:{l:{114:{l:{97:{l:{104:{l:{100:{l:{59:{c:[10513]}}}}}}}}}}}}}}},74:{l:{99:{l:{121:{l:{59:{c:[1026]}}}}}}},83:{l:{99:{l:{121:{l:{59:{c:[1029]}}}}}}},90:{l:{99:{l:{121:{l:{59:{c:[1039]}}}}}}},97:{l:{103:{l:{103:{l:{101:{l:{114:{l:{59:{c:[8225]}}}}}}}}},114:{l:{114:{l:{59:{c:[8609]}}}}},115:{l:{104:{l:{118:{l:{59:{c:[10980]}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[270]}}}}}}}}},121:{l:{59:{c:[1044]}}}}},101:{l:{108:{l:{59:{c:[8711]},116:{l:{97:{l:{59:{c:[916]}}}}}}}}},102:{l:{114:{l:{59:{c:[120071]}}}}},105:{l:{97:{l:{99:{l:{114:{l:{105:{l:{116:{l:{105:{l:{99:{l:{97:{l:{108:{l:{65:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[180]}}}}}}}}}}},68:{l:{111:{l:{116:{l:{59:{c:[729]}}},117:{l:{98:{l:{108:{l:{101:{l:{65:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[733]}}}}}}}}}}}}}}}}}}}}}}},71:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[96]}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[732]}}}}}}}}}}}}}}}}}}}}}}}}}}},109:{l:{111:{l:{110:{l:{100:{l:{59:{c:[8900]}}}}}}}}}}},102:{l:{102:{l:{101:{l:{114:{l:{101:{l:{110:{l:{116:{l:{105:{l:{97:{l:{108:{l:{68:{l:{59:{c:[8518]}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120123]}}}}},116:{l:{59:{c:[168]},68:{l:{111:{l:{116:{l:{59:{c:[8412]}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8784]}}}}}}}}}}}}},117:{l:{98:{l:{108:{l:{101:{l:{67:{l:{111:{l:{110:{l:{116:{l:{111:{l:{117:{l:{114:{l:{73:{l:{110:{l:{116:{l:{101:{l:{103:{l:{114:{l:{97:{l:{108:{l:{59:{c:[8751]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},68:{l:{111:{l:{116:{l:{59:{c:[168]}}},119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8659]}}}}}}}}}}}}}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8656]}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8660]}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[10980]}}}}}}}}}}}}},111:{l:{110:{l:{103:{l:{76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10232]}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10234]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10233]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8658]}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[8872]}}}}}}}}}}}}}}}}},85:{l:{112:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8657]}}}}}}}}}}},68:{l:{111:{l:{119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8661]}}}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{114:{l:{116:{l:{105:{l:{99:{l:{97:{l:{108:{l:{66:{l:{97:{l:{114:{l:{59:{c:[8741]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8595]},66:{l:{97:{l:{114:{l:{59:{c:[10515]}}}}}}},85:{l:{112:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8693]}}}}}}}}}}}}}}}}}}}}}}}}},66:{l:{114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[785]}}}}}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10576]}}}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10590]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8637]},66:{l:{97:{l:{114:{l:{59:{c:[10582]}}}}}}}}}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10591]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8641]},66:{l:{97:{l:{114:{l:{59:{c:[10583]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[8868]},65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8615]}}}}}}}}}}}}}}}}},97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8659]}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119967]}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[272]}}}}}}}}}}}}},69:{l:{78:{l:{71:{l:{59:{c:[330]}}}}},84:{l:{72:{l:{59:{c:[208]}},c:[208]}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[201]}},c:[201]}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[282]}}}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[202]}},c:[202]}}}}},121:{l:{59:{c:[1069]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[278]}}}}}}},102:{l:{114:{l:{59:{c:[120072]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[200]}},c:[200]}}}}}}}}},108:{l:{101:{l:{109:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8712]}}}}}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[274]}}}}}}},112:{l:{116:{l:{121:{l:{83:{l:{109:{l:{97:{l:{108:{l:{108:{l:{83:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9723]}}}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{114:{l:{121:{l:{83:{l:{109:{l:{97:{l:{108:{l:{108:{l:{83:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9643]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[280]}}}}}}},112:{l:{102:{l:{59:{c:[120124]}}}}}}},112:{l:{115:{l:{105:{l:{108:{l:{111:{l:{110:{l:{59:{c:[917]}}}}}}}}}}}}},113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10869]},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8770]}}}}}}}}}}}}}}},105:{l:{108:{l:{105:{l:{98:{l:{114:{l:{105:{l:{117:{l:{109:{l:{59:{c:[8652]}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8496]}}}}},105:{l:{109:{l:{59:{c:[10867]}}}}}}},116:{l:{97:{l:{59:{c:[919]}}}}},117:{l:{109:{l:{108:{l:{59:{c:[203]}},c:[203]}}}}},120:{l:{105:{l:{115:{l:{116:{l:{115:{l:{59:{c:[8707]}}}}}}}}},112:{l:{111:{l:{110:{l:{101:{l:{110:{l:{116:{l:{105:{l:{97:{l:{108:{l:{69:{l:{59:{c:[8519]}}}}}}}}}}}}}}}}}}}}}}}}},70:{l:{99:{l:{121:{l:{59:{c:[1060]}}}}},102:{l:{114:{l:{59:{c:[120073]}}}}},105:{l:{108:{l:{108:{l:{101:{l:{100:{l:{83:{l:{109:{l:{97:{l:{108:{l:{108:{l:{83:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9724]}}}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{114:{l:{121:{l:{83:{l:{109:{l:{97:{l:{108:{l:{108:{l:{83:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9642]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120125]}}}}},114:{l:{65:{l:{108:{l:{108:{l:{59:{c:[8704]}}}}}}}}},117:{l:{114:{l:{105:{l:{101:{l:{114:{l:{116:{l:{114:{l:{102:{l:{59:{c:[8497]}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8497]}}}}}}}}},71:{l:{74:{l:{99:{l:{121:{l:{59:{c:[1027]}}}}}}},84:{l:{59:{c:[62]}},c:[62]},97:{l:{109:{l:{109:{l:{97:{l:{59:{c:[915]},100:{l:{59:{c:[988]}}}}}}}}}}},98:{l:{114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[286]}}}}}}}}}}},99:{l:{101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[290]}}}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[284]}}}}}}},121:{l:{59:{c:[1043]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[288]}}}}}}},102:{l:{114:{l:{59:{c:[120074]}}}}},103:{l:{59:{c:[8921]}}},111:{l:{112:{l:{102:{l:{59:{c:[120126]}}}}}}},114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8805]},76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8923]}}}}}}}}}}}}}}}}}}},70:{l:{117:{l:{108:{l:{108:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8807]}}}}}}}}}}}}}}}}}}},71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[10914]}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8823]}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10878]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8819]}}}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119970]}}}}}}},116:{l:{59:{c:[8811]}}}}},72:{l:{65:{l:{82:{l:{68:{l:{99:{l:{121:{l:{59:{c:[1066]}}}}}}}}}}},97:{l:{99:{l:{101:{l:{107:{l:{59:{c:[711]}}}}}}},116:{l:{59:{c:[94]}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[292]}}}}}}}}},102:{l:{114:{l:{59:{c:[8460]}}}}},105:{l:{108:{l:{98:{l:{101:{l:{114:{l:{116:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8459]}}}}}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[8461]}}}}},114:{l:{105:{l:{122:{l:{111:{l:{110:{l:{116:{l:{97:{l:{108:{l:{76:{l:{105:{l:{110:{l:{101:{l:{59:{c:[9472]}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8459]}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[294]}}}}}}}}}}},117:{l:{109:{l:{112:{l:{68:{l:{111:{l:{119:{l:{110:{l:{72:{l:{117:{l:{109:{l:{112:{l:{59:{c:[8782]}}}}}}}}}}}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8783]}}}}}}}}}}}}}}}}}}},73:{l:{69:{l:{99:{l:{121:{l:{59:{c:[1045]}}}}}}},74:{l:{108:{l:{105:{l:{103:{l:{59:{c:[306]}}}}}}}}},79:{l:{99:{l:{121:{l:{59:{c:[1025]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[205]}},c:[205]}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[206]}},c:[206]}}}}},121:{l:{59:{c:[1048]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[304]}}}}}}},102:{l:{114:{l:{59:{c:[8465]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[204]}},c:[204]}}}}}}}}},109:{l:{59:{c:[8465]},97:{l:{99:{l:{114:{l:{59:{c:[298]}}}}},103:{l:{105:{l:{110:{l:{97:{l:{114:{l:{121:{l:{73:{l:{59:{c:[8520]}}}}}}}}}}}}}}}}},112:{l:{108:{l:{105:{l:{101:{l:{115:{l:{59:{c:[8658]}}}}}}}}}}}}},110:{l:{116:{l:{59:{c:[8748]},101:{l:{103:{l:{114:{l:{97:{l:{108:{l:{59:{c:[8747]}}}}}}}}},114:{l:{115:{l:{101:{l:{99:{l:{116:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8898]}}}}}}}}}}}}}}}}}}}}},118:{l:{105:{l:{115:{l:{105:{l:{98:{l:{108:{l:{101:{l:{67:{l:{111:{l:{109:{l:{109:{l:{97:{l:{59:{c:[8291]}}}}}}}}}}},84:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8290]}}}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[302]}}}}}}},112:{l:{102:{l:{59:{c:[120128]}}}}},116:{l:{97:{l:{59:{c:[921]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8464]}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[296]}}}}}}}}}}},117:{l:{107:{l:{99:{l:{121:{l:{59:{c:[1030]}}}}}}},109:{l:{108:{l:{59:{c:[207]}},c:[207]}}}}}}},74:{l:{99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[308]}}}}}}},121:{l:{59:{c:[1049]}}}}},102:{l:{114:{l:{59:{c:[120077]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120129]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119973]}}}}},101:{l:{114:{l:{99:{l:{121:{l:{59:{c:[1032]}}}}}}}}}}},117:{l:{107:{l:{99:{l:{121:{l:{59:{c:[1028]}}}}}}}}}}},75:{l:{72:{l:{99:{l:{121:{l:{59:{c:[1061]}}}}}}},74:{l:{99:{l:{121:{l:{59:{c:[1036]}}}}}}},97:{l:{112:{l:{112:{l:{97:{l:{59:{c:[922]}}}}}}}}},99:{l:{101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[310]}}}}}}}}},121:{l:{59:{c:[1050]}}}}},102:{l:{114:{l:{59:{c:[120078]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120130]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119974]}}}}}}}}},76:{l:{74:{l:{99:{l:{121:{l:{59:{c:[1033]}}}}}}},84:{l:{59:{c:[60]}},c:[60]},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[313]}}}}}}}}},109:{l:{98:{l:{100:{l:{97:{l:{59:{c:[923]}}}}}}}}},110:{l:{103:{l:{59:{c:[10218]}}}}},112:{l:{108:{l:{97:{l:{99:{l:{101:{l:{116:{l:{114:{l:{102:{l:{59:{c:[8466]}}}}}}}}}}}}}}}}},114:{l:{114:{l:{59:{c:[8606]}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[317]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[315]}}}}}}}}},121:{l:{59:{c:[1051]}}}}},101:{l:{102:{l:{116:{l:{65:{l:{110:{l:{103:{l:{108:{l:{101:{l:{66:{l:{114:{l:{97:{l:{99:{l:{107:{l:{101:{l:{116:{l:{59:{c:[10216]}}}}}}}}}}}}}}}}}}}}}}},114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8592]},66:{l:{97:{l:{114:{l:{59:{c:[8676]}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8646]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},67:{l:{101:{l:{105:{l:{108:{l:{105:{l:{110:{l:{103:{l:{59:{c:[8968]}}}}}}}}}}}}}}},68:{l:{111:{l:{117:{l:{98:{l:{108:{l:{101:{l:{66:{l:{114:{l:{97:{l:{99:{l:{107:{l:{101:{l:{116:{l:{59:{c:[10214]}}}}}}}}}}}}}}}}}}}}}}},119:{l:{110:{l:{84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10593]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8643]},66:{l:{97:{l:{114:{l:{59:{c:[10585]}}}}}}}}}}}}}}}}}}}}}}}}}}},70:{l:{108:{l:{111:{l:{111:{l:{114:{l:{59:{c:[8970]}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8596]}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10574]}}}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[8867]},65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8612]}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10586]}}}}}}}}}}}}}}}}},114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[8882]},66:{l:{97:{l:{114:{l:{59:{c:[10703]}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8884]}}}}}}}}}}}}}}}}}}}}}}}}}}},85:{l:{112:{l:{68:{l:{111:{l:{119:{l:{110:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10577]}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10592]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8639]},66:{l:{97:{l:{114:{l:{59:{c:[10584]}}}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8636]},66:{l:{97:{l:{114:{l:{59:{c:[10578]}}}}}}}}}}}}}}}}}}},97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8656]}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8660]}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{115:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8922]}}}}}}}}}}}}}}}}}}}}}}}}},70:{l:{117:{l:{108:{l:{108:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8806]}}}}}}}}}}}}}}}}}}},71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8822]}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[10913]}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10877]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8818]}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120079]}}}}},108:{l:{59:{c:[8920]},101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8666]}}}}}}}}}}}}}}}}}}},109:{l:{105:{l:{100:{l:{111:{l:{116:{l:{59:{c:[319]}}}}}}}}}}},111:{l:{110:{l:{103:{l:{76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10229]}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10231]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10230]}}}}}}}}}}}}}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10232]}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10234]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10233]}}}}}}}}}}}}}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[120131]}}}}},119:{l:{101:{l:{114:{l:{76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8601]}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8600]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8466]}}}}},104:{l:{59:{c:[8624]}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[321]}}}}}}}}}}},116:{l:{59:{c:[8810]}}}}},77:{l:{97:{l:{112:{l:{59:{c:[10501]}}}}},99:{l:{121:{l:{59:{c:[1052]}}}}},101:{l:{100:{l:{105:{l:{117:{l:{109:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8287]}}}}}}}}}}}}}}}}}}},108:{l:{108:{l:{105:{l:{110:{l:{116:{l:{114:{l:{102:{l:{59:{c:[8499]}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120080]}}}}},105:{l:{110:{l:{117:{l:{115:{l:{80:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8723]}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120132]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8499]}}}}}}},117:{l:{59:{c:[924]}}}}},78:{l:{74:{l:{99:{l:{121:{l:{59:{c:[1034]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[323]}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[327]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[325]}}}}}}}}},121:{l:{59:{c:[1053]}}}}},101:{l:{103:{l:{97:{l:{116:{l:{105:{l:{118:{l:{101:{l:{77:{l:{101:{l:{100:{l:{105:{l:{117:{l:{109:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8203]}}}}}}}}}}}}}}}}}}}}}}},84:{l:{104:{l:{105:{l:{99:{l:{107:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8203]}}}}}}}}}}}}}}},110:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8203]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{114:{l:{121:{l:{84:{l:{104:{l:{105:{l:{110:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8203]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{116:{l:{101:{l:{100:{l:{71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8811]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8810]}}}}}}}}}}}}}}}}}}}}}}}}},119:{l:{76:{l:{105:{l:{110:{l:{101:{l:{59:{c:[10]}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120081]}}}}},111:{l:{66:{l:{114:{l:{101:{l:{97:{l:{107:{l:{59:{c:[8288]}}}}}}}}}}},110:{l:{66:{l:{114:{l:{101:{l:{97:{l:{107:{l:{105:{l:{110:{l:{103:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[160]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[8469]}}}}},116:{l:{59:{c:[10988]},67:{l:{111:{l:{110:{l:{103:{l:{114:{l:{117:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8802]}}}}}}}}}}}}}}}}},117:{l:{112:{l:{67:{l:{97:{l:{112:{l:{59:{c:[8813]}}}}}}}}}}}}},68:{l:{111:{l:{117:{l:{98:{l:{108:{l:{101:{l:{86:{l:{101:{l:{114:{l:{116:{l:{105:{l:{99:{l:{97:{l:{108:{l:{66:{l:{97:{l:{114:{l:{59:{c:[8742]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},69:{l:{108:{l:{101:{l:{109:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8713]}}}}}}}}}}}}},113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8800]},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8770,824]}}}}}}}}}}}}}}}}}}},120:{l:{105:{l:{115:{l:{116:{l:{115:{l:{59:{c:[8708]}}}}}}}}}}}}},71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8815]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8817]}}}}}}}}}}},70:{l:{117:{l:{108:{l:{108:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8807,824]}}}}}}}}}}}}}}}}}}},71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8811,824]}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8825]}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10878,824]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8821]}}}}}}}}}}}}}}}}}}}}}}}}},72:{l:{117:{l:{109:{l:{112:{l:{68:{l:{111:{l:{119:{l:{110:{l:{72:{l:{117:{l:{109:{l:{112:{l:{59:{c:[8782,824]}}}}}}}}}}}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8783,824]}}}}}}}}}}}}}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{84:{l:{114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[8938]},66:{l:{97:{l:{114:{l:{59:{c:[10703,824]}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8940]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{115:{l:{59:{c:[8814]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8816]}}}}}}}}}}},71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[8824]}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8810,824]}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10877,824]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8820]}}}}}}}}}}}}}}}}}}},78:{l:{101:{l:{115:{l:{116:{l:{101:{l:{100:{l:{71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{71:{l:{114:{l:{101:{l:{97:{l:{116:{l:{101:{l:{114:{l:{59:{c:[10914,824]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},76:{l:{101:{l:{115:{l:{115:{l:{76:{l:{101:{l:{115:{l:{115:{l:{59:{c:[10913,824]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},80:{l:{114:{l:{101:{l:{99:{l:{101:{l:{100:{l:{101:{l:{115:{l:{59:{c:[8832]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10927,824]}}}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8928]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},82:{l:{101:{l:{118:{l:{101:{l:{114:{l:{115:{l:{101:{l:{69:{l:{108:{l:{101:{l:{109:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8716]}}}}}}}}}}}}}}}}}}}}}}}}}}},105:{l:{103:{l:{104:{l:{116:{l:{84:{l:{114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[8939]},66:{l:{97:{l:{114:{l:{59:{c:[10704,824]}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8941]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},83:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{83:{l:{117:{l:{98:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8847,824]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8930]}}}}}}}}}}}}}}}}}}},112:{l:{101:{l:{114:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8848,824]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8931]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},117:{l:{98:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8834,8402]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8840]}}}}}}}}}}}}}}}}}}},99:{l:{99:{l:{101:{l:{101:{l:{100:{l:{115:{l:{59:{c:[8833]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10928,824]}}}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8929]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8831,824]}}}}}}}}}}}}}}}}}}}}}}},112:{l:{101:{l:{114:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8835,8402]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8841]}}}}}}}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8769]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8772]}}}}}}}}}}},70:{l:{117:{l:{108:{l:{108:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8775]}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8777]}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{114:{l:{116:{l:{105:{l:{99:{l:{97:{l:{108:{l:{66:{l:{97:{l:{114:{l:{59:{c:[8740]}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119977]}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[209]}},c:[209]}}}}}}}}},117:{l:{59:{c:[925]}}}}},79:{l:{69:{l:{108:{l:{105:{l:{103:{l:{59:{c:[338]}}}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[211]}},c:[211]}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[212]}},c:[212]}}}}},121:{l:{59:{c:[1054]}}}}},100:{l:{98:{l:{108:{l:{97:{l:{99:{l:{59:{c:[336]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120082]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[210]}},c:[210]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[332]}}}}}}},101:{l:{103:{l:{97:{l:{59:{c:[937]}}}}}}},105:{l:{99:{l:{114:{l:{111:{l:{110:{l:{59:{c:[927]}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120134]}}}}}}},112:{l:{101:{l:{110:{l:{67:{l:{117:{l:{114:{l:{108:{l:{121:{l:{68:{l:{111:{l:{117:{l:{98:{l:{108:{l:{101:{l:{81:{l:{117:{l:{111:{l:{116:{l:{101:{l:{59:{c:[8220]}}}}}}}}}}}}}}}}}}}}}}},81:{l:{117:{l:{111:{l:{116:{l:{101:{l:{59:{c:[8216]}}}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{59:{c:[10836]}}},115:{l:{99:{l:{114:{l:{59:{c:[119978]}}}}},108:{l:{97:{l:{115:{l:{104:{l:{59:{c:[216]}},c:[216]}}}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[213]}},c:[213]}}}}},109:{l:{101:{l:{115:{l:{59:{c:[10807]}}}}}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[214]}},c:[214]}}}}},118:{l:{101:{l:{114:{l:{66:{l:{97:{l:{114:{l:{59:{c:[8254]}}}}},114:{l:{97:{l:{99:{l:{101:{l:{59:{c:[9182]}}},107:{l:{101:{l:{116:{l:{59:{c:[9140]}}}}}}}}}}}}}}},80:{l:{97:{l:{114:{l:{101:{l:{110:{l:{116:{l:{104:{l:{101:{l:{115:{l:{105:{l:{115:{l:{59:{c:[9180]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},80:{l:{97:{l:{114:{l:{116:{l:{105:{l:{97:{l:{108:{l:{68:{l:{59:{c:[8706]}}}}}}}}}}}}}}},99:{l:{121:{l:{59:{c:[1055]}}}}},102:{l:{114:{l:{59:{c:[120083]}}}}},104:{l:{105:{l:{59:{c:[934]}}}}},105:{l:{59:{c:[928]}}},108:{l:{117:{l:{115:{l:{77:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[177]}}}}}}}}}}}}}}}}},111:{l:{105:{l:{110:{l:{99:{l:{97:{l:{114:{l:{101:{l:{112:{l:{108:{l:{97:{l:{110:{l:{101:{l:{59:{c:[8460]}}}}}}}}}}}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[8473]}}}}}}},114:{l:{59:{c:[10939]},101:{l:{99:{l:{101:{l:{100:{l:{101:{l:{115:{l:{59:{c:[8826]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10927]}}}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8828]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8830]}}}}}}}}}}}}}}}}}}}}}}},105:{l:{109:{l:{101:{l:{59:{c:[8243]}}}}}}},111:{l:{100:{l:{117:{l:{99:{l:{116:{l:{59:{c:[8719]}}}}}}}}},112:{l:{111:{l:{114:{l:{116:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8759]},97:{l:{108:{l:{59:{c:[8733]}}}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119979]}}}}},105:{l:{59:{c:[936]}}}}}}},81:{l:{85:{l:{79:{l:{84:{l:{59:{c:[34]}},c:[34]}}}}},102:{l:{114:{l:{59:{c:[120084]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[8474]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119980]}}}}}}}}},82:{l:{66:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10512]}}}}}}}}},69:{l:{71:{l:{59:{c:[174]}},c:[174]}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[340]}}}}}}}}},110:{l:{103:{l:{59:{c:[10219]}}}}},114:{l:{114:{l:{59:{c:[8608]},116:{l:{108:{l:{59:{c:[10518]}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[344]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[342]}}}}}}}}},121:{l:{59:{c:[1056]}}}}},101:{l:{59:{c:[8476]},118:{l:{101:{l:{114:{l:{115:{l:{101:{l:{69:{l:{108:{l:{101:{l:{109:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8715]}}}}}}}}}}}}},113:{l:{117:{l:{105:{l:{108:{l:{105:{l:{98:{l:{114:{l:{105:{l:{117:{l:{109:{l:{59:{c:[8651]}}}}}}}}}}}}}}}}}}}}}}},85:{l:{112:{l:{69:{l:{113:{l:{117:{l:{105:{l:{108:{l:{105:{l:{98:{l:{114:{l:{105:{l:{117:{l:{109:{l:{59:{c:[10607]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[8476]}}}}},104:{l:{111:{l:{59:{c:[929]}}}}},105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{110:{l:{103:{l:{108:{l:{101:{l:{66:{l:{114:{l:{97:{l:{99:{l:{107:{l:{101:{l:{116:{l:{59:{c:[10217]}}}}}}}}}}}}}}}}}}}}}}},114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8594]},66:{l:{97:{l:{114:{l:{59:{c:[8677]}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8644]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},67:{l:{101:{l:{105:{l:{108:{l:{105:{l:{110:{l:{103:{l:{59:{c:[8969]}}}}}}}}}}}}}}},68:{l:{111:{l:{117:{l:{98:{l:{108:{l:{101:{l:{66:{l:{114:{l:{97:{l:{99:{l:{107:{l:{101:{l:{116:{l:{59:{c:[10215]}}}}}}}}}}}}}}}}}}}}}}},119:{l:{110:{l:{84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10589]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8642]},66:{l:{97:{l:{114:{l:{59:{c:[10581]}}}}}}}}}}}}}}}}}}}}}}}}}}},70:{l:{108:{l:{111:{l:{111:{l:{114:{l:{59:{c:[8971]}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[8866]},65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8614]}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10587]}}}}}}}}}}}}}}}}},114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[8883]},66:{l:{97:{l:{114:{l:{59:{c:[10704]}}}}}}},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8885]}}}}}}}}}}}}}}}}}}}}}}}}}}},85:{l:{112:{l:{68:{l:{111:{l:{119:{l:{110:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10575]}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10588]}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8638]},66:{l:{97:{l:{114:{l:{59:{c:[10580]}}}}}}}}}}}}}}}}}}}}}}},86:{l:{101:{l:{99:{l:{116:{l:{111:{l:{114:{l:{59:{c:[8640]},66:{l:{97:{l:{114:{l:{59:{c:[10579]}}}}}}}}}}}}}}}}}}},97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8658]}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[8477]}}}}},117:{l:{110:{l:{100:{l:{73:{l:{109:{l:{112:{l:{108:{l:{105:{l:{101:{l:{115:{l:{59:{c:[10608]}}}}}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8667]}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8475]}}}}},104:{l:{59:{c:[8625]}}}}},117:{l:{108:{l:{101:{l:{68:{l:{101:{l:{108:{l:{97:{l:{121:{l:{101:{l:{100:{l:{59:{c:[10740]}}}}}}}}}}}}}}}}}}}}}}},83:{l:{72:{l:{67:{l:{72:{l:{99:{l:{121:{l:{59:{c:[1065]}}}}}}}}},99:{l:{121:{l:{59:{c:[1064]}}}}}}},79:{l:{70:{l:{84:{l:{99:{l:{121:{l:{59:{c:[1068]}}}}}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[346]}}}}}}}}}}},99:{l:{59:{c:[10940]},97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[352]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[350]}}}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[348]}}}}}}},121:{l:{59:{c:[1057]}}}}},102:{l:{114:{l:{59:{c:[120086]}}}}},104:{l:{111:{l:{114:{l:{116:{l:{68:{l:{111:{l:{119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8595]}}}}}}}}}}}}}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8592]}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8594]}}}}}}}}}}}}}}}}}}}}},85:{l:{112:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8593]}}}}}}}}}}}}}}}}}}}}}}},105:{l:{103:{l:{109:{l:{97:{l:{59:{c:[931]}}}}}}}}},109:{l:{97:{l:{108:{l:{108:{l:{67:{l:{105:{l:{114:{l:{99:{l:{108:{l:{101:{l:{59:{c:[8728]}}}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120138]}}}}}}},113:{l:{114:{l:{116:{l:{59:{c:[8730]}}}}},117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9633]},73:{l:{110:{l:{116:{l:{101:{l:{114:{l:{115:{l:{101:{l:{99:{l:{116:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8851]}}}}}}}}}}}}}}}}}}}}}}}}},83:{l:{117:{l:{98:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8847]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8849]}}}}}}}}}}}}}}}}}}},112:{l:{101:{l:{114:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8848]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8850]}}}}}}}}}}}}}}}}}}}}}}}}}}},85:{l:{110:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8852]}}}}}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119982]}}}}}}},116:{l:{97:{l:{114:{l:{59:{c:[8902]}}}}}}},117:{l:{98:{l:{59:{c:[8912]},115:{l:{101:{l:{116:{l:{59:{c:[8912]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8838]}}}}}}}}}}}}}}}}}}},99:{l:{99:{l:{101:{l:{101:{l:{100:{l:{115:{l:{59:{c:[8827]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[10928]}}}}}}}}}}},83:{l:{108:{l:{97:{l:{110:{l:{116:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8829]}}}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8831]}}}}}}}}}}}}}}}}}}}}},104:{l:{84:{l:{104:{l:{97:{l:{116:{l:{59:{c:[8715]}}}}}}}}}}}}},109:{l:{59:{c:[8721]}}},112:{l:{59:{c:[8913]},101:{l:{114:{l:{115:{l:{101:{l:{116:{l:{59:{c:[8835]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8839]}}}}}}}}}}}}}}}}}}}}},115:{l:{101:{l:{116:{l:{59:{c:[8913]}}}}}}}}}}}}},84:{l:{72:{l:{79:{l:{82:{l:{78:{l:{59:{c:[222]}},c:[222]}}}}}}},82:{l:{65:{l:{68:{l:{69:{l:{59:{c:[8482]}}}}}}}}},83:{l:{72:{l:{99:{l:{121:{l:{59:{c:[1035]}}}}}}},99:{l:{121:{l:{59:{c:[1062]}}}}}}},97:{l:{98:{l:{59:{c:[9]}}},117:{l:{59:{c:[932]}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[356]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[354]}}}}}}}}},121:{l:{59:{c:[1058]}}}}},102:{l:{114:{l:{59:{c:[120087]}}}}},104:{l:{101:{l:{114:{l:{101:{l:{102:{l:{111:{l:{114:{l:{101:{l:{59:{c:[8756]}}}}}}}}}}}}},116:{l:{97:{l:{59:{c:[920]}}}}}}},105:{l:{99:{l:{107:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8287,8202]}}}}}}}}}}}}}}},110:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8201]}}}}}}}}}}}}}}}}},105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8764]},69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8771]}}}}}}}}}}},70:{l:{117:{l:{108:{l:{108:{l:{69:{l:{113:{l:{117:{l:{97:{l:{108:{l:{59:{c:[8773]}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8776]}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120139]}}}}}}},114:{l:{105:{l:{112:{l:{108:{l:{101:{l:{68:{l:{111:{l:{116:{l:{59:{c:[8411]}}}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119983]}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[358]}}}}}}}}}}}}},85:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[218]}},c:[218]}}}}}}},114:{l:{114:{l:{59:{c:[8607]},111:{l:{99:{l:{105:{l:{114:{l:{59:{c:[10569]}}}}}}}}}}}}}}},98:{l:{114:{l:{99:{l:{121:{l:{59:{c:[1038]}}}}},101:{l:{118:{l:{101:{l:{59:{c:[364]}}}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[219]}},c:[219]}}}}},121:{l:{59:{c:[1059]}}}}},100:{l:{98:{l:{108:{l:{97:{l:{99:{l:{59:{c:[368]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120088]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[217]}},c:[217]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[362]}}}}}}}}},110:{l:{100:{l:{101:{l:{114:{l:{66:{l:{97:{l:{114:{l:{59:{c:[95]}}}}},114:{l:{97:{l:{99:{l:{101:{l:{59:{c:[9183]}}},107:{l:{101:{l:{116:{l:{59:{c:[9141]}}}}}}}}}}}}}}},80:{l:{97:{l:{114:{l:{101:{l:{110:{l:{116:{l:{104:{l:{101:{l:{115:{l:{105:{l:{115:{l:{59:{c:[9181]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},105:{l:{111:{l:{110:{l:{59:{c:[8899]},80:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8846]}}}}}}}}}}}}}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[370]}}}}}}},112:{l:{102:{l:{59:{c:[120140]}}}}}}},112:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8593]},66:{l:{97:{l:{114:{l:{59:{c:[10514]}}}}}}},68:{l:{111:{l:{119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8645]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},68:{l:{111:{l:{119:{l:{110:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8597]}}}}}}}}}}}}}}}}}}},69:{l:{113:{l:{117:{l:{105:{l:{108:{l:{105:{l:{98:{l:{114:{l:{105:{l:{117:{l:{109:{l:{59:{c:[10606]}}}}}}}}}}}}}}}}}}}}}}},84:{l:{101:{l:{101:{l:{59:{c:[8869]},65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8613]}}}}}}}}}}}}}}}}},97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8657]}}}}}}}}}}},100:{l:{111:{l:{119:{l:{110:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8661]}}}}}}}}}}}}}}}}}}},112:{l:{101:{l:{114:{l:{76:{l:{101:{l:{102:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8598]}}}}}}}}}}}}}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{65:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8599]}}}}}}}}}}}}}}}}}}}}}}}}}}},115:{l:{105:{l:{59:{c:[978]},108:{l:{111:{l:{110:{l:{59:{c:[933]}}}}}}}}}}}}},114:{l:{105:{l:{110:{l:{103:{l:{59:{c:[366]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119984]}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[360]}}}}}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[220]}},c:[220]}}}}}}},86:{l:{68:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8875]}}}}}}}}},98:{l:{97:{l:{114:{l:{59:{c:[10987]}}}}}}},99:{l:{121:{l:{59:{c:[1042]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8873]},108:{l:{59:{c:[10982]}}}}}}}}}}},101:{l:{101:{l:{59:{c:[8897]}}},114:{l:{98:{l:{97:{l:{114:{l:{59:{c:[8214]}}}}}}},116:{l:{59:{c:[8214]},105:{l:{99:{l:{97:{l:{108:{l:{66:{l:{97:{l:{114:{l:{59:{c:[8739]}}}}}}},76:{l:{105:{l:{110:{l:{101:{l:{59:{c:[124]}}}}}}}}},83:{l:{101:{l:{112:{l:{97:{l:{114:{l:{97:{l:{116:{l:{111:{l:{114:{l:{59:{c:[10072]}}}}}}}}}}}}}}}}}}},84:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[8768]}}}}}}}}}}}}}}}}}}}}},121:{l:{84:{l:{104:{l:{105:{l:{110:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8202]}}}}}}}}}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120089]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120141]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119985]}}}}}}},118:{l:{100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8874]}}}}}}}}}}}}},87:{l:{99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[372]}}}}}}}}},101:{l:{100:{l:{103:{l:{101:{l:{59:{c:[8896]}}}}}}}}},102:{l:{114:{l:{59:{c:[120090]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120142]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119986]}}}}}}}}},88:{l:{102:{l:{114:{l:{59:{c:[120091]}}}}},105:{l:{59:{c:[926]}}},111:{l:{112:{l:{102:{l:{59:{c:[120143]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119987]}}}}}}}}},89:{l:{65:{l:{99:{l:{121:{l:{59:{c:[1071]}}}}}}},73:{l:{99:{l:{121:{l:{59:{c:[1031]}}}}}}},85:{l:{99:{l:{121:{l:{59:{c:[1070]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[221]}},c:[221]}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[374]}}}}}}},121:{l:{59:{c:[1067]}}}}},102:{l:{114:{l:{59:{c:[120092]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120144]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119988]}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[376]}}}}}}}}},90:{l:{72:{l:{99:{l:{121:{l:{59:{c:[1046]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[377]}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[381]}}}}}}}}},121:{l:{59:{c:[1047]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[379]}}}}}}},101:{l:{114:{l:{111:{l:{87:{l:{105:{l:{100:{l:{116:{l:{104:{l:{83:{l:{112:{l:{97:{l:{99:{l:{101:{l:{59:{c:[8203]}}}}}}}}}}}}}}}}}}}}}}}}},116:{l:{97:{l:{59:{c:[918]}}}}}}},102:{l:{114:{l:{59:{c:[8488]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[8484]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119989]}}}}}}}}},97:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[225]}},c:[225]}}}}}}}}},98:{l:{114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[259]}}}}}}}}}}},99:{l:{59:{c:[8766]},69:{l:{59:{c:[8766,819]}}},100:{l:{59:{c:[8767]}}},105:{l:{114:{l:{99:{l:{59:{c:[226]}},c:[226]}}}}},117:{l:{116:{l:{101:{l:{59:{c:[180]}},c:[180]}}}}},121:{l:{59:{c:[1072]}}}}},101:{l:{108:{l:{105:{l:{103:{l:{59:{c:[230]}},c:[230]}}}}}}},102:{l:{59:{c:[8289]},114:{l:{59:{c:[120094]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[224]}},c:[224]}}}}}}}}},108:{l:{101:{l:{102:{l:{115:{l:{121:{l:{109:{l:{59:{c:[8501]}}}}}}}}},112:{l:{104:{l:{59:{c:[8501]}}}}}}},112:{l:{104:{l:{97:{l:{59:{c:[945]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[257]}}}}},108:{l:{103:{l:{59:{c:[10815]}}}}}}},112:{l:{59:{c:[38]}},c:[38]}}},110:{l:{100:{l:{59:{c:[8743]},97:{l:{110:{l:{100:{l:{59:{c:[10837]}}}}}}},100:{l:{59:{c:[10844]}}},115:{l:{108:{l:{111:{l:{112:{l:{101:{l:{59:{c:[10840]}}}}}}}}}}},118:{l:{59:{c:[10842]}}}}},103:{l:{59:{c:[8736]},101:{l:{59:{c:[10660]}}},108:{l:{101:{l:{59:{c:[8736]}}}}},109:{l:{115:{l:{100:{l:{59:{c:[8737]},97:{l:{97:{l:{59:{c:[10664]}}},98:{l:{59:{c:[10665]}}},99:{l:{59:{c:[10666]}}},100:{l:{59:{c:[10667]}}},101:{l:{59:{c:[10668]}}},102:{l:{59:{c:[10669]}}},103:{l:{59:{c:[10670]}}},104:{l:{59:{c:[10671]}}}}}}}}}}},114:{l:{116:{l:{59:{c:[8735]},118:{l:{98:{l:{59:{c:[8894]},100:{l:{59:{c:[10653]}}}}}}}}}}},115:{l:{112:{l:{104:{l:{59:{c:[8738]}}}}},116:{l:{59:{c:[197]}}}}},122:{l:{97:{l:{114:{l:{114:{l:{59:{c:[9084]}}}}}}}}}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[261]}}}}}}},112:{l:{102:{l:{59:{c:[120146]}}}}}}},112:{l:{59:{c:[8776]},69:{l:{59:{c:[10864]}}},97:{l:{99:{l:{105:{l:{114:{l:{59:{c:[10863]}}}}}}}}},101:{l:{59:{c:[8778]}}},105:{l:{100:{l:{59:{c:[8779]}}}}},111:{l:{115:{l:{59:{c:[39]}}}}},112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[8776]},101:{l:{113:{l:{59:{c:[8778]}}}}}}}}}}}}}}},114:{l:{105:{l:{110:{l:{103:{l:{59:{c:[229]}},c:[229]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119990]}}}}},116:{l:{59:{c:[42]}}},121:{l:{109:{l:{112:{l:{59:{c:[8776]},101:{l:{113:{l:{59:{c:[8781]}}}}}}}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[227]}},c:[227]}}}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[228]}},c:[228]}}}}},119:{l:{99:{l:{111:{l:{110:{l:{105:{l:{110:{l:{116:{l:{59:{c:[8755]}}}}}}}}}}}}},105:{l:{110:{l:{116:{l:{59:{c:[10769]}}}}}}}}}}},98:{l:{78:{l:{111:{l:{116:{l:{59:{c:[10989]}}}}}}},97:{l:{99:{l:{107:{l:{99:{l:{111:{l:{110:{l:{103:{l:{59:{c:[8780]}}}}}}}}},101:{l:{112:{l:{115:{l:{105:{l:{108:{l:{111:{l:{110:{l:{59:{c:[1014]}}}}}}}}}}}}}}},112:{l:{114:{l:{105:{l:{109:{l:{101:{l:{59:{c:[8245]}}}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8765]},101:{l:{113:{l:{59:{c:[8909]}}}}}}}}}}}}}}},114:{l:{118:{l:{101:{l:{101:{l:{59:{c:[8893]}}}}}}},119:{l:{101:{l:{100:{l:{59:{c:[8965]},103:{l:{101:{l:{59:{c:[8965]}}}}}}}}}}}}}}},98:{l:{114:{l:{107:{l:{59:{c:[9141]},116:{l:{98:{l:{114:{l:{107:{l:{59:{c:[9142]}}}}}}}}}}}}}}},99:{l:{111:{l:{110:{l:{103:{l:{59:{c:[8780]}}}}}}},121:{l:{59:{c:[1073]}}}}},100:{l:{113:{l:{117:{l:{111:{l:{59:{c:[8222]}}}}}}}}},101:{l:{99:{l:{97:{l:{117:{l:{115:{l:{59:{c:[8757]},101:{l:{59:{c:[8757]}}}}}}}}}}},109:{l:{112:{l:{116:{l:{121:{l:{118:{l:{59:{c:[10672]}}}}}}}}}}},112:{l:{115:{l:{105:{l:{59:{c:[1014]}}}}}}},114:{l:{110:{l:{111:{l:{117:{l:{59:{c:[8492]}}}}}}}}},116:{l:{97:{l:{59:{c:[946]}}},104:{l:{59:{c:[8502]}}},119:{l:{101:{l:{101:{l:{110:{l:{59:{c:[8812]}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120095]}}}}},105:{l:{103:{l:{99:{l:{97:{l:{112:{l:{59:{c:[8898]}}}}},105:{l:{114:{l:{99:{l:{59:{c:[9711]}}}}}}},117:{l:{112:{l:{59:{c:[8899]}}}}}}},111:{l:{100:{l:{111:{l:{116:{l:{59:{c:[10752]}}}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10753]}}}}}}}}},116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[10754]}}}}}}}}}}}}},115:{l:{113:{l:{99:{l:{117:{l:{112:{l:{59:{c:[10758]}}}}}}}}},116:{l:{97:{l:{114:{l:{59:{c:[9733]}}}}}}}}},116:{l:{114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[9661]}}}}}}}}},117:{l:{112:{l:{59:{c:[9651]}}}}}}}}}}}}}}}}}}}}},117:{l:{112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10756]}}}}}}}}}}},118:{l:{101:{l:{101:{l:{59:{c:[8897]}}}}}}},119:{l:{101:{l:{100:{l:{103:{l:{101:{l:{59:{c:[8896]}}}}}}}}}}}}}}},107:{l:{97:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10509]}}}}}}}}}}},108:{l:{97:{l:{99:{l:{107:{l:{108:{l:{111:{l:{122:{l:{101:{l:{110:{l:{103:{l:{101:{l:{59:{c:[10731]}}}}}}}}}}}}}}},115:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[9642]}}}}}}}}}}}}},116:{l:{114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[9652]},100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[9662]}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[9666]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[9656]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},110:{l:{107:{l:{59:{c:[9251]}}}}}}},107:{l:{49:{l:{50:{l:{59:{c:[9618]}}},52:{l:{59:{c:[9617]}}}}},51:{l:{52:{l:{59:{c:[9619]}}}}}}},111:{l:{99:{l:{107:{l:{59:{c:[9608]}}}}}}}}},110:{l:{101:{l:{59:{c:[61,8421]},113:{l:{117:{l:{105:{l:{118:{l:{59:{c:[8801,8421]}}}}}}}}}}},111:{l:{116:{l:{59:{c:[8976]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120147]}}}}},116:{l:{59:{c:[8869]},116:{l:{111:{l:{109:{l:{59:{c:[8869]}}}}}}}}},119:{l:{116:{l:{105:{l:{101:{l:{59:{c:[8904]}}}}}}}}},120:{l:{68:{l:{76:{l:{59:{c:[9559]}}},82:{l:{59:{c:[9556]}}},108:{l:{59:{c:[9558]}}},114:{l:{59:{c:[9555]}}}}},72:{l:{59:{c:[9552]},68:{l:{59:{c:[9574]}}},85:{l:{59:{c:[9577]}}},100:{l:{59:{c:[9572]}}},117:{l:{59:{c:[9575]}}}}},85:{l:{76:{l:{59:{c:[9565]}}},82:{l:{59:{c:[9562]}}},108:{l:{59:{c:[9564]}}},114:{l:{59:{c:[9561]}}}}},86:{l:{59:{c:[9553]},72:{l:{59:{c:[9580]}}},76:{l:{59:{c:[9571]}}},82:{l:{59:{c:[9568]}}},104:{l:{59:{c:[9579]}}},108:{l:{59:{c:[9570]}}},114:{l:{59:{c:[9567]}}}}},98:{l:{111:{l:{120:{l:{59:{c:[10697]}}}}}}},100:{l:{76:{l:{59:{c:[9557]}}},82:{l:{59:{c:[9554]}}},108:{l:{59:{c:[9488]}}},114:{l:{59:{c:[9484]}}}}},104:{l:{59:{c:[9472]},68:{l:{59:{c:[9573]}}},85:{l:{59:{c:[9576]}}},100:{l:{59:{c:[9516]}}},117:{l:{59:{c:[9524]}}}}},109:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[8863]}}}}}}}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8862]}}}}}}}}},116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8864]}}}}}}}}}}},117:{l:{76:{l:{59:{c:[9563]}}},82:{l:{59:{c:[9560]}}},108:{l:{59:{c:[9496]}}},114:{l:{59:{c:[9492]}}}}},118:{l:{59:{c:[9474]},72:{l:{59:{c:[9578]}}},76:{l:{59:{c:[9569]}}},82:{l:{59:{c:[9566]}}},104:{l:{59:{c:[9532]}}},108:{l:{59:{c:[9508]}}},114:{l:{59:{c:[9500]}}}}}}}}},112:{l:{114:{l:{105:{l:{109:{l:{101:{l:{59:{c:[8245]}}}}}}}}}}},114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[728]}}}}}}},118:{l:{98:{l:{97:{l:{114:{l:{59:{c:[166]}},c:[166]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119991]}}}}},101:{l:{109:{l:{105:{l:{59:{c:[8271]}}}}}}},105:{l:{109:{l:{59:{c:[8765]},101:{l:{59:{c:[8909]}}}}}}},111:{l:{108:{l:{59:{c:[92]},98:{l:{59:{c:[10693]}}},104:{l:{115:{l:{117:{l:{98:{l:{59:{c:[10184]}}}}}}}}}}}}}}},117:{l:{108:{l:{108:{l:{59:{c:[8226]},101:{l:{116:{l:{59:{c:[8226]}}}}}}}}},109:{l:{112:{l:{59:{c:[8782]},69:{l:{59:{c:[10926]}}},101:{l:{59:{c:[8783]},113:{l:{59:{c:[8783]}}}}}}}}}}}}},99:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[263]}}}}}}}}},112:{l:{59:{c:[8745]},97:{l:{110:{l:{100:{l:{59:{c:[10820]}}}}}}},98:{l:{114:{l:{99:{l:{117:{l:{112:{l:{59:{c:[10825]}}}}}}}}}}},99:{l:{97:{l:{112:{l:{59:{c:[10827]}}}}},117:{l:{112:{l:{59:{c:[10823]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[10816]}}}}}}},115:{l:{59:{c:[8745,65024]}}}}},114:{l:{101:{l:{116:{l:{59:{c:[8257]}}}}},111:{l:{110:{l:{59:{c:[711]}}}}}}}}},99:{l:{97:{l:{112:{l:{115:{l:{59:{c:[10829]}}}}},114:{l:{111:{l:{110:{l:{59:{c:[269]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[231]}},c:[231]}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[265]}}}}}}},117:{l:{112:{l:{115:{l:{59:{c:[10828]},115:{l:{109:{l:{59:{c:[10832]}}}}}}}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[267]}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[184]}},c:[184]}}}}},109:{l:{112:{l:{116:{l:{121:{l:{118:{l:{59:{c:[10674]}}}}}}}}}}},110:{l:{116:{l:{59:{c:[162]},101:{l:{114:{l:{100:{l:{111:{l:{116:{l:{59:{c:[183]}}}}}}}}}}}},c:[162]}}}}},102:{l:{114:{l:{59:{c:[120096]}}}}},104:{l:{99:{l:{121:{l:{59:{c:[1095]}}}}},101:{l:{99:{l:{107:{l:{59:{c:[10003]},109:{l:{97:{l:{114:{l:{107:{l:{59:{c:[10003]}}}}}}}}}}}}}}},105:{l:{59:{c:[967]}}}}},105:{l:{114:{l:{59:{c:[9675]},69:{l:{59:{c:[10691]}}},99:{l:{59:{c:[710]},101:{l:{113:{l:{59:{c:[8791]}}}}},108:{l:{101:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8634]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8635]}}}}}}}}}}}}}}}}}}}}},100:{l:{82:{l:{59:{c:[174]}}},83:{l:{59:{c:[9416]}}},97:{l:{115:{l:{116:{l:{59:{c:[8859]}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[8858]}}}}}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8861]}}}}}}}}}}}}}}}}},101:{l:{59:{c:[8791]}}},102:{l:{110:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10768]}}}}}}}}}}},109:{l:{105:{l:{100:{l:{59:{c:[10991]}}}}}}},115:{l:{99:{l:{105:{l:{114:{l:{59:{c:[10690]}}}}}}}}}}}}},108:{l:{117:{l:{98:{l:{115:{l:{59:{c:[9827]},117:{l:{105:{l:{116:{l:{59:{c:[9827]}}}}}}}}}}}}}}},111:{l:{108:{l:{111:{l:{110:{l:{59:{c:[58]},101:{l:{59:{c:[8788]},113:{l:{59:{c:[8788]}}}}}}}}}}},109:{l:{109:{l:{97:{l:{59:{c:[44]},116:{l:{59:{c:[64]}}}}}}},112:{l:{59:{c:[8705]},102:{l:{110:{l:{59:{c:[8728]}}}}},108:{l:{101:{l:{109:{l:{101:{l:{110:{l:{116:{l:{59:{c:[8705]}}}}}}}}},120:{l:{101:{l:{115:{l:{59:{c:[8450]}}}}}}}}}}}}}}},110:{l:{103:{l:{59:{c:[8773]},100:{l:{111:{l:{116:{l:{59:{c:[10861]}}}}}}}}},105:{l:{110:{l:{116:{l:{59:{c:[8750]}}}}}}}}},112:{l:{102:{l:{59:{c:[120148]}}},114:{l:{111:{l:{100:{l:{59:{c:[8720]}}}}}}},121:{l:{59:{c:[169]},115:{l:{114:{l:{59:{c:[8471]}}}}}},c:[169]}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8629]}}}}}}},111:{l:{115:{l:{115:{l:{59:{c:[10007]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119992]}}}}},117:{l:{98:{l:{59:{c:[10959]},101:{l:{59:{c:[10961]}}}}},112:{l:{59:{c:[10960]},101:{l:{59:{c:[10962]}}}}}}}}},116:{l:{100:{l:{111:{l:{116:{l:{59:{c:[8943]}}}}}}}}},117:{l:{100:{l:{97:{l:{114:{l:{114:{l:{108:{l:{59:{c:[10552]}}},114:{l:{59:{c:[10549]}}}}}}}}}}},101:{l:{112:{l:{114:{l:{59:{c:[8926]}}}}},115:{l:{99:{l:{59:{c:[8927]}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8630]},112:{l:{59:{c:[10557]}}}}}}}}}}},112:{l:{59:{c:[8746]},98:{l:{114:{l:{99:{l:{97:{l:{112:{l:{59:{c:[10824]}}}}}}}}}}},99:{l:{97:{l:{112:{l:{59:{c:[10822]}}}}},117:{l:{112:{l:{59:{c:[10826]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8845]}}}}}}},111:{l:{114:{l:{59:{c:[10821]}}}}},115:{l:{59:{c:[8746,65024]}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8631]},109:{l:{59:{c:[10556]}}}}}}}}},108:{l:{121:{l:{101:{l:{113:{l:{112:{l:{114:{l:{101:{l:{99:{l:{59:{c:[8926]}}}}}}}}},115:{l:{117:{l:{99:{l:{99:{l:{59:{c:[8927]}}}}}}}}}}}}},118:{l:{101:{l:{101:{l:{59:{c:[8910]}}}}}}},119:{l:{101:{l:{100:{l:{103:{l:{101:{l:{59:{c:[8911]}}}}}}}}}}}}}}},114:{l:{101:{l:{110:{l:{59:{c:[164]}},c:[164]}}}}},118:{l:{101:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8630]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8631]}}}}}}}}}}}}}}}}}}}}}}}}}}},118:{l:{101:{l:{101:{l:{59:{c:[8910]}}}}}}},119:{l:{101:{l:{100:{l:{59:{c:[8911]}}}}}}}}},119:{l:{99:{l:{111:{l:{110:{l:{105:{l:{110:{l:{116:{l:{59:{c:[8754]}}}}}}}}}}}}},105:{l:{110:{l:{116:{l:{59:{c:[8753]}}}}}}}}},121:{l:{108:{l:{99:{l:{116:{l:{121:{l:{59:{c:[9005]}}}}}}}}}}}}},100:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8659]}}}}}}},72:{l:{97:{l:{114:{l:{59:{c:[10597]}}}}}}},97:{l:{103:{l:{103:{l:{101:{l:{114:{l:{59:{c:[8224]}}}}}}}}},108:{l:{101:{l:{116:{l:{104:{l:{59:{c:[8504]}}}}}}}}},114:{l:{114:{l:{59:{c:[8595]}}}}},115:{l:{104:{l:{59:{c:[8208]},118:{l:{59:{c:[8867]}}}}}}}}},98:{l:{107:{l:{97:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10511]}}}}}}}}}}},108:{l:{97:{l:{99:{l:{59:{c:[733]}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[271]}}}}}}}}},121:{l:{59:{c:[1076]}}}}},100:{l:{59:{c:[8518]},97:{l:{103:{l:{103:{l:{101:{l:{114:{l:{59:{c:[8225]}}}}}}}}},114:{l:{114:{l:{59:{c:[8650]}}}}}}},111:{l:{116:{l:{115:{l:{101:{l:{113:{l:{59:{c:[10871]}}}}}}}}}}}}},101:{l:{103:{l:{59:{c:[176]}},c:[176]},108:{l:{116:{l:{97:{l:{59:{c:[948]}}}}}}},109:{l:{112:{l:{116:{l:{121:{l:{118:{l:{59:{c:[10673]}}}}}}}}}}}}},102:{l:{105:{l:{115:{l:{104:{l:{116:{l:{59:{c:[10623]}}}}}}}}},114:{l:{59:{c:[120097]}}}}},104:{l:{97:{l:{114:{l:{108:{l:{59:{c:[8643]}}},114:{l:{59:{c:[8642]}}}}}}}}},105:{l:{97:{l:{109:{l:{59:{c:[8900]},111:{l:{110:{l:{100:{l:{59:{c:[8900]},115:{l:{117:{l:{105:{l:{116:{l:{59:{c:[9830]}}}}}}}}}}}}}}},115:{l:{59:{c:[9830]}}}}}}},101:{l:{59:{c:[168]}}},103:{l:{97:{l:{109:{l:{109:{l:{97:{l:{59:{c:[989]}}}}}}}}}}},115:{l:{105:{l:{110:{l:{59:{c:[8946]}}}}}}},118:{l:{59:{c:[247]},105:{l:{100:{l:{101:{l:{59:{c:[247]},111:{l:{110:{l:{116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8903]}}}}}}}}}}}}}}}},c:[247]}}}}},111:{l:{110:{l:{120:{l:{59:{c:[8903]}}}}}}}}}}},106:{l:{99:{l:{121:{l:{59:{c:[1106]}}}}}}},108:{l:{99:{l:{111:{l:{114:{l:{110:{l:{59:{c:[8990]}}}}}}},114:{l:{111:{l:{112:{l:{59:{c:[8973]}}}}}}}}}}},111:{l:{108:{l:{108:{l:{97:{l:{114:{l:{59:{c:[36]}}}}}}}}},112:{l:{102:{l:{59:{c:[120149]}}}}},116:{l:{59:{c:[729]},101:{l:{113:{l:{59:{c:[8784]},100:{l:{111:{l:{116:{l:{59:{c:[8785]}}}}}}}}}}},109:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[8760]}}}}}}}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8724]}}}}}}}}},115:{l:{113:{l:{117:{l:{97:{l:{114:{l:{101:{l:{59:{c:[8865]}}}}}}}}}}}}}}},117:{l:{98:{l:{108:{l:{101:{l:{98:{l:{97:{l:{114:{l:{119:{l:{101:{l:{100:{l:{103:{l:{101:{l:{59:{c:[8966]}}}}}}}}}}}}}}}}}}}}}}}}},119:{l:{110:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8595]}}}}}}}}}}},100:{l:{111:{l:{119:{l:{110:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{115:{l:{59:{c:[8650]}}}}}}}}}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8643]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8642]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{98:{l:{107:{l:{97:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10512]}}}}}}}}}}}}},99:{l:{111:{l:{114:{l:{110:{l:{59:{c:[8991]}}}}}}},114:{l:{111:{l:{112:{l:{59:{c:[8972]}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119993]}}},121:{l:{59:{c:[1109]}}}}},111:{l:{108:{l:{59:{c:[10742]}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[273]}}}}}}}}}}},116:{l:{100:{l:{111:{l:{116:{l:{59:{c:[8945]}}}}}}},114:{l:{105:{l:{59:{c:[9663]},102:{l:{59:{c:[9662]}}}}}}}}},117:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8693]}}}}}}},104:{l:{97:{l:{114:{l:{59:{c:[10607]}}}}}}}}},119:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[10662]}}}}}}}}}}}}},122:{l:{99:{l:{121:{l:{59:{c:[1119]}}}}},105:{l:{103:{l:{114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10239]}}}}}}}}}}}}}}}}},101:{l:{68:{l:{68:{l:{111:{l:{116:{l:{59:{c:[10871]}}}}}}},111:{l:{116:{l:{59:{c:[8785]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[233]}},c:[233]}}}}}}},115:{l:{116:{l:{101:{l:{114:{l:{59:{c:[10862]}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[283]}}}}}}}}},105:{l:{114:{l:{59:{c:[8790]},99:{l:{59:{c:[234]}},c:[234]}}}}},111:{l:{108:{l:{111:{l:{110:{l:{59:{c:[8789]}}}}}}}}},121:{l:{59:{c:[1101]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[279]}}}}}}},101:{l:{59:{c:[8519]}}},102:{l:{68:{l:{111:{l:{116:{l:{59:{c:[8786]}}}}}}},114:{l:{59:{c:[120098]}}}}},103:{l:{59:{c:[10906]},114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[232]}},c:[232]}}}}}}},115:{l:{59:{c:[10902]},100:{l:{111:{l:{116:{l:{59:{c:[10904]}}}}}}}}}}},108:{l:{59:{c:[10905]},105:{l:{110:{l:{116:{l:{101:{l:{114:{l:{115:{l:{59:{c:[9191]}}}}}}}}}}}}},108:{l:{59:{c:[8467]}}},115:{l:{59:{c:[10901]},100:{l:{111:{l:{116:{l:{59:{c:[10903]}}}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[275]}}}}}}},112:{l:{116:{l:{121:{l:{59:{c:[8709]},115:{l:{101:{l:{116:{l:{59:{c:[8709]}}}}}}},118:{l:{59:{c:[8709]}}}}}}}}},115:{l:{112:{l:{49:{l:{51:{l:{59:{c:[8196]}}},52:{l:{59:{c:[8197]}}}}},59:{c:[8195]}}}}}}},110:{l:{103:{l:{59:{c:[331]}}},115:{l:{112:{l:{59:{c:[8194]}}}}}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[281]}}}}}}},112:{l:{102:{l:{59:{c:[120150]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[8917]},115:{l:{108:{l:{59:{c:[10723]}}}}}}}}},108:{l:{117:{l:{115:{l:{59:{c:[10865]}}}}}}},115:{l:{105:{l:{59:{c:[949]},108:{l:{111:{l:{110:{l:{59:{c:[949]}}}}}}},118:{l:{59:{c:[1013]}}}}}}}}},113:{l:{99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[8790]}}}}}}},111:{l:{108:{l:{111:{l:{110:{l:{59:{c:[8789]}}}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8770]}}}}},108:{l:{97:{l:{110:{l:{116:{l:{103:{l:{116:{l:{114:{l:{59:{c:[10902]}}}}}}},108:{l:{101:{l:{115:{l:{115:{l:{59:{c:[10901]}}}}}}}}}}}}}}}}}}},117:{l:{97:{l:{108:{l:{115:{l:{59:{c:[61]}}}}}}},101:{l:{115:{l:{116:{l:{59:{c:[8799]}}}}}}},105:{l:{118:{l:{59:{c:[8801]},68:{l:{68:{l:{59:{c:[10872]}}}}}}}}}}},118:{l:{112:{l:{97:{l:{114:{l:{115:{l:{108:{l:{59:{c:[10725]}}}}}}}}}}}}}}},114:{l:{68:{l:{111:{l:{116:{l:{59:{c:[8787]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[10609]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8495]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8784]}}}}}}},105:{l:{109:{l:{59:{c:[8770]}}}}}}},116:{l:{97:{l:{59:{c:[951]}}},104:{l:{59:{c:[240]}},c:[240]}}},117:{l:{109:{l:{108:{l:{59:{c:[235]}},c:[235]}}},114:{l:{111:{l:{59:{c:[8364]}}}}}}},120:{l:{99:{l:{108:{l:{59:{c:[33]}}}}},105:{l:{115:{l:{116:{l:{59:{c:[8707]}}}}}}},112:{l:{101:{l:{99:{l:{116:{l:{97:{l:{116:{l:{105:{l:{111:{l:{110:{l:{59:{c:[8496]}}}}}}}}}}}}}}}}},111:{l:{110:{l:{101:{l:{110:{l:{116:{l:{105:{l:{97:{l:{108:{l:{101:{l:{59:{c:[8519]}}}}}}}}}}}}}}}}}}}}}}}}},102:{l:{97:{l:{108:{l:{108:{l:{105:{l:{110:{l:{103:{l:{100:{l:{111:{l:{116:{l:{115:{l:{101:{l:{113:{l:{59:{c:[8786]}}}}}}}}}}}}}}}}}}}}}}}}},99:{l:{121:{l:{59:{c:[1092]}}}}},101:{l:{109:{l:{97:{l:{108:{l:{101:{l:{59:{c:[9792]}}}}}}}}}}},102:{l:{105:{l:{108:{l:{105:{l:{103:{l:{59:{c:[64259]}}}}}}}}},108:{l:{105:{l:{103:{l:{59:{c:[64256]}}}}},108:{l:{105:{l:{103:{l:{59:{c:[64260]}}}}}}}}},114:{l:{59:{c:[120099]}}}}},105:{l:{108:{l:{105:{l:{103:{l:{59:{c:[64257]}}}}}}}}},106:{l:{108:{l:{105:{l:{103:{l:{59:{c:[102,106]}}}}}}}}},108:{l:{97:{l:{116:{l:{59:{c:[9837]}}}}},108:{l:{105:{l:{103:{l:{59:{c:[64258]}}}}}}},116:{l:{110:{l:{115:{l:{59:{c:[9649]}}}}}}}}},110:{l:{111:{l:{102:{l:{59:{c:[402]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120151]}}}}},114:{l:{97:{l:{108:{l:{108:{l:{59:{c:[8704]}}}}}}},107:{l:{59:{c:[8916]},118:{l:{59:{c:[10969]}}}}}}}}},112:{l:{97:{l:{114:{l:{116:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10765]}}}}}}}}}}}}}}},114:{l:{97:{l:{99:{l:{49:{l:{50:{l:{59:{c:[189]}},c:[189]},51:{l:{59:{c:[8531]}}},52:{l:{59:{c:[188]}},c:[188]},53:{l:{59:{c:[8533]}}},54:{l:{59:{c:[8537]}}},56:{l:{59:{c:[8539]}}}}},50:{l:{51:{l:{59:{c:[8532]}}},53:{l:{59:{c:[8534]}}}}},51:{l:{52:{l:{59:{c:[190]}},c:[190]},53:{l:{59:{c:[8535]}}},56:{l:{59:{c:[8540]}}}}},52:{l:{53:{l:{59:{c:[8536]}}}}},53:{l:{54:{l:{59:{c:[8538]}}},56:{l:{59:{c:[8541]}}}}},55:{l:{56:{l:{59:{c:[8542]}}}}}}},115:{l:{108:{l:{59:{c:[8260]}}}}}}},111:{l:{119:{l:{110:{l:{59:{c:[8994]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119995]}}}}}}}}},103:{l:{69:{l:{59:{c:[8807]},108:{l:{59:{c:[10892]}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[501]}}}}}}}}},109:{l:{109:{l:{97:{l:{59:{c:[947]},100:{l:{59:{c:[989]}}}}}}}}},112:{l:{59:{c:[10886]}}}}},98:{l:{114:{l:{101:{l:{118:{l:{101:{l:{59:{c:[287]}}}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[285]}}}}}}},121:{l:{59:{c:[1075]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[289]}}}}}}},101:{l:{59:{c:[8805]},108:{l:{59:{c:[8923]}}},113:{l:{59:{c:[8805]},113:{l:{59:{c:[8807]}}},115:{l:{108:{l:{97:{l:{110:{l:{116:{l:{59:{c:[10878]}}}}}}}}}}}}},115:{l:{59:{c:[10878]},99:{l:{99:{l:{59:{c:[10921]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[10880]},111:{l:{59:{c:[10882]},108:{l:{59:{c:[10884]}}}}}}}}}}},108:{l:{59:{c:[8923,65024]},101:{l:{115:{l:{59:{c:[10900]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120100]}}}}},103:{l:{59:{c:[8811]},103:{l:{59:{c:[8921]}}}}},105:{l:{109:{l:{101:{l:{108:{l:{59:{c:[8503]}}}}}}}}},106:{l:{99:{l:{121:{l:{59:{c:[1107]}}}}}}},108:{l:{59:{c:[8823]},69:{l:{59:{c:[10898]}}},97:{l:{59:{c:[10917]}}},106:{l:{59:{c:[10916]}}}}},110:{l:{69:{l:{59:{c:[8809]}}},97:{l:{112:{l:{59:{c:[10890]},112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10890]}}}}}}}}}}}}},101:{l:{59:{c:[10888]},113:{l:{59:{c:[10888]},113:{l:{59:{c:[8809]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8935]}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120152]}}}}}}},114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[96]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8458]}}}}},105:{l:{109:{l:{59:{c:[8819]},101:{l:{59:{c:[10894]}}},108:{l:{59:{c:[10896]}}}}}}}}},116:{l:{59:{c:[62]},99:{l:{99:{l:{59:{c:[10919]}}},105:{l:{114:{l:{59:{c:[10874]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8919]}}}}}}},108:{l:{80:{l:{97:{l:{114:{l:{59:{c:[10645]}}}}}}}}},113:{l:{117:{l:{101:{l:{115:{l:{116:{l:{59:{c:[10876]}}}}}}}}}}},114:{l:{97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10886]}}}}}}}}}}},114:{l:{114:{l:{59:{c:[10616]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8919]}}}}}}},101:{l:{113:{l:{108:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8923]}}}}}}}}},113:{l:{108:{l:{101:{l:{115:{l:{115:{l:{59:{c:[10892]}}}}}}}}}}}}}}},108:{l:{101:{l:{115:{l:{115:{l:{59:{c:[8823]}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8819]}}}}}}}}}},c:[62]},118:{l:{101:{l:{114:{l:{116:{l:{110:{l:{101:{l:{113:{l:{113:{l:{59:{c:[8809,65024]}}}}}}}}}}}}}}},110:{l:{69:{l:{59:{c:[8809,65024]}}}}}}}}},104:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8660]}}}}}}},97:{l:{105:{l:{114:{l:{115:{l:{112:{l:{59:{c:[8202]}}}}}}}}},108:{l:{102:{l:{59:{c:[189]}}}}},109:{l:{105:{l:{108:{l:{116:{l:{59:{c:[8459]}}}}}}}}},114:{l:{100:{l:{99:{l:{121:{l:{59:{c:[1098]}}}}}}},114:{l:{59:{c:[8596]},99:{l:{105:{l:{114:{l:{59:{c:[10568]}}}}}}},119:{l:{59:{c:[8621]}}}}}}}}},98:{l:{97:{l:{114:{l:{59:{c:[8463]}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[293]}}}}}}}}},101:{l:{97:{l:{114:{l:{116:{l:{115:{l:{59:{c:[9829]},117:{l:{105:{l:{116:{l:{59:{c:[9829]}}}}}}}}}}}}}}},108:{l:{108:{l:{105:{l:{112:{l:{59:{c:[8230]}}}}}}}}},114:{l:{99:{l:{111:{l:{110:{l:{59:{c:[8889]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120101]}}}}},107:{l:{115:{l:{101:{l:{97:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10533]}}}}}}}}}}},119:{l:{97:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10534]}}}}}}}}}}}}}}},111:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8703]}}}}}}},109:{l:{116:{l:{104:{l:{116:{l:{59:{c:[8763]}}}}}}}}},111:{l:{107:{l:{108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8617]}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8618]}}}}}}}}}}}}}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[120153]}}}}},114:{l:{98:{l:{97:{l:{114:{l:{59:{c:[8213]}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119997]}}}}},108:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8463]}}}}}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[295]}}}}}}}}}}},121:{l:{98:{l:{117:{l:{108:{l:{108:{l:{59:{c:[8259]}}}}}}}}},112:{l:{104:{l:{101:{l:{110:{l:{59:{c:[8208]}}}}}}}}}}}}},105:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[237]}},c:[237]}}}}}}}}},99:{l:{59:{c:[8291]},105:{l:{114:{l:{99:{l:{59:{c:[238]}},c:[238]}}}}},121:{l:{59:{c:[1080]}}}}},101:{l:{99:{l:{121:{l:{59:{c:[1077]}}}}},120:{l:{99:{l:{108:{l:{59:{c:[161]}},c:[161]}}}}}}},102:{l:{102:{l:{59:{c:[8660]}}},114:{l:{59:{c:[120102]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[236]}},c:[236]}}}}}}}}},105:{l:{59:{c:[8520]},105:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10764]}}}}}}},110:{l:{116:{l:{59:{c:[8749]}}}}}}},110:{l:{102:{l:{105:{l:{110:{l:{59:{c:[10716]}}}}}}}}},111:{l:{116:{l:{97:{l:{59:{c:[8489]}}}}}}}}},106:{l:{108:{l:{105:{l:{103:{l:{59:{c:[307]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[299]}}}}},103:{l:{101:{l:{59:{c:[8465]}}},108:{l:{105:{l:{110:{l:{101:{l:{59:{c:[8464]}}}}}}}}},112:{l:{97:{l:{114:{l:{116:{l:{59:{c:[8465]}}}}}}}}}}},116:{l:{104:{l:{59:{c:[305]}}}}}}},111:{l:{102:{l:{59:{c:[8887]}}}}},112:{l:{101:{l:{100:{l:{59:{c:[437]}}}}}}}}},110:{l:{59:{c:[8712]},99:{l:{97:{l:{114:{l:{101:{l:{59:{c:[8453]}}}}}}}}},102:{l:{105:{l:{110:{l:{59:{c:[8734]},116:{l:{105:{l:{101:{l:{59:{c:[10717]}}}}}}}}}}}}},111:{l:{100:{l:{111:{l:{116:{l:{59:{c:[305]}}}}}}}}},116:{l:{59:{c:[8747]},99:{l:{97:{l:{108:{l:{59:{c:[8890]}}}}}}},101:{l:{103:{l:{101:{l:{114:{l:{115:{l:{59:{c:[8484]}}}}}}}}},114:{l:{99:{l:{97:{l:{108:{l:{59:{c:[8890]}}}}}}}}}}},108:{l:{97:{l:{114:{l:{104:{l:{107:{l:{59:{c:[10775]}}}}}}}}}}},112:{l:{114:{l:{111:{l:{100:{l:{59:{c:[10812]}}}}}}}}}}}}},111:{l:{99:{l:{121:{l:{59:{c:[1105]}}}}},103:{l:{111:{l:{110:{l:{59:{c:[303]}}}}}}},112:{l:{102:{l:{59:{c:[120154]}}}}},116:{l:{97:{l:{59:{c:[953]}}}}}}},112:{l:{114:{l:{111:{l:{100:{l:{59:{c:[10812]}}}}}}}}},113:{l:{117:{l:{101:{l:{115:{l:{116:{l:{59:{c:[191]}},c:[191]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119998]}}}}},105:{l:{110:{l:{59:{c:[8712]},69:{l:{59:{c:[8953]}}},100:{l:{111:{l:{116:{l:{59:{c:[8949]}}}}}}},115:{l:{59:{c:[8948]},118:{l:{59:{c:[8947]}}}}},118:{l:{59:{c:[8712]}}}}}}}}},116:{l:{59:{c:[8290]},105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[297]}}}}}}}}}}},117:{l:{107:{l:{99:{l:{121:{l:{59:{c:[1110]}}}}}}},109:{l:{108:{l:{59:{c:[239]}},c:[239]}}}}}}},106:{l:{99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[309]}}}}}}},121:{l:{59:{c:[1081]}}}}},102:{l:{114:{l:{59:{c:[120103]}}}}},109:{l:{97:{l:{116:{l:{104:{l:{59:{c:[567]}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120155]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[119999]}}}}},101:{l:{114:{l:{99:{l:{121:{l:{59:{c:[1112]}}}}}}}}}}},117:{l:{107:{l:{99:{l:{121:{l:{59:{c:[1108]}}}}}}}}}}},107:{l:{97:{l:{112:{l:{112:{l:{97:{l:{59:{c:[954]},118:{l:{59:{c:[1008]}}}}}}}}}}},99:{l:{101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[311]}}}}}}}}},121:{l:{59:{c:[1082]}}}}},102:{l:{114:{l:{59:{c:[120104]}}}}},103:{l:{114:{l:{101:{l:{101:{l:{110:{l:{59:{c:[312]}}}}}}}}}}},104:{l:{99:{l:{121:{l:{59:{c:[1093]}}}}}}},106:{l:{99:{l:{121:{l:{59:{c:[1116]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120156]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[12e4]}}}}}}}}},108:{l:{65:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8666]}}}}}}},114:{l:{114:{l:{59:{c:[8656]}}}}},116:{l:{97:{l:{105:{l:{108:{l:{59:{c:[10523]}}}}}}}}}}},66:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10510]}}}}}}}}},69:{l:{59:{c:[8806]},103:{l:{59:{c:[10891]}}}}},72:{l:{97:{l:{114:{l:{59:{c:[10594]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[314]}}}}}}}}},101:{l:{109:{l:{112:{l:{116:{l:{121:{l:{118:{l:{59:{c:[10676]}}}}}}}}}}}}},103:{l:{114:{l:{97:{l:{110:{l:{59:{c:[8466]}}}}}}}}},109:{l:{98:{l:{100:{l:{97:{l:{59:{c:[955]}}}}}}}}},110:{l:{103:{l:{59:{c:[10216]},100:{l:{59:{c:[10641]}}},108:{l:{101:{l:{59:{c:[10216]}}}}}}}}},112:{l:{59:{c:[10885]}}},113:{l:{117:{l:{111:{l:{59:{c:[171]}},c:[171]}}}}},114:{l:{114:{l:{59:{c:[8592]},98:{l:{59:{c:[8676]},102:{l:{115:{l:{59:{c:[10527]}}}}}}},102:{l:{115:{l:{59:{c:[10525]}}}}},104:{l:{107:{l:{59:{c:[8617]}}}}},108:{l:{112:{l:{59:{c:[8619]}}}}},112:{l:{108:{l:{59:{c:[10553]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[10611]}}}}}}},116:{l:{108:{l:{59:{c:[8610]}}}}}}}}},116:{l:{59:{c:[10923]},97:{l:{105:{l:{108:{l:{59:{c:[10521]}}}}}}},101:{l:{59:{c:[10925]},115:{l:{59:{c:[10925,65024]}}}}}}}}},98:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10508]}}}}}}},98:{l:{114:{l:{107:{l:{59:{c:[10098]}}}}}}},114:{l:{97:{l:{99:{l:{101:{l:{59:{c:[123]}}},107:{l:{59:{c:[91]}}}}}}},107:{l:{101:{l:{59:{c:[10635]}}},115:{l:{108:{l:{100:{l:{59:{c:[10639]}}},117:{l:{59:{c:[10637]}}}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[318]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[316]}}}}}}},105:{l:{108:{l:{59:{c:[8968]}}}}}}},117:{l:{98:{l:{59:{c:[123]}}}}},121:{l:{59:{c:[1083]}}}}},100:{l:{99:{l:{97:{l:{59:{c:[10550]}}}}},113:{l:{117:{l:{111:{l:{59:{c:[8220]},114:{l:{59:{c:[8222]}}}}}}}}},114:{l:{100:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10599]}}}}}}}}},117:{l:{115:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10571]}}}}}}}}}}}}},115:{l:{104:{l:{59:{c:[8626]}}}}}}},101:{l:{59:{c:[8804]},102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8592]},116:{l:{97:{l:{105:{l:{108:{l:{59:{c:[8610]}}}}}}}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[8637]}}}}}}}}},117:{l:{112:{l:{59:{c:[8636]}}}}}}}}}}}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{115:{l:{59:{c:[8647]}}}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8596]},115:{l:{59:{c:[8646]}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{115:{l:{59:{c:[8651]}}}}}}}}}}}}}}}}},115:{l:{113:{l:{117:{l:{105:{l:{103:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8621]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},116:{l:{104:{l:{114:{l:{101:{l:{101:{l:{116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8907]}}}}}}}}}}}}}}}}}}}}}}}}},103:{l:{59:{c:[8922]}}},113:{l:{59:{c:[8804]},113:{l:{59:{c:[8806]}}},115:{l:{108:{l:{97:{l:{110:{l:{116:{l:{59:{c:[10877]}}}}}}}}}}}}},115:{l:{59:{c:[10877]},99:{l:{99:{l:{59:{c:[10920]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[10879]},111:{l:{59:{c:[10881]},114:{l:{59:{c:[10883]}}}}}}}}}}},103:{l:{59:{c:[8922,65024]},101:{l:{115:{l:{59:{c:[10899]}}}}}}},115:{l:{97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10885]}}}}}}}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8918]}}}}}}},101:{l:{113:{l:{103:{l:{116:{l:{114:{l:{59:{c:[8922]}}}}}}},113:{l:{103:{l:{116:{l:{114:{l:{59:{c:[10891]}}}}}}}}}}}}},103:{l:{116:{l:{114:{l:{59:{c:[8822]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8818]}}}}}}}}}}}}},102:{l:{105:{l:{115:{l:{104:{l:{116:{l:{59:{c:[10620]}}}}}}}}},108:{l:{111:{l:{111:{l:{114:{l:{59:{c:[8970]}}}}}}}}},114:{l:{59:{c:[120105]}}}}},103:{l:{59:{c:[8822]},69:{l:{59:{c:[10897]}}}}},104:{l:{97:{l:{114:{l:{100:{l:{59:{c:[8637]}}},117:{l:{59:{c:[8636]},108:{l:{59:{c:[10602]}}}}}}}}},98:{l:{108:{l:{107:{l:{59:{c:[9604]}}}}}}}}},106:{l:{99:{l:{121:{l:{59:{c:[1113]}}}}}}},108:{l:{59:{c:[8810]},97:{l:{114:{l:{114:{l:{59:{c:[8647]}}}}}}},99:{l:{111:{l:{114:{l:{110:{l:{101:{l:{114:{l:{59:{c:[8990]}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{100:{l:{59:{c:[10603]}}}}}}}}},116:{l:{114:{l:{105:{l:{59:{c:[9722]}}}}}}}}},109:{l:{105:{l:{100:{l:{111:{l:{116:{l:{59:{c:[320]}}}}}}}}},111:{l:{117:{l:{115:{l:{116:{l:{59:{c:[9136]},97:{l:{99:{l:{104:{l:{101:{l:{59:{c:[9136]}}}}}}}}}}}}}}}}}}},110:{l:{69:{l:{59:{c:[8808]}}},97:{l:{112:{l:{59:{c:[10889]},112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10889]}}}}}}}}}}}}},101:{l:{59:{c:[10887]},113:{l:{59:{c:[10887]},113:{l:{59:{c:[8808]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8934]}}}}}}}}},111:{l:{97:{l:{110:{l:{103:{l:{59:{c:[10220]}}}}},114:{l:{114:{l:{59:{c:[8701]}}}}}}},98:{l:{114:{l:{107:{l:{59:{c:[10214]}}}}}}},110:{l:{103:{l:{108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10229]}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10231]}}}}}}}}}}}}}}}}}}}}}}}}}}}}},109:{l:{97:{l:{112:{l:{115:{l:{116:{l:{111:{l:{59:{c:[10236]}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[10230]}}}}}}}}}}}}}}}}}}}}}}}}},111:{l:{112:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8619]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8620]}}}}}}}}}}}}}}}}}}}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[10629]}}}}},102:{l:{59:{c:[120157]}}},108:{l:{117:{l:{115:{l:{59:{c:[10797]}}}}}}}}},116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[10804]}}}}}}}}}}},119:{l:{97:{l:{115:{l:{116:{l:{59:{c:[8727]}}}}}}},98:{l:{97:{l:{114:{l:{59:{c:[95]}}}}}}}}},122:{l:{59:{c:[9674]},101:{l:{110:{l:{103:{l:{101:{l:{59:{c:[9674]}}}}}}}}},102:{l:{59:{c:[10731]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[40]},108:{l:{116:{l:{59:{c:[10643]}}}}}}}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8646]}}}}}}},99:{l:{111:{l:{114:{l:{110:{l:{101:{l:{114:{l:{59:{c:[8991]}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{59:{c:[8651]},100:{l:{59:{c:[10605]}}}}}}}}},109:{l:{59:{c:[8206]}}},116:{l:{114:{l:{105:{l:{59:{c:[8895]}}}}}}}}},115:{l:{97:{l:{113:{l:{117:{l:{111:{l:{59:{c:[8249]}}}}}}}}},99:{l:{114:{l:{59:{c:[120001]}}}}},104:{l:{59:{c:[8624]}}},105:{l:{109:{l:{59:{c:[8818]},101:{l:{59:{c:[10893]}}},103:{l:{59:{c:[10895]}}}}}}},113:{l:{98:{l:{59:{c:[91]}}},117:{l:{111:{l:{59:{c:[8216]},114:{l:{59:{c:[8218]}}}}}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[322]}}}}}}}}}}},116:{l:{59:{c:[60]},99:{l:{99:{l:{59:{c:[10918]}}},105:{l:{114:{l:{59:{c:[10873]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8918]}}}}}}},104:{l:{114:{l:{101:{l:{101:{l:{59:{c:[8907]}}}}}}}}},105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8905]}}}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10614]}}}}}}}}},113:{l:{117:{l:{101:{l:{115:{l:{116:{l:{59:{c:[10875]}}}}}}}}}}},114:{l:{80:{l:{97:{l:{114:{l:{59:{c:[10646]}}}}}}},105:{l:{59:{c:[9667]},101:{l:{59:{c:[8884]}}},102:{l:{59:{c:[9666]}}}}}}}},c:[60]},117:{l:{114:{l:{100:{l:{115:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10570]}}}}}}}}}}},117:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10598]}}}}}}}}}}}}},118:{l:{101:{l:{114:{l:{116:{l:{110:{l:{101:{l:{113:{l:{113:{l:{59:{c:[8808,65024]}}}}}}}}}}}}}}},110:{l:{69:{l:{59:{c:[8808,65024]}}}}}}}}},109:{l:{68:{l:{68:{l:{111:{l:{116:{l:{59:{c:[8762]}}}}}}}}},97:{l:{99:{l:{114:{l:{59:{c:[175]}},c:[175]}}},108:{l:{101:{l:{59:{c:[9794]}}},116:{l:{59:{c:[10016]},101:{l:{115:{l:{101:{l:{59:{c:[10016]}}}}}}}}}}},112:{l:{59:{c:[8614]},115:{l:{116:{l:{111:{l:{59:{c:[8614]},100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[8615]}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8612]}}}}}}}}},117:{l:{112:{l:{59:{c:[8613]}}}}}}}}}}}}},114:{l:{107:{l:{101:{l:{114:{l:{59:{c:[9646]}}}}}}}}}}},99:{l:{111:{l:{109:{l:{109:{l:{97:{l:{59:{c:[10793]}}}}}}}}},121:{l:{59:{c:[1084]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8212]}}}}}}}}},101:{l:{97:{l:{115:{l:{117:{l:{114:{l:{101:{l:{100:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[8737]}}}}}}}}}}}}}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120106]}}}}},104:{l:{111:{l:{59:{c:[8487]}}}}},105:{l:{99:{l:{114:{l:{111:{l:{59:{c:[181]}},c:[181]}}}}},100:{l:{59:{c:[8739]},97:{l:{115:{l:{116:{l:{59:{c:[42]}}}}}}},99:{l:{105:{l:{114:{l:{59:{c:[10992]}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[183]}},c:[183]}}}}}}},110:{l:{117:{l:{115:{l:{59:{c:[8722]},98:{l:{59:{c:[8863]}}},100:{l:{59:{c:[8760]},117:{l:{59:{c:[10794]}}}}}}}}}}}}},108:{l:{99:{l:{112:{l:{59:{c:[10971]}}}}},100:{l:{114:{l:{59:{c:[8230]}}}}}}},110:{l:{112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[8723]}}}}}}}}}}},111:{l:{100:{l:{101:{l:{108:{l:{115:{l:{59:{c:[8871]}}}}}}}}},112:{l:{102:{l:{59:{c:[120158]}}}}}}},112:{l:{59:{c:[8723]}}},115:{l:{99:{l:{114:{l:{59:{c:[120002]}}}}},116:{l:{112:{l:{111:{l:{115:{l:{59:{c:[8766]}}}}}}}}}}},117:{l:{59:{c:[956]},108:{l:{116:{l:{105:{l:{109:{l:{97:{l:{112:{l:{59:{c:[8888]}}}}}}}}}}}}},109:{l:{97:{l:{112:{l:{59:{c:[8888]}}}}}}}}}}},110:{l:{71:{l:{103:{l:{59:{c:[8921,824]}}},116:{l:{59:{c:[8811,8402]},118:{l:{59:{c:[8811,824]}}}}}}},76:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8653]}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8654]}}}}}}}}}}}}}}}}}}}}}}}}}}},108:{l:{59:{c:[8920,824]}}},116:{l:{59:{c:[8810,8402]},118:{l:{59:{c:[8810,824]}}}}}}},82:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8655]}}}}}}}}}}}}}}}}}}}}},86:{l:{68:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8879]}}}}}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8878]}}}}}}}}}}},97:{l:{98:{l:{108:{l:{97:{l:{59:{c:[8711]}}}}}}},99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[324]}}}}}}}}},110:{l:{103:{l:{59:{c:[8736,8402]}}}}},112:{l:{59:{c:[8777]},69:{l:{59:{c:[10864,824]}}},105:{l:{100:{l:{59:{c:[8779,824]}}}}},111:{l:{115:{l:{59:{c:[329]}}}}},112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[8777]}}}}}}}}}}},116:{l:{117:{l:{114:{l:{59:{c:[9838]},97:{l:{108:{l:{59:{c:[9838]},115:{l:{59:{c:[8469]}}}}}}}}}}}}}}},98:{l:{115:{l:{112:{l:{59:{c:[160]}},c:[160]}}},117:{l:{109:{l:{112:{l:{59:{c:[8782,824]},101:{l:{59:{c:[8783,824]}}}}}}}}}}},99:{l:{97:{l:{112:{l:{59:{c:[10819]}}},114:{l:{111:{l:{110:{l:{59:{c:[328]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[326]}}}}}}}}},111:{l:{110:{l:{103:{l:{59:{c:[8775]},100:{l:{111:{l:{116:{l:{59:{c:[10861,824]}}}}}}}}}}}}},117:{l:{112:{l:{59:{c:[10818]}}}}},121:{l:{59:{c:[1085]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8211]}}}}}}}}},101:{l:{59:{c:[8800]},65:{l:{114:{l:{114:{l:{59:{c:[8663]}}}}}}},97:{l:{114:{l:{104:{l:{107:{l:{59:{c:[10532]}}}}},114:{l:{59:{c:[8599]},111:{l:{119:{l:{59:{c:[8599]}}}}}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8784,824]}}}}}}},113:{l:{117:{l:{105:{l:{118:{l:{59:{c:[8802]}}}}}}}}},115:{l:{101:{l:{97:{l:{114:{l:{59:{c:[10536]}}}}}}},105:{l:{109:{l:{59:{c:[8770,824]}}}}}}},120:{l:{105:{l:{115:{l:{116:{l:{59:{c:[8708]},115:{l:{59:{c:[8708]}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120107]}}}}},103:{l:{69:{l:{59:{c:[8807,824]}}},101:{l:{59:{c:[8817]},113:{l:{59:{c:[8817]},113:{l:{59:{c:[8807,824]}}},115:{l:{108:{l:{97:{l:{110:{l:{116:{l:{59:{c:[10878,824]}}}}}}}}}}}}},115:{l:{59:{c:[10878,824]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8821]}}}}}}},116:{l:{59:{c:[8815]},114:{l:{59:{c:[8815]}}}}}}},104:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8654]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[8622]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[10994]}}}}}}}}},105:{l:{59:{c:[8715]},115:{l:{59:{c:[8956]},100:{l:{59:{c:[8954]}}}}},118:{l:{59:{c:[8715]}}}}},106:{l:{99:{l:{121:{l:{59:{c:[1114]}}}}}}},108:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8653]}}}}}}},69:{l:{59:{c:[8806,824]}}},97:{l:{114:{l:{114:{l:{59:{c:[8602]}}}}}}},100:{l:{114:{l:{59:{c:[8229]}}}}},101:{l:{59:{c:[8816]},102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8602]}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8622]}}}}}}}}}}}}}}}}}}}}}}}}},113:{l:{59:{c:[8816]},113:{l:{59:{c:[8806,824]}}},115:{l:{108:{l:{97:{l:{110:{l:{116:{l:{59:{c:[10877,824]}}}}}}}}}}}}},115:{l:{59:{c:[10877,824]},115:{l:{59:{c:[8814]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8820]}}}}}}},116:{l:{59:{c:[8814]},114:{l:{105:{l:{59:{c:[8938]},101:{l:{59:{c:[8940]}}}}}}}}}}},109:{l:{105:{l:{100:{l:{59:{c:[8740]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120159]}}}}},116:{l:{59:{c:[172]},105:{l:{110:{l:{59:{c:[8713]},69:{l:{59:{c:[8953,824]}}},100:{l:{111:{l:{116:{l:{59:{c:[8949,824]}}}}}}},118:{l:{97:{l:{59:{c:[8713]}}},98:{l:{59:{c:[8951]}}},99:{l:{59:{c:[8950]}}}}}}}}},110:{l:{105:{l:{59:{c:[8716]},118:{l:{97:{l:{59:{c:[8716]}}},98:{l:{59:{c:[8958]}}},99:{l:{59:{c:[8957]}}}}}}}}}},c:[172]}}},112:{l:{97:{l:{114:{l:{59:{c:[8742]},97:{l:{108:{l:{108:{l:{101:{l:{108:{l:{59:{c:[8742]}}}}}}}}}}},115:{l:{108:{l:{59:{c:[11005,8421]}}}}},116:{l:{59:{c:[8706,824]}}}}}}},111:{l:{108:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10772]}}}}}}}}}}},114:{l:{59:{c:[8832]},99:{l:{117:{l:{101:{l:{59:{c:[8928]}}}}}}},101:{l:{59:{c:[10927,824]},99:{l:{59:{c:[8832]},101:{l:{113:{l:{59:{c:[10927,824]}}}}}}}}}}}}},114:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8655]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[8603]},99:{l:{59:{c:[10547,824]}}},119:{l:{59:{c:[8605,824]}}}}}}}}},105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8603]}}}}}}}}}}}}}}}}}}},116:{l:{114:{l:{105:{l:{59:{c:[8939]},101:{l:{59:{c:[8941]}}}}}}}}}}},115:{l:{99:{l:{59:{c:[8833]},99:{l:{117:{l:{101:{l:{59:{c:[8929]}}}}}}},101:{l:{59:{c:[10928,824]}}},114:{l:{59:{c:[120003]}}}}},104:{l:{111:{l:{114:{l:{116:{l:{109:{l:{105:{l:{100:{l:{59:{c:[8740]}}}}}}},112:{l:{97:{l:{114:{l:{97:{l:{108:{l:{108:{l:{101:{l:{108:{l:{59:{c:[8742]}}}}}}}}}}}}}}}}}}}}}}}}},105:{l:{109:{l:{59:{c:[8769]},101:{l:{59:{c:[8772]},113:{l:{59:{c:[8772]}}}}}}}}},109:{l:{105:{l:{100:{l:{59:{c:[8740]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[8742]}}}}}}},113:{l:{115:{l:{117:{l:{98:{l:{101:{l:{59:{c:[8930]}}}}},112:{l:{101:{l:{59:{c:[8931]}}}}}}}}}}},117:{l:{98:{l:{59:{c:[8836]},69:{l:{59:{c:[10949,824]}}},101:{l:{59:{c:[8840]}}},115:{l:{101:{l:{116:{l:{59:{c:[8834,8402]},101:{l:{113:{l:{59:{c:[8840]},113:{l:{59:{c:[10949,824]}}}}}}}}}}}}}}},99:{l:{99:{l:{59:{c:[8833]},101:{l:{113:{l:{59:{c:[10928,824]}}}}}}}}},112:{l:{59:{c:[8837]},69:{l:{59:{c:[10950,824]}}},101:{l:{59:{c:[8841]}}},115:{l:{101:{l:{116:{l:{59:{c:[8835,8402]},101:{l:{113:{l:{59:{c:[8841]},113:{l:{59:{c:[10950,824]}}}}}}}}}}}}}}}}}}},116:{l:{103:{l:{108:{l:{59:{c:[8825]}}}}},105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[241]}},c:[241]}}}}}}},108:{l:{103:{l:{59:{c:[8824]}}}}},114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8938]},101:{l:{113:{l:{59:{c:[8940]}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8939]},101:{l:{113:{l:{59:{c:[8941]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},117:{l:{59:{c:[957]},109:{l:{59:{c:[35]},101:{l:{114:{l:{111:{l:{59:{c:[8470]}}}}}}},115:{l:{112:{l:{59:{c:[8199]}}}}}}}}},118:{l:{68:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8877]}}}}}}}}},72:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10500]}}}}}}}}},97:{l:{112:{l:{59:{c:[8781,8402]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8876]}}}}}}}}},103:{l:{101:{l:{59:{c:[8805,8402]}}},116:{l:{59:{c:[62,8402]}}}}},105:{l:{110:{l:{102:{l:{105:{l:{110:{l:{59:{c:[10718]}}}}}}}}}}},108:{l:{65:{l:{114:{l:{114:{l:{59:{c:[10498]}}}}}}},101:{l:{59:{c:[8804,8402]}}},116:{l:{59:{c:[60,8402]},114:{l:{105:{l:{101:{l:{59:{c:[8884,8402]}}}}}}}}}}},114:{l:{65:{l:{114:{l:{114:{l:{59:{c:[10499]}}}}}}},116:{l:{114:{l:{105:{l:{101:{l:{59:{c:[8885,8402]}}}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8764,8402]}}}}}}}}},119:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8662]}}}}}}},97:{l:{114:{l:{104:{l:{107:{l:{59:{c:[10531]}}}}},114:{l:{59:{c:[8598]},111:{l:{119:{l:{59:{c:[8598]}}}}}}}}}}},110:{l:{101:{l:{97:{l:{114:{l:{59:{c:[10535]}}}}}}}}}}}}},111:{l:{83:{l:{59:{c:[9416]}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[243]}},c:[243]}}}}}}},115:{l:{116:{l:{59:{c:[8859]}}}}}}},99:{l:{105:{l:{114:{l:{59:{c:[8858]},99:{l:{59:{c:[244]}},c:[244]}}}}},121:{l:{59:{c:[1086]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8861]}}}}}}},98:{l:{108:{l:{97:{l:{99:{l:{59:{c:[337]}}}}}}}}},105:{l:{118:{l:{59:{c:[10808]}}}}},111:{l:{116:{l:{59:{c:[8857]}}}}},115:{l:{111:{l:{108:{l:{100:{l:{59:{c:[10684]}}}}}}}}}}},101:{l:{108:{l:{105:{l:{103:{l:{59:{c:[339]}}}}}}}}},102:{l:{99:{l:{105:{l:{114:{l:{59:{c:[10687]}}}}}}},114:{l:{59:{c:[120108]}}}}},103:{l:{111:{l:{110:{l:{59:{c:[731]}}}}},114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[242]}},c:[242]}}}}}}},116:{l:{59:{c:[10689]}}}}},104:{l:{98:{l:{97:{l:{114:{l:{59:{c:[10677]}}}}}}},109:{l:{59:{c:[937]}}}}},105:{l:{110:{l:{116:{l:{59:{c:[8750]}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8634]}}}}}}},99:{l:{105:{l:{114:{l:{59:{c:[10686]}}}}},114:{l:{111:{l:{115:{l:{115:{l:{59:{c:[10683]}}}}}}}}}}},105:{l:{110:{l:{101:{l:{59:{c:[8254]}}}}}}},116:{l:{59:{c:[10688]}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[333]}}}}}}},101:{l:{103:{l:{97:{l:{59:{c:[969]}}}}}}},105:{l:{99:{l:{114:{l:{111:{l:{110:{l:{59:{c:[959]}}}}}}}}},100:{l:{59:{c:[10678]}}},110:{l:{117:{l:{115:{l:{59:{c:[8854]}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120160]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[10679]}}}}},101:{l:{114:{l:{112:{l:{59:{c:[10681]}}}}}}},108:{l:{117:{l:{115:{l:{59:{c:[8853]}}}}}}}}},114:{l:{59:{c:[8744]},97:{l:{114:{l:{114:{l:{59:{c:[8635]}}}}}}},100:{l:{59:{c:[10845]},101:{l:{114:{l:{59:{c:[8500]},111:{l:{102:{l:{59:{c:[8500]}}}}}}}}},102:{l:{59:{c:[170]}},c:[170]},109:{l:{59:{c:[186]}},c:[186]}}},105:{l:{103:{l:{111:{l:{102:{l:{59:{c:[8886]}}}}}}}}},111:{l:{114:{l:{59:{c:[10838]}}}}},115:{l:{108:{l:{111:{l:{112:{l:{101:{l:{59:{c:[10839]}}}}}}}}}}},118:{l:{59:{c:[10843]}}}}},115:{l:{99:{l:{114:{l:{59:{c:[8500]}}}}},108:{l:{97:{l:{115:{l:{104:{l:{59:{c:[248]}},c:[248]}}}}}}},111:{l:{108:{l:{59:{c:[8856]}}}}}}},116:{l:{105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[245]}},c:[245]}}}}},109:{l:{101:{l:{115:{l:{59:{c:[8855]},97:{l:{115:{l:{59:{c:[10806]}}}}}}}}}}}}}}},117:{l:{109:{l:{108:{l:{59:{c:[246]}},c:[246]}}}}},118:{l:{98:{l:{97:{l:{114:{l:{59:{c:[9021]}}}}}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[8741]},97:{l:{59:{c:[182]},108:{l:{108:{l:{101:{l:{108:{l:{59:{c:[8741]}}}}}}}}}},c:[182]},115:{l:{105:{l:{109:{l:{59:{c:[10995]}}}}},108:{l:{59:{c:[11005]}}}}},116:{l:{59:{c:[8706]}}}}}}},99:{l:{121:{l:{59:{c:[1087]}}}}},101:{l:{114:{l:{99:{l:{110:{l:{116:{l:{59:{c:[37]}}}}}}},105:{l:{111:{l:{100:{l:{59:{c:[46]}}}}}}},109:{l:{105:{l:{108:{l:{59:{c:[8240]}}}}}}},112:{l:{59:{c:[8869]}}},116:{l:{101:{l:{110:{l:{107:{l:{59:{c:[8241]}}}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120109]}}}}},104:{l:{105:{l:{59:{c:[966]},118:{l:{59:{c:[981]}}}}},109:{l:{109:{l:{97:{l:{116:{l:{59:{c:[8499]}}}}}}}}},111:{l:{110:{l:{101:{l:{59:{c:[9742]}}}}}}}}},105:{l:{59:{c:[960]},116:{l:{99:{l:{104:{l:{102:{l:{111:{l:{114:{l:{107:{l:{59:{c:[8916]}}}}}}}}}}}}}}},118:{l:{59:{c:[982]}}}}},108:{l:{97:{l:{110:{l:{99:{l:{107:{l:{59:{c:[8463]},104:{l:{59:{c:[8462]}}}}}}},107:{l:{118:{l:{59:{c:[8463]}}}}}}}}},117:{l:{115:{l:{59:{c:[43]},97:{l:{99:{l:{105:{l:{114:{l:{59:{c:[10787]}}}}}}}}},98:{l:{59:{c:[8862]}}},99:{l:{105:{l:{114:{l:{59:{c:[10786]}}}}}}},100:{l:{111:{l:{59:{c:[8724]}}},117:{l:{59:{c:[10789]}}}}},101:{l:{59:{c:[10866]}}},109:{l:{110:{l:{59:{c:[177]}},c:[177]}}},115:{l:{105:{l:{109:{l:{59:{c:[10790]}}}}}}},116:{l:{119:{l:{111:{l:{59:{c:[10791]}}}}}}}}}}}}},109:{l:{59:{c:[177]}}},111:{l:{105:{l:{110:{l:{116:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10773]}}}}}}}}}}}}},112:{l:{102:{l:{59:{c:[120161]}}}}},117:{l:{110:{l:{100:{l:{59:{c:[163]}},c:[163]}}}}}}},114:{l:{59:{c:[8826]},69:{l:{59:{c:[10931]}}},97:{l:{112:{l:{59:{c:[10935]}}}}},99:{l:{117:{l:{101:{l:{59:{c:[8828]}}}}}}},101:{l:{59:{c:[10927]},99:{l:{59:{c:[8826]},97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10935]}}}}}}}}}}}}},99:{l:{117:{l:{114:{l:{108:{l:{121:{l:{101:{l:{113:{l:{59:{c:[8828]}}}}}}}}}}}}}}},101:{l:{113:{l:{59:{c:[10927]}}}}},110:{l:{97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10937]}}}}}}}}}}}}},101:{l:{113:{l:{113:{l:{59:{c:[10933]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8936]}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8830]}}}}}}}}}}},105:{l:{109:{l:{101:{l:{59:{c:[8242]},115:{l:{59:{c:[8473]}}}}}}}}},110:{l:{69:{l:{59:{c:[10933]}}},97:{l:{112:{l:{59:{c:[10937]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8936]}}}}}}}}},111:{l:{100:{l:{59:{c:[8719]}}},102:{l:{97:{l:{108:{l:{97:{l:{114:{l:{59:{c:[9006]}}}}}}}}},108:{l:{105:{l:{110:{l:{101:{l:{59:{c:[8978]}}}}}}}}},115:{l:{117:{l:{114:{l:{102:{l:{59:{c:[8979]}}}}}}}}}}},112:{l:{59:{c:[8733]},116:{l:{111:{l:{59:{c:[8733]}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8830]}}}}}}},117:{l:{114:{l:{101:{l:{108:{l:{59:{c:[8880]}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120005]}}}}},105:{l:{59:{c:[968]}}}}},117:{l:{110:{l:{99:{l:{115:{l:{112:{l:{59:{c:[8200]}}}}}}}}}}}}},113:{l:{102:{l:{114:{l:{59:{c:[120110]}}}}},105:{l:{110:{l:{116:{l:{59:{c:[10764]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120162]}}}}}}},112:{l:{114:{l:{105:{l:{109:{l:{101:{l:{59:{c:[8279]}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120006]}}}}}}},117:{l:{97:{l:{116:{l:{101:{l:{114:{l:{110:{l:{105:{l:{111:{l:{110:{l:{115:{l:{59:{c:[8461]}}}}}}}}}}}}}}},105:{l:{110:{l:{116:{l:{59:{c:[10774]}}}}}}}}}}},101:{l:{115:{l:{116:{l:{59:{c:[63]},101:{l:{113:{l:{59:{c:[8799]}}}}}}}}}}},111:{l:{116:{l:{59:{c:[34]}},c:[34]}}}}}}},114:{l:{65:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8667]}}}}}}},114:{l:{114:{l:{59:{c:[8658]}}}}},116:{l:{97:{l:{105:{l:{108:{l:{59:{c:[10524]}}}}}}}}}}},66:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10511]}}}}}}}}},72:{l:{97:{l:{114:{l:{59:{c:[10596]}}}}}}},97:{l:{99:{l:{101:{l:{59:{c:[8765,817]}}},117:{l:{116:{l:{101:{l:{59:{c:[341]}}}}}}}}},100:{l:{105:{l:{99:{l:{59:{c:[8730]}}}}}}},101:{l:{109:{l:{112:{l:{116:{l:{121:{l:{118:{l:{59:{c:[10675]}}}}}}}}}}}}},110:{l:{103:{l:{59:{c:[10217]},100:{l:{59:{c:[10642]}}},101:{l:{59:{c:[10661]}}},108:{l:{101:{l:{59:{c:[10217]}}}}}}}}},113:{l:{117:{l:{111:{l:{59:{c:[187]}},c:[187]}}}}},114:{l:{114:{l:{59:{c:[8594]},97:{l:{112:{l:{59:{c:[10613]}}}}},98:{l:{59:{c:[8677]},102:{l:{115:{l:{59:{c:[10528]}}}}}}},99:{l:{59:{c:[10547]}}},102:{l:{115:{l:{59:{c:[10526]}}}}},104:{l:{107:{l:{59:{c:[8618]}}}}},108:{l:{112:{l:{59:{c:[8620]}}}}},112:{l:{108:{l:{59:{c:[10565]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[10612]}}}}}}},116:{l:{108:{l:{59:{c:[8611]}}}}},119:{l:{59:{c:[8605]}}}}}}},116:{l:{97:{l:{105:{l:{108:{l:{59:{c:[10522]}}}}}}},105:{l:{111:{l:{59:{c:[8758]},110:{l:{97:{l:{108:{l:{115:{l:{59:{c:[8474]}}}}}}}}}}}}}}}}},98:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10509]}}}}}}},98:{l:{114:{l:{107:{l:{59:{c:[10099]}}}}}}},114:{l:{97:{l:{99:{l:{101:{l:{59:{c:[125]}}},107:{l:{59:{c:[93]}}}}}}},107:{l:{101:{l:{59:{c:[10636]}}},115:{l:{108:{l:{100:{l:{59:{c:[10638]}}},117:{l:{59:{c:[10640]}}}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[345]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[343]}}}}}}},105:{l:{108:{l:{59:{c:[8969]}}}}}}},117:{l:{98:{l:{59:{c:[125]}}}}},121:{l:{59:{c:[1088]}}}}},100:{l:{99:{l:{97:{l:{59:{c:[10551]}}}}},108:{l:{100:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10601]}}}}}}}}}}},113:{l:{117:{l:{111:{l:{59:{c:[8221]},114:{l:{59:{c:[8221]}}}}}}}}},115:{l:{104:{l:{59:{c:[8627]}}}}}}},101:{l:{97:{l:{108:{l:{59:{c:[8476]},105:{l:{110:{l:{101:{l:{59:{c:[8475]}}}}}}},112:{l:{97:{l:{114:{l:{116:{l:{59:{c:[8476]}}}}}}}}},115:{l:{59:{c:[8477]}}}}}}},99:{l:{116:{l:{59:{c:[9645]}}}}},103:{l:{59:{c:[174]}},c:[174]}}},102:{l:{105:{l:{115:{l:{104:{l:{116:{l:{59:{c:[10621]}}}}}}}}},108:{l:{111:{l:{111:{l:{114:{l:{59:{c:[8971]}}}}}}}}},114:{l:{59:{c:[120111]}}}}},104:{l:{97:{l:{114:{l:{100:{l:{59:{c:[8641]}}},117:{l:{59:{c:[8640]},108:{l:{59:{c:[10604]}}}}}}}}},111:{l:{59:{c:[961]},118:{l:{59:{c:[1009]}}}}}}},105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8594]},116:{l:{97:{l:{105:{l:{108:{l:{59:{c:[8611]}}}}}}}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[8641]}}}}}}}}},117:{l:{112:{l:{59:{c:[8640]}}}}}}}}}}}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{115:{l:{59:{c:[8644]}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{115:{l:{59:{c:[8652]}}}}}}}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{115:{l:{59:{c:[8649]}}}}}}}}}}}}}}}}}}}}}}},115:{l:{113:{l:{117:{l:{105:{l:{103:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8605]}}}}}}}}}}}}}}}}}}}}},116:{l:{104:{l:{114:{l:{101:{l:{101:{l:{116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8908]}}}}}}}}}}}}}}}}}}}}}}}}}}},110:{l:{103:{l:{59:{c:[730]}}}}},115:{l:{105:{l:{110:{l:{103:{l:{100:{l:{111:{l:{116:{l:{115:{l:{101:{l:{113:{l:{59:{c:[8787]}}}}}}}}}}}}}}}}}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8644]}}}}}}},104:{l:{97:{l:{114:{l:{59:{c:[8652]}}}}}}},109:{l:{59:{c:[8207]}}}}},109:{l:{111:{l:{117:{l:{115:{l:{116:{l:{59:{c:[9137]},97:{l:{99:{l:{104:{l:{101:{l:{59:{c:[9137]}}}}}}}}}}}}}}}}}}},110:{l:{109:{l:{105:{l:{100:{l:{59:{c:[10990]}}}}}}}}},111:{l:{97:{l:{110:{l:{103:{l:{59:{c:[10221]}}}}},114:{l:{114:{l:{59:{c:[8702]}}}}}}},98:{l:{114:{l:{107:{l:{59:{c:[10215]}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[10630]}}}}},102:{l:{59:{c:[120163]}}},108:{l:{117:{l:{115:{l:{59:{c:[10798]}}}}}}}}},116:{l:{105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[10805]}}}}}}}}}}}}},112:{l:{97:{l:{114:{l:{59:{c:[41]},103:{l:{116:{l:{59:{c:[10644]}}}}}}}}},112:{l:{111:{l:{108:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10770]}}}}}}}}}}}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8649]}}}}}}}}},115:{l:{97:{l:{113:{l:{117:{l:{111:{l:{59:{c:[8250]}}}}}}}}},99:{l:{114:{l:{59:{c:[120007]}}}}},104:{l:{59:{c:[8625]}}},113:{l:{98:{l:{59:{c:[93]}}},117:{l:{111:{l:{59:{c:[8217]},114:{l:{59:{c:[8217]}}}}}}}}}}},116:{l:{104:{l:{114:{l:{101:{l:{101:{l:{59:{c:[8908]}}}}}}}}},105:{l:{109:{l:{101:{l:{115:{l:{59:{c:[8906]}}}}}}}}},114:{l:{105:{l:{59:{c:[9657]},101:{l:{59:{c:[8885]}}},102:{l:{59:{c:[9656]}}},108:{l:{116:{l:{114:{l:{105:{l:{59:{c:[10702]}}}}}}}}}}}}}}},117:{l:{108:{l:{117:{l:{104:{l:{97:{l:{114:{l:{59:{c:[10600]}}}}}}}}}}}}},120:{l:{59:{c:[8478]}}}}},115:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[347]}}}}}}}}}}},98:{l:{113:{l:{117:{l:{111:{l:{59:{c:[8218]}}}}}}}}},99:{l:{59:{c:[8827]},69:{l:{59:{c:[10932]}}},97:{l:{112:{l:{59:{c:[10936]}}},114:{l:{111:{l:{110:{l:{59:{c:[353]}}}}}}}}},99:{l:{117:{l:{101:{l:{59:{c:[8829]}}}}}}},101:{l:{59:{c:[10928]},100:{l:{105:{l:{108:{l:{59:{c:[351]}}}}}}}}},105:{l:{114:{l:{99:{l:{59:{c:[349]}}}}}}},110:{l:{69:{l:{59:{c:[10934]}}},97:{l:{112:{l:{59:{c:[10938]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8937]}}}}}}}}},112:{l:{111:{l:{108:{l:{105:{l:{110:{l:{116:{l:{59:{c:[10771]}}}}}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8831]}}}}}}},121:{l:{59:{c:[1089]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8901]},98:{l:{59:{c:[8865]}}},101:{l:{59:{c:[10854]}}}}}}}}},101:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8664]}}}}}}},97:{l:{114:{l:{104:{l:{107:{l:{59:{c:[10533]}}}}},114:{l:{59:{c:[8600]},111:{l:{119:{l:{59:{c:[8600]}}}}}}}}}}},99:{l:{116:{l:{59:{c:[167]}},c:[167]}}},109:{l:{105:{l:{59:{c:[59]}}}}},115:{l:{119:{l:{97:{l:{114:{l:{59:{c:[10537]}}}}}}}}},116:{l:{109:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[8726]}}}}}}}}},110:{l:{59:{c:[8726]}}}}}}},120:{l:{116:{l:{59:{c:[10038]}}}}}}},102:{l:{114:{l:{59:{c:[120112]},111:{l:{119:{l:{110:{l:{59:{c:[8994]}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{59:{c:[9839]}}}}}}},99:{l:{104:{l:{99:{l:{121:{l:{59:{c:[1097]}}}}}}},121:{l:{59:{c:[1096]}}}}},111:{l:{114:{l:{116:{l:{109:{l:{105:{l:{100:{l:{59:{c:[8739]}}}}}}},112:{l:{97:{l:{114:{l:{97:{l:{108:{l:{108:{l:{101:{l:{108:{l:{59:{c:[8741]}}}}}}}}}}}}}}}}}}}}}}},121:{l:{59:{c:[173]}},c:[173]}}},105:{l:{103:{l:{109:{l:{97:{l:{59:{c:[963]},102:{l:{59:{c:[962]}}},118:{l:{59:{c:[962]}}}}}}}}},109:{l:{59:{c:[8764]},100:{l:{111:{l:{116:{l:{59:{c:[10858]}}}}}}},101:{l:{59:{c:[8771]},113:{l:{59:{c:[8771]}}}}},103:{l:{59:{c:[10910]},69:{l:{59:{c:[10912]}}}}},108:{l:{59:{c:[10909]},69:{l:{59:{c:[10911]}}}}},110:{l:{101:{l:{59:{c:[8774]}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10788]}}}}}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10610]}}}}}}}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8592]}}}}}}}}},109:{l:{97:{l:{108:{l:{108:{l:{115:{l:{101:{l:{116:{l:{109:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[8726]}}}}}}}}}}}}}}}}}}}}},115:{l:{104:{l:{112:{l:{59:{c:[10803]}}}}}}}}},101:{l:{112:{l:{97:{l:{114:{l:{115:{l:{108:{l:{59:{c:[10724]}}}}}}}}}}}}},105:{l:{100:{l:{59:{c:[8739]}}},108:{l:{101:{l:{59:{c:[8995]}}}}}}},116:{l:{59:{c:[10922]},101:{l:{59:{c:[10924]},115:{l:{59:{c:[10924,65024]}}}}}}}}},111:{l:{102:{l:{116:{l:{99:{l:{121:{l:{59:{c:[1100]}}}}}}}}},108:{l:{59:{c:[47]},98:{l:{59:{c:[10692]},97:{l:{114:{l:{59:{c:[9023]}}}}}}}}},112:{l:{102:{l:{59:{c:[120164]}}}}}}},112:{l:{97:{l:{100:{l:{101:{l:{115:{l:{59:{c:[9824]},117:{l:{105:{l:{116:{l:{59:{c:[9824]}}}}}}}}}}}}},114:{l:{59:{c:[8741]}}}}}}},113:{l:{99:{l:{97:{l:{112:{l:{59:{c:[8851]},115:{l:{59:{c:[8851,65024]}}}}}}},117:{l:{112:{l:{59:{c:[8852]},115:{l:{59:{c:[8852,65024]}}}}}}}}},115:{l:{117:{l:{98:{l:{59:{c:[8847]},101:{l:{59:{c:[8849]}}},115:{l:{101:{l:{116:{l:{59:{c:[8847]},101:{l:{113:{l:{59:{c:[8849]}}}}}}}}}}}}},112:{l:{59:{c:[8848]},101:{l:{59:{c:[8850]}}},115:{l:{101:{l:{116:{l:{59:{c:[8848]},101:{l:{113:{l:{59:{c:[8850]}}}}}}}}}}}}}}}}},117:{l:{59:{c:[9633]},97:{l:{114:{l:{101:{l:{59:{c:[9633]}}},102:{l:{59:{c:[9642]}}}}}}},102:{l:{59:{c:[9642]}}}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8594]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120008]}}}}},101:{l:{116:{l:{109:{l:{110:{l:{59:{c:[8726]}}}}}}}}},109:{l:{105:{l:{108:{l:{101:{l:{59:{c:[8995]}}}}}}}}},116:{l:{97:{l:{114:{l:{102:{l:{59:{c:[8902]}}}}}}}}}}},116:{l:{97:{l:{114:{l:{59:{c:[9734]},102:{l:{59:{c:[9733]}}}}}}},114:{l:{97:{l:{105:{l:{103:{l:{104:{l:{116:{l:{101:{l:{112:{l:{115:{l:{105:{l:{108:{l:{111:{l:{110:{l:{59:{c:[1013]}}}}}}}}}}}}}}},112:{l:{104:{l:{105:{l:{59:{c:[981]}}}}}}}}}}}}}}}}},110:{l:{115:{l:{59:{c:[175]}}}}}}}}},117:{l:{98:{l:{59:{c:[8834]},69:{l:{59:{c:[10949]}}},100:{l:{111:{l:{116:{l:{59:{c:[10941]}}}}}}},101:{l:{59:{c:[8838]},100:{l:{111:{l:{116:{l:{59:{c:[10947]}}}}}}}}},109:{l:{117:{l:{108:{l:{116:{l:{59:{c:[10945]}}}}}}}}},110:{l:{69:{l:{59:{c:[10955]}}},101:{l:{59:{c:[8842]}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10943]}}}}}}}}},114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10617]}}}}}}}}},115:{l:{101:{l:{116:{l:{59:{c:[8834]},101:{l:{113:{l:{59:{c:[8838]},113:{l:{59:{c:[10949]}}}}}}},110:{l:{101:{l:{113:{l:{59:{c:[8842]},113:{l:{59:{c:[10955]}}}}}}}}}}}}},105:{l:{109:{l:{59:{c:[10951]}}}}},117:{l:{98:{l:{59:{c:[10965]}}},112:{l:{59:{c:[10963]}}}}}}}}},99:{l:{99:{l:{59:{c:[8827]},97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10936]}}}}}}}}}}}}},99:{l:{117:{l:{114:{l:{108:{l:{121:{l:{101:{l:{113:{l:{59:{c:[8829]}}}}}}}}}}}}}}},101:{l:{113:{l:{59:{c:[10928]}}}}},110:{l:{97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[10938]}}}}}}}}}}}}},101:{l:{113:{l:{113:{l:{59:{c:[10934]}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8937]}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8831]}}}}}}}}}}},109:{l:{59:{c:[8721]}}},110:{l:{103:{l:{59:{c:[9834]}}}}},112:{l:{49:{l:{59:{c:[185]}},c:[185]},50:{l:{59:{c:[178]}},c:[178]},51:{l:{59:{c:[179]}},c:[179]},59:{c:[8835]},69:{l:{59:{c:[10950]}}},100:{l:{111:{l:{116:{l:{59:{c:[10942]}}}}},115:{l:{117:{l:{98:{l:{59:{c:[10968]}}}}}}}}},101:{l:{59:{c:[8839]},100:{l:{111:{l:{116:{l:{59:{c:[10948]}}}}}}}}},104:{l:{115:{l:{111:{l:{108:{l:{59:{c:[10185]}}}}},117:{l:{98:{l:{59:{c:[10967]}}}}}}}}},108:{l:{97:{l:{114:{l:{114:{l:{59:{c:[10619]}}}}}}}}},109:{l:{117:{l:{108:{l:{116:{l:{59:{c:[10946]}}}}}}}}},110:{l:{69:{l:{59:{c:[10956]}}},101:{l:{59:{c:[8843]}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10944]}}}}}}}}},115:{l:{101:{l:{116:{l:{59:{c:[8835]},101:{l:{113:{l:{59:{c:[8839]},113:{l:{59:{c:[10950]}}}}}}},110:{l:{101:{l:{113:{l:{59:{c:[8843]},113:{l:{59:{c:[10956]}}}}}}}}}}}}},105:{l:{109:{l:{59:{c:[10952]}}}}},117:{l:{98:{l:{59:{c:[10964]}}},112:{l:{59:{c:[10966]}}}}}}}}}}},119:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8665]}}}}}}},97:{l:{114:{l:{104:{l:{107:{l:{59:{c:[10534]}}}}},114:{l:{59:{c:[8601]},111:{l:{119:{l:{59:{c:[8601]}}}}}}}}}}},110:{l:{119:{l:{97:{l:{114:{l:{59:{c:[10538]}}}}}}}}}}},122:{l:{108:{l:{105:{l:{103:{l:{59:{c:[223]}},c:[223]}}}}}}}}},116:{l:{97:{l:{114:{l:{103:{l:{101:{l:{116:{l:{59:{c:[8982]}}}}}}}}},117:{l:{59:{c:[964]}}}}},98:{l:{114:{l:{107:{l:{59:{c:[9140]}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[357]}}}}}}}}},101:{l:{100:{l:{105:{l:{108:{l:{59:{c:[355]}}}}}}}}},121:{l:{59:{c:[1090]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[8411]}}}}}}},101:{l:{108:{l:{114:{l:{101:{l:{99:{l:{59:{c:[8981]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120113]}}}}},104:{l:{101:{l:{114:{l:{101:{l:{52:{l:{59:{c:[8756]}}},102:{l:{111:{l:{114:{l:{101:{l:{59:{c:[8756]}}}}}}}}}}}}},116:{l:{97:{l:{59:{c:[952]},115:{l:{121:{l:{109:{l:{59:{c:[977]}}}}}}},118:{l:{59:{c:[977]}}}}}}}}},105:{l:{99:{l:{107:{l:{97:{l:{112:{l:{112:{l:{114:{l:{111:{l:{120:{l:{59:{c:[8776]}}}}}}}}}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8764]}}}}}}}}}}},110:{l:{115:{l:{112:{l:{59:{c:[8201]}}}}}}}}},107:{l:{97:{l:{112:{l:{59:{c:[8776]}}}}},115:{l:{105:{l:{109:{l:{59:{c:[8764]}}}}}}}}},111:{l:{114:{l:{110:{l:{59:{c:[254]}},c:[254]}}}}}}},105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[732]}}}}}}},109:{l:{101:{l:{115:{l:{59:{c:[215]},98:{l:{59:{c:[8864]},97:{l:{114:{l:{59:{c:[10801]}}}}}}},100:{l:{59:{c:[10800]}}}},c:[215]}}}}},110:{l:{116:{l:{59:{c:[8749]}}}}}}},111:{l:{101:{l:{97:{l:{59:{c:[10536]}}}}},112:{l:{59:{c:[8868]},98:{l:{111:{l:{116:{l:{59:{c:[9014]}}}}}}},99:{l:{105:{l:{114:{l:{59:{c:[10993]}}}}}}},102:{l:{59:{c:[120165]},111:{l:{114:{l:{107:{l:{59:{c:[10970]}}}}}}}}}}},115:{l:{97:{l:{59:{c:[10537]}}}}}}},112:{l:{114:{l:{105:{l:{109:{l:{101:{l:{59:{c:[8244]}}}}}}}}}}},114:{l:{97:{l:{100:{l:{101:{l:{59:{c:[8482]}}}}}}},105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[9653]},100:{l:{111:{l:{119:{l:{110:{l:{59:{c:[9663]}}}}}}}}},108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[9667]},101:{l:{113:{l:{59:{c:[8884]}}}}}}}}}}}}},113:{l:{59:{c:[8796]}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[9657]},101:{l:{113:{l:{59:{c:[8885]}}}}}}}}}}}}}}}}}}}}}}}}},100:{l:{111:{l:{116:{l:{59:{c:[9708]}}}}}}},101:{l:{59:{c:[8796]}}},109:{l:{105:{l:{110:{l:{117:{l:{115:{l:{59:{c:[10810]}}}}}}}}}}},112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10809]}}}}}}}}},115:{l:{98:{l:{59:{c:[10701]}}}}},116:{l:{105:{l:{109:{l:{101:{l:{59:{c:[10811]}}}}}}}}}}},112:{l:{101:{l:{122:{l:{105:{l:{117:{l:{109:{l:{59:{c:[9186]}}}}}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120009]}}},121:{l:{59:{c:[1094]}}}}},104:{l:{99:{l:{121:{l:{59:{c:[1115]}}}}}}},116:{l:{114:{l:{111:{l:{107:{l:{59:{c:[359]}}}}}}}}}}},119:{l:{105:{l:{120:{l:{116:{l:{59:{c:[8812]}}}}}}},111:{l:{104:{l:{101:{l:{97:{l:{100:{l:{108:{l:{101:{l:{102:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8606]}}}}}}}}}}}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8608]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},117:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8657]}}}}}}},72:{l:{97:{l:{114:{l:{59:{c:[10595]}}}}}}},97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[250]}},c:[250]}}}}}}},114:{l:{114:{l:{59:{c:[8593]}}}}}}},98:{l:{114:{l:{99:{l:{121:{l:{59:{c:[1118]}}}}},101:{l:{118:{l:{101:{l:{59:{c:[365]}}}}}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[251]}},c:[251]}}}}},121:{l:{59:{c:[1091]}}}}},100:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8645]}}}}}}},98:{l:{108:{l:{97:{l:{99:{l:{59:{c:[369]}}}}}}}}},104:{l:{97:{l:{114:{l:{59:{c:[10606]}}}}}}}}},102:{l:{105:{l:{115:{l:{104:{l:{116:{l:{59:{c:[10622]}}}}}}}}},114:{l:{59:{c:[120114]}}}}},103:{l:{114:{l:{97:{l:{118:{l:{101:{l:{59:{c:[249]}},c:[249]}}}}}}}}},104:{l:{97:{l:{114:{l:{108:{l:{59:{c:[8639]}}},114:{l:{59:{c:[8638]}}}}}}},98:{l:{108:{l:{107:{l:{59:{c:[9600]}}}}}}}}},108:{l:{99:{l:{111:{l:{114:{l:{110:{l:{59:{c:[8988]},101:{l:{114:{l:{59:{c:[8988]}}}}}}}}}}},114:{l:{111:{l:{112:{l:{59:{c:[8975]}}}}}}}}},116:{l:{114:{l:{105:{l:{59:{c:[9720]}}}}}}}}},109:{l:{97:{l:{99:{l:{114:{l:{59:{c:[363]}}}}}}},108:{l:{59:{c:[168]}},c:[168]}}},111:{l:{103:{l:{111:{l:{110:{l:{59:{c:[371]}}}}}}},112:{l:{102:{l:{59:{c:[120166]}}}}}}},112:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8593]}}}}}}}}}}},100:{l:{111:{l:{119:{l:{110:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{59:{c:[8597]}}}}}}}}}}}}}}}}}}},104:{l:{97:{l:{114:{l:{112:{l:{111:{l:{111:{l:{110:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8639]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8638]}}}}}}}}}}}}}}}}}}}}}}}}},108:{l:{117:{l:{115:{l:{59:{c:[8846]}}}}}}},115:{l:{105:{l:{59:{c:[965]},104:{l:{59:{c:[978]}}},108:{l:{111:{l:{110:{l:{59:{c:[965]}}}}}}}}}}},117:{l:{112:{l:{97:{l:{114:{l:{114:{l:{111:{l:{119:{l:{115:{l:{59:{c:[8648]}}}}}}}}}}}}}}}}}}},114:{l:{99:{l:{111:{l:{114:{l:{110:{l:{59:{c:[8989]},101:{l:{114:{l:{59:{c:[8989]}}}}}}}}}}},114:{l:{111:{l:{112:{l:{59:{c:[8974]}}}}}}}}},105:{l:{110:{l:{103:{l:{59:{c:[367]}}}}}}},116:{l:{114:{l:{105:{l:{59:{c:[9721]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120010]}}}}}}},116:{l:{100:{l:{111:{l:{116:{l:{59:{c:[8944]}}}}}}},105:{l:{108:{l:{100:{l:{101:{l:{59:{c:[361]}}}}}}}}},114:{l:{105:{l:{59:{c:[9653]},102:{l:{59:{c:[9652]}}}}}}}}},117:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8648]}}}}}}},109:{l:{108:{l:{59:{c:[252]}},c:[252]}}}}},119:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{59:{c:[10663]}}}}}}}}}}}}}}},118:{l:{65:{l:{114:{l:{114:{l:{59:{c:[8661]}}}}}}},66:{l:{97:{l:{114:{l:{59:{c:[10984]},118:{l:{59:{c:[10985]}}}}}}}}},68:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8872]}}}}}}}}},97:{l:{110:{l:{103:{l:{114:{l:{116:{l:{59:{c:[10652]}}}}}}}}},114:{l:{101:{l:{112:{l:{115:{l:{105:{l:{108:{l:{111:{l:{110:{l:{59:{c:[1013]}}}}}}}}}}}}}}},107:{l:{97:{l:{112:{l:{112:{l:{97:{l:{59:{c:[1008]}}}}}}}}}}},110:{l:{111:{l:{116:{l:{104:{l:{105:{l:{110:{l:{103:{l:{59:{c:[8709]}}}}}}}}}}}}}}},112:{l:{104:{l:{105:{l:{59:{c:[981]}}}}},105:{l:{59:{c:[982]}}},114:{l:{111:{l:{112:{l:{116:{l:{111:{l:{59:{c:[8733]}}}}}}}}}}}}},114:{l:{59:{c:[8597]},104:{l:{111:{l:{59:{c:[1009]}}}}}}},115:{l:{105:{l:{103:{l:{109:{l:{97:{l:{59:{c:[962]}}}}}}}}},117:{l:{98:{l:{115:{l:{101:{l:{116:{l:{110:{l:{101:{l:{113:{l:{59:{c:[8842,65024]},113:{l:{59:{c:[10955,65024]}}}}}}}}}}}}}}}}},112:{l:{115:{l:{101:{l:{116:{l:{110:{l:{101:{l:{113:{l:{59:{c:[8843,65024]},113:{l:{59:{c:[10956,65024]}}}}}}}}}}}}}}}}}}}}},116:{l:{104:{l:{101:{l:{116:{l:{97:{l:{59:{c:[977]}}}}}}}}},114:{l:{105:{l:{97:{l:{110:{l:{103:{l:{108:{l:{101:{l:{108:{l:{101:{l:{102:{l:{116:{l:{59:{c:[8882]}}}}}}}}},114:{l:{105:{l:{103:{l:{104:{l:{116:{l:{59:{c:[8883]}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},99:{l:{121:{l:{59:{c:[1074]}}}}},100:{l:{97:{l:{115:{l:{104:{l:{59:{c:[8866]}}}}}}}}},101:{l:{101:{l:{59:{c:[8744]},98:{l:{97:{l:{114:{l:{59:{c:[8891]}}}}}}},101:{l:{113:{l:{59:{c:[8794]}}}}}}},108:{l:{108:{l:{105:{l:{112:{l:{59:{c:[8942]}}}}}}}}},114:{l:{98:{l:{97:{l:{114:{l:{59:{c:[124]}}}}}}},116:{l:{59:{c:[124]}}}}}}},102:{l:{114:{l:{59:{c:[120115]}}}}},108:{l:{116:{l:{114:{l:{105:{l:{59:{c:[8882]}}}}}}}}},110:{l:{115:{l:{117:{l:{98:{l:{59:{c:[8834,8402]}}},112:{l:{59:{c:[8835,8402]}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120167]}}}}}}},112:{l:{114:{l:{111:{l:{112:{l:{59:{c:[8733]}}}}}}}}},114:{l:{116:{l:{114:{l:{105:{l:{59:{c:[8883]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120011]}}}}},117:{l:{98:{l:{110:{l:{69:{l:{59:{c:[10955,65024]}}},101:{l:{59:{c:[8842,65024]}}}}}}},112:{l:{110:{l:{69:{l:{59:{c:[10956,65024]}}},101:{l:{59:{c:[8843,65024]}}}}}}}}}}},122:{l:{105:{l:{103:{l:{122:{l:{97:{l:{103:{l:{59:{c:[10650]}}}}}}}}}}}}}}},119:{l:{99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[373]}}}}}}}}},101:{l:{100:{l:{98:{l:{97:{l:{114:{l:{59:{c:[10847]}}}}}}},103:{l:{101:{l:{59:{c:[8743]},113:{l:{59:{c:[8793]}}}}}}}}},105:{l:{101:{l:{114:{l:{112:{l:{59:{c:[8472]}}}}}}}}}}},102:{l:{114:{l:{59:{c:[120116]}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120168]}}}}}}},112:{l:{59:{c:[8472]}}},114:{l:{59:{c:[8768]},101:{l:{97:{l:{116:{l:{104:{l:{59:{c:[8768]}}}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120012]}}}}}}}}},120:{l:{99:{l:{97:{l:{112:{l:{59:{c:[8898]}}}}},105:{l:{114:{l:{99:{l:{59:{c:[9711]}}}}}}},117:{l:{112:{l:{59:{c:[8899]}}}}}}},100:{l:{116:{l:{114:{l:{105:{l:{59:{c:[9661]}}}}}}}}},102:{l:{114:{l:{59:{c:[120117]}}}}},104:{l:{65:{l:{114:{l:{114:{l:{59:{c:[10234]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[10231]}}}}}}}}},105:{l:{59:{c:[958]}}},108:{l:{65:{l:{114:{l:{114:{l:{59:{c:[10232]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[10229]}}}}}}}}},109:{l:{97:{l:{112:{l:{59:{c:[10236]}}}}}}},110:{l:{105:{l:{115:{l:{59:{c:[8955]}}}}}}},111:{l:{100:{l:{111:{l:{116:{l:{59:{c:[10752]}}}}}}},112:{l:{102:{l:{59:{c:[120169]}}},108:{l:{117:{l:{115:{l:{59:{c:[10753]}}}}}}}}},116:{l:{105:{l:{109:{l:{101:{l:{59:{c:[10754]}}}}}}}}}}},114:{l:{65:{l:{114:{l:{114:{l:{59:{c:[10233]}}}}}}},97:{l:{114:{l:{114:{l:{59:{c:[10230]}}}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120013]}}}}},113:{l:{99:{l:{117:{l:{112:{l:{59:{c:[10758]}}}}}}}}}}},117:{l:{112:{l:{108:{l:{117:{l:{115:{l:{59:{c:[10756]}}}}}}}}},116:{l:{114:{l:{105:{l:{59:{c:[9651]}}}}}}}}},118:{l:{101:{l:{101:{l:{59:{c:[8897]}}}}}}},119:{l:{101:{l:{100:{l:{103:{l:{101:{l:{59:{c:[8896]}}}}}}}}}}}}},121:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[253]}},c:[253]}}}}},121:{l:{59:{c:[1103]}}}}}}},99:{l:{105:{l:{114:{l:{99:{l:{59:{c:[375]}}}}}}},121:{l:{59:{c:[1099]}}}}},101:{l:{110:{l:{59:{c:[165]}},c:[165]}}},102:{l:{114:{l:{59:{c:[120118]}}}}},105:{l:{99:{l:{121:{l:{59:{c:[1111]}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120170]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120014]}}}}}}},117:{l:{99:{l:{121:{l:{59:{c:[1102]}}}}},109:{l:{108:{l:{59:{c:[255]}},c:[255]}}}}}}},122:{l:{97:{l:{99:{l:{117:{l:{116:{l:{101:{l:{59:{c:[378]}}}}}}}}}}},99:{l:{97:{l:{114:{l:{111:{l:{110:{l:{59:{c:[382]}}}}}}}}},121:{l:{59:{c:[1079]}}}}},100:{l:{111:{l:{116:{l:{59:{c:[380]}}}}}}},101:{l:{101:{l:{116:{l:{114:{l:{102:{l:{59:{c:[8488]}}}}}}}}},116:{l:{97:{l:{59:{c:[950]}}}}}}},102:{l:{114:{l:{59:{c:[120119]}}}}},104:{l:{99:{l:{121:{l:{59:{c:[1078]}}}}}}},105:{l:{103:{l:{114:{l:{97:{l:{114:{l:{114:{l:{59:{c:[8669]}}}}}}}}}}}}},111:{l:{112:{l:{102:{l:{59:{c:[120171]}}}}}}},115:{l:{99:{l:{114:{l:{59:{c:[120015]}}}}}}},119:{l:{106:{l:{59:{c:[8205]}}},110:{l:{106:{l:{59:{c:[8204]}}}}}}}}}},xu=f(function(e){var t=yu.CODE_POINTS,n=yu.CODE_POINT_SEQUENCES,r={0:65533,13:13,128:8364,129:129,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,141:141,142:381,143:143,144:144,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,157:157,158:382,159:376},a="DATA_STATE";function i(e){return e===t.SPACE||e===t.LINE_FEED||e===t.TABULATION||e===t.FORM_FEED}function o(e){return e>=t.DIGIT_0&&e<=t.DIGIT_9}function l(e){return e>=t.LATIN_CAPITAL_A&&e<=t.LATIN_CAPITAL_Z}function s(e){return e>=t.LATIN_SMALL_A&&e<=t.LATIN_SMALL_Z}function c(e){return s(e)||l(e)}function u(e,n){return o(e)||n&&(e>=t.LATIN_CAPITAL_A&&e<=t.LATIN_CAPITAL_F||e>=t.LATIN_SMALL_A&&e<=t.LATIN_SMALL_F)}function d(e){return e+32}function p(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(e>>>10&1023|55296)+String.fromCharCode(56320|1023&e))}function m(e){return String.fromCharCode(d(e))}var g=e.exports=function(e){this.preprocessor=new Nu,this.tokenQueue=[],this.allowCDATA=!1,this.state=a,this.returnState="",this.tempBuff=[],this.additionalAllowedCp=void 0,this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null,e&&e.locationInfo&&Ou(this)};g.CHARACTER_TOKEN="CHARACTER_TOKEN",g.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",g.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",g.START_TAG_TOKEN="START_TAG_TOKEN",g.END_TAG_TOKEN="END_TAG_TOKEN",g.COMMENT_TOKEN="COMMENT_TOKEN",g.DOCTYPE_TOKEN="DOCTYPE_TOKEN",g.EOF_TOKEN="EOF_TOKEN",g.HIBERNATION_TOKEN="HIBERNATION_TOKEN",g.MODE=g.prototype.MODE={DATA:a,RCDATA:"RCDATA_STATE",RAWTEXT:"RAWTEXT_STATE",SCRIPT_DATA:"SCRIPT_DATA_STATE",PLAINTEXT:"PLAINTEXT_STATE"},g.getTokenAttr=function(e,t){for(var n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null},g.prototype.getNextToken=function(){for(;!this.tokenQueue.length&&this.active;){this._hibernationSnapshot();var e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()},g.prototype.write=function(e,t){this.active=!0,this.preprocessor.write(e,t)},g.prototype.insertHtmlAtCurrentPos=function(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)},g.prototype._hibernationSnapshot=function(){this.consumedAfterSnapshot=0},g.prototype._ensureHibernation=function(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:g.HIBERNATION_TOKEN}),!0}return!1},g.prototype._consume=function(){return this.consumedAfterSnapshot++,this.preprocessor.advance()},g.prototype._unconsume=function(){this.consumedAfterSnapshot--,this.preprocessor.retreat()},g.prototype._unconsumeSeveral=function(e){for(;e--;)this._unconsume()},g.prototype._reconsumeInState=function(e){this.state=e,this._unconsume()},g.prototype._consumeSubsequentIfMatch=function(e,n,r){for(var a=0,i=!0,o=e.length,l=0,s=n,c=void 0;l<o;l++){if(l>0&&(s=this._consume(),a++),s===t.EOF){i=!1;break}if(s!==(c=e[l])&&(r||s!==d(c))){i=!1;break}}return i||this._unconsumeSeveral(a),i},g.prototype._lookahead=function(){var e=this._consume();return this._unconsume(),e},g.prototype.isTempBufferEqualToScriptString=function(){if(this.tempBuff.length!==n.SCRIPT_STRING.length)return!1;for(var e=0;e<this.tempBuff.length;e++)if(this.tempBuff[e]!==n.SCRIPT_STRING[e])return!1;return!0},g.prototype._createStartTagToken=function(){this.currentToken={type:g.START_TAG_TOKEN,tagName:"",selfClosing:!1,attrs:[]}},g.prototype._createEndTagToken=function(){this.currentToken={type:g.END_TAG_TOKEN,tagName:"",attrs:[]}},g.prototype._createCommentToken=function(){this.currentToken={type:g.COMMENT_TOKEN,data:""}},g.prototype._createDoctypeToken=function(e){this.currentToken={type:g.DOCTYPE_TOKEN,name:e,forceQuirks:!1,publicId:null,systemId:null}},g.prototype._createCharacterToken=function(e,t){this.currentCharacterToken={type:e,chars:t}},g.prototype._createAttr=function(e){this.currentAttr={name:e,value:""}},g.prototype._isDuplicateAttr=function(){return null!==g.getTokenAttr(this.currentToken,this.currentAttr.name)},g.prototype._leaveAttrName=function(e){this.state=e,this._isDuplicateAttr()||this.currentToken.attrs.push(this.currentAttr)},g.prototype._leaveAttrValue=function(e){this.state=e},g.prototype._isAppropriateEndTagToken=function(){return this.lastStartTagName===this.currentToken.tagName},g.prototype._emitCurrentToken=function(){this._emitCurrentCharacterToken(),this.currentToken.type===g.START_TAG_TOKEN&&(this.lastStartTagName=this.currentToken.tagName),this.tokenQueue.push(this.currentToken),this.currentToken=null},g.prototype._emitCurrentCharacterToken=function(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)},g.prototype._emitEOFToken=function(){this._emitCurrentCharacterToken(),this.tokenQueue.push({type:g.EOF_TOKEN})},g.prototype._appendCharToCurrentCharacterToken=function(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)},g.prototype._emitCodePoint=function(e){var n=g.CHARACTER_TOKEN;i(e)?n=g.WHITESPACE_CHARACTER_TOKEN:e===t.NULL&&(n=g.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(n,p(e))},g.prototype._emitSeveralCodePoints=function(e){for(var t=0;t<e.length;t++)this._emitCodePoint(e[t])},g.prototype._emitChar=function(e){this._appendCharToCurrentCharacterToken(g.CHARACTER_TOKEN,e)},g.prototype._consumeNumericEntity=function(e){var n="",a=void 0;do{n+=p(this._consume()),a=this._lookahead()}while(a!==t.EOF&&u(a,e));this._lookahead()===t.SEMICOLON&&this._consume();var i,o=parseInt(n,e?16:10),l=r[o];return l||((i=o)>=55296&&i<=57343||i>1114111?t.REPLACEMENT_CHARACTER:o)},g.prototype._consumeNamedEntity=function(e,n){for(var r=null,a=0,i=e,l=Mu[i],s=1,u=!1;l&&i!==t.EOF;i=this._consume(),s++,l=l.l&&l.l[i])if(l.c&&(r=l.c,a=s,i===t.SEMICOLON)){u=!0;break}if(r){if(!u&&(this._unconsumeSeveral(s-a),n)){var d=this._lookahead();if(d===t.EQUALS_SIGN||function(e){return c(e)||o(e)}(d))return this._unconsumeSeveral(a),null}return r}return this._unconsumeSeveral(s),null},g.prototype._consumeCharacterReference=function(e,n){if(i(e)||e===t.GREATER_THAN_SIGN||e===t.AMPERSAND||e===this.additionalAllowedCp||e===t.EOF)return this._unconsume(),null;if(e===t.NUMBER_SIGN){var r=!1,a=this._lookahead();return a!==t.LATIN_SMALL_X&&a!==t.LATIN_CAPITAL_X||(this._consume(),r=!0),(a=this._lookahead())!==t.EOF&&u(a,r)?[this._consumeNumericEntity(r)]:(this._unconsumeSeveral(r?2:1),null)}return this._consumeNamedEntity(e,n)};var h=g.prototype;h.DATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.AMPERSAND?this.state="CHARACTER_REFERENCE_IN_DATA_STATE":e===t.LESS_THAN_SIGN?this.state="TAG_OPEN_STATE":e===t.NULL?this._emitCodePoint(e):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},h.CHARACTER_REFERENCE_IN_DATA_STATE=function(e){this.additionalAllowedCp=void 0;var t=this._consumeCharacterReference(e,!1);this._ensureHibernation()||(t?this._emitSeveralCodePoints(t):this._emitChar("&"),this.state=a)},h.RCDATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.AMPERSAND?this.state="CHARACTER_REFERENCE_IN_RCDATA_STATE":e===t.LESS_THAN_SIGN?this.state="RCDATA_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},h.CHARACTER_REFERENCE_IN_RCDATA_STATE=function(e){this.additionalAllowedCp=void 0;var t=this._consumeCharacterReference(e,!1);this._ensureHibernation()||(t?this._emitSeveralCodePoints(t):this._emitChar("&"),this.state="RCDATA_STATE")},h.RAWTEXT_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.LESS_THAN_SIGN?this.state="RAWTEXT_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},h.SCRIPT_DATA_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},h.PLAINTEXT_STATE=function(e){this.preprocessor.dropParsedChunk(),e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._emitEOFToken():this._emitCodePoint(e)},h.TAG_OPEN_STATE=function(e){e===t.EXCLAMATION_MARK?this.state="MARKUP_DECLARATION_OPEN_STATE":e===t.SOLIDUS?this.state="END_TAG_OPEN_STATE":c(e)?(this._createStartTagToken(),this._reconsumeInState("TAG_NAME_STATE")):e===t.QUESTION_MARK?this._reconsumeInState("BOGUS_COMMENT_STATE"):(this._emitChar("<"),this._reconsumeInState(a))},h.END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("TAG_NAME_STATE")):e===t.GREATER_THAN_SIGN?this.state=a:e===t.EOF?(this._reconsumeInState(a),this._emitChar("<"),this._emitChar("/")):this._reconsumeInState("BOGUS_COMMENT_STATE")},h.TAG_NAME_STATE=function(e){i(e)?this.state="BEFORE_ATTRIBUTE_NAME_STATE":e===t.SOLIDUS?this.state="SELF_CLOSING_START_TAG_STATE":e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):l(e)?this.currentToken.tagName+=m(e):e===t.NULL?this.currentToken.tagName+=yu.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentToken.tagName+=p(e)},h.RCDATA_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="RCDATA_END_TAG_OPEN_STATE"):(this._emitChar("<"),this._reconsumeInState("RCDATA_STATE"))},h.RCDATA_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("RCDATA_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("RCDATA_STATE"))},h.RCDATA_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this.state=a,void this._emitCurrentToken()}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("RCDATA_STATE")}},h.RAWTEXT_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="RAWTEXT_END_TAG_OPEN_STATE"):(this._emitChar("<"),this._reconsumeInState("RAWTEXT_STATE"))},h.RAWTEXT_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("RAWTEXT_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("RAWTEXT_STATE"))},h.RAWTEXT_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("RAWTEXT_STATE")}},h.SCRIPT_DATA_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_END_TAG_OPEN_STATE"):e===t.EXCLAMATION_MARK?(this.state="SCRIPT_DATA_ESCAPE_START_STATE",this._emitChar("<"),this._emitChar("!")):(this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_STATE"))},h.SCRIPT_DATA_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("SCRIPT_DATA_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("SCRIPT_DATA_STATE"))},h.SCRIPT_DATA_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("SCRIPT_DATA_STATE")}},h.SCRIPT_DATA_ESCAPE_START_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPE_START_DASH_STATE",this._emitChar("-")):this._reconsumeInState("SCRIPT_DATA_STATE")},h.SCRIPT_DATA_ESCAPE_START_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):this._reconsumeInState("SCRIPT_DATA_STATE")},h.SCRIPT_DATA_ESCAPED_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._reconsumeInState(a):this._emitCodePoint(e)},h.SCRIPT_DATA_ESCAPED_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.NULL?(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitChar(yu.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e))},h.SCRIPT_DATA_ESCAPED_DASH_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this._emitChar("-"):e===t.LESS_THAN_SIGN?this.state="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE":e===t.GREATER_THAN_SIGN?(this.state="SCRIPT_DATA_STATE",this._emitChar(">")):e===t.NULL?(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitChar(yu.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e))},h.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE"):c(e)?(this.tempBuff=[],this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE")):(this._emitChar("<"),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE"))},h.SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE=function(e){c(e)?(this._createEndTagToken(),this._reconsumeInState("SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE")):(this._emitChar("<"),this._emitChar("/"),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE"))},h.SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE=function(e){if(l(e))this.currentToken.tagName+=m(e),this.tempBuff.push(e);else if(s(e))this.currentToken.tagName+=p(e),this.tempBuff.push(e);else{if(this._isAppropriateEndTagToken()){if(i(e))return void(this.state="BEFORE_ATTRIBUTE_NAME_STATE");if(e===t.SOLIDUS)return void(this.state="SELF_CLOSING_START_TAG_STATE");if(e===t.GREATER_THAN_SIGN)return this._emitCurrentToken(),void(this.state=a)}this._emitChar("<"),this._emitChar("/"),this._emitSeveralCodePoints(this.tempBuff),this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE")}},h.SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN?(this.state=this.isTempBufferEqualToScriptString()?"SCRIPT_DATA_DOUBLE_ESCAPED_STATE":"SCRIPT_DATA_ESCAPED_STATE",this._emitCodePoint(e)):l(e)?(this.tempBuff.push(d(e)),this._emitCodePoint(e)):s(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState("SCRIPT_DATA_ESCAPED_STATE")},h.SCRIPT_DATA_DOUBLE_ESCAPED_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.NULL?this._emitChar(yu.REPLACEMENT_CHARACTER):e===t.EOF?this._reconsumeInState(a):this._emitCodePoint(e)},h.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE=function(e){e===t.HYPHEN_MINUS?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",this._emitChar("-")):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.NULL?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitChar(yu.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e))},h.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this._emitChar("-"):e===t.LESS_THAN_SIGN?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",this._emitChar("<")):e===t.GREATER_THAN_SIGN?(this.state="SCRIPT_DATA_STATE",this._emitChar(">")):e===t.NULL?(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitChar(yu.REPLACEMENT_CHARACTER)):e===t.EOF?this._reconsumeInState(a):(this.state="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e))},h.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE=function(e){e===t.SOLIDUS?(this.tempBuff=[],this.state="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",this._emitChar("/")):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")},h.SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN?(this.state=this.isTempBufferEqualToScriptString()?"SCRIPT_DATA_ESCAPED_STATE":"SCRIPT_DATA_DOUBLE_ESCAPED_STATE",this._emitCodePoint(e)):l(e)?(this.tempBuff.push(d(e)),this._emitCodePoint(e)):s(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState("SCRIPT_DATA_DOUBLE_ESCAPED_STATE")},h.BEFORE_ATTRIBUTE_NAME_STATE=function(e){i(e)||(e===t.SOLIDUS||e===t.GREATER_THAN_SIGN||e===t.EOF?this._reconsumeInState("AFTER_ATTRIBUTE_NAME_STATE"):e===t.EQUALS_SIGN?(this._createAttr("="),this.state="ATTRIBUTE_NAME_STATE"):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))},h.ATTRIBUTE_NAME_STATE=function(e){i(e)||e===t.SOLIDUS||e===t.GREATER_THAN_SIGN||e===t.EOF?(this._leaveAttrName("AFTER_ATTRIBUTE_NAME_STATE"),this._unconsume()):e===t.EQUALS_SIGN?this._leaveAttrName("BEFORE_ATTRIBUTE_VALUE_STATE"):l(e)?this.currentAttr.name+=m(e):e===t.QUOTATION_MARK||e===t.APOSTROPHE||e===t.LESS_THAN_SIGN?this.currentAttr.name+=p(e):e===t.NULL?this.currentAttr.name+=yu.REPLACEMENT_CHARACTER:this.currentAttr.name+=p(e)},h.AFTER_ATTRIBUTE_NAME_STATE=function(e){i(e)||(e===t.SOLIDUS?this.state="SELF_CLOSING_START_TAG_STATE":e===t.EQUALS_SIGN?this.state="BEFORE_ATTRIBUTE_VALUE_STATE":e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):(this._createAttr(""),this._reconsumeInState("ATTRIBUTE_NAME_STATE")))},h.BEFORE_ATTRIBUTE_VALUE_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?this.state="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE":e===t.APOSTROPHE?this.state="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE":this._reconsumeInState("ATTRIBUTE_VALUE_UNQUOTED_STATE"))},h.ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":e===t.AMPERSAND?(this.additionalAllowedCp=t.QUOTATION_MARK,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.NULL?this.currentAttr.value+=yu.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},h.ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE":e===t.AMPERSAND?(this.additionalAllowedCp=t.APOSTROPHE,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.NULL?this.currentAttr.value+=yu.REPLACEMENT_CHARACTER:e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},h.ATTRIBUTE_VALUE_UNQUOTED_STATE=function(e){i(e)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):e===t.AMPERSAND?(this.additionalAllowedCp=t.GREATER_THAN_SIGN,this.returnState=this.state,this.state="CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE"):e===t.GREATER_THAN_SIGN?(this._leaveAttrValue(a),this._emitCurrentToken()):e===t.NULL?this.currentAttr.value+=yu.REPLACEMENT_CHARACTER:e===t.QUOTATION_MARK||e===t.APOSTROPHE||e===t.LESS_THAN_SIGN||e===t.EQUALS_SIGN||e===t.GRAVE_ACCENT?this.currentAttr.value+=p(e):e===t.EOF?this._reconsumeInState(a):this.currentAttr.value+=p(e)},h.CHARACTER_REFERENCE_IN_ATTRIBUTE_VALUE_STATE=function(e){var t=this._consumeCharacterReference(e,!0);if(!this._ensureHibernation()){if(t)for(var n=0;n<t.length;n++)this.currentAttr.value+=p(t[n]);else this.currentAttr.value+="&";this.state=this.returnState}},h.AFTER_ATTRIBUTE_VALUE_QUOTED_STATE=function(e){i(e)?this._leaveAttrValue("BEFORE_ATTRIBUTE_NAME_STATE"):e===t.SOLIDUS?this._leaveAttrValue("SELF_CLOSING_START_TAG_STATE"):e===t.GREATER_THAN_SIGN?(this._leaveAttrValue(a),this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE")},h.SELF_CLOSING_START_TAG_STATE=function(e){e===t.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=a,this._emitCurrentToken()):e===t.EOF?this._reconsumeInState(a):this._reconsumeInState("BEFORE_ATTRIBUTE_NAME_STATE")},h.BOGUS_COMMENT_STATE=function(){this._createCommentToken(),this._reconsumeInState("BOGUS_COMMENT_STATE_CONTINUATION")},h.BOGUS_COMMENT_STATE_CONTINUATION=function(e){for(;;){if(e===t.GREATER_THAN_SIGN){this.state=a;break}if(e===t.EOF){this._reconsumeInState(a);break}if(this.currentToken.data+=e===t.NULL?yu.REPLACEMENT_CHARACTER:p(e),this._hibernationSnapshot(),e=this._consume(),this._ensureHibernation())return}this._emitCurrentToken()},h.MARKUP_DECLARATION_OPEN_STATE=function(e){var t=this._consumeSubsequentIfMatch(n.DASH_DASH_STRING,e,!0),r=!t&&this._consumeSubsequentIfMatch(n.DOCTYPE_STRING,e,!1),a=!t&&!r&&this.allowCDATA&&this._consumeSubsequentIfMatch(n.CDATA_START_STRING,e,!0);this._ensureHibernation()||(t?(this._createCommentToken(),this.state="COMMENT_START_STATE"):r?this.state="DOCTYPE_STATE":a?this.state="CDATA_SECTION_STATE":this._reconsumeInState("BOGUS_COMMENT_STATE"))},h.COMMENT_START_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_START_DASH_STATE":e===t.NULL?(this.currentToken.data+=yu.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+=p(e),this.state="COMMENT_STATE")},h.COMMENT_START_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_STATE":e===t.NULL?(this.currentToken.data+="-",this.currentToken.data+=yu.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="-",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},h.COMMENT_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_DASH_STATE":e===t.NULL?this.currentToken.data+=yu.REPLACEMENT_CHARACTER:e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.data+=p(e)},h.COMMENT_END_DASH_STATE=function(e){e===t.HYPHEN_MINUS?this.state="COMMENT_END_STATE":e===t.NULL?(this.currentToken.data+="-",this.currentToken.data+=yu.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="-",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},h.COMMENT_END_STATE=function(e){e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.EXCLAMATION_MARK?this.state="COMMENT_END_BANG_STATE":e===t.HYPHEN_MINUS?this.currentToken.data+="-":e===t.NULL?(this.currentToken.data+="--",this.currentToken.data+=yu.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._reconsumeInState(a),this._emitCurrentToken()):(this.currentToken.data+="--",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},h.COMMENT_END_BANG_STATE=function(e){e===t.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state="COMMENT_END_DASH_STATE"):e===t.GREATER_THAN_SIGN?(this.state=a,this._emitCurrentToken()):e===t.NULL?(this.currentToken.data+="--!",this.currentToken.data+=yu.REPLACEMENT_CHARACTER,this.state="COMMENT_STATE"):e===t.EOF?(this._emitCurrentToken(),this._reconsumeInState(a)):(this.currentToken.data+="--!",this.currentToken.data+=p(e),this.state="COMMENT_STATE")},h.DOCTYPE_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):(this._createDoctypeToken(""),this._reconsumeInState("DOCTYPE_NAME_STATE")))},h.DOCTYPE_NAME_STATE=function(e){i(e)||e===t.GREATER_THAN_SIGN||e===t.EOF?this._reconsumeInState("AFTER_DOCTYPE_NAME_STATE"):l(e)?this.currentToken.name+=m(e):e===t.NULL?this.currentToken.name+=yu.REPLACEMENT_CHARACTER:this.currentToken.name+=p(e)},h.AFTER_DOCTYPE_NAME_STATE=function(e){if(!i(e))if(e===t.GREATER_THAN_SIGN)this.state=a,this._emitCurrentToken();else{var r=this._consumeSubsequentIfMatch(n.PUBLIC_STRING,e,!1),o=!r&&this._consumeSubsequentIfMatch(n.SYSTEM_STRING,e,!1);this._ensureHibernation()||(r?this.state="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE":o?this.state="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE":(this.currentToken.forceQuirks=!0,this.state="BOGUS_DOCTYPE_STATE"))}},h.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.publicId="",this.state="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},h.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE":e===t.NULL?this.currentToken.publicId+=yu.REPLACEMENT_CHARACTER:e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.publicId+=p(e)},h.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE":e===t.NULL?this.currentToken.publicId+=yu.REPLACEMENT_CHARACTER:e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.publicId+=p(e)},h.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},h.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE=function(e){i(e)||(e===t.QUOTATION_MARK?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE"):e===t.APOSTROPHE?(this.currentToken.systemId="",this.state="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE"):(this.currentToken.forceQuirks=!0,this._reconsumeInState("BOGUS_DOCTYPE_STATE")))},h.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE=function(e){e===t.QUOTATION_MARK?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.NULL?this.currentToken.systemId+=yu.REPLACEMENT_CHARACTER:e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.systemId+=p(e)},h.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE=function(e){e===t.APOSTROPHE?this.state="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE":e===t.GREATER_THAN_SIGN?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=a):e===t.NULL?this.currentToken.systemId+=yu.REPLACEMENT_CHARACTER:e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.currentToken.systemId+=p(e)},h.AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE=function(e){i(e)||(e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.EOF?(this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._reconsumeInState(a)):this.state="BOGUS_DOCTYPE_STATE")},h.BOGUS_DOCTYPE_STATE=function(e){e===t.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=a):e===t.EOF&&(this._emitCurrentToken(),this._reconsumeInState(a))},h.CDATA_SECTION_STATE=function(e){for(;;){if(e===t.EOF){this._reconsumeInState(a);break}var r=this._consumeSubsequentIfMatch(n.CDATA_END_STRING,e,!0);if(this._ensureHibernation())break;if(r){this.state=a;break}if(this._emitCodePoint(e),this._hibernationSnapshot(),e=this._consume(),this._ensureHibernation())break}}}),wu=f(function(e,t){var n=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"};var r=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",MENUITEM:"menuitem",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"},a=t.SPECIAL_ELEMENTS={};a[n.HTML]={},a[n.HTML][r.ADDRESS]=!0,a[n.HTML][r.APPLET]=!0,a[n.HTML][r.AREA]=!0,a[n.HTML][r.ARTICLE]=!0,a[n.HTML][r.ASIDE]=!0,a[n.HTML][r.BASE]=!0,a[n.HTML][r.BASEFONT]=!0,a[n.HTML][r.BGSOUND]=!0,a[n.HTML][r.BLOCKQUOTE]=!0,a[n.HTML][r.BODY]=!0,a[n.HTML][r.BR]=!0,a[n.HTML][r.BUTTON]=!0,a[n.HTML][r.CAPTION]=!0,a[n.HTML][r.CENTER]=!0,a[n.HTML][r.COL]=!0,a[n.HTML][r.COLGROUP]=!0,a[n.HTML][r.DD]=!0,a[n.HTML][r.DETAILS]=!0,a[n.HTML][r.DIR]=!0,a[n.HTML][r.DIV]=!0,a[n.HTML][r.DL]=!0,a[n.HTML][r.DT]=!0,a[n.HTML][r.EMBED]=!0,a[n.HTML][r.FIELDSET]=!0,a[n.HTML][r.FIGCAPTION]=!0,a[n.HTML][r.FIGURE]=!0,a[n.HTML][r.FOOTER]=!0,a[n.HTML][r.FORM]=!0,a[n.HTML][r.FRAME]=!0,a[n.HTML][r.FRAMESET]=!0,a[n.HTML][r.H1]=!0,a[n.HTML][r.H2]=!0,a[n.HTML][r.H3]=!0,a[n.HTML][r.H4]=!0,a[n.HTML][r.H5]=!0,a[n.HTML][r.H6]=!0,a[n.HTML][r.HEAD]=!0,a[n.HTML][r.HEADER]=!0,a[n.HTML][r.HGROUP]=!0,a[n.HTML][r.HR]=!0,a[n.HTML][r.HTML]=!0,a[n.HTML][r.IFRAME]=!0,a[n.HTML][r.IMG]=!0,a[n.HTML][r.INPUT]=!0,a[n.HTML][r.LI]=!0,a[n.HTML][r.LINK]=!0,a[n.HTML][r.LISTING]=!0,a[n.HTML][r.MAIN]=!0,a[n.HTML][r.MARQUEE]=!0,a[n.HTML][r.MENU]=!0,a[n.HTML][r.META]=!0,a[n.HTML][r.NAV]=!0,a[n.HTML][r.NOEMBED]=!0,a[n.HTML][r.NOFRAMES]=!0,a[n.HTML][r.NOSCRIPT]=!0,a[n.HTML][r.OBJECT]=!0,a[n.HTML][r.OL]=!0,a[n.HTML][r.P]=!0,a[n.HTML][r.PARAM]=!0,a[n.HTML][r.PLAINTEXT]=!0,a[n.HTML][r.PRE]=!0,a[n.HTML][r.SCRIPT]=!0,a[n.HTML][r.SECTION]=!0,a[n.HTML][r.SELECT]=!0,a[n.HTML][r.SOURCE]=!0,a[n.HTML][r.STYLE]=!0,a[n.HTML][r.SUMMARY]=!0,a[n.HTML][r.TABLE]=!0,a[n.HTML][r.TBODY]=!0,a[n.HTML][r.TD]=!0,a[n.HTML][r.TEMPLATE]=!0,a[n.HTML][r.TEXTAREA]=!0,a[n.HTML][r.TFOOT]=!0,a[n.HTML][r.TH]=!0,a[n.HTML][r.THEAD]=!0,a[n.HTML][r.TITLE]=!0,a[n.HTML][r.TR]=!0,a[n.HTML][r.TRACK]=!0,a[n.HTML][r.UL]=!0,a[n.HTML][r.WBR]=!0,a[n.HTML][r.XMP]=!0,a[n.MATHML]={},a[n.MATHML][r.MI]=!0,a[n.MATHML][r.MO]=!0,a[n.MATHML][r.MN]=!0,a[n.MATHML][r.MS]=!0,a[n.MATHML][r.MTEXT]=!0,a[n.MATHML][r.ANNOTATION_XML]=!0,a[n.SVG]={},a[n.SVG][r.TITLE]=!0,a[n.SVG][r.FOREIGN_OBJECT]=!0,a[n.SVG][r.DESC]=!0}),Ru=(wu.NAMESPACES,wu.ATTRS,wu.TAG_NAMES,wu.SPECIAL_ELEMENTS,f(function(e){var t=wu.TAG_NAMES,n=wu.NAMESPACES;function r(e){switch(e.length){case 1:return e===t.P;case 2:return e===t.RB||e===t.RP||e===t.RT||e===t.DD||e===t.DT||e===t.LI;case 3:return e===t.RTC;case 6:return e===t.OPTION;case 8:return e===t.OPTGROUP||e===t.MENUITEM}return!1}function a(e,r){switch(e.length){case 2:if(e===t.TD||e===t.TH)return r===n.HTML;if(e===t.MI||e===t.MO||e===t.MN||e===t.MS)return r===n.MATHML;break;case 4:if(e===t.HTML)return r===n.HTML;if(e===t.DESC)return r===n.SVG;break;case 5:if(e===t.TABLE)return r===n.HTML;if(e===t.MTEXT)return r===n.MATHML;if(e===t.TITLE)return r===n.SVG;break;case 6:return(e===t.APPLET||e===t.OBJECT)&&r===n.HTML;case 7:return(e===t.CAPTION||e===t.MARQUEE)&&r===n.HTML;case 8:return e===t.TEMPLATE&&r===n.HTML;case 13:return e===t.FOREIGN_OBJECT&&r===n.SVG;case 14:return e===t.ANNOTATION_XML&&r===n.MATHML}return!1}var i=e.exports=function(e,t){this.stackTop=-1,this.items=[],this.current=e,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=t};i.prototype._indexOf=function(e){for(var t=-1,n=this.stackTop;n>=0;n--)if(this.items[n]===e){t=n;break}return t},i.prototype._isInTemplate=function(){return this.currentTagName===t.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===n.HTML},i.prototype._updateCurrentElement=function(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null},i.prototype.push=function(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++},i.prototype.pop=function(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()},i.prototype.replace=function(e,t){var n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&this._updateCurrentElement()},i.prototype.insertAfter=function(e,t){var n=this._indexOf(e)+1;this.items.splice(n,0,t),n===++this.stackTop&&this._updateCurrentElement()},i.prototype.popUntilTagNamePopped=function(e){for(;this.stackTop>-1;){var t=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&r===n.HTML)break}},i.prototype.popUntilElementPopped=function(e){for(;this.stackTop>-1;){var t=this.current;if(this.pop(),t===e)break}},i.prototype.popUntilNumberedHeaderPopped=function(){for(;this.stackTop>-1;){var e=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===t.H1||e===t.H2||e===t.H3||e===t.H4||e===t.H5||e===t.H6&&r===n.HTML)break}},i.prototype.popUntilTableCellPopped=function(){for(;this.stackTop>-1;){var e=this.currentTagName,r=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===t.TD||e===t.TH&&r===n.HTML)break}},i.prototype.popAllUpToHtmlElement=function(){this.stackTop=0,this._updateCurrentElement()},i.prototype.clearBackToTableContext=function(){for(;this.currentTagName!==t.TABLE&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.clearBackToTableBodyContext=function(){for(;this.currentTagName!==t.TBODY&&this.currentTagName!==t.TFOOT&&this.currentTagName!==t.THEAD&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.clearBackToTableRowContext=function(){for(;this.currentTagName!==t.TR&&this.currentTagName!==t.TEMPLATE&&this.currentTagName!==t.HTML||this.treeAdapter.getNamespaceURI(this.current)!==n.HTML;)this.pop()},i.prototype.remove=function(e){for(var t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}},i.prototype.tryPeekProperlyNestedBodyElement=function(){var e=this.items[1];return e&&this.treeAdapter.getTagName(e)===t.BODY?e:null},i.prototype.contains=function(e){return this._indexOf(e)>-1},i.prototype.getCommonAncestor=function(e){var t=this._indexOf(e);return--t>=0?this.items[t]:null},i.prototype.isRootHtmlElementCurrent=function(){return 0===this.stackTop&&this.currentTagName===t.HTML},i.prototype.hasInScope=function(e){for(var t=this.stackTop;t>=0;t--){var r=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(r===e&&i===n.HTML)return!0;if(a(r,i))return!1}return!0},i.prototype.hasNumberedHeaderInScope=function(){for(var e=this.stackTop;e>=0;e--){var r=this.treeAdapter.getTagName(this.items[e]),i=this.treeAdapter.getNamespaceURI(this.items[e]);if((r===t.H1||r===t.H2||r===t.H3||r===t.H4||r===t.H5||r===t.H6)&&i===n.HTML)return!0;if(a(r,i))return!1}return!0},i.prototype.hasInListItemScope=function(e){for(var r=this.stackTop;r>=0;r--){var i=this.treeAdapter.getTagName(this.items[r]),o=this.treeAdapter.getNamespaceURI(this.items[r]);if(i===e&&o===n.HTML)return!0;if((i===t.UL||i===t.OL)&&o===n.HTML||a(i,o))return!1}return!0},i.prototype.hasInButtonScope=function(e){for(var r=this.stackTop;r>=0;r--){var i=this.treeAdapter.getTagName(this.items[r]),o=this.treeAdapter.getNamespaceURI(this.items[r]);if(i===e&&o===n.HTML)return!0;if(i===t.BUTTON&&o===n.HTML||a(i,o))return!1}return!0},i.prototype.hasInTableScope=function(e){for(var r=this.stackTop;r>=0;r--){var a=this.treeAdapter.getTagName(this.items[r]);if(this.treeAdapter.getNamespaceURI(this.items[r])===n.HTML){if(a===e)return!0;if(a===t.TABLE||a===t.TEMPLATE||a===t.HTML)return!1}}return!0},i.prototype.hasTableBodyContextInTableScope=function(){for(var e=this.stackTop;e>=0;e--){var r=this.treeAdapter.getTagName(this.items[e]);if(this.treeAdapter.getNamespaceURI(this.items[e])===n.HTML){if(r===t.TBODY||r===t.THEAD||r===t.TFOOT)return!0;if(r===t.TABLE||r===t.HTML)return!1}}return!0},i.prototype.hasInSelectScope=function(e){for(var r=this.stackTop;r>=0;r--){var a=this.treeAdapter.getTagName(this.items[r]);if(this.treeAdapter.getNamespaceURI(this.items[r])===n.HTML){if(a===e)return!0;if(a!==t.OPTION&&a!==t.OPTGROUP)return!1}}return!0},i.prototype.generateImpliedEndTags=function(){for(;r(this.currentTagName);)this.pop()},i.prototype.generateImpliedEndTagsWithExclusion=function(e){for(;r(this.currentTagName)&&this.currentTagName!==e;)this.pop()}})),Du=f(function(e){var t=e.exports=function(e){this.length=0,this.entries=[],this.treeAdapter=e,this.bookmark=null};t.MARKER_ENTRY="MARKER_ENTRY",t.ELEMENT_ENTRY="ELEMENT_ENTRY",t.prototype._getNoahArkConditionCandidates=function(e){var n=[];if(this.length>=3)for(var r=this.treeAdapter.getAttrList(e).length,a=this.treeAdapter.getTagName(e),i=this.treeAdapter.getNamespaceURI(e),o=this.length-1;o>=0;o--){var l=this.entries[o];if(l.type===t.MARKER_ENTRY)break;var s=l.element,c=this.treeAdapter.getAttrList(s);this.treeAdapter.getTagName(s)===a&&this.treeAdapter.getNamespaceURI(s)===i&&c.length===r&&n.push({idx:o,attrs:c})}return n.length<3?[]:n},t.prototype._ensureNoahArkCondition=function(e){var t=this._getNoahArkConditionCandidates(e),n=t.length;if(n){for(var r=this.treeAdapter.getAttrList(e),a=r.length,i={},o=0;o<a;o++){var l=r[o];i[l.name]=l.value}for(o=0;o<a;o++)for(var s=0;s<n;s++){var c=t[s].attrs[o];if(i[c.name]!==c.value&&(t.splice(s,1),n--),t.length<3)return}for(o=n-1;o>=2;o--)this.entries.splice(t[o].idx,1),this.length--}},t.prototype.insertMarker=function(){this.entries.push({type:t.MARKER_ENTRY}),this.length++},t.prototype.pushElement=function(e,n){this._ensureNoahArkCondition(e),this.entries.push({type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++},t.prototype.insertElementAfterBookmark=function(e,n){for(var r=this.length-1;r>=0&&this.entries[r]!==this.bookmark;r--);this.entries.splice(r+1,0,{type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++},t.prototype.removeEntry=function(e){for(var t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}},t.prototype.clearToLastMarker=function(){for(;this.length;){var e=this.entries.pop();if(this.length--,e.type===t.MARKER_ENTRY)break}},t.prototype.getElementEntryInScopeWithTagName=function(e){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===t.MARKER_ENTRY)return null;if(this.treeAdapter.getTagName(r.element)===e)return r}return null},t.prototype.getElementEntry=function(e){for(var n=this.length-1;n>=0;n--){var r=this.entries[n];if(r.type===t.ELEMENT_ENTRY&&r.element===e)return r}return null}}),Iu=wu.TAG_NAMES;function ku(e,t,n){var r=e.__location;if(r&&(r.startTag||(r.startTag={line:r.line,col:r.col,startOffset:r.startOffset,endOffset:r.endOffset},r.attrs&&(r.startTag.attrs=r.attrs)),t.location)){var a=t.location,i=n.getTagName(e),o=t.type===xu.END_TAG_TOKEN&&i===t.tagName;o&&(r.endTag={line:a.line,col:a.col,startOffset:a.startOffset,endOffset:a.endOffset}),r.endOffset=o?a.endOffset:a.startOffset}}var Lu=function(e){var t=Object.getPrototypeOf(e),n=e.treeAdapter,r=null,a=null,i=null;e._bootstrap=function(o,l){t._bootstrap.call(this,o,l),r=null,a=null,i=null,e.openElements.pop=function(){ku(this.current,i,n),Ru.prototype.pop.call(this)},e.openElements.popAllUpToHtmlElement=function(){for(var e=this.stackTop;e>0;e--)ku(this.items[e],i,n);Ru.prototype.popAllUpToHtmlElement.call(this)},e.openElements.remove=function(e){ku(e,i,n),Ru.prototype.remove.call(this,e)}},e._processTokenInForeignContent=function(e){i=e,t._processTokenInForeignContent.call(this,e)},e._processToken=function(e){if(i=e,t._processToken.call(this,e),e.type===xu.END_TAG_TOKEN&&(e.tagName===Iu.HTML||e.tagName===Iu.BODY&&this.openElements.hasInScope(Iu.BODY)))for(var r=this.openElements.stackTop;r>=0;r--){var a=this.openElements.items[r];if(this.treeAdapter.getTagName(a)===e.tagName){ku(a,e,n);break}}},e._setDocumentType=function(e){t._setDocumentType.call(this,e);for(var n=this.treeAdapter.getChildNodes(this.document),r=n.length,a=0;a<r;a++){var i=n[a];if(this.treeAdapter.isDocumentTypeNode(i)){i.__location=e.location;break}}},e._attachElementToTree=function(e){e.__location=r||null,r=null,t._attachElementToTree.call(this,e)},e._appendElement=function(e,n){r=e.location,t._appendElement.call(this,e,n)},e._insertElement=function(e,n){r=e.location,t._insertElement.call(this,e,n)},e._insertTemplate=function(e){r=e.location,t._insertTemplate.call(this,e),this.treeAdapter.getTemplateContent(this.openElements.current).__location=null},e._insertFakeRootElement=function(){t._insertFakeRootElement.call(this),this.openElements.current.__location=null},e._appendCommentNode=function(e,n){t._appendCommentNode.call(this,e,n);var r=this.treeAdapter.getChildNodes(n);r[r.length-1].__location=e.location},e._findFosterParentingLocation=function(){return a=t._findFosterParentingLocation.call(this)},e._insertCharacters=function(e){t._insertCharacters.call(this,e);var n=this._shouldFosterParentOnInsertion(),r=n&&a.parent||this.openElements.currentTmplContent||this.openElements.current,i=this.treeAdapter.getChildNodes(r),o=i[n&&a.beforeElement?i.indexOf(a.beforeElement)-1:i.length-1];o.__location?o.__location.endOffset=e.location.endOffset:o.__location=e.location}},Pu=f(function(e,t){t.createDocument=function(){return{nodeName:"#document",quirksMode:!1,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",quirksMode:!1,childNodes:[]}},t.createElement=function(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};var n=function(e){return{nodeName:"#text",value:e,parentNode:null}},r=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},a=t.insertBefore=function(e,t,n){var r=e.childNodes.indexOf(n);e.childNodes.splice(r,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,n,a){for(var i=null,o=0;o<e.childNodes.length;o++)if("#documentType"===e.childNodes[o].nodeName){i=e.childNodes[o];break}i?(i.name=t,i.publicId=n,i.systemId=a):r(e,{nodeName:"#documentType",name:t,publicId:n,systemId:a})},t.setQuirksMode=function(e){e.quirksMode=!0},t.isQuirksMode=function(e){return e.quirksMode},t.detachNode=function(e){if(e.parentNode){var t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null}},t.insertText=function(e,t){if(e.childNodes.length){var a=e.childNodes[e.childNodes.length-1];if("#text"===a.nodeName)return void(a.value+=t)}r(e,n(t))},t.insertTextBefore=function(e,t,r){var i=e.childNodes[e.childNodes.indexOf(r)-1];i&&"#text"===i.nodeName?i.value+=t:a(e,n(t),r)},t.adoptAttributes=function(e,t){for(var n=[],r=0;r<e.attrs.length;r++)n.push(e.attrs[r].name);for(var a=0;a<t.length;a++)-1===n.indexOf(t[a].name)&&e.attrs.push(t[a])},t.getFirstChild=function(e){return e.childNodes[0]},t.getChildNodes=function(e){return e.childNodes},t.getParentNode=function(e){return e.parentNode},t.getAttrList=function(e){return e.attrs},t.getTagName=function(e){return e.tagName},t.getNamespaceURI=function(e){return e.namespaceURI},t.getTextNodeContent=function(e){return e.value},t.getCommentNodeContent=function(e){return e.data},t.getDocumentTypeNodeName=function(e){return e.name},t.getDocumentTypeNodePublicId=function(e){return e.publicId},t.getDocumentTypeNodeSystemId=function(e){return e.systemId},t.isTextNode=function(e){return"#text"===e.nodeName},t.isCommentNode=function(e){return"#comment"===e.nodeName},t.isDocumentTypeNode=function(e){return"#documentType"===e.nodeName},t.isElementNode=function(e){return!!e.tagName}}),Bu=(Pu.createDocument,Pu.createDocumentFragment,Pu.createElement,Pu.createCommentNode,Pu.appendChild,Pu.insertBefore,Pu.setTemplateContent,Pu.getTemplateContent,Pu.setDocumentType,Pu.setQuirksMode,Pu.isQuirksMode,Pu.detachNode,Pu.insertText,Pu.insertTextBefore,Pu.adoptAttributes,Pu.getFirstChild,Pu.getChildNodes,Pu.getParentNode,Pu.getAttrList,Pu.getTagName,Pu.getNamespaceURI,Pu.getTextNodeContent,Pu.getCommentNodeContent,Pu.getDocumentTypeNodeName,Pu.getDocumentTypeNodePublicId,Pu.getDocumentTypeNodeSystemId,Pu.isTextNode,Pu.isCommentNode,Pu.isDocumentTypeNode,Pu.isElementNode,["+//silmaril//dtd html pro v0r11 19970101//en","-//advasoft ltd//dtd html 3.0 aswedit + extensions//en","-//as//dtd html 3.0 aswedit + extensions//en","-//ietf//dtd html 2.0 level 1//en","-//ietf//dtd html 2.0 level 2//en","-//ietf//dtd html 2.0 strict level 1//en","-//ietf//dtd html 2.0 strict level 2//en","-//ietf//dtd html 2.0 strict//en","-//ietf//dtd html 2.0//en","-//ietf//dtd html 2.1e//en","-//ietf//dtd html 3.0//en","-//ietf//dtd html 3.0//en//","-//ietf//dtd html 3.2 final//en","-//ietf//dtd html 3.2//en","-//ietf//dtd html 3//en","-//ietf//dtd html level 0//en","-//ietf//dtd html level 0//en//2.0","-//ietf//dtd html level 1//en","-//ietf//dtd html level 1//en//2.0","-//ietf//dtd html level 2//en","-//ietf//dtd html level 2//en//2.0","-//ietf//dtd html level 3//en","-//ietf//dtd html level 3//en//3.0","-//ietf//dtd html strict level 0//en","-//ietf//dtd html strict level 0//en//2.0","-//ietf//dtd html strict level 1//en","-//ietf//dtd html strict level 1//en//2.0","-//ietf//dtd html strict level 2//en","-//ietf//dtd html strict level 2//en//2.0","-//ietf//dtd html strict level 3//en","-//ietf//dtd html strict level 3//en//3.0","-//ietf//dtd html strict//en","-//ietf//dtd html strict//en//2.0","-//ietf//dtd html strict//en//3.0","-//ietf//dtd html//en","-//ietf//dtd html//en//2.0","-//ietf//dtd html//en//3.0","-//metrius//dtd metrius presentational//en","-//microsoft//dtd internet explorer 2.0 html strict//en","-//microsoft//dtd internet explorer 2.0 html//en","-//microsoft//dtd internet explorer 2.0 tables//en","-//microsoft//dtd internet explorer 3.0 html strict//en","-//microsoft//dtd internet explorer 3.0 html//en","-//microsoft//dtd internet explorer 3.0 tables//en","-//netscape comm. corp.//dtd html//en","-//netscape comm. corp.//dtd strict html//en","-//o'reilly and associates//dtd html 2.0//en","-//o'reilly and associates//dtd html extended 1.0//en","-//spyglass//dtd html 2.0 extended//en","-//sq//dtd html 2.0 hotmetal + extensions//en","-//sun microsystems corp.//dtd hotjava html//en","-//sun microsystems corp.//dtd hotjava strict html//en","-//w3c//dtd html 3 1995-03-24//en","-//w3c//dtd html 3.2 draft//en","-//w3c//dtd html 3.2 final//en","-//w3c//dtd html 3.2//en","-//w3c//dtd html 3.2s draft//en","-//w3c//dtd html 4.0 frameset//en","-//w3c//dtd html 4.0 transitional//en","-//w3c//dtd html experimental 19960712//en","-//w3c//dtd html experimental 970421//en","-//w3c//dtd w3 html//en","-//w3o//dtd w3 html 3.0//en","-//w3o//dtd w3 html 3.0//en//","-//webtechs//dtd mozilla html 2.0//en","-//webtechs//dtd mozilla html//en"]),Fu=["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],Uu=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"];function Hu(e){var t=-1!==e.indexOf('"')?"'":'"';return t+e+t}var Gu={isQuirks:function(e,t,n){if("html"!==e)return!0;if(n&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===n.toLowerCase())return!0;if(null!==t){if(t=t.toLowerCase(),Uu.indexOf(t)>-1)return!0;var r=Bu;null===n&&(r=r.concat(Fu));for(var a=0;a<r.length;a++)if(0===t.indexOf(r[a]))return!0}return!1},serializeContent:function(e,t,n){var r="!DOCTYPE ";return e&&(r+=e),null!==t?r+=" PUBLIC "+Hu(t):null!==n&&(r+=" SYSTEM"),null!==n&&(r+=" "+Hu(n)),r}},qu=f(function(e,t){var n=wu.TAG_NAMES,r=wu.NAMESPACES,a=wu.ATTRS,i={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},o={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},l={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:r.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:r.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:r.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:r.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:r.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:r.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:r.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:r.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:r.XML},"xml:space":{prefix:"xml",name:"space",namespace:r.XML},xmlns:{prefix:"",name:"xmlns",namespace:r.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:r.XMLNS}},s=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},c={};c[n.B]=!0,c[n.BIG]=!0,c[n.BLOCKQUOTE]=!0,c[n.BODY]=!0,c[n.BR]=!0,c[n.CENTER]=!0,c[n.CODE]=!0,c[n.DD]=!0,c[n.DIV]=!0,c[n.DL]=!0,c[n.DT]=!0,c[n.EM]=!0,c[n.EMBED]=!0,c[n.H1]=!0,c[n.H2]=!0,c[n.H3]=!0,c[n.H4]=!0,c[n.H5]=!0,c[n.H6]=!0,c[n.HEAD]=!0,c[n.HR]=!0,c[n.I]=!0,c[n.IMG]=!0,c[n.LI]=!0,c[n.LISTING]=!0,c[n.MENU]=!0,c[n.META]=!0,c[n.NOBR]=!0,c[n.OL]=!0,c[n.P]=!0,c[n.PRE]=!0,c[n.RUBY]=!0,c[n.S]=!0,c[n.SMALL]=!0,c[n.SPAN]=!0,c[n.STRONG]=!0,c[n.STRIKE]=!0,c[n.SUB]=!0,c[n.SUP]=!0,c[n.TABLE]=!0,c[n.TT]=!0,c[n.U]=!0,c[n.UL]=!0,c[n.VAR]=!0,t.causesExit=function(e){var t=e.tagName;return!!(t===n.FONT&&(null!==xu.getTokenAttr(e,a.COLOR)||null!==xu.getTokenAttr(e,a.SIZE)||null!==xu.getTokenAttr(e,a.FACE)))||c[t]},t.adjustTokenMathMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++)if("definitionurl"===e.attrs[t].name){e.attrs[t].name="definitionURL";break}},t.adjustTokenSVGAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=o[e.attrs[t].name];n&&(e.attrs[t].name=n)}},t.adjustTokenXMLAttrs=function(e){for(var t=0;t<e.attrs.length;t++){var n=l[e.attrs[t].name];n&&(e.attrs[t].prefix=n.prefix,e.attrs[t].name=n.name,e.attrs[t].namespace=n.namespace)}},t.adjustTokenSVGTagName=function(e){var t=s[e.tagName];t&&(e.tagName=t)},t.isIntegrationPoint=function(e,t,o,l){return!(l&&l!==r.HTML||!function(e,t,o){if(t===r.MATHML&&e===n.ANNOTATION_XML)for(var l=0;l<o.length;l++)if(o[l].name===a.ENCODING){var s=o[l].value.toLowerCase();return s===i.TEXT_HTML||s===i.APPLICATION_XML}return t===r.SVG&&(e===n.FOREIGN_OBJECT||e===n.DESC||e===n.TITLE)}(e,t,o))||!(l&&l!==r.MATHML||!function(e,t){return t===r.MATHML&&(e===n.MI||e===n.MO||e===n.MN||e===n.MS||e===n.MTEXT)}(e,t))}}),zu=(qu.SVG_TAG_NAMES_ADJUSTMENT_MAP,qu.causesExit,qu.adjustTokenMathMLAttrs,qu.adjustTokenSVGAttrs,qu.adjustTokenXMLAttrs,qu.adjustTokenSVGTagName,qu.isIntegrationPoint,f(function(e){var t=wu.TAG_NAMES,n=wu.NAMESPACES,r=wu.ATTRS,a={locationInfo:!1,treeAdapter:Pu},i="hidden",o=8,l=3,s="BEFORE_HTML_MODE",c="BEFORE_HEAD_MODE",u="IN_HEAD_MODE",d="AFTER_HEAD_MODE",p="IN_BODY_MODE",m="TEXT_MODE",g="IN_TABLE_MODE",h="IN_TABLE_TEXT_MODE",f="IN_CAPTION_MODE",_="IN_COLUMN_GROUP_MODE",E="IN_TABLE_BODY_MODE",T="IN_ROW_MODE",b="IN_CELL_MODE",v="IN_SELECT_MODE",A="IN_SELECT_IN_TABLE_MODE",S="IN_TEMPLATE_MODE",y="AFTER_BODY_MODE",N="IN_FRAMESET_MODE",C="AFTER_FRAMESET_MODE",O="AFTER_AFTER_BODY_MODE",M="AFTER_AFTER_FRAMESET_MODE",x={};x[t.TR]=T,x[t.TBODY]=x[t.THEAD]=x[t.TFOOT]=E,x[t.CAPTION]=f,x[t.COLGROUP]=_,x[t.TABLE]=g,x[t.BODY]=p,x[t.FRAMESET]=N;var w={};w[t.CAPTION]=w[t.COLGROUP]=w[t.TBODY]=w[t.TFOOT]=w[t.THEAD]=g,w[t.COL]=_,w[t.TR]=E,w[t.TD]=w[t.TH]=T;var R={INITIAL_MODE:{}};R.INITIAL_MODE[xu.CHARACTER_TOKEN]=R.INITIAL_MODE[xu.NULL_CHARACTER_TOKEN]=j,R.INITIAL_MODE[xu.WHITESPACE_CHARACTER_TOKEN]=H,R.INITIAL_MODE[xu.COMMENT_TOKEN]=G,R.INITIAL_MODE[xu.DOCTYPE_TOKEN]=function(e,t){e._setDocumentType(t),(t.forceQuirks||Gu.isQuirks(t.name,t.publicId,t.systemId))&&e.treeAdapter.setQuirksMode(e.document);e.insertionMode=s},R.INITIAL_MODE[xu.START_TAG_TOKEN]=R.INITIAL_MODE[xu.END_TAG_TOKEN]=R.INITIAL_MODE[xu.EOF_TOKEN]=j,R[s]={},R[s][xu.CHARACTER_TOKEN]=R[s][xu.NULL_CHARACTER_TOKEN]=V,R[s][xu.WHITESPACE_CHARACTER_TOKEN]=H,R[s][xu.COMMENT_TOKEN]=G,R[s][xu.DOCTYPE_TOKEN]=H,R[s][xu.START_TAG_TOKEN]=function(e,r){r.tagName===t.HTML?(e._insertElement(r,n.HTML),e.insertionMode=c):V(e,r)},R[s][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r!==t.HTML&&r!==t.HEAD&&r!==t.BODY&&r!==t.BR||V(e,n)},R[s][xu.EOF_TOKEN]=V,R[c]={},R[c][xu.CHARACTER_TOKEN]=R[c][xu.NULL_CHARACTER_TOKEN]=$,R[c][xu.WHITESPACE_CHARACTER_TOKEN]=H,R[c][xu.COMMENT_TOKEN]=G,R[c][xu.DOCTYPE_TOKEN]=H,R[c][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.HEAD?(e._insertElement(r,n.HTML),e.headElement=e.openElements.current,e.insertionMode=u):$(e,r)},R[c][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r!==t.HEAD&&r!==t.BODY&&r!==t.HTML&&r!==t.BR||$(e,n)},R[c][xu.EOF_TOKEN]=$,R[u]={},R[u][xu.CHARACTER_TOKEN]=R[u][xu.NULL_CHARACTER_TOKEN]=Q,R[u][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[u][xu.COMMENT_TOKEN]=G,R[u][xu.DOCTYPE_TOKEN]=H,R[u][xu.START_TAG_TOKEN]=W,R[u][xu.END_TAG_TOKEN]=Y,R[u][xu.EOF_TOKEN]=Q,R[d]={},R[d][xu.CHARACTER_TOKEN]=R[d][xu.NULL_CHARACTER_TOKEN]=X,R[d][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[d][xu.COMMENT_TOKEN]=G,R[d][xu.DOCTYPE_TOKEN]=H,R[d][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.BODY?(e._insertElement(r,n.HTML),e.framesetOk=!1,e.insertionMode=p):a===t.FRAMESET?(e._insertElement(r,n.HTML),e.insertionMode=N):a===t.BASE||a===t.BASEFONT||a===t.BGSOUND||a===t.LINK||a===t.META||a===t.NOFRAMES||a===t.SCRIPT||a===t.STYLE||a===t.TEMPLATE||a===t.TITLE?(e.openElements.push(e.headElement),W(e,r),e.openElements.remove(e.headElement)):a!==t.HEAD&&X(e,r)},R[d][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.BODY||r===t.HTML||r===t.BR?X(e,n):r===t.TEMPLATE&&Y(e,n)},R[d][xu.EOF_TOKEN]=X,R[p]={},R[p][xu.CHARACTER_TOKEN]=J,R[p][xu.NULL_CHARACTER_TOKEN]=H,R[p][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[p][xu.COMMENT_TOKEN]=G,R[p][xu.DOCTYPE_TOKEN]=H,R[p][xu.START_TAG_TOKEN]=ue,R[p][xu.END_TAG_TOKEN]=ge,R[p][xu.EOF_TOKEN]=he,R[m]={},R[m][xu.CHARACTER_TOKEN]=R[m][xu.NULL_CHARACTER_TOKEN]=R[m][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[m][xu.COMMENT_TOKEN]=R[m][xu.DOCTYPE_TOKEN]=R[m][xu.START_TAG_TOKEN]=H,R[m][xu.END_TAG_TOKEN]=function(e,n){n.tagName===t.SCRIPT&&(e.pendingScript=e.openElements.current);e.openElements.pop(),e.insertionMode=e.originalInsertionMode},R[m][xu.EOF_TOKEN]=function(e,t){e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)},R[g]={},R[g][xu.CHARACTER_TOKEN]=R[g][xu.NULL_CHARACTER_TOKEN]=R[g][xu.WHITESPACE_CHARACTER_TOKEN]=fe,R[g][xu.COMMENT_TOKEN]=G,R[g][xu.DOCTYPE_TOKEN]=H,R[g][xu.START_TAG_TOKEN]=_e,R[g][xu.END_TAG_TOKEN]=Ee,R[g][xu.EOF_TOKEN]=he,R[h]={},R[h][xu.CHARACTER_TOKEN]=function(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0},R[h][xu.NULL_CHARACTER_TOKEN]=H,R[h][xu.WHITESPACE_CHARACTER_TOKEN]=function(e,t){e.pendingCharacterTokens.push(t)},R[h][xu.COMMENT_TOKEN]=R[h][xu.DOCTYPE_TOKEN]=R[h][xu.START_TAG_TOKEN]=R[h][xu.END_TAG_TOKEN]=R[h][xu.EOF_TOKEN]=function(e,t){var n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n<e.pendingCharacterTokens.length;n++)Te(e,e.pendingCharacterTokens[n]);else for(;n<e.pendingCharacterTokens.length;n++)e._insertCharacters(e.pendingCharacterTokens[n]);e.insertionMode=e.originalInsertionMode,e._processToken(t)},R[f]={},R[f][xu.CHARACTER_TOKEN]=J,R[f][xu.NULL_CHARACTER_TOKEN]=H,R[f][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[f][xu.COMMENT_TOKEN]=G,R[f][xu.DOCTYPE_TOKEN]=H,R[f][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.COL||r===t.COLGROUP||r===t.TBODY||r===t.TD||r===t.TFOOT||r===t.TH||r===t.THEAD||r===t.TR?e.openElements.hasInTableScope(t.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=g,e._processToken(n)):ue(e,n)},R[f][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE?e.openElements.hasInTableScope(t.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=g,r===t.TABLE&&e._processToken(n)):r!==t.BODY&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&r!==t.TBODY&&r!==t.TD&&r!==t.TFOOT&&r!==t.TH&&r!==t.THEAD&&r!==t.TR&&ge(e,n)},R[f][xu.EOF_TOKEN]=he,R[_]={},R[_][xu.CHARACTER_TOKEN]=R[_][xu.NULL_CHARACTER_TOKEN]=be,R[_][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[_][xu.COMMENT_TOKEN]=G,R[_][xu.DOCTYPE_TOKEN]=H,R[_][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.COL?e._appendElement(r,n.HTML):a===t.TEMPLATE?W(e,r):be(e,r)},R[_][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.COLGROUP?e.openElements.currentTagName===t.COLGROUP&&(e.openElements.pop(),e.insertionMode=g):r===t.TEMPLATE?Y(e,n):r!==t.COL&&be(e,n)},R[_][xu.EOF_TOKEN]=he,R[E]={},R[E][xu.CHARACTER_TOKEN]=R[E][xu.NULL_CHARACTER_TOKEN]=R[E][xu.WHITESPACE_CHARACTER_TOKEN]=fe,R[E][xu.COMMENT_TOKEN]=G,R[E][xu.DOCTYPE_TOKEN]=H,R[E][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.TR?(e.openElements.clearBackToTableBodyContext(),e._insertElement(r,n.HTML),e.insertionMode=T):a===t.TH||a===t.TD?(e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(t.TR),e.insertionMode=T,e._processToken(r)):a===t.CAPTION||a===t.COL||a===t.COLGROUP||a===t.TBODY||a===t.TFOOT||a===t.THEAD?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g,e._processToken(r)):_e(e,r)},R[E][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TBODY||r===t.TFOOT||r===t.THEAD?e.openElements.hasInTableScope(r)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g):r===t.TABLE?e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=g,e._processToken(n)):(r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP||r!==t.HTML&&r!==t.TD&&r!==t.TH&&r!==t.TR)&&Ee(e,n)},R[E][xu.EOF_TOKEN]=he,R[T]={},R[T][xu.CHARACTER_TOKEN]=R[T][xu.NULL_CHARACTER_TOKEN]=R[T][xu.WHITESPACE_CHARACTER_TOKEN]=fe,R[T][xu.COMMENT_TOKEN]=G,R[T][xu.DOCTYPE_TOKEN]=H,R[T][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.TH||a===t.TD?(e.openElements.clearBackToTableRowContext(),e._insertElement(r,n.HTML),e.insertionMode=b,e.activeFormattingElements.insertMarker()):a===t.CAPTION||a===t.COL||a===t.COLGROUP||a===t.TBODY||a===t.TFOOT||a===t.THEAD||a===t.TR?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(r)):_e(e,r)},R[T][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TR?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E):r===t.TABLE?e.openElements.hasInTableScope(t.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(n)):r===t.TBODY||r===t.TFOOT||r===t.THEAD?(e.openElements.hasInTableScope(r)||e.openElements.hasInTableScope(t.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=E,e._processToken(n)):(r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP||r!==t.HTML&&r!==t.TD&&r!==t.TH)&&Ee(e,n)},R[T][xu.EOF_TOKEN]=he,R[b]={},R[b][xu.CHARACTER_TOKEN]=J,R[b][xu.NULL_CHARACTER_TOKEN]=H,R[b][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[b][xu.COMMENT_TOKEN]=G,R[b][xu.DOCTYPE_TOKEN]=H,R[b][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.COL||r===t.COLGROUP||r===t.TBODY||r===t.TD||r===t.TFOOT||r===t.TH||r===t.THEAD||r===t.TR?(e.openElements.hasInTableScope(t.TD)||e.openElements.hasInTableScope(t.TH))&&(e._closeTableCell(),e._processToken(n)):ue(e,n)},R[b][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.TD||r===t.TH?e.openElements.hasInTableScope(r)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(r),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=T):r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR?e.openElements.hasInTableScope(r)&&(e._closeTableCell(),e._processToken(n)):r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&ge(e,n)},R[b][xu.EOF_TOKEN]=he,R[v]={},R[v][xu.CHARACTER_TOKEN]=z,R[v][xu.NULL_CHARACTER_TOKEN]=H,R[v][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[v][xu.COMMENT_TOKEN]=G,R[v][xu.DOCTYPE_TOKEN]=H,R[v][xu.START_TAG_TOKEN]=ve,R[v][xu.END_TAG_TOKEN]=Ae,R[v][xu.EOF_TOKEN]=he,R[A]={},R[A][xu.CHARACTER_TOKEN]=z,R[A][xu.NULL_CHARACTER_TOKEN]=H,R[A][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[A][xu.COMMENT_TOKEN]=G,R[A][xu.DOCTYPE_TOKEN]=H,R[A][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR||r===t.TD||r===t.TH?(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),e._processToken(n)):ve(e,n)},R[A][xu.END_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.CAPTION||r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR||r===t.TD||r===t.TH?e.openElements.hasInTableScope(r)&&(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),e._processToken(n)):Ae(e,n)},R[A][xu.EOF_TOKEN]=he,R[S]={},R[S][xu.CHARACTER_TOKEN]=J,R[S][xu.NULL_CHARACTER_TOKEN]=H,R[S][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[S][xu.COMMENT_TOKEN]=G,R[S][xu.DOCTYPE_TOKEN]=H,R[S][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;if(r===t.BASE||r===t.BASEFONT||r===t.BGSOUND||r===t.LINK||r===t.META||r===t.NOFRAMES||r===t.SCRIPT||r===t.STYLE||r===t.TEMPLATE||r===t.TITLE)W(e,n);else{var a=w[r]||p;e._popTmplInsertionMode(),e._pushTmplInsertionMode(a),e.insertionMode=a,e._processToken(n)}},R[S][xu.END_TAG_TOKEN]=function(e,n){n.tagName===t.TEMPLATE&&Y(e,n)},R[S][xu.EOF_TOKEN]=Se,R[y]={},R[y][xu.CHARACTER_TOKEN]=R[y][xu.NULL_CHARACTER_TOKEN]=ye,R[y][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[y][xu.COMMENT_TOKEN]=function(e,t){e._appendCommentNode(t,e.openElements.items[0])},R[y][xu.DOCTYPE_TOKEN]=H,R[y][xu.START_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?ue(e,n):ye(e,n)},R[y][xu.END_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?e.fragmentContext||(e.insertionMode=O):ye(e,n)},R[y][xu.EOF_TOKEN]=K,R[N]={},R[N][xu.CHARACTER_TOKEN]=R[N][xu.NULL_CHARACTER_TOKEN]=H,R[N][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[N][xu.COMMENT_TOKEN]=G,R[N][xu.DOCTYPE_TOKEN]=H,R[N][xu.START_TAG_TOKEN]=function(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.FRAMESET?e._insertElement(r,n.HTML):a===t.FRAME?e._appendElement(r,n.HTML):a===t.NOFRAMES&&W(e,r)},R[N][xu.END_TAG_TOKEN]=function(e,n){n.tagName!==t.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===t.FRAMESET||(e.insertionMode=C))},R[N][xu.EOF_TOKEN]=K,R[C]={},R[C][xu.CHARACTER_TOKEN]=R[C][xu.NULL_CHARACTER_TOKEN]=H,R[C][xu.WHITESPACE_CHARACTER_TOKEN]=z,R[C][xu.COMMENT_TOKEN]=G,R[C][xu.DOCTYPE_TOKEN]=H,R[C][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.HTML?ue(e,n):r===t.NOFRAMES&&W(e,n)},R[C][xu.END_TAG_TOKEN]=function(e,n){n.tagName===t.HTML&&(e.insertionMode=M)},R[C][xu.EOF_TOKEN]=K,R[O]={},R[O][xu.CHARACTER_TOKEN]=Ne,R[O][xu.NULL_CHARACTER_TOKEN]=Ne,R[O][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[O][xu.COMMENT_TOKEN]=q,R[O][xu.DOCTYPE_TOKEN]=H,R[O][xu.START_TAG_TOKEN]=function(e,n){n.tagName===t.HTML?ue(e,n):Ne(e,n)},R[O][xu.END_TAG_TOKEN]=Ne,R[O][xu.EOF_TOKEN]=K,R[M]={},R[M][xu.CHARACTER_TOKEN]=R[M][xu.NULL_CHARACTER_TOKEN]=H,R[M][xu.WHITESPACE_CHARACTER_TOKEN]=Z,R[M][xu.COMMENT_TOKEN]=q,R[M][xu.DOCTYPE_TOKEN]=H,R[M][xu.START_TAG_TOKEN]=function(e,n){var r=n.tagName;r===t.HTML?ue(e,n):r===t.NOFRAMES&&W(e,n)},R[M][xu.END_TAG_TOKEN]=H,R[M][xu.EOF_TOKEN]=K;var D=e.exports=function(e){this.options=function(e,t){return[e,t=t||{}].reduce(function(e,t){return Object.keys(t).forEach(function(n){e[n]=t[n]}),e},{})}(a,e),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.locationInfo&&Lu(this)};function I(e,t){var n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):me(e,t),n}function k(e,t){for(var n=null,r=e.openElements.stackTop;r>=0;r--){var a=e.openElements.items[r];if(a===t.element)break;e._isSpecialElement(a)&&(n=a)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function L(e,t,n){for(var r=t,a=e.openElements.getCommonAncestor(t),i=0,o=a;o!==n;i++,o=a){a=e.openElements.getCommonAncestor(o);var s=e.activeFormattingElements.getElementEntry(o),c=s&&i>=l;!s||c?(c&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=P(e,s),r===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(r),e.treeAdapter.appendChild(o,r),r=o)}return r}function P(e,t){var n=e.treeAdapter.getNamespaceURI(t.element),r=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,r),t.element=r,r}function B(e,r,a){if(e._isElementCausesFosterParenting(r))e._fosterParentElement(a);else{var i=e.treeAdapter.getTagName(r),o=e.treeAdapter.getNamespaceURI(r);i===t.TEMPLATE&&o===n.HTML&&(r=e.treeAdapter.getTemplateContent(r)),e.treeAdapter.appendChild(r,a)}}function F(e,t,n){var r=e.treeAdapter.getNamespaceURI(n.element),a=n.token,i=e.treeAdapter.createElement(a.tagName,r,a.attrs);e._adoptNodes(t,i),e.treeAdapter.appendChild(t,i),e.activeFormattingElements.insertElementAfterBookmark(i,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,i)}function U(e,t){for(var n,r=0;r<o&&(n=I(e,t));r++){var a=k(e,n);if(!a)break;e.activeFormattingElements.bookmark=n;var i=L(e,a,n.element),l=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(i),B(e,l,i),F(e,a,n)}}function H(){}function G(e,t){e._appendCommentNode(t,e.openElements.currentTmplContent||e.openElements.current)}function q(e,t){e._appendCommentNode(t,e.document)}function z(e,t){e._insertCharacters(t)}function K(e){e.stopped=!0}function j(e,t){e.treeAdapter.setQuirksMode(e.document),e.insertionMode=s,e._processToken(t)}function V(e,t){e._insertFakeRootElement(),e.insertionMode=c,e._processToken(t)}function $(e,n){e._insertFakeElement(t.HEAD),e.headElement=e.openElements.current,e.insertionMode=u,e._processToken(n)}function W(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.BASE||a===t.BASEFONT||a===t.BGSOUND||a===t.LINK||a===t.META?e._appendElement(r,n.HTML):a===t.TITLE?e._switchToTextParsing(r,xu.MODE.RCDATA):a===t.NOSCRIPT||a===t.NOFRAMES||a===t.STYLE?e._switchToTextParsing(r,xu.MODE.RAWTEXT):a===t.SCRIPT?e._switchToTextParsing(r,xu.MODE.SCRIPT_DATA):a===t.TEMPLATE?(e._insertTemplate(r,n.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=S,e._pushTmplInsertionMode(S)):a!==t.HEAD&&Q(e,r)}function Y(e,n){var r=n.tagName;r===t.HEAD?(e.openElements.pop(),e.insertionMode=d):r===t.BODY||r===t.BR||r===t.HTML?Q(e,n):r===t.TEMPLATE&&e.openElements.tmplCount>0&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode())}function Q(e,t){e.openElements.pop(),e.insertionMode=d,e._processToken(t)}function X(e,n){e._insertFakeElement(t.BODY),e.insertionMode=p,e._processToken(n)}function Z(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function J(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function ee(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML)}function te(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function ne(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function re(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function ae(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,n.HTML),e.framesetOk=!1}function ie(e,t){e._appendElement(t,n.HTML)}function oe(e,t){e._switchToTextParsing(t,xu.MODE.RAWTEXT)}function le(e,r){e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML)}function se(e,r){e.openElements.hasInScope(t.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(r,n.HTML)}function ce(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML)}function ue(e,a){var o=a.tagName;switch(o.length){case 1:o===t.I||o===t.S||o===t.B||o===t.U?ne(e,a):o===t.P?ee(e,a):o===t.A?function(e,r){var a=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.A);a&&(U(e,r),e.openElements.remove(a.element),e.activeFormattingElements.removeEntry(a)),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}(e,a):ce(e,a);break;case 2:o===t.DL||o===t.OL||o===t.UL?ee(e,a):o===t.H1||o===t.H2||o===t.H3||o===t.H4||o===t.H5||o===t.H6?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement();var a=e.openElements.currentTagName;a!==t.H1&&a!==t.H2&&a!==t.H3&&a!==t.H4&&a!==t.H5&&a!==t.H6||e.openElements.pop(),e._insertElement(r,n.HTML)}(e,a):o===t.LI||o===t.DD||o===t.DT?function(e,r){e.framesetOk=!1;for(var a=r.tagName,i=e.openElements.stackTop;i>=0;i--){var o=e.openElements.items[i],l=e.treeAdapter.getTagName(o),s=null;if(a===t.LI&&l===t.LI?s=t.LI:a!==t.DD&&a!==t.DT||l!==t.DD&&l!==t.DT||(s=l),s){e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s);break}if(l!==t.ADDRESS&&l!==t.DIV&&l!==t.P&&e._isSpecialElement(o))break}e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML)}(e,a):o===t.EM||o===t.TT?ne(e,a):o===t.BR?ae(e,a):o===t.HR?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._appendElement(r,n.HTML),e.framesetOk=!1}(e,a):o===t.RB?se(e,a):o===t.RT||o===t.RP?function(e,r){e.openElements.hasInScope(t.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(t.RTC),e._insertElement(r,n.HTML)}(e,a):o!==t.TH&&o!==t.TD&&o!==t.TR&&ce(e,a);break;case 3:o===t.DIV||o===t.DIR||o===t.NAV?ee(e,a):o===t.PRE?te(e,a):o===t.BIG?ne(e,a):o===t.IMG||o===t.WBR?ae(e,a):o===t.XMP?function(e,n){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(n,xu.MODE.RAWTEXT)}(e,a):o===t.SVG?function(e,t){e._reconstructActiveFormattingElements(),qu.adjustTokenSVGAttrs(t),qu.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,n.SVG):e._insertElement(t,n.SVG)}(e,a):o===t.RTC?se(e,a):o!==t.COL&&ce(e,a);break;case 4:o===t.HTML?function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}(e,a):o===t.BASE||o===t.LINK||o===t.META?W(e,a):o===t.BODY?function(e,t){var n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}(e,a):o===t.MAIN?ee(e,a):o===t.FORM?function(e,r){var a=e.openElements.tmplCount>0;e.formElement&&!a||(e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),a||(e.formElement=e.openElements.current))}(e,a):o===t.CODE||o===t.FONT?ne(e,a):o===t.NOBR?function(e,r){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(t.NOBR)&&(U(e,r),e._reconstructActiveFormattingElements()),e._insertElement(r,n.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}(e,a):o===t.AREA?ae(e,a):o===t.MATH?function(e,t){e._reconstructActiveFormattingElements(),qu.adjustTokenMathMLAttrs(t),qu.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,n.MATHML):e._insertElement(t,n.MATHML)}(e,a):o===t.MENU?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._insertElement(r,n.HTML)}(e,a):o!==t.HEAD&&ce(e,a);break;case 5:o===t.STYLE||o===t.TITLE?W(e,a):o===t.ASIDE?ee(e,a):o===t.SMALL?ne(e,a):o===t.TABLE?function(e,r){!e.treeAdapter.isQuirksMode(e.document)&&e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.framesetOk=!1,e.insertionMode=g}(e,a):o===t.EMBED?ae(e,a):o===t.INPUT?function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,n.HTML);var a=xu.getTokenAttr(t,r.TYPE);a&&a.toLowerCase()===i||(e.framesetOk=!1)}(e,a):o===t.PARAM||o===t.TRACK?ie(e,a):o===t.IMAGE?function(e,n){n.tagName=t.IMG,ae(e,n)}(e,a):o!==t.FRAME&&o!==t.TBODY&&o!==t.TFOOT&&o!==t.THEAD&&ce(e,a);break;case 6:o===t.SCRIPT?W(e,a):o===t.CENTER||o===t.FIGURE||o===t.FOOTER||o===t.HEADER||o===t.HGROUP?ee(e,a):o===t.BUTTON?function(e,r){e.openElements.hasInScope(t.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(t.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML),e.framesetOk=!1}(e,a):o===t.STRIKE||o===t.STRONG?ne(e,a):o===t.APPLET||o===t.OBJECT?re(e,a):o===t.KEYGEN?ae(e,a):o===t.SOURCE?ie(e,a):o===t.IFRAME?function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,xu.MODE.RAWTEXT)}(e,a):o===t.SELECT?function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,n.HTML),e.framesetOk=!1,e.insertionMode===g||e.insertionMode===f||e.insertionMode===E||e.insertionMode===T||e.insertionMode===b?e.insertionMode=A:e.insertionMode=v}(e,a):o===t.OPTION?le(e,a):ce(e,a);break;case 7:o===t.BGSOUND?W(e,a):o===t.DETAILS||o===t.ADDRESS||o===t.ARTICLE||o===t.SECTION||o===t.SUMMARY?ee(e,a):o===t.LISTING?te(e,a):o===t.MARQUEE?re(e,a):o===t.NOEMBED?oe(e,a):o!==t.CAPTION&&ce(e,a);break;case 8:o===t.BASEFONT?W(e,a):o===t.MENUITEM?function(e,r){e.openElements.currentTagName===t.MENUITEM&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,n.HTML)}(e,a):o===t.FRAMESET?function(e,t){var r=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&r&&(e.treeAdapter.detachNode(r),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,n.HTML),e.insertionMode=N)}(e,a):o===t.FIELDSET?ee(e,a):o===t.TEXTAREA?function(e,t){e._insertElement(t,n.HTML),e.skipNextNewLine=!0,e.tokenizer.state=xu.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=m}(e,a):o===t.TEMPLATE?W(e,a):o===t.NOSCRIPT?oe(e,a):o===t.OPTGROUP?le(e,a):o!==t.COLGROUP&&ce(e,a);break;case 9:o===t.PLAINTEXT?function(e,r){e.openElements.hasInButtonScope(t.P)&&e._closePElement(),e._insertElement(r,n.HTML),e.tokenizer.state=xu.MODE.PLAINTEXT}(e,a):ce(e,a);break;case 10:o===t.BLOCKQUOTE||o===t.FIGCAPTION?ee(e,a):ce(e,a);break;default:ce(e,a)}}function de(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function pe(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function me(e,t){for(var n=t.tagName,r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getTagName(a)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(a);break}if(e._isSpecialElement(a))break}}function ge(e,n){var r=n.tagName;switch(r.length){case 1:r===t.A||r===t.B||r===t.I||r===t.S||r===t.U?U(e,n):r===t.P?function(e){e.openElements.hasInButtonScope(t.P)||e._insertFakeElement(t.P),e._closePElement()}(e):me(e,n);break;case 2:r===t.DL||r===t.UL||r===t.OL?de(e,n):r===t.LI?function(e){e.openElements.hasInListItemScope(t.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(t.LI),e.openElements.popUntilTagNamePopped(t.LI))}(e):r===t.DD||r===t.DT?function(e,t){var n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}(e,n):r===t.H1||r===t.H2||r===t.H3||r===t.H4||r===t.H5||r===t.H6?function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}(e):r===t.BR?function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(t.BR),e.openElements.pop(),e.framesetOk=!1}(e):r===t.EM||r===t.TT?U(e,n):me(e,n);break;case 3:r===t.BIG?U(e,n):r===t.DIR||r===t.DIV||r===t.NAV?de(e,n):me(e,n);break;case 4:r===t.BODY?function(e){e.openElements.hasInScope(t.BODY)&&(e.insertionMode=y)}(e):r===t.HTML?function(e,n){e.openElements.hasInScope(t.BODY)&&(e.insertionMode=y,e._processToken(n))}(e,n):r===t.FORM?function(e){var n=e.openElements.tmplCount>0,r=e.formElement;n||(e.formElement=null),(r||n)&&e.openElements.hasInScope(t.FORM)&&(e.openElements.generateImpliedEndTags(),n?e.openElements.popUntilTagNamePopped(t.FORM):e.openElements.remove(r))}(e):r===t.CODE||r===t.FONT||r===t.NOBR?U(e,n):r===t.MAIN||r===t.MENU?de(e,n):me(e,n);break;case 5:r===t.ASIDE?de(e,n):r===t.SMALL?U(e,n):me(e,n);break;case 6:r===t.CENTER||r===t.FIGURE||r===t.FOOTER||r===t.HEADER||r===t.HGROUP?de(e,n):r===t.APPLET||r===t.OBJECT?pe(e,n):r===t.STRIKE||r===t.STRONG?U(e,n):me(e,n);break;case 7:r===t.ADDRESS||r===t.ARTICLE||r===t.DETAILS||r===t.SECTION||r===t.SUMMARY?de(e,n):r===t.MARQUEE?pe(e,n):me(e,n);break;case 8:r===t.FIELDSET?de(e,n):r===t.TEMPLATE?Y(e,n):me(e,n);break;case 10:r===t.BLOCKQUOTE||r===t.FIGCAPTION?de(e,n):me(e,n);break;default:me(e,n)}}function he(e,t){e.tmplInsertionModeStackTop>-1?Se(e,t):e.stopped=!0}function fe(e,n){var r=e.openElements.currentTagName;r===t.TABLE||r===t.TBODY||r===t.TFOOT||r===t.THEAD||r===t.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=h,e._processToken(n)):Te(e,n)}function _e(e,a){var o=a.tagName;switch(o.length){case 2:o===t.TD||o===t.TH||o===t.TR?function(e,n){e.openElements.clearBackToTableContext(),e._insertFakeElement(t.TBODY),e.insertionMode=E,e._processToken(n)}(e,a):Te(e,a);break;case 3:o===t.COL?function(e,n){e.openElements.clearBackToTableContext(),e._insertFakeElement(t.COLGROUP),e.insertionMode=_,e._processToken(n)}(e,a):Te(e,a);break;case 4:o===t.FORM?function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,n.HTML),e.formElement=e.openElements.current,e.openElements.pop())}(e,a):Te(e,a);break;case 5:o===t.TABLE?function(e,n){e.openElements.hasInTableScope(t.TABLE)&&(e.openElements.popUntilTagNamePopped(t.TABLE),e._resetInsertionMode(),e._processToken(n))}(e,a):o===t.STYLE?W(e,a):o===t.TBODY||o===t.TFOOT||o===t.THEAD?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,n.HTML),e.insertionMode=E}(e,a):o===t.INPUT?function(e,t){var a=xu.getTokenAttr(t,r.TYPE);a&&a.toLowerCase()===i?e._appendElement(t,n.HTML):Te(e,t)}(e,a):Te(e,a);break;case 6:o===t.SCRIPT?W(e,a):Te(e,a);break;case 7:o===t.CAPTION?function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,n.HTML),e.insertionMode=f}(e,a):Te(e,a);break;case 8:o===t.COLGROUP?function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,n.HTML),e.insertionMode=_}(e,a):o===t.TEMPLATE?W(e,a):Te(e,a);break;default:Te(e,a)}}function Ee(e,n){var r=n.tagName;r===t.TABLE?e.openElements.hasInTableScope(t.TABLE)&&(e.openElements.popUntilTagNamePopped(t.TABLE),e._resetInsertionMode()):r===t.TEMPLATE?Y(e,n):r!==t.BODY&&r!==t.CAPTION&&r!==t.COL&&r!==t.COLGROUP&&r!==t.HTML&&r!==t.TBODY&&r!==t.TD&&r!==t.TFOOT&&r!==t.TH&&r!==t.THEAD&&r!==t.TR&&Te(e,n)}function Te(e,t){var n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function be(e,n){e.openElements.currentTagName===t.COLGROUP&&(e.openElements.pop(),e.insertionMode=g,e._processToken(n))}function ve(e,r){var a=r.tagName;a===t.HTML?ue(e,r):a===t.OPTION?(e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e._insertElement(r,n.HTML)):a===t.OPTGROUP?(e.openElements.currentTagName===t.OPTION&&e.openElements.pop(),e.openElements.currentTagName===t.OPTGROUP&&e.openElements.pop(),e._insertElement(r,n.HTML)):a===t.INPUT||a===t.KEYGEN||a===t.TEXTAREA||a===t.SELECT?e.openElements.hasInSelectScope(t.SELECT)&&(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode(),a!==t.SELECT&&e._processToken(r)):a!==t.SCRIPT&&a!==t.TEMPLATE||W(e,r)}function Ae(e,n){var r=n.tagName;if(r===t.OPTGROUP){var a=e.openElements.items[e.openElements.stackTop-1],i=a&&e.treeAdapter.getTagName(a);e.openElements.currentTagName===t.OPTION&&i===t.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagName===t.OPTGROUP&&e.openElements.pop()}else r===t.OPTION?e.openElements.currentTagName===t.OPTION&&e.openElements.pop():r===t.SELECT&&e.openElements.hasInSelectScope(t.SELECT)?(e.openElements.popUntilTagNamePopped(t.SELECT),e._resetInsertionMode()):r===t.TEMPLATE&&Y(e,n)}function Se(e,n){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(t.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(n)):e.stopped=!0}function ye(e,t){e.insertionMode=p,e._processToken(t)}function Ne(e,t){e.insertionMode=p,e._processToken(t)}D.prototype.parse=function(e){var t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null,null),t},D.prototype.parseFragment=function(e,r){r||(r=this.treeAdapter.createElement(t.TEMPLATE,n.HTML,[]));var a=this.treeAdapter.createElement("documentmock",n.HTML,[]);this._bootstrap(a,r),this.treeAdapter.getTagName(r)===t.TEMPLATE&&this._pushTmplInsertionMode(S),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null,null);var i=this.treeAdapter.getFirstChild(a),o=this.treeAdapter.createDocumentFragment();return this._adoptNodes(i,o),o},D.prototype._bootstrap=function(e,t){this.tokenizer=new xu(this.options),this.stopped=!1,this.insertionMode="INITIAL_MODE",this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new Ru(this.document,this.treeAdapter),this.activeFormattingElements=new Du(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1},D.prototype._runParsingLoop=function(e,t){for(;!this.stopped;){this._setupTokenizerCDATAMode();var n=this.tokenizer.getNextToken();if(n.type===xu.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,n.type===xu.WHITESPACE_CHARACTER_TOKEN&&"\n"===n.chars[0])){if(1===n.chars.length)continue;n.chars=n.chars.substr(1)}if(this._processInputToken(n),t&&this.pendingScript)break}if(t&&this.pendingScript){var r=this.pendingScript;return this.pendingScript=null,void t(r)}e&&e()},D.prototype._setupTokenizerCDATAMode=function(){var e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==n.HTML&&!this._isIntegrationPoint(e)},D.prototype._switchToTextParsing=function(e,t){this._insertElement(e,n.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=m},D.prototype._getAdjustedCurrentElement=function(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current},D.prototype._findFormInFragmentContext=function(){var e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===t.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)},D.prototype._initTokenizerForFragmentParsing=function(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===n.HTML){var e=this.treeAdapter.getTagName(this.fragmentContext);e===t.TITLE||e===t.TEXTAREA?this.tokenizer.state=xu.MODE.RCDATA:e===t.STYLE||e===t.XMP||e===t.IFRAME||e===t.NOEMBED||e===t.NOFRAMES||e===t.NOSCRIPT?this.tokenizer.state=xu.MODE.RAWTEXT:e===t.SCRIPT?this.tokenizer.state=xu.MODE.SCRIPT_DATA:e===t.PLAINTEXT&&(this.tokenizer.state=xu.MODE.PLAINTEXT)}},D.prototype._setDocumentType=function(e){this.treeAdapter.setDocumentType(this.document,e.name,e.publicId,e.systemId)},D.prototype._attachElementToTree=function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}},D.prototype._appendElement=function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n)},D.prototype._insertElement=function(e,t){var n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n),this.openElements.push(n)},D.prototype._insertFakeElement=function(e){var t=this.treeAdapter.createElement(e,n.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)},D.prototype._insertTemplate=function(e){var t=this.treeAdapter.createElement(e.tagName,n.HTML,e.attrs),r=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,r),this._attachElementToTree(t),this.openElements.push(t)},D.prototype._insertFakeRootElement=function(){var e=this.treeAdapter.createElement(t.HTML,n.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)},D.prototype._appendCommentNode=function(e,t){var n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n)},D.prototype._insertCharacters=function(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{var t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}},D.prototype._adoptNodes=function(e,t){for(;;){var n=this.treeAdapter.getFirstChild(e);if(!n)break;this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}},D.prototype._shouldProcessTokenInForeignContent=function(e){var r=this._getAdjustedCurrentElement();if(!r||r===this.document)return!1;var a=this.treeAdapter.getNamespaceURI(r);if(a===n.HTML)return!1;if(this.treeAdapter.getTagName(r)===t.ANNOTATION_XML&&a===n.MATHML&&e.type===xu.START_TAG_TOKEN&&e.tagName===t.SVG)return!1;var i=e.type===xu.CHARACTER_TOKEN||e.type===xu.NULL_CHARACTER_TOKEN||e.type===xu.WHITESPACE_CHARACTER_TOKEN;return(!(e.type===xu.START_TAG_TOKEN&&e.tagName!==t.MGLYPH&&e.tagName!==t.MALIGNMARK)&&!i||!this._isIntegrationPoint(r,n.MATHML))&&((e.type!==xu.START_TAG_TOKEN&&!i||!this._isIntegrationPoint(r,n.HTML))&&e.type!==xu.EOF_TOKEN)},D.prototype._processToken=function(e){R[this.insertionMode][e.type](this,e)},D.prototype._processTokenInBodyMode=function(e){R[p][e.type](this,e)},D.prototype._processTokenInForeignContent=function(e){e.type===xu.CHARACTER_TOKEN?function(e,t){e._insertCharacters(t),e.framesetOk=!1}(this,e):e.type===xu.NULL_CHARACTER_TOKEN?function(e,t){t.chars=yu.REPLACEMENT_CHARACTER,e._insertCharacters(t)}(this,e):e.type===xu.WHITESPACE_CHARACTER_TOKEN?z(this,e):e.type===xu.COMMENT_TOKEN?G(this,e):e.type===xu.START_TAG_TOKEN?function(e,t){if(qu.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==n.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{var r=e._getAdjustedCurrentElement(),a=e.treeAdapter.getNamespaceURI(r);a===n.MATHML?qu.adjustTokenMathMLAttrs(t):a===n.SVG&&(qu.adjustTokenSVGTagName(t),qu.adjustTokenSVGAttrs(t)),qu.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,a):e._insertElement(t,a)}}(this,e):e.type===xu.END_TAG_TOKEN&&function(e,t){for(var r=e.openElements.stackTop;r>0;r--){var a=e.openElements.items[r];if(e.treeAdapter.getNamespaceURI(a)===n.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(a).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(a);break}}}(this,e)},D.prototype._processInputToken=function(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e)},D.prototype._isIntegrationPoint=function(e,t){var n=this.treeAdapter.getTagName(e),r=this.treeAdapter.getNamespaceURI(e),a=this.treeAdapter.getAttrList(e);return qu.isIntegrationPoint(n,r,a,t)},D.prototype._reconstructActiveFormattingElements=function(){var e=this.activeFormattingElements.length;if(e){var t=e,n=null;do{if(t--,(n=this.activeFormattingElements.entries[t]).type===Du.MARKER_ENTRY||this.openElements.contains(n.element)){t++;break}}while(t>0);for(var r=t;r<e;r++)n=this.activeFormattingElements.entries[r],this._insertElement(n.token,this.treeAdapter.getNamespaceURI(n.element)),n.element=this.openElements.current}},D.prototype._closeTableCell=function(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=T},D.prototype._closePElement=function(){this.openElements.generateImpliedEndTagsWithExclusion(t.P),this.openElements.popUntilTagNamePopped(t.P)},D.prototype._resetInsertionMode=function(){for(var e=this.openElements.stackTop,n=!1;e>=0;e--){var r=this.openElements.items[e];0===e&&(n=!0,this.fragmentContext&&(r=this.fragmentContext));var a=this.treeAdapter.getTagName(r),i=x[a];if(i){this.insertionMode=i;break}if(!(n||a!==t.TD&&a!==t.TH)){this.insertionMode=b;break}if(!n&&a===t.HEAD){this.insertionMode=u;break}if(a===t.SELECT){this._resetInsertionModeForSelect(e);break}if(a===t.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}if(a===t.HTML){this.insertionMode=this.headElement?d:c;break}if(n){this.insertionMode=p;break}}},D.prototype._resetInsertionModeForSelect=function(e){if(e>0)for(var n=e-1;n>0;n--){var r=this.openElements.items[n],a=this.treeAdapter.getTagName(r);if(a===t.TEMPLATE)break;if(a===t.TABLE)return void(this.insertionMode=A)}this.insertionMode=v},D.prototype._pushTmplInsertionMode=function(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e},D.prototype._popTmplInsertionMode=function(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]},D.prototype._isElementCausesFosterParenting=function(e){var n=this.treeAdapter.getTagName(e);return n===t.TABLE||n===t.TBODY||n===t.TFOOT||n===t.THEAD||n===t.TR},D.prototype._shouldFosterParentOnInsertion=function(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)},D.prototype._findFosterParentingLocation=function(){for(var e={parent:null,beforeElement:null},r=this.openElements.stackTop;r>=0;r--){var a=this.openElements.items[r],i=this.treeAdapter.getTagName(a),o=this.treeAdapter.getNamespaceURI(a);if(i===t.TEMPLATE&&o===n.HTML){e.parent=this.treeAdapter.getTemplateContent(a);break}if(i===t.TABLE){e.parent=this.treeAdapter.getParentNode(a),e.parent?e.beforeElement=a:e.parent=this.openElements.items[r-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e},D.prototype._fosterParentElement=function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)},D.prototype._fosterParentText=function(e){var t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)},D.prototype._isSpecialElement=function(e){var t=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);return wu.SPECIAL_ELEMENTS[n][t]}})),Ku=function(t){var n=e(t,this.data("settings")),r="boolean"!=typeof n.position||n.position,a=new zu({locationInfo:r});this.Parser=function(e,t){var r=n.fragment?"parseFragment":"parse";return _u(a[r](String(t)),{file:t,verbose:n.verbose})}};function ju(e,t){return e.properties.className&&e.properties.className.includes(t)}function Vu(e,t){return e.tagName===t}var $u=function(e={}){return null==e.throwOnError&&(e.throwOnError=!1),null==e.errorColor&&(e.errorColor="#cc0000"),null==e.macros&&(e.macros={}),function(t,n){return u(t,"element",function(t){const r=Vu(t,"span")&&ju(t,"inlineMath"),a=e.inlineMathDoubleDisplay&&ju(t,"inlineMathDouble")||Vu(t,"div")&&ju(t,"math");if(r||a){let r;try{r=ic.renderToString(t.children[0].value,{displayMode:a,macros:e.macros})}catch(i){if(e.throwOnError)throw i;n.message(i.message,_.start(t));try{r=ic.renderToString(t.children[0].value,{displayMode:a,macros:e.macros,throwOnError:!1,errorColor:e.errorColor})}catch(n){r='<code class="katex" style="color: '+e.errorColor+'">'+t.children[0].value+"</code>"}}const o=(i=r,au().use(Ku,{fragment:!0,position:!1}).parse(i)).children[0];Object.assign(t.properties,{className:t.properties.className}),t.children=[o]}var i}),t}};var Wu=function(e,t){var n;if(!(null===t||void 0===t||"string"==typeof t||"object"==typeof t&&t.length))throw new Error("Expected `string` or `Array.<string>` for `tagNames`, not `"+t+"`");return!(!e||"object"!=typeof e||"element"!==e.type||"string"!=typeof e.tagName||null!==t&&void 0!==t&&(n=e.tagName,"string"==typeof t?n!==t:-1===t.indexOf(n)))},Yu=/[\ \t\n\f\r]/g;var Qu=function(e){var t;if(e&&"object"==typeof e&&"text"===e.type)t=e.value||"";else{if("string"!=typeof e)return!1;t=e}return""===t.replace(Yu,"")};function Xu(e){return function(t,n,r){var a,i=t&&t.children;if(n+=e,a=i&&i[n],!r)for(;a&&Qu(a);)a=i[n+=e];return a}}var Zu={before:Xu(-1),after:Xu(1)},Ju=Zu.after,ed=function(e,t){return Ju(e,-1,t)};var td=function(e,t){return e&&e.children&&e.children.indexOf(t)};var nd=function(e){return l("text",e)&&Qu(e.value.charAt(0))};var rd=function(e){return function(t,n,r){var a=t.tagName,i=!!ad.call(e,a)&&e[a];return!!i&&i(t,n,r)}},ad={}.hasOwnProperty;var id=Zu.after,od=rd({html:function(e,t,n){var r=id(n,t);return!r||!l("comment",r)},head:ld,body:function(e,t,n){var r=id(n,t);return!r||!l("comment",r)},p:function(e,t,n){var r=id(n,t);if(r)return Wu(r,["address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","menu","nav","ol","p","pre","section","table","ul"]);return!n||!Wu(n,["a","audio","del","ins","map","noscript","video"])},li:function(e,t,n){var r=id(n,t);return!r||Wu(r,"li")},dt:function(e,t,n){var r=id(n,t);return r&&Wu(r,["dt","dd"])},dd:function(e,t,n){var r=id(n,t);return!r||Wu(r,["dt","dd"])},rt:sd,rp:sd,optgroup:function(e,t,n){var r=id(n,t);return!r||Wu(r,"optgroup")},option:function(e,t,n){var r=id(n,t);return!r||Wu(r,["option","optgroup"])},menuitem:function(e,t,n){var r=id(n,t);return!r||Wu(r,["menuitem","hr","menu"])},colgroup:ld,caption:ld,thead:function(e,t,n){var r=id(n,t);return r&&Wu(r,["tbody","tfoot"])},tbody:function(e,t,n){var r=id(n,t);return!r||Wu(r,["tbody","tfoot"])},tfoot:function(e,t,n){return!id(n,t)},tr:function(e,t,n){var r=id(n,t);return!r||Wu(r,"tr")},td:cd,th:cd});function ld(e,t,n){var r=id(n,t,!0);return!r||!l("comment",r)&&!nd(r)}function sd(e,t,n){var r=id(n,t);return!r||Wu(r,["rp","rt"])}function cd(e,t,n){var r=id(n,t);return!r||Wu(r,["td","th"])}var ud=Zu.before,dd={}.hasOwnProperty;var pd={opening:rd({html:function(e){var t=ed(e);return!t||!l("comment",t)},head:function(e){var t,n,r=e.children,a=r.length,i={},o=-1;for(;++o<a;)if(t=r[o],n=t.tagName,"element"===t.type&&("title"===n||"base"===n)){if(dd.call(i,n))return!1;i[n]=!0}return Boolean(a)},body:function(e){var t=ed(e,!0);return!t||!l("comment",t)&&!nd(t)&&!Wu(t,["meta","link","script","style","template"])},colgroup:function(e,t,n){var r=ud(n,t),a=ed(e,!0);if(Wu(r,"colgroup")&&od(r,td(n,r),n))return!1;return a&&Wu(a,"col")},tbody:function(e,t,n){var r=ud(n,t),a=ed(e);if(Wu(r,["thead","tbody"])&&od(r,td(n,r),n))return!1;return a&&Wu(a,"tr")}}),closing:od},md=function(e,t){var n=t&&t.children,r=n&&n.length,a=-1,i=[];for(;++a<r;)i[a]=np(e,n[a],a,t);return i.join("")};var gd={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},hd=Object.freeze({nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€",default:gd});var fd={AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ"},_d=Object.freeze({AElig:"Æ",AMP:"&",Aacute:"Á",Acirc:"Â",Agrave:"À",Aring:"Å",Atilde:"Ã",Auml:"Ä",COPY:"©",Ccedil:"Ç",ETH:"Ð",Eacute:"É",Ecirc:"Ê",Egrave:"È",Euml:"Ë",GT:">",Iacute:"Í",Icirc:"Î",Igrave:"Ì",Iuml:"Ï",LT:"<",Ntilde:"Ñ",Oacute:"Ó",Ocirc:"Ô",Ograve:"Ò",Oslash:"Ø",Otilde:"Õ",Ouml:"Ö",QUOT:'"',REG:"®",THORN:"Þ",Uacute:"Ú",Ucirc:"Û",Ugrave:"Ù",Uuml:"Ü",Yacute:"Ý",aacute:"á",acirc:"â",acute:"´",aelig:"æ",agrave:"à",amp:"&",aring:"å",atilde:"ã",auml:"ä",brvbar:"¦",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",ecirc:"ê",egrave:"è",eth:"ð",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",iacute:"í",icirc:"î",iexcl:"¡",igrave:"ì",iquest:"¿",iuml:"ï",laquo:"«",lt:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",oacute:"ó",ocirc:"ô",ograve:"ò",ordf:"ª",ordm:"º",oslash:"ø",otilde:"õ",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',raquo:"»",reg:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",times:"×",uacute:"ú",ucirc:"û",ugrave:"ù",uml:"¨",uuml:"ü",yacute:"ý",yen:"¥",yuml:"ÿ",default:fd}),Ed=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57};var Td=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90};var bd=function(e){var t="string"==typeof e?e.charCodeAt(0):e;return t>=48&&t<=57};var vd=function(e){return Td(e)||bd(e)};var Ad=["cent","copy","divide","gt","lt","not","para","times"],Sd=Object.freeze({default:Ad}),yd=hd&&gd||hd,Nd=_d&&fd||_d,Cd=Sd&&Ad||Sd,Od=Id;Id.escape=function(e){return Id(e,{escapeOnly:!0,useNamedReferences:!0})};var Md={}.hasOwnProperty,xd=function(){var e,t={};for(e in yd)t[yd[e]]=e;return t}(),wd=Pd(['"',"'","<",">","&","`"]),Rd=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Dd=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g;function Id(e,t){var n=t||{},r=n.subset,a=r?Pd(r):wd,i=n.escapeOnly,o=n.omitOptionalSemicolons;return e=e.replace(a,function(e,t,r){return kd(e,r.charAt(t+1),n)}),r||i?e:e.replace(Rd,function(e,t,n){return Ld(1024*(e.charCodeAt(0)-55296)+e.charCodeAt(1)-56320+65536,n.charAt(t+2),o)}).replace(Dd,function(e,t,r){return kd(e,r.charAt(t+1),n)})}function kd(e,t,n){var r,a,i=n.useShortestReferences,o=n.omitOptionalSemicolons;return(i||n.useNamedReferences)&&Md.call(xd,e)&&(r=function(e,t,n,r){var a="&"+e;if(n&&Md.call(Nd,e)&&-1===Cd.indexOf(e)&&(!r||t&&"="!==t&&!vd(t)))return a;return a+";"}(xd[e],t,o,n.attribute)),!i&&r||(a=Ld(e.charCodeAt(0),t,o)),r&&(!i||r.length<a.length)?r:a}function Ld(e,t,n){var r="&#x"+e.toString(16).toUpperCase();return n&&t&&!Ed(t)?r:r+";"}function Pd(e){return new RegExp("["+e.join("")+"]","g")}var Bd=function(t,n,r,a){var i=n.value;return function(e){return e&&("script"===e.tagName||"style"===e.tagName)}(a)?i:Od(i,e(t.entities,{subset:["<","&"]}))};var Fd=function(e,t){var n,r=0;if(e=String(e),"string"!=typeof t||1!==t.length)throw new Error("Expected character");n=e.indexOf(t);for(;-1!==n;)r++,n=e.indexOf(t,n+1);return r};var Ud=yl.stringify,Hd=wl.stringify,Gd=function(e,t,n,r){var a=t.tagName,i=md(e,"template"===a?t.content:t),o=-1!==e.voids.indexOf(a.toLowerCase()),l=function(e,t){var n,r,a,i,o,l,s=[];for(n in t)null!=(r=t[n])&&(a=Xd(e,n,r))&&s.push(a);i=s.length,o=-1;for(;++o<i;)a=s[o],l=e.tight&&a.charAt(a.length-1),o!==i-1&&l!==jd&&l!==Vd&&(s[o]=a+Kd);return s.join(zd)}(e,t.properties),s=e.omit,c="";o=!i&&o,!l&&s&&s.opening(t,n,r)||(c=Wd+a+(l?Kd+l:zd),o&&e.close&&(e.tightClose&&l.charAt(l.length-1)!==Qd||(c+=Kd),c+=Qd),c+=Yd);c+=i,o||s&&s.closing(t,n,r)||(c+=Wd+Qd+a+Yd);return c},qd="data",zd="",Kd=" ",jd='"',Vd="'",$d="=",Wd="<",Yd=">",Qd="/";function Xd(t,n,r){var a,i=ll(n)||{};return null==r||"number"==typeof r&&isNaN(r)||!r&&i.boolean||!1===r&&i.overloadedBoolean?zd:(a=function(t,n){var r=(ll(n)||{}).name||zl(n);r.slice(0,qd.length)===qd&&/[0-9]/.test(r.charAt(qd.length))&&(r=qd+"-"+r.slice(4));return Od(r,e(t.entities,{subset:t.NAME}))}(t,n),r&&i.boolean||!0===r&&i.overloadedBoolean?a:a+function(t,n,r){var a,i=ll(n)||{},o=t.entities,l=t.quote,s=t.alternative;"object"==typeof r&&"length"in r&&(r=(i.commaSeparated?Hd:Ud)(r,{padLeft:!t.tightLists}));!(r=String(r))&&t.collapseEmpty||(a=r,t.unquoted&&(a=Od(r,e(o,{subset:t.UNQUOTED,attribute:!0}))),t.unquoted&&a===r||(s&&Fd(r,l)>Fd(r,s)&&(l=s),r=Od(r,e(o,{subset:l===Vd?t.SINGLE_QUOTED:t.DOUBLE_QUOTED,attribute:!0})),r=l+r+l),r=r?$d+r:r);return r}(t,n,r))}var Zd=function(e,t){var n=t.public,r=t.system,a="<!DOCTYPE";if(!t.name)return a+">";a+=" "+t.name,null!=n?a+=" PUBLIC "+Jd(n):null!=r&&(a+=" SYSTEM");null!=r&&(a+=" "+Jd(r));return a+">"};function Jd(e){var t=-1===e.indexOf('"')?'"':"'";return t+e+t}var ep=function(e,t){return"\x3c!--"+t.value+"--\x3e"};var tp=function(e,t){return e.dangerous?t.value:Bd(e,t)};var np=function(e,t,n,r){var a=t&&t.type;if(!a)throw new Error("Expected node, not `"+t+"`");if(!rp.call(ap,a))throw new Error("Cannot compile unknown node `"+a+"`");return ap[a](e,t,n,r)},rp={}.hasOwnProperty,ap={};ap.root=md,ap.text=Bd,ap.element=Gd,ap.doctype=Zd,ap.comment=ep,ap.raw=tp;var ip=function(e,t){var n=t||{},r=n.quote||op,a=n.quoteSmart,i=n.allowParseErrors,o=n.allowDangerousCharacters,l=r===op?lp:op,s=i?sp:cp,c=i?dp:pp,u=i?mp:gp,d=i?hp:fp;if(r!==op&&r!==lp)throw new Error("Invalid quote `"+r+"`, expected `"+lp+"` or `"+op+"`");return np({NAME:s.concat(o?[]:up),UNQUOTED:c.concat(o?[]:up),DOUBLE_QUOTED:d.concat(o?[]:up),SINGLE_QUOTED:u.concat(o?[]:up),omit:n.omitOptionalTags&&pd,quote:r,alternative:a?l:null,unquoted:Boolean(n.preferUnquoted),tight:n.tightAttributes,tightLists:n.tightCommaSeparatedLists,tightClose:n.tightSelfClosing,collapseEmpty:n.collapseEmptyAttributes,dangerous:n.allowDangerousHTML,voids:n.voids||Vs.concat(),entities:n.entities||{},close:n.closeSelfClosing},e)},op='"',lp="'",sp=["&"," ","\t","\n","\r","\f","/",">","="],cp=sp.concat("\0",op,lp,"<"),up=[op,lp,"`"],dp=["&"," ","\t","\n","\r","\f",">"],pp=dp.concat("\0",op,lp,"<","=","`"),mp=["&",lp],gp=mp.concat("\0"),hp=["&",op],fp=hp.concat("\0");var _p=ip,Ep=function(t){var n=e(t,this.data("settings"));this.Compiler=function(e){return _p(e,n)}};var Tp=f(function(e){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}),bp=function(t){var n,r,a;for(r in Tp(o,t),Tp(i,o),n=o.prototype)(a=n[r])&&"object"==typeof a&&(n[r]="concat"in a?a.concat():e(a));return o;function i(e){return t.apply(this,e)}function o(){return this instanceof o?t.apply(this,arguments):new i(arguments)}};var vp=function(e,t,n){return function(){var r=n||this,a=r[e];return r[e]=!t,function(){r[e]=a}}};var Ap=function(e,t){return function(n){var r,a=0,i=n.indexOf("\\"),o=e[t],l=[];for(;-1!==i;)l.push(n.slice(a,i)),a=i+1,(r=n.charAt(a))&&-1!==o.indexOf(r)||l.push("\\"),i=n.indexOf("\\",a);return l.push(n.slice(a)),l.join("")}};var Sp={AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌",Map:"⤅",in:"∈"},yp=Object.freeze({AEli:"Æ",AElig:"Æ",AM:"&",AMP:"&",Aacut:"Á",Aacute:"Á",Abreve:"Ă",Acir:"Â",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrav:"À",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Arin:"Å",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atild:"Ã",Atilde:"Ã",Aum:"Ä",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COP:"©",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedi:"Ç",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ET:"Ð",ETH:"Ð",Eacut:"É",Eacute:"É",Ecaron:"Ě",Ecir:"Ê",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrav:"È",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Eum:"Ë",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",G:">",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacut:"Í",Iacute:"Í",Icir:"Î",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrav:"Ì",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Ium:"Ï",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",L:"<",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntild:"Ñ",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacut:"Ó",Oacute:"Ó",Ocir:"Ô",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograv:"Ò",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslas:"Ø",Oslash:"Ø",Otild:"Õ",Otilde:"Õ",Otimes:"⨷",Oum:"Ö",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUO:'"',QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",RE:"®",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THOR:"Þ",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:"\t",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacut:"Ú",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucir:"Û",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrav:"Ù",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uum:"Ü",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacut:"Ý",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacut:"á",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acir:"â",acirc:"â",acut:"´",acute:"´",acy:"а",aeli:"æ",aelig:"æ",af:"⁡",afr:"𝔞",agrav:"à",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",am:"&",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",arin:"å",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atild:"ã",atilde:"ã",aum:"ä",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvba:"¦",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedi:"ç",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedi:"¸",cedil:"¸",cemptyv:"⦲",cen:"¢",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",cop:"©",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curre:"¤",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",de:"°",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divid:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacut:"é",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"ê",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrav:"è",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",et:"ð",eth:"ð",eum:"ë",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac1:"¼",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac3:"¾",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",g:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacut:"í",iacute:"í",ic:"⁣",icir:"î",icirc:"î",icy:"и",iecy:"е",iexc:"¡",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrav:"ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iques:"¿",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",ium:"ï",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laqu:"«",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",l:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",mac:"¯",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micr:"µ",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middo:"·",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbs:" ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",no:"¬",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntild:"ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacut:"ó",oacute:"ó",oast:"⊛",ocir:"ô",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograv:"ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"º",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslas:"ø",oslash:"ø",osol:"⊘",otild:"õ",otilde:"õ",otimes:"⊗",otimesas:"⨶",oum:"ö",ouml:"ö",ovbar:"⌽",par:"¶",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusm:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",poun:"£",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quo:'"',quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raqu:"»",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",re:"®",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sec:"§",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",sh:"­",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szli:"ß",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thor:"þ",thorn:"þ",tilde:"˜",time:"×",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacut:"ú",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucir:"û",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrav:"ù",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",um:"¨",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uum:"ü",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacut:"ý",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",ye:"¥",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yum:"ÿ",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌",default:Sp}),Np={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},Cp=Object.freeze({default:Np}),Op=yp&&Sp||yp,Mp=Cp&&Np||Cp,xp=function(e,t){var n,r,a={};t||(t={});for(r in Vp)n=t[r],a[r]=null===n||void 0===n?Vp[r]:n;(a.position.indent||a.position.start)&&(a.indent=a.position.indent||[],a.position=a.position.start);return function(e,t){var n,r,a,i,o,l,s,c,u,d,p,m,g,h,f,_,E,T,b=t.additional,v=t.nonTerminated,A=t.text,S=t.reference,y=t.warning,N=t.textContext,C=t.referenceContext,O=t.warningContext,M=t.position,x=t.indent||[],w=e.length,R=0,D=-1,I=M.column||1,k=M.line||1,L=Kp,P=[];f=F(),s=y?function(e,t){var n=F();n.column+=t,n.offset+=t,y.call(O,sm[e],n,e)}:Dp,R--,w++;for(;++R<w;)if(i===Fp&&(I=x[D]||1),(i=U(R))!==Lp)i===Fp&&(k++,D++,I=0),i?(L+=i,I++):H();else{if((l=U(R+1))===jp||l===Fp||l===kp||l===Gp||l===qp||l===Lp||l===Kp||b&&l===b){L+=i,I++;continue}for(p=m=R+1,T=m,l!==Pp?g=$p:(T=++p,(l=U(T))===Up||l===Hp?(g=Wp,T=++p):g=Yp),n=Kp,d=Kp,a=Kp,h=Xp[g],T--;++T<w&&(l=U(T),h(l));)a+=l,g===$p&&wp.call(Nd,a)&&(n=a,d=Nd[a]);(r=U(T)===Bp)&&(T++,g===$p&&wp.call(Op,a)&&(n=a,d=Op[a])),E=1+T-m,(r||v)&&(a?g===$p?(r&&!d?s(nm,1):(n!==a&&(T=p+n.length,E=1+T-p,r=!1),r||(c=n?Zp:em,t.attribute?(l=U(T))===zp?(s(c,E),d=null):vd(l)?d=null:s(c,E):s(c,E))),o=d):(r||s(Jp,E),o=parseInt(a,Qp[g]),(B=o)>=55296&&B<=57343||B>1114111?(s(am,E),o=Ip):o in Mp?(s(rm,E),o=Mp[o]):(u=Kp,cm(o)&&s(rm,E),o>65535&&(u+=Rp((o-=65536)>>>10|55296),o=56320|1023&o),o=u+Rp(o))):g!==$p&&s(tm,E)),o?(H(),f=F(),R=T-1,I+=T-m+1,P.push(o),(_=F()).offset++,S&&S.call(C,o,{start:f,end:_},e.slice(m-1,T)),f=_):(a=e.slice(m-1,T),L+=a,I+=a.length,R=T-1)}var B;return P.join(Kp);function F(){return{line:k,column:I,offset:R+(M.offset||0)}}function U(t){return e.charAt(t)}function H(){L&&(P.push(L),A&&A.call(N,L,{start:f,end:F()}),L=Kp)}}(e,a)},wp={}.hasOwnProperty,Rp=String.fromCharCode,Dp=Function.prototype,Ip="�",kp="\f",Lp="&",Pp="#",Bp=";",Fp="\n",Up="x",Hp="X",Gp=" ",qp="<",zp="=",Kp="",jp="\t",Vp={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},$p="named",Wp="hexadecimal",Yp="decimal",Qp={};Qp[Wp]=16,Qp[Yp]=10;var Xp={};Xp[$p]=vd,Xp[Yp]=bd,Xp[Wp]=Ed;var Zp=1,Jp=2,em=3,tm=4,nm=5,rm=6,am=7,im="Numeric character references",om=" must be terminated by a semicolon",lm=" cannot be empty",sm={};function cm(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535==(65535&e)||65534==(65535&e)}sm[Zp]="Named character references"+om,sm[Jp]=im+om,sm[em]="Named character references"+lm,sm[tm]=im+lm,sm[nm]="Named character references must be known",sm[rm]=im+" cannot be disallowed",sm[am]=im+" cannot be outside the permissible Unicode range";var um=function(t){return a.raw=function(t,a,i){return xp(t,e(i,{position:n(a),warning:r}))},a;function n(e){for(var n=t.offset,r=e.line,a=[];++r&&r in n;)a.push((n[r]||0)+1);return{start:e,indent:a}}function r(e,n,r){3!==r&&t.file.message(e,n)}function a(e,a,i){xp(e,{position:n(a),warning:r,text:i,reference:i,textContext:t,referenceContext:t})}};var dm=function(e){return function(t,n){var r,a,i,o,l,s,c=this,u=c.offset,d=[],p=c[e+"Methods"],m=c[e+"Tokenizers"],g=n.line,h=n.column;if(!t)return d;T.now=_,T.file=c.file,f("");for(;t;){for(r=-1,a=p.length,l=!1;++r<a&&(o=p[r],!(i=m[o])||i.onlyAtStart&&!c.atStart||i.notInList&&c.inList||i.notInBlock&&c.inBlock||i.notInLink&&c.inLink||(s=t.length,i.apply(c,[T,t]),!(l=s!==t.length))););l||c.file.fail(new Error("Infinite loop"),T.now())}return c.eof=_(),d;function f(e){for(var t=-1,n=e.indexOf("\n");-1!==n;)g++,t=n,n=e.indexOf("\n",n+1);-1===t?h+=e.length:h=e.length-t,g in u&&(-1!==t?h+=u[g]:h<=u[g]&&(h=u[g]+1))}function _(){var e={line:g,column:h};return e.offset=c.toOffset(e),e}function E(){var e=_();return function(t,n){var r=t.position,a=r?r.start:e,i=[],o=r&&r.end.line,l=e.line;if(t.position=new function(e){this.start=e,this.end=_()}(a),r&&n&&r.indent){if(i=r.indent,o<l){for(;++o<l;)i.push((u[o]||0)+1);i.push(e.column)}n=i.concat(n)}return t.position.indent=n||[],t}}function T(e){var n=function(){var e=[],t=g+1;return function(){for(var n=g+1;t<n;)e.push((u[t]||0)+1),t++;return e}}(),r=E(),a=_();return function(e){t.substring(0,e.length)!==e&&c.file.fail(new Error("Incorrectly eaten value: please report this warning on http://git.io/vg5Ft"),_())}(e),i.reset=o,o.test=l,i.test=l,t=t.substring(e.length),f(e),n=n(),i;function i(e,t){return r(function(e,t){var n=t?t.children:d,r=n[n.length-1];r&&e.type===r.type&&e.type in pm&&mm(r)&&mm(e)&&(e=pm[e.type].call(c,r,e));e!==r&&n.push(e);c.atStart&&0!==d.length&&c.exitStart();return e}(r(e),t),n)}function o(){var n=i.apply(null,arguments);return g=a.line,h=a.column,t=e+t,n}function l(){var n=r({});return g=a.line,h=a.column,t=e+t,n.position}}}},pm={text:function(e,t){return e.value+=t.value,e},blockquote:function(e,t){if(this.options.commonmark)return t;return e.children=e.children.concat(t.children),e}};function mm(e){var t,n;return"text"!==e.type||!e.position||(t=e.position.start,n=e.position.end,t.line!==n.line||n.column-t.column===e.value.length)}var gm=Em,hm=["\\","`","*","{","}","[","]","(",")","#","+","-",".","!","_",">"],fm=hm.concat(["~","|"]),_m=fm.concat(["\n",'"',"$","%","&","'",",","/",":",";","<","=","?","@","^"]);function Em(e){var t=e||{};return t.commonmark?_m:t.gfm?fm:hm}Em.default=hm,Em.gfm=fm,Em.commonmark=_m;var Tm=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","pre","section","source","title","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],bm=Object.freeze({default:Tm}),vm={position:!0,gfm:!0,commonmark:!1,footnotes:!1,pedantic:!1,blocks:bm&&Tm||bm},Am=function(t){var n,r,a=this.options;if(null==t)t={};else{if("object"!=typeof t)throw new Error("Invalid value `"+t+"` for setting `options`");t=e(t)}for(n in vm){if(null==(r=t[n])&&(r=a[n]),"blocks"!==n&&"boolean"!=typeof r||"blocks"===n&&"object"!=typeof r)throw new Error("Invalid value `"+r+"` for setting `options."+n+"`");t[n]=r}return this.options=t,this.escape=gm(t),this};var Sm=function(e,t){return u(e,t?ym:Nm),e};function ym(e){delete e.position}function Nm(e){e.position=void 0}var Cm=function(){var t,n=String(this.file),r={line:1,column:1,offset:0},a=e(r);65279===(n=n.replace(Mm,Om)).charCodeAt(0)&&(n=n.slice(1),a.column++,a.offset++);t={type:"root",children:this.tokenizeBlock(n,a),position:{start:r,end:this.eof||e(r)}},this.options.position||Sm(t,!0);return t},Om="\n",Mm=/\r\n|\r/g;var xm=function(e,t,n){var r,a,i,o,l=t.charAt(0);if("\n"!==l)return;if(n)return!0;o=1,r=t.length,a=l,i="";for(;o<r&&(l=t.charAt(o),ie(l));)i+=l,"\n"===l&&(a+=i,i=""),o++;e(a)};var wm=function(e,t,n){var r,a,i,o=-1,l=t.length,s="",c="",u="",d="";for(;++o<l;)if(r=t.charAt(o),i)if(i=!1,s+=u,c+=d,u="",d="",r===Rm)u=r,d=r;else for(s+=r,c+=r;++o<l;){if(!(r=t.charAt(o))||r===Rm){d=r,u=r;break}s+=r,c+=r}else if(r===Im&&t.charAt(o+1)===r&&t.charAt(o+2)===r&&t.charAt(o+3)===r)u+=km,o+=3,i=!0;else if(r===Dm)u+=r,i=!0;else{for(a="";r===Dm||r===Im;)a+=r,r=t.charAt(++o);if(r!==Rm)break;u+=a+r,d+=r}if(c)return!!n||e(s)({type:"code",lang:null,value:fe(c)})},Rm="\n",Dm="\t",Im=" ",km=L(Im,4);var Lm=function(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g=this.options,h=t.length+1,f=0,_="";if(!g.gfm)return;for(;f<h&&((i=t.charAt(f))===Fm||i===Bm);)_+=i,f++;if(p=f,(i=t.charAt(f))!==Um&&i!==Hm)return;f++,a=i,r=1,_+=i;for(;f<h&&(i=t.charAt(f))===a;)_+=i,r++,f++;if(r<Gm)return;for(;f<h&&((i=t.charAt(f))===Fm||i===Bm);)_+=i,f++;o="",l="";for(;f<h&&(i=t.charAt(f))!==Pm&&i!==Um&&i!==Hm;)i===Fm||i===Bm?l+=i:(o+=l+i,l=""),f++;if((i=t.charAt(f))&&i!==Pm)return;if(n)return!0;(m=e.now()).column+=_.length,m.offset+=_.length,_+=o,o=this.decode.raw(this.unescape(o),m),l&&(_+=l);l="",u="",d="",s="",c="";for(;f<h;)if(i=t.charAt(f),s+=u,c+=d,u="",d="",i===Pm){for(s?(u+=i,d+=i):_+=i,l="",f++;f<h&&(i=t.charAt(f))===Fm;)l+=i,f++;if(u+=l,d+=l.slice(p),!(l.length>=qm)){for(l="";f<h&&(i=t.charAt(f))===a;)l+=i,f++;if(u+=l,d+=l,!(l.length<r)){for(l="";f<h&&((i=t.charAt(f))===Fm||i===Bm);)u+=i,d+=i,f++;if(!i||i===Pm)break}}}else s+=i,d+=i,f++;return e(_+=s+u)({type:"code",lang:o||null,value:fe(c)})},Pm="\n",Bm="\t",Fm=" ",Um="~",Hm="`",Gm=3,qm=4;var zm=function(e,t,n,r){var a,i,o,l,s,c,u=["pedantic","commonmark"],d=u.length,p=e.length,m=-1;for(;++m<p;){for(a=e[m],i=a[1]||{},o=a[0],l=-1,c=!1;++l<d;)if(void 0!==i[s=u[l]]&&i[s]!==n.options[s]){c=!0;break}if(!c&&t[o].apply(n,r))return!0}return!1};var Km=function(e,t,n){var r,a,i,o,l,s,c,u,d,p=this.offset,m=this.blockTokenizers,g=this.interruptBlockquote,h=e.now(),f=h.line,_=t.length,E=[],T=[],b=[],v=0;for(;v<_&&((a=t.charAt(v))===$m||a===Vm);)v++;if(t.charAt(v)!==Wm)return;if(n)return!0;v=0;for(;v<_;){for(o=t.indexOf(jm,v),c=v,u=!1,-1===o&&(o=_);v<_&&((a=t.charAt(v))===$m||a===Vm);)v++;if(t.charAt(v)===Wm?(v++,u=!0,t.charAt(v)===$m&&v++):v=c,l=t.slice(v,o),!u&&!S(l)){v=c;break}if(!u&&(i=t.slice(v),zm(g,m,this,[e,i,!0])))break;s=c===v?l:t.slice(c,o),b.push(v-c),E.push(s),T.push(l),v=o+1}v=-1,_=b.length,r=e(E.join(jm));for(;++v<_;)p[f]=(p[f]||0)+b[v],f++;return d=this.enterBlock(),T=this.tokenizeBlock(T.join(jm),h),d(),r({type:"blockquote",children:T})},jm="\n",Vm="\t",$m=" ",Wm=">";var Ym=function(e,t,n){var r,a,i,o=this.options,l=t.length+1,s=-1,c=e.now(),u="",d="";for(;++s<l;){if((r=t.charAt(s))!==Zm&&r!==Xm){s--;break}u+=r}i=0;for(;++s<=l;){if((r=t.charAt(s))!==Jm){s--;break}u+=r,i++}if(i>eg)return;if(!i||!o.pedantic&&t.charAt(s+1)===Jm)return;l=t.length+1,a="";for(;++s<l;){if((r=t.charAt(s))!==Zm&&r!==Xm){s--;break}a+=r}if(!o.pedantic&&0===a.length&&r&&r!==Qm)return;if(n)return!0;u+=a,a="",d="";for(;++s<l&&(r=t.charAt(s))&&r!==Qm;)if(r===Zm||r===Xm||r===Jm){for(;r===Zm||r===Xm;)a+=r,r=t.charAt(++s);for(;r===Jm;)a+=r,r=t.charAt(++s);for(;r===Zm||r===Xm;)a+=r,r=t.charAt(++s);s--}else d+=a+r,a="";return c.column+=u.length,c.offset+=u.length,e(u+=d+a)({type:"heading",depth:i,children:this.tokenizeInline(d,c)})},Qm="\n",Xm="\t",Zm=" ",Jm="#",eg=6;var tg=function(e,t,n){var r,a,i,o,l=-1,s=t.length+1,c="";for(;++l<s&&((r=t.charAt(l))===rg||r===ag);)c+=r;if(r!==ig&&r!==lg&&r!==og)return;a=r,c+=r,i=1,o="";for(;++l<s;)if((r=t.charAt(l))===a)i++,c+=o+a,o="";else{if(r!==ag)return i>=sg&&(!r||r===ng)?(c+=o,!!n||e(c)({type:"thematicBreak"})):void 0;o+=r}},ng="\n",rg="\t",ag=" ",ig="*",og="_",lg="-",sg=3;var cg=function(e){var t,n=0,r=0,a=e.charAt(n),i={};for(;a in ug;)t=ug[a],r+=t,t>1&&(r=Math.floor(r/t)*t),i[r]=n,a=e.charAt(++n);return{indent:r,stops:i}},ug={" ":1,"\t":4};var dg=function(e,t){var n,r,a,i,o=e.split(mg),l=o.length+1,s=1/0,c=[];o.unshift(L(pg,t)+"!");for(;l--;)if(r=cg(o[l]),c[l]=r.stops,0!==S(o[l]).length){if(!r.indent){s=1/0;break}r.indent>0&&r.indent<s&&(s=r.indent)}if(s!==1/0)for(l=o.length;l--;){for(a=c[l],n=s;n&&!(n in a);)n--;i=0!==S(o[l]).length&&s&&n!==s?gg:"",o[l]=i+o[l].slice(n in a?a[n]+1:0)}return o.shift(),o.join(mg)},pg=" ",mg="\n",gg="\t";var hg=function(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g,h,f,_,E,T,b,v,A,y,N,C,O,M=this.options.commonmark,x=this.options.pedantic,w=this.blockTokenizers,R=this.interruptList,D=0,I=t.length,k=null,L=0;for(;D<I;){if((o=t.charAt(D))===vg)L+=Sg-L%Sg;else{if(o!==Tg)break;L++}D++}if(L>=Sg)return;if(o=t.charAt(D),r=M?Rg:wg,!0===xg[o])l=o,i=!1;else{for(i=!0,a="";D<I&&(o=t.charAt(D),bd(o));)a+=o,D++;if(o=t.charAt(D),!a||!0!==r[o])return;k=parseInt(a,10),l=o}if((o=t.charAt(++D))!==Tg&&o!==vg)return;if(n)return!0;D=0,f=[],_=[],E=[];for(;D<I;){for(s=t.indexOf(bg,D),c=D,u=!1,O=!1,-1===s&&(s=I),C=D+Sg,L=0;D<I;){if((o=t.charAt(D))===vg)L+=Sg-L%Sg;else{if(o!==Tg)break;L++}D++}if(L>=Sg&&(O=!0),T&&L>=T.indent&&(O=!0),o=t.charAt(D),d=null,!O){if(!0===xg[o])d=o,D++,L++;else{for(a="";D<I&&(o=t.charAt(D),bd(o));)a+=o,D++;o=t.charAt(D),D++,a&&!0===r[o]&&(d=o,L+=a.length+1)}if(d)if((o=t.charAt(D))===vg)L+=Sg-L%Sg,D++;else if(o===Tg){for(C=D+Sg;D<C&&t.charAt(D)===Tg;)D++,L++;D===C&&t.charAt(D)===Tg&&(D-=Sg-1,L-=Sg-1)}else o!==bg&&""!==o&&(d=null)}if(d){if(!x&&l!==d)break;u=!0}else M||O||t.charAt(c)!==Tg?M&&T&&(O=L>=T.indent||L>Sg):O=!0,u=!1,D=c;if(m=t.slice(c,s),p=c===D?m:t.slice(D,s),(d===fg||d===_g||d===Eg)&&w.thematicBreak.call(this,e,m,!0))break;if(g=h,h=!S(p).length,O&&T)T.value=T.value.concat(E,m),_=_.concat(E,m),E=[];else if(u)0!==E.length&&(T.value.push(""),T.trail=E.concat()),T={value:[m],indent:L,trail:[]},f.push(T),_=_.concat(E,m),E=[];else if(h){if(g)break;E.push(m)}else{if(g)break;if(zm(R,w,this,[e,m,!0]))break;T.value=T.value.concat(E,m),_=_.concat(E,m),E=[]}D=s+1}y=e(_.join(bg)).reset({type:"list",ordered:i,start:k,loose:null,children:[]}),b=this.enterList(),v=this.enterBlock(),A=!1,D=-1,I=f.length;for(;++D<I;)T=f[D].value.join(bg),N=e.now(),(T=e(T)(Dg(this,T,N),y)).loose&&(A=!0),T=f[D].trail.join(bg),D!==I-1&&(T+=bg),e(T);return b(),v(),y.loose=A,y},fg="*",_g="_",Eg="-",Tg=" ",bg="\n",vg="\t",Ag="x",Sg=4,yg=/\n\n(?!\s*$)/,Ng=/^\[([ \t]|x|X)][ \t]/,Cg=/^([ \t]*)([*+-]|\d+[.)])( {1,4}(?! )| |\t|$|(?=\n))([^\n]*)/,Og=/^([ \t]*)([*+-]|\d+[.)])([ \t]+)/,Mg=/^( {1,4}|\t)?/gm,xg={};xg[fg]=!0,xg["+"]=!0,xg[Eg]=!0;var wg={".":!0},Rg={};function Dg(e,t,n){var r,a,i=e.offset,o=null;return t=(e.options.pedantic?Ig:kg).apply(null,arguments),e.options.gfm&&(r=t.match(Ng))&&(a=r[0].length,o=r[1].toLowerCase()===Ag,i[n.line]+=a,t=t.slice(a)),{type:"listItem",loose:yg.test(t)||t.charAt(t.length-1)===bg,checked:o,children:e.tokenizeBlock(t,n)}}function Ig(e,t,n){var r=e.offset,a=n.line;return t=t.replace(Og,i),a=n.line,t.replace(Mg,i);function i(e){return r[a]=(r[a]||0)+e.length,a++,""}}function kg(e,t,n){var r,a,i,o,l,s,c,u=e.offset,d=n.line;for(o=(t=t.replace(Cg,function(e,t,n,o,l){a=t+n+o,i=l,Number(n)<10&&a.length%2==1&&(n=Tg+n);return(r=t+L(Tg,n.length)+o)+i})).split(bg),(l=dg(t,cg(r).indent).split(bg))[0]=i,u[d]=(u[d]||0)+a.length,d++,s=0,c=o.length;++s<c;)u[d]=(u[d]||0)+o[s].length-l[s].length,d++;return l.join(bg)}Rg["."]=!0,Rg[")"]=!0;var Lg=function(e,t,n){var r,a,i,o,l,s=e.now(),c=t.length,u=-1,d="";for(;++u<c;){if((i=t.charAt(u))!==Fg||u>=Ug){u--;break}d+=i}r="",a="";for(;++u<c;){if((i=t.charAt(u))===Pg){u--;break}i===Fg||i===Bg?a+=i:(r+=a+i,a="")}if(s.column+=d.length,s.offset+=d.length,d+=r+a,i=t.charAt(++u),o=t.charAt(++u),i!==Pg||!Hg[o])return;d+=i,a=o,l=Hg[o];for(;++u<c;){if((i=t.charAt(u))!==o){if(i!==Pg)return;u--;break}a+=i}if(n)return!0;return e(d+a)({type:"heading",depth:l,children:this.tokenizeInline(r,s)})},Pg="\n",Bg="\t",Fg=" ",Ug=3,Hg={};Hg["="]=1,Hg["-"]=2;var Gg="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\u0000-\\u0020]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",qg="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",zg={openCloseTag:new RegExp("^(?:"+Gg+"|"+qg+")"),tag:new RegExp("^(?:"+Gg+"|"+qg+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|<![A-Za-z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)")},Kg=zg.openCloseTag,jg=function(e,t,n){var r,a,i,o,l,s,c,u=this.options.blocks,d=t.length,p=0,m=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Za-z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+u.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(Kg.source+"\\s*$"),/^$/,!1]];for(;p<d&&((o=t.charAt(p))===Vg||o===$g);)p++;if(t.charAt(p)!==Yg)return;r=-1===(r=t.indexOf(Wg,p+1))?d:r,a=t.slice(p,r),i=-1,l=m.length;for(;++i<l;)if(m[i][0].test(a)){s=m[i];break}if(!s)return;if(n)return s[2];if(p=r,!s[1].test(a))for(;p<d;){if(r=-1===(r=t.indexOf(Wg,p+1))?d:r,a=t.slice(p+1,r),s[1].test(a)){a&&(p=r);break}p=r}return c=t.slice(0,p),e(c)({type:"html",value:c})},Vg="\t",$g=" ",Wg="\n",Yg="<";var Qg=function(e){return X(e).toLowerCase()};var Xg=lh;lh.notInList=!0,lh.notInBlock=!0;var Zg="\\",Jg="\n",eh="\t",th=" ",nh="[",rh="]",ah="^",ih=":",oh=/^( {4}|\t)?/gm;function lh(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g,h=this.offset;if(this.options.footnotes){for(r=0,a=t.length,i="",o=e.now(),l=o.line;r<a&&(d=t.charAt(r),ie(d));)i+=d,r++;if(t.charAt(r)===nh&&t.charAt(r+1)===ah){for(r=(i+=nh+ah).length,c="";r<a&&(d=t.charAt(r))!==rh;)d===Zg&&(c+=d,r++,d=t.charAt(r)),c+=d,r++;if(c&&t.charAt(r)===rh&&t.charAt(r+1)===ih){if(n)return!0;for(p=Qg(c),r=(i+=c+rh+ih).length;r<a&&((d=t.charAt(r))===eh||d===th);)i+=d,r++;for(o.column+=i.length,o.offset+=i.length,c="",s="",u="";r<a;){if((d=t.charAt(r))===Jg){for(u=d,r++;r<a&&(d=t.charAt(r))===Jg;)u+=d,r++;for(c+=u,u="";r<a&&(d=t.charAt(r))===th;)u+=d,r++;if(0===u.length)break;c+=u}c&&(s+=c,c=""),s+=d,r++}return i+=s,s=s.replace(oh,function(e){return h[l]=(h[l]||0)+e.length,l++,""}),m=e(i),g=this.enterBlock(),s=this.tokenizeBlock(s,o),g(),m({type:"footnoteDefinition",identifier:p,children:s})}}}}var sh=Ah;Ah.notInList=!0,Ah.notInBlock=!0;var ch='"',uh="'",dh="\\",ph="\n",mh="\t",gh=" ",hh="[",fh="]",_h="(",Eh=")",Th=":",bh="<",vh=">";function Ah(e,t,n){for(var r,a,i,o,l,s,c,u,d=this.options.commonmark,p=0,m=t.length,g="";p<m&&((o=t.charAt(p))===gh||o===mh);)g+=o,p++;if((o=t.charAt(p))===hh){for(p++,g+=o,i="";p<m&&(o=t.charAt(p))!==fh;)o===dh&&(i+=o,p++,o=t.charAt(p)),i+=o,p++;if(i&&t.charAt(p)===fh&&t.charAt(p+1)===Th){for(s=i,p=(g+=i+fh+Th).length,i="";p<m&&((o=t.charAt(p))===mh||o===gh||o===ph);)g+=o,p++;if(i="",r=g,(o=t.charAt(p))===bh){for(p++;p<m&&Sh(o=t.charAt(p));)i+=o,p++;if((o=t.charAt(p))===Sh.delimiter)g+=bh+i+o,p++;else{if(d)return;p-=i.length+1,i=""}}if(!i){for(;p<m&&yh(o=t.charAt(p));)i+=o,p++;g+=i}if(i){for(c=i,i="";p<m&&((o=t.charAt(p))===mh||o===gh||o===ph);)i+=o,p++;if(l=null,(o=t.charAt(p))===ch?l=ch:o===uh?l=uh:o===_h&&(l=Eh),l){if(!i)return;for(p=(g+=i+o).length,i="";p<m&&(o=t.charAt(p))!==l;){if(o===ph){if(p++,(o=t.charAt(p))===ph||o===l)return;i+=ph}i+=o,p++}if((o=t.charAt(p))!==l)return;a=g,g+=i+o,p++,u=i,i=""}else i="",p=g.length;for(;p<m&&((o=t.charAt(p))===mh||o===gh);)g+=o,p++;return(o=t.charAt(p))&&o!==ph?void 0:!!n||(r=e(r).test().end,c=this.decode.raw(this.unescape(c),r,{nonTerminated:!1}),u&&(a=e(a).test().end,u=this.decode.raw(this.unescape(u),a)),e(g)({type:"definition",identifier:Qg(s),title:u||null,url:c}))}}}}function Sh(e){return e!==vh&&e!==hh&&e!==fh}function yh(e){return e!==hh&&e!==fh&&!ie(e)}Sh.delimiter=vh;var Nh=function(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g,h,f,_,E,T,b,v,A,S,y,N,C;if(!this.options.gfm)return;r=0,b=0,s=t.length+1,c=[];for(;r<s;){if(y=t.indexOf(Dh,r),N=t.indexOf(xh,r+1),-1===y&&(y=t.length),-1===N||N>y){if(b<Lh)return;break}c.push(t.slice(r,y)),b++,r=y+1}o=c.join(Dh),a=c.splice(1,1)[0]||[],r=0,s=a.length,b--,i=!1,m=[];for(;r<s;){if((d=a.charAt(r))===xh){if(p=null,!1===i){if(!1===C)return}else m.push(i),i=!1;C=!1}else if(d===Mh)p=!0,i=i||Uh;else if(d===wh)i=i===Ph?Bh:p&&i===Uh?Fh:Ph;else if(!ie(d))return;r++}!1!==i&&m.push(i);if(m.length<kh)return;if(n)return!0;T=-1,A=[],S=e(o).reset({type:"table",align:m,children:A});for(;++T<b;){for(v=c[T],l={type:"tableRow",children:[]},T&&e(Dh),e(v).reset(l,S),s=v.length+1,r=0,u="",g="",h=!0,f=null,_=null;r<s;)if((d=v.charAt(r))!==Ih&&d!==Rh){if(""===d||d===xh)if(h)e(d);else{if(d&&_){u+=d,r++;continue}!g&&!d||h||(o=g,u.length>1&&(d?(o+=u.slice(0,u.length-1),u=u.charAt(u.length-1)):(o+=u,u="")),E=e.now(),e(o)({type:"tableCell",children:this.tokenizeInline(g,E)},l)),e(u+d),u="",g=""}else if(u&&(g+=u,u=""),g+=d,d===Ch&&r!==s-2&&(g+=v.charAt(r+1),r++),d===Oh){for(f=1;v.charAt(r+1)===d;)g+=d,r++,f++;_?f>=_&&(_=0):_=f}h=!1,r++}else g?u+=d:e(d),r++;T||e(Dh+a)}return S},Ch="\\",Oh="`",Mh="-",xh="|",wh=":",Rh=" ",Dh="\n",Ih="\t",kh=1,Lh=2,Ph="left",Bh="center",Fh="right",Uh=null;var Hh=function(e,t,n){var r,a,i,o,l,s=this.options,c=s.commonmark,u=s.gfm,d=this.blockTokenizers,p=this.interruptParagraph,m=t.indexOf(Gh),g=t.length;for(;m<g;){if(-1===m){m=g;break}if(t.charAt(m+1)===Gh)break;if(c){for(o=0,r=m+1;r<g;){if((i=t.charAt(r))===qh){o=Kh;break}if(i!==zh)break;o++,r++}if(o>=Kh){m=t.indexOf(Gh,m+1);continue}}if(a=t.slice(m+1),zm(p,d,this,[e,a,!0]))break;if(d.list.call(this,e,a,!0)&&(this.inList||c||u&&!bd(S.left(a).charAt(0))))break;if(r=m,-1!==(m=t.indexOf(Gh,m+1))&&""===S(t.slice(r,m))){m=r;break}}if(a=t.slice(0,m),""===S(a))return e(a),null;if(n)return!0;return l=e.now(),a=fe(a),e(a)({type:"paragraph",children:this.tokenizeInline(a,l)})},Gh="\n",qh="\t",zh=" ",Kh=4;var jh=function(e,t){return e.indexOf("\\",t)};var Vh=$h;function $h(e,t,n){var r,a;if("\\"===t.charAt(0)&&(r=t.charAt(1),-1!==this.escape.indexOf(r)))return!!n||(a="\n"===r?{type:"break"}:{type:"text",value:r},e("\\"+r)(a))}$h.locator=jh;var Wh=function(e,t){return e.indexOf("<",t)};var Yh=nf;nf.locator=Wh,nf.notInLink=!0;var Qh="<",Xh=">",Zh="@",Jh="/",ef="mailto:",tf=ef.length;function nf(e,t,n){var r,a,i,o,l,s,c,u,d,p,m;if(t.charAt(0)===Qh){for(this,r="",a=t.length,i=0,o="",s=!1,c="",i++,r=Qh;i<a&&(l=t.charAt(i),!(ie(l)||l===Xh||l===Zh||":"===l&&t.charAt(i+1)===Jh));)o+=l,i++;if(o){if(c+=o,o="",c+=l=t.charAt(i),i++,l===Zh)s=!0;else{if(":"!==l||t.charAt(i+1)!==Jh)return;c+=Jh,i++}for(;i<a&&(l=t.charAt(i),!ie(l)&&l!==Xh);)o+=l,i++;if(l=t.charAt(i),o&&l===Xh)return!!n||(d=c+=o,r+=c+l,(u=e.now()).column++,u.offset++,s&&(c.slice(0,tf).toLowerCase()===ef?(d=d.substr(tf),u.column+=tf,u.offset+=tf):c=ef+c),p=this.inlineTokenizers,this.inlineTokenizers={text:p.text},m=this.enterLink(),d=this.tokenizeInline(d,u),this.inlineTokenizers=p,m(),e(r)({type:"link",title:null,url:xp(c,{nonTerminated:!1}),children:d}))}}}var rf=function(e,t){var n,r=af.length,a=-1,i=-1;if(!this.options.gfm)return-1;for(;++a<r;)-1!==(n=e.indexOf(af[a],t))&&(n<i||-1===i)&&(i=n);return i},af=["https://","http://","mailto:"];var of=ff;ff.locator=rf,ff.notInLink=!0;var lf="[",sf="]",cf="(",uf=")",df="<",pf="@",mf="mailto:",gf=["http://","https://",mf],hf=gf.length;function ff(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g;if(this.options.gfm){for(r="",o=-1,u=hf;++o<u;)if(s=gf[o],(c=t.slice(0,s.length)).toLowerCase()===s){r=c;break}if(r){for(o=r.length,u=t.length,d="",p=0;o<u&&(i=t.charAt(o),!ie(i)&&i!==df)&&("."!==i&&","!==i&&":"!==i&&";"!==i&&'"'!==i&&"'"!==i&&")"!==i&&"]"!==i||(m=t.charAt(o+1))&&!ie(m))&&(i!==cf&&i!==lf||p++,i!==uf&&i!==sf||!(--p<0));)d+=i,o++;if(d){if(a=r+=d,s===mf){if(-1===(l=d.indexOf(pf))||l===u-1)return;a=a.substr(mf.length)}return!!n||(g=this.enterLink(),a=this.tokenizeInline(a,e.now()),g(),e(r)({type:"link",title:null,url:xp(r,{nonTerminated:!1}),children:a}))}}}}var _f=zg.tag,Ef=vf;vf.locator=Wh;var Tf=/^<a /i,bf=/^<\/a>/i;function vf(e,t,n){var r,a,i=t.length;if(!("<"!==t.charAt(0)||i<3)&&(r=t.charAt(1),(Td(r)||"?"===r||"!"===r||"/"===r)&&(a=t.match(_f))))return!!n||(a=a[0],!this.inLink&&Tf.test(a)?this.inLink=!0:this.inLink&&bf.test(a)&&(this.inLink=!1),e(a)({type:"html",value:a}))}var Af=function(e,t){var n=e.indexOf("[",t),r=e.indexOf("![",t);if(-1===r)return n;return n<r?n:r};var Sf=Lf;Lf.locator=Af;var yf={}.hasOwnProperty,Nf="\\",Cf="[",Of="]",Mf="(",xf=")",wf="<",Rf=">",Df="`",If={'"':'"',"'":"'"},kf={};function Lf(e,t,n){var r,a,i,o,l,s,c,u,d,p,m,g,h,f,_,E,T,b,v,A="",S=0,y=t.charAt(0),N=this.options.pedantic,C=this.options.commonmark,O=this.options.gfm;if("!"===y&&(d=!0,A=y,y=t.charAt(++S)),y===Cf&&(d||!this.inLink)){for(A+=y,_="",S++,g=t.length,f=0,(T=e.now()).column+=S,T.offset+=S;S<g;){if(s=y=t.charAt(S),y===Df){for(a=1;t.charAt(S+1)===Df;)s+=y,S++,a++;i?a>=i&&(i=0):i=a}else if(y===Nf)S++,s+=t.charAt(S);else if(i&&!O||y!==Cf){if((!i||O)&&y===Of){if(!f){if(!N)for(;S<g&&(y=t.charAt(S+1),ie(y));)s+=y,S++;if(t.charAt(S+1)!==Mf)return;s+=Mf,r=!0,S++;break}f--}}else f++;_+=s,s="",S++}if(r){for(p=_,A+=_+s,S++;S<g&&(y=t.charAt(S),ie(y));)A+=y,S++;if(y=t.charAt(S),u=C?kf:If,_="",o=A,y===wf){for(S++,o+=wf;S<g&&(y=t.charAt(S))!==Rf;){if(C&&"\n"===y)return;_+=y,S++}if(t.charAt(S)!==Rf)return;A+=wf+_+Rf,E=_,S++}else{for(y=null,s="";S<g&&(y=t.charAt(S),!s||!yf.call(u,y));){if(ie(y)){if(!N)break;s+=y}else{if(y===Mf)f++;else if(y===xf){if(0===f)break;f--}_+=s,s="",y===Nf&&(_+=Nf,y=t.charAt(++S)),_+=y}S++}E=_,S=(A+=_).length}for(_="";S<g&&(y=t.charAt(S),ie(y));)_+=y,S++;if(y=t.charAt(S),A+=_,_&&yf.call(u,y))if(S++,A+=y,_="",m=u[y],l=A,C){for(;S<g&&(y=t.charAt(S))!==m;)y===Nf&&(_+=Nf,y=t.charAt(++S)),S++,_+=y;if((y=t.charAt(S))!==m)return;for(h=_,A+=_+y,S++;S<g&&(y=t.charAt(S),ie(y));)A+=y,S++}else for(s="";S<g;){if((y=t.charAt(S))===m)c&&(_+=m+s,s=""),c=!0;else if(c){if(y===xf){A+=_+m+s,h=_;break}ie(y)?s+=y:(_+=m+s+y,s="",c=!1)}else _+=y;S++}if(t.charAt(S)===xf)return!!n||(A+=xf,E=this.decode.raw(this.unescape(E),e(o).test().end,{nonTerminated:!1}),h&&(l=e(l).test().end,h=this.decode.raw(this.unescape(h),l)),v={type:d?"image":"link",title:h||null,url:E},d?v.alt=this.decode.raw(this.unescape(p),T)||null:(b=this.enterLink(),v.children=this.tokenizeInline(p,T),b()),e(A)(v))}}}kf['"']='"',kf["'"]="'",kf[Mf]=xf;var Pf=$f;$f.locator=Af;var Bf="link",Ff="image",Uf="footnote",Hf="shortcut",Gf="collapsed",qf="full",zf="^",Kf="\\",jf="[",Vf="]";function $f(e,t,n){var r,a,i,o,l,s,c,u,d=t.charAt(0),p=0,m=t.length,g="",h="",f=Bf,_=Hf;if("!"===d&&(f=Ff,h=d,d=t.charAt(++p)),d===jf){if(p++,h+=d,s="",this.options.footnotes&&t.charAt(p)===zf){if(f===Ff)return;h+=zf,p++,f=Uf}for(u=0;p<m;){if((d=t.charAt(p))===jf)c=!0,u++;else if(d===Vf){if(!u)break;u--}d===Kf&&(s+=Kf,d=t.charAt(++p)),s+=d,p++}if(g=s,r=s,(d=t.charAt(p))===Vf){for(p++,g+=d,s="";p<m&&(d=t.charAt(p),ie(d));)s+=d,p++;if(d=t.charAt(p),f!==Uf&&d===jf){for(a="",s+=d,p++;p<m&&(d=t.charAt(p))!==jf&&d!==Vf;)d===Kf&&(a+=Kf,d=t.charAt(++p)),a+=d,p++;(d=t.charAt(p))===Vf?(_=a?qf:Gf,s+=a+d,p++):a="",g+=s,s=""}else{if(!r)return;a=r}if(_===qf||!c)return g=h+g,f===Bf&&this.inLink?null:!!n||(f===Uf&&-1!==r.indexOf(" ")?e(g)({type:"footnote",children:this.tokenizeInline(r,e.now())}):((i=e.now()).column+=h.length,i.offset+=h.length,o={type:f+"Reference",identifier:Qg(a=_===qf?a:r)},f!==Bf&&f!==Ff||(o.referenceType=_),f===Bf?(l=this.enterLink(),o.children=this.tokenizeInline(r,i),l()):f===Ff&&(o.alt=this.decode.raw(this.unescape(r),i)||null),e(g)(o)))}}}var Wf=function(e,t){var n=e.indexOf("**",t),r=e.indexOf("__",t);if(-1===r)return n;if(-1===n)return r;return r<n?r:n};var Yf=Zf;Zf.locator=Wf;var Qf="*",Xf="_";function Zf(e,t,n){var r,a,i,o,l,s,c,u=0,d=t.charAt(u);if(!(d!==Qf&&d!==Xf||t.charAt(++u)!==d||(a=this.options.pedantic,l=(i=d)+i,s=t.length,u++,o="",d="",a&&ie(t.charAt(u)))))for(;u<s;){if(c=d,!((d=t.charAt(u))!==i||t.charAt(u+1)!==i||a&&ie(c))&&(d=t.charAt(u+2))!==i){if(!S(o))return;return!!n||((r=e.now()).column+=2,r.offset+=2,e(l+o+l)({type:"strong",children:this.tokenizeInline(o,r)}))}a||"\\"!==d||(o+=d,d=t.charAt(++u)),o+=d,u++}}var Jf=function(e){return t_.test("number"==typeof e?e_(e):e.charAt(0))},e_=String.fromCharCode,t_=/\w/;var n_=function(e,t){var n=e.indexOf("*",t),r=e.indexOf("_",t);if(-1===r)return n;if(-1===n)return r;return r<n?r:n};var r_=o_;o_.locator=n_;var a_="*",i_="_";function o_(e,t,n){var r,a,i,o,l,s,c,u=0,d=t.charAt(u);if(!(d!==a_&&d!==i_||(a=this.options.pedantic,l=d,i=d,s=t.length,u++,o="",d="",a&&ie(t.charAt(u)))))for(;u<s;){if(c=d,!((d=t.charAt(u))!==i||a&&ie(c))){if((d=t.charAt(++u))!==i){if(!S(o)||c===i)return;if(!a&&i===i_&&Jf(d)){o+=i;continue}return!!n||((r=e.now()).column++,r.offset++,e(l+o+i)({type:"emphasis",children:this.tokenizeInline(o,r)}))}o+=i}a||"\\"!==d||(o+=d,d=t.charAt(++u)),o+=d,u++}}var l_=function(e,t){return e.indexOf("~~",t)};var s_=d_;d_.locator=l_;var c_="~",u_="~~";function d_(e,t,n){var r,a,i,o="",l="",s="",c="";if(this.options.gfm&&t.charAt(0)===c_&&t.charAt(1)===c_&&!ie(t.charAt(2)))for(r=1,a=t.length,(i=e.now()).column+=2,i.offset+=2;++r<a;){if(!((o=t.charAt(r))!==c_||l!==c_||s&&ie(s)))return!!n||e(u_+c+u_)({type:"delete",children:this.tokenizeInline(c,i)});c+=l,s=l,l=o}}var p_=function(e,t){return e.indexOf("`",t)};var m_=h_;h_.locator=p_;var g_="`";function h_(e,t,n){for(var r,a,i,o,l,s,c,u,d=t.length,p=0,m="",g="";p<d&&t.charAt(p)===g_;)m+=g_,p++;if(m){for(l=m,o=p,m="",u=t.charAt(p),i=0;p<d;){if(s=u,u=t.charAt(p+1),s===g_?(i++,g+=s):(i=0,m+=s),i&&u!==g_){if(i===o){l+=m+g,c=!0;break}m+=g,g=""}p++}if(!c){if(o%2!=0)return;m=""}if(n)return!0;for(r="",a="",d=m.length,p=-1;++p<d;)s=m.charAt(p),ie(s)?a+=s:(a&&(r&&(r+=a),a=""),r+=s);return e(l)({type:"inlineCode",value:r})}}var f_=function(e,t){var n=e.indexOf("\n",t);for(;n>t&&" "===e.charAt(n-1);)n--;return n};var __=T_;T_.locator=f_;var E_=2;function T_(e,t,n){for(var r,a=t.length,i=-1,o="";++i<a;){if("\n"===(r=t.charAt(i))){if(i<E_)return;return!!n||e(o+=r)({type:"break"})}if(" "!==r)return;o+=r}}var b_=function(e,t,n){var r,a,i,o,l,s,c,u,d,p;if(n)return!0;r=this.inlineMethods,o=r.length,a=this.inlineTokenizers,i=-1,d=t.length;for(;++i<o;)"text"!==(u=r[i])&&a[u]&&((c=a[u].locator)||e.file.fail("Missing locator: `"+u+"`"),-1!==(s=c.call(this,t,1))&&s<d&&(d=s));l=t.slice(0,d),p=e.now(),this.decode(l,p,function(t,n,r){e(r||t)({type:"text",value:t})})};var v_=A_;function A_(t,n){this.file=n,this.offset={},this.options=e(this.options),this.setOptions({}),this.inList=!1,this.inBlock=!1,this.inLink=!1,this.atStart=!0,this.toOffset=hl(n).toOffset,this.unescape=Ap(this,"escape"),this.decode=um(this)}var S_=A_.prototype;function y_(e){var t,n=[];for(t in e)n.push(t);return n}S_.setOptions=Am,S_.parse=Cm,S_.options=vm,S_.exitStart=vp("atStart",!0),S_.enterList=vp("inList",!1),S_.enterLink=vp("inLink",!1),S_.enterBlock=vp("inBlock",!1),S_.interruptParagraph=[["thematicBreak"],["atxHeading"],["fencedCode"],["blockquote"],["html"],["setextHeading",{commonmark:!1}],["definition",{commonmark:!1}],["footnote",{commonmark:!1}]],S_.interruptList=[["atxHeading",{pedantic:!1}],["fencedCode",{pedantic:!1}],["thematicBreak",{pedantic:!1}],["definition",{commonmark:!1}],["footnote",{commonmark:!1}]],S_.interruptBlockquote=[["indentedCode",{commonmark:!0}],["fencedCode",{commonmark:!0}],["atxHeading",{commonmark:!0}],["setextHeading",{commonmark:!0}],["thematicBreak",{commonmark:!0}],["html",{commonmark:!0}],["list",{commonmark:!0}],["definition",{commonmark:!1}],["footnote",{commonmark:!1}]],S_.blockTokenizers={newline:xm,indentedCode:wm,fencedCode:Lm,blockquote:Km,atxHeading:Ym,thematicBreak:tg,list:hg,setextHeading:Lg,html:jg,footnote:Xg,definition:sh,table:Nh,paragraph:Hh},S_.inlineTokenizers={escape:Vh,autoLink:Yh,url:of,html:Ef,link:Sf,reference:Pf,strong:Yf,emphasis:r_,deletion:s_,code:m_,break:__,text:b_},S_.blockMethods=y_(S_.blockTokenizers),S_.inlineMethods=y_(S_.inlineTokenizers),S_.tokenizeBlock=dm("block"),S_.tokenizeInline=dm("inline"),S_.tokenizeFactory=dm;var N_=C_;function C_(t){var n=bp(v_);n.prototype.options=e(n.prototype.options,this.data("settings"),t),this.Parser=n}C_.Parser=v_;var O_=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(r=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();function M_(e){return e.replace(/[-[]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var x_="\n",w_="|",R_=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.keys(e).map(M_).join("|");if(!t)throw new Error("remark-custom-blocks needs to be passed a configuration object as option");var n=new RegExp("\\[\\[("+t+")(?: *\\| *(.*))?\\]\\]\n");var r=this.Parser,a=r.prototype.blockTokenizers,i=r.prototype.blockMethods;a.customBlocks=function(t,r,a){var i=t.now(),o=n.exec(r);if(o&&0===o.index){var l=O_(o,3),s=l[0],c=l[1],u=l[2];if(a)return!0;for(var d=[],p=[],m=0;-1!==(m=r.indexOf(x_));){var g=r.indexOf(x_,m+1),h=-1!==g?r.slice(m+1,g):r.slice(m+1);if(h[0]!==w_)break;var f=h.slice(h.startsWith(w_+" ")?2:1);d.push(h),p.push(f),r=r.slice(m+1)}var _=p.join(x_),E=s+d.join(x_),T=e[c],b=T.title&&["optional","required"].includes(T.title);if((!T.title||"required"!==T.title||u)&&(b||!u)){var v=t(E),A=this.enterBlock(),S={type:c+"CustomBlockBody",data:{hName:"div",hProperties:{className:"custom-block-body"}},children:this.tokenizeBlock(_,i)};A();var y=[S];if(b&&u){var N={type:c+"CustomBlockHeading",data:{hName:"div",hProperties:{className:"custom-block-heading"}},children:this.tokenizeInline(u,i)};y.unshift(N)}var C=yl.parse(T.classes||"");return v({type:c+"CustomBlock",children:y,data:{hName:"div",hProperties:{className:["custom-block"].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(C))}}})}}},i.splice(i.indexOf("fencedCode")+1,0,"customBlocks");var o=r.prototype.interruptParagraph,l=r.prototype.interruptList,s=r.prototype.interruptBlockquote;o.splice(o.indexOf("fencedCode")+1,0,["customBlocks"]),l.splice(l.indexOf("fencedCode")+1,0,["customBlocks"]),s.splice(s.indexOf("fencedCode")+1,0,["customBlocks"])},D_=2147483647,I_=36,k_=1,L_=26,P_=38,B_=700,F_=72,U_=128,H_="-",G_=/[^\x20-\x7E]/,q_=/[\x2E\u3002\uFF0E\uFF61]/g,z_={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},K_=I_-k_,j_=Math.floor,V_=String.fromCharCode;function $_(e){throw new RangeError(z_[e])}function W_(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function Y_(e,t,n){var r=0;for(e=n?j_(e/B_):e>>1,e+=j_(e/t);e>K_*L_>>1;r+=I_)e=j_(e/K_);return j_(r+(K_+1)*e/(e+P_))}function Q_(e){return function(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]);var a=function(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}((e=e.replace(q_,".")).split("."),t).join(".");return r+a}(e,function(e){return G_.test(e)?"xn--"+function(e){var t,n,r,a,i,o,l,s,c,u,d,p,m,g,h,f=[];for(p=(e=function(e){for(var t,n,r=[],a=0,i=e.length;a<i;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<i?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}(e)).length,t=U_,n=0,i=F_,o=0;o<p;++o)(d=e[o])<128&&f.push(V_(d));for(r=a=f.length,a&&f.push(H_);r<p;){for(l=D_,o=0;o<p;++o)(d=e[o])>=t&&d<l&&(l=d);for(l-t>j_((D_-n)/(m=r+1))&&$_("overflow"),n+=(l-t)*m,t=l,o=0;o<p;++o)if((d=e[o])<t&&++n>D_&&$_("overflow"),d==t){for(s=n,c=I_;!(s<(u=c<=i?k_:c>=i+L_?L_:c-i));c+=I_)h=s-u,g=I_-u,f.push(V_(W_(u+h%g,0))),s=j_(h/g);f.push(V_(W_(s,0))),i=Y_(n,m,r==a),n=0,++r}++n,++t}return f.join("")}(e):e})}function X_(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var Z_=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function J_(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}}function eE(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var tE=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t};function nE(e,t,n,r){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(t);var o=1e3;r&&"number"==typeof r.maxKeys&&(o=r.maxKeys);var l=e.length;o>0&&l>o&&(l=o);for(var s=0;s<l;++s){var c,u,d,p,m=e[s].replace(i,"%20"),g=m.indexOf(n);g>=0?(c=m.substr(0,g),u=m.substr(g+1)):(c=m,u=""),d=decodeURIComponent(c),p=decodeURIComponent(u),X_(a,d)?Z_(a[d])?a[d].push(p):a[d]=[a[d],p]:a[d]=p}return a}var rE={parse:EE,resolve:AE,resolveObject:SE,format:bE,Url:aE};function aE(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var iE=/^([a-z0-9.+-]+:)/i,oE=/:[0-9]*$/,lE=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,sE=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),cE=["'"].concat(sE),uE=["%","/","?",";","#"].concat(cE),dE=["/","?","#"],pE=255,mE=/^[+a-z0-9A-Z_-]{0,63}$/,gE=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,hE={javascript:!0,"javascript:":!0},fE={javascript:!0,"javascript:":!0},_E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function EE(e,t,n){if(e&&Oo(e)&&e instanceof aE)return e;var r=new aE;return r.parse(e,t,n),r}function TE(e,t,n,r){if(!So(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var a=t.indexOf("?"),i=-1!==a&&a<t.indexOf("#")?"?":"#",o=t.split(i);o[0]=o[0].replace(/\\/g,"/");var l=t=o.join(i);if(l=l.trim(),!r&&1===t.split("#").length){var s=lE.exec(l);if(s)return e.path=l,e.href=l,e.pathname=s[1],s[2]?(e.search=s[2],e.query=n?nE(e.search.substr(1)):e.search.substr(1)):n&&(e.search="",e.query={}),e}var c,u,d,p,m=iE.exec(l);if(m){var g=(m=m[0]).toLowerCase();e.protocol=g,l=l.substr(m.length)}if(r||m||l.match(/^\/\/[^@\/]+@[^@\/]+/)){var h="//"===l.substr(0,2);!h||m&&fE[m]||(l=l.substr(2),e.slashes=!0)}if(!fE[m]&&(h||m&&!_E[m])){var f,_,E=-1;for(c=0;c<dE.length;c++)-1!==(u=l.indexOf(dE[c]))&&(-1===E||u<E)&&(E=u);for(-1!==(_=-1===E?l.lastIndexOf("@"):l.lastIndexOf("@",E))&&(f=l.slice(0,_),l=l.slice(_+1),e.auth=decodeURIComponent(f)),E=-1,c=0;c<uE.length;c++)-1!==(u=l.indexOf(uE[c]))&&(-1===E||u<E)&&(E=u);-1===E&&(E=l.length),e.host=l.slice(0,E),l=l.slice(E),yE(e),e.hostname=e.hostname||"";var T="["===e.hostname[0]&&"]"===e.hostname[e.hostname.length-1];if(!T){var b=e.hostname.split(/\./);for(c=0,d=b.length;c<d;c++){var v=b[c];if(v&&!v.match(mE)){for(var A="",S=0,y=v.length;S<y;S++)v.charCodeAt(S)>127?A+="x":A+=v[S];if(!A.match(mE)){var N=b.slice(0,c),C=b.slice(c+1),O=v.match(gE);O&&(N.push(O[1]),C.unshift(O[2])),C.length&&(l="/"+C.join(".")+l),e.hostname=N.join(".");break}}}}e.hostname.length>pE?e.hostname="":e.hostname=e.hostname.toLowerCase(),T||(e.hostname=Q_(e.hostname)),p=e.port?":"+e.port:"";var M=e.hostname||"";e.host=M+p,e.href+=e.host,T&&(e.hostname=e.hostname.substr(1,e.hostname.length-2),"/"!==l[0]&&(l="/"+l))}if(!hE[g])for(c=0,d=cE.length;c<d;c++){var x=cE[c];if(-1!==l.indexOf(x)){var w=encodeURIComponent(x);w===x&&(w=escape(x)),l=l.split(x).join(w)}}var R=l.indexOf("#");-1!==R&&(e.hash=l.substr(R),l=l.slice(0,R));var D=l.indexOf("?");if(-1!==D?(e.search=l.substr(D),e.query=l.substr(D+1),n&&(e.query=nE(e.query)),l=l.slice(0,D)):n&&(e.search="",e.query={}),l&&(e.pathname=l),_E[g]&&e.hostname&&!e.pathname&&(e.pathname="/"),e.pathname||e.search){p=e.pathname||"";var I=e.search||"";e.path=p+I}return e.href=vE(e),e}function bE(e){return So(e)&&(e=TE({},e)),vE(e)}function vE(e){var t=e.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var n,r,a,i,o=e.protocol||"",l=e.pathname||"",s=e.hash||"",c=!1,u="";e.host?c=t+e.host:e.hostname&&(c=t+(-1===e.hostname.indexOf(":")?e.hostname:"["+this.hostname+"]"),e.port&&(c+=":"+e.port)),e.query&&Oo(e.query)&&Object.keys(e.query).length&&(n=e.query,r=r||"&",a=a||"=",null===n&&(n=void 0),u="object"==typeof n?eE(tE(n),function(e){var t=encodeURIComponent(J_(e))+a;return Z_(n[e])?eE(n[e],function(e){return t+encodeURIComponent(J_(e))}).join(r):t+encodeURIComponent(J_(n[e]))}).join(r):i?encodeURIComponent(J_(i))+a+encodeURIComponent(J_(n)):"");var d=e.search||u&&"?"+u||"";return o&&":"!==o.substr(-1)&&(o+=":"),e.slashes||(!o||_E[o])&&!1!==c?(c="//"+(c||""),l&&"/"!==l.charAt(0)&&(l="/"+l)):c||(c=""),s&&"#"!==s.charAt(0)&&(s="#"+s),d&&"?"!==d.charAt(0)&&(d="?"+d),o+c+(l=l.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(d=d.replace("#","%23"))+s}function AE(e,t){return EE(e,!1,!0).resolve(t)}function SE(e,t){return e?EE(e,!1,!0).resolveObject(t):t}function yE(e){var t=e.host,n=oE.exec(t);n&&(":"!==(n=n[0])&&(e.port=n.substr(1)),t=t.substr(0,t.length-n.length)),t&&(e.hostname=t)}aE.prototype.parse=function(e,t,n){return TE(this,e,t,n)},aE.prototype.format=function(){return vE(this)},aE.prototype.resolve=function(e){return this.resolveObject(EE(e,!1,!0)).format()},aE.prototype.resolveObject=function(e){if(So(e)){var t=new aE;t.parse(e,!1,!0),e=t}for(var n,r=new aE,a=Object.keys(this),i=0;i<a.length;i++){var o=a[i];r[o]=this[o]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),s=0;s<l.length;s++){var c=l[s];"protocol"!==c&&(r[c]=e[c])}return _E[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!_E[e.protocol]){for(var u=Object.keys(e),d=0;d<u.length;d++){var p=u[d];r[p]=e[p]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||fE[e.protocol])r.pathname=e.pathname;else{for(n=(e.pathname||"").split("/");n.length&&!(e.host=n.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==n[0]&&n.unshift(""),n.length<2&&n.unshift(""),r.pathname=n.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var m=r.pathname||"",g=r.search||"";r.path=m+g}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var h,f=r.pathname&&"/"===r.pathname.charAt(0),_=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=_||f||r.host&&e.pathname,T=E,b=r.pathname&&r.pathname.split("/")||[],v=r.protocol&&!_E[r.protocol];if(n=e.pathname&&e.pathname.split("/")||[],v&&(r.hostname="",r.port=null,r.host&&(""===b[0]?b[0]=r.host:b.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===n[0]?n[0]=e.host:n.unshift(e.host)),e.host=null),E=E&&(""===n[0]||""===b[0])),_)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,b=n;else if(n.length)b||(b=[]),b.pop(),b=b.concat(n),r.search=e.search,r.query=e.query;else if(!vo(e.search))return v&&(r.hostname=r.host=b.shift(),(h=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=h.shift(),r.host=r.hostname=h.shift())),r.search=e.search,r.query=e.query,bo(r.pathname)&&bo(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!b.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=b.slice(-1)[0],S=(r.host||e.host||b.length>1)&&("."===A||".."===A)||""===A,y=0,N=b.length;N>=0;N--)"."===(A=b[N])?b.splice(N,1):".."===A?(b.splice(N,1),y++):y&&(b.splice(N,1),y--);if(!E&&!T)for(;y--;y)b.unshift("..");!E||""===b[0]||b[0]&&"/"===b[0].charAt(0)||b.unshift(""),S&&"/"!==b.join("/").substr(-1)&&b.push("");var C=""===b[0]||b[0]&&"/"===b[0].charAt(0);return v&&(r.hostname=r.host=C?"":b.length?b.shift():"",(h=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=h.shift(),r.host=r.hostname=h.shift())),(E=E||r.host&&b.length)&&!C&&b.unshift(""),b.length?r.pathname=b.join("/"):(r.pathname=null,r.path=null),bo(r.pathname)&&bo(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},aE.prototype.parseHost=function(){return yE(this)};var NE=Object.freeze({parse:EE,resolve:AE,resolveObject:SE,format:bE,default:rE,Url:aE}),CE=NE&&rE||NE,OE=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var o,l=e[Symbol.iterator]();!(r=(o=l.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&l.return&&l.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),ME="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},xE=CE.format,wE=CE.parse,RE=CE.URLSearchParams,DE=function(e){if("object"!==(void 0===e?"undefined":ME(e))||!Object.keys(e).length)throw new Error("remark-iframes needs to be passed a configuration object as option");var t=this.Parser,n=t.prototype.blockTokenizers,r=t.prototype.blockMethods;n.iframes=function(t,n,r){if(n.startsWith("!(http")){for(var a="",i="",o=["!","(",")"],l=0;l<n.length&&")"!==n[l-1];l++)a+=n[l],o.includes(n[l])||(i+=n[l]);if(r)return!0;var s=function(t){var n=wE(t).hostname;return e[n]}(i);if(!s||!0===s.disabled||s.match&&s.match instanceof RegExp&&!s.match.test(i))return t(a)({type:"paragraph",children:[{type:"text",value:a}]});var c=function(e,t){var n=t,r=wE(n);if(e.droppedQueryParameters&&r.search){var a=new RE(r.search);e.droppedQueryParameters.forEach(function(e){return a.delete(e)}),r.search=a.toString(),n=xE(r)}return e.replace&&e.replace.length&&(e.replace.forEach(function(e){var t=OE(e,2),a=t[0],i=t[1];a&&i&&(n=n.replace(a,i)),r=wE(n)}),n=xE(r)),e.removeFileName&&(r.pathname=r.pathname.substring(0,r.pathname.lastIndexOf("/")),n=xE(r)),e.removeAfter&&n.includes(e.removeAfter)&&(n=n.substring(0,n.indexOf(e.removeAfter))),e.append&&(n+=e.append),n}(s,i),u=function(e,t){var n="",r=e.thumbnail;return r&&r.format&&(n=r.format,Object.keys(r).filter(function(e){return"format"!==e}).forEach(function(e){var a=new RegExp("{"+e+"}","g"),i=new RegExp(r[e]).exec(t);i&&(n=n.replace(a,i[1]))})),n}(s,c);t(a)({type:"iframe",src:i,data:{hName:s.tag,hProperties:{src:c,width:s.width,height:s.height,allowfullscreen:!0,frameborder:"0"},thumbnail:u}})}},r.splice(r.indexOf("blockquote")+1,0,"iframes");var a=this.Compiler;if(a){var i=a.prototype.visitors;if(!i)return;i.iframe=function(e){return"!("+e.src+")"}}};return function(e,t){au().use(N_).use(Ta).use(Oa).use(Sa).use(ma).use(ye).use(de).use(pa).use(R_,{information:{classes:"special-box information",title:"optional"},comment:{classes:"special-box comment",title:"optional"},attention:{classes:"special-box attention",title:"optional"},question:{classes:"special-box question",title:"optional"},good:{classes:"special-box good"},secret:{classes:"special-box secret",title:"optional"},bad:{classes:"special-box bad"}}).use(da).use(DE,{"www.youtube.com":{tag:"IFRAME",width:560,height:315,disabled:!1,replace:[["watch?v=","embed/"],["http://","https://"]],thumbnail:{format:"http://img.youtube.com/vi/{id}/0.jpg",id:".+/(.+)$"},removeAfter:"&"}}).use(ae,{allowDangerousHTML:!0}).use($u).use(ac).use(Ep).process(e,t)}}();
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1kLm1pbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vbm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9vYmplY3QtYXNzaWduL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LWJ1aWxkZXIvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1pcy9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXZpc2l0L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtcG9zaXRpb24vaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdW5pc3QtdXRpbC1nZW5lcmF0ZWQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC1kZWZpbml0aW9ucy9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy90cmltL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvYWxsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvb25lLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGhlbWF0aWMtYnJlYWsuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi93cmFwLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGlzdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2Zvb3Rlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2Jsb2NrcXVvdGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9icmVhay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZXBlYXQtc3RyaW5nL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2RldGFiL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvY29kZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2RlbGV0ZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2VtcGhhc2lzLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZm9vdG5vdGUtcmVmZXJlbmNlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvZm9vdG5vdGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9oZWFkaW5nLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaHRtbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tZHVybC9lbmNvZGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9mYWlsc2FmZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb2xsYXBzZS13aGl0ZS1zcGFjZS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy90cmltLWxpbmVzL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9pbWFnZS1yZWZlcmVuY2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9pbWFnZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL2lubGluZS1jb2RlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGluay1yZWZlcmVuY2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9oYW5kbGVycy9saW5rLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvbGlzdC1pdGVtLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvcGFyYWdyYXBoLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvcm9vdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3N0cm9uZy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvbGliL2hhbmRsZXJzL3RhYmxlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1yZWh5cGUvbm9kZV9tb2R1bGVzL21kYXN0LXV0aWwtdG8taGFzdC9saWIvaGFuZGxlcnMvdGV4dC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL25vZGVfbW9kdWxlcy9tZGFzdC11dGlsLXRvLWhhc3QvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXJlaHlwZS9ub2RlX21vZHVsZXMvbWRhc3QtdXRpbC10by1oYXN0L2xpYi9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcmVoeXBlL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1rYmQvZGlzdC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstbWF0aC9pbmxpbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdHJpbS10cmFpbGluZy1saW5lcy9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstbWF0aC9ibG9jay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstbWF0aC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2hpZ2hsaWdodC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9sb3dsaWdodC9saWIvY29yZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy8xYy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hYm5mLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FjY2Vzc2xvZy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY3Rpb25zY3JpcHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYWRhLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwYWNoZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hcHBsZXNjcmlwdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJkdWluby5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hcm1hc20uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveG1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FzY2lpZG9jLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FzcGVjdGouanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXV0b2hvdGtleS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hdXRvaXQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXZyYXNtLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2F3ay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9heGFwdGEuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9iYXNpYy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ibmYuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYnJhaW5mdWNrLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NhbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jYXBucHJvdG8uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2V5bG9uLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NsZWFuLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Nsb2p1cmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2xvanVyZS1yZXBsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NtYWtlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NvZmZlZXNjcmlwdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3EuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY29zLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NybXNoLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NyeXN0YWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3NwLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Nzcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21hcmtkb3duLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RhcnQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGVscGhpLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RpZmYuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGphbmdvLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Rucy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kb2NrZXJmaWxlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Rvcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kc2NvbmZpZy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kdHMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZHVzdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lYm5mLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VsaXhpci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lbG0uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVieS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lcmIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nLXJlcGwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2V4Y2VsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2ZpeC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9mbGl4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2ZvcnRyYW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZnNoYXJwLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dhbXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2F1c3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2NvZGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2hlcmtpbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nbHNsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dvLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dvbG8uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ3JhZGxlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dyb292eS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYW1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hhbmRsZWJhcnMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaGFza2VsbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYXhlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hzcC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9odG1sYmFycy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9odHRwLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2h5LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2luZm9ybTcuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaW5pLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2lycGY5MC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYXZhLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2phdmFzY3JpcHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamJvc3MtY2xpLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2pzb24uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanVsaWEuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanVsaWEtcmVwbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9rb3RsaW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGFzc28uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGRpZi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sZWFmLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xlc3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGlzcC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9saXZlY29kZXNlcnZlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9saXZlc2NyaXB0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xsdm0uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHNsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2x1YS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYWtlZmlsZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYXRoZW1hdGljYS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYXRsYWIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWF4aW1hLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21lbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tZXJjdXJ5LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21pcHNhc20uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWl6YXIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGVybC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb2pvbGljaW91cy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb25rZXkuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbW9vbnNjcmlwdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uMXFsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25naW54LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25pbXJvZC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uaXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbnNpcy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vYmplY3RpdmVjLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL29jYW1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL29wZW5zY2FkLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL294eWdlbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGFyc2VyMy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wZi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9waHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcG9ueS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wb3dlcnNoZWxsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Byb2Nlc3NpbmcuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvZmlsZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9sb2cuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvdG9idWYuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHVwcGV0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3B1cmViYXNpYy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9weXRob24uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9xbWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yaWIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcm9ib2NvbmYuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcm91dGVyb3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnNsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1bGVzbGFuZ3VhZ2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVzdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2FsYS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2hlbWUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2NpbGFiLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Njc3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2hlbGwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21hbGkuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21hbGx0YWxrLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NtbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zcWYuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N0YW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3RhdGEuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3RlcDIxLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N0eWx1cy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zdWJ1bml0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N3aWZ0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RhZ2dlcnNjcmlwdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy95YW1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RhcC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90Y2wuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RocmlmdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90cC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90d2lnLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3R5cGVzY3JpcHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmFsYS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92Ym5ldC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YnNjcmlwdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YnNjcmlwdC1odG1sLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Zlcmlsb2cuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmhkbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92aW0uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveDg2YXNtLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3hsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3hxdWVyeS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy96ZXBoaXIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvbG93bGlnaHQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLWhpZ2hsaWdodC5qcy9kaXN0L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1zcGVjaWFsLWJveC9hcHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLW11bHRpcGxlLWNob2ljZS9hcHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvbWQtYXR0ci1wYXJzZXIvZGlzdC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstbGluZS1pbnB1dC9hcHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXNlbGVjdC9hcHAuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXRleHQtaW5wdXQvYXBwLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvY29tbW9uL3VuaWNvZGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi90b2tlbml6ZXIvcHJlcHJvY2Vzc29yLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvdG9rZW5pemVyL25hbWVkX2VudGl0eV9kYXRhLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvdG9rZW5pemVyL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvY29tbW9uL2h0bWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9wYXJzZXIvb3Blbl9lbGVtZW50X3N0YWNrLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvcGFyc2VyL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvdXRpbHMvbWl4aW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcm9sbHVwLXBsdWdpbi1ub2RlLWdsb2JhbHMvc3JjL2dsb2JhbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9idWZmZXItZXM2L2Jhc2U2NC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9idWZmZXItZXM2L2llZWU3NTQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvYnVmZmVyLWVzNi9pc0FycmF5LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2J1ZmZlci1lczYvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcHJvY2Vzcy1lczYvYnJvd3Nlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yb2xsdXAtcGx1Z2luLW5vZGUtYnVpbHRpbnMvc3JjL2VzNi9pbmhlcml0cy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yb2xsdXAtcGx1Z2luLW5vZGUtYnVpbHRpbnMvc3JjL2VzNi91dGlsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvZXh0ZW5zaW9ucy9wb3NpdGlvbl90cmFja2luZy9wcmVwcm9jZXNzb3JfbWl4aW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9leHRlbnNpb25zL2xvY2F0aW9uX2luZm8vdG9rZW5pemVyX21peGluLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC1yYXcvbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvZXh0ZW5zaW9ucy9sb2NhdGlvbl9pbmZvL29wZW5fZWxlbWVudF9zdGFja19taXhpbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcmF3L25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL2V4dGVuc2lvbnMvbG9jYXRpb25faW5mby9wYXJzZXJfbWl4aW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9jb21tb24vZG9jdHlwZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcmF3L25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL2NvbW1vbi9mb3JlaWduX2NvbnRlbnQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9wYXJzZXIvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi91dGlscy9tZXJnZV9vcHRpb25zLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NhbWVsY2FzZS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy92ZmlsZS1sb2NhdGlvbi9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3BhY2Utc2VwYXJhdGVkLXRva2Vucy9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3RzY3JpcHQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXJhdy9ub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20tcGFyc2U1L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2tlYmFiLWNhc2UvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvb2JqZWN0LWtleXMvaXNBcmd1bWVudHMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvb2JqZWN0LWtleXMvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm9yZWFjaC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9kZWZpbmUtcHJvcGVydGllcy9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pcy1uYW4vaW1wbGVtZW50YXRpb24uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtbmFuL3BvbHlmaWxsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2lzLW5hbi9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9pcy1uYW4vc2hpbS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXRvLWh5cGVyc2NyaXB0L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3p3aXRjaC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy94LWlzLWFycmF5L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21hcHovaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLXBhcnNlNS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcmF3L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlaHlwZS1yYXcvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMva2F0ZXgvZGlzdC9rYXRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9leHRlbmQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvYmFpbC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbi9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy92ZmlsZS1tZXNzYWdlL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JvbGx1cC1wbHVnaW4tbm9kZS1idWlsdGlucy9zcmMvZXM2L3BhdGguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVwbGFjZS1leHQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtYnVmZmVyL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3ZmaWxlL2NvcmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdmZpbGUvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvdHJvdWdoL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3gtaXMtc3RyaW5nL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3gtaXMtZnVuY3Rpb24vaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VuaWZpZWQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvZnVuY3Rpb24tYmluZC9pbXBsZW1lbnRhdGlvbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhcy9zcmMvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLWZyb20tcGFyc2U1L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvY29tbW9uL3VuaWNvZGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi90b2tlbml6ZXIvcHJlcHJvY2Vzc29yLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvbG9jYXRpb25faW5mby90b2tlbml6ZXJfbWl4aW4uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi90b2tlbml6ZXIvbmFtZWRfZW50aXR5X3RyaWUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi90b2tlbml6ZXIvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9jb21tb24vaHRtbC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL3BhcnNlci9vcGVuX2VsZW1lbnRfc3RhY2suanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9wYXJzZXIvZm9ybWF0dGluZ19lbGVtZW50X2xpc3QuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2U1L2xpYi9sb2NhdGlvbl9pbmZvL3BhcnNlcl9taXhpbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL2NvbW1vbi9kb2N0eXBlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNlNS9saWIvY29tbW9uL2ZvcmVpZ25fY29udGVudC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL3BhcnNlci9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZTUvbGliL2NvbW1vbi9tZXJnZV9vcHRpb25zLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlaHlwZS1wYXJzZS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWh5cGUta2F0ZXgvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLWlzLWVsZW1lbnQvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXdoaXRlc3BhY2UvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL3V0aWwvc2libGluZ3MuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL3V0aWwvZmlyc3QuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL3V0aWwvcGxhY2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL3V0aWwvd2hpdGUtc3BhY2UtbGVmdC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvb21pc3Npb24vb21pc3Npb24uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL2Nsb3NpbmcuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL29wZW5pbmcuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL29taXNzaW9uL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9hbGwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtaGV4YWRlY2ltYWwvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtYWxwaGFiZXRpY2FsL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2lzLWRlY2ltYWwvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaXMtYWxwaGFudW1lcmljYWwvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvc3RyaW5naWZ5LWVudGl0aWVzL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi90ZXh0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Njb3VudC9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvZWxlbWVudC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvZG9jdHlwZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvY29tbWVudC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtdG8taHRtbC9saWIvcmF3LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2xpYi9vbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXRvLWh0bWwvbGliL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3QtdXRpbC10by1odG1sL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlaHlwZS1zdHJpbmdpZnkvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy91bmhlcml0L2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N0YXRlLXRvZ2dsZS9pbmRleC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3VuZXNjYXBlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3BhcnNlLWVudGl0aWVzL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvZGVjb2RlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemVyLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21hcmtkb3duLWVzY2FwZXMvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9kZWZhdWx0cy5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3NldC1vcHRpb25zLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3VuaXN0LXV0aWwtcmVtb3ZlLXBvc2l0aW9uL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvcGFyc2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9uZXdsaW5lLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvY29kZS1pbmRlbnRlZC5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3Rva2VuaXplL2NvZGUtZmVuY2VkLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdXRpbC9pbnRlcnJ1cHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9ibG9ja3F1b3RlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvaGVhZGluZy1hdHguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS90aGVtYXRpYy1icmVhay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3V0aWwvZ2V0LWluZGVudGF0aW9uLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdXRpbC9yZW1vdmUtaW5kZW50YXRpb24uanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9saXN0LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvaGVhZGluZy1zZXRleHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi91dGlsL2h0bWwuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9odG1sLWJsb2NrLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdXRpbC9ub3JtYWxpemUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9mb290bm90ZS1kZWZpbml0aW9uLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvZGVmaW5pdGlvbi5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3Rva2VuaXplL3RhYmxlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvcGFyYWdyYXBoLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvbG9jYXRlL2VzY2FwZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3Rva2VuaXplL2VzY2FwZS5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL2xvY2F0ZS90YWcuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9hdXRvLWxpbmsuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9sb2NhdGUvdXJsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvdXJsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvaHRtbC1pbmxpbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9sb2NhdGUvbGluay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3Rva2VuaXplL2xpbmsuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9yZWZlcmVuY2UuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9sb2NhdGUvc3Ryb25nLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvc3Ryb25nLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2lzLXdvcmQtY2hhcmFjdGVyL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvbG9jYXRlL2VtcGhhc2lzLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvZW1waGFzaXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9sb2NhdGUvZGVsZXRlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvZGVsZXRlLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvbG9jYXRlL2NvZGUtaW5saW5lLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1wYXJzZS9saWIvdG9rZW5pemUvY29kZS1pbmxpbmUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9sb2NhdGUvYnJlYWsuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi90b2tlbml6ZS9icmVhay5qcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZW1hcmstcGFyc2UvbGliL3Rva2VuaXplL3RleHQuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2xpYi9wYXJzZXIuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcmVtYXJrLXBhcnNlL2luZGV4LmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1jdXN0b20tYmxvY2tzL2Rpc3QvaW5kZXguanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcm9sbHVwLXBsdWdpbi1ub2RlLWJ1aWx0aW5zL3NyYy9lczYvcHVueWNvZGUuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcm9sbHVwLXBsdWdpbi1ub2RlLWJ1aWx0aW5zL3NyYy9lczYvcXMuanMiLCIuLi8uLi9ub2RlX21vZHVsZXMvcm9sbHVwLXBsdWdpbi1ub2RlLWJ1aWx0aW5zL3NyYy9lczYvdXJsLmpzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlbWFyay1pZnJhbWVzL2Rpc3QvaW5kZXguanMiLCIuLi8uLi90b2h0bWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBleHRlbmRcblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxuZnVuY3Rpb24gZXh0ZW5kKCkge1xuICAgIHZhciB0YXJnZXQgPSB7fVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXVxuXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0YXJnZXRcbn1cbiIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhc3NpZ24gPSByZXF1aXJlKCdvYmplY3QtYXNzaWduJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiB1ICh0eXBlLCBwcm9wcywgdmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwgJiYgKHR5cGVvZiBwcm9wcyAhPSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHByb3BzKSkpIHtcbiAgICB2YWx1ZSA9IHByb3BzO1xuICAgIHByb3BzID0ge307XG4gIH1cblxuICByZXR1cm4gYXNzaWduKHt9LCBwcm9wcywgeyB0eXBlOiBTdHJpbmcodHlwZSkgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZSAhPSBudWxsICYmIChBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjaGlsZHJlbjogdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyB2YWx1ZTogU3RyaW5nKHZhbHVlKSB9KSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtcGFyYW1zICovXG5cbi8qIEV4cG9zZS4gKi9cbm1vZHVsZS5leHBvcnRzID0gaXM7XG5cbi8qIEFzc2VydCBpZiBgdGVzdGAgcGFzc2VzIGZvciBgbm9kZWAuXG4gKiBXaGVuIGEgYHBhcmVudGAgbm9kZSBpcyBrbm93biB0aGUgYGluZGV4YCBvZiBub2RlICovXG5mdW5jdGlvbiBpcyh0ZXN0LCBub2RlLCBpbmRleCwgcGFyZW50LCBjb250ZXh0KSB7XG4gIHZhciBoYXNQYXJlbnQgPSBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50ICE9PSB1bmRlZmluZWQ7XG4gIHZhciBoYXNJbmRleCA9IGluZGV4ICE9PSBudWxsICYmIGluZGV4ICE9PSB1bmRlZmluZWQ7XG4gIHZhciBjaGVjayA9IGNvbnZlcnQodGVzdCk7XG5cbiAgaWYgKFxuICAgIGhhc0luZGV4ICYmXG4gICAgKHR5cGVvZiBpbmRleCAhPT0gJ251bWJlcicgfHwgaW5kZXggPCAwIHx8IGluZGV4ID09PSBJbmZpbml0eSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBwb3NpdGl2ZSBmaW5pdGUgaW5kZXggb3IgY2hpbGQgbm9kZScpO1xuICB9XG5cbiAgaWYgKGhhc1BhcmVudCAmJiAoIWlzKG51bGwsIHBhcmVudCkgfHwgIXBhcmVudC5jaGlsZHJlbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHBhcmVudCBub2RlJyk7XG4gIH1cblxuICBpZiAoIW5vZGUgfHwgIW5vZGUudHlwZSB8fCB0eXBlb2Ygbm9kZS50eXBlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChoYXNQYXJlbnQgIT09IGhhc0luZGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBib3RoIHBhcmVudCBhbmQgaW5kZXgnKTtcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKGNoZWNrLmNhbGwoY29udGV4dCwgbm9kZSwgaW5kZXgsIHBhcmVudCkpO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0KHRlc3QpIHtcbiAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlRmFjdG9yeSh0ZXN0KTtcbiAgfVxuXG4gIGlmICh0ZXN0ID09PSBudWxsIHx8IHRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBvaztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdGVzdCA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gKCdsZW5ndGgnIGluIHRlc3QgPyBhbnlGYWN0b3J5IDogbWF0Y2hlc0ZhY3RvcnkpKHRlc3QpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRlc3Q7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGZ1bmN0aW9uLCBzdHJpbmcsIG9yIG9iamVjdCBhcyB0ZXN0Jyk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRBbGwodGVzdHMpIHtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgdmFyIGxlbmd0aCA9IHRlc3RzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRzW2luZGV4XSA9IGNvbnZlcnQodGVzdHNbaW5kZXhdKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufVxuXG4vKiBVdGlsaXR5IGFzc2VydCBlYWNoIHByb3BlcnR5IGluIGB0ZXN0YCBpcyByZXByZXNlbnRlZFxuICogaW4gYG5vZGVgLCBhbmQgZWFjaCB2YWx1ZXMgYXJlIHN0cmljdGx5IGVxdWFsLiAqL1xuZnVuY3Rpb24gbWF0Y2hlc0ZhY3RvcnkodGVzdCkge1xuICByZXR1cm4gbWF0Y2hlcztcblxuICBmdW5jdGlvbiBtYXRjaGVzKG5vZGUpIHtcbiAgICB2YXIga2V5O1xuXG4gICAgZm9yIChrZXkgaW4gdGVzdCkge1xuICAgICAgaWYgKG5vZGVba2V5XSAhPT0gdGVzdFtrZXldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhbnlGYWN0b3J5KHRlc3RzKSB7XG4gIHZhciBjaGVja3MgPSBjb252ZXJ0QWxsKHRlc3RzKTtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrcy5sZW5ndGg7XG5cbiAgcmV0dXJuIG1hdGNoZXM7XG5cbiAgZnVuY3Rpb24gbWF0Y2hlcygpIHtcbiAgICB2YXIgaW5kZXggPSAtMTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoY2hlY2tzW2luZGV4XS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKiBVdGlsaXR5IHRvIGNvbnZlcnQgYSBzdHJpbmcgaW50byBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrc1xuICogYSBnaXZlbiBub2Rl4oCZcyB0eXBlIGZvciBzYWlkIHN0cmluZy4gKi9cbmZ1bmN0aW9uIHR5cGVGYWN0b3J5KHRlc3QpIHtcbiAgcmV0dXJuIHR5cGU7XG5cbiAgZnVuY3Rpb24gdHlwZShub2RlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4obm9kZSAmJiBub2RlLnR5cGUgPT09IHRlc3QpO1xuICB9XG59XG5cbi8qIFV0aWxpdHkgdG8gcmV0dXJuIHRydWUuICovXG5mdW5jdGlvbiBvaygpIHtcbiAgcmV0dXJuIHRydWU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gdmlzaXQ7XG5cbnZhciBpcyA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtaXMnKTtcblxudmFyIENPTlRJTlVFID0gdHJ1ZTtcbnZhciBTS0lQID0gJ3NraXAnO1xudmFyIEVYSVQgPSBmYWxzZTtcblxudmlzaXQuQ09OVElOVUUgPSBDT05USU5VRTtcbnZpc2l0LlNLSVAgPSBTS0lQO1xudmlzaXQuRVhJVCA9IEVYSVQ7XG5cbmZ1bmN0aW9uIHZpc2l0KHRyZWUsIHRlc3QsIHZpc2l0b3IsIHJldmVyc2UpIHtcbiAgaWYgKHR5cGVvZiB0ZXN0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2aXNpdG9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV2ZXJzZSA9IHZpc2l0b3I7XG4gICAgdmlzaXRvciA9IHRlc3Q7XG4gICAgdGVzdCA9IG51bGw7XG4gIH1cblxuICBvbmUodHJlZSk7XG5cbiAgLyogVmlzaXQgYSBzaW5nbGUgbm9kZS4gKi9cbiAgZnVuY3Rpb24gb25lKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgICB2YXIgcmVzdWx0O1xuXG4gICAgaW5kZXggPSBpbmRleCB8fCAocGFyZW50ID8gMCA6IG51bGwpO1xuXG4gICAgaWYgKCF0ZXN0IHx8IG5vZGUudHlwZSA9PT0gdGVzdCB8fCBpcyh0ZXN0LCBub2RlLCBpbmRleCwgcGFyZW50IHx8IG51bGwpKSB7XG4gICAgICByZXN1bHQgPSB2aXNpdG9yKG5vZGUsIGluZGV4LCBwYXJlbnQgfHwgbnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3VsdCA9PT0gRVhJVCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiByZXN1bHQgIT09IFNLSVApIHtcbiAgICAgIHJldHVybiBhbGwobm9kZS5jaGlsZHJlbiwgbm9kZSkgPT09IEVYSVQgPyBFWElUIDogcmVzdWx0O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiBWaXNpdCBjaGlsZHJlbiBpbiBgcGFyZW50YC4gKi9cbiAgZnVuY3Rpb24gYWxsKGNoaWxkcmVuLCBwYXJlbnQpIHtcbiAgICB2YXIgc3RlcCA9IHJldmVyc2UgPyAtMSA6IDE7XG4gICAgdmFyIGluZGV4ID0gKHJldmVyc2UgPyBjaGlsZHJlbi5sZW5ndGggOiAtMSkgKyBzdGVwO1xuICAgIHZhciBjaGlsZDtcbiAgICB2YXIgcmVzdWx0O1xuXG4gICAgd2hpbGUgKGluZGV4ID4gLTEgJiYgaW5kZXggPCBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGNoaWxkID0gY2hpbGRyZW5baW5kZXhdO1xuICAgICAgcmVzdWx0ID0gY2hpbGQgJiYgb25lKGNoaWxkLCBpbmRleCwgcGFyZW50KTtcblxuICAgICAgaWYgKHJlc3VsdCA9PT0gRVhJVCkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpbmRleCA9IHR5cGVvZiByZXN1bHQgPT09ICdudW1iZXInID8gcmVzdWx0IDogaW5kZXggKyBzdGVwO1xuICAgIH1cblxuICAgIHJldHVybiBDT05USU5VRTtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBFeHBvc2UuICovXG52YXIgcG9zaXRpb24gPSBleHBvcnRzO1xuXG5wb3NpdGlvbi5zdGFydCA9IHBvc2l0aW9uRmFjdG9yeSgnc3RhcnQnKTtcbnBvc2l0aW9uLmVuZCA9IHBvc2l0aW9uRmFjdG9yeSgnZW5kJyk7XG5cbi8qIEZhY3RvcnkgdG8gZ2V0IGEgcG9zaXRpb24gYXQgYHR5cGVgLiAqL1xuZnVuY3Rpb24gcG9zaXRpb25GYWN0b3J5KHR5cGUpIHtcbiAgcmV0dXJuIHBvcztcblxuICAvKiBHZXQgYSBwb3NpdGlvbiBpbiBgbm9kZWAgYXQgYSBib3VuZCBgdHlwZWAuICovXG4gIGZ1bmN0aW9uIHBvcyhub2RlKSB7XG4gICAgdmFyIHBvcyA9IChub2RlICYmIG5vZGUucG9zaXRpb24gJiYgbm9kZS5wb3NpdGlvblt0eXBlXSkgfHwge307XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogcG9zLmxpbmUgfHwgbnVsbCxcbiAgICAgIGNvbHVtbjogcG9zLmNvbHVtbiB8fCBudWxsLFxuICAgICAgb2Zmc2V0OiBpc05hTihwb3Mub2Zmc2V0KSA/IG51bGwgOiBwb3Mub2Zmc2V0XG4gICAgfTtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBFeHBvc2UuICovXG5tb2R1bGUuZXhwb3J0cyA9IGdlbmVyYXRlZDtcblxuLyogRGV0ZWN0IGlmIGEgbm9kZSB3YXMgYXZhaWxhYmxlIGluIHRoZSBvcmlnaW5hbCBkb2N1bWVudC4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlZChub2RlKSB7XG4gIHZhciBwb3NpdGlvbiA9IG9wdGlvbmFsKG9wdGlvbmFsKG5vZGUpLnBvc2l0aW9uKTtcbiAgdmFyIHN0YXJ0ID0gb3B0aW9uYWwocG9zaXRpb24uc3RhcnQpO1xuICB2YXIgZW5kID0gb3B0aW9uYWwocG9zaXRpb24uZW5kKTtcblxuICByZXR1cm4gIXN0YXJ0LmxpbmUgfHwgIXN0YXJ0LmNvbHVtbiB8fCAhZW5kLmxpbmUgfHwgIWVuZC5jb2x1bW47XG59XG5cbi8qIFJldHVybiBgdmFsdWVgIGlmIGl04oCZcyBhbiBvYmplY3QsIGFuIGVtcHR5IG9iamVjdFxuICogb3RoZXJ3aXNlLiAqL1xuZnVuY3Rpb24gb3B0aW9uYWwodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgPyB2YWx1ZSA6IHt9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdmlzaXQgPSByZXF1aXJlKCd1bmlzdC11dGlsLXZpc2l0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RGVmaW5pdGlvbkZhY3Rvcnk7XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuLyogR2V0IGEgZGVmaW5pdGlvbiBpbiBgbm9kZWAgYnkgYGlkZW50aWZpZXJgLiAqL1xuZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbkZhY3Rvcnkobm9kZSwgb3B0aW9ucykge1xuICByZXR1cm4gZ2V0dGVyRmFjdG9yeShnYXRoZXIobm9kZSwgb3B0aW9ucykpO1xufVxuXG4vKiBHYXRoZXIgYWxsIGRlZmluaXRpb25zIGluIGBub2RlYCAqL1xuZnVuY3Rpb24gZ2F0aGVyKG5vZGUsIG9wdGlvbnMpIHtcbiAgdmFyIGNhY2hlID0ge307XG5cbiAgaWYgKCFub2RlIHx8ICFub2RlLnR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21kYXN0LXV0aWwtZGVmaW5pdGlvbnMgZXhwZWN0ZWQgbm9kZScpO1xuICB9XG5cbiAgdmlzaXQobm9kZSwgJ2RlZmluaXRpb24nLCBvcHRpb25zICYmIG9wdGlvbnMuY29tbW9ubWFyayA/IGNvbW1vbm1hcmsgOiBub3JtYWwpO1xuXG4gIHJldHVybiBjYWNoZTtcblxuICBmdW5jdGlvbiBjb21tb25tYXJrKGRlZmluaXRpb24pIHtcbiAgICB2YXIgaWQgPSBub3JtYWxpc2UoZGVmaW5pdGlvbi5pZGVudGlmaWVyKTtcbiAgICBpZiAoIW93bi5jYWxsKGNhY2hlLCBpZCkpIHtcbiAgICAgIGNhY2hlW2lkXSA9IGRlZmluaXRpb247XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gbm9ybWFsKGRlZmluaXRpb24pIHtcbiAgICBjYWNoZVtub3JtYWxpc2UoZGVmaW5pdGlvbi5pZGVudGlmaWVyKV0gPSBkZWZpbml0aW9uO1xuICB9XG59XG5cbi8qIEZhY3RvcnkgdG8gZ2V0IGEgbm9kZSBmcm9tIHRoZSBnaXZlbiBkZWZpbml0aW9uLWNhY2hlLiAqL1xuZnVuY3Rpb24gZ2V0dGVyRmFjdG9yeShjYWNoZSkge1xuICByZXR1cm4gZ2V0dGVyO1xuXG4gIC8qIEdldCBhIG5vZGUgZnJvbSB0aGUgYm91bmQgZGVmaW5pdGlvbi1jYWNoZS4gKi9cbiAgZnVuY3Rpb24gZ2V0dGVyKGlkZW50aWZpZXIpIHtcbiAgICB2YXIgaWQgPSBpZGVudGlmaWVyICYmIG5vcm1hbGlzZShpZGVudGlmaWVyKTtcbiAgICByZXR1cm4gaWQgJiYgb3duLmNhbGwoY2FjaGUsIGlkKSA/IGNhY2hlW2lkXSA6IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gbm9ybWFsaXNlKGlkZW50aWZpZXIpIHtcbiAgcmV0dXJuIGlkZW50aWZpZXIudG9VcHBlckNhc2UoKTtcbn1cbiIsIlxuZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gdHJpbTtcblxuZnVuY3Rpb24gdHJpbShzdHIpe1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHMqfFxccyokL2csICcnKTtcbn1cblxuZXhwb3J0cy5sZWZ0ID0gZnVuY3Rpb24oc3RyKXtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzKi8sICcnKTtcbn07XG5cbmV4cG9ydHMucmlnaHQgPSBmdW5jdGlvbihzdHIpe1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1xccyokLywgJycpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBhbGw7XG5cbnZhciB0cmltID0gcmVxdWlyZSgndHJpbScpO1xudmFyIG9uZSA9IHJlcXVpcmUoJy4vb25lJyk7XG5cbi8qIFRyYW5zZm9ybSB0aGUgY2hpbGRyZW4gb2YgYHBhcmVudGAuICovXG5mdW5jdGlvbiBhbGwoaCwgcGFyZW50KSB7XG4gIHZhciBub2RlcyA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgdmFyIGxlbmd0aCA9IG5vZGVzLmxlbmd0aDtcbiAgdmFyIHZhbHVlcyA9IFtdO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIHJlc3VsdDtcbiAgdmFyIGhlYWQ7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHQgPSBvbmUoaCwgbm9kZXNbaW5kZXhdLCBwYXJlbnQpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgaWYgKGluZGV4ICYmIG5vZGVzW2luZGV4IC0gMV0udHlwZSA9PT0gJ2JyZWFrJykge1xuICAgICAgICBpZiAocmVzdWx0LnZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0LnZhbHVlID0gdHJpbS5sZWZ0KHJlc3VsdC52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBoZWFkID0gcmVzdWx0LmNoaWxkcmVuICYmIHJlc3VsdC5jaGlsZHJlblswXTtcblxuICAgICAgICBpZiAoaGVhZCAmJiBoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgaGVhZC52YWx1ZSA9IHRyaW0ubGVmdChoZWFkLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlcztcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBvbmU7XG5cbnZhciB1ID0gcmVxdWlyZSgndW5pc3QtYnVpbGRlcicpO1xudmFyIGFsbCA9IHJlcXVpcmUoJy4vYWxsJyk7XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuLyogVHJhbnNmb3JtIGFuIHVua25vd24gbm9kZS4gKi9cbmZ1bmN0aW9uIHVua25vd24oaCwgbm9kZSkge1xuICBpZiAodGV4dChub2RlKSkge1xuICAgIHJldHVybiBoLmF1Z21lbnQobm9kZSwgdSgndGV4dCcsIG5vZGUudmFsdWUpKTtcbiAgfVxuXG4gIHJldHVybiBoKG5vZGUsICdkaXYnLCBhbGwoaCwgbm9kZSkpO1xufVxuXG4vKiBWaXNpdCBhIG5vZGUuICovXG5mdW5jdGlvbiBvbmUoaCwgbm9kZSwgcGFyZW50KSB7XG4gIHZhciB0eXBlID0gbm9kZSAmJiBub2RlLnR5cGU7XG4gIHZhciBmbiA9IG93bi5jYWxsKGguaGFuZGxlcnMsIHR5cGUpID8gaC5oYW5kbGVyc1t0eXBlXSA6IG51bGw7XG5cbiAgLyogRmFpbCBvbiBub24tbm9kZXMuICovXG4gIGlmICghdHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgZ290IGAnICsgbm9kZSArICdgJyk7XG4gIH1cblxuICByZXR1cm4gKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJyA/IGZuIDogdW5rbm93bikoaCwgbm9kZSwgcGFyZW50KTtcbn1cblxuLyogQ2hlY2sgaWYgdGhlIG5vZGUgc2hvdWxkIGJlIHJlbmRlcmVyZWQgYSB0ZXh0IG5vZGUuICovXG5mdW5jdGlvbiB0ZXh0KG5vZGUpIHtcbiAgdmFyIGRhdGEgPSBub2RlLmRhdGEgfHwge307XG5cbiAgaWYgKG93bi5jYWxsKGRhdGEsICdoTmFtZScpIHx8IG93bi5jYWxsKGRhdGEsICdoUHJvcGVydGllcycpIHx8IG93bi5jYWxsKGRhdGEsICdoQ2hpbGRyZW4nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAndmFsdWUnIGluIG5vZGU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gdGhlbWF0aWNCcmVhaztcblxuLyogVHJhbnNmb3JtIGEgdGhlbWF0aWMgYnJlYWsgLyBob3Jpem9udGFsIHJ1bGUuICovXG5mdW5jdGlvbiB0aGVtYXRpY0JyZWFrKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGgobm9kZSwgJ2hyJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gd3JhcDtcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG5cbi8qIFdyYXAgYG5vZGVzYCB3aXRoIG5ld2xpbmVzIGJldHdlZW4gZWFjaCBlbnRyeS5cbiAqIE9wdGlvbmFsbHkgYWRkcyBuZXdsaW5lcyBhdCB0aGUgc3RhcnQgYW5kIGVuZC4gKi9cbmZ1bmN0aW9uIHdyYXAobm9kZXMsIGxvb3NlKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBsZW5ndGggPSBub2Rlcy5sZW5ndGg7XG5cbiAgaWYgKGxvb3NlKSB7XG4gICAgcmVzdWx0LnB1c2godSgndGV4dCcsICdcXG4nKSk7XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmVzdWx0LnB1c2godSgndGV4dCcsICdcXG4nKSk7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2gobm9kZXNbaW5kZXhdKTtcbiAgfVxuXG4gIGlmIChsb29zZSAmJiBub2Rlcy5sZW5ndGggIT09IDApIHtcbiAgICByZXN1bHQucHVzaCh1KCd0ZXh0JywgJ1xcbicpKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdDtcblxudmFyIHdyYXAgPSByZXF1aXJlKCcuLi93cmFwJyk7XG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbi8qIFRyYW5zZm9ybSBhIGxpc3QuICovXG5mdW5jdGlvbiBsaXN0KGgsIG5vZGUpIHtcbiAgdmFyIHByb3BzID0ge307XG4gIHZhciBuYW1lID0gbm9kZS5vcmRlcmVkID8gJ29sJyA6ICd1bCc7XG5cbiAgaWYgKHR5cGVvZiBub2RlLnN0YXJ0ID09PSAnbnVtYmVyJyAmJiBub2RlLnN0YXJ0ICE9PSAxKSB7XG4gICAgcHJvcHMuc3RhcnQgPSBub2RlLnN0YXJ0O1xuICB9XG5cbiAgcmV0dXJuIGgobm9kZSwgbmFtZSwgcHJvcHMsIHdyYXAoYWxsKGgsIG5vZGUpLCB0cnVlKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2VuZXJhdGVGb290bm90ZXM7XG5cbnZhciB0aGVtYXRpY0JyZWFrID0gcmVxdWlyZSgnLi9oYW5kbGVycy90aGVtYXRpYy1icmVhaycpO1xudmFyIGxpc3QgPSByZXF1aXJlKCcuL2hhbmRsZXJzL2xpc3QnKTtcbnZhciB3cmFwID0gcmVxdWlyZSgnLi93cmFwJyk7XG5cbi8qIFRyYW5zZm9ybSBhbGwgZm9vdG5vdGUgZGVmaW5pdGlvbnMsIGlmIGFueS4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlRm9vdG5vdGVzKGgpIHtcbiAgdmFyIGZvb3Rub3RlcyA9IGguZm9vdG5vdGVzO1xuICB2YXIgbGVuZ3RoID0gZm9vdG5vdGVzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBsaXN0SXRlbXMgPSBbXTtcbiAgdmFyIGRlZjtcblxuICBpZiAoIWxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBkZWYgPSBmb290bm90ZXNbaW5kZXhdO1xuXG4gICAgbGlzdEl0ZW1zW2luZGV4XSA9IHtcbiAgICAgIHR5cGU6ICdsaXN0SXRlbScsXG4gICAgICBkYXRhOiB7aFByb3BlcnRpZXM6IHtpZDogJ2ZuLScgKyBkZWYuaWRlbnRpZmllcn19LFxuICAgICAgY2hpbGRyZW46IGRlZi5jaGlsZHJlbi5jb25jYXQoe1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIHVybDogJyNmbnJlZi0nICsgZGVmLmlkZW50aWZpZXIsXG4gICAgICAgIGRhdGE6IHtoUHJvcGVydGllczoge2NsYXNzTmFtZTogWydmb290bm90ZS1iYWNrcmVmJ119fSxcbiAgICAgICAgY2hpbGRyZW46IFt7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHZhbHVlOiAn4oapJ1xuICAgICAgICB9XVxuICAgICAgfSksXG4gICAgICBwb3NpdGlvbjogZGVmLnBvc2l0aW9uXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBoKG51bGwsICdkaXYnLCB7XG4gICAgY2xhc3NOYW1lOiBbJ2Zvb3Rub3RlcyddXG4gIH0sIHdyYXAoW1xuICAgIHRoZW1hdGljQnJlYWsoaCksXG4gICAgbGlzdChoLCB7XG4gICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICBvcmRlcmVkOiB0cnVlLFxuICAgICAgY2hpbGRyZW46IGxpc3RJdGVtc1xuICAgIH0pXG4gIF0sIHRydWUpKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBibG9ja3F1b3RlO1xuXG52YXIgd3JhcCA9IHJlcXVpcmUoJy4uL3dyYXAnKTtcbnZhciBhbGwgPSByZXF1aXJlKCcuLi9hbGwnKTtcblxuLyogVHJhbnNmb3JtIGEgYmxvY2sgcXVvdGUuICovXG5mdW5jdGlvbiBibG9ja3F1b3RlKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGgobm9kZSwgJ2Jsb2NrcXVvdGUnLCB3cmFwKGFsbChoLCBub2RlKSwgdHJ1ZSkpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGhhcmRCcmVhaztcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG5cbi8qIFRyYW5zZm9ybSBhbiBpbmxpbmUgYnJlYWsuICovXG5mdW5jdGlvbiBoYXJkQnJlYWsoaCwgbm9kZSkge1xuICByZXR1cm4gW2gobm9kZSwgJ2JyJyksIHUoJ3RleHQnLCAnXFxuJyldO1xufVxuIiwiLyohXG4gKiByZXBlYXQtc3RyaW5nIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9yZXBlYXQtc3RyaW5nPlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxNC0yMDE1LCBKb24gU2NobGlua2VydC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qKlxuICogUmVzdWx0cyBjYWNoZVxuICovXG5cbnZhciByZXMgPSAnJztcbnZhciBjYWNoZTtcblxuLyoqXG4gKiBFeHBvc2UgYHJlcGVhdGBcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcGVhdDtcblxuLyoqXG4gKiBSZXBlYXQgdGhlIGdpdmVuIGBzdHJpbmdgIHRoZSBzcGVjaWZpZWQgYG51bWJlcmBcbiAqIG9mIHRpbWVzLlxuICpcbiAqICoqRXhhbXBsZToqKlxuICpcbiAqIGBgYGpzXG4gKiB2YXIgcmVwZWF0ID0gcmVxdWlyZSgncmVwZWF0LXN0cmluZycpO1xuICogcmVwZWF0KCdBJywgNSk7XG4gKiAvLz0+IEFBQUFBXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gYHN0cmluZ2AgVGhlIHN0cmluZyB0byByZXBlYXRcbiAqIEBwYXJhbSB7TnVtYmVyfSBgbnVtYmVyYCBUaGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgc3RyaW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd9IFJlcGVhdGVkIHN0cmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiByZXBlYXQoc3RyLCBudW0pIHtcbiAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZXhwZWN0ZWQgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIC8vIGNvdmVyIGNvbW1vbiwgcXVpY2sgdXNlIGNhc2VzXG4gIGlmIChudW0gPT09IDEpIHJldHVybiBzdHI7XG4gIGlmIChudW0gPT09IDIpIHJldHVybiBzdHIgKyBzdHI7XG5cbiAgdmFyIG1heCA9IHN0ci5sZW5ndGggKiBudW07XG4gIGlmIChjYWNoZSAhPT0gc3RyIHx8IHR5cGVvZiBjYWNoZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjYWNoZSA9IHN0cjtcbiAgICByZXMgPSAnJztcbiAgfSBlbHNlIGlmIChyZXMubGVuZ3RoID49IG1heCkge1xuICAgIHJldHVybiByZXMuc3Vic3RyKDAsIG1heCk7XG4gIH1cblxuICB3aGlsZSAobWF4ID4gcmVzLmxlbmd0aCAmJiBudW0gPiAxKSB7XG4gICAgaWYgKG51bSAmIDEpIHtcbiAgICAgIHJlcyArPSBzdHI7XG4gICAgfVxuXG4gICAgbnVtID4+PSAxO1xuICAgIHN0ciArPSBzdHI7XG4gIH1cblxuICByZXMgKz0gc3RyO1xuICByZXMgPSByZXMuc3Vic3RyKDAsIG1heCk7XG4gIHJldHVybiByZXM7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZGV0YWI7XG5cbnZhciByZXBlYXQgPSByZXF1aXJlKCdyZXBlYXQtc3RyaW5nJyk7XG5cbnZhciBUQUIgPSAweDA5O1xudmFyIExGID0gMHgwQTtcbnZhciBDUiA9IDB4MEQ7XG5cbi8qIFJlcGxhY2UgdGFicyB3aXRoIHNwYWNlcywgYmVpbmcgc21hcnQgYWJvdXQgd2hpY2hcbiAqIGNvbHVtbiB0aGUgdGFiIGlzIGF0IGFuZCB3aGljaCBzaXplIHNob3VsZCBiZSB1c2VkLiAqL1xuZnVuY3Rpb24gZGV0YWIodmFsdWUsIHNpemUpIHtcbiAgdmFyIHN0cmluZyA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG4gIHZhciBsZW5ndGggPSBzdHJpbmcgJiYgdmFsdWUubGVuZ3RoO1xuICB2YXIgc3RhcnQgPSAwO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIGNvbHVtbiA9IC0xO1xuICB2YXIgdGFiU2l6ZSA9IHNpemUgfHwgNDtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgdmFyIGNvZGU7XG4gIHZhciBhZGQ7XG5cbiAgaWYgKCFzdHJpbmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RldGFiIGV4cGVjdGVkIHN0cmluZycpO1xuICB9XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICBpZiAoY29kZSA9PT0gVEFCKSB7XG4gICAgICBhZGQgPSB0YWJTaXplIC0gKChjb2x1bW4gKyAxKSAlIHRhYlNpemUpO1xuICAgICAgY29sdW1uICs9IGFkZDtcbiAgICAgIHJlc3VsdHMucHVzaCh2YWx1ZS5zbGljZShzdGFydCwgaW5kZXgpICsgcmVwZWF0KCcgJywgYWRkKSk7XG4gICAgICBzdGFydCA9IGluZGV4ICsgMTtcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IExGIHx8IGNvZGUgPT09IENSKSB7XG4gICAgICBjb2x1bW4gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29sdW1uKys7XG4gICAgfVxuICB9XG5cbiAgcmVzdWx0cy5wdXNoKHZhbHVlLnNsaWNlKHN0YXJ0KSk7XG5cbiAgcmV0dXJuIHJlc3VsdHMuam9pbignJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gY29kZTtcblxudmFyIGRldGFiID0gcmVxdWlyZSgnZGV0YWInKTtcbnZhciB1ID0gcmVxdWlyZSgndW5pc3QtYnVpbGRlcicpO1xuXG4vKiBUcmFuc2Zvcm0gYSBjb2RlIGJsb2NrLiAqL1xuZnVuY3Rpb24gY29kZShoLCBub2RlKSB7XG4gIHZhciB2YWx1ZSA9IG5vZGUudmFsdWUgPyBkZXRhYihub2RlLnZhbHVlICsgJ1xcbicpIDogJyc7XG4gIHZhciBsYW5nID0gbm9kZS5sYW5nICYmIG5vZGUubGFuZy5tYXRjaCgvXlteIFxcdF0rKD89WyBcXHRdfCQpLyk7XG4gIHZhciBwcm9wcyA9IHt9O1xuXG4gIGlmIChsYW5nKSB7XG4gICAgcHJvcHMuY2xhc3NOYW1lID0gWydsYW5ndWFnZS0nICsgbGFuZ107XG4gIH1cblxuICByZXR1cm4gaChub2RlLnBvc2l0aW9uLCAncHJlJywgW1xuICAgIGgobm9kZSwgJ2NvZGUnLCBwcm9wcywgW3UoJ3RleHQnLCB2YWx1ZSldKVxuICBdKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpa2V0aHJvdWdoO1xuXG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbi8qIFRyYW5zZm9ybSBkZWxldGlvbnMuICovXG5mdW5jdGlvbiBzdHJpa2V0aHJvdWdoKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGgobm9kZSwgJ2RlbCcsIGFsbChoLCBub2RlKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZW1waGFzaXM7XG5cbnZhciBhbGwgPSByZXF1aXJlKCcuLi9hbGwnKTtcblxuLyogVHJhbnNmb3JtIGVtcGhhc2lzLiAqL1xuZnVuY3Rpb24gZW1waGFzaXMoaCwgbm9kZSkge1xuICByZXR1cm4gaChub2RlLCAnZW0nLCBhbGwoaCwgbm9kZSkpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZvb3Rub3RlUmVmZXJlbmNlO1xuXG52YXIgdSA9IHJlcXVpcmUoJ3VuaXN0LWJ1aWxkZXInKTtcblxuLyogVHJhbnNmb3JtIGEgcmVmZXJlbmNlIHRvIGEgZm9vdG5vdGUuICovXG5mdW5jdGlvbiBmb290bm90ZVJlZmVyZW5jZShoLCBub2RlKSB7XG4gIHZhciBpZGVudGlmaWVyID0gbm9kZS5pZGVudGlmaWVyO1xuXG4gIHJldHVybiBoKG5vZGUucG9zaXRpb24sICdzdXAnLCB7aWQ6ICdmbnJlZi0nICsgaWRlbnRpZmllcn0sIFtcbiAgICBoKG5vZGUsICdhJywge1xuICAgICAgaHJlZjogJyNmbi0nICsgaWRlbnRpZmllcixcbiAgICAgIGNsYXNzTmFtZTogWydmb290bm90ZS1yZWYnXVxuICAgIH0sIFt1KCd0ZXh0JywgaWRlbnRpZmllcildKVxuICBdKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmb290bm90ZTtcblxudmFyIGZvb3Rub3RlUmVmZXJlbmNlID0gcmVxdWlyZSgnLi9mb290bm90ZS1yZWZlcmVuY2UnKTtcblxuLyogVHJhbnNmb3JtIGFuIGlubGluZSBmb290bm90ZS4gKi9cbmZ1bmN0aW9uIGZvb3Rub3RlKGgsIG5vZGUpIHtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIHZhciBpZGVudGlmaWVyID0gMTtcbiAgdmFyIGZvb3Rub3RlcyA9IGguZm9vdG5vdGVzO1xuICB2YXIgbGVuZ3RoID0gZm9vdG5vdGVzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpZGVudGlmaWVyc1tpbmRleF0gPSBmb290bm90ZXNbaW5kZXhdLmlkZW50aWZpZXI7XG4gIH1cblxuICB3aGlsZSAoaWRlbnRpZmllcnMuaW5kZXhPZihTdHJpbmcoaWRlbnRpZmllcikpICE9PSAtMSkge1xuICAgIGlkZW50aWZpZXIrKztcbiAgfVxuXG4gIGlkZW50aWZpZXIgPSBTdHJpbmcoaWRlbnRpZmllcik7XG5cbiAgZm9vdG5vdGVzLnB1c2goe1xuICAgIHR5cGU6ICdmb290bm90ZURlZmluaXRpb24nLFxuICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgY2hpbGRyZW46IFt7XG4gICAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICAgIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVuXG4gICAgfV0sXG4gICAgcG9zaXRpb246IG5vZGUucG9zaXRpb25cbiAgfSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlUmVmZXJlbmNlKGgsIHtcbiAgICB0eXBlOiAnZm9vdG5vdGVSZWZlcmVuY2UnLFxuICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgcG9zaXRpb246IG5vZGUucG9zaXRpb25cbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaGVhZGluZztcblxudmFyIGFsbCA9IHJlcXVpcmUoJy4uL2FsbCcpO1xuXG4vKiBUcmFuc2Zvcm0gYSBoZWFkaW5nLiAqL1xuZnVuY3Rpb24gaGVhZGluZyhoLCBub2RlKSB7XG4gIHJldHVybiBoKG5vZGUsICdoJyArIG5vZGUuZGVwdGgsIGFsbChoLCBub2RlKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaHRtbDtcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG5cbi8qIFJldHVybiBlaXRoZXIgYSBgcmF3YCBub2RlLCBpbiBkYW5nZXJvdXMgbW9kZSwgb3JcbiAqIG5vdGhpbmcuICovXG5mdW5jdGlvbiBodG1sKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGguZGFuZ2Vyb3VzID8gaC5hdWdtZW50KG5vZGUsIHUoJ3JhdycsIG5vZGUudmFsdWUpKSA6IG51bGw7XG59XG4iLCJcbid1c2Ugc3RyaWN0JztcblxuXG52YXIgZW5jb2RlQ2FjaGUgPSB7fTtcblxuXG4vLyBDcmVhdGUgYSBsb29rdXAgYXJyYXkgd2hlcmUgYW55dGhpbmcgYnV0IGNoYXJhY3RlcnMgaW4gYGNoYXJzYCBzdHJpbmdcbi8vIGFuZCBhbHBoYW51bWVyaWMgY2hhcnMgaXMgcGVyY2VudC1lbmNvZGVkLlxuLy9cbmZ1bmN0aW9uIGdldEVuY29kZUNhY2hlKGV4Y2x1ZGUpIHtcbiAgdmFyIGksIGNoLCBjYWNoZSA9IGVuY29kZUNhY2hlW2V4Y2x1ZGVdO1xuICBpZiAoY2FjaGUpIHsgcmV0dXJuIGNhY2hlOyB9XG5cbiAgY2FjaGUgPSBlbmNvZGVDYWNoZVtleGNsdWRlXSA9IFtdO1xuXG4gIGZvciAoaSA9IDA7IGkgPCAxMjg7IGkrKykge1xuICAgIGNoID0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcblxuICAgIGlmICgvXlswLTlhLXpdJC9pLnRlc3QoY2gpKSB7XG4gICAgICAvLyBhbHdheXMgYWxsb3cgdW5lbmNvZGVkIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzXG4gICAgICBjYWNoZS5wdXNoKGNoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGUucHVzaCgnJScgKyAoJzAnICsgaS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSkuc2xpY2UoLTIpKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGkgPSAwOyBpIDwgZXhjbHVkZS5sZW5ndGg7IGkrKykge1xuICAgIGNhY2hlW2V4Y2x1ZGUuY2hhckNvZGVBdChpKV0gPSBleGNsdWRlW2ldO1xuICB9XG5cbiAgcmV0dXJuIGNhY2hlO1xufVxuXG5cbi8vIEVuY29kZSB1bnNhZmUgY2hhcmFjdGVycyB3aXRoIHBlcmNlbnQtZW5jb2RpbmcsIHNraXBwaW5nIGFscmVhZHlcbi8vIGVuY29kZWQgc2VxdWVuY2VzLlxuLy9cbi8vICAtIHN0cmluZyAgICAgICAtIHN0cmluZyB0byBlbmNvZGVcbi8vICAtIGV4Y2x1ZGUgICAgICAtIGxpc3Qgb2YgY2hhcmFjdGVycyB0byBpZ25vcmUgKGluIGFkZGl0aW9uIHRvIGEtekEtWjAtOSlcbi8vICAtIGtlZXBFc2NhcGVkICAtIGRvbid0IGVuY29kZSAnJScgaW4gYSBjb3JyZWN0IGVzY2FwZSBzZXF1ZW5jZSAoZGVmYXVsdDogdHJ1ZSlcbi8vXG5mdW5jdGlvbiBlbmNvZGUoc3RyaW5nLCBleGNsdWRlLCBrZWVwRXNjYXBlZCkge1xuICB2YXIgaSwgbCwgY29kZSwgbmV4dENvZGUsIGNhY2hlLFxuICAgICAgcmVzdWx0ID0gJyc7XG5cbiAgaWYgKHR5cGVvZiBleGNsdWRlICE9PSAnc3RyaW5nJykge1xuICAgIC8vIGVuY29kZShzdHJpbmcsIGtlZXBFc2NhcGVkKVxuICAgIGtlZXBFc2NhcGVkICA9IGV4Y2x1ZGU7XG4gICAgZXhjbHVkZSA9IGVuY29kZS5kZWZhdWx0Q2hhcnM7XG4gIH1cblxuICBpZiAodHlwZW9mIGtlZXBFc2NhcGVkID09PSAndW5kZWZpbmVkJykge1xuICAgIGtlZXBFc2NhcGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNhY2hlID0gZ2V0RW5jb2RlQ2FjaGUoZXhjbHVkZSk7XG5cbiAgZm9yIChpID0gMCwgbCA9IHN0cmluZy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb2RlID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7XG5cbiAgICBpZiAoa2VlcEVzY2FwZWQgJiYgY29kZSA9PT0gMHgyNSAvKiAlICovICYmIGkgKyAyIDwgbCkge1xuICAgICAgaWYgKC9eWzAtOWEtZl17Mn0kL2kudGVzdChzdHJpbmcuc2xpY2UoaSArIDEsIGkgKyAzKSkpIHtcbiAgICAgICAgcmVzdWx0ICs9IHN0cmluZy5zbGljZShpLCBpICsgMyk7XG4gICAgICAgIGkgKz0gMjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGUgPCAxMjgpIHtcbiAgICAgIHJlc3VsdCArPSBjYWNoZVtjb2RlXTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChjb2RlID49IDB4RDgwMCAmJiBjb2RlIDw9IDB4REZGRikge1xuICAgICAgaWYgKGNvZGUgPj0gMHhEODAwICYmIGNvZGUgPD0gMHhEQkZGICYmIGkgKyAxIDwgbCkge1xuICAgICAgICBuZXh0Q29kZSA9IHN0cmluZy5jaGFyQ29kZUF0KGkgKyAxKTtcbiAgICAgICAgaWYgKG5leHRDb2RlID49IDB4REMwMCAmJiBuZXh0Q29kZSA8PSAweERGRkYpIHtcbiAgICAgICAgICByZXN1bHQgKz0gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ1tpXSArIHN0cmluZ1tpICsgMV0pO1xuICAgICAgICAgIGkrKztcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzdWx0ICs9ICclRUYlQkYlQkQnO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgcmVzdWx0ICs9IGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdbaV0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZW5jb2RlLmRlZmF1bHRDaGFycyAgID0gXCI7Lz86QCY9KyQsLV8uIX4qJygpI1wiO1xuZW5jb2RlLmNvbXBvbmVudENoYXJzID0gXCItXy4hfionKClcIjtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IGVuY29kZTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmYWlsc2FmZTtcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG52YXIgYWxsID0gcmVxdWlyZSgnLi9hbGwnKTtcblxuLyogUmV0dXJuIHRoZSBjb250ZW50IG9mIGEgcmVmZXJlbmNlIHdpdGhvdXQgZGVmaW5pdGlvblxuICogYXMgbWFya2Rvd24uICovXG5mdW5jdGlvbiBmYWlsc2FmZShoLCBub2RlLCBkZWZpbml0aW9uKSB7XG4gIHZhciBzdWJ0eXBlID0gbm9kZS5yZWZlcmVuY2VUeXBlO1xuXG4gIGlmIChzdWJ0eXBlICE9PSAnY29sbGFwc2VkJyAmJiBzdWJ0eXBlICE9PSAnZnVsbCcgJiYgIWRlZmluaXRpb24pIHtcbiAgICBpZiAobm9kZS50eXBlID09PSAnaW1hZ2VSZWZlcmVuY2UnKSB7XG4gICAgICByZXR1cm4gdSgndGV4dCcsICchWycgKyBub2RlLmFsdCArICddJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFt1KCd0ZXh0JywgJ1snKV0uY29uY2F0KGFsbChoLCBub2RlKSwgdSgndGV4dCcsICddJykpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gY29sbGFwc2U7XG5cbi8qIGNvbGxhcHNlKCcgXFx0XFxuYmFyIFxcbmJhelxcdCcpOyAvLyAnIGJhciBiYXogJyAqL1xuZnVuY3Rpb24gY29sbGFwc2UodmFsdWUpIHtcbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSkucmVwbGFjZSgvXFxzKy9nLCAnICcpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRyaW1MaW5lcztcblxudmFyIHdzID0gL1sgXFx0XSpcXG4rWyBcXHRdKi9nO1xudmFyIG5ld2xpbmUgPSAnXFxuJztcblxuZnVuY3Rpb24gdHJpbUxpbmVzKHZhbHVlKSB7XG4gIHJldHVybiBTdHJpbmcodmFsdWUpLnJlcGxhY2Uod3MsIG5ld2xpbmUpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYmxvY2txdW90ZTogcmVxdWlyZSgnLi9ibG9ja3F1b3RlJyksXG4gIGJyZWFrOiByZXF1aXJlKCcuL2JyZWFrJyksXG4gIGNvZGU6IHJlcXVpcmUoJy4vY29kZScpLFxuICBkZWxldGU6IHJlcXVpcmUoJy4vZGVsZXRlJyksXG4gIGVtcGhhc2lzOiByZXF1aXJlKCcuL2VtcGhhc2lzJyksXG4gIGZvb3Rub3RlUmVmZXJlbmNlOiByZXF1aXJlKCcuL2Zvb3Rub3RlLXJlZmVyZW5jZScpLFxuICBmb290bm90ZTogcmVxdWlyZSgnLi9mb290bm90ZScpLFxuICBoZWFkaW5nOiByZXF1aXJlKCcuL2hlYWRpbmcnKSxcbiAgaHRtbDogcmVxdWlyZSgnLi9odG1sJyksXG4gIGltYWdlUmVmZXJlbmNlOiByZXF1aXJlKCcuL2ltYWdlLXJlZmVyZW5jZScpLFxuICBpbWFnZTogcmVxdWlyZSgnLi9pbWFnZScpLFxuICBpbmxpbmVDb2RlOiByZXF1aXJlKCcuL2lubGluZS1jb2RlJyksXG4gIGxpbmtSZWZlcmVuY2U6IHJlcXVpcmUoJy4vbGluay1yZWZlcmVuY2UnKSxcbiAgbGluazogcmVxdWlyZSgnLi9saW5rJyksXG4gIGxpc3RJdGVtOiByZXF1aXJlKCcuL2xpc3QtaXRlbScpLFxuICBsaXN0OiByZXF1aXJlKCcuL2xpc3QnKSxcbiAgcGFyYWdyYXBoOiByZXF1aXJlKCcuL3BhcmFncmFwaCcpLFxuICByb290OiByZXF1aXJlKCcuL3Jvb3QnKSxcbiAgc3Ryb25nOiByZXF1aXJlKCcuL3N0cm9uZycpLFxuICB0YWJsZTogcmVxdWlyZSgnLi90YWJsZScpLFxuICB0ZXh0OiByZXF1aXJlKCcuL3RleHQnKSxcbiAgdGhlbWF0aWNCcmVhazogcmVxdWlyZSgnLi90aGVtYXRpYy1icmVhaycpLFxuICB0b21sOiBpZ25vcmUsXG4gIHlhbWw6IGlnbm9yZSxcbiAgZGVmaW5pdGlvbjogaWdub3JlLFxuICBmb290bm90ZURlZmluaXRpb246IGlnbm9yZVxufTtcblxuLyogUmV0dXJuIG5vdGhpbmcgZm9yIG5vZGVzIHdoaWNoIGFyZSBpZ25vcmVkLiAqL1xuZnVuY3Rpb24gaWdub3JlKCkge1xuICByZXR1cm4gbnVsbDtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBpbWFnZVJlZmVyZW5jZTtcblxudmFyIG5vcm1hbGl6ZSA9IHJlcXVpcmUoJ21kdXJsL2VuY29kZScpO1xudmFyIGZhaWxzYWZlID0gcmVxdWlyZSgnLi4vZmFpbHNhZmUnKTtcblxuLyogVHJhbnNmb3JtIGEgcmVmZXJlbmNlIHRvIGFuIGltYWdlLiAqL1xuZnVuY3Rpb24gaW1hZ2VSZWZlcmVuY2UoaCwgbm9kZSkge1xuICB2YXIgZGVmID0gaC5kZWZpbml0aW9uKG5vZGUuaWRlbnRpZmllcik7XG4gIHZhciBwcm9wcyA9IHtzcmM6IG5vcm1hbGl6ZSgoZGVmICYmIGRlZi51cmwpIHx8ICcnKSwgYWx0OiBub2RlLmFsdH07XG5cbiAgaWYgKGRlZiAmJiBkZWYudGl0bGUgIT09IG51bGwgJiYgZGVmLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcm9wcy50aXRsZSA9IGRlZi50aXRsZTtcbiAgfVxuXG4gIHJldHVybiBmYWlsc2FmZShoLCBub2RlLCBkZWYpIHx8IGgobm9kZSwgJ2ltZycsIHByb3BzKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIG5vcm1hbGl6ZSA9IHJlcXVpcmUoJ21kdXJsL2VuY29kZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGltYWdlO1xuXG4vKiBUcmFuc2Zvcm0gYW4gaW1hZ2UuICovXG5mdW5jdGlvbiBpbWFnZShoLCBub2RlKSB7XG4gIHZhciBwcm9wcyA9IHtzcmM6IG5vcm1hbGl6ZShub2RlLnVybCksIGFsdDogbm9kZS5hbHR9O1xuXG4gIGlmIChub2RlLnRpdGxlICE9PSBudWxsICYmIG5vZGUudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BzLnRpdGxlID0gbm9kZS50aXRsZTtcbiAgfVxuXG4gIHJldHVybiBoKG5vZGUsICdpbWcnLCBwcm9wcyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaW5saW5lQ29kZTtcblxudmFyIGNvbGxhcHNlID0gcmVxdWlyZSgnY29sbGFwc2Utd2hpdGUtc3BhY2UnKTtcbnZhciB1ID0gcmVxdWlyZSgndW5pc3QtYnVpbGRlcicpO1xuXG4vKiBUcmFuc2Zvcm0gaW5saW5lIGNvZGUuICovXG5mdW5jdGlvbiBpbmxpbmVDb2RlKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGgobm9kZSwgJ2NvZGUnLCBbdSgndGV4dCcsIGNvbGxhcHNlKG5vZGUudmFsdWUpKV0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxpbmtSZWZlcmVuY2U7XG5cbnZhciBub3JtYWxpemUgPSByZXF1aXJlKCdtZHVybC9lbmNvZGUnKTtcbnZhciBmYWlsc2FmZSA9IHJlcXVpcmUoJy4uL2ZhaWxzYWZlJyk7XG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbi8qIFRyYW5zZm9ybSBhIHJlZmVyZW5jZSB0byBhIGxpbmsuICovXG5mdW5jdGlvbiBsaW5rUmVmZXJlbmNlKGgsIG5vZGUpIHtcbiAgdmFyIGRlZiA9IGguZGVmaW5pdGlvbihub2RlLmlkZW50aWZpZXIpO1xuICB2YXIgcHJvcHMgPSB7aHJlZjogbm9ybWFsaXplKChkZWYgJiYgZGVmLnVybCkgfHwgJycpfTtcblxuICBpZiAoZGVmICYmIGRlZi50aXRsZSAhPT0gbnVsbCAmJiBkZWYudGl0bGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHByb3BzLnRpdGxlID0gZGVmLnRpdGxlO1xuICB9XG5cbiAgcmV0dXJuIGZhaWxzYWZlKGgsIG5vZGUsIGRlZikgfHwgaChub2RlLCAnYScsIHByb3BzLCBhbGwoaCwgbm9kZSkpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbm9ybWFsaXplID0gcmVxdWlyZSgnbWR1cmwvZW5jb2RlJyk7XG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbGluaztcblxuLyogVHJhbnNmb3JtIGEgbGluay4gKi9cbmZ1bmN0aW9uIGxpbmsoaCwgbm9kZSkge1xuICB2YXIgcHJvcHMgPSB7aHJlZjogbm9ybWFsaXplKG5vZGUudXJsKX07XG5cbiAgaWYgKG5vZGUudGl0bGUgIT09IG51bGwgJiYgbm9kZS50aXRsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcHJvcHMudGl0bGUgPSBub2RlLnRpdGxlO1xuICB9XG5cbiAgcmV0dXJuIGgobm9kZSwgJ2EnLCBwcm9wcywgYWxsKGgsIG5vZGUpKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBsaXN0SXRlbTtcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG52YXIgd3JhcCA9IHJlcXVpcmUoJy4uL3dyYXAnKTtcbnZhciBhbGwgPSByZXF1aXJlKCcuLi9hbGwnKTtcblxuLyogVHJhbnNmb3JtIGEgbGlzdC1pdGVtLiAqL1xuZnVuY3Rpb24gbGlzdEl0ZW0oaCwgbm9kZSwgcGFyZW50KSB7XG4gIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47XG4gIHZhciBoZWFkID0gY2hpbGRyZW5bMF07XG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIgc2luZ2xlID0gZmFsc2U7XG4gIHZhciByZXN1bHQ7XG4gIHZhciBjb250YWluZXI7XG5cbiAgaWYgKCghcGFyZW50IHx8ICFwYXJlbnQubG9vc2UpICYmIGNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJiBoZWFkLnR5cGUgPT09ICdwYXJhZ3JhcGgnKSB7XG4gICAgc2luZ2xlID0gdHJ1ZTtcbiAgfVxuXG4gIHJlc3VsdCA9IGFsbChoLCBzaW5nbGUgPyBoZWFkIDogbm9kZSk7XG5cbiAgaWYgKHR5cGVvZiBub2RlLmNoZWNrZWQgPT09ICdib29sZWFuJykge1xuICAgIGlmICghc2luZ2xlICYmICghaGVhZCB8fCBoZWFkLnR5cGUgIT09ICdwYXJhZ3JhcGgnKSkge1xuICAgICAgcmVzdWx0LnVuc2hpZnQoaChudWxsLCAncCcsIFtdKSk7XG4gICAgfVxuXG4gICAgY29udGFpbmVyID0gc2luZ2xlID8gcmVzdWx0IDogcmVzdWx0WzBdLmNoaWxkcmVuO1xuXG4gICAgaWYgKGNvbnRhaW5lci5sZW5ndGggIT09IDApIHtcbiAgICAgIGNvbnRhaW5lci51bnNoaWZ0KHUoJ3RleHQnLCAnICcpKTtcbiAgICB9XG5cbiAgICBjb250YWluZXIudW5zaGlmdChoKG51bGwsICdpbnB1dCcsIHtcbiAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICBjaGVja2VkOiBub2RlLmNoZWNrZWQsXG4gICAgICBkaXNhYmxlZDogdHJ1ZVxuICAgIH0pKTtcblxuICAgIC8qIEFjY29yZGluZyB0byBnaXRodWItbWFya2Rvd24tY3NzLCB0aGlzIGNsYXNzIGhpZGVzIGJ1bGxldC4gKi9cbiAgICBwcm9wcy5jbGFzc05hbWUgPSBbJ3Rhc2stbGlzdC1pdGVtJ107XG4gIH1cblxuICBpZiAoIXNpbmdsZSAmJiByZXN1bHQubGVuZ3RoICE9PSAwKSB7XG4gICAgcmVzdWx0ID0gd3JhcChyZXN1bHQsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIGgobm9kZSwgJ2xpJywgcHJvcHMsIHJlc3VsdCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyYWdyYXBoO1xuXG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbi8qIFRyYW5zZm9ybSBhIHBhcmFncmFwaC4gKi9cbmZ1bmN0aW9uIHBhcmFncmFwaChoLCBub2RlKSB7XG4gIHJldHVybiBoKG5vZGUsICdwJywgYWxsKGgsIG5vZGUpKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSByb290O1xuXG52YXIgdSA9IHJlcXVpcmUoJ3VuaXN0LWJ1aWxkZXInKTtcbnZhciB3cmFwID0gcmVxdWlyZSgnLi4vd3JhcCcpO1xudmFyIGFsbCA9IHJlcXVpcmUoJy4uL2FsbCcpO1xuXG4vKiBUcmFuc2Zvcm0gYSBgcm9vdGAuICovXG5mdW5jdGlvbiByb290KGgsIG5vZGUpIHtcbiAgcmV0dXJuIGguYXVnbWVudChub2RlLCB1KCdyb290Jywgd3JhcChhbGwoaCwgbm9kZSkpKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gc3Ryb25nO1xuXG52YXIgYWxsID0gcmVxdWlyZSgnLi4vYWxsJyk7XG5cbi8qIFRyYW5zZm9ybSBpbXBvcnRhbmNlLiAqL1xuZnVuY3Rpb24gc3Ryb25nKGgsIG5vZGUpIHtcbiAgcmV0dXJuIGgobm9kZSwgJ3N0cm9uZycsIGFsbChoLCBub2RlKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gdGFibGU7XG5cbnZhciBwb3NpdGlvbiA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtcG9zaXRpb24nKTtcbnZhciB3cmFwID0gcmVxdWlyZSgnLi4vd3JhcCcpO1xudmFyIGFsbCA9IHJlcXVpcmUoJy4uL2FsbCcpO1xuXG4vKiBUcmFuc2Zvcm0gYSB0YWJsZS4gKi9cbmZ1bmN0aW9uIHRhYmxlKGgsIG5vZGUpIHtcbiAgdmFyIHJvd3MgPSBub2RlLmNoaWxkcmVuO1xuICB2YXIgaW5kZXggPSByb3dzLmxlbmd0aDtcbiAgdmFyIGFsaWduID0gbm9kZS5hbGlnbjtcbiAgdmFyIGFsaWduTGVuZ3RoID0gYWxpZ24ubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBwb3M7XG4gIHZhciByb3c7XG4gIHZhciBvdXQ7XG4gIHZhciBuYW1lO1xuICB2YXIgY2VsbDtcblxuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIHJvdyA9IHJvd3NbaW5kZXhdLmNoaWxkcmVuO1xuICAgIG5hbWUgPSBpbmRleCA9PT0gMCA/ICd0aCcgOiAndGQnO1xuICAgIHBvcyA9IGFsaWduTGVuZ3RoO1xuICAgIG91dCA9IFtdO1xuXG4gICAgd2hpbGUgKHBvcy0tKSB7XG4gICAgICBjZWxsID0gcm93W3Bvc107XG4gICAgICBvdXRbcG9zXSA9IGgoY2VsbCwgbmFtZSwge1xuICAgICAgICBhbGlnbjogYWxpZ25bcG9zXVxuICAgICAgfSwgY2VsbCA/IHdyYXAoYWxsKGgsIGNlbGwpKSA6IFtdKTtcbiAgICB9XG5cbiAgICByZXN1bHRbaW5kZXhdID0gaChyb3dzW2luZGV4XSwgJ3RyJywgd3JhcChvdXQsIHRydWUpKTtcbiAgfVxuXG4gIHJldHVybiBoKG5vZGUsICd0YWJsZScsIHdyYXAoW1xuICAgIGgocmVzdWx0WzBdLnBvc2l0aW9uLCAndGhlYWQnLCB3cmFwKFtyZXN1bHRbMF1dLCB0cnVlKSksXG4gICAgaCh7XG4gICAgICBzdGFydDogcG9zaXRpb24uc3RhcnQocmVzdWx0WzFdKSxcbiAgICAgIGVuZDogcG9zaXRpb24uZW5kKHJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0pXG4gICAgfSwgJ3Rib2R5Jywgd3JhcChyZXN1bHQuc2xpY2UoMSksIHRydWUpKVxuICBdLCB0cnVlKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gdGV4dDtcblxudmFyIHUgPSByZXF1aXJlKCd1bmlzdC1idWlsZGVyJyk7XG52YXIgdHJpbUxpbmVzID0gcmVxdWlyZSgndHJpbS1saW5lcycpO1xuXG4vKiBUcmFuc2Zvcm0gdGV4dC4gKi9cbmZ1bmN0aW9uIHRleHQoaCwgbm9kZSkge1xuICByZXR1cm4gaC5hdWdtZW50KG5vZGUsIHUoJ3RleHQnLCB0cmltTGluZXMobm9kZS52YWx1ZSkpKTtcbn1cbiIsIid1c2Ugc3RyaWN0Jztcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9saWIvaW5kZXguanMnKTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSB0b0hBU1Q7XG5cbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJyk7XG52YXIgdSA9IHJlcXVpcmUoJ3VuaXN0LWJ1aWxkZXInKTtcbnZhciB2aXNpdCA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtdmlzaXQnKTtcbnZhciBwb3NpdGlvbiA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtcG9zaXRpb24nKTtcbnZhciBnZW5lcmF0ZWQgPSByZXF1aXJlKCd1bmlzdC11dGlsLWdlbmVyYXRlZCcpO1xudmFyIGRlZmluaXRpb25zID0gcmVxdWlyZSgnbWRhc3QtdXRpbC1kZWZpbml0aW9ucycpO1xudmFyIG9uZSA9IHJlcXVpcmUoJy4vb25lJyk7XG52YXIgZm9vdGVyID0gcmVxdWlyZSgnLi9mb290ZXInKTtcbnZhciBoYW5kbGVycyA9IHJlcXVpcmUoJy4vaGFuZGxlcnMnKTtcblxuLyogRmFjdG9yeSB0byB0cmFuc2Zvcm0uICovXG5mdW5jdGlvbiBmYWN0b3J5KHRyZWUsIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGRhbmdlcm91cyA9IHNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSFRNTDtcblxuICBoLmRhbmdlcm91cyA9IGRhbmdlcm91cztcbiAgaC5kZWZpbml0aW9uID0gZGVmaW5pdGlvbnModHJlZSwgc2V0dGluZ3MpO1xuICBoLmZvb3Rub3RlcyA9IFtdO1xuICBoLmF1Z21lbnQgPSBhdWdtZW50O1xuICBoLmhhbmRsZXJzID0geHRlbmQoaGFuZGxlcnMsIChzZXR0aW5ncy5oYW5kbGVycyB8fCB7fSkpO1xuXG4gIHZpc2l0KHRyZWUsICdmb290bm90ZURlZmluaXRpb24nLCB2aXNpdG9yKTtcblxuICByZXR1cm4gaDtcblxuICAvKiBGaW5hbGlzZSB0aGUgY3JlYXRlZCBgcmlnaHRgLCBhIEhBU1Qgbm9kZSwgZnJvbVxuICAgKiBgbGVmdGAsIGFuIE1EQVNUIG5vZGUuICAgKi9cbiAgZnVuY3Rpb24gYXVnbWVudChsZWZ0LCByaWdodCkge1xuICAgIHZhciBkYXRhO1xuICAgIHZhciBjdHg7XG5cbiAgICAvKiBIYW5kbGUgYGRhdGEuaE5hbWVgLCBgZGF0YS5oUHJvcGVydGllcywgYGhDaGlsZHJlbmAuICovXG4gICAgaWYgKGxlZnQgJiYgJ2RhdGEnIGluIGxlZnQpIHtcbiAgICAgIGRhdGEgPSBsZWZ0LmRhdGE7XG5cbiAgICAgIGlmIChyaWdodC50eXBlID09PSAnZWxlbWVudCcgJiYgZGF0YS5oTmFtZSkge1xuICAgICAgICByaWdodC50YWdOYW1lID0gZGF0YS5oTmFtZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJpZ2h0LnR5cGUgPT09ICdlbGVtZW50JyAmJiBkYXRhLmhQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHJpZ2h0LnByb3BlcnRpZXMgPSB4dGVuZChyaWdodC5wcm9wZXJ0aWVzLCBkYXRhLmhQcm9wZXJ0aWVzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJpZ2h0LmNoaWxkcmVuICYmIGRhdGEuaENoaWxkcmVuKSB7XG4gICAgICAgIHJpZ2h0LmNoaWxkcmVuID0gZGF0YS5oQ2hpbGRyZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgY3R4ID0gbGVmdCAmJiBsZWZ0LnBvc2l0aW9uID8gbGVmdCA6IHtwb3NpdGlvbjogbGVmdH07XG5cbiAgICBpZiAoIWdlbmVyYXRlZChjdHgpKSB7XG4gICAgICByaWdodC5wb3NpdGlvbiA9IHtcbiAgICAgICAgc3RhcnQ6IHBvc2l0aW9uLnN0YXJ0KGN0eCksXG4gICAgICAgIGVuZDogcG9zaXRpb24uZW5kKGN0eClcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9XG5cbiAgLyogQ3JlYXRlIGFuIGVsZW1lbnQgZm9yIGEgYG5vZGVgLiAqL1xuICBmdW5jdGlvbiBoKG5vZGUsIHRhZ05hbWUsIHByb3BzLCBjaGlsZHJlbikge1xuICAgIGlmIChcbiAgICAgIChjaGlsZHJlbiA9PT0gdW5kZWZpbmVkIHx8IGNoaWxkcmVuID09PSBudWxsKSAmJlxuICAgICAgdHlwZW9mIHByb3BzID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2xlbmd0aCcgaW4gcHJvcHNcbiAgICApIHtcbiAgICAgIGNoaWxkcmVuID0gcHJvcHM7XG4gICAgICBwcm9wcyA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBhdWdtZW50KG5vZGUsIHtcbiAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgIHRhZ05hbWU6IHRhZ05hbWUsXG4gICAgICBwcm9wZXJ0aWVzOiBwcm9wcyB8fCB7fSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbiB8fCBbXVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdmlzaXRvcihkZWZpbml0aW9uKSB7XG4gICAgaC5mb290bm90ZXMucHVzaChkZWZpbml0aW9uKTtcbiAgfVxufVxuXG4vKiBUcmFuc2Zvcm0gYHRyZWVgLCB3aGljaCBpcyBhbiBNREFTVCBub2RlLCB0byBhIEhBU1Qgbm9kZS4gKi9cbmZ1bmN0aW9uIHRvSEFTVCh0cmVlLCBvcHRpb25zKSB7XG4gIHZhciBoID0gZmFjdG9yeSh0cmVlLCBvcHRpb25zKTtcbiAgdmFyIG5vZGUgPSBvbmUoaCwgdHJlZSk7XG4gIHZhciBmb290bm90ZXMgPSBmb290ZXIoaCk7XG5cbiAgaWYgKG5vZGUgJiYgbm9kZS5jaGlsZHJlbiAmJiBmb290bm90ZXMpIHtcbiAgICBub2RlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5jb25jYXQodSgndGV4dCcsICdcXG4nKSwgZm9vdG5vdGVzKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbWRhc3QyaGFzdCA9IHJlcXVpcmUoJ21kYXN0LXV0aWwtdG8taGFzdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlbWFyazJyZWh5cGU7XG5cbi8qIEF0dGFjaGVyLlxuICogSWYgYSBkZXN0aW5hdGlvbiBpcyBnaXZlbiwgcnVucyB0aGUgZGVzdGluYXRpb24gd2l0aFxuICogdGhlIG5ldyBIQVNUIHRyZWUgKGJyaWRnZS1tb2RlKS5cbiAqIFdpdGhvdXQgZGVzdGluYXRpb24sIHJldHVybnMgdGhlIEhBU1QgdHJlZTogZnVydGhlclxuICogcGx1Zy1pbnMgcnVuIG9uIHRoYXQgdHJlZSAobXV0YXRlLW1vZGUpLiAqL1xuZnVuY3Rpb24gcmVtYXJrMnJlaHlwZShkZXN0aW5hdGlvbiwgb3B0aW9ucykge1xuICBpZiAoZGVzdGluYXRpb24gJiYgIWRlc3RpbmF0aW9uLnByb2Nlc3MpIHtcbiAgICBvcHRpb25zID0gZGVzdGluYXRpb247XG4gICAgZGVzdGluYXRpb24gPSBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGRlc3RpbmF0aW9uID8gYnJpZGdlKGRlc3RpbmF0aW9uLCBvcHRpb25zKSA6IG11dGF0ZShvcHRpb25zKTtcbn1cblxuLyogQnJpZGdlLW1vZGUuICBSdW5zIHRoZSBkZXN0aW5hdGlvbiB3aXRoIHRoZSBuZXcgSEFTVFxuICogdHJlZS4gKi9cbmZ1bmN0aW9uIGJyaWRnZShkZXN0aW5hdGlvbiwgb3B0aW9ucykge1xuICByZXR1cm4gdHJhbnNmb3JtZXI7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybWVyKG5vZGUsIGZpbGUsIG5leHQpIHtcbiAgICBkZXN0aW5hdGlvbi5ydW4obWRhc3QyaGFzdChub2RlLCBvcHRpb25zKSwgZmlsZSwgZG9uZSk7XG4gICAgZnVuY3Rpb24gZG9uZShlcnIpIHtcbiAgICAgIG5leHQoZXJyKTtcbiAgICB9XG4gIH1cbn1cblxuLyogTXV0YXRlLW1vZGUuICBGdXJ0aGVyIHRyYW5zZm9ybWVycyBydW4gb24gdGhlIEhBU1QgdHJlZS4gKi9cbmZ1bmN0aW9uIG11dGF0ZShvcHRpb25zKSB7XG4gIHJldHVybiB0cmFuc2Zvcm1lcjtcbiAgZnVuY3Rpb24gdHJhbnNmb3JtZXIobm9kZSkge1xuICAgIHJldHVybiBtZGFzdDJoYXN0KG5vZGUsIG9wdGlvbnMpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gd2hpdGVzcGFjZTtcblxudmFyIGZyb21Db2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbnZhciByZSA9IC9cXHMvO1xuXG4vKiBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXJcbiAqIGNvZGUgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciwgaXMgYSB3aGl0ZXNwYWNlIGNoYXJhY3Rlci4gKi9cbmZ1bmN0aW9uIHdoaXRlc3BhY2UoY2hhcmFjdGVyKSB7XG4gIHJldHVybiByZS50ZXN0KFxuICAgIHR5cGVvZiBjaGFyYWN0ZXIgPT09ICdudW1iZXInID8gZnJvbUNvZGUoY2hhcmFjdGVyKSA6IGNoYXJhY3Rlci5jaGFyQXQoMClcbiAgKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHdoaXRlc3BhY2UgPSByZXF1aXJlKCdpcy13aGl0ZXNwYWNlLWNoYXJhY3RlcicpO1xuXG52YXIgQ19QSVBFID0gJ3wnO1xudmFyIERPVUJMRSA9ICd8fCc7XG5cbmZ1bmN0aW9uIGxvY2F0b3IodmFsdWUsIGZyb21JbmRleCkge1xuICB2YXIgaW5kZXggPSB2YWx1ZS5pbmRleE9mKERPVUJMRSwgZnJvbUluZGV4KTtcbiAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiBwbHVnaW4oKSB7XG4gIGZ1bmN0aW9uIGlubGluZVRva2VuaXplcihlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5nZm0gfHwgdmFsdWUuY2hhckF0KDApICE9PSBDX1BJUEUgfHwgdmFsdWUuY2hhckF0KDEpICE9PSBDX1BJUEUgfHwgdmFsdWUuc3RhcnRzV2l0aChDX1BJUEUucmVwZWF0KDQpKSB8fCB3aGl0ZXNwYWNlKHZhbHVlLmNoYXJBdCgyKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgY2hhcmFjdGVyID0gJyc7XG4gICAgdmFyIHByZXZpb3VzID0gJyc7XG4gICAgdmFyIHByZWNlZGluZyA9ICcnO1xuICAgIHZhciBzdWJ2YWx1ZSA9ICcnO1xuICAgIHZhciBpbmRleCA9IDE7XG4gICAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICB2YXIgbm93ID0gZWF0Lm5vdygpO1xuICAgIG5vdy5jb2x1bW4gKz0gMjtcbiAgICBub3cub2Zmc2V0ICs9IDI7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19QSVBFICYmIHByZXZpb3VzID09PSBDX1BJUEUgJiYgKCFwcmVjZWRpbmcgfHwgIXdoaXRlc3BhY2UocHJlY2VkaW5nKSkpIHtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gICAgICAgIGlmIChzaWxlbnQpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIHJldHVybiBlYXQoRE9VQkxFICsgc3VidmFsdWUgKyBET1VCTEUpKHtcbiAgICAgICAgICB0eXBlOiAna2JkJyxcbiAgICAgICAgICBjaGlsZHJlbjogdGhpcy50b2tlbml6ZUlubGluZShzdWJ2YWx1ZSwgbm93KSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBoTmFtZTogJ2tiZCdcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBzdWJ2YWx1ZSArPSBwcmV2aW91cztcbiAgICAgIHByZWNlZGluZyA9IHByZXZpb3VzO1xuICAgICAgcHJldmlvdXMgPSBjaGFyYWN0ZXI7XG4gICAgfVxuICB9XG4gIGlubGluZVRva2VuaXplci5sb2NhdG9yID0gbG9jYXRvcjtcblxuICB2YXIgUGFyc2VyID0gdGhpcy5QYXJzZXI7XG5cbiAgLy8gSW5qZWN0IGlubGluZVRva2VuaXplclxuICB2YXIgaW5saW5lVG9rZW5pemVycyA9IFBhcnNlci5wcm90b3R5cGUuaW5saW5lVG9rZW5pemVycztcbiAgdmFyIGlubGluZU1ldGhvZHMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZU1ldGhvZHM7XG4gIGlubGluZVRva2VuaXplcnMua2JkID0gaW5saW5lVG9rZW5pemVyO1xuICBpbmxpbmVNZXRob2RzLnNwbGljZShpbmxpbmVNZXRob2RzLmluZGV4T2YoJ3RleHQnKSwgMCwgJ2tiZCcpO1xuXG4gIHZhciBDb21waWxlciA9IHRoaXMuQ29tcGlsZXI7XG5cbiAgLy8gU3RyaW5naWZ5XG4gIGlmIChDb21waWxlcikge1xuICAgIHZhciB2aXNpdG9ycyA9IENvbXBpbGVyLnByb3RvdHlwZS52aXNpdG9ycztcbiAgICB2aXNpdG9ycy5rYmQgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgcmV0dXJuICd8fCcgKyB0aGlzLmFsbChub2RlKS5qb2luKCcnKSArICd8fCc7XG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBsdWdpbjsiLCJmdW5jdGlvbiBsb2NhdG9yICh2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHJldHVybiB2YWx1ZS5pbmRleE9mKCckJywgZnJvbUluZGV4KVxufVxuXG5jb25zdCBFU0NBUEVEX0lOTElORV9NQVRIID0gL15cXFxcXFwkL1xuY29uc3QgSU5MSU5FX01BVEggPSAvXlxcJCgoPzpcXFxcXFwkfFteJF0pKylcXCQvXG5jb25zdCBJTkxJTkVfTUFUSF9ET1VCTEUgPSAvXlxcJFxcJCgoPzpcXFxcXFwkfFteJF0pKylcXCRcXCQvXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5saW5lUGx1Z2luIChvcHRzKSB7XG4gIGZ1bmN0aW9uIGlubGluZVRva2VuaXplciAoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gICAgbGV0IGlzRG91YmxlID0gdHJ1ZVxuICAgIGxldCBtYXRjaCA9IElOTElORV9NQVRIX0RPVUJMRS5leGVjKHZhbHVlKVxuICAgIGlmICghbWF0Y2gpIHtcbiAgICAgIG1hdGNoID0gSU5MSU5FX01BVEguZXhlYyh2YWx1ZSlcbiAgICAgIGlzRG91YmxlID0gZmFsc2VcbiAgICB9XG4gICAgY29uc3QgZXNjYXBlZCA9IEVTQ0FQRURfSU5MSU5FX01BVEguZXhlYyh2YWx1ZSlcblxuICAgIGlmIChlc2NhcGVkKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZWF0KGVzY2FwZWRbMF0pKHtcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICB2YWx1ZTogJyQnXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh2YWx1ZS5zbGljZSgtMikgPT09ICdcXFxcJCcpIHtcbiAgICAgIHJldHVybiBlYXQodmFsdWUpKHtcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICB2YWx1ZTogdmFsdWUuc2xpY2UoMCwgLTIpICsgJyQnXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChtYXRjaCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICAgICAgaWYgKHNpbGVudCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBlbmRpbmdEb2xsYXJJbkJhY2t0aWNrcyA9IG1hdGNoWzBdLmluY2x1ZGVzKCdgJykgJiYgdmFsdWUuc2xpY2UobWF0Y2hbMF0ubGVuZ3RoKS5pbmNsdWRlcygnYCcpXG4gICAgICBpZiAoZW5kaW5nRG9sbGFySW5CYWNrdGlja3MpIHtcbiAgICAgICAgY29uc3QgdG9FYXQgPSB2YWx1ZS5zbGljZSgwLCB2YWx1ZS5pbmRleE9mKCdgJykpXG4gICAgICAgIHJldHVybiBlYXQodG9FYXQpKHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdmFsdWU6IHRvRWF0XG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRyaW1tZWRDb250ZW50ID0gbWF0Y2hbMV0udHJpbSgpXG5cbiAgICAgIHJldHVybiBlYXQobWF0Y2hbMF0pKHtcbiAgICAgICAgdHlwZTogJ2lubGluZU1hdGgnLFxuICAgICAgICB2YWx1ZTogdHJpbW1lZENvbnRlbnQsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoTmFtZTogJ3NwYW4nLFxuICAgICAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdpbmxpbmVNYXRoJyArIChpc0RvdWJsZSAmJiBvcHRzLmlubGluZU1hdGhEb3VibGUgPyAnIGlubGluZU1hdGhEb3VibGUnIDogJycpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoQ2hpbGRyZW46IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB2YWx1ZTogdHJpbW1lZENvbnRlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG4gIGlubGluZVRva2VuaXplci5sb2NhdG9yID0gbG9jYXRvclxuXG4gIGNvbnN0IFBhcnNlciA9IHRoaXMuUGFyc2VyXG5cbiAgLy8gSW5qZWN0IGlubGluZVRva2VuaXplclxuICBjb25zdCBpbmxpbmVUb2tlbml6ZXJzID0gUGFyc2VyLnByb3RvdHlwZS5pbmxpbmVUb2tlbml6ZXJzXG4gIGNvbnN0IGlubGluZU1ldGhvZHMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZU1ldGhvZHNcbiAgaW5saW5lVG9rZW5pemVycy5tYXRoID0gaW5saW5lVG9rZW5pemVyXG4gIGlubGluZU1ldGhvZHMuc3BsaWNlKGlubGluZU1ldGhvZHMuaW5kZXhPZigndGV4dCcpLCAwLCAnbWF0aCcpXG5cbiAgY29uc3QgQ29tcGlsZXIgPSB0aGlzLkNvbXBpbGVyXG5cbiAgLy8gU3RyaW5naWZ5IGZvciBtYXRoIGlubGluZVxuICBpZiAoQ29tcGlsZXIgIT0gbnVsbCkge1xuICAgIGNvbnN0IHZpc2l0b3JzID0gQ29tcGlsZXIucHJvdG90eXBlLnZpc2l0b3JzXG4gICAgdmlzaXRvcnMuaW5saW5lTWF0aCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICByZXR1cm4gJyQnICsgbm9kZS52YWx1ZSArICckJ1xuICAgIH1cbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRyaW1UcmFpbGluZ0xpbmVzO1xuXG52YXIgbGluZSA9ICdcXG4nO1xuXG4vKiBSZW1vdmUgZmluYWwgbmV3bGluZSBjaGFyYWN0ZXJzIGZyb20gYHZhbHVlYC4gKi9cbmZ1bmN0aW9uIHRyaW1UcmFpbGluZ0xpbmVzKHZhbHVlKSB7XG4gIHZhciB2YWwgPSBTdHJpbmcodmFsdWUpO1xuICB2YXIgaW5kZXggPSB2YWwubGVuZ3RoO1xuXG4gIHdoaWxlICh2YWwuY2hhckF0KC0taW5kZXgpID09PSBsaW5lKSB7IC8qIGVtcHR5ICovIH1cblxuICByZXR1cm4gdmFsLnNsaWNlKDAsIGluZGV4ICsgMSk7XG59XG4iLCJ2YXIgdHJpbSA9IHJlcXVpcmUoJ3RyaW0tdHJhaWxpbmctbGluZXMnKVxuXG52YXIgQ19ORVdMSU5FID0gJ1xcbidcbnZhciBDX1RBQiA9ICdcXHQnXG52YXIgQ19TUEFDRSA9ICcgJ1xudmFyIENfRE9MTEFSID0gJyQnXG5cbnZhciBNSU5fRkVOQ0VfQ09VTlQgPSAyXG52YXIgQ09ERV9JTkRFTlRfQ09VTlQgPSA0XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYmxvY2tQbHVnaW4gKG9wdHMpIHtcbiAgZnVuY3Rpb24gYmxvY2tUb2tlbml6ZXIgKGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICAgIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGggKyAxXG4gICAgdmFyIGluZGV4ID0gMFxuICAgIHZhciBzdWJ2YWx1ZSA9ICcnXG4gICAgdmFyIGZlbmNlQ291bnRcbiAgICB2YXIgbWFya2VyXG4gICAgdmFyIGNoYXJhY3RlclxuICAgIHZhciBxdWV1ZVxuICAgIHZhciBjb250ZW50XG4gICAgdmFyIGV4ZGVudGVkQ29udGVudFxuICAgIHZhciBjbG9zaW5nXG4gICAgdmFyIGV4ZGVudGVkQ2xvc2luZ1xuICAgIHZhciBpbmRlbnRcbiAgICB2YXIgbm93XG5cbiAgICAvKiBFYXQgaW5pdGlhbCBzcGFjaW5nLiAqL1xuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KVxuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmIGNoYXJhY3RlciAhPT0gQ19UQUIpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyXG4gICAgICBpbmRleCsrXG4gICAgfVxuXG4gICAgaW5kZW50ID0gaW5kZXhcblxuICAgIC8qIEVhdCB0aGUgZmVuY2UuICovXG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19ET0xMQVIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGluZGV4KytcbiAgICBtYXJrZXIgPSBjaGFyYWN0ZXJcbiAgICBmZW5jZUNvdW50ID0gMVxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlclxuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpXG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgIT09IG1hcmtlcikge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXJcbiAgICAgIGZlbmNlQ291bnQrK1xuICAgICAgaW5kZXgrK1xuICAgIH1cblxuICAgIGlmIChmZW5jZUNvdW50IDwgTUlOX0ZFTkNFX0NPVU5UKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvKiBFYXQgZXZlcnl0aGluZyBhZnRlciB0aGUgZmVuY2UuICovXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpXG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfTkVXTElORSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19ET0xMQVIpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlclxuICAgICAgaW5kZXgrK1xuICAgIH1cblxuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleClcblxuICAgIGlmIChzaWxlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgbm93ID0gZWF0Lm5vdygpXG4gICAgbm93LmNvbHVtbiArPSBzdWJ2YWx1ZS5sZW5ndGhcbiAgICBub3cub2Zmc2V0ICs9IHN1YnZhbHVlLmxlbmd0aFxuXG4gICAgcXVldWUgPSBjbG9zaW5nID0gZXhkZW50ZWRDbG9zaW5nID0gY29udGVudCA9IGV4ZGVudGVkQ29udGVudCA9ICcnXG5cbiAgICAvKiBFYXQgY29udGVudC4gKi9cbiAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleClcbiAgICAgIGNvbnRlbnQgKz0gY2xvc2luZ1xuICAgICAgZXhkZW50ZWRDb250ZW50ICs9IGV4ZGVudGVkQ2xvc2luZ1xuICAgICAgY2xvc2luZyA9IGV4ZGVudGVkQ2xvc2luZyA9ICcnXG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgIT09IENfTkVXTElORSkge1xuICAgICAgICBjb250ZW50ICs9IGNoYXJhY3RlclxuICAgICAgICBleGRlbnRlZENsb3NpbmcgKz0gY2hhcmFjdGVyXG4gICAgICAgIGluZGV4KytcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLyogQWRkIHRoZSBuZXdsaW5lIHRvIGBzdWJ2YWx1ZWAgaWYgaXRzIHRoZSBmaXJzdFxuICAgICAgKiBjaGFyYWN0ZXIuICBPdGhlcndpc2UsIGFkZCBpdCB0byB0aGUgYGNsb3NpbmdgXG4gICAgICAqIHF1ZXVlLiAqL1xuICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgY2xvc2luZyArPSBjaGFyYWN0ZXJcbiAgICAgICAgZXhkZW50ZWRDbG9zaW5nICs9IGNoYXJhY3RlclxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyXG4gICAgICB9XG5cbiAgICAgIHF1ZXVlID0gJydcbiAgICAgIGluZGV4KytcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleClcblxuICAgICAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFKSB7XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXVlICs9IGNoYXJhY3RlclxuICAgICAgICBpbmRleCsrXG4gICAgICB9XG5cbiAgICAgIGNsb3NpbmcgKz0gcXVldWVcbiAgICAgIGV4ZGVudGVkQ2xvc2luZyArPSBxdWV1ZS5zbGljZShpbmRlbnQpXG5cbiAgICAgIGlmIChxdWV1ZS5sZW5ndGggPj0gQ09ERV9JTkRFTlRfQ09VTlQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgcXVldWUgPSAnJ1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KVxuXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgIT09IG1hcmtlcikge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZSArPSBjaGFyYWN0ZXJcbiAgICAgICAgaW5kZXgrK1xuICAgICAgfVxuXG4gICAgICBjbG9zaW5nICs9IHF1ZXVlXG4gICAgICBleGRlbnRlZENsb3NpbmcgKz0gcXVldWVcblxuICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA8IGZlbmNlQ291bnQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgcXVldWUgPSAnJ1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KVxuXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfTkVXTElORSkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBjbG9zaW5nICs9IGNoYXJhY3RlclxuICAgICAgICBleGRlbnRlZENsb3NpbmcgKz0gY2hhcmFjdGVyXG4gICAgICAgIGluZGV4KytcbiAgICAgIH1cblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBzdWJ2YWx1ZSArPSBjb250ZW50ICsgY2xvc2luZ1xuICAgIGNvbnN0IHRyaW1tZWRDb250ZW50ID0gdHJpbShleGRlbnRlZENvbnRlbnQpXG4gICAgcmV0dXJuIGVhdChzdWJ2YWx1ZSkoe1xuICAgICAgdHlwZTogJ21hdGgnLFxuICAgICAgdmFsdWU6IHRyaW1tZWRDb250ZW50LFxuICAgICAgZGF0YToge1xuICAgICAgICBoTmFtZTogJ2RpdicsXG4gICAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAnbWF0aCdcbiAgICAgICAgfSxcbiAgICAgICAgaENoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgdmFsdWU6IHRyaW1tZWRDb250ZW50XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IFBhcnNlciA9IHRoaXMuUGFyc2VyXG5cbiAgLy8gSW5qZWN0IGJsb2NrVG9rZW5pemVyXG4gIGNvbnN0IGJsb2NrVG9rZW5pemVycyA9IFBhcnNlci5wcm90b3R5cGUuYmxvY2tUb2tlbml6ZXJzXG4gIGNvbnN0IGJsb2NrTWV0aG9kcyA9IFBhcnNlci5wcm90b3R5cGUuYmxvY2tNZXRob2RzXG4gIGJsb2NrVG9rZW5pemVycy5tYXRoID0gYmxvY2tUb2tlbml6ZXJcbiAgYmxvY2tNZXRob2RzLnNwbGljZShibG9ja01ldGhvZHMuaW5kZXhPZignZmVuY2VkQ29kZScpICsgMSwgMCwgJ21hdGgnKVxuXG4gIC8vIEluamVjdCBtYXRoIHRvIGludGVycnVwdCBydWxlc1xuICBjb25zdCBpbnRlcnJ1cHRQYXJhZ3JhcGggPSBQYXJzZXIucHJvdG90eXBlLmludGVycnVwdFBhcmFncmFwaFxuICBjb25zdCBpbnRlcnJ1cHRMaXN0ID0gUGFyc2VyLnByb3RvdHlwZS5pbnRlcnJ1cHRMaXN0XG4gIGNvbnN0IGludGVycnVwdEJsb2NrcXVvdGUgPSBQYXJzZXIucHJvdG90eXBlLmludGVycnVwdEJsb2NrcXVvdGVcbiAgaW50ZXJydXB0UGFyYWdyYXBoLnNwbGljZShpbnRlcnJ1cHRQYXJhZ3JhcGguaW5kZXhPZignZmVuY2VkQ29kZScpICsgMSwgMCwgWydtYXRoJ10pXG4gIGludGVycnVwdExpc3Quc3BsaWNlKGludGVycnVwdExpc3QuaW5kZXhPZignZmVuY2VkQ29kZScpICsgMSwgMCwgWydtYXRoJ10pXG4gIGludGVycnVwdEJsb2NrcXVvdGUuc3BsaWNlKGludGVycnVwdEJsb2NrcXVvdGUuaW5kZXhPZignZmVuY2VkQ29kZScpICsgMSwgMCwgWydtYXRoJ10pXG5cbiAgY29uc3QgQ29tcGlsZXIgPSB0aGlzLkNvbXBpbGVyXG5cbiAgLy8gU3RyaW5naWZ5IGZvciBtYXRoIGJsb2NrXG4gIGlmIChDb21waWxlciAhPSBudWxsKSB7XG4gICAgY29uc3QgdmlzaXRvcnMgPSBDb21waWxlci5wcm90b3R5cGUudmlzaXRvcnNcbiAgICB2aXNpdG9ycy5tYXRoID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiAnJCRcXG4nICsgbm9kZS52YWx1ZSArICdcXG4kJCdcbiAgICB9XG4gIH1cbn1cbiIsImNvbnN0IGlubGluZVBsdWdpbiA9IHJlcXVpcmUoJy4vaW5saW5lJylcbmNvbnN0IGJsb2NrUGx1Z2luID0gcmVxdWlyZSgnLi9ibG9jaycpXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbWF0aFBsdWdpbiAob3B0cyA9IHt9KSB7XG4gIGJsb2NrUGx1Z2luLmNhbGwodGhpcywgb3B0cylcbiAgaW5saW5lUGx1Z2luLmNhbGwodGhpcywgb3B0cylcbn1cbiIsIi8qXG5TeW50YXggaGlnaGxpZ2h0aW5nIHdpdGggbGFuZ3VhZ2UgYXV0b2RldGVjdGlvbi5cbmh0dHBzOi8vaGlnaGxpZ2h0anMub3JnL1xuKi9cblxuKGZ1bmN0aW9uKGZhY3RvcnkpIHtcblxuICAvLyBGaW5kIHRoZSBnbG9iYWwgb2JqZWN0IGZvciBleHBvcnQgdG8gYm90aCB0aGUgYnJvd3NlciBhbmQgd2ViIHdvcmtlcnMuXG4gIHZhciBnbG9iYWxPYmplY3QgPSB0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JyAmJiB3aW5kb3cgfHxcbiAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBzZWxmID09PSAnb2JqZWN0JyAmJiBzZWxmO1xuXG4gIC8vIFNldHVwIGhpZ2hsaWdodC5qcyBmb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy4gRmlyc3QgaXMgTm9kZS5qcyBvclxuICAvLyBDb21tb25KUy5cbiAgaWYodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgZmFjdG9yeShleHBvcnRzKTtcbiAgfSBlbHNlIGlmKGdsb2JhbE9iamVjdCkge1xuICAgIC8vIEV4cG9ydCBobGpzIGdsb2JhbGx5IGV2ZW4gd2hlbiB1c2luZyBBTUQgZm9yIGNhc2VzIHdoZW4gdGhpcyBzY3JpcHRcbiAgICAvLyBpcyBsb2FkZWQgd2l0aCBvdGhlcnMgdGhhdCBtYXkgc3RpbGwgZXhwZWN0IGEgZ2xvYmFsIGhsanMuXG4gICAgZ2xvYmFsT2JqZWN0LmhsanMgPSBmYWN0b3J5KHt9KTtcblxuICAgIC8vIEZpbmFsbHkgcmVnaXN0ZXIgdGhlIGdsb2JhbCBobGpzIHdpdGggQU1ELlxuICAgIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgZGVmaW5lKFtdLCBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbE9iamVjdC5obGpzO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn0oZnVuY3Rpb24oaGxqcykge1xuICAvLyBDb252ZW5pZW5jZSB2YXJpYWJsZXMgZm9yIGJ1aWxkLWluIG9iamVjdHNcbiAgdmFyIEFycmF5UHJvdG8gPSBbXSxcbiAgICAgIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cztcblxuICAvLyBHbG9iYWwgaW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgd2l0aGluIHRoZSBoaWdobGlnaHQuanMgbGlicmFyeS5cbiAgdmFyIGxhbmd1YWdlcyA9IHt9LFxuICAgICAgYWxpYXNlcyAgID0ge307XG5cbiAgLy8gUmVndWxhciBleHByZXNzaW9ucyB1c2VkIHRocm91Z2hvdXQgdGhlIGhpZ2hsaWdodC5qcyBsaWJyYXJ5LlxuICB2YXIgbm9IaWdobGlnaHRSZSAgICA9IC9eKG5vLT9oaWdobGlnaHR8cGxhaW58dGV4dCkkL2ksXG4gICAgICBsYW5ndWFnZVByZWZpeFJlID0gL1xcYmxhbmcoPzp1YWdlKT8tKFtcXHctXSspXFxiL2ksXG4gICAgICBmaXhNYXJrdXBSZSAgICAgID0gLygoXig8W14+XSs+fFxcdHwpK3woPzpcXG4pKSkvZ207XG5cbiAgdmFyIHNwYW5FbmRUYWcgPSAnPC9zcGFuPic7XG5cbiAgLy8gR2xvYmFsIG9wdGlvbnMgdXNlZCB3aGVuIHdpdGhpbiBleHRlcm5hbCBBUElzLiBUaGlzIGlzIG1vZGlmaWVkIHdoZW5cbiAgLy8gY2FsbGluZyB0aGUgYGhsanMuY29uZmlndXJlYCBmdW5jdGlvbi5cbiAgdmFyIG9wdGlvbnMgPSB7XG4gICAgY2xhc3NQcmVmaXg6ICdobGpzLScsXG4gICAgdGFiUmVwbGFjZTogbnVsbCxcbiAgICB1c2VCUjogZmFsc2UsXG4gICAgbGFuZ3VhZ2VzOiB1bmRlZmluZWRcbiAgfTtcblxuXG4gIC8qIFV0aWxpdHkgZnVuY3Rpb25zICovXG5cbiAgZnVuY3Rpb24gZXNjYXBlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRhZyhub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRlc3RSZShyZSwgbGV4ZW1lKSB7XG4gICAgdmFyIG1hdGNoID0gcmUgJiYgcmUuZXhlYyhsZXhlbWUpO1xuICAgIHJldHVybiBtYXRjaCAmJiBtYXRjaC5pbmRleCA9PT0gMDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzTm90SGlnaGxpZ2h0ZWQobGFuZ3VhZ2UpIHtcbiAgICByZXR1cm4gbm9IaWdobGlnaHRSZS50ZXN0KGxhbmd1YWdlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJsb2NrTGFuZ3VhZ2UoYmxvY2spIHtcbiAgICB2YXIgaSwgbWF0Y2gsIGxlbmd0aCwgX2NsYXNzO1xuICAgIHZhciBjbGFzc2VzID0gYmxvY2suY2xhc3NOYW1lICsgJyAnO1xuXG4gICAgY2xhc3NlcyArPSBibG9jay5wYXJlbnROb2RlID8gYmxvY2sucGFyZW50Tm9kZS5jbGFzc05hbWUgOiAnJztcblxuICAgIC8vIGxhbmd1YWdlLSogdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG5vbi1wcmVmaXhlZCBjbGFzcyBuYW1lcy5cbiAgICBtYXRjaCA9IGxhbmd1YWdlUHJlZml4UmUuZXhlYyhjbGFzc2VzKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiBnZXRMYW5ndWFnZShtYXRjaFsxXSkgPyBtYXRjaFsxXSA6ICduby1oaWdobGlnaHQnO1xuICAgIH1cblxuICAgIGNsYXNzZXMgPSBjbGFzc2VzLnNwbGl0KC9cXHMrLyk7XG5cbiAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBjbGFzc2VzLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBfY2xhc3MgPSBjbGFzc2VzW2ldXG5cbiAgICAgIGlmIChpc05vdEhpZ2hsaWdodGVkKF9jbGFzcykgfHwgZ2V0TGFuZ3VhZ2UoX2NsYXNzKSkge1xuICAgICAgICByZXR1cm4gX2NsYXNzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaGVyaXQocGFyZW50KSB7ICAvLyBpbmhlcml0KHBhcmVudCwgb3ZlcnJpZGVfb2JqLCBvdmVycmlkZV9vYmosIC4uLilcbiAgICB2YXIga2V5O1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICB2YXIgb2JqZWN0cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG5cbiAgICBmb3IgKGtleSBpbiBwYXJlbnQpXG4gICAgICByZXN1bHRba2V5XSA9IHBhcmVudFtrZXldO1xuICAgIG9iamVjdHMuZm9yRWFjaChmdW5jdGlvbihvYmopIHtcbiAgICAgIGZvciAoa2V5IGluIG9iailcbiAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyogU3RyZWFtIG1lcmdpbmcgKi9cblxuICBmdW5jdGlvbiBub2RlU3RyZWFtKG5vZGUpIHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgKGZ1bmN0aW9uIF9ub2RlU3RyZWFtKG5vZGUsIG9mZnNldCkge1xuICAgICAgZm9yICh2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIGlmIChjaGlsZC5ub2RlVHlwZSA9PT0gMylcbiAgICAgICAgICBvZmZzZXQgKz0gY2hpbGQubm9kZVZhbHVlLmxlbmd0aDtcbiAgICAgICAgZWxzZSBpZiAoY2hpbGQubm9kZVR5cGUgPT09IDEpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICBldmVudDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgbm9kZTogY2hpbGRcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBvZmZzZXQgPSBfbm9kZVN0cmVhbShjaGlsZCwgb2Zmc2V0KTtcbiAgICAgICAgICAvLyBQcmV2ZW50IHZvaWQgZWxlbWVudHMgZnJvbSBoYXZpbmcgYW4gZW5kIHRhZyB0aGF0IHdvdWxkIGFjdHVhbGx5XG4gICAgICAgICAgLy8gZG91YmxlIHRoZW0gaW4gdGhlIG91dHB1dC4gVGhlcmUgYXJlIG1vcmUgdm9pZCBlbGVtZW50cyBpbiBIVE1MXG4gICAgICAgICAgLy8gYnV0IHdlIGxpc3Qgb25seSB0aG9zZSByZWFsaXN0aWNhbGx5IGV4cGVjdGVkIGluIGNvZGUgZGlzcGxheS5cbiAgICAgICAgICBpZiAoIXRhZyhjaGlsZCkubWF0Y2goL2JyfGhyfGltZ3xpbnB1dC8pKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgIGV2ZW50OiAnc3RvcCcsXG4gICAgICAgICAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgICAgICAgICBub2RlOiBjaGlsZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH0pKG5vZGUsIDApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBmdW5jdGlvbiBtZXJnZVN0cmVhbXMob3JpZ2luYWwsIGhpZ2hsaWdodGVkLCB2YWx1ZSkge1xuICAgIHZhciBwcm9jZXNzZWQgPSAwO1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICB2YXIgbm9kZVN0YWNrID0gW107XG5cbiAgICBmdW5jdGlvbiBzZWxlY3RTdHJlYW0oKSB7XG4gICAgICBpZiAoIW9yaWdpbmFsLmxlbmd0aCB8fCAhaGlnaGxpZ2h0ZWQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5sZW5ndGggPyBvcmlnaW5hbCA6IGhpZ2hsaWdodGVkO1xuICAgICAgfVxuICAgICAgaWYgKG9yaWdpbmFsWzBdLm9mZnNldCAhPT0gaGlnaGxpZ2h0ZWRbMF0ub2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiAob3JpZ2luYWxbMF0ub2Zmc2V0IDwgaGlnaGxpZ2h0ZWRbMF0ub2Zmc2V0KSA/IG9yaWdpbmFsIDogaGlnaGxpZ2h0ZWQ7XG4gICAgICB9XG5cbiAgICAgIC8qXG4gICAgICBUbyBhdm9pZCBzdGFydGluZyB0aGUgc3RyZWFtIGp1c3QgYmVmb3JlIGl0IHNob3VsZCBzdG9wIHRoZSBvcmRlciBpc1xuICAgICAgZW5zdXJlZCB0aGF0IG9yaWdpbmFsIGFsd2F5cyBzdGFydHMgZmlyc3QgYW5kIGNsb3NlcyBsYXN0OlxuXG4gICAgICBpZiAoZXZlbnQxID09ICdzdGFydCcgJiYgZXZlbnQyID09ICdzdGFydCcpXG4gICAgICAgIHJldHVybiBvcmlnaW5hbDtcbiAgICAgIGlmIChldmVudDEgPT0gJ3N0YXJ0JyAmJiBldmVudDIgPT0gJ3N0b3AnKVxuICAgICAgICByZXR1cm4gaGlnaGxpZ2h0ZWQ7XG4gICAgICBpZiAoZXZlbnQxID09ICdzdG9wJyAmJiBldmVudDIgPT0gJ3N0YXJ0JylcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsO1xuICAgICAgaWYgKGV2ZW50MSA9PSAnc3RvcCcgJiYgZXZlbnQyID09ICdzdG9wJylcbiAgICAgICAgcmV0dXJuIGhpZ2hsaWdodGVkO1xuXG4gICAgICAuLi4gd2hpY2ggaXMgY29sbGFwc2VkIHRvOlxuICAgICAgKi9cbiAgICAgIHJldHVybiBoaWdobGlnaHRlZFswXS5ldmVudCA9PT0gJ3N0YXJ0JyA/IG9yaWdpbmFsIDogaGlnaGxpZ2h0ZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb3Blbihub2RlKSB7XG4gICAgICBmdW5jdGlvbiBhdHRyX3N0cihhKSB7cmV0dXJuICcgJyArIGEubm9kZU5hbWUgKyAnPVwiJyArIGVzY2FwZShhLnZhbHVlKS5yZXBsYWNlKCdcIicsICcmcXVvdDsnKSArICdcIic7fVxuICAgICAgcmVzdWx0ICs9ICc8JyArIHRhZyhub2RlKSArIEFycmF5UHJvdG8ubWFwLmNhbGwobm9kZS5hdHRyaWJ1dGVzLCBhdHRyX3N0cikuam9pbignJykgKyAnPic7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvc2Uobm9kZSkge1xuICAgICAgcmVzdWx0ICs9ICc8LycgKyB0YWcobm9kZSkgKyAnPic7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGV2ZW50KSB7XG4gICAgICAoZXZlbnQuZXZlbnQgPT09ICdzdGFydCcgPyBvcGVuIDogY2xvc2UpKGV2ZW50Lm5vZGUpO1xuICAgIH1cblxuICAgIHdoaWxlIChvcmlnaW5hbC5sZW5ndGggfHwgaGlnaGxpZ2h0ZWQubGVuZ3RoKSB7XG4gICAgICB2YXIgc3RyZWFtID0gc2VsZWN0U3RyZWFtKCk7XG4gICAgICByZXN1bHQgKz0gZXNjYXBlKHZhbHVlLnN1YnN0cmluZyhwcm9jZXNzZWQsIHN0cmVhbVswXS5vZmZzZXQpKTtcbiAgICAgIHByb2Nlc3NlZCA9IHN0cmVhbVswXS5vZmZzZXQ7XG4gICAgICBpZiAoc3RyZWFtID09PSBvcmlnaW5hbCkge1xuICAgICAgICAvKlxuICAgICAgICBPbiBhbnkgb3BlbmluZyBvciBjbG9zaW5nIHRhZyBvZiB0aGUgb3JpZ2luYWwgbWFya3VwIHdlIGZpcnN0IGNsb3NlXG4gICAgICAgIHRoZSBlbnRpcmUgaGlnaGxpZ2h0ZWQgbm9kZSBzdGFjaywgdGhlbiByZW5kZXIgdGhlIG9yaWdpbmFsIHRhZyBhbG9uZ1xuICAgICAgICB3aXRoIGFsbCB0aGUgZm9sbG93aW5nIG9yaWdpbmFsIHRhZ3MgYXQgdGhlIHNhbWUgb2Zmc2V0IGFuZCB0aGVuXG4gICAgICAgIHJlb3BlbiBhbGwgdGhlIHRhZ3Mgb24gdGhlIGhpZ2hsaWdodGVkIHN0YWNrLlxuICAgICAgICAqL1xuICAgICAgICBub2RlU3RhY2sucmV2ZXJzZSgpLmZvckVhY2goY2xvc2UpO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgcmVuZGVyKHN0cmVhbS5zcGxpY2UoMCwgMSlbMF0pO1xuICAgICAgICAgIHN0cmVhbSA9IHNlbGVjdFN0cmVhbSgpO1xuICAgICAgICB9IHdoaWxlIChzdHJlYW0gPT09IG9yaWdpbmFsICYmIHN0cmVhbS5sZW5ndGggJiYgc3RyZWFtWzBdLm9mZnNldCA9PT0gcHJvY2Vzc2VkKTtcbiAgICAgICAgbm9kZVN0YWNrLnJldmVyc2UoKS5mb3JFYWNoKG9wZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHN0cmVhbVswXS5ldmVudCA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgIG5vZGVTdGFjay5wdXNoKHN0cmVhbVswXS5ub2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBub2RlU3RhY2sucG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVuZGVyKHN0cmVhbS5zcGxpY2UoMCwgMSlbMF0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0ICsgZXNjYXBlKHZhbHVlLnN1YnN0cihwcm9jZXNzZWQpKTtcbiAgfVxuXG4gIC8qIEluaXRpYWxpemF0aW9uICovXG5cbiAgZnVuY3Rpb24gZXhwYW5kX21vZGUobW9kZSkge1xuICAgIGlmIChtb2RlLnZhcmlhbnRzICYmICFtb2RlLmNhY2hlZF92YXJpYW50cykge1xuICAgICAgbW9kZS5jYWNoZWRfdmFyaWFudHMgPSBtb2RlLnZhcmlhbnRzLm1hcChmdW5jdGlvbih2YXJpYW50KSB7XG4gICAgICAgIHJldHVybiBpbmhlcml0KG1vZGUsIHt2YXJpYW50czogbnVsbH0sIHZhcmlhbnQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtb2RlLmNhY2hlZF92YXJpYW50cyB8fCAobW9kZS5lbmRzV2l0aFBhcmVudCAmJiBbaW5oZXJpdChtb2RlKV0pIHx8IFttb2RlXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbXBpbGVMYW5ndWFnZShsYW5ndWFnZSkge1xuXG4gICAgZnVuY3Rpb24gcmVTdHIocmUpIHtcbiAgICAgICAgcmV0dXJuIChyZSAmJiByZS5zb3VyY2UpIHx8IHJlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxhbmdSZSh2YWx1ZSwgZ2xvYmFsKSB7XG4gICAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgICAgcmVTdHIodmFsdWUpLFxuICAgICAgICAnbScgKyAobGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSA/ICdpJyA6ICcnKSArIChnbG9iYWwgPyAnZycgOiAnJylcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcGlsZU1vZGUobW9kZSwgcGFyZW50KSB7XG4gICAgICBpZiAobW9kZS5jb21waWxlZClcbiAgICAgICAgcmV0dXJuO1xuICAgICAgbW9kZS5jb21waWxlZCA9IHRydWU7XG5cbiAgICAgIG1vZGUua2V5d29yZHMgPSBtb2RlLmtleXdvcmRzIHx8IG1vZGUuYmVnaW5LZXl3b3JkcztcbiAgICAgIGlmIChtb2RlLmtleXdvcmRzKSB7XG4gICAgICAgIHZhciBjb21waWxlZF9rZXl3b3JkcyA9IHt9O1xuXG4gICAgICAgIHZhciBmbGF0dGVuID0gZnVuY3Rpb24oY2xhc3NOYW1lLCBzdHIpIHtcbiAgICAgICAgICBpZiAobGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgc3RyID0gc3RyLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0ci5zcGxpdCgnICcpLmZvckVhY2goZnVuY3Rpb24oa3cpIHtcbiAgICAgICAgICAgIHZhciBwYWlyID0ga3cuc3BsaXQoJ3wnKTtcbiAgICAgICAgICAgIGNvbXBpbGVkX2tleXdvcmRzW3BhaXJbMF1dID0gW2NsYXNzTmFtZSwgcGFpclsxXSA/IE51bWJlcihwYWlyWzFdKSA6IDFdO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kZS5rZXl3b3JkcyA9PT0gJ3N0cmluZycpIHsgLy8gc3RyaW5nXG4gICAgICAgICAgZmxhdHRlbigna2V5d29yZCcsIG1vZGUua2V5d29yZHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9iamVjdEtleXMobW9kZS5rZXl3b3JkcykuZm9yRWFjaChmdW5jdGlvbiAoY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICBmbGF0dGVuKGNsYXNzTmFtZSwgbW9kZS5rZXl3b3Jkc1tjbGFzc05hbWVdKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBtb2RlLmtleXdvcmRzID0gY29tcGlsZWRfa2V5d29yZHM7XG4gICAgICB9XG4gICAgICBtb2RlLmxleGVtZXNSZSA9IGxhbmdSZShtb2RlLmxleGVtZXMgfHwgL1xcdysvLCB0cnVlKTtcblxuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICBpZiAobW9kZS5iZWdpbktleXdvcmRzKSB7XG4gICAgICAgICAgbW9kZS5iZWdpbiA9ICdcXFxcYignICsgbW9kZS5iZWdpbktleXdvcmRzLnNwbGl0KCcgJykuam9pbignfCcpICsgJylcXFxcYic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtb2RlLmJlZ2luKVxuICAgICAgICAgIG1vZGUuYmVnaW4gPSAvXFxCfFxcYi87XG4gICAgICAgIG1vZGUuYmVnaW5SZSA9IGxhbmdSZShtb2RlLmJlZ2luKTtcbiAgICAgICAgaWYgKCFtb2RlLmVuZCAmJiAhbW9kZS5lbmRzV2l0aFBhcmVudClcbiAgICAgICAgICBtb2RlLmVuZCA9IC9cXEJ8XFxiLztcbiAgICAgICAgaWYgKG1vZGUuZW5kKVxuICAgICAgICAgIG1vZGUuZW5kUmUgPSBsYW5nUmUobW9kZS5lbmQpO1xuICAgICAgICBtb2RlLnRlcm1pbmF0b3JfZW5kID0gcmVTdHIobW9kZS5lbmQpIHx8ICcnO1xuICAgICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCAmJiBwYXJlbnQudGVybWluYXRvcl9lbmQpXG4gICAgICAgICAgbW9kZS50ZXJtaW5hdG9yX2VuZCArPSAobW9kZS5lbmQgPyAnfCcgOiAnJykgKyBwYXJlbnQudGVybWluYXRvcl9lbmQ7XG4gICAgICB9XG4gICAgICBpZiAobW9kZS5pbGxlZ2FsKVxuICAgICAgICBtb2RlLmlsbGVnYWxSZSA9IGxhbmdSZShtb2RlLmlsbGVnYWwpO1xuICAgICAgaWYgKG1vZGUucmVsZXZhbmNlID09IG51bGwpXG4gICAgICAgIG1vZGUucmVsZXZhbmNlID0gMTtcbiAgICAgIGlmICghbW9kZS5jb250YWlucykge1xuICAgICAgICBtb2RlLmNvbnRhaW5zID0gW107XG4gICAgICB9XG4gICAgICBtb2RlLmNvbnRhaW5zID0gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgbW9kZS5jb250YWlucy5tYXAoZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4gZXhwYW5kX21vZGUoYyA9PT0gJ3NlbGYnID8gbW9kZSA6IGMpXG4gICAgICB9KSk7XG4gICAgICBtb2RlLmNvbnRhaW5zLmZvckVhY2goZnVuY3Rpb24oYykge2NvbXBpbGVNb2RlKGMsIG1vZGUpO30pO1xuXG4gICAgICBpZiAobW9kZS5zdGFydHMpIHtcbiAgICAgICAgY29tcGlsZU1vZGUobW9kZS5zdGFydHMsIHBhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIHZhciB0ZXJtaW5hdG9ycyA9XG4gICAgICAgIG1vZGUuY29udGFpbnMubWFwKGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgICByZXR1cm4gYy5iZWdpbktleXdvcmRzID8gJ1xcXFwuPygnICsgYy5iZWdpbiArICcpXFxcXC4/JyA6IGMuYmVnaW47XG4gICAgICAgIH0pXG4gICAgICAgIC5jb25jYXQoW21vZGUudGVybWluYXRvcl9lbmQsIG1vZGUuaWxsZWdhbF0pXG4gICAgICAgIC5tYXAocmVTdHIpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICBtb2RlLnRlcm1pbmF0b3JzID0gdGVybWluYXRvcnMubGVuZ3RoID8gbGFuZ1JlKHRlcm1pbmF0b3JzLmpvaW4oJ3wnKSwgdHJ1ZSkgOiB7ZXhlYzogZnVuY3Rpb24oLypzKi8pIHtyZXR1cm4gbnVsbDt9fTtcbiAgICB9XG5cbiAgICBjb21waWxlTW9kZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKlxuICBDb3JlIGhpZ2hsaWdodGluZyBmdW5jdGlvbi4gQWNjZXB0cyBhIGxhbmd1YWdlIG5hbWUsIG9yIGFuIGFsaWFzLCBhbmQgYVxuICBzdHJpbmcgd2l0aCB0aGUgY29kZSB0byBoaWdobGlnaHQuIFJldHVybnMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZ1xuICBwcm9wZXJ0aWVzOlxuXG4gIC0gcmVsZXZhbmNlIChpbnQpXG4gIC0gdmFsdWUgKGFuIEhUTUwgc3RyaW5nIHdpdGggaGlnaGxpZ2h0aW5nIG1hcmt1cClcblxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHQobmFtZSwgdmFsdWUsIGlnbm9yZV9pbGxlZ2FscywgY29udGludWF0aW9uKSB7XG5cbiAgICBmdW5jdGlvbiBzdWJNb2RlKGxleGVtZSwgbW9kZSkge1xuICAgICAgdmFyIGksIGxlbmd0aDtcblxuICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gbW9kZS5jb250YWlucy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGVzdFJlKG1vZGUuY29udGFpbnNbaV0uYmVnaW5SZSwgbGV4ZW1lKSkge1xuICAgICAgICAgIHJldHVybiBtb2RlLmNvbnRhaW5zW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW5kT2ZNb2RlKG1vZGUsIGxleGVtZSkge1xuICAgICAgaWYgKHRlc3RSZShtb2RlLmVuZFJlLCBsZXhlbWUpKSB7XG4gICAgICAgIHdoaWxlIChtb2RlLmVuZHNQYXJlbnQgJiYgbW9kZS5wYXJlbnQpIHtcbiAgICAgICAgICBtb2RlID0gbW9kZS5wYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgICB9XG4gICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCkge1xuICAgICAgICByZXR1cm4gZW5kT2ZNb2RlKG1vZGUucGFyZW50LCBsZXhlbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSWxsZWdhbChsZXhlbWUsIG1vZGUpIHtcbiAgICAgIHJldHVybiAhaWdub3JlX2lsbGVnYWxzICYmIHRlc3RSZShtb2RlLmlsbGVnYWxSZSwgbGV4ZW1lKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrZXl3b3JkTWF0Y2gobW9kZSwgbWF0Y2gpIHtcbiAgICAgIHZhciBtYXRjaF9zdHIgPSBsYW5ndWFnZS5jYXNlX2luc2Vuc2l0aXZlID8gbWF0Y2hbMF0udG9Mb3dlckNhc2UoKSA6IG1hdGNoWzBdO1xuICAgICAgcmV0dXJuIG1vZGUua2V5d29yZHMuaGFzT3duUHJvcGVydHkobWF0Y2hfc3RyKSAmJiBtb2RlLmtleXdvcmRzW21hdGNoX3N0cl07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYnVpbGRTcGFuKGNsYXNzbmFtZSwgaW5zaWRlU3BhbiwgbGVhdmVPcGVuLCBub1ByZWZpeCkge1xuICAgICAgdmFyIGNsYXNzUHJlZml4ID0gbm9QcmVmaXggPyAnJyA6IG9wdGlvbnMuY2xhc3NQcmVmaXgsXG4gICAgICAgICAgb3BlblNwYW4gICAgPSAnPHNwYW4gY2xhc3M9XCInICsgY2xhc3NQcmVmaXgsXG4gICAgICAgICAgY2xvc2VTcGFuICAgPSBsZWF2ZU9wZW4gPyAnJyA6IHNwYW5FbmRUYWdcblxuICAgICAgb3BlblNwYW4gKz0gY2xhc3NuYW1lICsgJ1wiPic7XG5cbiAgICAgIHJldHVybiBvcGVuU3BhbiArIGluc2lkZVNwYW4gKyBjbG9zZVNwYW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc0tleXdvcmRzKCkge1xuICAgICAgdmFyIGtleXdvcmRfbWF0Y2gsIGxhc3RfaW5kZXgsIG1hdGNoLCByZXN1bHQ7XG5cbiAgICAgIGlmICghdG9wLmtleXdvcmRzKVxuICAgICAgICByZXR1cm4gZXNjYXBlKG1vZGVfYnVmZmVyKTtcblxuICAgICAgcmVzdWx0ID0gJyc7XG4gICAgICBsYXN0X2luZGV4ID0gMDtcbiAgICAgIHRvcC5sZXhlbWVzUmUubGFzdEluZGV4ID0gMDtcbiAgICAgIG1hdGNoID0gdG9wLmxleGVtZXNSZS5leGVjKG1vZGVfYnVmZmVyKTtcblxuICAgICAgd2hpbGUgKG1hdGNoKSB7XG4gICAgICAgIHJlc3VsdCArPSBlc2NhcGUobW9kZV9idWZmZXIuc3Vic3RyaW5nKGxhc3RfaW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgIGtleXdvcmRfbWF0Y2ggPSBrZXl3b3JkTWF0Y2godG9wLCBtYXRjaCk7XG4gICAgICAgIGlmIChrZXl3b3JkX21hdGNoKSB7XG4gICAgICAgICAgcmVsZXZhbmNlICs9IGtleXdvcmRfbWF0Y2hbMV07XG4gICAgICAgICAgcmVzdWx0ICs9IGJ1aWxkU3BhbihrZXl3b3JkX21hdGNoWzBdLCBlc2NhcGUobWF0Y2hbMF0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgKz0gZXNjYXBlKG1hdGNoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBsYXN0X2luZGV4ID0gdG9wLmxleGVtZXNSZS5sYXN0SW5kZXg7XG4gICAgICAgIG1hdGNoID0gdG9wLmxleGVtZXNSZS5leGVjKG1vZGVfYnVmZmVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgKyBlc2NhcGUobW9kZV9idWZmZXIuc3Vic3RyKGxhc3RfaW5kZXgpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKSB7XG4gICAgICB2YXIgZXhwbGljaXQgPSB0eXBlb2YgdG9wLnN1Ykxhbmd1YWdlID09PSAnc3RyaW5nJztcbiAgICAgIGlmIChleHBsaWNpdCAmJiAhbGFuZ3VhZ2VzW3RvcC5zdWJMYW5ndWFnZV0pIHtcbiAgICAgICAgcmV0dXJuIGVzY2FwZShtb2RlX2J1ZmZlcik7XG4gICAgICB9XG5cbiAgICAgIHZhciByZXN1bHQgPSBleHBsaWNpdCA/XG4gICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0KHRvcC5zdWJMYW5ndWFnZSwgbW9kZV9idWZmZXIsIHRydWUsIGNvbnRpbnVhdGlvbnNbdG9wLnN1Ykxhbmd1YWdlXSkgOlxuICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodEF1dG8obW9kZV9idWZmZXIsIHRvcC5zdWJMYW5ndWFnZS5sZW5ndGggPyB0b3Auc3ViTGFuZ3VhZ2UgOiB1bmRlZmluZWQpO1xuXG4gICAgICAvLyBDb3VudGluZyBlbWJlZGRlZCBsYW5ndWFnZSBzY29yZSB0b3dhcmRzIHRoZSBob3N0IGxhbmd1YWdlIG1heSBiZSBkaXNhYmxlZFxuICAgICAgLy8gd2l0aCB6ZXJvaW5nIHRoZSBjb250YWluaW5nIG1vZGUgcmVsZXZhbmNlLiBVc2VjYXNlIGluIHBvaW50IGlzIE1hcmtkb3duIHRoYXRcbiAgICAgIC8vIGFsbG93cyBYTUwgZXZlcnl3aGVyZSBhbmQgbWFrZXMgZXZlcnkgWE1MIHNuaXBwZXQgdG8gaGF2ZSBhIG11Y2ggbGFyZ2VyIE1hcmtkb3duXG4gICAgICAvLyBzY29yZS5cbiAgICAgIGlmICh0b3AucmVsZXZhbmNlID4gMCkge1xuICAgICAgICByZWxldmFuY2UgKz0gcmVzdWx0LnJlbGV2YW5jZTtcbiAgICAgIH1cbiAgICAgIGlmIChleHBsaWNpdCkge1xuICAgICAgICBjb250aW51YXRpb25zW3RvcC5zdWJMYW5ndWFnZV0gPSByZXN1bHQudG9wO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJ1aWxkU3BhbihyZXN1bHQubGFuZ3VhZ2UsIHJlc3VsdC52YWx1ZSwgZmFsc2UsIHRydWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NCdWZmZXIoKSB7XG4gICAgICByZXN1bHQgKz0gKHRvcC5zdWJMYW5ndWFnZSAhPSBudWxsID8gcHJvY2Vzc1N1Ykxhbmd1YWdlKCkgOiBwcm9jZXNzS2V5d29yZHMoKSk7XG4gICAgICBtb2RlX2J1ZmZlciA9ICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0TmV3TW9kZShtb2RlKSB7XG4gICAgICByZXN1bHQgKz0gbW9kZS5jbGFzc05hbWU/IGJ1aWxkU3Bhbihtb2RlLmNsYXNzTmFtZSwgJycsIHRydWUpOiAnJztcbiAgICAgIHRvcCA9IE9iamVjdC5jcmVhdGUobW9kZSwge3BhcmVudDoge3ZhbHVlOiB0b3B9fSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc0xleGVtZShidWZmZXIsIGxleGVtZSkge1xuXG4gICAgICBtb2RlX2J1ZmZlciArPSBidWZmZXI7XG5cbiAgICAgIGlmIChsZXhlbWUgPT0gbnVsbCkge1xuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuXG4gICAgICB2YXIgbmV3X21vZGUgPSBzdWJNb2RlKGxleGVtZSwgdG9wKTtcbiAgICAgIGlmIChuZXdfbW9kZSkge1xuICAgICAgICBpZiAobmV3X21vZGUuc2tpcCkge1xuICAgICAgICAgIG1vZGVfYnVmZmVyICs9IGxleGVtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobmV3X21vZGUuZXhjbHVkZUJlZ2luKSB7XG4gICAgICAgICAgICBtb2RlX2J1ZmZlciArPSBsZXhlbWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgICBpZiAoIW5ld19tb2RlLnJldHVybkJlZ2luICYmICFuZXdfbW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgICAgICAgIG1vZGVfYnVmZmVyID0gbGV4ZW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGFydE5ld01vZGUobmV3X21vZGUsIGxleGVtZSk7XG4gICAgICAgIHJldHVybiBuZXdfbW9kZS5yZXR1cm5CZWdpbiA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICB2YXIgZW5kX21vZGUgPSBlbmRPZk1vZGUodG9wLCBsZXhlbWUpO1xuICAgICAgaWYgKGVuZF9tb2RlKSB7XG4gICAgICAgIHZhciBvcmlnaW4gPSB0b3A7XG4gICAgICAgIGlmIChvcmlnaW4uc2tpcCkge1xuICAgICAgICAgIG1vZGVfYnVmZmVyICs9IGxleGVtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIShvcmlnaW4ucmV0dXJuRW5kIHx8IG9yaWdpbi5leGNsdWRlRW5kKSkge1xuICAgICAgICAgICAgbW9kZV9idWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgICAgaWYgKG9yaWdpbi5leGNsdWRlRW5kKSB7XG4gICAgICAgICAgICBtb2RlX2J1ZmZlciA9IGxleGVtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZG8ge1xuICAgICAgICAgIGlmICh0b3AuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gc3BhbkVuZFRhZztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCF0b3Auc2tpcCkge1xuICAgICAgICAgICAgcmVsZXZhbmNlICs9IHRvcC5yZWxldmFuY2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvcCA9IHRvcC5wYXJlbnQ7XG4gICAgICAgIH0gd2hpbGUgKHRvcCAhPT0gZW5kX21vZGUucGFyZW50KTtcbiAgICAgICAgaWYgKGVuZF9tb2RlLnN0YXJ0cykge1xuICAgICAgICAgIHN0YXJ0TmV3TW9kZShlbmRfbW9kZS5zdGFydHMsICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3JpZ2luLnJldHVybkVuZCA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNJbGxlZ2FsKGxleGVtZSwgdG9wKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGxleGVtZSBcIicgKyBsZXhlbWUgKyAnXCIgZm9yIG1vZGUgXCInICsgKHRvcC5jbGFzc05hbWUgfHwgJzx1bm5hbWVkPicpICsgJ1wiJyk7XG5cbiAgICAgIC8qXG4gICAgICBQYXJzZXIgc2hvdWxkIG5vdCByZWFjaCB0aGlzIHBvaW50IGFzIGFsbCB0eXBlcyBvZiBsZXhlbWVzIHNob3VsZCBiZSBjYXVnaHRcbiAgICAgIGVhcmxpZXIsIGJ1dCBpZiBpdCBkb2VzIGR1ZSB0byBzb21lIGJ1ZyBtYWtlIHN1cmUgaXQgYWR2YW5jZXMgYXQgbGVhc3Qgb25lXG4gICAgICBjaGFyYWN0ZXIgZm9yd2FyZCB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BpbmcuXG4gICAgICAqL1xuICAgICAgbW9kZV9idWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgcmV0dXJuIGxleGVtZS5sZW5ndGggfHwgMTtcbiAgICB9XG5cbiAgICB2YXIgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShuYW1lKTtcbiAgICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGFuZ3VhZ2U6IFwiJyArIG5hbWUgKyAnXCInKTtcbiAgICB9XG5cbiAgICBjb21waWxlTGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgIHZhciB0b3AgPSBjb250aW51YXRpb24gfHwgbGFuZ3VhZ2U7XG4gICAgdmFyIGNvbnRpbnVhdGlvbnMgPSB7fTsgLy8ga2VlcCBjb250aW51YXRpb25zIGZvciBzdWItbGFuZ3VhZ2VzXG4gICAgdmFyIHJlc3VsdCA9ICcnLCBjdXJyZW50O1xuICAgIGZvcihjdXJyZW50ID0gdG9wOyBjdXJyZW50ICE9PSBsYW5ndWFnZTsgY3VycmVudCA9IGN1cnJlbnQucGFyZW50KSB7XG4gICAgICBpZiAoY3VycmVudC5jbGFzc05hbWUpIHtcbiAgICAgICAgcmVzdWx0ID0gYnVpbGRTcGFuKGN1cnJlbnQuY2xhc3NOYW1lLCAnJywgdHJ1ZSkgKyByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBtb2RlX2J1ZmZlciA9ICcnO1xuICAgIHZhciByZWxldmFuY2UgPSAwO1xuICAgIHRyeSB7XG4gICAgICB2YXIgbWF0Y2gsIGNvdW50LCBpbmRleCA9IDA7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICB0b3AudGVybWluYXRvcnMubGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIG1hdGNoID0gdG9wLnRlcm1pbmF0b3JzLmV4ZWModmFsdWUpO1xuICAgICAgICBpZiAoIW1hdGNoKVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjb3VudCA9IHByb2Nlc3NMZXhlbWUodmFsdWUuc3Vic3RyaW5nKGluZGV4LCBtYXRjaC5pbmRleCksIG1hdGNoWzBdKTtcbiAgICAgICAgaW5kZXggPSBtYXRjaC5pbmRleCArIGNvdW50O1xuICAgICAgfVxuICAgICAgcHJvY2Vzc0xleGVtZSh2YWx1ZS5zdWJzdHIoaW5kZXgpKTtcbiAgICAgIGZvcihjdXJyZW50ID0gdG9wOyBjdXJyZW50LnBhcmVudDsgY3VycmVudCA9IGN1cnJlbnQucGFyZW50KSB7IC8vIGNsb3NlIGRhbmdsaW5nIG1vZGVzXG4gICAgICAgIGlmIChjdXJyZW50LmNsYXNzTmFtZSkge1xuICAgICAgICAgIHJlc3VsdCArPSBzcGFuRW5kVGFnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWxldmFuY2U6IHJlbGV2YW5jZSxcbiAgICAgICAgdmFsdWU6IHJlc3VsdCxcbiAgICAgICAgbGFuZ3VhZ2U6IG5hbWUsXG4gICAgICAgIHRvcDogdG9wXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlLm1lc3NhZ2UgJiYgZS5tZXNzYWdlLmluZGV4T2YoJ0lsbGVnYWwnKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgdmFsdWU6IGVzY2FwZSh2YWx1ZSlcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLypcbiAgSGlnaGxpZ2h0aW5nIHdpdGggbGFuZ3VhZ2UgZGV0ZWN0aW9uLiBBY2NlcHRzIGEgc3RyaW5nIHdpdGggdGhlIGNvZGUgdG9cbiAgaGlnaGxpZ2h0LiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcblxuICAtIGxhbmd1YWdlIChkZXRlY3RlZCBsYW5ndWFnZSlcbiAgLSByZWxldmFuY2UgKGludClcbiAgLSB2YWx1ZSAoYW4gSFRNTCBzdHJpbmcgd2l0aCBoaWdobGlnaHRpbmcgbWFya3VwKVxuICAtIHNlY29uZF9iZXN0IChvYmplY3Qgd2l0aCB0aGUgc2FtZSBzdHJ1Y3R1cmUgZm9yIHNlY29uZC1iZXN0IGhldXJpc3RpY2FsbHlcbiAgICBkZXRlY3RlZCBsYW5ndWFnZSwgbWF5IGJlIGFic2VudClcblxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRBdXRvKHRleHQsIGxhbmd1YWdlU3Vic2V0KSB7XG4gICAgbGFuZ3VhZ2VTdWJzZXQgPSBsYW5ndWFnZVN1YnNldCB8fCBvcHRpb25zLmxhbmd1YWdlcyB8fCBvYmplY3RLZXlzKGxhbmd1YWdlcyk7XG4gICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIHZhbHVlOiBlc2NhcGUodGV4dClcbiAgICB9O1xuICAgIHZhciBzZWNvbmRfYmVzdCA9IHJlc3VsdDtcbiAgICBsYW5ndWFnZVN1YnNldC5maWx0ZXIoZ2V0TGFuZ3VhZ2UpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgdmFyIGN1cnJlbnQgPSBoaWdobGlnaHQobmFtZSwgdGV4dCwgZmFsc2UpO1xuICAgICAgY3VycmVudC5sYW5ndWFnZSA9IG5hbWU7XG4gICAgICBpZiAoY3VycmVudC5yZWxldmFuY2UgPiBzZWNvbmRfYmVzdC5yZWxldmFuY2UpIHtcbiAgICAgICAgc2Vjb25kX2Jlc3QgPSBjdXJyZW50O1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQucmVsZXZhbmNlID4gcmVzdWx0LnJlbGV2YW5jZSkge1xuICAgICAgICBzZWNvbmRfYmVzdCA9IHJlc3VsdDtcbiAgICAgICAgcmVzdWx0ID0gY3VycmVudDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoc2Vjb25kX2Jlc3QubGFuZ3VhZ2UpIHtcbiAgICAgIHJlc3VsdC5zZWNvbmRfYmVzdCA9IHNlY29uZF9iZXN0O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLypcbiAgUG9zdC1wcm9jZXNzaW5nIG9mIHRoZSBoaWdobGlnaHRlZCBtYXJrdXA6XG5cbiAgLSByZXBsYWNlIFRBQnMgd2l0aCBzb21ldGhpbmcgbW9yZSB1c2VmdWxcbiAgLSByZXBsYWNlIHJlYWwgbGluZS1icmVha3Mgd2l0aCAnPGJyPicgZm9yIG5vbi1wcmUgY29udGFpbmVyc1xuXG4gICovXG4gIGZ1bmN0aW9uIGZpeE1hcmt1cCh2YWx1ZSkge1xuICAgIHJldHVybiAhKG9wdGlvbnMudGFiUmVwbGFjZSB8fCBvcHRpb25zLnVzZUJSKVxuICAgICAgPyB2YWx1ZVxuICAgICAgOiB2YWx1ZS5yZXBsYWNlKGZpeE1hcmt1cFJlLCBmdW5jdGlvbihtYXRjaCwgcDEpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy51c2VCUiAmJiBtYXRjaCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHJldHVybiAnPGJyPic7XG4gICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLnRhYlJlcGxhY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBwMS5yZXBsYWNlKC9cXHQvZywgb3B0aW9ucy50YWJSZXBsYWNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBidWlsZENsYXNzTmFtZShwcmV2Q2xhc3NOYW1lLCBjdXJyZW50TGFuZywgcmVzdWx0TGFuZykge1xuICAgIHZhciBsYW5ndWFnZSA9IGN1cnJlbnRMYW5nID8gYWxpYXNlc1tjdXJyZW50TGFuZ10gOiByZXN1bHRMYW5nLFxuICAgICAgICByZXN1bHQgICA9IFtwcmV2Q2xhc3NOYW1lLnRyaW0oKV07XG5cbiAgICBpZiAoIXByZXZDbGFzc05hbWUubWF0Y2goL1xcYmhsanNcXGIvKSkge1xuICAgICAgcmVzdWx0LnB1c2goJ2hsanMnKTtcbiAgICB9XG5cbiAgICBpZiAocHJldkNsYXNzTmFtZS5pbmRleE9mKGxhbmd1YWdlKSA9PT0gLTEpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKS50cmltKCk7XG4gIH1cblxuICAvKlxuICBBcHBsaWVzIGhpZ2hsaWdodGluZyB0byBhIERPTSBub2RlIGNvbnRhaW5pbmcgY29kZS4gQWNjZXB0cyBhIERPTSBub2RlIGFuZFxuICB0d28gb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgZml4TWFya3VwLlxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRCbG9jayhibG9jaykge1xuICAgIHZhciBub2RlLCBvcmlnaW5hbFN0cmVhbSwgcmVzdWx0LCByZXN1bHROb2RlLCB0ZXh0O1xuICAgIHZhciBsYW5ndWFnZSA9IGJsb2NrTGFuZ3VhZ2UoYmxvY2spO1xuXG4gICAgaWYgKGlzTm90SGlnaGxpZ2h0ZWQobGFuZ3VhZ2UpKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAob3B0aW9ucy51c2VCUikge1xuICAgICAgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTtcbiAgICAgIG5vZGUuaW5uZXJIVE1MID0gYmxvY2suaW5uZXJIVE1MLnJlcGxhY2UoL1xcbi9nLCAnJykucmVwbGFjZSgvPGJyWyBcXC9dKj4vZywgJ1xcbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlID0gYmxvY2s7XG4gICAgfVxuICAgIHRleHQgPSBub2RlLnRleHRDb250ZW50O1xuICAgIHJlc3VsdCA9IGxhbmd1YWdlID8gaGlnaGxpZ2h0KGxhbmd1YWdlLCB0ZXh0LCB0cnVlKSA6IGhpZ2hsaWdodEF1dG8odGV4dCk7XG5cbiAgICBvcmlnaW5hbFN0cmVhbSA9IG5vZGVTdHJlYW0obm9kZSk7XG4gICAgaWYgKG9yaWdpbmFsU3RyZWFtLmxlbmd0aCkge1xuICAgICAgcmVzdWx0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTtcbiAgICAgIHJlc3VsdE5vZGUuaW5uZXJIVE1MID0gcmVzdWx0LnZhbHVlO1xuICAgICAgcmVzdWx0LnZhbHVlID0gbWVyZ2VTdHJlYW1zKG9yaWdpbmFsU3RyZWFtLCBub2RlU3RyZWFtKHJlc3VsdE5vZGUpLCB0ZXh0KTtcbiAgICB9XG4gICAgcmVzdWx0LnZhbHVlID0gZml4TWFya3VwKHJlc3VsdC52YWx1ZSk7XG5cbiAgICBibG9jay5pbm5lckhUTUwgPSByZXN1bHQudmFsdWU7XG4gICAgYmxvY2suY2xhc3NOYW1lID0gYnVpbGRDbGFzc05hbWUoYmxvY2suY2xhc3NOYW1lLCBsYW5ndWFnZSwgcmVzdWx0Lmxhbmd1YWdlKTtcbiAgICBibG9jay5yZXN1bHQgPSB7XG4gICAgICBsYW5ndWFnZTogcmVzdWx0Lmxhbmd1YWdlLFxuICAgICAgcmU6IHJlc3VsdC5yZWxldmFuY2VcbiAgICB9O1xuICAgIGlmIChyZXN1bHQuc2Vjb25kX2Jlc3QpIHtcbiAgICAgIGJsb2NrLnNlY29uZF9iZXN0ID0ge1xuICAgICAgICBsYW5ndWFnZTogcmVzdWx0LnNlY29uZF9iZXN0Lmxhbmd1YWdlLFxuICAgICAgICByZTogcmVzdWx0LnNlY29uZF9iZXN0LnJlbGV2YW5jZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKlxuICBVcGRhdGVzIGhpZ2hsaWdodC5qcyBnbG9iYWwgb3B0aW9ucyB3aXRoIHZhbHVlcyBwYXNzZWQgaW4gdGhlIGZvcm0gb2YgYW4gb2JqZWN0LlxuICAqL1xuICBmdW5jdGlvbiBjb25maWd1cmUodXNlcl9vcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IGluaGVyaXQob3B0aW9ucywgdXNlcl9vcHRpb25zKTtcbiAgfVxuXG4gIC8qXG4gIEFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIGFsbCA8cHJlPjxjb2RlPi4uPC9jb2RlPjwvcHJlPiBibG9ja3Mgb24gYSBwYWdlLlxuICAqL1xuICBmdW5jdGlvbiBpbml0SGlnaGxpZ2h0aW5nKCkge1xuICAgIGlmIChpbml0SGlnaGxpZ2h0aW5nLmNhbGxlZClcbiAgICAgIHJldHVybjtcbiAgICBpbml0SGlnaGxpZ2h0aW5nLmNhbGxlZCA9IHRydWU7XG5cbiAgICB2YXIgYmxvY2tzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgncHJlIGNvZGUnKTtcbiAgICBBcnJheVByb3RvLmZvckVhY2guY2FsbChibG9ja3MsIGhpZ2hsaWdodEJsb2NrKTtcbiAgfVxuXG4gIC8qXG4gIEF0dGFjaGVzIGhpZ2hsaWdodGluZyB0byB0aGUgcGFnZSBsb2FkIGV2ZW50LlxuICAqL1xuICBmdW5jdGlvbiBpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkge1xuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBpbml0SGlnaGxpZ2h0aW5nLCBmYWxzZSk7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGluaXRIaWdobGlnaHRpbmcsIGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyTGFuZ3VhZ2UobmFtZSwgbGFuZ3VhZ2UpIHtcbiAgICB2YXIgbGFuZyA9IGxhbmd1YWdlc1tuYW1lXSA9IGxhbmd1YWdlKGhsanMpO1xuICAgIGlmIChsYW5nLmFsaWFzZXMpIHtcbiAgICAgIGxhbmcuYWxpYXNlcy5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7YWxpYXNlc1thbGlhc10gPSBuYW1lO30pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGxpc3RMYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIG9iamVjdEtleXMobGFuZ3VhZ2VzKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldExhbmd1YWdlKG5hbWUpIHtcbiAgICBuYW1lID0gKG5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGxhbmd1YWdlc1tuYW1lXSB8fCBsYW5ndWFnZXNbYWxpYXNlc1tuYW1lXV07XG4gIH1cblxuICAvKiBJbnRlcmZhY2UgZGVmaW5pdGlvbiAqL1xuXG4gIGhsanMuaGlnaGxpZ2h0ID0gaGlnaGxpZ2h0O1xuICBobGpzLmhpZ2hsaWdodEF1dG8gPSBoaWdobGlnaHRBdXRvO1xuICBobGpzLmZpeE1hcmt1cCA9IGZpeE1hcmt1cDtcbiAgaGxqcy5oaWdobGlnaHRCbG9jayA9IGhpZ2hsaWdodEJsb2NrO1xuICBobGpzLmNvbmZpZ3VyZSA9IGNvbmZpZ3VyZTtcbiAgaGxqcy5pbml0SGlnaGxpZ2h0aW5nID0gaW5pdEhpZ2hsaWdodGluZztcbiAgaGxqcy5pbml0SGlnaGxpZ2h0aW5nT25Mb2FkID0gaW5pdEhpZ2hsaWdodGluZ09uTG9hZDtcbiAgaGxqcy5yZWdpc3Rlckxhbmd1YWdlID0gcmVnaXN0ZXJMYW5ndWFnZTtcbiAgaGxqcy5saXN0TGFuZ3VhZ2VzID0gbGlzdExhbmd1YWdlcztcbiAgaGxqcy5nZXRMYW5ndWFnZSA9IGdldExhbmd1YWdlO1xuICBobGpzLmluaGVyaXQgPSBpbmhlcml0O1xuXG4gIC8vIENvbW1vbiByZWdleHBzXG4gIGhsanMuSURFTlRfUkUgPSAnW2EtekEtWl1cXFxcdyonO1xuICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgPSAnW2EtekEtWl9dXFxcXHcqJztcbiAgaGxqcy5OVU1CRVJfUkUgPSAnXFxcXGJcXFxcZCsoXFxcXC5cXFxcZCspPyc7XG4gIGhsanMuQ19OVU1CRVJfUkUgPSAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOV0rfChcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKik/fFxcXFwuXFxcXGQrKShbZUVdWy0rXT9cXFxcZCspPyknOyAvLyAweC4uLiwgMC4uLiwgZGVjaW1hbCwgZmxvYXRcbiAgaGxqcy5CSU5BUllfTlVNQkVSX1JFID0gJ1xcXFxiKDBiWzAxXSspJzsgLy8gMGIuLi5cbiAgaGxqcy5SRV9TVEFSVEVSU19SRSA9ICchfCE9fCE9PXwlfCU9fCZ8JiZ8Jj18XFxcXCp8XFxcXCo9fFxcXFwrfFxcXFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fD4+fD58XFxcXD98XFxcXFt8XFxcXHt8XFxcXCh8XFxcXF58XFxcXF49fFxcXFx8fFxcXFx8PXxcXFxcfFxcXFx8fH4nO1xuXG4gIC8vIENvbW1vbiBtb2Rlc1xuICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgPSB7XG4gICAgYmVnaW46ICdcXFxcXFxcXFtcXFxcc1xcXFxTXScsIHJlbGV2YW5jZTogMFxuICB9O1xuICBobGpzLkFQT1NfU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcJycsIGVuZDogJ1xcJycsXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgfTtcbiAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgfTtcbiAgaGxqcy5QSFJBU0FMX1dPUkRTX01PREUgPSB7XG4gICAgYmVnaW46IC9cXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxcYi9cbiAgfTtcbiAgaGxqcy5DT01NRU5UID0gZnVuY3Rpb24gKGJlZ2luLCBlbmQsIGluaGVyaXRzKSB7XG4gICAgdmFyIG1vZGUgPSBobGpzLmluaGVyaXQoXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICBiZWdpbjogYmVnaW4sIGVuZDogZW5kLFxuICAgICAgICBjb250YWluczogW11cbiAgICAgIH0sXG4gICAgICBpbmhlcml0cyB8fCB7fVxuICAgICk7XG4gICAgbW9kZS5jb250YWlucy5wdXNoKGhsanMuUEhSQVNBTF9XT1JEU19NT0RFKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goe1xuICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgIGJlZ2luOiAnKD86VE9ET3xGSVhNRXxOT1RFfEJVR3xYWFgpOicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9KTtcbiAgICByZXR1cm4gbW9kZTtcbiAgfTtcbiAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKCcvLycsICckJyk7XG4gIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUgPSBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nKTtcbiAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnIycsICckJyk7XG4gIGhsanMuTlVNQkVSX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGhsanMuQ19OVU1CRVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiBobGpzLkJJTkFSWV9OVU1CRVJfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGhsanMuQ1NTX05VTUJFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICclfGVtfGV4fGNofHJlbScgICtcbiAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAnfGNtfG1tfGlufHB0fHBjfHB4JyArXG4gICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAnfHN8bXMnICtcbiAgICAgICd8SHp8a0h6JyArXG4gICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICcpPycsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGhsanMuUkVHRVhQX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICBiZWdpbjogL1xcLy8sIGVuZDogL1xcL1tnaW11eV0qLyxcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcWy8sIGVuZDogL1xcXS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBobGpzLlRJVExFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgaGxqcy5NRVRIT0RfR1VBUkQgPSB7XG4gICAgLy8gZXhjbHVkZXMgbWV0aG9kIG5hbWVzIGZyb20ga2V5d29yZCBwcm9jZXNzaW5nXG4gICAgYmVnaW46ICdcXFxcLlxcXFxzKicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgcmV0dXJuIGhsanM7XG59KSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoaWdoID0gcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9oaWdobGlnaHQuanMnKTtcblxuLyogVGhlIGxvd2xpZ2h0IGludGVyZmFjZSwgd2hpY2ggaGFzIHRvIGJlIGNvbXBhdGlibGVcbiAqIHdpdGggaGlnaGxpZ2h0LmpzLCBhcyB0aGlzIG9iamVjdCBpcyBwYXNzZWQgdG9cbiAqIGhpZ2hsaWdodC5qcyBzeW50YXhlcy4gKi9cblxuZnVuY3Rpb24gSGlnaCgpIHt9XG5cbkhpZ2gucHJvdG90eXBlID0gaGlnaDtcblxuLyogRXhwb3NlLiAqL1xudmFyIGxvdyA9IG5ldyBIaWdoKCk7IC8vIEhhIVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxvdztcblxubG93LmhpZ2hsaWdodCA9IGhpZ2hsaWdodDtcbmxvdy5oaWdobGlnaHRBdXRvID0gYXV0b0hpZ2hsaWdodDtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlID0gcmVnaXN0ZXJMYW5ndWFnZTtcbmxvdy5nZXRMYW5ndWFnZSA9IGdldExhbmd1YWdlO1xuXG52YXIgaW5oZXJpdCA9IGhpZ2guaW5oZXJpdDtcbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIERFRkFVTFRfUFJFRklYID0gJ2hsanMtJztcbnZhciBLRVlfSU5TRU5TSVRJVkUgPSAnY2FzZV9pbnNlbnNpdGl2ZSc7XG52YXIgS0VZX0NBQ0hFRF9WQVJJQU5UUyA9ICdjYWNoZWRfdmFyaWFudHMnO1xudmFyIEVNUFRZID0gJyc7XG5cbnZhciBDX1NQQUNFID0gJyAnO1xudmFyIENfUElQRSA9ICd8JztcblxudmFyIFRfRUxFTUVOVCA9ICdlbGVtZW50JztcbnZhciBUX1RFWFQgPSAndGV4dCc7XG52YXIgVF9TUEFOID0gJ3NwYW4nO1xuXG4vKiBNYXBzIG9mIHN5bnRheGVzLiAqL1xudmFyIGxhbmd1YWdlTmFtZXMgPSBbXTtcbnZhciBsYW5ndWFnZXMgPSB7fTtcbnZhciBhbGlhc2VzID0ge307XG5cbi8qIEhpZ2hsaWdodGluZyB3aXRoIGxhbmd1YWdlIGRldGVjdGlvbi4gIEFjY2VwdHMgYSBzdHJpbmdcbiAqIHdpdGggdGhlIGNvZGUgdG8gaGlnaGxpZ2h0LiAgUmV0dXJucyBhbiBvYmplY3Qgd2l0aCB0aGVcbiAqIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICpcbiAqIC0gbGFuZ3VhZ2UgKGRldGVjdGVkIGxhbmd1YWdlKVxuICogLSByZWxldmFuY2UgKGludClcbiAqIC0gdmFsdWUgKGFuIEhUTUwgc3RyaW5nIHdpdGggaGlnaGxpZ2h0aW5nIG1hcmt1cClcbiAqIC0gc2Vjb25kQmVzdCAob2JqZWN0IHdpdGggdGhlIHNhbWUgc3RydWN0dXJlIGZvclxuICogICBzZWNvbmQtYmVzdCBoZXVyaXN0aWNhbGx5IGRldGVjdGVkIGxhbmd1YWdlLCBtYXlcbiAqICAgYmUgYWJzZW50KSAqL1xuZnVuY3Rpb24gYXV0b0hpZ2hsaWdodCh2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgcHJlZml4ID0gc2V0dGluZ3MucHJlZml4O1xuICB2YXIgc3Vic2V0ID0gc2V0dGluZ3Muc3Vic2V0IHx8IGxhbmd1YWdlTmFtZXM7XG4gIHZhciBsZW5ndGggPSBzdWJzZXQubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIHJlc3VsdDtcbiAgdmFyIHNlY29uZEJlc3Q7XG4gIHZhciBjdXJyZW50O1xuICB2YXIgbmFtZTtcblxuICBpZiAocHJlZml4ID09PSBudWxsIHx8IHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcHJlZml4ID0gREVGQVVMVF9QUkVGSVg7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIHZhbHVlLCBnb3QgYCcgKyB2YWx1ZSArICdgJyk7XG4gIH1cblxuICBzZWNvbmRCZXN0ID0gbm9ybWFsaXplKHt9KTtcbiAgcmVzdWx0ID0gbm9ybWFsaXplKHt9KTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIG5hbWUgPSBzdWJzZXRbaW5kZXhdO1xuXG4gICAgaWYgKCFnZXRMYW5ndWFnZShuYW1lKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY3VycmVudCA9IG5vcm1hbGl6ZShjb3JlSGlnaGxpZ2h0KG5hbWUsIHZhbHVlLCBmYWxzZSwgcHJlZml4KSk7XG5cbiAgICBjdXJyZW50Lmxhbmd1YWdlID0gbmFtZTtcblxuICAgIGlmIChjdXJyZW50LnJlbGV2YW5jZSA+IHNlY29uZEJlc3QucmVsZXZhbmNlKSB7XG4gICAgICBzZWNvbmRCZXN0ID0gY3VycmVudDtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudC5yZWxldmFuY2UgPiByZXN1bHQucmVsZXZhbmNlKSB7XG4gICAgICBzZWNvbmRCZXN0ID0gcmVzdWx0O1xuICAgICAgcmVzdWx0ID0gY3VycmVudDtcbiAgICB9XG4gIH1cblxuICBpZiAoc2Vjb25kQmVzdC5sYW5ndWFnZSkge1xuICAgIHJlc3VsdC5zZWNvbmRCZXN0ID0gc2Vjb25kQmVzdDtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qIEhpZ2hsaWdodGluZyBgdmFsdWVgIGluIHRoZSBsYW5ndWFnZSBgbGFuZ3VhZ2VgLiAqL1xuZnVuY3Rpb24gaGlnaGxpZ2h0KGxhbmd1YWdlLCB2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgcHJlZml4ID0gc2V0dGluZ3MucHJlZml4O1xuXG4gIGlmIChwcmVmaXggPT09IG51bGwgfHwgcHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICBwcmVmaXggPSBERUZBVUxUX1BSRUZJWDtcbiAgfVxuXG4gIHJldHVybiBub3JtYWxpemUoY29yZUhpZ2hsaWdodChsYW5ndWFnZSwgdmFsdWUsIHRydWUsIHByZWZpeCkpO1xufVxuXG4vKiBSZWdpc3RlciBhIGxhbmd1YWdlLiAqL1xuZnVuY3Rpb24gcmVnaXN0ZXJMYW5ndWFnZShuYW1lLCBzeW50YXgpIHtcbiAgdmFyIGxhbmcgPSBsYW5ndWFnZXNbbmFtZV0gPSBzeW50YXgobG93KTtcbiAgdmFyIHZhbHVlcyA9IGxhbmcuYWxpYXNlcztcbiAgdmFyIGxlbmd0aCA9IHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcblxuICBsYW5ndWFnZU5hbWVzLnB1c2gobmFtZSk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhbGlhc2VzW3ZhbHVlc1tpbmRleF1dID0gbmFtZTtcbiAgfVxufVxuXG4vKiBDb3JlIGhpZ2hsaWdodGluZyBmdW5jdGlvbi4gIEFjY2VwdHMgYSBsYW5ndWFnZSBuYW1lLCBvclxuICogYW4gYWxpYXMsIGFuZCBhIHN0cmluZyB3aXRoIHRoZSBjb2RlIHRvIGhpZ2hsaWdodC5cbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOiAqL1xuZnVuY3Rpb24gY29yZUhpZ2hsaWdodChuYW1lLCB2YWx1ZSwgaWdub3JlLCBwcmVmaXgsIGNvbnRpbnVhdGlvbikge1xuICB2YXIgY29udGludWF0aW9ucyA9IHt9O1xuICB2YXIgc3RhY2sgPSBbXTtcbiAgdmFyIG1vZGVCdWZmZXIgPSBFTVBUWTtcbiAgdmFyIHJlbGV2YW5jZSA9IDA7XG4gIHZhciBsYW5ndWFnZTtcbiAgdmFyIHRvcDtcbiAgdmFyIGN1cnJlbnQ7XG4gIHZhciBjdXJyZW50Q2hpbGRyZW47XG4gIHZhciBvZmZzZXQ7XG4gIHZhciBjb3VudDtcbiAgdmFyIG1hdGNoO1xuICB2YXIgY2hpbGRyZW47XG5cbiAgaWYgKHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIG5hbWUsIGdvdCBgJyArIG5hbWUgKyAnYCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGBzdHJpbmdgIGZvciB2YWx1ZSwgZ290IGAnICsgdmFsdWUgKyAnYCcpO1xuICB9XG5cbiAgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShuYW1lKTtcbiAgY3VycmVudCA9IHRvcCA9IGNvbnRpbnVhdGlvbiB8fCBsYW5ndWFnZTtcbiAgY3VycmVudENoaWxkcmVuID0gY2hpbGRyZW4gPSBbXTtcblxuICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxhbmd1YWdlOiBgJyArIG5hbWUgKyAnYCBpcyBub3QgcmVnaXN0ZXJlZCcpO1xuICB9XG5cbiAgY29tcGlsZUxhbmd1YWdlKGxhbmd1YWdlKTtcblxuICB0cnkge1xuICAgIG9mZnNldCA9IHRvcC50ZXJtaW5hdG9ycy5sYXN0SW5kZXggPSAwO1xuICAgIG1hdGNoID0gdG9wLnRlcm1pbmF0b3JzLmV4ZWModmFsdWUpO1xuXG4gICAgd2hpbGUgKG1hdGNoKSB7XG4gICAgICBjb3VudCA9IHByb2Nlc3NMZXhlbWUodmFsdWUuc3Vic3RyaW5nKG9mZnNldCwgbWF0Y2guaW5kZXgpLCBtYXRjaFswXSk7XG4gICAgICBvZmZzZXQgPSB0b3AudGVybWluYXRvcnMubGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBjb3VudDtcbiAgICAgIG1hdGNoID0gdG9wLnRlcm1pbmF0b3JzLmV4ZWModmFsdWUpO1xuICAgIH1cblxuICAgIHByb2Nlc3NMZXhlbWUodmFsdWUuc3Vic3RyKG9mZnNldCkpO1xuICAgIGN1cnJlbnQgPSB0b3A7XG5cbiAgICB3aGlsZSAoY3VycmVudC5wYXJlbnQpIHtcbiAgICAgIGlmIChjdXJyZW50LmNsYXNzTmFtZSkge1xuICAgICAgICBwb3AoKTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWxldmFuY2U6IHJlbGV2YW5jZSxcbiAgICAgIHZhbHVlOiBjdXJyZW50Q2hpbGRyZW4sXG4gICAgICBsYW5ndWFnZTogbmFtZSxcbiAgICAgIHRvcDogdG9wXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gQ2F0Y2gtYWxsICAqL1xuICAgIGlmIChlcnIubWVzc2FnZS5pbmRleE9mKCdJbGxlZ2FsJykgPT09IC0xKSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtyZWxldmFuY2U6IDAsIHZhbHVlOiBhZGRUZXh0KHZhbHVlLCBbXSl9O1xuICB9XG5cbiAgLyogUHJvY2VzcyBhIGxleGVtZS4gIFJldHVybnMgbmV4dCBwb3NpdGlvbi4gKi9cbiAgZnVuY3Rpb24gcHJvY2Vzc0xleGVtZShidWZmZXIsIGxleGVtZSkge1xuICAgIHZhciBuZXdNb2RlO1xuICAgIHZhciBlbmRNb2RlO1xuICAgIHZhciBvcmlnaW47XG5cbiAgICBtb2RlQnVmZmVyICs9IGJ1ZmZlcjtcblxuICAgIGlmIChsZXhlbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYWRkU2libGluZ3MocHJvY2Vzc0J1ZmZlcigpLCBjdXJyZW50Q2hpbGRyZW4pO1xuXG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBuZXdNb2RlID0gc3ViTW9kZShsZXhlbWUsIHRvcCk7XG5cbiAgICBpZiAobmV3TW9kZSkge1xuICAgICAgYWRkU2libGluZ3MocHJvY2Vzc0J1ZmZlcigpLCBjdXJyZW50Q2hpbGRyZW4pO1xuXG4gICAgICBzdGFydE5ld01vZGUobmV3TW9kZSwgbGV4ZW1lKTtcblxuICAgICAgcmV0dXJuIG5ld01vZGUucmV0dXJuQmVnaW4gPyAwIDogbGV4ZW1lLmxlbmd0aDtcbiAgICB9XG5cbiAgICBlbmRNb2RlID0gZW5kT2ZNb2RlKHRvcCwgbGV4ZW1lKTtcblxuICAgIGlmIChlbmRNb2RlKSB7XG4gICAgICBvcmlnaW4gPSB0b3A7XG5cbiAgICAgIGlmICghKG9yaWdpbi5yZXR1cm5FbmQgfHwgb3JpZ2luLmV4Y2x1ZGVFbmQpKSB7XG4gICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgfVxuXG4gICAgICBhZGRTaWJsaW5ncyhwcm9jZXNzQnVmZmVyKCksIGN1cnJlbnRDaGlsZHJlbik7XG5cbiAgICAgIC8qIENsb3NlIG9wZW4gbW9kZXMuICovXG4gICAgICBkbyB7XG4gICAgICAgIGlmICh0b3AuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZWxldmFuY2UgKz0gdG9wLnJlbGV2YW5jZTtcbiAgICAgICAgdG9wID0gdG9wLnBhcmVudDtcbiAgICAgIH0gd2hpbGUgKHRvcCAhPT0gZW5kTW9kZS5wYXJlbnQpO1xuXG4gICAgICBpZiAob3JpZ2luLmV4Y2x1ZGVFbmQpIHtcbiAgICAgICAgYWRkVGV4dChsZXhlbWUsIGN1cnJlbnRDaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICAgIG1vZGVCdWZmZXIgPSBFTVBUWTtcblxuICAgICAgaWYgKGVuZE1vZGUuc3RhcnRzKSB7XG4gICAgICAgIHN0YXJ0TmV3TW9kZShlbmRNb2RlLnN0YXJ0cywgRU1QVFkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3JpZ2luLnJldHVybkVuZCA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChpc0lsbGVnYWwobGV4ZW1lLCB0b3ApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdJbGxlZ2FsIGxleGVtZSBcIicgKyBsZXhlbWUgKyAnXCIgZm9yIG1vZGUgXCInICtcbiAgICAgICAgKHRvcC5jbGFzc05hbWUgfHwgJzx1bm5hbWVkPicpICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiBQYXJzZXIgc2hvdWxkIG5vdCByZWFjaCB0aGlzIHBvaW50IGFzIGFsbFxuICAgICAqIHR5cGVzIG9mIGxleGVtZXMgc2hvdWxkIGJlIGNhdWdodCBlYXJsaWVyLFxuICAgICAqIGJ1dCBpZiBpdCBkb2VzIGR1ZSB0byBzb21lIGJ1ZyBtYWtlIHN1cmUgaXRcbiAgICAgKiBhZHZhbmNlcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIGZvcndhcmQgdG9cbiAgICAgKiBwcmV2ZW50IGluZmluaXRlIGxvb3BpbmcuICovXG4gICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG5cbiAgICByZXR1cm4gbGV4ZW1lLmxlbmd0aCB8fCAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyAxO1xuICB9XG5cbiAgLyogU3RhcnQgYSBuZXcgbW9kZSB3aXRoIGEgYGxleGVtZWAgdG8gcHJvY2Vzcy4gKi9cbiAgZnVuY3Rpb24gc3RhcnROZXdNb2RlKG1vZGUsIGxleGVtZSkge1xuICAgIHZhciBub2RlO1xuXG4gICAgaWYgKG1vZGUuY2xhc3NOYW1lKSB7XG4gICAgICBub2RlID0gYnVpbGQobW9kZS5jbGFzc05hbWUsIFtdKTtcbiAgICB9XG5cbiAgICBpZiAobW9kZS5yZXR1cm5CZWdpbikge1xuICAgICAgbW9kZUJ1ZmZlciA9IEVNUFRZO1xuICAgIH0gZWxzZSBpZiAobW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgIGFkZFRleHQobGV4ZW1lLCBjdXJyZW50Q2hpbGRyZW4pO1xuXG4gICAgICBtb2RlQnVmZmVyID0gRU1QVFk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGVCdWZmZXIgPSBsZXhlbWU7XG4gICAgfVxuXG4gICAgLyogRW50ZXIgYSBuZXcgbW9kZS4gKi9cbiAgICBpZiAobm9kZSkge1xuICAgICAgY3VycmVudENoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgICBzdGFjay5wdXNoKGN1cnJlbnRDaGlsZHJlbik7XG4gICAgICBjdXJyZW50Q2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xuICAgIH1cblxuICAgIHRvcCA9IE9iamVjdC5jcmVhdGUobW9kZSwge3BhcmVudDoge3ZhbHVlOiB0b3B9fSk7XG4gIH1cblxuICAvKiBQcm9jZXNzIHRoZSBidWZmZXIuICovXG4gIGZ1bmN0aW9uIHByb2Nlc3NCdWZmZXIoKSB7XG4gICAgdmFyIHJlc3VsdCA9IHRvcC5zdWJMYW5ndWFnZSA9PT0gdW5kZWZpbmVkID8gcHJvY2Vzc0tleXdvcmRzKCkgOiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKTtcbiAgICBtb2RlQnVmZmVyID0gRU1QVFk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qIFByb2Nlc3MgYSBzdWJsYW5ndWFnZSAocmV0dXJucyBhIGxpc3Qgb2Ygbm9kZXMpLiAqL1xuICBmdW5jdGlvbiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKSB7XG4gICAgdmFyIGV4cGxpY2l0ID0gdHlwZW9mIHRvcC5zdWJMYW5ndWFnZSA9PT0gJ3N0cmluZyc7XG4gICAgdmFyIHN1YnZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gc3VwcG9ydCBub24tbG9hZGVkIHN1Ymxhbmd1YWdlcyAqL1xuICAgIGlmIChleHBsaWNpdCAmJiAhbGFuZ3VhZ2VzW3RvcC5zdWJMYW5ndWFnZV0pIHtcbiAgICAgIHJldHVybiBhZGRUZXh0KG1vZGVCdWZmZXIsIFtdKTtcbiAgICB9XG5cbiAgICBpZiAoZXhwbGljaXQpIHtcbiAgICAgIHN1YnZhbHVlID0gY29yZUhpZ2hsaWdodChcbiAgICAgICAgdG9wLnN1Ykxhbmd1YWdlLFxuICAgICAgICBtb2RlQnVmZmVyLFxuICAgICAgICB0cnVlLFxuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGNvbnRpbnVhdGlvbnNbdG9wLnN1Ykxhbmd1YWdlXVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VidmFsdWUgPSBhdXRvSGlnaGxpZ2h0KG1vZGVCdWZmZXIsIHtcbiAgICAgICAgc3Vic2V0OiB0b3Auc3ViTGFuZ3VhZ2UubGVuZ3RoID8gdG9wLnN1Ykxhbmd1YWdlIDogdW5kZWZpbmVkLFxuICAgICAgICBwcmVmaXg6IHByZWZpeFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyogQ291bnRpbmcgZW1iZWRkZWQgbGFuZ3VhZ2Ugc2NvcmUgdG93YXJkcyB0aGVcbiAgICAgKiBob3N0IGxhbmd1YWdlIG1heSBiZSBkaXNhYmxlZCB3aXRoIHplcm9pbmcgdGhlXG4gICAgICogY29udGFpbmluZyBtb2RlIHJlbGV2YW5jZS4gIFVzZWNhc2UgaW4gcG9pbnQgaXNcbiAgICAgKiBNYXJrZG93biB0aGF0IGFsbG93cyBYTUwgZXZlcnl3aGVyZSBhbmQgbWFrZXNcbiAgICAgKiBldmVyeSBYTUwgc25pcHBldCB0byBoYXZlIGEgbXVjaCBsYXJnZXIgTWFya2Rvd25cbiAgICAgKiBzY29yZS4gKi9cbiAgICBpZiAodG9wLnJlbGV2YW5jZSA+IDApIHtcbiAgICAgIHJlbGV2YW5jZSArPSBzdWJ2YWx1ZS5yZWxldmFuY2U7XG4gICAgfVxuXG4gICAgaWYgKGV4cGxpY2l0KSB7XG4gICAgICBjb250aW51YXRpb25zW3RvcC5zdWJMYW5ndWFnZV0gPSBzdWJ2YWx1ZS50b3A7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtidWlsZChzdWJ2YWx1ZS5sYW5ndWFnZSwgc3VidmFsdWUudmFsdWUsIHRydWUpXTtcbiAgfVxuXG4gIC8qIFByb2Nlc3Mga2V5d29yZHMuIFJldHVybnMgbm9kZXMuICovXG4gIGZ1bmN0aW9uIHByb2Nlc3NLZXl3b3JkcygpIHtcbiAgICB2YXIgbm9kZXMgPSBbXTtcbiAgICB2YXIgbGFzdEluZGV4O1xuICAgIHZhciBrZXl3b3JkO1xuICAgIHZhciBub2RlO1xuICAgIHZhciBzdWJtYXRjaDtcblxuICAgIGlmICghdG9wLmtleXdvcmRzKSB7XG4gICAgICByZXR1cm4gYWRkVGV4dChtb2RlQnVmZmVyLCBub2Rlcyk7XG4gICAgfVxuXG4gICAgbGFzdEluZGV4ID0gMDtcblxuICAgIHRvcC5sZXhlbWVzUmUubGFzdEluZGV4ID0gMDtcblxuICAgIGtleXdvcmQgPSB0b3AubGV4ZW1lc1JlLmV4ZWMobW9kZUJ1ZmZlcik7XG5cbiAgICB3aGlsZSAoa2V5d29yZCkge1xuICAgICAgYWRkVGV4dChtb2RlQnVmZmVyLnN1YnN0cmluZyhsYXN0SW5kZXgsIGtleXdvcmQuaW5kZXgpLCBub2Rlcyk7XG5cbiAgICAgIHN1Ym1hdGNoID0ga2V5d29yZE1hdGNoKHRvcCwga2V5d29yZCk7XG5cbiAgICAgIGlmIChzdWJtYXRjaCkge1xuICAgICAgICByZWxldmFuY2UgKz0gc3VibWF0Y2hbMV07XG5cbiAgICAgICAgbm9kZSA9IGJ1aWxkKHN1Ym1hdGNoWzBdLCBbXSk7XG5cbiAgICAgICAgbm9kZXMucHVzaChub2RlKTtcblxuICAgICAgICBhZGRUZXh0KGtleXdvcmRbMF0sIG5vZGUuY2hpbGRyZW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkVGV4dChrZXl3b3JkWzBdLCBub2Rlcyk7XG4gICAgICB9XG5cbiAgICAgIGxhc3RJbmRleCA9IHRvcC5sZXhlbWVzUmUubGFzdEluZGV4O1xuICAgICAga2V5d29yZCA9IHRvcC5sZXhlbWVzUmUuZXhlYyhtb2RlQnVmZmVyKTtcbiAgICB9XG5cbiAgICBhZGRUZXh0KG1vZGVCdWZmZXIuc3Vic3RyKGxhc3RJbmRleCksIG5vZGVzKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxuXG4gIC8qIEFkZCBzaWJsaW5ncy4gKi9cbiAgZnVuY3Rpb24gYWRkU2libGluZ3Moc2libGluZ3MsIG5vZGVzKSB7XG4gICAgdmFyIGxlbmd0aCA9IHNpYmxpbmdzLmxlbmd0aDtcbiAgICB2YXIgaW5kZXggPSAtMTtcbiAgICB2YXIgc2libGluZztcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBzaWJsaW5nID0gc2libGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAoc2libGluZy50eXBlID09PSBUX1RFWFQpIHtcbiAgICAgICAgYWRkVGV4dChzaWJsaW5nLnZhbHVlLCBub2Rlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2Rlcy5wdXNoKHNpYmxpbmcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEFkZCBhIHRleHQuICovXG4gIGZ1bmN0aW9uIGFkZFRleHQodmFsdWUsIG5vZGVzKSB7XG4gICAgdmFyIHRhaWw7XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRhaWwgPSBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTtcblxuICAgICAgaWYgKHRhaWwgJiYgdGFpbC50eXBlID09PSBUX1RFWFQpIHtcbiAgICAgICAgdGFpbC52YWx1ZSArPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGVzLnB1c2goYnVpbGRUZXh0KHZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG5cbiAgLyogQnVpbGQgYSB0ZXh0LiAqL1xuICBmdW5jdGlvbiBidWlsZFRleHQodmFsdWUpIHtcbiAgICByZXR1cm4ge3R5cGU6IFRfVEVYVCwgdmFsdWU6IHZhbHVlfTtcbiAgfVxuXG4gIC8qIEJ1aWxkIGEgc3Bhbi4gKi9cbiAgZnVuY3Rpb24gYnVpbGQobmFtZSwgY29udGVudHMsIG5vUHJlZml4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRfRUxFTUVOVCxcbiAgICAgIHRhZ05hbWU6IFRfU1BBTixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgY2xhc3NOYW1lOiBbKG5vUHJlZml4ID8gRU1QVFkgOiBwcmVmaXgpICsgbmFtZV1cbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogY29udGVudHNcbiAgICB9O1xuICB9XG5cbiAgLyogQ2hlY2sgaWYgdGhlIGZpcnN0IHdvcmQgaW4gYGtleXdvcmRzYCBpcyBhIGtleXdvcmQuICovXG4gIGZ1bmN0aW9uIGtleXdvcmRNYXRjaChtb2RlLCBrZXl3b3Jkcykge1xuICAgIHZhciBrZXl3b3JkID0ga2V5d29yZHNbMF07XG5cbiAgICBpZiAobGFuZ3VhZ2VbS0VZX0lOU0VOU0lUSVZFXSkge1xuICAgICAga2V5d29yZCA9IGtleXdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3duLmNhbGwobW9kZS5rZXl3b3Jkcywga2V5d29yZCkgJiYgbW9kZS5rZXl3b3Jkc1trZXl3b3JkXTtcbiAgfVxuXG4gIC8qIENoZWNrIGlmIGBsZXhlbWVgIGlzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIGBtb2RlYC4gKi9cbiAgZnVuY3Rpb24gaXNJbGxlZ2FsKGxleGVtZSwgbW9kZSkge1xuICAgIHJldHVybiAhaWdub3JlICYmIHRlc3QobW9kZS5pbGxlZ2FsUmUsIGxleGVtZSk7XG4gIH1cblxuICAvKiBDaGVjayBpZiBgbGV4ZW1lYCBlbmRzIGBtb2RlYC4gKi9cbiAgZnVuY3Rpb24gZW5kT2ZNb2RlKG1vZGUsIGxleGVtZSkge1xuICAgIGlmICh0ZXN0KG1vZGUuZW5kUmUsIGxleGVtZSkpIHtcbiAgICAgIHdoaWxlIChtb2RlLmVuZHNQYXJlbnQgJiYgbW9kZS5wYXJlbnQpIHtcbiAgICAgICAgbW9kZSA9IG1vZGUucGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuXG4gICAgaWYgKG1vZGUuZW5kc1dpdGhQYXJlbnQpIHtcbiAgICAgIHJldHVybiBlbmRPZk1vZGUobW9kZS5wYXJlbnQsIGxleGVtZSk7XG4gICAgfVxuICB9XG5cbiAgLyogQ2hlY2sgYSBzdWItbW9kZS4gKi9cbiAgZnVuY3Rpb24gc3ViTW9kZShsZXhlbWUsIG1vZGUpIHtcbiAgICB2YXIgdmFsdWVzID0gbW9kZS5jb250YWlucztcbiAgICB2YXIgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcbiAgICB2YXIgaW5kZXggPSAtMTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAodGVzdCh2YWx1ZXNbaW5kZXhdLmJlZ2luUmUsIGxleGVtZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlc1tpbmRleF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogRXhpdCB0aGUgY3VycmVudCBjb250ZXh0LiAqL1xuICBmdW5jdGlvbiBwb3AoKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgLSByZW1vdmVkIGluIGhsanMgOS4zICovXG4gICAgY3VycmVudENoaWxkcmVuID0gc3RhY2sucG9wKCkgfHwgY2hpbGRyZW47XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwYW5kTW9kZShtb2RlKSB7XG4gIGlmIChtb2RlLnZhcmlhbnRzICYmICFtb2RlW0tFWV9DQUNIRURfVkFSSUFOVFNdKSB7XG4gICAgbW9kZVtLRVlfQ0FDSEVEX1ZBUklBTlRTXSA9IG1vZGUudmFyaWFudHMubWFwKGZ1bmN0aW9uICh2YXJpYW50KSB7XG4gICAgICByZXR1cm4gaW5oZXJpdChtb2RlLCB7dmFyaWFudHM6IG51bGx9LCB2YXJpYW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBtb2RlW0tFWV9DQUNIRURfVkFSSUFOVFNdIHx8IChtb2RlLmVuZHNXaXRoUGFyZW50ICYmIFtpbmhlcml0KG1vZGUpXSkgfHwgW21vZGVdO1xufVxuXG4vKiBDb21waWxlIGEgbGFuZ3VhZ2UuICovXG5mdW5jdGlvbiBjb21waWxlTGFuZ3VhZ2UobGFuZ3VhZ2UpIHtcbiAgY29tcGlsZU1vZGUobGFuZ3VhZ2UpO1xuXG4gIC8qIENvbXBpbGUgYSBsYW5ndWFnZSBtb2RlLCBvcHRpb25hbGx5IHdpdGggYSBwYXJlbnQuICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVNb2RlKG1vZGUsIHBhcmVudCkge1xuICAgIHZhciBjb21waWxlZEtleXdvcmRzID0ge307XG4gICAgdmFyIHRlcm1pbmF0b3JzO1xuXG4gICAgaWYgKG1vZGUuY29tcGlsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtb2RlLmNvbXBpbGVkID0gdHJ1ZTtcblxuICAgIG1vZGUua2V5d29yZHMgPSBtb2RlLmtleXdvcmRzIHx8IG1vZGUuYmVnaW5LZXl3b3JkcztcblxuICAgIGlmIChtb2RlLmtleXdvcmRzKSB7XG4gICAgICBpZiAodHlwZW9mIG1vZGUua2V5d29yZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGZsYXR0ZW4oJ2tleXdvcmQnLCBtb2RlLmtleXdvcmRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG1vZGUua2V5d29yZHMpLmZvckVhY2goZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuICAgICAgICAgIGZsYXR0ZW4oY2xhc3NOYW1lLCBtb2RlLmtleXdvcmRzW2NsYXNzTmFtZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgbW9kZS5rZXl3b3JkcyA9IGNvbXBpbGVkS2V5d29yZHM7XG4gICAgfVxuXG4gICAgbW9kZS5sZXhlbWVzUmUgPSBsYW5nUmUobW9kZS5sZXhlbWVzIHx8IC9cXHcrLywgdHJ1ZSk7XG5cbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBpZiAobW9kZS5iZWdpbktleXdvcmRzKSB7XG4gICAgICAgIG1vZGUuYmVnaW4gPSAnXFxcXGIoJyArIG1vZGUuYmVnaW5LZXl3b3Jkcy5zcGxpdChDX1NQQUNFKS5qb2luKENfUElQRSkgKyAnKVxcXFxiJztcbiAgICAgIH1cblxuICAgICAgaWYgKCFtb2RlLmJlZ2luKSB7XG4gICAgICAgIG1vZGUuYmVnaW4gPSAvXFxCfFxcYi87XG4gICAgICB9XG5cbiAgICAgIG1vZGUuYmVnaW5SZSA9IGxhbmdSZShtb2RlLmJlZ2luKTtcblxuICAgICAgaWYgKCFtb2RlLmVuZCAmJiAhbW9kZS5lbmRzV2l0aFBhcmVudCkge1xuICAgICAgICBtb2RlLmVuZCA9IC9cXEJ8XFxiLztcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUuZW5kKSB7XG4gICAgICAgIG1vZGUuZW5kUmUgPSBsYW5nUmUobW9kZS5lbmQpO1xuICAgICAgfVxuXG4gICAgICBtb2RlLnRlcm1pbmF0b3JFbmQgPSBzb3VyY2UobW9kZS5lbmQpIHx8IEVNUFRZO1xuXG4gICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCAmJiBwYXJlbnQudGVybWluYXRvckVuZCkge1xuICAgICAgICBtb2RlLnRlcm1pbmF0b3JFbmQgKz0gKG1vZGUuZW5kID8gQ19QSVBFIDogRU1QVFkpICsgcGFyZW50LnRlcm1pbmF0b3JFbmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUuaWxsZWdhbCkge1xuICAgICAgbW9kZS5pbGxlZ2FsUmUgPSBsYW5nUmUobW9kZS5pbGxlZ2FsKTtcbiAgICB9XG5cbiAgICBpZiAobW9kZS5yZWxldmFuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbW9kZS5yZWxldmFuY2UgPSAxO1xuICAgIH1cblxuICAgIGlmICghbW9kZS5jb250YWlucykge1xuICAgICAgbW9kZS5jb250YWlucyA9IFtdO1xuICAgIH1cblxuICAgIG1vZGUuY29udGFpbnMgPSBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBtb2RlLmNvbnRhaW5zLm1hcChmdW5jdGlvbiAoYykge1xuICAgICAgcmV0dXJuIGV4cGFuZE1vZGUoYyA9PT0gJ3NlbGYnID8gbW9kZSA6IGMpO1xuICAgIH0pKTtcblxuICAgIG1vZGUuY29udGFpbnMuZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgY29tcGlsZU1vZGUoYywgbW9kZSk7XG4gICAgfSk7XG5cbiAgICBpZiAobW9kZS5zdGFydHMpIHtcbiAgICAgIGNvbXBpbGVNb2RlKG1vZGUuc3RhcnRzLCBwYXJlbnQpO1xuICAgIH1cblxuICAgIHRlcm1pbmF0b3JzID1cbiAgICAgIG1vZGUuY29udGFpbnMubWFwKGZ1bmN0aW9uIChjKSB7XG4gICAgICAgIHJldHVybiBjLmJlZ2luS2V5d29yZHMgPyAnXFxcXC4/KCcgKyBjLmJlZ2luICsgJylcXFxcLj8nIDogYy5iZWdpbjtcbiAgICAgIH0pXG4gICAgICAuY29uY2F0KFttb2RlLnRlcm1pbmF0b3JFbmQsIG1vZGUuaWxsZWdhbF0pXG4gICAgICAubWFwKHNvdXJjZSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICBtb2RlLnRlcm1pbmF0b3JzID0gdGVybWluYXRvcnMubGVuZ3RoID9cbiAgICAgIGxhbmdSZSh0ZXJtaW5hdG9ycy5qb2luKENfUElQRSksIHRydWUpIDpcbiAgICAgIHtleGVjOiBleGVjTm9vcH07XG5cbiAgICAvKiBGbGF0dGVuIGEgY2xhc3NuYW1lLiAqL1xuICAgIGZ1bmN0aW9uIGZsYXR0ZW4oY2xhc3NOYW1lLCB2YWx1ZSkge1xuICAgICAgdmFyIHBhaXJzO1xuICAgICAgdmFyIHBhaXI7XG4gICAgICB2YXIgaW5kZXg7XG4gICAgICB2YXIgbGVuZ3RoO1xuXG4gICAgICBpZiAobGFuZ3VhZ2VbS0VZX0lOU0VOU0lUSVZFXSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIHBhaXJzID0gdmFsdWUuc3BsaXQoQ19TUEFDRSk7XG4gICAgICBsZW5ndGggPSBwYWlycy5sZW5ndGg7XG4gICAgICBpbmRleCA9IC0xO1xuXG4gICAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICBwYWlyID0gcGFpcnNbaW5kZXhdLnNwbGl0KENfUElQRSk7XG5cbiAgICAgICAgY29tcGlsZWRLZXl3b3Jkc1twYWlyWzBdXSA9IFtcbiAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgcGFpclsxXSA/IE51bWJlcihwYWlyWzFdKSA6IDFcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBDcmVhdGUgYSByZWdleCBmb3IgYHZhbHVlYC4gKi9cbiAgZnVuY3Rpb24gbGFuZ1JlKHZhbHVlLCBnbG9iYWwpIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICAgIHNvdXJjZSh2YWx1ZSksXG4gICAgICAnbScgKyAobGFuZ3VhZ2VbS0VZX0lOU0VOU0lUSVZFXSA/ICdpJyA6ICcnKSArXG4gICAgICAoZ2xvYmFsID8gJ2cnIDogJycpXG4gICAgKTtcbiAgfVxuXG4gIC8qIEdldCB0aGUgc291cmNlIG9mIGFuIGV4cHJlc3Npb24gb3Igc3RyaW5nLiAqL1xuICBmdW5jdGlvbiBzb3VyY2UocmUpIHtcbiAgICByZXR1cm4gKHJlICYmIHJlLnNvdXJjZSkgfHwgcmU7XG4gIH1cbn1cblxuLyogTm9ybWFsaXplIGEgc3ludGF4IHJlc3VsdC4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZShyZXN1bHQpIHtcbiAgcmV0dXJuIHtcbiAgICByZWxldmFuY2U6IHJlc3VsdC5yZWxldmFuY2UgfHwgMCxcbiAgICBsYW5ndWFnZTogcmVzdWx0Lmxhbmd1YWdlIHx8IG51bGwsXG4gICAgdmFsdWU6IHJlc3VsdC52YWx1ZSB8fCBbXVxuICB9O1xufVxuXG4vKiBDaGVjayBpZiBgZXhwcmVzc2lvbmAgbWF0Y2hlcyBgbGV4ZW1lYC4gKi9cbmZ1bmN0aW9uIHRlc3QoZXhwcmVzc2lvbiwgbGV4ZW1lKSB7XG4gIHZhciBtYXRjaCA9IGV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi5leGVjKGxleGVtZSk7XG4gIHJldHVybiBtYXRjaCAmJiBtYXRjaC5pbmRleCA9PT0gMDtcbn1cblxuLyogTm8tb3AgZXhlYy4gKi9cbmZ1bmN0aW9uIGV4ZWNOb29wKCkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyogR2V0IGEgbGFuZ3VhZ2UgYnkgYG5hbWVgLiAqL1xuZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UobmFtZSkge1xuICBuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gIHJldHVybiBsYW5ndWFnZXNbbmFtZV0gfHwgbGFuZ3VhZ2VzW2FsaWFzZXNbbmFtZV1dO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKXtcblxuICAvLyDQvtCx0YnQuNC5INC/0LDRgtGC0LXRgNC9INC00LvRjyDQvtC/0YDQtdC00LXQu9C10L3QuNGPINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0L7QslxuICB2YXIgVU5ERVJTQ09SRV9JREVOVF9SRSA9ICdbQS1aYS160JAt0K/QsC3Rj9GR0IFfXVtBLVphLXrQkC3Qr9CwLdGP0ZHQgV8wLTldKyc7XG4gIFxuICAvLyB2NyDRg9C90LjQutCw0LvRjNC90YvQtSDQutC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAsINC+0YLRgdGD0YLRgdGC0LLRg9GO0YnQuNC1INCyIHY4ID09PiBrZXl3b3JkXG4gIHZhciB2N19rZXl3b3JkcyA9XG4gICfQtNCw0LvQtdC1ICc7XG5cbiAgLy8gdjgg0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwID09PiBrZXl3b3JkXG4gIHZhciB2OF9rZXl3b3JkcyA9XG4gICfQstC+0LfQstGA0LDRgiDQstGL0LfQstCw0YLRjNC40YHQutC70Y7Rh9C10L3QuNC1INCy0YvQv9C+0LvQvdC40YLRjCDQtNC70Y8g0LXRgdC70Lgg0Lgg0LjQtyDQuNC70Lgg0LjQvdCw0YfQtSDQuNC90LDRh9C10LXRgdC70Lgg0LjRgdC60LvRjtGH0LXQvdC40LUg0LrQsNC20LTQvtCz0L4g0LrQvtC90LXRhtC10YHQu9C4ICcgK1xuICAn0LrQvtC90LXRhtC/0L7Qv9GL0YLQutC4INC60L7QvdC10YbRhtC40LrQu9CwINC90LUg0L3QvtCy0YvQuSDQv9C10YDQtdC50YLQuCDQv9C10YDQtdC8INC/0L4g0L/QvtC60LAg0L/QvtC/0YvRgtC60LAg0L/RgNC10YDQstCw0YLRjCDQv9GA0L7QtNC+0LvQttC40YLRjCDRgtC+0LPQtNCwINGG0LjQutC7INGN0LrRgdC/0L7RgNGCICc7XG5cbiAgLy8ga2V5d29yZCA6INC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsFxuICB2YXIgS0VZV09SRCA9IHY3X2tleXdvcmRzICsgdjhfa2V5d29yZHM7XG4gIFxuICAvLyB2NyDRg9C90LjQutCw0LvRjNC90YvQtSDQtNC40YDQtdC60YLQuNCy0YssINC+0YLRgdGD0YLRgdGC0LLRg9GO0YnQuNC1INCyIHY4ID09PiBtZXRhLWtleXdvcmRcbiAgdmFyIHY3X21ldGFfa2V5d29yZHMgPVxuICAn0LfQsNCz0YDRg9C30LjRgtGM0LjQt9GE0LDQudC70LAgJztcblxuICAvLyB2OCDQutC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0LIg0LjQvdGB0YLRgNGD0LrRhtC40Y/RhSDQv9GA0LXQv9GA0L7RhtC10YHRgdC+0YDQsCwg0LTQuNGA0LXQutGC0LjQstCw0YUg0LrQvtC80L/QuNC70Y/RhtC40LgsINCw0L3QvdC+0YLQsNGG0LjRj9GFID09PiBtZXRhLWtleXdvcmRcbiAgdmFyIHY4X21ldGFfa2V5d29yZHMgPVxuICAn0LLQtdCx0LrQu9C40LXQvdGCINCy0LzQtdGB0YLQviDQstC90LXRiNC90LXQtdGB0L7QtdC00LjQvdC10L3QuNC1INC60LvQuNC10L3RgiDQutC+0L3QtdGG0L7QsdC70LDRgdGC0Lgg0LzQvtCx0LjQu9GM0L3QvtC10L/RgNC40LvQvtC20LXQvdC40LXQutC70LjQtdC90YIg0LzQvtCx0LjQu9GM0L3QvtC10L/RgNC40LvQvtC20LXQvdC40LXRgdC10YDQstC10YAgJyArXG4gICfQvdCw0LrQu9C40LXQvdGC0LUg0L3QsNC60LvQuNC10L3RgtC10L3QsNGB0LXRgNCy0LXRgNC1INC90LDQutC70LjQtdC90YLQtdC90LDRgdC10YDQstC10YDQtdCx0LXQt9C60L7QvdGC0LXQutGB0YLQsCDQvdCw0YHQtdGA0LLQtdGA0LUg0L3QsNGB0LXRgNCy0LXRgNC10LHQtdC30LrQvtC90YLQtdC60YHRgtCwINC+0LHQu9Cw0YHRgtGMINC/0LXRgNC10LQgJyArXG4gICfQv9C+0YHQu9C1INGB0LXRgNCy0LXRgCDRgtC+0LvRgdGC0YvQudC60LvQuNC10L3RgtC+0LHRi9GH0L3QvtC10L/RgNC40LvQvtC20LXQvdC40LUg0YLQvtC70YHRgtGL0LnQutC70LjQtdC90YLRg9C/0YDQsNCy0LvRj9C10LzQvtC10L/RgNC40LvQvtC20LXQvdC40LUg0YLQvtC90LrQuNC50LrQu9C40LXQvdGCICc7XG5cbiAgLy8gbWV0YS1rZXl3b3JkIDog0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINCyINC40L3RgdGC0YDRg9C60YbQuNGP0YUg0L/RgNC10L/RgNC+0YbQtdGB0YHQvtGA0LAsINC00LjRgNC10LrRgtC40LLQsNGFINC60L7QvNC/0LjQu9GP0YbQuNC4LCDQsNC90L3QvtGC0LDRhtC40Y/RhVxuICB2YXIgTUVUQUtFWVdPUkQgPSB2N19tZXRhX2tleXdvcmRzICsgdjhfbWV0YV9rZXl3b3JkcztcblxuICAvLyB2NyDRgdC40YHRgtC10LzQvdGL0LUg0LrQvtC90YHRgtCw0L3RgtGLID09PiBidWlsdF9pblxuICB2YXIgdjdfc3lzdGVtX2NvbnN0YW50cyA9XG4gICfRgNCw0LfQtNC10LvQuNGC0LXQu9GM0YHRgtGA0LDQvdC40YYg0YDQsNC30LTQtdC70LjRgtC10LvRjNGB0YLRgNC+0Log0YHQuNC80LLQvtC70YLQsNCx0YPQu9GP0YbQuNC4ICc7XG4gIFxuICAvLyB2NyDRg9C90LjQutCw0LvRjNC90YvQtSDQvNC10YLQvtC00Ysg0LPQu9C+0LHQsNC70YzQvdC+0LPQviDQutC+0L3RgtC10LrRgdGC0LAsINC+0YLRgdGD0YLRgdGC0LLRg9GO0YnQuNC1INCyIHY4ID09PiBidWlsdF9pblxuICB2YXIgdjdfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyA9XG4gICdhbnNpdG9vZW0gb2VtdG9hbnNpINCy0LLQtdGB0YLQuNCy0LjQtNGB0YPQsdC60L7QvdGC0L4g0LLQstC10YHRgtC40L/QtdGA0LXRh9C40YHQu9C10L3QuNC1INCy0LLQtdGB0YLQuNC/0LXRgNC40L7QtCDQstCy0LXRgdGC0LjQv9C70LDQvdGB0YfQtdGC0L7QsiDQstGL0LHRgNCw0L3QvdGL0LnQv9C70LDQvdGB0YfQtdGC0L7QsiAnICtcbiAgJ9C00LDRgtCw0LPQvtC0INC00LDRgtCw0LzQtdGB0Y/RhiDQtNCw0YLQsNGH0LjRgdC70L4g0LfQsNCz0L7Qu9C+0LLQvtC60YHQuNGB0YLQtdC80Ysg0LfQvdCw0YfQtdC90LjQtdCy0YHRgtGA0L7QutGDINC30L3QsNGH0LXQvdC40LXQuNC30YHRgtGA0L7QutC4INC60LDRgtCw0LvQvtCz0LjQsSDQutCw0YLQsNC70L7Qs9C/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAnICtcbiAgJ9C60L7QtNGB0LjQvNCyINC60L7QvdCz0L7QtNCwINC60L7QvdC10YbQv9C10YDQuNC+0LTQsNCx0Lgg0LrQvtC90LXRhtGA0LDRgdGB0YfQuNGC0LDQvdC90L7Qs9C+0L/QtdGA0LjQvtC00LDQsdC4INC60L7QvdC10YbRgdGC0LDQvdC00LDRgNGC0L3QvtCz0L7QuNC90YLQtdGA0LLQsNC70LAg0LrQvtC90LrQstCw0YDRgtCw0LvQsCDQutC+0L3QvNC10YHRj9GG0LAgJyArXG4gICfQutC+0L3QvdC10LTQtdC70Lgg0LvQvtCzINC70L7QszEwINC80LDQutGB0LjQvNCw0LvRjNC90L7QtdC60L7Qu9C40YfQtdGB0YLQstC+0YHRg9Cx0LrQvtC90YLQviDQvdCw0LfQstCw0L3QuNC10LjQvdGC0LXRgNGE0LXQudGB0LAg0L3QsNC30LLQsNC90LjQtdC90LDQsdC+0YDQsNC/0YDQsNCyINC90LDQt9C90LDRh9C40YLRjNCy0LjQtCAnICtcbiAgJ9C90LDQt9C90LDRh9C40YLRjNGB0YfQtdGCINC90LDQudGC0LjRgdGB0YvQu9C60Lgg0L3QsNGH0LDQu9C+0L/QtdGA0LjQvtC00LDQsdC4INC90LDRh9Cw0LvQvtGB0YLQsNC90LTQsNGA0YLQvdC+0LPQvtC40L3RgtC10YDQstCw0LvQsCDQvdCw0YfQs9C+0LTQsCDQvdCw0YfQutCy0LDRgNGC0LDQu9CwINC90LDRh9C80LXRgdGP0YbQsCAnICtcbiAgJ9C90LDRh9C90LXQtNC10LvQuCDQvdC+0LzQtdGA0LTQvdGP0LPQvtC00LAg0L3QvtC80LXRgNC00L3Rj9C90LXQtNC10LvQuCDQvdC+0LzQtdGA0L3QtdC00LXQu9C40LPQvtC00LAg0L7QsdGA0LDQsdC+0YLQutCw0L7QttC40LTQsNC90LjRjyDQvtGB0L3QvtCy0L3QvtC50LbRg9GA0L3QsNC70YDQsNGB0YfQtdGC0L7QsiAnICtcbiAgJ9C+0YHQvdC+0LLQvdC+0LnQv9C70LDQvdGB0YfQtdGC0L7QsiDQvtGB0L3QvtCy0L3QvtC50Y/Qt9GL0Log0L7Rh9C40YHRgtC40YLRjNC+0LrQvdC+0YHQvtC+0LHRidC10L3QuNC5INC/0LXRgNC40L7QtNGB0YLRgCDQv9C+0LvRg9GH0LjRgtGM0LLRgNC10LzRj9GC0LAg0L/QvtC70YPRh9C40YLRjNC00LDRgtGD0YLQsCAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQtNC+0LrRg9C80LXQvdGC0YLQsCDQv9C+0LvRg9GH0LjRgtGM0LfQvdCw0YfQtdC90LjRj9C+0YLQsdC+0YDQsCDQv9C+0LvRg9GH0LjRgtGM0L/QvtC30LjRhtC40Y7RgtCwINC/0L7Qu9GD0YfQuNGC0YzQv9GD0YHRgtC+0LXQt9C90LDRh9C10L3QuNC1INC/0L7Qu9GD0YfQuNGC0YzRgtCwICcgK1xuICAn0L/RgNC10YTQuNC60YHQsNCy0YLQvtC90YPQvNC10YDQsNGG0LjQuCDQv9GA0L7Qv9C40YHRjCDQv9GD0YHRgtC+0LXQt9C90LDRh9C10L3QuNC1INGA0LDQt9C8INGA0LDQt9C+0LHRgNCw0YLRjNC/0L7Qt9C40YbQuNGO0LTQvtC60YPQvNC10L3RgtCwINGA0LDRgdGB0YfQuNGC0LDRgtGM0YDQtdCz0LjRgdGC0YDRi9C90LAgJyArXG4gICfRgNCw0YHRgdGH0LjRgtCw0YLRjNGA0LXQs9C40YHRgtGA0YvQv9C+INGB0LjQvNCyINGB0L7Qt9C00LDRgtGM0L7QsdGK0LXQutGCINGB0YLQsNGC0YPRgdCy0L7Qt9Cy0YDQsNGC0LAg0YHRgtGA0LrQvtC70LjRh9C10YHRgtCy0L7RgdGC0YDQvtC6INGB0YTQvtGA0LzQuNGA0L7QstCw0YLRjNC/0L7Qt9C40YbQuNGO0LTQvtC60YPQvNC10L3RgtCwICcgK1xuICAn0YHRh9C10YLQv9C+0LrQvtC00YMg0YLQtdC60YPRidC10LXQstGA0LXQvNGPINGC0LjQv9C30L3QsNGH0LXQvdC40Y8g0YLQuNC/0LfQvdCw0YfQtdC90LjRj9GB0YLRgCDRg9GB0YLQsNC90L7QstC40YLRjNGC0LDQvdCwINGD0YHRgtCw0L3QvtCy0LjRgtGM0YLQsNC/0L4g0YTQuNC60YHRiNCw0LHQu9C+0L0g0YjQsNCx0LvQvtC9ICc7XG4gIFxuICAvLyB2OCDQvNC10YLQvtC00Ysg0LPQu9C+0LHQsNC70YzQvdC+0LPQviDQutC+0L3RgtC10LrRgdGC0LAgPT0+IGJ1aWx0X2luXG4gIHZhciB2OF9nbG9iYWxfY29udGV4dF9tZXRob2RzID1cbiAgJ2Fjb3MgYXNpbiBhdGFuIGJhc2U2NNC30L3QsNGH0LXQvdC40LUgYmFzZTY00YHRgtGA0L7QutCwIGNvcyBleHAgbG9nIGxvZzEwIHBvdyBzaW4gc3FydCB0YW4geG1s0LfQvdCw0YfQtdC90LjQtSB4bWzRgdGC0YDQvtC60LAgJyArXG4gICd4bWzRgtC40L8geG1s0YLQuNC/0LfQvdGHINCw0LrRgtC40LLQvdC+0LXQvtC60L3QviDQsdC10LfQvtC/0LDRgdC90YvQudGA0LXQttC40Lwg0LHQtdC30L7Qv9Cw0YHQvdGL0LnRgNC10LbQuNC80YDQsNC30LTQtdC70LXQvdC40Y/QtNCw0L3QvdGL0YUg0LHRg9C70LXQstC+INCy0LLQtdGB0YLQuNC00LDRgtGDINCy0LLQtdGB0YLQuNC30L3QsNGH0LXQvdC40LUgJyArXG4gICfQstCy0LXRgdGC0LjRgdGC0YDQvtC60YMg0LLQstC10YHRgtC40YfQuNGB0LvQviDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0YfRgtC10L3QuNGPeG1sINCy0L7Qv9GA0L7RgSDQstC+0YHRgdGC0LDQvdC+0LLQuNGC0YzQt9C90LDRh9C10L3QuNC1INCy0YDQtdCzINCy0YvQs9GA0YPQt9C40YLRjNC20YPRgNC90LDQu9GA0LXQs9C40YHRgtGA0LDRhtC40LggJyArXG4gICfQstGL0L/QvtC70L3QuNGC0YzQvtCx0YDQsNCx0L7RgtC60YPQvtC/0L7QstC10YnQtdC90LjRjyDQstGL0L/QvtC70L3QuNGC0YzQv9GA0L7QstC10YDQutGD0L/RgNCw0LLQtNC+0YHRgtGD0L/QsCDQstGL0YfQuNGB0LvQuNGC0Ywg0LPQvtC0INC00LDQvdC90YvQtdGE0L7RgNC80YvQstC30L3QsNGH0LXQvdC40LUg0LTQsNGC0LAg0LTQtdC90Ywg0LTQtdC90YzQs9C+0LTQsCAnICtcbiAgJ9C00LXQvdGM0L3QtdC00LXQu9C4INC00L7QsdCw0LLQuNGC0YzQvNC10YHRj9GGINC30LDQsdC70L7QutC40YDQvtCy0LDRgtGM0LTQsNC90L3Ri9C10LTQu9GP0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQt9Cw0LHQu9C+0LrQuNGA0L7QstCw0YLRjNGA0LDQsdC+0YLRg9C/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQt9Cw0LLQtdGA0YjQuNGC0YzRgNCw0LHQvtGC0YPRgdC40YHRgtC10LzRiyAnICtcbiAgJ9C30LDQs9GA0YPQt9C40YLRjNCy0L3QtdGI0L3RjtGO0LrQvtC80L/QvtC90LXQvdGC0YMg0LfQsNC60YDRi9GC0YzRgdC/0YDQsNCy0LrRgyDQt9Cw0L/QuNGB0LDRgtGManNvbiDQt9Cw0L/QuNGB0LDRgtGMeG1sINC30LDQv9C40YHQsNGC0YzQtNCw0YLRg2pzb24g0LfQsNC/0LjRgdGM0LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4ICcgK1xuICAn0LfQsNC/0L7Qu9C90LjRgtGM0LfQvdCw0YfQtdC90LjRj9GB0LLQvtC50YHRgtCyINC30LDQv9GA0L7RgdC40YLRjNGA0LDQt9GA0LXRiNC10L3QuNC10L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC30LDQv9GD0YHRgtC40YLRjNC/0YDQuNC70L7QttC10L3QuNC1INC30LDQv9GD0YHRgtC40YLRjNGB0LjRgdGC0LXQvNGDINC30LDRhNC40LrRgdC40YDQvtCy0LDRgtGM0YLRgNCw0L3Qt9Cw0LrRhtC40Y4gJyArXG4gICfQt9C90LDRh9C10L3QuNC10LLQtNCw0L3QvdGL0LXRhNC+0YDQvNGLINC30L3QsNGH0LXQvdC40LXQstGB0YLRgNC+0LrRg9Cy0L3Rg9GC0YAg0LfQvdCw0YfQtdC90LjQtdCy0YTQsNC50Lsg0LfQvdCw0YfQtdC90LjQtdC30LDQv9C+0LvQvdC10L3QviDQt9C90LDRh9C10L3QuNC10LjQt9GB0YLRgNC+0LrQuNCy0L3Rg9GC0YAg0LfQvdCw0YfQtdC90LjQtdC40LfRhNCw0LnQu9CwICcgK1xuICAn0LjQt3htbNGC0LjQv9CwINC40LzQv9C+0YDRgtC80L7QtNC10LvQuHhkdG8g0LjQvNGP0LrQvtC80L/RjNGO0YLQtdGA0LAg0LjQvNGP0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGM0L/RgNC10LTQvtC/0YDQtdC00LXQu9C10L3QvdGL0LXQtNCw0L3QvdGL0LUg0LjQvdGE0L7RgNC80LDRhtC40Y/QvtCx0L7RiNC40LHQutC1ICcgK1xuICAn0LrQsNGC0LDQu9C+0LPQsdC40LHQu9C40L7RgtC10LrQuNC80L7QsdC40LvRjNC90L7Qs9C+0YPRgdGC0YDQvtC50YHRgtCy0LAg0LrQsNGC0LDQu9C+0LPQstGA0LXQvNC10L3QvdGL0YXRhNCw0LnQu9C+0LIg0LrQsNGC0LDQu9C+0LPQtNC+0LrRg9C80LXQvdGC0L7QsiDQutCw0YLQsNC70L7Qs9C/0YDQvtCz0YDQsNC80LzRiyDQutC+0LTQuNGA0L7QstCw0YLRjNGB0YLRgNC+0LrRgyAnICtcbiAgJ9C60L7QtNC70L7QutCw0LvQuNC30LDRhtC40LjQuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC50LHQsNC30Ysg0LrQvtC00YHQuNC80LLQvtC70LAg0LrQvtC80LDQvdC00LDRgdC40YHRgtC10LzRiyDQutC+0L3QtdGG0LPQvtC00LAg0LrQvtC90LXRhtC00L3RjyDQutC+0L3QtdGG0LrQstCw0YDRgtCw0LvQsCDQutC+0L3QtdGG0LzQtdGB0Y/RhtCwINC60L7QvdC10YbQvNC40L3Rg9GC0YsgJyArXG4gICfQutC+0L3QtdGG0L3QtdC00LXQu9C4INC60L7QvdC10YbRh9Cw0YHQsCDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y/QsdCw0LfRi9C00LDQvdC90YvRhdC40LfQvNC10L3QtdC90LDQtNC40L3QsNC80LjRh9C10YHQutC4INC60L7QvdGE0LjQs9GD0YDQsNGG0LjRj9C40LfQvNC10L3QtdC90LAg0LrQvtC/0LjRgNC+0LLQsNGC0YzQtNCw0L3QvdGL0LXRhNC+0YDQvNGLICcgK1xuICAn0LrQvtC/0LjRgNC+0LLQsNGC0YzRhNCw0LnQuyDQutGA0LDRgtC60L7QtdC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC10L7RiNC40LHQutC4INC70LXQsiDQvNCw0LrRgSDQvNC10YHRgtC90L7QtdCy0YDQtdC80Y8g0LzQtdGB0Y/RhiDQvNC40L0g0LzQuNC90YPRgtCwINC80L7QvdC+0L/QvtC70YzQvdGL0LnRgNC10LbQuNC8INC90LDQudGC0LggJyArXG4gICfQvdCw0LnRgtC40L3QtdC00L7Qv9GD0YHRgtC40LzRi9C10YHQuNC80LLQvtC70Yt4bWwg0L3QsNC50YLQuNC+0LrQvdC+0L/QvtC90LDQstC40LPQsNGG0LjQvtC90L3QvtC50YHRgdGL0LvQutC1INC90LDQudGC0LjQv9C+0LzQtdGH0LXQvdC90YvQtdC90LDRg9C00LDQu9C10L3QuNC1INC90LDQudGC0LjQv9C+0YHRgdGL0LvQutCw0Lwg0L3QsNC50YLQuNGE0LDQudC70YsgJyArXG4gICfQvdCw0YfQsNC70L7Qs9C+0LTQsCDQvdCw0YfQsNC70L7QtNC90Y8g0L3QsNGH0LDQu9C+0LrQstCw0YDRgtCw0LvQsCDQvdCw0YfQsNC70L7QvNC10YHRj9GG0LAg0L3QsNGH0LDQu9C+0LzQuNC90YPRgtGLINC90LDRh9Cw0LvQvtC90LXQtNC10LvQuCDQvdCw0YfQsNC70L7Rh9Cw0YHQsCDQvdCw0YfQsNGC0YzQt9Cw0L/RgNC+0YHRgNCw0LfRgNC10YjQtdC90LjRj9C/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAnICtcbiAgJ9C90LDRh9Cw0YLRjNC30LDQv9GD0YHQutC/0YDQuNC70L7QttC10L3QuNGPINC90LDRh9Cw0YLRjNC60L7Qv9C40YDQvtCy0LDQvdC40LXRhNCw0LnQu9CwINC90LDRh9Cw0YLRjNC/0LXRgNC10LzQtdGJ0LXQvdC40LXRhNCw0LnQu9CwINC90LDRh9Cw0YLRjNC/0L7QtNC60LvRjtGH0LXQvdC40LXQstC90LXRiNC90LXQudC60L7QvNC/0L7QvdC10L3RgtGLICcgK1xuICAn0L3QsNGH0LDRgtGM0L/QvtC00LrQu9GO0YfQtdC90LjQtdGA0LDRgdGI0LjRgNC10L3QuNGP0YDQsNCx0L7RgtGL0YHQutGA0LjQv9GC0L7Qs9GA0LDRhNC40LXQuSDQvdCw0YfQsNGC0YzQv9C+0LTQutC70Y7Rh9C10L3QuNC10YDQsNGB0YjQuNGA0LXQvdC40Y/RgNCw0LHQvtGC0YvRgdGE0LDQudC70LDQvNC4INC90LDRh9Cw0YLRjNC/0L7QuNGB0LrRhNCw0LnQu9C+0LIgJyArXG4gICfQvdCw0YfQsNGC0YzQv9C+0LvRg9GH0LXQvdC40LXQutCw0YLQsNC70L7Qs9Cw0LLRgNC10LzQtdC90L3Ri9GF0YTQsNC50LvQvtCyINC90LDRh9Cw0YLRjNC/0L7Qu9GD0YfQtdC90LjQtdC60LDRgtCw0LvQvtCz0LDQtNC+0LrRg9C80LXQvdGC0L7QsiDQvdCw0YfQsNGC0YzQv9C+0LvRg9GH0LXQvdC40LXRgNCw0LHQvtGH0LXQs9C+0LrQsNGC0LDQu9C+0LPQsNC00LDQvdC90YvRhdC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAnICtcbiAgJ9C90LDRh9Cw0YLRjNC/0L7Qu9GD0YfQtdC90LjQtdGE0LDQudC70L7QsiDQvdCw0YfQsNGC0YzQv9C+0LzQtdGJ0LXQvdC40LXRhNCw0LnQu9CwINC90LDRh9Cw0YLRjNC/0L7QvNC10YnQtdC90LjQtdGE0LDQudC70L7QsiDQvdCw0YfQsNGC0YzRgdC+0LfQtNCw0L3QuNC10LTQstC+0LjRh9C90YvRhdC00LDQvdC90YvRhdC40LfRhNCw0LnQu9CwINC90LDRh9Cw0YLRjNGB0L7Qt9C00LDQvdC40LXQutCw0YLQsNC70L7Qs9CwICcgK1xuICAn0L3QsNGH0LDRgtGM0YLRgNCw0L3Qt9Cw0LrRhtC40Y4g0L3QsNGH0LDRgtGM0YPQtNCw0LvQtdC90LjQtdGE0LDQudC70L7QsiDQvdCw0YfQsNGC0YzRg9GB0YLQsNC90L7QstC60YPQstC90LXRiNC90LXQudC60L7QvNC/0L7QvdC10L3RgtGLINC90LDRh9Cw0YLRjNGD0YHRgtCw0L3QvtCy0LrRg9GA0LDRgdGI0LjRgNC10L3QuNGP0YDQsNCx0L7RgtGL0YHQutGA0LjQv9GC0L7Qs9GA0LDRhNC40LXQuSAnICtcbiAgJ9C90LDRh9Cw0YLRjNGD0YHRgtCw0L3QvtCy0LrRg9GA0LDRgdGI0LjRgNC10L3QuNGP0YDQsNCx0L7RgtGL0YHRhNCw0LnQu9Cw0LzQuCDQvdC10LTQtdC70Y/Qs9C+0LTQsCDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLRjNC30LDQstC10YDRiNC10L3QuNGP0YHQvtC10LTQuNC90LXQvdC40Y8g0L3QvtC80LXRgNGB0LXQsNC90YHQsNC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdC+0LnQsdCw0LfRiyAnICtcbiAgJ9C90L7QvNC10YDRgdC+0LXQtNC40L3QtdC90LjRj9C40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdC+0LnQsdCw0LfRiyDQvdGA0LXQsyDQvdGB0YLRgCDQvtCx0L3QvtCy0LjRgtGM0LjQvdGC0LXRgNGE0LXQudGBINC+0LHQvdC+0LLQuNGC0YzQvdGD0LzQtdGA0LDRhtC40Y7QvtCx0YrQtdC60YLQvtCyINC+0LHQvdC+0LLQuNGC0YzQv9C+0LLRgtC+0YDQvdC+0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C10LfQvdCw0YfQtdC90LjRjyAnICtcbiAgJ9C+0LHRgNCw0LHQvtGC0LrQsNC/0YDQtdGA0YvQstCw0L3QuNGP0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC+0LHRitC10LTQuNC90LjRgtGM0YTQsNC50LvRiyDQvtC60YAg0L7Qv9C40YHQsNC90LjQtdC+0YjQuNCx0LrQuCDQvtC/0L7QstC10YHRgtC40YLRjCDQvtC/0L7QstC10YHRgtC40YLRjNC+0LHQuNC30LzQtdC90LXQvdC40LggJyArXG4gICfQvtGC0LrQu9GO0YfQuNGC0YzQvtCx0YDQsNCx0L7RgtGH0LjQutC30LDQv9GA0L7RgdCw0L3QsNGB0YLRgNC+0LXQutC60LvQuNC10L3RgtCw0LvQuNGG0LXQvdC30LjRgNC+0LLQsNC90LjRjyDQvtGC0LrQu9GO0YfQuNGC0YzQvtCx0YDQsNCx0L7RgtGH0LjQutC+0LbQuNC00LDQvdC40Y8g0L7RgtC60LvRjtGH0LjRgtGM0L7QsdGA0LDQsdC+0YLRh9C40LrQvtC/0L7QstC10YnQtdC90LjRjyAnICtcbiAgJ9C+0YLQutGA0YvRgtGM0LfQvdCw0YfQtdC90LjQtSDQvtGC0LrRgNGL0YLRjNC40L3QtNC10LrRgdGB0L/RgNCw0LLQutC4INC+0YLQutGA0YvRgtGM0YHQvtC00LXRgNC20LDQvdC40LXRgdC/0YDQsNCy0LrQuCDQvtGC0LrRgNGL0YLRjNGB0L/RgNCw0LLQutGDINC+0YLQutGA0YvRgtGM0YTQvtGA0LzRgyDQvtGC0LrRgNGL0YLRjNGE0L7RgNC80YPQvNC+0LTQsNC70YzQvdC+ICcgK1xuICAn0L7RgtC80LXQvdC40YLRjNGC0YDQsNC90LfQsNC60YbQuNGOINC+0YfQuNGB0YLQuNGC0YzQttGD0YDQvdCw0LvRgNC10LPQuNGB0YLRgNCw0YbQuNC4INC+0YfQuNGB0YLQuNGC0YzQvdCw0YHRgtGA0L7QudC60LjQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L7Rh9C40YHRgtC40YLRjNGB0L7QvtCx0YnQtdC90LjRjyDQv9Cw0YDQsNC80LXRgtGA0YvQtNC+0YHRgtGD0L/QsCAnICtcbiAgJ9C/0LXRgNC10LnRgtC40L/QvtC90LDQstC40LPQsNGG0LjQvtC90L3QvtC50YHRgdGL0LvQutC1INC/0LXRgNC10LzQtdGB0YLQuNGC0YzRhNCw0LnQuyDQv9C+0LTQutC70Y7Rh9C40YLRjNCy0L3QtdGI0L3RjtGO0LrQvtC80L/QvtC90LXQvdGC0YMgJyArXG4gICfQv9C+0LTQutC70Y7Rh9C40YLRjNC+0LHRgNCw0LHQvtGC0YfQuNC60LfQsNC/0YDQvtGB0LDQvdCw0YHRgtGA0L7QtdC60LrQu9C40LXQvdGC0LDQu9C40YbQtdC90LfQuNGA0L7QstCw0L3QuNGPINC/0L7QtNC60LvRjtGH0LjRgtGM0L7QsdGA0LDQsdC+0YLRh9C40LrQvtC20LjQtNCw0L3QuNGPINC/0L7QtNC60LvRjtGH0LjRgtGM0L7QsdGA0LDQsdC+0YLRh9C40LrQvtC/0L7QstC10YnQtdC90LjRjyAnICtcbiAgJ9C/0L7QtNC60LvRjtGH0LjRgtGM0YDQsNGB0YjQuNGA0LXQvdC40LXRgNCw0LHQvtGC0YvRgdC60YDQuNC/0YLQvtCz0YDQsNGE0LjQtdC5INC/0L7QtNC60LvRjtGH0LjRgtGM0YDQsNGB0YjQuNGA0LXQvdC40LXRgNCw0LHQvtGC0YvRgdGE0LDQudC70LDQvNC4INC/0L7QtNGA0L7QsdC90L7QtdC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC10L7RiNC40LHQutC4ICcgK1xuICAn0L/QvtC60LDQt9Cw0YLRjNCy0LLQvtC00LTQsNGC0Ysg0L/QvtC60LDQt9Cw0YLRjNCy0LLQvtC00LfQvdCw0YfQtdC90LjRjyDQv9C+0LrQsNC30LDRgtGM0LLQstC+0LTRgdGC0YDQvtC60Lgg0L/QvtC60LDQt9Cw0YLRjNCy0LLQvtC00YfQuNGB0LvQsCDQv9C+0LrQsNC30LDRgtGM0LLQvtC/0YDQvtGBINC/0L7QutCw0LfQsNGC0YzQt9C90LDRh9C10L3QuNC1ICcgK1xuICAn0L/QvtC60LDQt9Cw0YLRjNC40L3RhNC+0YDQvNCw0YbQuNGO0L7QsdC+0YjQuNCx0LrQtSDQv9C+0LrQsNC30LDRgtGM0L3QsNC60LDRgNGC0LUg0L/QvtC60LDQt9Cw0YLRjNC+0L/QvtCy0LXRidC10L3QuNC10L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC/0L7QutCw0LfQsNGC0YzQv9GA0LXQtNGD0L/RgNC10LbQtNC10L3QuNC1INC/0L7Qu9C90L7QtdC40LzRj9C/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0Yxjb23QvtCx0YrQtdC60YIg0L/QvtC70YPRh9C40YLRjHhtbNGC0LjQvyDQv9C+0LvRg9GH0LjRgtGM0LDQtNGA0LXRgdC/0L7QvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNGOINC/0L7Qu9GD0YfQuNGC0YzQsdC70L7QutC40YDQvtCy0LrRg9GB0LXQsNC90YHQvtCyINC/0L7Qu9GD0YfQuNGC0YzQstGA0LXQvNGP0LfQsNCy0LXRgNGI0LXQvdC40Y/RgdC/0Y/RidC10LPQvtGB0LXQsNC90YHQsCAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQstGA0LXQvNGP0LfQsNGB0YvQv9Cw0L3QuNGP0L/QsNGB0YHQuNCy0L3QvtCz0L7RgdC10LDQvdGB0LAg0L/QvtC70YPRh9C40YLRjNCy0YDQtdC80Y/QvtC20LjQtNCw0L3QuNGP0LHQu9C+0LrQuNGA0L7QstC60LjQtNCw0L3QvdGL0YUg0L/QvtC70YPRh9C40YLRjNC00LDQvdC90YvQtdCy0YvQsdC+0YDQsCAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C50L/QsNGA0LDQvNC10YLRgNC60LvQuNC10L3RgtCw0LvQuNGG0LXQvdC30LjRgNC+0LLQsNC90LjRjyDQv9C+0LvRg9GH0LjRgtGM0LTQvtC/0YPRgdGC0LjQvNGL0LXQutC+0LTRi9C70L7QutCw0LvQuNC30LDRhtC40Lgg0L/QvtC70YPRh9C40YLRjNC00L7Qv9GD0YHRgtC40LzRi9C10YfQsNGB0L7QstGL0LXQv9C+0Y/RgdCwICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNC30LDQs9C+0LvQvtCy0L7QutC60LvQuNC10L3RgtGB0LrQvtCz0L7Qv9GA0LjQu9C+0LbQtdC90LjRjyDQv9C+0LvRg9GH0LjRgtGM0LfQsNCz0L7Qu9C+0LLQvtC60YHQuNGB0YLQtdC80Ysg0L/QvtC70YPRh9C40YLRjNC30L3QsNGH0LXQvdC40Y/QvtGC0LHQvtGA0LDQttGD0YDQvdCw0LvQsNGA0LXQs9C40YHRgtGA0LDRhtC40LggJyArXG4gICfQv9C+0LvRg9GH0LjRgtGM0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0L/QvtC70YPRh9C40YLRjNC40LfQstGA0LXQvNC10L3QvdC+0LPQvtGF0YDQsNC90LjQu9C40YnQsCDQv9C+0LvRg9GH0LjRgtGM0LjQvNGP0LLRgNC10LzQtdC90L3QvtCz0L7RhNCw0LnQu9CwICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNC40LzRj9C60LvQuNC10L3RgtCw0LvQuNGG0LXQvdC30LjRgNC+0LLQsNC90LjRjyDQv9C+0LvRg9GH0LjRgtGM0LjQvdGE0L7RgNC80LDRhtC40Y7RjdC60YDQsNC90L7QstC60LvQuNC10L3RgtCwINC/0L7Qu9GD0YfQuNGC0YzQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC20YPRgNC90LDQu9Cw0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdGB0L7QsdGL0YLQuNGP0LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INC/0L7Qu9GD0YfQuNGC0YzQutGA0LDRgtC60LjQudC30LDQs9C+0LvQvtCy0L7QutC/0YDQuNC70L7QttC10L3QuNGPINC/0L7Qu9GD0YfQuNGC0YzQvNCw0LrQtdGC0L7RhNC+0YDQvNC70LXQvdC40Y8gJyArXG4gICfQv9C+0LvRg9GH0LjRgtGM0LzQsNGB0LrRg9Cy0YHQtdGE0LDQudC70Ysg0L/QvtC70YPRh9C40YLRjNC80LDRgdC60YPQstGB0LXRhNCw0LnQu9GL0LrQu9C40LXQvdGC0LAg0L/QvtC70YPRh9C40YLRjNC80LDRgdC60YPQstGB0LXRhNCw0LnQu9GL0YHQtdGA0LLQtdGA0LAg0L/QvtC70YPRh9C40YLRjNC80LXRgdGC0L7Qv9C+0LvQvtC20LXQvdC40LXQv9C+0LDQtNGA0LXRgdGDICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNC80LjQvdC40LzQsNC70YzQvdGD0Y7QtNC70LjQvdGD0L/QsNGA0L7Qu9C10LnQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDQv9C+0LvRg9GH0LjRgtGM0L3QsNCy0LjQs9Cw0YbQuNC+0L3QvdGD0Y7RgdGB0YvQu9C60YMg0L/QvtC70YPRh9C40YLRjNC90LDQstC40LPQsNGG0LjQvtC90L3Rg9GO0YHRgdGL0LvQutGD0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90L7QudCx0LDQt9GLICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNC+0LHQvdC+0LLQu9C10L3QuNC10LrQvtC90YTQuNCz0YPRgNCw0YbQuNC40LHQsNC30YvQtNCw0L3QvdGL0YUg0L/QvtC70YPRh9C40YLRjNC+0LHQvdC+0LLQu9C10L3QuNC10L/RgNC10LTQvtC/0YDQtdC00LXQu9C10L3QvdGL0YXQtNCw0L3QvdGL0YXQuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC50LHQsNC30Ysg0L/QvtC70YPRh9C40YLRjNC+0LHRidC40LnQvNCw0LrQtdGCICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNC+0LHRidGD0Y7RhNC+0YDQvNGDINC/0L7Qu9GD0YfQuNGC0YzQvtC60L3QsCDQv9C+0LvRg9GH0LjRgtGM0L7Qv9C10YDQsNGC0LjQstC90YPRjtC+0YLQvNC10YLQutGD0LLRgNC10LzQtdC90Lgg0L/QvtC70YPRh9C40YLRjNC+0YLQutC70Y7Rh9C10L3QuNC10LHQtdC30L7Qv9Cw0YHQvdC+0LPQvtGA0LXQttC40LzQsCAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQv9Cw0YDQsNC80LXRgtGA0YvRhNGD0L3QutGG0LjQvtC90LDQu9GM0L3Ri9GF0L7Qv9GG0LjQudC40L3RgtC10YDRhNC10LnRgdCwINC/0L7Qu9GD0YfQuNGC0YzQv9C+0LvQvdC+0LXQuNC80Y/Qv9GA0LXQtNC+0L/RgNC10LTQtdC70LXQvdC90L7Qs9C+0LfQvdCw0YfQtdC90LjRjyAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjRj9C90LDQstC40LPQsNGG0LjQvtC90L3Ri9GF0YHRgdGL0LvQvtC6INC/0L7Qu9GD0YfQuNGC0YzQv9GA0L7QstC10YDQutGD0YHQu9C+0LbQvdC+0YHRgtC40L/QsNGA0L7Qu9C10LnQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDQv9C+0LvRg9GH0LjRgtGM0YDQsNC30LTQtdC70LjRgtC10LvRjNC/0YPRgtC4ICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNGA0LDQt9C00LXQu9C40YLQtdC70YzQv9GD0YLQuNC60LvQuNC10L3RgtCwINC/0L7Qu9GD0YfQuNGC0YzRgNCw0LfQtNC10LvQuNGC0LXQu9GM0L/Rg9GC0LjRgdC10YDQstC10YDQsCDQv9C+0LvRg9GH0LjRgtGM0YHQtdCw0L3RgdGL0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90L7QudCx0LDQt9GLICcgK1xuICAn0L/QvtC70YPRh9C40YLRjNGB0LrQvtGA0L7RgdGC0YzQutC70LjQtdC90YLRgdC60L7Qs9C+0YHQvtC10LTQuNC90LXQvdC40Y8g0L/QvtC70YPRh9C40YLRjNGB0L7QtdC00LjQvdC10L3QuNGP0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90L7QudCx0LDQt9GLINC/0L7Qu9GD0YfQuNGC0YzRgdC+0L7QsdGJ0LXQvdC40Y/Qv9C+0LvRjNC30L7QstCw0YLQtdC70Y4gJyArXG4gICfQv9C+0LvRg9GH0LjRgtGM0YHQvtC+0YLQstC10YLRgdGC0LLQuNC10L7QsdGK0LXQutGC0LDQuNGE0L7RgNC80Ysg0L/QvtC70YPRh9C40YLRjNGB0L7RgdGC0LDQstGB0YLQsNC90LTQsNGA0YLQvdC+0LPQvtC40L3RgtC10YDRhNC10LnRgdCwb2RhdGEg0L/QvtC70YPRh9C40YLRjNGB0YLRgNGD0LrRgtGD0YDRg9GF0YDQsNC90LXQvdC40Y/QsdCw0LfRi9C00LDQvdC90YvRhSAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzRgtC10LrRg9GJ0LjQudGB0LXQsNC90YHQuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC50LHQsNC30Ysg0L/QvtC70YPRh9C40YLRjNGE0LDQudC7INC/0L7Qu9GD0YfQuNGC0YzRhNCw0LnQu9GLINC/0L7Qu9GD0YfQuNGC0YzRhNC+0YDQvNGDINC/0L7Qu9GD0YfQuNGC0YzRhNGD0L3QutGG0LjQvtC90LDQu9GM0L3Rg9GO0L7Qv9GG0LjRjiAnICtcbiAgJ9C/0L7Qu9GD0YfQuNGC0YzRhNGD0L3QutGG0LjQvtC90LDQu9GM0L3Rg9GO0L7Qv9GG0LjRjtC40L3RgtC10YDRhNC10LnRgdCwINC/0L7Qu9GD0YfQuNGC0YzRh9Cw0YHQvtCy0L7QudC/0L7Rj9GB0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90L7QudCx0LDQt9GLINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuNC+0YEg0L/QvtC80LXRgdGC0LjRgtGM0LLQvtCy0YDQtdC80LXQvdC90L7QtdGF0YDQsNC90LjQu9C40YnQtSAnICtcbiAgJ9C/0L7QvNC10YHRgtC40YLRjNGE0LDQudC7INC/0L7QvNC10YHRgtC40YLRjNGE0LDQudC70Ysg0L/RgNCw0LIg0L/RgNCw0LLQvtC00L7RgdGC0YPQv9CwINC/0YDQtdC00L7Qv9GA0LXQtNC10LvQtdC90L3QvtC10LfQvdCw0YfQtdC90LjQtSDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtdC60L7QtNCw0LvQvtC60LDQu9C40LfQsNGG0LjQuCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtdC/0LXRgNC40L7QtNCwICcgK1xuICAn0L/RgNC10LTRgdGC0LDQstC70LXQvdC40LXQv9GA0LDQstCwINC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC10L/RgNC40LvQvtC20LXQvdC40Y8g0L/RgNC10LTRgdGC0LDQstC70LXQvdC40LXRgdC+0LHRi9GC0LjRj9C20YPRgNC90LDQu9Cw0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtdGH0LDRgdC+0LLQvtCz0L7Qv9C+0Y/RgdCwINC/0YDQtdC00YPQv9GA0LXQttC00LXQvdC40LUgJyArXG4gICfQv9GA0LXQutGA0LDRgtC40YLRjNGA0LDQsdC+0YLRg9GB0LjRgdGC0LXQvNGLINC/0YDQuNCy0LjQu9C10LPQuNGA0L7QstCw0L3QvdGL0LnRgNC10LbQuNC8INC/0YDQvtC00L7Qu9C20LjRgtGM0LLRi9C30L7QsiDQv9GA0L7Rh9C40YLQsNGC0Yxqc29uINC/0YDQvtGH0LjRgtCw0YLRjHhtbCDQv9GA0L7Rh9C40YLQsNGC0YzQtNCw0YLRg2pzb24g0L/Rg9GB0YLQsNGP0YHRgtGA0L7QutCwICcgK1xuICAn0YDQsNCx0L7Rh9C40LnQutCw0YLQsNC70L7Qs9C00LDQvdC90YvRhdC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgNCw0LfQsdC70L7QutC40YDQvtCy0LDRgtGM0LTQsNC90L3Ri9C10LTQu9GP0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDRgNCw0LfQtNC10LvQuNGC0YzRhNCw0LnQuyDRgNCw0LfQvtGA0LLQsNGC0YzRgdC+0LXQtNC40L3QtdC90LjQtdGB0LLQvdC10YjQvdC40LzQuNGB0YLQvtGH0L3QuNC60L7QvNC00LDQvdC90YvRhSAnICtcbiAgJ9GA0LDRgdC60L7QtNC40YDQvtCy0LDRgtGM0YHRgtGA0L7QutGDINGA0L7Qu9GM0LTQvtGB0YLRg9C/0L3QsCDRgdC10LrRg9C90LTQsCDRgdC40LPQvdCw0Lsg0YHQuNC80LLQvtC7INGB0LrQvtC/0LjRgNC+0LLQsNGC0YzQttGD0YDQvdCw0LvRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGB0LzQtdGJ0LXQvdC40LXQu9C10YLQvdC10LPQvtCy0YDQtdC80LXQvdC4ICcgK1xuICAn0YHQvNC10YnQtdC90LjQtdGB0YLQsNC90LTQsNGA0YLQvdC+0LPQvtCy0YDQtdC80LXQvdC4INGB0L7QtdC00LjQvdC40YLRjNCx0YPRhNC10YDRi9C00LLQvtC40YfQvdGL0YXQtNCw0L3QvdGL0YUg0YHQvtC30LTQsNGC0YzQutCw0YLQsNC70L7QsyDRgdC+0LfQtNCw0YLRjNGE0LDQsdGA0LjQutGDeGR0byDRgdC+0LrRgNC7INGB0L7QutGA0LvQvyDRgdC+0LrRgNC/INGB0L7QvtCx0YnQuNGC0YwgJyArXG4gICfRgdC+0YHRgtC+0Y/QvdC40LUg0YHQvtGF0YDQsNC90LjRgtGM0LfQvdCw0YfQtdC90LjQtSDRgdC+0YXRgNCw0L3QuNGC0YzQvdCw0YHRgtGA0L7QudC60LjQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YHRgNC10LQg0YHRgtGA0LTQu9C40L3QsCDRgdGC0YDQt9Cw0LrQsNC90YfQuNCy0LDQtdGC0YHRj9C90LAg0YHRgtGA0LfQsNC80LXQvdC40YLRjCDRgdGC0YDQvdCw0LnRgtC4INGB0YLRgNC90LDRh9C40L3QsNC10YLRgdGP0YEgJyArXG4gICfRgdGC0YDQvtC60LAg0YHRgtGA0L7QutCw0YHQvtC10LTQuNC90LXQvdC40Y/QuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC50LHQsNC30Ysg0YHRgtGA0L/QvtC70YPRh9C40YLRjNGB0YLRgNC+0LrRgyDRgdGC0YDRgNCw0LfQtNC10LvQuNGC0Ywg0YHRgtGA0YHQvtC10LTQuNC90LjRgtGMINGB0YLRgNGB0YDQsNCy0L3QuNGC0Ywg0YHRgtGA0YfQuNGB0LvQvtCy0YXQvtC20LTQtdC90LjQuSAnK1xuICAn0YHRgtGA0YfQuNGB0LvQvtGB0YLRgNC+0Log0YHRgtGA0YjQsNCx0LvQvtC9INGC0LXQutGD0YnQsNGP0LTQsNGC0LAg0YLQtdC60YPRidCw0Y/QtNCw0YLQsNGB0LXQsNC90YHQsCDRgtC10LrRg9GJ0LDRj9GD0L3QuNCy0LXRgNGB0LDQu9GM0L3QsNGP0LTQsNGC0LAg0YLQtdC60YPRidCw0Y/Rg9C90LjQstC10YDRgdCw0LvRjNC90LDRj9C00LDRgtCw0LLQvNC40LvQu9C40YHQtdC60YPQvdC00LDRhSAnICtcbiAgJ9GC0LXQutGD0YnQuNC50LLQsNGA0LjQsNC90YLQuNC90YLQtdGA0YTQtdC50YHQsNC60LvQuNC10L3RgtGB0LrQvtCz0L7Qv9GA0LjQu9C+0LbQtdC90LjRjyDRgtC10LrRg9GJ0LjQudCy0LDRgNC40LDQvdGC0L7RgdC90L7QstC90L7Qs9C+0YjRgNC40YTRgtCw0LrQu9C40LXQvdGC0YHQutC+0LPQvtC/0YDQuNC70L7QttC10L3QuNGPINGC0LXQutGD0YnQuNC50LrQvtC00LvQvtC60LDQu9C40LfQsNGG0LjQuCAnICtcbiAgJ9GC0LXQutGD0YnQuNC50YDQtdC20LjQvNC30LDQv9GD0YHQutCwINGC0LXQutGD0YnQuNC50Y/Qt9GL0Log0YLQtdC60YPRidC40LnRj9C30YvQutGB0LjRgdGC0LXQvNGLINGC0LjQvyDRgtC40L/Qt9C90Ycg0YLRgNCw0L3Qt9Cw0LrRhtC40Y/QsNC60YLQuNCy0L3QsCDRgtGA0LXQsyDRg9C00LDQu9C40YLRjNC00LDQvdC90YvQtdC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdC+0LnQsdCw0LfRiyAnICtcbiAgJ9GD0LTQsNC70LjRgtGM0LjQt9Cy0YDQtdC80LXQvdC90L7Qs9C+0YXRgNCw0L3QuNC70LjRidCwINGD0LTQsNC70LjRgtGM0L7QsdGK0LXQutGC0Ysg0YPQtNCw0LvQuNGC0YzRhNCw0LnQu9GLINGD0L3QuNCy0LXRgNGB0LDQu9GM0L3QvtC10LLRgNC10LzRjyDRg9GB0YLQsNC90L7QstC40YLRjNCx0LXQt9C+0L/QsNGB0L3Ri9C50YDQtdC20LjQvCAnICtcbiAgJ9GD0YHRgtCw0L3QvtCy0LjRgtGM0LHQtdC30L7Qv9Cw0YHQvdGL0LnRgNC10LbQuNC80YDQsNC30LTQtdC70LXQvdC40Y/QtNCw0L3QvdGL0YUg0YPRgdGC0LDQvdC+0LLQuNGC0YzQsdC70L7QutC40YDQvtCy0LrRg9GB0LXQsNC90YHQvtCyINGD0YHRgtCw0L3QvtCy0LjRgtGM0LLQvdC10YjQvdGO0Y7QutC+0LzQv9C+0L3QtdC90YLRgyAnICtcbiAgJ9GD0YHRgtCw0L3QvtCy0LjRgtGM0LLRgNC10LzRj9C30LDQstC10YDRiNC10L3QuNGP0YHQv9GP0YnQtdCz0L7RgdC10LDQvdGB0LAg0YPRgdGC0LDQvdC+0LLQuNGC0YzQstGA0LXQvNGP0LfQsNGB0YvQv9Cw0L3QuNGP0L/QsNGB0YHQuNCy0L3QvtCz0L7RgdC10LDQvdGB0LAg0YPRgdGC0LDQvdC+0LLQuNGC0YzQstGA0LXQvNGP0L7QttC40LTQsNC90LjRj9Cx0LvQvtC60LjRgNC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0YPRgdGC0LDQvdC+0LLQuNGC0YzQt9Cw0LPQvtC70L7QstC+0LrQutC70LjQtdC90YLRgdC60L7Qs9C+0L/RgNC40LvQvtC20LXQvdC40Y8g0YPRgdGC0LDQvdC+0LLQuNGC0YzQt9Cw0LPQvtC70L7QstC+0LrRgdC40YHRgtC10LzRiyDRg9GB0YLQsNC90L7QstC40YLRjNC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4ICcgK1xuICAn0YPRgdGC0LDQvdC+0LLQuNGC0YzQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdGB0L7QsdGL0YLQuNGP0LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGD0YHRgtCw0L3QvtCy0LjRgtGM0LrRgNCw0YLQutC40LnQt9Cw0LPQvtC70L7QstC+0LrQv9GA0LjQu9C+0LbQtdC90LjRjyAnICtcbiAgJ9GD0YHRgtCw0L3QvtCy0LjRgtGM0LzQuNC90LjQvNCw0LvRjNC90YPRjtC00LvQuNC90YPQv9Cw0YDQvtC70LXQudC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INGD0YHRgtCw0L3QvtCy0LjRgtGM0LzQvtC90L7Qv9C+0LvRjNC90YvQudGA0LXQttC40Lwg0YPRgdGC0LDQvdC+0LLQuNGC0YzQvdCw0YHRgtGA0L7QudC60LjQutC70LjQtdC90YLQsNC70LjRhtC10L3Qt9C40YDQvtCy0LDQvdC40Y8gJyArXG4gICfRg9GB0YLQsNC90L7QstC40YLRjNC+0LHQvdC+0LLQu9C10L3QuNC10L/RgNC10LTQvtC/0YDQtdC00LXQu9C10L3QvdGL0YXQtNCw0L3QvdGL0YXQuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC50LHQsNC30Ysg0YPRgdGC0LDQvdC+0LLQuNGC0YzQvtGC0LrQu9GO0YfQtdC90LjQtdCx0LXQt9C+0L/QsNGB0L3QvtCz0L7RgNC10LbQuNC80LAgJyArXG4gICfRg9GB0YLQsNC90L7QstC40YLRjNC/0LDRgNCw0LzQtdGC0YDRi9GE0YPQvdC60YbQuNC+0L3QsNC70YzQvdGL0YXQvtC/0YbQuNC50LjQvdGC0LXRgNGE0LXQudGB0LAg0YPRgdGC0LDQvdC+0LLQuNGC0YzQv9GA0LjQstC40LvQtdCz0LjRgNC+0LLQsNC90L3Ri9C50YDQtdC20LjQvCAnICtcbiAgJ9GD0YHRgtCw0L3QvtCy0LjRgtGM0L/RgNC+0LLQtdGA0LrRg9GB0LvQvtC20L3QvtGB0YLQuNC/0LDRgNC+0LvQtdC50L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10Lkg0YPRgdGC0LDQvdC+0LLQuNGC0YzRgNCw0YHRiNC40YDQtdC90LjQtdGA0LDQsdC+0YLRi9GB0LrRgNC40L/RgtC+0LPRgNCw0YTQuNC10LkgJyArXG4gICfRg9GB0YLQsNC90L7QstC40YLRjNGA0LDRgdGI0LjRgNC10L3QuNC10YDQsNCx0L7RgtGL0YHRhNCw0LnQu9Cw0LzQuCDRg9GB0YLQsNC90L7QstC40YLRjNGB0L7QtdC00LjQvdC10L3QuNC10YHQstC90LXRiNC90LjQvNC40YHRgtC+0YfQvdC40LrQvtC80LTQsNC90L3Ri9GFINGD0YHRgtCw0L3QvtCy0LjRgtGM0YHQvtC+0YLQstC10YLRgdGC0LLQuNC10L7QsdGK0LXQutGC0LDQuNGE0L7RgNC80YsgJyArXG4gICfRg9GB0YLQsNC90L7QstC40YLRjNGB0L7RgdGC0LDQstGB0YLQsNC90LTQsNGA0YLQvdC+0LPQvtC40L3RgtC10YDRhNC10LnRgdCwb2RhdGEg0YPRgdGC0LDQvdC+0LLQuNGC0YzRh9Cw0YHQvtCy0L7QudC/0L7Rj9GB0LjQvdGE0L7RgNC80LDRhtC40L7QvdC90L7QudCx0LDQt9GLINGD0YHRgtCw0L3QvtCy0LjRgtGM0YfQsNGB0L7QstC+0LnQv9C+0Y/RgdGB0LXQsNC90YHQsCAnICtcbiAgJ9GE0L7RgNC80LDRgiDRhtC10Lsg0YfQsNGBINGH0LDRgdC+0LLQvtC50L/QvtGP0YEg0YfQsNGB0L7QstC+0LnQv9C+0Y/RgdGB0LXQsNC90YHQsCDRh9C40YHQu9C+INGH0LjRgdC70L7Qv9GA0L7Qv9C40YHRjNGOINGN0YLQvtCw0LTRgNC10YHQstGA0LXQvNC10L3QvdC+0LPQvtGF0YDQsNC90LjQu9C40YnQsCAnO1xuXG4gIC8vIHY4INGB0LLQvtC50YHRgtCy0LAg0LPQu9C+0LHQsNC70YzQvdC+0LPQviDQutC+0L3RgtC10LrRgdGC0LAgPT0+IGJ1aWx0X2luXG4gIHZhciB2OF9nbG9iYWxfY29udGV4dF9wcm9wZXJ0eSA9XG4gICd3c9GB0YHRi9C70LrQuCDQsdC40LHQu9C40L7RgtC10LrQsNC60LDRgNGC0LjQvdC+0Log0LHQuNCx0LvQuNC+0YLQtdC60LDQvNCw0LrQtdGC0L7QstC+0YTQvtGA0LzQu9C10L3QuNGP0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LHQuNCx0LvQuNC+0YLQtdC60LDRgdGC0LjQu9C10Lkg0LHQuNC30L3QtdGB0L/RgNC+0YbQtdGB0YHRiyAnICtcbiAgJ9Cy0L3QtdGI0L3QuNC10LjRgdGC0L7Rh9C90LjQutC40LTQsNC90L3Ri9GFINCy0L3QtdGI0L3QuNC10L7QsdGA0LDQsdC+0YLQutC4INCy0L3QtdGI0L3QuNC10L7RgtGH0LXRgtGLINCy0YHRgtGA0L7QtdC90L3Ri9C10L/QvtC60YPQv9C60Lgg0LPQu9Cw0LLQvdGL0LnQuNC90YLQtdGA0YTQtdC50YEg0LPQu9Cw0LLQvdGL0LnRgdGC0LjQu9GMICcgK1xuICAn0LTQvtC60YPQvNC10L3RgtGLINC00L7RgdGC0LDQstC70Y/QtdC80YvQtdGD0LLQtdC00L7QvNC70LXQvdC40Y8g0LbRg9GA0L3QsNC70YvQtNC+0LrRg9C80LXQvdGC0L7QsiDQt9Cw0LTQsNGH0Lgg0LjQvdGE0L7RgNC80LDRhtC40Y/QvtCx0LjQvdGC0LXRgNC90LXRgtGB0L7QtdC00LjQvdC10L3QuNC4INC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10YDQsNCx0L7Rh9C10LnQtNCw0YLRiyAnICtcbiAgJ9C40YHRgtC+0YDQuNGP0YDQsNCx0L7RgtGL0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC60L7QvdGB0YLQsNC90YLRiyDQutGA0LjRgtC10YDQuNC40L7RgtCx0L7RgNCwINC80LXRgtCw0LTQsNC90L3Ri9C1INC+0LHRgNCw0LHQvtGC0LrQuCDQvtGC0L7QsdGA0LDQttC10L3QuNC10YDQtdC60LvQsNC80Ysg0L7RgtC/0YDQsNCy0LrQsNC00L7RgdGC0LDQstC70Y/QtdC80YvRhdGD0LLQtdC00L7QvNC70LXQvdC40LkgJyArXG4gICfQvtGC0YfQtdGC0Ysg0L/QsNC90LXQu9GM0LfQsNC00LDRh9C+0YEg0L/QsNGA0LDQvNC10YLRgNC30LDQv9GD0YHQutCwINC/0LDRgNCw0LzQtdGC0YDRi9GB0LXQsNC90YHQsCDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8g0L/Qu9Cw0L3Ri9Cy0LjQtNC+0LLRgNCw0YHRh9C10YLQsCDQv9C70LDQvdGL0LLQuNC00L7QstGF0LDRgNCw0LrRgtC10YDQuNGB0YLQuNC6ICcgK1xuICAn0L/Qu9Cw0L3Ri9C+0LHQvNC10L3QsCDQv9C70LDQvdGL0YHRh9C10YLQvtCyINC/0L7Qu9C90L7RgtC10LrRgdGC0L7QstGL0LnQv9C+0LjRgdC6INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuNC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdC+0LnQsdCw0LfRiyDQv9C+0YHQu9C10LTQvtCy0LDRgtC10LvRjNC90L7RgdGC0Lgg0L/RgNC+0LLQtdGA0LrQsNCy0YHRgtGA0L7QtdC90L3Ri9GF0L/QvtC60YPQv9C+0LogJyArXG4gICfRgNCw0LHQvtGH0LDRj9C00LDRgtCwINGA0LDRgdGI0LjRgNC10L3QuNGP0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4INGA0LXQs9C40YHRgtGA0YvQsdGD0YXQs9Cw0LvRgtC10YDQuNC4INGA0LXQs9C40YHRgtGA0YvQvdCw0LrQvtC/0LvQtdC90LjRjyDRgNC10LPQuNGB0YLRgNGL0YDQsNGB0YfQtdGC0LAg0YDQtdCz0LjRgdGC0YDRi9GB0LLQtdC00LXQvdC40LkgJyArXG4gICfRgNC10LPQu9Cw0LzQtdC90YLQvdGL0LXQt9Cw0LTQsNC90LjRjyDRgdC10YDQuNCw0LvQuNC30LDRgtC+0YB4ZHRvINGB0L/RgNCw0LLQvtGH0L3QuNC60Lgg0YHRgNC10LTRgdGC0LLQsNCz0LXQvtC/0L7Qt9C40YbQuNC+0L3QuNGA0L7QstCw0L3QuNGPINGB0YDQtdC00YHRgtCy0LDQutGA0LjQv9GC0L7Qs9GA0LDRhNC40Lgg0YHRgNC10LTRgdGC0LLQsNC80YPQu9GM0YLQuNC80LXQtNC40LAgJyArXG4gICfRgdGA0LXQtNGB0YLQstCw0L7RgtC+0LHRgNCw0LbQtdC90LjRj9GA0LXQutC70LDQvNGLINGB0YDQtdC00YHRgtCy0LDQv9C+0YfRgtGLINGB0YDQtdC00YHRgtCy0LDRgtC10LvQtdGE0L7QvdC40Lgg0YTQsNCx0YDQuNC60LB4ZHRvINGE0LDQudC70L7QstGL0LXQv9C+0YLQvtC60Lgg0YTQvtC90L7QstGL0LXQt9Cw0LTQsNC90LjRjyDRhdGA0LDQvdC40LvQuNGJ0LDQvdCw0YHRgtGA0L7QtdC6ICcgK1xuICAn0YXRgNCw0L3QuNC70LjRidC10LLQsNGA0LjQsNC90YLQvtCy0L7RgtGH0LXRgtC+0LIg0YXRgNCw0L3QuNC70LjRidC10L3QsNGB0YLRgNC+0LXQutC00LDQvdC90YvRhdGE0L7RgNC8INGF0YDQsNC90LjQu9C40YnQtdC+0LHRidC40YXQvdCw0YHRgtGA0L7QtdC6INGF0YDQsNC90LjQu9C40YnQtdC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNGF0L3QsNGB0YLRgNC+0LXQutC00LjQvdCw0LzQuNGH0LXRgdC60LjRhdGB0L/QuNGB0LrQvtCyICcgK1xuICAn0YXRgNCw0L3QuNC70LjRidC10L/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40YXQvdCw0YHRgtGA0L7QtdC60L7RgtGH0LXRgtC+0LIg0YXRgNCw0L3QuNC70LjRidC10YHQuNGB0YLQtdC80L3Ri9GF0L3QsNGB0YLRgNC+0LXQuiAnO1xuXG4gIC8vIGJ1aWx0X2luIDog0LLRgdGC0YDQvtC10L3QvdGL0LUg0LjQu9C4INCx0LjQsdC70LjQvtGC0LXRh9C90YvQtSDQvtCx0YrQtdC60YLRiyAo0LrQvtC90YHRgtCw0L3RgtGLLCDQutC70LDRgdGB0YssINGE0YPQvdC60YbQuNC4KVxuICB2YXIgQlVJTFRJTiA9XG4gIHY3X3N5c3RlbV9jb25zdGFudHMgK1xuICB2N19nbG9iYWxfY29udGV4dF9tZXRob2RzICsgdjhfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyArXG4gIHY4X2dsb2JhbF9jb250ZXh0X3Byb3BlcnR5O1xuICBcbiAgLy8gdjgg0YHQuNGB0YLQtdC80L3Ri9C1INC90LDQsdC+0YDRiyDQt9C90LDRh9C10L3QuNC5ID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX3NldHNfb2ZfdmFsdWVzID1cbiAgJ3dlYtGG0LLQtdGC0LAgd2luZG93c9GG0LLQtdGC0LAgd2luZG93c9GI0YDQuNGE0YLRiyDQsdC40LHQu9C40L7RgtC10LrQsNC60LDRgNGC0LjQvdC+0Log0YDQsNC80LrQuNGB0YLQuNC70Y8g0YHQuNC80LLQvtC70Ysg0YbQstC10YLQsNGB0YLQuNC70Y8g0YjRgNC40YTRgtGL0YHRgtC40LvRjyAnO1xuXG4gIC8vIHY4INGB0LjRgdGC0LXQvNC90YvQtSDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8gLSDQuNC90YLQtdGA0YTQtdC50YHQvdGL0LUgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfaW50ZXJmYWNlID1cbiAgJ9Cw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC+0LXRgdC+0YXRgNCw0L3QtdC90LjQtdC00LDQvdC90YvRhdGE0L7RgNC80YvQstC90LDRgdGC0YDQvtC50LrQsNGFINCw0LLRgtC+0L3Rg9C80LXRgNCw0YbQuNGP0LLRhNC+0YDQvNC1INCw0LLRgtC+0YDQsNC30LTQstC40LbQtdC90LjQtdGB0LXRgNC40LkgJyArXG4gICfQsNC90LjQvNCw0YbQuNGP0LTQuNCw0LPRgNCw0LzQvNGLINCy0LDRgNC40LDQvdGC0LLRi9GA0LDQstC90LjQstCw0L3QuNGP0Y3Qu9C10LzQtdC90YLQvtCy0LjQt9Cw0LPQvtC70L7QstC60L7QsiDQstCw0YDQuNCw0L3RgtGD0L/RgNCw0LLQu9C10L3QuNGP0LLRi9GB0L7RgtC+0LnRgtCw0LHQu9C40YbRiyAnICtcbiAgJ9Cy0LXRgNGC0LjQutCw0LvRjNC90LDRj9C/0YDQvtC60YDRg9GC0LrQsNGE0L7RgNC80Ysg0LLQtdGA0YLQuNC60LDQu9GM0L3QvtC10L/QvtC70L7QttC10L3QuNC1INCy0LXRgNGC0LjQutCw0LvRjNC90L7QtdC/0L7Qu9C+0LbQtdC90LjQtdGN0LvQtdC80LXQvdGC0LAg0LLQuNC00LPRgNGD0L/Qv9GL0YTQvtGA0LzRiyAnICtcbiAgJ9Cy0LjQtNC00LXQutC+0YDQsNGG0LjQuNGE0L7RgNC80Ysg0LLQuNC00LTQvtC/0L7Qu9C90LXQvdC40Y/RjdC70LXQvNC10L3RgtCw0YTQvtGA0LzRiyDQstC40LTQuNC30LzQtdC90LXQvdC40Y/QtNCw0L3QvdGL0YUg0LLQuNC00LrQvdC+0L/QutC40YTQvtGA0LzRiyDQstC40LTQv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjyAnICtcbiAgJ9Cy0LjQtNC/0L7QtNC/0LjRgdC10LnQutC00LjQsNCz0YDQsNC80LzQtSDQstC40LTQv9C+0LvRj9GE0L7RgNC80Ysg0LLQuNC00YTQu9Cw0LbQutCwINCy0LvQuNGP0L3QuNC10YDQsNC30LzQtdGA0LDQvdCw0L/Rg9C30YvRgNC10LrQtNC40LDQs9GA0LDQvNC80Ysg0LPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtdC/0L7Qu9C+0LbQtdC90LjQtSAnICtcbiAgJ9Cz0L7RgNC40LfQvtC90YLQsNC70YzQvdC+0LXQv9C+0LvQvtC20LXQvdC40LXRjdC70LXQvNC10L3RgtCwINCz0YDRg9C/0L/QuNGA0L7QstC60LDQutC+0LvQvtC90L7QuiDQs9GA0YPQv9C/0LjRgNC+0LLQutCw0L/QvtC00YfQuNC90LXQvdC90YvRhdGN0LvQtdC80LXQvdGC0L7QstGE0L7RgNC80YsgJyArXG4gICfQs9GA0YPQv9C/0YvQuNGN0LvQtdC80LXQvdGC0Ysg0LTQtdC50YHRgtCy0LjQtdC/0LXRgNC10YLQsNGB0LrQuNCy0LDQvdC40Y8g0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQudGA0LXQttC40LzQvtGC0L7QsdGA0LDQttC10L3QuNGPINC00L7Qv9GD0YHRgtC40LzRi9C10LTQtdC50YHRgtCy0LjRj9C/0LXRgNC10YLQsNGB0LrQuNCy0LDQvdC40Y8gJyArXG4gICfQuNC90YLQtdGA0LLQsNC70LzQtdC20LTRg9GN0LvQtdC80LXQvdGC0LDQvNC40YTQvtGA0LzRiyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdCy0YvQstC+0LTQsCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC/0L7Qu9C+0YHRi9C/0YDQvtC60YDRg9GC0LrQuCAnICtcbiAgJ9C40YHQv9C+0LvRjNC30YPQtdC80L7QtdC30L3QsNGH0LXQvdC40LXRgtC+0YfQutC40LHQuNGA0LbQtdCy0L7QudC00LjQsNCz0YDQsNC80LzRiyDQuNGB0YLQvtGA0LjRj9Cy0YvQsdC+0YDQsNC/0YDQuNCy0LLQvtC00LUg0LjRgdGC0L7Rh9C90LjQutC30L3QsNGH0LXQvdC40LnQvtGB0LjRgtC+0YfQtdC60LTQuNCw0LPRgNCw0LzQvNGLICcgK1xuICAn0LjRgdGC0L7Rh9C90LjQutC30L3QsNGH0LXQvdC40Y/RgNCw0LfQvNC10YDQsNC/0YPQt9GL0YDRjNC60LDQtNC40LDQs9GA0LDQvNC80Ysg0LrQsNGC0LXQs9C+0YDQuNGP0LPRgNGD0L/Qv9GL0LrQvtC80LDQvdC0INC80LDQutGB0LjQvNGD0LzRgdC10YDQuNC5INC90LDRh9Cw0LvRjNC90L7QtdC+0YLQvtCx0YDQsNC20LXQvdC40LXQtNC10YDQtdCy0LAgJyArXG4gICfQvdCw0YfQsNC70YzQvdC+0LXQvtGC0L7QsdGA0LDQttC10L3QuNC10YHQv9C40YHQutCwINC+0LHQvdC+0LLQu9C10L3QuNC10YLQtdC60YHRgtCw0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQvtGA0LjQtdC90YLQsNGG0LjRj9C00LXQvdC00YDQvtCz0YDQsNC80LzRiyDQvtGA0LjQtdC90YLQsNGG0LjRj9C00LjQsNCz0YDQsNC80LzRiyAnICtcbiAgJ9C+0YDQuNC10L3RgtCw0YbQuNGP0LzQtdGC0L7QutC00LjQsNCz0YDQsNC80LzRiyDQvtGA0LjQtdC90YLQsNGG0LjRj9C80LXRgtC+0LrRgdCy0L7QtNC90L7QudC00LjQsNCz0YDQsNC80LzRiyDQvtGA0LjQtdC90YLQsNGG0LjRj9GN0LvQtdC80LXQvdGC0LDRhNC+0YDQvNGLINC+0YLQvtCx0YDQsNC20LXQvdC40LXQstC00LjQsNCz0YDQsNC80LzQtSAnICtcbiAgJ9C+0YLQvtCx0YDQsNC20LXQvdC40LXQstC70LXQs9C10L3QtNC10LTQuNCw0LPRgNCw0LzQvNGLINC+0YLQvtCx0YDQsNC20LXQvdC40LXQs9GA0YPQv9C/0YvQutC90L7Qv9C+0Log0L7RgtC+0LHRgNCw0LbQtdC90LjQtdC30LDQs9C+0LvQvtCy0LrQsNGI0LrQsNC70YvQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfQvtGC0L7QsdGA0LDQttC10L3QuNC10LfQvdCw0YfQtdC90LjQudGB0LLQvtC00L3QvtC50LTQuNCw0LPRgNCw0LzQvNGLINC+0YLQvtCx0YDQsNC20LXQvdC40LXQt9C90LDRh9C10L3QuNGP0LjQt9C80LXRgNC40YLQtdC70YzQvdC+0LnQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfQvtGC0L7QsdGA0LDQttC10L3QuNC10LjQvdGC0LXRgNCy0LDQu9Cw0LTQuNCw0LPRgNCw0LzQvNGL0LPQsNC90YLQsCDQvtGC0L7QsdGA0LDQttC10L3QuNC10LrQvdC+0L/QutC4INC+0YLQvtCx0YDQsNC20LXQvdC40LXQutC90L7Qv9C60LjQstGL0LHQvtGA0LAg0L7RgtC+0LHRgNCw0LbQtdC90LjQtdC+0LHRgdGD0LbQtNC10L3QuNC50YTQvtGA0LzRiyAnICtcbiAgJ9C+0YLQvtCx0YDQsNC20LXQvdC40LXQvtCx0YvRh9C90L7QudCz0YDRg9C/0L/RiyDQvtGC0L7QsdGA0LDQttC10L3QuNC10L7RgtGA0LjRhtCw0YLQtdC70YzQvdGL0YXQt9C90LDRh9C10L3QuNC50L/Rg9C30YvRgNGM0LrQvtCy0L7QudC00LjQsNCz0YDQsNC80LzRiyDQvtGC0L7QsdGA0LDQttC10L3QuNC10L/QsNC90LXQu9C40L/QvtC40YHQutCwICcgK1xuICAn0L7RgtC+0LHRgNCw0LbQtdC90LjQtdC/0L7QtNGB0LrQsNC30LrQuCDQvtGC0L7QsdGA0LDQttC10L3QuNC10L/RgNC10LTRg9C/0YDQtdC20LTQtdC90LjRj9C/0YDQuNGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjQtdGA0LDQt9C80LXRgtC60LjQv9C+0LvQvtGB0YvRgNC10LPRg9C70LjRgNC+0LLQsNC90LjRjyAnICtcbiAgJ9C+0YLQvtCx0YDQsNC20LXQvdC40LXRgdGC0YDQsNC90LjRhtGE0L7RgNC80Ysg0L7RgtC+0LHRgNCw0LbQtdC90LjQtdGC0LDQsdC70LjRhtGLINC+0YLQvtCx0YDQsNC20LXQvdC40LXRgtC10LrRgdGC0LDQt9C90LDRh9C10L3QuNGP0LTQuNCw0LPRgNCw0LzQvNGL0LPQsNC90YLQsCAnICtcbiAgJ9C+0YLQvtCx0YDQsNC20LXQvdC40LXRg9C/0YDQsNCy0LvQtdC90LjRj9C+0LHRi9GH0L3QvtC50LPRgNGD0L/Qv9GLINC+0YLQvtCx0YDQsNC20LXQvdC40LXRhNC40LPRg9GA0YvQutC90L7Qv9C60Lgg0L/QsNC70LjRgtGA0LDRhtCy0LXRgtC+0LLQtNC40LDQs9GA0LDQvNC80Ysg0L/QvtCy0LXQtNC10L3QuNC10L7QsdGL0YfQvdC+0LnQs9GA0YPQv9C/0YsgJyArXG4gICfQv9C+0LTQtNC10YDQttC60LDQvNCw0YHRiNGC0LDQsdCw0LTQtdC90LTRgNC+0LPRgNCw0LzQvNGLINC/0L7QtNC00LXRgNC20LrQsNC80LDRgdGI0YLQsNCx0LDQtNC40LDQs9GA0LDQvNC80YvQs9Cw0L3RgtCwINC/0L7QtNC00LXRgNC20LrQsNC80LDRgdGI0YLQsNCx0LDRgdCy0L7QtNC90L7QudC00LjQsNCz0YDQsNC80LzRiyAnICtcbiAgJ9C/0L7QuNGB0LrQstGC0LDQsdC70LjRhtC10L/RgNC40LLQstC+0LTQtSDQv9C+0LvQvtC20LXQvdC40LXQt9Cw0LPQvtC70L7QstC60LDRjdC70LXQvNC10L3RgtCw0YTQvtGA0LzRiyDQv9C+0LvQvtC20LXQvdC40LXQutCw0YDRgtC40L3QutC40LrQvdC+0L/QutC40YTQvtGA0LzRiyAnICtcbiAgJ9C/0L7Qu9C+0LbQtdC90LjQtdC60LDRgNGC0LjQvdC60LjRjdC70LXQvNC10L3RgtCw0LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80Ysg0L/QvtC70L7QttC10L3QuNC10LrQvtC80LDQvdC00L3QvtC50L/QsNC90LXQu9C40YTQvtGA0LzRiyDQv9C+0LvQvtC20LXQvdC40LXQutC+0LzQsNC90LTQvdC+0LnQv9Cw0L3QtdC70LjRjdC70LXQvNC10L3RgtCw0YTQvtGA0LzRiyAnICtcbiAgJ9C/0L7Qu9C+0LbQtdC90LjQtdC+0L/QvtGA0L3QvtC50YLQvtGH0LrQuNC+0YLRgNC40YHQvtCy0LrQuCDQv9C+0LvQvtC20LXQvdC40LXQv9C+0LTQv9C40YHQtdC50LrQtNC40LDQs9GA0LDQvNC80LUg0L/QvtC70L7QttC10L3QuNC10L/QvtC00L/QuNGB0LXQudGI0LrQsNC70YvQt9C90LDRh9C10L3QuNC50LjQt9C80LXRgNC40YLQtdC70YzQvdC+0LnQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfQv9C+0LvQvtC20LXQvdC40LXRgdC+0YHRgtC+0Y/QvdC40Y/Qv9GA0L7RgdC80L7RgtGA0LAg0L/QvtC70L7QttC10L3QuNC10YHRgtGA0L7QutC40L/QvtC40YHQutCwINC/0L7Qu9C+0LbQtdC90LjQtdGC0LXQutGB0YLQsNGB0L7QtdC00LjQvdC40YLQtdC70YzQvdC+0LnQu9C40L3QuNC4INC/0L7Qu9C+0LbQtdC90LjQtdGD0L/RgNCw0LLQu9C10L3QuNGP0L/QvtC40YHQutC+0LwgJyArXG4gICfQv9C+0LvQvtC20LXQvdC40LXRiNC60LDQu9GL0LLRgNC10LzQtdC90Lgg0L/QvtGA0Y/QtNC+0LrQvtGC0L7QsdGA0LDQttC10L3QuNGP0YLQvtGH0LXQutCz0L7RgNC40LfQvtC90YLQsNC70YzQvdC+0LnQs9C40YHRgtC+0LPRgNCw0LzQvNGLINC/0L7RgNGP0LTQvtC60YHQtdGA0LjQudCy0LvQtdCz0LXQvdC00LXQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfRgNCw0LfQvNC10YDQutCw0YDRgtC40L3QutC4INGA0LDRgdC/0L7Qu9C+0LbQtdC90LjQtdC30LDQs9C+0LvQvtCy0LrQsNGI0LrQsNC70YvQtNC40LDQs9GA0LDQvNC80Ysg0YDQsNGB0YLRj9Cz0LjQstCw0L3QuNC10L/QvtCy0LXRgNGC0LjQutCw0LvQuNC00LjQsNCz0YDQsNC80LzRi9Cz0LDQvdGC0LAgJyArXG4gICfRgNC10LbQuNC80LDQstGC0L7QvtGC0L7QsdGA0LDQttC10L3QuNGP0YHQvtGB0YLQvtGP0L3QuNGPINGA0LXQttC40LzQstCy0L7QtNCw0YHRgtGA0L7QutGC0LDQsdC70LjRhtGLINGA0LXQttC40LzQstGL0LHQvtGA0LDQvdC10LfQsNC/0L7Qu9C90LXQvdC90L7Qs9C+INGA0LXQttC40LzQstGL0LTQtdC70LXQvdC40Y/QtNCw0YLRiyAnICtcbiAgJ9GA0LXQttC40LzQstGL0LTQtdC70LXQvdC40Y/RgdGC0YDQvtC60LjRgtCw0LHQu9C40YbRiyDRgNC10LbQuNC80LLRi9C00LXQu9C10L3QuNGP0YLQsNCx0LvQuNGG0Ysg0YDQtdC20LjQvNC40LfQvNC10L3QtdC90LjRj9GA0LDQt9C80LXRgNCwINGA0LXQttC40LzQuNC30LzQtdC90LXQvdC40Y/RgdCy0Y/Qt9Cw0L3QvdC+0LPQvtC30L3QsNGH0LXQvdC40Y8gJyArXG4gICfRgNC10LbQuNC80LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y/QtNC40LDQu9C+0LPQsNC/0LXRh9Cw0YLQuCDRgNC10LbQuNC80LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y/Qv9Cw0YDQsNC80LXRgtGA0LDQutC+0LzQsNC90LTRiyDRgNC10LbQuNC80LzQsNGB0YjRgtCw0LHQuNGA0L7QstCw0L3QuNGP0L/RgNC+0YHQvNC+0YLRgNCwICcgK1xuICAn0YDQtdC20LjQvNC+0YHQvdC+0LLQvdC+0LPQvtC+0LrQvdCw0LrQu9C40LXQvdGC0YHQutC+0LPQvtC/0YDQuNC70L7QttC10L3QuNGPINGA0LXQttC40LzQvtGC0LrRgNGL0YLQuNGP0L7QutC90LDRhNC+0YDQvNGLINGA0LXQttC40LzQvtGC0L7QsdGA0LDQttC10L3QuNGP0LLRi9C00LXQu9C10L3QuNGPICcgK1xuICAn0YDQtdC20LjQvNC+0YLQvtCx0YDQsNC20LXQvdC40Y/Qs9C10L7Qs9GA0LDRhNC40YfQtdGB0LrQvtC50YHRhdC10LzRiyDRgNC10LbQuNC80L7RgtC+0LHRgNCw0LbQtdC90LjRj9C30L3QsNGH0LXQvdC40LnRgdC10YDQuNC4INGA0LXQttC40LzQvtGC0YDQuNGB0L7QstC60LjRgdC10YLQutC40LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80YsgJyArXG4gICfRgNC10LbQuNC80L/QvtC70YPQv9GA0L7Qt9GA0LDRh9C90L7RgdGC0LjQtNC40LDQs9GA0LDQvNC80Ysg0YDQtdC20LjQvNC/0YDQvtCx0LXQu9C+0LLQtNC40LDQs9GA0LDQvNC80Ysg0YDQtdC20LjQvNGA0LDQt9C80LXRidC10L3QuNGP0L3QsNGB0YLRgNCw0L3QuNGG0LUg0YDQtdC20LjQvNGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y/QutC+0LvQvtC90LrQuCAnICtcbiAgJ9GA0LXQttC40LzRgdCz0LvQsNC20LjQstCw0L3QuNGP0LTQuNCw0LPRgNCw0LzQvNGLINGA0LXQttC40LzRgdCz0LvQsNC20LjQstCw0L3QuNGP0LjQvdC00LjQutCw0YLQvtGA0LAg0YDQtdC20LjQvNGB0L/QuNGB0LrQsNC30LDQtNCw0Ycg0YHQutCy0L7Qt9C90L7QtdCy0YvRgNCw0LLQvdC40LLQsNC90LjQtSAnICtcbiAgJ9GB0L7RhdGA0LDQvdC10L3QuNC10LTQsNC90L3Ri9GF0YTQvtGA0LzRi9Cy0L3QsNGB0YLRgNC+0LnQutCw0YUg0YHQv9C+0YHQvtCx0LfQsNC/0L7Qu9C90LXQvdC40Y/RgtC10LrRgdGC0LDQt9Cw0LPQvtC70L7QstC60LDRiNC60LDQu9GL0LTQuNCw0LPRgNCw0LzQvNGLICcgK1xuICAn0YHQv9C+0YHQvtCx0L7Qv9GA0LXQtNC10LvQtdC90LjRj9C+0LPRgNCw0L3QuNGH0LjQstCw0Y7RidC10LPQvtC30L3QsNGH0LXQvdC40Y/QtNC40LDQs9GA0LDQvNC80Ysg0YHRgtCw0L3QtNCw0YDRgtC90LDRj9Cz0YDRg9C/0L/QsNC60L7QvNCw0L3QtCDRgdGC0LDQvdC00LDRgNGC0L3QvtC10L7RhNC+0YDQvNC70LXQvdC40LUgJyArXG4gICfRgdGC0LDRgtGD0YHQvtC/0L7QstC10YnQtdC90LjRj9C/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgdGC0LjQu9GM0YHRgtGA0LXQu9C60Lgg0YLQuNC/0LDQv9C/0YDQvtC60YHQuNC80LDRhtC40LjQu9C40L3QuNC40YLRgNC10L3QtNCw0LTQuNCw0LPRgNCw0LzQvNGLINGC0LjQv9C00LjQsNCz0YDQsNC80LzRiyAnICtcbiAgJ9GC0LjQv9C10LTQuNC90LjRhtGL0YjQutCw0LvRi9Cy0YDQtdC80LXQvdC4INGC0LjQv9C40LzQv9C+0YDRgtCw0YHQtdGA0LjQudGB0LvQvtGP0LPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80Ysg0YLQuNC/0LvQuNC90LjQuNCz0LXQvtCz0YDQsNGE0LjRh9C10YHQutC+0LnRgdGF0LXQvNGLINGC0LjQv9C70LjQvdC40LjQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfRgtC40L/QvNCw0YDQutC10YDQsNCz0LXQvtCz0YDQsNGE0LjRh9C10YHQutC+0LnRgdGF0LXQvNGLINGC0LjQv9C80LDRgNC60LXRgNCw0LTQuNCw0LPRgNCw0LzQvNGLINGC0LjQv9C+0LHQu9Cw0YHRgtC40L7RhNC+0YDQvNC70LXQvdC40Y8gJyArXG4gICfRgtC40L/QvtGA0LPQsNC90LjQt9Cw0YbQuNC40LjRgdGC0L7Rh9C90LjQutCw0LTQsNC90L3Ri9GF0LPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80Ysg0YLQuNC/0L7RgtC+0LHRgNCw0LbQtdC90LjRj9GB0LXRgNC40LjRgdC70L7Rj9Cz0LXQvtCz0YDQsNGE0LjRh9C10YHQutC+0LnRgdGF0LXQvNGLICcgK1xuICAn0YLQuNC/0L7RgtC+0LHRgNCw0LbQtdC90LjRj9GC0L7Rh9C10YfQvdC+0LPQvtC+0LHRitC10LrRgtCw0LPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80Ysg0YLQuNC/0L7RgtC+0LHRgNCw0LbQtdC90LjRj9GI0LrQsNC70YvRjdC70LXQvNC10L3RgtCw0LvQtdCz0LXQvdC00YvQs9C10L7Qs9GA0LDRhNC40YfQtdGB0LrQvtC50YHRhdC10LzRiyAnICtcbiAgJ9GC0LjQv9C/0L7QuNGB0LrQsNC+0LHRitC10LrRgtC+0LLQs9C10L7Qs9GA0LDRhNC40YfQtdGB0LrQvtC50YHRhdC10LzRiyDRgtC40L/Qv9GA0L7QtdC60YbQuNC40LPQtdC+0LPRgNCw0YTQuNGH0LXRgdC60L7QudGB0YXQtdC80Ysg0YLQuNC/0YDQsNC30LzQtdGJ0LXQvdC40Y/QuNC30LzQtdGA0LXQvdC40LkgJyArXG4gICfRgtC40L/RgNCw0LfQvNC10YnQtdC90LjRj9GA0LXQutCy0LjQt9C40YLQvtCy0LjQt9C80LXRgNC10L3QuNC5INGC0LjQv9GA0LDQvNC60LjRjdC70LXQvNC10L3RgtCw0YPQv9GA0LDQstC70LXQvdC40Y8g0YLQuNC/0YHQstC+0LTQvdC+0LnQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfRgtC40L/RgdCy0Y/Qt9C40LTQuNCw0LPRgNCw0LzQvNGL0LPQsNC90YLQsCDRgtC40L/RgdC+0LXQtNC40L3QtdC90LjRj9C30L3QsNGH0LXQvdC40LnQv9C+0YHQtdGA0LjRj9C80LTQuNCw0LPRgNCw0LzQvNGLINGC0LjQv9GB0L7QtdC00LjQvdC10L3QuNGP0YLQvtGH0LXQutC00LjQsNCz0YDQsNC80LzRiyAnICtcbiAgJ9GC0LjQv9GB0L7QtdC00LjQvdC40YLQtdC70YzQvdC+0LnQu9C40L3QuNC4INGC0LjQv9GB0YLQvtGA0L7QvdGL0Y3Qu9C10LzQtdC90YLQsNCz0YDQsNGE0LjRh9C10YHQutC+0LnRgdGF0LXQvNGLINGC0LjQv9GE0L7RgNC80YvQvtGC0YfQtdGC0LAg0YLQuNC/0YjQutCw0LvRi9GA0LDQtNCw0YDQvdC+0LnQtNC40LDQs9GA0LDQvNC80YsgJyArXG4gICfRhNCw0LrRgtC+0YDQu9C40L3QuNC40YLRgNC10L3QtNCw0LTQuNCw0LPRgNCw0LzQvNGLINGE0LjQs9GD0YDQsNC60L3QvtC/0LrQuCDRhNC40LPRg9GA0YvQs9GA0LDRhNC40YfQtdGB0LrQvtC50YHRhdC10LzRiyDRhNC40LrRgdCw0YbQuNGP0LLRgtCw0LHQu9C40YbQtSDRhNC+0YDQvNCw0YLQtNC90Y/RiNC60LDQu9GL0LLRgNC10LzQtdC90LggJyArXG4gICfRhNC+0YDQvNCw0YLQutCw0YDRgtC40L3QutC4INGI0LjRgNC40L3QsNC/0L7QtNGH0LjQvdC10L3QvdGL0YXRjdC70LXQvNC10L3RgtC+0LLRhNC+0YDQvNGLICc7XG5cbiAgLy8gdjgg0YHQuNGB0YLQtdC80L3Ri9C1INC/0LXRgNC10YfQuNGB0LvQtdC90LjRjyAtINGB0LLQvtC50YHRgtCy0LAg0L/RgNC40LrQu9Cw0LTQvdGL0YUg0L7QsdGK0LXQutGC0L7QsiA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19vYmplY3RzX3Byb3BlcnRpZXMgPVxuICAn0LLQuNC00LTQstC40LbQtdC90LjRj9Cx0YPRhdCz0LDQu9GC0LXRgNC40Lgg0LLQuNC00LTQstC40LbQtdC90LjRj9C90LDQutC+0L/Qu9C10L3QuNGPINCy0LjQtNC/0LXRgNC40L7QtNCw0YDQtdCz0LjRgdGC0YDQsNGA0LDRgdGH0LXRgtCwINCy0LjQtNGB0YfQtdGC0LAg0LLQuNC00YLQvtGH0LrQuNC80LDRgNGI0YDRg9GC0LDQsdC40LfQvdC10YHQv9GA0L7RhtC10YHRgdCwICcgK1xuICAn0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQsNCz0YDQtdCz0LDRgtCw0YDQtdCz0LjRgdGC0YDQsNC90LDQutC+0L/Qu9C10L3QuNGPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10LPRgNGD0L/Qv9C40Y3Qu9C10LzQtdC90YLQvtCyINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10YDQtdC20LjQvNCw0L/RgNC+0LLQtdC00LXQvdC40Y8gJyArXG4gICfQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdGB0YDQtdC30LAg0L/QtdGA0LjQvtC00LjRh9C90L7RgdGC0YzQsNCz0YDQtdCz0LDRgtCw0YDQtdCz0LjRgdGC0YDQsNC90LDQutC+0L/Qu9C10L3QuNGPINGA0LXQttC40LzQsNCy0YLQvtCy0YDQtdC80Y8g0YDQtdC20LjQvNC30LDQv9C40YHQuNC00L7QutGD0LzQtdC90YLQsCDRgNC10LbQuNC80L/RgNC+0LLQtdC00LXQvdC40Y/QtNC+0LrRg9C80LXQvdGC0LAgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0L/Qu9Cw0L3RiyDQvtCx0LzQtdC90LAgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfZXhjaGFuZ2VfcGxhbnMgPVxuICAn0LDQstGC0L7RgNC10LPQuNGB0YLRgNCw0YbQuNGP0LjQt9C80LXQvdC10L3QuNC5INC00L7Qv9GD0YHRgtC40LzRi9C50L3QvtC80LXRgNGB0L7QvtCx0YnQtdC90LjRjyDQvtGC0L/RgNCw0LLQutCw0Y3Qu9C10LzQtdC90YLQsNC00LDQvdC90YvRhSDQv9C+0LvRg9GH0LXQvdC40LXRjdC70LXQvNC10L3RgtCw0LTQsNC90L3Ri9GFICc7XG5cbiAgLy8gdjgg0YHQuNGB0YLQtdC80L3Ri9C1INC/0LXRgNC10YfQuNGB0LvQtdC90LjRjyAtINGC0LDQsdC70LjRh9C90YvQuSDQtNC+0LrRg9C80LXQvdGCID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX3RhYnVsYXJfZG9jdW1lbnQgPVxuICAn0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXRgNCw0YHRiNC40YTRgNC+0LLQutC40YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAg0L7RgNC40LXQvdGC0LDRhtC40Y/RgdGC0YDQsNC90LjRhtGLINC/0L7Qu9C+0LbQtdC90LjQtdC40YLQvtCz0L7QstC60L7Qu9C+0L3QvtC60YHQstC+0LTQvdC+0LnRgtCw0LHQu9C40YbRiyAnICtcbiAgJ9C/0L7Qu9C+0LbQtdC90LjQtdC40YLQvtCz0L7QstGB0YLRgNC+0LrRgdCy0L7QtNC90L7QudGC0LDQsdC70LjRhtGLINC/0L7Qu9C+0LbQtdC90LjQtdGC0LXQutGB0YLQsNC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QvtC60LDRgNGC0LjQvdC60Lgg0YDQsNGB0L/QvtC70L7QttC10L3QuNC10LfQsNCz0L7Qu9C+0LLQutCw0LPRgNGD0L/Qv9C40YDQvtCy0LrQuNGC0LDQsdC70LjRh9C90L7Qs9C+0LTQvtC60YPQvNC10L3RgtCwICcgK1xuICAn0YHQv9C+0YHQvtCx0YfRgtC10L3QuNGP0LfQvdCw0YfQtdC90LjQudGC0LDQsdC70LjRh9C90L7Qs9C+0LTQvtC60YPQvNC10L3RgtCwINGC0LjQv9C00LLRg9GB0YLQvtGA0L7QvdC90LXQudC/0LXRh9Cw0YLQuCDRgtC40L/Qt9Cw0L/QvtC70L3QtdC90LjRj9C+0LHQu9Cw0YHRgtC40YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAgJyArXG4gICfRgtC40L/QutGD0YDRgdC+0YDQvtCy0YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAg0YLQuNC/0LvQuNC90LjQuNGA0LjRgdGD0L3QutCw0YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAg0YLQuNC/0LvQuNC90LjQuNGP0YfQtdC50LrQuNGC0LDQsdC70LjRh9C90L7Qs9C+0LTQvtC60YPQvNC10L3RgtCwICcgK1xuICAn0YLQuNC/0L3QsNC/0YDQsNCy0LvQtdC90LjRj9C/0LXRgNC10YXQvtC00LDRgtCw0LHQu9C40YfQvdC+0LPQvtC00L7QutGD0LzQtdC90YLQsCDRgtC40L/QvtGC0L7QsdGA0LDQttC10L3QuNGP0LLRi9C00LXQu9C10L3QuNGP0YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAg0YLQuNC/0L7RgtC+0LHRgNCw0LbQtdC90LjRj9C70LjQvdC40LnRgdCy0L7QtNC90L7QudGC0LDQsdC70LjRhtGLICcgK1xuICAn0YLQuNC/0YDQsNC30LzQtdGJ0LXQvdC40Y/RgtC10LrRgdGC0LDRgtCw0LHQu9C40YfQvdC+0LPQvtC00L7QutGD0LzQtdC90YLQsCDRgtC40L/RgNC40YHRg9C90LrQsNGC0LDQsdC70LjRh9C90L7Qs9C+0LTQvtC60YPQvNC10L3RgtCwINGC0LjQv9GB0LzQtdGJ0LXQvdC40Y/RgtCw0LHQu9C40YfQvdC+0LPQvtC00L7QutGD0LzQtdC90YLQsCAnICtcbiAgJ9GC0LjQv9GD0LfQvtGA0LDRgtCw0LHQu9C40YfQvdC+0LPQvtC00L7QutGD0LzQtdC90YLQsCDRgtC40L/RhNCw0LnQu9Cw0YLQsNCx0LvQuNGH0L3QvtCz0L7QtNC+0LrRg9C80LXQvdGC0LAg0YLQvtGH0L3QvtGB0YLRjNC/0LXRh9Cw0YLQuCDRh9C10YDQtdC00L7QstCw0L3QuNC10YDQsNGB0L/QvtC70L7QttC10L3QuNGP0YHRgtGA0LDQvdC40YYgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0L/Qu9Cw0L3QuNGA0L7QstGJ0LjQuiA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19zaGVkdWxlciA9XG4gICfQvtGC0L7QsdGA0LDQttC10L3QuNC10LLRgNC10LzQtdC90LjRjdC70LXQvNC10L3RgtC+0LLQv9C70LDQvdC40YDQvtCy0YnQuNC60LAgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90L3Ri9C5INC00L7QutGD0LzQtdC90YIgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfZm9ybWF0dGVkX2RvY3VtZW50ID1cbiAgJ9GC0LjQv9GE0LDQudC70LDRhNC+0YDQvNCw0YLQuNGA0L7QstCw0L3QvdC+0LPQvtC00L7QutGD0LzQtdC90YLQsCAnO1xuXG4gIC8vIHY4INGB0LjRgdGC0LXQvNC90YvQtSDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8gLSDQt9Cw0L/RgNC+0YEgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfcXVlcnkgPVxuICAn0L7QsdGF0L7QtNGA0LXQt9GD0LvRjNGC0LDRgtCw0LfQsNC/0YDQvtGB0LAg0YLQuNC/0LfQsNC/0LjRgdC40LfQsNC/0YDQvtGB0LAgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0L/QvtGB0YLRgNC+0LjRgtC10LvRjCDQvtGC0YfQtdGC0LAgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfcmVwb3J0X2J1aWxkZXIgPVxuICAn0LLQuNC00LfQsNC/0L7Qu9C90LXQvdC40Y/RgNCw0YHRiNC40YTRgNC+0LLQutC40L/QvtGB0YLRgNC+0LjRgtC10LvRj9C+0YLRh9C10YLQsCDRgtC40L/QtNC+0LHQsNCy0LvQtdC90LjRj9C/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC5INGC0LjQv9C40LfQvNC10YDQtdC90LjRj9C/0L7RgdGC0YDQvtC40YLQtdC70Y/QvtGC0YfQtdGC0LAg0YLQuNC/0YDQsNC30LzQtdGJ0LXQvdC40Y/QuNGC0L7Qs9C+0LIgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0YDQsNCx0L7RgtCwINGBINGE0LDQudC70LDQvNC4ID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX2ZpbGVzID1cbiAgJ9C00L7RgdGC0YPQv9C60YTQsNC50LvRgyDRgNC10LbQuNC80LTQuNCw0LvQvtCz0LDQstGL0LHQvtGA0LDRhNCw0LnQu9CwINGA0LXQttC40LzQvtGC0LrRgNGL0YLQuNGP0YTQsNC50LvQsCAnO1xuXG4gIC8vIHY4INGB0LjRgdGC0LXQvNC90YvQtSDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8gLSDQv9C+0YHRgtGA0L7QuNGC0LXQu9GMINC30LDQv9GA0L7RgdCwID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX3F1ZXJ5X2J1aWxkZXIgPVxuICAn0YLQuNC/0LjQt9C80LXRgNC10L3QuNGP0L/QvtGB0YLRgNC+0LjRgtC10LvRj9C30LDQv9GA0L7RgdCwICc7XG5cbiAgLy8gdjgg0YHQuNGB0YLQtdC80L3Ri9C1INC/0LXRgNC10YfQuNGB0LvQtdC90LjRjyAtINCw0L3QsNC70LjQtyDQtNCw0L3QvdGL0YUgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfZGF0YV9hbmFseXNpcyA9XG4gICfQstC40LTQtNCw0L3QvdGL0YXQsNC90LDQu9C40LfQsCDQvNC10YLQvtC00LrQu9Cw0YHRgtC10YDQuNC30LDRhtC40Lgg0YLQuNC/0LXQtNC40L3QuNGG0YvQuNC90YLQtdGA0LLQsNC70LDQstGA0LXQvNC10L3QuNCw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GFINGC0LjQv9C30LDQv9C+0LvQvdC10L3QuNGP0YLQsNCx0LvQuNGG0YvRgNC10LfRg9C70YzRgtCw0YLQsNCw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GFICcgK1xuICAn0YLQuNC/0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y/Rh9C40YHQu9C+0LLRi9GF0LfQvdCw0YfQtdC90LjQudCw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GFINGC0LjQv9C40YHRgtC+0YfQvdC40LrQsNC00LDQvdC90YvRhdC/0L7QuNGB0LrQsNCw0YHRgdC+0YbQuNCw0YbQuNC5INGC0LjQv9C60L7Qu9C+0L3QutC40LDQvdCw0LvQuNC30LDQtNCw0L3QvdGL0YXQtNC10YDQtdCy0L7RgNC10YjQtdC90LjQuSAnICtcbiAgJ9GC0LjQv9C60L7Qu9C+0L3QutC40LDQvdCw0LvQuNC30LDQtNCw0L3QvdGL0YXQutC70LDRgdGC0LXRgNC40LfQsNGG0LjRjyDRgtC40L/QutC+0LvQvtC90LrQuNCw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GF0L7QsdGJ0LDRj9GB0YLQsNGC0LjRgdGC0LjQutCwINGC0LjQv9C60L7Qu9C+0L3QutC40LDQvdCw0LvQuNC30LDQtNCw0L3QvdGL0YXQv9C+0LjRgdC60LDRgdGB0L7RhtC40LDRhtC40LkgJyArXG4gICfRgtC40L/QutC+0LvQvtC90LrQuNCw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GF0L/QvtC40YHQutC/0L7RgdC70LXQtNC+0LLQsNGC0LXQu9GM0L3QvtGB0YLQtdC5INGC0LjQv9C60L7Qu9C+0L3QutC40LzQvtC00LXQu9C40L/RgNC+0LPQvdC+0LfQsCDRgtC40L/QvNC10YDRi9GA0LDRgdGB0YLQvtGP0L3QuNGP0LDQvdCw0LvQuNC30LDQtNCw0L3QvdGL0YUgJyArXG4gICfRgtC40L/QvtGC0YHQtdGH0LXQvdC40Y/Qv9GA0LDQstC40LvQsNGB0YHQvtGG0LjQsNGG0LjQuCDRgtC40L/Qv9C+0LvRj9Cw0L3QsNC70LjQt9Cw0LTQsNC90L3Ri9GFINGC0LjQv9GB0YLQsNC90LTQsNGA0YLQuNC30LDRhtC40LjQsNC90LDQu9C40LfQsNC00LDQvdC90YvRhSDRgtC40L/Rg9C/0L7RgNGP0LTQvtGH0LjQstCw0L3QuNGP0L/RgNCw0LLQuNC70LDRgdGB0L7RhtC40LDRhtC40LjQsNC90LDQu9C40LfQsNC00LDQvdC90YvRhSAnICtcbiAgJ9GC0LjQv9GD0L/QvtGA0Y/QtNC+0YfQuNCy0LDQvdC40Y/RiNCw0LHQu9C+0L3QvtCy0L/QvtGB0LvQtdC00L7QstCw0YLQtdC70YzQvdC+0YHRgtC10LnQsNC90LDQu9C40LfQsNC00LDQvdC90YvRhSDRgtC40L/Rg9C/0YDQvtGJ0LXQvdC40Y/QtNC10YDQtdCy0LDRgNC10YjQtdC90LjQuSAnO1xuXG4gIC8vIHY4INGB0LjRgdGC0LXQvNC90YvQtSDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8gLSB4bWwsIGpzb24sIHhzLCBkb20sIHhkdG8sIHdlYi3RgdC10YDQstC40YHRiyA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc194bWxfanNvbl94c19kb21feGR0b193cyA9XG4gICd3c9C90LDQv9GA0LDQstC70LXQvdC40LXQv9Cw0YDQsNC80LXRgtGA0LAg0LLQsNGA0LjQsNC90YJ4cGF0aHhzINCy0LDRgNC40LDQvdGC0LfQsNC/0LjRgdC40LTQsNGC0Ytqc29uINCy0LDRgNC40LDQvdGC0L/RgNC+0YHRgtC+0LPQvtGC0LjQv9CweHMg0LLQuNC00LPRgNGD0L/Qv9GL0LzQvtC00LXQu9C4eHMg0LLQuNC00YTQsNGB0LXRgtCweGR0byAnICtcbiAgJ9C00LXQudGB0YLQstC40LXQv9C+0YHRgtGA0L7QuNGC0LXQu9GPZG9tINC30LDQstC10YDRiNC10L3QvdC+0YHRgtGM0L/RgNC+0YHRgtC+0LPQvtGC0LjQv9CweHMg0LfQsNCy0LXRgNGI0LXQvdC90L7RgdGC0YzRgdC+0YHRgtCw0LLQvdC+0LPQvtGC0LjQv9CweHMg0LfQsNCy0LXRgNGI0LXQvdC90L7RgdGC0YzRgdGF0LXQvNGLeHMg0LfQsNC/0YDQtdGJ0LXQvdC90YvQtdC/0L7QtNGB0YLQsNC90L7QstC60Lh4cyAnICtcbiAgJ9C40YHQutC70Y7Rh9C10L3QuNGP0LPRgNGD0L/Qv9C/0L7QtNGB0YLQsNC90L7QstC60Lh4cyDQutCw0YLQtdCz0L7RgNC40Y/QuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRj9Cw0YLRgNC40LHRg9GC0LB4cyDQutCw0YLQtdCz0L7RgNC40Y/QvtCz0YDQsNC90LjRh9C10L3QuNGP0LjQtNC10L3RgtC40YfQvdC+0YHRgtC4eHMg0LrQsNGC0LXQs9C+0YDQuNGP0L7Qs9GA0LDQvdC40YfQtdC90LjRj9C/0YDQvtGB0YLRgNCw0L3RgdGC0LLQuNC80LXQvXhzICcgK1xuICAn0LzQtdGC0L7QtNC90LDRgdC70LXQtNC+0LLQsNC90LjRj3hzINC80L7QtNC10LvRjNGB0L7QtNC10YDQttC40LzQvtCz0L54cyDQvdCw0LfQvdCw0YfQtdC90LjQtdGC0LjQv9CweG1sINC90LXQtNC+0L/Rg9GB0YLQuNC80YvQtdC/0L7QtNGB0YLQsNC90L7QstC60Lh4cyDQvtCx0YDQsNCx0L7RgtC60LDQv9GA0L7QsdC10LvRjNC90YvRhdGB0LjQvNCy0L7Qu9C+0LJ4cyDQvtCx0YDQsNCx0L7RgtC60LDRgdC+0LTQtdGA0LbQuNC80L7Qs9C+eHMgJyArXG4gICfQvtCz0YDQsNC90LjRh9C10L3QuNC10LfQvdCw0YfQtdC90LjRj3hzINC/0LDRgNCw0LzQtdGC0YDRi9C+0YLQsdC+0YDQsNGD0LfQu9C+0LJkb20g0L/QtdGA0LXQvdC+0YHRgdGC0YDQvtC6anNvbiDQv9C+0LfQuNGG0LjRj9Cy0LTQvtC60YPQvNC10L3RgtC1ZG9tINC/0YDQvtCx0LXQu9GM0L3Ri9C10YHQuNC80LLQvtC70Yt4bWwg0YLQuNC/0LDRgtGA0LjQsdGD0YLQsHhtbCDRgtC40L/Qt9C90LDRh9C10L3QuNGPanNvbiAnICtcbiAgJ9GC0LjQv9C60LDQvdC+0L3QuNGH0LXRgdC60L7Qs9C+eG1sINGC0LjQv9C60L7QvNC/0L7QvdC10L3RgtGLeHMg0YLQuNC/0L/RgNC+0LLQtdGA0LrQuHhtbCDRgtC40L/RgNC10LfRg9C70YzRgtCw0YLQsGRvbXhwYXRoINGC0LjQv9GD0LfQu9CwZG9tINGC0LjQv9GD0LfQu9CweG1sINGE0L7RgNC80LB4bWwg0YTQvtGA0LzQsNC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNGPeHMgJyArXG4gICfRhNC+0YDQvNCw0YLQtNCw0YLRi2pzb24g0Y3QutGA0LDQvdC40YDQvtCy0LDQvdC40LXRgdC40LzQstC+0LvQvtCyanNvbiAnO1xuXG4gIC8vIHY4INGB0LjRgdGC0LXQvNC90YvQtSDQv9C10YDQtdGH0LjRgdC70LXQvdC40Y8gLSDRgdC40YHRgtC10LzQsCDQutC+0LzQv9C+0L3QvtCy0LrQuCDQtNCw0L3QvdGL0YUgPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfZGF0YV9jb21wb3NpdGlvbl9zeXN0ZW0gPVxuICAn0LLQuNC00YHRgNCw0LLQvdC10L3QuNGP0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LTQtdC50YHRgtCy0LjQtdC+0LHRgNCw0LHQvtGC0LrQuNGA0LDRgdGI0LjRhNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDQvdCw0L/RgNCw0LLQu9C10L3QuNC10YHQvtGA0YLQuNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSAnICtcbiAgJ9GA0LDRgdC/0L7Qu9C+0LbQtdC90LjQtdCy0LvQvtC20LXQvdC90YvRhdGN0LvQtdC80LXQvdGC0L7QstGA0LXQt9GD0LvRjNGC0LDRgtCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YDQsNGB0L/QvtC70L7QttC10L3QuNC10LjRgtC+0LPQvtCy0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YDQsNGB0L/QvtC70L7QttC10L3QuNC10LPRgNGD0L/Qv9C40YDQvtCy0LrQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0YDQsNGB0L/QvtC70L7QttC10L3QuNC10L/QvtC70LXQudCz0YDRg9C/0L/QuNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LXQv9C+0LvRj9C60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINGA0LDRgdC/0L7Qu9C+0LbQtdC90LjQtdGA0LXQutCy0LjQt9C40YLQvtCy0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfRgNCw0YHQv9C+0LvQvtC20LXQvdC40LXRgNC10YHRg9GA0YHQvtCy0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0LHRg9GF0LPQsNC70YLQtdGA0YHQutC+0LPQvtC+0YHRgtCw0YLQutCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0LLRi9Cy0L7QtNCw0YLQtdC60YHRgtCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfRgtC40L/Qs9GA0YPQv9C/0LjRgNC+0LLQutC40LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0LPRgNGD0L/Qv9GL0Y3Qu9C10LzQtdC90YLQvtCy0L7RgtCx0L7RgNCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0LTQvtC/0L7Qu9C90LXQvdC40Y/Qv9C10YDQuNC+0LTQsNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0YLQuNC/0LfQsNCz0L7Qu9C+0LLQutCw0L/QvtC70LXQudC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINGC0LjQv9C80LDQutC10YLQsNCz0YDRg9C/0L/QuNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgtC40L/QvNCw0LrQtdGC0LDQvtCx0LvQsNGB0YLQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINGC0LjQv9C+0YHRgtCw0YLQutCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfRgtC40L/Qv9C10YDQuNC+0LTQsNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINGC0LjQv9GA0LDQt9C80LXRidC10L3QuNGP0YLQtdC60YHRgtCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0YHQstGP0LfQuNC90LDQsdC+0YDQvtCy0LTQsNC90L3Ri9GF0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YLQuNC/0Y3Qu9C10LzQtdC90YLQsNGA0LXQt9GD0LvRjNGC0LDRgtCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfRgNCw0YHQv9C+0LvQvtC20LXQvdC40LXQu9C10LPQtdC90LTRi9C00LjQsNCz0YDQsNC80LzRi9C60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINGC0LjQv9C/0YDQuNC80LXQvdC10L3QuNGP0L7RgtCx0L7RgNCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YDQtdC20LjQvNC+0YLQvtCx0YDQsNC20LXQvdC40Y/RjdC70LXQvNC10L3RgtCw0L3QsNGB0YLRgNC+0LnQutC40LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfRgNC10LbQuNC80L7RgtC+0LHRgNCw0LbQtdC90LjRj9C90LDRgdGC0YDQvtC10LrQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgdC+0YHRgtC+0Y/QvdC40LXRjdC70LXQvNC10L3RgtCw0L3QsNGB0YLRgNC+0LnQutC40LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0YHQv9C+0YHQvtCx0LLQvtGB0YHRgtCw0L3QvtCy0LvQtdC90LjRj9C90LDRgdGC0YDQvtC10LrQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSAnICtcbiAgJ9GA0LXQttC40LzQutC+0LzQv9C+0L3QvtCy0LrQuNGA0LXQt9GD0LvRjNGC0LDRgtCwINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10L/QsNGA0LDQvNC10YLRgNCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LDQstGC0L7Qv9C+0LfQuNGG0LjRj9GA0LXRgdGD0YDRgdC+0LLQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSAnK1xuICAn0LLQsNGA0LjQsNC90YLQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRj9Cz0YDRg9C/0L/QuNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgNCw0YHQv9C+0LvQvtC20LXQvdC40LXRgNC10YHRg9GA0YHQvtCy0LLQtNC40LDQs9GA0LDQvNC80LXQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRhNC40LrRgdCw0YbQuNGP0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdGD0YHQu9C+0LLQvdC+0LPQvtC+0YTQvtGA0LzQu9C10L3QuNGP0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0L/QvtGH0YLQsCA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19lbWFpbCA9XG4gICfQstCw0LbQvdC+0YHRgtGM0LjQvdGC0LXRgNC90LXRgtC/0L7Rh9GC0L7QstC+0LPQvtGB0L7QvtCx0YnQtdC90LjRjyDQvtCx0YDQsNCx0L7RgtC60LDRgtC10LrRgdGC0LDQuNC90YLQtdGA0L3QtdGC0L/QvtGH0YLQvtCy0L7Qs9C+0YHQvtC+0LHRidC10L3QuNGPINGB0L/QvtGB0L7QsdC60L7QtNC40YDQvtCy0LDQvdC40Y/QuNC90YLQtdGA0L3QtdGC0L/QvtGH0YLQvtCy0L7Qs9C+0LLQu9C+0LbQtdC90LjRjyAnICtcbiAgJ9GB0L/QvtGB0L7QsdC60L7QtNC40YDQvtCy0LDQvdC40Y/QvdC1YXNjaWnRgdC40LzQstC+0LvQvtCy0LjQvdGC0LXRgNC90LXRgtC/0L7Rh9GC0L7QstC+0LPQvtGB0L7QvtCx0YnQtdC90LjRjyDRgtC40L/RgtC10LrRgdGC0LDQv9C+0YfRgtC+0LLQvtCz0L7RgdC+0L7QsdGJ0LXQvdC40Y8g0L/RgNC+0YLQvtC60L7Qu9C40L3RgtC10YDQvdC10YLQv9C+0YfRgtGLICcgK1xuICAn0YHRgtCw0YLRg9GB0YDQsNC30LHQvtGA0LDQv9C+0YfRgtC+0LLQvtCz0L7RgdC+0L7QsdGJ0LXQvdC40Y8gJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0LbRg9GA0L3QsNC7INGA0LXQs9C40YHRgtGA0LDRhtC40LggPT0+IGNsYXNzXG4gIHZhciB2OF9zeXN0ZW1fZW51bXNfbG9nYm9vayA9XG4gICfRgNC10LbQuNC80YLRgNCw0L3Qt9Cw0LrRhtC40LjQt9Cw0L/QuNGB0LjQttGD0YDQvdCw0LvQsNGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0YHRgtCw0YLRg9GB0YLRgNCw0L3Qt9Cw0LrRhtC40LjQt9Cw0L/QuNGB0LjQttGD0YDQvdCw0LvQsNGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0YPRgNC+0LLQtdC90YzQttGD0YDQvdCw0LvQsNGA0LXQs9C40YHRgtGA0LDRhtC40LggJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0LrRgNC40L/RgtC+0LPRgNCw0YTQuNGPID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX2NyeXB0b2dyYXBoeSA9XG4gICfRgNCw0YHQv9C+0LvQvtC20LXQvdC40LXRhdGA0LDQvdC40LvQuNGJ0LDRgdC10YDRgtC40YTQuNC60LDRgtC+0LLQutGA0LjQv9GC0L7Qs9GA0LDRhNC40Lgg0YDQtdC20LjQvNCy0LrQu9GO0YfQtdC90LjRj9GB0LXRgNGC0LjRhNC40LrQsNGC0L7QstC60YDQuNC/0YLQvtCz0YDQsNGE0LjQuCDRgNC10LbQuNC80L/RgNC+0LLQtdGA0LrQuNGB0LXRgNGC0LjRhNC40LrQsNGC0LDQutGA0LjQv9GC0L7Qs9GA0LDRhNC40LggJyArXG4gICfRgtC40L/RhdGA0LDQvdC40LvQuNGJ0LDRgdC10YDRgtC40YTQuNC60LDRgtC+0LLQutGA0LjQv9GC0L7Qs9GA0LDRhNC40LggJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0gWklQID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX3ppcCA9XG4gICfQutC+0LTQuNGA0L7QstC60LDQuNC80LXQvdGE0LDQudC70L7QstCyemlw0YTQsNC50LvQtSDQvNC10YLQvtC00YHQttCw0YLQuNGPemlwINC80LXRgtC+0LTRiNC40YTRgNC+0LLQsNC90LjRj3ppcCDRgNC10LbQuNC80LLQvtGB0YHRgtCw0L3QvtCy0LvQtdC90LjRj9C/0YPRgtC10LnRhNCw0LnQu9C+0LJ6aXAg0YDQtdC20LjQvNC+0LHRgNCw0LHQvtGC0LrQuNC/0L7QtNC60LDRgtCw0LvQvtCz0L7QsnppcCAnICtcbiAgJ9GA0LXQttC40LzRgdC+0YXRgNCw0L3QtdC90LjRj9C/0YPRgtC10Ll6aXAg0YPRgNC+0LLQtdC90YzRgdC20LDRgtC40Y96aXAgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0gXG4gIC8vINCR0LvQvtC60LjRgNC+0LLQutCwINC00LDQvdC90YvRhSwg0KTQvtC90L7QstGL0LUg0LfQsNC00LDQvdC40Y8sINCQ0LLRgtC+0LzQsNGC0LjQt9C40YDQvtCy0LDQvdC90L7QtSDRgtC10YHRgtC40YDQvtCy0LDQvdC40LUsXG4gIC8vINCU0L7RgdGC0LDQstC70Y/QtdC80YvQtSDRg9Cy0LXQtNC+0LzQu9C10L3QuNGPLCDQktGB0YLRgNC+0LXQvdC90YvQtSDQv9C+0LrRg9C/0LrQuCwg0JjQvdGC0LXRgNC90LXRgiwg0KDQsNCx0L7RgtCwINGBINC00LLQvtC40YfQvdGL0LzQuCDQtNCw0L3QvdGL0LzQuCA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19vdGhlciA9XG4gICfQt9Cy0YPQutC+0LLQvtC10L7Qv9C+0LLQtdGJ0LXQvdC40LUg0L3QsNC/0YDQsNCy0LvQtdC90LjQtdC/0LXRgNC10YXQvtC00LDQutGB0YLRgNC+0LrQtSDQv9C+0LfQuNGG0LjRj9Cy0L/QvtGC0L7QutC1INC/0L7RgNGP0LTQvtC60LHQsNC50YLQvtCyINGA0LXQttC40LzQsdC70L7QutC40YDQvtCy0LrQuNC00LDQvdC90YvRhSDRgNC10LbQuNC80YPQv9GA0LDQstC70LXQvdC40Y/QsdC70L7QutC40YDQvtCy0LrQvtC50LTQsNC90L3Ri9GFICcgK1xuICAn0YHQtdGA0LLQuNGB0LLRgdGC0YDQvtC10L3QvdGL0YXQv9C+0LrRg9C/0L7QuiDRgdC+0YHRgtC+0Y/QvdC40LXRhNC+0L3QvtCy0L7Qs9C+0LfQsNC00LDQvdC40Y8g0YLQuNC/0L/QvtC00L/QuNGB0YfQuNC60LDQtNC+0YHRgtCw0LLQu9GP0LXQvNGL0YXRg9Cy0LXQtNC+0LzQu9C10L3QuNC5INGD0YDQvtCy0LXQvdGM0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y/Qt9Cw0YnQuNGJ0LXQvdC90L7Qs9C+0YHQvtC10LTQuNC90LXQvdC40Y9mdHAgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0YHRhdC10LzQsCDQt9Cw0L/RgNC+0YHQsCA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19yZXF1ZXN0X3NjaGVtYSA9XG4gICfQvdCw0L/RgNCw0LLQu9C10L3QuNC10L/QvtGA0Y/QtNC60LDRgdGF0LXQvNGL0LfQsNC/0YDQvtGB0LAg0YLQuNC/0LTQvtC/0L7Qu9C90LXQvdC40Y/Qv9C10YDQuNC+0LTQsNC80LjRgdGF0LXQvNGL0LfQsNC/0YDQvtGB0LAg0YLQuNC/0LrQvtC90YLRgNC+0LvRjNC90L7QudGC0L7Rh9C60LjRgdGF0LXQvNGL0LfQsNC/0YDQvtGB0LAg0YLQuNC/0L7QsdGK0LXQtNC40L3QtdC90LjRj9GB0YXQtdC80YvQt9Cw0L/RgNC+0YHQsCAnICtcbiAgJ9GC0LjQv9C/0LDRgNCw0LzQtdGC0YDQsNC00L7RgdGC0YPQv9C90L7QudGC0LDQsdC70LjRhtGL0YHRhdC10LzRi9C30LDQv9GA0L7RgdCwINGC0LjQv9GB0L7QtdC00LjQvdC10L3QuNGP0YHRhdC10LzRi9C30LDQv9GA0L7RgdCwICc7XG5cbiAgLy8gdjgg0YHQuNGB0YLQtdC80L3Ri9C1INC/0LXRgNC10YfQuNGB0LvQtdC90LjRjyAtINGB0LLQvtC50YHRgtCy0LAg0L7QsdGK0LXQutGC0L7QsiDQvNC10YLQsNC00LDQvdC90YvRhSA9PT4gY2xhc3NcbiAgdmFyIHY4X3N5c3RlbV9lbnVtc19wcm9wZXJ0aWVzX29mX21ldGFkYXRhX29iamVjdHMgPVxuICAnaHR0cNC80LXRgtC+0LQg0LDQstGC0L7QuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC+0LHRidC10LPQvtGA0LXQutCy0LjQt9C40YLQsCDQsNCy0YLQvtC/0YDQtdGE0LjQutGB0L3QvtC80LXRgNCw0LfQsNC00LDRh9C4INCy0LDRgNC40LDQvdGC0LLRgdGC0YDQvtC10L3QvdC+0LPQvtGP0LfRi9C60LAg0LLQuNC00LjQtdGA0LDRgNGF0LjQuCDQstC40LTRgNC10LPQuNGB0YLRgNCw0L3QsNC60L7Qv9C70LXQvdC40Y8gJyArXG4gICfQstC40LTRgtCw0LHQu9C40YbRi9Cy0L3QtdGI0L3QtdCz0L7QuNGB0YLQvtGH0L3QuNC60LDQtNCw0L3QvdGL0YUg0LfQsNC/0LjRgdGM0LTQstC40LbQtdC90LjQudC/0YDQuNC/0YDQvtCy0LXQtNC10L3QuNC4INC30LDQv9C+0LvQvdC10L3QuNC10L/QvtGB0LvQtdC00L7QstCw0YLQtdC70YzQvdC+0YHRgtC10Lkg0LjQvdC00LXQutGB0LjRgNC+0LLQsNC90LjQtSAnICtcbiAgJ9C40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10LHQsNC30YvQv9C70LDQvdCw0LLQuNC00L7QstGA0LDRgdGH0LXRgtCwINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10LHRi9GB0YLRgNC+0LPQvtCy0YvQsdC+0YDQsCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC+0LHRidC10LPQvtGA0LXQutCy0LjQt9C40YLQsCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC/0L7QtNGH0LjQvdC10L3QuNGPICcgK1xuICAn0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQv9C+0LvQvdC+0YLQtdC60YHRgtC+0LLQvtCz0L7Qv9C+0LjRgdC60LAg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXRgNCw0LfQtNC10LvRj9C10LzRi9GF0LTQsNC90L3Ri9GF0L7QsdGJ0LXQs9C+0YDQtdC60LLQuNC30LjRgtCwINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10YDQtdC60LLQuNC30LjRgtCwICcgK1xuICAn0L3QsNC30L3QsNGH0LXQvdC40LXQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRj9C/0YDQuNC70L7QttC10L3QuNGPINC90LDQt9C90LDRh9C10L3QuNC10YDQsNGB0YjQuNGA0LXQvdC40Y/QutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0L3QsNC/0YDQsNCy0LvQtdC90LjQtdC/0LXRgNC10LTQsNGH0Lgg0L7QsdC90L7QstC70LXQvdC40LXQv9GA0LXQtNC+0L/RgNC10LTQtdC70LXQvdC90YvRhdC00LDQvdC90YvRhSAnICtcbiAgJ9C+0L/QtdGA0LDRgtC40LLQvdC+0LXQv9GA0L7QstC10LTQtdC90LjQtSDQvtGB0L3QvtCy0L3QvtC10L/RgNC10LTRgdGC0LDQstC70LXQvdC40LXQstC40LTQsNGA0LDRgdGH0LXRgtCwINC+0YHQvdC+0LLQvdC+0LXQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtdCy0LjQtNCw0YXQsNGA0LDQutGC0LXRgNC40YHRgtC40LrQuCDQvtGB0L3QvtCy0L3QvtC10L/RgNC10LTRgdGC0LDQstC70LXQvdC40LXQt9Cw0LTQsNGH0LggJyArXG4gICfQvtGB0L3QvtCy0L3QvtC10L/RgNC10LTRgdGC0LDQstC70LXQvdC40LXQv9C70LDQvdCw0L7QsdC80LXQvdCwINC+0YHQvdC+0LLQvdC+0LXQv9GA0LXQtNGB0YLQsNCy0LvQtdC90LjQtdGB0L/RgNCw0LLQvtGH0L3QuNC60LAg0L7RgdC90L7QstC90L7QtdC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC10YHRh9C10YLQsCDQv9C10YDQtdC80LXRidC10L3QuNC10LPRgNCw0L3QuNGG0YvQv9GA0LjQv9GA0L7QstC10LTQtdC90LjQuCAnICtcbiAgJ9C/0LXRgNC40L7QtNC40YfQvdC+0YHRgtGM0L3QvtC80LXRgNCw0LHQuNC30L3QtdGB0L/RgNC+0YbQtdGB0YHQsCDQv9C10YDQuNC+0LTQuNGH0L3QvtGB0YLRjNC90L7QvNC10YDQsNC00L7QutGD0LzQtdC90YLQsCDQv9C10YDQuNC+0LTQuNGH0L3QvtGB0YLRjNGA0LXQs9C40YHRgtGA0LDRgNCw0YHRh9C10YLQsCDQv9C10YDQuNC+0LTQuNGH0L3QvtGB0YLRjNGA0LXQs9C40YHRgtGA0LDRgdCy0LXQtNC10L3QuNC5ICcgK1xuICAn0L/QvtCy0YLQvtGA0L3QvtC10LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQstC+0LfQstGA0LDRidCw0LXQvNGL0YXQt9C90LDRh9C10L3QuNC5INC/0L7Qu9C90L7RgtC10LrRgdGC0L7QstGL0LnQv9C+0LjRgdC60L/RgNC40LLQstC+0LTQtdC/0L7RgdGC0YDQvtC60LUg0L/RgNC40L3QsNC00LvQtdC20L3QvtGB0YLRjNC+0LHRitC10LrRgtCwINC/0YDQvtCy0LXQtNC10L3QuNC1ICcgK1xuICAn0YDQsNC30LTQtdC70LXQvdC40LXQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC40L7QsdGJ0LXQs9C+0YDQtdC60LLQuNC30LjRgtCwINGA0LDQt9C00LXQu9C10L3QuNC10LTQsNC90L3Ri9GF0L7QsdGJ0LXQs9C+0YDQtdC60LLQuNC30LjRgtCwINGA0LDQt9C00LXQu9C10L3QuNC10YDQsNGB0YjQuNGA0LXQvdC40LnQutC+0L3RhNC40LPRg9GA0LDRhtC40LjQvtCx0YnQtdCz0L7RgNC10LrQstC40LfQuNGC0LAgJytcbiAgJ9GA0LXQttC40LzQsNCy0YLQvtC90YPQvNC10YDQsNGG0LjQuNC+0LHRitC10LrRgtC+0LIg0YDQtdC20LjQvNC30LDQv9C40YHQuNGA0LXQs9C40YHRgtGA0LAg0YDQtdC20LjQvNC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGP0LzQvtC00LDQu9GM0L3QvtGB0YLQuCAnICtcbiAgJ9GA0LXQttC40LzQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRj9GB0LjQvdGF0YDQvtC90L3Ri9GF0LLRi9C30L7QstC+0LLRgNCw0YHRiNC40YDQtdC90LjQudC/0LvQsNGC0YTQvtGA0LzRi9C40LLQvdC10YjQvdC40YXQutC+0LzQv9C+0L3QtdC90YIg0YDQtdC20LjQvNC/0L7QstGC0L7RgNC90L7Qs9C+0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y/RgdC10LDQvdGB0L7QsiAnICtcbiAgJ9GA0LXQttC40LzQv9C+0LvRg9GH0LXQvdC40Y/QtNCw0L3QvdGL0YXQstGL0LHQvtGA0LDQv9GA0LjQstCy0L7QtNC10L/QvtGB0YLRgNC+0LrQtSDRgNC10LbQuNC80YHQvtCy0LzQtdGB0YLQuNC80L7RgdGC0Lgg0YDQtdC20LjQvNGB0L7QstC80LXRgdGC0LjQvNC+0YHRgtC40LjQvdGC0LXRgNGE0LXQudGB0LAgJyArXG4gICfRgNC10LbQuNC80YPQv9GA0LDQstC70LXQvdC40Y/QsdC70L7QutC40YDQvtCy0LrQvtC50LTQsNC90L3Ri9GF0L/QvtGD0LzQvtC70YfQsNC90LjRjiDRgdC10YDQuNC40LrQvtC00L7QstC/0LvQsNC90LDQstC40LTQvtCy0YXQsNGA0LDQutGC0LXRgNC40YHRgtC40Log0YHQtdGA0LjQuNC60L7QtNC+0LLQv9C70LDQvdCw0YHRh9C10YLQvtCyICcgK1xuICAn0YHQtdGA0LjQuNC60L7QtNC+0LLRgdC/0YDQsNCy0L7Rh9C90LjQutCwINGB0L7Qt9C00LDQvdC40LXQv9GA0LjQstCy0L7QtNC1INGB0L/QvtGB0L7QsdCy0YvQsdC+0YDQsCDRgdC/0L7RgdC+0LHQv9C+0LjRgdC60LDRgdGC0YDQvtC60LjQv9GA0LjQstCy0L7QtNC10L/QvtGB0YLRgNC+0LrQtSDRgdC/0L7RgdC+0LHRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPICcgK1xuICAn0YLQuNC/0LTQsNC90L3Ri9GF0YLQsNCx0LvQuNGG0YvQstC90LXRiNC90LXQs9C+0LjRgdGC0L7Rh9C90LjQutCw0LTQsNC90L3Ri9GFINGC0LjQv9C60L7QtNCw0L/Qu9Cw0L3QsNCy0LjQtNC+0LLRgNCw0YHRh9C10YLQsCDRgtC40L/QutC+0LTQsNGB0L/RgNCw0LLQvtGH0L3QuNC60LAg0YLQuNC/0LzQsNC60LXRgtCwINGC0LjQv9C90L7QvNC10YDQsNCx0LjQt9C90LXRgdC/0YDQvtGG0LXRgdGB0LAgJyArXG4gICfRgtC40L/QvdC+0LzQtdGA0LDQtNC+0LrRg9C80LXQvdGC0LAg0YLQuNC/0L3QvtC80LXRgNCw0LfQsNC00LDRh9C4INGC0LjQv9GE0L7RgNC80Ysg0YPQtNCw0LvQtdC90LjQtdC00LLQuNC20LXQvdC40LkgJztcblxuICAvLyB2OCDRgdC40YHRgtC10LzQvdGL0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPIC0g0YDQsNC30L3Ri9C1ID09PiBjbGFzc1xuICB2YXIgdjhfc3lzdGVtX2VudW1zX2RpZmZlcmVudHMgPVxuICAn0LLQsNC20L3QvtGB0YLRjNC/0YDQvtCx0LvQtdC80YvQv9GA0LjQvNC10L3QtdC90LjRj9GA0LDRgdGI0LjRgNC10L3QuNGP0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4INCy0LDRgNC40LDQvdGC0LjQvdGC0LXRgNGE0LXQudGB0LDQutC70LjQtdC90YLRgdC60L7Qs9C+0L/RgNC40LvQvtC20LXQvdC40Y8g0LLQsNGA0LjQsNC90YLQvNCw0YHRiNGC0LDQsdCw0YTQvtGA0LzQutC70LjQtdC90YLRgdC60L7Qs9C+0L/RgNC40LvQvtC20LXQvdC40Y8gJyArXG4gICfQstCw0YDQuNCw0L3RgtC+0YHQvdC+0LLQvdC+0LPQvtGI0YDQuNGE0YLQsNC60LvQuNC10L3RgtGB0LrQvtCz0L7Qv9GA0LjQu9C+0LbQtdC90LjRjyDQstCw0YDQuNCw0L3RgtGB0YLQsNC90LTQsNGA0YLQvdC+0LPQvtC/0LXRgNC40L7QtNCwINCy0LDRgNC40LDQvdGC0YHRgtCw0L3QtNCw0YDRgtC90L7QudC00LDRgtGL0L3QsNGH0LDQu9CwINCy0LjQtNCz0YDQsNC90LjRhtGLINCy0LjQtNC60LDRgNGC0LjQvdC60LggJyArXG4gICfQstC40LTQvtGC0L7QsdGA0LDQttC10L3QuNGP0L/QvtC70L3QvtGC0LXQutGB0YLQvtCy0L7Qs9C+0L/QvtC40YHQutCwINCy0LjQtNGA0LDQvNC60Lgg0LLQuNC00YHRgNCw0LLQvdC10L3QuNGPINCy0LjQtNGG0LLQtdGC0LAg0LLQuNC00YfQuNGB0LvQvtCy0L7Qs9C+0LfQvdCw0YfQtdC90LjRjyDQstC40LTRiNGA0LjRhNGC0LAg0LTQvtC/0YPRgdGC0LjQvNCw0Y/QtNC70LjQvdCwINC00L7Qv9GD0YHRgtC40LzRi9C50LfQvdCw0LogJyArXG4gICfQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtWJ5dGVvcmRlcm1hcmsg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQvNC10YLQsNC00LDQvdC90YvRhdC/0L7Qu9C90L7RgtC10LrRgdGC0L7QstC+0LPQvtC/0L7QuNGB0LrQsCDQuNGB0YLQvtGH0L3QuNC60YDQsNGB0YjQuNGA0LXQvdC40LnQutC+0L3RhNC40LPRg9GA0LDRhtC40Lgg0LrQu9Cw0LLQuNGI0LAg0LrQvtC00LLQvtC30LLRgNCw0YLQsNC00LjQsNC70L7Qs9CwICcgK1xuICAn0LrQvtC00LjRgNC+0LLQutCweGJhc2Ug0LrQvtC00LjRgNC+0LLQutCw0YLQtdC60YHRgtCwINC90LDQv9GA0LDQstC70LXQvdC40LXQv9C+0LjRgdC60LAg0L3QsNC/0YDQsNCy0LvQtdC90LjQtdGB0L7RgNGC0LjRgNC+0LLQutC4INC+0LHQvdC+0LLQu9C10L3QuNC10L/RgNC10LTQvtC/0YDQtdC00LXQu9C10L3QvdGL0YXQtNCw0L3QvdGL0YUg0L7QsdC90L7QstC70LXQvdC40LXQv9GA0LjQuNC30LzQtdC90LXQvdC40LjQtNCw0L3QvdGL0YUgJyArXG4gICfQvtGC0L7QsdGA0LDQttC10L3QuNC10L/QsNC90LXQu9C40YDQsNC30LTQtdC70L7QsiDQv9GA0L7QstC10YDQutCw0LfQsNC/0L7Qu9C90LXQvdC40Y8g0YDQtdC20LjQvNC00LjQsNC70L7Qs9Cw0LLQvtC/0YDQvtGBINGA0LXQttC40LzQt9Cw0L/Rg9GB0LrQsNC60LvQuNC10L3RgtGB0LrQvtCz0L7Qv9GA0LjQu9C+0LbQtdC90LjRjyDRgNC10LbQuNC80L7QutGA0YPQs9C70LXQvdC40Y8g0YDQtdC20LjQvNC+0YLQutGA0YvRgtC40Y/RhNC+0YDQvNC/0YDQuNC70L7QttC10L3QuNGPICcgK1xuICAn0YDQtdC20LjQvNC/0L7Qu9C90L7RgtC10LrRgdGC0L7QstC+0LPQvtC/0L7QuNGB0LrQsCDRgdC60L7RgNC+0YHRgtGM0LrQu9C40LXQvdGC0YHQutC+0LPQvtGB0L7QtdC00LjQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjQtdCy0L3QtdGI0L3QtdCz0L7QuNGB0YLQvtGH0L3QuNC60LDQtNCw0L3QvdGL0YUg0YHQvtGB0YLQvtGP0L3QuNC10L7QsdC90L7QstC70LXQvdC40Y/QutC+0L3RhNC40LPRg9GA0LDRhtC40LjQsdCw0LfRi9C00LDQvdC90YvRhSAnICtcbiAgJ9GB0L/QvtGB0L7QsdCy0YvQsdC+0YDQsNGB0LXRgNGC0LjRhNC40LrQsNGC0LB3aW5kb3dzINGB0L/QvtGB0L7QsdC60L7QtNC40YDQvtCy0LDQvdC40Y/RgdGC0YDQvtC60Lgg0YHRgtCw0YLRg9GB0YHQvtC+0LHRidC10L3QuNGPINGC0LjQv9Cy0L3QtdGI0L3QtdC50LrQvtC80L/QvtC90LXQvdGC0Ysg0YLQuNC/0L/Qu9Cw0YLRhNC+0YDQvNGLINGC0LjQv9C/0L7QstC10LTQtdC90LjRj9C60LvQsNCy0LjRiNC4ZW50ZXIgJyArXG4gICfRgtC40L/RjdC70LXQvNC10L3RgtCw0LjQvdGE0L7RgNC80LDRhtC40LjQvtCy0YvQv9C+0LvQvdC10L3QuNC40L7QsdC90L7QstC70LXQvdC40Y/QutC+0L3RhNC40LPRg9GA0LDRhtC40LjQsdCw0LfRi9C00LDQvdC90YvRhSDRg9GA0L7QstC10L3RjNC40LfQvtC70Y/RhtC40LjRgtGA0LDQvdC30LDQutGG0LjQuSDRhdC10YjRhNGD0L3QutGG0LjRjyDRh9Cw0YHRgtC40LTQsNGC0YsnO1xuXG4gIC8vIGNsYXNzOiDQstGB0YLRgNC+0LXQvdC90YvQtSDQvdCw0LHQvtGA0Ysg0LfQvdCw0YfQtdC90LjQuSwg0YHQuNGB0YLQtdC80L3Ri9C1INC/0LXRgNC10YfQuNGB0LvQtdC90LjRjyAo0YHQvtC00LXRgNC20LDRgiDQtNC+0YfQtdGA0L3QuNC1INC30L3QsNGH0LXQvdC40Y8sINC+0LHRgNCw0YnQtdC90LjRjyDQuiDQutC+0YLQvtGA0YvQvCDRh9C10YDQtdC3INGA0LDQt9GL0LzQtdC90L7QstCw0L3QuNC1KVxuICB2YXIgQ0xBU1MgPVxuICB2OF9zeXN0ZW1fc2V0c19vZl92YWx1ZXMgK1xuICB2OF9zeXN0ZW1fZW51bXNfaW50ZXJmYWNlICtcbiAgdjhfc3lzdGVtX2VudW1zX29iamVjdHNfcHJvcGVydGllcyArXG4gIHY4X3N5c3RlbV9lbnVtc19leGNoYW5nZV9wbGFucyArXG4gIHY4X3N5c3RlbV9lbnVtc190YWJ1bGFyX2RvY3VtZW50ICtcbiAgdjhfc3lzdGVtX2VudW1zX3NoZWR1bGVyICtcbiAgdjhfc3lzdGVtX2VudW1zX2Zvcm1hdHRlZF9kb2N1bWVudCArXG4gIHY4X3N5c3RlbV9lbnVtc19xdWVyeSArXG4gIHY4X3N5c3RlbV9lbnVtc19yZXBvcnRfYnVpbGRlciArXG4gIHY4X3N5c3RlbV9lbnVtc19maWxlcyArXG4gIHY4X3N5c3RlbV9lbnVtc19xdWVyeV9idWlsZGVyICtcbiAgdjhfc3lzdGVtX2VudW1zX2RhdGFfYW5hbHlzaXMgK1xuICB2OF9zeXN0ZW1fZW51bXNfeG1sX2pzb25feHNfZG9tX3hkdG9fd3MgK1xuICB2OF9zeXN0ZW1fZW51bXNfZGF0YV9jb21wb3NpdGlvbl9zeXN0ZW0gK1xuICB2OF9zeXN0ZW1fZW51bXNfZW1haWwgK1xuICB2OF9zeXN0ZW1fZW51bXNfbG9nYm9vayArXG4gIHY4X3N5c3RlbV9lbnVtc19jcnlwdG9ncmFwaHkgK1xuICB2OF9zeXN0ZW1fZW51bXNfemlwICtcbiAgdjhfc3lzdGVtX2VudW1zX290aGVyICtcbiAgdjhfc3lzdGVtX2VudW1zX3JlcXVlc3Rfc2NoZW1hICtcbiAgdjhfc3lzdGVtX2VudW1zX3Byb3BlcnRpZXNfb2ZfbWV0YWRhdGFfb2JqZWN0cyArXG4gIHY4X3N5c3RlbV9lbnVtc19kaWZmZXJlbnRzO1xuXG4gIC8vIHY4INC+0LHRidC40LUg0L7QsdGK0LXQutGC0YsgKNGDINC+0LHRitC10LrRgtC+0LIg0LXRgdGC0Ywg0LrQvtC90YHRgtGA0YPQutGC0L7RgCwg0Y3QutC30LXQvNC/0LvRj9GA0Ysg0YHQvtC30LTQsNGO0YLRgdGPINC80LXRgtC+0LTQvtC8INCd0J7QktCr0JkpID09PiB0eXBlXG4gIHZhciB2OF9zaGFyZWRfb2JqZWN0ID1cbiAgJ2NvbdC+0LHRitC10LrRgiBmdHDRgdC+0LXQtNC40L3QtdC90LjQtSBodHRw0LfQsNC/0YDQvtGBIGh0dHDRgdC10YDQstC40YHQvtGC0LLQtdGCIGh0dHDRgdC+0LXQtNC40L3QtdC90LjQtSB3c9C+0L/RgNC10LTQtdC70LXQvdC40Y8gd3PQv9GA0L7QutGB0LggeGJhc2Ug0LDQvdCw0LvQuNC30LTQsNC90L3Ri9GFINCw0L3QvdC+0YLQsNGG0LjRj3hzICcgK1xuICAn0LHQu9C+0LrQuNGA0L7QstC60LDQtNCw0L3QvdGL0YUg0LHRg9GE0LXRgNC00LLQvtC40YfQvdGL0YXQtNCw0L3QvdGL0YUg0LLQutC70Y7Rh9C10L3QuNC1eHMg0LLRi9GA0LDQttC10L3QuNC10LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LPQtdC90LXRgNCw0YLQvtGA0YHQu9GD0YfQsNC50L3Ri9GF0YfQuNGB0LXQuyDQs9C10L7Qs9GA0LDRhNC40YfQtdGB0LrQsNGP0YHRhdC10LzQsCAnICtcbiAgJ9Cz0LXQvtCz0YDQsNGE0LjRh9C10YHQutC40LXQutC+0L7RgNC00LjQvdCw0YLRiyDQs9GA0LDRhNC40YfQtdGB0LrQsNGP0YHRhdC10LzQsCDQs9GA0YPQv9C/0LDQvNC+0LTQtdC70Lh4cyDQtNCw0L3QvdGL0LXRgNCw0YHRiNC40YTRgNC+0LLQutC40LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LTQstC+0LjRh9C90YvQtdC00LDQvdC90YvQtSDQtNC10L3QtNGA0L7Qs9GA0LDQvNC80LAgJyArXG4gICfQtNC40LDQs9GA0LDQvNC80LAg0LTQuNCw0LPRgNCw0LzQvNCw0LPQsNC90YLQsCDQtNC40LDQu9C+0LPQstGL0LHQvtGA0LDRhNCw0LnQu9CwINC00LjQsNC70L7Qs9Cy0YvQsdC+0YDQsNGG0LLQtdGC0LAg0LTQuNCw0LvQvtCz0LLRi9Cx0L7RgNCw0YjRgNC40YTRgtCwINC00LjQsNC70L7Qs9GA0LDRgdC/0LjRgdCw0L3QuNGP0YDQtdCz0LvQsNC80LXQvdGC0L3QvtCz0L7Qt9Cw0LTQsNC90LjRjyAnICtcbiAgJ9C00LjQsNC70L7Qs9GA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y/RgdGC0LDQvdC00LDRgNGC0L3QvtCz0L7Qv9C10YDQuNC+0LTQsCDQtNC40LDQv9Cw0LfQvtC9INC00L7QutGD0LzQtdC90YJkb20g0LTQvtC60YPQvNC10L3Rgmh0bWwg0LTQvtC60YPQvNC10L3RgtCw0YbQuNGPeHMg0LTQvtGB0YLQsNCy0LvRj9C10LzQvtC10YPQstC10LTQvtC80LvQtdC90LjQtSAnICtcbiAgJ9C30LDQv9C40YHRjGRvbSDQt9Cw0L/QuNGB0YxmYXN0aW5mb3NldCDQt9Cw0L/QuNGB0YxodG1sINC30LDQv9C40YHRjGpzb24g0LfQsNC/0LjRgdGMeG1sINC30LDQv9C40YHRjHppcNGE0LDQudC70LAg0LfQsNC/0LjRgdGM0LTQsNC90L3Ri9GFINC30LDQv9C40YHRjNGC0LXQutGB0YLQsCDQt9Cw0L/QuNGB0YzRg9C30LvQvtCyZG9tICcgK1xuICAn0LfQsNC/0YDQvtGBINC30LDRidC40YnQtdC90L3QvtC10YHQvtC10LTQuNC90LXQvdC40LVvcGVuc3NsINC30L3QsNGH0LXQvdC40Y/Qv9C+0LvQtdC50YDQsNGB0YjQuNGE0YDQvtCy0LrQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINC40LfQstC70LXRh9C10L3QuNC10YLQtdC60YHRgtCwINC40LzQv9C+0YDRgnhzINC40L3RgtC10YDQvdC10YLQv9C+0YfRgtCwICcgK1xuICAn0LjQvdGC0LXRgNC90LXRgtC/0L7Rh9GC0L7QstC+0LXRgdC+0L7QsdGJ0LXQvdC40LUg0LjQvdGC0LXRgNC90LXRgtC/0L7Rh9GC0L7QstGL0LnQv9GA0L7RhNC40LvRjCDQuNC90YLQtdGA0L3QtdGC0L/RgNC+0LrRgdC4INC40L3RgtC10YDQvdC10YLRgdC+0LXQtNC40L3QtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjRj9C00LvRj9C/0YDQuNC70L7QttC10L3QuNGPeHMgJyArXG4gICfQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdCw0YLRgNC40LHRg9GC0LB4cyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdGB0L7QsdGL0YLQuNGP0LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INC40YHRgtC+0YfQvdC40LrQtNC+0YHRgtGD0L/QvdGL0YXQvdCw0YHRgtGA0L7QtdC60LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUgJyArXG4gICfQuNGC0LXRgNCw0YLQvtGA0YPQt9C70L7QsmRvbSDQutCw0YDRgtC40L3QutCwINC60LLQsNC70LjRhNC40LrQsNGC0L7RgNGL0LTQsNGC0Ysg0LrQstCw0LvQuNGE0LjQutCw0YLQvtGA0YvQtNCy0L7QuNGH0L3Ri9GF0LTQsNC90L3Ri9GFINC60LLQsNC70LjRhNC40LrQsNGC0L7RgNGL0YHRgtGA0L7QutC4INC60LLQsNC70LjRhNC40LrQsNGC0L7RgNGL0YfQuNGB0LvQsCAnICtcbiAgJ9C60L7QvNC/0L7QvdC+0LLRidC40LrQvNCw0LrQtdGC0LDQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDQutC+0LzQv9C+0L3QvtCy0YnQuNC60L3QsNGB0YLRgNC+0LXQutC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINC60L7QvdGB0YLRgNGD0LrRgtC+0YDQvNCw0LrQtdGC0LDQvtGE0L7RgNC80LvQtdC90LjRj9C60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0LrQvtC90YHRgtGA0YPQutGC0L7RgNC90LDRgdGC0YDQvtC10LrQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDQutC+0L3RgdGC0YDRg9C60YLQvtGA0YTQvtGA0LzQsNGC0L3QvtC50YHRgtGA0L7QutC4INC70LjQvdC40Y8g0LzQsNC60LXRgtC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINC80LDQutC10YLQvtCx0LvQsNGB0YLQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0LzQsNC60LXRgtC+0YTQvtGA0LzQu9C10L3QuNGP0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0LzQsNGB0LrQsHhzINC80LXQvdC10LTQttC10YDQutGA0LjQv9GC0L7Qs9GA0LDRhNC40Lgg0L3QsNCx0L7RgNGB0YXQtdC8eG1sINC90LDRgdGC0YDQvtC50LrQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFINC90LDRgdGC0YDQvtC50LrQuNGB0LXRgNC40LDQu9C40LfQsNGG0LjQuGpzb24gJyArXG4gICfQvtCx0YDQsNCx0L7RgtC60LDQutCw0YDRgtC40L3QvtC6INC+0LHRgNCw0LHQvtGC0LrQsNGA0LDRgdGI0LjRhNGA0L7QstC60LjQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDQvtCx0YXQvtC00LTQtdGA0LXQstCwZG9tINC+0LHRitGP0LLQu9C10L3QuNC10LDRgtGA0LjQsdGD0YLQsHhzINC+0LHRitGP0LLQu9C10L3QuNC10L3QvtGC0LDRhtC40Lh4cyAnICtcbiAgJ9C+0LHRitGP0LLQu9C10L3QuNC10Y3Qu9C10LzQtdC90YLQsHhzINC+0L/QuNGB0LDQvdC40LXQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRj9GB0L7QsdGL0YLQuNGP0LTQvtGB0YLRg9C/0LbRg9GA0L3QsNC70LDRgNC10LPQuNGB0YLRgNCw0YbQuNC4ICcgK1xuICAn0L7Qv9C40YHQsNC90LjQtdC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGP0YHQvtCx0YvRgtC40Y/QvtGC0LrQsNC30LLQtNC+0YHRgtGD0L/QtdC20YPRgNC90LDQu9Cw0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQvtC/0LjRgdCw0L3QuNC10L7QsdGA0LDQsdC+0YLQutC40YDQsNGB0YjQuNGE0YDQvtCy0LrQuNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0L7Qv9C40YHQsNC90LjQtdC/0LXRgNC10LTQsNCy0LDQtdC80L7Qs9C+0YTQsNC50LvQsCDQvtC/0LjRgdCw0L3QuNC10YLQuNC/0L7QsiDQvtC/0YDQtdC00LXQu9C10L3QuNC10LPRgNGD0L/Qv9GL0LDRgtGA0LjQsdGD0YLQvtCyeHMg0L7Qv9GA0LXQtNC10LvQtdC90LjQtdCz0YDRg9C/0L/Ri9C80L7QtNC10LvQuHhzICcgK1xuICAn0L7Qv9GA0LXQtNC10LvQtdC90LjQtdC+0LPRgNCw0L3QuNGH0LXQvdC40Y/QuNC00LXQvdGC0LjRh9C90L7RgdGC0Lh4cyDQvtC/0YDQtdC00LXQu9C10L3QuNC10L/RgNC+0YHRgtC+0LPQvtGC0LjQv9CweHMg0L7Qv9GA0LXQtNC10LvQtdC90LjQtdGB0L7RgdGC0LDQstC90L7Qs9C+0YLQuNC/0LB4cyDQvtC/0YDQtdC00LXQu9C10L3QuNC10YLQuNC/0LDQtNC+0LrRg9C80LXQvdGC0LBkb20gJyArXG4gICfQvtC/0YDQtdC00LXQu9C10L3QuNGPeHBhdGh4cyDQvtGC0LHQvtGA0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0L/QsNC60LXRgtC+0YLQvtCx0YDQsNC20LDQtdC80YvRhdC00L7QutGD0LzQtdC90YLQvtCyINC/0LDRgNCw0LzQtdGC0YDQstGL0LHQvtGA0LAg0L/QsNGA0LDQvNC10YLRgNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GFICcgK1xuICAn0L/QsNGA0LDQvNC10YLRgNGL0LfQsNC/0LjRgdC4anNvbiDQv9Cw0YDQsNC80LXRgtGA0YvQt9Cw0L/QuNGB0Lh4bWwg0L/QsNGA0LDQvNC10YLRgNGL0YfRgtC10L3QuNGPeG1sINC/0LXRgNC10L7Qv9GA0LXQtNC10LvQtdC90LjQtXhzINC/0LvQsNC90LjRgNC+0LLRidC40Log0L/QvtC70LXQsNC90LDQu9C40LfQsNC00LDQvdC90YvRhSAnICtcbiAgJ9C/0L7Qu9C10LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YUg0L/QvtGB0YLRgNC+0LjRgtC10LvRjGRvbSDQv9C+0YHRgtGA0L7QuNGC0LXQu9GM0LfQsNC/0YDQvtGB0LAg0L/QvtGB0YLRgNC+0LjRgtC10LvRjNC+0YLRh9C10YLQsCDQv9C+0YHRgtGA0L7QuNGC0LXQu9GM0L7RgtGH0LXRgtCw0LDQvdCw0LvQuNC30LDQtNCw0L3QvdGL0YUgJyArXG4gICfQv9C+0YHRgtGA0L7QuNGC0LXQu9GM0YHRhdC10Lx4bWwg0L/QvtGC0L7QuiDQv9C+0YLQvtC60LLQv9Cw0LzRj9GC0Lgg0L/QvtGH0YLQsCDQv9C+0YfRgtC+0LLQvtC10YHQvtC+0LHRidC10L3QuNC1INC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LV4c2wg0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtdC60LrQsNC90L7QvdC40YfQtdGB0LrQvtC80YN4bWwgJyArXG4gICfQv9GA0L7RhtC10YHRgdC+0YDQstGL0LLQvtC00LDRgNC10LfRg9C70YzRgtCw0YLQsNC60L7QvNC/0L7QvdC+0LLQutC40LTQsNC90L3Ri9GF0LLQutC+0LvQu9C10LrRhtC40Y7Qt9C90LDRh9C10L3QuNC5INC/0YDQvtGG0LXRgdGB0L7RgNCy0YvQstC+0LTQsNGA0LXQt9GD0LvRjNGC0LDRgtCw0LrQvtC80L/QvtC90L7QstC60LjQtNCw0L3QvdGL0YXQstGC0LDQsdC70LjRh9C90YvQudC00L7QutGD0LzQtdC90YIgJyArXG4gICfQv9GA0L7RhtC10YHRgdC+0YDQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgNCw0LfRi9C80LXQvdC+0LLQsNGC0LXQu9GM0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC40LzQtdC9ZG9tINGA0LDQvNC60LAg0YDQsNGB0L/QuNGB0LDQvdC40LXRgNC10LPQu9Cw0LzQtdC90YLQvdC+0LPQvtC30LDQtNCw0L3QuNGPINGA0LDRgdGI0LjRgNC10L3QvdC+0LXQuNC80Y94bWwgJyArXG4gICfRgNC10LfRg9C70YzRgtCw0YLRh9GC0LXQvdC40Y/QtNCw0L3QvdGL0YUg0YHQstC+0LTQvdCw0Y/QtNC40LDQs9GA0LDQvNC80LAg0YHQstGP0LfRjNC/0LDRgNCw0LzQtdGC0YDQsNCy0YvQsdC+0YDQsCDRgdCy0Y/Qt9GM0L/QvtGC0LjQv9GDINGB0LLRj9C30YzQv9C+0YLQuNC/0YPQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgdC10YDQuNCw0LvQuNC30LDRgtC+0YB4ZHRvICcgK1xuICAn0YHQtdGA0YLQuNGE0LjQutCw0YLQutC70LjQtdC90YLQsHdpbmRvd3Mg0YHQtdGA0YLQuNGE0LjQutCw0YLQutC70LjQtdC90YLQsNGE0LDQudC7INGB0LXRgNGC0LjRhNC40LrQsNGC0LrRgNC40L/RgtC+0LPRgNCw0YTQuNC4INGB0LXRgNGC0LjRhNC40LrQsNGC0YvRg9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNGF0YbQtdC90YLRgNC+0LJ3aW5kb3dzICcgK1xuICAn0YHQtdGA0YLQuNGE0LjQutCw0YLRi9GD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40YXRhtC10L3RgtGA0L7QstGE0LDQudC7INGB0LbQsNGC0LjQtdC00LDQvdC90YvRhSDRgdC40YHRgtC10LzQvdCw0Y/QuNC90YTQvtGA0LzQsNGG0LjRjyDRgdC+0L7QsdGJ0LXQvdC40LXQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0YHQvtGH0LXRgtCw0L3QuNC10LrQu9Cw0LLQuNGIICcgK1xuICAn0YHRgNCw0LLQvdC10L3QuNC10LfQvdCw0YfQtdC90LjQuSDRgdGC0LDQvdC00LDRgNGC0L3QsNGP0LTQsNGC0LDQvdCw0YfQsNC70LAg0YHRgtCw0L3QtNCw0YDRgtC90YvQudC/0LXRgNC40L7QtCDRgdGF0LXQvNCweG1sINGB0YXQtdC80LDQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSDRgtCw0LHQu9C40YfQvdGL0LnQtNC+0LrRg9C80LXQvdGCICcgK1xuICAn0YLQtdC60YHRgtC+0LLRi9C50LTQvtC60YPQvNC10L3RgiDRgtC10YHRgtC40YDRg9C10LzQvtC10L/RgNC40LvQvtC20LXQvdC40LUg0YLQuNC/0LTQsNC90L3Ri9GFeG1sINGD0L3QuNC60LDQu9GM0L3Ri9C50LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNCx0YDQuNC60LB4ZHRvINGE0LDQudC7INGE0LDQudC70L7QstGL0LnQv9C+0YLQvtC6ICcgK1xuICAn0YTQsNGB0LXRgtC00LvQuNC90Yt4cyDRhNCw0YHQtdGC0LrQvtC70LjRh9C10YHRgtCy0LDRgNCw0LfRgNGP0LTQvtCy0LTRgNC+0LHQvdC+0LnRh9Cw0YHRgtC4eHMg0YTQsNGB0LXRgtC80LDQutGB0LjQvNCw0LvRjNC90L7Qs9C+0LLQutC70Y7Rh9Cw0Y7RidC10LPQvtC30L3QsNGH0LXQvdC40Y94cyAnICtcbiAgJ9GE0LDRgdC10YLQvNCw0LrRgdC40LzQsNC70YzQvdC+0LPQvtC40YHQutC70Y7Rh9Cw0Y7RidC10LPQvtC30L3QsNGH0LXQvdC40Y94cyDRhNCw0YHQtdGC0LzQsNC60YHQuNC80LDQu9GM0L3QvtC50LTQu9C40L3Ri3hzINGE0LDRgdC10YLQvNC40L3QuNC80LDQu9GM0L3QvtCz0L7QstC60LvRjtGH0LDRjtGJ0LXQs9C+0LfQvdCw0YfQtdC90LjRj3hzICcgK1xuICAn0YTQsNGB0LXRgtC80LjQvdC40LzQsNC70YzQvdC+0LPQvtC40YHQutC70Y7Rh9Cw0Y7RidC10LPQvtC30L3QsNGH0LXQvdC40Y94cyDRhNCw0YHQtdGC0LzQuNC90LjQvNCw0LvRjNC90L7QudC00LvQuNC90Yt4cyDRhNCw0YHQtdGC0L7QsdGA0LDQt9GG0LB4cyDRhNCw0YHQtdGC0L7QsdGJ0LXQs9C+0LrQvtC70LjRh9C10YHRgtCy0LDRgNCw0LfRgNGP0LTQvtCyeHMgJyArXG4gICfRhNCw0YHQtdGC0L/QtdGA0LXRh9C40YHQu9C10L3QuNGPeHMg0YTQsNGB0LXRgtC/0YDQvtCx0LXQu9GM0L3Ri9GF0YHQuNC80LLQvtC70L7QsnhzINGE0LjQu9GM0YLRgNGD0LfQu9C+0LJkb20g0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNC90L3QsNGP0YHRgtGA0L7QutCwINGE0L7RgNC80LDRgtC40YDQvtCy0LDQvdC90YvQudC00L7QutGD0LzQtdC90YIgJyArXG4gICfRhNGA0LDQs9C80LXQvdGCeHMg0YXQtdGI0LjRgNC+0LLQsNC90LjQtdC00LDQvdC90YvRhSDRhdGA0LDQvdC40LvQuNGJ0LXQt9C90LDRh9C10L3QuNGPINGG0LLQtdGCINGH0YLQtdC90LjQtWZhc3RpbmZvc2V0INGH0YLQtdC90LjQtWh0bWwg0YfRgtC10L3QuNC1anNvbiDRh9GC0LXQvdC40LV4bWwg0YfRgtC10L3QuNC1emlw0YTQsNC50LvQsCAnICtcbiAgJ9GH0YLQtdC90LjQtdC00LDQvdC90YvRhSDRh9GC0LXQvdC40LXRgtC10LrRgdGC0LAg0YfRgtC10L3QuNC10YPQt9C70L7QsmRvbSDRiNGA0LjRhNGCINGN0LvQtdC80LXQvdGC0YDQtdC30YPQu9GM0YLQsNGC0LDQutC+0LzQv9C+0L3QvtCy0LrQuNC00LDQvdC90YvRhSAnO1xuXG4gIC8vIHY4INGD0L3QuNCy0LXRgNGB0LDQu9GM0L3Ri9C1INC60L7Qu9C70LXQutGG0LjQuCDQt9C90LDRh9C10L3QuNC5ID09PiB0eXBlXG4gIHZhciB2OF91bml2ZXJzYWxfY29sbGVjdGlvbiA9XG4gICdjb21zYWZlYXJyYXkg0LTQtdGA0LXQstC+0LfQvdCw0YfQtdC90LjQuSDQvNCw0YHRgdC40LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC1INGB0L/QuNGB0L7QutC30L3QsNGH0LXQvdC40Lkg0YHRgtGA0YPQutGC0YPRgNCwINGC0LDQsdC70LjRhtCw0LfQvdCw0YfQtdC90LjQuSDRhNC40LrRgdC40YDQvtCy0LDQvdC90LDRj9GB0YLRgNGD0LrRgtGD0YDQsCAnICtcbiAgJ9GE0LjQutGB0LjRgNC+0LLQsNC90L3QvtC10YHQvtC+0YLQstC10YLRgdGC0LLQuNC1INGE0LjQutGB0LjRgNC+0LLQsNC90L3Ri9C50LzQsNGB0YHQuNCyICc7XG5cbiAgLy8gdHlwZSA6INCy0YHRgtGA0L7QtdC90L3Ri9C1INGC0LjQv9GLXG4gIHZhciBUWVBFID1cbiAgdjhfc2hhcmVkX29iamVjdCArXG4gIHY4X3VuaXZlcnNhbF9jb2xsZWN0aW9uO1xuXG4gIC8vIGxpdGVyYWwgOiDQv9GA0LjQvNC40YLQuNCy0L3Ri9C1INGC0LjQv9GLXG4gIHZhciBMSVRFUkFMID0gJ251bGwg0LjRgdGC0LjQvdCwINC70L7QttGMINC90LXQvtC/0YDQtdC00LXQu9C10L3Qvic7XG4gIFxuICAvLyBudW1iZXIgOiDRh9C40YHQu9CwXG4gIHZhciBOVU1CRVJTID0gaGxqcy5pbmhlcml0KGhsanMuTlVNQkVSX01PREUpO1xuXG4gIC8vIHN0cmluZyA6INGB0YLRgNC+0LrQuFxuICB2YXIgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCJ8XFxcXHwnLCBlbmQ6ICdcInwkJyxcbiAgICBjb250YWluczogW3tiZWdpbjogJ1wiXCInfV1cbiAgfTtcblxuICAvLyBudW1iZXIgOiDQtNCw0YLRi1xuICB2YXIgREFURSA9IHtcbiAgICBiZWdpbjogXCInXCIsIGVuZDogXCInXCIsIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxkezR9KFtcXFxcLlxcXFxcXFxcLzotXT9cXFxcZHsyfSl7MCw1fSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFxuICAvLyBjb21tZW50IDog0LrQvtC80LzQtdC90YLQsNGA0LjQuFxuICB2YXIgQ09NTUVOVFMgPSBobGpzLmluaGVyaXQoaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFKTtcbiAgXG4gIC8vIG1ldGEgOiDQuNC90YHRgtGA0YPQutGG0LjQuCDQv9GA0LXQv9GA0L7RhtC10YHRgdC+0YDQsCwg0LTQuNGA0LXQutGC0LjQstGLINC60L7QvNC/0LjQu9GP0YbQuNC4XG4gIHZhciBNRVRBID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGxleGVtZXM6IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgYmVnaW46ICcjfCYnLCBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiBLRVlXT1JEICsgTUVUQUtFWVdPUkR9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBDT01NRU5UU1xuICAgIF1cbiAgfTtcbiAgXG4gIC8vIHN5bWJvbCA6INC80LXRgtC60LAgZ290b1xuICB2YXIgU1lNQk9MID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICd+JywgZW5kOiAnO3w6JywgZXhjbHVkZUVuZDogdHJ1ZVxuICB9OyAgXG4gIFxuICAvLyBmdW5jdGlvbiA6INC+0LHRitGP0LLQu9C10L3QuNC1INC/0YDQvtGG0LXQtNGD0YAg0Lgg0YTRg9C90LrRhtC40LlcbiAgdmFyIEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBsZXhlbWVzOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46ICfQv9GA0L7RhtC10LTRg9GA0LB80YTRg9C90LrRhtC40Y8nLCBlbmQ6ICdcXFxcKScsIGtleXdvcmRzOiAn0L/RgNC+0YbQtdC00YPRgNCwINGE0YPQvdC60YbQuNGPJ30sXG4gICAgICB7YmVnaW46ICfQutC+0L3QtdGG0L/RgNC+0YbQtdC00YPRgNGLfNC60L7QvdC10YbRhNGD0L3QutGG0LjQuCcsIGtleXdvcmRzOiAn0LrQvtC90LXRhtC/0YDQvtGG0LXQtNGD0YDRiyDQutC+0L3QtdGG0YTRg9C90LrRhtC40LgnfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJywgZW5kc1BhcmVudCA6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGxleGVtZXM6IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgICBiZWdpbjogVU5ERVJTQ09SRV9JREVOVF9SRSwgZW5kOiAnLCcsIGV4Y2x1ZGVFbmQ6IHRydWUsIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgICAga2V5d29yZDogJ9C30L3QsNGHJyxcbiAgICAgICAgICAgICAgbGl0ZXJhbDogTElURVJBTFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIERBVEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIENPTU1FTlRTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkV9KVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgbGV4ZW1lczogVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRCxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVElOLFxuICAgICAgY2xhc3M6IENMQVNTLFxuICAgICAgdHlwZTogVFlQRSxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBNRVRBLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBDT01NRU5UUyxcbiAgICAgIFNZTUJPTCxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBTVFJJTkdTLFxuICAgICAgREFURVxuICAgIF0gIFxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICAgIHZhciByZWdleGVzID0ge1xuICAgICAgICBydWxlRGVjbGFyYXRpb246IFwiXlthLXpBLVpdW2EtekEtWjAtOS1dKlwiLFxuICAgICAgICB1bmV4cGVjdGVkQ2hhcnM6IFwiWyFAIyReJicsPyt+YHw6XVwiXG4gICAgfTtcblxuICAgIHZhciBrZXl3b3JkcyA9IFtcbiAgICAgICAgXCJBTFBIQVwiLFxuICAgICAgICBcIkJJVFwiLFxuICAgICAgICBcIkNIQVJcIixcbiAgICAgICAgXCJDUlwiLFxuICAgICAgICBcIkNSTEZcIixcbiAgICAgICAgXCJDVExcIixcbiAgICAgICAgXCJESUdJVFwiLFxuICAgICAgICBcIkRRVU9URVwiLFxuICAgICAgICBcIkhFWERJR1wiLFxuICAgICAgICBcIkhUQUJcIixcbiAgICAgICAgXCJMRlwiLFxuICAgICAgICBcIkxXU1BcIixcbiAgICAgICAgXCJPQ1RFVFwiLFxuICAgICAgICBcIlNQXCIsXG4gICAgICAgIFwiVkNIQVJcIixcbiAgICAgICAgXCJXU1BcIlxuICAgIF07XG5cbiAgICB2YXIgY29tbWVudE1vZGUgPSBobGpzLkNPTU1FTlQoXCI7XCIsIFwiJFwiKTtcblxuICAgIHZhciB0ZXJtaW5hbEJpbmFyeU1vZGUgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJzeW1ib2xcIixcbiAgICAgICAgYmVnaW46IC8lYlswLTFdKygtWzAtMV0rfChcXC5bMC0xXSspKyl7MCwxfS9cbiAgICB9O1xuXG4gICAgdmFyIHRlcm1pbmFsRGVjaW1hbE1vZGUgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJzeW1ib2xcIixcbiAgICAgICAgYmVnaW46IC8lZFswLTldKygtWzAtOV0rfChcXC5bMC05XSspKyl7MCwxfS9cbiAgICB9O1xuXG4gICAgdmFyIHRlcm1pbmFsSGV4YWRlY2ltYWxNb2RlID0ge1xuICAgICAgICBjbGFzc05hbWU6IFwic3ltYm9sXCIsXG4gICAgICAgIGJlZ2luOiAvJXhbMC05QS1GXSsoLVswLTlBLUZdK3woXFwuWzAtOUEtRl0rKSspezAsMX0vLFxuICAgIH07XG5cbiAgICB2YXIgY2FzZVNlbnNpdGl2aXR5SW5kaWNhdG9yTW9kZSA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInN5bWJvbFwiLFxuICAgICAgICBiZWdpbjogLyVbc2ldL1xuICAgIH07XG5cbiAgICB2YXIgcnVsZURlY2xhcmF0aW9uTW9kZSA9IHtcbiAgICAgICAgYmVnaW46IHJlZ2V4ZXMucnVsZURlY2xhcmF0aW9uICsgJ1xcXFxzKj0nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAvPS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFt7Y2xhc3NOYW1lOiBcImF0dHJpYnV0ZVwiLCBiZWdpbjogcmVnZXhlcy5ydWxlRGVjbGFyYXRpb259XVxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWxsZWdhbDogcmVnZXhlcy51bmV4cGVjdGVkQ2hhcnMsXG4gICAgICBrZXl3b3Jkczoga2V5d29yZHMuam9pbihcIiBcIiksXG4gICAgICBjb250YWluczogW1xuICAgICAgICAgIHJ1bGVEZWNsYXJhdGlvbk1vZGUsXG4gICAgICAgICAgY29tbWVudE1vZGUsXG4gICAgICAgICAgdGVybWluYWxCaW5hcnlNb2RlLFxuICAgICAgICAgIHRlcm1pbmFsRGVjaW1hbE1vZGUsXG4gICAgICAgICAgdGVybWluYWxIZXhhZGVjaW1hbE1vZGUsXG4gICAgICAgICAgY2FzZVNlbnNpdGl2aXR5SW5kaWNhdG9yTW9kZSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuTlVNQkVSX01PREVcbiAgICAgIF1cbiAgICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgICAgLy8gSVBcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM30oOlxcXFxkezEsNX0pP1xcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIE90aGVyIG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkK1xcXFxiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gUmVxdWVzdHNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIihHRVR8UE9TVHxIRUFEfFBVVHxERUxFVEV8Q09OTkVDVHxPUFRJT05TfFBBVENIfFRSQUNFKScsIGVuZDogJ1wiJyxcbiAgICAgICAga2V5d29yZHM6ICdHRVQgUE9TVCBIRUFEIFBVVCBERUxFVEUgQ09OTkVDVCBPUFRJT05TIFBBVENIIFRSQUNFJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIERhdGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXFxbLywgZW5kOiAvXFxdLyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgfSxcbiAgICAgIC8vIFN0cmluZ3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBJREVOVF9SRSA9ICdbYS16QS1aXyRdW2EtekEtWjAtOV8kXSonO1xuICB2YXIgSURFTlRfRlVOQ19SRVRVUk5fVFlQRV9SRSA9ICcoWypdfFthLXpBLVpfJF1bYS16QS1aMC05XyRdKiknO1xuXG4gIHZhciBBUzNfUkVTVF9BUkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdyZXN0X2FyZycsXG4gICAgYmVnaW46ICdbLl17M30nLCBlbmQ6IElERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMTBcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnYXMnXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ2FzIGJyZWFrIGNhc2UgY2F0Y2ggY2xhc3MgY29uc3QgY29udGludWUgZGVmYXVsdCBkZWxldGUgZG8gZHluYW1pYyBlYWNoICcgK1xuICAgICAgICAnZWxzZSBleHRlbmRzIGZpbmFsIGZpbmFsbHkgZm9yIGZ1bmN0aW9uIGdldCBpZiBpbXBsZW1lbnRzIGltcG9ydCBpbiBpbmNsdWRlICcgK1xuICAgICAgICAnaW5zdGFuY2VvZiBpbnRlcmZhY2UgaW50ZXJuYWwgaXMgbmFtZXNwYWNlIG5hdGl2ZSBuZXcgb3ZlcnJpZGUgcGFja2FnZSBwcml2YXRlICcgK1xuICAgICAgICAncHJvdGVjdGVkIHB1YmxpYyByZXR1cm4gc2V0IHN0YXRpYyBzdXBlciBzd2l0Y2ggdGhpcyB0aHJvdyB0cnkgdHlwZW9mIHVzZSB2YXIgdm9pZCAnICtcbiAgICAgICAgJ3doaWxlIHdpdGgnLFxuICAgICAgbGl0ZXJhbDogJ3RydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BhY2thZ2UnLCBlbmQ6ICd7JyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLlRJVExFX01PREVdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLCBlbmQ6ICd7JywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW1wb3J0IGluY2x1ZGUnLCBlbmQ6ICc7JyxcbiAgICAgICAga2V5d29yZHM6IHsnbWV0YS1rZXl3b3JkJzogJ2ltcG9ydCBpbmNsdWRlJ31cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uJywgZW5kOiAnW3s7XScsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcUycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIEFTM19SRVNUX0FSR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJzpcXFxccyonICsgSURFTlRfRlVOQ19SRVRVUk5fVFlQRV9SRVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuTUVUSE9EX0dVQVJEXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSAvLyBXZSB0cnkgdG8gc3VwcG9ydCBmdWxsIEFkYTIwMTJcbi8vXG4vLyBXZSBoaWdobGlnaHQgYWxsIGFwcGVhcmFuY2VzIG9mIHR5cGVzLCBrZXl3b3JkcywgbGl0ZXJhbHMgKHN0cmluZywgY2hhciwgbnVtYmVyLCBib29sKVxuLy8gYW5kIHRpdGxlcyAodXNlciBkZWZpbmVkIGZ1bmN0aW9uL3Byb2NlZHVyZS9wYWNrYWdlKVxuLy8gQ1NTIGNsYXNzZXMgYXJlIHNldCBhY2NvcmRpbmdseVxuLy9cbi8vIExhbmd1YWdlcyBjYXVzaW5nIHByb2JsZW1zIGZvciBsYW5ndWFnZSBkZXRlY3Rpb246XG4vLyB4bWwgKGJyb2tlbiBieSBGb28gOiBCYXIgdHlwZSksIGVsbSAoYnJva2VuIGJ5IEZvbyA6IEJhciB0eXBlKSwgdmJzY3JpcHQtaHRtbCAoYnJva2VuIGJ5IGJvZHkga2V5d29yZClcbi8vIHNxbCAoYWRhIGRlZmF1bHQudHh0IGhhcyBhIGxvdCBvZiBzcWwga2V5d29yZHMpXG5cbmZ1bmN0aW9uKGhsanMpIHtcbiAgICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIEFkYSBudW1lcmljIGxpdGVyYWxzLlxuICAgIC8vIHN0b2xlbiBmb3JtIHRoZSBWSERMIGhpZ2hsaWdodGVyXG5cbiAgICAvLyBEZWNpbWFsIGxpdGVyYWw6XG4gICAgdmFyIElOVEVHRVJfUkUgPSAnXFxcXGQoX3xcXFxcZCkqJztcbiAgICB2YXIgRVhQT05FTlRfUkUgPSAnW2VFXVstK10/JyArIElOVEVHRVJfUkU7XG4gICAgdmFyIERFQ0lNQUxfTElURVJBTF9SRSA9IElOVEVHRVJfUkUgKyAnKFxcXFwuJyArIElOVEVHRVJfUkUgKyAnKT8nICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuXG4gICAgLy8gQmFzZWQgbGl0ZXJhbDpcbiAgICB2YXIgQkFTRURfSU5URUdFUl9SRSA9ICdcXFxcdysnO1xuICAgIHZhciBCQVNFRF9MSVRFUkFMX1JFID0gSU5URUdFUl9SRSArICcjJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKFxcXFwuJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKT8nICsgJyMnICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuXG4gICAgdmFyIE5VTUJFUl9SRSA9ICdcXFxcYignICsgQkFTRURfTElURVJBTF9SRSArICd8JyArIERFQ0lNQUxfTElURVJBTF9SRSArICcpJztcblxuICAgIC8vIElkZW50aWZpZXIgcmVnZXhcbiAgICB2YXIgSURfUkVHRVggPSAnW0EtWmEtel0oXz9bQS1aYS16MC05Ll0pKic7XG5cbiAgICAvLyBiYWQgY2hhcnMsIG9ubHkgYWxsb3dlZCBpbiBsaXRlcmFsc1xuICAgIHZhciBCQURfQ0hBUlMgPSAnW117fSUjXFwnXFxcIidcblxuICAgIC8vIEFkYSBkb2Vzbid0IGhhdmUgYmxvY2sgY29tbWVudHMsIG9ubHkgbGluZSBjb21tZW50c1xuICAgIHZhciBDT01NRU5UUyA9IGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpO1xuXG4gICAgLy8gdmFyaWFibGUgZGVjbGFyYXRpb25zIG9mIHRoZSBmb3JtXG4gICAgLy8gRm9vIDogQmFyIDo9IEJhejtcbiAgICAvLyB3aGVyZSBvbmx5IEJhciB3aWxsIGJlIGhpZ2hsaWdodGVkXG4gICAgdmFyIFZBUl9ERUNMUyA9IHtcbiAgICAgICAgLy8gVE9ETzogVGhlc2Ugc3BhY2VzIGFyZSBub3QgcmVxdWlyZWQgYnkgdGhlIEFkYSBzeW50YXhcbiAgICAgICAgLy8gaG93ZXZlciwgSSBoYXZlIHlldCB0byBzZWUgaGFuZHdyaXR0ZW4gQWRhIGNvZGUgd2hlcmVcbiAgICAgICAgLy8gc29tZW9uZSBkb2VzIG5vdCBwdXQgc3BhY2VzIGFyb3VuZCA6XG4gICAgICAgIGJlZ2luOiAnXFxcXHMrOlxcXFxzKycsIGVuZDogJ1xcXFxzKig6PXw7fFxcXFwpfD0+fCQpJyxcbiAgICAgICAgLy8gZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgIC8vIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gd29ya2Fyb3VuZCB0byBhdm9pZCBoaWdobGlnaHRpbmdcbiAgICAgICAgICAgICAgICAvLyBuYW1lZCBsb29wcyBhbmQgZGVjbGFyZSBibG9ja3NcbiAgICAgICAgICAgICAgICBiZWdpbktleXdvcmRzOiAnbG9vcCBmb3IgZGVjbGFyZSBvdGhlcnMnLFxuICAgICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIHByb3Blcmx5IGhpZ2hsaWdodCBhbGwgbW9kaWZpZXJzXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ25vdCBudWxsIGNvbnN0YW50IGFjY2VzcyBmdW5jdGlvbiBwcm9jZWR1cmUgaW4gb3V0IGFsaWFzZWQgZXhjZXB0aW9uJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogSURfUkVHRVgsXG4gICAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgICAgICAgJ2Fib3J0IGVsc2UgbmV3IHJldHVybiBhYnMgZWxzaWYgbm90IHJldmVyc2UgYWJzdHJhY3QgZW5kICcgK1xuICAgICAgICAgICAgICAgICdhY2NlcHQgZW50cnkgc2VsZWN0IGFjY2VzcyBleGNlcHRpb24gb2Ygc2VwYXJhdGUgYWxpYXNlZCBleGl0IG9yIHNvbWUgJyArXG4gICAgICAgICAgICAgICAgJ2FsbCBvdGhlcnMgc3VidHlwZSBhbmQgZm9yIG91dCBzeW5jaHJvbml6ZWQgYXJyYXkgZnVuY3Rpb24gb3ZlcnJpZGluZyAnICtcbiAgICAgICAgICAgICAgICAnYXQgdGFnZ2VkIGdlbmVyaWMgcGFja2FnZSB0YXNrIGJlZ2luIGdvdG8gcHJhZ21hIHRlcm1pbmF0ZSAnICtcbiAgICAgICAgICAgICAgICAnYm9keSBwcml2YXRlIHRoZW4gaWYgcHJvY2VkdXJlIHR5cGUgY2FzZSBpbiBwcm90ZWN0ZWQgY29uc3RhbnQgaW50ZXJmYWNlICcgK1xuICAgICAgICAgICAgICAgICdpcyByYWlzZSB1c2UgZGVjbGFyZSByYW5nZSBkZWxheSBsaW1pdGVkIHJlY29yZCB3aGVuIGRlbHRhIGxvb3AgcmVtIHdoaWxlICcgK1xuICAgICAgICAgICAgICAgICdkaWdpdHMgcmVuYW1lcyB3aXRoIGRvIG1vZCByZXF1ZXVlIHhvcicsXG4gICAgICAgICAgICBsaXRlcmFsOlxuICAgICAgICAgICAgICAgICdUcnVlIEZhbHNlJyxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIENPTU1FTlRTLFxuICAgICAgICAgICAgLy8gc3RyaW5ncyBcImZvb2JhclwiXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogL1wiLywgZW5kOiAvXCIvLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAvXCJcIi8sIHJlbGV2YW5jZTogMH1dXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gY2hhcmFjdGVycyAnJ1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGNoYXJhY3RlciBsaXRlcmFscyBhbHdheXMgY29udGFpbiBvbmUgY2hhclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLicvXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIG51bWJlciBsaXRlcmFsc1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gQXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICAgICAgYmVnaW46IFwiJ1wiICsgSURfUkVHRVgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIHBhY2thZ2UgZGVmaW5pdGlvbiwgbWF5YmUgaW5zaWRlIGdlbmVyaWNcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgYmVnaW46ICcoXFxcXGJ3aXRoXFxcXHMrKT8oXFxcXGJwcml2YXRlXFxcXHMrKT9cXFxcYnBhY2thZ2VcXFxccysoXFxcXGJib2R5XFxcXHMrKT8nLCBlbmQ6ICcoaXN8JCknLFxuICAgICAgICAgICAgICAgIGtleXdvcmRzOiAncGFja2FnZSBib2R5JyxcbiAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24vcHJvY2VkdXJlIGRlY2xhcmF0aW9uL2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAvLyBtYXliZSBpbnNpZGUgZ2VuZXJpY1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnKFxcXFxiKHdpdGh8b3ZlcnJpZGluZylcXFxccyspP1xcXFxiKGZ1bmN0aW9ufHByb2NlZHVyZSlcXFxccysnLCBlbmQ6ICcoXFxcXGJpc3xcXFxcYndpdGh8XFxcXGJyZW5hbWVzfFxcXFwpXFxcXHMqOyknLFxuICAgICAgICAgICAgICAgIGtleXdvcmRzOiAnb3ZlcnJpZGluZyBmdW5jdGlvbiBwcm9jZWR1cmUgd2l0aCBpcyByZW5hbWVzIHJldHVybicsXG4gICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byByZS1tYXRjaCB0aGUgJ2Z1bmN0aW9uJyBrZXl3b3JkLCBzbyB0aGF0XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRpdGxlIG1vZGUgYmVsb3cgbWF0Y2hlcyBvbmx5IGV4YWN0bHkgb25jZVxuICAgICAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOlxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgQ09NTUVOVFMsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5hbWUgb2YgdGhlIGZ1bmN0aW9uL3Byb2NlZHVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46ICcoXFxcXGJ3aXRoXFxcXHMrKT9cXFxcYihmdW5jdGlvbnxwcm9jZWR1cmUpXFxcXHMrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogJyhcXFxcKHxcXFxccyt8JCknLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlsbGVnYWw6IEJBRF9DSEFSU1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvLyAnc2VsZidcbiAgICAgICAgICAgICAgICAgICAgLy8gLy8gcGFyYW1ldGVyIHR5cGVzXG4gICAgICAgICAgICAgICAgICAgIFZBUl9ERUNMUyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcYnJldHVyblxcXFxzKycsIGVuZDogJyhcXFxccyt8O3wkKScsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkczogJ3JldHVybicsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXJlIGRvbmUgd2l0aCBmdW5jdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcblxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gbmV3IHR5cGUgZGVjbGFyYXRpb25zXG4gICAgICAgICAgICAgICAgLy8gbWF5YmUgaW5zaWRlIGdlbmVyaWNcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFxiKHN1Yik/dHlwZVxcXFxzKycsIGVuZDogJ1xcXFxzKycsXG4gICAgICAgICAgICAgICAga2V5d29yZHM6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgaWxsZWdhbDogQkFEX0NIQVJTXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyBzZWUgY29tbWVudCBhYm92ZSB0aGUgZGVmaW5pdGlvblxuICAgICAgICAgICAgVkFSX0RFQ0xTLFxuXG4gICAgICAgICAgICAvLyBubyBtYXJrdXBcbiAgICAgICAgICAgIC8vIHJlbGV2YW5jZSBib29zdGVycyBmb3Igc21hbGwgc25pcHBldHNcbiAgICAgICAgICAgIC8vIHtiZWdpbjogJ1xcXFxzKj0+XFxcXHMqJ30sXG4gICAgICAgICAgICAvLyB7YmVnaW46ICdcXFxccyo6PVxcXFxzKid9LFxuICAgICAgICAgICAgLy8ge2JlZ2luOiAnXFxcXHMrOj1cXFxccysnfSxcbiAgICAgICAgXVxuICAgIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgTlVNQkVSID0ge2NsYXNzTmFtZTogJ251bWJlcicsIGJlZ2luOiAnW1xcXFwkJV1cXFxcZCsnfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2FwYWNoZWNvbmYnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge2NsYXNzTmFtZTogJ3NlY3Rpb24nLCBiZWdpbjogJzwvPycsIGVuZDogJz4nfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAvLyBrZXl3b3JkcyBhcmVu4oCZdCBuZWVkZWQgZm9yIGhpZ2hsaWdodGluZyBwZXIgc2UsIHRoZXkgb25seSBib29zdCByZWxldmFuY2VcbiAgICAgICAgLy8gZm9yIGEgdmVyeSBnZW5lcmFsbHkgZGVmaW5lZCBtb2RlIChzdGFydHMgd2l0aCBhIHdvcmQsIGVuZHMgd2l0aCBsaW5lLWVuZFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgIG5vbWFya3VwOlxuICAgICAgICAgICAgJ29yZGVyIGRlbnkgYWxsb3cgc2V0ZW52IHJld3JpdGVydWxlIHJld3JpdGVlbmdpbmUgcmV3cml0ZWNvbmQgZG9jdW1lbnRyb290ICcgK1xuICAgICAgICAgICAgJ3NldGhhbmRsZXIgZXJyb3Jkb2N1bWVudCBsb2FkbW9kdWxlIG9wdGlvbnMgaGVhZGVyIGxpc3RlbiBzZXJ2ZXJyb290ICcgK1xuICAgICAgICAgICAgJ3NlcnZlcm5hbWUnXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgICAgbGl0ZXJhbDogJ29uIG9mZiBhbGwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdcXFxcc1xcXFxbJywgZW5kOiAnXFxcXF0kJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICBiZWdpbjogJ1tcXFxcJCVdXFxcXHsnLCBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnLCBOVU1CRVJdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcUy9cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBTVFJJTkcgPSBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6ICcnfSk7XG4gIHZhciBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBbJ3NlbGYnLCBobGpzLkNfTlVNQkVSX01PREUsIFNUUklOR11cbiAgfTtcbiAgdmFyIENPTU1FTlRfTU9ERV8xID0gaGxqcy5DT01NRU5UKCctLScsICckJyk7XG4gIHZhciBDT01NRU5UX01PREVfMiA9IGhsanMuQ09NTUVOVChcbiAgICAnXFxcXChcXFxcKicsXG4gICAgJ1xcXFwqXFxcXCknLFxuICAgIHtcbiAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnLCBDT01NRU5UX01PREVfMV0gLy9hbGxvdyBuZXN0aW5nXG4gICAgfVxuICApO1xuICB2YXIgQ09NTUVOVFMgPSBbXG4gICAgQ09NTUVOVF9NT0RFXzEsXG4gICAgQ09NTUVOVF9NT0RFXzIsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydvc2FzY3JpcHQnXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2Fib3V0IGFib3ZlIGFmdGVyIGFnYWluc3QgYW5kIGFyb3VuZCBhcyBhdCBiYWNrIGJlZm9yZSBiZWdpbm5pbmcgJyArXG4gICAgICAgICdiZWhpbmQgYmVsb3cgYmVuZWF0aCBiZXNpZGUgYmV0d2VlbiBidXQgYnkgY29uc2lkZXJpbmcgJyArXG4gICAgICAgICdjb250YWluIGNvbnRhaW5zIGNvbnRpbnVlIGNvcHkgZGl2IGRvZXMgZWlnaHRoIGVsc2UgZW5kIGVxdWFsICcgK1xuICAgICAgICAnZXF1YWxzIGVycm9yIGV2ZXJ5IGV4aXQgZmlmdGggZmlyc3QgZm9yIGZvdXJ0aCBmcm9tIGZyb250ICcgK1xuICAgICAgICAnZ2V0IGdpdmVuIGdsb2JhbCBpZiBpZ25vcmluZyBpbiBpbnRvIGlzIGl0IGl0cyBsYXN0IGxvY2FsIG1lICcgK1xuICAgICAgICAnbWlkZGxlIG1vZCBteSBuaW50aCBub3Qgb2Ygb24gb250byBvciBvdmVyIHByb3AgcHJvcGVydHkgcHV0IHJlZiAnICtcbiAgICAgICAgJ3JlZmVyZW5jZSByZXBlYXQgcmV0dXJuaW5nIHNjcmlwdCBzZWNvbmQgc2V0IHNldmVudGggc2luY2UgJyArXG4gICAgICAgICdzaXh0aCBzb21lIHRlbGwgdGVudGggdGhhdCB0aGV8MCB0aGVuIHRoaXJkIHRocm91Z2ggdGhydSAnICtcbiAgICAgICAgJ3RpbWVvdXQgdGltZXMgdG8gdHJhbnNhY3Rpb24gdHJ5IHVudGlsIHdoZXJlIHdoaWxlIHdob3NlIHdpdGggJyArXG4gICAgICAgICd3aXRob3V0JyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdBcHBsZVNjcmlwdCBmYWxzZSBsaW5lZmVlZCByZXR1cm4gcGkgcXVvdGUgcmVzdWx0IHNwYWNlIHRhYiB0cnVlJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnYWxpYXMgYXBwbGljYXRpb24gYm9vbGVhbiBjbGFzcyBjb25zdGFudCBkYXRlIGZpbGUgaW50ZWdlciBsaXN0ICcgK1xuICAgICAgICAnbnVtYmVyIHJlYWwgcmVjb3JkIHN0cmluZyB0ZXh0ICcgK1xuICAgICAgICAnYWN0aXZhdGUgYmVlcCBjb3VudCBkZWxheSBsYXVuY2ggbG9nIG9mZnNldCByZWFkIHJvdW5kICcgK1xuICAgICAgICAncnVuIHNheSBzdW1tYXJpemUgd3JpdGUgJyArXG4gICAgICAgICdjaGFyYWN0ZXIgY2hhcmFjdGVycyBjb250ZW50cyBkYXkgZnJvbnRtb3N0IGlkIGl0ZW0gbGVuZ3RoICcgK1xuICAgICAgICAnbW9udGggbmFtZSBwYXJhZ3JhcGggcGFyYWdyYXBocyByZXN0IHJldmVyc2UgcnVubmluZyB0aW1lIHZlcnNpb24gJyArXG4gICAgICAgICd3ZWVrZGF5IHdvcmQgd29yZHMgeWVhcidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVFJJTkcsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46XG4gICAgICAgICAgJ1xcXFxiKGNsaXBib2FyZCBpbmZvfHRoZSBjbGlwYm9hcmR8aW5mbyBmb3J8bGlzdCAoZGlza3N8Zm9sZGVyKXwnICtcbiAgICAgICAgICAnbW91bnQgdm9sdW1lfHBhdGggdG98KGNsb3NlfG9wZW4gZm9yKSBhY2Nlc3N8KGdldHxzZXQpIGVvZnwnICtcbiAgICAgICAgICAnY3VycmVudCBkYXRlfGRvIHNoZWxsIHNjcmlwdHxnZXQgdm9sdW1lIHNldHRpbmdzfHJhbmRvbSBudW1iZXJ8JyArXG4gICAgICAgICAgJ3NldCB2b2x1bWV8c3lzdGVtIGF0dHJpYnV0ZXxzeXN0ZW0gaW5mb3x0aW1lIHRvIEdNVHwnICtcbiAgICAgICAgICAnKGxvYWR8cnVufHN0b3JlKSBzY3JpcHR8c2NyaXB0aW5nIGNvbXBvbmVudHN8JyArXG4gICAgICAgICAgJ0FTQ0lJIChjaGFyYWN0ZXJ8bnVtYmVyKXxsb2NhbGl6ZWQgc3RyaW5nfCcgK1xuICAgICAgICAgICdjaG9vc2UgKGFwcGxpY2F0aW9ufGNvbG9yfGZpbGV8ZmlsZSBuYW1lfCcgK1xuICAgICAgICAgICdmb2xkZXJ8ZnJvbSBsaXN0fHJlbW90ZSBhcHBsaWNhdGlvbnxVUkwpfCcgK1xuICAgICAgICAgICdkaXNwbGF5IChhbGVydHxkaWFsb2cpKVxcXFxifF5cXFxccypyZXR1cm5cXFxcYidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAnXFxcXGIodGV4dCBpdGVtIGRlbGltaXRlcnN8Y3VycmVudCBhcHBsaWNhdGlvbnxtaXNzaW5nIHZhbHVlKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOlxuICAgICAgICAgICdcXFxcYihhcGFydCBmcm9tfGFzaWRlIGZyb218aW5zdGVhZCBvZnxvdXQgb2Z8Z3JlYXRlciB0aGFufCcgK1xuICAgICAgICAgIFwiaXNuJ3R8KGRvZXNuJ3R8ZG9lcyBub3QpIChlcXVhbHxjb21lIGJlZm9yZXxjb21lIGFmdGVyfGNvbnRhaW4pfFwiICtcbiAgICAgICAgICAnKGdyZWF0ZXJ8bGVzcykgdGhhbiggb3IgZXF1YWwpP3woc3RhcnRzP3xlbmRzfGJlZ2lucz8pIHdpdGh8JyArXG4gICAgICAgICAgJ2NvbnRhaW5lZCBieXxjb21lcyAoYmVmb3JlfGFmdGVyKXxhIChyZWZ8cmVmZXJlbmNlKXxQT1NJWCBmaWxlfCcgK1xuICAgICAgICAgICdQT1NJWCBwYXRofChkYXRlfHRpbWUpIHN0cmluZ3xxdW90ZWQgZm9ybSlcXFxcYidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdvbicsXG4gICAgICAgIGlsbGVnYWw6ICdbJHs9O1xcXFxuXScsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsIFBBUkFNU11cbiAgICAgIH1cbiAgICBdLmNvbmNhdChDT01NRU5UUyksXG4gICAgaWxsZWdhbDogJy8vfC0+fD0+fFxcXFxbXFxcXFsnXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ1BQX1BSSU1JVElWRV9UWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ1xcXFxiW2EtelxcXFxkX10qX3RcXFxcYidcbiAgfTtcblxuICB2YXIgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVKT9MP1wiJywgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVKT9SXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCdcXFxcXFxcXD8uJywgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHZhciBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QiknIH0sXG4gICAgICB7IGJlZ2luOiAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOVxcJ10rfChcXFxcYltcXFxcZFxcJ10rKFxcXFwuW1xcXFxkXFwnXSopP3xcXFxcLltcXFxcZFxcJ10rKShbZUVdWy0rXT9bXFxcXGRcXCddKyk/KScgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIFBSRVBST0NFU1NPUiA9ICAgICAgIHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLywgZW5kOiAvJC8sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICdtZXRhLWtleXdvcmQnOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJyArXG4gICAgICAgICdwcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcXFxcXG4vLCByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoU1RSSU5HUywge2NsYXNzTmFtZTogJ21ldGEtc3RyaW5nJ30pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhLXN0cmluZycsXG4gICAgICAgIGJlZ2luOiAvPFteXFxuPl0qPi8sIGVuZDogLyQvLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgfSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG5cbiAgdmFyIEZVTkNUSU9OX1RJVExFID0gaGxqcy5JREVOVF9SRSArICdcXFxccypcXFxcKCc7XG5cbiAgdmFyIENQUF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiAnaW50IGZsb2F0IHdoaWxlIHByaXZhdGUgY2hhciBjYXRjaCBpbXBvcnQgbW9kdWxlIGV4cG9ydCB2aXJ0dWFsIG9wZXJhdG9yIHNpemVvZiAnICtcbiAgICAgICdkeW5hbWljX2Nhc3R8MTAgdHlwZWRlZiBjb25zdF9jYXN0fDEwIGNvbnN0IGZvciBzdGF0aWNfY2FzdHwxMCB1bmlvbiBuYW1lc3BhY2UgJyArXG4gICAgICAndW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgcHJvdGVjdGVkIGJvb2wgdGVtcGxhdGUgbXV0YWJsZSBpZiBwdWJsaWMgZnJpZW5kICcgK1xuICAgICAgJ2RvIGdvdG8gYXV0byB2b2lkIGVudW0gZWxzZSBicmVhayBleHRlcm4gdXNpbmcgYXNtIGNhc2UgdHlwZWlkICcgK1xuICAgICAgJ3Nob3J0IHJlaW50ZXJwcmV0X2Nhc3R8MTAgZGVmYXVsdCBkb3VibGUgcmVnaXN0ZXIgZXhwbGljaXQgc2lnbmVkIHR5cGVuYW1lIHRyeSB0aGlzICcgK1xuICAgICAgJ3N3aXRjaCBjb250aW51ZSBpbmxpbmUgZGVsZXRlIGFsaWdub2YgY29uc3RleHByIGRlY2x0eXBlICcgK1xuICAgICAgJ25vZXhjZXB0IHN0YXRpY19hc3NlcnQgdGhyZWFkX2xvY2FsIHJlc3RyaWN0IF9Cb29sIGNvbXBsZXggX0NvbXBsZXggX0ltYWdpbmFyeSAnICtcbiAgICAgICdhdG9taWNfYm9vbCBhdG9taWNfY2hhciBhdG9taWNfc2NoYXIgJyArXG4gICAgICAnYXRvbWljX3VjaGFyIGF0b21pY19zaG9ydCBhdG9taWNfdXNob3J0IGF0b21pY19pbnQgYXRvbWljX3VpbnQgYXRvbWljX2xvbmcgYXRvbWljX3Vsb25nIGF0b21pY19sbG9uZyAnICtcbiAgICAgICdhdG9taWNfdWxsb25nIG5ldyB0aHJvdyByZXR1cm4gJyArXG4gICAgICAnYW5kIG9yIG5vdCcsXG4gICAgYnVpbHRfaW46ICdzdGQgc3RyaW5nIGNpbiBjb3V0IGNlcnIgY2xvZyBzdGRpbiBzdGRvdXQgc3RkZXJyIHN0cmluZ3N0cmVhbSBpc3RyaW5nc3RyZWFtIG9zdHJpbmdzdHJlYW0gJyArXG4gICAgICAnYXV0b19wdHIgZGVxdWUgbGlzdCBxdWV1ZSBzdGFjayB2ZWN0b3IgbWFwIHNldCBiaXRzZXQgbXVsdGlzZXQgbXVsdGltYXAgdW5vcmRlcmVkX3NldCAnICtcbiAgICAgICd1bm9yZGVyZWRfbWFwIHVub3JkZXJlZF9tdWx0aXNldCB1bm9yZGVyZWRfbXVsdGltYXAgYXJyYXkgc2hhcmVkX3B0ciBhYm9ydCBhYnMgYWNvcyAnICtcbiAgICAgICdhc2luIGF0YW4yIGF0YW4gY2FsbG9jIGNlaWwgY29zaCBjb3MgZXhpdCBleHAgZmFicyBmbG9vciBmbW9kIGZwcmludGYgZnB1dHMgZnJlZSBmcmV4cCAnICtcbiAgICAgICdmc2NhbmYgaXNhbG51bSBpc2FscGhhIGlzY250cmwgaXNkaWdpdCBpc2dyYXBoIGlzbG93ZXIgaXNwcmludCBpc3B1bmN0IGlzc3BhY2UgaXN1cHBlciAnICtcbiAgICAgICdpc3hkaWdpdCB0b2xvd2VyIHRvdXBwZXIgbGFicyBsZGV4cCBsb2cxMCBsb2cgbWFsbG9jIHJlYWxsb2MgbWVtY2hyIG1lbWNtcCBtZW1jcHkgbWVtc2V0IG1vZGYgcG93ICcgK1xuICAgICAgJ3ByaW50ZiBwdXRjaGFyIHB1dHMgc2NhbmYgc2luaCBzaW4gc25wcmludGYgc3ByaW50ZiBzcXJ0IHNzY2FuZiBzdHJjYXQgc3RyY2hyIHN0cmNtcCAnICtcbiAgICAgICdzdHJjcHkgc3RyY3NwbiBzdHJsZW4gc3RybmNhdCBzdHJuY21wIHN0cm5jcHkgc3RycGJyayBzdHJyY2hyIHN0cnNwbiBzdHJzdHIgdGFuaCB0YW4gJyArXG4gICAgICAndmZwcmludGYgdnByaW50ZiB2c3ByaW50ZiBlbmRsIGluaXRpYWxpemVyX2xpc3QgdW5pcXVlX3B0cicsXG4gICAgbGl0ZXJhbDogJ3RydWUgZmFsc2UgbnVsbHB0ciBOVUxMJ1xuICB9O1xuXG4gIHZhciBFWFBSRVNTSU9OX0NPTlRBSU5TID0gW1xuICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2MnLCAnY2MnLCAnaCcsICdjKysnLCAnaCsrJywgJ2hwcCddLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoW1xuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKGRlcXVlfGxpc3R8cXVldWV8c3RhY2t8dmVjdG9yfG1hcHxzZXR8Yml0c2V0fG11bHRpc2V0fG11bHRpbWFwfHVub3JkZXJlZF9tYXB8dW5vcmRlcmVkX3NldHx1bm9yZGVyZWRfbXVsdGlzZXR8dW5vcmRlcmVkX211bHRpbWFwfGFycmF5KVxcXFxzKjwnLCBlbmQ6ICc+JyxcbiAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFsnc2VsZicsIENQUF9QUklNSVRJVkVfVFlQRVNdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgICAgIC8vIGRlZmluaXRpb24gYW5kIHNob3VsZG4ndCBoaWdobGlnaHQgYW55dGhpbmcgdGhhdCBsb29rcyBsaWtlIG9uZTpcbiAgICAgICAgLy8gYHJldHVybiBzb21lKClgLCBgZWxzZSBpZigpYCwgYCh4KnN1bSgxLCAyKSlgXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAvPS8sIGVuZDogLzsvfSxcbiAgICAgICAgICB7YmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvfSxcbiAgICAgICAgICB7YmVnaW5LZXl3b3JkczogJ25ldyB0aHJvdyByZXR1cm4gZWxzZScsIGVuZDogLzsvfVxuICAgICAgICBdLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoWydzZWxmJ10pLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luOiAnKCcgKyBobGpzLklERU5UX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLCBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIGlsbGVnYWw6IC9bXlxcd1xcc1xcKiZdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogRlVOQ1RJT05fVElUTEUsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLlRJVExFX01PREVdLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICAgICAgTlVNQkVSUyxcbiAgICAgICAgICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFU1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgUFJFUFJPQ0VTU09SXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIHN0cnVjdCcsIGVuZDogL1t7OzpdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7YmVnaW46IC88LywgZW5kOiAvPi8sIGNvbnRhaW5zOiBbJ3NlbGYnXX0sIC8vIHNraXAgZ2VuZXJpYyBzdHVmZlxuICAgICAgICAgIGhsanMuVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXSksXG4gICAgZXhwb3J0czoge1xuICAgICAgcHJlcHJvY2Vzc29yOiBQUkVQUk9DRVNTT1IsXG4gICAgICBzdHJpbmdzOiBTVFJJTkdTLFxuICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEU1xuICAgIH1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBDUFAgPSBobGpzLmdldExhbmd1YWdlKCdjcHAnKS5leHBvcnRzO1xuXHRyZXR1cm4ge1xuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYm9vbGVhbiBieXRlIHdvcmQgc3RyaW5nIFN0cmluZyBhcnJheSAnICsgQ1BQLmtleXdvcmRzLmtleXdvcmQsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ3NldHVwIGxvb3Agd2hpbGUgY2F0Y2ggZm9yIGlmIGRvIGdvdG8gdHJ5IHN3aXRjaCBjYXNlIGVsc2UgJyArXG4gICAgICAgICdkZWZhdWx0IGJyZWFrIGNvbnRpbnVlIHJldHVybiAnICtcbiAgICAgICAgJ0tleWJvYXJkQ29udHJvbGxlciBNb3VzZUNvbnRyb2xsZXIgU29mdHdhcmVTZXJpYWwgJyArXG4gICAgICAgICdFdGhlcm5ldFNlcnZlciBFdGhlcm5ldENsaWVudCBMaXF1aWRDcnlzdGFsICcgK1xuICAgICAgICAnUm9ib3RDb250cm9sIEdTTVZvaWNlQ2FsbCBFdGhlcm5ldFVEUCBFc3Bsb3JhVEZUICcgK1xuICAgICAgICAnSHR0cENsaWVudCBSb2JvdE1vdG9yIFdpRmlDbGllbnQgR1NNU2Nhbm5lciAnICtcbiAgICAgICAgJ0ZpbGVTeXN0ZW0gU2NoZWR1bGVyIEdTTVNlcnZlciBZdW5DbGllbnQgWXVuU2VydmVyICcgK1xuICAgICAgICAnSVBBZGRyZXNzIEdTTUNsaWVudCBHU01Nb2RlbSBLZXlib2FyZCBFdGhlcm5ldCAnICtcbiAgICAgICAgJ0NvbnNvbGUgR1NNQmFuZCBFc3Bsb3JhIFN0ZXBwZXIgUHJvY2VzcyAnICtcbiAgICAgICAgJ1dpRmlVRFAgR1NNX1NNUyBNYWlsYm94IFVTQkhvc3QgRmlybWF0YSBQSW1hZ2UgJyArXG4gICAgICAgICdDbGllbnQgU2VydmVyIEdTTVBJTiBGaWxlSU8gQnJpZGdlIFNlcmlhbCAnICtcbiAgICAgICAgJ0VFUFJPTSBTdHJlYW0gTW91c2UgQXVkaW8gU2Vydm8gRmlsZSBUYXNrICcgK1xuICAgICAgICAnR1BSUyBXaUZpIFdpcmUgVEZUIEdTTSBTUEkgU0QgJyArXG4gICAgICAgICdydW5TaGVsbENvbW1hbmRBc3luY2hyb25vdXNseSBhbmFsb2dXcml0ZVJlc29sdXRpb24gJyArXG4gICAgICAgICdyZXRyaWV2ZUNhbGxpbmdOdW1iZXIgcHJpbnRGaXJtd2FyZVZlcnNpb24gJyArXG4gICAgICAgICdhbmFsb2dSZWFkUmVzb2x1dGlvbiBzZW5kRGlnaXRhbFBvcnRQYWlyICcgK1xuICAgICAgICAnbm9MaXN0ZW5PbkxvY2FsaG9zdCByZWFkSm95c3RpY2tCdXR0b24gc2V0RmlybXdhcmVWZXJzaW9uICcgK1xuICAgICAgICAncmVhZEpveXN0aWNrU3dpdGNoIHNjcm9sbERpc3BsYXlSaWdodCBnZXRWb2ljZUNhbGxTdGF0dXMgJyArXG4gICAgICAgICdzY3JvbGxEaXNwbGF5TGVmdCB3cml0ZU1pY3Jvc2Vjb25kcyBkZWxheU1pY3Jvc2Vjb25kcyAnICtcbiAgICAgICAgJ2JlZ2luVHJhbnNtaXNzaW9uIGdldFNpZ25hbFN0cmVuZ3RoIHJ1bkFzeW5jaHJvbm91c2x5ICcgK1xuICAgICAgICAnZ2V0QXN5bmNocm9ub3VzbHkgbGlzdGVuT25Mb2NhbGhvc3QgZ2V0Q3VycmVudENhcnJpZXIgJyArXG4gICAgICAgICdyZWFkQWNjZWxlcm9tZXRlciBtZXNzYWdlQXZhaWxhYmxlIHNlbmREaWdpdGFsUG9ydHMgJyArXG4gICAgICAgICdsaW5lRm9sbG93Q29uZmlnIGNvdW50cnlOYW1lV3JpdGUgcnVuU2hlbGxDb21tYW5kICcgK1xuICAgICAgICAncmVhZFN0cmluZ1VudGlsIHJld2luZERpcmVjdG9yeSByZWFkVGVtcGVyYXR1cmUgJyArXG4gICAgICAgICdzZXRDbG9ja0RpdmlkZXIgcmVhZExpZ2h0U2Vuc29yIGVuZFRyYW5zbWlzc2lvbiAnICtcbiAgICAgICAgJ2FuYWxvZ1JlZmVyZW5jZSBkZXRhY2hJbnRlcnJ1cHQgY291bnRyeU5hbWVSZWFkICcgK1xuICAgICAgICAnYXR0YWNoSW50ZXJydXB0IGVuY3J5cHRpb25UeXBlIHJlYWRCeXRlc1VudGlsICcgK1xuICAgICAgICAncm9ib3ROYW1lV3JpdGUgcmVhZE1pY3JvcGhvbmUgcm9ib3ROYW1lUmVhZCBjaXR5TmFtZVdyaXRlICcgK1xuICAgICAgICAndXNlck5hbWVXcml0ZSByZWFkSm95c3RpY2tZIHJlYWRKb3lzdGlja1ggbW91c2VSZWxlYXNlZCAnICtcbiAgICAgICAgJ29wZW5OZXh0RmlsZSBzY2FuTmV0d29ya3Mgbm9JbnRlcnJ1cHRzIGRpZ2l0YWxXcml0ZSAnICtcbiAgICAgICAgJ2JlZ2luU3BlYWtlciBtb3VzZVByZXNzZWQgaXNBY3Rpb25Eb25lIG1vdXNlRHJhZ2dlZCAnICtcbiAgICAgICAgJ2Rpc3BsYXlMb2dvcyBub0F1dG9zY3JvbGwgYWRkUGFyYW1ldGVyIHJlbW90ZU51bWJlciAnICtcbiAgICAgICAgJ2dldE1vZGlmaWVycyBrZXlib2FyZFJlYWQgdXNlck5hbWVSZWFkIHdhaXRDb250aW51ZSAnICtcbiAgICAgICAgJ3Byb2Nlc3NJbnB1dCBwYXJzZUNvbW1hbmQgcHJpbnRWZXJzaW9uIHJlYWROZXR3b3JrcyAnICtcbiAgICAgICAgJ3dyaXRlTWVzc2FnZSBibGlua1ZlcnNpb24gY2l0eU5hbWVSZWFkIHJlYWRNZXNzYWdlICcgK1xuICAgICAgICAnc2V0RGF0YU1vZGUgcGFyc2VQYWNrZXQgaXNMaXN0ZW5pbmcgc2V0Qml0T3JkZXIgJyArXG4gICAgICAgICdiZWdpblBhY2tldCBpc0RpcmVjdG9yeSBtb3RvcnNXcml0ZSBkcmF3Q29tcGFzcyAnICtcbiAgICAgICAgJ2RpZ2l0YWxSZWFkIGNsZWFyU2NyZWVuIHNlcmlhbEV2ZW50IHJpZ2h0VG9MZWZ0ICcgK1xuICAgICAgICAnc2V0VGV4dFNpemUgbGVmdFRvUmlnaHQgcmVxdWVzdEZyb20ga2V5UmVsZWFzZWQgJyArXG4gICAgICAgICdjb21wYXNzUmVhZCBhbmFsb2dXcml0ZSBpbnRlcnJ1cHRzIFdpRmlTZXJ2ZXIgJyArXG4gICAgICAgICdkaXNjb25uZWN0IHBsYXlNZWxvZHkgcGFyc2VGbG9hdCBhdXRvc2Nyb2xsICcgK1xuICAgICAgICAnZ2V0UElOVXNlZCBzZXRQSU5Vc2VkIHNldFRpbWVvdXQgc2VuZEFuYWxvZyAnICtcbiAgICAgICAgJ3JlYWRTbGlkZXIgYW5hbG9nUmVhZCBiZWdpbldyaXRlIGNyZWF0ZUNoYXIgJyArXG4gICAgICAgICdtb3RvcnNTdG9wIGtleVByZXNzZWQgdGVtcG9Xcml0ZSByZWFkQnV0dG9uICcgK1xuICAgICAgICAnc3VibmV0TWFzayBkZWJ1Z1ByaW50IG1hY0FkZHJlc3Mgd3JpdGVHcmVlbiAnICtcbiAgICAgICAgJ3JhbmRvbVNlZWQgYXR0YWNoR1BSUyByZWFkU3RyaW5nIHNlbmRTdHJpbmcgJyArXG4gICAgICAgICdyZW1vdGVQb3J0IHJlbGVhc2VBbGwgbW91c2VNb3ZlZCBiYWNrZ3JvdW5kICcgK1xuICAgICAgICAnZ2V0WENoYW5nZSBnZXRZQ2hhbmdlIGFuc3dlckNhbGwgZ2V0UmVzdWx0ICcgK1xuICAgICAgICAndm9pY2VDYWxsIGVuZFBhY2tldCBjb25zdHJhaW4gZ2V0U29ja2V0IHdyaXRlSlNPTiAnICtcbiAgICAgICAgJ2dldEJ1dHRvbiBhdmFpbGFibGUgY29ubmVjdGVkIGZpbmRVbnRpbCByZWFkQnl0ZXMgJyArXG4gICAgICAgICdleGl0VmFsdWUgcmVhZEdyZWVuIHdyaXRlQmx1ZSBzdGFydExvb3AgSVBBZGRyZXNzICcgK1xuICAgICAgICAnaXNQcmVzc2VkIHNlbmRTeXNleCBwYXVzZU1vZGUgZ2F0ZXdheUlQIHNldEN1cnNvciAnICtcbiAgICAgICAgJ2dldE9lbUtleSB0dW5lV3JpdGUgbm9EaXNwbGF5IGxvYWRJbWFnZSBzd2l0Y2hQSU4gJyArXG4gICAgICAgICdvblJlcXVlc3Qgb25SZWNlaXZlIGNoYW5nZVBJTiBwbGF5RmlsZSBub0J1ZmZlciAnICtcbiAgICAgICAgJ3BhcnNlSW50IG92ZXJmbG93IGNoZWNrUElOIGtub2JSZWFkIGJlZ2luVEZUICcgK1xuICAgICAgICAnYml0Q2xlYXIgdXBkYXRlSVIgYml0V3JpdGUgcG9zaXRpb24gd3JpdGVSR0IgJyArXG4gICAgICAgICdoaWdoQnl0ZSB3cml0ZVJlZCBzZXRTcGVlZCByZWFkQmx1ZSBub1N0cm9rZSAnICtcbiAgICAgICAgJ3JlbW90ZUlQIHRyYW5zZmVyIHNodXRkb3duIGhhbmdDYWxsIGJlZ2luU01TICcgK1xuICAgICAgICAnZW5kV3JpdGUgYXR0YWNoZWQgbWFpbnRhaW4gbm9DdXJzb3IgY2hlY2tSZWcgJyArXG4gICAgICAgICdjaGVja1BVSyBzaGlmdE91dCBpc1ZhbGlkIHNoaWZ0SW4gcHVsc2VJbiAnICtcbiAgICAgICAgJ2Nvbm5lY3QgcHJpbnRsbiBsb2NhbElQIHBpbk1vZGUgZ2V0SU1FSSAnICtcbiAgICAgICAgJ2Rpc3BsYXkgbm9CbGluayBwcm9jZXNzIGdldEJhbmQgcnVubmluZyBiZWdpblNEICcgK1xuICAgICAgICAnZHJhd0JNUCBsb3dCeXRlIHNldEJhbmQgcmVsZWFzZSBiaXRSZWFkIHByZXBhcmUgJyArXG4gICAgICAgICdwb2ludFRvIHJlYWRSZWQgc2V0TW9kZSBub0ZpbGwgcmVtb3ZlIGxpc3RlbiAnICtcbiAgICAgICAgJ3N0cm9rZSBkZXRhY2ggYXR0YWNoIG5vVG9uZSBleGlzdHMgYnVmZmVyICcgK1xuICAgICAgICAnaGVpZ2h0IGJpdFNldCBjaXJjbGUgY29uZmlnIGN1cnNvciByYW5kb20gJyArXG4gICAgICAgICdJUnJlYWQgc2V0RE5TIGVuZFNNUyBnZXRLZXkgbWljcm9zICcgK1xuICAgICAgICAnbWlsbGlzIGJlZ2luIHByaW50IHdyaXRlIHJlYWR5IGZsdXNoIHdpZHRoICcgK1xuICAgICAgICAnaXNQSU4gYmxpbmsgY2xlYXIgcHJlc3MgbWtkaXIgcm1kaXIgY2xvc2UgJyArXG4gICAgICAgICdwb2ludCB5aWVsZCBpbWFnZSBCU1NJRCBjbGljayBkZWxheSAnICtcbiAgICAgICAgJ3JlYWQgdGV4dCBtb3ZlIHBlZWsgYmVlcCByZWN0IGxpbmUgb3BlbiAnICtcbiAgICAgICAgJ3NlZWsgZmlsbCBzaXplIHR1cm4gc3RvcCBob21lIGZpbmQgJyArXG4gICAgICAgICdzdGVwIHRvbmUgc3FydCBSU1NJIFNTSUQgJyArXG4gICAgICAgICdlbmQgYml0IHRhbiBjb3Mgc2luIHBvdyBtYXAgYWJzIG1heCAnICtcbiAgICAgICAgJ21pbiBnZXQgcnVuIHB1dCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnRElHSVRBTF9NRVNTQUdFIEZJUk1BVEFfU1RSSU5HIEFOQUxPR19NRVNTQUdFICcgK1xuICAgICAgICAnUkVQT1JUX0RJR0lUQUwgUkVQT1JUX0FOQUxPRyBJTlBVVF9QVUxMVVAgJyArXG4gICAgICAgICdTRVRfUElOX01PREUgSU5URVJOQUwyVjU2IFNZU1RFTV9SRVNFVCBMRURfQlVJTFRJTiAnICtcbiAgICAgICAgJ0lOVEVSTkFMMVYxIFNZU0VYX1NUQVJUIElOVEVSTkFMIEVYVEVSTkFMICcgK1xuICAgICAgICAnREVGQVVMVCBPVVRQVVQgSU5QVVQgSElHSCBMT1cnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQ1BQLnByZXByb2Nlc3NvcixcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgICAvL2xvY2FsIGxhYmVsczogJT9bRkJdP1tBVF0/XFxkezEsMn1cXHcrXG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbJ2FybSddLFxuICAgIGxleGVtZXM6ICdcXFxcLj8nICsgaGxqcy5JREVOVF9SRSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbWV0YTpcbiAgICAgICAgLy9HTlUgcHJlcHJvY3NcbiAgICAgICAgJy4yYnl0ZSAuNGJ5dGUgLmFsaWduIC5hc2NpaSAuYXNjaXogLmJhbGlnbiAuYnl0ZSAuY29kZSAuZGF0YSAuZWxzZSAuZW5kIC5lbmRpZiAuZW5kbSAuZW5kciAuZXF1IC5lcnIgLmV4aXRtIC5leHRlcm4gLmdsb2JhbCAuaHdvcmQgLmlmIC5pZmRlZiAuaWZuZGVmIC5pbmNsdWRlIC5pcnAgLmxvbmcgLm1hY3JvIC5yZXB0IC5yZXEgLnNlY3Rpb24gLnNldCAuc2tpcCAuc3BhY2UgLnRleHQgLndvcmQgLmFybSAudGh1bWIgLmNvZGUxNiAuY29kZTMyIC5mb3JjZV90aHVtYiAudGh1bWJfZnVuYyAubHRvcmcgJytcbiAgICAgICAgLy9BUk0gZGlyZWN0aXZlc1xuICAgICAgICAnQUxJQVMgQUxJR04gQVJNIEFSRUEgQVNTRVJUIEFUVFIgQ04gQ09ERSBDT0RFMTYgQ09ERTMyIENPTU1PTiBDUCBEQVRBIERDQiBEQ0QgRENEVSBEQ0RPIERDRkQgRENGRFUgRENJIERDUSBEQ1FVIERDVyBEQ1dVIEROIEVMSUYgRUxTRSBFTkQgRU5ERlVOQyBFTkRJRiBFTkRQIEVOVFJZIEVRVSBFWFBPUlQgRVhQT1JUQVMgRVhURVJOIEZJRUxEIEZJTEwgRlVOQ1RJT04gR0JMQSBHQkxMIEdCTFMgR0VUIEdMT0JBTCBJRiBJTVBPUlQgSU5DQklOIElOQ0xVREUgSU5GTyBLRUVQIExDTEEgTENMTCBMQ0xTIExUT1JHIE1BQ1JPIE1BUCBNRU5EIE1FWElUIE5PRlAgT1BUIFBSRVNFUlZFOCBQUk9DIFFOIFJFQURPTkxZIFJFTE9DIFJFUVVJUkUgUkVRVUlSRTggUkxJU1QgRk4gUk9VVCBTRVRBIFNFVEwgU0VUUyBTTiBTUEFDRSBTVUJUIFRIVU1CIFRIVU1CWCBUVEwgV0hJTEUgV0VORCAnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdyMCByMSByMiByMyByNCByNSByNiByNyByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSAnKyAvL3N0YW5kYXJkIHJlZ2lzdGVyc1xuICAgICAgICAncGMgbHIgc3AgaXAgc2wgc2IgZnAgJysgLy90eXBpY2FsIHJlZ3MgcGx1cyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgICdhMSBhMiBhMyBhNCB2MSB2MiB2MyB2NCB2NSB2NiB2NyB2OCBmMCBmMSBmMiBmMyBmNCBmNSBmNiBmNyAnKyAvL21vcmUgcmVncyBhbmQgZnBcbiAgICAgICAgJ3AwIHAxIHAyIHAzIHA0IHA1IHA2IHA3IHA4IHA5IHAxMCBwMTEgcDEyIHAxMyBwMTQgcDE1ICcrIC8vY29wcm9jZXNzb3IgcmVnc1xuICAgICAgICAnYzAgYzEgYzIgYzMgYzQgYzUgYzYgYzcgYzggYzkgYzEwIGMxMSBjMTIgYzEzIGMxNCBjMTUgJysgLy9tb3JlIGNvcHJvY1xuICAgICAgICAncTAgcTEgcTIgcTMgcTQgcTUgcTYgcTcgcTggcTkgcTEwIHExMSBxMTIgcTEzIHExNCBxMTUgJysgLy9hZHZhbmNlZCBTSU1EIE5FT04gcmVnc1xuXG4gICAgICAgIC8vcHJvZ3JhbSBzdGF0dXMgcmVnaXN0ZXJzXG4gICAgICAgICdjcHNyX2MgY3Bzcl94IGNwc3JfcyBjcHNyX2YgY3Bzcl9jeCBjcHNyX2N4cyBjcHNyX3hzIGNwc3JfeHNmIGNwc3Jfc2YgY3Bzcl9jeHNmICcrXG4gICAgICAgICdzcHNyX2Mgc3Bzcl94IHNwc3JfcyBzcHNyX2Ygc3Bzcl9jeCBzcHNyX2N4cyBzcHNyX3hzIHNwc3JfeHNmIHNwc3Jfc2Ygc3Bzcl9jeHNmICcrXG5cbiAgICAgICAgLy9ORU9OIGFuZCBWRlAgcmVnaXN0ZXJzXG4gICAgICAgICdzMCBzMSBzMiBzMyBzNCBzNSBzNiBzNyBzOCBzOSBzMTAgczExIHMxMiBzMTMgczE0IHMxNSAnK1xuICAgICAgICAnczE2IHMxNyBzMTggczE5IHMyMCBzMjEgczIyIHMyMyBzMjQgczI1IHMyNiBzMjcgczI4IHMyOSBzMzAgczMxICcrXG4gICAgICAgICdkMCBkMSBkMiBkMyBkNCBkNSBkNiBkNyBkOCBkOSBkMTAgZDExIGQxMiBkMTMgZDE0IGQxNSAnK1xuICAgICAgICAnZDE2IGQxNyBkMTggZDE5IGQyMCBkMjEgZDIyIGQyMyBkMjQgZDI1IGQyNiBkMjcgZDI4IGQyOSBkMzAgZDMxICcgK1xuXG4gICAgICAgICd7UEN9IHtWQVJ9IHtUUlVFfSB7RkFMU0V9IHtPUFR9IHtDT05GSUd9IHtFTkRJQU59IHtDT0RFU0laRX0ge0NQVX0ge0ZQVX0ge0FSQ0hJVEVDVFVSRX0ge1BDU1RPUkVPRkZTRVR9IHtBUk1BU01fVkVSU0lPTn0ge0lOVEVSfSB7Uk9QSX0ge1JXUEl9IHtTV1NUfSB7Tk9TV1NUfSAuIEAnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignKyAgICAgLy9tbmVtb25pY3NcbiAgICAgICAgICAgICdhZGN8JytcbiAgICAgICAgICAgICcocWQ/fHNoP3x1W3FoXT8pP2FkZCg4fDE2KT98dXNhZGE/OHwocXxzaD98dVtxaF0/KT8oYXN8c2EpeHwnK1xuICAgICAgICAgICAgJ2FuZHxhZHJsP3xzYmN8cnNbYmNdfGFzcnxiW2x4XT98Ymx4fGJ4anxjYm4/enx0YltiaF18YmljfCcrXG4gICAgICAgICAgICAnYmZjfGJmaXxbc3VdYmZ4fGJrcHR8Y2RwMj98Y2x6fGNscmV4fGNtcHxjbW58Y3BzaVtlZF18Y3BzfCcrXG4gICAgICAgICAgICAnc2V0ZW5kfGRiZ3xkbWJ8ZHNifGVvcnxpc2J8aXRbdGVdezAsM318bHNsfGxzcnxyb3J8cnJ4fCcrXG4gICAgICAgICAgICAnbGRtKChbaWRdW2FiXSl8Zltkc10pP3xsZHIoKHN8ZXgpP1tiaGRdKT98bW92dD98bXZufG1yYXxtYXJ8JytcbiAgICAgICAgICAgICdtdWx8W3VzXW11bGx8c211bFtid3RdW2J0XXxzbXVbYXNdZHxzbW11bHxzbW1sYXwnK1xuICAgICAgICAgICAgJ21sYXx1bWxhYWx8c21sYWw/KFt3YnRdW2J0XXxkKXxtbHN8c21sc2w/W2RzXXxzbWN8c3ZjfHNldnwnK1xuICAgICAgICAgICAgJ21pYShbYnRdezJ9fHBoKT98bXJyP2MyP3xtY3JyMj98bXJzfG1zcnxvcnJ8b3JufHBraCh0YnxidCl8cmJpdHwnK1xuICAgICAgICAgICAgJ3JldigxNnxzaCk/fHNlbHxbc3Vdc2F0KDE2KT98bm9wfHBvcHxwdXNofHJmZShbaWRdW2FiXSk/fCcrXG4gICAgICAgICAgICAnc3RtKFtpZF1bYWJdKT98c3RyKGV4KT9bYmhkXT98KHFkPyk/c3VifChzaD98cXx1W3FoXT8pP3N1Yig4fDE2KXwnK1xuICAgICAgICAgICAgJ1tzdV14dChhP2h8YT9iKDE2KT8pfHNycyhbaWRdW2FiXSk/fHN3cGI/fHN3aXxzbWl8dHN0fHRlcXwnK1xuICAgICAgICAgICAgJ3dmZXx3Zml8eWllbGQnK1xuICAgICAgICAnKScrXG4gICAgICAgICcoZXF8bmV8Y3N8Y2N8bWl8cGx8dnN8dmN8aGl8bHN8Z2V8bHR8Z3R8bGV8YWx8aHN8bG8pPycrIC8vY29uZGl0aW9uIGNvZGVzXG4gICAgICAgICdbc3B0cnhdPycgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbGVnYWwgcG9zdGZpeGVzXG4gICAgICAgIGVuZDogJ1xcXFxzJ1xuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnWztAXScsICckJywge3JlbGV2YW5jZTogMH0pLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcfCcsIGVuZDogJ1xcXFx8JyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge2JlZ2luOiAnWyMkPV0/MHhbMC05YS1mXSsnfSwgLy9oZXhcbiAgICAgICAgICAgIHtiZWdpbjogJ1sjJD1dPzBiWzAxXSsnfSwgICAgIC8vYmluXG4gICAgICAgICAgICB7YmVnaW46ICdbIyQ9XVxcXFxkKyd9LCAgICAgICAgLy9saXRlcmFsXG4gICAgICAgICAgICB7YmVnaW46ICdcXFxcYlxcXFxkKyd9ICAgICAgICAgICAvL2JhcmUgbnVtYmVyXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtiZWdpbjogJ15bYS16X1xcXFwuXFxcXCRdW2EtejAtOV9cXFxcLlxcXFwkXSsnfSwgLy9BUk0gc3ludGF4XG4gICAgICAgICAgICB7YmVnaW46ICdeXFxcXHMqW2Etel9cXFxcLlxcXFwkXVthLXowLTlfXFxcXC5cXFxcJF0rOid9LCAvL0dOVSBBUk0gc3ludGF4XG4gICAgICAgICAgICB7YmVnaW46ICdbPSNdXFxcXHcrJyB9ICAvL2xhYmVsIHJlZmVyZW5jZVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgWE1MX0lERU5UX1JFID0gJ1tBLVphLXowLTlcXFxcLl86LV0rJztcbiAgdmFyIFRBR19JTlRFUk5BTFMgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgaWxsZWdhbDogLzwvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IFhNTF9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLz1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge2JlZ2luOiAvXCIvLCBlbmQ6IC9cIi99LFxuICAgICAgICAgICAgICB7YmVnaW46IC8nLywgZW5kOiAvJy99LFxuICAgICAgICAgICAgICB7YmVnaW46IC9bXlxcc1wiJz08PmBdKy99XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnaHRtbCcsICd4aHRtbCcsICdyc3MnLCAnYXRvbScsICd4amInLCAneHNkJywgJ3hzbCcsICdwbGlzdCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnPCFET0NUWVBFJywgZW5kOiAnPicsXG4gICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnXFxcXFsnLCBlbmQ6ICdcXFxcXSd9XVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzwhLS0nLFxuICAgICAgICAnLS0+JyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8XFxcXCFcXFxcW0NEQVRBXFxcXFsnLCBlbmQ6ICdcXFxcXVxcXFxdPicsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPFxcPyhwaHApPy8sIGVuZDogL1xcPz4vLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BocCcsXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnL1xcXFwqJywgZW5kOiAnXFxcXCovJywgc2tpcDogdHJ1ZX1dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgICAgICAvKlxuICAgICAgICBUaGUgbG9va2FoZWFkIHBhdHRlcm4gKD89Li4uKSBlbnN1cmVzIHRoYXQgJ2JlZ2luJyBvbmx5IG1hdGNoZXNcbiAgICAgICAgJzxzdHlsZScgYXMgYSBzaW5nbGUgd29yZCwgZm9sbG93ZWQgYnkgYSB3aGl0ZXNwYWNlIG9yIGFuXG4gICAgICAgIGVuZGluZyBicmFrZXQuIFRoZSAnJCcgaXMgbmVlZGVkIGZvciB0aGUgbGV4ZW1lIHRvIGJlIHJlY29nbml6ZWRcbiAgICAgICAgYnkgaGxqcy5zdWJNb2RlKCkgdGhhdCB0ZXN0cyBsZXhlbWVzIG91dHNpZGUgdGhlIHN0cmVhbS5cbiAgICAgICAgKi9cbiAgICAgICAgYmVnaW46ICc8c3R5bGUoPz1cXFxcc3w+fCQpJywgZW5kOiAnPicsXG4gICAgICAgIGtleXdvcmRzOiB7bmFtZTogJ3N0eWxlJ30sXG4gICAgICAgIGNvbnRhaW5zOiBbVEFHX0lOVEVSTkFMU10sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJzwvc3R5bGU+JywgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiBbJ2NzcycsICd4bWwnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgICAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gdGhlIDxzdHlsZSB0YWcgYWJvdXQgdGhlIGxvb2thaGVhZCBwYXR0ZXJuXG4gICAgICAgIGJlZ2luOiAnPHNjcmlwdCg/PVxcXFxzfD58JCknLCBlbmQ6ICc+JyxcbiAgICAgICAga2V5d29yZHM6IHtuYW1lOiAnc2NyaXB0J30sXG4gICAgICAgIGNvbnRhaW5zOiBbVEFHX0lOVEVSTkFMU10sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJ1xcPFxcL3NjcmlwdFxcPicsIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogWydhY3Rpb25zY3JpcHQnLCAnamF2YXNjcmlwdCcsICdoYW5kbGViYXJzJywgJ3htbCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogLzxcXD94bWwvLCBlbmQ6IC9cXD8+LywgcmVsZXZhbmNlOiAxMH0sXG4gICAgICAgICAge2JlZ2luOiAvPFxcP1xcdysvLCBlbmQ6IC9cXD8+L31cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGFnJyxcbiAgICAgICAgYmVnaW46ICc8Lz8nLCBlbmQ6ICcvPz4nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLCBiZWdpbjogL1teXFwvPjxcXHNdKy8sIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgVEFHX0lOVEVSTkFMU1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2Fkb2MnXSxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gYmxvY2sgY29tbWVudFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnXi97NCx9XFxcXG4nLFxuICAgICAgICAnXFxcXG4vezQsfSQnLFxuICAgICAgICAvLyBjYW4gYWxzbyBiZSBkb25lIGFzLi4uXG4gICAgICAgIC8vJ14vezQsfSQnLFxuICAgICAgICAvLydeL3s0LH0kJyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIC8vIGxpbmUgY29tbWVudFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnXi8vJyxcbiAgICAgICAgJyQnLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICAvLyB0aXRsZVxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFwuXFxcXHcuKiQnXG4gICAgICB9LFxuICAgICAgLy8gZXhhbXBsZSwgYWRtb25pdGlvbiAmIHNpZGViYXIgYmxvY2tzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXls9XFxcXCpdezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5eWz1cXFxcKl17NCx9JCcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICAvLyBoZWFkaW5nc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46ICdeKD17MSw1fSkgLis/KCBcXFxcMSk/JCd9LFxuICAgICAgICAgIHtiZWdpbjogJ15bXlxcXFxbXFxcXF1cXFxcbl0rP1xcXFxuWz1cXFxcLX5cXFxcXlxcXFwrXXsyLH0kJ30sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBkb2N1bWVudCBhdHRyaWJ1dGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ146Lis/OicsXG4gICAgICAgIGVuZDogJ1xcXFxzJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGJsb2NrIGF0dHJpYnV0ZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxbLis/XFxcXF0kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gcXVvdGVibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncXVvdGUnLFxuICAgICAgICBiZWdpbjogJ15fezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5fezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gbGlzdGluZyBhbmQgbGl0ZXJhbCBibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAnXltcXFxcLVxcXFwuXXs0LH1cXFxcbicsXG4gICAgICAgIGVuZDogJ1xcXFxuW1xcXFwtXFxcXC5dezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gcGFzc3Rocm91Z2ggYmxvY2tzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXlxcXFwrezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5cXFxcK3s0LH0kJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJzwnLCBlbmQ6ICc+JyxcbiAgICAgICAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGxpc3RzIChjYW4gb25seSBjYXB0dXJlIGluZGljYXRvcnMpXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1bGxldCcsXG4gICAgICAgIGJlZ2luOiAnXihcXFxcKit8XFxcXC0rfFxcXFwuK3xbXlxcXFxuXSs/OjopXFxcXHMrJ1xuICAgICAgfSxcbiAgICAgIC8vIGFkbW9uaXRpb25cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeKE5PVEV8VElQfElNUE9SVEFOVHxXQVJOSU5HfENBVVRJT04pOlxcXFxzKycsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICAvLyBpbmxpbmUgc3Ryb25nXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgICAgIC8vIG11c3Qgbm90IGZvbGxvdyBhIHdvcmQgY2hhcmFjdGVyIG9yIGJlIGZvbGxvd2VkIGJ5IGFuIGFzdGVyaXNrIG9yIHNwYWNlXG4gICAgICAgIGJlZ2luOiAnXFxcXEJcXFxcKig/IVtcXFxcKlxcXFxzXSknLFxuICAgICAgICBlbmQ6ICcoXFxcXG57Mn18XFxcXCopJyxcbiAgICAgICAgLy8gYWxsb3cgZXNjYXBlZCBhc3RlcmlzayBmb2xsb3dlZCBieSB3b3JkIGNoYXJcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxcXFxcKlxcXFx3JyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGlubGluZSBlbXBoYXNpc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdlbXBoYXNpcycsXG4gICAgICAgIC8vIG11c3Qgbm90IGZvbGxvdyBhIHdvcmQgY2hhcmFjdGVyIG9yIGJlIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIHF1b3RlIG9yIHNwYWNlXG4gICAgICAgIGJlZ2luOiAnXFxcXEJcXCcoPyFbXFwnXFxcXHNdKScsXG4gICAgICAgIGVuZDogJyhcXFxcbnsyfXxcXCcpJyxcbiAgICAgICAgLy8gYWxsb3cgZXNjYXBlZCBzaW5nbGUgcXVvdGUgZm9sbG93ZWQgYnkgd29yZCBjaGFyXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcXFxcXFxcJ1xcXFx3JyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIGVtcGhhc2lzIChhbHQpXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2VtcGhhc2lzJyxcbiAgICAgICAgLy8gbXVzdCBub3QgZm9sbG93IGEgd29yZCBjaGFyYWN0ZXIgb3IgYmUgZm9sbG93ZWQgYnkgYW4gdW5kZXJsaW5lIG9yIHNwYWNlXG4gICAgICAgIGJlZ2luOiAnXyg/IVtfXFxcXHNdKScsXG4gICAgICAgIGVuZDogJyhcXFxcbnsyfXxfKScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIGlubGluZSBzbWFydCBxdW90ZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46IFwiYGAuKz8nJ1wifSxcbiAgICAgICAgICB7YmVnaW46IFwiYC4rPydcIn1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGlubGluZSBjb2RlIHNuaXBwZXRzIChUT0RPIHNob3VsZCBnZXQgc2FtZSB0cmVhdG1lbnQgYXMgc3Ryb25nIGFuZCBlbXBoYXNpcylcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAnKGAuKz9gfFxcXFwrLis/XFxcXCspJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaW5kZW50ZWQgbGl0ZXJhbCBibG9ja1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb2RlJyxcbiAgICAgICAgYmVnaW46ICdeWyBcXFxcdF0nLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaG9yaXpvbnRhbCBydWxlc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ15cXCd7Myx9WyBcXFxcdF0qJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICAvLyBpbWFnZXMgYW5kIGxpbmtzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKGxpbms6KT8oaHR0cHxodHRwc3xmdHB8ZmlsZXxpcmN8aW1hZ2U6Pyk6XFxcXFMrXFxcXFsuKj9cXFxcXScsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnKGxpbmt8aW1hZ2U6Pyk6JyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnbGluaycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFx3JyxcbiAgICAgICAgICAgIGVuZDogJ1teXFxcXFtdKycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID1cbiAgICAnZmFsc2Ugc3luY2hyb25pemVkIGludCBhYnN0cmFjdCBmbG9hdCBwcml2YXRlIGNoYXIgYm9vbGVhbiBzdGF0aWMgbnVsbCBpZiBjb25zdCAnICtcbiAgICAnZm9yIHRydWUgd2hpbGUgbG9uZyB0aHJvdyBzdHJpY3RmcCBmaW5hbGx5IHByb3RlY3RlZCBpbXBvcnQgbmF0aXZlIGZpbmFsIHJldHVybiB2b2lkICcgK1xuICAgICdlbnVtIGVsc2UgZXh0ZW5kcyBpbXBsZW1lbnRzIGJyZWFrIHRyYW5zaWVudCBuZXcgY2F0Y2ggaW5zdGFuY2VvZiBieXRlIHN1cGVyIHZvbGF0aWxlIGNhc2UgJyArXG4gICAgJ2Fzc2VydCBzaG9ydCBwYWNrYWdlIGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdGhyb3dzIHByaXZpbGVnZWQgJyArXG4gICAgJ2FzcGVjdE9mIGFkdmljZWV4ZWN1dGlvbiBwcm9jZWVkIGNmbG93YmVsb3cgY2Zsb3cgaW5pdGlhbGl6YXRpb24gcHJlaW5pdGlhbGl6YXRpb24gJyArXG4gICAgJ3N0YXRpY2luaXRpYWxpemF0aW9uIHdpdGhpbmNvZGUgdGFyZ2V0IHdpdGhpbiBleGVjdXRpb24gZ2V0V2l0aGluVHlwZU5hbWUgaGFuZGxlciAnICtcbiAgICAndGhpc0pvaW5Qb2ludCB0aGlzSm9pblBvaW50U3RhdGljUGFydCB0aGlzRW5jbG9zaW5nSm9pblBvaW50U3RhdGljUGFydCBkZWNsYXJlIHBhcmVudHMgJytcbiAgICAnd2FybmluZyBlcnJvciBzb2Z0IHByZWNlZGVuY2UgdGhpc0FzcGVjdEluc3RhbmNlJztcbiAgdmFyIFNIT1JUS0VZUyA9ICdnZXQgc2V0IGFyZ3MgY2FsbCc7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHMgOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsIDogLzxcXC98Iy8sXG4gICAgY29udGFpbnMgOiBbXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICcvXFxcXCpcXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlIDogMCxcbiAgICAgICAgICBjb250YWlucyA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gZWF0IHVwIEAncyBpbiBlbWFpbHMgdG8gcHJldmVudCB0aGVtIHRvIGJlIHJlY29nbml6ZWQgYXMgZG9jdGFnc1xuICAgICAgICAgICAgICBiZWdpbjogL1xcdytALywgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWUgOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW4gOiAnQFtBLVphLXpdKydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lIDogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkcyA6ICdhc3BlY3QnLFxuICAgICAgICBlbmQgOiAvW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kIDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbCA6IC9bOjtcIlxcW1xcXV0vLFxuICAgICAgICBjb250YWlucyA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbktleXdvcmRzIDogJ2V4dGVuZHMgaW1wbGVtZW50cyBwZXJ0eXBld2l0aGluIHBlcnRoaXMgcGVydGFyZ2V0IHBlcmNmbG93YmVsb3cgcGVyY2Zsb3cgaXNzaW5nbGV0b24nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbiA6IC9cXChbXlxcKV0qLyxcbiAgICAgICAgICAgIGVuZCA6IC9bKV0rLyxcbiAgICAgICAgICAgIGtleXdvcmRzIDogS0VZV09SRFMgKyAnICcgKyBTSE9SVEtFWVMsXG4gICAgICAgICAgICBleGNsdWRlRW5kIDogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZSA6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHMgOiAnY2xhc3MgaW50ZXJmYWNlJyxcbiAgICAgICAgZW5kIDogL1t7Oz1dLyxcbiAgICAgICAgZXhjbHVkZUVuZCA6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHMgOiAnY2xhc3MgaW50ZXJmYWNlJyxcbiAgICAgICAgaWxsZWdhbCA6IC9bOlwiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zIDogW1xuICAgICAgICAgIHtiZWdpbktleXdvcmRzIDogJ2V4dGVuZHMgaW1wbGVtZW50cyd9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEFzcGVjdEogQ29uc3RydWN0c1xuICAgICAgICBiZWdpbktleXdvcmRzIDogJ3BvaW50Y3V0IGFmdGVyIGJlZm9yZSBhcm91bmQgdGhyb3dpbmcgcmV0dXJuaW5nJyxcbiAgICAgICAgZW5kIDogL1spXS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQgOiBmYWxzZSxcbiAgICAgICAgaWxsZWdhbCA6IC9bXCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnMgOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW4gOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW4gOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnMgOiBbaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbiA6IC9bOl0vLFxuICAgICAgICByZXR1cm5CZWdpbiA6IHRydWUsXG4gICAgICAgIGVuZCA6IC9beztdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBleGNsdWRlRW5kIDogZmFsc2UsXG4gICAgICAgIGtleXdvcmRzIDogS0VZV09SRFMsXG4gICAgICAgIGlsbGVnYWwgOiAvW1wiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zIDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luIDogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzKlxcXFwoJyxcbiAgICAgICAgICAgIGtleXdvcmRzIDogS0VZV09SRFMgKyAnICcgKyBTSE9SVEtFWVMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyAnbmV3IE5hbWUoLi4uKSwgb3IgdGhyb3cgLi4uJyBmcm9tIGJlaW5nIHJlY29nbml6ZWQgYXMgYSBmdW5jdGlvbiBkZWZpbml0aW9uXG4gICAgICAgIGJlZ2luS2V5d29yZHMgOiAnbmV3IHRocm93JyxcbiAgICAgICAgcmVsZXZhbmNlIDogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gdGhlIGZ1bmN0aW9uIGNsYXNzIGlzIGEgYml0IGRpZmZlcmVudCBmb3IgQXNwZWN0SiBjb21wYXJlZCB0byB0aGUgSmF2YSBsYW5ndWFnZVxuICAgICAgICBjbGFzc05hbWUgOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbiA6IC9cXHcrICtcXHcrKFxcLik/XFx3K1xccypcXChbXlxcKV0qXFwpXFxzKigodGhyb3dzKVtcXHdcXHMsXSspP1tcXHs7XS8sXG4gICAgICAgIHJldHVybkJlZ2luIDogdHJ1ZSxcbiAgICAgICAgZW5kIDogL1t7Oz1dLyxcbiAgICAgICAga2V5d29yZHMgOiBLRVlXT1JEUyxcbiAgICAgICAgZXhjbHVkZUVuZCA6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zIDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luIDogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzKlxcXFwoJyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luIDogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zIDogW2hsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lIDogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbiA6IC9cXCgvLCBlbmQgOiAvXFwpLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGtleXdvcmRzIDogS0VZV09SRFMsXG4gICAgICAgICAgICBjb250YWlucyA6IFtcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIC8vIGFubm90YXRpb24gaXMgYWxzbyB1c2VkIGluIHRoaXMgbGFuZ3VhZ2VcbiAgICAgICAgY2xhc3NOYW1lIDogJ21ldGEnLFxuICAgICAgICBiZWdpbiA6ICdAW0EtWmEtel0rJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBCQUNLVElDS19FU0NBUEUgPSB7XG4gICAgYmVnaW46ICdgW1xcXFxzXFxcXFNdJ1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbICdhaGsnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdCcmVhayBDb250aW51ZSBDcml0aWNhbCBFeGl0IEV4aXRBcHAgR29zdWIgR290byBOZXcgT25FeGl0IFBhdXNlIHJldHVybiBTZXRCYXRjaExpbmVzIFNldFRpbWVyIFN1c3BlbmQgVGhyZWFkIFRocm93IFVudGlsIGFoa19pZCBhaGtfY2xhc3MgYWhrX3BpZCBhaGtfZXhlIGFoa19ncm91cCcsXG4gICAgICBsaXRlcmFsOiAnQXwwIHRydWUgZmFsc2UgTk9UIEFORCBPUicsXG4gICAgICBidWlsdF9pbjogJ0NvbVNwZWMgQ2xpcGJvYXJkIENsaXBib2FyZEFsbCBFcnJvckxldmVsJyxcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46ICdBX1thLXpBLVowLTldKydcbiAgICAgIH0sXG4gICAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2NvbnRhaW5zOiBbQkFDS1RJQ0tfRVNDQVBFXX0pLFxuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7cmVsZXZhbmNlOiAwfSksXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLCAvLyBGSVhFRFxuICAgICAgICBiZWdpbjogJyUoPz1bYS16QS1aMC05I18kQF0pJywgZW5kOiAnJScsXG4gICAgICAgIGlsbGVnYWw6ICdbXmEtekEtWjAtOSNfJEBdJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJ15cXFxccypcXFxcdytcXFxccyosJ1xuICAgICAgICAvL0kgZG9uJ3QgcmVhbGx5IGtub3cgaWYgdGhpcyBpcyB0b3RhbGx5IHJlbGV2YW50XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJywgXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKiNcXHcrJywgZW5kOickJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBjb250YWluczogW0JBQ0tUSUNLX0VTQ0FQRV0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAnXlteXFxcXG5cIjtdKzo6KD8hPSknfSxcbiAgICAgICAgICB7YmVnaW46ICdeW15cXFxcblwiO10rOig/IT0pJywgcmVsZXZhbmNlOiAwfSAvLyB6ZXJvIHJlbGV2YW5jZSBhcyBpdCBjYXRjaGVzIGEgbG90IG9mIHRoaW5nc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvbGxvd2VkIGJ5IGEgc2luZ2xlICc6JyBpbiBtYW55IGxhbmd1YWdlc1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBjb25zZWN1dGl2ZSBjb21tYXMsIG5vdCBmb3IgaGlnaGxpZ2h0aW5nIGJ1dCBqdXN0IGZvciByZWxldmFuY2VcbiAgICAgICAgYmVnaW46ICcsXFxcXHMqLCdcbiAgICAgIH1cbiAgICBdXG4gIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gICAgdmFyIEtFWVdPUkRTID0gJ0J5UmVmIENhc2UgQ29uc3QgQ29udGludWVDYXNlIENvbnRpbnVlTG9vcCAnICtcbiAgICAgICAgJ0RlZmF1bHQgRGltIERvIEVsc2UgRWxzZUlmIEVuZEZ1bmMgRW5kSWYgRW5kU2VsZWN0ICcgK1xuICAgICAgICAnRW5kU3dpdGNoIEVuZFdpdGggRW51bSBFeGl0IEV4aXRMb29wIEZvciBGdW5jICcgK1xuICAgICAgICAnR2xvYmFsIElmIEluIExvY2FsIE5leHQgUmVEaW0gUmV0dXJuIFNlbGVjdCBTdGF0aWMgJyArXG4gICAgICAgICdTdGVwIFN3aXRjaCBUaGVuIFRvIFVudGlsIFZvbGF0aWxlIFdFbmQgV2hpbGUgV2l0aCcsXG5cbiAgICAgICAgTElURVJBTCA9ICdUcnVlIEZhbHNlIEFuZCBOdWxsIE5vdCBPcicsXG5cbiAgICAgICAgQlVJTFRfSU4gPVxuICAgICAgICAgICdBYnMgQUNvcyBBZGxpYlJlZ2lzdGVyIEFkbGliVW5SZWdpc3RlciBBc2MgQXNjVyBBU2luIEFzc2lnbiBBVGFuIEF1dG9JdFNldE9wdGlvbiBBdXRvSXRXaW5HZXRUaXRsZSBBdXRvSXRXaW5TZXRUaXRsZSBCZWVwIEJpbmFyeSBCaW5hcnlMZW4gQmluYXJ5TWlkIEJpbmFyeVRvU3RyaW5nIEJpdEFORCBCaXROT1QgQml0T1IgQml0Um90YXRlIEJpdFNoaWZ0IEJpdFhPUiBCbG9ja0lucHV0IEJyZWFrIENhbGwgQ0RUcmF5IENlaWxpbmcgQ2hyIENoclcgQ2xpcEdldCBDbGlwUHV0IENvbnNvbGVSZWFkIENvbnNvbGVXcml0ZSBDb25zb2xlV3JpdGVFcnJvciBDb250cm9sQ2xpY2sgQ29udHJvbENvbW1hbmQgQ29udHJvbERpc2FibGUgQ29udHJvbEVuYWJsZSBDb250cm9sRm9jdXMgQ29udHJvbEdldEZvY3VzIENvbnRyb2xHZXRIYW5kbGUgQ29udHJvbEdldFBvcyBDb250cm9sR2V0VGV4dCBDb250cm9sSGlkZSBDb250cm9sTGlzdFZpZXcgQ29udHJvbE1vdmUgQ29udHJvbFNlbmQgQ29udHJvbFNldFRleHQgQ29udHJvbFNob3cgQ29udHJvbFRyZWVWaWV3IENvcyBEZWMgRGlyQ29weSBEaXJDcmVhdGUgRGlyR2V0U2l6ZSBEaXJNb3ZlIERpclJlbW92ZSBEbGxDYWxsIERsbENhbGxBZGRyZXNzIERsbENhbGxiYWNrRnJlZSBEbGxDYWxsYmFja0dldFB0ciBEbGxDYWxsYmFja1JlZ2lzdGVyIERsbENsb3NlIERsbE9wZW4gRGxsU3RydWN0Q3JlYXRlIERsbFN0cnVjdEdldERhdGEgRGxsU3RydWN0R2V0UHRyIERsbFN0cnVjdEdldFNpemUgRGxsU3RydWN0U2V0RGF0YSBEcml2ZUdldERyaXZlIERyaXZlR2V0RmlsZVN5c3RlbSBEcml2ZUdldExhYmVsIERyaXZlR2V0U2VyaWFsIERyaXZlR2V0VHlwZSBEcml2ZU1hcEFkZCBEcml2ZU1hcERlbCBEcml2ZU1hcEdldCBEcml2ZVNldExhYmVsIERyaXZlU3BhY2VGcmVlIERyaXZlU3BhY2VUb3RhbCBEcml2ZVN0YXR1cyBFbnZHZXQgRW52U2V0IEVudlVwZGF0ZSBFdmFsIEV4ZWN1dGUgRXhwIEZpbGVDaGFuZ2VEaXIgRmlsZUNsb3NlIEZpbGVDb3B5IEZpbGVDcmVhdGVOVEZTTGluayBGaWxlQ3JlYXRlU2hvcnRjdXQgRmlsZURlbGV0ZSBGaWxlRXhpc3RzIEZpbGVGaW5kRmlyc3RGaWxlIEZpbGVGaW5kTmV4dEZpbGUgRmlsZUZsdXNoIEZpbGVHZXRBdHRyaWIgRmlsZUdldEVuY29kaW5nIEZpbGVHZXRMb25nTmFtZSBGaWxlR2V0UG9zIEZpbGVHZXRTaG9ydGN1dCBGaWxlR2V0U2hvcnROYW1lIEZpbGVHZXRTaXplIEZpbGVHZXRUaW1lIEZpbGVHZXRWZXJzaW9uIEZpbGVJbnN0YWxsIEZpbGVNb3ZlIEZpbGVPcGVuIEZpbGVPcGVuRGlhbG9nIEZpbGVSZWFkIEZpbGVSZWFkTGluZSBGaWxlUmVhZFRvQXJyYXkgRmlsZVJlY3ljbGUgRmlsZVJlY3ljbGVFbXB0eSBGaWxlU2F2ZURpYWxvZyBGaWxlU2VsZWN0Rm9sZGVyIEZpbGVTZXRBdHRyaWIgRmlsZVNldEVuZCBGaWxlU2V0UG9zIEZpbGVTZXRUaW1lIEZpbGVXcml0ZSBGaWxlV3JpdGVMaW5lIEZsb29yIEZ0cFNldFByb3h5IEZ1bmNOYW1lIEdVSUNyZWF0ZSBHVUlDdHJsQ3JlYXRlQXZpIEdVSUN0cmxDcmVhdGVCdXR0b24gR1VJQ3RybENyZWF0ZUNoZWNrYm94IEdVSUN0cmxDcmVhdGVDb21ibyBHVUlDdHJsQ3JlYXRlQ29udGV4dE1lbnUgR1VJQ3RybENyZWF0ZURhdGUgR1VJQ3RybENyZWF0ZUR1bW15IEdVSUN0cmxDcmVhdGVFZGl0IEdVSUN0cmxDcmVhdGVHcmFwaGljIEdVSUN0cmxDcmVhdGVHcm91cCBHVUlDdHJsQ3JlYXRlSWNvbiBHVUlDdHJsQ3JlYXRlSW5wdXQgR1VJQ3RybENyZWF0ZUxhYmVsIEdVSUN0cmxDcmVhdGVMaXN0IEdVSUN0cmxDcmVhdGVMaXN0VmlldyBHVUlDdHJsQ3JlYXRlTGlzdFZpZXdJdGVtIEdVSUN0cmxDcmVhdGVNZW51IEdVSUN0cmxDcmVhdGVNZW51SXRlbSBHVUlDdHJsQ3JlYXRlTW9udGhDYWwgR1VJQ3RybENyZWF0ZU9iaiBHVUlDdHJsQ3JlYXRlUGljIEdVSUN0cmxDcmVhdGVQcm9ncmVzcyBHVUlDdHJsQ3JlYXRlUmFkaW8gR1VJQ3RybENyZWF0ZVNsaWRlciBHVUlDdHJsQ3JlYXRlVGFiIEdVSUN0cmxDcmVhdGVUYWJJdGVtIEdVSUN0cmxDcmVhdGVUcmVlVmlldyBHVUlDdHJsQ3JlYXRlVHJlZVZpZXdJdGVtIEdVSUN0cmxDcmVhdGVVcGRvd24gR1VJQ3RybERlbGV0ZSBHVUlDdHJsR2V0SGFuZGxlIEdVSUN0cmxHZXRTdGF0ZSBHVUlDdHJsUmVhZCBHVUlDdHJsUmVjdk1zZyBHVUlDdHJsUmVnaXN0ZXJMaXN0Vmlld1NvcnQgR1VJQ3RybFNlbmRNc2cgR1VJQ3RybFNlbmRUb0R1bW15IEdVSUN0cmxTZXRCa0NvbG9yIEdVSUN0cmxTZXRDb2xvciBHVUlDdHJsU2V0Q3Vyc29yIEdVSUN0cmxTZXREYXRhIEdVSUN0cmxTZXREZWZCa0NvbG9yIEdVSUN0cmxTZXREZWZDb2xvciBHVUlDdHJsU2V0Rm9udCBHVUlDdHJsU2V0R3JhcGhpYyBHVUlDdHJsU2V0SW1hZ2UgR1VJQ3RybFNldExpbWl0IEdVSUN0cmxTZXRPbkV2ZW50IEdVSUN0cmxTZXRQb3MgR1VJQ3RybFNldFJlc2l6aW5nIEdVSUN0cmxTZXRTdGF0ZSBHVUlDdHJsU2V0U3R5bGUgR1VJQ3RybFNldFRpcCBHVUlEZWxldGUgR1VJR2V0Q3Vyc29ySW5mbyBHVUlHZXRNc2cgR1VJR2V0U3R5bGUgR1VJUmVnaXN0ZXJNc2cgR1VJU2V0QWNjZWxlcmF0b3JzIEdVSVNldEJrQ29sb3IgR1VJU2V0Q29vcmQgR1VJU2V0Q3Vyc29yIEdVSVNldEZvbnQgR1VJU2V0SGVscCBHVUlTZXRJY29uIEdVSVNldE9uRXZlbnQgR1VJU2V0U3RhdGUgR1VJU2V0U3R5bGUgR1VJU3RhcnRHcm91cCBHVUlTd2l0Y2ggSGV4IEhvdEtleVNldCBIdHRwU2V0UHJveHkgSHR0cFNldFVzZXJBZ2VudCBIV25kIEluZXRDbG9zZSBJbmV0R2V0IEluZXRHZXRJbmZvIEluZXRHZXRTaXplIEluZXRSZWFkIEluaURlbGV0ZSBJbmlSZWFkIEluaVJlYWRTZWN0aW9uIEluaVJlYWRTZWN0aW9uTmFtZXMgSW5pUmVuYW1lU2VjdGlvbiBJbmlXcml0ZSBJbmlXcml0ZVNlY3Rpb24gSW5wdXRCb3ggSW50IElzQWRtaW4gSXNBcnJheSBJc0JpbmFyeSBJc0Jvb2wgSXNEZWNsYXJlZCBJc0RsbFN0cnVjdCBJc0Zsb2F0IElzRnVuYyBJc0hXbmQgSXNJbnQgSXNLZXl3b3JkIElzTnVtYmVyIElzT2JqIElzUHRyIElzU3RyaW5nIExvZyBNZW1HZXRTdGF0cyBNb2QgTW91c2VDbGljayBNb3VzZUNsaWNrRHJhZyBNb3VzZURvd24gTW91c2VHZXRDdXJzb3IgTW91c2VHZXRQb3MgTW91c2VNb3ZlIE1vdXNlVXAgTW91c2VXaGVlbCBNc2dCb3ggTnVtYmVyIE9iakNyZWF0ZSBPYmpDcmVhdGVJbnRlcmZhY2UgT2JqRXZlbnQgT2JqR2V0IE9iak5hbWUgT25BdXRvSXRFeGl0UmVnaXN0ZXIgT25BdXRvSXRFeGl0VW5SZWdpc3RlciBQaW5nIFBpeGVsQ2hlY2tzdW0gUGl4ZWxHZXRDb2xvciBQaXhlbFNlYXJjaCBQcm9jZXNzQ2xvc2UgUHJvY2Vzc0V4aXN0cyBQcm9jZXNzR2V0U3RhdHMgUHJvY2Vzc0xpc3QgUHJvY2Vzc1NldFByaW9yaXR5IFByb2Nlc3NXYWl0IFByb2Nlc3NXYWl0Q2xvc2UgUHJvZ3Jlc3NPZmYgUHJvZ3Jlc3NPbiBQcm9ncmVzc1NldCBQdHIgUmFuZG9tIFJlZ0RlbGV0ZSBSZWdFbnVtS2V5IFJlZ0VudW1WYWwgUmVnUmVhZCBSZWdXcml0ZSBSb3VuZCBSdW4gUnVuQXMgUnVuQXNXYWl0IFJ1bldhaXQgU2VuZCBTZW5kS2VlcEFjdGl2ZSBTZXRFcnJvciBTZXRFeHRlbmRlZCBTaGVsbEV4ZWN1dGUgU2hlbGxFeGVjdXRlV2FpdCBTaHV0ZG93biBTaW4gU2xlZXAgU291bmRQbGF5IFNvdW5kU2V0V2F2ZVZvbHVtZSBTcGxhc2hJbWFnZU9uIFNwbGFzaE9mZiBTcGxhc2hUZXh0T24gU3FydCBTUmFuZG9tIFN0YXR1c2JhckdldFRleHQgU3RkZXJyUmVhZCBTdGRpbldyaXRlIFN0ZGlvQ2xvc2UgU3Rkb3V0UmVhZCBTdHJpbmcgU3RyaW5nQWRkQ1IgU3RyaW5nQ29tcGFyZSBTdHJpbmdGb3JtYXQgU3RyaW5nRnJvbUFTQ0lJQXJyYXkgU3RyaW5nSW5TdHIgU3RyaW5nSXNBbE51bSBTdHJpbmdJc0FscGhhIFN0cmluZ0lzQVNDSUkgU3RyaW5nSXNEaWdpdCBTdHJpbmdJc0Zsb2F0IFN0cmluZ0lzSW50IFN0cmluZ0lzTG93ZXIgU3RyaW5nSXNTcGFjZSBTdHJpbmdJc1VwcGVyIFN0cmluZ0lzWERpZ2l0IFN0cmluZ0xlZnQgU3RyaW5nTGVuIFN0cmluZ0xvd2VyIFN0cmluZ01pZCBTdHJpbmdSZWdFeHAgU3RyaW5nUmVnRXhwUmVwbGFjZSBTdHJpbmdSZXBsYWNlIFN0cmluZ1JldmVyc2UgU3RyaW5nUmlnaHQgU3RyaW5nU3BsaXQgU3RyaW5nU3RyaXBDUiBTdHJpbmdTdHJpcFdTIFN0cmluZ1RvQVNDSUlBcnJheSBTdHJpbmdUb0JpbmFyeSBTdHJpbmdUcmltTGVmdCBTdHJpbmdUcmltUmlnaHQgU3RyaW5nVXBwZXIgVGFuIFRDUEFjY2VwdCBUQ1BDbG9zZVNvY2tldCBUQ1BDb25uZWN0IFRDUExpc3RlbiBUQ1BOYW1lVG9JUCBUQ1BSZWN2IFRDUFNlbmQgVENQU2h1dGRvd24sIFVEUFNodXRkb3duIFRDUFN0YXJ0dXAsIFVEUFN0YXJ0dXAgVGltZXJEaWZmIFRpbWVySW5pdCBUb29sVGlwIFRyYXlDcmVhdGVJdGVtIFRyYXlDcmVhdGVNZW51IFRyYXlHZXRNc2cgVHJheUl0ZW1EZWxldGUgVHJheUl0ZW1HZXRIYW5kbGUgVHJheUl0ZW1HZXRTdGF0ZSBUcmF5SXRlbUdldFRleHQgVHJheUl0ZW1TZXRPbkV2ZW50IFRyYXlJdGVtU2V0U3RhdGUgVHJheUl0ZW1TZXRUZXh0IFRyYXlTZXRDbGljayBUcmF5U2V0SWNvbiBUcmF5U2V0T25FdmVudCBUcmF5U2V0UGF1c2VJY29uIFRyYXlTZXRTdGF0ZSBUcmF5U2V0VG9vbFRpcCBUcmF5VGlwIFVCb3VuZCBVRFBCaW5kIFVEUENsb3NlU29ja2V0IFVEUE9wZW4gVURQUmVjdiBVRFBTZW5kIFZhckdldFR5cGUgV2luQWN0aXZhdGUgV2luQWN0aXZlIFdpbkNsb3NlIFdpbkV4aXN0cyBXaW5GbGFzaCBXaW5HZXRDYXJldFBvcyBXaW5HZXRDbGFzc0xpc3QgV2luR2V0Q2xpZW50U2l6ZSBXaW5HZXRIYW5kbGUgV2luR2V0UG9zIFdpbkdldFByb2Nlc3MgV2luR2V0U3RhdGUgV2luR2V0VGV4dCBXaW5HZXRUaXRsZSBXaW5LaWxsIFdpbkxpc3QgV2luTWVudVNlbGVjdEl0ZW0gV2luTWluaW1pemVBbGwgV2luTWluaW1pemVBbGxVbmRvIFdpbk1vdmUgV2luU2V0T25Ub3AgV2luU2V0U3RhdGUgV2luU2V0VGl0bGUgV2luU2V0VHJhbnMgV2luV2FpdCcsXG5cbiAgICAgICAgQ09NTUVOVCA9IHtcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywge3JlbGV2YW5jZTogMH0pLFxuICAgICAgICAgICAgICBobGpzLkNPTU1FTlQoJyNjcycsICcjY2UnKSxcbiAgICAgICAgICAgICAgaGxqcy5DT01NRU5UKCcjY29tbWVudHMtc3RhcnQnLCAnI2NvbW1lbnRzLWVuZCcpXG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG5cbiAgICAgICAgVkFSSUFCTEUgPSB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwkW0EtejAtOV9dKydcbiAgICAgICAgfSxcblxuICAgICAgICBTVFJJTkcgPSB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgdmFyaWFudHM6IFt7XG4gICAgICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbe1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgICAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvJycvLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfV1cbiAgICAgICAgfSxcblxuICAgICAgICBOVU1CRVIgPSB7XG4gICAgICAgICAgICB2YXJpYW50czogW2hsanMuQklOQVJZX05VTUJFUl9NT0RFLCBobGpzLkNfTlVNQkVSX01PREVdXG4gICAgICAgIH0sXG5cbiAgICAgICAgUFJFUFJPQ0VTU09SID0ge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnY29tbWVudHMgaW5jbHVkZSBpbmNsdWRlLW9uY2UgTm9UcmF5SWNvbiBPbkF1dG9JdFN0YXJ0UmVnaXN0ZXIgcHJhZ21hIGNvbXBpbGUgUmVxdWlyZUFkbWluJ30sXG4gICAgICAgICAgICBjb250YWluczogW3tcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5jbHVkZScsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiB7J21ldGEta2V5d29yZCc6ICdpbmNsdWRlJ30sXG4gICAgICAgICAgICAgICAgICAgIGVuZDogJyQnLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS1zdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6ICc+J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IFt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogLycnLyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAgICBDT01NRU5UXG4gICAgICAgICAgICBdXG4gICAgICAgIH0sXG5cbiAgICAgICAgQ09OU1RBTlQgPSB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICAgICAgLy8gYmVnaW46ICdAJyxcbiAgICAgICAgICAgIC8vIGVuZDogJyQnLFxuICAgICAgICAgICAgLy8ga2V5d29yZHM6ICdBcHBEYXRhQ29tbW9uRGlyIEFwcERhdGFEaXIgQXV0b0l0RXhlIEF1dG9JdFBJRCBBdXRvSXRWZXJzaW9uIEF1dG9JdFg2NCBDT01fRXZlbnRPYmogQ29tbW9uRmlsZXNEaXIgQ29tcGlsZWQgQ29tcHV0ZXJOYW1lIENvbVNwZWMgQ1BVQXJjaCBDUiBDUkxGIERlc2t0b3BDb21tb25EaXIgRGVza3RvcERlcHRoIERlc2t0b3BEaXIgRGVza3RvcEhlaWdodCBEZXNrdG9wUmVmcmVzaCBEZXNrdG9wV2lkdGggRG9jdW1lbnRzQ29tbW9uRGlyIGVycm9yIGV4aXRDb2RlIGV4aXRNZXRob2QgZXh0ZW5kZWQgRmF2b3JpdGVzQ29tbW9uRGlyIEZhdm9yaXRlc0RpciBHVUlfQ3RybEhhbmRsZSBHVUlfQ3RybElkIEdVSV9EcmFnRmlsZSBHVUlfRHJhZ0lkIEdVSV9Ecm9wSWQgR1VJX1dpbkhhbmRsZSBIb21lRHJpdmUgSG9tZVBhdGggSG9tZVNoYXJlIEhvdEtleVByZXNzZWQgSE9VUiBJUEFkZHJlc3MxIElQQWRkcmVzczIgSVBBZGRyZXNzMyBJUEFkZHJlc3M0IEtCTGF5b3V0IExGIExvY2FsQXBwRGF0YURpciBMb2dvbkROU0RvbWFpbiBMb2dvbkRvbWFpbiBMb2dvblNlcnZlciBNREFZIE1JTiBNT04gTVNFQyBNVUlMYW5nIE15RG9jdW1lbnRzRGlyIE51bVBhcmFtcyBPU0FyY2ggT1NCdWlsZCBPU0xhbmcgT1NTZXJ2aWNlUGFjayBPU1R5cGUgT1NWZXJzaW9uIFByb2dyYW1GaWxlc0RpciBQcm9ncmFtc0NvbW1vbkRpciBQcm9ncmFtc0RpciBTY3JpcHREaXIgU2NyaXB0RnVsbFBhdGggU2NyaXB0TGluZU51bWJlciBTY3JpcHROYW1lIFNFQyBTdGFydE1lbnVDb21tb25EaXIgU3RhcnRNZW51RGlyIFN0YXJ0dXBDb21tb25EaXIgU3RhcnR1cERpciBTV19ESVNBQkxFIFNXX0VOQUJMRSBTV19ISURFIFNXX0xPQ0sgU1dfTUFYSU1JWkUgU1dfTUlOSU1JWkUgU1dfUkVTVE9SRSBTV19TSE9XIFNXX1NIT1dERUZBVUxUIFNXX1NIT1dNQVhJTUlaRUQgU1dfU0hPV01JTklNSVpFRCBTV19TSE9XTUlOTk9BQ1RJVkUgU1dfU0hPV05BIFNXX1NIT1dOT0FDVElWQVRFIFNXX1NIT1dOT1JNQUwgU1dfVU5MT0NLIFN5c3RlbURpciBUQUIgVGVtcERpciBUUkFZX0lEIFRyYXlJY29uRmxhc2hpbmcgVHJheUljb25WaXNpYmxlIFVzZXJOYW1lIFVzZXJQcm9maWxlRGlyIFdEQVkgV2luZG93c0RpciBXb3JraW5nRGlyIFlEQVkgWUVBUicsXG4gICAgICAgICAgICAvLyByZWxldmFuY2U6IDVcbiAgICAgICAgICAgIGJlZ2luOiAnQFtBLXowLTlfXSsnXG4gICAgICAgIH0sXG5cbiAgICAgICAgRlVOQ1RJT04gPSB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbktleXdvcmRzOiAnRnVuYycsXG4gICAgICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdcXFxcJHxcXFxcW3wlJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICAgICAgICAgICAgTlVNQkVSXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgICAgICAgYnVpbHRfaW46IEJVSUxUX0lOLFxuICAgICAgICAgICAgbGl0ZXJhbDogTElURVJBTFxuICAgICAgICB9LFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAgICAgICAgQ09OU1RBTlQsXG4gICAgICAgICAgICBGVU5DVElPTlxuICAgICAgICBdXG4gICAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGxleGVtZXM6ICdcXFxcLj8nICsgaGxqcy5JREVOVF9SRSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgLyogbW5lbW9uaWMgKi9cbiAgICAgICAgJ2FkYyBhZGQgYWRpdyBhbmQgYW5kaSBhc3IgYmNsciBibGQgYnJiYyBicmJzIGJyY2MgYnJjcyBicmVhayBicmVxIGJyZ2UgYnJoYyBicmhzICcgK1xuICAgICAgICAnYnJpZCBicmllIGJybG8gYnJsdCBicm1pIGJybmUgYnJwbCBicnNoIGJydGMgYnJ0cyBicnZjIGJydnMgYnNldCBic3QgY2FsbCBjYmkgY2JyICcgK1xuICAgICAgICAnY2xjIGNsaCBjbGkgY2xuIGNsciBjbHMgY2x0IGNsdiBjbHogY29tIGNwIGNwYyBjcGkgY3BzZSBkZWMgZWljYWxsIGVpam1wIGVscG0gZW9yICcgK1xuICAgICAgICAnZm11bCBmbXVscyBmbXVsc3UgaWNhbGwgaWptcCBpbiBpbmMgam1wIGxkIGxkZCBsZGkgbGRzIGxwbSBsc2wgbHNyIG1vdiBtb3Z3IG11bCAnICtcbiAgICAgICAgJ211bHMgbXVsc3UgbmVnIG5vcCBvciBvcmkgb3V0IHBvcCBwdXNoIHJjYWxsIHJldCByZXRpIHJqbXAgcm9sIHJvciBzYmMgc2JyIHNicmMgc2JycyAnICtcbiAgICAgICAgJ3NlYyBzZWggc2JpIHNiY2kgc2JpYyBzYmlzIHNiaXcgc2VpIHNlbiBzZXIgc2VzIHNldCBzZXYgc2V6IHNsZWVwIHNwbSBzdCBzdGQgc3RzIHN1YiAnICtcbiAgICAgICAgJ3N1Ymkgc3dhcCB0c3Qgd2RyJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvKiBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzICovXG4gICAgICAgICdyMCByMSByMiByMyByNCByNSByNiByNyByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSByMTYgcjE3IHIxOCByMTkgcjIwIHIyMSByMjIgJyArXG4gICAgICAgICdyMjMgcjI0IHIyNSByMjYgcjI3IHIyOCByMjkgcjMwIHIzMSB4fDAgeGggeGwgeXwwIHloIHlsIHp8MCB6aCB6bCAnICtcbiAgICAgICAgLyogSU8gUmVnaXN0ZXJzIChBVE1lZ2ExMjgpICovXG4gICAgICAgICd1Y3NyMWMgdWRyMSB1Y3NyMWEgdWNzcjFiIHVicnIxbCB1YnJyMWggdWNzcjBjIHVicnIwaCB0Y2NyM2MgdGNjcjNhIHRjY3IzYiB0Y250M2ggJyArXG4gICAgICAgICd0Y250M2wgb2NyM2FoIG9jcjNhbCBvY3IzYmggb2NyM2JsIG9jcjNjaCBvY3IzY2wgaWNyM2ggaWNyM2wgZXRpbXNrIGV0aWZyIHRjY3IxYyAnICtcbiAgICAgICAgJ29jcjFjaCBvY3IxY2wgdHdjciB0d2RyIHR3YXIgdHdzciB0d2JyIG9zY2NhbCB4bWNyYSB4bWNyYiBlaWNyYSBzcG1jc3Igc3BtY3IgcG9ydGcgJyArXG4gICAgICAgICdkZHJnIHBpbmcgcG9ydGYgZGRyZiBzcmVnIHNwaCBzcGwgeGRpdiByYW1weiBlaWNyYiBlaW1zayBnaW1zayBnaWNyIGVpZnIgZ2lmciB0aW1zayAnICtcbiAgICAgICAgJ3RpZnIgbWN1Y3IgbWN1Y3NyIHRjY3IwIHRjbnQwIG9jcjAgYXNzciB0Y2NyMWEgdGNjcjFiIHRjbnQxaCB0Y250MWwgb2NyMWFoIG9jcjFhbCAnICtcbiAgICAgICAgJ29jcjFiaCBvY3IxYmwgaWNyMWggaWNyMWwgdGNjcjIgdGNudDIgb2NyMiBvY2RyIHdkdGNyIHNmaW9yIGVlYXJoIGVlYXJsIGVlZHIgZWVjciAnICtcbiAgICAgICAgJ3BvcnRhIGRkcmEgcGluYSBwb3J0YiBkZHJiIHBpbmIgcG9ydGMgZGRyYyBwaW5jIHBvcnRkIGRkcmQgcGluZCBzcGRyIHNwc3Igc3BjciB1ZHIwICcgK1xuICAgICAgICAndWNzcjBhIHVjc3IwYiB1YnJyMGwgYWNzciBhZG11eCBhZGNzciBhZGNoIGFkY2wgcG9ydGUgZGRyZSBwaW5lIHBpbmYnLFxuICAgICAgbWV0YTpcbiAgICAgICAgJy5ieXRlIC5jc2VnIC5kYiAuZGVmIC5kZXZpY2UgLmRzZWcgLmR3IC5lbmRtYWNybyAuZXF1IC5lc2VnIC5leGl0IC5pbmNsdWRlIC5saXN0ICcgK1xuICAgICAgICAnLmxpc3RtYWMgLm1hY3JvIC5ub2xpc3QgLm9yZyAuc2V0J1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICc7JyxcbiAgICAgICAgJyQnLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsIC8vIDB4Li4uLCBkZWNpbWFsLCBmbG9hdFxuICAgICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsIC8vIDBiLi4uXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXCRbYS16QS1aMC05XSt8MG9bMC03XSspJyAvLyAkLi4uLCAwby4uLlxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnW15cXFxcXFxcXF1bXlxcJ10nXG4gICAgICB9LFxuICAgICAge2NsYXNzTmFtZTogJ3N5bWJvbCcsICBiZWdpbjogJ15bQS1aYS16MC05Xy4kXSs6J30sXG4gICAgICB7Y2xhc3NOYW1lOiAnbWV0YScsIGJlZ2luOiAnIycsIGVuZDogJyQnfSxcbiAgICAgIHsgIC8vINC/0L7QtNGB0YLQsNC90L7QstC60LAg0LIgwqsubWFjcm/Cu1xuICAgICAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgICAgIGJlZ2luOiAnQFswLTldKydcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IC9cXCRbXFx3XFxkI0BdW1xcd1xcZF9dKi99LFxuICAgICAge2JlZ2luOiAvXFwkXFx7KC4qPyl9L31cbiAgICBdXG4gIH07XG4gIHZhciBLRVlXT1JEUyA9ICdCRUdJTiBFTkQgaWYgZWxzZSB3aGlsZSBkbyBmb3IgaW4gYnJlYWsgY29udGludWUgZGVsZXRlIG5leHQgbmV4dGZpbGUgZnVuY3Rpb24gZnVuYyBleGl0fDEwJztcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyh1fGIpP3I/JycnLywgZW5kOiAvJycnLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8odXxiKT9yP1wiXCJcIi8sIGVuZDogL1wiXCJcIi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1ciknLywgZW5kOiAvJy8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1cilcIi8sIGVuZDogL1wiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oYnxiciknLywgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKGJ8YnIpXCIvLCBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuICByZXR1cm4ge1xuXHQga2V5d29yZHM6IHtcblx0ICAga2V5d29yZDogS0VZV09SRFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFNUUklORyxcbiAgICAgIGhsanMuUkVHRVhQX01PREUsXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgIF1cbiAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBrZXl3b3JkczogJ2ZhbHNlIGludCBhYnN0cmFjdCBwcml2YXRlIGNoYXIgYm9vbGVhbiBzdGF0aWMgbnVsbCBpZiBmb3IgdHJ1ZSAnICtcbiAgICAgICd3aGlsZSBsb25nIHRocm93IGZpbmFsbHkgcHJvdGVjdGVkIGZpbmFsIHJldHVybiB2b2lkIGVudW0gZWxzZSAnICtcbiAgICAgICdicmVhayBuZXcgY2F0Y2ggYnl0ZSBzdXBlciBjYXNlIHNob3J0IGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggJyArXG4gICAgICAnY29udGludWUgcmV2ZXJzZSBmaXJzdGZhc3QgZmlyc3Rvbmx5IGZvcnVwZGF0ZSBub2ZldGNoIHN1bSBhdmcgbWlub2YgbWF4b2YgY291bnQgJyArXG4gICAgICAnb3JkZXIgZ3JvdXAgYnkgYXNjIGRlc2MgaW5kZXggaGludCBsaWtlIGRpc3BhbHkgZWRpdCBjbGllbnQgc2VydmVyIHR0c2JlZ2luICcgK1xuICAgICAgJ3R0c2NvbW1pdCBzdHIgcmVhbCBkYXRlIGNvbnRhaW5lciBhbnl0eXBlIGNvbW1vbiBkaXYgbW9kJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLCBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MgaW50ZXJmYWNlJywgZW5kOiAneycsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICc6JyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7YmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cyd9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovfSxcbiAgICAgIHtiZWdpbjogL1xcJFxceyguKj8pfS99XG4gICAgXVxuICB9O1xuICB2YXIgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cIi8sIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICB2YXIgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLCBlbmQ6IC8nL1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydzaCcsICd6c2gnXSxcbiAgICBsZXhlbWVzOiAvXFxiLT9bYS16XFwuX10rXFxiLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2lmIHRoZW4gZWxzZSBlbGlmIGZpIGZvciB3aGlsZSBpbiBkbyBkb25lIGNhc2UgZXNhYyBmdW5jdGlvbicsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gU2hlbGwgYnVpbHQtaW5zXG4gICAgICAgIC8vIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtQnVpbHRpbi1Db21tYW5kcy5odG1sXG4gICAgICAgICdicmVhayBjZCBjb250aW51ZSBldmFsIGV4ZWMgZXhpdCBleHBvcnQgZ2V0b3B0cyBoYXNoIHB3ZCByZWFkb25seSByZXR1cm4gc2hpZnQgdGVzdCB0aW1lcyAnICtcbiAgICAgICAgJ3RyYXAgdW1hc2sgdW5zZXQgJyArXG4gICAgICAgIC8vIEJhc2ggYnVpbHQtaW5zXG4gICAgICAgICdhbGlhcyBiaW5kIGJ1aWx0aW4gY2FsbGVyIGNvbW1hbmQgZGVjbGFyZSBlY2hvIGVuYWJsZSBoZWxwIGxldCBsb2NhbCBsb2dvdXQgbWFwZmlsZSBwcmludGYgJyArXG4gICAgICAgICdyZWFkIHJlYWRhcnJheSBzb3VyY2UgdHlwZSB0eXBlc2V0IHVsaW1pdCB1bmFsaWFzICcgK1xuICAgICAgICAvLyBTaGVsbCBtb2RpZmllcnNcbiAgICAgICAgJ3NldCBzaG9wdCAnICtcbiAgICAgICAgLy8gWnNoIGJ1aWx0LWluc1xuICAgICAgICAnYXV0b2xvYWQgYmcgYmluZGtleSBieWUgY2FwIGNoZGlyIGNsb25lIGNvbXBhcmd1bWVudHMgY29tcGNhbGwgY29tcGN0bCBjb21wZGVzY3JpYmUgY29tcGZpbGVzICcgK1xuICAgICAgICAnY29tcGdyb3VwcyBjb21wcXVvdGUgY29tcHRhZ3MgY29tcHRyeSBjb21wdmFsdWVzIGRpcnMgZGlzYWJsZSBkaXNvd24gZWNob3RjIGVjaG90aSBlbXVsYXRlICcgK1xuICAgICAgICAnZmMgZmcgZmxvYXQgZnVuY3Rpb25zIGdldGNhcCBnZXRsbiBoaXN0b3J5IGludGVnZXIgam9icyBraWxsIGxpbWl0IGxvZyBub2dsb2IgcG9wZCBwcmludCAnICtcbiAgICAgICAgJ3B1c2hkIHB1c2hsbiByZWhhc2ggc2NoZWQgc2V0Y2FwIHNldG9wdCBzdGF0IHN1c3BlbmQgdHR5Y3RsIHVuZnVuY3Rpb24gdW5oYXNoIHVubGltaXQgJyArXG4gICAgICAgICd1bnNldG9wdCB2YXJlZCB3YWl0IHdoZW5jZSB3aGVyZSB3aGljaCB6Y29tcGlsZSB6Zm9ybWF0IHpmdHAgemxlIHptb2Rsb2FkIHpwYXJzZW9wdHMgenByb2YgJyArXG4gICAgICAgICd6cHR5IHpyZWdleHBhcnNlIHpzb2NrZXQgenN0eWxlIHp0Y3AnLFxuICAgICAgXzpcbiAgICAgICAgJy1uZSAtZXEgLWx0IC1ndCAtZiAtZCAtZSAtcyAtbCAtYScgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL14jIVteXFxuXStzaFxccyokLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogL1xcd1tcXHdcXGRfXSpcXHMqXFwoXFxzKlxcKVxccypcXHsvLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IC9cXHdbXFx3XFxkX10qL30pXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEFQT1NfU1RSSU5HLFxuICAgICAgVkFSXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdeXFwuJyxcbiAgICAvLyBTdXBwb3J0IGV4cGxpY2l0ZWx5IHR5cGVkIHZhcmlhYmxlcyB0aGF0IGVuZCB3aXRoICQlISBvciAjLlxuICAgIGxleGVtZXM6ICdbYS16QS1aXVthLXpBLVowLTlfXFwkXFwlXFwhXFwjXSonLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgJ0FCUyBBU0MgQU5EIEFUTiBBVVRPfDAgQkVFUCBCTE9BRHwxMCBCU0FWRXwxMCBDQUxMIENBTExTIENEQkwgQ0hBSU4gQ0hESVIgQ0hSJHwxMCBDSU5UIENJUkNMRSAnICtcbiAgICAgICAgICAnQ0xFQVIgQ0xPU0UgQ0xTIENPTE9SIENPTSBDT01NT04gQ09OVCBDT1MgQ1NORyBDU1JMSU4gQ1ZEIENWSSBDVlMgREFUQSBEQVRFJCAnICtcbiAgICAgICAgICAnREVGREJMIERFRklOVCBERUZTTkcgREVGU1RSIERFRnwwIFNFRyBVU1IgREVMRVRFIERJTSBEUkFXIEVESVQgRU5EIEVOVklST04gRU5WSVJPTiQgJyArXG4gICAgICAgICAgJ0VPRiBFUVYgRVJBU0UgRVJERVYgRVJERVYkIEVSTCBFUlIgRVJST1IgRVhQIEZJRUxEIEZJTEVTIEZJWCBGT1J8MCBGUkUgR0VUIEdPU1VCfDEwIEdPVE8gJyArXG4gICAgICAgICAgJ0hFWCQgSUZ8MCBUSEVOIEVMU0V8MCBJTktFWSQgSU5QIElOUFVUIElOUFVUIyBJTlBVVCQgSU5TVFIgSU1QIElOVCBJT0NUTCBJT0NUTCQgS0VZIE9OICcgK1xuICAgICAgICAgICdPRkYgTElTVCBLSUxMIExFRlQkIExFTiBMRVQgTElORSBMTElTVCBMT0FEIExPQyBMT0NBVEUgTE9GIExPRyBMUFJJTlQgVVNJTkcgTFNFVCAnICtcbiAgICAgICAgICAnTUVSR0UgTUlEJCBNS0RJUiBNS0QkIE1LSSQgTUtTJCBNT0QgTkFNRSBORVcgTkVYVCBOT0lTRSBOT1QgT0NUJCBPTiBPUiBQRU4gUExBWSBTVFJJRyBPUEVOIE9QVElPTiAnICtcbiAgICAgICAgICAnQkFTRSBPVVQgUEFJTlQgUEFMRVRURSBQQ09QWSBQRUVLIFBNQVAgUE9JTlQgUE9LRSBQT1MgUFJJTlQgUFJJTlRdIFBTRVQgUFJFU0VUICcgK1xuICAgICAgICAgICdQVVQgUkFORE9NSVpFIFJFQUQgUkVNIFJFTlVNIFJFU0VUfDAgUkVTVE9SRSBSRVNVTUUgUkVUVVJOfDAgUklHSFQkIFJNRElSIFJORCBSU0VUICcgK1xuICAgICAgICAgICdSVU4gU0FWRSBTQ1JFRU4gU0dOIFNIRUxMIFNJTiBTT1VORCBTUEFDRSQgU1BDIFNRUiBTVEVQIFNUSUNLIFNUT1AgU1RSJCBTVFJJTkckIFNXQVAgJyArXG4gICAgICAgICAgJ1NZU1RFTSBUQUIgVEFOIFRJTUUkIFRJTUVSIFRST0ZGIFRST04gVE8gVVNSIFZBTCBWQVJQVFIgVkFSUFRSJCBWSUVXIFdBSVQgV0hJTEUgJyArXG4gICAgICAgICAgJ1dFTkQgV0lEVEggV0lORE9XIFdSSVRFIFhPUidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DT01NRU5UKCdSRU0nLCAnJCcsIHtyZWxldmFuY2U6IDEwfSksXG4gICAgICBobGpzLkNPTU1FTlQoJ1xcJycsICckJywge3JlbGV2YW5jZTogMH0pLFxuICAgICAge1xuICAgICAgICAvLyBNYXRjaCBsaW5lIG51bWJlcnNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeWzAtOV0rXFwgJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggdHlwZWQgbnVtZXJpYyBjb25zdGFudHMgKDEwMDAsIDEyLjM0ISwgMS4yZTUsIDEuNSMsIDEuMkQyKVxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKFswLTldK1swLTllZEVEXFwuXSpbI1xcIV0/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggaGV4YWRlY2ltYWwgbnVtYmVycyAoJkh4eHh4KVxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJyhcXCZbaEhdWzAtOWEtZkEtRl17MSw0fSknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBNYXRjaCBvY3RhbCBudW1iZXJzICgmT3h4eHh4eClcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICcoXFwmW29PXVswLTddezEsNn0pJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKXtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgICAgLy8gQXR0cmlidXRlXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAvPC8sIGVuZDogLz4vXG4gICAgICB9LFxuICAgICAgLy8gU3BlY2lmaWNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC86Oj0vLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLzwvLCBlbmQ6IC8+L1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcyl7XG4gIHZhciBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAnW1xcXFwrXFxcXC1dJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2JmJ10sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ1teXFxcXFtcXFxcXVxcXFwuLFxcXFwrXFxcXC08PiBcXHJcXG5dJyxcbiAgICAgICAgJ1tcXFxcW1xcXFxdXFxcXC4sXFxcXCtcXFxcLTw+IFxcclxcbl0nLFxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIGJlZ2luOiAnW1xcXFxbXFxcXF1dJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1tcXFxcLixdJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0aGlzIG1vZGUgd29ya3MgYXMgdGhlIG9ubHkgcmVsZXZhbmNlIGNvdW50ZXJcbiAgICAgICAgYmVnaW46IC9cXCtcXCt8XFwtXFwtLywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbTElURVJBTF1cbiAgICAgIH0sXG4gICAgICBMSVRFUkFMXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID1cbiAgICAnZGl2IG1vZCBpbiBhbmQgb3Igbm90IHhvciBhc3NlcnRlcnJvciBiZWdpbiBjYXNlIGRvIGRvd250byBlbHNlIGVuZCBleGl0IGZvciBpZiBvZiByZXBlYXQgdGhlbiB0byAnICtcbiAgICAndW50aWwgd2hpbGUgd2l0aCB2YXInO1xuICB2YXIgTElURVJBTFMgPSAnZmFsc2UgdHJ1ZSc7XG4gIHZhciBDT01NRU5UX01PREVTID0gW1xuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFx7LyxcbiAgICAgIC9cXH0vLFxuICAgICAge1xuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICApLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgIC9cXChcXCovLFxuICAgICAgL1xcKlxcKS8sXG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICApXG4gIF07XG4gIHZhciBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLCBlbmQ6IC8nLyxcbiAgICBjb250YWluczogW3tiZWdpbjogLycnL31dXG4gIH07XG4gIHZhciBDSEFSX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLCBiZWdpbjogLygjXFxkKykrL1xuICB9O1xuICB2YXIgREFURSA9IHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8oRFR8RHxUKScsXG4gICAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIERCTF9RVU9URURfVkFSSUFCTEUgPSB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLCAvLyBub3QgYSBzdHJpbmcgdGVjaG5pY2FsbHkgYnV0IG1ha2VzIHNlbnNlIHRvIGJlIGhpZ2hsaWdodGVkIGluIHRoZSBzYW1lIHN0eWxlXG4gICAgICBiZWdpbjogJ1wiJyxcbiAgICAgIGVuZDogJ1wiJ1xuICB9O1xuXG4gIHZhciBQUk9DRURVUkUgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdwcm9jZWR1cmUnLCBlbmQ6IC9bOjtdLyxcbiAgICBrZXl3b3JkczogJ3Byb2NlZHVyZXwxMCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbU1RSSU5HLCBDSEFSX1NUUklOR11cbiAgICAgIH1cbiAgICBdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICB9O1xuXG4gIHZhciBPQkpFQ1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGJlZ2luOiAnT0JKRUNUIChUYWJsZXxGb3JtfFJlcG9ydHxEYXRhcG9ydHxDb2RldW5pdHxYTUxwb3J0fE1lbnVTdWl0ZXxQYWdlfFF1ZXJ5KSAoXFxcXGQrKSAoW15cXFxcclxcXFxuXSspJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAgICBQUk9DRURVUkVcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6IEtFWVdPUkRTLCBsaXRlcmFsOiBMSVRFUkFMUyB9LFxuICAgIGlsbGVnYWw6IC9cXC9cXCovLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVFJJTkcsIENIQVJfU1RSSU5HLFxuICAgICAgREFURSwgREJMX1FVT1RFRF9WQVJJQUJMRSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBPQkpFQ1QsXG4gICAgICBQUk9DRURVUkVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnY2FwbnAnXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ3N0cnVjdCBlbnVtIGludGVyZmFjZSB1bmlvbiBncm91cCBpbXBvcnQgdXNpbmcgY29uc3QgYW5ub3RhdGlvbiBleHRlbmRzIGluIG9mIG9uIGFzIHdpdGggZnJvbSBmaXhlZCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ1ZvaWQgQm9vbCBJbnQ4IEludDE2IEludDMyIEludDY0IFVJbnQ4IFVJbnQxNiBVSW50MzIgVUludDY0IEZsb2F0MzIgRmxvYXQ2NCAnICtcbiAgICAgICAgJ1RleHQgRGF0YSBBbnlQb2ludGVyIEFueVN0cnVjdCBDYXBhYmlsaXR5IExpc3QnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ3RydWUgZmFsc2UnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9AMHhbXFx3XFxkXXsxNn07LyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAvQFxcZCtcXGIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdzdHJ1Y3QgZW51bScsIGVuZDogL1xcey8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICAgIHN0YXJ0czoge2VuZHNXaXRoUGFyZW50OiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlfSAvLyBoYWNrOiBlYXRpbmcgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgdGl0bGVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbnRlcmZhY2UnLCBlbmQ6IC9cXHsvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgICBzdGFydHM6IHtlbmRzV2l0aFBhcmVudDogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZX0gLy8gaGFjazogZWF0aW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHRpdGxlXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIC8vIDIuMy4gSWRlbnRpZmllcnMgYW5kIGtleXdvcmRzXG4gIHZhciBLRVlXT1JEUyA9XG4gICAgJ2Fzc2VtYmx5IG1vZHVsZSBwYWNrYWdlIGltcG9ydCBhbGlhcyBjbGFzcyBpbnRlcmZhY2Ugb2JqZWN0IGdpdmVuIHZhbHVlICcgK1xuICAgICdhc3NpZ24gdm9pZCBmdW5jdGlvbiBuZXcgb2YgZXh0ZW5kcyBzYXRpc2ZpZXMgYWJzdHJhY3RzIGluIG91dCByZXR1cm4gJyArXG4gICAgJ2JyZWFrIGNvbnRpbnVlIHRocm93IGFzc2VydCBkeW5hbWljIGlmIGVsc2Ugc3dpdGNoIGNhc2UgZm9yIHdoaWxlIHRyeSAnICtcbiAgICAnY2F0Y2ggZmluYWxseSB0aGVuIGxldCB0aGlzIG91dGVyIHN1cGVyIGlzIGV4aXN0cyBub25lbXB0eSc7XG4gIC8vIDcuNC4xIERlY2xhcmF0aW9uIE1vZGlmaWVyc1xuICB2YXIgREVDTEFSQVRJT05fTU9ESUZJRVJTID1cbiAgICAnc2hhcmVkIGFic3RyYWN0IGZvcm1hbCBkZWZhdWx0IGFjdHVhbCB2YXJpYWJsZSBsYXRlIG5hdGl2ZSBkZXByZWNhdGVkJyArXG4gICAgJ2ZpbmFsIHNlYWxlZCBhbm5vdGF0aW9uIHN1cHByZXNzV2FybmluZ3Mgc21hbGwnO1xuICAvLyA3LjQuMiBEb2N1bWVudGF0aW9uXG4gIHZhciBET0NVTUVOVEFUSU9OID1cbiAgICAnZG9jIGJ5IGxpY2Vuc2Ugc2VlIHRocm93cyB0YWdnZWQnO1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLCBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgYmVnaW46IC9gYC8sIGVuZDogL2BgLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICB2YXIgRVhQUkVTU0lPTlMgPSBbXG4gICAge1xuICAgICAgLy8gdmVyYmF0aW0gc3RyaW5nXG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgZW5kOiAnXCJcIlwiJyxcbiAgICAgIHJlbGV2YW5jZTogMTBcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIHN0cmluZyBsaXRlcmFsIG9yIHRlbXBsYXRlXG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJyxcbiAgICAgIGNvbnRhaW5zOiBbU1VCU1RdXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBjaGFyYWN0ZXIgbGl0ZXJhbFxuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiBcIidcIixcbiAgICAgIGVuZDogXCInXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIC8vIG51bWVyaWMgbGl0ZXJhbFxuICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAnI1swLTlhLWZBLUZfXSt8XFxcXCRbMDFfXSt8WzAtOV9dKyg/OlxcXFwuWzAtOV9dKD86W2VFXVsrLV0/XFxcXGQrKT8pP1trTUdUUG11bnBmXT8nLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IEVYUFJFU1NJT05TO1xuXG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTICsgJyAnICsgREVDTEFSQVRJT05fTU9ESUZJRVJTLFxuICAgICAgbWV0YTogRE9DVU1FTlRBVElPTlxuICAgIH0sXG4gICAgaWxsZWdhbDogJ1xcXFwkW14wMV18I1teMC05YS1mQS1GXScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycsIHtjb250YWluczogWydzZWxmJ119KSxcbiAgICAgIHtcbiAgICAgICAgLy8gY29tcGlsZXIgYW5ub3RhdGlvblxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdAW2Etel1cXFxcdyooPzpcXFxcOlxcXCJbXlxcXCJdKlxcXCIpPydcbiAgICAgIH1cbiAgICBdLmNvbmNhdChFWFBSRVNTSU9OUylcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjbGVhbicsJ2ljbCcsJ2RjbCddLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnaWYgbGV0IGluIHdpdGggd2hlcmUgY2FzZSBvZiBjbGFzcyBpbnN0YW5jZSBvdGhlcndpc2UgJyArXG4gICAgICAgICdpbXBsZW1lbnRhdGlvbiBkZWZpbml0aW9uIHN5c3RlbSBtb2R1bGUgZnJvbSBpbXBvcnQgcXVhbGlmaWVkIGFzICcgK1xuICAgICAgICAnc3BlY2lhbCBjb2RlIGlubGluZSBmb3JlaWduIGV4cG9ydCBjY2FsbCBzdGRjYWxsIGdlbmVyaWMgZGVyaXZlICcgK1xuICAgICAgICAnaW5maXggaW5maXhsIGluZml4cicsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnVHJ1ZSBGYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG5cbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuXG4gICAgICB7YmVnaW46ICctPnw8LVt8Ol0/fDo6fCMhP3w+Pj18XFxcXHtcXFxcfHxcXFxcfFxcXFx9fDo9PXw9OnxcXFxcLlxcXFwufDw+fGAnfSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBrZXl3b3JkcyA9IHtcbiAgICAnYnVpbHRpbi1uYW1lJzpcbiAgICAgIC8vIENsb2p1cmUga2V5d29yZHNcbiAgICAgICdkZWYgZGVmb25jZSBjb25kIGFwcGx5IGlmLW5vdCBpZi1sZXQgaWYgbm90IG5vdD0gPSA8ID4gPD0gPj0gPT0gKyAvICogLSByZW0gJytcbiAgICAgICdxdW90IG5lZz8gcG9zPyBkZWxheT8gc3ltYm9sPyBrZXl3b3JkPyB0cnVlPyBmYWxzZT8gaW50ZWdlcj8gZW1wdHk/IGNvbGw/IGxpc3Q/ICcrXG4gICAgICAnc2V0PyBpZm4/IGZuPyBhc3NvY2lhdGl2ZT8gc2VxdWVudGlhbD8gc29ydGVkPyBjb3VudGVkPyByZXZlcnNpYmxlPyBudW1iZXI/IGRlY2ltYWw/ICcrXG4gICAgICAnY2xhc3M/IGRpc3RpbmN0PyBpc2E/IGZsb2F0PyByYXRpb25hbD8gcmVkdWNlZD8gcmF0aW8/IG9kZD8gZXZlbj8gY2hhcj8gc2VxPyB2ZWN0b3I/ICcrXG4gICAgICAnc3RyaW5nPyBtYXA/IG5pbD8gY29udGFpbnM/IHplcm8/IGluc3RhbmNlPyBub3QtZXZlcnk/IG5vdC1hbnk/IGxpYnNwZWM/IC0+IC0+PiAuLiAuICcrXG4gICAgICAnaW5jIGNvbXBhcmUgZG8gZG90aW1lcyBtYXBjYXQgdGFrZSByZW1vdmUgdGFrZS13aGlsZSBkcm9wIGxldGZuIGRyb3AtbGFzdCB0YWtlLWxhc3QgJytcbiAgICAgICdkcm9wLXdoaWxlIHdoaWxlIGludGVybiBjb25kcCBjYXNlIHJlZHVjZWQgY3ljbGUgc3BsaXQtYXQgc3BsaXQtd2l0aCByZXBlYXQgcmVwbGljYXRlICcrXG4gICAgICAnaXRlcmF0ZSByYW5nZSBtZXJnZSB6aXBtYXAgZGVjbGFyZSBsaW5lLXNlcSBzb3J0IGNvbXBhcmF0b3Igc29ydC1ieSBkb3J1biBkb2FsbCBudGhuZXh0ICcrXG4gICAgICAnbnRocmVzdCBwYXJ0aXRpb24gZXZhbCBkb3NlcSBhd2FpdCBhd2FpdC1mb3IgbGV0IGFnZW50IGF0b20gc2VuZCBzZW5kLW9mZiByZWxlYXNlLXBlbmRpbmctc2VuZHMgJytcbiAgICAgICdhZGQtd2F0Y2ggbWFwdiBmaWx0ZXJ2IHJlbW92ZS13YXRjaCBhZ2VudC1lcnJvciByZXN0YXJ0LWFnZW50IHNldC1lcnJvci1oYW5kbGVyIGVycm9yLWhhbmRsZXIgJytcbiAgICAgICdzZXQtZXJyb3ItbW9kZSEgZXJyb3ItbW9kZSBzaHV0ZG93bi1hZ2VudHMgcXVvdGUgdmFyIGZuIGxvb3AgcmVjdXIgdGhyb3cgdHJ5IG1vbml0b3ItZW50ZXIgJytcbiAgICAgICdtb25pdG9yLWV4aXQgZGVmbWFjcm8gZGVmbiBkZWZuLSBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZC0xIGZvciBkb3N5bmMgYW5kIG9yICcrXG4gICAgICAnd2hlbiB3aGVuLW5vdCB3aGVuLWxldCBjb21wIGp1eHQgcGFydGlhbCBzZXF1ZW5jZSBtZW1vaXplIGNvbnN0YW50bHkgY29tcGxlbWVudCBpZGVudGl0eSBhc3NlcnQgJytcbiAgICAgICdwZWVrIHBvcCBkb3RvIHByb3h5IGRlZnN0cnVjdCBmaXJzdCByZXN0IGNvbnMgZGVmcHJvdG9jb2wgY2FzdCBjb2xsIGRlZnR5cGUgZGVmcmVjb3JkIGxhc3QgYnV0bGFzdCAnK1xuICAgICAgJ3NpZ3MgcmVpZnkgc2Vjb25kIGZmaXJzdCBmbmV4dCBuZmlyc3Qgbm5leHQgZGVmbXVsdGkgZGVmbWV0aG9kIG1ldGEgd2l0aC1tZXRhIG5zIGluLW5zIGNyZWF0ZS1ucyBpbXBvcnQgJytcbiAgICAgICdyZWZlciBrZXlzIHNlbGVjdC1rZXlzIHZhbHMga2V5IHZhbCByc2VxIG5hbWUgbmFtZXNwYWNlIHByb21pc2UgaW50byB0cmFuc2llbnQgcGVyc2lzdGVudCEgY29uaiEgJytcbiAgICAgICdhc3NvYyEgZGlzc29jISBwb3AhIGRpc2ohIHVzZSBjbGFzcyB0eXBlIG51bSBmbG9hdCBkb3VibGUgc2hvcnQgYnl0ZSBib29sZWFuIGJpZ2ludCBiaWdpbnRlZ2VyICcrXG4gICAgICAnYmlnZGVjIHByaW50LW1ldGhvZCBwcmludC1kdXAgdGhyb3ctaWYgcHJpbnRmIGZvcm1hdCBsb2FkIGNvbXBpbGUgZ2V0LWluIHVwZGF0ZS1pbiBwciBwci1vbiBuZXdsaW5lICcrXG4gICAgICAnZmx1c2ggcmVhZCBzbHVycCByZWFkLWxpbmUgc3VidmVjIHdpdGgtb3BlbiBtZW1mbiB0aW1lIHJlLWZpbmQgcmUtZ3JvdXBzIHJhbmQtaW50IHJhbmQgbW9kIGxvY2tpbmcgJytcbiAgICAgICdhc3NlcnQtdmFsaWQtZmRlY2wgYWxpYXMgcmVzb2x2ZSByZWYgZGVyZWYgcmVmc2V0IHN3YXAhIHJlc2V0ISBzZXQtdmFsaWRhdG9yISBjb21wYXJlLWFuZC1zZXQhIGFsdGVyLW1ldGEhICcrXG4gICAgICAncmVzZXQtbWV0YSEgY29tbXV0ZSBnZXQtdmFsaWRhdG9yIGFsdGVyIHJlZi1zZXQgcmVmLWhpc3RvcnktY291bnQgcmVmLW1pbi1oaXN0b3J5IHJlZi1tYXgtaGlzdG9yeSBlbnN1cmUgc3luYyBpbyEgJytcbiAgICAgICduZXcgbmV4dCBjb25qIHNldCEgdG8tYXJyYXkgZnV0dXJlIGZ1dHVyZS1jYWxsIGludG8tYXJyYXkgYXNldCBnZW4tY2xhc3MgcmVkdWNlIG1hcCBmaWx0ZXIgZmluZCBlbXB0eSAnK1xuICAgICAgJ2hhc2gtbWFwIGhhc2gtc2V0IHNvcnRlZC1tYXAgc29ydGVkLW1hcC1ieSBzb3J0ZWQtc2V0IHNvcnRlZC1zZXQtYnkgdmVjIHZlY3RvciBzZXEgZmxhdHRlbiByZXZlcnNlIGFzc29jIGRpc3NvYyBsaXN0ICcrXG4gICAgICAnZGlzaiBnZXQgdW5pb24gZGlmZmVyZW5jZSBpbnRlcnNlY3Rpb24gZXh0ZW5kIGV4dGVuZC10eXBlIGV4dGVuZC1wcm90b2NvbCBpbnQgbnRoIGRlbGF5IGNvdW50IGNvbmNhdCBjaHVuayBjaHVuay1idWZmZXIgJytcbiAgICAgICdjaHVuay1hcHBlbmQgY2h1bmstZmlyc3QgY2h1bmstcmVzdCBtYXggbWluIGRlYyB1bmNoZWNrZWQtaW5jLWludCB1bmNoZWNrZWQtaW5jIHVuY2hlY2tlZC1kZWMtaW5jIHVuY2hlY2tlZC1kZWMgdW5jaGVja2VkLW5lZ2F0ZSAnK1xuICAgICAgJ3VuY2hlY2tlZC1hZGQtaW50IHVuY2hlY2tlZC1hZGQgdW5jaGVja2VkLXN1YnRyYWN0LWludCB1bmNoZWNrZWQtc3VidHJhY3QgY2h1bmstbmV4dCBjaHVuay1jb25zIGNodW5rZWQtc2VxPyBwcm4gdmFyeS1tZXRhICcrXG4gICAgICAnbGF6eS1zZXEgc3ByZWFkIGxpc3QqIHN0ciBmaW5kLWtleXdvcmQga2V5d29yZCBzeW1ib2wgZ2Vuc3ltIGZvcmNlIHJhdGlvbmFsaXplJ1xuICAgfTtcblxuICB2YXIgU1lNQk9MU1RBUlQgPSAnYS16QS1aX1xcXFwtIS4/Kyo9PD4mI1xcJyc7XG4gIHZhciBTWU1CT0xfUkUgPSAnWycgKyBTWU1CT0xTVEFSVCArICddWycgKyBTWU1CT0xTVEFSVCArICcwLTkvOzpdKic7XG4gIHZhciBTSU1QTEVfTlVNQkVSX1JFID0gJ1stK10/XFxcXGQrKFxcXFwuXFxcXGQrKT8nO1xuXG4gIHZhciBTWU1CT0wgPSB7XG4gICAgYmVnaW46IFNZTUJPTF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLCBiZWdpbjogU0lNUExFX05VTUJFUl9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7aWxsZWdhbDogbnVsbH0pO1xuICB2YXIgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnOycsXG4gICAgJyQnLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgKTtcbiAgdmFyIExJVEVSQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGIodHJ1ZXxmYWxzZXxuaWwpXFxiL1xuICB9O1xuICB2YXIgQ09MTEVDVElPTiA9IHtcbiAgICBiZWdpbjogJ1tcXFxcW1xcXFx7XScsIGVuZDogJ1tcXFxcXVxcXFx9XSdcbiAgfTtcbiAgdmFyIEhJTlQgPSB7XG4gICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgYmVnaW46ICdcXFxcXicgKyBTWU1CT0xfUkVcbiAgfTtcbiAgdmFyIEhJTlRfQ09MID0gaGxqcy5DT01NRU5UKCdcXFxcXlxcXFx7JywgJ1xcXFx9Jyk7XG4gIHZhciBLRVkgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJ1s6XXsxLDJ9JyArIFNZTUJPTF9SRVxuICB9O1xuICB2YXIgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknXG4gIH07XG4gIHZhciBCT0RZID0ge1xuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgTkFNRSA9IHtcbiAgICBrZXl3b3Jkczoga2V5d29yZHMsXG4gICAgbGV4ZW1lczogU1lNQk9MX1JFLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnLCBiZWdpbjogU1lNQk9MX1JFLFxuICAgIHN0YXJ0czogQk9EWVxuICB9O1xuICB2YXIgREVGQVVMVF9DT05UQUlOUyA9IFtMSVNULCBTVFJJTkcsIEhJTlQsIEhJTlRfQ09MLCBDT01NRU5ULCBLRVksIENPTExFQ1RJT04sIE5VTUJFUiwgTElURVJBTCwgU1lNQk9MXTtcblxuICBMSVNULmNvbnRhaW5zID0gW2hsanMuQ09NTUVOVCgnY29tbWVudCcsICcnKSwgTkFNRSwgQk9EWV07XG4gIEJPRFkuY29udGFpbnMgPSBERUZBVUxUX0NPTlRBSU5TO1xuICBDT0xMRUNUSU9OLmNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUztcbiAgSElOVF9DT0wuY29udGFpbnMgPSBbQ09MTEVDVElPTl07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2NsaiddLFxuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbTElTVCwgU1RSSU5HLCBISU5ULCBISU5UX0NPTCwgQ09NTUVOVCwgS0VZLCBDT0xMRUNUSU9OLCBOVU1CRVIsIExJVEVSQUxdXG4gIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXihbXFx3Li1dK3xcXHMqI18pPT4vLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogJ2Nsb2p1cmUnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjbWFrZS5pbiddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhZGRfY3VzdG9tX2NvbW1hbmQgYWRkX2N1c3RvbV90YXJnZXQgYWRkX2RlZmluaXRpb25zIGFkZF9kZXBlbmRlbmNpZXMgJyArXG4gICAgICAgICdhZGRfZXhlY3V0YWJsZSBhZGRfbGlicmFyeSBhZGRfc3ViZGlyZWN0b3J5IGFkZF90ZXN0IGF1eF9zb3VyY2VfZGlyZWN0b3J5ICcgK1xuICAgICAgICAnYnJlYWsgYnVpbGRfY29tbWFuZCBjbWFrZV9taW5pbXVtX3JlcXVpcmVkIGNtYWtlX3BvbGljeSBjb25maWd1cmVfZmlsZSAnICtcbiAgICAgICAgJ2NyZWF0ZV90ZXN0X3NvdXJjZWxpc3QgZGVmaW5lX3Byb3BlcnR5IGVsc2UgZWxzZWlmIGVuYWJsZV9sYW5ndWFnZSBlbmFibGVfdGVzdGluZyAnICtcbiAgICAgICAgJ2VuZGZvcmVhY2ggZW5kZnVuY3Rpb24gZW5kaWYgZW5kbWFjcm8gZW5kd2hpbGUgZXhlY3V0ZV9wcm9jZXNzIGV4cG9ydCBmaW5kX2ZpbGUgJyArXG4gICAgICAgICdmaW5kX2xpYnJhcnkgZmluZF9wYWNrYWdlIGZpbmRfcGF0aCBmaW5kX3Byb2dyYW0gZmx0a193cmFwX3VpIGZvcmVhY2ggZnVuY3Rpb24gJyArXG4gICAgICAgICdnZXRfY21ha2VfcHJvcGVydHkgZ2V0X2RpcmVjdG9yeV9wcm9wZXJ0eSBnZXRfZmlsZW5hbWVfY29tcG9uZW50IGdldF9wcm9wZXJ0eSAnICtcbiAgICAgICAgJ2dldF9zb3VyY2VfZmlsZV9wcm9wZXJ0eSBnZXRfdGFyZ2V0X3Byb3BlcnR5IGdldF90ZXN0X3Byb3BlcnR5IGlmIGluY2x1ZGUgJyArXG4gICAgICAgICdpbmNsdWRlX2RpcmVjdG9yaWVzIGluY2x1ZGVfZXh0ZXJuYWxfbXNwcm9qZWN0IGluY2x1ZGVfcmVndWxhcl9leHByZXNzaW9uIGluc3RhbGwgJyArXG4gICAgICAgICdsaW5rX2RpcmVjdG9yaWVzIGxvYWRfY2FjaGUgbG9hZF9jb21tYW5kIG1hY3JvIG1hcmtfYXNfYWR2YW5jZWQgbWVzc2FnZSBvcHRpb24gJyArXG4gICAgICAgICdvdXRwdXRfcmVxdWlyZWRfZmlsZXMgcHJvamVjdCBxdF93cmFwX2NwcCBxdF93cmFwX3VpIHJlbW92ZV9kZWZpbml0aW9ucyByZXR1cm4gJyArXG4gICAgICAgICdzZXBhcmF0ZV9hcmd1bWVudHMgc2V0IHNldF9kaXJlY3RvcnlfcHJvcGVydGllcyBzZXRfcHJvcGVydHkgJyArXG4gICAgICAgICdzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMgc2V0X3RhcmdldF9wcm9wZXJ0aWVzIHNldF90ZXN0c19wcm9wZXJ0aWVzIHNpdGVfbmFtZSAnICtcbiAgICAgICAgJ3NvdXJjZV9ncm91cCBzdHJpbmcgdGFyZ2V0X2xpbmtfbGlicmFyaWVzIHRyeV9jb21waWxlIHRyeV9ydW4gdW5zZXQgdmFyaWFibGVfd2F0Y2ggJyArXG4gICAgICAgICd3aGlsZSBidWlsZF9uYW1lIGV4ZWNfcHJvZ3JhbSBleHBvcnRfbGlicmFyeV9kZXBlbmRlbmNpZXMgaW5zdGFsbF9maWxlcyAnICtcbiAgICAgICAgJ2luc3RhbGxfcHJvZ3JhbXMgaW5zdGFsbF90YXJnZXRzIGxpbmtfbGlicmFyaWVzIG1ha2VfZGlyZWN0b3J5IHJlbW92ZSBzdWJkaXJfZGVwZW5kcyAnICtcbiAgICAgICAgJ3N1YmRpcnMgdXNlX21hbmdsZWRfbWVzYSB1dGlsaXR5X3NvdXJjZSB2YXJpYWJsZV9yZXF1aXJlcyB3cml0ZV9maWxlICcgK1xuICAgICAgICAncXQ1X3VzZV9tb2R1bGVzIHF0NV91c2VfcGFja2FnZSBxdDVfd3JhcF9jcHAgb24gb2ZmIHRydWUgZmFsc2UgYW5kIG9yICcgK1xuICAgICAgICAnZXF1YWwgbGVzcyBncmVhdGVyIHN0cmxlc3Mgc3RyZ3JlYXRlciBzdHJlcXVhbCBtYXRjaGVzJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFwkeycsIGVuZDogJ30nXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAvLyBKUyBrZXl3b3Jkc1xuICAgICAgJ2luIGlmIGZvciB3aGlsZSBmaW5hbGx5IG5ldyBkbyByZXR1cm4gZWxzZSBicmVhayBjYXRjaCBpbnN0YW5jZW9mIHRocm93IHRyeSB0aGlzICcgK1xuICAgICAgJ3N3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlIGRlYnVnZ2VyIHN1cGVyIHlpZWxkIGltcG9ydCBleHBvcnQgZnJvbSBhcyBkZWZhdWx0IGF3YWl0ICcgK1xuICAgICAgLy8gQ29mZmVlIGtleXdvcmRzXG4gICAgICAndGhlbiB1bmxlc3MgdW50aWwgbG9vcCBvZiBieSB3aGVuIGFuZCBvciBpcyBpc250IG5vdCcsXG4gICAgbGl0ZXJhbDpcbiAgICAgIC8vIEpTIGxpdGVyYWxzXG4gICAgICAndHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCAnICtcbiAgICAgIC8vIENvZmZlZSBsaXRlcmFsc1xuICAgICAgJ3llcyBubyBvbiBvZmYnLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ25wbSByZXF1aXJlIGNvbnNvbGUgcHJpbnQgbW9kdWxlIGdsb2JhbCB3aW5kb3cgZG9jdW1lbnQnXG4gIH07XG4gIHZhciBKU19JREVOVF9SRSA9ICdbQS1aYS16JF9dWzAtOUEtWmEteiRfXSonO1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvI1xcey8sIGVuZDogL30vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICB9O1xuICB2YXIgRVhQUkVTU0lPTlMgPSBbXG4gICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQ19OVU1CRVJfTU9ERSwge3N0YXJ0czoge2VuZDogJyhcXFxccyovKT8nLCByZWxldmFuY2U6IDB9fSksIC8vIGEgbnVtYmVyIHRyaWVzIHRvIGVhdCB0aGUgZm9sbG93aW5nIHNsYXNoIHRvIHByZXZlbnQgdHJlYXRpbmcgaXQgYXMgYSByZWdleHBcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJycnLywgZW5kOiAvJycnLyxcbiAgICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJy8sIGVuZDogLycvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cIlwiXCIvLCBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXCIvLCBlbmQ6IC9cIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFNVQlNUXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLy8vJywgZW5kOiAnLy8vJyxcbiAgICAgICAgICBjb250YWluczogW1NVQlNULCBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICcvL1tnaW1dKicsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyByZWdleCBjYW4ndCBzdGFydCB3aXRoIHNwYWNlIHRvIHBhcnNlIHggLyAyIC8gMyBhcyB0d28gZGl2aXNpb25zXG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCAqLCBhbmQgaXQgc3VwcG9ydHMgYW4gXCJpbGxlZ2FsXCIgaW4gdGhlIG1haW4gbW9kZVxuICAgICAgICAgIGJlZ2luOiAvXFwvKD8hWyAqXSkoXFxcXFxcL3wuKSo/XFwvW2dpbV0qKD89XFxXfCQpL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogJ0AnICsgSlNfSURFTlRfUkUgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICB9LFxuICAgIHtcbiAgICAgIHN1Ykxhbmd1YWdlOiAnamF2YXNjcmlwdCcsXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgYGAnLCBlbmQ6ICdgYGAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgJywgZW5kOiAnYCcsXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gRVhQUkVTU0lPTlM7XG5cbiAgdmFyIFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge2JlZ2luOiBKU19JREVOVF9SRX0pO1xuICB2YXIgUEFSQU1TX1JFID0gJyhcXFxcKC4qXFxcXCkpP1xcXFxzKlxcXFxCWy09XT4nO1xuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKFteXFxcXChdJywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgLyogV2UgbmVlZCBhbm90aGVyIGNvbnRhaW5lZCBuYW1lbGVzcyBtb2RlIHRvIG5vdCBoYXZlIGV2ZXJ5IG5lc3RlZFxuICAgIHBhaXIgb2YgcGFyZW5zIHRvIGJlIGNhbGxlZCBcInBhcmFtc1wiICovXG4gICAgY29udGFpbnM6IFt7XG4gICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICBjb250YWluczogWydzZWxmJ10uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgIH1dXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2NvZmZlZScsICdjc29uJywgJ2ljZWQnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TLmNvbmNhdChbXG4gICAgICBobGpzLkNPTU1FTlQoJyMjIycsICcjIyMnKSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKj1cXFxccyonICsgUEFSQU1TX1JFLCBlbmQ6ICdbLT1dPicsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1RJVExFLCBQQVJBTVNdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBhbm9ueW1vdXMgZnVuY3Rpb24gc3RhcnRcbiAgICAgICAgYmVnaW46IC9bOlxcKCw9XVxccyovLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IFBBUkFNU19SRSwgZW5kOiAnWy09XT4nLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogW1BBUkFNU11cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGlsbGVnYWw6IC9bOj1cIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6ICdleHRlbmRzJyxcbiAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgaWxsZWdhbDogL1s6PVwiXFxbXFxdXS8sXG4gICAgICAgICAgICBjb250YWluczogW1RJVExFXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgVElUTEVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEpTX0lERU5UX1JFICsgJzonLCBlbmQ6ICc6JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSlcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdfIGFzIGF0IGNvZml4IGVsc2UgZW5kIGV4aXN0cyBleGlzdHMyIGZpeCBmb3IgZm9yYWxsIGZ1biBpZiBJRiBpbiBsZXQgJyArXG4gICAgICAgICdtYXRjaCBtb2QgUHJvcCByZXR1cm4gU2V0IHRoZW4gVHlwZSB1c2luZyB3aGVyZSB3aXRoICcgK1xuICAgICAgICAnQWJvcnQgQWJvdXQgQWRkIEFkbWl0IEFkbWl0dGVkIEFsbCBBcmd1bWVudHMgQXNzdW1wdGlvbnMgQXhpb20gQmFjayBCYWNrVG8gJyArXG4gICAgICAgICdCYWNrdHJhY2sgQmluZCBCbGFja2xpc3QgQ2Fub25pY2FsIENkIENoZWNrIENsYXNzIENsYXNzZXMgQ2xvc2UgQ29lcmNpb24gJyArXG4gICAgICAgICdDb2VyY2lvbnMgQ29GaXhwb2ludCBDb0luZHVjdGl2ZSBDb2xsZWN0aW9uIENvbWJpbmVkIENvbXB1dGUgQ29uamVjdHVyZSAnICtcbiAgICAgICAgJ0NvbmplY3R1cmVzIENvbnN0YW50IGNvbnN0ciBDb25zdHJhaW50IENvbnN0cnVjdG9ycyBDb250ZXh0IENvcm9sbGFyeSAnICtcbiAgICAgICAgJ0NyZWF0ZUhpbnREYiBDdXQgRGVjbGFyZSBEZWZpbmVkIERlZmluaXRpb24gRGVsaW1pdCBEZXBlbmRlbmNpZXMgRGVwZW5kZW50JyArXG4gICAgICAgICdEZXJpdmUgRHJvcCBlYXV0byBFbmQgRXF1YWxpdHkgRXZhbCBFeGFtcGxlIEV4aXN0ZW50aWFsIEV4aXN0ZW50aWFscyAnICtcbiAgICAgICAgJ0V4aXN0aW5nIEV4cG9ydCBleHBvcnRpbmcgRXh0ZXJuIEV4dHJhY3QgRXh0cmFjdGlvbiBGYWN0IEZpZWxkIEZpZWxkcyBGaWxlICcgK1xuICAgICAgICAnRml4cG9pbnQgRm9jdXMgZm9yIEZyb20gRnVuY3Rpb24gRnVuY3Rpb25hbCBHZW5lcmFsaXphYmxlIEdsb2JhbCBHb2FsIEdyYWIgJyArXG4gICAgICAgICdHcmFtbWFyIEdyYXBoIEd1YXJkZWQgSGVhcCBIaW50IEhpbnREYiBIaW50cyBIeXBvdGhlc2VzIEh5cG90aGVzaXMgaWRlbnQgJyArXG4gICAgICAgICdJZGVudGl0eSBJZiBJbW1lZGlhdGUgSW1wbGljaXQgSW1wb3J0IEluY2x1ZGUgSW5kdWN0aXZlIEluZml4IEluZm8gSW5pdGlhbCAnICtcbiAgICAgICAgJ0lubGluZSBJbnNwZWN0IEluc3RhbmNlIEluc3RhbmNlcyBJbnRybyBJbnRyb3MgSW52ZXJzaW9uIEludmVyc2lvbl9jbGVhciAnICtcbiAgICAgICAgJ0xhbmd1YWdlIExlZnQgTGVtbWEgTGV0IExpYnJhcmllcyBMaWJyYXJ5IExvYWQgTG9hZFBhdGggTG9jYWwgTG9jYXRlIEx0YWMgTUwgJyArXG4gICAgICAgICdNb2RlIE1vZHVsZSBNb2R1bGVzIE1vbm9tb3JwaGljIE1vcnBoaXNtIE5leHQgTm9JbmxpbmUgTm90YXRpb24gT2JsaWdhdGlvbiAnICtcbiAgICAgICAgJ09ibGlnYXRpb25zIE9wYXF1ZSBPcGVuIE9wdGltaXplIE9wdGlvbnMgUGFyYW1ldGVyIFBhcmFtZXRlcnMgUGFyYW1ldHJpYyAnICtcbiAgICAgICAgJ1BhdGggUGF0aHMgcGF0dGVybiBQb2x5bW9ycGhpYyBQcmV0ZXJtIFByaW50IFByaW50aW5nIFByb2dyYW0gUHJvamVjdGlvbnMgJyArXG4gICAgICAgICdQcm9vZiBQcm9wb3NpdGlvbiBQd2QgUWVkIFF1aXQgUmVjIFJlY29yZCBSZWN1cnNpdmUgUmVkaXJlY3QgUmVsYXRpb24gUmVtYXJrICcgK1xuICAgICAgICAnUmVtb3ZlIFJlcXVpcmUgUmVzZXJ2ZWQgUmVzZXQgUmVzb2x2ZSBSZXN0YXJ0IFJld3JpdGUgUmlnaHQgUmluZyBSaW5ncyBTYXZlICcgK1xuICAgICAgICAnU2NoZW1lIFNjb3BlIFNjb3BlcyBTY3JpcHQgU2VhcmNoIFNlYXJjaEFib3V0IFNlYXJjaEhlYWQgU2VhcmNoUGF0dGVybiAnICtcbiAgICAgICAgJ1NlYXJjaFJld3JpdGUgU2VjdGlvbiBTZXBhcmF0ZSBTZXQgU2V0b2lkIFNob3cgU29sdmUgU29ydGVkIFN0ZXAgU3RyYXRlZ2llcyAnICtcbiAgICAgICAgJ1N0cmF0ZWd5IFN0cnVjdHVyZSBTdWJDbGFzcyBUYWJsZSBUYWJsZXMgVGFjdGljIFRlcm0gVGVzdCBUaGVvcmVtIFRpbWUgJyArXG4gICAgICAgICdUaW1lb3V0IFRyYW5zcGFyZW50IFR5cGUgVHlwZWNsYXNzZXMgVHlwZXMgVW5kZWxpbWl0IFVuZG8gVW5mb2N1cyBVbmZvY3VzZWQgJyArXG4gICAgICAgICdVbmZvbGQgVW5pdmVyc2UgVW5pdmVyc2VzIFVuc2V0IFVuc2hlbHZlIHVzaW5nIFZhcmlhYmxlIFZhcmlhYmxlcyBWYXJpYW50ICcgK1xuICAgICAgICAnVmVyYm9zZSBWaXNpYmlsaXR5IHdoZXJlIHdpdGgnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdhYnN0cmFjdCBhYnN1cmQgYWRtaXQgYWZ0ZXIgYXBwbHkgYXMgYXNzZXJ0IGFzc3VtcHRpb24gYXQgYXV0byBhdXRvcmV3cml0ZSAnICtcbiAgICAgICAgJ2F1dG91bmZvbGQgYmVmb3JlIGJvdHRvbSBidGF1dG8gYnkgY2FzZSBjYXNlX2VxIGNibiBjYnYgY2hhbmdlICcgK1xuICAgICAgICAnY2xhc3NpY2FsX2xlZnQgY2xhc3NpY2FsX3JpZ2h0IGNsZWFyIGNsZWFyYm9keSBjb2ZpeCBjb21wYXJlIGNvbXB1dGUgJyArXG4gICAgICAgICdjb25ncnVlbmNlIGNvbnN0cl9lcSBjb25zdHJ1Y3RvciBjb250cmFkaWN0IGNvbnRyYWRpY3Rpb24gY3V0IGN1dHJld3JpdGUgJyArXG4gICAgICAgICdjeWNsZSBkZWNpZGUgZGVjb21wb3NlIGRlcGVuZGVudCBkZXN0cnVjdCBkZXN0cnVjdGlvbiBkaW50dWl0aW9uICcgK1xuICAgICAgICAnZGlzY3JpbWluYXRlIGRpc2NyUiBkbyBkb3VibGUgZHRhdXRvIGVhcHBseSBlYXNzdW1wdGlvbiBlYXV0byBlY2FzZSAnICtcbiAgICAgICAgJ2Vjb25zdHJ1Y3RvciBlZGVzdHJ1Y3QgZWRpc2NyaW1pbmF0ZSBlZWxpbSBlZXhhY3QgZWV4aXN0cyBlaW5kdWN0aW9uICcgK1xuICAgICAgICAnZWluamVjdGlvbiBlbGVmdCBlbGltIGVsaW10eXBlIGVub3VnaCBlcXVhbGl0eSBlcmV3cml0ZSBlcmlnaHQgJyArXG4gICAgICAgICdlc2ltcGxpZnlfZXEgZXNwbGl0IGV2YXIgZXhhY3QgZXhhY3RseV9vbmNlIGV4ZmFsc28gZXhpc3RzIGZfZXF1YWwgZmFpbCAnICtcbiAgICAgICAgJ2ZpZWxkIGZpZWxkX3NpbXBsaWZ5IGZpZWxkX3NpbXBsaWZ5X2VxIGZpcnN0IGZpcnN0b3JkZXIgZml4IGZvbGQgZm91cmllciAnICtcbiAgICAgICAgJ2Z1bmN0aW9uYWwgZ2VuZXJhbGl6ZSBnZW5lcmFsaXppbmcgZ2ZhaWwgZ2l2ZV91cCBoYXNfZXZhciBobmYgaWR0YWMgaW4gJyArXG4gICAgICAgICdpbmR1Y3Rpb24gaW5qZWN0aW9uIGluc3RhbnRpYXRlIGludHJvIGludHJvX3BhdHRlcm4gaW50cm9zIGludHVpdGlvbiAnICtcbiAgICAgICAgJ2ludmVyc2lvbiBpbnZlcnNpb25fY2xlYXIgaXNfZXZhciBpc192YXIgbGFwcGx5IGxhenkgbGVmdCBsaWEgbHJhIG1vdmUgJyArXG4gICAgICAgICduYXRpdmVfY29tcHV0ZSBuaWEgbnNhdHogb21lZ2Egb25jZSBwYXR0ZXJuIHBvc2UgcHJvZ3Jlc3MgcHJvb2YgcHNhdHogcXVvdGUgJyArXG4gICAgICAgICdyZWNvcmQgcmVkIHJlZmluZSByZWZsZXhpdml0eSByZW1lbWJlciByZW5hbWUgcmVwZWF0IHJlcGxhY2UgcmV2ZXJ0ICcgK1xuICAgICAgICAncmV2Z29hbHMgcmV3cml0ZSByZXdyaXRlX3N0cmF0IHJpZ2h0IHJpbmcgcmluZ19zaW1wbGlmeSBydGF1dG8gc2V0ICcgK1xuICAgICAgICAnc2V0b2lkX3JlZmxleGl2aXR5IHNldG9pZF9yZXBsYWNlIHNldG9pZF9yZXdyaXRlIHNldG9pZF9zeW1tZXRyeSAnICtcbiAgICAgICAgJ3NldG9pZF90cmFuc2l0aXZpdHkgc2hlbHZlIHNoZWx2ZV91bmlmaWFibGUgc2ltcGwgc2ltcGxlIHNpbXBsaWZ5X2VxIHNvbHZlICcgK1xuICAgICAgICAnc3BlY2lhbGl6ZSBzcGxpdCBzcGxpdF9SYWJzIHNwbGl0X1JtdWx0IHN0ZXBsIHN0ZXByIHN1YnN0IHN1bSBzd2FwICcgK1xuICAgICAgICAnc3ltbWV0cnkgdGFjdGljIHRhdXRvIHRpbWUgdGltZW91dCB0b3AgdHJhbnNpdGl2aXR5IHRyaXZpYWwgdHJ5IHRyeWlmICcgK1xuICAgICAgICAndW5mb2xkIHVuaWZ5IHVudGlsIHVzaW5nIHZtX2NvbXB1dGUgd2l0aCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DT01NRU5UKCdcXFxcKFxcXFwqJywgJ1xcXFwqXFxcXCknKSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgYmVnaW46ICdcXFxcfFxcXFxzKicsXG4gICAgICAgIGVuZDogJ1xcXFx3KydcbiAgICAgIH0sXG4gICAgICB7YmVnaW46IC9bLT1dPi99IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNvcyAoaGxqcykge1xuXG4gIHZhciBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgY29udGFpbnM6IFt7IC8vIGVzY2FwZWRcbiAgICAgICAgICBiZWdpbjogXCJcXFwiXFxcIlwiLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICB2YXIgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6IFwibnVtYmVyXCIsXG4gICAgYmVnaW46IFwiXFxcXGIoXFxcXGQrKFxcXFwuXFxcXGQqKT98XFxcXC5cXFxcZCspXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIENPU19LRVlXT1JEUyA9XG4gICAgJ3Byb3BlcnR5IHBhcmFtZXRlciBjbGFzcyBjbGFzc21ldGhvZCBjbGllbnRtZXRob2QgZXh0ZW5kcyBhcyBicmVhayAnICtcbiAgICAnY2F0Y2ggY2xvc2UgY29udGludWUgZG8gZHwwIGVsc2UgZWxzZWlmIGZvciBnb3RvIGhhbHQgaGFuZyBofDAgaWYgam9iICcgK1xuICAgICdqfDAga2lsbCBrfDAgbG9jayBsfDAgbWVyZ2UgbmV3IG9wZW4gcXVpdCBxfDAgcmVhZCByfDAgcmV0dXJuIHNldCBzfDAgJyArXG4gICAgJ3Rjb21taXQgdGhyb3cgdHJvbGxiYWNrIHRyeSB0c3RhcnQgdXNlIHZpZXcgd2hpbGUgd3JpdGUgd3wwIHhlY3V0ZSB4fDAgJyArXG4gICAgJ3praWxsIHpuc3BhY2Ugem4genRyYXAgendyaXRlIHp3IHp6ZHVtcCB6endyaXRlIHByaW50IHpicmVhayB6aW5zZXJ0ICcgK1xuICAgICd6bG9hZCB6cHJpbnQgenJlbW92ZSB6c2F2ZSB6enByaW50IG12IG12Y2FsbCBtdmNydCBtdmRpbSBtdnByaW50IHpxdWl0ICcgK1xuICAgICd6c3luYyBhc2NpaSc7XG5cbiAgICAvLyByZWdpc3RlcmVkIGZ1bmN0aW9uIC0gbm8gbmVlZCBpbiB0aGVtIGR1ZSB0byBhbGwgZnVuY3Rpb25zIGFyZSBoaWdobGlnaHRlZCxcbiAgICAvLyBidXQgSSdsbCBqdXN0IGxlYXZlIHRoaXMgaGVyZS5cblxuICAgIC8vXCIkYml0XCIsIFwiJGJpdGNvdW50XCIsXG4gICAgLy9cIiRiaXRmaW5kXCIsIFwiJGJpdGxvZ2ljXCIsIFwiJGNhc2VcIiwgXCIkY2hhclwiLCBcIiRjbGFzc21ldGhvZFwiLCBcIiRjbGFzc25hbWVcIixcbiAgICAvL1wiJGNvbXBpbGVcIiwgXCIkZGF0YVwiLCBcIiRkZWNpbWFsXCIsIFwiJGRvdWJsZVwiLCBcIiRleHRyYWN0XCIsIFwiJGZhY3RvclwiLFxuICAgIC8vXCIkZmluZFwiLCBcIiRmbnVtYmVyXCIsIFwiJGdldFwiLCBcIiRpbmNyZW1lbnRcIiwgXCIkaW51bWJlclwiLCBcIiRpc29iamVjdFwiLFxuICAgIC8vXCIkaXN2YWxpZGRvdWJsZVwiLCBcIiRpc3ZhbGlkbnVtXCIsIFwiJGp1c3RpZnlcIiwgXCIkbGVuZ3RoXCIsIFwiJGxpc3RcIixcbiAgICAvL1wiJGxpc3RidWlsZFwiLCBcIiRsaXN0ZGF0YVwiLCBcIiRsaXN0ZmluZFwiLCBcIiRsaXN0ZnJvbXN0cmluZ1wiLCBcIiRsaXN0Z2V0XCIsXG4gICAgLy9cIiRsaXN0bGVuZ3RoXCIsIFwiJGxpc3RuZXh0XCIsIFwiJGxpc3RzYW1lXCIsIFwiJGxpc3R0b3N0cmluZ1wiLCBcIiRsaXN0dmFsaWRcIixcbiAgICAvL1wiJGxvY2F0ZVwiLCBcIiRtYXRjaFwiLCBcIiRtZXRob2RcIiwgXCIkbmFtZVwiLCBcIiRuY29udmVydFwiLCBcIiRuZXh0XCIsXG4gICAgLy9cIiRub3JtYWxpemVcIiwgXCIkbm93XCIsIFwiJG51bWJlclwiLCBcIiRvcmRlclwiLCBcIiRwYXJhbWV0ZXJcIiwgXCIkcGllY2VcIixcbiAgICAvL1wiJHByZWZldGNob2ZmXCIsIFwiJHByZWZldGNob25cIiwgXCIkcHJvcGVydHlcIiwgXCIkcWxlbmd0aFwiLCBcIiRxc3Vic2NyaXB0XCIsXG4gICAgLy9cIiRxdWVyeVwiLCBcIiRyYW5kb21cIiwgXCIkcmVwbGFjZVwiLCBcIiRyZXZlcnNlXCIsIFwiJHNjb252ZXJ0XCIsIFwiJHNlbGVjdFwiLFxuICAgIC8vXCIkc29ydGJlZ2luXCIsIFwiJHNvcnRlbmRcIiwgXCIkc3RhY2tcIiwgXCIkdGV4dFwiLCBcIiR0cmFuc2xhdGVcIiwgXCIkdmlld1wiLFxuICAgIC8vXCIkd2FzY2lpXCIsIFwiJHdjaGFyXCIsIFwiJHdleHRyYWN0XCIsIFwiJHdmaW5kXCIsIFwiJHdpc3dpZGVcIiwgXCIkd2xlbmd0aFwiLFxuICAgIC8vXCIkd3JldmVyc2VcIiwgXCIkeGVjdXRlXCIsIFwiJHphYnNcIiwgXCIkemFyY2Nvc1wiLCBcIiR6YXJjc2luXCIsIFwiJHphcmN0YW5cIixcbiAgICAvL1wiJHpjb3NcIiwgXCIkemNvdFwiLCBcIiR6Y3NjXCIsIFwiJHpkYXRlXCIsIFwiJHpkYXRlaFwiLCBcIiR6ZGF0ZXRpbWVcIixcbiAgICAvL1wiJHpkYXRldGltZWhcIiwgXCIkemV4cFwiLCBcIiR6aGV4XCIsIFwiJHpsblwiLCBcIiR6bG9nXCIsIFwiJHpwb3dlclwiLCBcIiR6c2VjXCIsXG4gICAgLy9cIiR6c2luXCIsIFwiJHpzcXJcIiwgXCIkenRhblwiLCBcIiR6dGltZVwiLCBcIiR6dGltZWhcIiwgXCIkemJvb2xlYW5cIixcbiAgICAvL1wiJHpjb252ZXJ0XCIsIFwiJHpjcmNcIiwgXCIkemN5Y1wiLCBcIiR6ZGFzY2lpXCIsIFwiJHpkY2hhclwiLCBcIiR6ZlwiLFxuICAgIC8vXCIkemlzd2lkZVwiLCBcIiR6bGFzY2lpXCIsIFwiJHpsY2hhclwiLCBcIiR6bmFtZVwiLCBcIiR6cG9zaXRpb25cIiwgXCIkenFhc2NpaVwiLFxuICAgIC8vXCIkenFjaGFyXCIsIFwiJHpzZWFyY2hcIiwgXCIkenNlZWtcIiwgXCIkenN0cmlwXCIsIFwiJHp3YXNjaWlcIiwgXCIkendjaGFyXCIsXG4gICAgLy9cIiR6d2lkdGhcIiwgXCIkendwYWNrXCIsIFwiJHp3YnBhY2tcIiwgXCIkend1bnBhY2tcIiwgXCIkendidW5wYWNrXCIsIFwiJHp6ZW5rYWt1XCIsXG4gICAgLy9cIiRjaGFuZ2VcIiwgXCIkbXZcIiwgXCIkbXZhdFwiLCBcIiRtdmZtdFwiLCBcIiRtdmZtdHNcIiwgXCIkbXZpY29udlwiLFxuICAgIC8vXCIkbXZpY29udnNcIiwgXCIkbXZpbm1hdFwiLCBcIiRtdmxvdmVyXCIsIFwiJG12b2NvbnZcIiwgXCIkbXZvY29udnNcIiwgXCIkbXZyYWlzZVwiLFxuICAgIC8vXCIkbXZ0cmFuc1wiLCBcIiRtdnZcIiwgXCIkbXZuYW1lXCIsIFwiJHpiaXRhbmRcIiwgXCIkemJpdGNvdW50XCIsIFwiJHpiaXRmaW5kXCIsXG4gICAgLy9cIiR6Yml0Z2V0XCIsIFwiJHpiaXRsZW5cIiwgXCIkemJpdG5vdFwiLCBcIiR6Yml0b3JcIiwgXCIkemJpdHNldFwiLCBcIiR6Yml0c3RyXCIsXG4gICAgLy9cIiR6Yml0eG9yXCIsIFwiJHppbmNyZW1lbnRcIiwgXCIkem5leHRcIiwgXCIkem9yZGVyXCIsIFwiJHpwcmV2aW91c1wiLCBcIiR6c29ydFwiLFxuICAgIC8vXCJkZXZpY2VcIiwgXCIkZWNvZGVcIiwgXCIkZXN0YWNrXCIsIFwiJGV0cmFwXCIsIFwiJGhhbHRcIiwgXCIkaG9yb2xvZ1wiLFxuICAgIC8vXCIkaW9cIiwgXCIkam9iXCIsIFwiJGtleVwiLCBcIiRuYW1lc3BhY2VcIiwgXCIkcHJpbmNpcGFsXCIsIFwiJHF1aXRcIiwgXCIkcm9sZXNcIixcbiAgICAvL1wiJHN0b3JhZ2VcIiwgXCIkc3lzdGVtXCIsIFwiJHRlc3RcIiwgXCIkdGhpc1wiLCBcIiR0bGV2ZWxcIiwgXCIkdXNlcm5hbWVcIixcbiAgICAvL1wiJHhcIiwgXCIkeVwiLCBcIiR6YVwiLCBcIiR6YlwiLCBcIiR6Y2hpbGRcIiwgXCIkemVvZlwiLCBcIiR6ZW9zXCIsIFwiJHplcnJvclwiLFxuICAgIC8vXCIkemhvcm9sb2dcIiwgXCIkemlvXCIsIFwiJHpqb2JcIiwgXCIkem1vZGVcIiwgXCIkem5zcGFjZVwiLCBcIiR6cGFyZW50XCIsIFwiJHpwaVwiLFxuICAgIC8vXCIkenBvc1wiLCBcIiR6cmVmZXJlbmNlXCIsIFwiJHpzdG9yYWdlXCIsIFwiJHp0aW1lc3RhbXBcIiwgXCIkenRpbWV6b25lXCIsXG4gICAgLy9cIiR6dHJhcFwiLCBcIiR6dmVyc2lvblwiXG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGFsaWFzZXM6IFtcImNvc1wiLCBcImNsc1wiXSxcbiAgICBrZXl3b3JkczogQ09TX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVJTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgICAgIGJlZ2luOiAvOy8sIGVuZDogXCIkXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gRnVuY3Rpb25zIGFuZCB1c2VyLWRlZmluZWQgZnVuY3Rpb25zOiB3cml0ZSAkenRpbWUoNjAqNjAqMyksICQkbXlGdW5jKDEwKSwgJCReVmFsKDEpXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyg/OlxcJFxcJD98XFwuXFwuKVxcXj9bYS16QS1aXSsvXG4gICAgICB9LFxuICAgICAgeyAvLyBNYWNybyBjb21tYW5kOiBxdWl0ICQkJE9LXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogL1xcJFxcJFxcJFthLXpBLVpdKy9cbiAgICAgIH0sXG4gICAgICB7IC8vIFNwZWNpYWwgKGdsb2JhbCkgdmFyaWFibGVzOiB3cml0ZSAlcmVxdWVzdC5Db250ZW50OyBCdWlsdC1pbiBjbGFzc2VzOiAlTGlicmFyeS5JbnRlZ2VyXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyVbYS16XSsoPzpcXC5bYS16XSspKi9cbiAgICAgIH0sXG4gICAgICB7IC8vIEdsb2JhbCB2YXJpYWJsZTogc2V0IF5nbG9iYWxOYW1lID0gMTIgd3JpdGUgXmdsb2JhbE5hbWVcbiAgICAgICAgY2xhc3NOYW1lOiBcInN5bWJvbFwiLFxuICAgICAgICBiZWdpbjogL1xcXiU/W2EtekEtWl1bXFx3XSovXG4gICAgICB9LFxuICAgICAgeyAvLyBTb21lIGNvbnRyb2wgY29uc3RydWN0aW9uczogZG8gIyNjbGFzcyhQYWNrYWdlLkNsYXNzTmFtZSkuTWV0aG9kKCksICMjc3VwZXIoKVxuICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiLFxuICAgICAgICBiZWdpbjogLyMjY2xhc3N8IyNzdXBlcnwjZGVmaW5lfCNkaW0vXG4gICAgICB9LFxuXG4gICAgICAvLyBzdWItbGFuZ3VhZ2VzOiBhcmUgbm90IGZ1bGx5IHN1cHBvcnRlZCBieSBobGpzIGJ5IDExLzE1LzIwMTVcbiAgICAgIC8vIGxlZnQgZm9yIHRoZSBmdXR1cmUgaW1wbGVtZW50YXRpb24uXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJnNxbFxcKC8sICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6IFwic3FsXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJihqc3xqc2NyaXB0fGphdmFzY3JpcHQpPC8sIGVuZDogLz4vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiBcImphdmFzY3JpcHRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gdGhpcyBicmFrZXMgZmlyc3QgYW5kIGxhc3QgdGFnLCBidXQgdGhpcyBpcyB0aGUgb25seSB3YXkgdG8gZW1iZWQgYSB2YWxpZCBodG1sXG4gICAgICAgIGJlZ2luOiAvJmh0bWw8XFxzKjwvLCBlbmQ6IC8+XFxzKj4vLFxuICAgICAgICBzdWJMYW5ndWFnZTogXCJ4bWxcIlxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBSRVNPVVJDRVMgPSAncHJpbWl0aXZlIHJzY190ZW1wbGF0ZSc7XG5cbiAgdmFyIENPTU1BTkRTID0gJ2dyb3VwIGNsb25lIG1zIG1hc3RlciBsb2NhdGlvbiBjb2xvY2F0aW9uIG9yZGVyIGZlbmNpbmdfdG9wb2xvZ3kgJyArXG4gICAgICAncnNjX3RpY2tldCBhY2xfdGFyZ2V0IGFjbF9ncm91cCB1c2VyIHJvbGUgJyArXG4gICAgICAndGFnIHhtbCc7XG5cbiAgdmFyIFBST1BFUlRZX1NFVFMgPSAncHJvcGVydHkgcnNjX2RlZmF1bHRzIG9wX2RlZmF1bHRzJztcblxuICB2YXIgS0VZV09SRFMgPSAncGFyYW1zIG1ldGEgb3BlcmF0aW9ucyBvcCBydWxlIGF0dHJpYnV0ZXMgdXRpbGl6YXRpb24nO1xuXG4gIHZhciBPUEVSQVRPUlMgPSAncmVhZCB3cml0ZSBkZW55IGRlZmluZWQgbm90X2RlZmluZWQgaW5fcmFuZ2UgZGF0ZSBzcGVjIGluICcgK1xuICAgICAgJ3JlZiByZWZlcmVuY2UgYXR0cmlidXRlIHR5cGUgeHBhdGggdmVyc2lvbiBhbmQgb3IgbHQgZ3QgdGFnICcgK1xuICAgICAgJ2x0ZSBndGUgZXEgbmUgXFxcXCc7XG5cbiAgdmFyIFRZUEVTID0gJ251bWJlciBzdHJpbmcnO1xuXG4gIHZhciBMSVRFUkFMUyA9ICdNYXN0ZXIgU3RhcnRlZCBTbGF2ZSBTdG9wcGVkIHN0YXJ0IHByb21vdGUgZGVtb3RlIHN0b3AgbW9uaXRvciB0cnVlIGZhbHNlJztcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnY3JtJywgJ3BjbWsnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyArICcgJyArIE9QRVJBVE9SUyArICcgJyArIFRZUEVTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbm9kZScsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJ1xcXFxzKihbXFxcXHdfLV0rOik/JyxcbiAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxzKltcXFxcJFxcXFx3X11bXFxcXHdfLV0qJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogUkVTT1VSQ0VTLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgZW5kOiAnXFxcXHMqW1xcXFwkXFxcXHdfXVtcXFxcd18tXSonLFxuICAgICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgICAgZW5kOiAnXFxcXHMqQD9bXFxcXHdfXVtcXFxcd19cXFxcLjotXSonXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBDT01NQU5EUy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcpXFxcXHMrJyxcbiAgICAgICAga2V5d29yZHM6IENPTU1BTkRTLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgZW5kOiAnW1xcXFwkXFxcXHdfXVtcXFxcd18tXSonXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6IFBST1BFUlRZX1NFVFMsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICBlbmQ6ICdcXFxccyooW1xcXFx3Xy1dKzopPydcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyhvY2Z8c3lzdGVtZHxzZXJ2aWNlfGxzYik6W1xcXFx3XzotXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCsoXFxcXC5cXFxcZCspPyhtc3xzfGh8bSk/JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgYmVnaW46ICdbLV0/KGluZmluaXR5fGluZiknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogLyhbQS1aYS16XFwkX1xcI11bXFx3Xy1dKyk9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgICAgICBiZWdpbjogJzwvPycsXG4gICAgICAgIGVuZDogJy8/PicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBOVU1fU1VGRklYID0gJyhfW3VpZl0oOHwxNnwzMnw2NCkpPyc7XG4gIHZhciBDUllTVEFMX0lERU5UX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dPyc7XG4gIHZhciBSRV9TVEFSVEVSID0gJyE9fCE9PXwlfCU9fCZ8JiZ8Jj18XFxcXCp8XFxcXCo9fFxcXFwrfFxcXFwrPXwsfC18LT18Lz18L3w6fDt8PDx8PDw9fDw9fDx8PT09fD09fD18Pj4+PXw+Pj18Pj18Pj4+fCcgK1xuICAgICc+Pnw+fFxcXFxbfFxcXFx7fFxcXFwofFxcXFxefFxcXFxePXxcXFxcfHxcXFxcfD18XFxcXHxcXFxcfHx+JztcbiAgdmFyIENSWVNUQUxfTUVUSE9EX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XVxcXFxAfDw8fD4+fD1+fD09PT98PD0+fFs8Pl09P3xcXFxcKlxcXFwqfFstLyslXiYqfmB8XXxcXFxcW1xcXFxdWz0/XT8nO1xuICB2YXIgQ1JZU1RBTF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2Fic3RyYWN0IGFsaWFzIGFzIGFzPyBhc20gYmVnaW4gYnJlYWsgY2FzZSBjbGFzcyBkZWYgZG8gZWxzZSBlbHNpZiBlbmQgZW5zdXJlIGVudW0gZXh0ZW5kIGZvciBmdW4gaWYgJyArXG4gICAgICAnaW5jbHVkZSBpbnN0YW5jZV9zaXplb2YgaXNfYT8gbGliIG1hY3JvIG1vZHVsZSBuZXh0IG5pbD8gb2Ygb3V0IHBvaW50ZXJvZiBwcml2YXRlIHByb3RlY3RlZCByZXNjdWUgcmVzcG9uZHNfdG8/ICcgK1xuICAgICAgJ3JldHVybiByZXF1aXJlIHNlbGVjdCBzZWxmIHNpemVvZiBzdHJ1Y3Qgc3VwZXIgdGhlbiB0eXBlIHR5cGVvZiB1bmlvbiB1bmluaXRpYWxpemVkIHVubGVzcyB1bnRpbCB3aGVuIHdoaWxlIHdpdGggeWllbGQgJyArXG4gICAgICAnX19ESVJfXyBfX0VORF9MSU5FX18gX19GSUxFX18gX19MSU5FX18nLFxuICAgIGxpdGVyYWw6ICdmYWxzZSBuaWwgdHJ1ZSdcbiAgfTtcbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJyN7JywgZW5kOiAnfScsXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFNcbiAgfTtcbiAgdmFyIEVYUEFOU0lPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogJ1xcXFx7XFxcXHsnLCBlbmQ6ICdcXFxcfVxcXFx9J30sXG4gICAgICB7YmVnaW46ICdcXFxceyUnLCBlbmQ6ICclXFxcXH0nfVxuICAgIF0sXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFNcbiAgfTtcblxuICBmdW5jdGlvbiByZWN1cnNpdmVQYXJlbihiZWdpbiwgZW5kKSB7XG4gICAgdmFyXG4gICAgY29udGFpbnMgPSBbe2JlZ2luOiBiZWdpbiwgZW5kOiBlbmR9XTtcbiAgICBjb250YWluc1swXS5jb250YWlucyA9IGNvbnRhaW5zO1xuICAgIHJldHVybiBjb250YWlucztcbiAgfVxuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFNVQlNUXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAvJy8sIGVuZDogLycvfSxcbiAgICAgIHtiZWdpbjogL1wiLywgZW5kOiAvXCIvfSxcbiAgICAgIHtiZWdpbjogL2AvLCBlbmQ6IC9gL30sXG4gICAgICB7YmVnaW46ICcldz9cXFxcKCcsIGVuZDogJ1xcXFwpJywgY29udGFpbnM6IHJlY3Vyc2l2ZVBhcmVuKCdcXFxcKCcsICdcXFxcKScpfSxcbiAgICAgIHtiZWdpbjogJyV3P1xcXFxbJywgZW5kOiAnXFxcXF0nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJyl9LFxuICAgICAge2JlZ2luOiAnJXc/eycsIGVuZDogJ30nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ3snLCAnfScpfSxcbiAgICAgIHtiZWdpbjogJyV3PzwnLCBlbmQ6ICc+JywgY29udGFpbnM6IHJlY3Vyc2l2ZVBhcmVuKCc8JywgJz4nKX0sXG4gICAgICB7YmVnaW46ICcldz8vJywgZW5kOiAnLyd9LFxuICAgICAge2JlZ2luOiAnJXc/JScsIGVuZDogJyUnfSxcbiAgICAgIHtiZWdpbjogJyV3Py0nLCBlbmQ6ICctJ30sXG4gICAgICB7YmVnaW46ICcldz9cXFxcfCcsIGVuZDogJ1xcXFx8J30sXG4gICAgICB7YmVnaW46IC88PC1cXHcrJC8sIGVuZDogL15cXHMqXFx3KyQvfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgfTtcbiAgdmFyIFFfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogJyVxXFxcXCgnLCBlbmQ6ICdcXFxcKScsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKX0sXG4gICAgICB7YmVnaW46ICclcVxcXFxbJywgZW5kOiAnXFxcXF0nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJyl9LFxuICAgICAge2JlZ2luOiAnJXF7JywgZW5kOiAnfScsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigneycsICd9Jyl9LFxuICAgICAge2JlZ2luOiAnJXE8JywgZW5kOiAnPicsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignPCcsICc+Jyl9LFxuICAgICAge2JlZ2luOiAnJXEvJywgZW5kOiAnLyd9LFxuICAgICAge2JlZ2luOiAnJXElJywgZW5kOiAnJSd9LFxuICAgICAge2JlZ2luOiAnJXEtJywgZW5kOiAnLSd9LFxuICAgICAge2JlZ2luOiAnJXFcXFxcfCcsIGVuZDogJ1xcXFx8J30sXG4gICAgICB7YmVnaW46IC88PC0nXFx3KyckLywgZW5kOiAvXlxccypcXHcrJC99LFxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwLFxuICB9O1xuICB2YXIgUkVHRVhQID0ge1xuICAgIGJlZ2luOiAnKCcgKyBSRV9TVEFSVEVSICsgJylcXFxccyonLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAnLy9bYS16XSonLCByZWxldmFuY2U6IDB9LFxuICAgICAgICAgIHtiZWdpbjogJy8nLCBlbmQ6ICcvW2Etel0qJ30sXG4gICAgICAgICAge2JlZ2luOiAnJXJcXFxcKCcsIGVuZDogJ1xcXFwpJywgY29udGFpbnM6IHJlY3Vyc2l2ZVBhcmVuKCdcXFxcKCcsICdcXFxcKScpfSxcbiAgICAgICAgICB7YmVnaW46ICclclxcXFxbJywgZW5kOiAnXFxcXF0nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJyl9LFxuICAgICAgICAgIHtiZWdpbjogJyVyeycsIGVuZDogJ30nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ3snLCAnfScpfSxcbiAgICAgICAgICB7YmVnaW46ICclcjwnLCBlbmQ6ICc+JywgY29udGFpbnM6IHJlY3Vyc2l2ZVBhcmVuKCc8JywgJz4nKX0sXG4gICAgICAgICAge2JlZ2luOiAnJXIvJywgZW5kOiAnLyd9LFxuICAgICAgICAgIHtiZWdpbjogJyVyJScsIGVuZDogJyUnfSxcbiAgICAgICAgICB7YmVnaW46ICclci0nLCBlbmQ6ICctJ30sXG4gICAgICAgICAge2JlZ2luOiAnJXJcXFxcfCcsIGVuZDogJ1xcXFx8J30sXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgUkVHRVhQMiA9IHtcbiAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogJyVyXFxcXCgnLCBlbmQ6ICdcXFxcKScsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKX0sXG4gICAgICB7YmVnaW46ICclclxcXFxbJywgZW5kOiAnXFxcXF0nLCBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJyl9LFxuICAgICAge2JlZ2luOiAnJXJ7JywgZW5kOiAnfScsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigneycsICd9Jyl9LFxuICAgICAge2JlZ2luOiAnJXI8JywgZW5kOiAnPicsIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignPCcsICc+Jyl9LFxuICAgICAge2JlZ2luOiAnJXIvJywgZW5kOiAnLyd9LFxuICAgICAge2JlZ2luOiAnJXIlJywgZW5kOiAnJSd9LFxuICAgICAge2JlZ2luOiAnJXItJywgZW5kOiAnLSd9LFxuICAgICAge2JlZ2luOiAnJXJcXFxcfCcsIGVuZDogJ1xcXFx8J30sXG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIEFUVFJJQlVURSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0BcXFxcWycsIGVuZDogJ1xcXFxdJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtjbGFzc05hbWU6ICdtZXRhLXN0cmluZyd9KVxuICAgIF1cbiAgfTtcbiAgdmFyIENSWVNUQUxfREVGQVVMVF9DT05UQUlOUyA9IFtcbiAgICBFWFBBTlNJT04sXG4gICAgU1RSSU5HLFxuICAgIFFfU1RSSU5HLFxuICAgIFJFR0VYUCxcbiAgICBSRUdFWFAyLFxuICAgIEFUVFJJQlVURSxcbiAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBtb2R1bGUgc3RydWN0JywgZW5kOiAnJHw7JyxcbiAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogJ1tBLVphLXpfXVxcXFx3Kig6OlxcXFx3KykqKFxcXFw/fFxcXFwhKT8nfSksXG4gICAgICAgIHtiZWdpbjogJzwnfSAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgaW5oZXJpdGFuY2VcbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdsaWIgZW51bSB1bmlvbicsIGVuZDogJyR8OycsXG4gICAgICBpbGxlZ2FsOiAvPS8sXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46ICdbQS1aYS16X11cXFxcdyooOjpcXFxcdyspKihcXFxcP3xcXFxcISk/J30pLFxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMTBcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWYnLCBlbmQ6IC9cXEJcXGIvLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICAgIGJlZ2luOiBDUllTVEFMX01FVEhPRF9SRSxcbiAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICBiZWdpbktleXdvcmRzOiAnZnVuIG1hY3JvJywgZW5kOiAvXFxCXFxiLyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICBiZWdpbjogQ1JZU1RBTF9NRVRIT0RfUkUsXG4gICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogNVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKFxcXFwhfFxcXFw/KT86JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOicsXG4gICAgICBjb250YWluczogW1NUUklORywge2JlZ2luOiBDUllTVEFMX01FVEhPRF9SRX1dLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiMGIoWzAxX10qWzAxXSknICsgTlVNX1NVRkZJWCB9LFxuICAgICAgICB7IGJlZ2luOiAnXFxcXGIwbyhbMC03X10qWzAtN10pJyArIE5VTV9TVUZGSVggfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiMHgoW0EtRmEtZjAtOV9dKltBLUZhLWYwLTldKScgKyBOVU1fU1VGRklYIH0sXG4gICAgICAgIHsgYmVnaW46ICdcXFxcYigoWzAtOV1bMC05X10qWzAtOV18WzAtOV0pKFxcXFwuWzAtOV9dKlswLTldKT8oW2VFXVsrLV0/WzAtOV9dKlswLTldKT8pJyArIE5VTV9TVUZGSVh9XG4gICAgICBdLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IENSWVNUQUxfREVGQVVMVF9DT05UQUlOUztcbiAgRVhQQU5TSU9OLmNvbnRhaW5zID0gQ1JZU1RBTF9ERUZBVUxUX0NPTlRBSU5TLnNsaWNlKDEpOyAvLyB3aXRob3V0IEVYUEFOU0lPTlxuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjciddLFxuICAgIGxleGVtZXM6IENSWVNUQUxfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IENSWVNUQUxfREVGQVVMVF9DT05UQUlOU1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAvLyBOb3JtYWwga2V5d29yZHMuXG4gICAgICAnYWJzdHJhY3QgYXMgYmFzZSBib29sIGJyZWFrIGJ5dGUgY2FzZSBjYXRjaCBjaGFyIGNoZWNrZWQgY29uc3QgY29udGludWUgZGVjaW1hbCAnICtcbiAgICAgICdkZWZhdWx0IGRlbGVnYXRlIGRvIGRvdWJsZSBlbnVtIGV2ZW50IGV4cGxpY2l0IGV4dGVybiBmaW5hbGx5IGZpeGVkIGZsb2F0ICcgK1xuICAgICAgJ2ZvciBmb3JlYWNoIGdvdG8gaWYgaW1wbGljaXQgaW4gaW50IGludGVyZmFjZSBpbnRlcm5hbCBpcyBsb2NrIGxvbmcgbmFtZW9mICcgK1xuICAgICAgJ29iamVjdCBvcGVyYXRvciBvdXQgb3ZlcnJpZGUgcGFyYW1zIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZWFkb25seSByZWYgc2J5dGUgJyArXG4gICAgICAnc2VhbGVkIHNob3J0IHNpemVvZiBzdGFja2FsbG9jIHN0YXRpYyBzdHJpbmcgc3RydWN0IHN3aXRjaCB0aGlzIHRyeSB0eXBlb2YgJyArXG4gICAgICAndWludCB1bG9uZyB1bmNoZWNrZWQgdW5zYWZlIHVzaG9ydCB1c2luZyB2aXJ0dWFsIHZvaWQgdm9sYXRpbGUgd2hpbGUgJyArXG4gICAgICAvLyBDb250ZXh0dWFsIGtleXdvcmRzLlxuICAgICAgJ2FkZCBhbGlhcyBhc2NlbmRpbmcgYXN5bmMgYXdhaXQgYnkgZGVzY2VuZGluZyBkeW5hbWljIGVxdWFscyBmcm9tIGdldCBnbG9iYWwgZ3JvdXAgaW50byBqb2luICcgK1xuICAgICAgJ2xldCBvbiBvcmRlcmJ5IHBhcnRpYWwgcmVtb3ZlIHNlbGVjdCBzZXQgdmFsdWUgdmFyIHdoZXJlIHlpZWxkJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ251bGwgZmFsc2UgdHJ1ZSdcbiAgfTtcblxuICB2YXIgVkVSQkFUSU1fU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdAXCInLCBlbmQ6ICdcIicsXG4gICAgY29udGFpbnM6IFt7YmVnaW46ICdcIlwiJ31dXG4gIH07XG4gIHZhciBWRVJCQVRJTV9TVFJJTkdfTk9fTEYgPSBobGpzLmluaGVyaXQoVkVSQkFUSU1fU1RSSU5HLCB7aWxsZWdhbDogL1xcbi99KTtcbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ3snLCBlbmQ6ICd9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgdmFyIFNVQlNUX05PX0xGID0gaGxqcy5pbmhlcml0KFNVQlNULCB7aWxsZWdhbDogL1xcbi99KTtcbiAgdmFyIElOVEVSUE9MQVRFRF9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJFwiLywgZW5kOiAnXCInLFxuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAne3snfSwge2JlZ2luOiAnfX0nfSwgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF9OT19MRl1cbiAgfTtcbiAgdmFyIElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJEBcIi8sIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogW3tiZWdpbjogJ3t7J30sIHtiZWdpbjogJ319J30sIHtiZWdpbjogJ1wiXCInfSwgU1VCU1RdXG4gIH07XG4gIHZhciBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HX05PX0xGID0gaGxqcy5pbmhlcml0KElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcsIHtcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW3tiZWdpbjogJ3t7J30sIHtiZWdpbjogJ319J30sIHtiZWdpbjogJ1wiXCInfSwgU1VCU1RfTk9fTEZdXG4gIH0pO1xuICBTVUJTVC5jb250YWlucyA9IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gIF07XG4gIFNVQlNUX05PX0xGLmNvbnRhaW5zID0gW1xuICAgIElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkdfTk9fTEYsXG4gICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICBWRVJCQVRJTV9TVFJJTkdfTk9fTEYsXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCB7aWxsZWdhbDogL1xcbi99KVxuICBdO1xuICB2YXIgU1RSSU5HID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICAgIFZFUkJBVElNX1NUUklORyxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG5cbiAgdmFyIFRZUEVfSURFTlRfUkUgPSBobGpzLklERU5UX1JFICsgJyg8JyArIGhsanMuSURFTlRfUkUgKyAnKFxcXFxzKixcXFxccyonICsgaGxqcy5JREVOVF9SRSArICcpKj4pPyhcXFxcW1xcXFxdKT8nO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjc2hhcnAnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzo6LyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnLy8vJyxcbiAgICAgICAgJyQnLFxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBiZWdpbjogJy8vLycsIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46ICc8IS0tfC0tPidcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGJlZ2luOiAnPC8/JywgZW5kOiAnPidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjJywgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgJ21ldGEta2V5d29yZCc6ICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSByZWdpb24gZW5kcmVnaW9uIHByYWdtYSBjaGVja3N1bSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOl0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJywgZW5kOiAvW3s7PV0vLFxuICAgICAgICBpbGxlZ2FsOiAvW15cXHM6XS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge2JlZ2luOiAnW2EtekEtWl0oXFxcXC4/XFxcXHcpKid9KSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBbQXR0cmlidXRlcyhcIlwiKV1cbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKlxcXFxbJywgZXhjbHVkZUJlZ2luOiB0cnVlLCBlbmQ6ICdcXFxcXScsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge2NsYXNzTmFtZTogJ21ldGEtc3RyaW5nJywgYmVnaW46IC9cIi8sIGVuZDogL1wiL31cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gRXhwcmVzc2lvbiBrZXl3b3JkcyBwcmV2ZW50ICdrZXl3b3JkIE5hbWUoLi4uKScgZnJvbSBiZWluZ1xuICAgICAgICAvLyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHJldHVybiB0aHJvdyBhd2FpdCBlbHNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luOiAnKCcgKyBUWVBFX0lERU5UX1JFICsgJ1xcXFxzKykrJyArIGhsanMuSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAvW3s7PV0vLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5USVRMRV9NT0RFXSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogZmFsc2UsXG4gICAgbGV4ZW1lczogJ1thLXpBLVpdW2EtekEtWjAtOV8tXSonLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAnYmFzZS11cmkgY2hpbGQtc3JjIGNvbm5lY3Qtc3JjIGRlZmF1bHQtc3JjIGZvbnQtc3JjIGZvcm0tYWN0aW9uJyArXG4gICAgICAgICcgZnJhbWUtYW5jZXN0b3JzIGZyYW1lLXNyYyBpbWctc3JjIG1lZGlhLXNyYyBvYmplY3Qtc3JjIHBsdWdpbi10eXBlcycgK1xuICAgICAgICAnIHJlcG9ydC11cmkgc2FuZGJveCBzY3JpcHQtc3JjIHN0eWxlLXNyYycsIFxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46IFwiJ1wiLCBlbmQ6IFwiJ1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgYmVnaW46ICdeQ29udGVudCcsIGVuZDogJzonLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgIH0sXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIElERU5UX1JFID0gJ1thLXpBLVotXVthLXpBLVowLTlfLV0qJztcbiAgdmFyIFJVTEUgPSB7XG4gICAgYmVnaW46IC9bQS1aXFxfXFwuXFwtXStcXHMqOi8sIHJldHVybkJlZ2luOiB0cnVlLCBlbmQ6ICc7JywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC9cXFMvLCBlbmQ6ICc6JywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46IC9bXFx3LV0rXFwoLywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICAgICAgICAgICAgYmVnaW46IC9bXFx3LV0rL1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGxqcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJywgYmVnaW46ICcjWzAtOUEtRmEtZl0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6IC9bPVxcL3wnXFwkXS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJywgYmVnaW46IC8jW0EtWmEtejAtOV8tXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1jbGFzcycsIGJlZ2luOiAvXFwuW0EtWmEtejAtOV8tXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgICAgYmVnaW46IC9cXFsvLCBlbmQ6IC9cXF0vLFxuICAgICAgICBpbGxlZ2FsOiAnJCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAvOig6KT9bYS16QS1aMC05XFxfXFwtXFwrXFwoXFwpXCInLl0rL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdAKGZvbnQtZmFjZXxwYWdlKScsXG4gICAgICAgIGxleGVtZXM6ICdbYS16LV0rJyxcbiAgICAgICAga2V5d29yZHM6ICdmb250LWZhY2UgcGFnZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnQCcsIGVuZDogJ1t7O10nLCAvLyBhdF9ydWxlIGVhdGluZyBmaXJzdCBcIntcIiBpcyBhIGdvb2QgdGhpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgaXQgZG9lc27igJl0IGxldCBpdCB0byBiZSBwYXJzZWQgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGEgcnVsZSBzZXQgYnV0IGluc3RlYWQgZHJvcHMgcGFyc2VyIGludG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkZWZhdWx0IG1vZGUgd2hpY2ggaXMgaG93IGl0IHNob3VsZCBiZS5cbiAgICAgICAgaWxsZWdhbDogLzovLCAvLyBicmVhayBvbiBMZXNzIHZhcmlhYmxlcyBAdmFyOiAuLi5cbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFx3Ky9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFxzLywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ1NTX05VTUJFUl9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci10YWcnLCBiZWdpbjogSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd7JywgZW5kOiAnfScsXG4gICAgICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgUlVMRSxcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSAvKipcbiAqIEtub3duIGlzc3VlczpcbiAqXG4gKiAtIGludmFsaWQgaGV4IHN0cmluZyBsaXRlcmFscyB3aWxsIGJlIHJlY29nbml6ZWQgYXMgYSBkb3VibGUgcXVvdGVkIHN0cmluZ3NcbiAqICAgYnV0ICd4JyBhdCB0aGUgYmVnaW5uaW5nIG9mIHN0cmluZyB3aWxsIG5vdCBiZSBtYXRjaGVkXG4gKlxuICogLSBkZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWxzIGFyZSBub3QgY2hlY2tlZCBmb3IgbWF0Y2hpbmcgZW5kIGRlbGltaXRlclxuICogICAobm90IHBvc3NpYmxlIHRvIGRvIHdpdGgganMgcmVnZXhwKVxuICpcbiAqIC0gY29udGVudCBvZiB0b2tlbiBzdHJpbmcgaXMgY29sb3JlZCBhcyBhIHN0cmluZyAoaS5lLiBubyBrZXl3b3JkIGNvbG9yaW5nIGluc2lkZSBhIHRva2VuIHN0cmluZylcbiAqICAgYWxzbywgY29udGVudCBvZiB0b2tlbiBzdHJpbmcgaXMgbm90IHZhbGlkYXRlZCB0byBjb250YWluIG9ubHkgdmFsaWQgRCB0b2tlbnNcbiAqXG4gKiAtIHNwZWNpYWwgdG9rZW4gc2VxdWVuY2UgcnVsZSBpcyBub3Qgc3RyaWN0bHkgZm9sbG93aW5nIEQgZ3JhbW1hciAoYW55dGhpbmcgZm9sbG93aW5nICNsaW5lXG4gKiAgIHVwIHRvIHRoZSBlbmQgb2YgbGluZSBpcyBtYXRjaGVkIGFzIHNwZWNpYWwgdG9rZW4gc2VxdWVuY2UpXG4gKi9cblxuZnVuY3Rpb24oaGxqcykge1xuICAvKipcbiAgICogTGFuZ3VhZ2Uga2V5d29yZHNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHZhciBEX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYWxpYXMgYWxpZ24gYXNtIGFzc2VydCBhdXRvIGJvZHkgYnJlYWsgYnl0ZSBjYXNlIGNhc3QgY2F0Y2ggY2xhc3MgJyArXG4gICAgICAnY29uc3QgY29udGludWUgZGVidWcgZGVmYXVsdCBkZWxldGUgZGVwcmVjYXRlZCBkbyBlbHNlIGVudW0gZXhwb3J0IGV4dGVybiBmaW5hbCAnICtcbiAgICAgICdmaW5hbGx5IGZvciBmb3JlYWNoIGZvcmVhY2hfcmV2ZXJzZXwxMCBnb3RvIGlmIGltbXV0YWJsZSBpbXBvcnQgaW4gaW5vdXQgaW50ICcgK1xuICAgICAgJ2ludGVyZmFjZSBpbnZhcmlhbnQgaXMgbGF6eSBtYWNybyBtaXhpbiBtb2R1bGUgbmV3IG5vdGhyb3cgb3V0IG92ZXJyaWRlIHBhY2thZ2UgJyArXG4gICAgICAncHJhZ21hIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyBwdXJlIHJlZiByZXR1cm4gc2NvcGUgc2hhcmVkIHN0YXRpYyBzdHJ1Y3QgJyArXG4gICAgICAnc3VwZXIgc3dpdGNoIHN5bmNocm9uaXplZCB0ZW1wbGF0ZSB0aGlzIHRocm93IHRyeSB0eXBlZGVmIHR5cGVpZCB0eXBlb2YgdW5pb24gJyArXG4gICAgICAndW5pdHRlc3QgdmVyc2lvbiB2b2lkIHZvbGF0aWxlIHdoaWxlIHdpdGggX19GSUxFX18gX19MSU5FX18gX19nc2hhcmVkfDEwICcgK1xuICAgICAgJ19fdGhyZWFkIF9fdHJhaXRzIF9fREFURV9fIF9fRU9GX18gX19USU1FX18gX19USU1FU1RBTVBfXyBfX1ZFTkRPUl9fIF9fVkVSU0lPTl9fJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdib29sIGNkb3VibGUgY2VudCBjZmxvYXQgY2hhciBjcmVhbCBkY2hhciBkZWxlZ2F0ZSBkb3VibGUgZHN0cmluZyBmbG9hdCBmdW5jdGlvbiAnICtcbiAgICAgICdpZG91YmxlIGlmbG9hdCBpcmVhbCBsb25nIHJlYWwgc2hvcnQgc3RyaW5nIHVieXRlIHVjZW50IHVpbnQgdWxvbmcgdXNob3J0IHdjaGFyICcgK1xuICAgICAgJ3dzdHJpbmcnLFxuICAgIGxpdGVyYWw6XG4gICAgICAnZmFsc2UgbnVsbCB0cnVlJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgbGl0ZXJhbCByZWdleHBzXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICB2YXIgZGVjaW1hbF9pbnRlZ2VyX3JlID0gJygwfFsxLTldW1xcXFxkX10qKScsXG4gICAgZGVjaW1hbF9pbnRlZ2VyX25vc3VzX3JlID0gJygwfFsxLTldW1xcXFxkX10qfFxcXFxkW1xcXFxkX10qfFtcXFxcZF9dKz9cXFxcZCknLFxuICAgIGJpbmFyeV9pbnRlZ2VyX3JlID0gJzBbYkJdWzAxX10rJyxcbiAgICBoZXhhZGVjaW1hbF9kaWdpdHNfcmUgPSAnKFtcXFxcZGEtZkEtRl1bXFxcXGRhLWZBLUZfXSp8X1tcXFxcZGEtZkEtRl1bXFxcXGRhLWZBLUZfXSopJyxcbiAgICBoZXhhZGVjaW1hbF9pbnRlZ2VyX3JlID0gJzBbeFhdJyArIGhleGFkZWNpbWFsX2RpZ2l0c19yZSxcblxuICAgIGRlY2ltYWxfZXhwb25lbnRfcmUgPSAnKFtlRV1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKScsXG4gICAgZGVjaW1hbF9mbG9hdF9yZSA9ICcoJyArIGRlY2ltYWxfaW50ZWdlcl9ub3N1c19yZSArICcoXFxcXC5cXFxcZCp8JyArIGRlY2ltYWxfZXhwb25lbnRfcmUgKyAnKXwnICtcbiAgICAgICAgICAgICAgICAnXFxcXGQrXFxcXC4nICsgZGVjaW1hbF9pbnRlZ2VyX25vc3VzX3JlICsgZGVjaW1hbF9pbnRlZ2VyX25vc3VzX3JlICsgJ3wnICtcbiAgICAgICAgICAgICAgICAnXFxcXC4nICsgZGVjaW1hbF9pbnRlZ2VyX3JlICsgZGVjaW1hbF9leHBvbmVudF9yZSArICc/JyArXG4gICAgICAgICAgICAgICcpJyxcbiAgICBoZXhhZGVjaW1hbF9mbG9hdF9yZSA9ICcoMFt4WF0oJyArXG4gICAgICAgICAgICAgICAgICBoZXhhZGVjaW1hbF9kaWdpdHNfcmUgKyAnXFxcXC4nICsgaGV4YWRlY2ltYWxfZGlnaXRzX3JlICsgJ3wnK1xuICAgICAgICAgICAgICAgICAgJ1xcXFwuPycgKyBoZXhhZGVjaW1hbF9kaWdpdHNfcmUgK1xuICAgICAgICAgICAgICAgICAnKVtwUF1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKScsXG5cbiAgICBpbnRlZ2VyX3JlID0gJygnICtcbiAgICAgIGRlY2ltYWxfaW50ZWdlcl9yZSArICd8JyArXG4gICAgICBiaW5hcnlfaW50ZWdlcl9yZSAgKyAnfCcgK1xuICAgICAgIGhleGFkZWNpbWFsX2ludGVnZXJfcmUgICArXG4gICAgJyknLFxuXG4gICAgZmxvYXRfcmUgPSAnKCcgK1xuICAgICAgaGV4YWRlY2ltYWxfZmxvYXRfcmUgKyAnfCcgK1xuICAgICAgZGVjaW1hbF9mbG9hdF9yZSAgK1xuICAgICcpJztcblxuICAvKipcbiAgICogRXNjYXBlIHNlcXVlbmNlIHN1cHBvcnRlZCBpbiBEIHN0cmluZyBhbmQgY2hhcmFjdGVyIGxpdGVyYWxzXG4gICAqXG4gICAqIEB0eXBlIHtTdHJpbmd9XG4gICAqL1xuICB2YXIgZXNjYXBlX3NlcXVlbmNlX3JlID0gJ1xcXFxcXFxcKCcgK1xuICAgICAgICAgICAgICAnW1xcJ1wiXFxcXD9cXFxcXFxcXGFiZm5ydHZdfCcgKyAgLy8gY29tbW9uIGVzY2FwZXNcbiAgICAgICAgICAgICAgJ3VbXFxcXGRBLUZhLWZdezR9fCcgKyAgICAgLy8gZm91ciBoZXggZGlnaXQgdW5pY29kZSBjb2RlcG9pbnRcbiAgICAgICAgICAgICAgJ1swLTddezEsM318JyArICAgICAgIC8vIG9uZSB0byB0aHJlZSBvY3RhbCBkaWdpdCBhc2NpaSBjaGFyIGNvZGVcbiAgICAgICAgICAgICAgJ3hbXFxcXGRBLUZhLWZdezJ9fCcgKyAgICAvLyB0d28gaGV4IGRpZ2l0IGFzY2lpIGNoYXIgY29kZVxuICAgICAgICAgICAgICAnVVtcXFxcZEEtRmEtZl17OH0nICsgICAgICAvLyBlaWdodCBoZXggZGlnaXQgdW5pY29kZSBjb2RlcG9pbnRcbiAgICAgICAgICAgICAgJyl8JyArXG4gICAgICAgICAgICAgICcmW2EtekEtWlxcXFxkXXsyLH07JzsgICAgICAvLyBuYW1lZCBjaGFyYWN0ZXIgZW50aXR5XG5cbiAgLyoqXG4gICAqIEQgaW50ZWdlciBudW1iZXIgbGl0ZXJhbHNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHZhciBEX0lOVEVHRVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgYmVnaW46ICdcXFxcYicgKyBpbnRlZ2VyX3JlICsgJyhMfHV8VXxMdXxMVXx1THxVTCk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8qKlxuICAgKiBbRF9GTE9BVF9NT0RFIGRlc2NyaXB0aW9uXVxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgdmFyIERfRkxPQVRfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGIoJyArXG4gICAgICAgIGZsb2F0X3JlICsgJyhbZkZdfEx8aXxbZkZdaXxMaSk/fCcgK1xuICAgICAgICBpbnRlZ2VyX3JlICsgJyhpfFtmRl1pfExpKScgK1xuICAgICAgJyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8qKlxuICAgKiBEIGNoYXJhY3RlciBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9DSEFSQUNURVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFwnKCcgKyBlc2NhcGVfc2VxdWVuY2VfcmUgKyAnfC4pJywgZW5kOiAnXFwnJyxcbiAgICBpbGxlZ2FsOiAnLidcbiAgfTtcblxuICAvKipcbiAgICogRCBzdHJpbmcgZXNjYXBlIHNlcXVlbmNlXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9FU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgYmVnaW46IGVzY2FwZV9zZXF1ZW5jZV9yZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogRCBkb3VibGUgcXVvdGVkIHN0cmluZyBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbRF9FU0NBUEVfU0VRVUVOQ0VdLFxuICAgIGVuZDogJ1wiW2N3ZF0/J1xuICB9O1xuXG4gIC8qKlxuICAgKiBEIHd5c2l3eWcgYW5kIGRlbGltaXRlZCBzdHJpbmcgbGl0ZXJhbHNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHZhciBEX1dZU0lXWUdfREVMSU1JVEVEX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdbcnFdXCInLFxuICAgIGVuZDogJ1wiW2N3ZF0/JyxcbiAgICByZWxldmFuY2U6IDVcbiAgfTtcblxuICAvKipcbiAgICogRCBhbHRlcm5hdGUgd3lzaXd5ZyBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgdmFyIERfQUxURVJOQVRFX1dZU0lXWUdfU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ2AnLFxuICAgIGVuZDogJ2BbY3dkXT8nXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgaGV4YWRlY2ltYWwgc3RyaW5nIGxpdGVyYWxcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIHZhciBEX0hFWF9TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAneFwiW1xcXFxkYS1mQS1GXFxcXHNcXFxcblxcXFxyXSpcIltjd2RdPycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIC8qKlxuICAgKiBEIGRlbGltaXRlZCBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgdmFyIERfVE9LRU5fU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ3FcIlxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfVwiJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYXNoYmFuZyBzdXBwb3J0XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9IQVNIQkFOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXiMhJyxcbiAgICBlbmQ6ICckJyxcbiAgICByZWxldmFuY2U6IDVcbiAgfTtcblxuICAvKipcbiAgICogRCBzcGVjaWFsIHRva2VuIHNlcXVlbmNlXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9TUEVDSUFMX1RPS0VOX1NFUVVFTkNFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICcjKGxpbmUpJyxcbiAgICBlbmQ6ICckJyxcbiAgICByZWxldmFuY2U6IDVcbiAgfTtcblxuICAvKipcbiAgICogRCBhdHRyaWJ1dGVzXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9BVFRSSUJVVEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ0BbYS16QS1aX11bYS16QS1aX1xcXFxkXSonXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgbmVzdGluZyBjb21tZW50XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICB2YXIgRF9ORVNUSU5HX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVChcbiAgICAnXFxcXC9cXFxcKycsXG4gICAgJ1xcXFwrXFxcXC8nLFxuICAgIHtcbiAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXSxcbiAgICAgIHJlbGV2YW5jZTogMTBcbiAgICB9XG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsZXhlbWVzOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IERfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgRF9ORVNUSU5HX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgRF9IRVhfU1RSSU5HX01PREUsXG4gICAgICAgIERfU1RSSU5HX01PREUsXG4gICAgICAgIERfV1lTSVdZR19ERUxJTUlURURfU1RSSU5HX01PREUsXG4gICAgICAgIERfQUxURVJOQVRFX1dZU0lXWUdfU1RSSU5HX01PREUsXG4gICAgICAgIERfVE9LRU5fU1RSSU5HX01PREUsXG4gICAgICAgIERfRkxPQVRfTU9ERSxcbiAgICAgICAgRF9JTlRFR0VSX01PREUsXG4gICAgICAgIERfQ0hBUkFDVEVSX01PREUsXG4gICAgICAgIERfSEFTSEJBTkdfTU9ERSxcbiAgICAgICAgRF9TUEVDSUFMX1RPS0VOX1NFUVVFTkNFX01PREUsXG4gICAgICAgIERfQVRUUklCVVRFX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnbWQnLCAnbWtkb3duJywgJ21rZCddLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBoaWdobGlnaHQgaGVhZGVyc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXiN7MSw2fScsIGVuZDogJyQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ14uKz9cXFxcbls9LV17Mix9JCcgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIGh0bWxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JywgZW5kOiAnPicsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gbGlzdHMgKGluZGljYXRvcnMgb25seSlcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVsbGV0JyxcbiAgICAgICAgYmVnaW46ICdeKFsqKy1dfChcXFxcZCtcXFxcLikpXFxcXHMrJ1xuICAgICAgfSxcbiAgICAgIC8vIHN0cm9uZyBzZWdtZW50c1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJvbmcnLFxuICAgICAgICBiZWdpbjogJ1sqX117Mn0uKz9bKl9dezJ9J1xuICAgICAgfSxcbiAgICAgIC8vIGVtcGhhc2lzIHNlZ21lbnRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2VtcGhhc2lzJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXCouKz9cXFxcKicgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXy4rP18nXG4gICAgICAgICAgLCByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBibG9ja3F1b3Rlc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdxdW90ZScsXG4gICAgICAgIGJlZ2luOiAnXj5cXFxccysnLCBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIC8vIGNvZGUgc25pcHBldHNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeYGBgXFx3KlxccyokJywgZW5kOiAnXmBgYFxccyokJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdgLis/YCdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXiggezR9fFxcdCknLCBlbmQ6ICckJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGhvcml6b250YWwgcnVsZXNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeWy1cXFxcKl17Myx9JywgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICAvLyB1c2luZyBsaW5rcyAtIHRpdGxlIGFuZCBsaW5rXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXFsuKz9cXFxcXVtcXFxcKFxcXFxbXS4qP1tcXFxcKVxcXFxdXScsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxbJywgZW5kOiAnXFxcXF0nLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdsaW5rJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXF1cXFxcKCcsIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXF1cXFxcWycsIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9eXFxbW15cXG5dK1xcXTovLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICAgICAgYmVnaW46IC9cXFsvLCBlbmQ6IC9cXF0vLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdsaW5rJyxcbiAgICAgICAgICAgIGJlZ2luOiAvOlxccyovLCBlbmQ6IC8kLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaGxqcykge1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXCRcXFxceycsIGVuZDogJ30nLFxuICAgIGtleXdvcmRzOiAndHJ1ZSBmYWxzZSBudWxsIHRoaXMgaXMgbmV3IHN1cGVyJ1xuICB9O1xuXG4gIHZhciBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCdcXCdcXCcnLCBlbmQ6ICdcXCdcXCdcXCcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIlwiXCInLCBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCcnLCBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIicsIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCdcXCdcXCcnLCBlbmQ6ICdcXCdcXCdcXCcnLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRSwgU1VCU1RdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiXCJcIicsIGVuZDogJ1wiXCJcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFNVQlNUXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFNVQlNUXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgU1VCU1QuY29udGFpbnMgPSBbXG4gICAgaGxqcy5DX05VTUJFUl9NT0RFLCBTVFJJTkdcbiAgXTtcblxuICB2YXIgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogJ2Fzc2VydCBhc3luYyBhd2FpdCBicmVhayBjYXNlIGNhdGNoIGNsYXNzIGNvbnN0IGNvbnRpbnVlIGRlZmF1bHQgZG8gZWxzZSBlbnVtIGV4dGVuZHMgZmFsc2UgZmluYWwgJyArXG4gICAgICAnZmluYWxseSBmb3IgaWYgaW4gaXMgbmV3IG51bGwgcmV0aHJvdyByZXR1cm4gc3VwZXIgc3dpdGNoIHN5bmMgdGhpcyB0aHJvdyB0cnVlIHRyeSB2YXIgdm9pZCB3aGlsZSB3aXRoIHlpZWxkICcgK1xuICAgICAgJ2Fic3RyYWN0IGFzIGR5bmFtaWMgZXhwb3J0IGV4dGVybmFsIGZhY3RvcnkgZ2V0IGltcGxlbWVudHMgaW1wb3J0IGxpYnJhcnkgb3BlcmF0b3IgcGFydCBzZXQgc3RhdGljIHR5cGVkZWYnLFxuICAgIGJ1aWx0X2luOlxuICAgICAgLy8gZGFydDpjb3JlXG4gICAgICAncHJpbnQgQ29tcGFyYWJsZSBEYXRlVGltZSBEdXJhdGlvbiBGdW5jdGlvbiBJdGVyYWJsZSBJdGVyYXRvciBMaXN0IE1hcCBNYXRjaCBOdWxsIE9iamVjdCBQYXR0ZXJuIFJlZ0V4cCBTZXQgJyArXG4gICAgICAnU3RvcHdhdGNoIFN0cmluZyBTdHJpbmdCdWZmZXIgU3RyaW5nU2luayBTeW1ib2wgVHlwZSBVcmkgYm9vbCBkb3VibGUgaW50IG51bSAnICtcbiAgICAgIC8vIGRhcnQ6aHRtbFxuICAgICAgJ2RvY3VtZW50IHdpbmRvdyBxdWVyeVNlbGVjdG9yIHF1ZXJ5U2VsZWN0b3JBbGwgRWxlbWVudCBFbGVtZW50TGlzdCdcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RSSU5HLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnL1xcXFwqXFxcXConLFxuICAgICAgICAnXFxcXCovJyxcbiAgICAgICAge1xuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnbWFya2Rvd24nXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICcvLy8nLFxuICAgICAgICAnJCcsXG4gICAgICAgIHtcbiAgICAgICAgICBzdWJMYW5ndWFnZTogJ21hcmtkb3duJ1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MgaW50ZXJmYWNlJywgZW5kOiAneycsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cydcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJz0+JyAvLyBObyBtYXJrdXAsIGp1c3QgYSByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfVxuICAgIF1cbiAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID1cbiAgICAnZXhwb3J0cyByZWdpc3RlciBmaWxlIHNobCBhcnJheSByZWNvcmQgcHJvcGVydHkgZm9yIG1vZCB3aGlsZSBzZXQgYWxseSBsYWJlbCB1c2VzIHJhaXNlIG5vdCAnICtcbiAgICAnc3RvcmVkIGNsYXNzIHNhZmVjYWxsIHZhciBpbnRlcmZhY2Ugb3IgcHJpdmF0ZSBzdGF0aWMgZXhpdCBpbmRleCBpbmhlcml0ZWQgdG8gZWxzZSBzdGRjYWxsICcgK1xuICAgICdvdmVycmlkZSBzaHIgYXNtIGZhciByZXNvdXJjZXN0cmluZyBmaW5hbGl6YXRpb24gcGFja2VkIHZpcnR1YWwgb3V0IGFuZCBwcm90ZWN0ZWQgbGlicmFyeSBkbyAnICtcbiAgICAneG9yd3JpdGUgZ290byBuZWFyIGZ1bmN0aW9uIGVuZCBkaXYgb3ZlcmxvYWQgb2JqZWN0IHVuaXQgYmVnaW4gc3RyaW5nIG9uIGlubGluZSByZXBlYXQgdW50aWwgJyArXG4gICAgJ2Rlc3RydWN0b3Igd3JpdGUgbWVzc2FnZSBwcm9ncmFtIHdpdGggcmVhZCBpbml0aWFsaXphdGlvbiBleGNlcHQgZGVmYXVsdCBuaWwgaWYgY2FzZSBjZGVjbCBpbiAnICtcbiAgICAnZG93bnRvIHRocmVhZHZhciBvZiB0cnkgcGFzY2FsIGNvbnN0IGV4dGVybmFsIGNvbnN0cnVjdG9yIHR5cGUgcHVibGljIHRoZW4gaW1wbGVtZW50YXRpb24gJyArXG4gICAgJ2ZpbmFsbHkgcHVibGlzaGVkIHByb2NlZHVyZSBhYnNvbHV0ZSByZWludHJvZHVjZSBvcGVyYXRvciBhcyBpcyBhYnN0cmFjdCBhbGlhcyBhc3NlbWJsZXIgJyArXG4gICAgJ2JpdHBhY2tlZCBicmVhayBjb250aW51ZSBjcHBkZWNsIGN2YXIgZW51bWVyYXRvciBleHBlcmltZW50YWwgcGxhdGZvcm0gZGVwcmVjYXRlZCAnICtcbiAgICAndW5pbXBsZW1lbnRlZCBkeW5hbWljIGV4cG9ydCBmYXIxNiBmb3J3YXJkIGdlbmVyaWMgaGVscGVyIGltcGxlbWVudHMgaW50ZXJydXB0IGlvY2hlY2tzICcgK1xuICAgICdsb2NhbCBuYW1lIG5vZGVmYXVsdCBub3JldHVybiBub3N0YWNrZnJhbWUgb2xkZnBjY2FsbCBvdGhlcndpc2Ugc2F2ZXJlZ2lzdGVycyBzb2Z0ZmxvYXQgJyArXG4gICAgJ3NwZWNpYWxpemUgc3RyaWN0IHVuYWxpZ25lZCB2YXJhcmdzICc7XG4gIHZhciBDT01NRU5UX01PREVTID0gW1xuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoL1xcey8sIC9cXH0vLCB7cmVsZXZhbmNlOiAwfSksXG4gICAgaGxqcy5DT01NRU5UKC9cXChcXCovLCAvXFwqXFwpLywge3JlbGV2YW5jZTogMTB9KVxuICBdO1xuICB2YXIgRElSRUNUSVZFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IC9cXHtcXCQvLCBlbmQ6IC9cXH0vfSxcbiAgICAgIHtiZWdpbjogL1xcKFxcKlxcJC8sIGVuZDogL1xcKlxcKS99XG4gICAgXVxuICB9O1xuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8nLywgZW5kOiAvJy8sXG4gICAgY29udGFpbnM6IFt7YmVnaW46IC8nJy99XVxuICB9O1xuICB2YXIgQ0hBUl9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgYmVnaW46IC8oI1xcZCspKy9cbiAgfTtcbiAgdmFyIENMQVNTID0ge1xuICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxzKj1cXFxccypjbGFzc1xcXFxzKlxcXFwoJywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuVElUTEVfTU9ERVxuICAgIF1cbiAgfTtcbiAgdmFyIEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gY29uc3RydWN0b3IgZGVzdHJ1Y3RvciBwcm9jZWR1cmUnLCBlbmQ6IC9bOjtdLyxcbiAgICBrZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yfDEwIGRlc3RydWN0b3J8MTAgcHJvY2VkdXJlfDEwJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtTVFJJTkcsIENIQVJfU1RSSU5HLCBESVJFQ1RJVkVdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICAgICAgfSxcbiAgICAgIERJUkVDVElWRVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gIH07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydkcHInLCAnZGZtJywgJ3BhcycsICdwYXNjYWwnLCAnZnJlZXBhc2NhbCcsICdsYXphcnVzJywgJ2xwcicsICdsZm0nXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXCJ8XFwkW0ctWmctel18XFwvXFwqfDxcXC98XFx8LyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RSSU5HLCBDSEFSX1NUUklORyxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBDTEFTUyxcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgRElSRUNUSVZFXG4gICAgXS5jb25jYXQoQ09NTUVOVF9NT0RFUylcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydwYXRjaCddLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogL15AQCArXFwtXFxkKyxcXGQrICtcXCtcXGQrLFxcZCsgK0BAJC99LFxuICAgICAgICAgIHtiZWdpbjogL15cXCpcXCpcXCogK1xcZCssXFxkKyArXFwqXFwqXFwqXFwqJC99LFxuICAgICAgICAgIHtiZWdpbjogL15cXC1cXC1cXC0gK1xcZCssXFxkKyArXFwtXFwtXFwtXFwtJC99XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogL0luZGV4OiAvLCBlbmQ6IC8kL30sXG4gICAgICAgICAge2JlZ2luOiAvPXszLH0vLCBlbmQ6IC8kL30sXG4gICAgICAgICAge2JlZ2luOiAvXlxcLXszfS8sIGVuZDogLyQvfSxcbiAgICAgICAgICB7YmVnaW46IC9eXFwqezN9IC8sIGVuZDogLyQvfSxcbiAgICAgICAgICB7YmVnaW46IC9eXFwrezN9LywgZW5kOiAvJC99LFxuICAgICAgICAgIHtiZWdpbjogL1xcKns1fS8sIGVuZDogL1xcKns1fSQvfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhZGRpdGlvbicsXG4gICAgICAgIGJlZ2luOiAnXlxcXFwrJywgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2RlbGV0aW9uJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXC0nLCBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYWRkaXRpb24nLFxuICAgICAgICBiZWdpbjogJ15cXFxcIScsIGVuZDogJyQnXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEZJTFRFUiA9IHtcbiAgICBiZWdpbjogL1xcfFtBLVphLXpdKzo/LyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbmFtZTpcbiAgICAgICAgJ3RydW5jYXRld29yZHMgcmVtb3ZldGFncyBsaW5lYnJlYWtzYnIgeWVzbm8gZ2V0X2RpZ2l0IHRpbWVzaW5jZSByYW5kb20gc3RyaXB0YWdzICcgK1xuICAgICAgICAnZmlsZXNpemVmb3JtYXQgZXNjYXBlIGxpbmVicmVha3MgbGVuZ3RoX2lzIGxqdXN0IHJqdXN0IGN1dCB1cmxpemUgZml4X2FtcGVyc2FuZHMgJyArXG4gICAgICAgICd0aXRsZSBmbG9hdGZvcm1hdCBjYXBmaXJzdCBwcHJpbnQgZGl2aXNpYmxlYnkgYWRkIG1ha2VfbGlzdCB1bm9yZGVyZWRfbGlzdCB1cmxlbmNvZGUgJyArXG4gICAgICAgICd0aW1ldW50aWwgdXJsaXpldHJ1bmMgd29yZGNvdW50IHN0cmluZ2Zvcm1hdCBsaW5lbnVtYmVycyBzbGljZSBkYXRlIGRpY3Rzb3J0ICcgK1xuICAgICAgICAnZGljdHNvcnRyZXZlcnNlZCBkZWZhdWx0X2lmX25vbmUgcGx1cmFsaXplIGxvd2VyIGpvaW4gY2VudGVyIGRlZmF1bHQgJyArXG4gICAgICAgICd0cnVuY2F0ZXdvcmRzX2h0bWwgdXBwZXIgbGVuZ3RoIHBob25lMm51bWVyaWMgd29yZHdyYXAgdGltZSBhZGRzbGFzaGVzIHNsdWdpZnkgZmlyc3QgJyArXG4gICAgICAgICdlc2NhcGVqcyBmb3JjZV9lc2NhcGUgaXJpZW5jb2RlIGxhc3Qgc2FmZSBzYWZlc2VxIHRydW5jYXRlY2hhcnMgbG9jYWxpemUgdW5sb2NhbGl6ZSAnICtcbiAgICAgICAgJ2xvY2FsdGltZSB1dGMgdGltZXpvbmUnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnamluamEnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKC9cXHslXFxzKmNvbW1lbnRcXHMqJX0vLCAvXFx7JVxccyplbmRjb21tZW50XFxzKiV9LyksXG4gICAgICBobGpzLkNPTU1FTlQoL1xceyMvLCAvI30vKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHslLywgZW5kOiAvJX0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgICAgIG5hbWU6XG4gICAgICAgICAgICAgICAgJ2NvbW1lbnQgZW5kY29tbWVudCBsb2FkIHRlbXBsYXRldGFnIGlmY2hhbmdlZCBlbmRpZmNoYW5nZWQgaWYgZW5kaWYgZmlyc3RvZiBmb3IgJyArXG4gICAgICAgICAgICAgICAgJ2VuZGZvciBpZm5vdGVxdWFsIGVuZGlmbm90ZXF1YWwgd2lkdGhyYXRpbyBleHRlbmRzIGluY2x1ZGUgc3BhY2VsZXNzICcgK1xuICAgICAgICAgICAgICAgICdlbmRzcGFjZWxlc3MgcmVncm91cCBpZmVxdWFsIGVuZGlmZXF1YWwgc3NpIG5vdyB3aXRoIGN5Y2xlIHVybCBmaWx0ZXIgJyArXG4gICAgICAgICAgICAgICAgJ2VuZGZpbHRlciBkZWJ1ZyBibG9jayBlbmRibG9jayBlbHNlIGF1dG9lc2NhcGUgZW5kYXV0b2VzY2FwZSBjc3JmX3Rva2VuIGVtcHR5IGVsaWYgJyArXG4gICAgICAgICAgICAgICAgJ2VuZHdpdGggc3RhdGljIHRyYW5zIGJsb2NrdHJhbnMgZW5kYmxvY2t0cmFucyBnZXRfc3RhdGljX3ByZWZpeCBnZXRfbWVkaWFfcHJlZml4ICcgK1xuICAgICAgICAgICAgICAgICdwbHVyYWwgZ2V0X2N1cnJlbnRfbGFuZ3VhZ2UgbGFuZ3VhZ2UgZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMgJyArXG4gICAgICAgICAgICAgICAgJ2dldF9jdXJyZW50X2xhbmd1YWdlX2JpZGkgZ2V0X2xhbmd1YWdlX2luZm8gZ2V0X2xhbmd1YWdlX2luZm9fbGlzdCBsb2NhbGl6ZSAnICtcbiAgICAgICAgICAgICAgICAnZW5kbG9jYWxpemUgbG9jYWx0aW1lIGVuZGxvY2FsdGltZSB0aW1lem9uZSBlbmR0aW1lem9uZSBnZXRfY3VycmVudF90aW1lem9uZSAnICtcbiAgICAgICAgICAgICAgICAndmVyYmF0aW0nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICBrZXl3b3JkczogJ2luIGJ5IGFzJyxcbiAgICAgICAgICAgICAgY29udGFpbnM6IFtGSUxURVJdLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHsvLCBlbmQ6IC99fS8sXG4gICAgICAgIGNvbnRhaW5zOiBbRklMVEVSXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydiaW5kJywgJ3pvbmUnXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ0lOIEEgQUFBQSBBRlNEQiBBUEwgQ0FBIENETlNLRVkgQ0RTIENFUlQgQ05BTUUgREhDSUQgRExWIEROQU1FIEROU0tFWSBEUyBISVAgSVBTRUNLRVkgS0VZIEtYICcgK1xuICAgICAgICAnTE9DIE1YIE5BUFRSIE5TIE5TRUMgTlNFQzMgTlNFQzNQQVJBTSBQVFIgUlJTSUcgUlAgU0lHIFNPQSBTUlYgU1NIRlAgVEEgVEtFWSBUTFNBIFRTSUcgVFhUJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywge3JlbGV2YW5jZTogMH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9eXFwkKFRUTHxHRU5FUkFURXxJTkNMVURFfE9SSUdJTilcXGIvXG4gICAgICB9LFxuICAgICAgLy8gSVB2NlxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJygoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkoXFxcXC4oMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7MX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkoXFxcXC4oMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkpezN9KSl8OikpKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIElQdjRcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICcoKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXFxcYidcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5OVU1CRVJfTU9ERSwge2JlZ2luOiAvXFxiXFxkK1tkaHdtXT8vfSlcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnZG9ja2VyJ10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogJ2Zyb20gbWFpbnRhaW5lciBleHBvc2UgZW52IGFyZyB1c2VyIG9uYnVpbGQgc3RvcHNpZ25hbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3J1biBjbWQgZW50cnlwb2ludCB2b2x1bWUgYWRkIGNvcHkgd29ya2RpciBsYWJlbCBoZWFsdGhjaGVjayBzaGVsbCcsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogL1teXFxcXF1cXG4vLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnYmFzaCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogJzwvJ1xuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXlxccypAP3JlbVxcYi8sIC8kLyxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfVxuICApO1xuICB2YXIgTEFCRUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJ15cXFxccypbQS1aYS16Ll8/XVtBLVphLXowLTlfJCNAfi4/XSooOnxcXFxccytsYWJlbCknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnYmF0JywgJ2NtZCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdpZiBlbHNlIGdvdG8gZm9yIGluIGRvIGNhbGwgZXhpdCBub3QgZXhpc3QgZXJyb3JsZXZlbCBkZWZpbmVkICcgK1xuICAgICAgICAnZXF1IG5lcSBsc3MgbGVxIGd0ciBnZXEnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdwcm4gbnVsIGxwdDMgbHB0MiBscHQxIGNvbiBjb200IGNvbTMgY29tMiBjb20xIGF1eCAnICtcbiAgICAgICAgJ3NoaWZ0IGNkIGRpciBlY2hvIHNldGxvY2FsIGVuZGxvY2FsIHNldCBwYXVzZSBjb3B5ICcgK1xuICAgICAgICAnYXBwZW5kIGFzc29jIGF0IGF0dHJpYiBicmVhayBjYWNscyBjZCBjaGNwIGNoZGlyIGNoa2RzayBjaGtudGZzIGNscyBjbWQgY29sb3IgJyArXG4gICAgICAgICdjb21wIGNvbXBhY3QgY29udmVydCBkYXRlIGRpciBkaXNrY29tcCBkaXNrY29weSBkb3NrZXkgZXJhc2UgZnMgJyArXG4gICAgICAgICdmaW5kIGZpbmRzdHIgZm9ybWF0IGZ0eXBlIGdyYWZ0YWJsIGhlbHAga2V5YiBsYWJlbCBtZCBta2RpciBtb2RlIG1vcmUgbW92ZSBwYXRoICcgK1xuICAgICAgICAncGF1c2UgcHJpbnQgcG9wZCBwdXNoZCBwcm9tdCByZCByZWNvdmVyIHJlbSByZW5hbWUgcmVwbGFjZSByZXN0b3JlIHJtZGlyIHNoaWZ0JyArXG4gICAgICAgICdzb3J0IHN0YXJ0IHN1YnN0IHRpbWUgdGl0bGUgdHJlZSB0eXBlIHZlciB2ZXJpZnkgdm9sICcgK1xuICAgICAgICAvLyB3aW51dGlsc1xuICAgICAgICAncGluZyBuZXQgaXBjb25maWcgdGFza2tpbGwgeGNvcHkgcmVuIGRlbCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJywgYmVnaW46IC8lJVteIF18JVteIF0rPyV8IVteIF0rPyEvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luOiBMQUJFTC5iZWdpbiwgZW5kOiAnZ290bzplb2YnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogJyhbX2EtekEtWl1cXFxcdypcXFxcLikqKFtfYS16QS1aXVxcXFx3KjopP1tfYS16QS1aXVxcXFx3Kid9KSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsIGJlZ2luOiAnXFxcXGJcXFxcZCsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFFVT1RFRF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLCBlbmQ6IC9cIi9cbiAgfTtcbiAgdmFyIEFQT1NfUFJPUEVSVFkgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLCBlbmQ6IC8nL1xuICB9O1xuICB2YXIgVU5RVU9URURfUFJPUEVSVFkgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1tcXFxcdy0/XSs6XFxcXHcrJywgZW5kOiAnXFxcXFcnLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgVkFMVUVMRVNTX1BST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXFxcdystP1xcXFx3KycsIGVuZDogJ1xcXFxXJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiAnZHNjb25maWcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ15kc2NvbmZpZycsIGVuZDogJ1xcXFxzJywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJyhsaXN0fGNyZWF0ZXxnZXR8c2V0fGRlbGV0ZSktKFxcXFx3KyknLCBlbmQ6ICdcXFxccycsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICchQCMkJV4mKigpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJy0tKFxcXFx3KyknLCBlbmQ6ICdcXFxccycsIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICBRVU9URURfUFJPUEVSVFksXG4gICAgICBBUE9TX1BST1BFUlRZLFxuICAgICAgVU5RVU9URURfUFJPUEVSVFksXG4gICAgICBWQUxVRUxFU1NfUFJPUEVSVFksXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgYmVnaW46ICcoKHU4P3xVKXxMKT9cIicgfSksXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVKT9SXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCdcXFxcXFxcXD8uJywgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHZhciBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYihcXFxcZCsoXFxcXC5cXFxcZCopP3xcXFxcLlxcXFxkKykodXxVfGx8THx1bHxVTHxmfEYpJyB9LFxuICAgICAgeyBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICB2YXIgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIycsIGVuZDogJyQnLFxuICAgIGtleXdvcmRzOiB7J21ldGEta2V5d29yZCc6ICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIGlmZGVmIGlmbmRlZid9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2luY2x1ZGUnLCBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsnbWV0YS1rZXl3b3JkJzogJ2luY2x1ZGUnfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoU1RSSU5HUywge2NsYXNzTmFtZTogJ21ldGEtc3RyaW5nJ30pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ21ldGEtc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnPCcsIGVuZDogJz4nLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFNUUklOR1MsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIHZhciBEVFNfUkVGRVJFTkNFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJ1xcXFwmW2EtelxcXFxkX10qXFxcXGInXG4gIH07XG5cbiAgdmFyIERUU19LRVlXT1JEID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEta2V5d29yZCcsXG4gICAgYmVnaW46ICcvW2Etel1bYS16XFxcXGQtXSovJ1xuICB9O1xuXG4gIHZhciBEVFNfTEFCRUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJ15cXFxccypbYS16QS1aX11bYS16QS1aXFxcXGRfXSo6J1xuICB9O1xuXG4gIHZhciBEVFNfQ0VMTF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnPCcsXG4gICAgZW5kOiAnPicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5VTUJFUlMsXG4gICAgICBEVFNfUkVGRVJFTkNFXG4gICAgXVxuICB9O1xuXG4gIHZhciBEVFNfTk9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW46IC9bYS16QS1aX11bYS16QS1aXFxkX0BdKlxcc3svLFxuICAgIGVuZDogL1t7Oz1dLyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBleGNsdWRlRW5kOiB0cnVlXG4gIH07XG5cbiAgdmFyIERUU19ST09UX05PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGJlZ2luOiAnL1xcXFxzKnsnLFxuICAgIGVuZDogJ307JyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBEVFNfUkVGRVJFTkNFLFxuICAgICAgRFRTX0tFWVdPUkQsXG4gICAgICBEVFNfTEFCRUwsXG4gICAgICBEVFNfTk9ERSxcbiAgICAgIERUU19DRUxMX1BST1BFUlRZLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBTVFJJTkdTXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IFwiXCIsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIERUU19ST09UX05PREUsXG4gICAgICBEVFNfUkVGRVJFTkNFLFxuICAgICAgRFRTX0tFWVdPUkQsXG4gICAgICBEVFNfTEFCRUwsXG4gICAgICBEVFNfTk9ERSxcbiAgICAgIERUU19DRUxMX1BST1BFUlRZLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBTVFJJTkdTLFxuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgIGtleXdvcmRzOiBcIlwiXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEVYUFJFU1NJT05fS0VZV09SRFMgPSAnaWYgZXEgbmUgbHQgbHRlIGd0IGd0ZSBzZWxlY3QgZGVmYXVsdCBtYXRoIHNlcCc7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydkc3QnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1sjXFwvXS8sIGVuZDogL1xcfS8sIGlsbGVnYWw6IC87LyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiAvW2EtekEtWlxcLi1dKy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXHsvLCBlbmQ6IC9cXH0vLCBpbGxlZ2FsOiAvOy8sXG4gICAgICAgIGtleXdvcmRzOiBFWFBSRVNTSU9OX0tFWVdPUkRTXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgICB2YXIgY29tbWVudE1vZGUgPSBobGpzLkNPTU1FTlQoL1xcKFxcKi8sIC9cXCpcXCkvKTtcblxuICAgIHZhciBub25UZXJtaW5hbE1vZGUgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJhdHRyaWJ1dGVcIixcbiAgICAgICAgYmVnaW46IC9eWyBdKlthLXpBLVpdW2EtekEtWi1dKihbXFxzLV0rW2EtekEtWl1bYS16QS1aXSopKi9cbiAgICB9O1xuXG4gICAgdmFyIHNwZWNpYWxTZXF1ZW5jZU1vZGUgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJtZXRhXCIsXG4gICAgICAgIGJlZ2luOiAvXFw/LipcXD8vXG4gICAgfTtcblxuICAgIHZhciBydWxlQm9keU1vZGUgPSB7XG4gICAgICAgIGJlZ2luOiAvPS8sIGVuZDogLzsvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgY29tbWVudE1vZGUsXG4gICAgICAgICAgICBzcGVjaWFsU2VxdWVuY2VNb2RlLFxuICAgICAgICAgICAgLy8gdGVybWluYWxzXG4gICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGNvbW1lbnRNb2RlLFxuICAgICAgICAgICAgbm9uVGVybWluYWxNb2RlLFxuICAgICAgICAgICAgcnVsZUJvZHlNb2RlXG4gICAgICAgIF1cbiAgICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEVMSVhJUl9JREVOVF9SRSA9ICdbYS16QS1aX11bYS16QS1aMC05X10qKFxcXFwhfFxcXFw/KT8nO1xuICB2YXIgRUxJWElSX01FVEhPRF9SRSA9ICdbYS16QS1aX11cXFxcdypbIT89XT98Wy0rfl1cXFxcQHw8PHw+Pnw9fnw9PT0/fDw9PnxbPD5dPT98XFxcXCpcXFxcKnxbLS8rJV4mKn5gfF18XFxcXFtcXFxcXT0/JztcbiAgdmFyIEVMSVhJUl9LRVlXT1JEUyA9XG4gICAgJ2FuZCBmYWxzZSB0aGVuIGRlZmluZWQgbW9kdWxlIGluIHJldHVybiByZWRvIHJldHJ5IGVuZCBmb3IgdHJ1ZSBzZWxmIHdoZW4gJyArXG4gICAgJ25leHQgdW50aWwgZG8gYmVnaW4gdW5sZXNzIG5pbCBicmVhayBub3QgY2FzZSBjb25kIGFsaWFzIHdoaWxlIGVuc3VyZSBvciAnICtcbiAgICAnaW5jbHVkZSB1c2UgYWxpYXMgZm4gcXVvdGUnO1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnI1xcXFx7JywgZW5kOiAnfScsXG4gICAgbGV4ZW1lczogRUxJWElSX0lERU5UX1JFLFxuICAgIGtleXdvcmRzOiBFTElYSVJfS0VZV09SRFNcbiAgfTtcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLywgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLCBlbmQ6IC9cIi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIHZhciBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW5LZXl3b3JkczogJ2RlZiBkZWZwIGRlZm1hY3JvJywgZW5kOiAvXFxCXFxiLywgLy8gdGhlIG1vZGUgaXMgZW5kZWQgYnkgdGhlIHRpdGxlXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgYmVnaW46IEVMSVhJUl9JREVOVF9SRSxcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgfSlcbiAgICBdXG4gIH07XG4gIHZhciBDTEFTUyA9IGhsanMuaW5oZXJpdChGVU5DVElPTiwge1xuICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmaW1wbCBkZWZtb2R1bGUgZGVmcHJvdG9jb2wgZGVmcmVjb3JkJywgZW5kOiAvXFxiZG9cXGJ8JHw7L1xuICB9KTtcbiAgdmFyIEVMSVhJUl9ERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIFNUUklORyxcbiAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgIENMQVNTLFxuICAgIEZVTkNUSU9OLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICBiZWdpbjogJzooPyFcXFxccyknLFxuICAgICAgY29udGFpbnM6IFtTVFJJTkcsIHtiZWdpbjogRUxJWElSX01FVEhPRF9SRX1dLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgYmVnaW46IEVMSVhJUl9JREVOVF9SRSArICc6JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAnKFxcXFxiMFswLTdfXSspfChcXFxcYjB4WzAtOWEtZkEtRl9dKyl8KFxcXFxiWzEtOV1bMC05X10qKFxcXFwuWzAtOV9dKyk/KXxbMF9dXFxcXGInLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICBiZWdpbjogJyhcXFxcJFxcXFxXKXwoKFxcXFwkfFxcXFxAXFxcXEA/KShcXFxcdyspKSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnLT4nXG4gICAgfSxcbiAgICB7IC8vIHJlZ2V4cCBjb250YWluZXJcbiAgICAgIGJlZ2luOiAnKCcgKyBobGpzLlJFX1NUQVJURVJTX1JFICsgJylcXFxccyonLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRSwgU1VCU1RdLFxuICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJlZ2luOiAnLycsIGVuZDogJy9bYS16XSonXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogJyVyXFxcXFsnLCBlbmQ6ICdcXFxcXVthLXpdKidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gRUxJWElSX0RFRkFVTFRfQ09OVEFJTlM7XG5cbiAgcmV0dXJuIHtcbiAgICBsZXhlbWVzOiBFTElYSVJfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IEVMSVhJUl9LRVlXT1JEUyxcbiAgICBjb250YWluczogRUxJWElSX0RFRkFVTFRfQ09OVEFJTlNcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBDT01NRU5UID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICBobGpzLkNPTU1FTlQoJy0tJywgJyQnKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ3stJyxcbiAgICAgICAgJy19JyxcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXVxuICAgICAgICB9XG4gICAgICApXG4gICAgXVxuICB9O1xuXG4gIHZhciBDT05TVFJVQ1RPUiA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHdcXCddKicsIC8vIFRPRE86IG90aGVyIGNvbnN0cnVjdG9ycyAoYnVpbHQtaW4sIGluZml4KS5cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICB2YXIgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgIGlsbGVnYWw6ICdcIicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtjbGFzc05hbWU6ICd0eXBlJywgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XSooXFxcXCgoXFxcXC5cXFxcLnwsfFxcXFx3KylcXFxcKSk/J30sXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xuXG4gIHZhciBSRUNPUkQgPSB7XG4gICAgYmVnaW46ICd7JywgZW5kOiAnfScsXG4gICAgY29udGFpbnM6IExJU1QuY29udGFpbnNcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOlxuICAgICAgJ2xldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBtb2R1bGUgaW1wb3J0IGV4cG9zaW5nICcgK1xuICAgICAgJ3R5cGUgYWxpYXMgYXMgaW5maXggaW5maXhsIGluZml4ciBwb3J0IGVmZmVjdCBjb21tYW5kIHN1YnNjcmlwdGlvbicsXG4gICAgY29udGFpbnM6IFtcblxuICAgICAgLy8gVG9wLWxldmVsIGNvbnN0cnVjdGlvbnMuXG5cbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BvcnQgZWZmZWN0IG1vZHVsZScsIGVuZDogJ2V4cG9zaW5nJyxcbiAgICAgICAga2V5d29yZHM6ICdwb3J0IGVmZmVjdCBtb2R1bGUgd2hlcmUgY29tbWFuZCBzdWJzY3JpcHRpb24gZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW0xJU1QsIENPTU1FTlRdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdpbXBvcnQnLCBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6ICdpbXBvcnQgYXMgZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW0xJU1QsIENPTU1FTlRdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd0eXBlJywgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAndHlwZSBhbGlhcycsXG4gICAgICAgIGNvbnRhaW5zOiBbQ09OU1RSVUNUT1IsIExJU1QsIFJFQ09SRCwgQ09NTUVOVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbmZpeCBpbmZpeGwgaW5maXhyJywgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5DX05VTUJFUl9NT0RFLCBDT01NRU5UXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdwb3J0JywgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAncG9ydCcsXG4gICAgICAgIGNvbnRhaW5zOiBbQ09NTUVOVF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIExpdGVyYWxzIGFuZCBuYW1lcy5cblxuICAgICAgLy8gVE9ETzogY2hhcmFjdGVycy5cbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogJ15bX2Etel1bXFxcXHdcXCddKid9KSxcbiAgICAgIENPTU1FTlQsXG5cbiAgICAgIHtiZWdpbjogJy0+fDwtJ30gLy8gTm8gbWFya3VwLCByZWxldmFuY2UgYm9vc3RlclxuICAgIF0sXG4gICAgaWxsZWdhbDogLzsvXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgUlVCWV9NRVRIT0RfUkUgPSAnW2EtekEtWl9dXFxcXHcqWyE/PV0/fFstK35dXFxcXEB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+YHxdfFxcXFxbXFxcXF09Pyc7XG4gIHZhciBSVUJZX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnYW5kIHRoZW4gZGVmaW5lZCBtb2R1bGUgaW4gcmV0dXJuIHJlZG8gaWYgQkVHSU4gcmV0cnkgZW5kIGZvciBzZWxmIHdoZW4gJyArXG4gICAgICAnbmV4dCB1bnRpbCBkbyBiZWdpbiB1bmxlc3MgRU5EIHJlc2N1ZSBlbHNlIGJyZWFrIHVuZGVmIG5vdCBzdXBlciBjbGFzcyBjYXNlICcgK1xuICAgICAgJ3JlcXVpcmUgeWllbGQgYWxpYXMgd2hpbGUgZW5zdXJlIGVsc2lmIG9yIGluY2x1ZGUgYXR0cl9yZWFkZXIgYXR0cl93cml0ZXIgYXR0cl9hY2Nlc3NvcicsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0cnVlIGZhbHNlIG5pbCdcbiAgfTtcbiAgdmFyIFlBUkRPQ1RBRyA9IHtcbiAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgIGJlZ2luOiAnQFtBLVphLXpdKydcbiAgfTtcbiAgdmFyIElSQl9PQkpFQ1QgPSB7XG4gICAgYmVnaW46ICcjPCcsIGVuZDogJz4nXG4gIH07XG4gIHZhciBDT01NRU5UX01PREVTID0gW1xuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICcjJyxcbiAgICAgICckJyxcbiAgICAgIHtcbiAgICAgICAgY29udGFpbnM6IFtZQVJET0NUQUddXG4gICAgICB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnXlxcXFw9YmVnaW4nLFxuICAgICAgJ15cXFxcPWVuZCcsXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBbWUFSRE9DVEFHXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfVxuICAgICksXG4gICAgaGxqcy5DT01NRU5UKCdeX19FTkRfXycsICdcXFxcbiQnKVxuICBdO1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnI1xcXFx7JywgZW5kOiAnfScsXG4gICAga2V5d29yZHM6IFJVQllfS0VZV09SRFNcbiAgfTtcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogLycvLCBlbmQ6IC8nL30sXG4gICAgICB7YmVnaW46IC9cIi8sIGVuZDogL1wiL30sXG4gICAgICB7YmVnaW46IC9gLywgZW5kOiAvYC99LFxuICAgICAge2JlZ2luOiAnJVtxUXdXeF0/XFxcXCgnLCBlbmQ6ICdcXFxcKSd9LFxuICAgICAge2JlZ2luOiAnJVtxUXdXeF0/XFxcXFsnLCBlbmQ6ICdcXFxcXSd9LFxuICAgICAge2JlZ2luOiAnJVtxUXdXeF0/eycsIGVuZDogJ30nfSxcbiAgICAgIHtiZWdpbjogJyVbcVF3V3hdPzwnLCBlbmQ6ICc+J30sXG4gICAgICB7YmVnaW46ICclW3FRd1d4XT8vJywgZW5kOiAnLyd9LFxuICAgICAge2JlZ2luOiAnJVtxUXdXeF0/JScsIGVuZDogJyUnfSxcbiAgICAgIHtiZWdpbjogJyVbcVF3V3hdPy0nLCBlbmQ6ICctJ30sXG4gICAgICB7YmVnaW46ICclW3FRd1d4XT9cXFxcfCcsIGVuZDogJ1xcXFx8J30sXG4gICAgICB7XG4gICAgICAgIC8vIFxcQiBpbiB0aGUgYmVnaW5uaW5nIHN1cHByZXNzZXMgcmVjb2duaXRpb24gb2YgPy1zZXF1ZW5jZXMgd2hlcmUgP1xuICAgICAgICAvLyBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBwcmVjZWRpbmcgaWRlbnRpZmllciwgYXMgaW46IGBmdW5jPzRgXG4gICAgICAgIGJlZ2luOiAvXFxCXFw/KFxcXFxcXGR7MSwzfXxcXFxceFtBLUZhLWYwLTldezEsMn18XFxcXHVbQS1GYS1mMC05XXs0fXxcXFxcP1xcUylcXGIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzw8KC0/KVxcdyskLywgZW5kOiAvXlxccypcXHcrJC8sXG4gICAgICB9XG4gICAgXVxuICB9O1xuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJywgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEU1xuICB9O1xuXG4gIHZhciBSVUJZX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIElSQl9PQkpFQ1QsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIG1vZHVsZScsIGVuZDogJyR8OycsXG4gICAgICBpbGxlZ2FsOiAvPS8sXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46ICdbQS1aYS16X11cXFxcdyooOjpcXFxcdyspKihcXFxcP3xcXFxcISk/J30pLFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICc8XFxcXHMqJyxcbiAgICAgICAgICBjb250YWluczogW3tcbiAgICAgICAgICAgIGJlZ2luOiAnKCcgKyBobGpzLklERU5UX1JFICsgJzo6KT8nICsgaGxqcy5JREVOVF9SRVxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICBiZWdpbktleXdvcmRzOiAnZGVmJywgZW5kOiAnJHw7JyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogUlVCWV9NRVRIT0RfUkV9KSxcbiAgICAgICAgUEFSQU1TXG4gICAgICBdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICAgIH0sXG4gICAge1xuICAgICAgLy8gc3dhbGxvdyBuYW1lc3BhY2UgcXVhbGlmaWVycyBiZWZvcmUgc3ltYm9sc1xuICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUgKyAnOjonXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICcoXFxcXCF8XFxcXD8pPzonLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgYmVnaW46ICc6KD8hXFxcXHMpJyxcbiAgICAgIGNvbnRhaW5zOiBbU1RSSU5HLCB7YmVnaW46IFJVQllfTUVUSE9EX1JFfV0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyhcXFxcYjBbMC03X10rKXwoXFxcXGIweFswLTlhLWZBLUZfXSspfChcXFxcYlsxLTldWzAtOV9dKihcXFxcLlswLTlfXSspPyl8WzBfXVxcXFxiJyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46ICcoXFxcXCRcXFxcVyl8KChcXFxcJHxcXFxcQFxcXFxAPykoXFxcXHcrKSknIC8vIHZhcmlhYmxlc1xuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgIGJlZ2luOiAvXFx8LywgZW5kOiAvXFx8LyxcbiAgICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gICAgfSxcbiAgICB7IC8vIHJlZ2V4cCBjb250YWluZXJcbiAgICAgIGJlZ2luOiAnKCcgKyBobGpzLlJFX1NUQVJURVJTX1JFICsgJ3x1bmxlc3MpXFxcXHMqJyxcbiAgICAgIGtleXdvcmRzOiAndW5sZXNzJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIElSQl9PQkpFQ1QsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF0sXG4gICAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtiZWdpbjogJy8nLCBlbmQ6ICcvW2Etel0qJ30sXG4gICAgICAgICAgICB7YmVnaW46ICclcnsnLCBlbmQ6ICd9W2Etel0qJ30sXG4gICAgICAgICAgICB7YmVnaW46ICclclxcXFwoJywgZW5kOiAnXFxcXClbYS16XSonfSxcbiAgICAgICAgICAgIHtiZWdpbjogJyVyIScsIGVuZDogJyFbYS16XSonfSxcbiAgICAgICAgICAgIHtiZWdpbjogJyVyXFxcXFsnLCBlbmQ6ICdcXFxcXVthLXpdKid9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLmNvbmNhdChDT01NRU5UX01PREVTKSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXS5jb25jYXQoQ09NTUVOVF9NT0RFUyk7XG5cbiAgU1VCU1QuY29udGFpbnMgPSBSVUJZX0RFRkFVTFRfQ09OVEFJTlM7XG4gIFBBUkFNUy5jb250YWlucyA9IFJVQllfREVGQVVMVF9DT05UQUlOUztcblxuICB2YXIgU0lNUExFX1BST01QVCA9IFwiWz4/XT5cIjtcbiAgdmFyIERFRkFVTFRfUFJPTVBUID0gXCJbXFxcXHcjXStcXFxcKFxcXFx3K1xcXFwpOlxcXFxkKzpcXFxcZCs+XCI7XG4gIHZhciBSVk1fUFJPTVBUID0gXCIoXFxcXHcrLSk/XFxcXGQrXFxcXC5cXFxcZCtcXFxcLlxcXFxkKHBcXFxcZCspP1tePl0rPlwiO1xuXG4gIHZhciBJUkJfREVGQVVMVCA9IFtcbiAgICB7XG4gICAgICBiZWdpbjogL15cXHMqPT4vLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyQnLCBjb250YWluczogUlVCWV9ERUZBVUxUX0NPTlRBSU5TXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnXignK1NJTVBMRV9QUk9NUFQrXCJ8XCIrREVGQVVMVF9QUk9NUFQrJ3wnK1JWTV9QUk9NUFQrJyknLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyQnLCBjb250YWluczogUlVCWV9ERUZBVUxUX0NPTlRBSU5TXG4gICAgICB9XG4gICAgfVxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydyYicsICdnZW1zcGVjJywgJ3BvZHNwZWMnLCAndGhvcicsICdpcmInXSxcbiAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogQ09NTUVOVF9NT0RFUy5jb25jYXQoSVJCX0RFRkFVTFQpLmNvbmNhdChSVUJZX0RFRkFVTFRfQ09OVEFJTlMpXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc8JSMnLCAnJT4nKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JVslPS1dPycsIGVuZDogJ1slLV0/JT4nLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ3NwYXduIHNwYXduX2xpbmsgc2VsZicsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYWZ0ZXIgYW5kIGFuZGFsc298MTAgYmFuZCBiZWdpbiBibm90IGJvciBic2wgYnNyIGJ4b3IgY2FzZSBjYXRjaCBjb25kIGRpdiBlbmQgZnVuIGlmICcgK1xuICAgICAgICAnbGV0IG5vdCBvZiBvciBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsIGJlZ2luOiAnXlswLTldKz4gJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnJScsICckJyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXGQrI1thLWZBLUYwLTldK3xcXFxcZCsoXFxcXC5cXFxcZCspPyhbZUVdWy0rXT9cXFxcZCspPyknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFw/KDo6KT8oW0EtWl1cXFxcdyooOjopPykrJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICctPidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnb2snXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyEnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyhcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKjpbYS16XFwnXVthLXpBLVowLTlfXFwnXSopfChcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKiknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW0EtWl1bYS16QS1aMC05X1xcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEJBU0lDX0FUT01fUkUgPSAnW2EtelxcJ11bYS16QS1aMC05X1xcJ10qJztcbiAgdmFyIEZVTkNUSU9OX05BTUVfUkUgPSAnKCcgKyBCQVNJQ19BVE9NX1JFICsgJzonICsgQkFTSUNfQVRPTV9SRSArICd8JyArIEJBU0lDX0FUT01fUkUgKyAnKSc7XG4gIHZhciBFUkxBTkdfUkVTRVJWRUQgPSB7XG4gICAga2V5d29yZDpcbiAgICAgICdhZnRlciBhbmQgYW5kYWxzb3wxMCBiYW5kIGJlZ2luIGJub3QgYm9yIGJzbCBienIgYnhvciBjYXNlIGNhdGNoIGNvbmQgZGl2IGVuZCBmdW4gaWYgJyArXG4gICAgICAnbGV0IG5vdCBvZiBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ2ZhbHNlIHRydWUnXG4gIH07XG5cbiAgdmFyIENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyUnLCAnJCcpO1xuICB2YXIgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYihcXFxcZCsjW2EtZkEtRjAtOV0rfFxcXFxkKyhcXFxcLlxcXFxkKyk/KFtlRV1bLStdP1xcXFxkKyk/KScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIHZhciBOQU1FRF9GVU4gPSB7XG4gICAgYmVnaW46ICdmdW5cXFxccysnICsgQkFTSUNfQVRPTV9SRSArICcvXFxcXGQrJ1xuICB9O1xuICB2YXIgRlVOQ1RJT05fQ0FMTCA9IHtcbiAgICBiZWdpbjogRlVOQ1RJT05fTkFNRV9SRSArICdcXFxcKCcsIGVuZDogJ1xcXFwpJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEZVTkNUSU9OX05BTUVfUkUsIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIC8vIFwiY29udGFpbnNcIiBkZWZpbmVkIGxhdGVyXG4gICAgICB9XG4gICAgXVxuICB9O1xuICB2YXIgVFVQTEUgPSB7XG4gICAgYmVnaW46ICd7JywgZW5kOiAnfScsXG4gICAgcmVsZXZhbmNlOiAwXG4gICAgLy8gXCJjb250YWluc1wiIGRlZmluZWQgbGF0ZXJcbiAgfTtcbiAgdmFyIFZBUjEgPSB7XG4gICAgYmVnaW46ICdcXFxcYl8oW0EtWl1bQS1aYS16MC05X10qKT8nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgVkFSMiA9IHtcbiAgICBiZWdpbjogJ1tBLVpdW2EtekEtWjAtOV9dKicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIHZhciBSRUNPUkRfQUNDRVNTID0ge1xuICAgIGJlZ2luOiAnIycgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnIycgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd7JywgZW5kOiAnfScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAvLyBcImNvbnRhaW5zXCIgZGVmaW5lZCBsYXRlclxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICB2YXIgQkxPQ0tfU1RBVEVNRU5UUyA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuIHJlY2VpdmUgaWYgdHJ5IGNhc2UnLCBlbmQ6ICdlbmQnLFxuICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRURcbiAgfTtcbiAgQkxPQ0tfU1RBVEVNRU5UUy5jb250YWlucyA9IFtcbiAgICBDT01NRU5ULFxuICAgIE5BTUVEX0ZVTixcbiAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7Y2xhc3NOYW1lOiAnJ30pLFxuICAgIEJMT0NLX1NUQVRFTUVOVFMsXG4gICAgRlVOQ1RJT05fQ0FMTCxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIE5VTUJFUixcbiAgICBUVVBMRSxcbiAgICBWQVIxLCBWQVIyLFxuICAgIFJFQ09SRF9BQ0NFU1NcbiAgXTtcblxuICB2YXIgQkFTSUNfTU9ERVMgPSBbXG4gICAgQ09NTUVOVCxcbiAgICBOQU1FRF9GVU4sXG4gICAgQkxPQ0tfU1RBVEVNRU5UUyxcbiAgICBGVU5DVElPTl9DQUxMLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgTlVNQkVSLFxuICAgIFRVUExFLFxuICAgIFZBUjEsIFZBUjIsXG4gICAgUkVDT1JEX0FDQ0VTU1xuICBdO1xuICBGVU5DVElPTl9DQUxMLmNvbnRhaW5zWzFdLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFRVUExFLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFJFQ09SRF9BQ0NFU1MuY29udGFpbnNbMV0uY29udGFpbnMgPSBCQVNJQ19NT0RFUztcblxuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJyxcbiAgICBjb250YWluczogQkFTSUNfTU9ERVNcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2VybCddLFxuICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRUQsXG4gICAgaWxsZWdhbDogJyg8L3xcXFxcKj18XFxcXCs9fC09fC9cXFxcKnxcXFxcKi98XFxcXChcXFxcKnxcXFxcKlxcXFwpKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ14nICsgQkFTSUNfQVRPTV9SRSArICdcXFxccypcXFxcKCcsIGVuZDogJy0+JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcKHwjfC8vfC9cXFxcKnxcXFxcXFxcXHw6fDsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IEJBU0lDX0FUT01fUkV9KVxuICAgICAgICBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6ICc7fFxcXFwuJyxcbiAgICAgICAgICBrZXl3b3JkczogRVJMQU5HX1JFU0VSVkVELFxuICAgICAgICAgIGNvbnRhaW5zOiBCQVNJQ19NT0RFU1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgQ09NTUVOVCxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeLScsIGVuZDogJ1xcXFwuJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgbGV4ZW1lczogJy0nICsgaGxqcy5JREVOVF9SRSxcbiAgICAgICAga2V5d29yZHM6XG4gICAgICAgICAgJy1tb2R1bGUgLXJlY29yZCAtdW5kZWYgLWV4cG9ydCAtaWZkZWYgLWlmbmRlZiAtYXV0aG9yIC1jb3B5cmlnaHQgLWRvYyAtdnNuICcgK1xuICAgICAgICAgICctaW1wb3J0IC1pbmNsdWRlIC1pbmNsdWRlX2xpYiAtY29tcGlsZSAtZGVmaW5lIC1lbHNlIC1lbmRpZiAtZmlsZSAtYmVoYXZpb3VyICcgK1xuICAgICAgICAgICctYmVoYXZpb3IgLXNwZWMnLFxuICAgICAgICBjb250YWluczogW1BBUkFNU11cbiAgICAgIH0sXG4gICAgICBOVU1CRVIsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgUkVDT1JEX0FDQ0VTUyxcbiAgICAgIFZBUjEsIFZBUjIsXG4gICAgICBUVVBMRSxcbiAgICAgIHtiZWdpbjogL1xcLiQvfSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWyd4bHN4JywgJ3hscyddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgbGV4ZW1lczogL1thLXpBLVpdW1xcd1xcLl0qLyxcbiAgICAvLyBidWlsdC1pbiBmdW5jdGlvbnMgaW1wb3J0ZWQgZnJvbSBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA1MTMwNDI3MTAvaHR0cHM6Ly9zdXBwb3J0Lm9mZmljZS5jb20vZW4tdXMvYXJ0aWNsZS9FeGNlbC1mdW5jdGlvbnMtYWxwaGFiZXRpY2FsLWIzOTQ0NTcyLTI1NWQtNGVmYi1iYjk2LWM2ZDkwMDMzZTE4OFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAgIGJ1aWx0X2luOiAnQUJTIEFDQ1JJTlQgQUNDUklOVE0gQUNPUyBBQ09TSCBBQ09UIEFDT1RIIEFHR1JFR0FURSBBRERSRVNTIEFNT1JERUdSQyBBTU9STElOQyBBTkQgQVJBQklDIEFSRUFTIEFTQyBBU0lOIEFTSU5IIEFUQU4gQVRBTjIgQVRBTkggQVZFREVWIEFWRVJBR0UgQVZFUkFHRUEgQVZFUkFHRUlGIEFWRVJBR0VJRlMgQkFIVFRFWFQgQkFTRSBCRVNTRUxJIEJFU1NFTEogQkVTU0VMSyBCRVNTRUxZIEJFVEFESVNUIEJFVEEuRElTVCBCRVRBSU5WIEJFVEEuSU5WIEJJTjJERUMgQklOMkhFWCBCSU4yT0NUIEJJTk9NRElTVCBCSU5PTS5ESVNUIEJJTk9NLkRJU1QuUkFOR0UgQklOT00uSU5WIEJJVEFORCBCSVRMU0hJRlQgQklUT1IgQklUUlNISUZUIEJJVFhPUiBDQUxMIENFSUxJTkcgQ0VJTElORy5NQVRIIENFSUxJTkcuUFJFQ0lTRSBDRUxMIENIQVIgQ0hJRElTVCBDSElJTlYgQ0hJVEVTVCBDSElTUS5ESVNUIENISVNRLkRJU1QuUlQgQ0hJU1EuSU5WIENISVNRLklOVi5SVCBDSElTUS5URVNUIENIT09TRSBDTEVBTiBDT0RFIENPTFVNTiBDT0xVTU5TIENPTUJJTiBDT01CSU5BIENPTVBMRVggQ09OQ0FUIENPTkNBVEVOQVRFIENPTkZJREVOQ0UgQ09ORklERU5DRS5OT1JNIENPTkZJREVOQ0UuVCBDT05WRVJUIENPUlJFTCBDT1MgQ09TSCBDT1QgQ09USCBDT1VOVCBDT1VOVEEgQ09VTlRCTEFOSyBDT1VOVElGIENPVU5USUZTIENPVVBEQVlCUyBDT1VQREFZUyBDT1VQREFZU05DIENPVVBOQ0QgQ09VUE5VTSBDT1VQUENEIENPVkFSIENPVkFSSUFOQ0UuUCBDT1ZBUklBTkNFLlMgQ1JJVEJJTk9NIENTQyBDU0NIIENVQkVLUElNRU1CRVIgQ1VCRU1FTUJFUiBDVUJFTUVNQkVSUFJPUEVSVFkgQ1VCRVJBTktFRE1FTUJFUiBDVUJFU0VUIENVQkVTRVRDT1VOVCBDVUJFVkFMVUUgQ1VNSVBNVCBDVU1QUklOQyBEQVRFIERBVEVESUYgREFURVZBTFVFIERBVkVSQUdFIERBWSBEQVlTIERBWVMzNjAgREIgREJDUyBEQ09VTlQgRENPVU5UQSBEREIgREVDMkJJTiBERUMySEVYIERFQzJPQ1QgREVDSU1BTCBERUdSRUVTIERFTFRBIERFVlNRIERHRVQgRElTQyBETUFYIERNSU4gRE9MTEFSIERPTExBUkRFIERPTExBUkZSIERQUk9EVUNUIERTVERFViBEU1RERVZQIERTVU0gRFVSQVRJT04gRFZBUiBEVkFSUCBFREFURSBFRkZFQ1QgRU5DT0RFVVJMIEVPTU9OVEggRVJGIEVSRi5QUkVDSVNFIEVSRkMgRVJGQy5QUkVDSVNFIEVSUk9SLlRZUEUgRVVST0NPTlZFUlQgRVZFTiBFWEFDVCBFWFAgRVhQT04uRElTVCBFWFBPTkRJU1QgRkFDVCBGQUNURE9VQkxFIEZBTFNFfDAgRi5ESVNUIEZESVNUIEYuRElTVC5SVCBGSUxURVJYTUwgRklORCBGSU5EQiBGLklOViBGLklOVi5SVCBGSU5WIEZJU0hFUiBGSVNIRVJJTlYgRklYRUQgRkxPT1IgRkxPT1IuTUFUSCBGTE9PUi5QUkVDSVNFIEZPUkVDQVNUIEZPUkVDQVNULkVUUyBGT1JFQ0FTVC5FVFMuQ09ORklOVCBGT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFkgRk9SRUNBU1QuRVRTLlNUQVQgRk9SRUNBU1QuTElORUFSIEZPUk1VTEFURVhUIEZSRVFVRU5DWSBGLlRFU1QgRlRFU1QgRlYgRlZTQ0hFRFVMRSBHQU1NQSBHQU1NQS5ESVNUIEdBTU1BRElTVCBHQU1NQS5JTlYgR0FNTUFJTlYgR0FNTUFMTiBHQU1NQUxOLlBSRUNJU0UgR0FVU1MgR0NEIEdFT01FQU4gR0VTVEVQIEdFVFBJVk9UREFUQSBHUk9XVEggSEFSTUVBTiBIRVgyQklOIEhFWDJERUMgSEVYMk9DVCBITE9PS1VQIEhPVVIgSFlQRVJMSU5LIEhZUEdFT00uRElTVCBIWVBHRU9NRElTVCBJRnwwIElGRVJST1IgSUZOQSBJRlMgSU1BQlMgSU1BR0lOQVJZIElNQVJHVU1FTlQgSU1DT05KVUdBVEUgSU1DT1MgSU1DT1NIIElNQ09UIElNQ1NDIElNQ1NDSCBJTURJViBJTUVYUCBJTUxOIElNTE9HMTAgSU1MT0cyIElNUE9XRVIgSU1QUk9EVUNUIElNUkVBTCBJTVNFQyBJTVNFQ0ggSU1TSU4gSU1TSU5IIElNU1FSVCBJTVNVQiBJTVNVTSBJTVRBTiBJTkRFWCBJTkRJUkVDVCBJTkZPIElOVCBJTlRFUkNFUFQgSU5UUkFURSBJUE1UIElSUiBJU0JMQU5LIElTRVJSIElTRVJST1IgSVNFVkVOIElTRk9STVVMQSBJU0xPR0lDQUwgSVNOQSBJU05PTlRFWFQgSVNOVU1CRVIgSVNPREQgSVNSRUYgSVNURVhUIElTTy5DRUlMSU5HIElTT1dFRUtOVU0gSVNQTVQgSklTIEtVUlQgTEFSR0UgTENNIExFRlQgTEVGVEIgTEVOIExFTkIgTElORVNUIExOIExPRyBMT0cxMCBMT0dFU1QgTE9HSU5WIExPR05PUk0uRElTVCBMT0dOT1JNRElTVCBMT0dOT1JNLklOViBMT09LVVAgTE9XRVIgTUFUQ0ggTUFYIE1BWEEgTUFYSUZTIE1ERVRFUk0gTURVUkFUSU9OIE1FRElBTiBNSUQgTUlEQnMgTUlOIE1JTklGUyBNSU5BIE1JTlVURSBNSU5WRVJTRSBNSVJSIE1NVUxUIE1PRCBNT0RFIE1PREUuTVVMVCBNT0RFLlNOR0wgTU9OVEggTVJPVU5EIE1VTFRJTk9NSUFMIE1VTklUIE4gTkEgTkVHQklOT00uRElTVCBORUdCSU5PTURJU1QgTkVUV09SS0RBWVMgTkVUV09SS0RBWVMuSU5UTCBOT01JTkFMIE5PUk0uRElTVCBOT1JNRElTVCBOT1JNSU5WIE5PUk0uSU5WIE5PUk0uUy5ESVNUIE5PUk1TRElTVCBOT1JNLlMuSU5WIE5PUk1TSU5WIE5PVCBOT1cgTlBFUiBOUFYgTlVNQkVSVkFMVUUgT0NUMkJJTiBPQ1QyREVDIE9DVDJIRVggT0REIE9EREZQUklDRSBPRERGWUlFTEQgT0RETFBSSUNFIE9ERExZSUVMRCBPRkZTRVQgT1IgUERVUkFUSU9OIFBFQVJTT04gUEVSQ0VOVElMRS5FWEMgUEVSQ0VOVElMRS5JTkMgUEVSQ0VOVElMRSBQRVJDRU5UUkFOSy5FWEMgUEVSQ0VOVFJBTksuSU5DIFBFUkNFTlRSQU5LIFBFUk1VVCBQRVJNVVRBVElPTkEgUEhJIFBIT05FVElDIFBJIFBNVCBQT0lTU09OLkRJU1QgUE9JU1NPTiBQT1dFUiBQUE1UIFBSSUNFIFBSSUNFRElTQyBQUklDRU1BVCBQUk9CIFBST0RVQ1QgUFJPUEVSIFBWIFFVQVJUSUxFIFFVQVJUSUxFLkVYQyBRVUFSVElMRS5JTkMgUVVPVElFTlQgUkFESUFOUyBSQU5EIFJBTkRCRVRXRUVOIFJBTksuQVZHIFJBTksuRVEgUkFOSyBSQVRFIFJFQ0VJVkVEIFJFR0lTVEVSLklEIFJFUExBQ0UgUkVQTEFDRUIgUkVQVCBSSUdIVCBSSUdIVEIgUk9NQU4gUk9VTkQgUk9VTkRET1dOIFJPVU5EVVAgUk9XIFJPV1MgUlJJIFJTUSBSVEQgU0VBUkNIIFNFQVJDSEIgU0VDIFNFQ0ggU0VDT05EIFNFUklFU1NVTSBTSEVFVCBTSEVFVFMgU0lHTiBTSU4gU0lOSCBTS0VXIFNLRVcuUCBTTE4gU0xPUEUgU01BTEwgU1FMLlJFUVVFU1QgU1FSVCBTUVJUUEkgU1RBTkRBUkRJWkUgU1RERVYgU1RERVYuUCBTVERFVi5TIFNUREVWQSBTVERFVlAgU1RERVZQQSBTVEVZWCBTVUJTVElUVVRFIFNVQlRPVEFMIFNVTSBTVU1JRiBTVU1JRlMgU1VNUFJPRFVDVCBTVU1TUSBTVU1YMk1ZMiBTVU1YMlBZMiBTVU1YTVkyIFNXSVRDSCBTWUQgVCBUQU4gVEFOSCBUQklMTEVRIFRCSUxMUFJJQ0UgVEJJTExZSUVMRCBULkRJU1QgVC5ESVNULjJUIFQuRElTVC5SVCBURElTVCBURVhUIFRFWFRKT0lOIFRJTUUgVElNRVZBTFVFIFQuSU5WIFQuSU5WLjJUIFRJTlYgVE9EQVkgVFJBTlNQT1NFIFRSRU5EIFRSSU0gVFJJTU1FQU4gVFJVRXwwIFRSVU5DIFQuVEVTVCBUVEVTVCBUWVBFIFVOSUNIQVIgVU5JQ09ERSBVUFBFUiBWQUxVRSBWQVIgVkFSLlAgVkFSLlMgVkFSQSBWQVJQIFZBUlBBIFZEQiBWTE9PS1VQIFdFQlNFUlZJQ0UgV0VFS0RBWSBXRUVLTlVNIFdFSUJVTEwgV0VJQlVMTC5ESVNUIFdPUktEQVkgV09SS0RBWS5JTlRMIFhJUlIgWE5QViBYT1IgWUVBUiBZRUFSRlJBQyBZSUVMRCBZSUVMRERJU0MgWUlFTERNQVQgWi5URVNUIFpURVNUJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgLyogbWF0Y2hlcyBhIGJlZ2lubmluZyBlcXVhbCBzaWduIGZvdW5kIGluIEV4Y2VsIGZvcm11bGEgZXhhbXBsZXMgKi8gXG4gICAgICAgIGJlZ2luOiAvXj0vLFxuICAgICAgICBlbmQ6IC9bXj1dLywgcmV0dXJuRW5kOiB0cnVlLCBpbGxlZ2FsOiAvPS8sIC8qIG9ubHkgYWxsb3cgc2luZ2xlIGVxdWFsIHNpZ24gYXQgZnJvbnQgb2YgbGluZSAqL1xuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLyogdGVjaG5pY2FsbHksIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gMiBsZXR0ZXJzIGluIGNvbHVtbiBuYW1lcywgYnV0IHRoaXMgcHJldmVudHMgY29uZmxpY3Qgd2l0aCBzb21lIGtleXdvcmRzICovXG4gICAgICB7XG4gICAgICAgIC8qIG1hdGNoZXMgYSByZWZlcmVuY2UgdG8gYSBzaW5nbGUgY2VsbCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL1xcYltBLVpdezEsMn1cXGQrXFxiLyxcbiAgICAgICAgZW5kOiAvW15cXGRdLywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvKiBtYXRjaGVzIGEgcmVmZXJlbmNlIHRvIGEgcmFuZ2Ugb2YgY2VsbHMgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9bQS1aXXswLDJ9XFxkKjpbQS1aXXswLDJ9XFxkKi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBobGpzLk5VTUJFUl9SRSArICcoJSk/JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLyogRXhjZWwgZm9ybXVsYSBjb21tZW50cyBhcmUgZG9uZSBieSBwdXR0aW5nIHRoZSBjb21tZW50IGluIGEgZnVuY3Rpb24gY2FsbCB0byBOKCkgKi9cbiAgICAgIGhsanMuQ09NTUVOVCgvXFxiTlxcKC8sL1xcKS8sXG4gICAgICB7XG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogL1xcbi9cbiAgICAgIH0pXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgIHtcbiAgICAgIGJlZ2luOiAvW15cXHUyNDAxXFx1MDAwMV0rLyxcbiAgICAgIGVuZDogL1tcXHUyNDAxXFx1MDAwMV0vLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgcmV0dXJuRW5kOiBmYWxzZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFteXFx1MjQwMVxcdTAwMDE9XSspLyxcbiAgICAgICAgZW5kOiAvPShbXlxcdTI0MDFcXHUwMDAxPV0rKS8sXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgcmV0dXJuQmVnaW46IGZhbHNlLFxuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC89LyxcbiAgICAgICAgZW5kOiAvKFtcXHUyNDAxXFx1MDAwMV0pLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnXG4gICAgICB9XVxuICAgIH1dLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWVcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaGxqcykge1xuXG4gICAgdmFyIENIQVIgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvJygufFxcXFxbeFh1VV1bYS16QS1aMC05XSspJy9cbiAgICB9O1xuXG4gICAgdmFyIFNUUklORyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1wiJywgZW5kOiAnXCInXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xuXG4gICAgdmFyIE5BTUUgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46IC9bXjAtOVxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjtdW15cXG5cXHQgXCInKCksLmB7fVxcW1xcXTo7XSt8W14wLTlcXG5cXHQgXCInKCksLmB7fVxcW1xcXTo7PV0vXG4gICAgfTtcblxuICAgIHZhciBNRVRIT0QgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2RlZicsXG4gICAgICAgIGVuZDogL1s6PXtcXFsoXFxuO10vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW05BTUVdXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZScsXG4gICAgICAgICAgICBrZXl3b3JkOiAnY2FzZSBjbGFzcyBkZWYgZWxzZSBlbnVtIGlmIGltcGwgaW1wb3J0IGluIGxhdCByZWwgaW5kZXggbGV0IG1hdGNoIG5hbWVzcGFjZSBzd2l0Y2ggdHlwZSB5aWVsZCB3aXRoJ1xuICAgICAgICB9LFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgIENIQVIsXG4gICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICBNRVRIT0QsXG4gICAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICAgICAgXVxuICAgIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJ1xuICB9O1xuXG4gIHZhciBGX0tFWVdPUkRTID0ge1xuICAgIGxpdGVyYWw6ICcuRmFsc2UuIC5UcnVlLicsXG4gICAga2V5d29yZDogJ2tpbmQgZG8gd2hpbGUgcHJpdmF0ZSBjYWxsIGludHJpbnNpYyB3aGVyZSBlbHNld2hlcmUgJyArXG4gICAgICAndHlwZSBlbmR0eXBlIGVuZG1vZHVsZSBlbmRzZWxlY3QgZW5kaW50ZXJmYWNlIGVuZCBlbmRkbyBlbmRpZiBpZiBmb3JhbGwgZW5kZm9yYWxsIG9ubHkgY29udGFpbnMgZGVmYXVsdCByZXR1cm4gc3RvcCB0aGVuICcgK1xuICAgICAgJ3B1YmxpYyBzdWJyb3V0aW5lfDEwIGZ1bmN0aW9uIHByb2dyYW0gLmFuZC4gLm9yLiAubm90LiAubGUuIC5lcS4gLmdlLiAuZ3QuIC5sdC4gJyArXG4gICAgICAnZ290byBzYXZlIGVsc2UgdXNlIG1vZHVsZSBzZWxlY3QgY2FzZSAnICtcbiAgICAgICdhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0ICcgK1xuICAgICAgJ2NvbnRpbnVlIGZvcm1hdCBwYXVzZSBjeWNsZSBleGl0ICcgK1xuICAgICAgJ2NfbnVsbF9jaGFyIGNfYWxlcnQgY19iYWNrc3BhY2UgY19mb3JtX2ZlZWQgZmx1c2ggd2FpdCBkZWNpbWFsIHJvdW5kIGlvbXNnICcgK1xuICAgICAgJ3N5bmNocm9ub3VzIG5vcGFzcyBub25fb3ZlcnJpZGFibGUgcGFzcyBwcm90ZWN0ZWQgdm9sYXRpbGUgYWJzdHJhY3QgZXh0ZW5kcyBpbXBvcnQgJyArXG4gICAgICAnbm9uX2ludHJpbnNpYyB2YWx1ZSBkZWZlcnJlZCBnZW5lcmljIGZpbmFsIGVudW1lcmF0b3IgY2xhc3MgYXNzb2NpYXRlIGJpbmQgZW51bSAnICtcbiAgICAgICdjX2ludCBjX3Nob3J0IGNfbG9uZyBjX2xvbmdfbG9uZyBjX3NpZ25lZF9jaGFyIGNfc2l6ZV90IGNfaW50OF90IGNfaW50MTZfdCBjX2ludDMyX3QgY19pbnQ2NF90IGNfaW50X2xlYXN0OF90IGNfaW50X2xlYXN0MTZfdCAnICtcbiAgICAgICdjX2ludF9sZWFzdDMyX3QgY19pbnRfbGVhc3Q2NF90IGNfaW50X2Zhc3Q4X3QgY19pbnRfZmFzdDE2X3QgY19pbnRfZmFzdDMyX3QgY19pbnRfZmFzdDY0X3QgY19pbnRtYXhfdCBDX2ludHB0cl90IGNfZmxvYXQgY19kb3VibGUgJyArXG4gICAgICAnY19sb25nX2RvdWJsZSBjX2Zsb2F0X2NvbXBsZXggY19kb3VibGVfY29tcGxleCBjX2xvbmdfZG91YmxlX2NvbXBsZXggY19ib29sIGNfY2hhciBjX251bGxfcHRyIGNfbnVsbF9mdW5wdHIgJyArXG4gICAgICAnY19uZXdfbGluZSBjX2NhcnJpYWdlX3JldHVybiBjX2hvcml6b250YWxfdGFiIGNfdmVydGljYWxfdGFiIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciAnICtcbiAgICAgICdjX3B0ciBjX2Z1bnB0ciBpc29fZm9ydHJhbl9lbnYgY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZSBlcnJvcl91bml0IGZpbGVfc3RvcmFnZV9zaXplIGlucHV0X3VuaXQgaW9zdGF0X2VuZCBpb3N0YXRfZW9yICcgK1xuICAgICAgJ251bWVyaWNfc3RvcmFnZV9zaXplIG91dHB1dF91bml0IGNfZl9wcm9jcG9pbnRlciBpZWVlX2FyaXRobWV0aWMgaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sICcgK1xuICAgICAgJ2llZWVfZ2V0X3VuZGVyZmxvd19tb2RlIGllZWVfc2V0X3VuZGVyZmxvd19tb2RlIG5ld3VuaXQgY29udGlndW91cyByZWN1cnNpdmUgJyArXG4gICAgICAncGFkIHBvc2l0aW9uIGFjdGlvbiBkZWxpbSByZWFkd3JpdGUgZW9yIGFkdmFuY2Ugbm1sIGludGVyZmFjZSBwcm9jZWR1cmUgbmFtZWxpc3QgaW5jbHVkZSBzZXF1ZW5jZSBlbGVtZW50YWwgcHVyZSAnICtcbiAgICAgICdpbnRlZ2VyIHJlYWwgY2hhcmFjdGVyIGNvbXBsZXggbG9naWNhbCBkaW1lbnNpb24gYWxsb2NhdGFibGV8MTAgcGFyYW1ldGVyICcgK1xuICAgICAgJ2V4dGVybmFsIGltcGxpY2l0fDEwIG5vbmUgZG91YmxlIHByZWNpc2lvbiBhc3NpZ24gaW50ZW50IG9wdGlvbmFsIHBvaW50ZXIgJyArXG4gICAgICAndGFyZ2V0IGluIG91dCBjb21tb24gZXF1aXZhbGVuY2UgZGF0YScsXG4gICAgYnVpbHRfaW46ICdhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50ICcgK1xuICAgICAgJ2Rsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgJyArXG4gICAgICAnYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hICcgK1xuICAgICAgJ2lxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgJyArXG4gICAgICAncW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgJyArXG4gICAgICAnbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgJyArXG4gICAgICAnYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgJyArXG4gICAgICAnZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCAnICtcbiAgICAgICdtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0ICcgK1xuICAgICAgJ3JhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kICcgK1xuICAgICAgJ3NldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgJyArXG4gICAgICAnZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kICcgK1xuICAgICAgJ2llZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgJyArXG4gICAgICAnaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mJyAgK1xuICAgICAgJ2Fjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMiAnICtcbiAgICAgICdhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzICcgK1xuICAgICAgJ2JnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciAnICtcbiAgICAgICdudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UnXG4gIH07XG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbJ2Y5MCcsICdmOTUnXSxcbiAgICBrZXl3b3JkczogRl9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge2NsYXNzTmFtZTogJ3N0cmluZycsIHJlbGV2YW5jZTogMH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtjbGFzc05hbWU6ICdzdHJpbmcnLCByZWxldmFuY2U6IDB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtJyxcbiAgICAgICAgaWxsZWdhbDogJ1skez1cXFxcbl0nLFxuICAgICAgICBjb250YWluczogW2hsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCBQQVJBTVNdXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7cmVsZXZhbmNlOiAwfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnKD89XFxcXGJ8XFxcXCt8XFxcXC18XFxcXC4pKD89XFxcXC5cXFxcZHxcXFxcZCkoPzpcXFxcZCspPyg/OlxcXFwuP1xcXFxkKikoPzpbZGVdWystXT9cXFxcZCspP1xcXFxiXFxcXC4/JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFRZUEVQQVJBTSA9IHtcbiAgICBiZWdpbjogJzwnLCBlbmQ6ICc+JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge2JlZ2luOiAvJ1thLXpBLVowLTlfXSsvfSlcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2ZzJ10sXG4gICAga2V5d29yZHM6XG4gICAgICAnYWJzdHJhY3QgYW5kIGFzIGFzc2VydCBiYXNlIGJlZ2luIGNsYXNzIGRlZmF1bHQgZGVsZWdhdGUgZG8gZG9uZSAnICtcbiAgICAgICdkb3duY2FzdCBkb3dudG8gZWxpZiBlbHNlIGVuZCBleGNlcHRpb24gZXh0ZXJuIGZhbHNlIGZpbmFsbHkgZm9yICcgK1xuICAgICAgJ2Z1biBmdW5jdGlvbiBnbG9iYWwgaWYgaW4gaW5oZXJpdCBpbmxpbmUgaW50ZXJmYWNlIGludGVybmFsIGxhenkgbGV0ICcgK1xuICAgICAgJ21hdGNoIG1lbWJlciBtb2R1bGUgbXV0YWJsZSBuYW1lc3BhY2UgbmV3IG51bGwgb2Ygb3BlbiBvciAnICtcbiAgICAgICdvdmVycmlkZSBwcml2YXRlIHB1YmxpYyByZWMgcmV0dXJuIHNpZyBzdGF0aWMgc3RydWN0IHRoZW4gdG8gJyArXG4gICAgICAndHJ1ZSB0cnkgdHlwZSB1cGNhc3QgdXNlIHZhbCB2b2lkIHdoZW4gd2hpbGUgd2l0aCB5aWVsZCcsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgLy8gbW9uYWQgYnVpbGRlciBrZXl3b3JkcyAobWF0Y2hlcyBiZWZvcmUgbm9uLWJhbmcga3dzKVxuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC9cXGIoeWllbGR8cmV0dXJufGxldHxkbykhL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdAXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnXCJcIid9XVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLCBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdcXFxcKFxcXFwqJywgJ1xcXFwqXFxcXCknKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAndHlwZScsIGVuZDogJ1xcXFwofD18JCcsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAgVFlQRVBBUkFNXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbPCcsIGVuZDogJz5cXFxcXScsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXEIoXFwnW0EtWmEtel0pXFxcXGInLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaGxqcykge1xuICB2YXIgS0VZV09SRFMgPSB7XG4gICAgJ2tleXdvcmQnOlxuICAgICAgJ2Fib3J0IGFjcm9ueW0gYWNyb255bXMgYWxpYXMgYWxsIGFuZCBhc3NpZ24gYmluYXJ5IGNhcmQgZGlhZyBkaXNwbGF5ICcgK1xuICAgICAgJ2Vsc2UgZXEgZmlsZSBmaWxlcyBmb3IgZnJlZSBnZSBndCBpZiBpbnRlZ2VyIGxlIGxvb3AgbHQgbWF4aW1pemluZyAnICtcbiAgICAgICdtaW5pbWl6aW5nIG1vZGVsIG1vZGVscyBuZSBuZWdhdGl2ZSBubyBub3Qgb3B0aW9uIG9wdGlvbnMgb3Igb3JkICcgK1xuICAgICAgJ3Bvc2l0aXZlIHByb2QgcHV0IHB1dHBhZ2UgcHV0dGwgcmVwZWF0IHNhbWVhcyBzZW1pY29udCBzZW1paW50IHNtYXggJyArXG4gICAgICAnc21pbiBzb2x2ZSBzb3MxIHNvczIgc3VtIHN5c3RlbSB0YWJsZSB0aGVuIHVudGlsIHVzaW5nIHdoaWxlIHhvciB5ZXMnLFxuICAgICdsaXRlcmFsJzogJ2VwcyBpbmYgbmEnLFxuICAgICdidWlsdC1pbic6XG4gICAgICAnYWJzIGFyY2NvcyBhcmNzaW4gYXJjdGFuIGFyY3RhbjIgQmV0YSBiZXRhUmVnIGJpbm9taWFsIGNlaWwgY2VudHJvcHkgJyArXG4gICAgICAnY29zIGNvc2ggY3ZQb3dlciBkaXYgZGl2MCBlRGlzdCBlbnRyb3B5IGVycm9yZiBleGVjU2VlZCBleHAgZmFjdCAnICtcbiAgICAgICdmbG9vciBmcmFjIGdhbW1hIGdhbW1hUmVnIGxvZyBsb2dCZXRhIGxvZ0dhbW1hIGxvZzEwIGxvZzIgbWFwVmFsIG1heCAnICtcbiAgICAgICdtaW4gbW9kIG5jcENNIG5jcEYgbmNwVlVwb3cgbmNwVlVzaW4gbm9ybWFsIHBpIHBvbHkgcG93ZXIgJyArXG4gICAgICAncmFuZEJpbm9taWFsIHJhbmRMaW5lYXIgcmFuZFRyaWFuZ2xlIHJvdW5kIHJQb3dlciBzaWdtb2lkIHNpZ24gJyArXG4gICAgICAnc2lnblBvd2VyIHNpbiBzaW5oIHNsZXhwIHNsbG9nMTAgc2xyZWMgc3FleHAgc3Fsb2cxMCBzcXIgc3FyZWMgc3FydCAnICtcbiAgICAgICd0YW4gdGFuaCB0cnVuYyB1bmlmb3JtIHVuaWZvcm1JbnQgdmNQb3dlciBib29sX2FuZCBib29sX2VxdiBib29sX2ltcCAnICtcbiAgICAgICdib29sX25vdCBib29sX29yIGJvb2xfeG9yIGlmVGhlbiByZWxfZXEgcmVsX2dlIHJlbF9ndCByZWxfbGUgcmVsX2x0ICcgK1xuICAgICAgJ3JlbF9uZSBnZGF5IGdkb3cgZ2hvdXIgZ2xlYXAgZ21pbGxpc2VjIGdtaW51dGUgZ21vbnRoIGdzZWNvbmQgZ3llYXIgJyArXG4gICAgICAnamRhdGUgam5vdyBqc3RhcnQganRpbWUgZXJyb3JMZXZlbCBleGVjRXJyb3IgZ2Ftc1JlbGVhc2UgZ2Ftc1ZlcnNpb24gJyArXG4gICAgICAnaGFuZGxlQ29sbGVjdCBoYW5kbGVEZWxldGUgaGFuZGxlU3RhdHVzIGhhbmRsZVN1Ym1pdCBoZWFwRnJlZSAnICtcbiAgICAgICdoZWFwTGltaXQgaGVhcFNpemUgam9iSGFuZGxlIGpvYktpbGwgam9iU3RhdHVzIGpvYlRlcm1pbmF0ZSAnICtcbiAgICAgICdsaWNlbnNlTGV2ZWwgbGljZW5zZVN0YXR1cyBtYXhFeGVjRXJyb3Igc2xlZXAgdGltZUNsb3NlIHRpbWVDb21wICcgK1xuICAgICAgJ3RpbWVFbGFwc2VkIHRpbWVFeGVjIHRpbWVTdGFydCdcbiAgfTtcbiAgdmFyIFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgfTtcbiAgdmFyIFNZTUJPTFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAvXFw9W2xnZW54Y109L30sXG4gICAgICB7YmVnaW46IC9cXCQvfSxcbiAgICBdXG4gIH07XG4gIHZhciBRU1RSID0geyAvLyBPbmUtbGluZSBxdW90ZWQgY29tbWVudCBzdHJpbmdcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAnXFwnJywgZW5kOiAnXFwnJ30sXG4gICAgICB7YmVnaW46ICdcIicsIGVuZDogJ1wiJ30sXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICB9O1xuICB2YXIgQVNTSUdOTUVOVCA9IHtcbiAgICBiZWdpbjogJy8nLFxuICAgIGVuZDogJy8nLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgUVNUUixcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgIF0sXG4gIH07XG4gIHZhciBERVNDVEVYVCA9IHsgLy8gUGFyYW1ldGVyL3NldC92YXJpYWJsZSBkZXNjcmlwdGlvbiB0ZXh0XG4gICAgYmVnaW46IC9bYS16XVthLXowLTlfXSooXFwoW2EtejAtOV8sIF0qXFwpKT9bIFxcdF0rLyxcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZW5kOiAnJCcsXG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFFTVFIsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46IC8oWyBdKlthLXowLTkmIyo9P0A+XFxcXDw6XFwtLCgpJFxcW1xcXV8ue30hKyVeXSspKy8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydnbXMnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKC9eXFwkb250ZXh0LywgL15cXCRvZmZ0ZXh0LyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxcJFthLXowLTldKycsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhLWtleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICdeXFxcXCRbYS16MC05XSsnLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXlxcXFwqJywgJyQnKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgLy8gRGVjbGFyYXRpb25zXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6XG4gICAgICAgICAgJ3NldCBzZXRzIHBhcmFtZXRlciBwYXJhbWV0ZXJzIHZhcmlhYmxlIHZhcmlhYmxlcyAnICtcbiAgICAgICAgICAnc2NhbGFyIHNjYWxhcnMgZXF1YXRpb24gZXF1YXRpb25zJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFTU0lHTk1FTlQsXG4gICAgICAgICAgREVTQ1RFWFQsXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7IC8vIHRhYmxlIGVudmlyb25tZW50XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICd0YWJsZScsXG4gICAgICAgIGVuZDogJzsnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIHRhYmxlIGhlYWRlciByb3dcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6ICd0YWJsZScsXG4gICAgICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbREVTQ1RFWFRdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICAvLyBUYWJsZSBkb2VzIG5vdCBjb250YWluIERFU0NURVhUIG9yIEFTU0lHTk1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIEZ1bmN0aW9uIGRlZmluaXRpb25zXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9eW2Etel1bYS16MC05XyxcXC0rJyAoKSRdK1xcLnsyfS8sXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7IC8vIEZ1bmN0aW9uIHRpdGxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAvXlthLXowLTlfXSsvLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBQQVJBTVMsXG4gICAgICAgICAgICAgIFNZTUJPTFMsXG4gICAgICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIFNZTUJPTFMsXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6ICdhbmQgYm9vbCBicmVhayBjYWxsIGNhbGxleGUgY2hlY2tpbnRlcnJ1cHQgY2xlYXIgY2xlYXJnIGNsb3NlYWxsIGNscyBjb21sb2cgY29tcGlsZSAnICtcbiAgICAgICAgICAgICAgJ2NvbnRpbnVlIGNyZWF0ZSBkZWJ1ZyBkZWNsYXJlIGRlbGV0ZSBkaXNhYmxlIGRsaWJyYXJ5IGRsbGNhbGwgZG8gZG9zIGVkIGVkaXQgZWxzZSAnICtcbiAgICAgICAgICAgICAgJ2Vsc2VpZiBlbmFibGUgZW5kIGVuZGZvciBlbmRpZiBlbmRwIGVuZG8gZXJyb3Jsb2cgZXJyb3Jsb2dhdCBleHByIGV4dGVybmFsIGZuICcgK1xuICAgICAgICAgICAgICAnZm9yIGZvcm1hdCBnb3RvIGdvc3ViIGdyYXBoIGlmIGtleXdvcmQgbGV0IGxpYiBsaWJyYXJ5IGxpbmUgbG9hZCBsb2FkYXJyYXkgbG9hZGV4ZSAnICtcbiAgICAgICAgICAgICAgJ2xvYWRmIGxvYWRrIGxvYWRtIGxvYWRwIGxvYWRzIGxvYWR4IGxvY2FsIGxvY2F0ZSBsb29wbmV4dGluZGV4IGxwcmludCBscHdpZHRoIGxzaG93ICcgK1xuICAgICAgICAgICAgICAnbWF0cml4IG1zeW0gbmRwY2xleCBuZXcgbm90IG9wZW4gb3Igb3V0cHV0IG91dHdpZHRoIHBsb3QgcGxvdHN5bSBwb3AgcHJjc24gcHJpbnQgJyArXG4gICAgICAgICAgICAgICdwcmludGRvcyBwcm9jIHB1c2ggcmV0cCByZXR1cm4gcm5kY29uIHJuZG1vZCBybmRtdWx0IHJuZHNlZWQgcnVuIHNhdmUgc2F2ZWFsbCBzY3JlZW4gJyArXG4gICAgICAgICAgICAgICdzY3JvbGwgc2V0YXJyYXkgc2hvdyBzcGFyc2Ugc3RvcCBzdHJpbmcgc3RydWN0IHN5c3RlbSB0cmFjZSB0cmFwIHRocmVhZGZvciAnICtcbiAgICAgICAgICAgICAgJ3RocmVhZGVuZGZvciB0aHJlYWRiZWdpbiB0aHJlYWRqb2luIHRocmVhZHN0YXQgdGhyZWFkZW5kIHVudGlsIHVzZSB3aGlsZSB3aW5wcmludCcsXG4gICAgYnVpbHRfaW46ICdhYnMgYWNmIGFjb25jYXQgYWV5ZSBhbWF4IGFtZWFuIEFtZXJpY2FuQmlub21DYWxsIEFtZXJpY2FuQmlub21DYWxsX0dyZWVrcyBBbWVyaWNhbkJpbm9tQ2FsbF9JbXBWb2wgJyArXG4gICAgICAgICAgICAgICdBbWVyaWNhbkJpbm9tUHV0IEFtZXJpY2FuQmlub21QdXRfR3JlZWtzIEFtZXJpY2FuQmlub21QdXRfSW1wVm9sIEFtZXJpY2FuQlNDYWxsIEFtZXJpY2FuQlNDYWxsX0dyZWVrcyAnICtcbiAgICAgICAgICAgICAgJ0FtZXJpY2FuQlNDYWxsX0ltcFZvbCBBbWVyaWNhbkJTUHV0IEFtZXJpY2FuQlNQdXRfR3JlZWtzIEFtZXJpY2FuQlNQdXRfSW1wVm9sIGFtaW4gYW11bHQgYW5ub3RhdGlvbkdldERlZmF1bHRzICcgK1xuICAgICAgICAgICAgICAnYW5ub3RhdGlvblNldEJrZCBhbm5vdGF0aW9uU2V0Rm9udCBhbm5vdGF0aW9uU2V0TGluZUNvbG9yIGFubm90YXRpb25TZXRMaW5lU3R5bGUgYW5ub3RhdGlvblNldExpbmVUaGlja25lc3MgJyArXG4gICAgICAgICAgICAgICdhbm51YWxUcmFkaW5nRGF5cyBhcmNjb3MgYXJjc2luIGFyZXNoYXBlIGFycmF5YWxsb2MgYXJyYXlpbmRleCBhcnJheWluaXQgYXJyYXl0b21hdCBhc2NpaWxvYWQgYXNjbGFiZWwgYXN0ZCAnICtcbiAgICAgICAgICAgICAgJ2FzdGRzIGFzdW0gYXRhbiBhdGFuMiBhdHJhbnNwb3NlIGF4bWFyZ2luIGJhbGFuY2UgYmFuZCBiYW5kY2hvbCBiYW5kY2hvbHNvbCBiYW5kbHRzb2wgYmFuZHJ2IGJhbmRzb2xwZCBiYXIgJyArXG4gICAgICAgICAgICAgICdiYXNlMTAgYmVnd2luZCBiZXNzZWxqIGJlc3NlbHkgYmV0YSBib3ggYm94Y294IGNkZkJldGEgY2RmQmV0YUludiBjZGZCaW5vbWlhbCBjZGZCaW5vbWlhbEludiBjZGZCdm4gY2RmQnZuMiAnICtcbiAgICAgICAgICAgICAgJ2NkZkJ2bjJlIGNkZkNhdWNoeSBjZGZDYXVjaHlJbnYgY2RmQ2hpYyBjZGZDaGlpIGNkZkNoaW5jIGNkZkNoaW5jSW52IGNkZkV4cCBjZGZFeHBJbnYgY2RmRmMgY2RmRm5jIGNkZkZuY0ludiAnICtcbiAgICAgICAgICAgICAgJ2NkZkdhbSBjZGZHZW5QYXJldG8gY2RmSHlwZXJHZW8gY2RmTGFwbGFjZSBjZGZMYXBsYWNlSW52IGNkZkxvZ2lzdGljIGNkZkxvZ2lzdGljSW52IGNkZm1Db250cm9sQ3JlYXRlIGNkZk12biAnICtcbiAgICAgICAgICAgICAgJ2NkZk12bjJlIGNkZk12bmNlIGNkZk12bmUgY2RmTXZ0MmUgY2RmTXZ0Y2UgY2RmTXZ0ZSBjZGZOIGNkZk4yIGNkZk5jIGNkZk5lZ0Jpbm9taWFsIGNkZk5lZ0Jpbm9taWFsSW52IGNkZk5pICcgK1xuICAgICAgICAgICAgICAnY2RmUG9pc3NvbiBjZGZQb2lzc29uSW52IGNkZlJheWxlaWdoIGNkZlJheWxlaWdoSW52IGNkZlRjIGNkZlRjaSBjZGZUbmMgY2RmVHZuIGNkZldlaWJ1bGwgY2RmV2VpYnVsbEludiBjZGlyICcgK1xuICAgICAgICAgICAgICAnY2VpbCBDaGFuZ2VEaXIgY2hkaXIgY2hpQmFyU3F1YXJlIGNob2wgY2hvbGRuIGNob2xzb2wgY2hvbHVwIGNocnMgY2xvc2UgY29kZSBjb2xzIGNvbHNmIGNvbWJpbmF0ZSBjb21iaW5hdGVkICcgK1xuICAgICAgICAgICAgICAnY29tcGxleCBjb24gY29uZCBjb25qIGNvbnMgQ29uU2NvcmUgY29udG91ciBjb252IGNvbnZlcnRzYXRvc3RyIGNvbnZlcnRzdHJ0b3NhIGNvcnJtIGNvcnJtcyBjb3JydmMgY29ycnggY29ycnhzICcgK1xuICAgICAgICAgICAgICAnY29zIGNvc2ggY291bnRzIGNvdW50d3RzIGNyb3NzcHJkIGNyb3V0IGNyb3V0cCBjc3Jjb2wgY3NybGluIGNzdlJlYWRNIGNzdlJlYWRTQSBjdW1wcm9kYyBjdW1zdW1jIGN1cnZlIGN2dG9zICcgK1xuICAgICAgICAgICAgICAnZGF0YWNyZWF0ZSBkYXRhY3JlYXRlY29tcGxleCBkYXRhbGlzdCBkYXRhbG9hZCBkYXRhbG9vcCBkYXRhb3BlbiBkYXRhc2F2ZSBkYXRlIGRhdGVzdHIgZGF0ZXN0cmluZyBkYXRlc3RyeW1kICcgK1xuICAgICAgICAgICAgICAnZGF5aW55ciBkYXlvZndlZWsgZGJBZGREYXRhYmFzZSBkYkNsb3NlIGRiQ29tbWl0IGRiQ3JlYXRlUXVlcnkgZGJFeGVjUXVlcnkgZGJHZXRDb25uZWN0T3B0aW9ucyBkYkdldERhdGFiYXNlTmFtZSAnICtcbiAgICAgICAgICAgICAgJ2RiR2V0RHJpdmVyTmFtZSBkYkdldERyaXZlcnMgZGJHZXRIb3N0TmFtZSBkYkdldExhc3RFcnJvck51bSBkYkdldExhc3RFcnJvclRleHQgZGJHZXROdW1lcmljYWxQcmVjUG9saWN5ICcgK1xuICAgICAgICAgICAgICAnZGJHZXRQYXNzd29yZCBkYkdldFBvcnQgZGJHZXRUYWJsZUhlYWRlcnMgZGJHZXRUYWJsZXMgZGJHZXRVc2VyTmFtZSBkYkhhc0ZlYXR1cmUgZGJJc0RyaXZlckF2YWlsYWJsZSBkYklzT3BlbiAnICtcbiAgICAgICAgICAgICAgJ2RiSXNPcGVuRXJyb3IgZGJPcGVuIGRiUXVlcnlCaW5kVmFsdWUgZGJRdWVyeUNsZWFyIGRiUXVlcnlDb2xzIGRiUXVlcnlFeGVjUHJlcGFyZWQgZGJRdWVyeUZldGNoQWxsTSBkYlF1ZXJ5RmV0Y2hBbGxTQSAnICtcbiAgICAgICAgICAgICAgJ2RiUXVlcnlGZXRjaE9uZU0gZGJRdWVyeUZldGNoT25lU0EgZGJRdWVyeUZpbmlzaCBkYlF1ZXJ5R2V0Qm91bmRWYWx1ZSBkYlF1ZXJ5R2V0Qm91bmRWYWx1ZXMgZGJRdWVyeUdldEZpZWxkICcgK1xuICAgICAgICAgICAgICAnZGJRdWVyeUdldExhc3RFcnJvck51bSBkYlF1ZXJ5R2V0TGFzdEVycm9yVGV4dCBkYlF1ZXJ5R2V0TGFzdEluc2VydElEIGRiUXVlcnlHZXRMYXN0UXVlcnkgZGJRdWVyeUdldFBvc2l0aW9uICcgK1xuICAgICAgICAgICAgICAnZGJRdWVyeUlzQWN0aXZlIGRiUXVlcnlJc0ZvcndhcmRPbmx5IGRiUXVlcnlJc051bGwgZGJRdWVyeUlzU2VsZWN0IGRiUXVlcnlJc1ZhbGlkIGRiUXVlcnlQcmVwYXJlIGRiUXVlcnlSb3dzICcgK1xuICAgICAgICAgICAgICAnZGJRdWVyeVNlZWsgZGJRdWVyeVNlZWtGaXJzdCBkYlF1ZXJ5U2Vla0xhc3QgZGJRdWVyeVNlZWtOZXh0IGRiUXVlcnlTZWVrUHJldmlvdXMgZGJRdWVyeVNldEZvcndhcmRPbmx5ICcgK1xuICAgICAgICAgICAgICAnZGJSZW1vdmVEYXRhYmFzZSBkYlJvbGxiYWNrIGRiU2V0Q29ubmVjdE9wdGlvbnMgZGJTZXREYXRhYmFzZU5hbWUgZGJTZXRIb3N0TmFtZSBkYlNldE51bWVyaWNhbFByZWNQb2xpY3kgJyArXG4gICAgICAgICAgICAgICdkYlNldFBvcnQgZGJTZXRVc2VyTmFtZSBkYlRyYW5zYWN0aW9uIERlbGV0ZUZpbGUgZGVsaWYgZGVscm93cyBkZW5zZVRvU3AgZGVuc2VUb1NwUkUgZGVuVG9aZXJvIGRlc2lnbiBkZXQgZGV0bCAnICtcbiAgICAgICAgICAgICAgJ2RmZnQgZGZmdGkgZGlhZyBkaWFncnYgZGlnYW1tYSBkb3N3aW4gRE9TV2luQ2xvc2VhbGwgRE9TV2luT3BlbiBkb3RmZXEgZG90ZmVxbXQgZG90ZmdlIGRvdGZnZW10IGRvdGZndCBkb3RmZ3RtdCAnICtcbiAgICAgICAgICAgICAgJ2RvdGZsZSBkb3RmbGVtdCBkb3RmbHQgZG90Zmx0bXQgZG90Zm5lIGRvdGZuZW10IGRyYXcgZHJvcCBkc0NyZWF0ZSBkc3RhdCBkc3RhdG10IGRzdGF0bXRDb250cm9sQ3JlYXRlIGR0ZGF0ZSBkdGRheSAnICtcbiAgICAgICAgICAgICAgJ2R0dGltZSBkdHRvZHR2IGR0dG9zdHIgZHR0b3V0YyBkdHZub3JtYWwgZHR2dG9kdCBkdHZ0b3V0YyBkdW1teSBkdW1teWJyIGR1bW15ZG4gZWlnIGVpZ2ggZWlnaHYgZWlndiBlbGFwc2VkVHJhZGluZ0RheXMgJyArXG4gICAgICAgICAgICAgICdlbmR3aW5kIGVudmdldCBlb2YgZXFTb2x2ZSBlcVNvbHZlbXQgZXFTb2x2ZW10Q29udHJvbENyZWF0ZSBlcVNvbHZlbXRPdXRDcmVhdGUgZXFTb2x2ZXNldCBlcmYgZXJmYyBlcmZjY3BseCBlcmZjcGx4IGVycm9yICcgK1xuICAgICAgICAgICAgICAnZXRkYXlzIGV0aHNlYyBldHN0ciBFdXJvcGVhbkJpbm9tQ2FsbCBFdXJvcGVhbkJpbm9tQ2FsbF9HcmVla3MgRXVyb3BlYW5CaW5vbUNhbGxfSW1wVm9sIEV1cm9wZWFuQmlub21QdXQgJyArXG4gICAgICAgICAgICAgICdFdXJvcGVhbkJpbm9tUHV0X0dyZWVrcyBFdXJvcGVhbkJpbm9tUHV0X0ltcFZvbCBFdXJvcGVhbkJTQ2FsbCBFdXJvcGVhbkJTQ2FsbF9HcmVla3MgRXVyb3BlYW5CU0NhbGxfSW1wVm9sICcgK1xuICAgICAgICAgICAgICAnRXVyb3BlYW5CU1B1dCBFdXJvcGVhbkJTUHV0X0dyZWVrcyBFdXJvcGVhbkJTUHV0X0ltcFZvbCBleGN0c21wbCBleGVjIGV4ZWNiZyBleHAgZXh0ZXJuIGV5ZSBmY2hlY2tlcnIgZmNsZWFyZXJyIGZlcSAnICtcbiAgICAgICAgICAgICAgJ2ZlcW10IGZmbHVzaCBmZnQgZmZ0aSBmZnRtIGZmdG1pIGZmdG4gZmdlIGZnZW10IGZnZXRzIGZnZXRzYSBmZ2V0c2F0IGZnZXRzdCBmZ3QgZmd0bXQgZmlsZWluZm8gZmlsZXNhIGZsZSBmbGVtdCAnICtcbiAgICAgICAgICAgICAgJ2Zsb29yIGZsdCBmbHRtdCBmbW9kIGZuZSBmbmVtdCBmb250cyBmb3BlbiBmb3JtYXRjdiBmb3JtYXRudiBmcHV0cyBmcHV0c3QgZnNlZWsgZnN0cmVycm9yIGZ0ZWxsIGZ0b2N2IGZ0b3MgZnRvc3RyQyAnICtcbiAgICAgICAgICAgICAgJ2dhbW1hIGdhbW1hY3BseCBnYW1tYWlpIGdhdXNzZXQgZ2RhQXBwZW5kIGdkYUNyZWF0ZSBnZGFEU3RhdCBnZGFEU3RhdE1hdCBnZGFHZXRJbmRleCBnZGFHZXROYW1lIGdkYUdldE5hbWVzIGdkYUdldE9yZGVycyAnICtcbiAgICAgICAgICAgICAgJ2dkYUdldFR5cGUgZ2RhR2V0VHlwZXMgZ2RhR2V0VmFySW5mbyBnZGFJc0NwbHggZ2RhTG9hZCBnZGFQYWNrIGdkYVJlYWQgZ2RhUmVhZEJ5SW5kZXggZ2RhUmVhZFNvbWUgZ2RhUmVhZFNwYXJzZSAnICtcbiAgICAgICAgICAgICAgJ2dkYVJlYWRTdHJ1Y3QgZ2RhUmVwb3J0VmFySW5mbyBnZGFTYXZlIGdkYVVwZGF0ZSBnZGFVcGRhdGVBbmRQYWNrIGdkYVZhcnMgZ2RhV3JpdGUgZ2RhV3JpdGUzMiBnZGFXcml0ZVNvbWUgZ2V0YXJyYXkgJyArXG4gICAgICAgICAgICAgICdnZXRkaW1zIGdldGYgZ2V0R0FVU1Nob21lIGdldG1hdHJpeCBnZXRtYXRyaXg0RCBnZXRuYW1lIGdldG5hbWVmIGdldE5leHRUcmFkaW5nRGF5IGdldE5leHRXZWVrRGF5IGdldG5yIGdldG9yZGVycyAnICtcbiAgICAgICAgICAgICAgJ2dldHBhdGggZ2V0UHJldmlvdXNUcmFkaW5nRGF5IGdldFByZXZpb3VzV2Vla0RheSBnZXRSb3cgZ2V0c2NhbGFyM0QgZ2V0c2NhbGFyNEQgZ2V0VHJSb3cgZ2V0d2luZCBnbG0gZ3JhZGNwbHggZ3JhZE1UICcgK1xuICAgICAgICAgICAgICAnZ3JhZE1UbSBncmFkTVRUIGdyYWRNVFRtIGdyYWRwIGdyYXBocHJ0IGdyYXBoc2V0IGhhc2ltYWcgaGVhZGVyIGhlYWRlcm10IGhlc3MgaGVzc01UIGhlc3NNVGcgaGVzc01UZ3cgaGVzc01UbSAnICtcbiAgICAgICAgICAgICAgJ2hlc3NNVG13IGhlc3NNVFQgaGVzc01UVGcgaGVzc01UVGd3IGhlc3NNVFRtIGhlc3NNVHcgaGVzc3AgaGlzdCBoaXN0ZiBoaXN0cCBoc2VjIGltYWcgaW5kY3YgaW5kZXhjYXQgaW5kaWNlcyBpbmRpY2VzMiAnICtcbiAgICAgICAgICAgICAgJ2luZGljZXNmIGluZGljZXNmbiBpbmRudiBpbmRzYXYgaW50ZWdyYXRlMWQgaW50ZWdyYXRlQ29udHJvbENyZWF0ZSBpbnRncmF0MiBpbnRncmF0MyBpbnRocDEgaW50aHAyIGludGhwMyBpbnRocDQgJyArXG4gICAgICAgICAgICAgICdpbnRocENvbnRyb2xDcmVhdGUgaW50cXVhZDEgaW50cXVhZDIgaW50cXVhZDMgaW50cmxlYXYgaW50cmxlYXZzYSBpbnRyc2VjdCBpbnRzaW1wIGludiBpbnZwZCBpbnZzd3AgaXNjcGx4IGlzY3BseGYgJyArXG4gICAgICAgICAgICAgICdpc2RlbiBpc2luZm5hbm1pc3MgaXNtaXNzIGtleSBrZXlhdiBrZXl3IGxhZyBsYWcxIGxhZ24gbGFwRWlnaGIgbGFwRWlnaGkgbGFwRWlnaHZiIGxhcEVpZ2h2aSBsYXBnRWlnIGxhcGdFaWdoIGxhcGdFaWdodiAnICtcbiAgICAgICAgICAgICAgJ2xhcGdFaWd2IGxhcGdTY2h1ciBsYXBnU3ZkY3N0IGxhcGdTdmRzIGxhcGdTdmRzdCBsYXBTdmRjdXN2IGxhcFN2ZHMgbGFwU3ZkdXN2IGxkbHAgbGRsc29sIGxpblNvbHZlIGxpc3R3aXNlIGxuIGxuY2RmYnZuICcgK1xuICAgICAgICAgICAgICAnbG5jZGZidm4yIGxuY2RmbXZuIGxuY2RmbiBsbmNkZm4yIGxuY2RmbmMgbG5mYWN0IGxuZ2FtbWFjcGx4IGxucGRmbXZuIGxucGRmbXZ0IGxucGRmbiBsbnBkZnQgbG9hZGQgbG9hZHN0cnVjdCBsb2Fkd2luZCAnICtcbiAgICAgICAgICAgICAgJ2xvZXNzIGxvZXNzbXQgbG9lc3NtdENvbnRyb2xDcmVhdGUgbG9nIGxvZ2xvZyBsb2d4IGxvZ3kgbG93ZXIgbG93bWF0IGxvd21hdDEgbHRyaXNvbCBsdSBsdXNvbCBtYWNoRXBzaWxvbiBtYWtlIG1ha2V2YXJzICcgK1xuICAgICAgICAgICAgICAnbWFrZXdpbmQgbWFyZ2luIG1hdGFsbG9jIG1hdGluaXQgbWF0dG9hcnJheSBtYXhieXRlcyBtYXhjIG1heGluZGMgbWF4diBtYXh2ZWMgbWJlc3NlbGVpIG1iZXNzZWxlaTAgbWJlc3NlbGVpMSBtYmVzc2VsaSAnICtcbiAgICAgICAgICAgICAgJ21iZXNzZWxpMCBtYmVzc2VsaTEgbWVhbmMgbWVkaWFuIG1lcmdlYnkgbWVyZ2V2YXIgbWluYyBtaW5pbmRjIG1pbnYgbWlzcyBtaXNzZXggbWlzc3J2IG1vbWVudCBtb21lbnRkIG1vdmluZ2F2ZSAnICtcbiAgICAgICAgICAgICAgJ21vdmluZ2F2ZUV4cHdndCBtb3ZpbmdhdmVXZ3QgbmV4dGluZGV4IG5leHRuIG5leHRuZXZuIG5leHR3aW5kIG50b3MgbnVsbCBudWxsMSBudW1Db21iaW5hdGlvbnMgb2xzIG9sc210IG9sc210Q29udHJvbENyZWF0ZSAnICtcbiAgICAgICAgICAgICAgJ29sc3FyIG9sc3FyMiBvbHNxcm10IG9uZXMgb3B0biBvcHRuZXZuIG9ydGggb3V0dHlwIHBhY2YgcGFja2VkVG9TcCBwYWNrciBwYXJzZSBwYXVzZSBwZGZDYXVjaHkgcGRmQ2hpIHBkZkV4cCBwZGZHZW5QYXJldG8gJyArXG4gICAgICAgICAgICAgICdwZGZIeXBlckdlbyBwZGZMYXBsYWNlIHBkZkxvZ2lzdGljIHBkZm4gcGRmUG9pc3NvbiBwZGZSYXlsZWlnaCBwZGZXZWlidWxsIHBpIHBpbnYgcGludm10IHBsb3RBZGRBcnJvdyBwbG90QWRkQmFyIHBsb3RBZGRCb3ggJyArXG4gICAgICAgICAgICAgICdwbG90QWRkSGlzdCBwbG90QWRkSGlzdEYgcGxvdEFkZEhpc3RQIHBsb3RBZGRQb2xhciBwbG90QWRkU2NhdHRlciBwbG90QWRkU2hhcGUgcGxvdEFkZFRleHRib3ggcGxvdEFkZFRTIHBsb3RBZGRYWSBwbG90QXJlYSAnICtcbiAgICAgICAgICAgICAgJ3Bsb3RCYXIgcGxvdEJveCBwbG90Q2xlYXJMYXlvdXQgcGxvdENvbnRvdXIgcGxvdEN1c3RvbUxheW91dCBwbG90R2V0RGVmYXVsdHMgcGxvdEhpc3QgcGxvdEhpc3RGIHBsb3RIaXN0UCBwbG90TGF5b3V0ICcgK1xuICAgICAgICAgICAgICAncGxvdExvZ0xvZyBwbG90TG9nWCBwbG90TG9nWSBwbG90T3BlbldpbmRvdyBwbG90UG9sYXIgcGxvdFNhdmUgcGxvdFNjYXR0ZXIgcGxvdFNldEF4ZXNQZW4gcGxvdFNldEJhciBwbG90U2V0QmFyRmlsbCAnICtcbiAgICAgICAgICAgICAgJ3Bsb3RTZXRCYXJTdGFja2VkIHBsb3RTZXRCa2RDb2xvciBwbG90U2V0RmlsbCBwbG90U2V0R3JpZCBwbG90U2V0TGVnZW5kIHBsb3RTZXRMaW5lQ29sb3IgcGxvdFNldExpbmVTdHlsZSBwbG90U2V0TGluZVN5bWJvbCAnICtcbiAgICAgICAgICAgICAgJ3Bsb3RTZXRMaW5lVGhpY2tuZXNzIHBsb3RTZXROZXdXaW5kb3cgcGxvdFNldFRpdGxlIHBsb3RTZXRXaGljaFlBeGlzIHBsb3RTZXRYQXhpc1Nob3cgcGxvdFNldFhMYWJlbCBwbG90U2V0WFJhbmdlICcgK1xuICAgICAgICAgICAgICAncGxvdFNldFhUaWNJbnRlcnZhbCBwbG90U2V0WFRpY0xhYmVsIHBsb3RTZXRZQXhpc1Nob3cgcGxvdFNldFlMYWJlbCBwbG90U2V0WVJhbmdlIHBsb3RTZXRaQXhpc1Nob3cgcGxvdFNldFpMYWJlbCAnICtcbiAgICAgICAgICAgICAgJ3Bsb3RTdXJmYWNlIHBsb3RUUyBwbG90WFkgcG9sYXIgcG9seWNoYXIgcG9seWV2YWwgcG9seWdhbW1hIHBvbHlpbnQgcG9seW1ha2UgcG9seW1hdCBwb2x5bXJvb3QgcG9seW11bHQgcG9seXJvb3QgJyArXG4gICAgICAgICAgICAgICdwcWd3aW4gcHJldmlvdXNpbmRleCBwcmluY29tcCBwcmludGZtIHByaW50Zm10IHByb2RjIHBzaSBwdXRhcnJheSBwdXRmIHB1dHZhbHMgcHZDcmVhdGUgcHZHZXRJbmRleCBwdkdldFBhck5hbWVzICcgK1xuICAgICAgICAgICAgICAncHZHZXRQYXJWZWN0b3IgcHZMZW5ndGggcHZMaXN0IHB2UGFjayBwdlBhY2tpIHB2UGFja20gcHZQYWNrbWkgcHZQYWNrcyBwdlBhY2tzaSBwdlBhY2tzbSBwdlBhY2tzbWkgcHZQdXRQYXJWZWN0b3IgJyArXG4gICAgICAgICAgICAgICdwdlRlc3QgcHZVbnBhY2sgUU5ld3RvbiBRTmV3dG9ubXQgUU5ld3Rvbm10Q29udHJvbENyZWF0ZSBRTmV3dG9ubXRPdXRDcmVhdGUgUU5ld3RvblNldCBRUHJvZyBRUHJvZ210IFFQcm9nbXRJbkNyZWF0ZSAnICtcbiAgICAgICAgICAgICAgJ3FxciBxcXJlIHFxcmVwIHFyIHFyZSBxcmVwIHFyc29sIHFydHNvbCBxdHlyIHF0eXJlIHF0eXJlcCBxdWFudGlsZSBxdWFudGlsZWQgcXlyIHF5cmUgcXlyZXAgcXogcmFuayByYW5raW5keCByZWFkciAnICtcbiAgICAgICAgICAgICAgJ3JlYWwgcmVjbGFzc2lmeSByZWNsYXNzaWZ5Q3V0cyByZWNvZGUgcmVjc2VyYXIgcmVjc2VyY3AgcmVjc2VycmMgcmVydW4gcmVzY2FsZSByZXNoYXBlIHJldHMgcmV2IHJmZnQgcmZmdGkgcmZmdGlwIHJmZnRuICcgK1xuICAgICAgICAgICAgICAncmZmdG5wIHJmZnRwIHJuZEJlcm5vdWxsaSBybmRCZXRhIHJuZEJpbm9taWFsIHJuZENhdWNoeSBybmRDaGlTcXVhcmUgcm5kQ29uIHJuZENyZWF0ZVN0YXRlIHJuZEV4cCBybmRHYW1tYSBybmRHZW8gcm5kR3VtYmVsICcgK1xuICAgICAgICAgICAgICAncm5kSHlwZXJHZW8gcm5kaSBybmRLTWJldGEgcm5kS01nYW0gcm5kS01pIHJuZEtNbiBybmRLTW5iIHJuZEtNcCBybmRLTXUgcm5kS012bSBybmRMYXBsYWNlIHJuZExDYmV0YSBybmRMQ2dhbSBybmRMQ2kgcm5kTENuICcgK1xuICAgICAgICAgICAgICAncm5kTENuYiBybmRMQ3Agcm5kTEN1IHJuZExDdm0gcm5kTG9nTm9ybSBybmRNVHUgcm5kTVZuIHJuZE1WdCBybmRuIHJuZG5iIHJuZE5lZ0Jpbm9taWFsIHJuZHAgcm5kUG9pc3NvbiBybmRSYXlsZWlnaCAnICtcbiAgICAgICAgICAgICAgJ3JuZFN0YXRlU2tpcCBybmR1IHJuZHZtIHJuZFdlaWJ1bGwgcm5kV2lzaGFydCByb3RhdGVyIHJvdW5kIHJvd3Mgcm93c2YgcnJlZiBzYW1wbGVEYXRhIHNhdG9zdHJDIHNhdmVkIHNhdmVTdHJ1Y3Qgc2F2ZXdpbmQgJyArXG4gICAgICAgICAgICAgICdzY2FsZSBzY2FsZTNkIHNjYWxlcnIgc2NhbGluZm5hbm1pc3Mgc2NhbG1pc3Mgc2NodG9jIHNjaHVyIHNlYXJjaHNvdXJjZXBhdGggc2Vla3Igc2VsZWN0IHNlbGlmIHNlcWEgc2VxbSBzZXRkaWYgc2V0ZGlmc2EgJyArXG4gICAgICAgICAgICAgICdzZXR2YXJzIHNldHZ3cm1vZGUgc2V0d2luZCBzaGVsbCBzaGlmdHIgc2luIHNpbmdsZWluZGV4IHNpbmggc2xlZXAgc29scGQgc29ydGMgc29ydGNjIHNvcnRkIHNvcnRoYyBzb3J0aGNjIHNvcnRpbmQgJyArXG4gICAgICAgICAgICAgICdzb3J0aW5kYyBzb3J0bWMgc29ydHIgc29ydHJjIHNwQmljb25qR3JhZFNvbCBzcENob2wgc3BDb25qR3JhZFNvbCBzcENyZWF0ZSBzcERlbnNlU3VibWF0IHNwRGlhZ1J2TWF0IHNwRWlndiBzcEV5ZSBzcExETCAnICtcbiAgICAgICAgICAgICAgJ3NwbGluZSBzcExVIHNwTnVtTlpFIHNwT25lcyBzcHJlYWRTaGVldFJlYWRNIHNwcmVhZFNoZWV0UmVhZFNBIHNwcmVhZFNoZWV0V3JpdGUgc3BTY2FsZSBzcFN1Ym1hdCBzcFRvRGVuc2Ugc3BUclREZW5zZSAnICtcbiAgICAgICAgICAgICAgJ3NwVFNjYWxhciBzcFplcm9zIHNxcFNvbHZlIHNxcFNvbHZlTVQgc3FwU29sdmVNVENvbnRyb2xDcmVhdGUgc3FwU29sdmVNVGxhZ3JhbmdlQ3JlYXRlIHNxcFNvbHZlTVRvdXRDcmVhdGUgc3FwU29sdmVTZXQgJyArXG4gICAgICAgICAgICAgICdzcXJ0IHN0YXRlbWVudHMgc3RkYyBzdGRzYyBzdG9jdiBzdG9mIHN0cmNvbWJpbmUgc3RyaW5keCBzdHJsZW4gc3RycHV0IHN0cnJpbmR4IHN0cnNlY3Qgc3Ryc3BsaXQgc3Ryc3BsaXRQYWQgc3RydG9kdCAnICtcbiAgICAgICAgICAgICAgJ3N0cnRvZiBzdHJ0b2ZjcGx4IHN0cnRyaW1sIHN0cnRyaW1yIHN0cnRydW5jIHN0cnRydW5jbCBzdHJ0cnVuY3BhZCBzdHJ0cnVuY3Igc3VibWF0IHN1YnNjYXQgc3Vic3R1dGUgc3VidmVjIHN1bWMgc3VtciAnICtcbiAgICAgICAgICAgICAgJ3N1cmZhY2Ugc3ZkIHN2ZDEgc3ZkMiBzdmRjdXN2IHN2ZHMgc3ZkdXN2IHN5c3N0YXRlIHRhYiB0YW4gdGFuaCB0ZW1wbmFtZSB0aHJlYWRCZWdpbiB0aHJlYWRFbmQgdGhyZWFkRW5kRm9yIHRocmVhZEZvciAnICtcbiAgICAgICAgICAgICAgJ3RocmVhZEpvaW4gdGhyZWFkU3RhdCB0aW1lIHRpbWVkdCB0aW1lc3RyIHRpbWV1dGMgdGl0bGUgdGtmMmVwcyB0a2YycHMgdG9jYXJ0IHRvZGF5ZHQgdG9lcGxpdHogdG9rZW4gdG9wb2xhciB0cmFwY2hrICcgK1xuICAgICAgICAgICAgICAndHJpZ2FtbWEgdHJpbXIgdHJ1bmMgdHlwZSB0eXBlY3YgdHlwZWYgdW5pb24gdW5pb25zYSB1bmlxaW5keCB1bmlxaW5keHNhIHVuaXF1ZSB1bmlxdWVzYSB1cG1hdCB1cG1hdDEgdXBwZXIgdXRjdG9kdCAnICtcbiAgICAgICAgICAgICAgJ3V0Y3RvZHR2IHV0cmlzb2wgdmFscyB2YXJDb3ZNUyB2YXJDb3ZYUyB2YXJnZXQgdmFyZ2V0bCB2YXJtYWxsIHZhcm1hcmVzIHZhcnB1dCB2YXJwdXRsIHZhcnR5cGVmIHZjbSB2Y21zIHZjeCB2Y3hzICcgK1xuICAgICAgICAgICAgICAndmVjIHZlY2ggdmVjciB2ZWN0b3IgdmdldCB2aWV3IHZpZXd4eXogdmxpc3Qgdm5hbWVjdiB2b2x1bWUgdnB1dCB2cmVhZCB2dHlwZWN2IHdhaXQgd2FpdGMgd2Fsa2luZGV4IHdoZXJlIHdpbmRvdyAnICtcbiAgICAgICAgICAgICAgJ3dyaXRlciB4bGFiZWwgeGxzR2V0U2hlZXRDb3VudCB4bHNHZXRTaGVldFNpemUgeGxzR2V0U2hlZXRUeXBlcyB4bHNNYWtlUmFuZ2UgeGxzUmVhZE0geGxzUmVhZFNBIHhsc1dyaXRlIHhsc1dyaXRlTSAnICtcbiAgICAgICAgICAgICAgJ3hsc1dyaXRlU0EgeHBuZCB4dGljcyB4eSB4eXogeWxhYmVsIHl0aWNzIHplcm9zIHpldGEgemxhYmVsIHp0aWNzIGNkZkVtcGlyaWNhbCBkb3QgaDVjcmVhdGUgaDVvcGVuIGg1cmVhZCBoNXJlYWRBdHRyaWJ1dGUgJyArXG4gICAgICAgICAgICAgICdoNXdyaXRlIGg1d3JpdGVBdHRyaWJ1dGUgbGRsIHBsb3RBZGRFcnJvckJhciBwbG90QWRkU3VyZmFjZSBwbG90Q0RGRW1waXJpY2FsIHBsb3RTZXRDb2xvcm1hcCBwbG90U2V0Q29udG91ckxhYmVscyAnICtcbiAgICAgICAgICAgICAgJ3Bsb3RTZXRMZWdlbmRGb250IHBsb3RTZXRUZXh0SW50ZXJwcmV0ZXIgcGxvdFNldFhUaWNDb3VudCBwbG90U2V0WVRpY0NvdW50IHBsb3RTZXRaTGV2ZWxzIHBvd2VybSBzdHJqb2luIHN0cnRyaW0gc3lsdmVzdGVyJyxcbiAgICBsaXRlcmFsOiAnREJfQUZURVJfTEFTVF9ST1cgREJfQUxMX1RBQkxFUyBEQl9CQVRDSF9PUEVSQVRJT05TIERCX0JFRk9SRV9GSVJTVF9ST1cgREJfQkxPQiBEQl9FVkVOVF9OT1RJRklDQVRJT05TICcgK1xuICAgICAgICAgICAgICdEQl9GSU5JU0hfUVVFUlkgREJfSElHSF9QUkVDSVNJT04gREJfTEFTVF9JTlNFUlRfSUQgREJfTE9XX1BSRUNJU0lPTl9ET1VCTEUgREJfTE9XX1BSRUNJU0lPTl9JTlQzMiAnICtcbiAgICAgICAgICAgICAnREJfTE9XX1BSRUNJU0lPTl9JTlQ2NCBEQl9MT1dfUFJFQ0lTSU9OX05VTUJFUlMgREJfTVVMVElQTEVfUkVTVUxUX1NFVFMgREJfTkFNRURfUExBQ0VIT0xERVJTICcgK1xuICAgICAgICAgICAgICdEQl9QT1NJVElPTkFMX1BMQUNFSE9MREVSUyBEQl9QUkVQQVJFRF9RVUVSSUVTIERCX1FVRVJZX1NJWkUgREJfU0lNUExFX0xPQ0tJTkcgREJfU1lTVEVNX1RBQkxFUyBEQl9UQUJMRVMgJyArXG4gICAgICAgICAgICAgJ0RCX1RSQU5TQUNUSU9OUyBEQl9VTklDT0RFIERCX1ZJRVdTJ1xuICB9O1xuXG4gIHZhciBQUkVQUk9DRVNTT1IgPVxuICB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICcjJywgZW5kOiAnJCcsXG4gICAga2V5d29yZHM6IHsnbWV0YS1rZXl3b3JkJzogJ2RlZmluZSBkZWZpbmVjc3wxMCB1bmRlZiBpZmRlZiBpZm5kZWYgaWZsaWdodCBpZmRsbGNhbGwgaWZtYWMgaWZvczJ3aW4gaWZ1bml4IGVsc2UgZW5kaWYgbGluZXNvbiBsaW5lc29mZiBzcmNmaWxlIHNyY2xpbmUnfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcXFxcXG4vLCByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbmNsdWRlJywgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7J21ldGEta2V5d29yZCc6ICdpbmNsdWRlJ30sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS1zdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIHZhciBGVU5DVElPTl9USVRMRSA9IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccypcXFxcKD8nO1xuICB2YXIgUEFSU0VfUEFSQU1TID0gW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgXVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnZ3NzJ10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSwgLy8gbGFuZ3VhZ2UgaXMgY2FzZS1pbnNlbnNpdGl2ZVxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAnKFxcXFx7WyUjXXxbJSNdXFxcXH0pJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnQCcsICdAJyksXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAncHJvYyBrZXl3b3JkJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogRlVOQ1RJT05fVElUTEUsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV0sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBQUkVQUk9DRVNTT1JcbiAgICAgICAgXS5jb25jYXQoUEFSU0VfUEFSQU1TKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZm4nLFxuICAgICAgICBlbmQ6ICc7JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSArIGhsanMuSURFTlRfUkUgKyAnXFxcXCk/XFxcXHMqXFxcXD1cXFxccyonLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVdLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXS5jb25jYXQoUEFSU0VfUEFSQU1TKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ1xcXFxiZXh0ZXJuYWwgKHByb2N8a2V5d29yZHxmbilcXFxccysnLFxuICAgICAgICBlbmQ6ICc7JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSwgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogW2hsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ1xcXFxiZXh0ZXJuYWwgKG1hdHJpeHxzdHJpbmd8YXJyYXl8c3BhcnNlIG1hdHJpeHxzdHJ1Y3QgJyArIGhsanMuSURFTlRfUkUgKyAnKVxcXFxzKycsXG4gICAgICAgIGVuZDogJzsnLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gICAgdmFyIEdDT0RFX0lERU5UX1JFID0gJ1tBLVpfXVtBLVowLTlfLl0qJztcbiAgICB2YXIgR0NPREVfQ0xPU0VfUkUgPSAnXFxcXCUnO1xuICAgIHZhciBHQ09ERV9LRVlXT1JEUyA9XG4gICAgICAnSUYgRE8gV0hJTEUgRU5EV0hJTEUgQ0FMTCBFTkRJRiBTVUIgRU5EU1VCIEdPVE8gUkVQRUFUIEVORFJFUEVBVCAnICtcbiAgICAgICdFUSBMVCBHVCBORSBHRSBMRSBPUiBYT1InO1xuICAgIHZhciBHQ09ERV9TVEFSVCA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnKFtPXSkoWzAtOV0rKSdcbiAgICB9O1xuICAgIHZhciBHQ09ERV9DT0RFID0gW1xuICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgIGhsanMuQ09NTUVOVCgvXFwoLywgL1xcKS8pLFxuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5DX05VTUJFUl9NT0RFLCB7YmVnaW46ICcoWy0rXT8oWzAtOV0qXFxcXC4/WzAtOV0rXFxcXC4/KSl8JyArIGhsanMuQ19OVU1CRVJfUkV9KSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtpbGxlZ2FsOiBudWxsfSksXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46ICcoW0ddKShbMC05XStcXFxcLj9bMC05XT8pJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiAnKFtNXSkoWzAtOV0rXFxcXC4/WzAtOV0/KSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgICAgICBiZWdpbjogJyhWQ3xWU3wjKScsXG4gICAgICAgICAgICBlbmQ6ICcoXFxcXGQrKSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgICAgICBiZWdpbjogJyhWWk9GWHxWWk9GWXxWWk9GWiknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgICAgIGJlZ2luOiAnKEFUQU58QUJTfEFDT1N8QVNJTnxTSU58Q09TfEVYUHxGSVh8RlVQfFJPVU5EfExOfFRBTikoXFxcXFspJyxcbiAgICAgICAgICAgIGVuZDogJyhbLStdPyhbMC05XSpcXFxcLj9bMC05XStcXFxcLj8pKShcXFxcXSknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdOJywgZW5kOiAnXFxcXGQrJyxcbiAgICAgICAgICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxXJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBhbGlhc2VzOiBbJ25jJ10sXG4gICAgICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIChDTkMgY29udHJvbHMpIG9mIEctY29kZSBhcmUgaW50ZXJvcGVyYWJsZSB3aXRoIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGxldHRlcnMgc2VhbWxlc3NseS5cbiAgICAgICAgLy8gSG93ZXZlciwgbW9zdCBwcmVmZXIgYWxsIHVwcGVyY2FzZSBhbmQgdXBwZXJjYXNlIGlzIGN1c3RvbWFyeS5cbiAgICAgICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICAgICAgbGV4ZW1lczogR0NPREVfSURFTlRfUkUsXG4gICAgICAgIGtleXdvcmRzOiBHQ09ERV9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogR0NPREVfQ0xPU0VfUkVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBHQ09ERV9TVEFSVFxuICAgICAgICBdLmNvbmNhdChHQ09ERV9DT0RFKVxuICAgIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2ZlYXR1cmUnXSxcbiAgICBrZXl3b3JkczogJ0ZlYXR1cmUgQmFja2dyb3VuZCBBYmlsaXR5IEJ1c2luZXNzXFwgTmVlZCBTY2VuYXJpbyBTY2VuYXJpb3MgU2NlbmFyaW9cXCBPdXRsaW5lIFNjZW5hcmlvXFwgVGVtcGxhdGUgRXhhbXBsZXMgR2l2ZW4gQW5kIFRoZW4gQnV0IFdoZW4nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXConLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbXkBcXFxcc10rJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcfCcsIGVuZDogJ1xcXFx8XFxcXHcqJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnW158XSsnXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAnPCcsIGVuZDogJz4nXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLCBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIFN0YXRlbWVudHNcbiAgICAgICAgJ2JyZWFrIGNvbnRpbnVlIGRpc2NhcmQgZG8gZWxzZSBmb3IgaWYgcmV0dXJuIHdoaWxlIHN3aXRjaCBjYXNlIGRlZmF1bHQgJyArXG4gICAgICAgIC8vIFF1YWxpZmllcnNcbiAgICAgICAgJ2F0dHJpYnV0ZSBiaW5kaW5nIGJ1ZmZlciBjY3cgY2VudHJvaWQgY2VudHJvaWQgdmFyeWluZyBjb2hlcmVudCBjb2x1bW5fbWFqb3IgY29uc3QgY3cgJyArXG4gICAgICAgICdkZXB0aF9hbnkgZGVwdGhfZ3JlYXRlciBkZXB0aF9sZXNzIGRlcHRoX3VuY2hhbmdlZCBlYXJseV9mcmFnbWVudF90ZXN0cyBlcXVhbF9zcGFjaW5nICcgK1xuICAgICAgICAnZmxhdCBmcmFjdGlvbmFsX2V2ZW5fc3BhY2luZyBmcmFjdGlvbmFsX29kZF9zcGFjaW5nIGhpZ2hwIGluIGluZGV4IGlub3V0IGludmFyaWFudCAnICtcbiAgICAgICAgJ2ludm9jYXRpb25zIGlzb2xpbmVzIGxheW91dCBsaW5lX3N0cmlwIGxpbmVzIGxpbmVzX2FkamFjZW5jeSBsb2NhbF9zaXplX3ggbG9jYWxfc2l6ZV95ICcgK1xuICAgICAgICAnbG9jYWxfc2l6ZV96IGxvY2F0aW9uIGxvd3AgbWF4X3ZlcnRpY2VzIG1lZGl1bXAgbm9wZXJzcGVjdGl2ZSBvZmZzZXQgb3JpZ2luX3VwcGVyX2xlZnQgJyArXG4gICAgICAgICdvdXQgcGFja2VkIHBhdGNoIHBpeGVsX2NlbnRlcl9pbnRlZ2VyIHBvaW50X21vZGUgcG9pbnRzIHByZWNpc2UgcHJlY2lzaW9uIHF1YWRzIHIxMWZfZzExZl9iMTBmICcrXG4gICAgICAgICdyMTYgcjE2X3Nub3JtIHIxNmYgcjE2aSByMTZ1aSByMzJmIHIzMmkgcjMydWkgcjggcjhfc25vcm0gcjhpIHI4dWkgcmVhZG9ubHkgcmVzdHJpY3QgJyArXG4gICAgICAgICdyZzE2IHJnMTZfc25vcm0gcmcxNmYgcmcxNmkgcmcxNnVpIHJnMzJmIHJnMzJpIHJnMzJ1aSByZzggcmc4X3Nub3JtIHJnOGkgcmc4dWkgcmdiMTBfYTIgJyArXG4gICAgICAgICdyZ2IxMF9hMnVpIHJnYmExNiByZ2JhMTZfc25vcm0gcmdiYTE2ZiByZ2JhMTZpIHJnYmExNnVpIHJnYmEzMmYgcmdiYTMyaSByZ2JhMzJ1aSByZ2JhOCAnICtcbiAgICAgICAgJ3JnYmE4X3Nub3JtIHJnYmE4aSByZ2JhOHVpIHJvd19tYWpvciBzYW1wbGUgc2hhcmVkIHNtb290aCBzdGQxNDAgc3RkNDMwIHN0cmVhbSB0cmlhbmdsZV9zdHJpcCAnICtcbiAgICAgICAgJ3RyaWFuZ2xlcyB0cmlhbmdsZXNfYWRqYWNlbmN5IHVuaWZvcm0gdmFyeWluZyB2ZXJ0aWNlcyB2b2xhdGlsZSB3cml0ZW9ubHknLFxuICAgICAgdHlwZTpcbiAgICAgICAgJ2F0b21pY191aW50IGJvb2wgYnZlYzIgYnZlYzMgYnZlYzQgZG1hdDIgZG1hdDJ4MiBkbWF0MngzIGRtYXQyeDQgZG1hdDMgZG1hdDN4MiBkbWF0M3gzICcgK1xuICAgICAgICAnZG1hdDN4NCBkbWF0NCBkbWF0NHgyIGRtYXQ0eDMgZG1hdDR4NCBkb3VibGUgZHZlYzIgZHZlYzMgZHZlYzQgZmxvYXQgaWltYWdlMUQgaWltYWdlMURBcnJheSAnICtcbiAgICAgICAgJ2lpbWFnZTJEIGlpbWFnZTJEQXJyYXkgaWltYWdlMkRNUyBpaW1hZ2UyRE1TQXJyYXkgaWltYWdlMkRSZWN0IGlpbWFnZTNEIGlpbWFnZUJ1ZmZlcicgK1xuICAgICAgICAnaWltYWdlQ3ViZSBpaW1hZ2VDdWJlQXJyYXkgaW1hZ2UxRCBpbWFnZTFEQXJyYXkgaW1hZ2UyRCBpbWFnZTJEQXJyYXkgaW1hZ2UyRE1TIGltYWdlMkRNU0FycmF5ICcgK1xuICAgICAgICAnaW1hZ2UyRFJlY3QgaW1hZ2UzRCBpbWFnZUJ1ZmZlciBpbWFnZUN1YmUgaW1hZ2VDdWJlQXJyYXkgaW50IGlzYW1wbGVyMUQgaXNhbXBsZXIxREFycmF5ICcgK1xuICAgICAgICAnaXNhbXBsZXIyRCBpc2FtcGxlcjJEQXJyYXkgaXNhbXBsZXIyRE1TIGlzYW1wbGVyMkRNU0FycmF5IGlzYW1wbGVyMkRSZWN0IGlzYW1wbGVyM0QgJyArXG4gICAgICAgICdpc2FtcGxlckJ1ZmZlciBpc2FtcGxlckN1YmUgaXNhbXBsZXJDdWJlQXJyYXkgaXZlYzIgaXZlYzMgaXZlYzQgbWF0MiBtYXQyeDIgbWF0MngzICcgK1xuICAgICAgICAnbWF0Mng0IG1hdDMgbWF0M3gyIG1hdDN4MyBtYXQzeDQgbWF0NCBtYXQ0eDIgbWF0NHgzIG1hdDR4NCBzYW1wbGVyMUQgc2FtcGxlcjFEQXJyYXkgJyArXG4gICAgICAgICdzYW1wbGVyMURBcnJheVNoYWRvdyBzYW1wbGVyMURTaGFkb3cgc2FtcGxlcjJEIHNhbXBsZXIyREFycmF5IHNhbXBsZXIyREFycmF5U2hhZG93ICcgK1xuICAgICAgICAnc2FtcGxlcjJETVMgc2FtcGxlcjJETVNBcnJheSBzYW1wbGVyMkRSZWN0IHNhbXBsZXIyRFJlY3RTaGFkb3cgc2FtcGxlcjJEU2hhZG93IHNhbXBsZXIzRCAnICtcbiAgICAgICAgJ3NhbXBsZXJCdWZmZXIgc2FtcGxlckN1YmUgc2FtcGxlckN1YmVBcnJheSBzYW1wbGVyQ3ViZUFycmF5U2hhZG93IHNhbXBsZXJDdWJlU2hhZG93ICcgK1xuICAgICAgICAnaW1hZ2UxRCB1aW1hZ2UxREFycmF5IHVpbWFnZTJEIHVpbWFnZTJEQXJyYXkgdWltYWdlMkRNUyB1aW1hZ2UyRE1TQXJyYXkgdWltYWdlMkRSZWN0ICcgK1xuICAgICAgICAndWltYWdlM0QgdWltYWdlQnVmZmVyIHVpbWFnZUN1YmUgdWltYWdlQ3ViZUFycmF5IHVpbnQgdXNhbXBsZXIxRCB1c2FtcGxlcjFEQXJyYXkgJyArXG4gICAgICAgICd1c2FtcGxlcjJEIHVzYW1wbGVyMkRBcnJheSB1c2FtcGxlcjJETVMgdXNhbXBsZXIyRE1TQXJyYXkgdXNhbXBsZXIyRFJlY3QgdXNhbXBsZXIzRCAnICtcbiAgICAgICAgJ3NhbXBsZXJCdWZmZXIgdXNhbXBsZXJDdWJlIHVzYW1wbGVyQ3ViZUFycmF5IHV2ZWMyIHV2ZWMzIHV2ZWM0IHZlYzIgdmVjMyB2ZWM0IHZvaWQnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8vIENvbnN0YW50c1xuICAgICAgICAnZ2xfTWF4QXRvbWljQ291bnRlckJpbmRpbmdzIGdsX01heEF0b21pY0NvdW50ZXJCdWZmZXJTaXplIGdsX01heENsaXBEaXN0YW5jZXMgZ2xfTWF4Q2xpcFBsYW5lcyAnICtcbiAgICAgICAgJ2dsX01heENvbWJpbmVkQXRvbWljQ291bnRlckJ1ZmZlcnMgZ2xfTWF4Q29tYmluZWRBdG9taWNDb3VudGVycyBnbF9NYXhDb21iaW5lZEltYWdlVW5pZm9ybXMgJyArXG4gICAgICAgICdnbF9NYXhDb21iaW5lZEltYWdlVW5pdHNBbmRGcmFnbWVudE91dHB1dHMgZ2xfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyBnbF9NYXhDb21wdXRlQXRvbWljQ291bnRlckJ1ZmZlcnMgJyArXG4gICAgICAgICdnbF9NYXhDb21wdXRlQXRvbWljQ291bnRlcnMgZ2xfTWF4Q29tcHV0ZUltYWdlVW5pZm9ybXMgZ2xfTWF4Q29tcHV0ZVRleHR1cmVJbWFnZVVuaXRzICcgK1xuICAgICAgICAnZ2xfTWF4Q29tcHV0ZVVuaWZvcm1Db21wb25lbnRzIGdsX01heENvbXB1dGVXb3JrR3JvdXBDb3VudCBnbF9NYXhDb21wdXRlV29ya0dyb3VwU2l6ZSAnICtcbiAgICAgICAgJ2dsX01heERyYXdCdWZmZXJzIGdsX01heEZyYWdtZW50QXRvbWljQ291bnRlckJ1ZmZlcnMgZ2xfTWF4RnJhZ21lbnRBdG9taWNDb3VudGVycyAnICtcbiAgICAgICAgJ2dsX01heEZyYWdtZW50SW1hZ2VVbmlmb3JtcyBnbF9NYXhGcmFnbWVudElucHV0Q29tcG9uZW50cyBnbF9NYXhGcmFnbWVudElucHV0VmVjdG9ycyAnICtcbiAgICAgICAgJ2dsX01heEZyYWdtZW50VW5pZm9ybUNvbXBvbmVudHMgZ2xfTWF4RnJhZ21lbnRVbmlmb3JtVmVjdG9ycyBnbF9NYXhHZW9tZXRyeUF0b21pY0NvdW50ZXJCdWZmZXJzICcgK1xuICAgICAgICAnZ2xfTWF4R2VvbWV0cnlBdG9taWNDb3VudGVycyBnbF9NYXhHZW9tZXRyeUltYWdlVW5pZm9ybXMgZ2xfTWF4R2VvbWV0cnlJbnB1dENvbXBvbmVudHMgJyArXG4gICAgICAgICdnbF9NYXhHZW9tZXRyeU91dHB1dENvbXBvbmVudHMgZ2xfTWF4R2VvbWV0cnlPdXRwdXRWZXJ0aWNlcyBnbF9NYXhHZW9tZXRyeVRleHR1cmVJbWFnZVVuaXRzICcgK1xuICAgICAgICAnZ2xfTWF4R2VvbWV0cnlUb3RhbE91dHB1dENvbXBvbmVudHMgZ2xfTWF4R2VvbWV0cnlVbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeVZhcnlpbmdDb21wb25lbnRzICcgK1xuICAgICAgICAnZ2xfTWF4SW1hZ2VTYW1wbGVzIGdsX01heEltYWdlVW5pdHMgZ2xfTWF4TGlnaHRzIGdsX01heFBhdGNoVmVydGljZXMgZ2xfTWF4UHJvZ3JhbVRleGVsT2Zmc2V0ICcgK1xuICAgICAgICAnZ2xfTWF4VGVzc0NvbnRyb2xBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhUZXNzQ29udHJvbEF0b21pY0NvdW50ZXJzIGdsX01heFRlc3NDb250cm9sSW1hZ2VVbmlmb3JtcyAnICtcbiAgICAgICAgJ2dsX01heFRlc3NDb250cm9sSW5wdXRDb21wb25lbnRzIGdsX01heFRlc3NDb250cm9sT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzQ29udHJvbFRleHR1cmVJbWFnZVVuaXRzICcgK1xuICAgICAgICAnZ2xfTWF4VGVzc0NvbnRyb2xUb3RhbE91dHB1dENvbXBvbmVudHMgZ2xfTWF4VGVzc0NvbnRyb2xVbmlmb3JtQ29tcG9uZW50cyAnICtcbiAgICAgICAgJ2dsX01heFRlc3NFdmFsdWF0aW9uQXRvbWljQ291bnRlckJ1ZmZlcnMgZ2xfTWF4VGVzc0V2YWx1YXRpb25BdG9taWNDb3VudGVycyAnICtcbiAgICAgICAgJ2dsX01heFRlc3NFdmFsdWF0aW9uSW1hZ2VVbmlmb3JtcyBnbF9NYXhUZXNzRXZhbHVhdGlvbklucHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzRXZhbHVhdGlvbk91dHB1dENvbXBvbmVudHMgJyArXG4gICAgICAgICdnbF9NYXhUZXNzRXZhbHVhdGlvblRleHR1cmVJbWFnZVVuaXRzIGdsX01heFRlc3NFdmFsdWF0aW9uVW5pZm9ybUNvbXBvbmVudHMgJyArXG4gICAgICAgICdnbF9NYXhUZXNzR2VuTGV2ZWwgZ2xfTWF4VGVzc1BhdGNoQ29tcG9uZW50cyBnbF9NYXhUZXh0dXJlQ29vcmRzIGdsX01heFRleHR1cmVJbWFnZVVuaXRzICcgK1xuICAgICAgICAnZ2xfTWF4VGV4dHVyZVVuaXRzIGdsX01heFZhcnlpbmdDb21wb25lbnRzIGdsX01heFZhcnlpbmdGbG9hdHMgZ2xfTWF4VmFyeWluZ1ZlY3RvcnMgJyArXG4gICAgICAgICdnbF9NYXhWZXJ0ZXhBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhWZXJ0ZXhBdG9taWNDb3VudGVycyBnbF9NYXhWZXJ0ZXhBdHRyaWJzIGdsX01heFZlcnRleEltYWdlVW5pZm9ybXMgJyArXG4gICAgICAgICdnbF9NYXhWZXJ0ZXhPdXRwdXRDb21wb25lbnRzIGdsX01heFZlcnRleE91dHB1dFZlY3RvcnMgZ2xfTWF4VmVydGV4VGV4dHVyZUltYWdlVW5pdHMgJyArXG4gICAgICAgICdnbF9NYXhWZXJ0ZXhVbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhWZXJ0ZXhVbmlmb3JtVmVjdG9ycyBnbF9NYXhWaWV3cG9ydHMgZ2xfTWluUHJvZ3JhbVRleGVsT2Zmc2V0ICcgK1xuICAgICAgICAvLyBWYXJpYWJsZXNcbiAgICAgICAgJ2dsX0JhY2tDb2xvciBnbF9CYWNrTGlnaHRNb2RlbFByb2R1Y3QgZ2xfQmFja0xpZ2h0UHJvZHVjdCBnbF9CYWNrTWF0ZXJpYWwgJyArXG4gICAgICAgICdnbF9CYWNrU2Vjb25kYXJ5Q29sb3IgZ2xfQ2xpcERpc3RhbmNlIGdsX0NsaXBQbGFuZSBnbF9DbGlwVmVydGV4IGdsX0NvbG9yICcgK1xuICAgICAgICAnZ2xfRGVwdGhSYW5nZSBnbF9FeWVQbGFuZVEgZ2xfRXllUGxhbmVSIGdsX0V5ZVBsYW5lUyBnbF9FeWVQbGFuZVQgZ2xfRm9nIGdsX0ZvZ0Nvb3JkICcgK1xuICAgICAgICAnZ2xfRm9nRnJhZ0Nvb3JkIGdsX0ZyYWdDb2xvciBnbF9GcmFnQ29vcmQgZ2xfRnJhZ0RhdGEgZ2xfRnJhZ0RlcHRoIGdsX0Zyb250Q29sb3IgJyArXG4gICAgICAgICdnbF9Gcm9udEZhY2luZyBnbF9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0IGdsX0Zyb250TGlnaHRQcm9kdWN0IGdsX0Zyb250TWF0ZXJpYWwgJyArXG4gICAgICAgICdnbF9Gcm9udFNlY29uZGFyeUNvbG9yIGdsX0dsb2JhbEludm9jYXRpb25JRCBnbF9JbnN0YW5jZUlEIGdsX0ludm9jYXRpb25JRCBnbF9MYXllciBnbF9MaWdodE1vZGVsICcgK1xuICAgICAgICAnZ2xfTGlnaHRTb3VyY2UgZ2xfTG9jYWxJbnZvY2F0aW9uSUQgZ2xfTG9jYWxJbnZvY2F0aW9uSW5kZXggZ2xfTW9kZWxWaWV3TWF0cml4ICcgK1xuICAgICAgICAnZ2xfTW9kZWxWaWV3TWF0cml4SW52ZXJzZSBnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlVHJhbnNwb3NlIGdsX01vZGVsVmlld01hdHJpeFRyYW5zcG9zZSAnICtcbiAgICAgICAgJ2dsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXggZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2UgZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2VUcmFuc3Bvc2UgJyArXG4gICAgICAgICdnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4VHJhbnNwb3NlIGdsX011bHRpVGV4Q29vcmQwIGdsX011bHRpVGV4Q29vcmQxIGdsX011bHRpVGV4Q29vcmQyICcgK1xuICAgICAgICAnZ2xfTXVsdGlUZXhDb29yZDMgZ2xfTXVsdGlUZXhDb29yZDQgZ2xfTXVsdGlUZXhDb29yZDUgZ2xfTXVsdGlUZXhDb29yZDYgZ2xfTXVsdGlUZXhDb29yZDcgJyArXG4gICAgICAgICdnbF9Ob3JtYWwgZ2xfTm9ybWFsTWF0cml4IGdsX05vcm1hbFNjYWxlIGdsX051bVNhbXBsZXMgZ2xfTnVtV29ya0dyb3VwcyBnbF9PYmplY3RQbGFuZVEgJyArXG4gICAgICAgICdnbF9PYmplY3RQbGFuZVIgZ2xfT2JqZWN0UGxhbmVTIGdsX09iamVjdFBsYW5lVCBnbF9QYXRjaFZlcnRpY2VzSW4gZ2xfUG9pbnQgZ2xfUG9pbnRDb29yZCAnICtcbiAgICAgICAgJ2dsX1BvaW50U2l6ZSBnbF9Qb3NpdGlvbiBnbF9QcmltaXRpdmVJRCBnbF9QcmltaXRpdmVJREluIGdsX1Byb2plY3Rpb25NYXRyaXggZ2xfUHJvamVjdGlvbk1hdHJpeEludmVyc2UgJyArXG4gICAgICAgICdnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSBnbF9Qcm9qZWN0aW9uTWF0cml4VHJhbnNwb3NlIGdsX1NhbXBsZUlEIGdsX1NhbXBsZU1hc2sgJyArXG4gICAgICAgICdnbF9TYW1wbGVNYXNrSW4gZ2xfU2FtcGxlUG9zaXRpb24gZ2xfU2Vjb25kYXJ5Q29sb3IgZ2xfVGVzc0Nvb3JkIGdsX1Rlc3NMZXZlbElubmVyIGdsX1Rlc3NMZXZlbE91dGVyICcgK1xuICAgICAgICAnZ2xfVGV4Q29vcmQgZ2xfVGV4dHVyZUVudkNvbG9yIGdsX1RleHR1cmVNYXRyaXggZ2xfVGV4dHVyZU1hdHJpeEludmVyc2UgZ2xfVGV4dHVyZU1hdHJpeEludmVyc2VUcmFuc3Bvc2UgJyArXG4gICAgICAgICdnbF9UZXh0dXJlTWF0cml4VHJhbnNwb3NlIGdsX1ZlcnRleCBnbF9WZXJ0ZXhJRCBnbF9WaWV3cG9ydEluZGV4IGdsX1dvcmtHcm91cElEIGdsX1dvcmtHcm91cFNpemUgZ2xfaW4gZ2xfb3V0ICcgK1xuICAgICAgICAvLyBGdW5jdGlvbnNcbiAgICAgICAgJ0VtaXRTdHJlYW1WZXJ0ZXggRW1pdFZlcnRleCBFbmRQcmltaXRpdmUgRW5kU3RyZWFtUHJpbWl0aXZlIGFicyBhY29zIGFjb3NoIGFsbCBhbnkgYXNpbiAnICtcbiAgICAgICAgJ2FzaW5oIGF0YW4gYXRhbmggYXRvbWljQWRkIGF0b21pY0FuZCBhdG9taWNDb21wU3dhcCBhdG9taWNDb3VudGVyIGF0b21pY0NvdW50ZXJEZWNyZW1lbnQgJyArXG4gICAgICAgICdhdG9taWNDb3VudGVySW5jcmVtZW50IGF0b21pY0V4Y2hhbmdlIGF0b21pY01heCBhdG9taWNNaW4gYXRvbWljT3IgYXRvbWljWG9yIGJhcnJpZXIgJyArXG4gICAgICAgICdiaXRDb3VudCBiaXRmaWVsZEV4dHJhY3QgYml0ZmllbGRJbnNlcnQgYml0ZmllbGRSZXZlcnNlIGNlaWwgY2xhbXAgY29zIGNvc2ggY3Jvc3MgJyArXG4gICAgICAgICdkRmR4IGRGZHkgZGVncmVlcyBkZXRlcm1pbmFudCBkaXN0YW5jZSBkb3QgZXF1YWwgZXhwIGV4cDIgZmFjZWZvcndhcmQgZmluZExTQiBmaW5kTVNCICcgK1xuICAgICAgICAnZmxvYXRCaXRzVG9JbnQgZmxvYXRCaXRzVG9VaW50IGZsb29yIGZtYSBmcmFjdCBmcmV4cCBmdHJhbnNmb3JtIGZ3aWR0aCBncmVhdGVyVGhhbiAnICtcbiAgICAgICAgJ2dyZWF0ZXJUaGFuRXF1YWwgZ3JvdXBNZW1vcnlCYXJyaWVyIGltYWdlQXRvbWljQWRkIGltYWdlQXRvbWljQW5kIGltYWdlQXRvbWljQ29tcFN3YXAgJyArXG4gICAgICAgICdpbWFnZUF0b21pY0V4Y2hhbmdlIGltYWdlQXRvbWljTWF4IGltYWdlQXRvbWljTWluIGltYWdlQXRvbWljT3IgaW1hZ2VBdG9taWNYb3IgaW1hZ2VMb2FkICcgK1xuICAgICAgICAnaW1hZ2VTaXplIGltYWdlU3RvcmUgaW11bEV4dGVuZGVkIGludEJpdHNUb0Zsb2F0IGludGVycG9sYXRlQXRDZW50cm9pZCBpbnRlcnBvbGF0ZUF0T2Zmc2V0ICcgK1xuICAgICAgICAnaW50ZXJwb2xhdGVBdFNhbXBsZSBpbnZlcnNlIGludmVyc2VzcXJ0IGlzaW5mIGlzbmFuIGxkZXhwIGxlbmd0aCBsZXNzVGhhbiBsZXNzVGhhbkVxdWFsIGxvZyAnICtcbiAgICAgICAgJ2xvZzIgbWF0cml4Q29tcE11bHQgbWF4IG1lbW9yeUJhcnJpZXIgbWVtb3J5QmFycmllckF0b21pY0NvdW50ZXIgbWVtb3J5QmFycmllckJ1ZmZlciAnICtcbiAgICAgICAgJ21lbW9yeUJhcnJpZXJJbWFnZSBtZW1vcnlCYXJyaWVyU2hhcmVkIG1pbiBtaXggbW9kIG1vZGYgbm9pc2UxIG5vaXNlMiBub2lzZTMgbm9pc2U0ICcgK1xuICAgICAgICAnbm9ybWFsaXplIG5vdCBub3RFcXVhbCBvdXRlclByb2R1Y3QgcGFja0RvdWJsZTJ4MzIgcGFja0hhbGYyeDE2IHBhY2tTbm9ybTJ4MTYgcGFja1Nub3JtNHg4ICcgK1xuICAgICAgICAncGFja1Vub3JtMngxNiBwYWNrVW5vcm00eDggcG93IHJhZGlhbnMgcmVmbGVjdCByZWZyYWN0IHJvdW5kIHJvdW5kRXZlbiBzaGFkb3cxRCBzaGFkb3cxRExvZCAnICtcbiAgICAgICAgJ3NoYWRvdzFEUHJvaiBzaGFkb3cxRFByb2pMb2Qgc2hhZG93MkQgc2hhZG93MkRMb2Qgc2hhZG93MkRQcm9qIHNoYWRvdzJEUHJvakxvZCBzaWduIHNpbiBzaW5oICcgK1xuICAgICAgICAnc21vb3Roc3RlcCBzcXJ0IHN0ZXAgdGFuIHRhbmggdGV4ZWxGZXRjaCB0ZXhlbEZldGNoT2Zmc2V0IHRleHR1cmUgdGV4dHVyZTFEIHRleHR1cmUxRExvZCAnICtcbiAgICAgICAgJ3RleHR1cmUxRFByb2ogdGV4dHVyZTFEUHJvakxvZCB0ZXh0dXJlMkQgdGV4dHVyZTJETG9kIHRleHR1cmUyRFByb2ogdGV4dHVyZTJEUHJvakxvZCAnICtcbiAgICAgICAgJ3RleHR1cmUzRCB0ZXh0dXJlM0RMb2QgdGV4dHVyZTNEUHJvaiB0ZXh0dXJlM0RQcm9qTG9kIHRleHR1cmVDdWJlIHRleHR1cmVDdWJlTG9kICcgK1xuICAgICAgICAndGV4dHVyZUdhdGhlciB0ZXh0dXJlR2F0aGVyT2Zmc2V0IHRleHR1cmVHYXRoZXJPZmZzZXRzIHRleHR1cmVHcmFkIHRleHR1cmVHcmFkT2Zmc2V0ICcgK1xuICAgICAgICAndGV4dHVyZUxvZCB0ZXh0dXJlTG9kT2Zmc2V0IHRleHR1cmVPZmZzZXQgdGV4dHVyZVByb2ogdGV4dHVyZVByb2pHcmFkIHRleHR1cmVQcm9qR3JhZE9mZnNldCAnICtcbiAgICAgICAgJ3RleHR1cmVQcm9qTG9kIHRleHR1cmVQcm9qTG9kT2Zmc2V0IHRleHR1cmVQcm9qT2Zmc2V0IHRleHR1cmVRdWVyeUxldmVscyB0ZXh0dXJlUXVlcnlMb2QgJyArXG4gICAgICAgICd0ZXh0dXJlU2l6ZSB0cmFuc3Bvc2UgdHJ1bmMgdWFkZENhcnJ5IHVpbnRCaXRzVG9GbG9hdCB1bXVsRXh0ZW5kZWQgdW5wYWNrRG91YmxlMngzMiAnICtcbiAgICAgICAgJ3VucGFja0hhbGYyeDE2IHVucGFja1Nub3JtMngxNiB1bnBhY2tTbm9ybTR4OCB1bnBhY2tVbm9ybTJ4MTYgdW5wYWNrVW5vcm00eDggdXN1YkJvcnJvdycsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGlsbGVnYWw6ICdcIicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLCBlbmQ6ICckJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBHT19LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2JyZWFrIGRlZmF1bHQgZnVuYyBpbnRlcmZhY2Ugc2VsZWN0IGNhc2UgbWFwIHN0cnVjdCBjaGFuIGVsc2UgZ290byBwYWNrYWdlIHN3aXRjaCAnICtcbiAgICAgICdjb25zdCBmYWxsdGhyb3VnaCBpZiByYW5nZSB0eXBlIGNvbnRpbnVlIGZvciBpbXBvcnQgcmV0dXJuIHZhciBnbyBkZWZlciAnICtcbiAgICAgICdib29sIGJ5dGUgY29tcGxleDY0IGNvbXBsZXgxMjggZmxvYXQzMiBmbG9hdDY0IGludDggaW50MTYgaW50MzIgaW50NjQgc3RyaW5nIHVpbnQ4ICcgK1xuICAgICAgJ3VpbnQxNiB1aW50MzIgdWludDY0IGludCB1aW50IHVpbnRwdHIgcnVuZScsXG4gICAgbGl0ZXJhbDpcbiAgICAgICAndHJ1ZSBmYWxzZSBpb3RhIG5pbCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYXBwZW5kIGNhcCBjbG9zZSBjb21wbGV4IGNvcHkgaW1hZyBsZW4gbWFrZSBuZXcgcGFuaWMgcHJpbnQgcHJpbnRsbiByZWFsIHJlY292ZXIgZGVsZXRlJ1xuICB9O1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnZ29sYW5nJ10sXG4gICAga2V5d29yZHM6IEdPX0tFWVdPUkRTLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICB7YmVnaW46ICdcXCcnLCBlbmQ6ICdbXlxcXFxcXFxcXVxcJyd9LFxuICAgICAgICAgIHtiZWdpbjogJ2AnLCBlbmQ6ICdgJ30sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiBobGpzLkNfTlVNQkVSX1JFICsgJ1tkZmxzaV0nLCByZWxldmFuY2U6IDF9LFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzo9LyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuYycsIGVuZDogL1xccypcXHsvLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAga2V5d29yZHM6IEdPX0tFWVdPUkRTLFxuICAgICAgICAgICAgaWxsZWdhbDogL1tcIiddL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgJ3ByaW50bG4gcmVhZGxuIHByaW50IGltcG9ydCBtb2R1bGUgZnVuY3Rpb24gbG9jYWwgcmV0dXJuIGxldCB2YXIgJyArXG4gICAgICAgICAgJ3doaWxlIGZvciBmb3JlYWNoIHRpbWVzIGluIGNhc2Ugd2hlbiBtYXRjaCB3aXRoIGJyZWFrIGNvbnRpbnVlICcgK1xuICAgICAgICAgICdhdWdtZW50IGF1Z21lbnRhdGlvbiBlYWNoIGZpbmQgZmlsdGVyIHJlZHVjZSAnICtcbiAgICAgICAgICAnaWYgdGhlbiBlbHNlIG90aGVyd2lzZSB0cnkgY2F0Y2ggZmluYWxseSByYWlzZSB0aHJvdyBvcklmTnVsbCAnICtcbiAgICAgICAgICAnRHluYW1pY09iamVjdHwxMCBEeW5hbWljVmFyaWFibGUgc3RydWN0IE9ic2VydmFibGUgbWFwIHNldCB2ZWN0b3IgbGlzdCBhcnJheScsXG4gICAgICAgIGxpdGVyYWw6XG4gICAgICAgICAgJ3RydWUgZmFsc2UgbnVsbCdcbiAgICAgIH0sXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJywgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAndGFzayBwcm9qZWN0IGFsbHByb2plY3RzIHN1YnByb2plY3RzIGFydGlmYWN0cyBidWlsZHNjcmlwdCBjb25maWd1cmF0aW9ucyAnICtcbiAgICAgICAgJ2RlcGVuZGVuY2llcyByZXBvc2l0b3JpZXMgc291cmNlU2V0cyBkZXNjcmlwdGlvbiBkZWxldGUgZnJvbSBpbnRvIGluY2x1ZGUgJyArXG4gICAgICAgICdleGNsdWRlIHNvdXJjZSBjbGFzc3BhdGggZGVzdGluYXRpb25EaXIgaW5jbHVkZXMgb3B0aW9ucyBzb3VyY2VDb21wYXRpYmlsaXR5ICcgK1xuICAgICAgICAndGFyZ2V0Q29tcGF0aWJpbGl0eSBncm91cCBmbGF0RGlyIGRvTGFzdCBkb0ZpcnN0IGZsYXR0ZW4gdG9kaXIgZnJvbWRpciBhbnQgJyArXG4gICAgICAgICdkZWYgYWJzdHJhY3QgYnJlYWsgY2FzZSBjYXRjaCBjb250aW51ZSBkZWZhdWx0IGRvIGVsc2UgZXh0ZW5kcyBmaW5hbCBmaW5hbGx5ICcgK1xuICAgICAgICAnZm9yIGlmIGltcGxlbWVudHMgaW5zdGFuY2VvZiBuYXRpdmUgbmV3IHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyByZXR1cm4gc3RhdGljICcgK1xuICAgICAgICAnc3dpdGNoIHN5bmNocm9uaXplZCB0aHJvdyB0aHJvd3MgdHJhbnNpZW50IHRyeSB2b2xhdGlsZSB3aGlsZSBzdHJpY3RmcCBwYWNrYWdlICcgK1xuICAgICAgICAnaW1wb3J0IGZhbHNlIG51bGwgc3VwZXIgdGhpcyB0cnVlIGFudGxydGFzayBjaGVja3N0eWxlIGNvZGVuYXJjIGNvcHkgYm9vbGVhbiAnICtcbiAgICAgICAgJ2J5dGUgY2hhciBjbGFzcyBkb3VibGUgZmxvYXQgaW50IGludGVyZmFjZSBsb25nIHNob3J0IHZvaWQgY29tcGlsZSBydW5UaW1lICcgK1xuICAgICAgICAnZmlsZSBmaWxlVHJlZSBhYnMgYW55IGFwcGVuZCBhc0xpc3QgYXNXcml0YWJsZSBjYWxsIGNvbGxlY3QgY29tcGFyZVRvIGNvdW50ICcgK1xuICAgICAgICAnZGl2IGR1bXAgZWFjaCBlYWNoQnl0ZSBlYWNoRmlsZSBlYWNoTGluZSBldmVyeSBmaW5kIGZpbmRBbGwgZmxhdHRlbiBnZXRBdCAnICtcbiAgICAgICAgJ2dldEVyciBnZXRJbiBnZXRPdXQgZ2V0VGV4dCBncmVwIGltbXV0YWJsZSBpbmplY3QgaW5zcGVjdCBpbnRlcnNlY3QgaW52b2tlTWV0aG9kcyAnICtcbiAgICAgICAgJ2lzQ2FzZSBqb2luIGxlZnRTaGlmdCBtaW51cyBtdWx0aXBseSBuZXdJbnB1dFN0cmVhbSBuZXdPdXRwdXRTdHJlYW0gbmV3UHJpbnRXcml0ZXIgJyArXG4gICAgICAgICduZXdSZWFkZXIgbmV3V3JpdGVyIG5leHQgcGx1cyBwb3AgcG93ZXIgcHJldmlvdXMgcHJpbnQgcHJpbnRsbiBwdXNoIHB1dEF0IHJlYWQgJyArXG4gICAgICAgICdyZWFkQnl0ZXMgcmVhZExpbmVzIHJldmVyc2UgcmV2ZXJzZUVhY2ggcm91bmQgc2l6ZSBzb3J0IHNwbGl0RWFjaExpbmUgc3RlcCBzdWJNYXAgJyArXG4gICAgICAgICd0aW1lcyB0b0ludGVnZXIgdG9MaXN0IHRva2VuaXplIHVwdG8gd2FpdEZvck9yS2lsbCB3aXRoUHJpbnRXcml0ZXIgd2l0aFJlYWRlciAnICtcbiAgICAgICAgJ3dpdGhTdHJlYW0gd2l0aFdyaXRlciB3aXRoV3JpdGVyQXBwZW5kIHdyaXRlIHdyaXRlTGluZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLlJFR0VYUF9NT0RFXG5cbiAgICBdXG4gIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgIGxpdGVyYWwgOiAndHJ1ZSBmYWxzZSBudWxsJyxcbiAgICAgICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgICAnYnl0ZSBzaG9ydCBjaGFyIGludCBsb25nIGJvb2xlYW4gZmxvYXQgZG91YmxlIHZvaWQgJyArXG4gICAgICAgICAgICAvLyBncm9vdnkgc3BlY2lmaWMga2V5d29yZHNcbiAgICAgICAgICAgICdkZWYgYXMgaW4gYXNzZXJ0IHRyYWl0ICcgK1xuICAgICAgICAgICAgLy8gY29tbW9uIGtleXdvcmRzIHdpdGggSmF2YVxuICAgICAgICAgICAgJ3N1cGVyIHRoaXMgYWJzdHJhY3Qgc3RhdGljIHZvbGF0aWxlIHRyYW5zaWVudCBwdWJsaWMgcHJpdmF0ZSBwcm90ZWN0ZWQgc3luY2hyb25pemVkIGZpbmFsICcgK1xuICAgICAgICAgICAgJ2NsYXNzIGludGVyZmFjZSBlbnVtIGlmIGVsc2UgZm9yIHdoaWxlIHN3aXRjaCBjYXNlIGJyZWFrIGRlZmF1bHQgY29udGludWUgJyArXG4gICAgICAgICAgICAndGhyb3cgdGhyb3dzIHRyeSBjYXRjaCBmaW5hbGx5IGltcGxlbWVudHMgZXh0ZW5kcyBuZXcgaW1wb3J0IHBhY2thZ2UgcmV0dXJuIGluc3RhbmNlb2YnXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgICAgICAgICAnL1xcXFwqXFxcXConLFxuICAgICAgICAgICAgICAgICdcXFxcKi8nLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlIDogMCxcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbnMgOiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvXFx3K0AvLCByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lIDogJ2RvY3RhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luIDogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1wiXCJcIicsIGVuZDogJ1wiXCJcIidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogXCInJydcIiwgZW5kOiBcIicnJ1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgYmVnaW46IFwiXFxcXCQvXCIsIGVuZDogXCIvXFxcXCRcIixcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgICAgICAgYmVnaW46IC9+P1xcL1teXFwvXFxuXStcXC8vLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBcIl4jIS91c3IvYmluL2VudlwiLCBlbmQ6ICckJyxcbiAgICAgICAgICAgICAgICBpbGxlZ2FsOiAnXFxuJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MgaW50ZXJmYWNlIHRyYWl0IGVudW0nLCBlbmQ6ICd7JyxcbiAgICAgICAgICAgICAgICBpbGxlZ2FsOiAnOicsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge2JlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnfSxcbiAgICAgICAgICAgICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGhpZ2hsaWdodCBtYXAga2V5cyBhbmQgbmFtZWQgcGFyYW1ldGVycyBhcyBzdHJpbmdzXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgYmVnaW46IC9bXlxcP117MH1bQS1aYS16MC05XyRdKyAqOi9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLy8gY2F0Y2ggbWlkZGxlIGVsZW1lbnQgb2YgdGhlIHRlcm5hcnkgb3BlcmF0b3JcbiAgICAgICAgICAgICAgICAvLyB0byBhdm9pZCBoaWdobGlnaHQgaXQgYXMgYSBsYWJlbCwgbmFtZWQgcGFyYW1ldGVyLCBvciBtYXAga2V5XG4gICAgICAgICAgICAgICAgYmVnaW46IC9cXD8vLCBlbmQ6IC9cXDovXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIGhpZ2hsaWdodCBsYWJlbGVkIHN0YXRlbWVudHNcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLCBiZWdpbjogJ15cXFxccypbQS1aYS16MC05XyRdKzonLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAvI3w8XFwvL1xuICAgIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSAvLyBUT0RPIHN1cHBvcnQgZmlsdGVyIHRhZ3MgbGlrZSA6amF2YXNjcmlwdCwgc3VwcG9ydCBpbmxpbmUgSFRNTFxuZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXiEhISggKDV8MVxcXFwuMXxTdHJpY3R8RnJhbWVzZXR8QmFzaWN8TW9iaWxlfFJERmF8WE1MXFxcXGIuKikpPyQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gRklYTUUgdGhlc2UgY29tbWVudHMgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc3BhbiBpbmRlbnRlZCBsaW5lc1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnXlxcXFxzKighPSN8PSN8LSN8LykuKiQnLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ15cXFxccyooLXw9fCE9KSg/ISMpJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAnXFxcXG4nLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAncnVieSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGFnJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqJScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXHcrJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItaWQnLFxuICAgICAgICAgICAgYmVnaW46ICcjW1xcXFx3LV0rJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItY2xhc3MnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcLltcXFxcdy1dKydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAne1xcXFxzKicsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyp9JyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJzpcXFxcdytcXFxccyo9PicsXG4gICAgICAgICAgICAgICAgZW5kOiAnLFxcXFxzKycsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAnOlxcXFx3KydcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFx3KycsXG4gICAgICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcKFxcXFxzKicsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccypcXFxcKScsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHcrXFxcXHMqPScsXG4gICAgICAgICAgICAgICAgZW5kOiAnXFxcXHMrJyxcbiAgICAgICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcdysnLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFx3KycsXG4gICAgICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqWz1+XVxcXFxzKidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnI3snLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6ICd9JyxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQlVJTFRfSU5TID0geydidWlsdGluLW5hbWUnOiAnZWFjaCBpbiB3aXRoIGlmIGVsc2UgdW5sZXNzIGJpbmRhdHRyIGFjdGlvbiBjb2xsZWN0aW9uIGRlYnVnZ2VyIGxvZyBvdXRsZXQgdGVtcGxhdGUgdW5ib3VuZCB2aWV3IHlpZWxkJ307XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydoYnMnLCAnaHRtbC5oYnMnLCAnaHRtbC5oYW5kbGViYXJzJ10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICBobGpzLkNPTU1FTlQoJ3t7ISgtLSk/JywgJygtLSk/fX0nKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHtbI1xcL10vLCBlbmQ6IC9cXH1cXH0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IC9bYS16QS1aXFwuLV0rLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBCVUlMVF9JTlMsXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHsvLCBlbmQ6IC9cXH1cXH0vLFxuICAgICAgICBrZXl3b3JkczogQlVJTFRfSU5TXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIENPTU1FTlQgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAney0nLFxuICAgICAgICAnLX0nLFxuICAgICAgICB7XG4gICAgICAgICAgY29udGFpbnM6IFsnc2VsZiddXG4gICAgICAgIH1cbiAgICAgIClcbiAgICBdXG4gIH07XG5cbiAgdmFyIFBSQUdNQSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ3stIycsIGVuZDogJyMtfSdcbiAgfTtcblxuICB2YXIgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXiMnLCBlbmQ6ICckJ1xuICB9O1xuXG4gIHZhciBDT05TVFJVQ1RPUiA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHdcXCddKicsIC8vIFRPRE86IG90aGVyIGNvbnN0cnVjdG9ycyAoYnVpbGQtaW4sIGluZml4KS5cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICB2YXIgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgIGlsbGVnYWw6ICdcIicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBSQUdNQSxcbiAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgIHtjbGFzc05hbWU6ICd0eXBlJywgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XSooXFxcXCgoXFxcXC5cXFxcLnwsfFxcXFx3KylcXFxcKSk/J30sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46ICdbX2Etel1bXFxcXHdcXCddKid9KSxcbiAgICAgIENPTU1FTlRcbiAgICBdXG4gIH07XG5cbiAgdmFyIFJFQ09SRCA9IHtcbiAgICBiZWdpbjogJ3snLCBlbmQ6ICd9JyxcbiAgICBjb250YWluczogTElTVC5jb250YWluc1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydocyddLFxuICAgIGtleXdvcmRzOlxuICAgICAgJ2xldCBpbiBpZiB0aGVuIGVsc2UgY2FzZSBvZiB3aGVyZSBkbyBtb2R1bGUgaW1wb3J0IGhpZGluZyAnICtcbiAgICAgICdxdWFsaWZpZWQgdHlwZSBkYXRhIG5ld3R5cGUgZGVyaXZpbmcgY2xhc3MgaW5zdGFuY2UgYXMgZGVmYXVsdCAnICtcbiAgICAgICdpbmZpeCBpbmZpeGwgaW5maXhyIGZvcmVpZ24gZXhwb3J0IGNjYWxsIHN0ZGNhbGwgY3BsdXNwbHVzICcgK1xuICAgICAgJ2p2bSBkb3RuZXQgc2FmZSB1bnNhZmUgZmFtaWx5IGZvcmFsbCBtZG8gcHJvYyByZWMnLFxuICAgIGNvbnRhaW5zOiBbXG5cbiAgICAgIC8vIFRvcC1sZXZlbCBjb25zdHJ1Y3Rpb25zLlxuXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdtb2R1bGUnLCBlbmQ6ICd3aGVyZScsXG4gICAgICAgIGtleXdvcmRzOiAnbW9kdWxlIHdoZXJlJyxcbiAgICAgICAgY29udGFpbnM6IFtMSVNULCBDT01NRU5UXSxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxXXFxcXC58OydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGJpbXBvcnRcXFxcYicsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2ltcG9ydCBxdWFsaWZpZWQgYXMgaGlkaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFtMSVNULCBDT01NRU5UXSxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxXXFxcXC58OydcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ14oXFxcXHMqKT8oY2xhc3N8aW5zdGFuY2UpXFxcXGInLCBlbmQ6ICd3aGVyZScsXG4gICAgICAgIGtleXdvcmRzOiAnY2xhc3MgZmFtaWx5IGluc3RhbmNlIHdoZXJlJyxcbiAgICAgICAgY29udGFpbnM6IFtDT05TVFJVQ1RPUiwgTElTVCwgQ09NTUVOVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihkYXRhfChuZXcpP3R5cGUpXFxcXGInLCBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6ICdkYXRhIGZhbWlseSB0eXBlIG5ld3R5cGUgZGVyaXZpbmcnLFxuICAgICAgICBjb250YWluczogW1BSQUdNQSwgQ09OU1RSVUNUT1IsIExJU1QsIFJFQ09SRCwgQ09NTUVOVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZhdWx0JywgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbQ09OU1RSVUNUT1IsIExJU1QsIENPTU1FTlRdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5maXggaW5maXhsIGluZml4cicsIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW2hsanMuQ19OVU1CRVJfTU9ERSwgQ09NTUVOVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGJmb3JlaWduXFxcXGInLCBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6ICdmb3JlaWduIGltcG9ydCBleHBvcnQgY2NhbGwgc3RkY2FsbCBjcGx1c3BsdXMganZtICcgK1xuICAgICAgICAgICAgICAgICAgJ2RvdG5ldCBzYWZlIHVuc2FmZScsXG4gICAgICAgIGNvbnRhaW5zOiBbQ09OU1RSVUNUT1IsIGhsanMuUVVPVEVfU1RSSU5HX01PREUsIENPTU1FTlRdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIVxcXFwvdXNyXFxcXC9iaW5cXFxcL2VudlxcIHJ1bmhhc2tlbGwnLCBlbmQ6ICckJ1xuICAgICAgfSxcblxuICAgICAgLy8gXCJXaGl0ZXNwYWNlc1wiLlxuXG4gICAgICBQUkFHTUEsXG4gICAgICBQUkVQUk9DRVNTT1IsXG5cbiAgICAgIC8vIExpdGVyYWxzIGFuZCBuYW1lcy5cblxuICAgICAgLy8gVE9ETzogY2hhcmFjdGVycy5cbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogJ15bX2Etel1bXFxcXHdcXCddKid9KSxcblxuICAgICAgQ09NTUVOVCxcblxuICAgICAge2JlZ2luOiAnLT58PC0nfSAvLyBObyBtYXJrdXAsIHJlbGV2YW5jZSBib29zdGVyXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIElERU5UX1JFID0gJ1thLXpBLVpfJF1bYS16QS1aMC05XyRdKic7XG4gIHZhciBJREVOVF9GVU5DX1JFVFVSTl9UWVBFX1JFID0gJyhbKl18W2EtekEtWl8kXVthLXpBLVowLTlfJF0qKSc7XG5cbiAgdmFyIEhBWEVfQkFTSUNfVFlQRVMgPSAnSW50IEZsb2F0IFN0cmluZyBCb29sIER5bmFtaWMgVm9pZCBBcnJheSAnO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydoeCddLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAnYnJlYWsgY2FzZSBjYXN0IGNhdGNoIGNvbnRpbnVlIGRlZmF1bHQgZG8gZHluYW1pYyBlbHNlIGVudW0gZXh0ZXJuICcgK1xuICAgICAgICAgICAgICAgJ2ZvciBmdW5jdGlvbiBoZXJlIGlmIGltcG9ydCBpbiBpbmxpbmUgbmV2ZXIgbmV3IG92ZXJyaWRlIHBhY2thZ2UgcHJpdmF0ZSBnZXQgc2V0ICcgK1xuICAgICAgICAgICAgICAgJ3B1YmxpYyByZXR1cm4gc3RhdGljIHN1cGVyIHN3aXRjaCB0aGlzIHRocm93IHRyYWNlIHRyeSB0eXBlZGVmIHVudHlwZWQgdXNpbmcgdmFyIHdoaWxlICcgK1xuICAgICAgICAgICAgICAgSEFYRV9CQVNJQ19UWVBFUyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAndHJhY2UgdGhpcycsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZSBudWxsIF8nXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyBjbGFzc05hbWU6ICdzdHJpbmcnLCAvLyBpbnRlcnBvbGF0ZS1hYmxlIHN0cmluZ3NcbiAgICAgICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICB7IGNsYXNzTmFtZTogJ3N1YnN0JywgLy8gaW50ZXJwb2xhdGlvblxuICAgICAgICAgICAgYmVnaW46ICdcXFxcJFxcXFx7JywgZW5kOiAnXFxcXH0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGNsYXNzTmFtZTogJ3N1YnN0JywgLy8gaW50ZXJwb2xhdGlvblxuICAgICAgICAgICAgYmVnaW46ICdcXFxcJCcsIGVuZDogJ1xcXFxXfSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHsgY2xhc3NOYW1lOiAnbWV0YScsIC8vIGNvbXBpbGVyIG1ldGFcbiAgICAgICAgYmVnaW46ICdAOicsIGVuZDogJyQnXG4gICAgICB9LFxuICAgICAgeyBjbGFzc05hbWU6ICdtZXRhJywgLy8gY29tcGlsZXIgY29uZGl0aW9uYWxzXG4gICAgICAgIGJlZ2luOiAnIycsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnaWYgZWxzZSBlbHNlaWYgZW5kIGVycm9yJ31cbiAgICAgIH0sXG4gICAgICB7IGNsYXNzTmFtZTogJ3R5cGUnLCAvLyBmdW5jdGlvbiB0eXBlc1xuICAgICAgICBiZWdpbjogJzpbIFxcdF0qJywgZW5kOiAnW15BLVphLXowLTlfIFxcdFxcXFwtPl0nLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgY2xhc3NOYW1lOiAndHlwZScsIC8vIHR5cGVzXG4gICAgICAgIGJlZ2luOiAnOlsgXFx0XSonLCBlbmQ6ICdcXFxcVycsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHsgY2xhc3NOYW1lOiAndHlwZScsIC8vIGluc3RhbnRpYXRpb25cbiAgICAgICAgYmVnaW46ICduZXcgKicsIGVuZDogJ1xcXFxXJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAgeyBjbGFzc05hbWU6ICdjbGFzcycsIC8vIGVudW1zXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdlbnVtJywgZW5kOiAnXFxcXHsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgeyBjbGFzc05hbWU6ICdjbGFzcycsIC8vIGFic3RyYWN0c1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnYWJzdHJhY3QnLCBlbmQ6ICdbXFxcXHskXScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICBiZWdpbjogJ2Zyb20gKycsIGVuZDogJ1xcXFxXJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAndG8gKycsIGVuZDogJ1xcXFxXJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5USVRMRV9NT0RFXG4gICAgICAgIF0sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDogJ2Fic3RyYWN0IGZyb20gdG8nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNsYXNzTmFtZTogJ2NsYXNzJywgLy8gY2xhc3Nlc1xuICAgICAgICBiZWdpbjogJ1xcXFxiKGNsYXNzfGludGVyZmFjZSkgKycsIGVuZDogJ1tcXFxceyRdJywgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiAnY2xhc3MgaW50ZXJmYWNlJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihleHRlbmRzfGltcGxlbWVudHMpICsnLFxuICAgICAgICAgICAga2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLCBlbmQ6ICdcXFxcKCcsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcUycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC88XFwvL1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGxleGVtZXM6IC9bXFx3XFwuX10rLyxcbiAgICBrZXl3b3JkczogJ2dvdG8gZ29zdWIgcmV0dXJuIGJyZWFrIHJlcGVhdCBsb29wIGNvbnRpbnVlIHdhaXQgYXdhaXQgZGltIHNkaW0gZm9yZWFjaCBkaW10eXBlIGR1cCBkdXBwdHIgZW5kIHN0b3AgbmV3bW9kIGRlbG1vZCBtcmVmIHJ1biBleGdvdG8gb24gbWNhbGwgYXNzZXJ0IGxvZ21lcyBuZXdsYWIgcmVzdW1lIHlpZWxkIG9uZXhpdCBvbmVycm9yIG9ua2V5IG9uY2xpY2sgb25jbWQgZXhpc3QgZGVsZXRlIG1rZGlyIGNoZGlyIGRpcmxpc3QgYmxvYWQgYnNhdmUgYmNvcHkgbWVtZmlsZSBpZiBlbHNlIHBva2Ugd3Bva2UgbHBva2UgZ2V0c3RyIGNoZHBtIG1lbWV4cGFuZCBtZW1jcHkgbWVtc2V0IG5vdGVzZWwgbm90ZWFkZCBub3RlZGVsIG5vdGVsb2FkIG5vdGVzYXZlIHJhbmRvbWl6ZSBub3RldW5zZWwgbm90ZWdldCBzcGxpdCBzdHJyZXAgc2V0ZWFzZSBidXR0b24gY2hnZGlzcCBleGVjIGRpYWxvZyBtbWxvYWQgbW1wbGF5IG1tc3RvcCBtY2kgcHNldCBwZ2V0IHN5c2NvbG9yIG1lcyBwcmludCB0aXRsZSBwb3MgY2lyY2xlIGNscyBmb250IHN5c2ZvbnQgb2Jqc2l6ZSBwaWNsb2FkIGNvbG9yIHBhbGNvbG9yIHBhbGV0dGUgcmVkcmF3IHdpZHRoIGdzZWwgZ2NvcHkgZ3pvb20gZ21vZGUgYm1wc2F2ZSBoc3Zjb2xvciBnZXRrZXkgbGlzdGJveCBjaGtib3ggY29tYm94IGlucHV0IG1lc2JveCBidWZmZXIgc2NyZWVuIGJnc2NyIG1vdXNlIG9ianNlbCBncm9sbCBsaW5lIGNscm9iaiBib3hmIG9ianBybSBvYmptb2RlIHN0aWNrIGdyZWN0IGdyb3RhdGUgZ3NxdWFyZSBncmFkZiBvYmppbWFnZSBvYmpza2lwIG9iamVuYWJsZSBjZWxsb2FkIGNlbGRpdiBjZWxwdXQgbmV3Y29tIHF1ZXJ5Y29tIGRlbGNvbSBjbnZzdG93IGNvbXJlcyBheG9iaiB3aW5vYmogc2VuZG1zZyBjb21ldmVudCBjb21ldmFyZyBzYXJyYXljb252IGNhbGxmdW5jIGNudnd0b3MgY29tZXZkaXNwIGxpYnB0ciBzeXN0ZW0gaHNwc3RhdCBoc3B2ZXIgc3RhdCBjbnQgZXJyIHN0cnNpemUgbG9vcGxldiBzdWJsZXYgaXBhcmFtIHdwYXJhbSBscGFyYW0gcmVmc3RyIHJlZmR2YWwgaW50IHJuZCBzdHJsZW4gbGVuZ3RoIGxlbmd0aDIgbGVuZ3RoMyBsZW5ndGg0IHZhcnR5cGUgZ2V0dGltZSBwZWVrIHdwZWVrIGxwZWVrIHZhcnB0ciB2YXJ1c2Ugbm90ZWluZm8gaW5zdHIgYWJzIGxpbWl0IGdldGVhc2Ugc3RyIHN0cm1pZCBzdHJmIGdldHBhdGggc3RydHJpbSBzaW4gY29zIHRhbiBhdGFuIHNxcnQgZG91YmxlIGFic2YgZXhwZiBsb2dmIGxpbWl0ZiBwb3dmIGdldGVhc2VmIG1vdXNleCBtb3VzZXkgbW91c2V3IGh3bmQgaGluc3RhbmNlIGhkYyBnaW5mbyBvYmppbmZvIGRpcmluZm8gc3lzaW5mbyB0aGlzbW9kIF9faHNwdmVyX18gX19oc3AzMF9fIF9fZGF0ZV9fIF9fdGltZV9fIF9fbGluZV9fIF9fZmlsZV9fIF9kZWJ1ZyBfX2hzcGRlZl9fIGFuZCBvciB4b3Igbm90IHNjcmVlbl9ub3JtYWwgc2NyZWVuX3BhbGV0dGUgc2NyZWVuX2hpZGUgc2NyZWVuX2ZpeGVkc2l6ZSBzY3JlZW5fdG9vbCBzY3JlZW5fZnJhbWUgZ21vZGVfZ2RpIGdtb2RlX21lbSBnbW9kZV9yZ2IwIGdtb2RlX2FscGhhIGdtb2RlX3JnYjBhbHBoYSBnbW9kZV9hZGQgZ21vZGVfc3ViIGdtb2RlX3BpeGVsYSBnaW5mb19teCBnaW5mb19teSBnaW5mb19hY3QgZ2luZm9fc2VsIGdpbmZvX3d4MSBnaW5mb193eTEgZ2luZm9fd3gyIGdpbmZvX3d5MiBnaW5mb192eCBnaW5mb192eSBnaW5mb19zaXpleCBnaW5mb19zaXpleSBnaW5mb193aW54IGdpbmZvX3dpbnkgZ2luZm9fbWVzeCBnaW5mb19tZXN5IGdpbmZvX3IgZ2luZm9fZyBnaW5mb19iIGdpbmZvX3BhbHVzZSBnaW5mb19kaXNweCBnaW5mb19kaXNweSBnaW5mb19jeCBnaW5mb19jeSBnaW5mb19pbnRpZCBnaW5mb19uZXdpZCBnaW5mb19zeCBnaW5mb19zeSBvYmppbmZvX21vZGUgb2JqaW5mb19ibXNjciBvYmppbmZvX2h3bmQgbm90ZW1heCBub3Rlc2l6ZSBkaXJfY3VyIGRpcl9leGUgZGlyX3dpbiBkaXJfc3lzIGRpcl9jbWRsaW5lIGRpcl9kZXNrdG9wIGRpcl9teWRvYyBkaXJfdHYgZm9udF9ub3JtYWwgZm9udF9ib2xkIGZvbnRfaXRhbGljIGZvbnRfdW5kZXJsaW5lIGZvbnRfc3RyaWtlb3V0IGZvbnRfYW50aWFsaWFzIG9iam1vZGVfbm9ybWFsIG9iam1vZGVfZ3VpZm9udCBvYmptb2RlX3VzZWZvbnQgZ3NxdWFyZV9ncmFkIG1zZ290aGljIG1zbWluY2hvIGRvIHVudGlsIHdoaWxlIHdlbmQgZm9yIG5leHQgX2JyZWFrIF9jb250aW51ZSBzd2l0Y2ggY2FzZSBkZWZhdWx0IHN3YnJlYWsgc3dlbmQgZGRpbSBsZGltIGFsbG9jIG1fcGkgcmFkMmRlZyBkZWcycmFkIGVhc2VfbGluZWFyIGVhc2VfcXVhZF9pbiBlYXNlX3F1YWRfb3V0IGVhc2VfcXVhZF9pbm91dCBlYXNlX2N1YmljX2luIGVhc2VfY3ViaWNfb3V0IGVhc2VfY3ViaWNfaW5vdXQgZWFzZV9xdWFydGljX2luIGVhc2VfcXVhcnRpY19vdXQgZWFzZV9xdWFydGljX2lub3V0IGVhc2VfYm91bmNlX2luIGVhc2VfYm91bmNlX291dCBlYXNlX2JvdW5jZV9pbm91dCBlYXNlX3NoYWtlX2luIGVhc2Vfc2hha2Vfb3V0IGVhc2Vfc2hha2VfaW5vdXQgZWFzZV9sb29wJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG5cbiAgICAgIHtcbiAgICAgICAgLy8gbXVsdGktbGluZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICd7XCInLCBlbmQ6ICdcIn0nLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH0sXG5cbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywge3JlbGV2YW5jZTogMH0pLFxuXG4gICAgICB7XG4gICAgICAgIC8vIHByZS1wcm9jZXNzb3JcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnYWRkaW9uIGNmdW5jIGNtZCBjbXBvcHQgY29tZnVuYyBjb25zdCBkZWZjZnVuYyBkZWZmdW5jIGRlZmluZSBlbHNlIGVuZGlmIGVudW0gZXBhY2sgZnVuYyBnbG9iYWwgaWYgaWZkZWYgaWZuZGVmIGluY2x1ZGUgbW9kY2Z1bmMgbW9kZnVuYyBtb2Rpbml0IG1vZHRlcm0gbW9kdWxlIHBhY2sgcGFja29wdCByZWdjbWQgcnVudGltZSB1bmRlZiB1c2Vjb20gdXNlbGliJ30sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtjbGFzc05hbWU6ICdtZXRhLXN0cmluZyd9KSxcbiAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIC8vIGxhYmVsXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXlxcXFwqKFxcXFx3K3xAKSdcbiAgICAgIH0sXG5cbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQlVJTFRfSU5TID0gJ2FjdGlvbiBjb2xsZWN0aW9uIGNvbXBvbmVudCBjb25jYXQgZGVidWdnZXIgZWFjaCBlYWNoLWluIGVsc2UgZ2V0IGhhc2ggaWYgaW5wdXQgbGluay10byBsb2MgbG9nIG11dCBvdXRsZXQgcGFydGlhbCBxdWVyeS1wYXJhbXMgcmVuZGVyIHRleHRhcmVhIHVuYm91bmQgdW5sZXNzIHdpdGggeWllbGQgdmlldyc7XG5cbiAgdmFyIEFUVFJfQVNTSUdOTUVOVCA9IHtcbiAgICBpbGxlZ2FsOiAvXFx9XFx9LyxcbiAgICBiZWdpbjogL1thLXpBLVowLTlfXSs9LyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsIGJlZ2luOiAvW2EtekEtWjAtOV9dKy9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgdmFyIFNVQl9FWFBSID0ge1xuICAgIGlsbGVnYWw6IC9cXH1cXH0vLFxuICAgIGJlZ2luOiAvXFwpLywgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1thLXpBLVpcXC5cXC1dKy8sXG4gICAgICAgIGtleXdvcmRzOiB7YnVpbHRfaW46IEJVSUxUX0lOU30sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLCByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHZhciBUQUdfSU5OQVJEUyA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSwgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiB7a2V5d29yZDogJ2FzJywgYnVpbHRfaW46IEJVSUxUX0lOU30sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBBVFRSX0FTU0lHTk1FTlQsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgne3shKC0tKT8nLCAnKC0tKT99fScpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1xce1sjXFwvXS8sIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgICAgICAgICBiZWdpbjogL1thLXpBLVpcXC5cXC1dKy8sXG4gICAgICAgICAgICBrZXl3b3JkczogeydidWlsdGluLW5hbWUnOiBCVUlMVF9JTlN9LFxuICAgICAgICAgICAgc3RhcnRzOiBUQUdfSU5OQVJEU1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xce1xce1thLXpBLVpdW2EtekEtWlxcLV0rLywgZW5kOiAvXFx9XFx9LyxcbiAgICAgICAga2V5d29yZHM6IHtrZXl3b3JkOiAnYXMnLCBidWlsdF9pbjogQlVJTFRfSU5TfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgVkVSU0lPTiA9ICdIVFRQL1swLTlcXFxcLl0rJztcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ2h0dHBzJ10sXG4gICAgaWxsZWdhbDogJ1xcXFxTJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ14nICsgVkVSU0lPTiwgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbe2NsYXNzTmFtZTogJ251bWJlcicsIGJlZ2luOiAnXFxcXGJcXFxcZHszfVxcXFxiJ31dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ15bQS1aXSsgKC4qPykgJyArIFZFUlNJT04gKyAnJCcsIHJldHVybkJlZ2luOiB0cnVlLCBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICcgJywgZW5kOiAnICcsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBWRVJTSU9OXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnW0EtWl0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHcnLCBlbmQ6ICc6ICcsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbnxcXFxcc3w9JyxcbiAgICAgICAgc3RhcnRzOiB7ZW5kOiAnJCcsIHJlbGV2YW5jZTogMH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXG5cXFxcbicsXG4gICAgICAgIHN0YXJ0czoge3N1Ykxhbmd1YWdlOiBbXSwgZW5kc1dpdGhQYXJlbnQ6IHRydWV9XG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIGtleXdvcmRzID0ge1xuICAgICdidWlsdGluLW5hbWUnOlxuICAgICAgLy8ga2V5d29yZHNcbiAgICAgICchPSAlICU9ICYgJj0gKiAqKiAqKj0gKj0gKm1hcCAnICtcbiAgICAgICcrICs9ICwgLS1idWlsZC1jbGFzcy0tIC0taW1wb3J0LS0gLT0gLiAvIC8vIC8vPSAnICtcbiAgICAgICcvPSA8IDw8IDw8PSA8PSA9ID4gPj0gPj4gPj49ICcgK1xuICAgICAgJ0AgQD0gXiBePSBhYnMgYWNjdW11bGF0ZSBhbGwgYW5kIGFueSBhcC1jb21wb3NlICcgK1xuICAgICAgJ2FwLWRvdGltZXMgYXAtZWFjaCBhcC1lYWNoLXdoaWxlIGFwLWZpbHRlciBhcC1maXJzdCBhcC1pZiBhcC1sYXN0IGFwLW1hcCBhcC1tYXAtd2hlbiBhcC1waXBlICcgK1xuICAgICAgJ2FwLXJlZHVjZSBhcC1yZWplY3QgYXBwbHkgYXMtPiBhc2NpaSBhc3NlcnQgYXNzb2MgYmluIGJyZWFrIGJ1dGxhc3QgJyArXG4gICAgICAnY2FsbGFibGUgY2FsbGluZy1tb2R1bGUtbmFtZSBjYXIgY2FzZSBjZHIgY2hhaW4gY2hyIGNvbGw/IGNvbWJpbmF0aW9ucyBjb21waWxlICcgK1xuICAgICAgJ2NvbXByZXNzIGNvbmQgY29ucyBjb25zPyBjb250aW51ZSBjb3VudCBjdXJyeSBjdXQgY3ljbGUgZGVjICcgK1xuICAgICAgJ2RlZiBkZWZhdWx0LW1ldGhvZCBkZWZjbGFzcyBkZWZtYWNybyBkZWZtYWNyby1hbGlhcyBkZWZtYWNyby9nISBkZWZtYWluIGRlZm1ldGhvZCBkZWZtdWx0aSBkZWZuICcgK1xuICAgICAgJ2RlZm4tYWxpYXMgZGVmbmMgZGVmbnIgZGVmcmVhZGVyIGRlZnNlcSBkZWwgZGVsYXR0ciBkZWxldGUtcm91dGUgZGljdC1jb21wIGRpciAnICtcbiAgICAgICdkaXNhc3NlbWJsZSBkaXNwYXRjaC1yZWFkZXItbWFjcm8gZGlzdGluY3QgZGl2bW9kIGRvIGRvdG8gZHJvcCBkcm9wLWxhc3QgZHJvcC13aGlsZSBlbXB0eT8gJyArXG4gICAgICAnZW5kLXNlcXVlbmNlIGV2YWwgZXZhbC1hbmQtY29tcGlsZSBldmFsLXdoZW4tY29tcGlsZSBldmVuPyBldmVyeT8gZXhjZXB0IGV4ZWMgZmlsdGVyIGZpcnN0ICcgK1xuICAgICAgJ2ZsYXR0ZW4gZmxvYXQ/IGZuIGZuYyBmbnIgZm9yIGZvciogZm9ybWF0IGZyYWN0aW9uIGdlbmV4cHIgJyArXG4gICAgICAnZ2Vuc3ltIGdldCBnZXRhdHRyIGdsb2JhbCBnbG9iYWxzIGdyb3VwLWJ5IGhhc2F0dHIgaGFzaCBoZXggaWQgJyArXG4gICAgICAnaWRlbnRpdHkgaWYgaWYqIGlmLW5vdCBpZi1weXRob24yIGltcG9ydCBpbiBpbmMgaW5wdXQgaW5zdGFuY2U/ICcgK1xuICAgICAgJ2ludGVnZXIgaW50ZWdlci1jaGFyPyBpbnRlZ2VyPyBpbnRlcmxlYXZlIGludGVycG9zZSBpcyBpcy1jb2xsIGlzLWNvbnMgaXMtZW1wdHkgaXMtZXZlbiAnICtcbiAgICAgICdpcy1ldmVyeSBpcy1mbG9hdCBpcy1pbnN0YW5jZSBpcy1pbnRlZ2VyIGlzLWludGVnZXItY2hhciBpcy1pdGVyYWJsZSBpcy1pdGVyYXRvciBpcy1rZXl3b3JkIGlzLW5lZyBpcy1ub25lICcgK1xuICAgICAgJ2lzLW5vdCBpcy1udW1lcmljIGlzLW9kZCBpcy1wb3MgaXMtc3RyaW5nIGlzLXN5bWJvbCBpcy16ZXJvIGlzaW5zdGFuY2UgaXNsaWNlIGlzc3ViY2xhc3MgJyArXG4gICAgICAnaXRlciBpdGVyYWJsZT8gaXRlcmF0ZSBpdGVyYXRvcj8ga2V5d29yZCBrZXl3b3JkPyBsYW1iZGEgbGFzdCBsZW4gbGV0ICcgK1xuICAgICAgJ2xpZiBsaWYtbm90IGxpc3QqIGxpc3QtY29tcCBsb2NhbHMgbG9vcCBtYWNyby1lcnJvciBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZC0xIG1hY3JvZXhwYW5kLWFsbCAnICtcbiAgICAgICdtYXAgbWF4IG1lcmdlLXdpdGggbWV0aG9kLWRlY29yYXRvciBtaW4gbXVsdGktZGVjb3JhdG9yIG11bHRpY29tYmluYXRpb25zIG5hbWUgbmVnPyBuZXh0ICcgK1xuICAgICAgJ25vbmU/IG5vbmxvY2FsIG5vdCBub3QtaW4gbm90PyBudGggbnVtZXJpYz8gb2N0IG9kZD8gb3BlbiAnICtcbiAgICAgICdvciBvcmQgcGFydGl0aW9uIHBlcm11dGF0aW9ucyBwb3M/IHBvc3Qtcm91dGUgcG9zdHdhbGsgcG93IHByZXdhbGsgcHJpbnQgJyArXG4gICAgICAncHJvZHVjdCBwcm9maWxlL2NhbGxzIHByb2ZpbGUvY3B1IHB1dC1yb3V0ZSBxdWFzaXF1b3RlIHF1b3RlIHJhaXNlIHJhbmdlIHJlYWQgcmVhZC1zdHIgJyArXG4gICAgICAncmVjdXJzaXZlLXJlcGxhY2UgcmVkdWNlIHJlbW92ZSByZXBlYXQgcmVwZWF0ZWRseSByZXByIHJlcXVpcmUgcmVzdCByb3VuZCByb3V0ZSAnICtcbiAgICAgICdyb3V0ZS13aXRoLW1ldGhvZHMgcndtIHNlY29uZCBzZXEgc2V0LWNvbXAgc2V0YXR0ciBzZXR2IHNvbWUgc29ydGVkIHN0cmluZyAnICtcbiAgICAgICdzdHJpbmc/IHN1bSBzd2l0Y2ggc3ltYm9sPyB0YWtlIHRha2UtbnRoIHRha2Utd2hpbGUgdGVlIHRyeSB1bmxlc3MgJyArXG4gICAgICAndW5xdW90ZSB1bnF1b3RlLXNwbGljaW5nIHZhcnMgd2FsayB3aGVuIHdoaWxlIHdpdGggd2l0aCogd2l0aC1kZWNvcmF0b3Igd2l0aC1nZW5zeW1zICcgK1xuICAgICAgJ3hpIHhvciB5aWVsZCB5aWVsZC1mcm9tIHplcm8/IHppcCB6aXAtbG9uZ2VzdCB8IHw9IH4nXG4gICB9O1xuXG4gIHZhciBTWU1CT0xTVEFSVCA9ICdhLXpBLVpfXFxcXC0hLj8rKj08PiYjXFwnJztcbiAgdmFyIFNZTUJPTF9SRSA9ICdbJyArIFNZTUJPTFNUQVJUICsgJ11bJyArIFNZTUJPTFNUQVJUICsgJzAtOS87Ol0qJztcbiAgdmFyIFNJTVBMRV9OVU1CRVJfUkUgPSAnWy0rXT9cXFxcZCsoXFxcXC5cXFxcZCspPyc7XG5cbiAgdmFyIFNIRUJBTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdeIyEnLCBlbmQ6ICckJ1xuICB9O1xuXG4gIHZhciBTWU1CT0wgPSB7XG4gICAgYmVnaW46IFNZTUJPTF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLCBiZWdpbjogU0lNUExFX05VTUJFUl9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7aWxsZWdhbDogbnVsbH0pO1xuICB2YXIgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnOycsXG4gICAgJyQnLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgKTtcbiAgdmFyIExJVEVSQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGIoW1R0XXJ1ZXxbRmZdYWxzZXxuaWx8Tm9uZSlcXGIvXG4gIH07XG4gIHZhciBDT0xMRUNUSU9OID0ge1xuICAgIGJlZ2luOiAnW1xcXFxbXFxcXHtdJywgZW5kOiAnW1xcXFxdXFxcXH1dJ1xuICB9O1xuICB2YXIgSElOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogJ1xcXFxeJyArIFNZTUJPTF9SRVxuICB9O1xuICB2YXIgSElOVF9DT0wgPSBobGpzLkNPTU1FTlQoJ1xcXFxeXFxcXHsnLCAnXFxcXH0nKTtcbiAgdmFyIEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzpdezEsMn0nICsgU1lNQk9MX1JFXG4gIH07XG4gIHZhciBMSVNUID0ge1xuICAgIGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKSdcbiAgfTtcbiAgdmFyIEJPRFkgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIHZhciBOQU1FID0ge1xuICAgIGtleXdvcmRzOiBrZXl3b3JkcyxcbiAgICBsZXhlbWVzOiBTWU1CT0xfUkUsXG4gICAgY2xhc3NOYW1lOiAnbmFtZScsIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgc3RhcnRzOiBCT0RZXG4gIH07XG4gIHZhciBERUZBVUxUX0NPTlRBSU5TID0gW0xJU1QsIFNUUklORywgSElOVCwgSElOVF9DT0wsIENPTU1FTlQsIEtFWSwgQ09MTEVDVElPTiwgTlVNQkVSLCBMSVRFUkFMLCBTWU1CT0xdO1xuXG4gIExJU1QuY29udGFpbnMgPSBbaGxqcy5DT01NRU5UKCdjb21tZW50JywgJycpLCBOQU1FLCBCT0RZXTtcbiAgQk9EWS5jb250YWlucyA9IERFRkFVTFRfQ09OVEFJTlM7XG4gIENPTExFQ1RJT04uY29udGFpbnMgPSBERUZBVUxUX0NPTlRBSU5TO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydoeWxhbmcnXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1NIRUJBTkcsIExJU1QsIFNUUklORywgSElOVCwgSElOVF9DT0wsIENPTU1FTlQsIEtFWSwgQ09MTEVDVElPTiwgTlVNQkVSLCBMSVRFUkFMXVxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgU1RBUlRfQlJBQ0tFVCA9ICdcXFxcWyc7XG4gIHZhciBFTkRfQlJBQ0tFVCA9ICdcXFxcXSc7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydpNyddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIC8vIFNvbWUga2V5d29yZHMgbW9yZSBvciBsZXNzIHVuaXF1ZSB0byBJNywgZm9yIHJlbGV2YW5jZS5cbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIGtpbmQ6XG4gICAgICAgICd0aGluZyByb29tIHBlcnNvbiBtYW4gd29tYW4gYW5pbWFsIGNvbnRhaW5lciAnICtcbiAgICAgICAgJ3N1cHBvcnRlciBiYWNrZHJvcCBkb29yICcgK1xuICAgICAgICAvLyBjaGFyYWN0ZXJpc3RpYzpcbiAgICAgICAgJ3NjZW5lcnkgb3BlbiBjbG9zZWQgbG9ja2VkIGluc2lkZSBnZW5kZXIgJyArXG4gICAgICAgIC8vIHZlcmI6XG4gICAgICAgICdpcyBhcmUgc2F5IHVuZGVyc3RhbmQgJyArXG4gICAgICAgIC8vIG1pc2Mga2V5d29yZDpcbiAgICAgICAgJ2tpbmQgb2YgcnVsZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgICAgICAgICBiZWdpbjogU1RBUlRfQlJBQ0tFVCwgZW5kOiBFTkRfQlJBQ0tFVFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiAvXihWb2x1bWV8Qm9va3xQYXJ0fENoYXB0ZXJ8U2VjdGlvbnxUYWJsZSlcXGIvLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gUnVsZSBkZWZpbml0aW9uXG4gICAgICAgIC8vIFRoaXMgaXMgaGVyZSBmb3IgcmVsZXZhbmNlLlxuICAgICAgICBiZWdpbjogL14oQ2hlY2t8Q2Fycnkgb3V0fFJlcG9ydHxJbnN0ZWFkIG9mfFRvfFJ1bGV8V2hlbnxCZWZvcmV8QWZ0ZXIpXFxiLyxcbiAgICAgICAgZW5kOiAnOicsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy9SdWxlIG5hbWVcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXChUaGlzJywgZW5kOiAnXFxcXCknXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46IFNUQVJUX0JSQUNLRVQsIGVuZDogRU5EX0JSQUNLRVQsXG4gICAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiBcInN0cmluZ1wiLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogXCInJydcIiwgZW5kOiBcIicnJ1wiLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LCB7XG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJywgZW5kOiAnXCJcIlwiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSwge1xuICAgICAgICBiZWdpbjogJ1wiJywgZW5kOiAnXCInXG4gICAgICB9LCB7XG4gICAgICAgIGJlZ2luOiBcIidcIiwgZW5kOiBcIidcIlxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3RvbWwnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoJzsnLCAnJCcpLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiAvXlxccypcXFsrLywgZW5kOiAvXFxdKy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXlthLXowLTlcXFtcXF1fLV0rXFxzKj1cXHMqLywgZW5kOiAnJCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgYmVnaW46IC9bYS16MC05XFxbXFxdXy1dKy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPS8sIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAvXFxib258b2ZmfHRydWV8ZmFsc2V8eWVzfG5vXFxiL1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7YmVnaW46IC9cXCRbXFx3XFxkXCJdW1xcd1xcZF9dKi99LFxuICAgICAgICAgICAgICAgICAge2JlZ2luOiAvXFwkXFx7KC4qPyl9L31cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYmVnaW46IC8oW1xcK1xcLV0rKT9bXFxkXStfW1xcZF9dKy9cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknXG4gIH07XG5cbiAgdmFyIEZfS0VZV09SRFMgPSB7XG4gICAgbGl0ZXJhbDogJy5GYWxzZS4gLlRydWUuJyxcbiAgICBrZXl3b3JkOiAna2luZCBkbyB3aGlsZSBwcml2YXRlIGNhbGwgaW50cmluc2ljIHdoZXJlIGVsc2V3aGVyZSAnICtcbiAgICAgICd0eXBlIGVuZHR5cGUgZW5kbW9kdWxlIGVuZHNlbGVjdCBlbmRpbnRlcmZhY2UgZW5kIGVuZGRvIGVuZGlmIGlmIGZvcmFsbCBlbmRmb3JhbGwgb25seSBjb250YWlucyBkZWZhdWx0IHJldHVybiBzdG9wIHRoZW4gJyArXG4gICAgICAncHVibGljIHN1YnJvdXRpbmV8MTAgZnVuY3Rpb24gcHJvZ3JhbSAuYW5kLiAub3IuIC5ub3QuIC5sZS4gLmVxLiAuZ2UuIC5ndC4gLmx0LiAnICtcbiAgICAgICdnb3RvIHNhdmUgZWxzZSB1c2UgbW9kdWxlIHNlbGVjdCBjYXNlICcgK1xuICAgICAgJ2FjY2VzcyBibGFuayBkaXJlY3QgZXhpc3QgZmlsZSBmbXQgZm9ybSBmb3JtYXR0ZWQgaW9zdGF0IG5hbWUgbmFtZWQgbmV4dHJlYyBudW1iZXIgb3BlbmVkIHJlYyByZWNsIHNlcXVlbnRpYWwgc3RhdHVzIHVuZm9ybWF0dGVkIHVuaXQgJyArXG4gICAgICAnY29udGludWUgZm9ybWF0IHBhdXNlIGN5Y2xlIGV4aXQgJyArXG4gICAgICAnY19udWxsX2NoYXIgY19hbGVydCBjX2JhY2tzcGFjZSBjX2Zvcm1fZmVlZCBmbHVzaCB3YWl0IGRlY2ltYWwgcm91bmQgaW9tc2cgJyArXG4gICAgICAnc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBhYnN0cmFjdCBleHRlbmRzIGltcG9ydCAnICtcbiAgICAgICdub25faW50cmluc2ljIHZhbHVlIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvciBjbGFzcyBhc3NvY2lhdGUgYmluZCBlbnVtICcgK1xuICAgICAgJ2NfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90ICcgK1xuICAgICAgJ2NfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSAnICtcbiAgICAgICdjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0ciAnICtcbiAgICAgICdjX25ld19saW5lIGNfY2FycmlhZ2VfcmV0dXJuIGNfaG9yaXpvbnRhbF90YWIgY192ZXJ0aWNhbF90YWIgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyICcgK1xuICAgICAgJ2NfcHRyIGNfZnVucHRyIGlzb19mb3J0cmFuX2VudiBjaGFyYWN0ZXJfc3RvcmFnZV9zaXplIGVycm9yX3VuaXQgZmlsZV9zdG9yYWdlX3NpemUgaW5wdXRfdW5pdCBpb3N0YXRfZW5kIGlvc3RhdF9lb3IgJyArXG4gICAgICAnbnVtZXJpY19zdG9yYWdlX3NpemUgb3V0cHV0X3VuaXQgY19mX3Byb2Nwb2ludGVyIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgJyArXG4gICAgICAnaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgbmV3dW5pdCBjb250aWd1b3VzIHJlY3Vyc2l2ZSAnICtcbiAgICAgICdwYWQgcG9zaXRpb24gYWN0aW9uIGRlbGltIHJlYWR3cml0ZSBlb3IgYWR2YW5jZSBubWwgaW50ZXJmYWNlIHByb2NlZHVyZSBuYW1lbGlzdCBpbmNsdWRlIHNlcXVlbmNlIGVsZW1lbnRhbCBwdXJlICcgK1xuICAgICAgJ2ludGVnZXIgcmVhbCBjaGFyYWN0ZXIgY29tcGxleCBsb2dpY2FsIGRpbWVuc2lvbiBhbGxvY2F0YWJsZXwxMCBwYXJhbWV0ZXIgJyArXG4gICAgICAnZXh0ZXJuYWwgaW1wbGljaXR8MTAgbm9uZSBkb3VibGUgcHJlY2lzaW9uIGFzc2lnbiBpbnRlbnQgb3B0aW9uYWwgcG9pbnRlciAnICtcbiAgICAgICd0YXJnZXQgaW4gb3V0IGNvbW1vbiBlcXVpdmFsZW5jZSBkYXRhICcgK1xuICAgICAgLy8gSVJQRjkwIHNwZWNpYWwga2V5d29yZHNcbiAgICAgICdiZWdpbl9wcm92aWRlciAmYmVnaW5fcHJvdmlkZXIgZW5kX3Byb3ZpZGVyIGJlZ2luX3NoZWxsIGVuZF9zaGVsbCBiZWdpbl90ZW1wbGF0ZSBlbmRfdGVtcGxhdGUgc3Vic3QgYXNzZXJ0IHRvdWNoICcgK1xuICAgICAgJ3NvZnRfdG91Y2ggcHJvdmlkZSBub19kZXAgZnJlZSBpcnBfaWYgaXJwX2Vsc2UgaXJwX2VuZGlmIGlycF93cml0ZSBpcnBfcmVhZCcsXG4gICAgYnVpbHRfaW46ICdhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50ICcgK1xuICAgICAgJ2Rsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgJyArXG4gICAgICAnYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hICcgK1xuICAgICAgJ2lxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgJyArXG4gICAgICAncW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgJyArXG4gICAgICAnbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgJyArXG4gICAgICAnYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgJyArXG4gICAgICAnZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCAnICtcbiAgICAgICdtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0ICcgK1xuICAgICAgJ3JhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kICcgK1xuICAgICAgJ3NldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgJyArXG4gICAgICAnZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kICcgK1xuICAgICAgJ2llZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgJyArXG4gICAgICAnaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mJyAgK1xuICAgICAgJ2Fjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMiAnICtcbiAgICAgICdhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzICcgK1xuICAgICAgJ2JnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciAnICtcbiAgICAgICdudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UgJyArXG4gICAgICAvLyBJUlBGOTAgc3BlY2lhbCBidWlsdF9pbnNcbiAgICAgICdJUlBfQUxJR04gaXJwX2hlcmUnXG4gIH07XG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogRl9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge2NsYXNzTmFtZTogJ3N0cmluZycsIHJlbGV2YW5jZTogMH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtjbGFzc05hbWU6ICdzdHJpbmcnLCByZWxldmFuY2U6IDB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtJyxcbiAgICAgICAgaWxsZWdhbDogJ1skez1cXFxcbl0nLFxuICAgICAgICBjb250YWluczogW2hsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCBQQVJBTVNdXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7cmVsZXZhbmNlOiAwfSksXG4gICAgICBobGpzLkNPTU1FTlQoJ2JlZ2luX2RvYycsICdlbmRfZG9jJywge3JlbGV2YW5jZTogMTB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICcoPz1cXFxcYnxcXFxcK3xcXFxcLXxcXFxcLikoPz1cXFxcLlxcXFxkfFxcXFxkKSg/OlxcXFxkKyk/KD86XFxcXC4/XFxcXGQqKSg/OltkZV1bKy1dP1xcXFxkKyk/XFxcXGJcXFxcLj8nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgSkFWQV9JREVOVF9SRSA9ICdbXFx1MDBDMC1cXHUwMkI4YS16QS1aXyRdW1xcdTAwQzAtXFx1MDJCOGEtekEtWl8kMC05XSonO1xuICB2YXIgR0VORVJJQ19JREVOVF9SRSA9IEpBVkFfSURFTlRfUkUgKyAnKDwnICsgSkFWQV9JREVOVF9SRSArICcoXFxcXHMqLFxcXFxzKicgKyBKQVZBX0lERU5UX1JFICsgJykqPik/JztcbiAgdmFyIEtFWVdPUkRTID1cbiAgICAnZmFsc2Ugc3luY2hyb25pemVkIGludCBhYnN0cmFjdCBmbG9hdCBwcml2YXRlIGNoYXIgYm9vbGVhbiBzdGF0aWMgbnVsbCBpZiBjb25zdCAnICtcbiAgICAnZm9yIHRydWUgd2hpbGUgbG9uZyBzdHJpY3RmcCBmaW5hbGx5IHByb3RlY3RlZCBpbXBvcnQgbmF0aXZlIGZpbmFsIHZvaWQgJyArXG4gICAgJ2VudW0gZWxzZSBicmVhayB0cmFuc2llbnQgY2F0Y2ggaW5zdGFuY2VvZiBieXRlIHN1cGVyIHZvbGF0aWxlIGNhc2UgYXNzZXJ0IHNob3J0ICcgK1xuICAgICdwYWNrYWdlIGRlZmF1bHQgZG91YmxlIHB1YmxpYyB0cnkgdGhpcyBzd2l0Y2ggY29udGludWUgdGhyb3dzIHByb3RlY3RlZCBwdWJsaWMgcHJpdmF0ZSAnICtcbiAgICAnbW9kdWxlIHJlcXVpcmVzIGV4cG9ydHMgZG8nO1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS83L2RvY3MvdGVjaG5vdGVzL2d1aWRlcy9sYW5ndWFnZS91bmRlcnNjb3Jlcy1saXRlcmFscy5odG1sXG4gIHZhciBKQVZBX05VTUJFUl9SRSA9ICdcXFxcYicgK1xuICAgICcoJyArXG4gICAgICAnMFtiQl0oWzAxXStbMDFfXStbMDFdK3xbMDFdKyknICsgLy8gMGIuLi5cbiAgICAgICd8JyArXG4gICAgICAnMFt4WF0oW2EtZkEtRjAtOV0rW2EtZkEtRjAtOV9dK1thLWZBLUYwLTldK3xbYS1mQS1GMC05XSspJyArIC8vIDB4Li4uXG4gICAgICAnfCcgK1xuICAgICAgJygnICtcbiAgICAgICAgJyhbXFxcXGRdK1tcXFxcZF9dK1tcXFxcZF0rfFtcXFxcZF0rKShcXFxcLihbXFxcXGRdK1tcXFxcZF9dK1tcXFxcZF0rfFtcXFxcZF0rKSk/JyArXG4gICAgICAgICd8JyArXG4gICAgICAgICdcXFxcLihbXFxcXGRdK1tcXFxcZF9dK1tcXFxcZF0rfFtcXFxcZF0rKScgK1xuICAgICAgJyknICtcbiAgICAgICcoW2VFXVstK10/XFxcXGQrKT8nICsgLy8gb2N0YWwsIGRlY2ltYWwsIGZsb2F0XG4gICAgJyknICtcbiAgICAnW2xMZkZdPyc7XG4gIHZhciBKQVZBX05VTUJFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IEpBVkFfTlVNQkVSX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydqc3AnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzxcXC98Iy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2UgOiAwLFxuICAgICAgICAgIGNvbnRhaW5zIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICAgIGJlZ2luOiAvXFx3K0AvLCByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZSA6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbiA6ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLCBlbmQ6IC9bezs9XS8sIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiAnY2xhc3MgaW50ZXJmYWNlJyxcbiAgICAgICAgaWxsZWdhbDogL1s6XCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7YmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cyd9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEV4cHJlc3Npb24ga2V5d29yZHMgcHJldmVudCAna2V5d29yZCBOYW1lKC4uLiknIGZyb20gYmVpbmdcbiAgICAgICAgLy8gcmVjb2duaXplZCBhcyBhIGZ1bmN0aW9uIGRlZmluaXRpb25cbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25ldyB0aHJvdyByZXR1cm4gZWxzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJygnICsgR0VORVJJQ19JREVOVF9SRSArICdcXFxccyspKycgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLCByZXR1cm5CZWdpbjogdHJ1ZSwgZW5kOiAvW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccypcXFxcKCcsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIEpBVkFfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIElERU5UX1JFID0gJ1tBLVphLXokX11bMC05QS1aYS16JF9dKic7XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2luIG9mIGlmIGZvciB3aGlsZSBmaW5hbGx5IHZhciBuZXcgZnVuY3Rpb24gZG8gcmV0dXJuIHZvaWQgZWxzZSBicmVhayBjYXRjaCAnICtcbiAgICAgICdpbnN0YW5jZW9mIHdpdGggdGhyb3cgY2FzZSBkZWZhdWx0IHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlICcgK1xuICAgICAgJ2xldCB5aWVsZCBjb25zdCBleHBvcnQgc3VwZXIgZGVidWdnZXIgYXMgYXN5bmMgYXdhaXQgc3RhdGljICcgK1xuICAgICAgLy8gRUNNQVNjcmlwdCA2IG1vZHVsZXMgaW1wb3J0XG4gICAgICAnaW1wb3J0IGZyb20gYXMnXG4gICAgLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCBOYU4gSW5maW5pdHknLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ2V2YWwgaXNGaW5pdGUgaXNOYU4gcGFyc2VGbG9hdCBwYXJzZUludCBkZWNvZGVVUkkgZGVjb2RlVVJJQ29tcG9uZW50ICcgK1xuICAgICAgJ2VuY29kZVVSSSBlbmNvZGVVUklDb21wb25lbnQgZXNjYXBlIHVuZXNjYXBlIE9iamVjdCBGdW5jdGlvbiBCb29sZWFuIEVycm9yICcgK1xuICAgICAgJ0V2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciAnICtcbiAgICAgICdUeXBlRXJyb3IgVVJJRXJyb3IgTnVtYmVyIE1hdGggRGF0ZSBTdHJpbmcgUmVnRXhwIEFycmF5IEZsb2F0MzJBcnJheSAnICtcbiAgICAgICdGbG9hdDY0QXJyYXkgSW50MTZBcnJheSBJbnQzMkFycmF5IEludDhBcnJheSBVaW50MTZBcnJheSBVaW50MzJBcnJheSAnICtcbiAgICAgICdVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSAnICtcbiAgICAgICdtb2R1bGUgY29uc29sZSB3aW5kb3cgZG9jdW1lbnQgU3ltYm9sIFNldCBNYXAgV2Vha1NldCBXZWFrTWFwIFByb3h5IFJlZmxlY3QgJyArXG4gICAgICAnUHJvbWlzZSdcbiAgfTtcbiAgdmFyIEVYUFJFU1NJT05TO1xuICB2YXIgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW2JCXVswMV0rKScgfSxcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW29PXVswLTddKyknIH0sXG4gICAgICB7IGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXCRcXFxceycsIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtdICAvLyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIHZhciBURU1QTEFURV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ2AnLCBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zID0gW1xuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICBOVU1CRVIsXG4gICAgaGxqcy5SRUdFWFBfTU9ERVxuICBdXG4gIHZhciBQQVJBTVNfQ09OVEFJTlMgPSBTVUJTVC5jb250YWlucy5jb25jYXQoW1xuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFXG4gIF0pO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydqcycsICdqc3gnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgIGJlZ2luOiAvXlxccypbJ1wiXXVzZSAoc3RyaWN0fGFzbSlbJ1wiXS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL14jIS8sIGVuZDogLyQvXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBOVU1CRVIsXG4gICAgICB7IC8vIG9iamVjdCBhdHRyIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogL1t7LF1cXHMqLywgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSArICdcXFxccyo6JywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW3tjbGFzc05hbWU6ICdhdHRyJywgYmVnaW46IElERU5UX1JFLCByZWxldmFuY2U6IDB9XVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gXCJ2YWx1ZVwiIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogJygnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxcXGIpXFxcXHMqJyxcbiAgICAgICAga2V5d29yZHM6ICdyZXR1cm4gdGhyb3cgY2FzZScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5SRUdFWFBfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbjogJyhcXFxcKC4qP1xcXFwpfCcgKyBJREVOVF9SRSArICcpXFxcXHMqPT4nLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxzKj0+JyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gRTRYIC8gSlNYXG4gICAgICAgICAgICBiZWdpbjogLzwvLCBlbmQ6IC8oXFwvXFx3K3xcXHcrXFwvKT4vLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge2JlZ2luOiAvPFxcdytcXHMqXFwvPi8sIHNraXA6IHRydWV9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC88XFx3Ky8sIGVuZDogLyhcXC9cXHcrfFxcdytcXC8pPi8sIHNraXA6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtiZWdpbjogLzxcXHcrXFxzKlxcLz4vLCBza2lwOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAgICdzZWxmJ1xuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsIGVuZDogL1xcey8sIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge2JlZ2luOiBJREVOVF9SRX0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFBBUkFNU19DT05UQUlOU1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogL1xcW3wlL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfSxcbiAgICAgIGhsanMuTUVUSE9EX0dVQVJELFxuICAgICAgeyAvLyBFUzYgY2xhc3NcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLCBlbmQ6IC9bezs9XS8sIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6IC9bOlwiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge2JlZ2luS2V5d29yZHM6ICdleHRlbmRzJ30sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NvbnN0cnVjdG9yJywgZW5kOiAvXFx7LywgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogLyMoPyEhKS9cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaGxqcykge1xuICB2YXIgUEFSQU0gPSB7XG4gICAgYmVnaW46IC9bXFx3LV0rICo9LywgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbe2NsYXNzTmFtZTogJ2F0dHInLCBiZWdpbjogL1tcXHctXSsvfV1cbiAgfTtcbiAgdmFyIFBBUkFNU0JMT0NLID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFtQQVJBTV0sXG4gICAgcmVsZXZhbmNlIDogMFxuICB9O1xuICB2YXIgT1BFUkFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogLzpbXFx3XFwtLl0rLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIFBBVEggPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcQigoW1xcLy5dKVtcXHdcXC0uXFwvPV0rKSsvLFxuICB9O1xuICB2YXIgQ09NTUFORF9QQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogLy0tW1xcd1xcLT1cXC9dKy8sXG4gIH07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWyd3aWxkZmx5LWNsaSddLFxuICAgIGxleGVtZXM6ICdbYS16XFwtXSsnLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAnYWxpYXMgYmF0Y2ggY2QgY2xlYXIgY29tbWFuZCBjb25uZWN0IGNvbm5lY3Rpb24tZmFjdG9yeSBjb25uZWN0aW9uLWluZm8gZGF0YS1zb3VyY2UgZGVwbG95ICcgK1xuICAgICAgJ2RlcGxveW1lbnQtaW5mbyBkZXBsb3ltZW50LW92ZXJsYXkgZWNobyBlY2hvLWRtciBoZWxwIGhpc3RvcnkgaWYgamRiYy1kcml2ZXItaW5mbyBqbXMtcXVldWV8MjAgam1zLXRvcGljfDIwIGxzICcgK1xuICAgICAgJ3BhdGNoIHB3ZCBxdWl0IHJlYWQtYXR0cmlidXRlIHJlYWQtb3BlcmF0aW9uIHJlbG9hZCByb2xsb3V0LXBsYW4gcnVuLWJhdGNoIHNldCBzaHV0ZG93biB0cnkgdW5hbGlhcyAnICtcbiAgICAgICd1bmRlcGxveSB1bnNldCB2ZXJzaW9uIHhhLWRhdGEtc291cmNlJywgLy8gbW9kdWxlXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIENPTU1BTkRfUEFSQU1TLFxuICAgICAgT1BFUkFUSU9OLFxuICAgICAgUEFUSCxcbiAgICAgIFBBUkFNU0JMT0NLXG4gICAgXVxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgTElURVJBTFMgPSB7bGl0ZXJhbDogJ3RydWUgZmFsc2UgbnVsbCd9O1xuICB2YXIgVFlQRVMgPSBbXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgXTtcbiAgdmFyIFZBTFVFX0NPTlRBSU5FUiA9IHtcbiAgICBlbmQ6ICcsJywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFRZUEVTLFxuICAgIGtleXdvcmRzOiBMSVRFUkFMU1xuICB9O1xuICB2YXIgT0JKRUNUID0ge1xuICAgIGJlZ2luOiAneycsIGVuZDogJ30nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogL1wiLywgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV0sXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICB9LFxuICAgICAgaGxqcy5pbmhlcml0KFZBTFVFX0NPTlRBSU5FUiwge2JlZ2luOiAvOi99KVxuICAgIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxTJ1xuICB9O1xuICB2YXIgQVJSQVkgPSB7XG4gICAgYmVnaW46ICdcXFxcWycsIGVuZDogJ1xcXFxdJyxcbiAgICBjb250YWluczogW2hsanMuaW5oZXJpdChWQUxVRV9DT05UQUlORVIpXSwgLy8gaW5oZXJpdCBpcyBhIHdvcmthcm91bmQgZm9yIGEgYnVnIHRoYXQgbWFrZXMgc2hhcmVkIG1vZGVzIHdpdGggZW5kc1dpdGhQYXJlbnQgY29tcGlsZSBvbmx5IHRoZSBlbmRpbmcgb2Ygb25lIG9mIHRoZSBwYXJlbnRzXG4gICAgaWxsZWdhbDogJ1xcXFxTJ1xuICB9O1xuICBUWVBFUy5zcGxpY2UoVFlQRVMubGVuZ3RoLCAwLCBPQkpFQ1QsIEFSUkFZKTtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogVFlQRVMsXG4gICAga2V5d29yZHM6IExJVEVSQUxTLFxuICAgIGlsbGVnYWw6ICdcXFxcUydcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIC8vIFNpbmNlIHRoZXJlIGFyZSBudW1lcm91cyBzcGVjaWFsIG5hbWVzIGluIEp1bGlhLCBpdCBpcyB0b28gbXVjaCB0cm91YmxlXG4gIC8vIHRvIG1haW50YWluIHRoZW0gYnkgaGFuZC4gSGVuY2UgdGhlc2UgbmFtZXMgKGkuZS4ga2V5d29yZHMsIGxpdGVyYWxzIGFuZFxuICAvLyBidWlsdC1pbnMpIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEp1bGlhIHYwLjYgaXRzZWxmIHRocm91Z2hcbiAgLy8gdGhlIGZvbGxvd2luZyBzY3JpcHRzIGZvciBlYWNoLlxuXG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICAvLyAjIGtleXdvcmQgZ2VuZXJhdG9yLCBtdWx0aS13b3JkIGtleXdvcmRzIGhhbmRsZWQgbWFudWFsbHkgYmVsb3dcbiAgICAvLyBmb3JlYWNoKHByaW50bG4sIFtcImluXCIsIFwiaXNhXCIsIFwid2hlcmVcIl0pXG4gICAgLy8gZm9yIGt3IGluIEJhc2UuUkVQTENvbXBsZXRpb25zLmNvbXBsZXRlX2tleXdvcmQoXCJcIilcbiAgICAvLyAgICAgaWYgIShjb250YWlucyhrdywgXCIgXCIpIHx8IGt3ID09IFwic3RydWN0XCIpXG4gICAgLy8gICAgICAgICBwcmludGxuKGt3KVxuICAgIC8vICAgICBlbmRcbiAgICAvLyBlbmRcbiAgICBrZXl3b3JkOlxuICAgICAgJ2luIGlzYSB3aGVyZSAnICtcbiAgICAgICdiYXJlbW9kdWxlIGJlZ2luIGJyZWFrIGNhdGNoIGNjYWxsIGNvbnN0IGNvbnRpbnVlIGRvIGVsc2UgZWxzZWlmIGVuZCBleHBvcnQgZmFsc2UgZmluYWxseSBmb3IgZnVuY3Rpb24gJyArXG4gICAgICAnZ2xvYmFsIGlmIGltcG9ydCBpbXBvcnRhbGwgbGV0IGxvY2FsIG1hY3JvIG1vZHVsZSBxdW90ZSByZXR1cm4gdHJ1ZSB0cnkgdXNpbmcgd2hpbGUgJyArXG4gICAgICAvLyBsZWdhY3ksIHRvIGJlIGRlcHJlY2F0ZWQgaW4gdGhlIG5leHQgcmVsZWFzZVxuICAgICAgJ3R5cGUgaW1tdXRhYmxlIGFic3RyYWN0IGJpdHN0eXBlIHR5cGVhbGlhcyAnLFxuXG4gICAgLy8gIyBsaXRlcmFsIGdlbmVyYXRvclxuICAgIC8vIHByaW50bG4oXCJ0cnVlXCIpXG4gICAgLy8gcHJpbnRsbihcImZhbHNlXCIpXG4gICAgLy8gZm9yIG5hbWUgaW4gQmFzZS5SRVBMQ29tcGxldGlvbnMuY29tcGxldGlvbnMoXCJcIiwgMClbMV1cbiAgICAvLyAgICAgdHJ5XG4gICAgLy8gICAgICAgICB2ID0gZXZhbChTeW1ib2wobmFtZSkpXG4gICAgLy8gICAgICAgICBpZiAhKHYgaXNhIEZ1bmN0aW9uIHx8IHYgaXNhIFR5cGUgfHwgdiBpc2EgVHlwZVZhciB8fCB2IGlzYSBNb2R1bGUgfHwgdiBpc2EgQ29sb24pXG4gICAgLy8gICAgICAgICAgICAgcHJpbnRsbihuYW1lKVxuICAgIC8vICAgICAgICAgZW5kXG4gICAgLy8gICAgIGVuZFxuICAgIC8vIGVuZFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSAnICtcbiAgICAgICdBUkdTIENfTlVMTCBEZXZOdWxsIEVORElBTl9CT00gRU5WIEkgSW5mIEluZjE2IEluZjMyIEluZjY0IEluc2VydGlvblNvcnQgSlVMSUFfSE9NRSBMT0FEX1BBVEggTWVyZ2VTb3J0ICcgK1xuICAgICAgJ05hTiBOYU4xNiBOYU4zMiBOYU42NCBQUk9HUkFNX0ZJTEUgUXVpY2tTb3J0IFJvdW5kRG93biBSb3VuZEZyb21aZXJvIFJvdW5kTmVhcmVzdCBSb3VuZE5lYXJlc3RUaWVzQXdheSAnICtcbiAgICAgICdSb3VuZE5lYXJlc3RUaWVzVXAgUm91bmRUb1plcm8gUm91bmRVcCBTVERFUlIgU1RESU4gU1RET1VUIFZFUlNJT04gY2F0YWxhbiBlfDAgZXV8MCBldWxlcmdhbW1hIGdvbGRlbiBpbSAnICtcbiAgICAgICdub3RoaW5nIHBpIM6zIM+AIM+GICcsXG5cbiAgICAvLyAjIGJ1aWx0X2luIGdlbmVyYXRvcjpcbiAgICAvLyBmb3IgbmFtZSBpbiBCYXNlLlJFUExDb21wbGV0aW9ucy5jb21wbGV0aW9ucyhcIlwiLCAwKVsxXVxuICAgIC8vICAgICB0cnlcbiAgICAvLyAgICAgICAgIHYgPSBldmFsKFN5bWJvbChuYW1lKSlcbiAgICAvLyAgICAgICAgIGlmIHYgaXNhIFR5cGUgfHwgdiBpc2EgVHlwZVZhclxuICAgIC8vICAgICAgICAgICAgIHByaW50bG4obmFtZSlcbiAgICAvLyAgICAgICAgIGVuZFxuICAgIC8vICAgICBlbmRcbiAgICAvLyBlbmRcbiAgICBidWlsdF9pbjpcbiAgICAgICdBTlkgQWJzdHJhY3RBcnJheSBBYnN0cmFjdENoYW5uZWwgQWJzdHJhY3RGbG9hdCBBYnN0cmFjdE1hdHJpeCBBYnN0cmFjdFJORyBBYnN0cmFjdFNlcmlhbGl6ZXIgQWJzdHJhY3RTZXQgJyArXG4gICAgICAnQWJzdHJhY3RTcGFyc2VBcnJheSBBYnN0cmFjdFNwYXJzZU1hdHJpeCBBYnN0cmFjdFNwYXJzZVZlY3RvciBBYnN0cmFjdFN0cmluZyBBYnN0cmFjdFVuaXRSYW5nZSBBYnN0cmFjdFZlY09yTWF0ICcgK1xuICAgICAgJ0Fic3RyYWN0VmVjdG9yIEFueSBBcmd1bWVudEVycm9yIEFycmF5IEFzc2VydGlvbkVycm9yIEFzc29jaWF0aXZlIEJhc2U2NERlY29kZVBpcGUgQmFzZTY0RW5jb2RlUGlwZSBCaWRpYWdvbmFsICcrXG4gICAgICAnQmlnRmxvYXQgQmlnSW50IEJpdEFycmF5IEJpdE1hdHJpeCBCaXRWZWN0b3IgQm9vbCBCb3VuZHNFcnJvciBCdWZmZXJTdHJlYW0gQ2FjaGluZ1Bvb2wgQ2FwdHVyZWRFeGNlcHRpb24gJyArXG4gICAgICAnQ2FydGVzaWFuSW5kZXggQ2FydGVzaWFuUmFuZ2UgQ2NoYXIgQ2RvdWJsZSBDZmxvYXQgQ2hhbm5lbCBDaGFyIENpbnQgQ2ludG1heF90IENsb25nIENsb25nbG9uZyBDbHVzdGVyTWFuYWdlciAnICtcbiAgICAgICdDbWQgQ29kZUluZm8gQ29sb24gQ29tcGxleCBDb21wbGV4MTI4IENvbXBsZXgzMiBDb21wbGV4NjQgQ29tcG9zaXRlRXhjZXB0aW9uIENvbmRpdGlvbiBDb25qQXJyYXkgQ29uak1hdHJpeCAnICtcbiAgICAgICdDb25qVmVjdG9yIENwdHJkaWZmX3QgQ3Nob3J0IENzaXplX3QgQ3NzaXplX3QgQ3N0cmluZyBDdWNoYXIgQ3VpbnQgQ3VpbnRtYXhfdCBDdWxvbmcgQ3Vsb25nbG9uZyBDdXNob3J0IEN3Y2hhcl90ICcgK1xuICAgICAgJ0N3c3RyaW5nIERhdGFUeXBlIERhdGUgRGF0ZUZvcm1hdCBEYXRlVGltZSBEZW5zZUFycmF5IERlbnNlTWF0cml4IERlbnNlVmVjT3JNYXQgRGVuc2VWZWN0b3IgRGlhZ29uYWwgRGljdCAnICtcbiAgICAgICdEaW1lbnNpb25NaXNtYXRjaCBEaW1zIERpcmVjdEluZGV4U3RyaW5nIERpc3BsYXkgRGl2aWRlRXJyb3IgRG9tYWluRXJyb3IgRU9GRXJyb3IgRWFjaExpbmUgRW51bSBFbnVtZXJhdGUgJyArXG4gICAgICAnRXJyb3JFeGNlcHRpb24gRXhjZXB0aW9uIEV4cG9uZW50aWFsQmFja09mZiBFeHByIEZhY3Rvcml6YXRpb24gRmlsZU1vbml0b3IgRmxvYXQxNiBGbG9hdDMyIEZsb2F0NjQgRnVuY3Rpb24gJyArXG4gICAgICAnRnV0dXJlIEdsb2JhbFJlZiBHb3RvTm9kZSBIVE1MIEhlcm1pdGlhbiBJTyBJT0J1ZmZlciBJT0NvbnRleHQgSU9TdHJlYW0gSVBBZGRyIElQdjQgSVB2NiBJbmRleENhcnRlc2lhbiBJbmRleExpbmVhciAnICtcbiAgICAgICdJbmRleFN0eWxlIEluZXhhY3RFcnJvciBJbml0RXJyb3IgSW50IEludDEyOCBJbnQxNiBJbnQzMiBJbnQ2NCBJbnQ4IEludFNldCBJbnRlZ2VyIEludGVycnVwdEV4Y2VwdGlvbiAnICtcbiAgICAgICdJbnZhbGlkU3RhdGVFeGNlcHRpb24gSXJyYXRpb25hbCBLZXlFcnJvciBMYWJlbE5vZGUgTGluU3BhY2UgTGluZU51bWJlck5vZGUgTG9hZEVycm9yIExvd2VyVHJpYW5ndWxhciBNSU1FIE1hdHJpeCAnICtcbiAgICAgICdNZXJzZW5uZVR3aXN0ZXIgTWV0aG9kIE1ldGhvZEVycm9yIE1ldGhvZFRhYmxlIE1vZHVsZSBOVHVwbGUgTmV3dmFyTm9kZSBOdWxsRXhjZXB0aW9uIE51bGxhYmxlIE51bWJlciBPYmplY3RJZERpY3QgJyArXG4gICAgICAnT3JkaW5hbFJhbmdlIE91dE9mTWVtb3J5RXJyb3IgT3ZlcmZsb3dFcnJvciBQYWlyIFBhcnNlRXJyb3IgUGFydGlhbFF1aWNrU29ydCBQZXJtdXRlZERpbXNBcnJheSBQaXBlICcgK1xuICAgICAgJ1BvbGxpbmdGaWxlV2F0Y2hlciBQcm9jZXNzRXhpdGVkRXhjZXB0aW9uIFB0ciBRdW90ZU5vZGUgUmFuZG9tRGV2aWNlIFJhbmdlIFJhbmdlSW5kZXggUmF0aW9uYWwgUmF3RkQgJyArXG4gICAgICAnUmVhZE9ubHlNZW1vcnlFcnJvciBSZWFsIFJlZW50cmFudExvY2sgUmVmIFJlZ2V4IFJlZ2V4TWF0Y2ggUmVtb3RlQ2hhbm5lbCBSZW1vdGVFeGNlcHRpb24gUmV2U3RyaW5nIFJvdW5kaW5nTW9kZSAnICtcbiAgICAgICdSb3dWZWN0b3IgU1NBVmFsdWUgU2VnbWVudGF0aW9uRmF1bHQgU2VyaWFsaXphdGlvblN0YXRlIFNldCBTaGFyZWRBcnJheSBTaGFyZWRNYXRyaXggU2hhcmVkVmVjdG9yIFNpZ25lZCAnICtcbiAgICAgICdTaW1wbGVWZWN0b3IgU2xvdCBTbG90TnVtYmVyIFNwYXJzZU1hdHJpeENTQyBTcGFyc2VWZWN0b3IgU3RhY2tGcmFtZSBTdGFja092ZXJmbG93RXJyb3IgU3RhY2tUcmFjZSBTdGVwUmFuZ2UgJyArXG4gICAgICAnU3RlcFJhbmdlTGVuIFN0cmlkZWRBcnJheSBTdHJpZGVkTWF0cml4IFN0cmlkZWRWZWNPck1hdCBTdHJpZGVkVmVjdG9yIFN0cmluZyBTdWJBcnJheSBTdWJTdHJpbmcgU3ltVHJpZGlhZ29uYWwgJyArXG4gICAgICAnU3ltYm9sIFN5bW1ldHJpYyBTeXN0ZW1FcnJvciBUQ1BTb2NrZXQgVGFzayBUZXh0IFRleHREaXNwbGF5IFRpbWVyIFRyaWRpYWdvbmFsIFR1cGxlIFR5cGUgVHlwZUVycm9yIFR5cGVNYXBFbnRyeSAnICtcbiAgICAgICdUeXBlTWFwTGV2ZWwgVHlwZU5hbWUgVHlwZVZhciBUeXBlZFNsb3QgVURQU29ja2V0IFVJbnQgVUludDEyOCBVSW50MTYgVUludDMyIFVJbnQ2NCBVSW50OCBVbmRlZlJlZkVycm9yIFVuZGVmVmFyRXJyb3IgJyArXG4gICAgICAnVW5pY29kZUVycm9yIFVuaWZvcm1TY2FsaW5nIFVuaW9uIFVuaW9uQWxsIFVuaXRSYW5nZSBVbnNpZ25lZCBVcHBlclRyaWFuZ3VsYXIgVmFsIFZhcmFyZyBWZWNFbGVtZW50IFZlY09yTWF0IFZlY3RvciAnICtcbiAgICAgICdWZXJzaW9uTnVtYmVyIFZvaWQgV2Vha0tleURpY3QgV2Vha1JlZiBXb3JrZXJDb25maWcgV29ya2VyUG9vbCAnXG4gIH07XG5cbiAgLy8gcmVmOiBodHRwOi8vanVsaWEucmVhZHRoZWRvY3Mub3JnL2VuL2xhdGVzdC9tYW51YWwvdmFyaWFibGVzLyNhbGxvd2VkLXZhcmlhYmxlLW5hbWVzXG4gIHZhciBWQVJJQUJMRV9OQU1FX1JFID0gJ1tBLVphLXpfXFxcXHUwMEExLVxcXFx1RkZGRl1bQS1aYS16XzAtOVxcXFx1MDBBMS1cXFxcdUZGRkZdKic7XG5cbiAgLy8gcGxhY2Vob2xkZXIgZm9yIHJlY3Vyc2l2ZSBzZWxmLXJlZmVyZW5jZVxuICB2YXIgREVGQVVMVCA9IHtcbiAgICBsZXhlbWVzOiBWQVJJQUJMRV9OQU1FX1JFLCBrZXl3b3JkczogS0VZV09SRFMsIGlsbGVnYWw6IC88XFwvL1xuICB9O1xuXG4gIC8vIHJlZjogaHR0cDovL2p1bGlhLnJlYWR0aGVkb2NzLm9yZy9lbi9sYXRlc3QvbWFudWFsL2ludGVnZXJzLWFuZC1mbG9hdGluZy1wb2ludC1udW1iZXJzL1xuICB2YXIgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgLy8gc3VwcG9ydGVkIG51bWVyaWMgbGl0ZXJhbHM6XG4gICAgLy8gICogYmluYXJ5IGxpdGVyYWwgKGUuZy4gMHgxMClcbiAgICAvLyAgKiBvY3RhbCBsaXRlcmFsIChlLmcuIDBvNzY1NDMyMTApXG4gICAgLy8gICogaGV4YWRlY2ltYWwgbGl0ZXJhbCAoZS5nLiAweGZlZGNiYTg3NjU0MzIxMClcbiAgICAvLyAgKiBoZXhhZGVjaW1hbCBmbG9hdGluZyBwb2ludCBsaXRlcmFsIChlLmcuIDB4MXAwLCAweDEuMnAyKVxuICAgIC8vICAqIGRlY2ltYWwgbGl0ZXJhbCAoZS5nLiA5ODc2NTQzMjEwLCAxMDBfMDAwXzAwMClcbiAgICAvLyAgKiBmbG9hdGluZyBwb2ludGUgbGl0ZXJhbCAoZS5nLiAxLjIsIDEuMmYsIC4yLCAxLiwgMS4yZTEwLCAxLjJlLTEwKVxuICAgIGJlZ2luOiAvKFxcYjB4W1xcZF9dKihcXC5bXFxkX10qKT98MHhcXC5cXGRbXFxkX10qKXBbLStdP1xcZCt8XFxiMFtib3hdW2EtZkEtRjAtOV1bYS1mQS1GMC05X10qfChcXGJcXGRbXFxkX10qKFxcLltcXGRfXSopP3xcXC5cXGRbXFxkX10qKShbZUVmRl1bLStdP1xcZCspPy8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIENIQVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycoLnxcXFxcW3hYdVVdW2EtekEtWjAtOV0rKScvXG4gIH07XG5cbiAgdmFyIElOVEVSUE9MQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFwkXFwoLywgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcblxuICB2YXIgSU5URVJQT0xBVEVEX1ZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJ1xcXFwkJyArIFZBUklBQkxFX05BTUVfUkVcbiAgfTtcblxuICAvLyBUT0RPOiBuZWF0bHkgZXNjYXBlIG5vcm1hbCBjb2RlIGluIHN0cmluZyBsaXRlcmFsXG4gIHZhciBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRSwgSU5URVJQT0xBVElPTiwgSU5URVJQT0xBVEVEX1ZBUklBQkxFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcdypcIlwiXCIvLCBlbmQ6IC9cIlwiXCJcXHcqLywgcmVsZXZhbmNlOiAxMCB9LFxuICAgICAgeyBiZWdpbjogL1xcdypcIi8sIGVuZDogL1wiXFx3Ki8gfVxuICAgIF1cbiAgfTtcblxuICB2YXIgQ09NTUFORCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBJTlRFUlBPTEFUSU9OLCBJTlRFUlBPTEFURURfVkFSSUFCTEVdLFxuICAgIGJlZ2luOiAnYCcsIGVuZDogJ2AnXG4gIH07XG5cbiAgdmFyIE1BQ1JPQ0FMTCA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgVkFSSUFCTEVfTkFNRV9SRVxuICB9O1xuXG4gIHZhciBDT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnIz0nLCBlbmQ6ICc9IycsIHJlbGV2YW5jZTogMTAgfSxcbiAgICAgIHsgYmVnaW46ICcjJywgZW5kOiAnJCcgfVxuICAgIF1cbiAgfTtcblxuICBERUZBVUxULmNvbnRhaW5zID0gW1xuICAgIE5VTUJFUixcbiAgICBDSEFSLFxuICAgIFNUUklORyxcbiAgICBDT01NQU5ELFxuICAgIE1BQ1JPQ0FMTCxcbiAgICBDT01NRU5ULFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICBiZWdpbjpcbiAgICAgICAgJ1xcXFxiKCgoYWJzdHJhY3R8cHJpbWl0aXZlKVxcXFxzKyl0eXBlfChtdXRhYmxlXFxcXHMrKT9zdHJ1Y3QpXFxcXGInXG4gICAgfSxcbiAgICB7YmVnaW46IC88Oi99ICAvLyByZWxldmFuY2UgYm9vc3RlclxuICBdO1xuICBJTlRFUlBPTEFUSU9OLmNvbnRhaW5zID0gREVGQVVMVC5jb250YWlucztcblxuICByZXR1cm4gREVGQVVMVDtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXmp1bGlhPi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIC8vIGVuZCB0aGUgaGlnaGxpZ2h0aW5nIGlmIHdlIGFyZSBvbiBhIG5ldyBsaW5lIGFuZCB0aGUgbGluZSBkb2VzIG5vdCBoYXZlIGF0XG4gICAgICAgICAgLy8gbGVhc3Qgc2l4IHNwYWNlcyBpbiB0aGUgYmVnaW5uaW5nXG4gICAgICAgICAgZW5kOiAvXig/IVsgXXs2fSkvLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnanVsaWEnXG4gICAgICB9LFxuICAgICAgLy8gamxkb2N0ZXN0IE1hcmtkb3duIGJsb2NrcyBhcmUgdXNlZCBpbiB0aGUgSnVsaWEgbWFudWFsIGFuZCBwYWNrYWdlIGRvY3MgaW5kaWNhdGVcbiAgICAgIC8vIGNvZGUgc25pcHBldHMgdGhhdCBzaG91bGQgYmUgdmVyaWZpZWQgd2hlbiB0aGUgZG9jdW1lbnRhdGlvbiBpcyBidWlsdC4gVGhleSBjYW4gYmVcbiAgICAgIC8vIGVpdGhlciBSRVBMLWxpa2Ugb3Igc2NyaXB0LWxpa2UsIGJ1dCBhcmUgdXN1YWxseSBSRVBMLWxpa2UgYW5kIHRoZXJlZm9yZSB3ZSBhcHBseVxuICAgICAgLy8ganVsaWEtcmVwbCBoaWdobGlnaHRpbmcgdG8gdGhlbS4gTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gRG9jdW1lbnRlcidzXG4gICAgICAvLyBtYW51YWw6IGh0dHBzOi8vanVsaWFkb2NzLmdpdGh1Yi5pby9Eb2N1bWVudGVyLmpsL2xhdGVzdC9tYW4vZG9jdGVzdHMuaHRtbFxuICAgICAgYWxpYXNlczogWydqbGRvY3Rlc3QnXVxuICAgICAgfVxuICAgIF1cbiAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYXMgdmFsIHZhciB2YXJhcmcgZ2V0IHNldCBjbGFzcyBvYmplY3Qgb3BlbiBwcml2YXRlIHByb3RlY3RlZCBwdWJsaWMgbm9pbmxpbmUgJyArXG4gICAgICAnY3Jvc3NpbmxpbmUgZHluYW1pYyBmaW5hbCBlbnVtIGlmIGVsc2UgZG8gd2hpbGUgZm9yIHdoZW4gdGhyb3cgdHJ5IGNhdGNoIGZpbmFsbHkgJyArXG4gICAgICAnaW1wb3J0IHBhY2thZ2UgaXMgaW4gZnVuIG92ZXJyaWRlIGNvbXBhbmlvbiByZWlmaWVkIGlubGluZSBsYXRlaW5pdCBpbml0JyArXG4gICAgICAnaW50ZXJmYWNlIGFubm90YXRpb24gZGF0YSBzZWFsZWQgaW50ZXJuYWwgaW5maXggb3BlcmF0b3Igb3V0IGJ5IGNvbnN0cnVjdG9yIHN1cGVyICcgK1xuICAgICAgLy8gdG8gYmUgZGVsZXRlZCBzb29uXG4gICAgICAndHJhaXQgdm9sYXRpbGUgdHJhbnNpZW50IG5hdGl2ZSBkZWZhdWx0JyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdCeXRlIFNob3J0IENoYXIgSW50IExvbmcgQm9vbGVhbiBGbG9hdCBEb3VibGUgVm9pZCBVbml0IE5vdGhpbmcnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBudWxsJ1xuICB9O1xuICB2YXIgS0VZV09SRFNfV0lUSF9MQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogL1xcYihicmVha3xjb250aW51ZXxyZXR1cm58dGhpcylcXGIvLFxuICAgIHN0YXJ0czoge1xuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgYmVnaW46IC9AXFx3Ky9cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfTtcbiAgdmFyIExBQkVMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnQCdcbiAgfTtcblxuICAvLyBmb3Igc3RyaW5nIHRlbXBsYXRlc1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXCR7JywgZW5kOiAnfScsIGNvbnRhaW5zOiBbaGxqcy5BUE9TX1NUUklOR19NT0RFLCBobGpzLkNfTlVNQkVSX01PREVdXG4gIH07XG4gIHZhciBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsIGJlZ2luOiAnXFxcXCQnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gIH07XG4gIHZhciBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiXCJcIicsIGVuZDogJ1wiXCJcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbVkFSSUFCTEUsIFNVQlNUXVxuICAgICAgfSxcbiAgICAgIC8vIENhbid0IHVzZSBidWlsdC1pbiBtb2RlcyBlYXNpbHksIGFzIHdlIHdhbnQgdG8gdXNlIFNUUklORyBpbiB0aGUgbWV0YVxuICAgICAgLy8gY29udGV4dCBhcyAnbWV0YS1zdHJpbmcnIGFuZCB0aGVyZSdzIG5vIHN5bnRheCB0byByZW1vdmUgZXhwbGljaXRseSBzZXRcbiAgICAgIC8vIGNsYXNzTmFtZXMgaW4gYnVpbHQtaW4gbW9kZXMuXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBWQVJJQUJMRSwgU1VCU1RdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHZhciBBTk5PVEFUSU9OX1VTRV9TSVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0AoPzpmaWxlfHByb3BlcnR5fGZpZWxkfGdldHxzZXR8cmVjZWl2ZXJ8cGFyYW18c2V0cGFyYW18ZGVsZWdhdGUpXFxcXHMqOig/OlxcXFxzKicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKT8nXG4gIH07XG4gIHZhciBBTk5PVEFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0AnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoU1RSSU5HLCB7Y2xhc3NOYW1lOiAnbWV0YS1zdHJpbmcnfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWlucyA6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2UgOiAwLFxuICAgICAgICAgIGNvbnRhaW5zIDogW3tcbiAgICAgICAgICAgIGNsYXNzTmFtZSA6ICdkb2N0YWcnLFxuICAgICAgICAgICAgYmVnaW4gOiAnQFtBLVphLXpdKydcbiAgICAgICAgICB9XVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEtFWVdPUkRTX1dJVEhfTEFCRUwsXG4gICAgICBMQUJFTCxcbiAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICBBTk5PVEFUSU9OLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW4nLCBlbmQ6ICdbKF18JCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGlsbGVnYWw6IC9mdW5cXHMrKDwuKj4pP1teXFxzXFwoXSsoXFxzK1teXFxzXFwoXSspXFxzKj0vLFxuICAgICAgICByZWxldmFuY2U6IDUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccypcXFxcKCcsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC88LywgZW5kOiAvPi8sIGtleXdvcmRzOiAncmVpZmllZCcsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvOi8sIGVuZDogL1s9LFxcL10vLCBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAge2NsYXNzTmFtZTogJ3R5cGUnLCBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFfSxcbiAgICAgICAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZSB0cmFpdCcsIGVuZDogL1s6XFx7KF18JC8sIC8vIHJlbW92ZSAndHJhaXQnIHdoZW4gcmVtb3ZlZCBmcm9tIEtFWVdPUkRTXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdleHRlbmRzIGltcGxlbWVudHMnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtiZWdpbktleXdvcmRzOiAncHVibGljIHByb3RlY3RlZCBpbnRlcm5hbCBwcml2YXRlIGNvbnN0cnVjdG9yJ30sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICBiZWdpbjogLzwvLCBlbmQ6IC8+LywgZXhjbHVkZUJlZ2luOiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAvWyw6XVxccyovLCBlbmQ6IC9bPFxcKCxdfCQvLCBleGNsdWRlQmVnaW46IHRydWUsIHJldHVybkVuZDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgQU5OT1RBVElPTl9VU0VfU0lURSxcbiAgICAgICAgICBBTk5PVEFUSU9OXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogXCJeIyEvdXNyL2Jpbi9lbnZcIiwgZW5kOiAnJCcsXG4gICAgICAgIGlsbGVnYWw6ICdcXG4nXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIExBU1NPX0lERU5UX1JFID0gJ1thLXpBLVpfXVtcXFxcdy5dKic7XG4gIHZhciBMQVNTT19BTkdMRV9SRSA9ICc8XFxcXD8obGFzc28oc2NyaXB0KT98PSknO1xuICB2YXIgTEFTU09fQ0xPU0VfUkUgPSAnXFxcXF18XFxcXD8+JztcbiAgdmFyIExBU1NPX0tFWVdPUkRTID0ge1xuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBub25lIG1pbmltYWwgZnVsbCBhbGwgdm9pZCBhbmQgb3Igbm90ICcgK1xuICAgICAgJ2J3IG5idyBldyBuZXcgY24gbmNuIGx0IGx0ZSBndCBndGUgZXEgbmVxIHJ4IG5yeCBmdCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYXJyYXkgZGF0ZSBkZWNpbWFsIGR1cmF0aW9uIGludGVnZXIgbWFwIHBhaXIgc3RyaW5nIHRhZyB4bWwgbnVsbCAnICtcbiAgICAgICdib29sZWFuIGJ5dGVzIGtleXdvcmQgbGlzdCBsb2NhbGUgcXVldWUgc2V0IHN0YWNrIHN0YXRpY2FycmF5ICcgK1xuICAgICAgJ2xvY2FsIHZhciB2YXJpYWJsZSBnbG9iYWwgZGF0YSBzZWxmIGluaGVyaXRlZCBjdXJyZW50Y2FwdHVyZSBnaXZlbmJsb2NrJyxcbiAgICBrZXl3b3JkOlxuICAgICAgJ2NhY2hlIGRhdGFiYXNlX25hbWVzIGRhdGFiYXNlX3NjaGVtYW5hbWVzIGRhdGFiYXNlX3RhYmxlbmFtZXMgJyArXG4gICAgICAnZGVmaW5lX3RhZyBkZWZpbmVfdHlwZSBlbWFpbF9iYXRjaCBlbmNvZGVfc2V0IGh0bWxfY29tbWVudCBoYW5kbGUgJyArXG4gICAgICAnaGFuZGxlX2Vycm9yIGhlYWRlciBpZiBpbmxpbmUgaXRlcmF0ZSBsamF4X3RhcmdldCBsaW5rICcgK1xuICAgICAgJ2xpbmtfY3VycmVudGFjdGlvbiBsaW5rX2N1cnJlbnRncm91cCBsaW5rX2N1cnJlbnRyZWNvcmQgbGlua19kZXRhaWwgJyArXG4gICAgICAnbGlua19maXJzdGdyb3VwIGxpbmtfZmlyc3RyZWNvcmQgbGlua19sYXN0Z3JvdXAgbGlua19sYXN0cmVjb3JkICcgK1xuICAgICAgJ2xpbmtfbmV4dGdyb3VwIGxpbmtfbmV4dHJlY29yZCBsaW5rX3ByZXZncm91cCBsaW5rX3ByZXZyZWNvcmQgbG9nICcgK1xuICAgICAgJ2xvb3AgbmFtZXNwYWNlX3VzaW5nIG91dHB1dF9ub25lIHBvcnRhbCBwcml2YXRlIHByb3RlY3QgcmVjb3JkcyAnICtcbiAgICAgICdyZWZlcmVyIHJlZmVycmVyIHJlcGVhdGluZyByZXN1bHRzZXQgcm93cyBzZWFyY2hfYXJncyAnICtcbiAgICAgICdzZWFyY2hfYXJndW1lbnRzIHNlbGVjdCBzb3J0X2FyZ3Mgc29ydF9hcmd1bWVudHMgdGhyZWFkX2F0b21pYyAnICtcbiAgICAgICd2YWx1ZV9saXN0IHdoaWxlIGFib3J0IGNhc2UgZWxzZSBmYWlsX2lmIGZhaWxfaWZub3QgZmFpbCBpZl9lbXB0eSAnICtcbiAgICAgICdpZl9mYWxzZSBpZl9udWxsIGlmX3RydWUgbG9vcF9hYm9ydCBsb29wX2NvbnRpbnVlIGxvb3BfY291bnQgcGFyYW1zICcgK1xuICAgICAgJ3BhcmFtc191cCByZXR1cm4gcmV0dXJuX3ZhbHVlIHJ1bl9jaGlsZHJlbiBzb2FwX2RlZmluZXRhZyAnICtcbiAgICAgICdzb2FwX2xhc3RyZXF1ZXN0IHNvYXBfbGFzdHJlc3BvbnNlIHRhZ19uYW1lIGFzY2VuZGluZyBhdmVyYWdlIGJ5ICcgK1xuICAgICAgJ2RlZmluZSBkZXNjZW5kaW5nIGRvIGVxdWFscyBmcm96ZW4gZ3JvdXAgaGFuZGxlX2ZhaWx1cmUgaW1wb3J0IGluICcgK1xuICAgICAgJ2ludG8gam9pbiBsZXQgbWF0Y2ggbWF4IG1pbiBvbiBvcmRlciBwYXJlbnQgcHJvdGVjdGVkIHByb3ZpZGUgcHVibGljICcgK1xuICAgICAgJ3JlcXVpcmUgcmV0dXJuaG9tZSBza2lwIHNwbGl0X3RocmVhZCBzdW0gdGFrZSB0aHJlYWQgdG8gdHJhaXQgdHlwZSAnICtcbiAgICAgICd3aGVyZSB3aXRoIHlpZWxkIHlpZWxkaG9tZSdcbiAgfTtcbiAgdmFyIEhUTUxfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnPCEtLScsXG4gICAgJy0tPicsXG4gICAge1xuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICApO1xuICB2YXIgTEFTU09fTk9QUk9DRVNTID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXFxcXFtub3Byb2Nlc3NcXFxcXScsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdcXFxcWy9ub3Byb2Nlc3NcXFxcXScsXG4gICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICBjb250YWluczogW0hUTUxfQ09NTUVOVF1cbiAgICB9XG4gIH07XG4gIHZhciBMQVNTT19TVEFSVCA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ1xcXFxbL25vcHJvY2Vzc3wnICsgTEFTU09fQU5HTEVfUkVcbiAgfTtcbiAgdmFyIExBU1NPX0RBVEFNRU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJ1xcJycgKyBMQVNTT19JREVOVF9SRSArICdcXCcnXG4gIH07XG4gIHZhciBMQVNTT19DT0RFID0gW1xuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsIHtiZWdpbjogaGxqcy5DX05VTUJFUl9SRSArICd8KC0/aW5maW5pdHl8TmFOKVxcXFxiJ30pLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtpbGxlZ2FsOiBudWxsfSksXG4gICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtpbGxlZ2FsOiBudWxsfSksXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnYCcsIGVuZDogJ2AnXG4gICAgfSxcbiAgICB7IC8vIHZhcmlhYmxlc1xuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnWyMkXScgKyBMQVNTT19JREVOVF9SRVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICcjJywgZW5kOiAnXFxcXGQrJyxcbiAgICAgICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgYmVnaW46ICc6OlxcXFxzKicsIGVuZDogTEFTU09fSURFTlRfUkUsXG4gICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLSg/IWluZmluaXR5KScgKyBMQVNTT19JREVOVF9SRSxcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnKFxcXFwuXFxcXC5cXFxcLiknXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvKC0+fFxcLilcXHMqLyxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbTEFTU09fREFUQU1FTUJFUl1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLCBlbmQ6ICdcXFxcKHw9PicsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IExBU1NPX0lERU5UX1JFICsgJyg9KD8hPikpP3xbLSsqLyVdKD8hPiknfSlcbiAgICAgIF1cbiAgICB9XG4gIF07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydscycsICdsYXNzb3NjcmlwdCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgbGV4ZW1lczogTEFTU09fSURFTlRfUkUgKyAnfCZbbGdddDsnLFxuICAgIGtleXdvcmRzOiBMQVNTT19LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IExBU1NPX0NMT1NFX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogeyAvLyBtYXJrdXBcbiAgICAgICAgICBlbmQ6ICdcXFxcW3wnICsgTEFTU09fQU5HTEVfUkUsXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogW0hUTUxfQ09NTUVOVF1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIExBU1NPX05PUFJPQ0VTUyxcbiAgICAgIExBU1NPX1NUQVJULFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdcXFxcW25vX3NxdWFyZV9icmFja2V0cycsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJ1xcXFxbL25vX3NxdWFyZV9icmFja2V0c1xcXFxdJywgLy8gbm90IGltcGxlbWVudGVkIGluIHRoZSBsYW5ndWFnZVxuICAgICAgICAgIGxleGVtZXM6IExBU1NPX0lERU5UX1JFICsgJ3wmW2xnXXQ7JyxcbiAgICAgICAgICBrZXl3b3JkczogTEFTU09fS0VZV09SRFMsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgICAgICAgIGJlZ2luOiBMQVNTT19DTE9TRV9SRSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgICBlbmQ6ICdcXFxcW25vcHJvY2Vzc1xcXFxdfCcgKyBMQVNTT19BTkdMRV9SRSxcbiAgICAgICAgICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtIVE1MX0NPTU1FTlRdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMQVNTT19OT1BST0NFU1MsXG4gICAgICAgICAgICBMQVNTT19TVEFSVFxuICAgICAgICAgIF0uY29uY2F0KExBU1NPX0NPREUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeIyEnLCBlbmQ6J2xhc3NvOSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXS5jb25jYXQoTEFTU09fQ09ERSlcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46ICdeZG4nLCBlbmQ6ICc6ICcsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHN0YXJ0czoge2VuZDogJyQnLCByZWxldmFuY2U6IDB9LFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBiZWdpbjogJ15cXFxcdycsIGVuZDogJzogJywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgc3RhcnRzOiB7ZW5kOiAnJCcsIHJlbGV2YW5jZTogMH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjogJ14tJywgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJyMrJyArICdbQS1aYS16XzAtOV0qJyArICdcXFxcKCcsXG4gICAgICAgIGVuZDonIHsnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnMgOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgICBiZWdpbjogJyMrJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgYmVnaW46ICdbQS1aYS16X11bQS1aYS16XzAtOV0qJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICAgICAgZW5kOiAnXCInXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgICAgYmVnaW46ICdbQS1aYS16X11bQS1aYS16XzAtOV0qJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIElERU5UX1JFICAgICAgICA9ICdbXFxcXHctXSsnOyAvLyB5ZXMsIExlc3MgaWRlbnRpZmllcnMgbWF5IGJlZ2luIHdpdGggYSBkaWdpdFxuICB2YXIgSU5URVJQX0lERU5UX1JFID0gJygnICsgSURFTlRfUkUgKyAnfEB7JyArIElERU5UX1JFICsgJ30pJztcblxuICAvKiBHZW5lcmljIE1vZGVzICovXG5cbiAgdmFyIFJVTEVTID0gW10sIFZBTFVFID0gW107IC8vIGZvcndhcmQgZGVmLiBmb3IgcmVjdXJzaXZlIG1vZGVzXG5cbiAgdmFyIFNUUklOR19NT0RFID0gZnVuY3Rpb24oYykgeyByZXR1cm4ge1xuICAgIC8vIExlc3Mgc3RyaW5ncyBhcmUgbm90IG11bHRpbGluZSAoYWxzbyBpbmNsdWRlICd+JyBmb3IgbW9yZSBjb25zaXN0ZW50IGNvbG9yaW5nIG9mIFwiZXNjYXBlZFwiIHN0cmluZ3MpXG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgYmVnaW46ICd+PycgKyBjICsgJy4qPycgKyBjXG4gIH07fTtcblxuICB2YXIgSURFTlRfTU9ERSA9IGZ1bmN0aW9uKG5hbWUsIGJlZ2luLCByZWxldmFuY2UpIHsgcmV0dXJuIHtcbiAgICBjbGFzc05hbWU6IG5hbWUsIGJlZ2luOiBiZWdpbiwgcmVsZXZhbmNlOiByZWxldmFuY2VcbiAgfTt9O1xuXG4gIHZhciBQQVJFTlNfTU9ERSA9IHtcbiAgICAvLyB1c2VkIG9ubHkgdG8gcHJvcGVybHkgYmFsYW5jZSBuZXN0ZWQgcGFyZW5zIGluc2lkZSBtaXhpbiBjYWxsLCBkZWYuIGFyZyBsaXN0XG4gICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJywgY29udGFpbnM6IFZBTFVFLCByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyBnZW5lcmljIExlc3MgaGlnaGxpZ2h0ZXIgKHVzZWQgYWxtb3N0IGV2ZXJ5d2hlcmUgZXhjZXB0IHNlbGVjdG9ycyk6XG4gIFZBTFVFLnB1c2goXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgU1RSSU5HX01PREUoXCInXCIpLFxuICAgIFNUUklOR19NT0RFKCdcIicpLFxuICAgIGhsanMuQ1NTX05VTUJFUl9NT0RFLCAvLyBmaXhtZTogaXQgZG9lcyBub3QgaW5jbHVkZSBkb3QgZm9yIG51bWJlcnMgbGlrZSAuNWVtIDooXG4gICAge1xuICAgICAgYmVnaW46ICcodXJsfGRhdGEtdXJpKVxcXFwoJyxcbiAgICAgIHN0YXJ0czoge2NsYXNzTmFtZTogJ3N0cmluZycsIGVuZDogJ1tcXFxcKVxcXFxuXScsIGV4Y2x1ZGVFbmQ6IHRydWV9XG4gICAgfSxcbiAgICBJREVOVF9NT0RFKCdudW1iZXInLCAnI1swLTlBLUZhLWZdK1xcXFxiJyksXG4gICAgUEFSRU5TX01PREUsXG4gICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQEA/JyArIElERU5UX1JFLCAxMCksXG4gICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQHsnICArIElERU5UX1JFICsgJ30nKSxcbiAgICBJREVOVF9NT0RFKCdidWlsdF9pbicsICd+P2BbXmBdKj9gJyksIC8vIGlubGluZSBqYXZhc2NyaXB0IChvciB3aGF0ZXZlciBob3N0IGxhbmd1YWdlKSAqbXVsdGlsaW5lKiBzdHJpbmdcbiAgICB7IC8vIEBtZWRpYSBmZWF0dXJlcyAoaXTigJlzIGhlcmUgdG8gbm90IGR1cGxpY2F0ZSB0aGluZ3MgaW4gQVRfUlVMRV9NT0RFIHdpdGggZXh0cmEgUEFSRU5TX01PREUgb3ZlcnJpZGluZyk6XG4gICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLCBiZWdpbjogSURFTlRfUkUgKyAnXFxcXHMqOicsIGVuZDogJzonLCByZXR1cm5CZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfVxuICApO1xuXG4gIHZhciBWQUxVRV9XSVRIX1JVTEVTRVRTID0gVkFMVUUuY29uY2F0KHtcbiAgICBiZWdpbjogJ3snLCBlbmQ6ICd9JywgY29udGFpbnM6IFJVTEVTXG4gIH0pO1xuXG4gIHZhciBNSVhJTl9HVUFSRF9NT0RFID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICd3aGVuJywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFt7YmVnaW5LZXl3b3JkczogJ2FuZCBub3QnfV0uY29uY2F0KFZBTFVFKSAvLyB1c2luZyB0aGlzIGZvcm0gdG8gb3ZlcnJpZGUgVkFMVUXigJlzICdmdW5jdGlvbicgbWF0Y2hcbiAgfTtcblxuICAvKiBSdWxlLUxldmVsIE1vZGVzICovXG5cbiAgdmFyIFJVTEVfTU9ERSA9IHtcbiAgICBiZWdpbjogSU5URVJQX0lERU5UX1JFICsgJ1xcXFxzKjonLCByZXR1cm5CZWdpbjogdHJ1ZSwgZW5kOiAnWzt9XScsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiBJTlRFUlBfSURFTlRfUkUsIGVuZDogJzonLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSwgaWxsZWdhbDogJ1s8PSRdJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFZBTFVFXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgdmFyIEFUX1JVTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ0AoaW1wb3J0fG1lZGlhfGNoYXJzZXR8Zm9udC1mYWNlfCgtW2Etel0rLSk/a2V5ZnJhbWVzfHN1cHBvcnRzfGRvY3VtZW50fG5hbWVzcGFjZXxwYWdlfHZpZXdwb3J0fGhvc3QpXFxcXGInLFxuICAgIHN0YXJ0czoge2VuZDogJ1s7e31dJywgcmV0dXJuRW5kOiB0cnVlLCBjb250YWluczogVkFMVUUsIHJlbGV2YW5jZTogMH1cbiAgfTtcblxuICAvLyB2YXJpYWJsZSBkZWZpbml0aW9ucyBhbmQgY2FsbHNcbiAgdmFyIFZBUl9SVUxFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyB1c2luZyBtb3JlIHN0cmljdCBwYXR0ZXJuIGZvciBoaWdoZXIgcmVsZXZhbmNlIHRvIGluY3JlYXNlIGNoYW5jZXMgb2YgTGVzcyBkZXRlY3Rpb24uXG4gICAgICAvLyB0aGlzIGlzICp0aGUgb25seSogTGVzcyBzcGVjaWZpYyBzdGF0ZW1lbnQgdXNlZCBpbiBtb3N0IG9mIHRoZSBzb3VyY2VzLCBzby4uLlxuICAgICAgLy8gKHdl4oCZbGwgc3RpbGwgb2Z0ZW4gbG9vc2UgdG8gdGhlIGNzcy1wYXJzZXIgdW5sZXNzIHRoZXJlJ3MgJy8vJyBjb21tZW50LFxuICAgICAgLy8gc2ltcGx5IGJlY2F1c2UgMSB2YXJpYWJsZSBqdXN0IGNhbid0IGJlYXQgOTkgcHJvcGVydGllcyA6KVxuICAgICAge2JlZ2luOiAnQCcgKyBJREVOVF9SRSArICdcXFxccyo6JywgcmVsZXZhbmNlOiAxNX0sXG4gICAgICB7YmVnaW46ICdAJyArIElERU5UX1JFfVxuICAgIF0sXG4gICAgc3RhcnRzOiB7ZW5kOiAnWzt9XScsIHJldHVybkVuZDogdHJ1ZSwgY29udGFpbnM6IFZBTFVFX1dJVEhfUlVMRVNFVFN9XG4gIH07XG5cbiAgdmFyIFNFTEVDVE9SX01PREUgPSB7XG4gICAgLy8gZmlyc3QgcGFyc2UgdW5hbWJpZ3VvdXMgc2VsZWN0b3JzIChpLmUuIHRob3NlIG5vdCBzdGFydGluZyB3aXRoIHRhZylcbiAgICAvLyB0aGVuIGZhbGwgaW50byB0aGUgc2NhcnkgbG9va2FoZWFkLWRpc2NyaW1pbmF0b3IgdmFyaWFudC5cbiAgICAvLyB0aGlzIG1vZGUgYWxzbyBoYW5kbGVzIG1peGluIGRlZmluaXRpb25zIGFuZCBjYWxsc1xuICAgIHZhcmlhbnRzOiBbe1xuICAgICAgYmVnaW46ICdbXFxcXC4jOiZcXFxcWz5dJywgZW5kOiAnWzt7fV0nICAvLyBtaXhpbiBjYWxscyBlbmQgd2l0aCAnOydcbiAgICAgIH0sIHtcbiAgICAgIGJlZ2luOiBJTlRFUlBfSURFTlRfUkUsIGVuZDogJ3snXG4gICAgfV0sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmV0dXJuRW5kOiAgIHRydWUsXG4gICAgaWxsZWdhbDogJ1s8PVxcJyRcIl0nLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIE1JWElOX0dVQVJEX01PREUsXG4gICAgICBJREVOVF9NT0RFKCdrZXl3b3JkJywgICdhbGxcXFxcYicpLFxuICAgICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQHsnICArIElERU5UX1JFICsgJ30nKSwgICAgIC8vIG90aGVyd2lzZSBpdOKAmXMgaWRlbnRpZmllZCBhcyB0YWdcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLXRhZycsICBJTlRFUlBfSURFTlRfUkUgKyAnJT8nLCAwKSwgLy8gJyUnIGZvciBtb3JlIGNvbnNpc3RlbnQgY29sb3Jpbmcgb2YgQGtleWZyYW1lcyBcInRhZ3NcIlxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItaWQnLCAnIycgKyBJTlRFUlBfSURFTlRfUkUpLFxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItY2xhc3MnLCAnXFxcXC4nICsgSU5URVJQX0lERU5UX1JFLCAwKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLXRhZycsICAnJicsIDApLFxuICAgICAge2NsYXNzTmFtZTogJ3NlbGVjdG9yLWF0dHInLCBiZWdpbjogJ1xcXFxbJywgZW5kOiAnXFxcXF0nfSxcbiAgICAgIHtjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLCBiZWdpbjogLzooOik/W2EtekEtWjAtOVxcX1xcLVxcK1xcKFxcKVwiJy5dKy99LFxuICAgICAge2JlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKScsIGNvbnRhaW5zOiBWQUxVRV9XSVRIX1JVTEVTRVRTfSwgLy8gYXJndW1lbnQgbGlzdCBvZiBwYXJhbWV0cmljIG1peGluc1xuICAgICAge2JlZ2luOiAnIWltcG9ydGFudCd9IC8vIGVhdCAhaW1wb3J0YW50IGFmdGVyIG1peGluIGNhbGwgb3IgaXQgd2lsbCBiZSBjb2xvcmVkIGFzIHRhZ1xuICAgIF1cbiAgfTtcblxuICBSVUxFUy5wdXNoKFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEFUX1JVTEVfTU9ERSxcbiAgICBWQVJfUlVMRV9NT0RFLFxuICAgIFJVTEVfTU9ERSxcbiAgICBTRUxFQ1RPUl9NT0RFXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPT5cXCcvPCgkXCJdJyxcbiAgICBjb250YWluczogUlVMRVNcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBMSVNQX0lERU5UX1JFID0gJ1thLXpBLVpfXFxcXC1cXFxcK1xcXFwqXFxcXC9cXFxcPFxcXFw9XFxcXD5cXFxcJlxcXFwjXVthLXpBLVowLTlfXFxcXC1cXFxcK1xcXFwqXFxcXC9cXFxcPFxcXFw9XFxcXD5cXFxcJlxcXFwjIV0qJztcbiAgdmFyIE1FQ19SRSA9ICdcXFxcfFteXSo/XFxcXHwnO1xuICB2YXIgTElTUF9TSU1QTEVfTlVNQkVSX1JFID0gJyhcXFxcLXxcXFxcKyk/XFxcXGQrKFxcXFwuXFxcXGQrfFxcXFwvXFxcXGQrKT8oKGR8ZXxmfGx8c3xEfEV8RnxMfFMpKFxcXFwrfFxcXFwtKT9cXFxcZCspPyc7XG4gIHZhciBTSEVCQU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXiMhJywgZW5kOiAnJCdcbiAgfTtcbiAgdmFyIExJVEVSQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46ICdcXFxcYih0ezF9fG5pbClcXFxcYidcbiAgfTtcbiAgdmFyIE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IExJU1BfU0lNUExFX05VTUJFUl9SRSwgcmVsZXZhbmNlOiAwfSxcbiAgICAgIHtiZWdpbjogJyMoYnxCKVswLTFdKygvWzAtMV0rKT8nfSxcbiAgICAgIHtiZWdpbjogJyMob3xPKVswLTddKygvWzAtN10rKT8nfSxcbiAgICAgIHtiZWdpbjogJyMoeHxYKVswLTlhLWZBLUZdKygvWzAtOWEtZkEtRl0rKT8nfSxcbiAgICAgIHtiZWdpbjogJyMoY3xDKVxcXFwoJyArIExJU1BfU0lNUExFX05VTUJFUl9SRSArICcgKycgKyBMSVNQX1NJTVBMRV9OVU1CRVJfUkUsIGVuZDogJ1xcXFwpJ31cbiAgICBdXG4gIH07XG4gIHZhciBTVFJJTkcgPSBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KTtcbiAgdmFyIENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJzsnLCAnJCcsXG4gICAge1xuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICApO1xuICB2YXIgVkFSSUFCTEUgPSB7XG4gICAgYmVnaW46ICdcXFxcKicsIGVuZDogJ1xcXFwqJ1xuICB9O1xuICB2YXIgS0VZV09SRCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzomXScgKyBMSVNQX0lERU5UX1JFXG4gIH07XG4gIHZhciBJREVOVCA9IHtcbiAgICBiZWdpbjogTElTUF9JREVOVF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIE1FQyA9IHtcbiAgICBiZWdpbjogTUVDX1JFXG4gIH07XG4gIHZhciBRVU9URURfTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBbJ3NlbGYnLCBMSVRFUkFMLCBTVFJJTkcsIE5VTUJFUiwgSURFTlRdXG4gIH07XG4gIHZhciBRVU9URUQgPSB7XG4gICAgY29udGFpbnM6IFtOVU1CRVIsIFNUUklORywgVkFSSUFCTEUsIEtFWVdPUkQsIFFVT1RFRF9MSVNULCBJREVOVF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbXFwnYF1cXFxcKCcsIGVuZDogJ1xcXFwpJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKHF1b3RlICcsIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6IHtuYW1lOiAncXVvdGUnfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCcnICsgTUVDX1JFXG4gICAgICB9XG4gICAgXVxuICB9O1xuICB2YXIgUVVPVEVEX0FUT00gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogJ1xcJycgKyBMSVNQX0lERU5UX1JFfSxcbiAgICAgIHtiZWdpbjogJyNcXCcnICsgTElTUF9JREVOVF9SRSArICcoOjonICsgTElTUF9JREVOVF9SRSArICcpKid9XG4gICAgXVxuICB9O1xuICB2YXIgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoXFxcXHMqJywgZW5kOiAnXFxcXCknXG4gIH07XG4gIHZhciBCT0RZID0ge1xuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBMSVNULmNvbnRhaW5zID0gW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge2JlZ2luOiBMSVNQX0lERU5UX1JFfSxcbiAgICAgICAge2JlZ2luOiBNRUNfUkV9XG4gICAgICBdXG4gICAgfSxcbiAgICBCT0RZXG4gIF07XG4gIEJPRFkuY29udGFpbnMgPSBbUVVPVEVELCBRVU9URURfQVRPTSwgTElTVCwgTElURVJBTCwgTlVNQkVSLCBTVFJJTkcsIENPTU1FTlQsIFZBUklBQkxFLCBLRVlXT1JELCBNRUMsIElERU5UXTtcblxuICByZXR1cm4ge1xuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVIsXG4gICAgICBTSEVCQU5HLFxuICAgICAgTElURVJBTCxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICBRVU9URUQsXG4gICAgICBRVU9URURfQVRPTSxcbiAgICAgIExJU1QsXG4gICAgICBJREVOVFxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBWQVJJQUJMRSA9IHtcbiAgICBiZWdpbjogJ1xcXFxiW2d0cHNdW0EtWl0rW0EtWmEtejAtOV9cXFxcLV0qXFxcXGJ8XFxcXCRfW0EtWl0rJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgIGhsanMuQ09NTUVOVCgnW146XS8vJywgJyQnKVxuICBdO1xuICB2YXIgVElUTEUxID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46ICdcXFxcYl8qcmlnW0EtWl0rW0EtWmEtejAtOV9cXFxcLV0qJ30sXG4gICAgICB7YmVnaW46ICdcXFxcYl9bYS16MC05XFxcXC1dKyd9XG4gICAgXVxuICB9KTtcbiAgdmFyIFRJVExFMiA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogJ1xcXFxiKFtBLVphLXowLTlfXFxcXC1dKylcXFxcYid9KTtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJyRfQ09PS0lFICRfRklMRVMgJF9HRVQgJF9HRVRfQklOQVJZICRfR0VUX1JBVyAkX1BPU1QgJF9QT1NUX0JJTkFSWSAkX1BPU1RfUkFXICRfU0VTU0lPTiAkX1NFUlZFUiAnICtcbiAgICAgICAgJ2NvZGVwb2ludCBjb2RlcG9pbnRzIHNlZ21lbnQgc2VnbWVudHMgY29kZXVuaXQgY29kZXVuaXRzIHNlbnRlbmNlIHNlbnRlbmNlcyB0cnVlV29yZCB0cnVlV29yZHMgcGFyYWdyYXBoICcgK1xuICAgICAgICAnYWZ0ZXIgYnl0ZSBieXRlcyBlbmdsaXNoIHRoZSB1bnRpbCBodHRwIGZvcmV2ZXIgZGVzY2VuZGluZyB1c2luZyBsaW5lIHJlYWw4IHdpdGggc2V2ZW50aCAnICtcbiAgICAgICAgJ2ZvciBzdGRvdXQgZmluYWxseSBlbGVtZW50IHdvcmQgd29yZHMgZm91cnRoIGJlZm9yZSBibGFjayBuaW50aCBzaXh0aCBjaGFyYWN0ZXJzIGNoYXJzIHN0ZGVyciAnICtcbiAgICAgICAgJ3VJbnQxIHVJbnQxcyB1SW50MiB1SW50MnMgc3RkaW4gc3RyaW5nIGxpbmVzIHJlbGF0aXZlIHJlbCBhbnkgZmlmdGggaXRlbXMgZnJvbSBtaWRkbGUgbWlkICcgK1xuICAgICAgICAnYXQgZWxzZSBvZiBjYXRjaCB0aGVuIHRoaXJkIGl0IGZpbGUgbWlsbGlzZWNvbmRzIHNlY29uZHMgc2Vjb25kIHNlY3Mgc2VjIGludDEgaW50MXMgaW50NCAnICtcbiAgICAgICAgJ2ludDRzIGludGVybmV0IGludDIgaW50MnMgbm9ybWFsIHRleHQgaXRlbSBsYXN0IGxvbmcgZGV0YWlsZWQgZWZmZWN0aXZlIHVJbnQ0IHVJbnQ0cyByZXBlYXQgJyArXG4gICAgICAgICdlbmQgcmVwZWF0IFVSTCBpbiB0cnkgaW50byBzd2l0Y2ggdG8gd29yZHMgaHR0cHMgdG9rZW4gYmluZmlsZSBlYWNoIHRlbnRoIGFzIHRpY2tzIHRpY2sgJyArXG4gICAgICAgICdzeXN0ZW0gcmVhbDQgYnkgZGF0ZUl0ZW1zIHdpdGhvdXQgY2hhciBjaGFyYWN0ZXIgYXNjZW5kaW5nIGVpZ2h0aCB3aG9sZSBkYXRlVGltZSBudW1lcmljIHNob3J0ICcgK1xuICAgICAgICAnZmlyc3QgZnRwIGludGVnZXIgYWJicmV2aWF0ZWQgYWJiciBhYmJyZXYgcHJpdmF0ZSBjYXNlIHdoaWxlIGlmICcgK1xuICAgICAgICAnZGl2IG1vZCB3cmFwIGFuZCBvciBiaXRBbmQgYml0Tm90IGJpdE9yIGJpdFhvciBhbW9uZyBub3QgaW4gYSBhbiB3aXRoaW4gJyArXG4gICAgICAgICdjb250YWlucyBlbmRzIHdpdGggYmVnaW5zIHRoZSBrZXlzIG9mIGtleXMnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ1NJWCBURU4gRk9STUZFRUQgTklORSBaRVJPIE5PTkUgU1BBQ0UgRk9VUiBGQUxTRSBDT0xPTiBDUkxGIFBJIENPTU1BIEVORE9GRklMRSBFT0YgRUlHSFQgRklWRSAnICtcbiAgICAgICAgJ1FVT1RFIEVNUFRZIE9ORSBUUlVFIFJFVFVSTiBDUiBMSU5FRkVFRCBSSUdIVCBCQUNLU0xBU0ggTlVMTCBTRVZFTiBUQUIgVEhSRUUgVFdPICcgK1xuICAgICAgICAnc2l4IHRlbiBmb3JtZmVlZCBuaW5lIHplcm8gbm9uZSBzcGFjZSBmb3VyIGZhbHNlIGNvbG9uIGNybGYgcGkgY29tbWEgZW5kb2ZmaWxlIGVvZiBlaWdodCBmaXZlICcgK1xuICAgICAgICAncXVvdGUgZW1wdHkgb25lIHRydWUgcmV0dXJuIGNyIGxpbmVmZWVkIHJpZ2h0IGJhY2tzbGFzaCBudWxsIHNldmVuIHRhYiB0aHJlZSB0d28gJyArXG4gICAgICAgICdSSVZFUlNJT04gUklTVEFURSBGSUxFX1JFQURfTU9ERSBGSUxFX1dSSVRFX01PREUgRklMRV9XUklURV9NT0RFIERJUl9XUklURV9NT0RFIEZJTEVfUkVBRF9VTUFTSyAnICtcbiAgICAgICAgJ0ZJTEVfV1JJVEVfVU1BU0sgRElSX1JFQURfVU1BU0sgRElSX1dSSVRFX1VNQVNLJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAncHV0IGFicyBhY29zIGFsaWFzUmVmZXJlbmNlIGFubnVpdHkgYXJyYXlEZWNvZGUgYXJyYXlFbmNvZGUgYXNpbiBhdGFuIGF0YW4yIGF2ZXJhZ2UgYXZnIGF2Z0RldiBiYXNlNjREZWNvZGUgJyArXG4gICAgICAgICdiYXNlNjRFbmNvZGUgYmFzZUNvbnZlcnQgYmluYXJ5RGVjb2RlIGJpbmFyeUVuY29kZSBieXRlT2Zmc2V0IGJ5dGVUb051bSBjYWNoZWRVUkwgY2FjaGVkVVJMcyBjaGFyVG9OdW0gJyArXG4gICAgICAgICdjaXBoZXJOYW1lcyBjb2RlcG9pbnRPZmZzZXQgY29kZXBvaW50UHJvcGVydHkgY29kZXBvaW50VG9OdW0gY29kZXVuaXRPZmZzZXQgY29tbWFuZE5hbWVzIGNvbXBvdW5kIGNvbXByZXNzICcgK1xuICAgICAgICAnY29uc3RhbnROYW1lcyBjb3MgZGF0ZSBkYXRlRm9ybWF0IGRlY29tcHJlc3MgZGlyZWN0b3JpZXMgJyArXG4gICAgICAgICdkaXNrU3BhY2UgRE5TU2VydmVycyBleHAgZXhwMSBleHAyIGV4cDEwIGV4dGVudHMgZmlsZXMgZmx1c2hFdmVudHMgZm9sZGVycyBmb3JtYXQgZnVuY3Rpb25OYW1lcyBnZW9tZXRyaWNNZWFuIGdsb2JhbCAnICtcbiAgICAgICAgJ2dsb2JhbHMgaGFzTWVtb3J5IGhhcm1vbmljTWVhbiBob3N0QWRkcmVzcyBob3N0QWRkcmVzc1RvTmFtZSBob3N0TmFtZSBob3N0TmFtZVRvQWRkcmVzcyBpc051bWJlciBJU09Ub01hYyBpdGVtT2Zmc2V0ICcgK1xuICAgICAgICAna2V5cyBsZW4gbGVuZ3RoIGxpYlVSTEVycm9yRGF0YSBsaWJVcmxGb3JtRGF0YSBsaWJVUkxmdHBDb21tYW5kIGxpYlVSTExhc3RIVFRQSGVhZGVycyBsaWJVUkxMYXN0UkhIZWFkZXJzICcgK1xuICAgICAgICAnbGliVXJsTXVsdGlwYXJ0Rm9ybUFkZFBhcnQgbGliVXJsTXVsdGlwYXJ0Rm9ybURhdGEgbGliVVJMVmVyc2lvbiBsaW5lT2Zmc2V0IGxuIGxuMSBsb2NhbE5hbWVzIGxvZyBsb2cyIGxvZzEwICcgK1xuICAgICAgICAnbG9uZ0ZpbGVQYXRoIGxvd2VyIG1hY1RvSVNPIG1hdGNoQ2h1bmsgbWF0Y2hUZXh0IG1hdHJpeE11bHRpcGx5IG1heCBtZDVEaWdlc3QgbWVkaWFuIG1lcmdlIG1pbGxpc2VjICcgK1xuICAgICAgICAnbWlsbGlzZWNzIG1pbGxpc2Vjb25kIG1pbGxpc2Vjb25kcyBtaW4gbW9udGhOYW1lcyBuYXRpdmVDaGFyVG9OdW0gbm9ybWFsaXplVGV4dCBudW0gbnVtYmVyIG51bVRvQnl0ZSBudW1Ub0NoYXIgJyArXG4gICAgICAgICdudW1Ub0NvZGVwb2ludCBudW1Ub05hdGl2ZUNoYXIgb2Zmc2V0IG9wZW4gb3BlbmZpbGVzIG9wZW5Qcm9jZXNzZXMgb3BlblByb2Nlc3NJRHMgb3BlblNvY2tldHMgJyArXG4gICAgICAgICdwYXJhZ3JhcGhPZmZzZXQgcGFyYW1Db3VudCBwYXJhbSBwYXJhbXMgcGVlckFkZHJlc3MgcGVuZGluZ01lc3NhZ2VzIHBsYXRmb3JtIHBvcFN0ZERldiBwb3B1bGF0aW9uU3RhbmRhcmREZXZpYXRpb24gJyArXG4gICAgICAgICdwb3B1bGF0aW9uVmFyaWFuY2UgcG9wVmFyaWFuY2UgcHJvY2Vzc0lEIHJhbmRvbSByYW5kb21CeXRlcyByZXBsYWNlVGV4dCByZXN1bHQgcmV2Q3JlYXRlWE1MVHJlZSByZXZDcmVhdGVYTUxUcmVlRnJvbUZpbGUgJyArXG4gICAgICAgICdyZXZDdXJyZW50UmVjb3JkIHJldkN1cnJlbnRSZWNvcmRJc0ZpcnN0IHJldkN1cnJlbnRSZWNvcmRJc0xhc3QgcmV2RGF0YWJhc2VDb2x1bW5Db3VudCByZXZEYXRhYmFzZUNvbHVtbklzTnVsbCAnICtcbiAgICAgICAgJ3JldkRhdGFiYXNlQ29sdW1uTGVuZ3RocyByZXZEYXRhYmFzZUNvbHVtbk5hbWVzIHJldkRhdGFiYXNlQ29sdW1uTmFtZWQgcmV2RGF0YWJhc2VDb2x1bW5OdW1iZXJlZCAnICtcbiAgICAgICAgJ3JldkRhdGFiYXNlQ29sdW1uVHlwZXMgcmV2RGF0YWJhc2VDb25uZWN0UmVzdWx0IHJldkRhdGFiYXNlQ3Vyc29ycyByZXZEYXRhYmFzZUlEIHJldkRhdGFiYXNlVGFibGVOYW1lcyAnICtcbiAgICAgICAgJ3JldkRhdGFiYXNlVHlwZSByZXZEYXRhRnJvbVF1ZXJ5IHJldmRiX2Nsb3NlQ3Vyc29yIHJldmRiX2NvbHVtbmJ5bnVtYmVyIHJldmRiX2NvbHVtbmNvdW50IHJldmRiX2NvbHVtbmlzbnVsbCAnICtcbiAgICAgICAgJ3JldmRiX2NvbHVtbmxlbmd0aHMgcmV2ZGJfY29sdW1ubmFtZXMgcmV2ZGJfY29sdW1udHlwZXMgcmV2ZGJfY29tbWl0IHJldmRiX2Nvbm5lY3QgcmV2ZGJfY29ubmVjdGlvbnMgJyArXG4gICAgICAgICdyZXZkYl9jb25uZWN0aW9uZXJyIHJldmRiX2N1cnJlbnRyZWNvcmQgcmV2ZGJfY3Vyc29yY29ubmVjdGlvbiByZXZkYl9jdXJzb3JlcnIgcmV2ZGJfY3Vyc29ycyByZXZkYl9kYnR5cGUgJyArXG4gICAgICAgICdyZXZkYl9kaXNjb25uZWN0IHJldmRiX2V4ZWN1dGUgcmV2ZGJfaXNlb2YgcmV2ZGJfaXNib2YgcmV2ZGJfbW92ZWZpcnN0IHJldmRiX21vdmVsYXN0IHJldmRiX21vdmVuZXh0ICcgK1xuICAgICAgICAncmV2ZGJfbW92ZXByZXYgcmV2ZGJfcXVlcnkgcmV2ZGJfcXVlcnlsaXN0IHJldmRiX3JlY29yZGNvdW50IHJldmRiX3JvbGxiYWNrIHJldmRiX3RhYmxlbmFtZXMgJyArXG4gICAgICAgICdyZXZHZXREYXRhYmFzZURyaXZlclBhdGggcmV2TnVtYmVyT2ZSZWNvcmRzIHJldk9wZW5EYXRhYmFzZSByZXZPcGVuRGF0YWJhc2VzIHJldlF1ZXJ5RGF0YWJhc2UgJyArXG4gICAgICAgICdyZXZRdWVyeURhdGFiYXNlQmxvYiByZXZRdWVyeVJlc3VsdCByZXZRdWVyeUlzQXRTdGFydCByZXZRdWVyeUlzQXRFbmQgcmV2VW5peEZyb21NYWNQYXRoIHJldlhNTEF0dHJpYnV0ZSAnICtcbiAgICAgICAgJ3JldlhNTEF0dHJpYnV0ZXMgcmV2WE1MQXR0cmlidXRlVmFsdWVzIHJldlhNTENoaWxkQ29udGVudHMgcmV2WE1MQ2hpbGROYW1lcyByZXZYTUxDcmVhdGVUcmVlRnJvbUZpbGVXaXRoTmFtZXNwYWNlcyAnICtcbiAgICAgICAgJ3JldlhNTENyZWF0ZVRyZWVXaXRoTmFtZXNwYWNlcyByZXZYTUxEYXRhRnJvbVhQYXRoUXVlcnkgcmV2WE1MRXZhbHVhdGVYUGF0aCByZXZYTUxGaXJzdENoaWxkIHJldlhNTE1hdGNoaW5nTm9kZSAnICtcbiAgICAgICAgJ3JldlhNTE5leHRTaWJsaW5nIHJldlhNTE5vZGVDb250ZW50cyByZXZYTUxOdW1iZXJPZkNoaWxkcmVuIHJldlhNTFBhcmVudCByZXZYTUxQcmV2aW91c1NpYmxpbmcgJyArXG4gICAgICAgICdyZXZYTUxSb290Tm9kZSByZXZYTUxSUENfQ3JlYXRlUmVxdWVzdCByZXZYTUxSUENfRG9jdW1lbnRzIHJldlhNTFJQQ19FcnJvciAnICtcbiAgICAgICAgJ3JldlhNTFJQQ19HZXRIb3N0IHJldlhNTFJQQ19HZXRNZXRob2QgcmV2WE1MUlBDX0dldFBhcmFtIHJldlhNTFRleHQgcmV2WE1MUlBDX0V4ZWN1dGUgJyArXG4gICAgICAgICdyZXZYTUxSUENfR2V0UGFyYW1Db3VudCByZXZYTUxSUENfR2V0UGFyYW1Ob2RlIHJldlhNTFJQQ19HZXRQYXJhbVR5cGUgcmV2WE1MUlBDX0dldFBhdGggcmV2WE1MUlBDX0dldFBvcnQgJyArXG4gICAgICAgICdyZXZYTUxSUENfR2V0UHJvdG9jb2wgcmV2WE1MUlBDX0dldFJlcXVlc3QgcmV2WE1MUlBDX0dldFJlc3BvbnNlIHJldlhNTFJQQ19HZXRTb2NrZXQgcmV2WE1MVHJlZSAnICtcbiAgICAgICAgJ3JldlhNTFRyZWVzIHJldlhNTFZhbGlkYXRlRFREIHJldlppcERlc2NyaWJlSXRlbSByZXZaaXBFbnVtZXJhdGVJdGVtcyByZXZaaXBPcGVuQXJjaGl2ZXMgcm91bmQgc2FtcFZhcmlhbmNlICcgK1xuICAgICAgICAnc2VjIHNlY3Mgc2Vjb25kcyBzZW50ZW5jZU9mZnNldCBzaGExRGlnZXN0IHNoZWxsIHNob3J0RmlsZVBhdGggc2luIHNwZWNpYWxGb2xkZXJQYXRoIHNxcnQgc3RhbmRhcmREZXZpYXRpb24gc3RhdFJvdW5kICcgK1xuICAgICAgICAnc3RkRGV2IHN1bSBzeXNFcnJvciBzeXN0ZW1WZXJzaW9uIHRhbiB0ZW1wTmFtZSB0ZXh0RGVjb2RlIHRleHRFbmNvZGUgdGljayB0aWNrcyB0aW1lIHRvIHRva2VuT2Zmc2V0IHRvTG93ZXIgdG9VcHBlciAnICtcbiAgICAgICAgJ3RyYW5zcG9zZSB0cnVld29yZE9mZnNldCB0cnVuYyB1bmlEZWNvZGUgdW5pRW5jb2RlIHVwcGVyIFVSTERlY29kZSBVUkxFbmNvZGUgVVJMU3RhdHVzIHV1aWQgdmFsdWUgdmFyaWFibGVOYW1lcyAnICtcbiAgICAgICAgJ3ZhcmlhbmNlIHZlcnNpb24gd2FpdERlcHRoIHdlZWtkYXlOYW1lcyB3b3JkT2Zmc2V0IHhzbHRBcHBseVN0eWxlc2hlZXQgeHNsdEFwcGx5U3R5bGVzaGVldEZyb21GaWxlIHhzbHRMb2FkU3R5bGVzaGVldCAnICtcbiAgICAgICAgJ3hzbHRMb2FkU3R5bGVzaGVldEZyb21GaWxlIGFkZCBicmVha3BvaW50IGNhbmNlbCBjbGVhciBsb2NhbCB2YXJpYWJsZSBmaWxlIHdvcmQgbGluZSBmb2xkZXIgZGlyZWN0b3J5IFVSTCBjbG9zZSBzb2NrZXQgcHJvY2VzcyAnICtcbiAgICAgICAgJ2NvbWJpbmUgY29uc3RhbnQgY29udmVydCBjcmVhdGUgbmV3IGFsaWFzIGZvbGRlciBkaXJlY3RvcnkgZGVjcnlwdCBkZWxldGUgdmFyaWFibGUgd29yZCBsaW5lIGZvbGRlciAnICtcbiAgICAgICAgJ2RpcmVjdG9yeSBVUkwgZGlzcGF0Y2ggZGl2aWRlIGRvIGVuY3J5cHQgZmlsdGVyIGdldCBpbmNsdWRlIGludGVyc2VjdCBraWxsIGxpYlVSTERvd25sb2FkVG9GaWxlICcgK1xuICAgICAgICAnbGliVVJMRm9sbG93SHR0cFJlZGlyZWN0cyBsaWJVUkxmdHBVcGxvYWQgbGliVVJMZnRwVXBsb2FkRmlsZSBsaWJVUkxyZXNldEFsbCBsaWJVcmxTZXRBdXRoQ2FsbGJhY2sgJyArXG4gICAgICAgICdsaWJVUkxTZXRDdXN0b21IVFRQSGVhZGVycyBsaWJVcmxTZXRFeHBlY3QxMDAgbGliVVJMU2V0RlRQTGlzdENvbW1hbmQgbGliVVJMU2V0RlRQTW9kZSBsaWJVUkxTZXRGVFBTdG9wVGltZSAnICtcbiAgICAgICAgJ2xpYlVSTFNldFN0YXR1c0NhbGxiYWNrIGxvYWQgbXVsdGlwbHkgc29ja2V0IHByZXBhcmUgcHJvY2VzcyBwb3N0IHNlZWsgcmVsIHJlbGF0aXZlIHJlYWQgZnJvbSBwcm9jZXNzIHJlbmFtZSAnICtcbiAgICAgICAgJ3JlcGxhY2UgcmVxdWlyZSByZXNldEFsbCByZXNvbHZlIHJldkFkZFhNTE5vZGUgcmV2QXBwZW5kWE1MIHJldkNsb3NlQ3Vyc29yIHJldkNsb3NlRGF0YWJhc2UgcmV2Q29tbWl0RGF0YWJhc2UgJyArXG4gICAgICAgICdyZXZDb3B5RmlsZSByZXZDb3B5Rm9sZGVyIHJldkNvcHlYTUxOb2RlIHJldkRlbGV0ZUZvbGRlciByZXZEZWxldGVYTUxOb2RlIHJldkRlbGV0ZUFsbFhNTFRyZWVzICcgK1xuICAgICAgICAncmV2RGVsZXRlWE1MVHJlZSByZXZFeGVjdXRlU1FMIHJldkdvVVJMIHJldkluc2VydFhNTE5vZGUgcmV2TW92ZUZvbGRlciByZXZNb3ZlVG9GaXJzdFJlY29yZCByZXZNb3ZlVG9MYXN0UmVjb3JkICcgK1xuICAgICAgICAncmV2TW92ZVRvTmV4dFJlY29yZCByZXZNb3ZlVG9QcmV2aW91c1JlY29yZCByZXZNb3ZlVG9SZWNvcmQgcmV2TW92ZVhNTE5vZGUgcmV2UHV0SW50b1hNTE5vZGUgcmV2Um9sbEJhY2tEYXRhYmFzZSAnICtcbiAgICAgICAgJ3JldlNldERhdGFiYXNlRHJpdmVyUGF0aCByZXZTZXRYTUxBdHRyaWJ1dGUgcmV2WE1MUlBDX0FkZFBhcmFtIHJldlhNTFJQQ19EZWxldGVBbGxEb2N1bWVudHMgcmV2WE1MQWRkRFREICcgK1xuICAgICAgICAncmV2WE1MUlBDX0ZyZWUgcmV2WE1MUlBDX0ZyZWVBbGwgcmV2WE1MUlBDX0RlbGV0ZURvY3VtZW50IHJldlhNTFJQQ19EZWxldGVQYXJhbSByZXZYTUxSUENfU2V0SG9zdCAnICtcbiAgICAgICAgJ3JldlhNTFJQQ19TZXRNZXRob2QgcmV2WE1MUlBDX1NldFBvcnQgcmV2WE1MUlBDX1NldFByb3RvY29sIHJldlhNTFJQQ19TZXRTb2NrZXQgcmV2WmlwQWRkSXRlbVdpdGhEYXRhICcgK1xuICAgICAgICAncmV2WmlwQWRkSXRlbVdpdGhGaWxlIHJldlppcEFkZFVuY29tcHJlc3NlZEl0ZW1XaXRoRGF0YSByZXZaaXBBZGRVbmNvbXByZXNzZWRJdGVtV2l0aEZpbGUgcmV2WmlwQ2FuY2VsICcgK1xuICAgICAgICAncmV2WmlwQ2xvc2VBcmNoaXZlIHJldlppcERlbGV0ZUl0ZW0gcmV2WmlwRXh0cmFjdEl0ZW1Ub0ZpbGUgcmV2WmlwRXh0cmFjdEl0ZW1Ub1ZhcmlhYmxlIHJldlppcFNldFByb2dyZXNzQ2FsbGJhY2sgJyArXG4gICAgICAgICdyZXZaaXBSZW5hbWVJdGVtIHJldlppcFJlcGxhY2VJdGVtV2l0aERhdGEgcmV2WmlwUmVwbGFjZUl0ZW1XaXRoRmlsZSByZXZaaXBPcGVuQXJjaGl2ZSBzZW5kIHNldCBzb3J0IHNwbGl0IHN0YXJ0IHN0b3AgJyArXG4gICAgICAgICdzdWJ0cmFjdCB1bmlvbiB1bmxvYWQgd2FpdCB3cml0ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJlbmRcXFxcc2lmXFxcXGInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIFRJVExFMixcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgVElUTEUxXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYmVuZFxcXFxzKycsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2VuZCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIFRJVExFMVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjb21tYW5kIG9uJywgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBUSVRMRTFcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICc8XFxcXD8ocmV2fGxjfGxpdmVjb2RlKScsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnPFxcXFw/JyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcPz4nIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIFRJVExFMVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpLFxuICAgIGlsbGVnYWw6ICc7JHxeXFxcXFt8Xj18Jnx7J1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAvLyBKUyBrZXl3b3Jkc1xuICAgICAgJ2luIGlmIGZvciB3aGlsZSBmaW5hbGx5IG5ldyBkbyByZXR1cm4gZWxzZSBicmVhayBjYXRjaCBpbnN0YW5jZW9mIHRocm93IHRyeSB0aGlzICcgK1xuICAgICAgJ3N3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlIGRlYnVnZ2VyIGNhc2UgZGVmYXVsdCBmdW5jdGlvbiB2YXIgd2l0aCAnICtcbiAgICAgIC8vIExpdmVTY3JpcHQga2V5d29yZHNcbiAgICAgICd0aGVuIHVubGVzcyB1bnRpbCBsb29wIG9mIGJ5IHdoZW4gYW5kIG9yIGlzIGlzbnQgbm90IGl0IHRoYXQgb3RoZXJ3aXNlIGZyb20gdG8gdGlsIGZhbGx0aHJvdWdoIHN1cGVyICcgK1xuICAgICAgJ2Nhc2UgZGVmYXVsdCBmdW5jdGlvbiB2YXIgdm9pZCBjb25zdCBsZXQgZW51bSBleHBvcnQgaW1wb3J0IG5hdGl2ZSAnICtcbiAgICAgICdfX2hhc1Byb3AgX19leHRlbmRzIF9fc2xpY2UgX19iaW5kIF9faW5kZXhPZicsXG4gICAgbGl0ZXJhbDpcbiAgICAgIC8vIEpTIGxpdGVyYWxzXG4gICAgICAndHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCAnICtcbiAgICAgIC8vIExpdmVTY3JpcHQgbGl0ZXJhbHNcbiAgICAgICd5ZXMgbm8gb24gb2ZmIGl0IHRoYXQgdm9pZCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnbnBtIHJlcXVpcmUgY29uc29sZSBwcmludCBtb2R1bGUgZ2xvYmFsIHdpbmRvdyBkb2N1bWVudCdcbiAgfTtcbiAgdmFyIEpTX0lERU5UX1JFID0gJ1tBLVphLXokX10oPzpcXC1bMC05QS1aYS16JF9dfFswLTlBLVphLXokX10pKic7XG4gIHZhciBUSVRMRSA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogSlNfSURFTlRfUkV9KTtcbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLCBlbmQ6IC99LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgdmFyIFNVQlNUX1NJTVBMRSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jW0EtWmEteiRfXS8sIGVuZDogLyg/OlxcLVswLTlBLVphLXokX118WzAtOUEtWmEteiRfXSkqLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgdmFyIEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyhcXFxcYjBbeFhdW2EtZkEtRjAtOV9dKyl8KFxcXFxiXFxcXGQoXFxcXGR8X1xcXFxkKSooXFxcXC4oXFxcXGQoXFxcXGR8X1xcXFxkKSopPyk/KF8qW2VFXShbLStdXFxcXGQoX1xcXFxkfFxcXFxkKSopPyk/W19hLXpdKiknLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgc3RhcnRzOiB7ZW5kOiAnKFxcXFxzKi8pPycsIHJlbGV2YW5jZTogMH0gLy8gYSBudW1iZXIgdHJpZXMgdG8gZWF0IHRoZSBmb2xsb3dpbmcgc2xhc2ggdG8gcHJldmVudCB0cmVhdGluZyBpdCBhcyBhIHJlZ2V4cFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycnJy8sIGVuZDogLycnJy8sXG4gICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycvLCBlbmQ6IC8nLyxcbiAgICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXCJcIlwiLywgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRSwgU1VCU1QsIFNVQlNUX1NJTVBMRV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXCIvLCBlbmQ6IC9cIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFNVQlNULCBTVUJTVF9TSU1QTEVdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1xcXFwvLCBlbmQ6IC8oXFxzfCQpLyxcbiAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICcvLycsIGVuZDogJy8vW2dpbV0qJyxcbiAgICAgICAgICBjb250YWluczogW1NVQlNULCBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCBzcGFjZSB0byBwYXJzZSB4IC8gMiAvIDMgYXMgdHdvIGRpdmlzaW9uc1xuICAgICAgICAgIC8vIHJlZ2V4IGNhbid0IHN0YXJ0IHdpdGggKiwgYW5kIGl0IHN1cHBvcnRzIGFuIFwiaWxsZWdhbFwiIGluIHRoZSBtYWluIG1vZGVcbiAgICAgICAgICBiZWdpbjogL1xcLyg/IVsgKl0pKFxcXFxcXC98LikqP1xcL1tnaW1dKig/PVxcV3wkKS9cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46ICdAJyArIEpTX0lERU5UX1JFXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogJ2BgJywgZW5kOiAnYGAnLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdqYXZhc2NyaXB0J1xuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIC8qIFdlIG5lZWQgYW5vdGhlciBjb250YWluZWQgbmFtZWxlc3MgbW9kZSB0byBub3QgaGF2ZSBldmVyeSBuZXN0ZWRcbiAgICBwYWlyIG9mIHBhcmVucyB0byBiZSBjYWxsZWQgXCJwYXJhbXNcIiAqL1xuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogWydzZWxmJ10uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnbHMnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TLmNvbmNhdChbXG4gICAgICBobGpzLkNPTU1FTlQoJ1xcXFwvXFxcXConLCAnXFxcXCpcXFxcLycpLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBjb250YWluczogW1RJVExFLCBQQVJBTVNdLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJygnICsgSlNfSURFTlRfUkUgKyAnXFxcXHMqKD86PXw6PSlcXFxccyopPyhcXFxcKC4qXFxcXCkpP1xcXFxzKlxcXFxCXFxcXC0+XFxcXCo/JywgZW5kOiAnXFxcXC0+XFxcXCo/J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8hPyhcXFxcKC4qXFxcXCkpP1xcXFxzKlxcXFxCWy1+XXsxLDJ9PlxcXFwqPycsIGVuZDogJ1stfl17MSwyfT5cXFxcKj8nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJygnICsgSlNfSURFTlRfUkUgKyAnXFxcXHMqKD86PXw6PSlcXFxccyopPyhcXFxcKC4qXFxcXCkpP1xcXFxzKlxcXFxCIT9bLX5dezEsMn0+XFxcXCo/JywgZW5kOiAnIT9bLX5dezEsMn0+XFxcXCo/J1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgaWxsZWdhbDogL1s6PVwiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMnLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzo9XCJcXFtcXF1dLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbVElUTEVdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBUSVRMRVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogSlNfSURFTlRfUkUgKyAnOicsIGVuZDogJzonLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSwgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdKVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIGlkZW50aWZpZXIgPSAnKFstYS16QS1aJC5fXVtcXFxcd1xcXFwtJC5dKiknO1xuICByZXR1cm4ge1xuICAgIC8vbGV4ZW1lczogJ1suJV0/JyArIGhsanMuSURFTlRfUkUsXG4gICAga2V5d29yZHM6XG4gICAgICAnYmVnaW4gZW5kIHRydWUgZmFsc2UgZGVjbGFyZSBkZWZpbmUgZ2xvYmFsICcgK1xuICAgICAgJ2NvbnN0YW50IHByaXZhdGUgbGlua2VyX3ByaXZhdGUgaW50ZXJuYWwgJyArXG4gICAgICAnYXZhaWxhYmxlX2V4dGVybmFsbHkgbGlua29uY2UgbGlua29uY2Vfb2RyIHdlYWsgJyArXG4gICAgICAnd2Vha19vZHIgYXBwZW5kaW5nIGRsbGltcG9ydCBkbGxleHBvcnQgY29tbW9uICcgK1xuICAgICAgJ2RlZmF1bHQgaGlkZGVuIHByb3RlY3RlZCBleHRlcm5fd2VhayBleHRlcm5hbCAnICtcbiAgICAgICd0aHJlYWRfbG9jYWwgemVyb2luaXRpYWxpemVyIHVuZGVmIG51bGwgdG8gdGFpbCAnICtcbiAgICAgICd0YXJnZXQgdHJpcGxlIGRhdGFsYXlvdXQgdm9sYXRpbGUgbnV3IG5zdyBubmFuICcgK1xuICAgICAgJ25pbmYgbnN6IGFyY3AgZmFzdCBleGFjdCBpbmJvdW5kcyBhbGlnbiAnICtcbiAgICAgICdhZGRyc3BhY2Ugc2VjdGlvbiBhbGlhcyBtb2R1bGUgYXNtIHNpZGVlZmZlY3QgJyArXG4gICAgICAnZ2MgZGJnIGxpbmtlcl9wcml2YXRlX3dlYWsgYXR0cmlidXRlcyBibG9ja2FkZHJlc3MgJyArXG4gICAgICAnaW5pdGlhbGV4ZWMgbG9jYWxkeW5hbWljIGxvY2FsZXhlYyBwcmVmaXggdW5uYW1lZF9hZGRyICcgK1xuICAgICAgJ2NjYyBmYXN0Y2MgY29sZGNjIHg4Nl9zdGRjYWxsY2MgeDg2X2Zhc3RjYWxsY2MgJyArXG4gICAgICAnYXJtX2FwY3NjYyBhcm1fYWFwY3NjYyBhcm1fYWFwY3NfdmZwY2MgcHR4X2RldmljZSAnICtcbiAgICAgICdwdHhfa2VybmVsIGludGVsX29jbF9iaWNjIG1zcDQzMF9pbnRyY2Mgc3Bpcl9mdW5jICcgK1xuICAgICAgJ3NwaXJfa2VybmVsIHg4Nl82NF9zeXN2Y2MgeDg2XzY0X3dpbjY0Y2MgeDg2X3RoaXNjYWxsY2MgJyArXG4gICAgICAnY2MgYyBzaWduZXh0IHplcm9leHQgaW5yZWcgc3JldCBub3Vud2luZCAnICtcbiAgICAgICdub3JldHVybiBub2FsaWFzIG5vY2FwdHVyZSBieXZhbCBuZXN0IHJlYWRub25lICcgK1xuICAgICAgJ3JlYWRvbmx5IGlubGluZWhpbnQgbm9pbmxpbmUgYWx3YXlzaW5saW5lIG9wdHNpemUgc3NwICcgK1xuICAgICAgJ3NzcHJlcSBub3JlZHpvbmUgbm9pbXBsaWNpdGZsb2F0IG5ha2VkIGJ1aWx0aW4gY29sZCAnICtcbiAgICAgICdub2J1aWx0aW4gbm9kdXBsaWNhdGUgbm9ubGF6eWJpbmQgb3B0bm9uZSByZXR1cm5zX3R3aWNlICcgK1xuICAgICAgJ3Nhbml0aXplX2FkZHJlc3Mgc2FuaXRpemVfbWVtb3J5IHNhbml0aXplX3RocmVhZCBzc3BzdHJvbmcgJyArXG4gICAgICAndXd0YWJsZSByZXR1cm5lZCB0eXBlIG9wYXF1ZSBlcSBuZSBzbHQgc2d0ICcgK1xuICAgICAgJ3NsZSBzZ2UgdWx0IHVndCB1bGUgdWdlIG9lcSBvbmUgb2x0IG9ndCAnICtcbiAgICAgICdvbGUgb2dlIG9yZCB1bm8gdWVxIHVuZSB4IGFjcV9yZWwgYWNxdWlyZSAnICtcbiAgICAgICdhbGlnbnN0YWNrIGF0b21pYyBjYXRjaCBjbGVhbnVwIGZpbHRlciBpbnRlbGRpYWxlY3QgJyArXG4gICAgICAnbWF4IG1pbiBtb25vdG9uaWMgbmFuZCBwZXJzb25hbGl0eSByZWxlYXNlIHNlcV9jc3QgJyArXG4gICAgICAnc2luZ2xldGhyZWFkIHVtYXggdW1pbiB1bm9yZGVyZWQgeGNoZyBhZGQgZmFkZCAnICtcbiAgICAgICdzdWIgZnN1YiBtdWwgZm11bCB1ZGl2IHNkaXYgZmRpdiB1cmVtIHNyZW0gJyArXG4gICAgICAnZnJlbSBzaGwgbHNociBhc2hyIGFuZCBvciB4b3IgaWNtcCBmY21wICcgK1xuICAgICAgJ3BoaSBjYWxsIHRydW5jIHpleHQgc2V4dCBmcHRydW5jIGZwZXh0IHVpdG9mcCAnICtcbiAgICAgICdzaXRvZnAgZnB0b3VpIGZwdG9zaSBpbnR0b3B0ciBwdHJ0b2ludCBiaXRjYXN0ICcgK1xuICAgICAgJ2FkZHJzcGFjZWNhc3Qgc2VsZWN0IHZhX2FyZyByZXQgYnIgc3dpdGNoIGludm9rZSAnICtcbiAgICAgICd1bndpbmQgdW5yZWFjaGFibGUgaW5kaXJlY3RiciBsYW5kaW5ncGFkIHJlc3VtZSAnICtcbiAgICAgICdtYWxsb2MgYWxsb2NhIGZyZWUgbG9hZCBzdG9yZSBnZXRlbGVtZW50cHRyICcgK1xuICAgICAgJ2V4dHJhY3RlbGVtZW50IGluc2VydGVsZW1lbnQgc2h1ZmZsZXZlY3RvciBnZXRyZXN1bHQgJyArXG4gICAgICAnZXh0cmFjdHZhbHVlIGluc2VydHZhbHVlIGF0b21pY3JtdyBjbXB4Y2hnIGZlbmNlICcgK1xuICAgICAgJ2FyZ21lbW9ubHkgZG91YmxlJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICdpXFxcXGQrJ1xuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLCAnXFxcXG4nLCB7cmVsZXZhbmNlOiAwfVxuICAgICAgKSxcbiAgICAgIC8vIERvdWJsZSBxdW90ZSBzdHJpbmdcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgLy8gRG91YmxlLXF1b3RlZCBzdHJpbmdcbiAgICAgICAgICB7IGJlZ2luOiAnXCInLCBlbmQ6ICdbXlxcXFxcXFxcXVwiJyB9LFxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnQCcgKyBpZGVudGlmaWVyIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ0BcXFxcZCsnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJyEnICsgaWRlbnRpZmllciB9LFxuICAgICAgICAgIHsgYmVnaW46ICchXFxcXGQrJyArIGlkZW50aWZpZXIgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICclJyArIGlkZW50aWZpZXIgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnJVxcXFxkKycgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnI1xcXFxkKycgfSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHsgYmVnaW46ICcwW3hYXVthLWZBLUYwLTldKycgfSxcbiAgICAgICAgICAgIHsgYmVnaW46ICctP1xcXFxkKyg/OlsuXVxcXFxkKyk/KD86W2VFXVstK10/XFxcXGQrKD86Wy5dXFxcXGQrKT8pPycgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcblxuICAgIHZhciBMU0xfU1RSSU5HX0VTQ0FQRV9DSEFSUyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogL1xcXFxbdG5cIlxcXFxdL1xuICAgIH07XG5cbiAgICB2YXIgTFNMX1NUUklOR1MgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBMU0xfU1RSSU5HX0VTQ0FQRV9DSEFSU1xuICAgICAgICBdXG4gICAgfTtcblxuICAgIHZhciBMU0xfTlVNQkVSUyA9IHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IGhsanMuQ19OVU1CRVJfUkVcbiAgICB9O1xuXG4gICAgdmFyIExTTF9DT05TVEFOVFMgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoPzpQSXxUV09fUEl8UElfQllfVFdPfERFR19UT19SQUR8UkFEX1RPX0RFR3xTUVJUMilcXFxcYidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcYig/OlhQX0VSUk9SXyg/OkVYUEVSSUVOQ0VTX0RJU0FCTEVEfEVYUEVSSUVOQ0VfKD86RElTQUJMRUR8U1VTUEVOREVEKXxJTlZBTElEXyg/OkVYUEVSSUVOQ0V8UEFSQU1FVEVSUyl8S0VZX05PVF9GT1VORHxNQVRVUklUWV9FWENFRURFRHxOT05FfE5PVF8oPzpGT1VORHxQRVJNSVRURUQoPzpfTEFORCk/KXxOT19FWFBFUklFTkNFfFFVT1RBX0VYQ0VFREVEfFJFVFJZX1VQREFURXxTVE9SQUdFX0VYQ0VQVElPTnxTVE9SRV9ESVNBQkxFRHxUSFJPVFRMRUR8VU5LTk9XTl9FUlJPUil8SlNPTl9BUFBFTkR8U1RBVFVTXyg/OlBIWVNJQ1N8Uk9UQVRFX1tYWVpdfFBIQU5UT018U0FOREJPWHxCTE9DS19HUkFCKD86X09CSkVDVCk/fCg/OkRJRXxSRVRVUk4pX0FUX0VER0V8Q0FTVF9TSEFET1dTfE9LfE1BTEZPUk1FRF9QQVJBTVN8VFlQRV9NSVNNQVRDSHxCT1VORFNfRVJST1J8Tk9UXyg/OkZPVU5EfFNVUFBPUlRFRCl8SU5URVJOQUxfRVJST1J8V0hJVEVMSVNUX0ZBSUxFRCl8QUdFTlQoPzpfKD86QllfKD86TEVHQUNZX3xVU0VSKU5BTUV8RkxZSU5HfEFUVEFDSE1FTlRTfFNDUklQVEVEfE1PVVNFTE9PS3xTSVRUSU5HfE9OX09CSkVDVHxBV0FZfFdBTEtJTkd8SU5fQUlSfFRZUElOR3xDUk9VQ0hJTkd8QlVTWXxBTFdBWVNfUlVOfEFVVE9QSUxPVHxMSVNUXyg/OlBBUkNFTCg/Ol9PV05FUik/fFJFR0lPTikpKT98Q0FNRVJBXyg/OlBJVENIfERJU1RBTkNFfEJFSElORE5FU1NfKD86QU5HTEV8TEFHKXwoPzpGT0NVU3xQT1NJVElPTikoPzpfKD86VEhSRVNIT0xEfExPQ0tFRHxMQUcpKT98Rk9DVVNfT0ZGU0VUfEFDVElWRSl8QU5JTV9PTnxMT09QfFJFVkVSU0V8UElOR19QT05HfFNNT09USHxST1RBVEV8U0NBTEV8QUxMX1NJREVTfExJTktfKD86Uk9PVHxTRVR8QUxMXyg/Ok9USEVSU3xDSElMRFJFTil8VEhJUyl8QUNUSVZFfFBBU1MoPzpJVkV8Xyg/OkFMV0FZU3xJRl9OT1RfSEFORExFRHxORVZFUikpfFNDUklQVEVEfENPTlRST0xfKD86RldEfEJBQ0t8KD86Uk9UXyk/KD86TEVGVHxSSUdIVCl8VVB8RE9XTnwoPzpNTF8pP0xCVVRUT04pfFBFUk1JU1NJT05fKD86UkVUVVJOX09CSkVDVFN8REVCSVR8T1ZFUlJJREVfQU5JTUFUSU9OU3xTSUxFTlRfRVNUQVRFX01BTkFHRU1FTlR8VEFLRV9DT05UUk9MU3xUUklHR0VSX0FOSU1BVElPTnxBVFRBQ0h8Q0hBTkdFX0xJTktTfCg/OkNPTlRST0x8VFJBQ0spX0NBTUVSQXxURUxFUE9SVCl8SU5WRU5UT1JZXyg/OlRFWFRVUkV8U09VTkR8T0JKRUNUfFNDUklQVHxMQU5ETUFSS3xDTE9USElOR3xOT1RFQ0FSRHxCT0RZUEFSVHxBTklNQVRJT058R0VTVFVSRXxBTEx8Tk9ORSl8Q0hBTkdFRF8oPzpJTlZFTlRPUll8Q09MT1J8U0hBUEV8U0NBTEV8VEVYVFVSRXxMSU5LfEFMTE9XRURfRFJPUHxPV05FUnxSRUdJT04oPzpfU1RBUlQpP3xURUxFUE9SVHxNRURJQSl8T0JKRUNUXyg/OkNMSUNLX0FDVElPTnxIT1ZFUl9IRUlHSFR8TEFTVF9PV05FUl9JRHwoPzpQSFlTSUNTfFNFUlZFUnxTVFJFQU1JTkcpX0NPU1R8VU5LTk9XTl9ERVRBSUx8Q0hBUkFDVEVSX1RJTUV8UEhBTlRPTXxQSFlTSUNTfFRFTVBfT05fUkVafE5BTUV8REVTQ3xQT1N8UFJJTV8oPzpDT1VOVHxFUVVJVkFMRU5DRSl8UkVUVVJOXyg/OlBBUkNFTCg/Ol9PV05FUik/fFJFR0lPTil8UkVaWkVSX0tFWXxST08/VHxWRUxPQ0lUWXxPTUVHQXxPV05FUnxHUk9VUHxDUkVBVE9SfEFUVEFDSEVEX1BPSU5UfFJFTkRFUl9XRUlHSFR8KD86Qk9EWV9TSEFQRXxQQVRIRklORElORylfVFlQRXwoPzpSVU5OSU5HfFRPVEFMKV9TQ1JJUFRfQ09VTlR8VE9UQUxfSU5WRU5UT1JZX0NPVU5UfFNDUklQVF8oPzpNRU1PUll8VElNRSkpfFRZUEVfKD86SU5URUdFUnxGTE9BVHxTVFJJTkd8S0VZfFZFQ1RPUnxST1RBVElPTnxJTlZBTElEKXwoPzpERUJVR3xQVUJMSUMpX0NIQU5ORUx8QVRUQUNIXyg/OkFWQVRBUl9DRU5URVJ8Q0hFU1R8SEVBRHxCQUNLfFBFTFZJU3xNT1VUSHxDSElOfE5FQ0t8Tk9TRXxCRUxMWXxbTFJdKD86U0hPVUxERVJ8SEFORHxGT09UfEVBUnxFWUV8W1VMXSg/OkFSTXxMRUcpfEhJUCl8KD86TEVGVHxSSUdIVClfUEVDfEhVRF8oPzpDRU5URVJfWzEyXXxUT1BfKD86UklHSFR8Q0VOVEVSfExFRlQpfEJPVFRPTSg/Ol8oPzpSSUdIVHxMRUZUKSk/KXxbTFJdSEFORF9SSU5HMXxUQUlMXyg/OkJBU0V8VElQKXxbTFJdV0lOR3xGQUNFXyg/OkpBV3xbTFJdRUFSfFtMUl1FWUV8VE9VTkdFKXxHUk9JTnxISU5EX1tMUl1GT09UKXxMQU5EXyg/OkxFVkVMfFJBSVNFfExPV0VSfFNNT09USHxOT0lTRXxSRVZFUlQpfERBVEFfKD86T05MSU5FfE5BTUV8Qk9STnxTSU1fKD86UE9TfFNUQVRVU3xSQVRJTkcpfFBBWUlORk8pfFBBWU1FTlRfSU5GT18oPzpPTl9GSUxFfFVTRUQpfFJFTU9URV9EQVRBXyg/OkNIQU5ORUx8UkVRVUVTVHxSRVBMWSl8UFNZU18oPzpQQVJUXyg/OkJGXyg/OlpFUk98T05FKD86X01JTlVTXyg/OkRFU1RfQ09MT1J8U09VUkNFXyhBTFBIQXxDT0xPUikpKT98REVTVF9DT0xPUnxTT1VSQ0VfKEFMUEhBfENPTE9SKSl8QkxFTkRfRlVOQ18oREVTVHxTT1VSQ0UpfEZMQUdTfCg/OlNUQVJUfEVORClfKD86Q09MT1J8QUxQSEF8U0NBTEV8R0xPVyl8TUFYX0FHRXwoPzpSSUJCT058V0lORHxJTlRFUlBfKD86Q09MT1J8U0NBTEUpfEJPVU5DRXxGT0xMT1dfKD86U1JDfFZFTE9DSVRZKXxUQVJHRVRfKD86UE9TfExJTkVBUil8RU1JU1NJVkUpX01BU0spfFNSQ18oPzpNQVhfQUdFfFBBVFRFUk58QU5HTEVfKD86QkVHSU58RU5EKXxCVVJTVF8oPzpSQVRFfFBBUlRfQ09VTlR8UkFESVVTfFNQRUVEXyg/Ok1JTnxNQVgpKXxBQ0NFTHxURVhUVVJFfFRBUkdFVF9LRVl8T01FR0F8UEFUVEVSTl8oPzpEUk9QfEVYUExPREV8QU5HTEUoPzpfQ09ORSg/Ol9FTVBUWSk/KT8pKSl8VkVISUNMRV8oPzpSRUZFUkVOQ0VfRlJBTUV8VFlQRV8oPzpOT05FfFNMRUR8Q0FSfEJPQVR8QUlSUExBTkV8QkFMTE9PTil8KD86TElORUFSfEFOR1VMQVIpXyg/OkZSSUNUSU9OX1RJTUVTQ0FMRXxNT1RPUl9ESVJFQ1RJT04pfExJTkVBUl9NT1RPUl9PRkZTRVR8SE9WRVJfKD86SEVJR0hUfEVGRklDSUVOQ1l8VElNRVNDQUxFKXxCVU9ZQU5DWXwoPzpMSU5FQVJ8QU5HVUxBUilfKD86REVGTEVDVElPTl8oPzpFRkZJQ0lFTkNZfFRJTUVTQ0FMRSl8TU9UT1JfKD86REVDQVlfKT9USU1FU0NBTEUpfFZFUlRJQ0FMX0FUVFJBQ1RJT05fKD86RUZGSUNJRU5DWXxUSU1FU0NBTEUpfEJBTktJTkdfKD86RUZGSUNJRU5DWXxNSVh8VElNRVNDQUxFKXxGTEFHXyg/Ok5PX0RFRkxFQ1RJT05fVVB8TElNSVRfKD86Uk9MTF9PTkxZfE1PVE9SX1VQKXxIT1ZFUl8oPzooPzpXQVRFUnxURVJSQUlOfFVQKV9PTkxZfEdMT0JBTF9IRUlHSFQpfE1PVVNFTE9PS18oPzpTVEVFUnxCQU5LKXxDQU1FUkFfREVDT1VQTEVEKSl8UFJJTV8oPzpBTFBIQV9NT0RFKD86Xyg/OkJMRU5EfEVNSVNTSVZFfE1BU0t8Tk9ORSkpP3xOT1JNQUx8U1BFQ1VMQVJ8VFlQRSg/Ol8oPzpCT1h8Q1lMSU5ERVJ8UFJJU018U1BIRVJFfFRPUlVTfFRVQkV8UklOR3xTQ1VMUFQpKT98SE9MRV8oPzpERUZBVUxUfENJUkNMRXxTUVVBUkV8VFJJQU5HTEUpfE1BVEVSSUFMKD86Xyg/OlNUT05FfE1FVEFMfEdMQVNTfFdPT0R8RkxFU0h8UExBU1RJQ3xSVUJCRVIpKT98U0hJTllfKD86Tk9ORXxMT1d8TUVESVVNfEhJR0gpfEJVTVBfKD86Tk9ORXxCUklHSFR8REFSS3xXT09EfEJBUkt8QlJJQ0tTfENIRUNLRVJ8Q09OQ1JFVEV8VElMRXxTVE9ORXxESVNLU3xHUkFWRUx8QkxPQlN8U0lESU5HfExBUkdFVElMRXxTVFVDQ098U1VDVElPTnxXRUFWRSl8VEVYR0VOXyg/OkRFRkFVTFR8UExBTkFSKXxTQ1VMUFRfKD86VFlQRV8oPzpTUEhFUkV8VE9SVVN8UExBTkV8Q1lMSU5ERVJ8TUFTSyl8RkxBR18oPzpNSVJST1J8SU5WRVJUKSl8UEhZU0lDUyg/Ol8oPzpTSEFQRV8oPzpDT05WRVh8Tk9ORXxQUklNfFRZUEUpKSk/fCg/OlBPU3xST1QpX0xPQ0FMfFNMSUNFfFRFWFR8RkxFWElCTEV8UE9JTlRfTElHSFR8VEVNUF9PTl9SRVp8UEhBTlRPTXxQT1NJVElPTnxTSVpFfFJPVEFUSU9OfFRFWFRVUkV8TkFNRXxPTUVHQXxERVNDfExJTktfVEFSR0VUfENPTE9SfEJVTVBfU0hJTll8RlVMTEJSSUdIVHxURVhHRU58R0xPV3xNRURJQV8oPzpBTFRfSU1BR0VfRU5BQkxFfENPTlRST0xTfCg/OkNVUlJFTlR8SE9NRSlfVVJMfEFVVE9fKD86TE9PUHxQTEFZfFNDQUxFfFpPT00pfEZJUlNUX0NMSUNLX0lOVEVSQUNUfCg/OldJRFRIfEhFSUdIVClfUElYRUxTfFdISVRFTElTVCg/Ol9FTkFCTEUpP3xQRVJNU18oPzpJTlRFUkFDVHxDT05UUk9MKXxQQVJBTV9NQVh8Q09OVFJPTFNfKD86U1RBTkRBUkR8TUlOSSl8UEVSTV8oPzpOT05FfE9XTkVSfEdST1VQfEFOWU9ORSl8TUFYXyg/OlVSTF9MRU5HVEh8V0hJVEVMSVNUXyg/OlNJWkV8Q09VTlQpfCg/OldJRFRIfEhFSUdIVClfUElYRUxTKSkpfE1BU0tfKD86QkFTRXxPV05FUnxHUk9VUHxFVkVSWU9ORXxORVhUKXxQRVJNXyg/OlRSQU5TRkVSfE1PRElGWXxDT1BZfE1PVkV8QUxMKXxQQVJDRUxfKD86TUVESUFfQ09NTUFORF8oPzpTVE9QfFBBVVNFfFBMQVl8TE9PUHxURVhUVVJFfFVSTHxUSU1FfEFHRU5UfFVOTE9BRHxBVVRPX0FMSUdOfFRZUEV8U0laRXxERVNDfExPT1BfU0VUKXxGTEFHXyg/OkFMTE9XXyg/OkZMWXwoPzpHUk9VUF8pP1NDUklQVFN8TEFORE1BUkt8VEVSUkFGT1JNfERBTUFHRXxDUkVBVEVfKD86R1JPVVBfKT9PQkpFQ1RTKXxVU0VfKD86QUNDRVNTXyg/OkdST1VQfExJU1QpfEJBTl9MSVNUfExBTkRfUEFTU19MSVNUKXxMT0NBTF9TT1VORF9PTkxZfFJFU1RSSUNUX1BVU0hPQkpFQ1R8QUxMT1dfKD86R1JPVVB8QUxMKV9PQkpFQ1RfRU5UUlkpfENPVU5UXyg/OlRPVEFMfE9XTkVSfEdST1VQfE9USEVSfFNFTEVDVEVEfFRFTVApfERFVEFJTFNfKD86TkFNRXxERVNDfE9XTkVSfEdST1VQfEFSRUF8SUR8U0VFX0FWQVRBUlMpKXxMSVNUX1NUQVRfKD86TUFYfE1JTnxNRUFOfE1FRElBTnxTVERfREVWfFNVTSg/Ol9TUVVBUkVTKT98TlVNX0NPVU5UfEdFT01FVFJJQ19NRUFOfFJBTkdFKXxQQVlfKD86SElERXxERUZBVUxUKXxSRUdJT05fRkxBR18oPzpBTExPV19EQU1BR0V8RklYRURfU1VOfEJMT0NLX1RFUlJBRk9STXxTQU5EQk9YfERJU0FCTEVfKD86Q09MTElTSU9OU3xQSFlTSUNTKXxCTE9DS19GTFl8QUxMT1dfRElSRUNUX1RFTEVQT1JUfFJFU1RSSUNUX1BVU0hPQkpFQ1QpfEhUVFBfKD86TUVUSE9EfE1JTUVUWVBFfEJPRFlfKD86TUFYTEVOR1RIfFRSVU5DQVRFRCl8Q1VTVE9NX0hFQURFUnxQUkFHTUFfTk9fQ0FDSEV8VkVSQk9TRV9USFJPVFRMRXxWRVJJRllfQ0VSVCl8U1RSSU5HXyg/OlRSSU0oPzpfKD86SEVBRHxUQUlMKSk/KXxDTElDS19BQ1RJT05fKD86Tk9ORXxUT1VDSHxTSVR8QlVZfFBBWXxPUEVOKD86X01FRElBKT98UExBWXxaT09NKXxUT1VDSF9JTlZBTElEX0ZBQ0V8UFJPRklMRV8oPzpOT05FfFNDUklQVF9NRU1PUlkpfFJDXyg/OkRBVEFfRkxBR1N8REVURUNUX1BIQU5UT018R0VUXyg/OkxJTktfTlVNfE5PUk1BTHxST09UX0tFWSl8TUFYX0hJVFN8UkVKRUNUXyg/OlRZUEVTfEFHRU5UU3woPzpOT04pP1BIWVNJQ0FMfExBTkQpKXxSQ0VSUl8oPzpDQVNUX1RJTUVfRVhDRUVERUR8U0lNX1BFUkZfTE9XfFVOS05PV04pfEVTVEFURV9BQ0NFU1NfKD86QUxMT1dFRF8oPzpBR0VOVHxHUk9VUClfKD86QUREfFJFTU9WRSl8QkFOTkVEX0FHRU5UXyg/OkFERHxSRU1PVkUpKXxERU5TSVRZfEZSSUNUSU9OfFJFU1RJVFVUSU9OfEdSQVZJVFlfTVVMVElQTElFUnxLRk1fKD86Q09NTUFORHxDTURfKD86UExBWXxTVE9QfFBBVVNFKXxNT0RFfEZPUldBUkR8TE9PUHxQSU5HX1BPTkd8UkVWRVJTRXxEQVRBfFJPVEFUSU9OfFRSQU5TTEFUSU9OKXxFUlJfKD86R0VORVJJQ3xQQVJDRUxfUEVSTUlTU0lPTlN8TUFMRk9STUVEX1BBUkFNU3xSVU5USU1FX1BFUk1JU1NJT05TfFRIUk9UVExFRCl8Q0hBUkFDVEVSXyg/OkNNRF8oPzooPzpTTU9PVEhfKT9TVE9QfEpVTVApfERFU0lSRURfKD86VFVSTl8pP1NQRUVEfFJBRElVU3xTVEFZX1dJVEhJTl9QQVJDRUx8TEVOR1RIfE9SSUVOVEFUSU9OfEFDQ09VTlRfRk9SX1NLSVBQRURfRlJBTUVTfEFWT0lEQU5DRV9NT0RFfFRZUEUoPzpfKD86W0FCQ0RdfE5PTkUpKT98TUFYXyg/OkRFQ0VMfFRVUk5fUkFESVVTfCg/OkFDQ0VMfFNQRUVEKSkpfFBVUlNVSVRfKD86T0ZGU0VUfEZVWlpfRkFDVE9SfEdPQUxfVE9MRVJBTkNFfElOVEVSQ0VQVCl8UkVRVUlSRV9MSU5FX09GX1NJR0hUfEZPUkNFX0RJUkVDVF9QQVRIfFZFUlRJQ0FMfEhPUklaT05UQUx8QVZPSURfKD86Q0hBUkFDVEVSU3xEWU5BTUlDX09CU1RBQ0xFU3xOT05FKXxQVV8oPzpFVkFERV8oPzpISURERU58U1BPVFRFRCl8RkFJTFVSRV8oPzpEWU5BTUlDX1BBVEhGSU5ESU5HX0RJU0FCTEVEfElOVkFMSURfKD86R09BTHxTVEFSVCl8Tk9fKD86TkFWTUVTSHxWQUxJRF9ERVNUSU5BVElPTil8T1RIRVJ8VEFSR0VUX0dPTkV8KD86UEFSQ0VMXyk/VU5SRUFDSEFCTEUpfCg/OkdPQUx8U0xPV0RPV05fRElTVEFOQ0UpX1JFQUNIRUQpfFRSQVZFUlNBTF9UWVBFKD86Xyg/OkZBU1R8Tk9ORXxTTE9XKSk/fENPTlRFTlRfVFlQRV8oPzpBVE9NfEZPUk18SFRNTHxKU09OfExMU0R8UlNTfFRFWFR8WEhUTUx8WE1MKXxHQ05QXyg/OlJBRElVU3xTVEFUSUMpfCg/OlBBVFJPTHxXQU5ERVIpX1BBVVNFX0FUX1dBWVBPSU5UU3xPUFRfKD86QVZBVEFSfENIQVJBQ1RFUnxFWENMVVNJT05fVk9MVU1FfExFR0FDWV9MSU5LU0VUfE1BVEVSSUFMX1ZPTFVNRXxPVEhFUnxTVEFUSUNfT0JTVEFDTEV8V0FMS0FCTEUpfFNJTV9TVEFUX1BDVF9DSEFSU19TVEVQUEVEKVxcXFxiJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFxiKD86RkFMU0V8VFJVRSlcXFxcYidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcYig/OlpFUk9fUk9UQVRJT04pXFxcXGInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoPzpFT0Z8SlNPTl8oPzpBUlJBWXxERUxFVEV8RkFMU0V8SU5WQUxJRHxOVUxMfE5VTUJFUnxPQkpFQ1R8U1RSSU5HfFRSVUUpfE5VTExfS0VZfFRFWFRVUkVfKD86QkxBTkt8REVGQVVMVHxNRURJQXxQTFlXT09EfFRSQU5TUEFSRU5UKXxVUkxfUkVRVUVTVF8oPzpHUkFOVEVEfERFTklFRCkpXFxcXGInXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoPzpaRVJPX1ZFQ1RPUnxUT1VDSF9JTlZBTElEXyg/OlRFWENPT1JEfFZFQ1RPUikpXFxcXGInXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xuXG4gICAgdmFyIExTTF9GVU5DVElPTlMgPSB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYig/OmxsKD86QWdlbnRJbkV4cGVyaWVuY2V8KD86Q3JlYXRlfERhdGFTaXplfERlbGV0ZXxLZXlDb3VudHxLZXlzfFJlYWR8VXBkYXRlKUtleVZhbHVlfEdldEV4cGVyaWVuY2UoPzpEZXRhaWxzfEVycm9yTWVzc2FnZSl8UmV0dXJuT2JqZWN0c0J5KD86SUR8T3duZXIpfEpzb24oPzoyTGlzdHxbR1NdZXRWYWx1ZXxWYWx1ZVR5cGUpfFNpbnxDb3N8VGFufEF0YW4yfFNxcnR8UG93fEFic3xGYWJzfEZyYW5kfEZsb29yfENlaWx8Um91bmR8VmVjKD86TWFnfE5vcm18RGlzdCl8Um90KD86QmV0d2VlbnwyKD86RXVsZXJ8RndkfExlZnR8VXApKXwoPzpFdWxlcnxBeGVzKTJSb3R8V2hpc3BlcnwoPzpSZWdpb258T3duZXIpP1NheXxTaG91dHxMaXN0ZW4oPzpDb250cm9sfFJlbW92ZSk/fFNlbnNvcig/OlJlcGVhdHxSZW1vdmUpP3xEZXRlY3RlZCg/Ok5hbWV8S2V5fE93bmVyfFR5cGV8UG9zfFZlbHxHcmFifFJvdHxHcm91cHxMaW5rTnVtYmVyKXxEaWV8R3JvdW5kfFdpbmR8KD86W0dTXWV0KSg/OkFuaW1hdGlvbk92ZXJyaWRlfE1lbW9yeUxpbWl0fFByaW1NZWRpYVBhcmFtc3xQYXJjZWxNdXNpY1VSTHxPYmplY3QoPzpEZXNjfE5hbWUpfFBoeXNpY3NNYXRlcmlhbHxTdGF0dXN8U2NhbGV8Q29sb3J8QWxwaGF8VGV4dHVyZXxQb3N8Um90fEZvcmNlfFRvcnF1ZSl8UmVzZXRBbmltYXRpb25PdmVycmlkZXwoPzpTY2FsZXxPZmZzZXR8Um90YXRlKVRleHR1cmV8KD86Um90KT9UYXJnZXQoPzpSZW1vdmUpP3woPzpTdG9wKT9Nb3ZlVG9UYXJnZXR8QXBwbHkoPzpSb3RhdGlvbmFsKT9JbXB1bHNlfFNldCg/OktleWZyYW1lZE1vdGlvbnxDb250ZW50VHlwZXxSZWdpb25Qb3N8KD86QW5ndWxhcik/VmVsb2NpdHl8QnVveWFuY3l8SG92ZXJIZWlnaHR8Rm9yY2VBbmRUb3JxdWV8VGltZXJFdmVudHxTY3JpcHRTdGF0ZXxEYW1hZ2V8VGV4dHVyZUFuaW18U291bmQoPzpRdWV1ZWluZ3xSYWRpdXMpfFZlaGljbGUoPzpUeXBlfCg/OkZsb2F0fFZlY3RvcnxSb3RhdGlvbilQYXJhbSl8KD86VG91Y2h8U2l0KT9UZXh0fENhbWVyYSg/OkV5ZXxBdClPZmZzZXR8UHJpbWl0aXZlUGFyYW1zfENsaWNrQWN0aW9ufExpbmsoPzpBbHBoYXxDb2xvcnxQcmltaXRpdmVQYXJhbXMoPzpGYXN0KT98VGV4dHVyZSg/OkFuaW0pP3xDYW1lcmF8TWVkaWEpfFJlbW90ZVNjcmlwdEFjY2Vzc1BpbnxQYXlQcmljZXxMb2NhbFJvdCl8U2NhbGVCeUZhY3RvcnxHZXQoPzooPzpNYXh8TWluKVNjYWxlRmFjdG9yfENsb3Nlc3ROYXZQb2ludHxTdGF0aWNQYXRofFNpbVN0YXRzfEVudnxQcmltaXRpdmVQYXJhbXN8TGluayg/OlByaW1pdGl2ZVBhcmFtc3xOdW1iZXIoPzpPZlNpZGVzKT98S2V5fE5hbWV8TWVkaWEpfEhUVFBIZWFkZXJ8RnJlZVVSTHN8T2JqZWN0KD86RGV0YWlsc3xQZXJtTWFza3xQcmltQ291bnQpfFBhcmNlbCg/Ok1heFByaW1zfERldGFpbHN8UHJpbSg/OkNvdW50fE93bmVycykpfEF0dGFjaGVkKD86TGlzdCk/fCg/OlNQTWF4fEZyZWV8VXNlZClNZW1vcnl8UmVnaW9uKD86TmFtZXxUaW1lRGlsYXRpb258RlBTfENvcm5lcnxBZ2VudENvdW50KXxSb290KD86UG9zaXRpb258Um90YXRpb24pfFVuaXhUaW1lfCg/OlBhcmNlbHxSZWdpb24pRmxhZ3N8KD86V2FsbHxHTVQpY2xvY2t8U2ltdWxhdG9ySG9zdG5hbWV8Qm91bmRpbmdCb3h8R2VvbWV0cmljQ2VudGVyfENyZWF0b3J8TnVtYmVyT2YoPzpQcmltc3xOb3RlY2FyZExpbmVzfFNpZGVzKXxBbmltYXRpb24oPzpMaXN0KT98KD86Q2FtZXJhfExvY2FsKSg/OlBvc3xSb3QpfFZlbHxBY2NlbHxPbWVnYXxUaW1lKD86c3RhbXB8T2ZEYXkpfCg/Ok9iamVjdHxDZW50ZXJPZik/TWFzc3xNYXNzTUtTfEVuZXJneXxPd25lcnwoPzpPd25lcik/S2V5fFN1bkRpcmVjdGlvbnxUZXh0dXJlKD86T2Zmc2V0fFNjYWxlfFJvdCl8SW52ZW50b3J5KD86TnVtYmVyfE5hbWV8S2V5fFR5cGV8Q3JlYXRvcnxQZXJtTWFzayl8UGVybWlzc2lvbnMoPzpLZXkpP3xTdGFydFBhcmFtZXRlcnxMaXN0KD86TGVuZ3RofEVudHJ5VHlwZSl8RGF0ZXxBZ2VudCg/OlNpemV8SW5mb3xMYW5ndWFnZXxMaXN0KXxMYW5kT3duZXJBdHxOb3RlY2FyZExpbmV8U2NyaXB0KD86TmFtZXxTdGF0ZSkpfCg/OkdldHxSZXNldHxHZXRBbmRSZXNldClUaW1lfFBsYXlTb3VuZCg/OlNsYXZlKT98TG9vcFNvdW5kKD86TWFzdGVyfFNsYXZlKT98KD86VHJpZ2dlcnxTdG9wfFByZWxvYWQpU291bmR8KD86KD86R2V0fERlbGV0ZSlTdWJ8SW5zZXJ0KVN0cmluZ3xUbyg/OlVwcGVyfExvd2VyKXxHaXZlKD86SW52ZW50b3J5TGlzdHxNb25leSl8UmV6T2JqZWN0fCg/OlN0b3ApP0xvb2tBdHxTbGVlcHxDb2xsaXNpb25GaWx0ZXJ8KD86VGFrZXxSZWxlYXNlKUNvbnRyb2xzfERldGFjaEZyb21BdmF0YXJ8QXR0YWNoVG9BdmF0YXIoPzpUZW1wKT98SW5zdGFudE1lc3NhZ2V8KD86R2V0TmV4dCk/RW1haWx8U3RvcEhvdmVyfE1pbkV2ZW50RGVsYXl8Um90TG9va0F0fFN0cmluZyg/Okxlbmd0aHxUcmltKXwoPzpTdGFydHxTdG9wKUFuaW1hdGlvbnxUYXJnZXRPbWVnYXxSZXF1ZXN0KD86RXhwZXJpZW5jZSk/UGVybWlzc2lvbnN8KD86Q3JlYXRlfEJyZWFrKUxpbmt8QnJlYWtBbGxMaW5rc3woPzpHaXZlfFJlbW92ZSlJbnZlbnRvcnl8V2F0ZXJ8UGFzc1RvdWNoZXN8UmVxdWVzdCg/OkFnZW50fEludmVudG9yeSlEYXRhfFRlbGVwb3J0QWdlbnQoPzpIb21lfEdsb2JhbENvb3Jkcyk/fE1vZGlmeUxhbmR8Q29sbGlzaW9uU291bmR8UmVzZXRTY3JpcHR8TWVzc2FnZUxpbmtlZHxQdXNoT2JqZWN0fFBhc3NDb2xsaXNpb25zfEF4aXNBbmdsZTJSb3R8Um90Mig/OkF4aXN8QW5nbGUpfEEoPzpjb3N8c2luKXxBbmdsZUJldHdlZW58QWxsb3dJbnZlbnRvcnlEcm9wfFN1YlN0cmluZ0luZGV4fExpc3QyKD86Q1NWfEludGVnZXJ8SnNvbnxGbG9hdHxTdHJpbmd8S2V5fFZlY3RvcnxSb3R8TGlzdCg/OlN0cmlkZWQpPyl8RGVsZXRlU3ViTGlzdHxMaXN0KD86U3RhdGlzdGljc3xTb3J0fFJhbmRvbWl6ZXwoPzpJbnNlcnR8RmluZHxSZXBsYWNlKUxpc3QpfEVkZ2VPZldvcmxkfEFkanVzdFNvdW5kVm9sdW1lfEtleTJOYW1lfFRyaWdnZXJTb3VuZExpbWl0ZWR8RWplY3RGcm9tTGFuZHwoPzpDU1Z8UGFyc2VTdHJpbmcpMkxpc3R8T3Zlck15TGFuZHxTYW1lR3JvdXB8VW5TaXR8R3JvdW5kKD86U2xvcGV8Tm9ybWFsfENvbnRvdXIpfEdyb3VuZFJlcGVsfCg/OlNldHxSZW1vdmUpVmVoaWNsZUZsYWdzfCg/OkF2YXRhck9uKT8oPzpMaW5rKT9TaXRUYXJnZXR8U2NyaXB0KD86RGFuZ2VyfFByb2ZpbGVyKXxEaWFsb2d8Vm9sdW1lRGV0ZWN0fFJlc2V0T3RoZXJTY3JpcHR8UmVtb3RlTG9hZFNjcmlwdFBpbnwoPzpPcGVufENsb3NlKVJlbW90ZURhdGFDaGFubmVsfFNlbmRSZW1vdGVEYXRhfFJlbW90ZURhdGFSZXBseXwoPzpJbnRlZ2VyfFN0cmluZylUb0Jhc2U2NHxYb3JCYXNlNjR8TG9nKD86MTApP3xCYXNlNjRUbyg/OlN0cmluZ3xJbnRlZ2VyKXxQYXJzZVN0cmluZ0tlZXBOdWxsc3xSZXpBdFJvb3R8UmVxdWVzdFNpbXVsYXRvckRhdGF8Rm9yY2VNb3VzZWxvb2t8KD86TG9hZHxSZWxlYXNlfCg/OkV8VW5lKXNjYXBlKVVSTHxQYXJjZWxNZWRpYSg/OkNvbW1hbmRMaXN0fFF1ZXJ5KXxNb2RQb3d8TWFwRGVzdGluYXRpb258KD86UmVtb3ZlRnJvbXxBZGRUb3xSZXNldClMYW5kKD86UGFzc3xCYW4pTGlzdHwoPzpTZXR8Q2xlYXIpQ2FtZXJhUGFyYW1zfEhUVFAoPzpSZXF1ZXN0fFJlc3BvbnNlKXxUZXh0Qm94fERldGVjdGVkVG91Y2goPzpVVnxGYWNlfFBvc3woPzpOfEJpbilvcm1hbHxTVCl8KD86TUQ1fFNIQTF8RHVtcExpc3QyKVN0cmluZ3xSZXF1ZXN0KD86U2VjdXJlKT9VUkx8Q2xlYXIoPzpQcmltfExpbmspTWVkaWF8KD86TGluayk/UGFydGljbGVTeXN0ZW18KD86R2V0fFJlcXVlc3QpKD86VXNlcm5hbWV8RGlzcGxheU5hbWUpfFJlZ2lvblNheVRvfENhc3RSYXl8R2VuZXJhdGVLZXl8VHJhbnNmZXJMaW5kZW5Eb2xsYXJzfE1hbmFnZUVzdGF0ZUFjY2Vzc3woPzpDcmVhdGV8RGVsZXRlKUNoYXJhY3RlcnxFeGVjQ2hhcmFjdGVyQ21kfEV2YWRlfEZsZWVGcm9tfE5hdmlnYXRlVG98UGF0cm9sUG9pbnRzfFB1cnN1ZXxVcGRhdGVDaGFyYWN0ZXJ8V2FuZGVyV2l0aGluKSlcXFxcYidcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgaWxsZWdhbDogJzonLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgTFNMX1NUUklOR1MsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgaGxqcy5DT01NRU5UKCcvLycsICckJyksXG4gICAgICAgICAgICAgICAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExTTF9OVU1CRVJTLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoPzpzdGF0ZXxkZWZhdWx0KVxcXFxiJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFxiKD86c3RhdGVfKD86ZW50cnl8ZXhpdCl8dG91Y2goPzpfKD86c3RhcnR8ZW5kKSk/fCg/OmxhbmRfKT9jb2xsaXNpb24oPzpfKD86c3RhcnR8ZW5kKSk/fHRpbWVyfGxpc3RlbnwoPzpub18pP3NlbnNvcnxjb250cm9sfCg/Om5vdF8pP2F0Xyg/OnJvdF8pP3RhcmdldHxtb25leXxlbWFpbHxleHBlcmllbmNlX3Blcm1pc3Npb25zKD86X2RlbmllZCk/fHJ1bl90aW1lX3Blcm1pc3Npb25zfGNoYW5nZWR8YXR0YWNofGRhdGFzZXJ2ZXJ8bW92aW5nXyg/OnN0YXJ0fGVuZCl8bGlua19tZXNzYWdlfCg/Om9ufG9iamVjdClfcmV6fHJlbW90ZV9kYXRhfGh0dHBfcmUoPzpzcG9uc2V8cXVlc3QpfHBhdGhfdXBkYXRlfHRyYW5zYWN0aW9uX3Jlc3VsdClcXFxcYidcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMU0xfRlVOQ1RJT05TLFxuICAgICAgICAgICAgTFNMX0NPTlNUQU5UUyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFxiKD86aW50ZWdlcnxmbG9hdHxzdHJpbmd8a2V5fHZlY3RvcnxxdWF0ZXJuaW9ufHJvdGF0aW9ufGxpc3QpXFxcXGInXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIE9QRU5JTkdfTE9OR19CUkFDS0VUID0gJ1xcXFxbPSpcXFxcWyc7XG4gIHZhciBDTE9TSU5HX0xPTkdfQlJBQ0tFVCA9ICdcXFxcXT0qXFxcXF0nO1xuICB2YXIgTE9OR19CUkFDS0VUUyA9IHtcbiAgICBiZWdpbjogT1BFTklOR19MT05HX0JSQUNLRVQsIGVuZDogQ0xPU0lOR19MT05HX0JSQUNLRVQsXG4gICAgY29udGFpbnM6IFsnc2VsZiddXG4gIH07XG4gIHZhciBDT01NRU5UUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoJy0tKD8hJyArIE9QRU5JTkdfTE9OR19CUkFDS0VUICsgJyknLCAnJCcpLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICctLScgKyBPUEVOSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICAgIENMT1NJTkdfTE9OR19CUkFDS0VULFxuICAgICAge1xuICAgICAgICBjb250YWluczogW0xPTkdfQlJBQ0tFVFNdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgKVxuICBdO1xuICByZXR1cm4ge1xuICAgIGxleGVtZXM6IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbGl0ZXJhbDogXCJ0cnVlIGZhbHNlIG5pbFwiLFxuICAgICAga2V5d29yZDogXCJhbmQgYnJlYWsgZG8gZWxzZSBlbHNlaWYgZW5kIGZvciBnb3RvIGlmIGluIGxvY2FsIG5vdCBvciByZXBlYXQgcmV0dXJuIHRoZW4gdW50aWwgd2hpbGVcIixcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvL01ldGF0YWdzIGFuZCBnbG9iYWxzOlxuICAgICAgICAnX0cgX0VOViBfVkVSU0lPTiBfX2luZGV4IF9fbmV3aW5kZXggX19tb2RlIF9fY2FsbCBfX21ldGF0YWJsZSBfX3Rvc3RyaW5nIF9fbGVuICcgK1xuICAgICAgICAnX19nYyBfX2FkZCBfX3N1YiBfX211bCBfX2RpdiBfX21vZCBfX3BvdyBfX2NvbmNhdCBfX3VubSBfX2VxIF9fbHQgX19sZSBhc3NlcnQgJyArXG4gICAgICAgIC8vU3RhbmRhcmQgbWV0aG9kcyBhbmQgcHJvcGVydGllczpcbiAgICAgICAgJ2NvbGxlY3RnYXJiYWdlIGRvZmlsZSBlcnJvciBnZXRmZW52IGdldG1ldGF0YWJsZSBpcGFpcnMgbG9hZCBsb2FkZmlsZSBsb2Fkc3RyaW5nJyArXG4gICAgICAgICdtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgc2VsZWN0IHNldGZlbnYnICtcbiAgICAgICAgJ3NldG1ldGF0YWJsZSB0b251bWJlciB0b3N0cmluZyB0eXBlIHVucGFjayB4cGNhbGwgYXJnIHNlbGYnICtcbiAgICAgICAgLy9MaWJyYXJ5IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgKG9uZSBsaW5lIHBlciBsaWJyYXJ5KTpcbiAgICAgICAgJ2Nvcm91dGluZSByZXN1bWUgeWllbGQgc3RhdHVzIHdyYXAgY3JlYXRlIHJ1bm5pbmcgZGVidWcgZ2V0dXB2YWx1ZSAnICtcbiAgICAgICAgJ2RlYnVnIHNldGhvb2sgZ2V0bWV0YXRhYmxlIGdldGhvb2sgc2V0bWV0YXRhYmxlIHNldGxvY2FsIHRyYWNlYmFjayBzZXRmZW52IGdldGluZm8gc2V0dXB2YWx1ZSBnZXRsb2NhbCBnZXRyZWdpc3RyeSBnZXRmZW52ICcgK1xuICAgICAgICAnaW8gbGluZXMgd3JpdGUgY2xvc2UgZmx1c2ggb3BlbiBvdXRwdXQgdHlwZSByZWFkIHN0ZGVyciBzdGRpbiBpbnB1dCBzdGRvdXQgcG9wZW4gdG1wZmlsZSAnICtcbiAgICAgICAgJ21hdGggbG9nIG1heCBhY29zIGh1Z2UgbGRleHAgcGkgY29zIHRhbmggcG93IGRlZyB0YW4gY29zaCBzaW5oIHJhbmRvbSByYW5kb21zZWVkIGZyZXhwIGNlaWwgZmxvb3IgcmFkIGFicyBzcXJ0IG1vZGYgYXNpbiBtaW4gbW9kIGZtb2QgbG9nMTAgYXRhbjIgZXhwIHNpbiBhdGFuICcgK1xuICAgICAgICAnb3MgZXhpdCBzZXRsb2NhbGUgZGF0ZSBnZXRlbnYgZGlmZnRpbWUgcmVtb3ZlIHRpbWUgY2xvY2sgdG1wbmFtZSByZW5hbWUgZXhlY3V0ZSBwYWNrYWdlIHByZWxvYWQgbG9hZGxpYiBsb2FkZWQgbG9hZGVycyBjcGF0aCBjb25maWcgcGF0aCBzZWVhbGwgJyArXG4gICAgICAgICdzdHJpbmcgc3ViIHVwcGVyIGxlbiBnZmluZCByZXAgZmluZCBtYXRjaCBjaGFyIGR1bXAgZ21hdGNoIHJldmVyc2UgYnl0ZSBmb3JtYXQgZ3N1YiBsb3dlciAnICtcbiAgICAgICAgJ3RhYmxlIHNldG4gaW5zZXJ0IGdldG4gZm9yZWFjaGkgbWF4biBmb3JlYWNoIGNvbmNhdCBzb3J0IHJlbW92ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBDT01NRU5UUy5jb25jYXQoW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46ICcoW19hLXpBLVpdXFxcXHcqXFxcXC4pKihbX2EtekEtWl1cXFxcdyo6KT9bX2EtekEtWl1cXFxcdyonfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLCBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBDT01NRU5UU1xuICAgICAgICAgIH1cbiAgICAgICAgXS5jb25jYXQoQ09NTUVOVFMpXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IE9QRU5JTkdfTE9OR19CUkFDS0VULCBlbmQ6IENMT1NJTkdfTE9OR19CUkFDS0VULFxuICAgICAgICBjb250YWluczogW0xPTkdfQlJBQ0tFVFNdLFxuICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgIH1cbiAgICBdKVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgLyogVmFyaWFibGVzOiBzaW1wbGUgKGVnICQodmFyKSkgYW5kIHNwZWNpYWwgKGVnICRAKSAqL1xuICB2YXIgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcKCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXCknLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcJFtAJTw/XFxeXFwrXFwqXS9cbiAgICAgIH0sXG4gICAgXVxuICB9O1xuICAvKiBRdW90ZWQgc3RyaW5nIHdpdGggdmFyaWFibGVzIGluc2lkZSAqL1xuICB2YXIgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cIi8sIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEUsXG4gICAgXVxuICB9O1xuICAvKiBGdW5jdGlvbjogJChmdW5jIGFyZywuLi4pICovXG4gIHZhciBGVU5DID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1xcJFxcKFtcXHctXStcXHMvLCBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ3N1YnN0IHBhdHN1YnN0IHN0cmlwIGZpbmRzdHJpbmcgZmlsdGVyIGZpbHRlci1vdXQgc29ydCAnICtcbiAgICAgICAgJ3dvcmQgd29yZGxpc3QgZmlyc3R3b3JkIGxhc3R3b3JkIGRpciBub3RkaXIgc3VmZml4IGJhc2VuYW1lICcgK1xuICAgICAgICAnYWRkc3VmZml4IGFkZHByZWZpeCBqb2luIHdpbGRjYXJkIHJlYWxwYXRoIGFic3BhdGggZXJyb3Igd2FybmluZyAnICtcbiAgICAgICAgJ3NoZWxsIG9yaWdpbiBmbGF2b3IgZm9yZWFjaCBpZiBvciBhbmQgY2FsbCBldmFsIGZpbGUgdmFsdWUnLFxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFZBUklBQkxFLFxuICAgIF1cbiAgfTtcbiAgLyogVmFyaWFibGUgYXNzaWdubWVudCAqL1xuICB2YXIgVkFSX0FTU0lHID0ge1xuICAgIGJlZ2luOiAnXicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMqWzorP10/PScsXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ14nICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLCBlbmQ6ICdbOis/XT89JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIC8qIE1ldGEgdGFyZ2V0cyAoLlBIT05ZKSAqL1xuICB2YXIgTUVUQSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogL15cXC5QSE9OWTovLCBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnLlBIT05ZJ30sXG4gICAgbGV4ZW1lczogL1tcXC5cXHddKy9cbiAgfTtcbiAgLyogVGFyZ2V0cyAqL1xuICB2YXIgVEFSR0VUID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIGJlZ2luOiAvXlteXFxzXSs6LywgZW5kOiAvJC8sXG4gICAgY29udGFpbnM6IFtWQVJJQUJMRSxdXG4gIH07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydtaycsICdtYWsnXSxcbiAgICBrZXl3b3JkczpcbiAgICAgICdkZWZpbmUgZW5kZWYgdW5kZWZpbmUgaWZkZWYgaWZuZGVmIGlmZXEgaWZuZXEgZWxzZSBlbmRpZiAnICtcbiAgICAgICdpbmNsdWRlIC1pbmNsdWRlIHNpbmNsdWRlIG92ZXJyaWRlIGV4cG9ydCB1bmV4cG9ydCBwcml2YXRlIHZwYXRoJyxcbiAgICBsZXhlbWVzOiAvW1xcdy1dKy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEZVTkMsXG4gICAgICBWQVJfQVNTSUcsXG4gICAgICBNRVRBLFxuICAgICAgVEFSR0VULFxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydtbWEnXSxcbiAgICBsZXhlbWVzOiAnKFxcXFwkfFxcXFxiKScgKyBobGpzLklERU5UX1JFICsgJ1xcXFxiJyxcbiAgICBrZXl3b3JkczogJ0FiZWxpYW5Hcm91cCBBYm9ydCBBYm9ydEtlcm5lbHMgQWJvcnRQcm90ZWN0IEFib3ZlIEFicyBBYnNvbHV0ZSBBYnNvbHV0ZUNvcnJlbGF0aW9uIEFic29sdXRlQ29ycmVsYXRpb25GdW5jdGlvbiBBYnNvbHV0ZUN1cnJlbnRWYWx1ZSBBYnNvbHV0ZURhc2hpbmcgQWJzb2x1dGVGaWxlTmFtZSBBYnNvbHV0ZU9wdGlvbnMgQWJzb2x1dGVQb2ludFNpemUgQWJzb2x1dGVUaGlja25lc3MgQWJzb2x1dGVUaW1lIEFic29sdXRlVGltaW5nIEFjY291bnRpbmdGb3JtIEFjY3VtdWxhdGUgQWNjdXJhY3kgQWNjdXJhY3lHb2FsIEFjdGlvbkRlbGF5IEFjdGlvbk1lbnUgQWN0aW9uTWVudUJveCBBY3Rpb25NZW51Qm94T3B0aW9ucyBBY3RpdmUgQWN0aXZlSXRlbSBBY3RpdmVTdHlsZSBBY3ljbGljR3JhcGhRIEFkZE9uSGVscFBhdGggQWRkVG8gQWRqYWNlbmN5R3JhcGggQWRqYWNlbmN5TGlzdCBBZGphY2VuY3lNYXRyaXggQWRqdXN0bWVudEJveCBBZGp1c3RtZW50Qm94T3B0aW9ucyBBZGp1c3RUaW1lU2VyaWVzRm9yZWNhc3QgQWZmaW5lVHJhbnNmb3JtIEFmdGVyIEFpcnlBaSBBaXJ5QWlQcmltZSBBaXJ5QWlaZXJvIEFpcnlCaSBBaXJ5QmlQcmltZSBBaXJ5QmlaZXJvIEFsZ2VicmFpY0ludGVnZXJRIEFsZ2VicmFpY051bWJlciBBbGdlYnJhaWNOdW1iZXJEZW5vbWluYXRvciBBbGdlYnJhaWNOdW1iZXJOb3JtIEFsZ2VicmFpY051bWJlclBvbHlub21pYWwgQWxnZWJyYWljTnVtYmVyVHJhY2UgQWxnZWJyYWljUnVsZXMgQWxnZWJyYWljUnVsZXNEYXRhIEFsZ2VicmFpY3MgQWxnZWJyYWljVW5pdFEgQWxpZ25tZW50IEFsaWdubWVudE1hcmtlciBBbGlnbm1lbnRQb2ludCBBbGwgQWxsb3dlZERpbWVuc2lvbnMgQWxsb3dHcm91cENsb3NlIEFsbG93SW5saW5lQ2VsbHMgQWxsb3dLZXJuZWxJbml0aWFsaXphdGlvbiBBbGxvd1JldmVyc2VHcm91cENsb3NlIEFsbG93U2NyaXB0TGV2ZWxDaGFuZ2UgQWxwaGFDaGFubmVsIEFsdGVybmF0aW5nR3JvdXAgQWx0ZXJuYXRpdmVIeXBvdGhlc2lzIEFsdGVybmF0aXZlcyBBbWJpZW50TGlnaHQgQW5hbHl0aWMgQW5jaG9yZWRTZWFyY2ggQW5kIEFuZGVyc29uRGFybGluZ1Rlc3QgQW5nZXJKIEFuZ2xlQnJhY2tldCBBbmd1bGFyR2F1Z2UgQW5pbWF0ZSBBbmltYXRpb25DeWNsZU9mZnNldCBBbmltYXRpb25DeWNsZVJlcGV0aXRpb25zIEFuaW1hdGlvbkRpcmVjdGlvbiBBbmltYXRpb25EaXNwbGF5VGltZSBBbmltYXRpb25SYXRlIEFuaW1hdGlvblJlcGV0aXRpb25zIEFuaW1hdGlvblJ1bm5pbmcgQW5pbWF0b3IgQW5pbWF0b3JCb3ggQW5pbWF0b3JCb3hPcHRpb25zIEFuaW1hdG9yRWxlbWVudHMgQW5ub3RhdGlvbiBBbm51aXR5IEFubnVpdHlEdWUgQW50aWFsaWFzaW5nIEFudGlzeW1tZXRyaWMgQXBhcnQgQXBhcnRTcXVhcmVGcmVlIEFwcGVhcmFuY2UgQXBwZWFyYW5jZUVsZW1lbnRzIEFwcGVsbEYxIEFwcGVuZCBBcHBlbmRUbyBBcHBseSBBcmNDb3MgQXJjQ29zaCBBcmNDb3QgQXJjQ290aCBBcmNDc2MgQXJjQ3NjaCBBcmNTZWMgQXJjU2VjaCBBcmNTaW4gQXJjU2luRGlzdHJpYnV0aW9uIEFyY1NpbmggQXJjVGFuIEFyY1RhbmggQXJnIEFyZ01heCBBcmdNaW4gQXJndW1lbnRDb3VudFEgQVJJTUFQcm9jZXNzIEFyaXRobWV0aWNHZW9tZXRyaWNNZWFuIEFSTUFQcm9jZXNzIEFSUHJvY2VzcyBBcnJheSBBcnJheUNvbXBvbmVudHMgQXJyYXlEZXB0aCBBcnJheUZsYXR0ZW4gQXJyYXlQYWQgQXJyYXlQbG90IEFycmF5USBBcnJheVJlc2hhcGUgQXJyYXlSdWxlcyBBcnJheXMgQXJyb3cgQXJyb3czREJveCBBcnJvd0JveCBBcnJvd2hlYWRzIEFzcGVjdFJhdGlvIEFzcGVjdFJhdGlvRml4ZWQgQXNzZXJ0IEFzc3VtaW5nIEFzc3VtcHRpb25zIEFzdHJvbm9taWNhbERhdGEgQXN5bmNocm9ub3VzIEFzeW5jaHJvbm91c1Rhc2tPYmplY3QgQXN5bmNocm9ub3VzVGFza3MgQXRvbVEgQXR0cmlidXRlcyBBdWdtZW50ZWRTeW1tZXRyaWNQb2x5bm9taWFsIEF1dG9BY3Rpb24gQXV0b0RlbGV0ZSBBdXRvRXZhbHVhdGVFdmVudHMgQXV0b0dlbmVyYXRlZFBhY2thZ2UgQXV0b0luZGVudCBBdXRvSW5kZW50U3BhY2luZ3MgQXV0b0l0YWxpY1dvcmRzIEF1dG9sb2FkUGF0aCBBdXRvTWF0Y2ggQXV0b21hdGljIEF1dG9tYXRpY0ltYWdlU2l6ZSBBdXRvTXVsdGlwbGljYXRpb25TeW1ib2wgQXV0b051bWJlckZvcm1hdHRpbmcgQXV0b09wZW5Ob3RlYm9va3MgQXV0b09wZW5QYWxldHRlcyBBdXRvcnVuU2VxdWVuY2luZyBBdXRvU2NhbGluZyBBdXRvU2Nyb2xsIEF1dG9TcGFjaW5nIEF1dG9TdHlsZU9wdGlvbnMgQXV0b1N0eWxlV29yZHMgQXhlcyBBeGVzRWRnZSBBeGVzTGFiZWwgQXhlc09yaWdpbiBBeGVzU3R5bGUgQXhpcyAnICtcbiAgICAgICdCYWJ5TW9uc3Rlckdyb3VwQiBCYWNrIEJhY2tncm91bmQgQmFja2dyb3VuZFRhc2tzU2V0dGluZ3MgQmFja3NsYXNoIEJhY2tzdWJzdGl0dXRpb24gQmFja3dhcmQgQmFuZCBCYW5kcGFzc0ZpbHRlciBCYW5kc3RvcEZpbHRlciBCYXJhYmFzaUFsYmVydEdyYXBoRGlzdHJpYnV0aW9uIEJhckNoYXJ0IEJhckNoYXJ0M0QgQmFyTGVnZW5kIEJhcmxvd1Byb3NjaGFuSW1wb3J0YW5jZSBCYXJuZXNHIEJhck9yaWdpbiBCYXJTcGFjaW5nIEJhcnRsZXR0SGFubldpbmRvdyBCYXJ0bGV0dFdpbmRvdyBCYXNlRm9ybSBCYXNlbGluZSBCYXNlbGluZVBvc2l0aW9uIEJhc2VTdHlsZSBCYXRlc0Rpc3RyaWJ1dGlvbiBCYXR0bGVMZW1hcmllV2F2ZWxldCBCZWNhdXNlIEJlY2ttYW5uRGlzdHJpYnV0aW9uIEJlZXAgQmVmb3JlIEJlZ2luIEJlZ2luRGlhbG9nUGFja2V0IEJlZ2luRnJvbnRFbmRJbnRlcmFjdGlvblBhY2tldCBCZWdpblBhY2thZ2UgQmVsbEIgQmVsbFkgQmVsb3cgQmVuZm9yZERpc3RyaWJ1dGlvbiBCZW5pbmlEaXN0cmlidXRpb24gQmVua3RhbmRlckdpYnJhdERpc3RyaWJ1dGlvbiBCZW5rdGFuZGVyV2VpYnVsbERpc3RyaWJ1dGlvbiBCZXJub3VsbGlCIEJlcm5vdWxsaURpc3RyaWJ1dGlvbiBCZXJub3VsbGlHcmFwaERpc3RyaWJ1dGlvbiBCZXJub3VsbGlQcm9jZXNzIEJlcm5zdGVpbkJhc2lzIEJlc3NlbEZpbHRlck1vZGVsIEJlc3NlbEkgQmVzc2VsSiBCZXNzZWxKWmVybyBCZXNzZWxLIEJlc3NlbFkgQmVzc2VsWVplcm8gQmV0YSBCZXRhQmlub21pYWxEaXN0cmlidXRpb24gQmV0YURpc3RyaWJ1dGlvbiBCZXRhTmVnYXRpdmVCaW5vbWlhbERpc3RyaWJ1dGlvbiBCZXRhUHJpbWVEaXN0cmlidXRpb24gQmV0YVJlZ3VsYXJpemVkIEJldHdlZW5uZXNzQ2VudHJhbGl0eSBCZXppZXJDdXJ2ZSBCZXppZXJDdXJ2ZTNEQm94IEJlemllckN1cnZlM0RCb3hPcHRpb25zIEJlemllckN1cnZlQm94IEJlemllckN1cnZlQm94T3B0aW9ucyBCZXppZXJGdW5jdGlvbiBCaWxhdGVyYWxGaWx0ZXIgQmluYXJpemUgQmluYXJ5Rm9ybWF0IEJpbmFyeUltYWdlUSBCaW5hcnlSZWFkIEJpbmFyeVJlYWRMaXN0IEJpbmFyeVdyaXRlIEJpbkNvdW50cyBCaW5MaXN0cyBCaW5vbWlhbCBCaW5vbWlhbERpc3RyaWJ1dGlvbiBCaW5vbWlhbFByb2Nlc3MgQmlub3JtYWxEaXN0cmlidXRpb24gQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldCBCaXBhcnRpdGVHcmFwaFEgQmlybmJhdW1JbXBvcnRhbmNlIEJpcm5iYXVtU2F1bmRlcnNEaXN0cmlidXRpb24gQml0QW5kIEJpdENsZWFyIEJpdEdldCBCaXRMZW5ndGggQml0Tm90IEJpdE9yIEJpdFNldCBCaXRTaGlmdExlZnQgQml0U2hpZnRSaWdodCBCaXRYb3IgQmxhY2sgQmxhY2ttYW5IYXJyaXNXaW5kb3cgQmxhY2ttYW5OdXR0YWxsV2luZG93IEJsYWNrbWFuV2luZG93IEJsYW5rIEJsYW5rRm9ybSBCbGFua051bGxTZXF1ZW5jZSBCbGFua1NlcXVlbmNlIEJsZW5kIEJsb2NrIEJsb2NrUmFuZG9tIEJsb21xdmlzdEJldGEgQmxvbXF2aXN0QmV0YVRlc3QgQmx1ZSBCbHVyIEJvZGVQbG90IEJvaG1hbldpbmRvdyBCb2xkIEJvb2ttYXJrcyBCb29sZSBCb29sZWFuQ29uc2VjdXRpdmVGdW5jdGlvbiBCb29sZWFuQ29udmVydCBCb29sZWFuQ291bnRpbmdGdW5jdGlvbiBCb29sZWFuRnVuY3Rpb24gQm9vbGVhbkdyYXBoIEJvb2xlYW5NYXh0ZXJtcyBCb29sZWFuTWluaW1pemUgQm9vbGVhbk1pbnRlcm1zIEJvb2xlYW5zIEJvb2xlYW5UYWJsZSBCb29sZWFuVmFyaWFibGVzIEJvcmRlckRpbWVuc2lvbnMgQm9yZWxUYW5uZXJEaXN0cmlidXRpb24gQm90dG9tIEJvdHRvbUhhdFRyYW5zZm9ybSBCb3VuZGFyeVN0eWxlIEJvdW5kcyBCb3ggQm94QmFzZWxpbmVTaGlmdCBCb3hEYXRhIEJveERpbWVuc2lvbnMgQm94ZWQgQm94ZXMgQm94Rm9ybSBCb3hGb3JtRm9ybWF0VHlwZXMgQm94RnJhbWUgQm94SUQgQm94TWFyZ2lucyBCb3hNYXRyaXggQm94UmF0aW9zIEJveFJvdGF0aW9uIEJveFJvdGF0aW9uUG9pbnQgQm94U3R5bGUgQm94V2hpc2tlckNoYXJ0IEJyYSBCcmFja2V0aW5nQmFyIEJyYUtldCBCcmF5Q3VydGlzRGlzdGFuY2UgQnJlYWR0aEZpcnN0U2NhbiBCcmVhayBCcm93biBCcm93bkZvcnN5dGhlVGVzdCBCcm93bmlhbkJyaWRnZVByb2Nlc3MgQnJvd3NlckNhdGVnb3J5IEJTcGxpbmVCYXNpcyBCU3BsaW5lQ3VydmUgQlNwbGluZUN1cnZlM0RCb3ggQlNwbGluZUN1cnZlQm94IEJTcGxpbmVDdXJ2ZUJveE9wdGlvbnMgQlNwbGluZUZ1bmN0aW9uIEJTcGxpbmVTdXJmYWNlIEJTcGxpbmVTdXJmYWNlM0RCb3ggQnViYmxlQ2hhcnQgQnViYmxlQ2hhcnQzRCBCdWJibGVTY2FsZSBCdWJibGVTaXplcyBCdWxsZXRHYXVnZSBCdXNpbmVzc0RheVEgQnV0dGVyZmx5R3JhcGggQnV0dGVyd29ydGhGaWx0ZXJNb2RlbCBCdXR0b24gQnV0dG9uQmFyIEJ1dHRvbkJveCBCdXR0b25Cb3hPcHRpb25zIEJ1dHRvbkNlbGwgQnV0dG9uQ29udGVudHMgQnV0dG9uRGF0YSBCdXR0b25FdmFsdWF0b3IgQnV0dG9uRXhwYW5kYWJsZSBCdXR0b25GcmFtZSBCdXR0b25GdW5jdGlvbiBCdXR0b25NYXJnaW5zIEJ1dHRvbk1pbkhlaWdodCBCdXR0b25Ob3RlIEJ1dHRvbk5vdGVib29rIEJ1dHRvblNvdXJjZSBCdXR0b25TdHlsZSBCdXR0b25TdHlsZU1lbnVMaXN0aW5nIEJ5dGUgQnl0ZUNvdW50IEJ5dGVPcmRlcmluZyAnICtcbiAgICAgICdDIENhY2hlZFZhbHVlIENhY2hlR3JhcGhpY3MgQ2FsZW5kYXJEYXRhIENhbGVuZGFyVHlwZSBDYWxsUGFja2V0IENhbmJlcnJhRGlzdGFuY2UgQ2FuY2VsIENhbmNlbEJ1dHRvbiBDYW5kbGVzdGlja0NoYXJ0IENhcCBDYXBGb3JtIENhcGl0YWxEaWZmZXJlbnRpYWxEIENhcmRpbmFsQlNwbGluZUJhc2lzIENhcm1pY2hhZWxMYW1iZGEgQ2FzZXMgQ2FzaGZsb3cgQ2Fzb3JhdGlhbiBDYXRhbGFuIENhdGFsYW5OdW1iZXIgQ2F0Y2ggQ2F1Y2h5RGlzdHJpYnV0aW9uIENhdWNoeVdpbmRvdyBDYXlsZXlHcmFwaCBDREYgQ0RGRGVwbG95IENERkluZm9ybWF0aW9uIENERldhdmVsZXQgQ2VpbGluZyBDZWxsIENlbGxBdXRvT3ZlcndyaXRlIENlbGxCYXNlbGluZSBDZWxsQm91bmRpbmdCb3ggQ2VsbEJyYWNrZXRPcHRpb25zIENlbGxDaGFuZ2VUaW1lcyBDZWxsQ29udGVudHMgQ2VsbENvbnRleHQgQ2VsbERpbmdiYXQgQ2VsbER5bmFtaWNFeHByZXNzaW9uIENlbGxFZGl0RHVwbGljYXRlIENlbGxFbGVtZW50c0JvdW5kaW5nQm94IENlbGxFbGVtZW50U3BhY2luZ3MgQ2VsbEVwaWxvZyBDZWxsRXZhbHVhdGlvbkR1cGxpY2F0ZSBDZWxsRXZhbHVhdGlvbkZ1bmN0aW9uIENlbGxFdmVudEFjdGlvbnMgQ2VsbEZyYW1lIENlbGxGcmFtZUNvbG9yIENlbGxGcmFtZUxhYmVsTWFyZ2lucyBDZWxsRnJhbWVMYWJlbHMgQ2VsbEZyYW1lTWFyZ2lucyBDZWxsR3JvdXAgQ2VsbEdyb3VwRGF0YSBDZWxsR3JvdXBpbmcgQ2VsbEdyb3VwaW5nUnVsZXMgQ2VsbEhvcml6b250YWxTY3JvbGxpbmcgQ2VsbElEIENlbGxMYWJlbCBDZWxsTGFiZWxBdXRvRGVsZXRlIENlbGxMYWJlbE1hcmdpbnMgQ2VsbExhYmVsUG9zaXRpb25pbmcgQ2VsbE1hcmdpbnMgQ2VsbE9iamVjdCBDZWxsT3BlbiBDZWxsUHJpbnQgQ2VsbFByb2xvZyBDZWxscyBDZWxsU2l6ZSBDZWxsU3R5bGUgQ2VsbFRhZ3MgQ2VsbHVsYXJBdXRvbWF0b24gQ2Vuc29yZWREaXN0cmlidXRpb24gQ2Vuc29yaW5nIENlbnRlciBDZW50ZXJEb3QgQ2VudHJhbE1vbWVudCBDZW50cmFsTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uIENGb3JtIENoYW1wZXJub3duZU51bWJlciBDaGFuVmVzZUJpbmFyaXplIENoYXJhY3RlciBDaGFyYWN0ZXJFbmNvZGluZyBDaGFyYWN0ZXJFbmNvZGluZ3NQYXRoIENoYXJhY3RlcmlzdGljRnVuY3Rpb24gQ2hhcmFjdGVyaXN0aWNQb2x5bm9taWFsIENoYXJhY3RlclJhbmdlIENoYXJhY3RlcnMgQ2hhcnRCYXNlU3R5bGUgQ2hhcnRFbGVtZW50RGF0YSBDaGFydEVsZW1lbnREYXRhRnVuY3Rpb24gQ2hhcnRFbGVtZW50RnVuY3Rpb24gQ2hhcnRFbGVtZW50cyBDaGFydExhYmVscyBDaGFydExheW91dCBDaGFydExlZ2VuZHMgQ2hhcnRTdHlsZSBDaGVieXNoZXYxRmlsdGVyTW9kZWwgQ2hlYnlzaGV2MkZpbHRlck1vZGVsIENoZWJ5c2hldkRpc3RhbmNlIENoZWJ5c2hldlQgQ2hlYnlzaGV2VSBDaGVjayBDaGVja0Fib3J0IENoZWNrQWxsIENoZWNrYm94IENoZWNrYm94QmFyIENoZWNrYm94Qm94IENoZWNrYm94Qm94T3B0aW9ucyBDaGVtaWNhbERhdGEgQ2hlc3Nib2FyZERpc3RhbmNlIENoaURpc3RyaWJ1dGlvbiBDaGluZXNlUmVtYWluZGVyIENoaVNxdWFyZURpc3RyaWJ1dGlvbiBDaG9pY2VCdXR0b25zIENob2ljZURpYWxvZyBDaG9sZXNreURlY29tcG9zaXRpb24gQ2hvcCBDaXJjbGUgQ2lyY2xlQm94IENpcmNsZURvdCBDaXJjbGVNaW51cyBDaXJjbGVQbHVzIENpcmNsZVRpbWVzIENpcmN1bGFudEdyYXBoIENpdHlEYXRhIENsZWFyIENsZWFyQWxsIENsZWFyQXR0cmlidXRlcyBDbGVhclN5c3RlbUNhY2hlIENsZWJzY2hHb3JkYW4gQ2xpY2tQYW5lIENsaXAgQ2xpcGJvYXJkTm90ZWJvb2sgQ2xpcEZpbGwgQ2xpcHBpbmdTdHlsZSBDbGlwUGxhbmVzIENsaXBSYW5nZSBDbG9jayBDbG9ja0dhdWdlIENsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbCBDbG9zZSBDbG9zZWQgQ2xvc2VLZXJuZWxzIENsb3NlbmVzc0NlbnRyYWxpdHkgQ2xvc2luZyBDbG9zaW5nQXV0b1NhdmUgQ2xvc2luZ0V2ZW50IENsdXN0ZXJpbmdDb21wb25lbnRzIENNWUtDb2xvciBDb2Fyc2UgQ29lZmZpY2llbnQgQ29lZmZpY2llbnRBcnJheXMgQ29lZmZpY2llbnREb21haW4gQ29lZmZpY2llbnRMaXN0IENvZWZmaWNpZW50UnVsZXMgQ29pZmxldFdhdmVsZXQgQ29sbGVjdCBDb2xvbiBDb2xvbkZvcm0gQ29sb3JDb21iaW5lIENvbG9yQ29udmVydCBDb2xvckRhdGEgQ29sb3JEYXRhRnVuY3Rpb24gQ29sb3JGdW5jdGlvbiBDb2xvckZ1bmN0aW9uU2NhbGluZyBDb2xvcml6ZSBDb2xvck5lZ2F0ZSBDb2xvck91dHB1dCBDb2xvclByb2ZpbGVEYXRhIENvbG9yUXVhbnRpemUgQ29sb3JSZXBsYWNlIENvbG9yUnVsZXMgQ29sb3JTZWxlY3RvclNldHRpbmdzIENvbG9yU2VwYXJhdGUgQ29sb3JTZXR0ZXIgQ29sb3JTZXR0ZXJCb3ggQ29sb3JTZXR0ZXJCb3hPcHRpb25zIENvbG9yU2xpZGVyIENvbG9yU3BhY2UgQ29sdW1uIENvbHVtbkFsaWdubWVudHMgQ29sdW1uQmFja2dyb3VuZHMgQ29sdW1uRm9ybSBDb2x1bW5MaW5lcyBDb2x1bW5zRXF1YWwgQ29sdW1uU3BhY2luZ3MgQ29sdW1uV2lkdGhzIENvbW1vbkRlZmF1bHRGb3JtYXRUeXBlcyBDb21tb25lc3QgQ29tbW9uZXN0RmlsdGVyIENvbW1vblVuaXRzIENvbW11bml0eUJvdW5kYXJ5U3R5bGUgQ29tbXVuaXR5R3JhcGhQbG90IENvbW11bml0eUxhYmVscyBDb21tdW5pdHlSZWdpb25TdHlsZSBDb21wYXRpYmxlVW5pdFEgQ29tcGlsYXRpb25PcHRpb25zIENvbXBpbGF0aW9uVGFyZ2V0IENvbXBpbGUgQ29tcGlsZWQgQ29tcGlsZWRGdW5jdGlvbiBDb21wbGVtZW50IENvbXBsZXRlR3JhcGggQ29tcGxldGVHcmFwaFEgQ29tcGxldGVLYXJ5VHJlZSBDb21wbGV0aW9uc0xpc3RQYWNrZXQgQ29tcGxleCBDb21wbGV4ZXMgQ29tcGxleEV4cGFuZCBDb21wbGV4SW5maW5pdHkgQ29tcGxleGl0eUZ1bmN0aW9uIENvbXBvbmVudE1lYXN1cmVtZW50cyAnICtcbiAgICAgICdDb21wb25lbnR3aXNlQ29udGV4dE1lbnUgQ29tcG9zZSBDb21wb3NlTGlzdCBDb21wb3NlU2VyaWVzIENvbXBvc2l0aW9uIENvbXBvdW5kRXhwcmVzc2lvbiBDb21wb3VuZFBvaXNzb25EaXN0cmlidXRpb24gQ29tcG91bmRQb2lzc29uUHJvY2VzcyBDb21wb3VuZFJlbmV3YWxQcm9jZXNzIENvbXByZXNzIENvbXByZXNzZWREYXRhIENvbmRpdGlvbiBDb25kaXRpb25hbEV4cHJlc3Npb24gQ29uZGl0aW9uZWQgQ29uZSBDb25lQm94IENvbmZpZGVuY2VMZXZlbCBDb25maWRlbmNlUmFuZ2UgQ29uZmlkZW5jZVRyYW5zZm9ybSBDb25maWd1cmF0aW9uUGF0aCBDb25ncnVlbnQgQ29uanVnYXRlIENvbmp1Z2F0ZVRyYW5zcG9zZSBDb25qdW5jdGlvbiBDb25uZWN0IENvbm5lY3RlZENvbXBvbmVudHMgQ29ubmVjdGVkR3JhcGhRIENvbm5lc1dpbmRvdyBDb25vdmVyVGVzdCBDb25zb2xlTWVzc2FnZSBDb25zb2xlTWVzc2FnZVBhY2tldCBDb25zb2xlUHJpbnQgQ29uc3RhbnQgQ29uc3RhbnRBcnJheSBDb25zdGFudHMgQ29uc3RyYWluZWRNYXggQ29uc3RyYWluZWRNaW4gQ29udGVudFBhZGRpbmcgQ29udGVudHNCb3VuZGluZ0JveCBDb250ZW50U2VsZWN0YWJsZSBDb250ZW50U2l6ZSBDb250ZXh0IENvbnRleHRNZW51IENvbnRleHRzIENvbnRleHRUb0ZpbGVuYW1lIENvbnRleHRUb0ZpbGVOYW1lIENvbnRpbnVhdGlvbiBDb250aW51ZSBDb250aW51ZWRGcmFjdGlvbiBDb250aW51ZWRGcmFjdGlvbksgQ29udGludW91c0FjdGlvbiBDb250aW51b3VzTWFya292UHJvY2VzcyBDb250aW51b3VzVGltZU1vZGVsUSBDb250aW51b3VzV2F2ZWxldERhdGEgQ29udGludW91c1dhdmVsZXRUcmFuc2Zvcm0gQ29udG91ckRldGVjdCBDb250b3VyR3JhcGhpY3MgQ29udG91ckludGVncmFsIENvbnRvdXJMYWJlbHMgQ29udG91ckxpbmVzIENvbnRvdXJQbG90IENvbnRvdXJQbG90M0QgQ29udG91cnMgQ29udG91clNoYWRpbmcgQ29udG91clNtb290aGluZyBDb250b3VyU3R5bGUgQ29udHJhaGFybW9uaWNNZWFuIENvbnRyb2wgQ29udHJvbEFjdGl2ZSBDb250cm9sQWxpZ25tZW50IENvbnRyb2xsYWJpbGl0eUdyYW1pYW4gQ29udHJvbGxhYmlsaXR5TWF0cml4IENvbnRyb2xsYWJsZURlY29tcG9zaXRpb24gQ29udHJvbGxhYmxlTW9kZWxRIENvbnRyb2xsZXJEdXJhdGlvbiBDb250cm9sbGVySW5mb3JtYXRpb24gQ29udHJvbGxlckluZm9ybWF0aW9uRGF0YSBDb250cm9sbGVyTGlua2luZyBDb250cm9sbGVyTWFuaXB1bGF0ZSBDb250cm9sbGVyTWV0aG9kIENvbnRyb2xsZXJQYXRoIENvbnRyb2xsZXJTdGF0ZSBDb250cm9sUGxhY2VtZW50IENvbnRyb2xzUmVuZGVyaW5nIENvbnRyb2xUeXBlIENvbnZlcmdlbnRzIENvbnZlcnNpb25PcHRpb25zIENvbnZlcnNpb25SdWxlcyBDb252ZXJ0VG9CaXRtYXBQYWNrZXQgQ29udmVydFRvUG9zdFNjcmlwdCBDb252ZXJ0VG9Qb3N0U2NyaXB0UGFja2V0IENvbnZvbHZlIENvbndheUdyb3VwQ28xIENvbndheUdyb3VwQ28yIENvbndheUdyb3VwQ28zIENvb3JkaW5hdGVDaGFydERhdGEgQ29vcmRpbmF0ZXNUb29sT3B0aW9ucyBDb29yZGluYXRlVHJhbnNmb3JtIENvb3JkaW5hdGVUcmFuc2Zvcm1EYXRhIENvcHJpbWVRIENvcHJvZHVjdCBDb3B1bGFEaXN0cmlidXRpb24gQ29weWFibGUgQ29weURpcmVjdG9yeSBDb3B5RmlsZSBDb3B5VGFnIENvcHlUb0NsaXBib2FyZCBDb3JuZXJGaWx0ZXIgQ29ybmVyTmVpZ2hib3JzIENvcnJlbGF0aW9uIENvcnJlbGF0aW9uRGlzdGFuY2UgQ29ycmVsYXRpb25GdW5jdGlvbiBDb3JyZWxhdGlvblRlc3QgQ29zIENvc2ggQ29zaEludGVncmFsIENvc2luZURpc3RhbmNlIENvc2luZVdpbmRvdyBDb3NJbnRlZ3JhbCBDb3QgQ290aCBDb3VudCBDb3VudGVyQXNzaWdubWVudHMgQ291bnRlckJveCBDb3VudGVyQm94T3B0aW9ucyBDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsIENvdW50ZXJFdmFsdWF0b3IgQ291bnRlckZ1bmN0aW9uIENvdW50ZXJJbmNyZW1lbnRzIENvdW50ZXJTdHlsZSBDb3VudGVyU3R5bGVNZW51TGlzdGluZyBDb3VudFJvb3RzIENvdW50cnlEYXRhIENvdmFyaWFuY2UgQ292YXJpYW5jZUVzdGltYXRvckZ1bmN0aW9uIENvdmFyaWFuY2VGdW5jdGlvbiBDb3hpYW5EaXN0cmlidXRpb24gQ294SW5nZXJzb2xsUm9zc1Byb2Nlc3MgQ294TW9kZWwgQ294TW9kZWxGaXQgQ3JhbWVyVm9uTWlzZXNUZXN0IENyZWF0ZUFyY2hpdmUgQ3JlYXRlRGlhbG9nIENyZWF0ZURpcmVjdG9yeSBDcmVhdGVEb2N1bWVudCBDcmVhdGVJbnRlcm1lZGlhdGVEaXJlY3RvcmllcyBDcmVhdGVQYWxldHRlIENyZWF0ZVBhbGV0dGVQYWNrZXQgQ3JlYXRlU2NoZWR1bGVkVGFzayBDcmVhdGVUZW1wb3JhcnkgQ3JlYXRlV2luZG93IENyaXRpY2FsaXR5RmFpbHVyZUltcG9ydGFuY2UgQ3JpdGljYWxpdHlTdWNjZXNzSW1wb3J0YW5jZSBDcml0aWNhbFNlY3Rpb24gQ3Jvc3MgQ3Jvc3NpbmdEZXRlY3QgQ3Jvc3NNYXRyaXggQ3NjIENzY2ggQ3ViZVJvb3QgQ3ViaWNzIEN1Ym9pZCBDdWJvaWRCb3ggQ3VtdWxhbnQgQ3VtdWxhbnRHZW5lcmF0aW5nRnVuY3Rpb24gQ3VwIEN1cENhcCBDdXJsIEN1cmx5RG91YmxlUXVvdGUgQ3VybHlRdW90ZSBDdXJyZW50SW1hZ2UgQ3VycmVudGx5U3BlYWtpbmdQYWNrZXQgQ3VycmVudFZhbHVlIEN1cnZhdHVyZUZsb3dGaWx0ZXIgQ3VydmVDbG9zZWQgQ3lhbiBDeWNsZUdyYXBoIEN5Y2xlSW5kZXhQb2x5bm9taWFsIEN5Y2xlcyBDeWNsaWNHcm91cCBDeWNsb3RvbWljIEN5bGluZGVyIEN5bGluZGVyQm94IEN5bGluZHJpY2FsRGVjb21wb3NpdGlvbiAnICtcbiAgICAgICdEIERhZ3VtRGlzdHJpYnV0aW9uIERhbWVyYXVMZXZlbnNodGVpbkRpc3RhbmNlIERhbXBpbmdGYWN0b3IgRGFya2VyIERhc2hlZCBEYXNoaW5nIERhdGFDb21wcmVzc2lvbiBEYXRhRGlzdHJpYnV0aW9uIERhdGFSYW5nZSBEYXRhUmV2ZXJzZWQgRGF0ZSBEYXRlRGVsaW1pdGVycyBEYXRlRGlmZmVyZW5jZSBEYXRlRnVuY3Rpb24gRGF0ZUxpc3QgRGF0ZUxpc3RMb2dQbG90IERhdGVMaXN0UGxvdCBEYXRlUGF0dGVybiBEYXRlUGx1cyBEYXRlUmFuZ2UgRGF0ZVN0cmluZyBEYXRlVGlja3NGb3JtYXQgRGF1YmVjaGllc1dhdmVsZXQgRGF2aXNEaXN0cmlidXRpb24gRGF3c29uRiBEYXlDb3VudCBEYXlDb3VudENvbnZlbnRpb24gRGF5TWF0Y2hRIERheU5hbWUgRGF5UGx1cyBEYXlSYW5nZSBEYXlSb3VuZCBEZUJydWlqbkdyYXBoIERlYnVnIERlYnVnVGFnIERlY2ltYWwgRGVjbGFyZUtub3duU3ltYm9scyBEZWNsYXJlUGFja2FnZSBEZWNvbXBvc2UgRGVjcmVtZW50IERlZGVraW5kRXRhIERlZmF1bHQgRGVmYXVsdEF4ZXNTdHlsZSBEZWZhdWx0QmFzZVN0eWxlIERlZmF1bHRCb3hTdHlsZSBEZWZhdWx0QnV0dG9uIERlZmF1bHRDb2xvciBEZWZhdWx0Q29udHJvbFBsYWNlbWVudCBEZWZhdWx0RHVwbGljYXRlQ2VsbFN0eWxlIERlZmF1bHREdXJhdGlvbiBEZWZhdWx0RWxlbWVudCBEZWZhdWx0RmFjZUdyaWRzU3R5bGUgRGVmYXVsdEZpZWxkSGludFN0eWxlIERlZmF1bHRGb250IERlZmF1bHRGb250UHJvcGVydGllcyBEZWZhdWx0Rm9ybWF0VHlwZSBEZWZhdWx0Rm9ybWF0VHlwZUZvclN0eWxlIERlZmF1bHRGcmFtZVN0eWxlIERlZmF1bHRGcmFtZVRpY2tzU3R5bGUgRGVmYXVsdEdyaWRMaW5lc1N0eWxlIERlZmF1bHRJbmxpbmVGb3JtYXRUeXBlIERlZmF1bHRJbnB1dEZvcm1hdFR5cGUgRGVmYXVsdExhYmVsU3R5bGUgRGVmYXVsdE1lbnVTdHlsZSBEZWZhdWx0TmF0dXJhbExhbmd1YWdlIERlZmF1bHROZXdDZWxsU3R5bGUgRGVmYXVsdE5ld0lubGluZUNlbGxTdHlsZSBEZWZhdWx0Tm90ZWJvb2sgRGVmYXVsdE9wdGlvbnMgRGVmYXVsdE91dHB1dEZvcm1hdFR5cGUgRGVmYXVsdFN0eWxlIERlZmF1bHRTdHlsZURlZmluaXRpb25zIERlZmF1bHRUZXh0Rm9ybWF0VHlwZSBEZWZhdWx0VGV4dElubGluZUZvcm1hdFR5cGUgRGVmYXVsdFRpY2tzU3R5bGUgRGVmYXVsdFRvb2x0aXBTdHlsZSBEZWZhdWx0VmFsdWVzIERlZmVyIERlZmluZUV4dGVybmFsIERlZmluZUlucHV0U3RyZWFtTWV0aG9kIERlZmluZU91dHB1dFN0cmVhbU1ldGhvZCBEZWZpbml0aW9uIERlZ3JlZSBEZWdyZWVDZW50cmFsaXR5IERlZ3JlZUdyYXBoRGlzdHJpYnV0aW9uIERlZ3JlZUxleGljb2dyYXBoaWMgRGVncmVlUmV2ZXJzZUxleGljb2dyYXBoaWMgRGVpbml0aWFsaXphdGlvbiBEZWwgRGVsZXRhYmxlIERlbGV0ZSBEZWxldGVCb3JkZXJDb21wb25lbnRzIERlbGV0ZUNhc2VzIERlbGV0ZUNvbnRlbnRzIERlbGV0ZURpcmVjdG9yeSBEZWxldGVEdXBsaWNhdGVzIERlbGV0ZUZpbGUgRGVsZXRlU21hbGxDb21wb25lbnRzIERlbGV0ZVdpdGhDb250ZW50cyBEZWxldGlvbldhcm5pbmcgRGVsaW1pdGVyIERlbGltaXRlckZsYXNoVGltZSBEZWxpbWl0ZXJNYXRjaGluZyBEZWxpbWl0ZXJzIERlbm9taW5hdG9yIERlbnNpdHlHcmFwaGljcyBEZW5zaXR5SGlzdG9ncmFtIERlbnNpdHlQbG90IERlcGVuZGVudFZhcmlhYmxlcyBEZXBsb3kgRGVwbG95ZWQgRGVwdGggRGVwdGhGaXJzdFNjYW4gRGVyaXZhdGl2ZSBEZXJpdmF0aXZlRmlsdGVyIERlc2NyaXB0b3JTdGF0ZVNwYWNlIERlc2lnbk1hdHJpeCBEZXQgREdhdXNzaWFuV2F2ZWxldCBEaWFjcml0aWNhbFBvc2l0aW9uaW5nIERpYWdvbmFsIERpYWdvbmFsTWF0cml4IERpYWxvZyBEaWFsb2dJbmRlbnQgRGlhbG9nSW5wdXQgRGlhbG9nTGV2ZWwgRGlhbG9nTm90ZWJvb2sgRGlhbG9nUHJvbG9nIERpYWxvZ1JldHVybiBEaWFsb2dTeW1ib2xzIERpYW1vbmQgRGlhbW9uZE1hdHJpeCBEaWNlRGlzc2ltaWxhcml0eSBEaWN0aW9uYXJ5TG9va3VwIERpZmZlcmVuY2VEZWx0YSBEaWZmZXJlbmNlT3JkZXIgRGlmZmVyZW5jZVJvb3QgRGlmZmVyZW5jZVJvb3RSZWR1Y2UgRGlmZmVyZW5jZXMgRGlmZmVyZW50aWFsRCBEaWZmZXJlbnRpYWxSb290IERpZmZlcmVudGlhbFJvb3RSZWR1Y2UgRGlmZmVyZW50aWF0b3JGaWx0ZXIgRGlnaXRCbG9jayBEaWdpdEJsb2NrTWluaW11bSBEaWdpdENoYXJhY3RlciBEaWdpdENvdW50IERpZ2l0USBEaWhlZHJhbEdyb3VwIERpbGF0aW9uIERpbWVuc2lvbnMgRGlyYWNDb21iIERpcmFjRGVsdGEgRGlyZWN0ZWRFZGdlIERpcmVjdGVkRWRnZXMgRGlyZWN0ZWRHcmFwaCBEaXJlY3RlZEdyYXBoUSBEaXJlY3RlZEluZmluaXR5IERpcmVjdGlvbiBEaXJlY3RpdmUgRGlyZWN0b3J5IERpcmVjdG9yeU5hbWUgRGlyZWN0b3J5USBEaXJlY3RvcnlTdGFjayBEaXJpY2hsZXRDaGFyYWN0ZXIgRGlyaWNobGV0Q29udm9sdmUgRGlyaWNobGV0RGlzdHJpYnV0aW9uIERpcmljaGxldEwgRGlyaWNobGV0VHJhbnNmb3JtIERpcmljaGxldFdpbmRvdyBEaXNhYmxlQ29uc29sZVByaW50UGFja2V0IERpc2NyZXRlQ2hpcnBaVHJhbnNmb3JtIERpc2NyZXRlQ29udm9sdmUgRGlzY3JldGVEZWx0YSBEaXNjcmV0ZUhhZGFtYXJkVHJhbnNmb3JtIERpc2NyZXRlSW5kaWNhdG9yIERpc2NyZXRlTFFFc3RpbWF0b3JHYWlucyBEaXNjcmV0ZUxRUmVndWxhdG9yR2FpbnMgRGlzY3JldGVMeWFwdW5vdlNvbHZlIERpc2NyZXRlTWFya292UHJvY2VzcyBEaXNjcmV0ZVBsb3QgRGlzY3JldGVQbG90M0QgRGlzY3JldGVSYXRpbyBEaXNjcmV0ZVJpY2NhdGlTb2x2ZSBEaXNjcmV0ZVNoaWZ0IERpc2NyZXRlVGltZU1vZGVsUSBEaXNjcmV0ZVVuaWZvcm1EaXN0cmlidXRpb24gRGlzY3JldGVWYXJpYWJsZXMgRGlzY3JldGVXYXZlbGV0RGF0YSBEaXNjcmV0ZVdhdmVsZXRQYWNrZXRUcmFuc2Zvcm0gJyArXG4gICAgICAnRGlzY3JldGVXYXZlbGV0VHJhbnNmb3JtIERpc2NyaW1pbmFudCBEaXNqdW5jdGlvbiBEaXNrIERpc2tCb3ggRGlza01hdHJpeCBEaXNwYXRjaCBEaXNwZXJzaW9uRXN0aW1hdG9yRnVuY3Rpb24gRGlzcGxheSBEaXNwbGF5QWxsU3RlcHMgRGlzcGxheUVuZFBhY2tldCBEaXNwbGF5Rmx1c2hJbWFnZVBhY2tldCBEaXNwbGF5Rm9ybSBEaXNwbGF5RnVuY3Rpb24gRGlzcGxheVBhY2tldCBEaXNwbGF5UnVsZXMgRGlzcGxheVNldFNpemVQYWNrZXQgRGlzcGxheVN0cmluZyBEaXNwbGF5VGVtcG9yYXJ5IERpc3BsYXlXaXRoIERpc3BsYXlXaXRoUmVmIERpc3BsYXlXaXRoVmFyaWFibGUgRGlzdGFuY2VGdW5jdGlvbiBEaXN0YW5jZVRyYW5zZm9ybSBEaXN0cmlidXRlIERpc3RyaWJ1dGVkIERpc3RyaWJ1dGVkQ29udGV4dHMgRGlzdHJpYnV0ZURlZmluaXRpb25zIERpc3RyaWJ1dGlvbkNoYXJ0IERpc3RyaWJ1dGlvbkRvbWFpbiBEaXN0cmlidXRpb25GaXRUZXN0IERpc3RyaWJ1dGlvblBhcmFtZXRlckFzc3VtcHRpb25zIERpc3RyaWJ1dGlvblBhcmFtZXRlclEgRGl0aGVyaW5nIERpdiBEaXZlcmdlbmNlIERpdmlkZSBEaXZpZGVCeSBEaXZpZGVycyBEaXZpc2libGUgRGl2aXNvcnMgRGl2aXNvclNpZ21hIERpdmlzb3JTdW0gRE1TTGlzdCBETVNTdHJpbmcgRG8gRG9ja2VkQ2VsbHMgRG9jdW1lbnROb3RlYm9vayBEb21pbmFudENvbG9ycyBET1NUZXh0Rm9ybWF0IERvdCBEb3REYXNoZWQgRG90RXF1YWwgRG90dGVkIERvdWJsZUJyYWNrZXRpbmdCYXIgRG91YmxlQ29udG91ckludGVncmFsIERvdWJsZURvd25BcnJvdyBEb3VibGVMZWZ0QXJyb3cgRG91YmxlTGVmdFJpZ2h0QXJyb3cgRG91YmxlTGVmdFRlZSBEb3VibGVMb25nTGVmdEFycm93IERvdWJsZUxvbmdMZWZ0UmlnaHRBcnJvdyBEb3VibGVMb25nUmlnaHRBcnJvdyBEb3VibGVSaWdodEFycm93IERvdWJsZVJpZ2h0VGVlIERvdWJsZVVwQXJyb3cgRG91YmxlVXBEb3duQXJyb3cgRG91YmxlVmVydGljYWxCYXIgRG91Ymx5SW5maW5pdGUgRG93biBEb3duQXJyb3cgRG93bkFycm93QmFyIERvd25BcnJvd1VwQXJyb3cgRG93bkxlZnRSaWdodFZlY3RvciBEb3duTGVmdFRlZVZlY3RvciBEb3duTGVmdFZlY3RvciBEb3duTGVmdFZlY3RvckJhciBEb3duUmlnaHRUZWVWZWN0b3IgRG93blJpZ2h0VmVjdG9yIERvd25SaWdodFZlY3RvckJhciBEb3duc2FtcGxlIERvd25UZWUgRG93blRlZUFycm93IERvd25WYWx1ZXMgRHJhZ0FuZERyb3AgRHJhd0VkZ2VzIERyYXdGcm9udEZhY2VzIERyYXdIaWdobGlnaHRlZCBEcm9wIERTb2x2ZSBEdCBEdWFsTGluZWFyUHJvZ3JhbW1pbmcgRHVhbFN5c3RlbXNNb2RlbCBEdW1wR2V0IER1bXBTYXZlIER1cGxpY2F0ZUZyZWVRIER5bmFtaWMgRHluYW1pY0JveCBEeW5hbWljQm94T3B0aW9ucyBEeW5hbWljRXZhbHVhdGlvblRpbWVvdXQgRHluYW1pY0xvY2F0aW9uIER5bmFtaWNNb2R1bGUgRHluYW1pY01vZHVsZUJveCBEeW5hbWljTW9kdWxlQm94T3B0aW9ucyBEeW5hbWljTW9kdWxlUGFyZW50IER5bmFtaWNNb2R1bGVWYWx1ZXMgRHluYW1pY05hbWUgRHluYW1pY05hbWVzcGFjZSBEeW5hbWljUmVmZXJlbmNlIER5bmFtaWNTZXR0aW5nIER5bmFtaWNVcGRhdGluZyBEeW5hbWljV3JhcHBlciBEeW5hbWljV3JhcHBlckJveCBEeW5hbWljV3JhcHBlckJveE9wdGlvbnMgJyArXG4gICAgICAnRSBFY2NlbnRyaWNpdHlDZW50cmFsaXR5IEVkZ2VBZGQgRWRnZUJldHdlZW5uZXNzQ2VudHJhbGl0eSBFZGdlQ2FwYWNpdHkgRWRnZUNhcEZvcm0gRWRnZUNvbG9yIEVkZ2VDb25uZWN0aXZpdHkgRWRnZUNvc3QgRWRnZUNvdW50IEVkZ2VDb3ZlclEgRWRnZURhc2hpbmcgRWRnZURlbGV0ZSBFZGdlRGV0ZWN0IEVkZ2VGb3JtIEVkZ2VJbmRleCBFZGdlSm9pbkZvcm0gRWRnZUxhYmVsaW5nIEVkZ2VMYWJlbHMgRWRnZUxhYmVsU3R5bGUgRWRnZUxpc3QgRWRnZU9wYWNpdHkgRWRnZVEgRWRnZVJlbmRlcmluZ0Z1bmN0aW9uIEVkZ2VSdWxlcyBFZGdlU2hhcGVGdW5jdGlvbiBFZGdlU3R5bGUgRWRnZVRoaWNrbmVzcyBFZGdlV2VpZ2h0IEVkaXRhYmxlIEVkaXRCdXR0b25TZXR0aW5ncyBFZGl0Q2VsbFRhZ3NTZXR0aW5ncyBFZGl0RGlzdGFuY2UgRWZmZWN0aXZlSW50ZXJlc3QgRWlnZW5zeXN0ZW0gRWlnZW52YWx1ZXMgRWlnZW52ZWN0b3JDZW50cmFsaXR5IEVpZ2VudmVjdG9ycyBFbGVtZW50IEVsZW1lbnREYXRhIEVsaW1pbmF0ZSBFbGltaW5hdGlvbk9yZGVyIEVsbGlwdGljRSBFbGxpcHRpY0V4cCBFbGxpcHRpY0V4cFByaW1lIEVsbGlwdGljRiBFbGxpcHRpY0ZpbHRlck1vZGVsIEVsbGlwdGljSyBFbGxpcHRpY0xvZyBFbGxpcHRpY05vbWVRIEVsbGlwdGljUGkgRWxsaXB0aWNSZWR1Y2VkSGFsZlBlcmlvZHMgRWxsaXB0aWNUaGV0YSBFbGxpcHRpY1RoZXRhUHJpbWUgRW1pdFNvdW5kIEVtcGhhc2l6ZVN5bnRheEVycm9ycyBFbXBpcmljYWxEaXN0cmlidXRpb24gRW1wdHkgRW1wdHlHcmFwaFEgRW5hYmxlQ29uc29sZVByaW50UGFja2V0IEVuYWJsZWQgRW5jb2RlIEVuZCBFbmRBZGQgRW5kRGlhbG9nUGFja2V0IEVuZEZyb250RW5kSW50ZXJhY3Rpb25QYWNrZXQgRW5kT2ZGaWxlIEVuZE9mTGluZSBFbmRPZlN0cmluZyBFbmRQYWNrYWdlIEVuZ2luZWVyaW5nRm9ybSBFbnRlciBFbnRlckV4cHJlc3Npb25QYWNrZXQgRW50ZXJUZXh0UGFja2V0IEVudHJvcHkgRW50cm9weUZpbHRlciBFbnZpcm9ubWVudCBFcGlsb2cgRXF1YWwgRXF1YWxDb2x1bW5zIEVxdWFsUm93cyBFcXVhbFRpbGRlIEVxdWF0ZWRUbyBFcXVpbGlicml1bSBFcXVpcmlwcGxlRmlsdGVyS2VybmVsIEVxdWl2YWxlbnQgRXJmIEVyZmMgRXJmaSBFcmxhbmdCIEVybGFuZ0MgRXJsYW5nRGlzdHJpYnV0aW9uIEVyb3Npb24gRXJyb3JCb3ggRXJyb3JCb3hPcHRpb25zIEVycm9yTm9ybSBFcnJvclBhY2tldCBFcnJvcnNEaWFsb2dTZXR0aW5ncyBFc3RpbWF0ZWREaXN0cmlidXRpb24gRXN0aW1hdGVkUHJvY2VzcyBFc3RpbWF0b3JHYWlucyBFc3RpbWF0b3JSZWd1bGF0b3IgRXVjbGlkZWFuRGlzdGFuY2UgRXVsZXJFIEV1bGVyR2FtbWEgRXVsZXJpYW5HcmFwaFEgRXVsZXJQaGkgRXZhbHVhdGFibGUgRXZhbHVhdGUgRXZhbHVhdGVkIEV2YWx1YXRlUGFja2V0IEV2YWx1YXRpb25DZWxsIEV2YWx1YXRpb25Db21wbGV0aW9uQWN0aW9uIEV2YWx1YXRpb25FbGVtZW50cyBFdmFsdWF0aW9uTW9kZSBFdmFsdWF0aW9uTW9uaXRvciBFdmFsdWF0aW9uTm90ZWJvb2sgRXZhbHVhdGlvbk9iamVjdCBFdmFsdWF0aW9uT3JkZXIgRXZhbHVhdG9yIEV2YWx1YXRvck5hbWVzIEV2ZW5RIEV2ZW50RGF0YSBFdmVudEV2YWx1YXRvciBFdmVudEhhbmRsZXIgRXZlbnRIYW5kbGVyVGFnIEV2ZW50TGFiZWxzIEV4YWN0QmxhY2ttYW5XaW5kb3cgRXhhY3ROdW1iZXJRIEV4YWN0Um9vdElzb2xhdGlvbiBFeGFtcGxlRGF0YSBFeGNlcHQgRXhjbHVkZWRGb3JtcyBFeGNsdWRlUG9kcyBFeGNsdXNpb25zIEV4Y2x1c2lvbnNTdHlsZSBFeGlzdHMgRXhpdCBFeGl0RGlhbG9nIEV4cCBFeHBhbmQgRXhwYW5kQWxsIEV4cGFuZERlbm9taW5hdG9yIEV4cGFuZEZpbGVOYW1lIEV4cGFuZE51bWVyYXRvciBFeHBlY3RhdGlvbiBFeHBlY3RhdGlvbkUgRXhwZWN0ZWRWYWx1ZSBFeHBHYW1tYURpc3RyaWJ1dGlvbiBFeHBJbnRlZ3JhbEUgRXhwSW50ZWdyYWxFaSBFeHBvbmVudCBFeHBvbmVudEZ1bmN0aW9uIEV4cG9uZW50aWFsRGlzdHJpYnV0aW9uIEV4cG9uZW50aWFsRmFtaWx5IEV4cG9uZW50aWFsR2VuZXJhdGluZ0Z1bmN0aW9uIEV4cG9uZW50aWFsTW92aW5nQXZlcmFnZSBFeHBvbmVudGlhbFBvd2VyRGlzdHJpYnV0aW9uIEV4cG9uZW50UG9zaXRpb24gRXhwb25lbnRTdGVwIEV4cG9ydCBFeHBvcnRBdXRvUmVwbGFjZW1lbnRzIEV4cG9ydFBhY2tldCBFeHBvcnRTdHJpbmcgRXhwcmVzc2lvbiBFeHByZXNzaW9uQ2VsbCBFeHByZXNzaW9uUGFja2V0IEV4cFRvVHJpZyBFeHRlbmRlZEdDRCBFeHRlbnNpb24gRXh0ZW50RWxlbWVudEZ1bmN0aW9uIEV4dGVudE1hcmtlcnMgRXh0ZW50U2l6ZSBFeHRlcm5hbENhbGwgRXh0ZXJuYWxEYXRhQ2hhcmFjdGVyRW5jb2RpbmcgRXh0cmFjdCBFeHRyYWN0QXJjaGl2ZSBFeHRyZW1lVmFsdWVEaXN0cmlidXRpb24gJyArXG4gICAgICAnRmFjZUZvcm0gRmFjZUdyaWRzIEZhY2VHcmlkc1N0eWxlIEZhY3RvciBGYWN0b3JDb21wbGV0ZSBGYWN0b3JpYWwgRmFjdG9yaWFsMiBGYWN0b3JpYWxNb21lbnQgRmFjdG9yaWFsTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uIEZhY3RvcmlhbFBvd2VyIEZhY3RvckludGVnZXIgRmFjdG9yTGlzdCBGYWN0b3JTcXVhcmVGcmVlIEZhY3RvclNxdWFyZUZyZWVMaXN0IEZhY3RvclRlcm1zIEZhY3RvclRlcm1zTGlzdCBGYWlsIEZhaWx1cmVEaXN0cmlidXRpb24gRmFsc2UgRkFSSU1BUHJvY2VzcyBGRURpc2FibGVDb25zb2xlUHJpbnRQYWNrZXQgRmVlZGJhY2tTZWN0b3IgRmVlZGJhY2tTZWN0b3JTdHlsZSBGZWVkYmFja1R5cGUgRkVFbmFibGVDb25zb2xlUHJpbnRQYWNrZXQgRmlib25hY2NpIEZpZWxkSGludCBGaWVsZEhpbnRTdHlsZSBGaWVsZE1hc2tlZCBGaWVsZFNpemUgRmlsZSBGaWxlQmFzZU5hbWUgRmlsZUJ5dGVDb3VudCBGaWxlRGF0ZSBGaWxlRXhpc3RzUSBGaWxlRXh0ZW5zaW9uIEZpbGVGb3JtYXQgRmlsZUhhc2ggRmlsZUluZm9ybWF0aW9uIEZpbGVOYW1lIEZpbGVOYW1lRGVwdGggRmlsZU5hbWVEaWFsb2dTZXR0aW5ncyBGaWxlTmFtZURyb3AgRmlsZU5hbWVKb2luIEZpbGVOYW1lcyBGaWxlTmFtZVNldHRlciBGaWxlTmFtZVNwbGl0IEZpbGVOYW1lVGFrZSBGaWxlUHJpbnQgRmlsZVR5cGUgRmlsbGVkQ3VydmUgRmlsbGVkQ3VydmVCb3ggRmlsbGluZyBGaWxsaW5nU3R5bGUgRmlsbGluZ1RyYW5zZm9ybSBGaWx0ZXJSdWxlcyBGaW5hbmNpYWxCb25kIEZpbmFuY2lhbERhdGEgRmluYW5jaWFsRGVyaXZhdGl2ZSBGaW5hbmNpYWxJbmRpY2F0b3IgRmluZCBGaW5kQXJnTWF4IEZpbmRBcmdNaW4gRmluZENsaXF1ZSBGaW5kQ2x1c3RlcnMgRmluZEN1cnZlUGF0aCBGaW5kRGlzdHJpYnV0aW9uUGFyYW1ldGVycyBGaW5kRGl2aXNpb25zIEZpbmRFZGdlQ292ZXIgRmluZEVkZ2VDdXQgRmluZEV1bGVyaWFuQ3ljbGUgRmluZEZhY2VzIEZpbmRGaWxlIEZpbmRGaXQgRmluZEdlbmVyYXRpbmdGdW5jdGlvbiBGaW5kR2VvTG9jYXRpb24gRmluZEdlb21ldHJpY1RyYW5zZm9ybSBGaW5kR3JhcGhDb21tdW5pdGllcyBGaW5kR3JhcGhJc29tb3JwaGlzbSBGaW5kR3JhcGhQYXJ0aXRpb24gRmluZEhhbWlsdG9uaWFuQ3ljbGUgRmluZEluZGVwZW5kZW50RWRnZVNldCBGaW5kSW5kZXBlbmRlbnRWZXJ0ZXhTZXQgRmluZEluc3RhbmNlIEZpbmRJbnRlZ2VyTnVsbFZlY3RvciBGaW5kS0NsYW4gRmluZEtDbGlxdWUgRmluZEtDbHViIEZpbmRLUGxleCBGaW5kTGlicmFyeSBGaW5kTGluZWFyUmVjdXJyZW5jZSBGaW5kTGlzdCBGaW5kTWF4aW11bSBGaW5kTWF4aW11bUZsb3cgRmluZE1heFZhbHVlIEZpbmRNaW5pbXVtIEZpbmRNaW5pbXVtQ29zdEZsb3cgRmluZE1pbmltdW1DdXQgRmluZE1pblZhbHVlIEZpbmRQZXJtdXRhdGlvbiBGaW5kUG9zdG1hblRvdXIgRmluZFByb2Nlc3NQYXJhbWV0ZXJzIEZpbmRSb290IEZpbmRTZXF1ZW5jZUZ1bmN0aW9uIEZpbmRTZXR0aW5ncyBGaW5kU2hvcnRlc3RQYXRoIEZpbmRTaG9ydGVzdFRvdXIgRmluZFRocmVzaG9sZCBGaW5kVmVydGV4Q292ZXIgRmluZFZlcnRleEN1dCBGaW5lIEZpbmlzaER5bmFtaWMgRmluaXRlQWJlbGlhbkdyb3VwQ291bnQgRmluaXRlR3JvdXBDb3VudCBGaW5pdGVHcm91cERhdGEgRmlyc3QgRmlyc3RQYXNzYWdlVGltZURpc3RyaWJ1dGlvbiBGaXNjaGVyR3JvdXBGaTIyIEZpc2NoZXJHcm91cEZpMjMgRmlzY2hlckdyb3VwRmkyNFByaW1lIEZpc2hlckh5cGVyZ2VvbWV0cmljRGlzdHJpYnV0aW9uIEZpc2hlclJhdGlvVGVzdCBGaXNoZXJaRGlzdHJpYnV0aW9uIEZpdCBGaXRBbGwgRml0dGVkTW9kZWwgRml4ZWRQb2ludCBGaXhlZFBvaW50TGlzdCBGbGFzaFNlbGVjdGlvbiBGbGF0IEZsYXR0ZW4gRmxhdHRlbkF0IEZsYXRUb3BXaW5kb3cgRmxpcFZpZXcgRmxvb3IgRmx1c2hQcmludE91dHB1dFBhY2tldCBGb2xkIEZvbGRMaXN0IEZvbnQgRm9udENvbG9yIEZvbnRGYW1pbHkgRm9udEZvcm0gRm9udE5hbWUgRm9udE9wYWNpdHkgRm9udFBvc3RTY3JpcHROYW1lIEZvbnRQcm9wZXJ0aWVzIEZvbnRSZWVuY29kaW5nIEZvbnRTaXplIEZvbnRTbGFudCBGb250U3Vic3RpdHV0aW9ucyBGb250VHJhY2tpbmcgRm9udFZhcmlhdGlvbnMgRm9udFdlaWdodCBGb3IgRm9yQWxsIEZvcm1hdCBGb3JtYXRSdWxlcyBGb3JtYXRUeXBlIEZvcm1hdFR5cGVBdXRvQ29udmVydCBGb3JtYXRWYWx1ZXMgRm9ybUJveCBGb3JtQm94T3B0aW9ucyBGb3J0cmFuRm9ybSBGb3J3YXJkIEZvcndhcmRCYWNrd2FyZCBGb3VyaWVyIEZvdXJpZXJDb2VmZmljaWVudCBGb3VyaWVyQ29zQ29lZmZpY2llbnQgRm91cmllckNvc1NlcmllcyBGb3VyaWVyQ29zVHJhbnNmb3JtIEZvdXJpZXJEQ1QgRm91cmllckRDVEZpbHRlciBGb3VyaWVyRENUTWF0cml4IEZvdXJpZXJEU1QgRm91cmllckRTVE1hdHJpeCBGb3VyaWVyTWF0cml4IEZvdXJpZXJQYXJhbWV0ZXJzIEZvdXJpZXJTZXF1ZW5jZVRyYW5zZm9ybSBGb3VyaWVyU2VyaWVzIEZvdXJpZXJTaW5Db2VmZmljaWVudCBGb3VyaWVyU2luU2VyaWVzIEZvdXJpZXJTaW5UcmFuc2Zvcm0gRm91cmllclRyYW5zZm9ybSBGb3VyaWVyVHJpZ1NlcmllcyBGcmFjdGlvbmFsQnJvd25pYW5Nb3Rpb25Qcm9jZXNzIEZyYWN0aW9uYWxQYXJ0IEZyYWN0aW9uQm94IEZyYWN0aW9uQm94T3B0aW9ucyBGcmFjdGlvbkxpbmUgRnJhbWUgRnJhbWVCb3ggRnJhbWVCb3hPcHRpb25zIEZyYW1lZCBGcmFtZUluc2V0IEZyYW1lTGFiZWwgRnJhbWVsZXNzIEZyYW1lTWFyZ2lucyBGcmFtZVN0eWxlIEZyYW1lVGlja3MgRnJhbWVUaWNrc1N0eWxlIEZSYXRpb0Rpc3RyaWJ1dGlvbiBGcmVjaGV0RGlzdHJpYnV0aW9uIEZyZWVRIEZyZXF1ZW5jeVNhbXBsaW5nRmlsdGVyS2VybmVsIEZyZXNuZWxDIEZyZXNuZWxTIEZyaWRheSBGcm9iZW5pdXNOdW1iZXIgRnJvYmVuaXVzU29sdmUgJyArXG4gICAgICAnRnJvbUNoYXJhY3RlckNvZGUgRnJvbUNvZWZmaWNpZW50UnVsZXMgRnJvbUNvbnRpbnVlZEZyYWN0aW9uIEZyb21EYXRlIEZyb21EaWdpdHMgRnJvbURNUyBGcm9udCBGcm9udEVuZER5bmFtaWNFeHByZXNzaW9uIEZyb250RW5kRXZlbnRBY3Rpb25zIEZyb250RW5kRXhlY3V0ZSBGcm9udEVuZE9iamVjdCBGcm9udEVuZFJlc291cmNlIEZyb250RW5kUmVzb3VyY2VTdHJpbmcgRnJvbnRFbmRTdGFja1NpemUgRnJvbnRFbmRUb2tlbiBGcm9udEVuZFRva2VuRXhlY3V0ZSBGcm9udEVuZFZhbHVlQ2FjaGUgRnJvbnRFbmRWZXJzaW9uIEZyb250RmFjZUNvbG9yIEZyb250RmFjZU9wYWNpdHkgRnVsbCBGdWxsQXhlcyBGdWxsRGVmaW5pdGlvbiBGdWxsRm9ybSBGdWxsR3JhcGhpY3MgRnVsbE9wdGlvbnMgRnVsbFNpbXBsaWZ5IEZ1bmN0aW9uIEZ1bmN0aW9uRXhwYW5kIEZ1bmN0aW9uSW50ZXJwb2xhdGlvbiBGdW5jdGlvblNwYWNlIEZ1c3NlbGxWZXNlbHlJbXBvcnRhbmNlICcgK1xuICAgICAgJ0dhYm9yRmlsdGVyIEdhYm9yTWF0cml4IEdhYm9yV2F2ZWxldCBHYWluTWFyZ2lucyBHYWluUGhhc2VNYXJnaW5zIEdhbW1hIEdhbW1hRGlzdHJpYnV0aW9uIEdhbW1hUmVndWxhcml6ZWQgR2FwUGVuYWx0eSBHYXRoZXIgR2F0aGVyQnkgR2F1Z2VGYWNlRWxlbWVudEZ1bmN0aW9uIEdhdWdlRmFjZVN0eWxlIEdhdWdlRnJhbWVFbGVtZW50RnVuY3Rpb24gR2F1Z2VGcmFtZVNpemUgR2F1Z2VGcmFtZVN0eWxlIEdhdWdlTGFiZWxzIEdhdWdlTWFya2VycyBHYXVnZVN0eWxlIEdhdXNzaWFuRmlsdGVyIEdhdXNzaWFuSW50ZWdlcnMgR2F1c3NpYW5NYXRyaXggR2F1c3NpYW5XaW5kb3cgR0NEIEdlZ2VuYmF1ZXJDIEdlbmVyYWwgR2VuZXJhbGl6ZWRMaW5lYXJNb2RlbEZpdCBHZW5lcmF0ZUNvbmRpdGlvbnMgR2VuZXJhdGVkQ2VsbCBHZW5lcmF0ZWRQYXJhbWV0ZXJzIEdlbmVyYXRpbmdGdW5jdGlvbiBHZW5lcmljIEdlbmVyaWNDeWxpbmRyaWNhbERlY29tcG9zaXRpb24gR2Vub21lRGF0YSBHZW5vbWVMb29rdXAgR2VvZGVzaWNDbG9zaW5nIEdlb2Rlc2ljRGlsYXRpb24gR2VvZGVzaWNFcm9zaW9uIEdlb2Rlc2ljT3BlbmluZyBHZW9EZXN0aW5hdGlvbiBHZW9kZXN5RGF0YSBHZW9EaXJlY3Rpb24gR2VvRGlzdGFuY2UgR2VvR3JpZFBvc2l0aW9uIEdlb21ldHJpY0Jyb3duaWFuTW90aW9uUHJvY2VzcyBHZW9tZXRyaWNEaXN0cmlidXRpb24gR2VvbWV0cmljTWVhbiBHZW9tZXRyaWNNZWFuRmlsdGVyIEdlb21ldHJpY1RyYW5zZm9ybWF0aW9uIEdlb21ldHJpY1RyYW5zZm9ybWF0aW9uM0RCb3ggR2VvbWV0cmljVHJhbnNmb3JtYXRpb24zREJveE9wdGlvbnMgR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3ggR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3hPcHRpb25zIEdlb1Bvc2l0aW9uIEdlb1Bvc2l0aW9uRU5VIEdlb1Bvc2l0aW9uWFlaIEdlb1Byb2plY3Rpb25EYXRhIEdlc3R1cmVIYW5kbGVyIEdlc3R1cmVIYW5kbGVyVGFnIEdldCBHZXRCb3VuZGluZ0JveFNpemVQYWNrZXQgR2V0Q29udGV4dCBHZXRFbnZpcm9ubWVudCBHZXRGaWxlTmFtZSBHZXRGcm9udEVuZE9wdGlvbnNEYXRhUGFja2V0IEdldExpbmVicmVha0luZm9ybWF0aW9uUGFja2V0IEdldE1lbnVzUGFja2V0IEdldFBhZ2VCcmVha0luZm9ybWF0aW9uUGFja2V0IEdsYWlzaGVyIEdsb2JhbENsdXN0ZXJpbmdDb2VmZmljaWVudCBHbG9iYWxQcmVmZXJlbmNlcyBHbG9iYWxTZXNzaW9uIEdsb3cgR29sZGVuUmF0aW8gR29tcGVydHpNYWtlaGFtRGlzdHJpYnV0aW9uIEdvb2RtYW5LcnVza2FsR2FtbWEgR29vZG1hbktydXNrYWxHYW1tYVRlc3QgR290byBHcmFkIEdyYWRpZW50IEdyYWRpZW50RmlsdGVyIEdyYWRpZW50T3JpZW50YXRpb25GaWx0ZXIgR3JhcGggR3JhcGhBc3NvcnRhdGl2aXR5IEdyYXBoQ2VudGVyIEdyYXBoQ29tcGxlbWVudCBHcmFwaERhdGEgR3JhcGhEZW5zaXR5IEdyYXBoRGlhbWV0ZXIgR3JhcGhEaWZmZXJlbmNlIEdyYXBoRGlzam9pbnRVbmlvbiAnICtcbiAgICAgICdHcmFwaERpc3RhbmNlIEdyYXBoRGlzdGFuY2VNYXRyaXggR3JhcGhFbGVtZW50RGF0YSBHcmFwaEVtYmVkZGluZyBHcmFwaEhpZ2hsaWdodCBHcmFwaEhpZ2hsaWdodFN0eWxlIEdyYXBoSHViIEdyYXBoaWNzIEdyYXBoaWNzM0QgR3JhcGhpY3MzREJveCBHcmFwaGljczNEQm94T3B0aW9ucyBHcmFwaGljc0FycmF5IEdyYXBoaWNzQmFzZWxpbmUgR3JhcGhpY3NCb3ggR3JhcGhpY3NCb3hPcHRpb25zIEdyYXBoaWNzQ29sb3IgR3JhcGhpY3NDb2x1bW4gR3JhcGhpY3NDb21wbGV4IEdyYXBoaWNzQ29tcGxleDNEQm94IEdyYXBoaWNzQ29tcGxleDNEQm94T3B0aW9ucyBHcmFwaGljc0NvbXBsZXhCb3ggR3JhcGhpY3NDb21wbGV4Qm94T3B0aW9ucyBHcmFwaGljc0NvbnRlbnRzIEdyYXBoaWNzRGF0YSBHcmFwaGljc0dyaWQgR3JhcGhpY3NHcmlkQm94IEdyYXBoaWNzR3JvdXAgR3JhcGhpY3NHcm91cDNEQm94IEdyYXBoaWNzR3JvdXAzREJveE9wdGlvbnMgR3JhcGhpY3NHcm91cEJveCBHcmFwaGljc0dyb3VwQm94T3B0aW9ucyBHcmFwaGljc0dyb3VwaW5nIEdyYXBoaWNzSGlnaGxpZ2h0Q29sb3IgR3JhcGhpY3NSb3cgR3JhcGhpY3NTcGFjaW5nIEdyYXBoaWNzU3R5bGUgR3JhcGhJbnRlcnNlY3Rpb24gR3JhcGhMYXlvdXQgR3JhcGhMaW5rRWZmaWNpZW5jeSBHcmFwaFBlcmlwaGVyeSBHcmFwaFBsb3QgR3JhcGhQbG90M0QgR3JhcGhQb3dlciBHcmFwaFByb3BlcnR5RGlzdHJpYnV0aW9uIEdyYXBoUSBHcmFwaFJhZGl1cyBHcmFwaFJlY2lwcm9jaXR5IEdyYXBoUm9vdCBHcmFwaFN0eWxlIEdyYXBoVW5pb24gR3JheSBHcmF5TGV2ZWwgR3JlYXRDaXJjbGVEaXN0YW5jZSBHcmVhdGVyIEdyZWF0ZXJFcXVhbCBHcmVhdGVyRXF1YWxMZXNzIEdyZWF0ZXJGdWxsRXF1YWwgR3JlYXRlckdyZWF0ZXIgR3JlYXRlckxlc3MgR3JlYXRlclNsYW50RXF1YWwgR3JlYXRlclRpbGRlIEdyZWVuIEdyaWQgR3JpZEJhc2VsaW5lIEdyaWRCb3ggR3JpZEJveEFsaWdubWVudCBHcmlkQm94QmFja2dyb3VuZCBHcmlkQm94RGl2aWRlcnMgR3JpZEJveEZyYW1lIEdyaWRCb3hJdGVtU2l6ZSBHcmlkQm94SXRlbVN0eWxlIEdyaWRCb3hPcHRpb25zIEdyaWRCb3hTcGFjaW5ncyBHcmlkQ3JlYXRpb25TZXR0aW5ncyBHcmlkRGVmYXVsdEVsZW1lbnQgR3JpZEVsZW1lbnRTdHlsZU9wdGlvbnMgR3JpZEZyYW1lIEdyaWRGcmFtZU1hcmdpbnMgR3JpZEdyYXBoIEdyaWRMaW5lcyBHcmlkTGluZXNTdHlsZSBHcm9lYm5lckJhc2lzIEdyb3VwQWN0aW9uQmFzZSBHcm91cENlbnRyYWxpemVyIEdyb3VwRWxlbWVudEZyb21Xb3JkIEdyb3VwRWxlbWVudFBvc2l0aW9uIEdyb3VwRWxlbWVudFEgR3JvdXBFbGVtZW50cyBHcm91cEVsZW1lbnRUb1dvcmQgR3JvdXBHZW5lcmF0b3JzIEdyb3VwTXVsdGlwbGljYXRpb25UYWJsZSBHcm91cE9yYml0cyBHcm91cE9yZGVyIEdyb3VwUGFnZUJyZWFrV2l0aGluIEdyb3VwU2V0d2lzZVN0YWJpbGl6ZXIgR3JvdXBTdGFiaWxpemVyIEdyb3VwU3RhYmlsaXplckNoYWluIEd1ZGVybWFubmlhbiBHdW1iZWxEaXN0cmlidXRpb24gJyArXG4gICAgICAnSGFhcldhdmVsZXQgSGFkYW1hcmRNYXRyaXggSGFsZk5vcm1hbERpc3RyaWJ1dGlvbiBIYW1pbHRvbmlhbkdyYXBoUSBIYW1taW5nRGlzdGFuY2UgSGFtbWluZ1dpbmRvdyBIYW5rZWxIMSBIYW5rZWxIMiBIYW5rZWxNYXRyaXggSGFublBvaXNzb25XaW5kb3cgSGFubldpbmRvdyBIYXJhZGFOb3J0b25Hcm91cEhOIEhhcmFyeUdyYXBoIEhhcm1vbmljTWVhbiBIYXJtb25pY01lYW5GaWx0ZXIgSGFybW9uaWNOdW1iZXIgSGFzaCBIYXNoVGFibGUgSGF2ZXJzaW5lIEhhemFyZEZ1bmN0aW9uIEhlYWQgSGVhZENvbXBvc2UgSGVhZHMgSGVhdmlzaWRlTGFtYmRhIEhlYXZpc2lkZVBpIEhlYXZpc2lkZVRoZXRhIEhlbGRHcm91cEhlIEhlbGRQYXJ0IEhlbHBCcm93c2VyTG9va3VwIEhlbHBCcm93c2VyTm90ZWJvb2sgSGVscEJyb3dzZXJTZXR0aW5ncyBIZXJtaXRlRGVjb21wb3NpdGlvbiBIZXJtaXRlSCBIZXJtaXRpYW5NYXRyaXhRIEhlc3NlbmJlcmdEZWNvbXBvc2l0aW9uIEhlc3NpYW4gSGV4YWRlY2ltYWxDaGFyYWN0ZXIgSGV4YWhlZHJvbiBIZXhhaGVkcm9uQm94IEhleGFoZWRyb25Cb3hPcHRpb25zIEhpZGRlblN1cmZhY2UgSGlnaGxpZ2h0R3JhcGggSGlnaGxpZ2h0SW1hZ2UgSGlnaHBhc3NGaWx0ZXIgSGlnbWFuU2ltc0dyb3VwSFMgSGlsYmVydEZpbHRlciBIaWxiZXJ0TWF0cml4IEhpc3RvZ3JhbSBIaXN0b2dyYW0zRCBIaXN0b2dyYW1EaXN0cmlidXRpb24gSGlzdG9ncmFtTGlzdCBIaXN0b2dyYW1UcmFuc2Zvcm0gSGlzdG9ncmFtVHJhbnNmb3JtSW50ZXJwb2xhdGlvbiBIaXRNaXNzVHJhbnNmb3JtIEhJVFNDZW50cmFsaXR5IEhvZGdlRHVhbCBIb2VmZmRpbmdEIEhvZWZmZGluZ0RUZXN0IEhvbGQgSG9sZEFsbCBIb2xkQWxsQ29tcGxldGUgSG9sZENvbXBsZXRlIEhvbGRGaXJzdCBIb2xkRm9ybSBIb2xkUGF0dGVybiBIb2xkUmVzdCBIb2xpZGF5Q2FsZW5kYXIgSG9tZURpcmVjdG9yeSBIb21lUGFnZSBIb3Jpem9udGFsIEhvcml6b250YWxGb3JtIEhvcml6b250YWxHYXVnZSBIb3Jpem9udGFsU2Nyb2xsUG9zaXRpb24gSG9ybmVyRm9ybSBIb3RlbGxpbmdUU3F1YXJlRGlzdHJpYnV0aW9uIEhveXREaXN0cmlidXRpb24gSFRNTFNhdmUgSHVlIEh1bXBEb3duSHVtcCBIdW1wRXF1YWwgSHVyd2l0ekxlcmNoUGhpIEh1cndpdHpaZXRhIEh5cGVyYm9saWNEaXN0cmlidXRpb24gSHlwZXJjdWJlR3JhcGggSHlwZXJleHBvbmVudGlhbERpc3RyaWJ1dGlvbiBIeXBlcmZhY3RvcmlhbCBIeXBlcmdlb21ldHJpYzBGMSBIeXBlcmdlb21ldHJpYzBGMVJlZ3VsYXJpemVkIEh5cGVyZ2VvbWV0cmljMUYxIEh5cGVyZ2VvbWV0cmljMUYxUmVndWxhcml6ZWQgSHlwZXJnZW9tZXRyaWMyRjEgSHlwZXJnZW9tZXRyaWMyRjFSZWd1bGFyaXplZCBIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiBIeXBlcmdlb21ldHJpY1BGUSBIeXBlcmdlb21ldHJpY1BGUVJlZ3VsYXJpemVkIEh5cGVyZ2VvbWV0cmljVSBIeXBlcmxpbmsgSHlwZXJsaW5rQ3JlYXRpb25TZXR0aW5ncyBIeXBoZW5hdGlvbiBIeXBoZW5hdGlvbk9wdGlvbnMgSHlwb2V4cG9uZW50aWFsRGlzdHJpYnV0aW9uIEh5cG90aGVzaXNUZXN0RGF0YSAnICtcbiAgICAgICdJIElkZW50aXR5IElkZW50aXR5TWF0cml4IElmIElnbm9yZUNhc2UgSW0gSW1hZ2UgSW1hZ2UzRCBJbWFnZTNEU2xpY2VzIEltYWdlQWNjdW11bGF0ZSBJbWFnZUFkZCBJbWFnZUFkanVzdCBJbWFnZUFsaWduIEltYWdlQXBwbHkgSW1hZ2VBc3BlY3RSYXRpbyBJbWFnZUFzc2VtYmxlIEltYWdlQ2FjaGUgSW1hZ2VDYWNoZVZhbGlkIEltYWdlQ2FwdHVyZSBJbWFnZUNoYW5uZWxzIEltYWdlQ2xpcCBJbWFnZUNvbG9yU3BhY2UgSW1hZ2VDb21wb3NlIEltYWdlQ29udm9sdmUgSW1hZ2VDb29jY3VycmVuY2UgSW1hZ2VDb3JuZXJzIEltYWdlQ29ycmVsYXRlIEltYWdlQ29ycmVzcG9uZGluZ1BvaW50cyBJbWFnZUNyb3AgSW1hZ2VEYXRhIEltYWdlRGF0YVBhY2tldCBJbWFnZURlY29udm9sdmUgSW1hZ2VEZW1vc2FpYyBJbWFnZURpZmZlcmVuY2UgSW1hZ2VEaW1lbnNpb25zIEltYWdlRGlzdGFuY2UgSW1hZ2VFZmZlY3QgSW1hZ2VGZWF0dXJlVHJhY2sgSW1hZ2VGaWxlQXBwbHkgSW1hZ2VGaWxlRmlsdGVyIEltYWdlRmlsZVNjYW4gSW1hZ2VGaWx0ZXIgSW1hZ2VGb3Jlc3RpbmdDb21wb25lbnRzIEltYWdlRm9yd2FyZFRyYW5zZm9ybWF0aW9uIEltYWdlSGlzdG9ncmFtIEltYWdlS2V5cG9pbnRzIEltYWdlTGV2ZWxzIEltYWdlTGluZXMgSW1hZ2VNYXJnaW5zIEltYWdlTWFya2VycyBJbWFnZU1lYXN1cmVtZW50cyBJbWFnZU11bHRpcGx5IEltYWdlT2Zmc2V0IEltYWdlUGFkIEltYWdlUGFkZGluZyBJbWFnZVBhcnRpdGlvbiBJbWFnZVBlcmlvZG9ncmFtIEltYWdlUGVyc3BlY3RpdmVUcmFuc2Zvcm1hdGlvbiBJbWFnZVEgSW1hZ2VSYW5nZUNhY2hlIEltYWdlUmVmbGVjdCBJbWFnZVJlZ2lvbiBJbWFnZVJlc2l6ZSBJbWFnZVJlc29sdXRpb24gSW1hZ2VSb3RhdGUgSW1hZ2VSb3RhdGVkIEltYWdlU2NhbGVkIEltYWdlU2NhbiBJbWFnZVNpemUgSW1hZ2VTaXplQWN0aW9uIEltYWdlU2l6ZUNhY2hlIEltYWdlU2l6ZU11bHRpcGxpZXJzIEltYWdlU2l6ZVJhdyBJbWFnZVN1YnRyYWN0IEltYWdlVGFrZSBJbWFnZVRyYW5zZm9ybWF0aW9uIEltYWdlVHJpbSBJbWFnZVR5cGUgSW1hZ2VWYWx1ZSBJbWFnZVZhbHVlUG9zaXRpb25zIEltcGxpZXMgSW1wb3J0IEltcG9ydEF1dG9SZXBsYWNlbWVudHMgSW1wb3J0U3RyaW5nIEltcHJvdmVtZW50SW1wb3J0YW5jZSBJbiBJbmNpZGVuY2VHcmFwaCBJbmNpZGVuY2VMaXN0IEluY2lkZW5jZU1hdHJpeCBJbmNsdWRlQ29uc3RhbnRCYXNpcyBJbmNsdWRlRmlsZUV4dGVuc2lvbiBJbmNsdWRlUG9kcyBJbmNsdWRlU2luZ3VsYXJUZXJtIEluY3JlbWVudCBJbmRlbnQgSW5kZW50aW5nTmV3bGluZVNwYWNpbmdzIEluZGVudE1heEZyYWN0aW9uIEluZGVwZW5kZW5jZVRlc3QgSW5kZXBlbmRlbnRFZGdlU2V0USBJbmRlcGVuZGVudFVuaXQgSW5kZXBlbmRlbnRWZXJ0ZXhTZXRRIEluZGV0ZXJtaW5hdGUgSW5kZXhDcmVhdGlvbk9wdGlvbnMgSW5kZXhlZCBJbmRleEdyYXBoIEluZGV4VGFnIEluZXF1YWxpdHkgSW5leGFjdE51bWJlclEgSW5leGFjdE51bWJlcnMgSW5maW5pdHkgSW5maXggSW5mb3JtYXRpb24gSW5oZXJpdGVkIEluaGVyaXRTY29wZSBJbml0aWFsaXphdGlvbiBJbml0aWFsaXphdGlvbkNlbGwgSW5pdGlhbGl6YXRpb25DZWxsRXZhbHVhdGlvbiBJbml0aWFsaXphdGlvbkNlbGxXYXJuaW5nIElubGluZUNvdW50ZXJBc3NpZ25tZW50cyBJbmxpbmVDb3VudGVySW5jcmVtZW50cyBJbmxpbmVSdWxlcyBJbm5lciBJbnBhaW50IElucHV0IElucHV0QWxpYXNlcyBJbnB1dEFzc3VtcHRpb25zIElucHV0QXV0b1JlcGxhY2VtZW50cyBJbnB1dEZpZWxkIElucHV0RmllbGRCb3ggSW5wdXRGaWVsZEJveE9wdGlvbnMgSW5wdXRGb3JtIElucHV0R3JvdXBpbmcgSW5wdXROYW1lUGFja2V0IElucHV0Tm90ZWJvb2sgSW5wdXRQYWNrZXQgSW5wdXRTZXR0aW5ncyBJbnB1dFN0cmVhbSBJbnB1dFN0cmluZyBJbnB1dFN0cmluZ1BhY2tldCBJbnB1dFRvQm94Rm9ybVBhY2tldCBJbnNlcnQgSW5zZXJ0aW9uUG9pbnRPYmplY3QgSW5zZXJ0UmVzdWx0cyBJbnNldCBJbnNldDNEQm94IEluc2V0M0RCb3hPcHRpb25zIEluc2V0Qm94IEluc2V0Qm94T3B0aW9ucyBJbnN0YWxsIEluc3RhbGxTZXJ2aWNlIEluU3RyaW5nIEludGVnZXIgSW50ZWdlckRpZ2l0cyBJbnRlZ2VyRXhwb25lbnQgSW50ZWdlckxlbmd0aCBJbnRlZ2VyUGFydCBJbnRlZ2VyUGFydGl0aW9ucyBJbnRlZ2VyUSBJbnRlZ2VycyBJbnRlZ2VyU3RyaW5nIEludGVncmFsIEludGVncmF0ZSBJbnRlcmFjdGl2ZSBJbnRlcmFjdGl2ZVRyYWRpbmdDaGFydCBJbnRlcmxhY2VkIEludGVybGVhdmluZyBJbnRlcm5hbGx5QmFsYW5jZWREZWNvbXBvc2l0aW9uIEludGVycG9sYXRpbmdGdW5jdGlvbiBJbnRlcnBvbGF0aW5nUG9seW5vbWlhbCBJbnRlcnBvbGF0aW9uIEludGVycG9sYXRpb25PcmRlciBJbnRlcnBvbGF0aW9uUG9pbnRzIEludGVycG9sYXRpb25QcmVjaXNpb24gSW50ZXJwcmV0YXRpb24gSW50ZXJwcmV0YXRpb25Cb3ggSW50ZXJwcmV0YXRpb25Cb3hPcHRpb25zIEludGVycHJldGF0aW9uRnVuY3Rpb24gJyArXG4gICAgICAnSW50ZXJwcmV0VGVtcGxhdGUgSW50ZXJxdWFydGlsZVJhbmdlIEludGVycnVwdCBJbnRlcnJ1cHRTZXR0aW5ncyBJbnRlcnNlY3Rpb24gSW50ZXJ2YWwgSW50ZXJ2YWxJbnRlcnNlY3Rpb24gSW50ZXJ2YWxNZW1iZXJRIEludGVydmFsVW5pb24gSW52ZXJzZSBJbnZlcnNlQmV0YVJlZ3VsYXJpemVkIEludmVyc2VDREYgSW52ZXJzZUNoaVNxdWFyZURpc3RyaWJ1dGlvbiBJbnZlcnNlQ29udGludW91c1dhdmVsZXRUcmFuc2Zvcm0gSW52ZXJzZURpc3RhbmNlVHJhbnNmb3JtIEludmVyc2VFbGxpcHRpY05vbWVRIEludmVyc2VFcmYgSW52ZXJzZUVyZmMgSW52ZXJzZUZvdXJpZXIgSW52ZXJzZUZvdXJpZXJDb3NUcmFuc2Zvcm0gSW52ZXJzZUZvdXJpZXJTZXF1ZW5jZVRyYW5zZm9ybSBJbnZlcnNlRm91cmllclNpblRyYW5zZm9ybSBJbnZlcnNlRm91cmllclRyYW5zZm9ybSBJbnZlcnNlRnVuY3Rpb24gSW52ZXJzZUZ1bmN0aW9ucyBJbnZlcnNlR2FtbWFEaXN0cmlidXRpb24gSW52ZXJzZUdhbW1hUmVndWxhcml6ZWQgSW52ZXJzZUdhdXNzaWFuRGlzdHJpYnV0aW9uIEludmVyc2VHdWRlcm1hbm5pYW4gSW52ZXJzZUhhdmVyc2luZSBJbnZlcnNlSmFjb2JpQ0QgSW52ZXJzZUphY29iaUNOIEludmVyc2VKYWNvYmlDUyBJbnZlcnNlSmFjb2JpREMgSW52ZXJzZUphY29iaUROIEludmVyc2VKYWNvYmlEUyBJbnZlcnNlSmFjb2JpTkMgSW52ZXJzZUphY29iaU5EIEludmVyc2VKYWNvYmlOUyBJbnZlcnNlSmFjb2JpU0MgSW52ZXJzZUphY29iaVNEIEludmVyc2VKYWNvYmlTTiBJbnZlcnNlTGFwbGFjZVRyYW5zZm9ybSBJbnZlcnNlUGVybXV0YXRpb24gSW52ZXJzZVJhZG9uIEludmVyc2VTZXJpZXMgSW52ZXJzZVN1cnZpdmFsRnVuY3Rpb24gSW52ZXJzZVdhdmVsZXRUcmFuc2Zvcm0gSW52ZXJzZVdlaWVyc3RyYXNzUCBJbnZlcnNlWlRyYW5zZm9ybSBJbnZpc2libGUgSW52aXNpYmxlQXBwbGljYXRpb24gSW52aXNpYmxlVGltZXMgSXJyZWR1Y2libGVQb2x5bm9taWFsUSBJc29sYXRpbmdJbnRlcnZhbCBJc29tb3JwaGljR3JhcGhRIElzb3RvcGVEYXRhIEl0YWxpYyBJdGVtIEl0ZW1Cb3ggSXRlbUJveE9wdGlvbnMgSXRlbVNpemUgSXRlbVN0eWxlIEl0b1Byb2Nlc3MgJyArXG4gICAgICAnSmFjY2FyZERpc3NpbWlsYXJpdHkgSmFjb2JpQW1wbGl0dWRlIEphY29iaWFuIEphY29iaUNEIEphY29iaUNOIEphY29iaUNTIEphY29iaURDIEphY29iaUROIEphY29iaURTIEphY29iaU5DIEphY29iaU5EIEphY29iaU5TIEphY29iaVAgSmFjb2JpU0MgSmFjb2JpU0QgSmFjb2JpU04gSmFjb2JpU3ltYm9sIEphY29iaVpldGEgSmFua29Hcm91cEoxIEphbmtvR3JvdXBKMiBKYW5rb0dyb3VwSjMgSmFua29Hcm91cEo0IEphcnF1ZUJlcmFBTE1UZXN0IEpvaG5zb25EaXN0cmlidXRpb24gSm9pbiBKb2luZWQgSm9pbmVkQ3VydmUgSm9pbmVkQ3VydmVCb3ggSm9pbkZvcm0gSm9yZGFuRGVjb21wb3NpdGlvbiBKb3JkYW5Nb2RlbERlY29tcG9zaXRpb24gJyArXG4gICAgICAnSyBLYWdpQ2hhcnQgS2Fpc2VyQmVzc2VsV2luZG93IEthaXNlcldpbmRvdyBLYWxtYW5Fc3RpbWF0b3IgS2FsbWFuRmlsdGVyIEthcmh1bmVuTG9ldmVEZWNvbXBvc2l0aW9uIEthcnlUcmVlIEthdHpDZW50cmFsaXR5IEtDb3JlQ29tcG9uZW50cyBLRGlzdHJpYnV0aW9uIEtlbHZpbkJlaSBLZWx2aW5CZXIgS2VsdmluS2VpIEtlbHZpbktlciBLZW5kYWxsVGF1IEtlbmRhbGxUYXVUZXN0IEtlcm5lbEV4ZWN1dGUgS2VybmVsTWl4dHVyZURpc3RyaWJ1dGlvbiBLZXJuZWxPYmplY3QgS2VybmVscyBLZXQgS2hpbmNoaW4gS2lyY2hob2ZmR3JhcGggS2lyY2hob2ZmTWF0cml4IEtsZWluSW52YXJpYW50SiBLbmlnaHRUb3VyR3JhcGggS25vdERhdGEgS25vd25Vbml0USBLb2xtb2dvcm92U21pcm5vdlRlc3QgS3JvbmVja2VyRGVsdGEgS3JvbmVja2VyTW9kZWxEZWNvbXBvc2l0aW9uIEtyb25lY2tlclByb2R1Y3QgS3JvbmVja2VyU3ltYm9sIEt1aXBlclRlc3QgS3VtYXJhc3dhbXlEaXN0cmlidXRpb24gS3VydG9zaXMgS3V3YWhhcmFGaWx0ZXIgJyArXG4gICAgICAnTGFiZWwgTGFiZWxlZCBMYWJlbGVkU2xpZGVyIExhYmVsaW5nRnVuY3Rpb24gTGFiZWxTdHlsZSBMYWd1ZXJyZUwgTGFtYmRhQ29tcG9uZW50cyBMYW1iZXJ0VyBMYW5jem9zV2luZG93IExhbmRhdURpc3RyaWJ1dGlvbiBMYW5ndWFnZSBMYW5ndWFnZUNhdGVnb3J5IExhcGxhY2VEaXN0cmlidXRpb24gTGFwbGFjZVRyYW5zZm9ybSBMYXBsYWNpYW4gTGFwbGFjaWFuRmlsdGVyIExhcGxhY2lhbkdhdXNzaWFuRmlsdGVyIExhcmdlIExhcmdlciBMYXN0IExhdGl0dWRlIExhdGl0dWRlTG9uZ2l0dWRlIExhdHRpY2VEYXRhIExhdHRpY2VSZWR1Y2UgTGF1bmNoIExhdW5jaEtlcm5lbHMgTGF5ZXJlZEdyYXBoUGxvdCBMYXllclNpemVGdW5jdGlvbiBMYXlvdXRJbmZvcm1hdGlvbiBMQ00gTGVhZkNvdW50IExlYXBZZWFyUSBMZWFzdFNxdWFyZXMgTGVhc3RTcXVhcmVzRmlsdGVyS2VybmVsIExlZnQgTGVmdEFycm93IExlZnRBcnJvd0JhciBMZWZ0QXJyb3dSaWdodEFycm93IExlZnREb3duVGVlVmVjdG9yIExlZnREb3duVmVjdG9yIExlZnREb3duVmVjdG9yQmFyIExlZnRSaWdodEFycm93IExlZnRSaWdodFZlY3RvciBMZWZ0VGVlIExlZnRUZWVBcnJvdyBMZWZ0VGVlVmVjdG9yIExlZnRUcmlhbmdsZSBMZWZ0VHJpYW5nbGVCYXIgTGVmdFRyaWFuZ2xlRXF1YWwgTGVmdFVwRG93blZlY3RvciBMZWZ0VXBUZWVWZWN0b3IgTGVmdFVwVmVjdG9yIExlZnRVcFZlY3RvckJhciBMZWZ0VmVjdG9yIExlZnRWZWN0b3JCYXIgTGVnZW5kQXBwZWFyYW5jZSBMZWdlbmRlZCBMZWdlbmRGdW5jdGlvbiBMZWdlbmRMYWJlbCBMZWdlbmRMYXlvdXQgTGVnZW5kTWFyZ2lucyBMZWdlbmRNYXJrZXJzIExlZ2VuZE1hcmtlclNpemUgTGVnZW5kcmVQIExlZ2VuZHJlUSBMZWdlbmRyZVR5cGUgTGVuZ3RoIExlbmd0aFdoaWxlIExlcmNoUGhpIExlc3MgTGVzc0VxdWFsIExlc3NFcXVhbEdyZWF0ZXIgTGVzc0Z1bGxFcXVhbCBMZXNzR3JlYXRlciBMZXNzTGVzcyBMZXNzU2xhbnRFcXVhbCBMZXNzVGlsZGUgTGV0dGVyQ2hhcmFjdGVyIExldHRlclEgTGV2ZWwgTGV2ZW5lVGVzdCBMZXZpQ2l2aXRhVGVuc29yIExldnlEaXN0cmlidXRpb24gTGV4aWNvZ3JhcGhpYyBMaWJyYXJ5RnVuY3Rpb24gTGlicmFyeUZ1bmN0aW9uRXJyb3IgTGlicmFyeUZ1bmN0aW9uSW5mb3JtYXRpb24gTGlicmFyeUZ1bmN0aW9uTG9hZCBMaWJyYXJ5RnVuY3Rpb25VbmxvYWQgTGlicmFyeUxvYWQgTGlicmFyeVVubG9hZCBMaWNlbnNlSUQgTGlmdGluZ0ZpbHRlckRhdGEgTGlmdGluZ1dhdmVsZXRUcmFuc2Zvcm0gTGlnaHRCbHVlIExpZ2h0QnJvd24gTGlnaHRDeWFuIExpZ2h0ZXIgTGlnaHRHcmF5IExpZ2h0R3JlZW4gTGlnaHRpbmcgTGlnaHRpbmdBbmdsZSBMaWdodE1hZ2VudGEgTGlnaHRPcmFuZ2UgTGlnaHRQaW5rIExpZ2h0UHVycGxlIExpZ2h0UmVkIExpZ2h0U291cmNlcyBMaWdodFllbGxvdyBMaWtlbGlob29kIExpbWl0IExpbWl0c1Bvc2l0aW9uaW5nIExpbWl0c1Bvc2l0aW9uaW5nVG9rZW5zIExpbmRsZXlEaXN0cmlidXRpb24gTGluZSBMaW5lM0RCb3ggTGluZWFyRmlsdGVyIExpbmVhckZyYWN0aW9uYWxUcmFuc2Zvcm0gTGluZWFyTW9kZWxGaXQgTGluZWFyT2Zmc2V0RnVuY3Rpb24gTGluZWFyUHJvZ3JhbW1pbmcgTGluZWFyUmVjdXJyZW5jZSBMaW5lYXJTb2x2ZSBMaW5lYXJTb2x2ZUZ1bmN0aW9uIExpbmVCb3ggTGluZUJyZWFrIExpbmVicmVha0FkanVzdG1lbnRzIExpbmVCcmVha0NoYXJ0IExpbmVCcmVha1dpdGhpbiBMaW5lQ29sb3IgTGluZUZvcm0gTGluZUdyYXBoIExpbmVJbmRlbnQgTGluZUluZGVudE1heEZyYWN0aW9uIExpbmVJbnRlZ3JhbENvbnZvbHV0aW9uUGxvdCBMaW5lSW50ZWdyYWxDb252b2x1dGlvblNjYWxlIExpbmVMZWdlbmQgTGluZU9wYWNpdHkgTGluZVNwYWNpbmcgTGluZVdyYXBQYXJ0cyBMaW5rQWN0aXZhdGUgTGlua0Nsb3NlIExpbmtDb25uZWN0IExpbmtDb25uZWN0ZWRRIExpbmtDcmVhdGUgTGlua0Vycm9yIExpbmtGbHVzaCBMaW5rRnVuY3Rpb24gTGlua0hvc3QgTGlua0ludGVycnVwdCBMaW5rTGF1bmNoIExpbmtNb2RlIExpbmtPYmplY3QgTGlua09wZW4gTGlua09wdGlvbnMgTGlua1BhdHRlcm5zIExpbmtQcm90b2NvbCBMaW5rUmVhZCBMaW5rUmVhZEhlbGQgTGlua1JlYWR5USBMaW5rcyBMaW5rV3JpdGUgTGlua1dyaXRlSGVsZCBMaW91dmlsbGVMYW1iZGEgTGlzdCBMaXN0YWJsZSBMaXN0QW5pbWF0ZSBMaXN0Q29udG91clBsb3QgTGlzdENvbnRvdXJQbG90M0QgTGlzdENvbnZvbHZlIExpc3RDb3JyZWxhdGUgTGlzdEN1cnZlUGF0aFBsb3QgTGlzdERlY29udm9sdmUgTGlzdERlbnNpdHlQbG90IExpc3RlbiBMaXN0Rm91cmllclNlcXVlbmNlVHJhbnNmb3JtIExpc3RJbnRlcnBvbGF0aW9uIExpc3RMaW5lSW50ZWdyYWxDb252b2x1dGlvblBsb3QgTGlzdExpbmVQbG90IExpc3RMb2dMaW5lYXJQbG90IExpc3RMb2dMb2dQbG90IExpc3RMb2dQbG90IExpc3RQaWNrZXIgTGlzdFBpY2tlckJveCBMaXN0UGlja2VyQm94QmFja2dyb3VuZCBMaXN0UGlja2VyQm94T3B0aW9ucyBMaXN0UGxheSBMaXN0UGxvdCBMaXN0UGxvdDNEIExpc3RQb2ludFBsb3QzRCBMaXN0UG9sYXJQbG90IExpc3RRIExpc3RTdHJlYW1EZW5zaXR5UGxvdCBMaXN0U3RyZWFtUGxvdCBMaXN0U3VyZmFjZVBsb3QzRCBMaXN0VmVjdG9yRGVuc2l0eVBsb3QgTGlzdFZlY3RvclBsb3QgTGlzdFZlY3RvclBsb3QzRCBMaXN0WlRyYW5zZm9ybSBMaXRlcmFsIExpdGVyYWxTZWFyY2ggTG9jYWxDbHVzdGVyaW5nQ29lZmZpY2llbnQgTG9jYWxpemVWYXJpYWJsZXMgTG9jYXRpb25FcXVpdmFsZW5jZVRlc3QgTG9jYXRpb25UZXN0IExvY2F0b3IgTG9jYXRvckF1dG9DcmVhdGUgTG9jYXRvckJveCBMb2NhdG9yQm94T3B0aW9ucyBMb2NhdG9yQ2VudGVyaW5nIExvY2F0b3JQYW5lIExvY2F0b3JQYW5lQm94IExvY2F0b3JQYW5lQm94T3B0aW9ucyAnICtcbiAgICAgICdMb2NhdG9yUmVnaW9uIExvY2tlZCBMb2cgTG9nMTAgTG9nMiBMb2dCYXJuZXNHIExvZ0dhbW1hIExvZ0dhbW1hRGlzdHJpYnV0aW9uIExvZ2ljYWxFeHBhbmQgTG9nSW50ZWdyYWwgTG9naXN0aWNEaXN0cmlidXRpb24gTG9naXRNb2RlbEZpdCBMb2dMaWtlbGlob29kIExvZ0xpbmVhclBsb3QgTG9nTG9naXN0aWNEaXN0cmlidXRpb24gTG9nTG9nUGxvdCBMb2dNdWx0aW5vcm1hbERpc3RyaWJ1dGlvbiBMb2dOb3JtYWxEaXN0cmlidXRpb24gTG9nUGxvdCBMb2dSYW5rVGVzdCBMb2dTZXJpZXNEaXN0cmlidXRpb24gTG9uZ0VxdWFsIExvbmdlc3QgTG9uZ2VzdEFzY2VuZGluZ1NlcXVlbmNlIExvbmdlc3RDb21tb25TZXF1ZW5jZSBMb25nZXN0Q29tbW9uU2VxdWVuY2VQb3NpdGlvbnMgTG9uZ2VzdENvbW1vblN1YnNlcXVlbmNlIExvbmdlc3RDb21tb25TdWJzZXF1ZW5jZVBvc2l0aW9ucyBMb25nZXN0TWF0Y2ggTG9uZ0Zvcm0gTG9uZ2l0dWRlIExvbmdMZWZ0QXJyb3cgTG9uZ0xlZnRSaWdodEFycm93IExvbmdSaWdodEFycm93IExvb3BiYWNrIExvb3BGcmVlR3JhcGhRIExvd2VyQ2FzZVEgTG93ZXJMZWZ0QXJyb3cgTG93ZXJSaWdodEFycm93IExvd2VyVHJpYW5ndWxhcml6ZSBMb3dwYXNzRmlsdGVyIExRRXN0aW1hdG9yR2FpbnMgTFFHUmVndWxhdG9yIExRT3V0cHV0UmVndWxhdG9yR2FpbnMgTFFSZWd1bGF0b3JHYWlucyBMVUJhY2tTdWJzdGl0dXRpb24gTHVjYXNMIEx1Y2Npb1NhbWlDb21wb25lbnRzIExVRGVjb21wb3NpdGlvbiBMeWFwdW5vdlNvbHZlIEx5b25zR3JvdXBMeSAnICtcbiAgICAgICdNYWNoaW5lSUQgTWFjaGluZU5hbWUgTWFjaGluZU51bWJlclEgTWFjaGluZVByZWNpc2lvbiBNYWNpbnRvc2hTeXN0ZW1QYWdlU2V0dXAgTWFnZW50YSBNYWduaWZpY2F0aW9uIE1hZ25pZnkgTWFpblNvbHZlIE1haW50YWluRHluYW1pY0NhY2hlcyBNYWpvcml0eSBNYWtlQm94ZXMgTWFrZUV4cHJlc3Npb24gTWFrZVJ1bGVzIE1hbmdvbGR0TGFtYmRhIE1hbmhhdHRhbkRpc3RhbmNlIE1hbmlwdWxhdGUgTWFuaXB1bGF0b3IgTWFubldoaXRuZXlUZXN0IE1hbnRpc3NhRXhwb25lbnQgTWFudWFsIE1hcCBNYXBBbGwgTWFwQXQgTWFwSW5kZXhlZCBNQVByb2Nlc3MgTWFwVGhyZWFkIE1hcmN1bVEgTWFyZGlhQ29tYmluZWRUZXN0IE1hcmRpYUt1cnRvc2lzVGVzdCBNYXJkaWFTa2V3bmVzc1Rlc3QgTWFyZ2luYWxEaXN0cmlidXRpb24gTWFya292UHJvY2Vzc1Byb3BlcnRpZXMgTWFza2luZyBNYXRjaGluZ0Rpc3NpbWlsYXJpdHkgTWF0Y2hMb2NhbE5hbWVRIE1hdGNoTG9jYWxOYW1lcyBNYXRjaFEgTWF0ZXJpYWwgTWF0aGVtYXRpY2FOb3RhdGlvbiBNYXRoaWV1QyBNYXRoaWV1Q2hhcmFjdGVyaXN0aWNBIE1hdGhpZXVDaGFyYWN0ZXJpc3RpY0IgTWF0aGlldUNoYXJhY3RlcmlzdGljRXhwb25lbnQgTWF0aGlldUNQcmltZSBNYXRoaWV1R3JvdXBNMTEgTWF0aGlldUdyb3VwTTEyIE1hdGhpZXVHcm91cE0yMiBNYXRoaWV1R3JvdXBNMjMgTWF0aGlldUdyb3VwTTI0IE1hdGhpZXVTIE1hdGhpZXVTUHJpbWUgTWF0aE1MRm9ybSBNYXRoTUxUZXh0IE1hdHJpY2VzIE1hdHJpeEV4cCBNYXRyaXhGb3JtIE1hdHJpeEZ1bmN0aW9uIE1hdHJpeExvZyBNYXRyaXhQbG90IE1hdHJpeFBvd2VyIE1hdHJpeFEgTWF0cml4UmFuayBNYXggTWF4QmVuZCBNYXhEZXRlY3QgTWF4RXh0cmFCYW5kd2lkdGhzIE1heEV4dHJhQ29uZGl0aW9ucyBNYXhGZWF0dXJlcyBNYXhGaWx0ZXIgTWF4aW1pemUgTWF4SXRlcmF0aW9ucyBNYXhNZW1vcnlVc2VkIE1heE1peHR1cmVLZXJuZWxzIE1heFBsb3RQb2ludHMgTWF4UG9pbnRzIE1heFJlY3Vyc2lvbiBNYXhTdGFibGVEaXN0cmlidXRpb24gTWF4U3RlcEZyYWN0aW9uIE1heFN0ZXBzIE1heFN0ZXBTaXplIE1heFZhbHVlIE1heHdlbGxEaXN0cmlidXRpb24gTWNMYXVnaGxpbkdyb3VwTWNMIE1lYW4gTWVhbkNsdXN0ZXJpbmdDb2VmZmljaWVudCBNZWFuRGVncmVlQ29ubmVjdGl2aXR5IE1lYW5EZXZpYXRpb24gTWVhbkZpbHRlciBNZWFuR3JhcGhEaXN0YW5jZSBNZWFuTmVpZ2hib3JEZWdyZWUgTWVhblNoaWZ0IE1lYW5TaGlmdEZpbHRlciBNZWRpYW4gTWVkaWFuRGV2aWF0aW9uIE1lZGlhbkZpbHRlciBNZWRpdW0gTWVpamVyRyBNZWl4bmVyRGlzdHJpYnV0aW9uIE1lbWJlclEgTWVtb3J5Q29uc3RyYWluZWQgTWVtb3J5SW5Vc2UgTWVudSBNZW51QXBwZWFyYW5jZSBNZW51Q29tbWFuZEtleSBNZW51RXZhbHVhdG9yIE1lbnVJdGVtIE1lbnVQYWNrZXQgTWVudVNvcnRpbmdWYWx1ZSBNZW51U3R5bGUgTWVudVZpZXcgTWVyZ2VEaWZmZXJlbmNlcyBNZXNoIE1lc2hGdW5jdGlvbnMgTWVzaFJhbmdlIE1lc2hTaGFkaW5nIE1lc2hTdHlsZSBNZXNzYWdlIE1lc3NhZ2VEaWFsb2cgTWVzc2FnZUxpc3QgTWVzc2FnZU5hbWUgTWVzc2FnZU9wdGlvbnMgTWVzc2FnZVBhY2tldCBNZXNzYWdlcyBNZXNzYWdlc05vdGVib29rIE1ldGFDaGFyYWN0ZXJzIE1ldGFJbmZvcm1hdGlvbiBNZXRob2QgTWV0aG9kT3B0aW9ucyBNZXhpY2FuSGF0V2F2ZWxldCBNZXllcldhdmVsZXQgTWluIE1pbkRldGVjdCBNaW5GaWx0ZXIgTWluaW1hbFBvbHlub21pYWwgTWluaW1hbFN0YXRlU3BhY2VNb2RlbCBNaW5pbWl6ZSBNaW5vcnMgTWluUmVjdXJzaW9uIE1pblNpemUgTWluU3RhYmxlRGlzdHJpYnV0aW9uIE1pbnVzIE1pbnVzUGx1cyBNaW5WYWx1ZSBNaXNzaW5nIE1pc3NpbmdEYXRhTWV0aG9kIE1pdHRhZ0xlZmZsZXJFIE1peGVkUmFkaXggTWl4ZWRSYWRpeFF1YW50aXR5IE1peHR1cmVEaXN0cmlidXRpb24gTW9kIE1vZGFsIE1vZGUgTW9kdWxhciBNb2R1bGFyTGFtYmRhIE1vZHVsZSBNb2R1bHVzIE1vZWJpdXNNdSBNb21lbnQgTW9tZW50YXJ5IE1vbWVudENvbnZlcnQgTW9tZW50RXZhbHVhdGUgTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uIE1vbmRheSBNb25pdG9yIE1vbm9taWFsTGlzdCBNb25vbWlhbE9yZGVyIE1vbnN0ZXJHcm91cE0gTW9ybGV0V2F2ZWxldCBNb3JwaG9sb2dpY2FsQmluYXJpemUgTW9ycGhvbG9naWNhbEJyYW5jaFBvaW50cyBNb3JwaG9sb2dpY2FsQ29tcG9uZW50cyBNb3JwaG9sb2dpY2FsRXVsZXJOdW1iZXIgTW9ycGhvbG9naWNhbEdyYXBoIE1vcnBob2xvZ2ljYWxQZXJpbWV0ZXIgTW9ycGhvbG9naWNhbFRyYW5zZm9ybSBNb3N0IE1vdXNlQW5ub3RhdGlvbiBNb3VzZUFwcGVhcmFuY2UgTW91c2VBcHBlYXJhbmNlVGFnIE1vdXNlQnV0dG9ucyBNb3VzZW92ZXIgTW91c2VQb2ludGVyTm90ZSBNb3VzZVBvc2l0aW9uIE1vdmluZ0F2ZXJhZ2UgTW92aW5nTWVkaWFuIE1veWFsRGlzdHJpYnV0aW9uIE11bHRpZWRnZVN0eWxlIE11bHRpbGF1bmNoV2FybmluZyBNdWx0aUxldHRlckl0YWxpY3MgTXVsdGlMZXR0ZXJTdHlsZSBNdWx0aWxpbmVGdW5jdGlvbiBNdWx0aW5vbWlhbCBNdWx0aW5vbWlhbERpc3RyaWJ1dGlvbiBNdWx0aW5vcm1hbERpc3RyaWJ1dGlvbiBNdWx0aXBsaWNhdGl2ZU9yZGVyIE11bHRpcGxpY2l0eSBNdWx0aXNlbGVjdGlvbiBNdWx0aXZhcmlhdGVIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiBNdWx0aXZhcmlhdGVQb2lzc29uRGlzdHJpYnV0aW9uIE11bHRpdmFyaWF0ZVREaXN0cmlidXRpb24gJyArXG4gICAgICAnTiBOYWthZ2FtaURpc3RyaWJ1dGlvbiBOYW1lUSBOYW1lcyBOYW1lc3BhY2VCb3ggTmFuZCBOQXJnTWF4IE5BcmdNaW4gTkJlcm5vdWxsaUIgTkNhY2hlIE5EU29sdmUgTkRTb2x2ZVZhbHVlIE5lYXJlc3QgTmVhcmVzdEZ1bmN0aW9uIE5lZWRDdXJyZW50RnJvbnRFbmRQYWNrYWdlUGFja2V0IE5lZWRDdXJyZW50RnJvbnRFbmRTeW1ib2xzUGFja2V0IE5lZWRsZW1hbld1bnNjaFNpbWlsYXJpdHkgTmVlZHMgTmVnYXRpdmUgTmVnYXRpdmVCaW5vbWlhbERpc3RyaWJ1dGlvbiBOZWdhdGl2ZU11bHRpbm9taWFsRGlzdHJpYnV0aW9uIE5laWdoYm9yaG9vZEdyYXBoIE5lc3QgTmVzdGVkR3JlYXRlckdyZWF0ZXIgTmVzdGVkTGVzc0xlc3MgTmVzdGVkU2NyaXB0UnVsZXMgTmVzdExpc3QgTmVzdFdoaWxlIE5lc3RXaGlsZUxpc3QgTmV2aWxsZVRoZXRhQyBOZXZpbGxlVGhldGFEIE5ldmlsbGVUaGV0YU4gTmV2aWxsZVRoZXRhUyBOZXdQcmltaXRpdmVTdHlsZSBORXhwZWN0YXRpb24gTmV4dCBOZXh0UHJpbWUgTkhvbGRBbGwgTkhvbGRGaXJzdCBOSG9sZFJlc3QgTmljaG9sc0dyaWRMaW5lcyBOaWNob2xzUGxvdCBOSW50ZWdyYXRlIE5NYXhpbWl6ZSBOTWF4VmFsdWUgTk1pbmltaXplIE5NaW5WYWx1ZSBOb21pbmFsVmFyaWFibGVzIE5vbkFzc29jaWF0aXZlIE5vbmNlbnRyYWxCZXRhRGlzdHJpYnV0aW9uIE5vbmNlbnRyYWxDaGlTcXVhcmVEaXN0cmlidXRpb24gTm9uY2VudHJhbEZSYXRpb0Rpc3RyaWJ1dGlvbiBOb25jZW50cmFsU3R1ZGVudFREaXN0cmlidXRpb24gTm9uQ29tbXV0YXRpdmVNdWx0aXBseSBOb25Db25zdGFudHMgTm9uZSBOb25saW5lYXJNb2RlbEZpdCBOb25sb2NhbE1lYW5zRmlsdGVyIE5vbk5lZ2F0aXZlIE5vblBvc2l0aXZlIE5vciBOb3JsdW5kQiBOb3JtIE5vcm1hbCBOb3JtYWxEaXN0cmlidXRpb24gTm9ybWFsR3JvdXBpbmcgTm9ybWFsaXplIE5vcm1hbGl6ZWRTcXVhcmVkRXVjbGlkZWFuRGlzdGFuY2UgTm9ybWFsc0Z1bmN0aW9uIE5vcm1GdW5jdGlvbiBOb3QgTm90Q29uZ3J1ZW50IE5vdEN1cENhcCBOb3REb3VibGVWZXJ0aWNhbEJhciBOb3RlYm9vayBOb3RlYm9va0FwcGx5IE5vdGVib29rQXV0b1NhdmUgTm90ZWJvb2tDbG9zZSBOb3RlYm9va0NvbnZlcnRTZXR0aW5ncyBOb3RlYm9va0NyZWF0ZSBOb3RlYm9va0NyZWF0ZVJldHVybk9iamVjdCBOb3RlYm9va0RlZmF1bHQgTm90ZWJvb2tEZWxldGUgTm90ZWJvb2tEaXJlY3RvcnkgTm90ZWJvb2tEeW5hbWljRXhwcmVzc2lvbiBOb3RlYm9va0V2YWx1YXRlIE5vdGVib29rRXZlbnRBY3Rpb25zIE5vdGVib29rRmlsZU5hbWUgTm90ZWJvb2tGaW5kIE5vdGVib29rRmluZFJldHVybk9iamVjdCBOb3RlYm9va0dldCBOb3RlYm9va0dldExheW91dEluZm9ybWF0aW9uUGFja2V0IE5vdGVib29rR2V0TWlzc3BlbGxpbmdzUGFja2V0IE5vdGVib29rSW5mb3JtYXRpb24gTm90ZWJvb2tJbnRlcmZhY2VPYmplY3QgTm90ZWJvb2tMb2NhdGUgTm90ZWJvb2tPYmplY3QgTm90ZWJvb2tPcGVuIE5vdGVib29rT3BlblJldHVybk9iamVjdCBOb3RlYm9va1BhdGggTm90ZWJvb2tQcmludCBOb3RlYm9va1B1dCBOb3RlYm9va1B1dFJldHVybk9iamVjdCBOb3RlYm9va1JlYWQgTm90ZWJvb2tSZXNldEdlbmVyYXRlZENlbGxzIE5vdGVib29rcyBOb3RlYm9va1NhdmUgTm90ZWJvb2tTYXZlQXMgTm90ZWJvb2tTZWxlY3Rpb24gTm90ZWJvb2tTZXR1cExheW91dEluZm9ybWF0aW9uUGFja2V0IE5vdGVib29rc01lbnUgTm90ZWJvb2tXcml0ZSBOb3RFbGVtZW50IE5vdEVxdWFsVGlsZGUgTm90RXhpc3RzIE5vdEdyZWF0ZXIgTm90R3JlYXRlckVxdWFsIE5vdEdyZWF0ZXJGdWxsRXF1YWwgTm90R3JlYXRlckdyZWF0ZXIgTm90R3JlYXRlckxlc3MgTm90R3JlYXRlclNsYW50RXF1YWwgTm90R3JlYXRlclRpbGRlIE5vdEh1bXBEb3duSHVtcCBOb3RIdW1wRXF1YWwgTm90TGVmdFRyaWFuZ2xlIE5vdExlZnRUcmlhbmdsZUJhciBOb3RMZWZ0VHJpYW5nbGVFcXVhbCBOb3RMZXNzIE5vdExlc3NFcXVhbCBOb3RMZXNzRnVsbEVxdWFsIE5vdExlc3NHcmVhdGVyIE5vdExlc3NMZXNzIE5vdExlc3NTbGFudEVxdWFsIE5vdExlc3NUaWxkZSBOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlciBOb3ROZXN0ZWRMZXNzTGVzcyBOb3RQcmVjZWRlcyBOb3RQcmVjZWRlc0VxdWFsIE5vdFByZWNlZGVzU2xhbnRFcXVhbCBOb3RQcmVjZWRlc1RpbGRlIE5vdFJldmVyc2VFbGVtZW50IE5vdFJpZ2h0VHJpYW5nbGUgTm90UmlnaHRUcmlhbmdsZUJhciBOb3RSaWdodFRyaWFuZ2xlRXF1YWwgTm90U3F1YXJlU3Vic2V0IE5vdFNxdWFyZVN1YnNldEVxdWFsIE5vdFNxdWFyZVN1cGVyc2V0IE5vdFNxdWFyZVN1cGVyc2V0RXF1YWwgTm90U3Vic2V0IE5vdFN1YnNldEVxdWFsIE5vdFN1Y2NlZWRzIE5vdFN1Y2NlZWRzRXF1YWwgTm90U3VjY2VlZHNTbGFudEVxdWFsIE5vdFN1Y2NlZWRzVGlsZGUgTm90U3VwZXJzZXQgTm90U3VwZXJzZXRFcXVhbCBOb3RUaWxkZSBOb3RUaWxkZUVxdWFsIE5vdFRpbGRlRnVsbEVxdWFsIE5vdFRpbGRlVGlsZGUgTm90VmVydGljYWxCYXIgTlByb2JhYmlsaXR5IE5Qcm9kdWN0IE5Qcm9kdWN0RmFjdG9ycyBOUm9vdHMgTlNvbHZlIE5TdW0gTlN1bVRlcm1zIE51bGwgTnVsbFJlY29yZHMgTnVsbFNwYWNlIE51bGxXb3JkcyBOdW1iZXIgTnVtYmVyRmllbGRDbGFzc051bWJlciBOdW1iZXJGaWVsZERpc2NyaW1pbmFudCBOdW1iZXJGaWVsZEZ1bmRhbWVudGFsVW5pdHMgTnVtYmVyRmllbGRJbnRlZ3JhbEJhc2lzIE51bWJlckZpZWxkTm9ybVJlcHJlc2VudGF0aXZlcyBOdW1iZXJGaWVsZFJlZ3VsYXRvciBOdW1iZXJGaWVsZFJvb3RzT2ZVbml0eSBOdW1iZXJGaWVsZFNpZ25hdHVyZSBOdW1iZXJGb3JtIE51bWJlckZvcm1hdCBOdW1iZXJNYXJrcyBOdW1iZXJNdWx0aXBsaWVyIE51bWJlclBhZGRpbmcgTnVtYmVyUG9pbnQgTnVtYmVyUSBOdW1iZXJTZXBhcmF0b3IgJyArXG4gICAgICAnTnVtYmVyU2lnbnMgTnVtYmVyU3RyaW5nIE51bWVyYXRvciBOdW1lcmljRnVuY3Rpb24gTnVtZXJpY1EgTnV0dGFsbFdpbmRvdyBOVmFsdWVzIE55cXVpc3RHcmlkTGluZXMgTnlxdWlzdFBsb3QgJyArXG4gICAgICAnTyBPYnNlcnZhYmlsaXR5R3JhbWlhbiBPYnNlcnZhYmlsaXR5TWF0cml4IE9ic2VydmFibGVEZWNvbXBvc2l0aW9uIE9ic2VydmFibGVNb2RlbFEgT2RkUSBPZmYgT2Zmc2V0IE9MRURhdGEgT24gT05hbkdyb3VwT04gT25lSWRlbnRpdHkgT3BhY2l0eSBPcGVuIE9wZW5BcHBlbmQgT3BlbmVyIE9wZW5lckJveCBPcGVuZXJCb3hPcHRpb25zIE9wZW5lclZpZXcgT3BlbkZ1bmN0aW9uSW5zcGVjdG9yUGFja2V0IE9wZW5pbmcgT3BlblJlYWQgT3BlblNwZWNpYWxPcHRpb25zIE9wZW5UZW1wb3JhcnkgT3BlbldyaXRlIE9wZXJhdGUgT3BlcmF0aW5nU3lzdGVtIE9wdGltdW1GbG93RGF0YSBPcHRpb25hbCBPcHRpb25JbnNwZWN0b3JTZXR0aW5ncyBPcHRpb25RIE9wdGlvbnMgT3B0aW9uc1BhY2tldCBPcHRpb25zUGF0dGVybiBPcHRpb25WYWx1ZSBPcHRpb25WYWx1ZUJveCBPcHRpb25WYWx1ZUJveE9wdGlvbnMgT3IgT3JhbmdlIE9yZGVyIE9yZGVyRGlzdHJpYnV0aW9uIE9yZGVyZWRRIE9yZGVyaW5nIE9yZGVybGVzcyBPcm5zdGVpblVobGVuYmVja1Byb2Nlc3MgT3J0aG9nb25hbGl6ZSBPdXQgT3V0ZXIgT3V0cHV0QXV0b092ZXJ3cml0ZSBPdXRwdXRDb250cm9sbGFiaWxpdHlNYXRyaXggT3V0cHV0Q29udHJvbGxhYmxlTW9kZWxRIE91dHB1dEZvcm0gT3V0cHV0Rm9ybURhdGEgT3V0cHV0R3JvdXBpbmcgT3V0cHV0TWF0aEVkaXRFeHByZXNzaW9uIE91dHB1dE5hbWVQYWNrZXQgT3V0cHV0UmVzcG9uc2UgT3V0cHV0U2l6ZUxpbWl0IE91dHB1dFN0cmVhbSBPdmVyIE92ZXJCYXIgT3ZlckRvdCBPdmVyZmxvdyBPdmVySGF0IE92ZXJsYXBzIE92ZXJsYXkgT3ZlcmxheUJveCBPdmVybGF5Qm94T3B0aW9ucyBPdmVyc2NyaXB0IE92ZXJzY3JpcHRCb3ggT3ZlcnNjcmlwdEJveE9wdGlvbnMgT3ZlclRpbGRlIE92ZXJWZWN0b3IgT3dlblQgT3duVmFsdWVzICcgK1xuICAgICAgJ1BhY2tpbmdNZXRob2QgUGFkZGVkRm9ybSBQYWRkaW5nIFBhZGVBcHByb3hpbWFudCBQYWRMZWZ0IFBhZFJpZ2h0IFBhZ2VCcmVha0Fib3ZlIFBhZ2VCcmVha0JlbG93IFBhZ2VCcmVha1dpdGhpbiBQYWdlRm9vdGVyTGluZXMgUGFnZUZvb3RlcnMgUGFnZUhlYWRlckxpbmVzIFBhZ2VIZWFkZXJzIFBhZ2VIZWlnaHQgUGFnZVJhbmtDZW50cmFsaXR5IFBhZ2VXaWR0aCBQYWlyZWRCYXJDaGFydCBQYWlyZWRIaXN0b2dyYW0gUGFpcmVkU21vb3RoSGlzdG9ncmFtIFBhaXJlZFRUZXN0IFBhaXJlZFpUZXN0IFBhbGV0dGVOb3RlYm9vayBQYWxldHRlUGF0aCBQYW5lIFBhbmVCb3ggUGFuZUJveE9wdGlvbnMgUGFuZWwgUGFuZWxCb3ggUGFuZWxCb3hPcHRpb25zIFBhbmVsZWQgUGFuZVNlbGVjdG9yIFBhbmVTZWxlY3RvckJveCBQYW5lU2VsZWN0b3JCb3hPcHRpb25zIFBhcGVyV2lkdGggUGFyYWJvbGljQ3lsaW5kZXJEIFBhcmFncmFwaEluZGVudCBQYXJhZ3JhcGhTcGFjaW5nIFBhcmFsbGVsQXJyYXkgUGFyYWxsZWxDb21iaW5lIFBhcmFsbGVsRG8gUGFyYWxsZWxFdmFsdWF0ZSBQYXJhbGxlbGl6YXRpb24gUGFyYWxsZWxpemUgUGFyYWxsZWxNYXAgUGFyYWxsZWxOZWVkcyBQYXJhbGxlbFByb2R1Y3QgUGFyYWxsZWxTdWJtaXQgUGFyYWxsZWxTdW0gUGFyYWxsZWxUYWJsZSBQYXJhbGxlbFRyeSBQYXJhbWV0ZXIgUGFyYW1ldGVyRXN0aW1hdG9yIFBhcmFtZXRlck1peHR1cmVEaXN0cmlidXRpb24gUGFyYW1ldGVyVmFyaWFibGVzIFBhcmFtZXRyaWNGdW5jdGlvbiBQYXJhbWV0cmljTkRTb2x2ZSBQYXJhbWV0cmljTkRTb2x2ZVZhbHVlIFBhcmFtZXRyaWNQbG90IFBhcmFtZXRyaWNQbG90M0QgUGFyZW50Q29ubmVjdCBQYXJlbnREaXJlY3RvcnkgUGFyZW50Rm9ybSBQYXJlbnRoZXNpemUgUGFyZW50TGlzdCBQYXJldG9EaXN0cmlidXRpb24gUGFydCBQYXJ0aWFsQ29ycmVsYXRpb25GdW5jdGlvbiBQYXJ0aWFsRCBQYXJ0aWNsZURhdGEgUGFydGl0aW9uIFBhcnRpdGlvbnNQIFBhcnRpdGlvbnNRIFBhcnplbldpbmRvdyBQYXNjYWxEaXN0cmlidXRpb24gUGFzc0V2ZW50c0Rvd24gUGFzc0V2ZW50c1VwIFBhc3RlIFBhc3RlQm94Rm9ybUlubGluZUNlbGxzIFBhc3RlQnV0dG9uIFBhdGggUGF0aEdyYXBoIFBhdGhHcmFwaFEgUGF0dGVybiBQYXR0ZXJuU2VxdWVuY2UgUGF0dGVyblRlc3QgUGF1bGlNYXRyaXggUGF1bFdhdmVsZXQgUGF1c2UgUGF1c2VkVGltZSBQREYgUGVhcnNvbkNoaVNxdWFyZVRlc3QgUGVhcnNvbkNvcnJlbGF0aW9uVGVzdCBQZWFyc29uRGlzdHJpYnV0aW9uIFBlcmZvcm1hbmNlR29hbCBQZXJpb2RpY0ludGVycG9sYXRpb24gUGVyaW9kb2dyYW0gUGVyaW9kb2dyYW1BcnJheSBQZXJtdXRhdGlvbkN5Y2xlcyBQZXJtdXRhdGlvbkN5Y2xlc1EgUGVybXV0YXRpb25Hcm91cCBQZXJtdXRhdGlvbkxlbmd0aCBQZXJtdXRhdGlvbkxpc3QgUGVybXV0YXRpb25MaXN0USBQZXJtdXRhdGlvbk1heCBQZXJtdXRhdGlvbk1pbiBQZXJtdXRhdGlvbk9yZGVyIFBlcm11dGF0aW9uUG93ZXIgUGVybXV0YXRpb25Qcm9kdWN0IFBlcm11dGF0aW9uUmVwbGFjZSBQZXJtdXRhdGlvbnMgUGVybXV0YXRpb25TdXBwb3J0IFBlcm11dGUgUGVyb25hTWFsaWtGaWx0ZXIgUGVycGVuZGljdWxhciBQRVJURGlzdHJpYnV0aW9uIFBldGVyc2VuR3JhcGggUGhhc2VNYXJnaW5zIFBpIFBpY2sgUElERGF0YSBQSUREZXJpdmF0aXZlRmlsdGVyIFBJREZlZWRmb3J3YXJkIFBJRFR1bmUgUGllY2V3aXNlIFBpZWNld2lzZUV4cGFuZCBQaWVDaGFydCBQaWVDaGFydDNEIFBpbGxhaVRyYWNlIFBpbGxhaVRyYWNlVGVzdCBQaW5rIFBpdm90aW5nIFBpeGVsQ29uc3RyYWluZWQgUGl4ZWxWYWx1ZSBQaXhlbFZhbHVlUG9zaXRpb25zIFBsYWNlZCBQbGFjZWhvbGRlciBQbGFjZWhvbGRlclJlcGxhY2UgUGxhaW4gUGxhbmFyR3JhcGhRIFBsYXkgUGxheVJhbmdlIFBsb3QgUGxvdDNEIFBsb3QzTWF0cml4IFBsb3REaXZpc2lvbiBQbG90Sm9pbmVkIFBsb3RMYWJlbCBQbG90TGF5b3V0IFBsb3RMZWdlbmRzIFBsb3RNYXJrZXJzIFBsb3RQb2ludHMgUGxvdFJhbmdlIFBsb3RSYW5nZUNsaXBwaW5nIFBsb3RSYW5nZVBhZGRpbmcgUGxvdFJlZ2lvbiBQbG90U3R5bGUgUGx1cyBQbHVzTWludXMgUG9jaGhhbW1lciBQb2RTdGF0ZXMgUG9kV2lkdGggUG9pbnQgUG9pbnQzREJveCBQb2ludEJveCBQb2ludEZpZ3VyZUNoYXJ0IFBvaW50Rm9ybSBQb2ludExlZ2VuZCBQb2ludFNpemUgUG9pc3NvbkNvbnN1bERpc3RyaWJ1dGlvbiBQb2lzc29uRGlzdHJpYnV0aW9uIFBvaXNzb25Qcm9jZXNzIFBvaXNzb25XaW5kb3cgUG9sYXJBeGVzIFBvbGFyQXhlc09yaWdpbiBQb2xhckdyaWRMaW5lcyBQb2xhclBsb3QgUG9sYXJUaWNrcyBQb2xlWmVyb01hcmtlcnMgUG9seWFBZXBwbGlEaXN0cmlidXRpb24gUG9seUdhbW1hIFBvbHlnb24gUG9seWdvbjNEQm94IFBvbHlnb24zREJveE9wdGlvbnMgUG9seWdvbkJveCBQb2x5Z29uQm94T3B0aW9ucyBQb2x5Z29uSG9sZVNjYWxlIFBvbHlnb25JbnRlcnNlY3Rpb25zIFBvbHlnb25TY2FsZSBQb2x5aGVkcm9uRGF0YSBQb2x5TG9nIFBvbHlub21pYWxFeHRlbmRlZEdDRCBQb2x5bm9taWFsRm9ybSBQb2x5bm9taWFsR0NEIFBvbHlub21pYWxMQ00gUG9seW5vbWlhbE1vZCBQb2x5bm9taWFsUSBQb2x5bm9taWFsUXVvdGllbnQgUG9seW5vbWlhbFF1b3RpZW50UmVtYWluZGVyIFBvbHlub21pYWxSZWR1Y2UgUG9seW5vbWlhbFJlbWFpbmRlciBQb2x5bm9taWFscyBQb3B1cE1lbnUgUG9wdXBNZW51Qm94IFBvcHVwTWVudUJveE9wdGlvbnMgUG9wdXBWaWV3IFBvcHVwV2luZG93IFBvc2l0aW9uIFBvc2l0aXZlIFBvc2l0aXZlRGVmaW5pdGVNYXRyaXhRIFBvc3NpYmxlWmVyb1EgUG9zdGZpeCBQb3N0U2NyaXB0IFBvd2VyIFBvd2VyRGlzdHJpYnV0aW9uIFBvd2VyRXhwYW5kIFBvd2VyTW9kIFBvd2VyTW9kTGlzdCAnICtcbiAgICAgICdQb3dlclNwZWN0cmFsRGVuc2l0eSBQb3dlcnNSZXByZXNlbnRhdGlvbnMgUG93ZXJTeW1tZXRyaWNQb2x5bm9taWFsIFByZWNlZGVuY2UgUHJlY2VkZW5jZUZvcm0gUHJlY2VkZXMgUHJlY2VkZXNFcXVhbCBQcmVjZWRlc1NsYW50RXF1YWwgUHJlY2VkZXNUaWxkZSBQcmVjaXNpb24gUHJlY2lzaW9uR29hbCBQcmVEZWNyZW1lbnQgUHJlZGljdGlvblJvb3QgUHJlZW1wdFByb3RlY3QgUHJlZmVyZW5jZXNQYXRoIFByZWZpeCBQcmVJbmNyZW1lbnQgUHJlcGVuZCBQcmVwZW5kVG8gUHJlc2VydmVJbWFnZU9wdGlvbnMgUHJldmlvdXMgUHJpY2VHcmFwaERpc3RyaWJ1dGlvbiBQcmltYXJ5UGxhY2Vob2xkZXIgUHJpbWUgUHJpbWVOdSBQcmltZU9tZWdhIFByaW1lUGkgUHJpbWVQb3dlclEgUHJpbWVRIFByaW1lcyBQcmltZVpldGFQIFByaW1pdGl2ZVJvb3QgUHJpbmNpcGFsQ29tcG9uZW50cyBQcmluY2lwYWxWYWx1ZSBQcmludCBQcmludEFjdGlvbiBQcmludEZvcm0gUHJpbnRpbmdDb3BpZXMgUHJpbnRpbmdPcHRpb25zIFByaW50aW5nUGFnZVJhbmdlIFByaW50aW5nU3RhcnRpbmdQYWdlTnVtYmVyIFByaW50aW5nU3R5bGVFbnZpcm9ubWVudCBQcmludFByZWNpc2lvbiBQcmludFRlbXBvcmFyeSBQcmlzbSBQcmlzbUJveCBQcmlzbUJveE9wdGlvbnMgUHJpdmF0ZUNlbGxPcHRpb25zIFByaXZhdGVFdmFsdWF0aW9uT3B0aW9ucyBQcml2YXRlRm9udE9wdGlvbnMgUHJpdmF0ZUZyb250RW5kT3B0aW9ucyBQcml2YXRlTm90ZWJvb2tPcHRpb25zIFByaXZhdGVQYXRocyBQcm9iYWJpbGl0eSBQcm9iYWJpbGl0eURpc3RyaWJ1dGlvbiBQcm9iYWJpbGl0eVBsb3QgUHJvYmFiaWxpdHlQciBQcm9iYWJpbGl0eVNjYWxlUGxvdCBQcm9iaXRNb2RlbEZpdCBQcm9jZXNzRXN0aW1hdG9yIFByb2Nlc3NQYXJhbWV0ZXJBc3N1bXB0aW9ucyBQcm9jZXNzUGFyYW1ldGVyUSBQcm9jZXNzU3RhdGVEb21haW4gUHJvY2Vzc1RpbWVEb21haW4gUHJvZHVjdCBQcm9kdWN0RGlzdHJpYnV0aW9uIFByb2R1Y3RMb2cgUHJvZ3Jlc3NJbmRpY2F0b3IgUHJvZ3Jlc3NJbmRpY2F0b3JCb3ggUHJvZ3Jlc3NJbmRpY2F0b3JCb3hPcHRpb25zIFByb2plY3Rpb24gUHJvbG9nIFByb21wdEZvcm0gUHJvcGVydGllcyBQcm9wZXJ0eSBQcm9wZXJ0eUxpc3QgUHJvcGVydHlWYWx1ZSBQcm9wb3J0aW9uIFByb3BvcnRpb25hbCBQcm90ZWN0IFByb3RlY3RlZCBQcm90ZWluRGF0YSBQcnVuaW5nIFBzZXVkb0ludmVyc2UgUHVycGxlIFB1dCBQdXRBcHBlbmQgUHlyYW1pZCBQeXJhbWlkQm94IFB5cmFtaWRCb3hPcHRpb25zICcgK1xuICAgICAgJ1FCaW5vbWlhbCBRRmFjdG9yaWFsIFFHYW1tYSBRSHlwZXJnZW9tZXRyaWNQRlEgUVBvY2hoYW1tZXIgUVBvbHlHYW1tYSBRUkRlY29tcG9zaXRpb24gUXVhZHJhdGljSXJyYXRpb25hbFEgUXVhbnRpbGUgUXVhbnRpbGVQbG90IFF1YW50aXR5IFF1YW50aXR5Rm9ybSBRdWFudGl0eU1hZ25pdHVkZSBRdWFudGl0eVEgUXVhbnRpdHlVbml0IFF1YXJ0aWNzIFF1YXJ0aWxlRGV2aWF0aW9uIFF1YXJ0aWxlcyBRdWFydGlsZVNrZXduZXNzIFF1ZXVlaW5nTmV0d29ya1Byb2Nlc3MgUXVldWVpbmdQcm9jZXNzIFF1ZXVlUHJvcGVydGllcyBRdWlldCBRdWl0IFF1b3RpZW50IFF1b3RpZW50UmVtYWluZGVyICcgK1xuICAgICAgJ1JhZGlhbGl0eUNlbnRyYWxpdHkgUmFkaWNhbEJveCBSYWRpY2FsQm94T3B0aW9ucyBSYWRpb0J1dHRvbiBSYWRpb0J1dHRvbkJhciBSYWRpb0J1dHRvbkJveCBSYWRpb0J1dHRvbkJveE9wdGlvbnMgUmFkb24gUmFtYW51amFuVGF1IFJhbWFudWphblRhdUwgUmFtYW51amFuVGF1VGhldGEgUmFtYW51amFuVGF1WiBSYW5kb20gUmFuZG9tQ2hvaWNlIFJhbmRvbUNvbXBsZXggUmFuZG9tRnVuY3Rpb24gUmFuZG9tR3JhcGggUmFuZG9tSW1hZ2UgUmFuZG9tSW50ZWdlciBSYW5kb21QZXJtdXRhdGlvbiBSYW5kb21QcmltZSBSYW5kb21SZWFsIFJhbmRvbVNhbXBsZSBSYW5kb21TZWVkIFJhbmRvbVZhcmlhdGUgUmFuZG9tV2Fsa1Byb2Nlc3MgUmFuZ2UgUmFuZ2VGaWx0ZXIgUmFuZ2VTcGVjaWZpY2F0aW9uIFJhbmtlZE1heCBSYW5rZWRNaW4gUmFzdGVyIFJhc3RlcjNEIFJhc3RlcjNEQm94IFJhc3RlcjNEQm94T3B0aW9ucyBSYXN0ZXJBcnJheSBSYXN0ZXJCb3ggUmFzdGVyQm94T3B0aW9ucyBSYXN0ZXJpemUgUmFzdGVyU2l6ZSBSYXRpb25hbCBSYXRpb25hbEZ1bmN0aW9ucyBSYXRpb25hbGl6ZSBSYXRpb25hbHMgUmF0aW9zIFJhdyBSYXdBcnJheSBSYXdCb3hlcyBSYXdEYXRhIFJhd01lZGl1bSBSYXlsZWlnaERpc3RyaWJ1dGlvbiBSZSBSZWFkIFJlYWRMaXN0IFJlYWRQcm90ZWN0ZWQgUmVhbCBSZWFsQmxvY2tEaWFnb25hbEZvcm0gUmVhbERpZ2l0cyBSZWFsRXhwb25lbnQgUmVhbHMgUmVhcCBSZWNvcmQgUmVjb3JkTGlzdHMgUmVjb3JkU2VwYXJhdG9ycyBSZWN0YW5nbGUgUmVjdGFuZ2xlQm94IFJlY3RhbmdsZUJveE9wdGlvbnMgUmVjdGFuZ2xlQ2hhcnQgUmVjdGFuZ2xlQ2hhcnQzRCBSZWN1cnJlbmNlRmlsdGVyIFJlY3VycmVuY2VUYWJsZSBSZWN1cnJpbmdEaWdpdHNGb3JtIFJlZCBSZWR1Y2UgUmVmQm94IFJlZmVyZW5jZUxpbmVTdHlsZSBSZWZlcmVuY2VNYXJrZXJzIFJlZmVyZW5jZU1hcmtlclN0eWxlIFJlZmluZSBSZWZsZWN0aW9uTWF0cml4IFJlZmxlY3Rpb25UcmFuc2Zvcm0gUmVmcmVzaCBSZWZyZXNoUmF0ZSBSZWdpb25CaW5hcml6ZSBSZWdpb25GdW5jdGlvbiBSZWdpb25QbG90IFJlZ2lvblBsb3QzRCBSZWd1bGFyRXhwcmVzc2lvbiBSZWd1bGFyaXphdGlvbiBSZWluc3RhbGwgUmVsZWFzZSBSZWxlYXNlSG9sZCBSZWxpYWJpbGl0eURpc3RyaWJ1dGlvbiBSZWxpZWZJbWFnZSBSZWxpZWZQbG90IFJlbW92ZSBSZW1vdmVBbHBoYUNoYW5uZWwgUmVtb3ZlQXN5bmNocm9ub3VzVGFzayBSZW1vdmVkIFJlbW92ZUlucHV0U3RyZWFtTWV0aG9kIFJlbW92ZU91dHB1dFN0cmVhbU1ldGhvZCBSZW1vdmVQcm9wZXJ0eSBSZW1vdmVTY2hlZHVsZWRUYXNrIFJlbmFtZURpcmVjdG9yeSBSZW5hbWVGaWxlIFJlbmRlckFsbCBSZW5kZXJpbmdPcHRpb25zIFJlbmV3YWxQcm9jZXNzIFJlbmtvQ2hhcnQgUmVwZWF0ZWQgUmVwZWF0ZWROdWxsIFJlcGVhdGVkU3RyaW5nIFJlcGxhY2UgUmVwbGFjZUFsbCBSZXBsYWNlSGVsZFBhcnQgUmVwbGFjZUltYWdlVmFsdWUgUmVwbGFjZUxpc3QgUmVwbGFjZVBhcnQgUmVwbGFjZVBpeGVsVmFsdWUgUmVwbGFjZVJlcGVhdGVkIFJlc2FtcGxpbmcgUmVzY2FsZSBSZXNjYWxpbmdUcmFuc2Zvcm0gUmVzZXREaXJlY3RvcnkgUmVzZXRNZW51c1BhY2tldCBSZXNldFNjaGVkdWxlZFRhc2sgUmVzaWR1ZSBSZXNvbHZlIFJlc3QgUmVzdWx0YW50IFJlc3VtZVBhY2tldCBSZXR1cm4gUmV0dXJuRXhwcmVzc2lvblBhY2tldCBSZXR1cm5JbnB1dEZvcm1QYWNrZXQgUmV0dXJuUGFja2V0IFJldHVyblRleHRQYWNrZXQgUmV2ZXJzZSBSZXZlcnNlQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldCBSZXZlcnNlRWxlbWVudCBSZXZlcnNlRXF1aWxpYnJpdW0gUmV2ZXJzZUdyYXBoIFJldmVyc2VVcEVxdWlsaWJyaXVtIFJldm9sdXRpb25BeGlzIFJldm9sdXRpb25QbG90M0QgUkdCQ29sb3IgUmljY2F0aVNvbHZlIFJpY2VEaXN0cmlidXRpb24gUmlkZ2VGaWx0ZXIgUmllbWFublIgUmllbWFublNpZWdlbFRoZXRhIFJpZW1hbm5TaWVnZWxaIFJpZmZsZSBSaWdodCBSaWdodEFycm93IFJpZ2h0QXJyb3dCYXIgUmlnaHRBcnJvd0xlZnRBcnJvdyBSaWdodENvc2V0UmVwcmVzZW50YXRpdmUgUmlnaHREb3duVGVlVmVjdG9yIFJpZ2h0RG93blZlY3RvciBSaWdodERvd25WZWN0b3JCYXIgUmlnaHRUZWUgUmlnaHRUZWVBcnJvdyBSaWdodFRlZVZlY3RvciBSaWdodFRyaWFuZ2xlIFJpZ2h0VHJpYW5nbGVCYXIgUmlnaHRUcmlhbmdsZUVxdWFsIFJpZ2h0VXBEb3duVmVjdG9yIFJpZ2h0VXBUZWVWZWN0b3IgUmlnaHRVcFZlY3RvciBSaWdodFVwVmVjdG9yQmFyIFJpZ2h0VmVjdG9yIFJpZ2h0VmVjdG9yQmFyIFJpc2tBY2hpZXZlbWVudEltcG9ydGFuY2UgUmlza1JlZHVjdGlvbkltcG9ydGFuY2UgUm9nZXJzVGFuaW1vdG9EaXNzaW1pbGFyaXR5IFJvb3QgUm9vdEFwcHJveGltYW50IFJvb3RJbnRlcnZhbHMgUm9vdExvY3VzUGxvdCBSb290TWVhblNxdWFyZSBSb290T2ZVbml0eVEgUm9vdFJlZHVjZSBSb290cyBSb290U3VtIFJvdGF0ZSBSb3RhdGVMYWJlbCBSb3RhdGVMZWZ0IFJvdGF0ZVJpZ2h0IFJvdGF0aW9uQWN0aW9uIFJvdGF0aW9uQm94IFJvdGF0aW9uQm94T3B0aW9ucyBSb3RhdGlvbk1hdHJpeCBSb3RhdGlvblRyYW5zZm9ybSBSb3VuZCBSb3VuZEltcGxpZXMgUm91bmRpbmdSYWRpdXMgUm93IFJvd0FsaWdubWVudHMgUm93QmFja2dyb3VuZHMgUm93Qm94IFJvd0hlaWdodHMgUm93TGluZXMgUm93TWluSGVpZ2h0IFJvd1JlZHVjZSBSb3dzRXF1YWwgUm93U3BhY2luZ3MgUlNvbHZlIFJ1ZHZhbGlzR3JvdXBSdSBSdWxlIFJ1bGVDb25kaXRpb24gUnVsZURlbGF5ZWQgUnVsZUZvcm0gUnVsZXJVbml0cyBSdW4gUnVuU2NoZWR1bGVkVGFzayBSdW5UaHJvdWdoIFJ1bnRpbWVBdHRyaWJ1dGVzIFJ1bnRpbWVPcHRpb25zIFJ1c3NlbGxSYW9EaXNzaW1pbGFyaXR5ICcgK1xuICAgICAgJ1NhbWVRIFNhbWVUZXN0IFNhbXBsZURlcHRoIFNhbXBsZWRTb3VuZEZ1bmN0aW9uIFNhbXBsZWRTb3VuZExpc3QgU2FtcGxlUmF0ZSBTYW1wbGluZ1BlcmlvZCBTQVJJTUFQcm9jZXNzIFNBUk1BUHJvY2VzcyBTYXRpc2ZpYWJpbGl0eUNvdW50IFNhdGlzZmlhYmlsaXR5SW5zdGFuY2VzIFNhdGlzZmlhYmxlUSBTYXR1cmRheSBTYXZlIFNhdmVhYmxlIFNhdmVBdXRvRGVsZXRlIFNhdmVEZWZpbml0aW9ucyBTYXd0b290aFdhdmUgU2NhbGUgU2NhbGVkIFNjYWxlRGl2aXNpb25zIFNjYWxlZE1vdXNlUG9zaXRpb24gU2NhbGVPcmlnaW4gU2NhbGVQYWRkaW5nIFNjYWxlUmFuZ2VzIFNjYWxlUmFuZ2VTdHlsZSBTY2FsaW5nRnVuY3Rpb25zIFNjYWxpbmdNYXRyaXggU2NhbGluZ1RyYW5zZm9ybSBTY2FuIFNjaGVkdWxlZFRhc2tBY3RpdmVRIFNjaGVkdWxlZFRhc2tEYXRhIFNjaGVkdWxlZFRhc2tPYmplY3QgU2NoZWR1bGVkVGFza3MgU2NodXJEZWNvbXBvc2l0aW9uIFNjaWVudGlmaWNGb3JtIFNjcmVlblJlY3RhbmdsZSBTY3JlZW5TdHlsZUVudmlyb25tZW50IFNjcmlwdEJhc2VsaW5lU2hpZnRzIFNjcmlwdExldmVsIFNjcmlwdE1pblNpemUgU2NyaXB0UnVsZXMgU2NyaXB0U2l6ZU11bHRpcGxpZXJzIFNjcm9sbGJhcnMgU2Nyb2xsaW5nT3B0aW9ucyBTY3JvbGxQb3NpdGlvbiBTZWMgU2VjaCBTZWNoRGlzdHJpYnV0aW9uIFNlY3Rpb25Hcm91cGluZyBTZWN0b3JDaGFydCBTZWN0b3JDaGFydDNEIFNlY3Rvck9yaWdpbiBTZWN0b3JTcGFjaW5nIFNlZWRSYW5kb20gU2VsZWN0IFNlbGVjdGFibGUgU2VsZWN0Q29tcG9uZW50cyBTZWxlY3RlZENlbGxzIFNlbGVjdGVkTm90ZWJvb2sgU2VsZWN0aW9uIFNlbGVjdGlvbkFuaW1hdGUgU2VsZWN0aW9uQ2VsbCBTZWxlY3Rpb25DZWxsQ3JlYXRlQ2VsbCBTZWxlY3Rpb25DZWxsRGVmYXVsdFN0eWxlIFNlbGVjdGlvbkNlbGxQYXJlbnRTdHlsZSBTZWxlY3Rpb25DcmVhdGVDZWxsIFNlbGVjdGlvbkRlYnVnZ2VyVGFnIFNlbGVjdGlvbkR1cGxpY2F0ZUNlbGwgU2VsZWN0aW9uRXZhbHVhdGUgU2VsZWN0aW9uRXZhbHVhdGVDcmVhdGVDZWxsIFNlbGVjdGlvbk1vdmUgU2VsZWN0aW9uUGxhY2Vob2xkZXIgU2VsZWN0aW9uU2V0U3R5bGUgU2VsZWN0V2l0aENvbnRlbnRzIFNlbGZMb29wcyBTZWxmTG9vcFN0eWxlIFNlbWlhbGdlYnJhaWNDb21wb25lbnRJbnN0YW5jZXMgU2VuZE1haWwgU2VxdWVuY2UgU2VxdWVuY2VBbGlnbm1lbnQgU2VxdWVuY2VGb3JtIFNlcXVlbmNlSG9sZCBTZXF1ZW5jZUxpbWl0IFNlcmllcyBTZXJpZXNDb2VmZmljaWVudCBTZXJpZXNEYXRhIFNlc3Npb25UaW1lIFNldCBTZXRBY2N1cmFjeSBTZXRBbHBoYUNoYW5uZWwgU2V0QXR0cmlidXRlcyBTZXRiYWNrcyBTZXRCb3hGb3JtTmFtZXNQYWNrZXQgU2V0RGVsYXllZCBTZXREaXJlY3RvcnkgU2V0RW52aXJvbm1lbnQgU2V0RXZhbHVhdGlvbk5vdGVib29rIFNldEZpbGVEYXRlIFNldEZpbGVMb2FkaW5nQ29udGV4dCBTZXROb3RlYm9va1N0YXR1c0xpbmUgU2V0T3B0aW9ucyBTZXRPcHRpb25zUGFja2V0IFNldFByZWNpc2lvbiBTZXRQcm9wZXJ0eSBTZXRTZWxlY3RlZE5vdGVib29rIFNldFNoYXJlZEZ1bmN0aW9uIFNldFNoYXJlZFZhcmlhYmxlIFNldFNwZWVjaFBhcmFtZXRlcnNQYWNrZXQgU2V0U3RyZWFtUG9zaXRpb24gU2V0U3lzdGVtT3B0aW9ucyBTZXR0ZXIgU2V0dGVyQmFyIFNldHRlckJveCBTZXR0ZXJCb3hPcHRpb25zIFNldHRpbmcgU2V0VmFsdWUgU2hhZGluZyBTaGFsbG93IFNoYW5ub25XYXZlbGV0IFNoYXBpcm9XaWxrVGVzdCBTaGFyZSBTaGFycGVuIFNoZWFyaW5nTWF0cml4IFNoZWFyaW5nVHJhbnNmb3JtIFNoZW5DYXN0YW5NYXRyaXggU2hvcnQgU2hvcnREb3duQXJyb3cgU2hvcnRlc3QgU2hvcnRlc3RNYXRjaCBTaG9ydGVzdFBhdGhGdW5jdGlvbiBTaG9ydExlZnRBcnJvdyBTaG9ydFJpZ2h0QXJyb3cgU2hvcnRVcEFycm93IFNob3cgU2hvd0F1dG9TdHlsZXMgU2hvd0NlbGxCcmFja2V0IFNob3dDZWxsTGFiZWwgU2hvd0NlbGxUYWdzIFNob3dDbG9zZWRDZWxsQXJlYSBTaG93Q29udGVudHMgU2hvd0NvbnRyb2xzIFNob3dDdXJzb3JUcmFja2VyIFNob3dHcm91cE9wZW5DbG9zZUljb24gU2hvd0dyb3VwT3BlbmVyIFNob3dJbnZpc2libGVDaGFyYWN0ZXJzIFNob3dQYWdlQnJlYWtzIFNob3dQcmVkaWN0aXZlSW50ZXJmYWNlIFNob3dTZWxlY3Rpb24gU2hvd1Nob3J0Qm94Rm9ybSBTaG93U3BlY2lhbENoYXJhY3RlcnMgU2hvd1N0cmluZ0NoYXJhY3RlcnMgU2hvd1N5bnRheFN0eWxlcyBTaHJpbmtpbmdEZWxheSBTaHJpbmtXcmFwQm91bmRpbmdCb3ggU2llZ2VsVGhldGEgU2llZ2VsVHVrZXlUZXN0IFNpZ24gU2lnbmF0dXJlIFNpZ25lZFJhbmtUZXN0IFNpZ25pZmljYW5jZUxldmVsIFNpZ25QYWRkaW5nIFNpZ25UZXN0IFNpbWlsYXJpdHlSdWxlcyBTaW1wbGVHcmFwaCBTaW1wbGVHcmFwaFEgU2ltcGxpZnkgU2luIFNpbmMgU2luZ2hNYWRkYWxhRGlzdHJpYnV0aW9uIFNpbmdsZUV2YWx1YXRpb24gU2luZ2xlTGV0dGVySXRhbGljcyBTaW5nbGVMZXR0ZXJTdHlsZSBTaW5ndWxhclZhbHVlRGVjb21wb3NpdGlvbiBTaW5ndWxhclZhbHVlTGlzdCBTaW5ndWxhclZhbHVlUGxvdCBTaW5ndWxhclZhbHVlcyBTaW5oIFNpbmhJbnRlZ3JhbCBTaW5JbnRlZ3JhbCBTaXhKU3ltYm9sIFNrZWxldG9uIFNrZWxldG9uVHJhbnNmb3JtIFNrZWxsYW1EaXN0cmlidXRpb24gU2tld25lc3MgU2tld05vcm1hbERpc3RyaWJ1dGlvbiBTa2lwIFNsaWNlRGlzdHJpYnV0aW9uIFNsaWRlciBTbGlkZXIyRCBTbGlkZXIyREJveCBTbGlkZXIyREJveE9wdGlvbnMgU2xpZGVyQm94IFNsaWRlckJveE9wdGlvbnMgU2xpZGVWaWV3IFNsb3QgU2xvdFNlcXVlbmNlIFNtYWxsIFNtYWxsQ2lyY2xlIFNtYWxsZXIgU21pdGhEZWxheUNvbXBlbnNhdG9yIFNtaXRoV2F0ZXJtYW5TaW1pbGFyaXR5ICcgK1xuICAgICAgJ1Ntb290aERlbnNpdHlIaXN0b2dyYW0gU21vb3RoSGlzdG9ncmFtIFNtb290aEhpc3RvZ3JhbTNEIFNtb290aEtlcm5lbERpc3RyaWJ1dGlvbiBTb2NpYWxNZWRpYURhdGEgU29ja2V0IFNva2FsU25lYXRoRGlzc2ltaWxhcml0eSBTb2x2ZSBTb2x2ZUFsd2F5cyBTb2x2ZURlbGF5ZWQgU29ydCBTb3J0QnkgU291bmQgU291bmRBbmRHcmFwaGljcyBTb3VuZE5vdGUgU291bmRWb2x1bWUgU293IFNwYWNlIFNwYWNlRm9ybSBTcGFjZXIgU3BhY2luZ3MgU3BhbiBTcGFuQWRqdXN0bWVudHMgU3BhbkNoYXJhY3RlclJvdW5kaW5nIFNwYW5Gcm9tQWJvdmUgU3BhbkZyb21Cb3RoIFNwYW5Gcm9tTGVmdCBTcGFuTGluZVRoaWNrbmVzcyBTcGFuTWF4U2l6ZSBTcGFuTWluU2l6ZSBTcGFubmluZ0NoYXJhY3RlcnMgU3BhblN5bW1ldHJpYyBTcGFyc2VBcnJheSBTcGF0aWFsR3JhcGhEaXN0cmlidXRpb24gU3BlYWsgU3BlYWtUZXh0UGFja2V0IFNwZWFybWFuUmFua1Rlc3QgU3BlYXJtYW5SaG8gU3BlY3Ryb2dyYW0gU3BlY3Ryb2dyYW1BcnJheSBTcGVjdWxhcml0eSBTcGVsbGluZ0NvcnJlY3Rpb24gU3BlbGxpbmdEaWN0aW9uYXJpZXMgU3BlbGxpbmdEaWN0aW9uYXJpZXNQYXRoIFNwZWxsaW5nT3B0aW9ucyBTcGVsbGluZ1N1Z2dlc3Rpb25zUGFja2V0IFNwaGVyZSBTcGhlcmVCb3ggU3BoZXJpY2FsQmVzc2VsSiBTcGhlcmljYWxCZXNzZWxZIFNwaGVyaWNhbEhhbmtlbEgxIFNwaGVyaWNhbEhhbmtlbEgyIFNwaGVyaWNhbEhhcm1vbmljWSBTcGhlcmljYWxQbG90M0QgU3BoZXJpY2FsUmVnaW9uIFNwaGVyb2lkYWxFaWdlbnZhbHVlIFNwaGVyb2lkYWxKb2luaW5nRmFjdG9yIFNwaGVyb2lkYWxQUyBTcGhlcm9pZGFsUFNQcmltZSBTcGhlcm9pZGFsUVMgU3BoZXJvaWRhbFFTUHJpbWUgU3BoZXJvaWRhbFJhZGlhbEZhY3RvciBTcGhlcm9pZGFsUzEgU3BoZXJvaWRhbFMxUHJpbWUgU3BoZXJvaWRhbFMyIFNwaGVyb2lkYWxTMlByaW1lIFNwbGljZSBTcGxpY2VkRGlzdHJpYnV0aW9uIFNwbGluZUNsb3NlZCBTcGxpbmVEZWdyZWUgU3BsaW5lS25vdHMgU3BsaW5lV2VpZ2h0cyBTcGxpdCBTcGxpdEJ5IFNwb2tlblN0cmluZyBTcXJ0IFNxcnRCb3ggU3FydEJveE9wdGlvbnMgU3F1YXJlIFNxdWFyZWRFdWNsaWRlYW5EaXN0YW5jZSBTcXVhcmVGcmVlUSBTcXVhcmVJbnRlcnNlY3Rpb24gU3F1YXJlc1IgU3F1YXJlU3Vic2V0IFNxdWFyZVN1YnNldEVxdWFsIFNxdWFyZVN1cGVyc2V0IFNxdWFyZVN1cGVyc2V0RXF1YWwgU3F1YXJlVW5pb24gU3F1YXJlV2F2ZSBTdGFiaWxpdHlNYXJnaW5zIFN0YWJpbGl0eU1hcmdpbnNTdHlsZSBTdGFibGVEaXN0cmlidXRpb24gU3RhY2sgU3RhY2tCZWdpbiBTdGFja0NvbXBsZXRlIFN0YWNrSW5oaWJpdCBTdGFuZGFyZERldmlhdGlvbiBTdGFuZGFyZERldmlhdGlvbkZpbHRlciBTdGFuZGFyZEZvcm0gU3RhbmRhcmRpemUgU3RhbmRieURpc3RyaWJ1dGlvbiBTdGFyIFN0YXJHcmFwaCBTdGFydEFzeW5jaHJvbm91c1Rhc2sgU3RhcnRpbmdTdGVwU2l6ZSBTdGFydE9mTGluZSBTdGFydE9mU3RyaW5nIFN0YXJ0U2NoZWR1bGVkVGFzayBTdGFydHVwU291bmQgU3RhdGVEaW1lbnNpb25zIFN0YXRlRmVlZGJhY2tHYWlucyBTdGF0ZU91dHB1dEVzdGltYXRvciBTdGF0ZVJlc3BvbnNlIFN0YXRlU3BhY2VNb2RlbCBTdGF0ZVNwYWNlUmVhbGl6YXRpb24gU3RhdGVTcGFjZVRyYW5zZm9ybSBTdGF0aW9uYXJ5RGlzdHJpYnV0aW9uIFN0YXRpb25hcnlXYXZlbGV0UGFja2V0VHJhbnNmb3JtIFN0YXRpb25hcnlXYXZlbGV0VHJhbnNmb3JtIFN0YXR1c0FyZWEgU3RhdHVzQ2VudHJhbGl0eSBTdGVwTW9uaXRvciBTdGllbHRqZXNHYW1tYSBTdGlybGluZ1MxIFN0aXJsaW5nUzIgU3RvcEFzeW5jaHJvbm91c1Rhc2sgU3RvcFNjaGVkdWxlZFRhc2sgU3RyYXRhVmFyaWFibGVzIFN0cmF0b25vdmljaFByb2Nlc3MgU3RyZWFtQ29sb3JGdW5jdGlvbiBTdHJlYW1Db2xvckZ1bmN0aW9uU2NhbGluZyBTdHJlYW1EZW5zaXR5UGxvdCBTdHJlYW1QbG90IFN0cmVhbVBvaW50cyBTdHJlYW1Qb3NpdGlvbiBTdHJlYW1zIFN0cmVhbVNjYWxlIFN0cmVhbVN0eWxlIFN0cmluZyBTdHJpbmdCcmVhayBTdHJpbmdCeXRlQ291bnQgU3RyaW5nQ2FzZXMgU3RyaW5nQ291bnQgU3RyaW5nRHJvcCBTdHJpbmdFeHByZXNzaW9uIFN0cmluZ0Zvcm0gU3RyaW5nRm9ybWF0IFN0cmluZ0ZyZWVRIFN0cmluZ0luc2VydCBTdHJpbmdKb2luIFN0cmluZ0xlbmd0aCBTdHJpbmdNYXRjaFEgU3RyaW5nUG9zaXRpb24gU3RyaW5nUSBTdHJpbmdSZXBsYWNlIFN0cmluZ1JlcGxhY2VMaXN0IFN0cmluZ1JlcGxhY2VQYXJ0IFN0cmluZ1JldmVyc2UgU3RyaW5nUm90YXRlTGVmdCBTdHJpbmdSb3RhdGVSaWdodCBTdHJpbmdTa2VsZXRvbiBTdHJpbmdTcGxpdCBTdHJpbmdUYWtlIFN0cmluZ1RvU3RyZWFtIFN0cmluZ1RyaW0gU3RyaXBCb3hlcyBTdHJpcE9uSW5wdXQgU3RyaXBXcmFwcGVyQm94ZXMgU3Ryb2tlRm9ybSBTdHJ1Y3R1cmFsSW1wb3J0YW5jZSBTdHJ1Y3R1cmVkQXJyYXkgU3RydWN0dXJlZFNlbGVjdGlvbiBTdHJ1dmVIIFN0cnV2ZUwgU3R1YiBTdHVkZW50VERpc3RyaWJ1dGlvbiBTdHlsZSBTdHlsZUJveCBTdHlsZUJveEF1dG9EZWxldGUgU3R5bGVCb3hPcHRpb25zIFN0eWxlRGF0YSBTdHlsZURlZmluaXRpb25zIFN0eWxlRm9ybSBTdHlsZUtleU1hcHBpbmcgU3R5bGVNZW51TGlzdGluZyBTdHlsZU5hbWVEaWFsb2dTZXR0aW5ncyBTdHlsZU5hbWVzIFN0eWxlUHJpbnQgU3R5bGVTaGVldFBhdGggU3ViZmFjdG9yaWFsIFN1YmdyYXBoIFN1Yk1pbnVzIFN1YlBsdXMgU3VicmVzdWx0YW50UG9seW5vbWlhbFJlbWFpbmRlcnMgJyArXG4gICAgICAnU3VicmVzdWx0YW50UG9seW5vbWlhbHMgU3VicmVzdWx0YW50cyBTdWJzY3JpcHQgU3Vic2NyaXB0Qm94IFN1YnNjcmlwdEJveE9wdGlvbnMgU3Vic2NyaXB0ZWQgU3Vic2V0IFN1YnNldEVxdWFsIFN1YnNldHMgU3ViU3RhciBTdWJzdXBlcnNjcmlwdCBTdWJzdXBlcnNjcmlwdEJveCBTdWJzdXBlcnNjcmlwdEJveE9wdGlvbnMgU3VidHJhY3QgU3VidHJhY3RGcm9tIFN1YlZhbHVlcyBTdWNjZWVkcyBTdWNjZWVkc0VxdWFsIFN1Y2NlZWRzU2xhbnRFcXVhbCBTdWNjZWVkc1RpbGRlIFN1Y2hUaGF0IFN1bSBTdW1Db252ZXJnZW5jZSBTdW5kYXkgU3VwZXJEYWdnZXIgU3VwZXJNaW51cyBTdXBlclBsdXMgU3VwZXJzY3JpcHQgU3VwZXJzY3JpcHRCb3ggU3VwZXJzY3JpcHRCb3hPcHRpb25zIFN1cGVyc2V0IFN1cGVyc2V0RXF1YWwgU3VwZXJTdGFyIFN1cmQgU3VyZEZvcm0gU3VyZmFjZUNvbG9yIFN1cmZhY2VHcmFwaGljcyBTdXJ2aXZhbERpc3RyaWJ1dGlvbiBTdXJ2aXZhbEZ1bmN0aW9uIFN1cnZpdmFsTW9kZWwgU3Vydml2YWxNb2RlbEZpdCBTdXNwZW5kUGFja2V0IFN1enVraURpc3RyaWJ1dGlvbiBTdXp1a2lHcm91cFN1eiBTd2F0Y2hMZWdlbmQgU3dpdGNoIFN5bWJvbCBTeW1ib2xOYW1lIFN5bWxldFdhdmVsZXQgU3ltbWV0cmljIFN5bW1ldHJpY0dyb3VwIFN5bW1ldHJpY01hdHJpeFEgU3ltbWV0cmljUG9seW5vbWlhbCBTeW1tZXRyaWNSZWR1Y3Rpb24gU3ltbWV0cml6ZSBTeW1tZXRyaXplZEFycmF5IFN5bW1ldHJpemVkQXJyYXlSdWxlcyBTeW1tZXRyaXplZERlcGVuZGVudENvbXBvbmVudHMgU3ltbWV0cml6ZWRJbmRlcGVuZGVudENvbXBvbmVudHMgU3ltbWV0cml6ZWRSZXBsYWNlUGFydCBTeW5jaHJvbm91c0luaXRpYWxpemF0aW9uIFN5bmNocm9ub3VzVXBkYXRpbmcgU3ludGF4IFN5bnRheEZvcm0gU3ludGF4SW5mb3JtYXRpb24gU3ludGF4TGVuZ3RoIFN5bnRheFBhY2tldCBTeW50YXhRIFN5c3RlbURpYWxvZ0lucHV0IFN5c3RlbUV4Y2VwdGlvbiBTeXN0ZW1IZWxwUGF0aCBTeXN0ZW1JbmZvcm1hdGlvbiBTeXN0ZW1JbmZvcm1hdGlvbkRhdGEgU3lzdGVtT3BlbiBTeXN0ZW1PcHRpb25zIFN5c3RlbXNNb2RlbERlbGF5IFN5c3RlbXNNb2RlbERlbGF5QXBwcm94aW1hdGUgU3lzdGVtc01vZGVsRGVsZXRlIFN5c3RlbXNNb2RlbERpbWVuc2lvbnMgU3lzdGVtc01vZGVsRXh0cmFjdCBTeXN0ZW1zTW9kZWxGZWVkYmFja0Nvbm5lY3QgU3lzdGVtc01vZGVsTGFiZWxzIFN5c3RlbXNNb2RlbE9yZGVyIFN5c3RlbXNNb2RlbFBhcmFsbGVsQ29ubmVjdCBTeXN0ZW1zTW9kZWxTZXJpZXNDb25uZWN0IFN5c3RlbXNNb2RlbFN0YXRlRmVlZGJhY2tDb25uZWN0IFN5c3RlbVN0dWIgJyArXG4gICAgICAnVGFiIFRhYkZpbGxpbmcgVGFibGUgVGFibGVBbGlnbm1lbnRzIFRhYmxlRGVwdGggVGFibGVEaXJlY3Rpb25zIFRhYmxlRm9ybSBUYWJsZUhlYWRpbmdzIFRhYmxlU3BhY2luZyBUYWJsZVZpZXcgVGFibGVWaWV3Qm94IFRhYlNwYWNpbmdzIFRhYlZpZXcgVGFiVmlld0JveCBUYWJWaWV3Qm94T3B0aW9ucyBUYWdCb3ggVGFnQm94Tm90ZSBUYWdCb3hPcHRpb25zIFRhZ2dpbmdSdWxlcyBUYWdTZXQgVGFnU2V0RGVsYXllZCBUYWdTdHlsZSBUYWdVbnNldCBUYWtlIFRha2VXaGlsZSBUYWxseSBUYW4gVGFuaCBUYXJnZXRGdW5jdGlvbnMgVGFyZ2V0VW5pdHMgVGF1dG9sb2d5USBUZWxlZ3JhcGhQcm9jZXNzIFRlbXBsYXRlQm94IFRlbXBsYXRlQm94T3B0aW9ucyBUZW1wbGF0ZVNsb3RTZXF1ZW5jZSBUZW1wb3JhbERhdGEgVGVtcG9yYXJ5IFRlbXBvcmFyeVZhcmlhYmxlIFRlbnNvckNvbnRyYWN0IFRlbnNvckRpbWVuc2lvbnMgVGVuc29yRXhwYW5kIFRlbnNvclByb2R1Y3QgVGVuc29yUSBUZW5zb3JSYW5rIFRlbnNvclJlZHVjZSBUZW5zb3JTeW1tZXRyeSBUZW5zb3JUcmFuc3Bvc2UgVGVuc29yV2VkZ2UgVGV0cmFoZWRyb24gVGV0cmFoZWRyb25Cb3ggVGV0cmFoZWRyb25Cb3hPcHRpb25zIFRlWEZvcm0gVGVYU2F2ZSBUZXh0IFRleHQzREJveCBUZXh0M0RCb3hPcHRpb25zIFRleHRBbGlnbm1lbnQgVGV4dEJhbmQgVGV4dEJvdW5kaW5nQm94IFRleHRCb3ggVGV4dENlbGwgVGV4dENsaXBib2FyZFR5cGUgVGV4dERhdGEgVGV4dEZvcm0gVGV4dEp1c3RpZmljYXRpb24gVGV4dExpbmUgVGV4dFBhY2tldCBUZXh0UGFyYWdyYXBoIFRleHRSZWNvZ25pemUgVGV4dFJlbmRlcmluZyBUZXh0U3R5bGUgVGV4dHVyZSBUZXh0dXJlQ29vcmRpbmF0ZUZ1bmN0aW9uIFRleHR1cmVDb29yZGluYXRlU2NhbGluZyBUaGVyZWZvcmUgVGhlcm1vbWV0ZXJHYXVnZSBUaGljayBUaGlja25lc3MgVGhpbiBUaGlubmluZyBUaGlzTGluayBUaG9tcHNvbkdyb3VwVGggVGhyZWFkIFRocmVlSlN5bWJvbCBUaHJlc2hvbGQgVGhyb3VnaCBUaHJvdyBUaHVtYm5haWwgVGh1cnNkYXkgVGlja3MgVGlja3NTdHlsZSBUaWxkZSBUaWxkZUVxdWFsIFRpbGRlRnVsbEVxdWFsIFRpbGRlVGlsZGUgVGltZUNvbnN0cmFpbmVkIFRpbWVDb25zdHJhaW50IFRpbWVzIFRpbWVzQnkgVGltZVNlcmllc0ZvcmVjYXN0IFRpbWVTZXJpZXNJbnZlcnRpYmlsaXR5IFRpbWVVc2VkIFRpbWVWYWx1ZSBUaW1lWm9uZSBUaW1pbmcgVGlueSBUaXRsZUdyb3VwaW5nIFRpdHNHcm91cFQgVG9Cb3hlcyBUb0NoYXJhY3RlckNvZGUgVG9Db2xvciBUb0NvbnRpbnVvdXNUaW1lTW9kZWwgVG9EYXRlIFRvRGlzY3JldGVUaW1lTW9kZWwgVG9lcGxpdHpNYXRyaXggVG9FeHByZXNzaW9uIFRvRmlsZU5hbWUgVG9nZXRoZXIgVG9nZ2xlIFRvZ2dsZUZhbHNlIFRvZ2dsZXIgVG9nZ2xlckJhciBUb2dnbGVyQm94IFRvZ2dsZXJCb3hPcHRpb25zIFRvSGVsZEV4cHJlc3Npb24gVG9JbnZlcnRpYmxlVGltZVNlcmllcyBUb2tlbldvcmRzIFRvbGVyYW5jZSBUb0xvd2VyQ2FzZSBUb051bWJlckZpZWxkIFRvb0JpZyBUb29sdGlwIFRvb2x0aXBCb3ggVG9vbHRpcEJveE9wdGlvbnMgVG9vbHRpcERlbGF5IFRvb2x0aXBTdHlsZSBUb3AgVG9wSGF0VHJhbnNmb3JtIFRvcG9sb2dpY2FsU29ydCBUb1JhZGljYWxzIFRvUnVsZXMgVG9TdHJpbmcgVG90YWwgVG90YWxIZWlnaHQgVG90YWxWYXJpYXRpb25GaWx0ZXIgVG90YWxXaWR0aCBUb3VjaHNjcmVlbkF1dG9ab29tIFRvdWNoc2NyZWVuQ29udHJvbFBsYWNlbWVudCBUb1VwcGVyQ2FzZSBUciBUcmFjZSBUcmFjZUFib3ZlIFRyYWNlQWN0aW9uIFRyYWNlQmFja3dhcmQgVHJhY2VEZXB0aCBUcmFjZURpYWxvZyBUcmFjZUZvcndhcmQgVHJhY2VJbnRlcm5hbCBUcmFjZUxldmVsIFRyYWNlT2ZmIFRyYWNlT24gVHJhY2VPcmlnaW5hbCBUcmFjZVByaW50IFRyYWNlU2NhbiBUcmFja2VkU3ltYm9scyBUcmFkaW5nQ2hhcnQgVHJhZGl0aW9uYWxGb3JtIFRyYWRpdGlvbmFsRnVuY3Rpb25Ob3RhdGlvbiBUcmFkaXRpb25hbE5vdGF0aW9uIFRyYWRpdGlvbmFsT3JkZXIgVHJhbnNmZXJGdW5jdGlvbkNhbmNlbCBUcmFuc2ZlckZ1bmN0aW9uRXhwYW5kIFRyYW5zZmVyRnVuY3Rpb25GYWN0b3IgVHJhbnNmZXJGdW5jdGlvbk1vZGVsIFRyYW5zZmVyRnVuY3Rpb25Qb2xlcyBUcmFuc2ZlckZ1bmN0aW9uVHJhbnNmb3JtIFRyYW5zZmVyRnVuY3Rpb25aZXJvcyBUcmFuc2Zvcm1hdGlvbkZ1bmN0aW9uIFRyYW5zZm9ybWF0aW9uRnVuY3Rpb25zIFRyYW5zZm9ybWF0aW9uTWF0cml4IFRyYW5zZm9ybWVkRGlzdHJpYnV0aW9uIFRyYW5zZm9ybWVkRmllbGQgVHJhbnNsYXRlIFRyYW5zbGF0aW9uVHJhbnNmb3JtIFRyYW5zcGFyZW50Q29sb3IgVHJhbnNwb3NlIFRyZWVGb3JtIFRyZWVHcmFwaCBUcmVlR3JhcGhRIFRyZWVQbG90IFRyZW5kU3R5bGUgVHJpYW5nbGVXYXZlIFRyaWFuZ3VsYXJEaXN0cmlidXRpb24gVHJpZyBUcmlnRXhwYW5kIFRyaWdGYWN0b3IgVHJpZ0ZhY3Rvckxpc3QgVHJpZ2dlciBUcmlnUmVkdWNlIFRyaWdUb0V4cCBUcmltbWVkTWVhbiBUcnVlIFRydWVRIFRydW5jYXRlZERpc3RyaWJ1dGlvbiBUc2FsbGlzUUV4cG9uZW50aWFsRGlzdHJpYnV0aW9uIFRzYWxsaXNRR2F1c3NpYW5EaXN0cmlidXRpb24gVFRlc3QgVHViZSBUdWJlQmV6aWVyQ3VydmVCb3ggVHViZUJlemllckN1cnZlQm94T3B0aW9ucyBUdWJlQm94IFR1YmVCU3BsaW5lQ3VydmVCb3ggVHViZUJTcGxpbmVDdXJ2ZUJveE9wdGlvbnMgVHVlc2RheSBUdWtleUxhbWJkYURpc3RyaWJ1dGlvbiBUdWtleVdpbmRvdyBUdXBsZXMgVHVyYW5HcmFwaCBUdXJpbmdNYWNoaW5lICcgK1xuICAgICAgJ1RyYW5zcGFyZW50ICcgK1xuICAgICAgJ1VuYXRlUSBVbmNvbXByZXNzIFVuZGVmaW5lZCBVbmRlckJhciBVbmRlcmZsb3cgVW5kZXJsaW5lZCBVbmRlcm92ZXJzY3JpcHQgVW5kZXJvdmVyc2NyaXB0Qm94IFVuZGVyb3ZlcnNjcmlwdEJveE9wdGlvbnMgVW5kZXJzY3JpcHQgVW5kZXJzY3JpcHRCb3ggVW5kZXJzY3JpcHRCb3hPcHRpb25zIFVuZGlyZWN0ZWRFZGdlIFVuZGlyZWN0ZWRHcmFwaCBVbmRpcmVjdGVkR3JhcGhRIFVuZG9jdW1lbnRlZFRlc3RGRVBhcnNlclBhY2tldCBVbmRvY3VtZW50ZWRUZXN0R2V0U2VsZWN0aW9uUGFja2V0IFVuZXF1YWwgVW5ldmFsdWF0ZWQgVW5pZm9ybURpc3RyaWJ1dGlvbiBVbmlmb3JtR3JhcGhEaXN0cmlidXRpb24gVW5pZm9ybVN1bURpc3RyaWJ1dGlvbiBVbmluc3RhbGwgVW5pb24gVW5pb25QbHVzIFVuaXF1ZSBVbml0Qm94IFVuaXRDb252ZXJ0IFVuaXREaW1lbnNpb25zIFVuaXRpemUgVW5pdFJvb3RUZXN0IFVuaXRTaW1wbGlmeSBVbml0U3RlcCBVbml0VHJpYW5nbGUgVW5pdFZlY3RvciBVbnByb3RlY3QgVW5zYW1lUSBVbnNhdmVkVmFyaWFibGVzIFVuc2V0IFVuc2V0U2hhcmVkIFVudHJhY2tlZFZhcmlhYmxlcyBVcCBVcEFycm93IFVwQXJyb3dCYXIgVXBBcnJvd0Rvd25BcnJvdyBVcGRhdGUgVXBkYXRlRHluYW1pY09iamVjdHMgVXBkYXRlRHluYW1pY09iamVjdHNTeW5jaHJvbm91cyBVcGRhdGVJbnRlcnZhbCBVcERvd25BcnJvdyBVcEVxdWlsaWJyaXVtIFVwcGVyQ2FzZVEgVXBwZXJMZWZ0QXJyb3cgVXBwZXJSaWdodEFycm93IFVwcGVyVHJpYW5ndWxhcml6ZSBVcHNhbXBsZSBVcFNldCBVcFNldERlbGF5ZWQgVXBUZWUgVXBUZWVBcnJvdyBVcFZhbHVlcyBVUkwgVVJMRmV0Y2ggVVJMRmV0Y2hBc3luY2hyb25vdXMgVVJMU2F2ZSBVUkxTYXZlQXN5bmNocm9ub3VzIFVzZUdyYXBoaWNzUmFuZ2UgVXNpbmcgVXNpbmdGcm9udEVuZCAnICtcbiAgICAgICdWMkdldCBWYWxpZGF0aW9uTGVuZ3RoIFZhbHVlIFZhbHVlQm94IFZhbHVlQm94T3B0aW9ucyBWYWx1ZUZvcm0gVmFsdWVRIFZhbHVlc0RhdGEgVmFyaWFibGVzIFZhcmlhbmNlIFZhcmlhbmNlRXF1aXZhbGVuY2VUZXN0IFZhcmlhbmNlRXN0aW1hdG9yRnVuY3Rpb24gVmFyaWFuY2VHYW1tYURpc3RyaWJ1dGlvbiBWYXJpYW5jZVRlc3QgVmVjdG9yQW5nbGUgVmVjdG9yQ29sb3JGdW5jdGlvbiBWZWN0b3JDb2xvckZ1bmN0aW9uU2NhbGluZyBWZWN0b3JEZW5zaXR5UGxvdCBWZWN0b3JHbHlwaERhdGEgVmVjdG9yUGxvdCBWZWN0b3JQbG90M0QgVmVjdG9yUG9pbnRzIFZlY3RvclEgVmVjdG9ycyBWZWN0b3JTY2FsZSBWZWN0b3JTdHlsZSBWZWUgVmVyYmF0aW0gVmVyYm9zZSBWZXJib3NlQ29udmVydFRvUG9zdFNjcmlwdFBhY2tldCBWZXJpZnlDb252ZXJnZW5jZSBWZXJpZnlTb2x1dGlvbnMgVmVyaWZ5VGVzdEFzc3VtcHRpb25zIFZlcnNpb24gVmVyc2lvbk51bWJlciBWZXJ0ZXhBZGQgVmVydGV4Q2FwYWNpdHkgVmVydGV4Q29sb3JzIFZlcnRleENvbXBvbmVudCBWZXJ0ZXhDb25uZWN0aXZpdHkgVmVydGV4Q29vcmRpbmF0ZVJ1bGVzIFZlcnRleENvb3JkaW5hdGVzIFZlcnRleENvcnJlbGF0aW9uU2ltaWxhcml0eSBWZXJ0ZXhDb3NpbmVTaW1pbGFyaXR5IFZlcnRleENvdW50IFZlcnRleENvdmVyUSBWZXJ0ZXhEYXRhQ29vcmRpbmF0ZXMgVmVydGV4RGVncmVlIFZlcnRleERlbGV0ZSBWZXJ0ZXhEaWNlU2ltaWxhcml0eSBWZXJ0ZXhFY2NlbnRyaWNpdHkgVmVydGV4SW5Db21wb25lbnQgVmVydGV4SW5EZWdyZWUgVmVydGV4SW5kZXggVmVydGV4SmFjY2FyZFNpbWlsYXJpdHkgVmVydGV4TGFiZWxpbmcgVmVydGV4TGFiZWxzIFZlcnRleExhYmVsU3R5bGUgVmVydGV4TGlzdCBWZXJ0ZXhOb3JtYWxzIFZlcnRleE91dENvbXBvbmVudCBWZXJ0ZXhPdXREZWdyZWUgVmVydGV4USBWZXJ0ZXhSZW5kZXJpbmdGdW5jdGlvbiBWZXJ0ZXhSZXBsYWNlIFZlcnRleFNoYXBlIFZlcnRleFNoYXBlRnVuY3Rpb24gVmVydGV4U2l6ZSBWZXJ0ZXhTdHlsZSBWZXJ0ZXhUZXh0dXJlQ29vcmRpbmF0ZXMgVmVydGV4V2VpZ2h0IFZlcnRpY2FsIFZlcnRpY2FsQmFyIFZlcnRpY2FsRm9ybSBWZXJ0aWNhbEdhdWdlIFZlcnRpY2FsU2VwYXJhdG9yIFZlcnRpY2FsU2xpZGVyIFZlcnRpY2FsVGlsZGUgVmlld0FuZ2xlIFZpZXdDZW50ZXIgVmlld01hdHJpeCBWaWV3UG9pbnQgVmlld1BvaW50U2VsZWN0b3JTZXR0aW5ncyBWaWV3UG9ydCBWaWV3UmFuZ2UgVmlld1ZlY3RvciBWaWV3VmVydGljYWwgVmlydHVhbEdyb3VwRGF0YSBWaXNpYmxlIFZpc2libGVDZWxsIFZvaWd0RGlzdHJpYnV0aW9uIFZvbk1pc2VzRGlzdHJpYnV0aW9uICcgK1xuICAgICAgJ1dhaXRBbGwgV2FpdEFzeW5jaHJvbm91c1Rhc2sgV2FpdE5leHQgV2FpdFVudGlsIFdha2VieURpc3RyaWJ1dGlvbiBXYWxsZW5pdXNIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvbiBXYXJpbmdZdWxlRGlzdHJpYnV0aW9uIFdhdGVyc2hlZENvbXBvbmVudHMgV2F0c29uVVNxdWFyZVRlc3QgV2F0dHNTdHJvZ2F0ekdyYXBoRGlzdHJpYnV0aW9uIFdhdmVsZXRCZXN0QmFzaXMgV2F2ZWxldEZpbHRlckNvZWZmaWNpZW50cyBXYXZlbGV0SW1hZ2VQbG90IFdhdmVsZXRMaXN0UGxvdCBXYXZlbGV0TWFwSW5kZXhlZCBXYXZlbGV0TWF0cml4UGxvdCBXYXZlbGV0UGhpIFdhdmVsZXRQc2kgV2F2ZWxldFNjYWxlIFdhdmVsZXRTY2Fsb2dyYW0gV2F2ZWxldFRocmVzaG9sZCBXZWFrbHlDb25uZWN0ZWRDb21wb25lbnRzIFdlYWtseUNvbm5lY3RlZEdyYXBoUSBXZWFrU3RhdGlvbmFyaXR5IFdlYXRoZXJEYXRhIFdlYmVyRSBXZWRnZSBXZWRuZXNkYXkgV2VpYnVsbERpc3RyaWJ1dGlvbiBXZWllcnN0cmFzc0hhbGZQZXJpb2RzIFdlaWVyc3RyYXNzSW52YXJpYW50cyBXZWllcnN0cmFzc1AgV2VpZXJzdHJhc3NQUHJpbWUgV2VpZXJzdHJhc3NTaWdtYSBXZWllcnN0cmFzc1pldGEgV2VpZ2h0ZWRBZGphY2VuY3lHcmFwaCBXZWlnaHRlZEFkamFjZW5jeU1hdHJpeCBXZWlnaHRlZERhdGEgV2VpZ2h0ZWRHcmFwaFEgV2VpZ2h0cyBXZWxjaFdpbmRvdyBXaGVlbEdyYXBoIFdoZW5FdmVudCBXaGljaCBXaGlsZSBXaGl0ZSBXaGl0ZXNwYWNlIFdoaXRlc3BhY2VDaGFyYWN0ZXIgV2hpdHRha2VyTSBXaGl0dGFrZXJXIFdpZW5lckZpbHRlciBXaWVuZXJQcm9jZXNzIFdpZ25lckQgV2lnbmVyU2VtaWNpcmNsZURpc3RyaWJ1dGlvbiBXaWxrc1cgV2lsa3NXVGVzdCBXaW5kb3dDbGlja1NlbGVjdCBXaW5kb3dFbGVtZW50cyBXaW5kb3dGbG9hdGluZyBXaW5kb3dGcmFtZSBXaW5kb3dGcmFtZUVsZW1lbnRzIFdpbmRvd01hcmdpbnMgV2luZG93TW92YWJsZSBXaW5kb3dPcGFjaXR5IFdpbmRvd1NlbGVjdGVkIFdpbmRvd1NpemUgV2luZG93U3RhdHVzQXJlYSBXaW5kb3dUaXRsZSBXaW5kb3dUb29sYmFycyBXaW5kb3dXaWR0aCBXaXRoIFdvbGZyYW1BbHBoYSBXb2xmcmFtQWxwaGFEYXRlIFdvbGZyYW1BbHBoYVF1YW50aXR5IFdvbGZyYW1BbHBoYVJlc3VsdCBXb3JkIFdvcmRCb3VuZGFyeSBXb3JkQ2hhcmFjdGVyIFdvcmREYXRhIFdvcmRTZWFyY2ggV29yZFNlcGFyYXRvcnMgV29ya2luZ1ByZWNpc2lvbiBXcml0ZSBXcml0ZVN0cmluZyBXcm9uc2tpYW4gJyArXG4gICAgICAnWE1MRWxlbWVudCBYTUxPYmplY3QgWG5vciBYb3IgJyArXG4gICAgICAnWWVsbG93IFl1bGVEaXNzaW1pbGFyaXR5ICcgK1xuICAgICAgJ1plcm5pa2VSIFplcm9TeW1tZXRyaWMgWmVyb1Rlc3QgWmVyb1dpZHRoVGltZXMgWmV0YSBaZXRhWmVybyBaaXBmRGlzdHJpYnV0aW9uIFpUZXN0IFpUcmFuc2Zvcm0gJyArXG4gICAgICAnJEFib3J0ZWQgJEFjdGl2YXRpb25Hcm91cElEICRBY3RpdmF0aW9uS2V5ICRBY3RpdmF0aW9uVXNlclJlZ2lzdGVyZWQgJEFkZE9uc0RpcmVjdG9yeSAkQXNzZXJ0RnVuY3Rpb24gJEFzc3VtcHRpb25zICRBc3luY2hyb25vdXNUYXNrICRCYXNlRGlyZWN0b3J5ICRCYXRjaElucHV0ICRCYXRjaE91dHB1dCAkQm94Rm9ybXMgJEJ5dGVPcmRlcmluZyAkQ2FuY2VsZWQgJENoYXJhY3RlckVuY29kaW5nICRDaGFyYWN0ZXJFbmNvZGluZ3MgJENvbW1hbmRMaW5lICRDb21waWxhdGlvblRhcmdldCAkQ29uZGl0aW9uSG9sZCAkQ29uZmlndXJlZEtlcm5lbHMgJENvbnRleHQgJENvbnRleHRQYXRoICRDb250cm9sQWN0aXZlU2V0dGluZyAkQ3JlYXRpb25EYXRlICRDdXJyZW50TGluayAkRGF0ZVN0cmluZ0Zvcm1hdCAkRGVmYXVsdEZvbnQgJERlZmF1bHRGcm9udEVuZCAkRGVmYXVsdEltYWdpbmdEZXZpY2UgJERlZmF1bHRQYXRoICREaXNwbGF5ICREaXNwbGF5RnVuY3Rpb24gJERpc3RyaWJ1dGVkQ29udGV4dHMgJER5bmFtaWNFdmFsdWF0aW9uICRFY2hvICRFcGlsb2cgJEV4cG9ydEZvcm1hdHMgJEZhaWxlZCAkRmluYW5jaWFsRGF0YVNvdXJjZSAkRm9ybWF0VHlwZSAkRnJvbnRFbmQgJEZyb250RW5kU2Vzc2lvbiAkR2VvTG9jYXRpb24gJEhpc3RvcnlMZW5ndGggJEhvbWVEaXJlY3RvcnkgJEhUVFBDb29raWVzICRJZ25vcmVFT0YgJEltYWdpbmdEZXZpY2VzICRJbXBvcnRGb3JtYXRzICRJbml0aWFsRGlyZWN0b3J5ICRJbnB1dCAkSW5wdXRGaWxlTmFtZSAkSW5wdXRTdHJlYW1NZXRob2RzICRJbnNwZWN0b3IgJEluc3RhbGxhdGlvbkRhdGUgJEluc3RhbGxhdGlvbkRpcmVjdG9yeSAkSW50ZXJmYWNlRW52aXJvbm1lbnQgJEl0ZXJhdGlvbkxpbWl0ICRLZXJuZWxDb3VudCAkS2VybmVsSUQgJExhbmd1YWdlICRMYXVuY2hEaXJlY3RvcnkgJExpYnJhcnlQYXRoICRMaWNlbnNlRXhwaXJhdGlvbkRhdGUgJExpY2Vuc2VJRCAkTGljZW5zZVByb2Nlc3NlcyAkTGljZW5zZVNlcnZlciAkTGljZW5zZVN1YnByb2Nlc3NlcyAkTGljZW5zZVR5cGUgJExpbmUgJExpbmtlZCAkTGlua1N1cHBvcnRlZCAkTG9hZGVkRmlsZXMgJE1hY2hpbmVBZGRyZXNzZXMgJE1hY2hpbmVEb21haW4gJE1hY2hpbmVEb21haW5zICRNYWNoaW5lRXBzaWxvbiAkTWFjaGluZUlEICRNYWNoaW5lTmFtZSAkTWFjaGluZVByZWNpc2lvbiAkTWFjaGluZVR5cGUgJE1heEV4dHJhUHJlY2lzaW9uICRNYXhMaWNlbnNlUHJvY2Vzc2VzICRNYXhMaWNlbnNlU3VicHJvY2Vzc2VzICRNYXhNYWNoaW5lTnVtYmVyICRNYXhOdW1iZXIgJE1heFBpZWNld2lzZUNhc2VzICRNYXhQcmVjaXNpb24gJE1heFJvb3REZWdyZWUgJE1lc3NhZ2VHcm91cHMgJE1lc3NhZ2VMaXN0ICRNZXNzYWdlUHJlUHJpbnQgJE1lc3NhZ2VzICRNaW5NYWNoaW5lTnVtYmVyICRNaW5OdW1iZXIgJE1pbm9yUmVsZWFzZU51bWJlciAkTWluUHJlY2lzaW9uICRNb2R1bGVOdW1iZXIgJE5ldHdvcmtMaWNlbnNlICROZXdNZXNzYWdlICROZXdTeW1ib2wgJE5vdGVib29rcyAkTnVtYmVyTWFya3MgJE9mZiAkT3BlcmF0aW5nU3lzdGVtICRPdXRwdXQgJE91dHB1dEZvcm1zICRPdXRwdXRTaXplTGltaXQgJE91dHB1dFN0cmVhbU1ldGhvZHMgJFBhY2thZ2VzICRQYXJlbnRMaW5rICRQYXJlbnRQcm9jZXNzSUQgJFBhc3N3b3JkRmlsZSAkUGF0Y2hMZXZlbElEICRQYXRoICRQYXRobmFtZVNlcGFyYXRvciAkUGVyZm9ybWFuY2VHb2FsICRQaXBlU3VwcG9ydGVkICRQb3N0ICRQcmUgJFByZWZlcmVuY2VzRGlyZWN0b3J5ICRQcmVQcmludCAkUHJlUmVhZCAkUHJpbnRGb3JtcyAkUHJpbnRMaXRlcmFsICRQcm9jZXNzSUQgJFByb2Nlc3NvckNvdW50ICRQcm9jZXNzb3JUeXBlICRQcm9kdWN0SW5mb3JtYXRpb24gJFByb2dyYW1OYW1lICRSYW5kb21TdGF0ZSAkUmVjdXJzaW9uTGltaXQgJFJlbGVhc2VOdW1iZXIgJFJvb3REaXJlY3RvcnkgJFNjaGVkdWxlZFRhc2sgJFNjcmlwdENvbW1hbmRMaW5lICRTZXNzaW9uSUQgJFNldFBhcmVudExpbmsgJFNoYXJlZEZ1bmN0aW9ucyAkU2hhcmVkVmFyaWFibGVzICRTb3VuZERpc3BsYXkgJFNvdW5kRGlzcGxheUZ1bmN0aW9uICRTdXBwcmVzc0lucHV0Rm9ybUhlYWRzICRTeW5jaHJvbm91c0V2YWx1YXRpb24gJFN5bnRheEhhbmRsZXIgJFN5c3RlbSAkU3lzdGVtQ2hhcmFjdGVyRW5jb2RpbmcgJFN5c3RlbUlEICRTeXN0ZW1Xb3JkTGVuZ3RoICRUZW1wb3JhcnlEaXJlY3RvcnkgJFRlbXBvcmFyeVByZWZpeCAkVGV4dFN0eWxlICRUaW1lZE91dCAkVGltZVVuaXQgJFRpbWVab25lICRUb3BEaXJlY3RvcnkgJFRyYWNlT2ZmICRUcmFjZU9uICRUcmFjZVBhdHRlcm4gJFRyYWNlUG9zdEFjdGlvbiAkVHJhY2VQcmVBY3Rpb24gJFVyZ2VudCAkVXNlckFkZE9uc0RpcmVjdG9yeSAkVXNlckJhc2VEaXJlY3RvcnkgJFVzZXJEb2N1bWVudHNEaXJlY3RvcnkgJFVzZXJOYW1lICRWZXJzaW9uICRWZXJzaW9uTnVtYmVyJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46IC9cXChcXCovLCBlbmQ6IC9cXCpcXCkvXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXHsvLCBlbmQ6IC9cXH0vLFxuICAgICAgICBpbGxlZ2FsOiAvOi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ09NTU9OX0NPTlRBSU5TID0gW1xuICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnLFxuICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIHtiZWdpbjogJ1xcJ1xcJyd9XVxuICAgIH1cbiAgXTtcbiAgdmFyIFRSQU5TUE9TRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nWydcXC5dKi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2JyZWFrIGNhc2UgY2F0Y2ggY2xhc3NkZWYgY29udGludWUgZWxzZSBlbHNlaWYgZW5kIGVudW1lcmF0ZWQgZXZlbnRzIGZvciBmdW5jdGlvbiAnICtcbiAgICAgICAgJ2dsb2JhbCBpZiBtZXRob2RzIG90aGVyd2lzZSBwYXJmb3IgcGVyc2lzdGVudCBwcm9wZXJ0aWVzIHJldHVybiBzcG1kIHN3aXRjaCB0cnkgd2hpbGUnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdzaW4gc2luZCBzaW5oIGFzaW4gYXNpbmQgYXNpbmggY29zIGNvc2QgY29zaCBhY29zIGFjb3NkIGFjb3NoIHRhbiB0YW5kIHRhbmggYXRhbiAnICtcbiAgICAgICAgJ2F0YW5kIGF0YW4yIGF0YW5oIHNlYyBzZWNkIHNlY2ggYXNlYyBhc2VjZCBhc2VjaCBjc2MgY3NjZCBjc2NoIGFjc2MgYWNzY2QgYWNzY2ggY290ICcgK1xuICAgICAgICAnY290ZCBjb3RoIGFjb3QgYWNvdGQgYWNvdGggaHlwb3QgZXhwIGV4cG0xIGxvZyBsb2cxcCBsb2cxMCBsb2cyIHBvdzIgcmVhbHBvdyByZWFsbG9nICcgK1xuICAgICAgICAncmVhbHNxcnQgc3FydCBudGhyb290IG5leHRwb3cyIGFicyBhbmdsZSBjb21wbGV4IGNvbmogaW1hZyByZWFsIHVud3JhcCBpc3JlYWwgJyArXG4gICAgICAgICdjcGx4cGFpciBmaXggZmxvb3IgY2VpbCByb3VuZCBtb2QgcmVtIHNpZ24gYWlyeSBiZXNzZWxqIGJlc3NlbHkgYmVzc2VsaCBiZXNzZWxpICcgK1xuICAgICAgICAnYmVzc2VsayBiZXRhIGJldGFpbmMgYmV0YWxuIGVsbGlwaiBlbGxpcGtlIGVyZiBlcmZjIGVyZmN4IGVyZmludiBleHBpbnQgZ2FtbWEgJyArXG4gICAgICAgICdnYW1tYWluYyBnYW1tYWxuIHBzaSBsZWdlbmRyZSBjcm9zcyBkb3QgZmFjdG9yIGlzcHJpbWUgcHJpbWVzIGdjZCBsY20gcmF0IHJhdHMgcGVybXMgJyArXG4gICAgICAgICduY2hvb3NlayBmYWN0b3JpYWwgY2FydDJzcGggY2FydDJwb2wgcG9sMmNhcnQgc3BoMmNhcnQgaHN2MnJnYiByZ2IyaHN2IHplcm9zIG9uZXMgJyArXG4gICAgICAgICdleWUgcmVwbWF0IHJhbmQgcmFuZG4gbGluc3BhY2UgbG9nc3BhY2UgZnJlcXNwYWNlIG1lc2hncmlkIGFjY3VtYXJyYXkgc2l6ZSBsZW5ndGggJyArXG4gICAgICAgICduZGltcyBudW1lbCBkaXNwIGlzZW1wdHkgaXNlcXVhbCBpc2VxdWFsd2l0aGVxdWFsbmFucyBjYXQgcmVzaGFwZSBkaWFnIGJsa2RpYWcgdHJpbCAnICtcbiAgICAgICAgJ3RyaXUgZmxpcGxyIGZsaXB1ZCBmbGlwZGltIHJvdDkwIGZpbmQgc3ViMmluZCBpbmQyc3ViIGJzeGZ1biBuZGdyaWQgcGVybXV0ZSBpcGVybXV0ZSAnICtcbiAgICAgICAgJ3NoaWZ0ZGltIGNpcmNzaGlmdCBzcXVlZXplIGlzc2NhbGFyIGlzdmVjdG9yIGFucyBlcHMgcmVhbG1heCByZWFsbWluIHBpIGkgaW5mIG5hbiAnICtcbiAgICAgICAgJ2lzbmFuIGlzaW5mIGlzZmluaXRlIGogd2h5IGNvbXBhbiBnYWxsZXJ5IGhhZGFtYXJkIGhhbmtlbCBoaWxiIGludmhpbGIgbWFnaWMgcGFzY2FsICcgK1xuICAgICAgICAncm9zc2VyIHRvZXBsaXR6IHZhbmRlciB3aWxraW5zb24nXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnKC8vfFwifCN8L1xcXFwqfFxcXFxzKy9cXFxcdyspJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICB7YmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJ30sXG4gICAgICAgICAgICAgIHtiZWdpbjogJ1xcXFxbJywgZW5kOiAnXFxcXF0nfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9bYS16QS1aX11bYS16QS1aXzAtOV0qJ1snXFwuXSovLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtiZWdpbjogL1thLXpBLVpfXVthLXpBLVpfMC05XSovLCByZWxldmFuY2U6IDB9LFxuICAgICAgICAgIFRSQU5TUE9TRS5jb250YWluc1swXVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxbJywgZW5kOiAnXFxcXF0nLFxuICAgICAgICBjb250YWluczogQ09NTU9OX0NPTlRBSU5TLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFx7JywgZW5kOiAvfS8sXG4gICAgICAgIGNvbnRhaW5zOiBDT01NT05fQ09OVEFJTlMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgc3RhcnRzOiBUUkFOU1BPU0VcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHRyYW5zcG9zZSBvcGVyYXRvcnMgYXQgdGhlIGVuZCBvZiBhIGZ1bmN0aW9uIGNhbGxcbiAgICAgICAgYmVnaW46IC9cXCkvLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXHMqXFxcXCVcXFxce1xcXFxzKiQnLCAnXlxcXFxzKlxcXFwlXFxcXH1cXFxccyokJyksXG4gICAgICBobGpzLkNPTU1FTlQoJ1xcXFwlJywgJyQnKVxuICAgIF0uY29uY2F0KENPTU1PTl9DT05UQUlOUylcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBLRVlXT1JEUyA9ICdpZiB0aGVuIGVsc2UgZWxzZWlmIGZvciB0aHJ1IGRvIHdoaWxlIHVubGVzcyBzdGVwIGluIGFuZCBvciBub3QnO1xuICB2YXIgTElURVJBTFMgPSAndHJ1ZSBmYWxzZSB1bmtub3duIGluZiBtaW5mIGluZCB1bmQgJWUgJWkgJXBpICVwaGkgJWdhbW1hJztcbiAgdmFyIEJVSUxUSU5fRlVOQ1RJT05TID1cbiAgICAgICAgJyBhYmFzZXAgYWJzIGFic2ludCBhYnNvbHV0ZV9yZWFsX3RpbWUgYWNvcyBhY29zaCBhY290IGFjb3RoIGFjc2MgYWNzY2ggYWN0aXZhdGUnXG4gICAgICArICcgYWRkY29sIGFkZF9lZGdlIGFkZF9lZGdlcyBhZGRtYXRyaWNlcyBhZGRyb3cgYWRkX3ZlcnRleCBhZGRfdmVydGljZXMgYWRqYWNlbmN5X21hdHJpeCdcbiAgICAgICsgJyBhZGpvaW4gYWRqb2ludCBhZiBhZ2QgYWlyeSBhaXJ5X2FpIGFpcnlfYmkgYWlyeV9kYWkgYWlyeV9kYmkgYWxnc3lzIGFsZ190eXBlJ1xuICAgICAgKyAnIGFsaWFzIGFsbHJvb3RzIGFscGhhY2hhcnAgYWxwaGFudW1lcmljcCBhbW9ydGl6YXRpb24gJWFuZCBhbm51aXR5X2Z2J1xuICAgICAgKyAnIGFubnVpdHlfcHYgYW50aWQgYW50aWRpZmYgQW50aURpZmZlcmVuY2UgYXBwZW5kIGFwcGVuZGZpbGUgYXBwbHkgYXBwbHkxIGFwcGx5MidcbiAgICAgICsgJyBhcHBseWIxIGFwcm9wb3MgYXJncyBhcml0X2Ftb3J0aXphdGlvbiBhcml0aG1ldGljIGFyaXRoc3VtIGFycmF5IGFycmF5YXBwbHknXG4gICAgICArICcgYXJyYXlpbmZvIGFycmF5bWFrZSBhcnJheXNldGFwcGx5IGFzY2lpIGFzZWMgYXNlY2ggYXNpbiBhc2luaCBhc2tpbnRlZ2VyJ1xuICAgICAgKyAnIGFza3NpZ24gYXNzb2MgYXNzb2NfbGVnZW5kcmVfcCBhc3NvY19sZWdlbmRyZV9xIGFzc3VtZSBhc3N1bWVfZXh0ZXJuYWxfYnl0ZV9vcmRlcidcbiAgICAgICsgJyBhc3ltcGEgYXQgYXRhbiBhdGFuMiBhdGFuaCBhdGVuc2ltcCBhdG9tIGF0dmFsdWUgYXVnY29lZm1hdHJpeCBhdWdtZW50ZWRfbGFncmFuZ2lhbl9tZXRob2QnXG4gICAgICArICcgYXYgYXZlcmFnZV9kZWdyZWUgYmFja3RyYWNlIGJhcnMgYmFyc3Bsb3QgYmFyc3Bsb3RfZGVzY3JpcHRpb24gYmFzZTY0IGJhc2U2NF9kZWNvZGUnXG4gICAgICArICcgYmFzaGluZGljZXMgYmF0Y2ggYmF0Y2hsb2FkIGJjMiBiZHZhYyBiZWxsbiBiZW5lZml0X2Nvc3QgYmVybiBiZXJucG9seSBiZXJuc3RlaW5fYXBwcm94J1xuICAgICAgKyAnIGJlcm5zdGVpbl9leHBhbmQgYmVybnN0ZWluX3BvbHkgYmVzc2VsIGJlc3NlbF9pIGJlc3NlbF9qIGJlc3NlbF9rIGJlc3NlbF9zaW1wbGlmeSdcbiAgICAgICsgJyBiZXNzZWxfeSBiZXRhIGJldGFfaW5jb21wbGV0ZSBiZXRhX2luY29tcGxldGVfZ2VuZXJhbGl6ZWQgYmV0YV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkJ1xuICAgICAgKyAnIGJlem91dCBiZmFsbHJvb3RzIGJmZmFjIGJmX2ZpbmRfcm9vdCBiZl9mbWluX2NvYnlsYSBiZmh6ZXRhIGJmbG9hdCBiZmxvYXRwJ1xuICAgICAgKyAnIGJmcHNpIGJmcHNpMCBiZnpldGEgYmljb25uZWN0ZWRfY29tcG9uZW50cyBiaW1ldHJpYyBiaW5vbWlhbCBiaXBhcnRpdGlvbidcbiAgICAgICsgJyBibG9jayBibG9ja21hdHJpeHAgYm9kZV9nYWluIGJvZGVfcGhhc2UgYm90aGNvZWYgYm94IGJveHBsb3QgYm94cGxvdF9kZXNjcmlwdGlvbidcbiAgICAgICsgJyBicmVhayBidWdfcmVwb3J0IGJ1aWxkX2luZm98MTAgYnVpbGRxIGJ1aWxkX3NhbXBsZSBidXJuIGNhYnMgY2FuZm9ybSBjYW50ZW4nXG4gICAgICArICcgY2FyZGluYWxpdHkgY2FyZyBjYXJ0YW4gY2FydGVzaWFuX3Byb2R1Y3QgY2F0Y2ggY2F1Y2h5X21hdHJpeCBjYmZmYWMgY2RmX2Jlcm5vdWxsaSdcbiAgICAgICsgJyBjZGZfYmV0YSBjZGZfYmlub21pYWwgY2RmX2NhdWNoeSBjZGZfY2hpMiBjZGZfY29udGludW91c191bmlmb3JtIGNkZl9kaXNjcmV0ZV91bmlmb3JtJ1xuICAgICAgKyAnIGNkZl9leHAgY2RmX2YgY2RmX2dhbW1hIGNkZl9nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSBjZGZfZ2VvbWV0cmljIGNkZl9ndW1iZWwnXG4gICAgICArICcgY2RmX2h5cGVyZ2VvbWV0cmljIGNkZl9sYXBsYWNlIGNkZl9sb2dpc3RpYyBjZGZfbG9nbm9ybWFsIGNkZl9uZWdhdGl2ZV9iaW5vbWlhbCdcbiAgICAgICsgJyBjZGZfbm9uY2VudHJhbF9jaGkyIGNkZl9ub25jZW50cmFsX3N0dWRlbnRfdCBjZGZfbm9ybWFsIGNkZl9wYXJldG8gY2RmX3BvaXNzb24nXG4gICAgICArICcgY2RmX3Jhbmtfc3VtIGNkZl9yYXlsZWlnaCBjZGZfc2lnbmVkX3JhbmsgY2RmX3N0dWRlbnRfdCBjZGZfd2VpYnVsbCBjZGlzcGxheSdcbiAgICAgICsgJyBjZWlsaW5nIGNlbnRyYWxfbW9tZW50IGNlcXVhbCBjZXF1YWxpZ25vcmUgY2YgY2ZkaXNyZXAgY2ZleHBhbmQgY2dlb2Rlc2ljJ1xuICAgICAgKyAnIGNncmVhdGVycCBjZ3JlYXRlcnBpZ25vcmUgY2hhbmdlbmFtZSBjaGFuZ2V2YXIgY2hhb3NnYW1lIGNoYXJhdCBjaGFyZnVuIGNoYXJmdW4yJ1xuICAgICAgKyAnIGNoYXJsaXN0IGNoYXJwIGNoYXJwb2x5IGNoZGlyIGNoZWJ5c2hldl90IGNoZWJ5c2hldl91IGNoZWNrZGl2IGNoZWNrX292ZXJsYXBzJ1xuICAgICAgKyAnIGNoaW5lc2UgY2hvbGVza3kgY2hyaXN0b2YgY2hyb21hdGljX2luZGV4IGNocm9tYXRpY19udW1iZXIgY2ludCBjaXJjdWxhbnRfZ3JhcGgnXG4gICAgICArICcgY2xlYXJfZWRnZV93ZWlnaHQgY2xlYXJfcnVsZXMgY2xlYXJfdmVydGV4X2xhYmVsIGNsZWJzY2hfZ29yZGFuIGNsZWJzY2hfZ3JhcGgnXG4gICAgICArICcgY2xlc3NwIGNsZXNzcGlnbm9yZSBjbG9zZSBjbG9zZWZpbGUgY21ldHJpYyBjb2VmZiBjb2VmbWF0cml4IGNvZ3JhZCBjb2wgY29sbGFwc2UnXG4gICAgICArICcgY29sbGVjdHRlcm1zIGNvbHVtbm9wIGNvbHVtbnNwYWNlIGNvbHVtbnN3YXAgY29sdW1udmVjdG9yIGNvbWJpbmF0aW9uIGNvbWJpbmUnXG4gICAgICArICcgY29tcDJwdWkgY29tcGFyZSBjb21wZmlsZSBjb21waWxlIGNvbXBpbGVfZmlsZSBjb21wbGVtZW50X2dyYXBoIGNvbXBsZXRlX2JpcGFydGl0ZV9ncmFwaCdcbiAgICAgICsgJyBjb21wbGV0ZV9ncmFwaCBjb21wbGV4X251bWJlcl9wIGNvbXBvbmVudHMgY29tcG9zZV9mdW5jdGlvbnMgY29uY2FuIGNvbmNhdCdcbiAgICAgICsgJyBjb25qdWdhdGUgY29ubWV0ZGVyaXYgY29ubmVjdGVkX2NvbXBvbmVudHMgY29ubmVjdF92ZXJ0aWNlcyBjb25zIGNvbnN0YW50J1xuICAgICAgKyAnIGNvbnN0YW50cCBjb25zdGl0dWVudCBjb25zdHZhbHVlIGNvbnQycGFydCBjb250ZW50IGNvbnRpbnVvdXNfZnJlcSBjb250b3J0aW9uJ1xuICAgICAgKyAnIGNvbnRvdXJfcGxvdCBjb250cmFjdCBjb250cmFjdF9lZGdlIGNvbnRyYWdyYWQgY29udHJpYl9vZGUgY29udmVydCBjb29yZCdcbiAgICAgICsgJyBjb3B5IGNvcHlfZmlsZSBjb3B5X2dyYXBoIGNvcHlsaXN0IGNvcHltYXRyaXggY29yIGNvcyBjb3NoIGNvdCBjb3RoIGNvdiBjb3YxJ1xuICAgICAgKyAnIGNvdmRpZmYgY292ZWN0IGNvdmVycyBjcmMyNHN1bSBjcmVhdGVfZ3JhcGggY3JlYXRlX2xpc3QgY3NjIGNzY2ggY3NldHVwIGNzcGxpbmUnXG4gICAgICArICcgY3RheWxvciBjdF9jb29yZHN5cyBjdHJhbnNmb3JtIGN0cmFuc3Bvc2UgY3ViZV9ncmFwaCBjdWJvY3RhaGVkcm9uX2dyYXBoJ1xuICAgICAgKyAnIGN1bmxpc3AgY3YgY3ljbGVfZGlncmFwaCBjeWNsZV9ncmFwaCBjeWxpbmRyaWNhbCBkYXlzMzYwIGRibGludCBkZWFjdGl2YXRlJ1xuICAgICAgKyAnIGRlY2xhcmUgZGVjbGFyZV9jb25zdHZhbHVlIGRlY2xhcmVfZGltZW5zaW9ucyBkZWNsYXJlX2Z1bmRhbWVudGFsX2RpbWVuc2lvbnMnXG4gICAgICArICcgZGVjbGFyZV9mdW5kYW1lbnRhbF91bml0cyBkZWNsYXJlX3F0eSBkZWNsYXJlX3RyYW5zbGF0ZWQgZGVjbGFyZV91bml0X2NvbnZlcnNpb24nXG4gICAgICArICcgZGVjbGFyZV91bml0cyBkZWNsYXJlX3dlaWdodHMgZGVjc3ltIGRlZmNvbiBkZWZpbmUgZGVmaW5lX2FsdF9kaXNwbGF5IGRlZmluZV92YXJpYWJsZSdcbiAgICAgICsgJyBkZWZpbnQgZGVmbWF0Y2ggZGVmcnVsZSBkZWZzdHJ1Y3QgZGVmdGF5bG9yIGRlZ3JlZV9zZXF1ZW5jZSBkZWwgZGVsZXRlIGRlbGV0ZW4nXG4gICAgICArICcgZGVsdGEgZGVtbyBkZW1vaXZyZSBkZW5vbSBkZXBlbmRzIGRlcml2ZGVncmVlIGRlcml2bGlzdCBkZXNjcmliZSBkZXNvbHZlJ1xuICAgICAgKyAnIGRldGVybWluYW50IGRmbG9hdCBkZ2F1c3NfYSBkZ2F1c3NfYiBkZ2VldiBkZ2VtbSBkZ2VxcmYgZGdlc3YgZGdlc3ZkIGRpYWcnXG4gICAgICArICcgZGlhZ21hdHJpeCBkaWFnX21hdHJpeCBkaWFnbWF0cml4cCBkaWFtZXRlciBkaWZmIGRpZ2l0Y2hhcnAgZGltYWNzX2V4cG9ydCdcbiAgICAgICsgJyBkaW1hY3NfaW1wb3J0IGRpbWVuc2lvbiBkaW1lbnNpb25sZXNzIGRpbWVuc2lvbnMgZGltZW5zaW9uc19hc19saXN0IGRpcmVjdCdcbiAgICAgICsgJyBkaXJlY3RvcnkgZGlzY3JldGVfZnJlcSBkaXNqb2luIGRpc2pvaW50cCBkaXNvbGF0ZSBkaXNwIGRpc3Bjb24gZGlzcGZvcm0nXG4gICAgICArICcgZGlzcGZ1biBkaXNwSm9yZGFuIGRpc3BsYXkgZGlzcHJ1bGUgZGlzcHRlcm1zIGRpc3RyaWIgZGl2aWRlIGRpdmlzb3JzIGRpdnN1bSdcbiAgICAgICsgJyBka3VtbWVyX20gZGt1bW1lcl91IGRsYW5nZSBkb2RlY2FoZWRyb25fZ3JhcGggZG90cHJvZHVjdCBkb3RzaW1wIGRwYXJ0J1xuICAgICAgKyAnIGRyYXcgZHJhdzJkIGRyYXczZCBkcmF3ZGYgZHJhd19maWxlIGRyYXdfZ3JhcGggZHNjYWxhciBlY2hlbG9uIGVkZ2VfY29sb3JpbmcnXG4gICAgICArICcgZWRnZV9jb25uZWN0aXZpdHkgZWRnZXMgZWlnZW5zX2J5X2phY29iaSBlaWdlbnZhbHVlcyBlaWdlbnZlY3RvcnMgZWlnaHRoJ1xuICAgICAgKyAnIGVpbnN0ZWluIGVpdmFscyBlaXZlY3RzIGVsYXBzZWRfcmVhbF90aW1lIGVsYXBzZWRfcnVuX3RpbWUgZWxlMmNvbXAgZWxlMnBvbHlub21lJ1xuICAgICAgKyAnIGVsZTJwdWkgZWxlbSBlbGVtZW50cCBlbGV2YXRpb25fZ3JpZCBlbGltIGVsaW1fYWxsYnV0IGVsaW1pbmF0ZSBlbGltaW5hdGVfdXNpbmcnXG4gICAgICArICcgZWxsaXBzZSBlbGxpcHRpY19lIGVsbGlwdGljX2VjIGVsbGlwdGljX2V1IGVsbGlwdGljX2YgZWxsaXB0aWNfa2MgZWxsaXB0aWNfcGknXG4gICAgICArICcgZW1hdHJpeCBlbXB0eV9ncmFwaCBlbXB0eXAgZW5kY29ucyBlbnRlcm1hdHJpeCBlbnRlcnRlbnNvciBlbnRpZXIgZXF1YWwgZXF1YWxwJ1xuICAgICAgKyAnIGVxdWl2X2NsYXNzZXMgZXJmIGVyZmMgZXJmX2dlbmVyYWxpemVkIGVyZmkgZXJyY2F0Y2ggZXJyb3IgZXJyb3Jtc2cgZXJyb3JzJ1xuICAgICAgKyAnIGV1bGVyIGV2IGV2YWxfc3RyaW5nIGV2ZW5wIGV2ZXJ5IGV2b2x1dGlvbiBldm9sdXRpb24yZCBldnVuZGlmZiBleGFtcGxlIGV4cCdcbiAgICAgICsgJyBleHBhbmQgZXhwYW5kd3J0IGV4cGFuZHdydF9mYWN0b3JlZCBleHBpbnQgZXhwaW50ZWdyYWxfY2hpIGV4cGludGVncmFsX2NpJ1xuICAgICAgKyAnIGV4cGludGVncmFsX2UgZXhwaW50ZWdyYWxfZTEgZXhwaW50ZWdyYWxfZWkgZXhwaW50ZWdyYWxfZV9zaW1wbGlmeSBleHBpbnRlZ3JhbF9saSdcbiAgICAgICsgJyBleHBpbnRlZ3JhbF9zaGkgZXhwaW50ZWdyYWxfc2kgZXhwbGljaXQgZXhwbG9zZSBleHBvbmVudGlhbGl6ZSBleHByZXNzIGV4cHQnXG4gICAgICArICcgZXhzZWMgZXh0ZGlmZiBleHRyYWN0X2xpbmVhcl9lcXVhdGlvbnMgZXh0cmVtYWxfc3Vic2V0IGV6Z2NkICVmIGY5MCBmYWNzdW0nXG4gICAgICArICcgZmFjdGNvbWIgZmFjdG9yIGZhY3RvcmZhY3N1bSBmYWN0b3JpYWwgZmFjdG9yb3V0IGZhY3RvcnN1bSBmYWN0cyBmYXN0X2NlbnRyYWxfZWxlbWVudHMnXG4gICAgICArICcgZmFzdF9saW5zb2x2ZSBmYXN0dGltZXMgZmVhdHVyZXAgZmVybmZhbGUgZmZ0IGZpYiBmaWJ0b3BoaSBmaWZ0aCBmaWxlbmFtZV9tZXJnZSdcbiAgICAgICsgJyBmaWxlX3NlYXJjaCBmaWxlX3R5cGUgZmlsbGFycmF5IGZpbmRkZSBmaW5kX3Jvb3QgZmluZF9yb290X2FicyBmaW5kX3Jvb3RfZXJyb3InXG4gICAgICArICcgZmluZF9yb290X3JlbCBmaXJzdCBmaXggZmxhdHRlbiBmbGVuZ3RoIGZsb2F0IGZsb2F0bnVtcCBmbG9vciBmbG93ZXJfc25hcmsnXG4gICAgICArICcgZmx1c2ggZmx1c2gxZGVyaXYgZmx1c2hkIGZsdXNobmQgZmx1c2hfb3V0cHV0IGZtaW5fY29ieWxhIGZvcmdldCBmb3J0cmFuJ1xuICAgICAgKyAnIGZvdXJjb3MgZm91cmV4cGFuZCBmb3VyaWVyIGZvdXJpZXJfZWxpbSBmb3VyaW50IGZvdXJpbnRjb3MgZm91cmludHNpbiBmb3Vyc2ltcCdcbiAgICAgICsgJyBmb3Vyc2luIGZvdXJ0aCBmcG9zaXRpb24gZnJhbWVfYnJhY2tldCBmcmVlb2YgZnJlc2hsaW5lIGZyZXNuZWxfYyBmcmVzbmVsX3MnXG4gICAgICArICcgZnJvbV9hZGphY2VuY3lfbWF0cml4IGZydWNodF9ncmFwaCBmdWxsX2xpc3RpZnkgZnVsbG1hcCBmdWxsbWFwbCBmdWxscmF0c2ltcCdcbiAgICAgICsgJyBmdWxscmF0c3Vic3QgZnVsbHNldGlmeSBmdW5jc29sdmUgZnVuZGFtZW50YWxfZGltZW5zaW9ucyBmdW5kYW1lbnRhbF91bml0cydcbiAgICAgICsgJyBmdW5kZWYgZnVubWFrZSBmdW5wIGZ2IGcwIGcxIGdhbW1hIGdhbW1hX2dyZWVrIGdhbW1hX2luY29tcGxldGUgZ2FtbWFfaW5jb21wbGV0ZV9nZW5lcmFsaXplZCdcbiAgICAgICsgJyBnYW1tYV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkIGdhdXNzIGdhdXNzX2EgZ2F1c3NfYiBnYXVzc3Byb2IgZ2NkIGdjZGV4IGdjZGl2aWRlJ1xuICAgICAgKyAnIGdjZmFjIGdjZmFjdG9yIGdkIGdlbmVyYWxpemVkX2xhbWJlcnRfdyBnZW5mYWN0IGdlbl9sYWd1ZXJyZSBnZW5tYXRyaXggZ2Vuc3ltJ1xuICAgICAgKyAnIGdlb19hbW9ydGl6YXRpb24gZ2VvX2FubnVpdHlfZnYgZ2VvX2FubnVpdHlfcHYgZ2VvbWFwIGdlb21ldHJpYyBnZW9tZXRyaWNfbWVhbidcbiAgICAgICsgJyBnZW9zdW0gZ2V0IGdldGN1cnJlbnRkaXJlY3RvcnkgZ2V0X2VkZ2Vfd2VpZ2h0IGdldGVudiBnZXRfbHVfZmFjdG9ycyBnZXRfb3V0cHV0X3N0cmVhbV9zdHJpbmcnXG4gICAgICArICcgZ2V0X3BpeGVsIGdldF9wbG90X29wdGlvbiBnZXRfdGV4X2Vudmlyb25tZW50IGdldF90ZXhfZW52aXJvbm1lbnRfZGVmYXVsdCdcbiAgICAgICsgJyBnZXRfdmVydGV4X2xhYmVsIGdmYWN0b3IgZ2ZhY3RvcnN1bSBnZ2YgZ2lydGggZ2xvYmFsX3ZhcmlhbmNlcyBnbiBnbnVwbG90X2Nsb3NlJ1xuICAgICAgKyAnIGdudXBsb3RfcmVwbG90IGdudXBsb3RfcmVzZXQgZ251cGxvdF9yZXN0YXJ0IGdudXBsb3Rfc3RhcnQgZ28gR29zcGVyIEdvc3BlclN1bSdcbiAgICAgICsgJyBncjJkIGdyM2QgZ3JhZGVmIGdyYW1zY2htaWR0IGdyYXBoNl9kZWNvZGUgZ3JhcGg2X2VuY29kZSBncmFwaDZfZXhwb3J0IGdyYXBoNl9pbXBvcnQnXG4gICAgICArICcgZ3JhcGhfY2VudGVyIGdyYXBoX2NoYXJwb2x5IGdyYXBoX2VpZ2VudmFsdWVzIGdyYXBoX2Zsb3cgZ3JhcGhfb3JkZXIgZ3JhcGhfcGVyaXBoZXJ5J1xuICAgICAgKyAnIGdyYXBoX3Byb2R1Y3QgZ3JhcGhfc2l6ZSBncmFwaF91bmlvbiBncmVhdF9yaG9tYmljb3NpZG9kZWNhaGVkcm9uX2dyYXBoIGdyZWF0X3Job21iaWN1Ym9jdGFoZWRyb25fZ3JhcGgnXG4gICAgICArICcgZ3JpZF9ncmFwaCBncmluZCBncm9ibmVyX2Jhc2lzIGdyb3R6Y2hfZ3JhcGggaGFtaWx0b25fY3ljbGUgaGFtaWx0b25fcGF0aCdcbiAgICAgICsgJyBoYW5rZWwgaGFua2VsXzEgaGFua2VsXzIgaGFybW9uaWMgaGFybW9uaWNfbWVhbiBoYXYgaGVhd29vZF9ncmFwaCBoZXJtaXRlJ1xuICAgICAgKyAnIGhlc3NpYW4gaGdmcmVkIGhpbGJlcnRtYXAgaGlsYmVydF9tYXRyaXggaGlwb3cgaGlzdG9ncmFtIGhpc3RvZ3JhbV9kZXNjcmlwdGlvbidcbiAgICAgICsgJyBob2RnZSBob3JuZXIgaHlwZXJnZW9tZXRyaWMgaTAgaTEgJWliZXMgaWMxIGljMiBpY19jb252ZXJ0IGljaHIxIGljaHIyIGljb3NhaGVkcm9uX2dyYXBoJ1xuICAgICAgKyAnIGljb3NpZG9kZWNhaGVkcm9uX2dyYXBoIGljdXJ2YXR1cmUgaWRlbnQgaWRlbnRmb3IgaWRlbnRpdHkgaWRpZmYgaWRpbSBpZHVtbXknXG4gICAgICArICcgaWVxbiAlaWYgaWZhY3RvcnMgaWZyYW1lcyBpZnMgaWdjZGV4IGlnZW9kZXNpY19jb29yZHMgaWx0IGltYWdlIGltYWdwYXJ0J1xuICAgICAgKyAnIGltZXRyaWMgaW1wbGljaXQgaW1wbGljaXRfZGVyaXZhdGl2ZSBpbXBsaWNpdF9wbG90IGluZGV4ZWRfdGVuc29yIGluZGljZXMnXG4gICAgICArICcgaW5kdWNlZF9zdWJncmFwaCBpbmZlcmVuY2VwIGluZmVyZW5jZV9yZXN1bHQgaW5maXggaW5mb19kaXNwbGF5IGluaXRfYXRlbnNvcidcbiAgICAgICsgJyBpbml0X2N0ZW5zb3IgaW5fbmVpZ2hib3JzIGlubmVycHJvZHVjdCBpbnBhcnQgaW5wcm9kIGlucnQgaW50ZWdlcnAgaW50ZWdlcl9wYXJ0aXRpb25zJ1xuICAgICAgKyAnIGludGVncmF0ZSBpbnRlcnNlY3QgaW50ZXJzZWN0aW9uIGludGVydmFscCBpbnRvcG9pcyBpbnRvc3VtIGludmFyaWFudDEgaW52YXJpYW50MidcbiAgICAgICsgJyBpbnZlcnNlX2ZmdCBpbnZlcnNlX2phY29iaV9jZCBpbnZlcnNlX2phY29iaV9jbiBpbnZlcnNlX2phY29iaV9jcyBpbnZlcnNlX2phY29iaV9kYydcbiAgICAgICsgJyBpbnZlcnNlX2phY29iaV9kbiBpbnZlcnNlX2phY29iaV9kcyBpbnZlcnNlX2phY29iaV9uYyBpbnZlcnNlX2phY29iaV9uZCBpbnZlcnNlX2phY29iaV9ucydcbiAgICAgICsgJyBpbnZlcnNlX2phY29iaV9zYyBpbnZlcnNlX2phY29iaV9zZCBpbnZlcnNlX2phY29iaV9zbiBpbnZlcnQgaW52ZXJ0X2J5X2Fkam9pbnQnXG4gICAgICArICcgaW52ZXJ0X2J5X2x1IGludl9tb2QgaXJyIGlzIGlzX2JpY29ubmVjdGVkIGlzX2JpcGFydGl0ZSBpc19jb25uZWN0ZWQgaXNfZGlncmFwaCdcbiAgICAgICsgJyBpc19lZGdlX2luX2dyYXBoIGlzX2dyYXBoIGlzX2dyYXBoX29yX2RpZ3JhcGggaXNob3cgaXNfaXNvbW9ycGhpYyBpc29sYXRlJ1xuICAgICAgKyAnIGlzb21vcnBoaXNtIGlzX3BsYW5hciBpc3FydCBpc3JlYWxfcCBpc19zY29ubmVjdGVkIGlzX3RyZWUgaXNfdmVydGV4X2luX2dyYXBoJ1xuICAgICAgKyAnIGl0ZW1zX2luZmVyZW5jZSAlaiBqMCBqMSBqYWNvYmkgamFjb2JpYW4gamFjb2JpX2NkIGphY29iaV9jbiBqYWNvYmlfY3MgamFjb2JpX2RjJ1xuICAgICAgKyAnIGphY29iaV9kbiBqYWNvYmlfZHMgamFjb2JpX25jIGphY29iaV9uZCBqYWNvYmlfbnMgamFjb2JpX3AgamFjb2JpX3NjIGphY29iaV9zZCdcbiAgICAgICsgJyBqYWNvYmlfc24gSkYgam4gam9pbiBqb3JkYW4ganVsaWEganVsaWFfc2V0IGp1bGlhX3NpbiAlayBrZGVscyBrZGVsdGEga2lsbCdcbiAgICAgICsgJyBraWxsY29udGV4dCBrb3N0a2Ega3Jvbl9kZWx0YSBrcm9uZWNrZXJfcHJvZHVjdCBrdW1tZXJfbSBrdW1tZXJfdSBrdXJ0b3NpcydcbiAgICAgICsgJyBrdXJ0b3Npc19iZXJub3VsbGkga3VydG9zaXNfYmV0YSBrdXJ0b3Npc19iaW5vbWlhbCBrdXJ0b3Npc19jaGkyIGt1cnRvc2lzX2NvbnRpbnVvdXNfdW5pZm9ybSdcbiAgICAgICsgJyBrdXJ0b3Npc19kaXNjcmV0ZV91bmlmb3JtIGt1cnRvc2lzX2V4cCBrdXJ0b3Npc19mIGt1cnRvc2lzX2dhbW1hIGt1cnRvc2lzX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlJ1xuICAgICAgKyAnIGt1cnRvc2lzX2dlb21ldHJpYyBrdXJ0b3Npc19ndW1iZWwga3VydG9zaXNfaHlwZXJnZW9tZXRyaWMga3VydG9zaXNfbGFwbGFjZSdcbiAgICAgICsgJyBrdXJ0b3Npc19sb2dpc3RpYyBrdXJ0b3Npc19sb2dub3JtYWwga3VydG9zaXNfbmVnYXRpdmVfYmlub21pYWwga3VydG9zaXNfbm9uY2VudHJhbF9jaGkyJ1xuICAgICAgKyAnIGt1cnRvc2lzX25vbmNlbnRyYWxfc3R1ZGVudF90IGt1cnRvc2lzX25vcm1hbCBrdXJ0b3Npc19wYXJldG8ga3VydG9zaXNfcG9pc3NvbidcbiAgICAgICsgJyBrdXJ0b3Npc19yYXlsZWlnaCBrdXJ0b3Npc19zdHVkZW50X3Qga3VydG9zaXNfd2VpYnVsbCBsYWJlbCBsYWJlbHMgbGFncmFuZ2UnXG4gICAgICArICcgbGFndWVycmUgbGFtYmRhIGxhbWJlcnRfdyBsYXBsYWNlIGxhcGxhY2lhbl9tYXRyaXggbGFzdCBsYmZncyBsYzJrZHQgbGNoYXJwJ1xuICAgICAgKyAnIGxjX2wgbGNtIGxjX3UgbGRlZmludCBsZGlzcCBsZGlzcGxheSBsZWdlbmRyZV9wIGxlZ2VuZHJlX3EgbGVpbnN0ZWluIGxlbmd0aCdcbiAgICAgICsgJyBsZXQgbGV0cnVsZXMgbGV0c2ltcCBsZXZpX2Npdml0YSBsZnJlZW9mIGxndHJlaWxsaXMgbGhzIGxpIGxpZWRpZmYgbGltaXQnXG4gICAgICArICcgTGluZHN0ZWR0IGxpbmVhciBsaW5lYXJpbnRlcnBvbCBsaW5lYXJfcHJvZ3JhbSBsaW5lYXJfcmVncmVzc2lvbiBsaW5lX2dyYXBoJ1xuICAgICAgKyAnIGxpbnNvbHZlIGxpc3RhcnJheSBsaXN0X2NvcnJlbGF0aW9ucyBsaXN0aWZ5IGxpc3RfbWF0cml4X2VudHJpZXMgbGlzdF9uY19tb25vbWlhbHMnXG4gICAgICArICcgbGlzdG9mdGVucyBsaXN0b2Z2YXJzIGxpc3RwIGxtYXggbG1pbiBsb2FkIGxvYWRmaWxlIGxvY2FsIGxvY2F0ZV9tYXRyaXhfZW50cnknXG4gICAgICArICcgbG9nIGxvZ2NvbnRyYWN0IGxvZ19nYW1tYSBsb3BvdyBsb3JlbnR6X2dhdWdlIGxvd2VyY2FzZXAgbHBhcnQgbHJhdHN1YnN0J1xuICAgICAgKyAnIGxyZWR1Y2UgbHJpZW1hbm4gbHNxdWFyZXNfZXN0aW1hdGVzIGxzcXVhcmVzX2VzdGltYXRlc19hcHByb3hpbWF0ZSBsc3F1YXJlc19lc3RpbWF0ZXNfZXhhY3QnXG4gICAgICArICcgbHNxdWFyZXNfbXNlIGxzcXVhcmVzX3Jlc2lkdWFsX21zZSBsc3F1YXJlc19yZXNpZHVhbHMgbHN1bSBsdHJlaWxsaXMgbHVfYmFja3N1YidcbiAgICAgICsgJyBsdWNhcyBsdV9mYWN0b3IgJW0gbWFjcm9leHBhbmQgbWFjcm9leHBhbmQxIG1ha2VfYXJyYXkgbWFrZWJveCBtYWtlZmFjdCBtYWtlZ2FtbWEnXG4gICAgICArICcgbWFrZV9ncmFwaCBtYWtlX2xldmVsX3BpY3R1cmUgbWFrZWxpc3QgbWFrZU9yZGVycyBtYWtlX3BvbHlfY29udGluZW50IG1ha2VfcG9seV9jb3VudHJ5J1xuICAgICAgKyAnIG1ha2VfcG9seWdvbiBtYWtlX3JhbmRvbV9zdGF0ZSBtYWtlX3JnYl9waWN0dXJlIG1ha2VzZXQgbWFrZV9zdHJpbmdfaW5wdXRfc3RyZWFtJ1xuICAgICAgKyAnIG1ha2Vfc3RyaW5nX291dHB1dF9zdHJlYW0gbWFrZV90cmFuc2Zvcm0gbWFuZGVsYnJvdCBtYW5kZWxicm90X3NldCBtYXAgbWFwYXRvbSdcbiAgICAgICsgJyBtYXBsaXN0IG1hdGNoZGVjbGFyZSBtYXRjaGZpeCBtYXRfY29uZCBtYXRfZnVsbHVuYmxvY2tlciBtYXRfZnVuY3Rpb24gbWF0aG1sX2Rpc3BsYXknXG4gICAgICArICcgbWF0X25vcm0gbWF0cml4IG1hdHJpeG1hcCBtYXRyaXhwIG1hdHJpeF9zaXplIG1hdHRyYWNlIG1hdF90cmFjZSBtYXRfdW5ibG9ja2VyJ1xuICAgICAgKyAnIG1heCBtYXhfY2xpcXVlIG1heF9kZWdyZWUgbWF4X2Zsb3cgbWF4aW1pemVfbHAgbWF4X2luZGVwZW5kZW50X3NldCBtYXhfbWF0Y2hpbmcnXG4gICAgICArICcgbWF5YmUgbWQ1c3VtIG1lYW4gbWVhbl9iZXJub3VsbGkgbWVhbl9iZXRhIG1lYW5fYmlub21pYWwgbWVhbl9jaGkyIG1lYW5fY29udGludW91c191bmlmb3JtJ1xuICAgICAgKyAnIG1lYW5fZGV2aWF0aW9uIG1lYW5fZGlzY3JldGVfdW5pZm9ybSBtZWFuX2V4cCBtZWFuX2YgbWVhbl9nYW1tYSBtZWFuX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlJ1xuICAgICAgKyAnIG1lYW5fZ2VvbWV0cmljIG1lYW5fZ3VtYmVsIG1lYW5faHlwZXJnZW9tZXRyaWMgbWVhbl9sYXBsYWNlIG1lYW5fbG9naXN0aWMnXG4gICAgICArICcgbWVhbl9sb2dub3JtYWwgbWVhbl9uZWdhdGl2ZV9iaW5vbWlhbCBtZWFuX25vbmNlbnRyYWxfY2hpMiBtZWFuX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICAgKyAnIG1lYW5fbm9ybWFsIG1lYW5fcGFyZXRvIG1lYW5fcG9pc3NvbiBtZWFuX3JheWxlaWdoIG1lYW5fc3R1ZGVudF90IG1lYW5fd2VpYnVsbCdcbiAgICAgICsgJyBtZWRpYW4gbWVkaWFuX2RldmlhdGlvbiBtZW1iZXIgbWVzaCBtZXRyaWNleHBhbmRhbGwgbWdmMV9zaGExIG1pbiBtaW5fZGVncmVlJ1xuICAgICAgKyAnIG1pbl9lZGdlX2N1dCBtaW5mYWN0b3JpYWwgbWluaW1hbFBvbHkgbWluaW1pemVfbHAgbWluaW11bV9zcGFubmluZ190cmVlIG1pbm9yJ1xuICAgICAgKyAnIG1pbnBhY2tfbHNxdWFyZXMgbWlucGFja19zb2x2ZSBtaW5fdmVydGV4X2NvdmVyIG1pbl92ZXJ0ZXhfY3V0IG1rZGlyIG1uZXd0b24nXG4gICAgICArICcgbW9kIG1vZGVfZGVjbGFyZSBtb2RlX2lkZW50aXR5IE1vZGVNYXRyaXggbW9lYml1cyBtb24yc2NodXIgbW9ubyBtb25vbWlhbF9kaW1lbnNpb25zJ1xuICAgICAgKyAnIG11bHRpYmVybnN0ZWluX3BvbHkgbXVsdGlfZGlzcGxheV9mb3JfdGV4aW5mbyBtdWx0aV9lbGVtIG11bHRpbm9taWFsIG11bHRpbm9taWFsX2NvZWZmJ1xuICAgICAgKyAnIG11bHRpX29yYml0IG11bHRpcGxvdF9tb2RlIG11bHRpX3B1aSBtdWx0c3ltIG11bHR0aHJ1IG15Y2llbHNraV9ncmFwaCBuYXJ5J1xuICAgICAgKyAnIG5hdHVyYWxfdW5pdCBuY19kZWdyZWUgbmNleHB0IG5jaGFycG9seSBuZWdhdGl2ZV9waWN0dXJlIG5laWdoYm9ycyBuZXcgbmV3Y29udGV4dCdcbiAgICAgICsgJyBuZXdkZXQgbmV3X2dyYXBoIG5ld2xpbmUgbmV3dG9uIG5ld192YXJpYWJsZSBuZXh0X3ByaW1lIG5pY2VkdW1taWVzIG5pY2VpbmRpY2VzJ1xuICAgICAgKyAnIG5pbnRoIG5vZml4IG5vbmFycmF5IG5vbmNlbnRyYWxfbW9tZW50IG5vbm1ldHJpY2l0eSBub25uZWdpbnRlZ2VycCBub25zY2FsYXJwJ1xuICAgICAgKyAnIG5vbnplcm9hbmRmcmVlb2Ygbm90ZXF1YWwgbm91bmlmeSBucHRldHJhZCBucHYgbnJvb3RzIG50ZXJtcyBudGVybXN0J1xuICAgICAgKyAnIG50aHJvb3QgbnVsbGl0eSBudWxsc3BhY2UgbnVtIG51bWJlcmVkX2JvdW5kYXJpZXMgbnVtYmVycCBudW1iZXJfdG9fb2N0ZXRzJ1xuICAgICAgKyAnIG51bV9kaXN0aW5jdF9wYXJ0aXRpb25zIG51bWVydmFsIG51bWZhY3RvciBudW1fcGFydGl0aW9ucyBudXN1bSBuemV0YSBuemV0YWknXG4gICAgICArICcgbnpldGFyIG9jdGV0c190b19udW1iZXIgb2N0ZXRzX3RvX29pZCBvZGRfZ2lydGggb2RkcCBvZGUyIG9kZV9jaGVjayBvZGVsaW4nXG4gICAgICArICcgb2lkX3RvX29jdGV0cyBvcCBvcGVuYSBvcGVuYV9iaW5hcnkgb3BlbnIgb3BlbnJfYmluYXJ5IG9wZW53IG9wZW53X2JpbmFyeSdcbiAgICAgICsgJyBvcGVyYXRvcnAgb3BzdWJzdCBvcHRpbWl6ZSAlb3Igb3JiaXQgb3JiaXRzIG9yZGVyZ3JlYXQgb3JkZXJncmVhdHAgb3JkZXJsZXNzJ1xuICAgICAgKyAnIG9yZGVybGVzc3Agb3J0aG9nb25hbF9jb21wbGVtZW50IG9ydGhvcG9seV9yZWN1ciBvcnRob3BvbHlfd2VpZ2h0IG91dGVybWFwJ1xuICAgICAgKyAnIG91dF9uZWlnaGJvcnMgb3V0b2Zwb2lzIHBhZGUgcGFyYWJvbGljX2N5bGluZGVyX2QgcGFyYW1ldHJpYyBwYXJhbWV0cmljX3N1cmZhY2UnXG4gICAgICArICcgcGFyZyBwYXJHb3NwZXIgcGFyc2Vfc3RyaW5nIHBhcnNlX3RpbWVkYXRlIHBhcnQgcGFydDJjb250IHBhcnRmcmFjIHBhcnRpdGlvbidcbiAgICAgICsgJyBwYXJ0aXRpb25fc2V0IHBhcnRwb2wgcGF0aF9kaWdyYXBoIHBhdGhfZ3JhcGggcGF0aG5hbWVfZGlyZWN0b3J5IHBhdGhuYW1lX25hbWUnXG4gICAgICArICcgcGF0aG5hbWVfdHlwZSBwZGZfYmVybm91bGxpIHBkZl9iZXRhIHBkZl9iaW5vbWlhbCBwZGZfY2F1Y2h5IHBkZl9jaGkyIHBkZl9jb250aW51b3VzX3VuaWZvcm0nXG4gICAgICArICcgcGRmX2Rpc2NyZXRlX3VuaWZvcm0gcGRmX2V4cCBwZGZfZiBwZGZfZ2FtbWEgcGRmX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlJ1xuICAgICAgKyAnIHBkZl9nZW9tZXRyaWMgcGRmX2d1bWJlbCBwZGZfaHlwZXJnZW9tZXRyaWMgcGRmX2xhcGxhY2UgcGRmX2xvZ2lzdGljIHBkZl9sb2dub3JtYWwnXG4gICAgICArICcgcGRmX25lZ2F0aXZlX2Jpbm9taWFsIHBkZl9ub25jZW50cmFsX2NoaTIgcGRmX25vbmNlbnRyYWxfc3R1ZGVudF90IHBkZl9ub3JtYWwnXG4gICAgICArICcgcGRmX3BhcmV0byBwZGZfcG9pc3NvbiBwZGZfcmFua19zdW0gcGRmX3JheWxlaWdoIHBkZl9zaWduZWRfcmFuayBwZGZfc3R1ZGVudF90J1xuICAgICAgKyAnIHBkZl93ZWlidWxsIHBlYXJzb25fc2tld25lc3MgcGVybWFuZW50IHBlcm11dCBwZXJtdXRhdGlvbiBwZXJtdXRhdGlvbnMgcGV0ZXJzZW5fZ3JhcGgnXG4gICAgICArICcgcGV0cm92IHBpY2thcGFydCBwaWN0dXJlX2VxdWFscCBwaWN0dXJlcCBwaWVjaGFydCBwaWVjaGFydF9kZXNjcmlwdGlvbiBwbGFuYXJfZW1iZWRkaW5nJ1xuICAgICAgKyAnIHBsYXliYWNrIHBsb2cgcGxvdDJkIHBsb3QzZCBwbG90ZGYgcGxvdGVxIHBsc3F1YXJlcyBwb2NoaGFtbWVyIHBvaW50cyBwb2lzZGlmZidcbiAgICAgICsgJyBwb2lzZXhwdCBwb2lzaW50IHBvaXNtYXAgcG9pc3BsdXMgcG9pc3NpbXAgcG9pc3N1YnN0IHBvaXN0aW1lcyBwb2lzdHJpbSBwb2xhcidcbiAgICAgICsgJyBwb2xhcmZvcm0gcG9sYXJ0b3JlY3QgcG9sYXJfdG9feHkgcG9seV9hZGQgcG9seV9idWNoYmVyZ2VyIHBvbHlfYnVjaGJlcmdlcl9jcml0ZXJpb24nXG4gICAgICArICcgcG9seV9jb2xvbl9pZGVhbCBwb2x5X2NvbnRlbnQgcG9seWRlY29tcCBwb2x5X2RlcGVuZHNfcCBwb2x5X2VsaW1pbmF0aW9uX2lkZWFsJ1xuICAgICAgKyAnIHBvbHlfZXhhY3RfZGl2aWRlIHBvbHlfZXhwYW5kIHBvbHlfZXhwdCBwb2x5X2djZCBwb2x5Z29uIHBvbHlfZ3JvYm5lciBwb2x5X2dyb2JuZXJfZXF1YWwnXG4gICAgICArICcgcG9seV9ncm9ibmVyX21lbWJlciBwb2x5X2dyb2JuZXJfc3Vic2V0cCBwb2x5X2lkZWFsX2ludGVyc2VjdGlvbiBwb2x5X2lkZWFsX3BvbHlzYXR1cmF0aW9uJ1xuICAgICAgKyAnIHBvbHlfaWRlYWxfcG9seXNhdHVyYXRpb24xIHBvbHlfaWRlYWxfc2F0dXJhdGlvbiBwb2x5X2lkZWFsX3NhdHVyYXRpb24xIHBvbHlfbGNtJ1xuICAgICAgKyAnIHBvbHlfbWluaW1pemF0aW9uIHBvbHltb2QgcG9seV9tdWx0aXBseSBwb2x5bm9tZTJlbGUgcG9seW5vbWlhbHAgcG9seV9ub3JtYWxfZm9ybSdcbiAgICAgICsgJyBwb2x5X25vcm1hbGl6ZSBwb2x5X25vcm1hbGl6ZV9saXN0IHBvbHlfcG9seXNhdHVyYXRpb25fZXh0ZW5zaW9uIHBvbHlfcHJpbWl0aXZlX3BhcnQnXG4gICAgICArICcgcG9seV9wc2V1ZG9fZGl2aWRlIHBvbHlfcmVkdWNlZF9ncm9ibmVyIHBvbHlfcmVkdWN0aW9uIHBvbHlfc2F0dXJhdGlvbl9leHRlbnNpb24nXG4gICAgICArICcgcG9seV9zX3BvbHlub21pYWwgcG9seV9zdWJ0cmFjdCBwb2x5dG9jb21wYW5pb24gcG9wIHBvc3RmaXggcG90ZW50aWFsIHBvd2VyX21vZCdcbiAgICAgICsgJyBwb3dlcnNlcmllcyBwb3dlcnNldCBwcmVmaXggcHJldl9wcmltZSBwcmltZXAgcHJpbWVzIHByaW5jaXBhbF9jb21wb25lbnRzJ1xuICAgICAgKyAnIHByaW50IHByaW50ZiBwcmludGZpbGUgcHJpbnRfZ3JhcGggcHJpbnRwb2lzIHByaW50cHJvcHMgcHJvZHJhYyBwcm9kdWN0IHByb3BlcnRpZXMnXG4gICAgICArICcgcHJvcHZhcnMgcHNpIHBzdWJzdCBwdHJpYW5ndWxhcml6ZSBwdWkgcHVpMmNvbXAgcHVpMmVsZSBwdWkycG9seW5vbWUgcHVpX2RpcmVjdCdcbiAgICAgICsgJyBwdWlyZWR1YyBwdXNoIHB1dCBwdiBxcHV0IHFyYW5nZSBxdHkgcXVhZF9jb250cm9sIHF1YWRfcWFnIHF1YWRfcWFnaSBxdWFkX3FhZ3AnXG4gICAgICArICcgcXVhZF9xYWdzIHF1YWRfcWF3YyBxdWFkX3Fhd2YgcXVhZF9xYXdvIHF1YWRfcWF3cyBxdWFkcmlsYXRlcmFsIHF1YW50aWxlJ1xuICAgICAgKyAnIHF1YW50aWxlX2Jlcm5vdWxsaSBxdWFudGlsZV9iZXRhIHF1YW50aWxlX2Jpbm9taWFsIHF1YW50aWxlX2NhdWNoeSBxdWFudGlsZV9jaGkyJ1xuICAgICAgKyAnIHF1YW50aWxlX2NvbnRpbnVvdXNfdW5pZm9ybSBxdWFudGlsZV9kaXNjcmV0ZV91bmlmb3JtIHF1YW50aWxlX2V4cCBxdWFudGlsZV9mJ1xuICAgICAgKyAnIHF1YW50aWxlX2dhbW1hIHF1YW50aWxlX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIHF1YW50aWxlX2dlb21ldHJpYyBxdWFudGlsZV9ndW1iZWwnXG4gICAgICArICcgcXVhbnRpbGVfaHlwZXJnZW9tZXRyaWMgcXVhbnRpbGVfbGFwbGFjZSBxdWFudGlsZV9sb2dpc3RpYyBxdWFudGlsZV9sb2dub3JtYWwnXG4gICAgICArICcgcXVhbnRpbGVfbmVnYXRpdmVfYmlub21pYWwgcXVhbnRpbGVfbm9uY2VudHJhbF9jaGkyIHF1YW50aWxlX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICAgKyAnIHF1YW50aWxlX25vcm1hbCBxdWFudGlsZV9wYXJldG8gcXVhbnRpbGVfcG9pc3NvbiBxdWFudGlsZV9yYXlsZWlnaCBxdWFudGlsZV9zdHVkZW50X3QnXG4gICAgICArICcgcXVhbnRpbGVfd2VpYnVsbCBxdWFydGlsZV9za2V3bmVzcyBxdWl0IHF1bml0IHF1b3RpZW50IHJhY2FoX3YgcmFjYWhfdyByYWRjYW4nXG4gICAgICArICcgcmFkaXVzIHJhbmRvbSByYW5kb21fYmVybm91bGxpIHJhbmRvbV9iZXRhIHJhbmRvbV9iaW5vbWlhbCByYW5kb21fYmlwYXJ0aXRlX2dyYXBoJ1xuICAgICAgKyAnIHJhbmRvbV9jYXVjaHkgcmFuZG9tX2NoaTIgcmFuZG9tX2NvbnRpbnVvdXNfdW5pZm9ybSByYW5kb21fZGlncmFwaCByYW5kb21fZGlzY3JldGVfdW5pZm9ybSdcbiAgICAgICsgJyByYW5kb21fZXhwIHJhbmRvbV9mIHJhbmRvbV9nYW1tYSByYW5kb21fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcmFuZG9tX2dlb21ldHJpYydcbiAgICAgICsgJyByYW5kb21fZ3JhcGggcmFuZG9tX2dyYXBoMSByYW5kb21fZ3VtYmVsIHJhbmRvbV9oeXBlcmdlb21ldHJpYyByYW5kb21fbGFwbGFjZSdcbiAgICAgICsgJyByYW5kb21fbG9naXN0aWMgcmFuZG9tX2xvZ25vcm1hbCByYW5kb21fbmVnYXRpdmVfYmlub21pYWwgcmFuZG9tX25ldHdvcmsnXG4gICAgICArICcgcmFuZG9tX25vbmNlbnRyYWxfY2hpMiByYW5kb21fbm9uY2VudHJhbF9zdHVkZW50X3QgcmFuZG9tX25vcm1hbCByYW5kb21fcGFyZXRvJ1xuICAgICAgKyAnIHJhbmRvbV9wZXJtdXRhdGlvbiByYW5kb21fcG9pc3NvbiByYW5kb21fcmF5bGVpZ2ggcmFuZG9tX3JlZ3VsYXJfZ3JhcGggcmFuZG9tX3N0dWRlbnRfdCdcbiAgICAgICsgJyByYW5kb21fdG91cm5hbWVudCByYW5kb21fdHJlZSByYW5kb21fd2VpYnVsbCByYW5nZSByYW5rIHJhdCByYXRjb2VmIHJhdGRlbm9tJ1xuICAgICAgKyAnIHJhdGRpZmYgcmF0ZGlzcmVwIHJhdGV4cGFuZCByYXRpbnRlcnBvbCByYXRpb25hbCByYXRpb25hbGl6ZSByYXRudW1lciByYXRudW1wJ1xuICAgICAgKyAnIHJhdHAgcmF0c2ltcCByYXRzdWJzdCByYXR2YXJzIHJhdHdlaWdodCByZWFkIHJlYWRfYXJyYXkgcmVhZF9iaW5hcnlfYXJyYXknXG4gICAgICArICcgcmVhZF9iaW5hcnlfbGlzdCByZWFkX2JpbmFyeV9tYXRyaXggcmVhZGJ5dGUgcmVhZGNoYXIgcmVhZF9oYXNoZWRfYXJyYXkgcmVhZGxpbmUnXG4gICAgICArICcgcmVhZF9saXN0IHJlYWRfbWF0cml4IHJlYWRfbmVzdGVkX2xpc3QgcmVhZG9ubHkgcmVhZF94cG0gcmVhbF9pbWFncGFydF90b19jb25qdWdhdGUnXG4gICAgICArICcgcmVhbHBhcnQgcmVhbHJvb3RzIHJlYXJyYXkgcmVjdGFuZ2xlIHJlY3Rmb3JtIHJlY3Rmb3JtX2xvZ19pZl9jb25zdGFudCByZWN0dG9wb2xhcidcbiAgICAgICsgJyByZWRpZmYgcmVkdWNlX2NvbnN0cyByZWR1Y2Vfb3JkZXIgcmVnaW9uIHJlZ2lvbl9ib3VuZGFyaWVzIHJlZ2lvbl9ib3VuZGFyaWVzX3BsdXMnXG4gICAgICArICcgcmVtIHJlbWFpbmRlciByZW1hcnJheSByZW1ib3ggcmVtY29tcHMgcmVtY29uIHJlbWNvb3JkIHJlbWZ1biByZW1mdW5jdGlvbidcbiAgICAgICsgJyByZW1sZXQgcmVtb3ZlIHJlbW92ZV9jb25zdHZhbHVlIHJlbW92ZV9kaW1lbnNpb25zIHJlbW92ZV9lZGdlIHJlbW92ZV9mdW5kYW1lbnRhbF9kaW1lbnNpb25zJ1xuICAgICAgKyAnIHJlbW92ZV9mdW5kYW1lbnRhbF91bml0cyByZW1vdmVfcGxvdF9vcHRpb24gcmVtb3ZlX3ZlcnRleCByZW1wYXJ0IHJlbXJ1bGUnXG4gICAgICArICcgcmVtc3ltIHJlbXZhbHVlIHJlbmFtZSByZW5hbWVfZmlsZSByZXNldCByZXNldF9kaXNwbGF5cyByZXNpZHVlIHJlc29sdmFudGUnXG4gICAgICArICcgcmVzb2x2YW50ZV9hbHRlcm5lZTEgcmVzb2x2YW50ZV9iaXBhcnRpdGUgcmVzb2x2YW50ZV9kaWVkcmFsZSByZXNvbHZhbnRlX2tsZWluJ1xuICAgICAgKyAnIHJlc29sdmFudGVfa2xlaW4zIHJlc29sdmFudGVfcHJvZHVpdF9zeW0gcmVzb2x2YW50ZV91bml0YWlyZSByZXNvbHZhbnRlX3ZpZXJlcidcbiAgICAgICsgJyByZXN0IHJlc3VsdGFudCByZXR1cm4gcmV2ZWFsIHJldmVyc2UgcmV2ZXJ0IHJldmVydDIgcmdiMmxldmVsIHJocyByaWNjaSByaWVtYW5uJ1xuICAgICAgKyAnIHJpbnZhcmlhbnQgcmlzY2ggcmsgcm1kaXIgcm5jb21iaW5lIHJvbWJlcmcgcm9vbSByb290c2NvbnRyYWN0IHJvdW5kIHJvdydcbiAgICAgICsgJyByb3dvcCByb3dzd2FwIHJyZWR1Y2UgcnVuX3Rlc3RzdWl0ZSAlcyBzYXZlIHNhdmluZyBzY2FsYXJwIHNjYWxlZF9iZXNzZWxfaSdcbiAgICAgICsgJyBzY2FsZWRfYmVzc2VsX2kwIHNjYWxlZF9iZXNzZWxfaTEgc2NhbGVmYWN0b3JzIHNjYW5tYXAgc2NhdHRlcnBsb3Qgc2NhdHRlcnBsb3RfZGVzY3JpcHRpb24nXG4gICAgICArICcgc2NlbmUgc2NodXIyY29tcCBzY29uY2F0IHNjb3B5IHNjc2ltcCBzY3VydmF0dXJlIHNkb3duY2FzZSBzZWMgc2VjaCBzZWNvbmQnXG4gICAgICArICcgc2VxdWFsIHNlcXVhbGlnbm9yZSBzZXRfYWx0X2Rpc3BsYXkgc2V0ZGlmZmVyZW5jZSBzZXRfZHJhd19kZWZhdWx0cyBzZXRfZWRnZV93ZWlnaHQnXG4gICAgICArICcgc2V0ZWxteCBzZXRlcXVhbHAgc2V0aWZ5IHNldHAgc2V0X3BhcnRpdGlvbnMgc2V0X3Bsb3Rfb3B0aW9uIHNldF9wcm9tcHQgc2V0X3JhbmRvbV9zdGF0ZSdcbiAgICAgICsgJyBzZXRfdGV4X2Vudmlyb25tZW50IHNldF90ZXhfZW52aXJvbm1lbnRfZGVmYXVsdCBzZXR1bml0cyBzZXR1cF9hdXRvbG9hZCBzZXRfdXBfZG90X3NpbXBsaWZpY2F0aW9ucydcbiAgICAgICsgJyBzZXRfdmVydGV4X2xhYmVsIHNldmVudGggc2V4cGxvZGUgc2Ygc2hhMXN1bSBzaGEyNTZzdW0gc2hvcnRlc3RfcGF0aCBzaG9ydGVzdF93ZWlnaHRlZF9wYXRoJ1xuICAgICAgKyAnIHNob3cgc2hvd2NvbXBzIHNob3dyYXR2YXJzIHNpZXJwaW5za2lhbGUgc2llcnBpbnNraW1hcCBzaWduIHNpZ251bSBzaW1pbGFyaXR5dHJhbnNmb3JtJ1xuICAgICAgKyAnIHNpbXBfaW5lcXVhbGl0eSBzaW1wbGlmeV9zdW0gc2ltcGxvZGUgc2ltcG1ldGRlcml2IHNpbXRyYW4gc2luIHNpbmggc2luc2VydCdcbiAgICAgICsgJyBzaW52ZXJ0Y2FzZSBzaXh0aCBza2V3bmVzcyBza2V3bmVzc19iZXJub3VsbGkgc2tld25lc3NfYmV0YSBza2V3bmVzc19iaW5vbWlhbCdcbiAgICAgICsgJyBza2V3bmVzc19jaGkyIHNrZXduZXNzX2NvbnRpbnVvdXNfdW5pZm9ybSBza2V3bmVzc19kaXNjcmV0ZV91bmlmb3JtIHNrZXduZXNzX2V4cCdcbiAgICAgICsgJyBza2V3bmVzc19mIHNrZXduZXNzX2dhbW1hIHNrZXduZXNzX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIHNrZXduZXNzX2dlb21ldHJpYydcbiAgICAgICsgJyBza2V3bmVzc19ndW1iZWwgc2tld25lc3NfaHlwZXJnZW9tZXRyaWMgc2tld25lc3NfbGFwbGFjZSBza2V3bmVzc19sb2dpc3RpYydcbiAgICAgICsgJyBza2V3bmVzc19sb2dub3JtYWwgc2tld25lc3NfbmVnYXRpdmVfYmlub21pYWwgc2tld25lc3Nfbm9uY2VudHJhbF9jaGkyIHNrZXduZXNzX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICAgKyAnIHNrZXduZXNzX25vcm1hbCBza2V3bmVzc19wYXJldG8gc2tld25lc3NfcG9pc3NvbiBza2V3bmVzc19yYXlsZWlnaCBza2V3bmVzc19zdHVkZW50X3QnXG4gICAgICArICcgc2tld25lc3Nfd2VpYnVsbCBzbGVuZ3RoIHNtYWtlIHNtYWxsX3Job21iaWNvc2lkb2RlY2FoZWRyb25fZ3JhcGggc21hbGxfcmhvbWJpY3Vib2N0YWhlZHJvbl9ncmFwaCdcbiAgICAgICsgJyBzbWF4IHNtaW4gc21pc21hdGNoIHNub3dtYXAgc251Yl9jdWJlX2dyYXBoIHNudWJfZG9kZWNhaGVkcm9uX2dyYXBoIHNvbHZlJ1xuICAgICAgKyAnIHNvbHZlX3JlYyBzb2x2ZV9yZWNfcmF0IHNvbWUgc29tcmFjIHNvcnQgc3BhcnNlNl9kZWNvZGUgc3BhcnNlNl9lbmNvZGUgc3BhcnNlNl9leHBvcnQnXG4gICAgICArICcgc3BhcnNlNl9pbXBvcnQgc3BlY2ludCBzcGhlcmljYWwgc3BoZXJpY2FsX2Jlc3NlbF9qIHNwaGVyaWNhbF9iZXNzZWxfeSBzcGhlcmljYWxfaGFua2VsMSdcbiAgICAgICsgJyBzcGhlcmljYWxfaGFua2VsMiBzcGhlcmljYWxfaGFybW9uaWMgc3BoZXJpY2FsX3RvX3h5eiBzcGxpY2Ugc3BsaXQgc3Bvc2l0aW9uJ1xuICAgICAgKyAnIHNwcmludCBzcWZyIHNxcnQgc3FydGRlbmVzdCBzcmVtb3ZlIHNyZW1vdmVmaXJzdCBzcmV2ZXJzZSBzc2VhcmNoIHNzb3J0IHNzdGF0dXMnXG4gICAgICArICcgc3N1YnN0IHNzdWJzdGZpcnN0IHN0YWlyY2FzZSBzdGFuZGFyZGl6ZSBzdGFuZGFyZGl6ZV9pbnZlcnNlX3RyaWcgc3RhcnBsb3QnXG4gICAgICArICcgc3RhcnBsb3RfZGVzY3JpcHRpb24gc3RhdHVzIHN0ZCBzdGQxIHN0ZF9iZXJub3VsbGkgc3RkX2JldGEgc3RkX2Jpbm9taWFsJ1xuICAgICAgKyAnIHN0ZF9jaGkyIHN0ZF9jb250aW51b3VzX3VuaWZvcm0gc3RkX2Rpc2NyZXRlX3VuaWZvcm0gc3RkX2V4cCBzdGRfZiBzdGRfZ2FtbWEnXG4gICAgICArICcgc3RkX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIHN0ZF9nZW9tZXRyaWMgc3RkX2d1bWJlbCBzdGRfaHlwZXJnZW9tZXRyaWMgc3RkX2xhcGxhY2UnXG4gICAgICArICcgc3RkX2xvZ2lzdGljIHN0ZF9sb2dub3JtYWwgc3RkX25lZ2F0aXZlX2Jpbm9taWFsIHN0ZF9ub25jZW50cmFsX2NoaTIgc3RkX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICAgKyAnIHN0ZF9ub3JtYWwgc3RkX3BhcmV0byBzdGRfcG9pc3NvbiBzdGRfcmF5bGVpZ2ggc3RkX3N0dWRlbnRfdCBzdGRfd2VpYnVsbCdcbiAgICAgICsgJyBzdGVtcGxvdCBzdGlybGluZyBzdGlybGluZzEgc3RpcmxpbmcyIHN0cmltIHN0cmltbCBzdHJpbXIgc3RyaW5nIHN0cmluZ291dCdcbiAgICAgICsgJyBzdHJpbmdwIHN0cm9uZ19jb21wb25lbnRzIHN0cnV2ZV9oIHN0cnV2ZV9sIHN1YmxpcyBzdWJsaXN0IHN1Ymxpc3RfaW5kaWNlcydcbiAgICAgICsgJyBzdWJtYXRyaXggc3Vic2FtcGxlIHN1YnNldCBzdWJzZXRwIHN1YnN0IHN1YnN0aW5wYXJ0IHN1YnN0X3BhcmFsbGVsIHN1YnN0cGFydCdcbiAgICAgICsgJyBzdWJzdHJpbmcgc3VidmFyIHN1YnZhcnAgc3VtIHN1bWNvbnRyYWN0IHN1bW1hbmRfdG9fcmVjIHN1cGNhc2Ugc3VwY29udGV4dCdcbiAgICAgICsgJyBzeW1ib2xwIHN5bW1kaWZmZXJlbmNlIHN5bW1ldHJpY3Agc3lzdGVtIHRha2VfY2hhbm5lbCB0YWtlX2luZmVyZW5jZSB0YW4nXG4gICAgICArICcgdGFuaCB0YXlsb3IgdGF5bG9yaW5mbyB0YXlsb3JwIHRheWxvcl9zaW1wbGlmaWVyIHRheXRvcmF0IHRjbF9vdXRwdXQgdGNvbnRyYWN0J1xuICAgICAgKyAnIHRlbGxyYXQgdGVsbHNpbXAgdGVsbHNpbXBhZnRlciB0ZW50ZXggdGVudGggdGVzdF9tZWFuIHRlc3RfbWVhbnNfZGlmZmVyZW5jZSdcbiAgICAgICsgJyB0ZXN0X25vcm1hbGl0eSB0ZXN0X3Byb3BvcnRpb24gdGVzdF9wcm9wb3J0aW9uc19kaWZmZXJlbmNlIHRlc3RfcmFua19zdW0nXG4gICAgICArICcgdGVzdF9zaWduIHRlc3Rfc2lnbmVkX3JhbmsgdGVzdF92YXJpYW5jZSB0ZXN0X3ZhcmlhbmNlX3JhdGlvIHRleCB0ZXgxIHRleF9kaXNwbGF5J1xuICAgICAgKyAnIHRleHB1dCAldGggdGhpcmQgdGhyb3cgdGltZSB0aW1lZGF0ZSB0aW1lciB0aW1lcl9pbmZvIHRsZGVmaW50IHRsaW1pdCB0b2RkX2NveGV0ZXInXG4gICAgICArICcgdG9lcGxpdHogdG9rZW5zIHRvX2xpc3AgdG9wb2xvZ2ljYWxfc29ydCB0b19wb2x5IHRvX3BvbHlfc29sdmUgdG90YWxkaXNyZXAnXG4gICAgICArICcgdG90YWxmb3VyaWVyIHRvdGllbnQgdHBhcnRwb2wgdHJhY2UgdHJhY2VtYXRyaXggdHJhY2Vfb3B0aW9ucyB0cmFuc2Zvcm1fc2FtcGxlJ1xuICAgICAgKyAnIHRyYW5zbGF0ZSB0cmFuc2xhdGVfZmlsZSB0cmFuc3Bvc2UgdHJlZWZhbGUgdHJlZV9yZWR1Y2UgdHJlaWxsaXMgdHJlaW5hdCdcbiAgICAgICsgJyB0cmlhbmdsZSB0cmlhbmd1bGFyaXplIHRyaWdleHBhbmQgdHJpZ3JhdCB0cmlncmVkdWNlIHRyaWdzaW1wIHRydW5jIHRydW5jYXRlJ1xuICAgICAgKyAnIHRydW5jYXRlZF9jdWJlX2dyYXBoIHRydW5jYXRlZF9kb2RlY2FoZWRyb25fZ3JhcGggdHJ1bmNhdGVkX2ljb3NhaGVkcm9uX2dyYXBoJ1xuICAgICAgKyAnIHRydW5jYXRlZF90ZXRyYWhlZHJvbl9ncmFwaCB0cl93YXJuaW5nc19nZXQgdHViZSB0dXR0ZV9ncmFwaCB1ZWl2ZWN0cyB1Zm9yZ2V0J1xuICAgICAgKyAnIHVsdHJhc3BoZXJpY2FsIHVuZGVybHlpbmdfZ3JhcGggdW5kaWZmIHVuaW9uIHVuaXF1ZSB1bml0ZWlnZW52ZWN0b3JzIHVuaXRwJ1xuICAgICAgKyAnIHVuaXRzIHVuaXRfc3RlcCB1bml0dmVjdG9yIHVub3JkZXIgdW5zdW0gdW50ZWxscmF0IHVudGltZXInXG4gICAgICArICcgdW50cmFjZSB1cHBlcmNhc2VwIHVyaWNjaSB1cmllbWFubiB1dmVjdCB2YW5kZXJtb25kZV9tYXRyaXggdmFyIHZhcjEgdmFyX2Jlcm5vdWxsaSdcbiAgICAgICsgJyB2YXJfYmV0YSB2YXJfYmlub21pYWwgdmFyX2NoaTIgdmFyX2NvbnRpbnVvdXNfdW5pZm9ybSB2YXJfZGlzY3JldGVfdW5pZm9ybSdcbiAgICAgICsgJyB2YXJfZXhwIHZhcl9mIHZhcl9nYW1tYSB2YXJfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgdmFyX2dlb21ldHJpYyB2YXJfZ3VtYmVsJ1xuICAgICAgKyAnIHZhcl9oeXBlcmdlb21ldHJpYyB2YXJfbGFwbGFjZSB2YXJfbG9naXN0aWMgdmFyX2xvZ25vcm1hbCB2YXJfbmVnYXRpdmVfYmlub21pYWwnXG4gICAgICArICcgdmFyX25vbmNlbnRyYWxfY2hpMiB2YXJfbm9uY2VudHJhbF9zdHVkZW50X3QgdmFyX25vcm1hbCB2YXJfcGFyZXRvIHZhcl9wb2lzc29uJ1xuICAgICAgKyAnIHZhcl9yYXlsZWlnaCB2YXJfc3R1ZGVudF90IHZhcl93ZWlidWxsIHZlY3RvciB2ZWN0b3Jwb3RlbnRpYWwgdmVjdG9yc2ltcCdcbiAgICAgICsgJyB2ZXJiaWZ5IHZlcnMgdmVydGV4X2NvbG9yaW5nIHZlcnRleF9jb25uZWN0aXZpdHkgdmVydGV4X2RlZ3JlZSB2ZXJ0ZXhfZGlzdGFuY2UnXG4gICAgICArICcgdmVydGV4X2VjY2VudHJpY2l0eSB2ZXJ0ZXhfaW5fZGVncmVlIHZlcnRleF9vdXRfZGVncmVlIHZlcnRpY2VzIHZlcnRpY2VzX3RvX2N5Y2xlJ1xuICAgICAgKyAnIHZlcnRpY2VzX3RvX3BhdGggJXcgd2V5bCB3aGVlbF9ncmFwaCB3aWVuZXJfaW5kZXggd2lnbmVyXzNqIHdpZ25lcl82aidcbiAgICAgICsgJyB3aWduZXJfOWogd2l0aF9zdGRvdXQgd3JpdGVfYmluYXJ5X2RhdGEgd3JpdGVieXRlIHdyaXRlX2RhdGEgd3JpdGVmaWxlIHdyb25za2lhbidcbiAgICAgICsgJyB4cmVkdWNlIHh0aHJ1ICV5IFplaWxiZXJnZXIgemVyb2VxdWl2IHplcm9mb3IgemVyb21hdHJpeCB6ZXJvbWF0cml4cCB6ZXRhJ1xuICAgICAgKyAnIHpnZWV2IHpoZWV2IHpsYW5nZSB6bl9hZGRfdGFibGUgem5fY2FybWljaGFlbF9sYW1iZGEgem5fY2hhcmFjdGVyaXN0aWNfZmFjdG9ycydcbiAgICAgICsgJyB6bl9kZXRlcm1pbmFudCB6bl9mYWN0b3JfZ2VuZXJhdG9ycyB6bl9pbnZlcnRfYnlfbHUgem5fbG9nIHpuX211bHRfdGFibGUnXG4gICAgICArICcgYWJzYm94Y2hhciBhY3RpdmVjb250ZXh0cyBhZGFwdF9kZXB0aCBhZGRpdGl2ZSBhZGltIGFmb3JtIGFsZ2VicmFpYydcbiAgICAgICsgJyBhbGdlcHNpbG9uIGFsZ2V4YWN0IGFsaWFzZXMgYWxsYnV0IGFsbF9kb3RzaW1wX2Rlbm9tcyBhbGxvY2F0aW9uIGFsbHN5bSBhbHBoYWJldGljJ1xuICAgICAgKyAnIGFuaW1hdGlvbiBhbnRpc3ltbWV0cmljIGFycmF5cyBhc2tleHAgYXNzdW1lX3BvcyBhc3N1bWVfcG9zX3ByZWQgYXNzdW1lc2NhbGFyJ1xuICAgICAgKyAnIGFzeW1ib2wgYXRvbWdyYWQgYXRyaWcxIGF4ZXMgYXhpc18zZCBheGlzX2JvdHRvbSBheGlzX2xlZnQgYXhpc19yaWdodCBheGlzX3RvcCdcbiAgICAgICsgJyBhemltdXRoIGJhY2tncm91bmQgYmFja2dyb3VuZF9jb2xvciBiYWNrc3Vic3QgYmVybGVmYWN0IGJlcm5zdGVpbl9leHBsaWNpdCdcbiAgICAgICsgJyBiZXNzZWxleHBhbmQgYmV0YV9hcmdzX3N1bV90b19pbnRlZ2VyIGJldGFfZXhwYW5kIGJmdG9yYXQgYmZ0cnVuYyBiaW5kdGVzdCdcbiAgICAgICsgJyBib3JkZXIgYm91bmRhcmllc19hcnJheSBib3ggYm94Y2hhciBicmVha3VwICVjIGNhcHBpbmcgY2F1Y2h5c3VtIGNicmFuZ2UnXG4gICAgICArICcgY2J0aWNzIGNlbnRlciBjZmxlbmd0aCBjZnJhbWVfZmxhZyBjbm9ubWV0X2ZsYWcgY29sb3IgY29sb3JfYmFyIGNvbG9yX2Jhcl90aWNzJ1xuICAgICAgKyAnIGNvbG9yYm94IGNvbHVtbnMgY29tbXV0YXRpdmUgY29tcGxleCBjb25lIGNvbnRleHQgY29udGV4dHMgY29udG91ciBjb250b3VyX2xldmVscydcbiAgICAgICsgJyBjb3NucGlmbGFnIGN0YXlwb3YgY3RheXB0IGN0YXlzd2l0Y2ggY3RheXZhciBjdF9jb29yZHMgY3RvcnNpb25fZmxhZyBjdHJnc2ltcCdcbiAgICAgICsgJyBjdWJlIGN1cnJlbnRfbGV0X3J1bGVfcGFja2FnZSBjeWxpbmRlciBkYXRhX2ZpbGVfbmFtZSBkZWJ1Z21vZGUgZGVjcmVhc2luZydcbiAgICAgICsgJyBkZWZhdWx0X2xldF9ydWxlX3BhY2thZ2UgZGVsYXkgZGVwZW5kZW5jaWVzIGRlcml2YWJicmV2IGRlcml2c3Vic3QgZGV0b3V0J1xuICAgICAgKyAnIGRpYWdtZXRyaWMgZGlmZiBkaW0gZGltZW5zaW9ucyBkaXNwZmxhZyBkaXNwbGF5MmR8MTAgZGlzcGxheV9mb3JtYXRfaW50ZXJuYWwnXG4gICAgICArICcgZGlzdHJpYnV0ZV9vdmVyIGRvYWxsbXhvcHMgZG9tYWluIGRvbXhleHB0IGRvbXhteG9wcyBkb214bmN0aW1lcyBkb250ZmFjdG9yJ1xuICAgICAgKyAnIGRvc2NteG9wcyBkb3NjbXhwbHVzIGRvdDBuc2NzaW1wIGRvdDBzaW1wIGRvdDFzaW1wIGRvdGFzc29jIGRvdGNvbnN0cnVsZXMnXG4gICAgICArICcgZG90ZGlzdHJpYiBkb3RleHB0c2ltcCBkb3RpZGVudCBkb3RzY3J1bGVzIGRyYXdfZ3JhcGhfcHJvZ3JhbSBkcmF3X3JlYWxwYXJ0J1xuICAgICAgKyAnIGVkZ2VfY29sb3IgZWRnZV9jb2xvcmluZyBlZGdlX3BhcnRpdGlvbiBlZGdlX3R5cGUgZWRnZV93aWR0aCAlZWRpc3BmbGFnJ1xuICAgICAgKyAnIGVsZXZhdGlvbiAlZW1vZGUgZW5kcGhpIGVuZHRoZXRhIGVuZ2luZWVyaW5nX2Zvcm1hdF9mbG9hdHMgZW5oYW5jZWQzZCAlZW51bWVyJ1xuICAgICAgKyAnIGVwc2lsb25fbHAgZXJmZmxhZyBlcmZfcmVwcmVzZW50YXRpb24gZXJyb3Jtc2cgZXJyb3Jfc2l6ZSBlcnJvcl9zeW1zIGVycm9yX3R5cGUnXG4gICAgICArICcgJWVfdG9fbnVtbG9nIGV2YWwgZXZlbiBldmVuZnVuIGV2ZmxhZyBldmZ1biBldl9wb2ludCBleHBhbmR3cnRfZGVub20gZXhwaW50ZXhwYW5kJ1xuICAgICAgKyAnIGV4cGludHJlcCBleHBvbiBleHBvcCBleHB0ZGlzcGZsYWcgZXhwdGlzb2xhdGUgZXhwdHN1YnN0IGZhY2V4cGFuZCBmYWNzdW1fY29tYmluZSdcbiAgICAgICsgJyBmYWN0bGltIGZhY3RvcmZsYWcgZmFjdG9yaWFsX2V4cGFuZCBmYWN0b3JzX29ubHkgZmIgZmVhdHVyZSBmZWF0dXJlcydcbiAgICAgICsgJyBmaWxlX25hbWUgZmlsZV9vdXRwdXRfYXBwZW5kIGZpbGVfc2VhcmNoX2RlbW8gZmlsZV9zZWFyY2hfbGlzcCBmaWxlX3NlYXJjaF9tYXhpbWF8MTAnXG4gICAgICArICcgZmlsZV9zZWFyY2hfdGVzdHMgZmlsZV9zZWFyY2hfdXNhZ2UgZmlsZV90eXBlX2xpc3AgZmlsZV90eXBlX21heGltYXwxMCBmaWxsX2NvbG9yJ1xuICAgICAgKyAnIGZpbGxfZGVuc2l0eSBmaWxsZWRfZnVuYyBmaXhlZF92ZXJ0aWNlcyBmbGlwZmxhZyBmbG9hdDJiZiBmb250IGZvbnRfc2l6ZSdcbiAgICAgICsgJyBmb3J0aW5kZW50IGZvcnRzcGFjZXMgZnBwcmVjIGZwcHJpbnRwcmVjIGZ1bmN0aW9ucyBnYW1tYV9leHBhbmQgZ2FtbWFsaW0nXG4gICAgICArICcgZ2RldCBnZW5pbmRleCBnZW5zdW1udW0gR0dGQ0ZNQVggR0dGSU5GSU5JVFkgZ2xvYmFsc29sdmUgZ251cGxvdF9jb21tYW5kJ1xuICAgICAgKyAnIGdudXBsb3RfY3VydmVfc3R5bGVzIGdudXBsb3RfY3VydmVfdGl0bGVzIGdudXBsb3RfZGVmYXVsdF90ZXJtX2NvbW1hbmQgZ251cGxvdF9kdW1iX3Rlcm1fY29tbWFuZCdcbiAgICAgICsgJyBnbnVwbG90X2ZpbGVfYXJncyBnbnVwbG90X2ZpbGVfbmFtZSBnbnVwbG90X291dF9maWxlIGdudXBsb3RfcGRmX3Rlcm1fY29tbWFuZCdcbiAgICAgICsgJyBnbnVwbG90X3BtM2QgZ251cGxvdF9wbmdfdGVybV9jb21tYW5kIGdudXBsb3RfcG9zdGFtYmxlIGdudXBsb3RfcHJlYW1ibGUnXG4gICAgICArICcgZ251cGxvdF9wc190ZXJtX2NvbW1hbmQgZ251cGxvdF9zdmdfdGVybV9jb21tYW5kIGdudXBsb3RfdGVybSBnbnVwbG90X3ZpZXdfYXJncydcbiAgICAgICsgJyBHb3NwZXJfaW5fWmVpbGJlcmdlciBncmFkZWZzIGdyaWQgZ3JpZDJkIGdyaW5kIGhhbGZhbmdsZXMgaGVhZF9hbmdsZSBoZWFkX2JvdGgnXG4gICAgICArICcgaGVhZF9sZW5ndGggaGVhZF90eXBlIGhlaWdodCBoeXBlcmdlb21ldHJpY19yZXByZXNlbnRhdGlvbiAlaWFyZ3MgaWJhc2UnXG4gICAgICArICcgaWNjMSBpY2MyIGljb3VudGVyIGlkdW1teXggaWVxbnByaW50IGlmYiBpZmMxIGlmYzIgaWZnIGlmZ2kgaWZyIGlmcmFtZV9icmFja2V0X2Zvcm0nXG4gICAgICArICcgaWZyaSBpZ2Vvd2VkZ2VfZmxhZyBpa3QxIGlrdDIgaW1hZ2luYXJ5IGluY2hhciBpbmNyZWFzaW5nIGluZmV2YWwnXG4gICAgICArICcgaW5maW5pdHkgaW5mbGFnIGluZm9saXN0cyBpbm0gaW5tYzEgaW5tYzIgaW50YW5hbHlzaXMgaW50ZWdlciBpbnRlZ2VydmFsdWVkJ1xuICAgICAgKyAnIGludGVncmF0ZV91c2Vfcm9vdHNvZiBpbnRlZ3JhdGlvbl9jb25zdGFudCBpbnRlZ3JhdGlvbl9jb25zdGFudF9jb3VudGVyIGludGVycG9sYXRlX2NvbG9yJ1xuICAgICAgKyAnIGludGZhY2xpbSBpcF9ncmlkIGlwX2dyaWRfaW4gaXJyYXRpb25hbCBpc29sYXRlX3dydF90aW1lcyBpdGVyYXRpb25zIGl0cidcbiAgICAgICsgJyBqdWxpYV9wYXJhbWV0ZXIgJWsxICVrMiBrZWVwZmxvYXQga2V5IGtleV9wb3Mga2ludmFyaWFudCBrdCBsYWJlbCBsYWJlbF9hbGlnbm1lbnQnXG4gICAgICArICcgbGFiZWxfb3JpZW50YXRpb24gbGFiZWxzIGxhc3NvY2lhdGl2ZSBsYmZnc19uY29ycmVjdGlvbnMgbGJmZ3NfbmZldmFsX21heCdcbiAgICAgICsgJyBsZWZ0anVzdCBsZWdlbmQgbGV0cmF0IGxldF9ydWxlX3BhY2thZ2VzIGxmZyBsZyBsaG9zcGl0YWxsaW0gbGltc3Vic3QgbGluZWFyJ1xuICAgICAgKyAnIGxpbmVhcl9zb2x2ZXIgbGluZWNoYXIgbGluZWx8MTAgbGluZW51bSBsaW5lX3R5cGUgbGluZXdpZHRoIGxpbmVfd2lkdGggbGluc29sdmVfcGFyYW1zJ1xuICAgICAgKyAnIGxpbnNvbHZld2FybiBsaXNwZGlzcCBsaXN0YXJpdGggbGlzdGNvbnN0dmFycyBsaXN0ZHVtbXl2YXJzIGxteGNoYXIgbG9hZF9wYXRobmFtZSdcbiAgICAgICsgJyBsb2FkcHJpbnQgbG9nYWJzIGxvZ2FyYyBsb2djYiBsb2djb25jb2VmZnAgbG9nZXhwYW5kIGxvZ25lZ2ludCBsb2dzaW1wIGxvZ3gnXG4gICAgICArICcgbG9neF9zZWNvbmRhcnkgbG9neSBsb2d5X3NlY29uZGFyeSBsb2d6IGxyaWVtIG0xcGJyYW5jaCBtYWNyb2V4cGFuc2lvbiBtYWNyb3MnXG4gICAgICArICcgbWFpbnZhciBtYW51YWxfZGVtbyBtYXBlcnJvciBtYXBwcmludCBtYXRyaXhfZWxlbWVudF9hZGQgbWF0cml4X2VsZW1lbnRfbXVsdCdcbiAgICAgICsgJyBtYXRyaXhfZWxlbWVudF90cmFuc3Bvc2UgbWF4YXBwbHlkZXB0aCBtYXhhcHBseWhlaWdodCBtYXhpbWFfdGVtcGRpcnwxMCBtYXhpbWFfdXNlcmRpcnwxMCdcbiAgICAgICsgJyBtYXhuZWdleCBNQVhfT1JEIG1heHBvc2V4IG1heHBzaWZyYWNkZW5vbSBtYXhwc2lmcmFjbnVtIG1heHBzaW5lZ2ludCBtYXhwc2lwb3NpbnQnXG4gICAgICArICcgbWF4dGF5b3JkZXIgbWVzaF9saW5lc19jb2xvciBtZXRob2QgbW9kX2JpZ19wcmltZSBtb2RlX2NoZWNrX2Vycm9ycCdcbiAgICAgICsgJyBtb2RlX2NoZWNrcCBtb2RlX2NoZWNrX3dhcm5wIG1vZF90ZXN0IG1vZF90aHJlc2hvbGQgbW9kdWxhcl9saW5lYXJfc29sdmVyJ1xuICAgICAgKyAnIG1vZHVsdXMgbXVsdGlwbGljYXRpdmUgbXVsdGlwbGljaXRpZXMgbXlvcHRpb25zIG5hcnkgbmVnZGlzdHJpYiBuZWdzdW1kaXNwZmxhZydcbiAgICAgICsgJyBuZXdsaW5lIG5ld3RvbmVwc2lsb24gbmV3dG9ubWF4aXRlciBuZXh0bGF5ZXJmYWN0b3IgbmljZWluZGljZXNwcmVmIG5tIG5tYydcbiAgICAgICsgJyBub2V2YWwgbm9sYWJlbHMgbm9uZWdhdGl2ZV9scCBub25pbnRlZ2VyIG5vbnNjYWxhciBub3VuIG5vdW5kaXNwIG5vdW5zIG5wJ1xuICAgICAgKyAnIG5waSBudGlja3MgbnRyaWcgbnVtZXIgbnVtZXJfcGJyYW5jaCBvYmFzZSBvZGQgb2RkZnVuIG9wYWNpdHkgb3Bwcm9wZXJ0aWVzJ1xuICAgICAgKyAnIG9wc3Vic3Qgb3B0aW1wcmVmaXggb3B0aW9uc2V0IG9yaWVudGF0aW9uIG9yaWdpbiBvcnRob3BvbHlfcmV0dXJuc19pbnRlcnZhbHMnXG4gICAgICArICcgb3V0YXRpdmUgb3V0Y2hhciBwYWNrYWdlZmlsZSBwYWxldHRlIHBhcnRzd2l0Y2ggcGRmX2ZpbGUgcGZlZm9ybWF0IHBoaXJlc29sdXRpb24nXG4gICAgICArICcgJXBpYXJncyBwaWVjZSBwaXZvdF9jb3VudF9zeCBwaXZvdF9tYXhfc3ggcGxvdF9mb3JtYXQgcGxvdF9vcHRpb25zIHBsb3RfcmVhbHBhcnQnXG4gICAgICArICcgcG5nX2ZpbGUgcG9jaGhhbW1lcl9tYXhfaW5kZXggcG9pbnRzIHBvaW50c2l6ZSBwb2ludF9zaXplIHBvaW50c19qb2luZWQgcG9pbnRfdHlwZSdcbiAgICAgICsgJyBwb2lzbGltIHBvaXNzb24gcG9seV9jb2VmZmljaWVudF9yaW5nIHBvbHlfZWxpbWluYXRpb25fb3JkZXIgcG9seWZhY3RvciBwb2x5X2dyb2JuZXJfYWxnb3JpdGhtJ1xuICAgICAgKyAnIHBvbHlfZ3JvYm5lcl9kZWJ1ZyBwb2x5X21vbm9taWFsX29yZGVyIHBvbHlfcHJpbWFyeV9lbGltaW5hdGlvbl9vcmRlciBwb2x5X3JldHVybl90ZXJtX2xpc3QnXG4gICAgICArICcgcG9seV9zZWNvbmRhcnlfZWxpbWluYXRpb25fb3JkZXIgcG9seV90b3BfcmVkdWN0aW9uX29ubHkgcG9zZnVuIHBvc2l0aW9uJ1xuICAgICAgKyAnIHBvd2VyZGlzcCBwcmVkIHByZWRlcnJvciBwcmltZXBfbnVtYmVyX29mX3Rlc3RzIHByb2R1Y3RfdXNlX2dhbW1hIHByb2dyYW0nXG4gICAgICArICcgcHJvZ3JhbW1vZGUgcHJvbW90ZV9mbG9hdF90b19iaWdmbG9hdCBwcm9tcHQgcHJvcG9ydGlvbmFsX2F4ZXMgcHJvcHMgcHNleHBhbmQnXG4gICAgICArICcgcHNfZmlsZSByYWRleHBhbmQgcmFkaXVzIHJhZHN1YnN0ZmxhZyByYXNzb2NpYXRpdmUgcmF0YWxnZGVub20gcmF0Y2hyaXN0b2YnXG4gICAgICArICcgcmF0ZGVub21kaXZpZGUgcmF0ZWluc3RlaW4gcmF0ZXBzaWxvbiByYXRmYWMgcmF0aW9uYWwgcmF0bXggcmF0cHJpbnQgcmF0cmllbWFubidcbiAgICAgICsgJyByYXRzaW1wZXhwb25zIHJhdHZhcnN3aXRjaCByYXR3ZWlnaHRzIHJhdHdleWwgcmF0d3RsdmwgcmVhbCByZWFsb25seSByZWRyYXcnXG4gICAgICArICcgcmVmY2hlY2sgcmVzb2x1dGlvbiByZXN0YXJ0IHJlc3VsdGFudCByaWMgcmllbSBybXhjaGFyICVybnVtX2xpc3Qgcm9tYmVyZ2FicydcbiAgICAgICsgJyByb21iZXJnaXQgcm9tYmVyZ21pbiByb21iZXJndG9sIHJvb3RzY29ubW9kZSByb290c2Vwc2lsb24gcnVuX3ZpZXdlciBzYW1lX3h5J1xuICAgICAgKyAnIHNhbWVfeHl6IHNhdmVkZWYgc2F2ZWZhY3RvcnMgc2NhbGFyIHNjYWxhcm1hdHJpeHAgc2NhbGUgc2NhbGVfbHAgc2V0Y2hlY2snXG4gICAgICArICcgc2V0Y2hlY2ticmVhayBzZXR2YWwgc2hvd19lZGdlX2NvbG9yIHNob3dfZWRnZXMgc2hvd19lZGdlX3R5cGUgc2hvd19lZGdlX3dpZHRoJ1xuICAgICAgKyAnIHNob3dfaWQgc2hvd19sYWJlbCBzaG93dGltZSBzaG93X3ZlcnRleF9jb2xvciBzaG93X3ZlcnRleF9zaXplIHNob3dfdmVydGV4X3R5cGUnXG4gICAgICArICcgc2hvd192ZXJ0aWNlcyBzaG93X3dlaWdodCBzaW1wIHNpbXBsaWZpZWRfb3V0cHV0IHNpbXBsaWZ5X3Byb2R1Y3RzIHNpbXBwcm9kdWN0J1xuICAgICAgKyAnIHNpbXBzdW0gc2lubnBpZmxhZyBzb2x2ZWRlY29tcG9zZXMgc29sdmVleHBsaWNpdCBzb2x2ZWZhY3RvcnMgc29sdmVudWxsd2FybidcbiAgICAgICsgJyBzb2x2ZXJhZGNhbiBzb2x2ZXRyaWd3YXJuIHNwYWNlIHNwYXJzZSBzcGhlcmUgc3ByaW5nX2VtYmVkZGluZ19kZXB0aCBzcXJ0ZGlzcGZsYWcnXG4gICAgICArICcgc3RhcmRpc3Agc3RhcnRwaGkgc3RhcnR0aGV0YSBzdGF0c19udW1lciBzdHJpbmdkaXNwIHN0cnVjdHVyZXMgc3R5bGUgc3VibGlzX2FwcGx5X2xhbWJkYSdcbiAgICAgICsgJyBzdWJudW1zaW1wIHN1bWV4cGFuZCBzdW1zcGxpdGZhY3Qgc3VyZmFjZSBzdXJmYWNlX2hpZGUgc3ZnX2ZpbGUgc3ltbWV0cmljJ1xuICAgICAgKyAnIHRhYiB0YXlsb3JkZXB0aCB0YXlsb3JfbG9nZXhwYW5kIHRheWxvcl9vcmRlcl9jb2VmZmljaWVudHMgdGF5bG9yX3RydW5jYXRlX3BvbHlub21pYWxzJ1xuICAgICAgKyAnIHRlbnNvcmtpbGwgdGVybWluYWwgdGVzdHN1aXRlX2ZpbGVzIHRoZXRhcmVzb2x1dGlvbiB0aW1lcl9kZXZhbHVlIHRpdGxlIHRsaW1zd2l0Y2gnXG4gICAgICArICcgdHIgdHJhY2sgdHJhbnNjb21waWxlIHRyYW5zZm9ybSB0cmFuc2Zvcm1feHkgdHJhbnNsYXRlX2Zhc3RfYXJyYXlzIHRyYW5zcGFyZW50J1xuICAgICAgKyAnIHRyYW5zcnVuIHRyX2FycmF5X2FzX3JlZiB0cl9ib3VuZF9mdW5jdGlvbl9hcHBseXAgdHJfZmlsZV90dHlfbWVzc2FnZXNwIHRyX2Zsb2F0X2Nhbl9icmFuY2hfY29tcGxleCdcbiAgICAgICsgJyB0cl9mdW5jdGlvbl9jYWxsX2RlZmF1bHQgdHJpZ2V4cGFuZHBsdXMgdHJpZ2V4cGFuZHRpbWVzIHRyaWdpbnZlcnNlcyB0cmlnc2lnbidcbiAgICAgICsgJyB0cml2aWFsX3NvbHV0aW9ucyB0cl9udW1lciB0cl9vcHRpbWl6ZV9tYXhfbG9vcCB0cl9zZW1pY29tcGlsZSB0cl9zdGF0ZV92YXJzJ1xuICAgICAgKyAnIHRyX3dhcm5fYmFkX2Z1bmN0aW9uX2NhbGxzIHRyX3dhcm5fZmV4cHIgdHJfd2Fybl9tZXZhbCB0cl93YXJuX21vZGUnXG4gICAgICArICcgdHJfd2Fybl91bmRlY2xhcmVkIHRyX3dhcm5fdW5kZWZpbmVkX3ZhcmlhYmxlIHRzdGVwIHR0eW9mZiB0dWJlX2V4dHJlbWVzJ1xuICAgICAgKyAnIHVmZyB1ZyAldW5pdGV4cGFuZCB1bml0X3ZlY3RvcnMgdXJpYyB1cmllbSB1c2VfZmFzdF9hcnJheXMgdXNlcl9wcmVhbWJsZSdcbiAgICAgICsgJyB1c2Vyc2V0dW5pdHMgdmFsdWVzIHZlY3RfY3Jvc3MgdmVyYm9zZSB2ZXJ0ZXhfY29sb3IgdmVydGV4X2NvbG9yaW5nIHZlcnRleF9wYXJ0aXRpb24nXG4gICAgICArICcgdmVydGV4X3NpemUgdmVydGV4X3R5cGUgdmlldyB3YXJuaW5ncyB3ZXlsIHdpZHRoIHdpbmRvd25hbWUgd2luZG93dGl0bGUgd2lyZWRfc3VyZmFjZSdcbiAgICAgICsgJyB3aXJlZnJhbWUgeGF4aXMgeGF4aXNfY29sb3IgeGF4aXNfc2Vjb25kYXJ5IHhheGlzX3R5cGUgeGF4aXNfd2lkdGggeGxhYmVsJ1xuICAgICAgKyAnIHhsYWJlbF9zZWNvbmRhcnkgeGxlbmd0aCB4cmFuZ2UgeHJhbmdlX3NlY29uZGFyeSB4dGljcyB4dGljc19heGlzIHh0aWNzX3JvdGF0ZSdcbiAgICAgICsgJyB4dGljc19yb3RhdGVfc2Vjb25kYXJ5IHh0aWNzX3NlY29uZGFyeSB4dGljc19zZWNvbmRhcnlfYXhpcyB4dV9ncmlkIHhfdm94ZWwnXG4gICAgICArICcgeHlfZmlsZSB4eXBsYW5lIHh5X3NjYWxlIHlheGlzIHlheGlzX2NvbG9yIHlheGlzX3NlY29uZGFyeSB5YXhpc190eXBlIHlheGlzX3dpZHRoJ1xuICAgICAgKyAnIHlsYWJlbCB5bGFiZWxfc2Vjb25kYXJ5IHlsZW5ndGggeXJhbmdlIHlyYW5nZV9zZWNvbmRhcnkgeXRpY3MgeXRpY3NfYXhpcydcbiAgICAgICsgJyB5dGljc19yb3RhdGUgeXRpY3Nfcm90YXRlX3NlY29uZGFyeSB5dGljc19zZWNvbmRhcnkgeXRpY3Nfc2Vjb25kYXJ5X2F4aXMnXG4gICAgICArICcgeXZfZ3JpZCB5X3ZveGVsIHl4X3JhdGlvIHpheGlzIHpheGlzX2NvbG9yIHpheGlzX3R5cGUgemF4aXNfd2lkdGggemVyb2EgemVyb2InXG4gICAgICArICcgemVyb2Jlcm4gemV0YSVwaSB6bGFiZWwgemxhYmVsX3JvdGF0ZSB6bGVuZ3RoIHptaW4gem5fcHJpbXJvb3RfbGltaXQgem5fcHJpbXJvb3RfcHJldGVzdCc7XG4gIHZhciBTWU1CT0xTID0gJ18gX18gJXwwICUlfDAnO1xuXG4gIHJldHVybiB7XG4gICAgbGV4ZW1lczogJ1tBLVphLXpfJV1bMC05QS1aYS16XyVdKicsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRJTl9GVU5DVElPTlMsXG4gICAgICBzeW1ib2w6IFNZTUJPTFMsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46ICcvXFxcXConLFxuICAgICAgICBlbmQ6ICdcXFxcKi8nLFxuICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gZmxvYXQgbnVtYmVyIHcvIGV4cG9uZW50XG4gICAgICAgICAgICAvLyBobW0sIEkgd29uZGVyIGlmIHdlIG91Z2h0IHRvIGluY2x1ZGUgb3RoZXIgZXhwb25lbnQgbWFya2Vycz9cbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXGQrfFxcXFxkK1xcXFwufFxcXFwuXFxcXGQrfFxcXFxkK1xcXFwuXFxcXGQrKVtFZV1bLStdP1xcXFxkK1xcXFxiJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGJpZ2Zsb2F0IG51bWJlclxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihcXFxcZCt8XFxcXGQrXFxcXC58XFxcXC5cXFxcZCt8XFxcXGQrXFxcXC5cXFxcZCspW0JiXVstK10/XFxcXGQrXFxcXGInLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gZmxvYXQgbnVtYmVyIHcvb3V0IGV4cG9uZW50XG4gICAgICAgICAgICAvLyBEb2Vzbid0IHNlZW0gdG8gcmVjb2duaXplIGZsb2F0cyB3aGljaCBzdGFydCB3aXRoICcuJ1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihcXFxcLlxcXFxkK3xcXFxcZCtcXFxcLlxcXFxkKylcXFxcYicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBpbnRlZ2VyIGluIGJhc2UgdXAgdG8gMzZcbiAgICAgICAgICAgIC8vIERvZXNuJ3Qgc2VlbSB0byByZWNvZ25pemUgaW50ZWdlcnMgd2hpY2ggZW5kIHdpdGggJy4nXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxiKFxcXFxkK3wwWzAtOUEtWmEtel0rKVxcXFwuP1xcXFxiJyxcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC9AL1xuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOlxuICAgICAgJ2ludCBmbG9hdCBzdHJpbmcgdmVjdG9yIG1hdHJpeCBpZiBlbHNlIHN3aXRjaCBjYXNlIGRlZmF1bHQgd2hpbGUgZG8gZm9yIGluIGJyZWFrICcgK1xuICAgICAgJ2NvbnRpbnVlIGdsb2JhbCBwcm9jIHJldHVybiBhYm91dCBhYnMgYWRkQXR0ciBhZGRBdHRyaWJ1dGVFZGl0b3JOb2RlSGVscCBhZGREeW5hbWljICcgK1xuICAgICAgJ2FkZE5ld1NoZWxmVGFiIGFkZFBQIGFkZFBhbmVsQ2F0ZWdvcnkgYWRkUHJlZml4VG9OYW1lIGFkdmFuY2VUb05leHREcml2ZW5LZXkgJyArXG4gICAgICAnYWZmZWN0ZWROZXQgYWZmZWN0cyBhaW1Db25zdHJhaW50IGFpciBhbGlhcyBhbGlhc0F0dHIgYWxpZ24gYWxpZ25DdHggYWxpZ25DdXJ2ZSAnICtcbiAgICAgICdhbGlnblN1cmZhY2UgYWxsVmlld0ZpdCBhbWJpZW50TGlnaHQgYW5nbGUgYW5nbGVCZXR3ZWVuIGFuaW1Db25lIGFuaW1DdXJ2ZUVkaXRvciAnICtcbiAgICAgICdhbmltRGlzcGxheSBhbmltVmlldyBhbm5vdGF0ZSBhcHBlbmRTdHJpbmdBcnJheSBhcHBsaWNhdGlvbk5hbWUgYXBwbHlBdHRyUHJlc2V0ICcgK1xuICAgICAgJ2FwcGx5VGFrZSBhcmNMZW5EaW1Db250ZXh0IGFyY0xlbmd0aERpbWVuc2lvbiBhcmNsZW4gYXJyYXlNYXBwZXIgYXJ0M2RQYWludEN0eCAnICtcbiAgICAgICdhcnRBdHRyQ3R4IGFydEF0dHJQYWludFZlcnRleEN0eCBhcnRBdHRyU2tpblBhaW50Q3R4IGFydEF0dHJUb29sIGFydEJ1aWxkUGFpbnRNZW51ICcgK1xuICAgICAgJ2FydEZsdWlkQXR0ckN0eCBhcnRQdXR0eUN0eCBhcnRTZWxlY3RDdHggYXJ0U2V0UGFpbnRDdHggYXJ0VXNlclBhaW50Q3R4IGFzc2lnbkNvbW1hbmQgJyArXG4gICAgICAnYXNzaWduSW5wdXREZXZpY2UgYXNzaWduVmlld3BvcnRGYWN0b3JpZXMgYXR0YWNoQ3VydmUgYXR0YWNoRGV2aWNlQXR0ciBhdHRhY2hTdXJmYWNlICcgK1xuICAgICAgJ2F0dHJDb2xvclNsaWRlckdycCBhdHRyQ29tcGF0aWJpbGl0eSBhdHRyQ29udHJvbEdycCBhdHRyRW51bU9wdGlvbk1lbnUgJyArXG4gICAgICAnYXR0ckVudW1PcHRpb25NZW51R3JwIGF0dHJGaWVsZEdycCBhdHRyRmllbGRTbGlkZXJHcnAgYXR0ck5hdmlnYXRpb25Db250cm9sR3JwICcgK1xuICAgICAgJ2F0dHJQcmVzZXRFZGl0V2luIGF0dHJpYnV0ZUV4aXN0cyBhdHRyaWJ1dGVJbmZvIGF0dHJpYnV0ZU1lbnUgYXR0cmlidXRlUXVlcnkgJyArXG4gICAgICAnYXV0b0tleWZyYW1lIGF1dG9QbGFjZSBiYWtlQ2xpcCBiYWtlRmx1aWRTaGFkaW5nIGJha2VQYXJ0aWFsSGlzdG9yeSBiYWtlUmVzdWx0cyAnICtcbiAgICAgICdiYWtlU2ltdWxhdGlvbiBiYXNlbmFtZSBiYXNlbmFtZUV4IGJhdGNoUmVuZGVyIGJlc3NlbCBiZXZlbCBiZXZlbFBsdXMgYmluTWVtYmVyc2hpcCAnICtcbiAgICAgICdiaW5kU2tpbiBibGVuZDIgYmxlbmRTaGFwZSBibGVuZFNoYXBlRWRpdG9yIGJsZW5kU2hhcGVQYW5lbCBibGVuZFR3b0F0dHIgYmxpbmREYXRhVHlwZSAnICtcbiAgICAgICdib25lTGF0dGljZSBib3VuZGFyeSBib3hEb2xseUN0eCBib3hab29tQ3R4IGJ1ZmZlckN1cnZlIGJ1aWxkQm9va21hcmtNZW51ICcgK1xuICAgICAgJ2J1aWxkS2V5ZnJhbWVNZW51IGJ1dHRvbiBidXR0b25NYW5pcCBDQkcgY2FjaGVGaWxlIGNhY2hlRmlsZUNvbWJpbmUgY2FjaGVGaWxlTWVyZ2UgJyArXG4gICAgICAnY2FjaGVGaWxlVHJhY2sgY2FtZXJhIGNhbWVyYVZpZXcgY2FuQ3JlYXRlTWFuaXAgY2FudmFzIGNhcGl0YWxpemVTdHJpbmcgY2F0Y2ggJyArXG4gICAgICAnY2F0Y2hRdWlldCBjZWlsIGNoYW5nZVN1YmRpdkNvbXBvbmVudERpc3BsYXlMZXZlbCBjaGFuZ2VTdWJkaXZSZWdpb24gY2hhbm5lbEJveCAnICtcbiAgICAgICdjaGFyYWN0ZXIgY2hhcmFjdGVyTWFwIGNoYXJhY3Rlck91dGxpbmVFZGl0b3IgY2hhcmFjdGVyaXplIGNoZGlyIGNoZWNrQm94IGNoZWNrQm94R3JwICcgK1xuICAgICAgJ2NoZWNrRGVmYXVsdFJlbmRlckdsb2JhbHMgY2hvaWNlIGNpcmNsZSBjaXJjdWxhckZpbGxldCBjbGFtcCBjbGVhciBjbGVhckNhY2hlIGNsaXAgJyArXG4gICAgICAnY2xpcEVkaXRvciBjbGlwRWRpdG9yQ3VycmVudFRpbWVDdHggY2xpcFNjaGVkdWxlIGNsaXBTY2hlZHVsZXJPdXRsaW5lciBjbGlwVHJpbUJlZm9yZSAnICtcbiAgICAgICdjbG9zZUN1cnZlIGNsb3NlU3VyZmFjZSBjbHVzdGVyIGNtZEZpbGVPdXRwdXQgY21kU2Nyb2xsRmllbGRFeGVjdXRlciAnICtcbiAgICAgICdjbWRTY3JvbGxGaWVsZFJlcG9ydGVyIGNtZFNoZWxsIGNvYXJzZW5TdWJkaXZTZWxlY3Rpb25MaXN0IGNvbGxpc2lvbiBjb2xvciAnICtcbiAgICAgICdjb2xvckF0UG9pbnQgY29sb3JFZGl0b3IgY29sb3JJbmRleCBjb2xvckluZGV4U2xpZGVyR3JwIGNvbG9yU2xpZGVyQnV0dG9uR3JwICcgK1xuICAgICAgJ2NvbG9yU2xpZGVyR3JwIGNvbHVtbkxheW91dCBjb21tYW5kRWNobyBjb21tYW5kTGluZSBjb21tYW5kUG9ydCBjb21wYWN0SGFpclN5c3RlbSAnICtcbiAgICAgICdjb21wb25lbnRFZGl0b3IgY29tcG9zaXRpbmdJbnRlcm9wIGNvbXB1dGVQb2x5c2V0Vm9sdW1lIGNvbmRpdGlvbiBjb25lIGNvbmZpcm1EaWFsb2cgJyArXG4gICAgICAnY29ubmVjdEF0dHIgY29ubmVjdENvbnRyb2wgY29ubmVjdER5bmFtaWMgY29ubmVjdEpvaW50IGNvbm5lY3Rpb25JbmZvIGNvbnN0cmFpbiAnICtcbiAgICAgICdjb25zdHJhaW5WYWx1ZSBjb25zdHJ1Y3Rpb25IaXN0b3J5IGNvbnRhaW5lciBjb250YWluc011bHRpYnl0ZSBjb250ZXh0SW5mbyBjb250cm9sICcgK1xuICAgICAgJ2NvbnZlcnRGcm9tT2xkTGF5ZXJzIGNvbnZlcnRJZmZUb1BzZCBjb252ZXJ0TGlnaHRtYXAgY29udmVydFNvbGlkVHggY29udmVydFRlc3NlbGxhdGlvbiAnICtcbiAgICAgICdjb252ZXJ0VW5pdCBjb3B5QXJyYXkgY29weUZsZXhvciBjb3B5S2V5IGNvcHlTa2luV2VpZ2h0cyBjb3MgY3BCdXR0b24gY3BDYWNoZSAnICtcbiAgICAgICdjcENsb3RoU2V0IGNwQ29sbGlzaW9uIGNwQ29uc3RyYWludCBjcENvbnZDbG90aFRvTWVzaCBjcEZvcmNlcyBjcEdldFNvbHZlckF0dHIgY3BQYW5lbCAnICtcbiAgICAgICdjcFByb3BlcnR5IGNwUmlnaWRDb2xsaXNpb25GaWx0ZXIgY3BTZWFtIGNwU2V0RWRpdCBjcFNldFNvbHZlckF0dHIgY3BTb2x2ZXIgJyArXG4gICAgICAnY3BTb2x2ZXJUeXBlcyBjcFRvb2wgY3BVcGRhdGVDbG90aFVWcyBjcmVhdGVEaXNwbGF5TGF5ZXIgY3JlYXRlRHJhd0N0eCBjcmVhdGVFZGl0b3IgJyArXG4gICAgICAnY3JlYXRlTGF5ZXJlZFBzZEZpbGUgY3JlYXRlTW90aW9uRmllbGQgY3JlYXRlTmV3U2hlbGYgY3JlYXRlTm9kZSBjcmVhdGVSZW5kZXJMYXllciAnICtcbiAgICAgICdjcmVhdGVTdWJkaXZSZWdpb24gY3Jvc3MgY3Jvc3NQcm9kdWN0IGN0eEFib3J0IGN0eENvbXBsZXRpb24gY3R4RWRpdE1vZGUgY3R4VHJhdmVyc2UgJyArXG4gICAgICAnY3VycmVudEN0eCBjdXJyZW50VGltZSBjdXJyZW50VGltZUN0eCBjdXJyZW50VW5pdCBjdXJ2ZSBjdXJ2ZUFkZFB0Q3R4ICcgK1xuICAgICAgJ2N1cnZlQ1ZDdHggY3VydmVFUEN0eCBjdXJ2ZUVkaXRvckN0eCBjdXJ2ZUludGVyc2VjdCBjdXJ2ZU1vdmVFUEN0eCBjdXJ2ZU9uU3VyZmFjZSAnICtcbiAgICAgICdjdXJ2ZVNrZXRjaEN0eCBjdXRLZXkgY3ljbGVDaGVjayBjeWxpbmRlciBkYWdQb3NlIGRhdGUgZGVmYXVsdExpZ2h0TGlzdENoZWNrQm94ICcgK1xuICAgICAgJ2RlZmF1bHROYXZpZ2F0aW9uIGRlZmluZURhdGFTZXJ2ZXIgZGVmaW5lVmlydHVhbERldmljZSBkZWZvcm1lciBkZWdfdG9fcmFkIGRlbGV0ZSAnICtcbiAgICAgICdkZWxldGVBdHRyIGRlbGV0ZVNoYWRpbmdHcm91cHNBbmRNYXRlcmlhbHMgZGVsZXRlU2hlbGZUYWIgZGVsZXRlVUkgZGVsZXRlVW51c2VkQnJ1c2hlcyAnICtcbiAgICAgICdkZWxyYW5kc3RyIGRldGFjaEN1cnZlIGRldGFjaERldmljZUF0dHIgZGV0YWNoU3VyZmFjZSBkZXZpY2VFZGl0b3IgZGV2aWNlUGFuZWwgZGdJbmZvICcgK1xuICAgICAgJ2RnZGlydHkgZGdldmFsIGRndGltZXIgZGltV2hlbiBkaXJlY3RLZXlDdHggZGlyZWN0aW9uYWxMaWdodCBkaXJtYXAgZGlybmFtZSBkaXNhYmxlICcgK1xuICAgICAgJ2Rpc2Nvbm5lY3RBdHRyIGRpc2Nvbm5lY3RKb2ludCBkaXNrQ2FjaGUgZGlzcGxhY2VtZW50VG9Qb2x5IGRpc3BsYXlBZmZlY3RlZCAnICtcbiAgICAgICdkaXNwbGF5Q29sb3IgZGlzcGxheUN1bGwgZGlzcGxheUxldmVsT2ZEZXRhaWwgZGlzcGxheVByZWYgZGlzcGxheVJHQkNvbG9yICcgK1xuICAgICAgJ2Rpc3BsYXlTbW9vdGhuZXNzIGRpc3BsYXlTdGF0cyBkaXNwbGF5U3RyaW5nIGRpc3BsYXlTdXJmYWNlIGRpc3RhbmNlRGltQ29udGV4dCAnICtcbiAgICAgICdkaXN0YW5jZURpbWVuc2lvbiBkb0JsdXIgZG9sbHkgZG9sbHlDdHggZG9wZVNoZWV0RWRpdG9yIGRvdCBkb3RQcm9kdWN0ICcgK1xuICAgICAgJ2RvdWJsZVByb2ZpbGVCaXJhaWxTdXJmYWNlIGRyYWcgZHJhZ0F0dHJDb250ZXh0IGRyYWdnZXJDb250ZXh0IGRyb3BvZmZMb2NhdG9yICcgK1xuICAgICAgJ2R1cGxpY2F0ZSBkdXBsaWNhdGVDdXJ2ZSBkdXBsaWNhdGVTdXJmYWNlIGR5bkNhY2hlIGR5bkNvbnRyb2wgZHluRXhwb3J0IGR5bkV4cHJlc3Npb24gJyArXG4gICAgICAnZHluR2xvYmFscyBkeW5QYWludEVkaXRvciBkeW5QYXJ0aWNsZUN0eCBkeW5QcmVmIGR5blJlbEVkUGFuZWwgZHluUmVsRWRpdG9yICcgK1xuICAgICAgJ2R5bmFtaWNMb2FkIGVkaXRBdHRyTGltaXRzIGVkaXREaXNwbGF5TGF5ZXJHbG9iYWxzIGVkaXREaXNwbGF5TGF5ZXJNZW1iZXJzICcgK1xuICAgICAgJ2VkaXRSZW5kZXJMYXllckFkanVzdG1lbnQgZWRpdFJlbmRlckxheWVyR2xvYmFscyBlZGl0UmVuZGVyTGF5ZXJNZW1iZXJzIGVkaXRvciAnICtcbiAgICAgICdlZGl0b3JUZW1wbGF0ZSBlZmZlY3RvciBlbWl0IGVtaXR0ZXIgZW5hYmxlRGV2aWNlIGVuY29kZVN0cmluZyBlbmRTdHJpbmcgZW5kc1dpdGggZW52ICcgK1xuICAgICAgJ2VxdWl2YWxlbnQgZXF1aXZhbGVudFRvbCBlcmYgZXJyb3IgZXZhbCBldmFsRGVmZXJyZWQgZXZhbEVjaG8gZXZlbnQgJyArXG4gICAgICAnZXhhY3RXb3JsZEJvdW5kaW5nQm94IGV4Y2x1c2l2ZUxpZ2h0Q2hlY2tCb3ggZXhlYyBleGVjdXRlRm9yRWFjaE9iamVjdCBleGlzdHMgZXhwICcgK1xuICAgICAgJ2V4cHJlc3Npb24gZXhwcmVzc2lvbkVkaXRvckxpc3RlbiBleHRlbmRDdXJ2ZSBleHRlbmRTdXJmYWNlIGV4dHJ1ZGUgZmNoZWNrIGZjbG9zZSBmZW9mICcgK1xuICAgICAgJ2ZmbHVzaCBmZ2V0bGluZSBmZ2V0d29yZCBmaWxlIGZpbGVCcm93c2VyRGlhbG9nIGZpbGVEaWFsb2cgZmlsZUV4dGVuc2lvbiBmaWxlSW5mbyAnICtcbiAgICAgICdmaWxldGVzdCBmaWxsZXRDdXJ2ZSBmaWx0ZXIgZmlsdGVyQ3VydmUgZmlsdGVyRXhwYW5kIGZpbHRlclN0dWRpb0ltcG9ydCAnICtcbiAgICAgICdmaW5kQWxsSW50ZXJzZWN0aW9ucyBmaW5kQW5pbUN1cnZlcyBmaW5kS2V5ZnJhbWUgZmluZE1lbnVJdGVtIGZpbmRSZWxhdGVkU2tpbkNsdXN0ZXIgJyArXG4gICAgICAnZmluZGVyIGZpcnN0UGFyZW50T2YgZml0QnNwbGluZSBmbGV4b3IgZmxvYXRFcSBmbG9hdEZpZWxkIGZsb2F0RmllbGRHcnAgZmxvYXRTY3JvbGxCYXIgJyArXG4gICAgICAnZmxvYXRTbGlkZXIgZmxvYXRTbGlkZXIyIGZsb2F0U2xpZGVyQnV0dG9uR3JwIGZsb2F0U2xpZGVyR3JwIGZsb29yIGZsb3cgZmx1aWRDYWNoZUluZm8gJyArXG4gICAgICAnZmx1aWRFbWl0dGVyIGZsdWlkVm94ZWxJbmZvIGZsdXNoVW5kbyBmbW9kIGZvbnREaWFsb2cgZm9wZW4gZm9ybUxheW91dCBmb3JtYXQgZnByaW50ICcgK1xuICAgICAgJ2ZyYW1lTGF5b3V0IGZyZWFkIGZyZWVGb3JtRmlsbGV0IGZyZXdpbmQgZnJvbU5hdGl2ZVBhdGggZndyaXRlIGdhbW1hIGdhdXNzICcgK1xuICAgICAgJ2dlb21ldHJ5Q29uc3RyYWludCBnZXRBcHBsaWNhdGlvblZlcnNpb25Bc0Zsb2F0IGdldEF0dHIgZ2V0Q2xhc3NpZmljYXRpb24gJyArXG4gICAgICAnZ2V0RGVmYXVsdEJydXNoIGdldEZpbGVMaXN0IGdldEZsdWlkQXR0ciBnZXRJbnB1dERldmljZVJhbmdlIGdldE1heWFQYW5lbFR5cGVzICcgK1xuICAgICAgJ2dldE1vZGlmaWVycyBnZXRQYW5lbCBnZXRQYXJ0aWNsZUF0dHIgZ2V0UGx1Z2luUmVzb3VyY2UgZ2V0ZW52IGdldHBpZCBnbFJlbmRlciAnICtcbiAgICAgICdnbFJlbmRlckVkaXRvciBnbG9iYWxTdGl0Y2ggZ21hdGNoIGdvYWwgZ290b0JpbmRQb3NlIGdyYWJDb2xvciBncmFkaWVudENvbnRyb2wgJyArXG4gICAgICAnZ3JhZGllbnRDb250cm9sTm9BdHRyIGdyYXBoRG9sbHlDdHggZ3JhcGhTZWxlY3RDb250ZXh0IGdyYXBoVHJhY2tDdHggZ3Jhdml0eSBncmlkICcgK1xuICAgICAgJ2dyaWRMYXlvdXQgZ3JvdXAgZ3JvdXBPYmplY3RzQnlOYW1lIEhmQWRkQXR0cmFjdG9yVG9BUyBIZkFzc2lnbkFTIEhmQnVpbGRFcXVhbE1hcCAnICtcbiAgICAgICdIZkJ1aWxkRnVyRmlsZXMgSGZCdWlsZEZ1ckltYWdlcyBIZkNhbmNlbEFGUiBIZkNvbm5lY3RBU1RvSEYgSGZDcmVhdGVBdHRyYWN0b3IgJyArXG4gICAgICAnSGZEZWxldGVBUyBIZkVkaXRBUyBIZlBlcmZvcm1DcmVhdGVBUyBIZlJlbW92ZUF0dHJhY3RvckZyb21BUyBIZlNlbGVjdEF0dGFjaGVkICcgK1xuICAgICAgJ0hmU2VsZWN0QXR0cmFjdG9ycyBIZlVuQXNzaWduQVMgaGFyZGVuUG9pbnRDdXJ2ZSBoYXJkd2FyZSBoYXJkd2FyZVJlbmRlclBhbmVsICcgK1xuICAgICAgJ2hlYWRzVXBEaXNwbGF5IGhlYWRzVXBNZXNzYWdlIGhlbHAgaGVscExpbmUgaGVybWl0ZSBoaWRlIGhpbGl0ZSBoaXRUZXN0IGhvdEJveCBob3RrZXkgJyArXG4gICAgICAnaG90a2V5Q2hlY2sgaHN2X3RvX3JnYiBodWRCdXR0b24gaHVkU2xpZGVyIGh1ZFNsaWRlckJ1dHRvbiBod1JlZmxlY3Rpb25NYXAgaHdSZW5kZXIgJyArXG4gICAgICAnaHdSZW5kZXJMb2FkIGh5cGVyR3JhcGggaHlwZXJQYW5lbCBoeXBlclNoYWRlIGh5cG90IGljb25UZXh0QnV0dG9uIGljb25UZXh0Q2hlY2tCb3ggJyArXG4gICAgICAnaWNvblRleHRSYWRpb0J1dHRvbiBpY29uVGV4dFJhZGlvQ29sbGVjdGlvbiBpY29uVGV4dFNjcm9sbExpc3QgaWNvblRleHRTdGF0aWNMYWJlbCAnICtcbiAgICAgICdpa0hhbmRsZSBpa0hhbmRsZUN0eCBpa0hhbmRsZURpc3BsYXlTY2FsZSBpa1NvbHZlciBpa1NwbGluZUhhbmRsZUN0eCBpa1N5c3RlbSAnICtcbiAgICAgICdpa1N5c3RlbUluZm8gaWtma0Rpc3BsYXlNZXRob2QgaWxsdXN0cmF0b3JDdXJ2ZXMgaW1hZ2UgaW1mUGx1Z2lucyBpbmhlcml0VHJhbnNmb3JtICcgK1xuICAgICAgJ2luc2VydEpvaW50IGluc2VydEpvaW50Q3R4IGluc2VydEtleUN0eCBpbnNlcnRLbm90Q3VydmUgaW5zZXJ0S25vdFN1cmZhY2UgaW5zdGFuY2UgJyArXG4gICAgICAnaW5zdGFuY2VhYmxlIGluc3RhbmNlciBpbnRGaWVsZCBpbnRGaWVsZEdycCBpbnRTY3JvbGxCYXIgaW50U2xpZGVyIGludFNsaWRlckdycCAnICtcbiAgICAgICdpbnRlclRvVUkgaW50ZXJuYWxWYXIgaW50ZXJzZWN0IGlwckVuZ2luZSBpc0FuaW1DdXJ2ZSBpc0Nvbm5lY3RlZCBpc0RpcnR5IGlzUGFyZW50T2YgJyArXG4gICAgICAnaXNTYW1lT2JqZWN0IGlzVHJ1ZSBpc1ZhbGlkT2JqZWN0TmFtZSBpc1ZhbGlkU3RyaW5nIGlzVmFsaWRVaU5hbWUgaXNvbGF0ZVNlbGVjdCAnICtcbiAgICAgICdpdGVtRmlsdGVyIGl0ZW1GaWx0ZXJBdHRyIGl0ZW1GaWx0ZXJSZW5kZXIgaXRlbUZpbHRlclR5cGUgam9pbnQgam9pbnRDbHVzdGVyIGpvaW50Q3R4ICcgK1xuICAgICAgJ2pvaW50RGlzcGxheVNjYWxlIGpvaW50TGF0dGljZSBrZXlUYW5nZW50IGtleWZyYW1lIGtleWZyYW1lT3V0bGluZXIgJyArXG4gICAgICAna2V5ZnJhbWVSZWdpb25DdXJyZW50VGltZUN0eCBrZXlmcmFtZVJlZ2lvbkRpcmVjdEtleUN0eCBrZXlmcmFtZVJlZ2lvbkRvbGx5Q3R4ICcgK1xuICAgICAgJ2tleWZyYW1lUmVnaW9uSW5zZXJ0S2V5Q3R4IGtleWZyYW1lUmVnaW9uTW92ZUtleUN0eCBrZXlmcmFtZVJlZ2lvblNjYWxlS2V5Q3R4ICcgK1xuICAgICAgJ2tleWZyYW1lUmVnaW9uU2VsZWN0S2V5Q3R4IGtleWZyYW1lUmVnaW9uU2V0S2V5Q3R4IGtleWZyYW1lUmVnaW9uVHJhY2tDdHggJyArXG4gICAgICAna2V5ZnJhbWVTdGF0cyBsYXNzb0NvbnRleHQgbGF0dGljZSBsYXR0aWNlRGVmb3JtS2V5Q3R4IGxhdW5jaCBsYXVuY2hJbWFnZUVkaXRvciAnICtcbiAgICAgICdsYXllckJ1dHRvbiBsYXllcmVkU2hhZGVyUG9ydCBsYXllcmVkVGV4dHVyZVBvcnQgbGF5b3V0IGxheW91dERpYWxvZyBsaWdodExpc3QgJyArXG4gICAgICAnbGlnaHRMaXN0RWRpdG9yIGxpZ2h0TGlzdFBhbmVsIGxpZ2h0bGluayBsaW5lSW50ZXJzZWN0aW9uIGxpbmVhclByZWNpc2lvbiBsaW5zdGVwICcgK1xuICAgICAgJ2xpc3RBbmltYXRhYmxlIGxpc3RBdHRyIGxpc3RDYW1lcmFzIGxpc3RDb25uZWN0aW9ucyBsaXN0RGV2aWNlQXR0YWNobWVudHMgbGlzdEhpc3RvcnkgJyArXG4gICAgICAnbGlzdElucHV0RGV2aWNlQXhlcyBsaXN0SW5wdXREZXZpY2VCdXR0b25zIGxpc3RJbnB1dERldmljZXMgbGlzdE1lbnVBbm5vdGF0aW9uICcgK1xuICAgICAgJ2xpc3ROb2RlVHlwZXMgbGlzdFBhbmVsQ2F0ZWdvcmllcyBsaXN0UmVsYXRpdmVzIGxpc3RTZXRzIGxpc3RUcmFuc2Zvcm1zICcgK1xuICAgICAgJ2xpc3RVbnNlbGVjdGVkIGxpc3RlckVkaXRvciBsb2FkRmx1aWQgbG9hZE5ld1NoZWxmIGxvYWRQbHVnaW4gJyArXG4gICAgICAnbG9hZFBsdWdpbkxhbmd1YWdlUmVzb3VyY2VzIGxvYWRQcmVmT2JqZWN0cyBsb2NhbGl6ZWRQYW5lbExhYmVsIGxvY2tOb2RlIGxvZnQgbG9nICcgK1xuICAgICAgJ2xvbmdOYW1lT2YgbG9va1RocnUgbHMgbHNUaHJvdWdoRmlsdGVyIGxzVHlwZSBsc1VJIE1heWF0b21yIG1hZyBtYWtlSWRlbnRpdHkgbWFrZUxpdmUgJyArXG4gICAgICAnbWFrZVBhaW50YWJsZSBtYWtlUm9sbCBtYWtlU2luZ2xlU3VyZmFjZSBtYWtlVHViZU9uIG1ha2Vib3QgbWFuaXBNb3ZlQ29udGV4dCAnICtcbiAgICAgICdtYW5pcE1vdmVMaW1pdHNDdHggbWFuaXBPcHRpb25zIG1hbmlwUm90YXRlQ29udGV4dCBtYW5pcFJvdGF0ZUxpbWl0c0N0eCAnICtcbiAgICAgICdtYW5pcFNjYWxlQ29udGV4dCBtYW5pcFNjYWxlTGltaXRzQ3R4IG1hcmtlciBtYXRjaCBtYXggbWVtb3J5IG1lbnUgbWVudUJhckxheW91dCAnICtcbiAgICAgICdtZW51RWRpdG9yIG1lbnVJdGVtIG1lbnVJdGVtVG9TaGVsZiBtZW51U2V0IG1lbnVTZXRQcmVmIG1lc3NhZ2VMaW5lIG1pbiBtaW5pbWl6ZUFwcCAnICtcbiAgICAgICdtaXJyb3JKb2ludCBtb2RlbEN1cnJlbnRUaW1lQ3R4IG1vZGVsRWRpdG9yIG1vZGVsUGFuZWwgbW91c2UgbW92SW4gbW92T3V0IG1vdmUgJyArXG4gICAgICAnbW92ZUlLdG9GSyBtb3ZlS2V5Q3R4IG1vdmVWZXJ0ZXhBbG9uZ0RpcmVjdGlvbiBtdWx0aVByb2ZpbGVCaXJhaWxTdXJmYWNlIG11dGUgJyArXG4gICAgICAnblBhcnRpY2xlIG5hbWVDb21tYW5kIG5hbWVGaWVsZCBuYW1lc3BhY2UgbmFtZXNwYWNlSW5mbyBuZXdQYW5lbEl0ZW1zIG5ld3RvbiBub2RlQ2FzdCAnICtcbiAgICAgICdub2RlSWNvbkJ1dHRvbiBub2RlT3V0bGluZXIgbm9kZVByZXNldCBub2RlVHlwZSBub2lzZSBub25MaW5lYXIgbm9ybWFsQ29uc3RyYWludCAnICtcbiAgICAgICdub3JtYWxpemUgbnVyYnNCb29sZWFuIG51cmJzQ29weVVWU2V0IG51cmJzQ3ViZSBudXJic0VkaXRVViBudXJic1BsYW5lIG51cmJzU2VsZWN0ICcgK1xuICAgICAgJ251cmJzU3F1YXJlIG51cmJzVG9Qb2x5IG51cmJzVG9Qb2x5Z29uc1ByZWYgbnVyYnNUb1N1YmRpdiBudXJic1RvU3ViZGl2UHJlZiAnICtcbiAgICAgICdudXJic1VWU2V0IG51cmJzVmlld0RpcmVjdGlvblZlY3RvciBvYmpFeGlzdHMgb2JqZWN0Q2VudGVyIG9iamVjdExheWVyIG9iamVjdFR5cGUgJyArXG4gICAgICAnb2JqZWN0VHlwZVVJIG9ic29sZXRlUHJvYyBvY2Vhbk51cmJzUHJldmlld1BsYW5lIG9mZnNldEN1cnZlIG9mZnNldEN1cnZlT25TdXJmYWNlICcgK1xuICAgICAgJ29mZnNldFN1cmZhY2Ugb3BlbkdMRXh0ZW5zaW9uIG9wZW5NYXlhUHJlZiBvcHRpb25NZW51IG9wdGlvbk1lbnVHcnAgb3B0aW9uVmFyIG9yYml0ICcgK1xuICAgICAgJ29yYml0Q3R4IG9yaWVudENvbnN0cmFpbnQgb3V0bGluZXJFZGl0b3Igb3V0bGluZXJQYW5lbCBvdmVycmlkZU1vZGlmaWVyICcgK1xuICAgICAgJ3BhaW50RWZmZWN0c0Rpc3BsYXkgcGFpckJsZW5kIHBhbGV0dGVQb3J0IHBhbmVMYXlvdXQgcGFuZWwgcGFuZWxDb25maWd1cmF0aW9uICcgK1xuICAgICAgJ3BhbmVsSGlzdG9yeSBwYXJhbURpbUNvbnRleHQgcGFyYW1EaW1lbnNpb24gcGFyYW1Mb2NhdG9yIHBhcmVudCBwYXJlbnRDb25zdHJhaW50ICcgK1xuICAgICAgJ3BhcnRpY2xlIHBhcnRpY2xlRXhpc3RzIHBhcnRpY2xlSW5zdGFuY2VyIHBhcnRpY2xlUmVuZGVySW5mbyBwYXJ0aXRpb24gcGFzdGVLZXkgJyArXG4gICAgICAncGF0aEFuaW1hdGlvbiBwYXVzZSBwY2xvc2UgcGVyY2VudCBwZXJmb3JtYW5jZU9wdGlvbnMgcGZ4c3Ryb2tlcyBwaWNrV2FsayBwaWN0dXJlICcgK1xuICAgICAgJ3BpeGVsTW92ZSBwbGFuYXJTcmYgcGxhbmUgcGxheSBwbGF5YmFja09wdGlvbnMgcGxheWJsYXN0IHBsdWdBdHRyIHBsdWdOb2RlIHBsdWdpbkluZm8gJyArXG4gICAgICAncGx1Z2luUmVzb3VyY2VVdGlsIHBvaW50Q29uc3RyYWludCBwb2ludEN1cnZlQ29uc3RyYWludCBwb2ludExpZ2h0IHBvaW50TWF0cml4TXVsdCAnICtcbiAgICAgICdwb2ludE9uQ3VydmUgcG9pbnRPblN1cmZhY2UgcG9pbnRQb3NpdGlvbiBwb2xlVmVjdG9yQ29uc3RyYWludCBwb2x5QXBwZW5kICcgK1xuICAgICAgJ3BvbHlBcHBlbmRGYWNldEN0eCBwb2x5QXBwZW5kVmVydGV4IHBvbHlBdXRvUHJvamVjdGlvbiBwb2x5QXZlcmFnZU5vcm1hbCAnICtcbiAgICAgICdwb2x5QXZlcmFnZVZlcnRleCBwb2x5QmV2ZWwgcG9seUJsZW5kQ29sb3IgcG9seUJsaW5kRGF0YSBwb2x5Qm9vbE9wIHBvbHlCcmlkZ2VFZGdlICcgK1xuICAgICAgJ3BvbHlDYWNoZU1vbml0b3IgcG9seUNoZWNrIHBvbHlDaGlwT2ZmIHBvbHlDbGlwYm9hcmQgcG9seUNsb3NlQm9yZGVyIHBvbHlDb2xsYXBzZUVkZ2UgJyArXG4gICAgICAncG9seUNvbGxhcHNlRmFjZXQgcG9seUNvbG9yQmxpbmREYXRhIHBvbHlDb2xvckRlbCBwb2x5Q29sb3JQZXJWZXJ0ZXggcG9seUNvbG9yU2V0ICcgK1xuICAgICAgJ3BvbHlDb21wYXJlIHBvbHlDb25lIHBvbHlDb3B5VVYgcG9seUNyZWFzZSBwb2x5Q3JlYXNlQ3R4IHBvbHlDcmVhdGVGYWNldCAnICtcbiAgICAgICdwb2x5Q3JlYXRlRmFjZXRDdHggcG9seUN1YmUgcG9seUN1dCBwb2x5Q3V0Q3R4IHBvbHlDeWxpbmRlciBwb2x5Q3lsaW5kcmljYWxQcm9qZWN0aW9uICcgK1xuICAgICAgJ3BvbHlEZWxFZGdlIHBvbHlEZWxGYWNldCBwb2x5RGVsVmVydGV4IHBvbHlEdXBsaWNhdGVBbmRDb25uZWN0IHBvbHlEdXBsaWNhdGVFZGdlICcgK1xuICAgICAgJ3BvbHlFZGl0VVYgcG9seUVkaXRVVlNoZWxsIHBvbHlFdmFsdWF0ZSBwb2x5RXh0cnVkZUVkZ2UgcG9seUV4dHJ1ZGVGYWNldCAnICtcbiAgICAgICdwb2x5RXh0cnVkZVZlcnRleCBwb2x5RmxpcEVkZ2UgcG9seUZsaXBVViBwb2x5Rm9yY2VVViBwb2x5R2VvU2FtcGxlciBwb2x5SGVsaXggJyArXG4gICAgICAncG9seUluZm8gcG9seUluc3RhbGxBY3Rpb24gcG9seUxheW91dFVWIHBvbHlMaXN0Q29tcG9uZW50Q29udmVyc2lvbiBwb2x5TWFwQ3V0ICcgK1xuICAgICAgJ3BvbHlNYXBEZWwgcG9seU1hcFNldyBwb2x5TWFwU2V3TW92ZSBwb2x5TWVyZ2VFZGdlIHBvbHlNZXJnZUVkZ2VDdHggcG9seU1lcmdlRmFjZXQgJyArXG4gICAgICAncG9seU1lcmdlRmFjZXRDdHggcG9seU1lcmdlVVYgcG9seU1lcmdlVmVydGV4IHBvbHlNaXJyb3JGYWNlIHBvbHlNb3ZlRWRnZSAnICtcbiAgICAgICdwb2x5TW92ZUZhY2V0IHBvbHlNb3ZlRmFjZXRVViBwb2x5TW92ZVVWIHBvbHlNb3ZlVmVydGV4IHBvbHlOb3JtYWwgcG9seU5vcm1hbFBlclZlcnRleCAnICtcbiAgICAgICdwb2x5Tm9ybWFsaXplVVYgcG9seU9wdFV2cyBwb2x5T3B0aW9ucyBwb2x5T3V0cHV0IHBvbHlQaXBlIHBvbHlQbGFuYXJQcm9qZWN0aW9uICcgK1xuICAgICAgJ3BvbHlQbGFuZSBwb2x5UGxhdG9uaWNTb2xpZCBwb2x5UG9rZSBwb2x5UHJpbWl0aXZlIHBvbHlQcmlzbSBwb2x5UHJvamVjdGlvbiAnICtcbiAgICAgICdwb2x5UHlyYW1pZCBwb2x5UXVhZCBwb2x5UXVlcnlCbGluZERhdGEgcG9seVJlZHVjZSBwb2x5U2VsZWN0IHBvbHlTZWxlY3RDb25zdHJhaW50ICcgK1xuICAgICAgJ3BvbHlTZWxlY3RDb25zdHJhaW50TW9uaXRvciBwb2x5U2VsZWN0Q3R4IHBvbHlTZWxlY3RFZGl0Q3R4IHBvbHlTZXBhcmF0ZSAnICtcbiAgICAgICdwb2x5U2V0VG9GYWNlTm9ybWFsIHBvbHlTZXdFZGdlIHBvbHlTaG9ydGVzdFBhdGhDdHggcG9seVNtb290aCBwb2x5U29mdEVkZ2UgJyArXG4gICAgICAncG9seVNwaGVyZSBwb2x5U3BoZXJpY2FsUHJvamVjdGlvbiBwb2x5U3BsaXQgcG9seVNwbGl0Q3R4IHBvbHlTcGxpdEVkZ2UgcG9seVNwbGl0UmluZyAnICtcbiAgICAgICdwb2x5U3BsaXRWZXJ0ZXggcG9seVN0cmFpZ2h0ZW5VVkJvcmRlciBwb2x5U3ViZGl2aWRlRWRnZSBwb2x5U3ViZGl2aWRlRmFjZXQgJyArXG4gICAgICAncG9seVRvU3ViZGl2IHBvbHlUb3J1cyBwb2x5VHJhbnNmZXIgcG9seVRyaWFuZ3VsYXRlIHBvbHlVVlNldCBwb2x5VW5pdGUgcG9seVdlZGdlRmFjZSAnICtcbiAgICAgICdwb3BlbiBwb3B1cE1lbnUgcG9zZSBwb3cgcHJlbG9hZFJlZkVkIHByaW50IHByb2dyZXNzQmFyIHByb2dyZXNzV2luZG93IHByb2pGaWxlVmlld2VyICcgK1xuICAgICAgJ3Byb2plY3RDdXJ2ZSBwcm9qZWN0VGFuZ2VudCBwcm9qZWN0aW9uQ29udGV4dCBwcm9qZWN0aW9uTWFuaXAgcHJvbXB0RGlhbG9nIHByb3BNb2RDdHggJyArXG4gICAgICAncHJvcE1vdmUgcHNkQ2hhbm5lbE91dGxpbmVyIHBzZEVkaXRUZXh0dXJlRmlsZSBwc2RFeHBvcnQgcHNkVGV4dHVyZUZpbGUgcHV0ZW52IHB3ZCAnICtcbiAgICAgICdweXRob24gcXVlcnlTdWJkaXYgcXVpdCByYWRfdG9fZGVnIHJhZGlhbCByYWRpb0J1dHRvbiByYWRpb0J1dHRvbkdycCByYWRpb0NvbGxlY3Rpb24gJyArXG4gICAgICAncmFkaW9NZW51SXRlbUNvbGxlY3Rpb24gcmFtcENvbG9yUG9ydCByYW5kIHJhbmRvbWl6ZUZvbGxpY2xlcyByYW5kc3RhdGUgcmFuZ2VDb250cm9sICcgK1xuICAgICAgJ3JlYWRUYWtlIHJlYnVpbGRDdXJ2ZSByZWJ1aWxkU3VyZmFjZSByZWNvcmRBdHRyIHJlY29yZERldmljZSByZWRvIHJlZmVyZW5jZSAnICtcbiAgICAgICdyZWZlcmVuY2VFZGl0IHJlZmVyZW5jZVF1ZXJ5IHJlZmluZVN1YmRpdlNlbGVjdGlvbkxpc3QgcmVmcmVzaCByZWZyZXNoQUUgJyArXG4gICAgICAncmVnaXN0ZXJQbHVnaW5SZXNvdXJjZSByZWhhc2ggcmVsb2FkSW1hZ2UgcmVtb3ZlSm9pbnQgcmVtb3ZlTXVsdGlJbnN0YW5jZSAnICtcbiAgICAgICdyZW1vdmVQYW5lbENhdGVnb3J5IHJlbmFtZSByZW5hbWVBdHRyIHJlbmFtZVNlbGVjdGlvbkxpc3QgcmVuYW1lVUkgcmVuZGVyICcgK1xuICAgICAgJ3JlbmRlckdsb2JhbHNOb2RlIHJlbmRlckluZm8gcmVuZGVyTGF5ZXJCdXR0b24gcmVuZGVyTGF5ZXJQYXJlbnQgJyArXG4gICAgICAncmVuZGVyTGF5ZXJQb3N0UHJvY2VzcyByZW5kZXJMYXllclVucGFyZW50IHJlbmRlck1hbmlwIHJlbmRlclBhcnRpdGlvbiAnICtcbiAgICAgICdyZW5kZXJRdWFsaXR5Tm9kZSByZW5kZXJTZXR0aW5ncyByZW5kZXJUaHVtYm5haWxVcGRhdGUgcmVuZGVyV2luZG93RWRpdG9yICcgK1xuICAgICAgJ3JlbmRlcldpbmRvd1NlbGVjdENvbnRleHQgcmVuZGVyZXIgcmVvcmRlciByZW9yZGVyRGVmb3JtZXJzIHJlcXVpcmVzIHJlcm9vdCAnICtcbiAgICAgICdyZXNhbXBsZUZsdWlkIHJlc2V0QUUgcmVzZXRQZnhUb1BvbHlDYW1lcmEgcmVzZXRUb29sIHJlc29sdXRpb25Ob2RlIHJldGFyZ2V0ICcgK1xuICAgICAgJ3JldmVyc2VDdXJ2ZSByZXZlcnNlU3VyZmFjZSByZXZvbHZlIHJnYl90b19oc3YgcmlnaWRCb2R5IHJpZ2lkU29sdmVyIHJvbGwgcm9sbEN0eCAnICtcbiAgICAgICdyb290T2Ygcm90IHJvdGF0ZSByb3RhdGlvbkludGVycG9sYXRpb24gcm91bmRDb25zdGFudFJhZGl1cyByb3dDb2x1bW5MYXlvdXQgcm93TGF5b3V0ICcgK1xuICAgICAgJ3J1blRpbWVDb21tYW5kIHJ1bnVwIHNhbXBsZUltYWdlIHNhdmVBbGxTaGVsdmVzIHNhdmVBdHRyUHJlc2V0IHNhdmVGbHVpZCBzYXZlSW1hZ2UgJyArXG4gICAgICAnc2F2ZUluaXRpYWxTdGF0ZSBzYXZlTWVudSBzYXZlUHJlZk9iamVjdHMgc2F2ZVByZWZzIHNhdmVTaGVsZiBzYXZlVG9vbFNldHRpbmdzIHNjYWxlICcgK1xuICAgICAgJ3NjYWxlQnJ1c2hCcmlnaHRuZXNzIHNjYWxlQ29tcG9uZW50cyBzY2FsZUNvbnN0cmFpbnQgc2NhbGVLZXkgc2NhbGVLZXlDdHggc2NlbmVFZGl0b3IgJyArXG4gICAgICAnc2NlbmVVSVJlcGxhY2VtZW50IHNjbWggc2NyaXB0Q3R4IHNjcmlwdEVkaXRvckluZm8gc2NyaXB0Sm9iIHNjcmlwdE5vZGUgc2NyaXB0VGFibGUgJyArXG4gICAgICAnc2NyaXB0VG9TaGVsZiBzY3JpcHRlZFBhbmVsIHNjcmlwdGVkUGFuZWxUeXBlIHNjcm9sbEZpZWxkIHNjcm9sbExheW91dCBzY3VscHQgJyArXG4gICAgICAnc2VhcmNoUGF0aEFycmF5IHNlZWQgc2VsTG9hZFNldHRpbmdzIHNlbGVjdCBzZWxlY3RDb250ZXh0IHNlbGVjdEN1cnZlQ1Ygc2VsZWN0S2V5ICcgK1xuICAgICAgJ3NlbGVjdEtleUN0eCBzZWxlY3RLZXlmcmFtZVJlZ2lvbkN0eCBzZWxlY3RNb2RlIHNlbGVjdFByZWYgc2VsZWN0UHJpb3JpdHkgc2VsZWN0VHlwZSAnICtcbiAgICAgICdzZWxlY3RlZE5vZGVzIHNlbGVjdGlvbkNvbm5lY3Rpb24gc2VwYXJhdG9yIHNldEF0dHIgc2V0QXR0ckVudW1SZXNvdXJjZSAnICtcbiAgICAgICdzZXRBdHRyTWFwcGluZyBzZXRBdHRyTmljZU5hbWVSZXNvdXJjZSBzZXRDb25zdHJhaW50UmVzdFBvc2l0aW9uICcgK1xuICAgICAgJ3NldERlZmF1bHRTaGFkaW5nR3JvdXAgc2V0RHJpdmVuS2V5ZnJhbWUgc2V0RHluYW1pYyBzZXRFZGl0Q3R4IHNldEVkaXRvciBzZXRGbHVpZEF0dHIgJyArXG4gICAgICAnc2V0Rm9jdXMgc2V0SW5maW5pdHkgc2V0SW5wdXREZXZpY2VNYXBwaW5nIHNldEtleUN0eCBzZXRLZXlQYXRoIHNldEtleWZyYW1lICcgK1xuICAgICAgJ3NldEtleWZyYW1lQmxlbmRzaGFwZVRhcmdldFd0cyBzZXRNZW51TW9kZSBzZXROb2RlTmljZU5hbWVSZXNvdXJjZSBzZXROb2RlVHlwZUZsYWcgJyArXG4gICAgICAnc2V0UGFyZW50IHNldFBhcnRpY2xlQXR0ciBzZXRQZnhUb1BvbHlDYW1lcmEgc2V0UGx1Z2luUmVzb3VyY2Ugc2V0UHJvamVjdCAnICtcbiAgICAgICdzZXRTdGFtcERlbnNpdHkgc2V0U3RhcnR1cE1lc3NhZ2Ugc2V0U3RhdGUgc2V0VG9vbFRvIHNldFVJVGVtcGxhdGUgc2V0WGZvcm1NYW5pcCBzZXRzICcgK1xuICAgICAgJ3NoYWRpbmdDb25uZWN0aW9uIHNoYWRpbmdHZW9tZXRyeVJlbEN0eCBzaGFkaW5nTGlnaHRSZWxDdHggc2hhZGluZ05ldHdvcmtDb21wYXJlICcgK1xuICAgICAgJ3NoYWRpbmdOb2RlIHNoYXBlQ29tcGFyZSBzaGVsZkJ1dHRvbiBzaGVsZkxheW91dCBzaGVsZlRhYkxheW91dCBzaGVsbEZpZWxkICcgK1xuICAgICAgJ3Nob3J0TmFtZU9mIHNob3dIZWxwIHNob3dIaWRkZW4gc2hvd01hbmlwQ3R4IHNob3dTZWxlY3Rpb25JblRpdGxlICcgK1xuICAgICAgJ3Nob3dTaGFkaW5nR3JvdXBBdHRyRWRpdG9yIHNob3dXaW5kb3cgc2lnbiBzaW1wbGlmeSBzaW4gc2luZ2xlUHJvZmlsZUJpcmFpbFN1cmZhY2UgJyArXG4gICAgICAnc2l6ZSBzaXplQnl0ZXMgc2tpbkNsdXN0ZXIgc2tpblBlcmNlbnQgc21vb3RoQ3VydmUgc21vb3RoVGFuZ2VudFN1cmZhY2Ugc21vb3Roc3RlcCAnICtcbiAgICAgICdzbmFwMnRvMiBzbmFwS2V5IHNuYXBNb2RlIHNuYXBUb2dldGhlckN0eCBzbmFwc2hvdCBzb2Z0IHNvZnRNb2Qgc29mdE1vZEN0eCBzb3J0IHNvdW5kICcgK1xuICAgICAgJ3NvdW5kQ29udHJvbCBzb3VyY2Ugc3BhY2VMb2NhdG9yIHNwaGVyZSBzcGhyYW5kIHNwb3RMaWdodCBzcG90TGlnaHRQcmV2aWV3UG9ydCAnICtcbiAgICAgICdzcHJlYWRTaGVldEVkaXRvciBzcHJpbmcgc3FydCBzcXVhcmVTdXJmYWNlIHNydENvbnRleHQgc3RhY2tUcmFjZSBzdGFydFN0cmluZyAnICtcbiAgICAgICdzdGFydHNXaXRoIHN0aXRjaEFuZEV4cGxvZGVTaGVsbCBzdGl0Y2hTdXJmYWNlIHN0aXRjaFN1cmZhY2VQb2ludHMgc3RyY21wICcgK1xuICAgICAgJ3N0cmluZ0FycmF5Q2F0ZW5hdGUgc3RyaW5nQXJyYXlDb250YWlucyBzdHJpbmdBcnJheUNvdW50IHN0cmluZ0FycmF5SW5zZXJ0QXRJbmRleCAnICtcbiAgICAgICdzdHJpbmdBcnJheUludGVyc2VjdG9yIHN0cmluZ0FycmF5UmVtb3ZlIHN0cmluZ0FycmF5UmVtb3ZlQXRJbmRleCAnICtcbiAgICAgICdzdHJpbmdBcnJheVJlbW92ZUR1cGxpY2F0ZXMgc3RyaW5nQXJyYXlSZW1vdmVFeGFjdCBzdHJpbmdBcnJheVRvU3RyaW5nICcgK1xuICAgICAgJ3N0cmluZ1RvU3RyaW5nQXJyYXkgc3RyaXAgc3RyaXBQcmVmaXhGcm9tTmFtZSBzdHJva2Ugc3ViZEF1dG9Qcm9qZWN0aW9uICcgK1xuICAgICAgJ3N1YmRDbGVhblRvcG9sb2d5IHN1YmRDb2xsYXBzZSBzdWJkRHVwbGljYXRlQW5kQ29ubmVjdCBzdWJkRWRpdFVWICcgK1xuICAgICAgJ3N1YmRMaXN0Q29tcG9uZW50Q29udmVyc2lvbiBzdWJkTWFwQ3V0IHN1YmRNYXBTZXdNb3ZlIHN1YmRNYXRjaFRvcG9sb2d5IHN1YmRNaXJyb3IgJyArXG4gICAgICAnc3ViZFRvQmxpbmQgc3ViZFRvUG9seSBzdWJkVHJhbnNmZXJVVnNUb0NhY2hlIHN1YmRpdiBzdWJkaXZDcmVhc2UgJyArXG4gICAgICAnc3ViZGl2RGlzcGxheVNtb290aG5lc3Mgc3Vic3RpdHV0ZSBzdWJzdGl0dXRlQWxsU3RyaW5nIHN1YnN0aXR1dGVHZW9tZXRyeSBzdWJzdHJpbmcgJyArXG4gICAgICAnc3VyZmFjZSBzdXJmYWNlU2FtcGxlciBzdXJmYWNlU2hhZGVyTGlzdCBzd2F0Y2hEaXNwbGF5UG9ydCBzd2l0Y2hUYWJsZSBzeW1ib2xCdXR0b24gJyArXG4gICAgICAnc3ltYm9sQ2hlY2tCb3ggc3lzRmlsZSBzeXN0ZW0gdGFiTGF5b3V0IHRhbiB0YW5nZW50Q29uc3RyYWludCB0ZXhMYXR0aWNlRGVmb3JtQ29udGV4dCAnICtcbiAgICAgICd0ZXhNYW5pcENvbnRleHQgdGV4TW92ZUNvbnRleHQgdGV4TW92ZVVWU2hlbGxDb250ZXh0IHRleFJvdGF0ZUNvbnRleHQgdGV4U2NhbGVDb250ZXh0ICcgK1xuICAgICAgJ3RleFNlbGVjdENvbnRleHQgdGV4U2VsZWN0U2hvcnRlc3RQYXRoQ3R4IHRleFNtdWRnZVVWQ29udGV4dCB0ZXhXaW5Ub29sQ3R4IHRleHQgJyArXG4gICAgICAndGV4dEN1cnZlcyB0ZXh0RmllbGQgdGV4dEZpZWxkQnV0dG9uR3JwIHRleHRGaWVsZEdycCB0ZXh0TWFuaXAgdGV4dFNjcm9sbExpc3QgJyArXG4gICAgICAndGV4dFRvU2hlbGYgdGV4dHVyZURpc3BsYWNlUGxhbmUgdGV4dHVyZUhhaXJDb2xvciB0ZXh0dXJlUGxhY2VtZW50Q29udGV4dCAnICtcbiAgICAgICd0ZXh0dXJlV2luZG93IHRocmVhZENvdW50IHRocmVlUG9pbnRBcmNDdHggdGltZUNvbnRyb2wgdGltZVBvcnQgdGltZXJYIHRvTmF0aXZlUGF0aCAnICtcbiAgICAgICd0b2dnbGUgdG9nZ2xlQXhpcyB0b2dnbGVXaW5kb3dWaXNpYmlsaXR5IHRva2VuaXplIHRva2VuaXplTGlzdCB0b2xlcmFuY2UgdG9sb3dlciAnICtcbiAgICAgICd0b29sQnV0dG9uIHRvb2xDb2xsZWN0aW9uIHRvb2xEcm9wcGVkIHRvb2xIYXNPcHRpb25zIHRvb2xQcm9wZXJ0eVdpbmRvdyB0b3J1cyB0b3VwcGVyICcgK1xuICAgICAgJ3RyYWNlIHRyYWNrIHRyYWNrQ3R4IHRyYW5zZmVyQXR0cmlidXRlcyB0cmFuc2Zvcm1Db21wYXJlIHRyYW5zZm9ybUxpbWl0cyB0cmFuc2xhdG9yICcgK1xuICAgICAgJ3RyaW0gdHJ1bmMgdHJ1bmNhdGVGbHVpZENhY2hlIHRydW5jYXRlSGFpckNhY2hlIHR1bWJsZSB0dW1ibGVDdHggdHVyYnVsZW5jZSAnICtcbiAgICAgICd0d29Qb2ludEFyY0N0eCB1aVJlcyB1aVRlbXBsYXRlIHVuYXNzaWduSW5wdXREZXZpY2UgdW5kbyB1bmRvSW5mbyB1bmdyb3VwIHVuaWZvcm0gdW5pdCAnICtcbiAgICAgICd1bmxvYWRQbHVnaW4gdW50YW5nbGVVViB1bnRpdGxlZEZpbGVOYW1lIHVudHJpbSB1cEF4aXMgdXBkYXRlQUUgdXNlckN0eCB1dkxpbmsgJyArXG4gICAgICAndXZTbmFwc2hvdCB2YWxpZGF0ZVNoZWxmTmFtZSB2ZWN0b3JpemUgdmlldzJkVG9vbEN0eCB2aWV3Q2FtZXJhIHZpZXdDbGlwUGxhbmUgJyArXG4gICAgICAndmlld0ZpdCB2aWV3SGVhZE9uIHZpZXdMb29rQXQgdmlld01hbmlwIHZpZXdQbGFjZSB2aWV3U2V0IHZpc29yIHZvbHVtZUF4aXMgdm9ydGV4ICcgK1xuICAgICAgJ3dhaXRDdXJzb3Igd2FybmluZyB3ZWJCcm93c2VyIHdlYkJyb3dzZXJQcmVmcyB3aGF0SXMgd2luZG93IHdpbmRvd1ByZWYgd2lyZSAnICtcbiAgICAgICd3aXJlQ29udGV4dCB3b3Jrc3BhY2Ugd3JpbmtsZSB3cmlua2xlQ29udGV4dCB3cml0ZVRha2UgeGJtTGFuZ1BhdGhMaXN0IHhmb3JtJyxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ2AnLCBlbmQ6ICdgJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICB9LFxuICAgICAgeyAvLyBlYXRzIHZhcmlhYmxlc1xuICAgICAgICBiZWdpbjogJ1tcXFxcJFxcXFwlXFxcXEBdKFxcXFxeXFxcXHdcXFxcYnwjXFxcXHcrfFteXFxcXHNcXFxcd3tdfHtcXFxcdyt9fFxcXFx3KyknXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ21vZHVsZSB1c2VfbW9kdWxlIGltcG9ydF9tb2R1bGUgaW5jbHVkZV9tb2R1bGUgZW5kX21vZHVsZSBpbml0aWFsaXNlICcgK1xuICAgICAgJ211dGFibGUgaW5pdGlhbGl6ZSBmaW5hbGl6ZSBmaW5hbGlzZSBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24gcHJlZCAnICtcbiAgICAgICdtb2RlIGZ1bmMgdHlwZSBpbnN0IHNvbHZlciBhbnlfcHJlZCBhbnlfZnVuYyBpcyBzZW1pZGV0IGRldCBub25kZXQgJyArXG4gICAgICAnbXVsdGkgZXJyb25lb3VzIGZhaWx1cmUgY2Nfbm9uZGV0IGNjX211bHRpIHR5cGVjbGFzcyBpbnN0YW5jZSB3aGVyZSAnICtcbiAgICAgICdwcmFnbWEgcHJvbWlzZSBleHRlcm5hbCB0cmFjZSBhdG9taWMgb3JfZWxzZSByZXF1aXJlX2NvbXBsZXRlX3N3aXRjaCAnICtcbiAgICAgICdyZXF1aXJlX2RldCByZXF1aXJlX3NlbWlkZXQgcmVxdWlyZV9tdWx0aSByZXF1aXJlX25vbmRldCAnICtcbiAgICAgICdyZXF1aXJlX2NjX211bHRpIHJlcXVpcmVfY2Nfbm9uZGV0IHJlcXVpcmVfZXJyb25lb3VzIHJlcXVpcmVfZmFpbHVyZScsXG4gICAgbWV0YTpcbiAgICAgIC8vIHByYWdtYVxuICAgICAgJ2lubGluZSBub19pbmxpbmUgdHlwZV9zcGVjIHNvdXJjZV9maWxlIGZhY3RfdGFibGUgb2Jzb2xldGUgbWVtbyAnICtcbiAgICAgICdsb29wX2NoZWNrIG1pbmltYWxfbW9kZWwgdGVybWluYXRlcyBkb2VzX25vdF90ZXJtaW5hdGUgJyArXG4gICAgICAnY2hlY2tfdGVybWluYXRpb24gcHJvbWlzZV9lcXVpdmFsZW50X2NsYXVzZXMgJyArXG4gICAgICAvLyBwcmVwcm9jZXNzb3JcbiAgICAgICdmb3JlaWduX3Byb2MgZm9yZWlnbl9kZWNsIGZvcmVpZ25fY29kZSBmb3JlaWduX3R5cGUgJyArXG4gICAgICAnZm9yZWlnbl9pbXBvcnRfbW9kdWxlIGZvcmVpZ25fZXhwb3J0X2VudW0gZm9yZWlnbl9leHBvcnQgJyArXG4gICAgICAnZm9yZWlnbl9lbnVtIG1heV9jYWxsX21lcmN1cnkgd2lsbF9ub3RfY2FsbF9tZXJjdXJ5IHRocmVhZF9zYWZlICcgK1xuICAgICAgJ25vdF90aHJlYWRfc2FmZSBtYXliZV90aHJlYWRfc2FmZSBwcm9taXNlX3B1cmUgcHJvbWlzZV9zZW1pcHVyZSAnICtcbiAgICAgICd0YWJsZWRfZm9yX2lvIGxvY2FsIHVudHJhaWxlZCB0cmFpbGVkIGF0dGFjaF90b19pb19zdGF0ZSAnICtcbiAgICAgICdjYW5fcGFzc19hc19tZXJjdXJ5X3R5cGUgc3RhYmxlIHdpbGxfbm90X3Rocm93X2V4Y2VwdGlvbiAnICtcbiAgICAgICdtYXlfbW9kaWZ5X3RyYWlsIHdpbGxfbm90X21vZGlmeV90cmFpbCBtYXlfZHVwbGljYXRlICcgK1xuICAgICAgJ21heV9ub3RfZHVwbGljYXRlIGFmZmVjdHNfbGl2ZW5lc3MgZG9lc19ub3RfYWZmZWN0X2xpdmVuZXNzICcgK1xuICAgICAgJ2RvZXNudF9hZmZlY3RfbGl2ZW5lc3Mgbm9fc2hhcmluZyB1bmtub3duX3NoYXJpbmcgc2hhcmluZycsXG4gICAgYnVpbHRfaW46XG4gICAgICAnc29tZSBhbGwgbm90IGlmIHRoZW4gZWxzZSB0cnVlIGZhaWwgZmFsc2UgdHJ5IGNhdGNoIGNhdGNoX2FueSAnICtcbiAgICAgICdzZW1pZGV0X3RydWUgc2VtaWRldF9mYWxzZSBzZW1pZGV0X2ZhaWwgaW1wdXJlX3RydWUgaW1wdXJlIHNlbWlwdXJlJ1xuICB9O1xuXG4gIHZhciBDT01NRU5UID0gaGxqcy5DT01NRU5UKCclJywgJyQnKTtcblxuICB2YXIgTlVNQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiBcIjAnLlxcXFx8MFtib3hdWzAtOWEtZkEtRl0qXCJcbiAgfTtcblxuICB2YXIgQVRPTSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtyZWxldmFuY2U6IDB9KTtcbiAgdmFyIFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7cmVsZXZhbmNlOiAwfSk7XG4gIHZhciBTVFJJTkdfRk1UID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFxcXFxcW2FiZm5ydHZdXFxcXHxcXFxcXFxcXHhbMC05YS1mQS1GXSpcXFxcXFxcXFxcXFx8JVstKyMgKi4wLTldKltkaW94WHVjc2ZlRWdHcF0nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBTVFJJTkcuY29udGFpbnMucHVzaChTVFJJTkdfRk1UKTtcblxuICB2YXIgSU1QTElDQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46ICc8PT4nfSxcbiAgICAgIHtiZWdpbjogJzw9JywgcmVsZXZhbmNlOiAwfSxcbiAgICAgIHtiZWdpbjogJz0+JywgcmVsZXZhbmNlOiAwfSxcbiAgICAgIHtiZWdpbjogJy9cXFxcXFxcXCd9LFxuICAgICAge2JlZ2luOiAnXFxcXFxcXFwvJ31cbiAgICBdXG4gIH07XG5cbiAgdmFyIEhFQURfQk9EWV9DT05KVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogJzotXFxcXHwtLT4nfSxcbiAgICAgIHtiZWdpbjogJz0nLCByZWxldmFuY2U6IDB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydtJywgJ21vbyddLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgSU1QTElDQVRJT04sXG4gICAgICBIRUFEX0JPRFlfQ09OSlVOQ1RJT04sXG4gICAgICBDT01NRU5ULFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIE5VTUNPREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgQVRPTSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtiZWdpbjogLzotL30gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICAgIC8vbG9jYWwgbGFiZWxzOiAlP1tGQl0/W0FUXT9cXGR7MSwyfVxcdytcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGFsaWFzZXM6IFsnbWlwcyddLFxuICAgIGxleGVtZXM6ICdcXFxcLj8nICsgaGxqcy5JREVOVF9SRSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbWV0YTpcbiAgICAgICAgLy9HTlUgcHJlcHJvY3NcbiAgICAgICAgJy4yYnl0ZSAuNGJ5dGUgLmFsaWduIC5hc2NpaSAuYXNjaXogLmJhbGlnbiAuYnl0ZSAuY29kZSAuZGF0YSAuZWxzZSAuZW5kIC5lbmRpZiAuZW5kbSAuZW5kciAuZXF1IC5lcnIgLmV4aXRtIC5leHRlcm4gLmdsb2JhbCAuaHdvcmQgLmlmIC5pZmRlZiAuaWZuZGVmIC5pbmNsdWRlIC5pcnAgLmxvbmcgLm1hY3JvIC5yZXB0IC5yZXEgLnNlY3Rpb24gLnNldCAuc2tpcCAuc3BhY2UgLnRleHQgLndvcmQgLmx0b3JnICcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJyQwICQxICQyICQzICQ0ICQ1ICQ2ICQ3ICQ4ICQ5ICQxMCAkMTEgJDEyICQxMyAkMTQgJDE1ICcgKyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICAnJDE2ICQxNyAkMTggJDE5ICQyMCAkMjEgJDIyICQyMyAkMjQgJDI1ICQyNiAkMjcgJDI4ICQyOSAkMzAgJDMxICcgKyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICAnemVybyBhdCB2MCB2MSBhMCBhMSBhMiBhMyBhNCBhNSBhNiBhNyAnICsgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICd0MCB0MSB0MiB0MyB0NCB0NSB0NiB0NyB0OCB0OSBzMCBzMSBzMiBzMyBzNCBzNSBzNiBzNyBzOCAnICsgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICdrMCBrMSBncCBzcCBmcCByYSAnICsgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICckZjAgJGYxICRmMiAkZjIgJGY0ICRmNSAkZjYgJGY3ICRmOCAkZjkgJGYxMCAkZjExICRmMTIgJGYxMyAkZjE0ICRmMTUgJyArIC8vIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyc1xuICAgICAgICAnJGYxNiAkZjE3ICRmMTggJGYxOSAkZjIwICRmMjEgJGYyMiAkZjIzICRmMjQgJGYyNSAkZjI2ICRmMjcgJGYyOCAkZjI5ICRmMzAgJGYzMSAnICsgLy8gZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzXG4gICAgICAgICdDb250ZXh0IFJhbmRvbSBFbnRyeUxvMCBFbnRyeUxvMSBDb250ZXh0IFBhZ2VNYXNrIFdpcmVkIEVudHJ5SGkgJyArIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICdIV1JFbmEgQmFkVkFkZHIgQ291bnQgQ29tcGFyZSBTUiBJbnRDdGwgU1JTQ3RsIFNSU01hcCBDYXVzZSBFUEMgUFJJZCAnICsgLy8gQ29wcm9jZXNzb3IgMCByZWdpc3RlcnNcbiAgICAgICAgJ0VCYXNlIENvbmZpZyBDb25maWcxIENvbmZpZzIgQ29uZmlnMyBMTEFkZHIgRGVidWcgREVQQyBERVNBVkUgQ2FjaGVFcnIgJyArIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICdFQ0MgRXJyb3JFUEMgVGFnTG8gRGF0YUxvIFRhZ0hpIERhdGFIaSBXYXRjaExvIFdhdGNoSGkgUGVyZkN0bCBQZXJmQ250ICcgLy8gQ29wcm9jZXNzb3IgMCByZWdpc3RlcnNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKCcrICAgICAvL21uZW1vbmljc1xuICAgICAgICAgICAgLy8gMzItYml0IGludGVnZXIgaW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgICAnYWRkaT91P3xhbmRpP3xiKGFsKT98YmVxbD98YmdleihhbCk/bD98Ymd0emw/fGJsZXpsP3xibHR6KGFsKT9sP3wnICtcbiAgICAgICAgICAgICdibmVsP3xjbFtvel18ZGl2dT98ZXh0fGluc3xqKGFsKT98amFscihcXC5oYik/fGpyKFxcLmhiKT98bGJ1P3xsaHU/fCcgK1xuICAgICAgICAgICAgJ2xsfGx1aXxsd1tscl0/fG1hZGR1P3xtZmhpfG1mbG98bW92bnxtb3Z6fG1vdmV8bXN1YnU/fG10aGl8bXRsb3xtdWx8JyArXG4gICAgICAgICAgICAnbXVsdHU/fG5vcHxub3J8b3JpP3xyb3Rydj98c2J8c2N8c2VbYmhdfHNofHNsbHY/fHNsdGk/dT98c3Jhdj98JyArXG4gICAgICAgICAgICAnc3Jsdj98c3VidT98c3dbbHJdP3x4b3JpP3x3c2JofCcgK1xuICAgICAgICAgICAgLy8gZmxvYXRpbmctcG9pbnQgaW5zdHJ1Y3Rpb25zXG4gICAgICAgICAgICAnYWJzXFwuW3NkXXxhZGRcXC5bc2RdfGFsbnYucHN8YmMxW2Z0XWw/fCcgK1xuICAgICAgICAgICAgJ2NcXC4ocz9mfHVufHU/ZXF8W291XWx0fFtvdV1sZXxuZ2xlP3xzZXF8bFtldF18bmdbZXRdKVxcLltzZF18JyArXG4gICAgICAgICAgICAnKGNlaWx8Zmxvb3J8cm91bmR8dHJ1bmMpXFwuW2x3XVxcLltzZF18Y2ZjMXxjdnRcXC5kXFwuW2xzd118JyArXG4gICAgICAgICAgICAnY3Z0XFwubFxcLltkc3ddfGN2dFxcLnBzXFwuc3xjdnRcXC5zXFwuW2Rsd118Y3Z0XFwuc1xcLnBbbHVdfGN2dFxcLndcXC5bZGxzXXwnICtcbiAgICAgICAgICAgICdkaXZcXC5bZHNdfGxkeD9jMXxsdXhjMXxsd3g/YzF8bWFkZFxcLltzZF18bWZjMXxtb3ZbZm50el0/XFwuW2RzXXwnICtcbiAgICAgICAgICAgICdtc3ViXFwuW3NkXXxtdGg/YzF8bXVsXFwuW2RzXXxuZWdcXC5bZHNdfG5tYWRkXFwuW2RzXXxubXN1YlxcLltkc118JyArXG4gICAgICAgICAgICAncFtsdV1bbHVdXFwucHN8cmVjaXBcXC5mbXR8cj9zcXJ0XFwuW2RzXXxzZHg/YzF8c3ViXFwuW2RzXXxzdXhjMXwnICtcbiAgICAgICAgICAgICdzd3g/YzF8JyArXG4gICAgICAgICAgICAvLyBzeXN0ZW0gY29udHJvbCBpbnN0cnVjdGlvbnNcbiAgICAgICAgICAgICdicmVha3xjYWNoZXxkP2VyZXR8W2RlXWl8ZWhifG1mYzB8bXRjMHxwYXVzZXxwcmVmeD98cmRod3J8JyArXG4gICAgICAgICAgICAncmRwZ3ByfHNkYmJwfHNzbm9wfHN5bmNpP3xzeXNjYWxsfHRlcWk/fHRnZWk/dT98dGxiKHB8cnx3W2lyXSl8JyArXG4gICAgICAgICAgICAndGx0aT91P3x0bmVpP3x3YWl0fHdycGdwcicrXG4gICAgICAgICcpJyxcbiAgICAgICAgZW5kOiAnXFxcXHMnXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdbOyNdJywgJyQnKSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1teXFxcXFxcXFxdXFwnJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXHwnLCBlbmQ6ICdcXFxcfCcsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtiZWdpbjogJzB4WzAtOWEtZl0rJ30sIC8vaGV4XG4gICAgICAgICAgICB7YmVnaW46ICdcXFxcYi0/XFxcXGQrJ30gICAgICAgICAgIC8vYmFyZSBudW1iZXJcbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge2JlZ2luOiAnXlxcXFxzKlthLXpfXFxcXC5cXFxcJF1bYS16MC05X1xcXFwuXFxcXCRdKzonfSwgLy9HTlUgTUlQUyBzeW50YXhcbiAgICAgICAgICAgIHtiZWdpbjogJ15cXFxccypbMC05XSs6J30sIC8vIG51bWJlcmVkIGxvY2FsIGxhYmVsc1xuICAgICAgICAgICAge2JlZ2luOiAnWzAtOV0rW2JmXScgfSAgLy8gbnVtYmVyIGxvY2FsIGxhYmVsIHJlZmVyZW5jZSAoYmFja3dhcmRzLCBmb3J3YXJkcylcbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICBpbGxlZ2FsOiAnXFwvJ1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBrZXl3b3JkczpcbiAgICAgICdlbnZpcm9uIHZvY2FidWxhcmllcyBub3RhdGlvbnMgY29uc3RydWN0b3JzIGRlZmluaXRpb25zICcgK1xuICAgICAgJ3JlZ2lzdHJhdGlvbnMgdGhlb3JlbXMgc2NoZW1lcyByZXF1aXJlbWVudHMgYmVnaW4gZW5kIGRlZmluaXRpb24gJyArXG4gICAgICAncmVnaXN0cmF0aW9uIGNsdXN0ZXIgZXhpc3RlbmNlIHByZWQgZnVuYyBkZWZwcmVkIGRlZmZ1bmMgdGhlb3JlbSAnICtcbiAgICAgICdwcm9vZiBsZXQgdGFrZSBhc3N1bWUgdGhlbiB0aHVzIGhlbmNlIGV4IGZvciBzdCBob2xkcyBjb25zaWRlciAnICtcbiAgICAgICdyZWNvbnNpZGVyIHN1Y2ggdGhhdCBhbmQgaW4gcHJvdmlkZWQgb2YgYXMgZnJvbSBiZSBiZWluZyBieSBtZWFucyAnICtcbiAgICAgICdlcXVhbHMgaW1wbGllcyBpZmYgcmVkZWZpbmUgZGVmaW5lIG5vdyBub3Qgb3IgYXR0ciBpcyBtb2RlICcgK1xuICAgICAgJ3N1cHBvc2UgcGVyIGNhc2VzIHNldCB0aGVzaXMgY29udHJhZGljdGlvbiBzY2hlbWUgcmVzZXJ2ZSBzdHJ1Y3QgJyArXG4gICAgICAnY29ycmVjdG5lc3MgY29tcGF0aWJpbGl0eSBjb2hlcmVuY2Ugc3ltbWV0cnkgYXNzeW1ldHJ5ICcgK1xuICAgICAgJ3JlZmxleGl2aXR5IGlycmVmbGV4aXZpdHkgY29ubmVjdGVkbmVzcyB1bmlxdWVuZXNzIGNvbW11dGF0aXZpdHkgJyArXG4gICAgICAnaWRlbXBvdGVuY2UgaW52b2x1dGl2ZW5lc3MgcHJvamVjdGl2aXR5JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc6OicsICckJylcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgUEVSTF9LRVlXT1JEUyA9ICdnZXRwd2VudCBnZXRzZXJ2ZW50IHF1b3RlbWV0YSBtc2dyY3Ygc2NhbGFyIGtpbGwgZGJtY2xvc2UgdW5kZWYgbGMgJyArXG4gICAgJ21hIHN5c3dyaXRlIHRyIHNlbmQgdW1hc2sgc3lzb3BlbiBzaG13cml0ZSB2ZWMgcXggdXRpbWUgbG9jYWwgb2N0IHNlbWN0bCBsb2NhbHRpbWUgJyArXG4gICAgJ3JlYWRwaXBlIGRvIHJldHVybiBmb3JtYXQgcmVhZCBzcHJpbnRmIGRibW9wZW4gcG9wIGdldHBncnAgbm90IGdldHB3bmFtIHJld2luZGRpciBxcScgK1xuICAgICdmaWxlbm8gcXcgZW5kcHJvdG9lbnQgd2FpdCBzZXRob3N0ZW50IGJsZXNzIHN8MCBvcGVuZGlyIGNvbnRpbnVlIGVhY2ggc2xlZXAgZW5kZ3JlbnQgJyArXG4gICAgJ3NodXRkb3duIGR1bXAgY2hvbXAgY29ubmVjdCBnZXRzb2NrbmFtZSBkaWUgc29ja2V0cGFpciBjbG9zZSBmbG9jayBleGlzdHMgaW5kZXggc2htZ2V0JyArXG4gICAgJ3N1YiBmb3IgZW5kcHdlbnQgcmVkbyBsc3RhdCBtc2djdGwgc2V0cGdycCBhYnMgZXhpdCBzZWxlY3QgcHJpbnQgcmVmIGdldGhvc3RieWFkZHIgJyArXG4gICAgJ3Vuc2hpZnQgZmNudGwgc3lzY2FsbCBnb3RvIGdldG5ldGJ5YWRkciBqb2luIGdtdGltZSBzeW1saW5rIHNlbWdldCBzcGxpY2UgeHwwICcgK1xuICAgICdnZXRwZWVybmFtZSByZWN2IGxvZyBzZXRzb2Nrb3B0IGNvcyBsYXN0IHJldmVyc2UgZ2V0aG9zdGJ5bmFtZSBnZXRncm5hbSBzdHVkeSBmb3JtbGluZSAnICtcbiAgICAnZW5kaG9zdGVudCB0aW1lcyBjaG9wIGxlbmd0aCBnZXRob3N0ZW50IGdldG5ldGVudCBwYWNrIGdldHByb3RvZW50IGdldHNlcnZieW5hbWUgcmFuZCAnICtcbiAgICAnbWtkaXIgcG9zIGNobW9kIHl8MCBzdWJzdHIgZW5kbmV0ZW50IHByaW50ZiBuZXh0IG9wZW4gbXNnc25kIHJlYWRkaXIgdXNlIHVubGluayAnICtcbiAgICAnZ2V0c29ja29wdCBnZXRwcmlvcml0eSByaW5kZXggd2FudGFycmF5IGhleCBzeXN0ZW0gZ2V0c2VydmJ5cG9ydCBlbmRzZXJ2ZW50IGludCBjaHIgJyArXG4gICAgJ3VudGllIHJtZGlyIHByb3RvdHlwZSB0ZWxsIGxpc3RlbiBmb3JrIHNobXJlYWQgdWNmaXJzdCBzZXRwcm90b2VudCBlbHNlIHN5c3NlZWsgbGluayAnICtcbiAgICAnZ2V0Z3JnaWQgc2htY3RsIHdhaXRwaWQgdW5wYWNrIGdldG5ldGJ5bmFtZSByZXNldCBjaGRpciBncmVwIHNwbGl0IHJlcXVpcmUgY2FsbGVyICcgK1xuICAgICdsY2ZpcnN0IHVudGlsIHdhcm4gd2hpbGUgdmFsdWVzIHNoaWZ0IHRlbGxkaXIgZ2V0cHd1aWQgbXkgZ2V0cHJvdG9ieW51bWJlciBkZWxldGUgYW5kICcgK1xuICAgICdzb3J0IHVjIGRlZmluZWQgc3JhbmQgYWNjZXB0IHBhY2thZ2Ugc2Vla2RpciBnZXRwcm90b2J5bmFtZSBzZW1vcCBvdXIgcmVuYW1lIHNlZWsgaWYgcXwwICcgK1xuICAgICdjaHJvb3Qgc3lzcmVhZCBzZXRwd2VudCBubyBjcnlwdCBnZXRjIGNob3duIHNxcnQgd3JpdGUgc2V0bmV0ZW50IHNldHByaW9yaXR5IGZvcmVhY2ggJyArXG4gICAgJ3RpZSBzaW4gbXNnZ2V0IG1hcCBzdGF0IGdldGxvZ2luIHVubGVzcyBlbHNpZiB0cnVuY2F0ZSBleGVjIGtleXMgZ2xvYiB0aWVkIGNsb3NlZGlyJyArXG4gICAgJ2lvY3RsIHNvY2tldCByZWFkbGluayBldmFsIHhvciByZWFkbGluZSBiaW5tb2RlIHNldHNlcnZlbnQgZW9mIG9yZCBiaW5kIGFsYXJtIHBpcGUgJyArXG4gICAgJ2F0YW4yIGdldGdyZW50IGV4cCB0aW1lIHB1c2ggc2V0Z3JlbnQgZ3QgbHQgb3IgbmUgbXwwIGJyZWFrIGdpdmVuIHNheSBzdGF0ZSB3aGVuJztcbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1skQF1cXFxceycsIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogUEVSTF9LRVlXT1JEU1xuICB9O1xuICB2YXIgTUVUSE9EID0ge1xuICAgIGJlZ2luOiAnLT57JywgZW5kOiAnfSdcbiAgICAvLyBjb250YWlucyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIHZhciBWQVIgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogL1xcJFxcZC99LFxuICAgICAge2JlZ2luOiAvW1xcJCVAXShcXF5cXHdcXGJ8I1xcdysoOjpcXHcrKSp8e1xcdyt9fFxcdysoOjpcXHcqKSopL30sXG4gICAgICB7YmVnaW46IC9bXFwkJUBdW15cXHNcXHd7XS8sIHJlbGV2YW5jZTogMH1cbiAgICBdXG4gIH07XG4gIHZhciBTVFJJTkdfQ09OVEFJTlMgPSBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVCwgVkFSXTtcbiAgdmFyIFBFUkxfREVGQVVMVF9DT05UQUlOUyA9IFtcbiAgICBWQVIsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnXlxcXFw9XFxcXHcnLFxuICAgICAgJ1xcXFw9Y3V0JyxcbiAgICAgIHtcbiAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWVcbiAgICAgIH1cbiAgICApLFxuICAgIE1FVEhPRCxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgY29udGFpbnM6IFNUUklOR19DT05UQUlOUyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXFsnLCBlbmQ6ICdcXFxcXScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXHsnLCBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXHwnLCBlbmQ6ICdcXFxcfCcsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXDwnLCBlbmQ6ICdcXFxcPicsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3F3XFxcXHMrcScsIGVuZDogJ3EnLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdcIicsIGVuZDogJ1wiJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgJywgZW5kOiAnYCcsXG4gICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3tcXFxcdyt9JyxcbiAgICAgICAgICBjb250YWluczogW10sXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ1xcLT9cXFxcdytcXFxccypcXFxcPVxcXFw+JyxcbiAgICAgICAgICBjb250YWluczogW10sXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyhcXFxcYjBbMC03X10rKXwoXFxcXGIweFswLTlhLWZBLUZfXSspfChcXFxcYlsxLTldWzAtOV9dKihcXFxcLlswLTlfXSspPyl8WzBfXVxcXFxiJyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyByZWdleHAgY29udGFpbmVyXG4gICAgICBiZWdpbjogJyhcXFxcL1xcXFwvfCcgKyBobGpzLlJFX1NUQVJURVJTX1JFICsgJ3xcXFxcYihzcGxpdHxyZXR1cm58cHJpbnR8cmV2ZXJzZXxncmVwKVxcXFxiKVxcXFxzKicsXG4gICAgICBrZXl3b3JkczogJ3NwbGl0IHJldHVybiBwcmludCByZXZlcnNlIGdyZXAnLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgYmVnaW46ICcoc3x0cnx5KS8oXFxcXFxcXFwufFteL10pKi8oXFxcXFxcXFwufFteL10pKi9bYS16XSonLFxuICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgYmVnaW46ICcobXxxcik/LycsIGVuZDogJy9bYS16XSonLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICAgICAgICByZWxldmFuY2U6IDAgLy8gYWxsb3dzIGVtcHR5IFwiLy9cIiB3aGljaCBpcyBhIGNvbW1vbiBjb21tZW50IGRlbGltaXRlciBpbiBvdGhlciBsYW5ndWFnZXNcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ3N1YicsIGVuZDogJyhcXFxccypcXFxcKC4qP1xcXFwpKT9bO3tdJywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogNSxcbiAgICAgIGNvbnRhaW5zOiBbaGxqcy5USVRMRV9NT0RFXVxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46ICctXFxcXHdcXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiBcIl5fX0RBVEFfXyRcIixcbiAgICAgIGVuZDogXCJeX19FTkRfXyRcIixcbiAgICAgIHN1Ykxhbmd1YWdlOiAnbW9qb2xpY2lvdXMnLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IFwiXkBALipcIixcbiAgICAgICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiY29tbWVudFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gUEVSTF9ERUZBVUxUX0NPTlRBSU5TO1xuICBNRVRIT0QuY29udGFpbnMgPSBQRVJMX0RFRkFVTFRfQ09OVEFJTlM7XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3BsJywgJ3BtJ10sXG4gICAgbGV4ZW1lczogL1tcXHdcXC5dKy8sXG4gICAga2V5d29yZHM6IFBFUkxfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFBFUkxfREVGQVVMVF9DT05UQUlOU1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXl9fKEVORHxEQVRBKV9fJCdcbiAgICAgIH0sXG4gICAgLy8gbW9qb2xpY2lvdXMgbGluZVxuICAgICAge1xuICAgICAgICBiZWdpbjogXCJeXFxcXHMqJXsxLDJ9PXswLDJ9XCIsIGVuZDogJyQnLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BlcmwnXG4gICAgICB9LFxuICAgIC8vIG1vam9saWNpb3VzIGJsb2NrXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIjwlezEsMn09ezAsMn1cIixcbiAgICAgICAgZW5kOiBcIj17MCwxfSU+XCIsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAncGVybCcsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJywgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnWyRdW2EtZkEtRjAtOV0rJ1xuICAgICAgfSxcbiAgICAgIGhsanMuTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAncHVibGljIHByaXZhdGUgcHJvcGVydHkgY29udGludWUgZXhpdCBleHRlcm4gbmV3IHRyeSBjYXRjaCAnICtcbiAgICAgICAgJ2VhY2hpbiBub3QgYWJzdHJhY3QgZmluYWwgc2VsZWN0IGNhc2UgZGVmYXVsdCBjb25zdCBsb2NhbCBnbG9iYWwgZmllbGQgJyArXG4gICAgICAgICdlbmQgaWYgdGhlbiBlbHNlIGVsc2VpZiBlbmRpZiB3aGlsZSB3ZW5kIHJlcGVhdCB1bnRpbCBmb3JldmVyIGZvciAnICtcbiAgICAgICAgJ3RvIHN0ZXAgbmV4dCByZXR1cm4gbW9kdWxlIGlubGluZSB0aHJvdyBpbXBvcnQnLFxuXG4gICAgICBidWlsdF9pbjogJ0RlYnVnTG9nIERlYnVnU3RvcCBFcnJvciBQcmludCBBQ29zIEFDb3NyIEFTaW4gQVNpbnIgQVRhbiBBVGFuMiBBVGFuMnIgQVRhbnIgQWJzIEFicyBDZWlsICcgK1xuICAgICAgICAnQ2xhbXAgQ2xhbXAgQ29zIENvc3IgRXhwIEZsb29yIExvZyBNYXggTWF4IE1pbiBNaW4gUG93IFNnbiBTZ24gU2luIFNpbnIgU3FydCBUYW4gVGFuciBTZWVkIFBJIEhBTEZQSSBUV09QSScsXG5cbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIG51bGwgYW5kIG9yIHNobCBzaHIgbW9kJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnI3JlbScsICcjZW5kJyksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIFwiJ1wiLFxuICAgICAgICAnJCcsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gbWV0aG9kJywgZW5kOiAnWyg9Ol18JCcsXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoc2VsZnxzdXBlcilcXFxcYidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxzKiMnLCBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsnbWV0YS1rZXl3b3JkJzogJ2lmIGVsc2UgZWxzZWlmIGVuZGlmIGVuZCB0aGVuJ31cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxccypzdHJpY3RcXFxcYidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdhbGlhcycsIGVuZDogJz0nLFxuICAgICAgICBjb250YWluczogW2hsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXVxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH1cbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgLy8gTW9vbnNjcmlwdCBrZXl3b3Jkc1xuICAgICAgJ2lmIHRoZW4gbm90IGZvciBpbiB3aGlsZSBkbyByZXR1cm4gZWxzZSBlbHNlaWYgYnJlYWsgY29udGludWUgc3dpdGNoIGFuZCBvciAnICtcbiAgICAgICd1bmxlc3Mgd2hlbiBjbGFzcyBleHRlbmRzIHN1cGVyIGxvY2FsIGltcG9ydCBleHBvcnQgZnJvbSB1c2luZycsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0cnVlIGZhbHNlIG5pbCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnX0cgX1ZFUlNJT04gYXNzZXJ0IGNvbGxlY3RnYXJiYWdlIGRvZmlsZSBlcnJvciBnZXRmZW52IGdldG1ldGF0YWJsZSBpcGFpcnMgbG9hZCAnICtcbiAgICAgICdsb2FkZmlsZSBsb2Fkc3RyaW5nIG1vZHVsZSBuZXh0IHBhaXJzIHBjYWxsIHByaW50IHJhd2VxdWFsIHJhd2dldCByYXdzZXQgcmVxdWlyZSAnICtcbiAgICAgICdzZWxlY3Qgc2V0ZmVudiBzZXRtZXRhdGFibGUgdG9udW1iZXIgdG9zdHJpbmcgdHlwZSB1bnBhY2sgeHBjYWxsIGNvcm91dGluZSBkZWJ1ZyAnICtcbiAgICAgICdpbyBtYXRoIG9zIHBhY2thZ2Ugc3RyaW5nIHRhYmxlJ1xuICB9O1xuICB2YXIgSlNfSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLCBlbmQ6IC99LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgdmFyIEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7c3RhcnRzOiB7ZW5kOiAnKFxcXFxzKi8pPycsIHJlbGV2YW5jZTogMH19KSwgLy8gYSBudW1iZXIgdHJpZXMgdG8gZWF0IHRoZSBmb2xsb3dpbmcgc2xhc2ggdG8gcHJldmVudCB0cmVhdGluZyBpdCBhcyBhIHJlZ2V4cFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC8nLywgZW5kOiAvJy8sXG4gICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1wiLywgZW5kOiAvXCIvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBTVUJTVF1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgYmVnaW46ICdAX18nICsgaGxqcy5JREVOVF9SRVxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46ICdAJyArIGhsanMuSURFTlRfUkUgLy8gcmVsZXZhbmNlIGJvb3N0ZXIgb24gcGFyIHdpdGggQ29mZmVlU2NyaXB0XG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXFxcXFxcXCcgKyBobGpzLklERU5UX1JFIC8vIGluc3RcXG1ldGhvZFxuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICB2YXIgVElUTEUgPSBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IEpTX0lERU5UX1JFfSk7XG4gIHZhciBQQVJBTVNfUkUgPSAnKFxcXFwoLipcXFxcKSk/XFxcXHMqXFxcXEJbLT1dPic7XG4gIHZhciBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogJ1xcXFwoW15cXFxcKF0nLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAvKiBXZSBuZWVkIGFub3RoZXIgY29udGFpbmVkIG5hbWVsZXNzIG1vZGUgdG8gbm90IGhhdmUgZXZlcnkgbmVzdGVkXG4gICAgcGFpciBvZiBwYXJlbnMgdG8gYmUgY2FsbGVkIFwicGFyYW1zXCIgKi9cbiAgICBjb250YWluczogW3tcbiAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXS5jb25jYXQoRVhQUkVTU0lPTlMpXG4gICAgfV1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnbW9vbiddLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTlMuY29uY2F0KFtcbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsICAvLyBmdW5jdGlvbjogLT4gPT5cbiAgICAgICAgYmVnaW46ICdeXFxcXHMqJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKj1cXFxccyonICsgUEFSQU1TX1JFLCBlbmQ6ICdbLT1dPicsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1RJVExFLCBQQVJBTVNdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1tcXCgsOj1dXFxzKi8sIC8vIGFub255bW91cyBmdW5jdGlvbiBzdGFydFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IFBBUkFNU19SRSwgZW5kOiAnWy09XT4nLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogW1BBUkFNU11cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGlsbGVnYWw6IC9bOj1cIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6ICdleHRlbmRzJyxcbiAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgaWxsZWdhbDogL1s6PVwiXFxbXFxdXS8sXG4gICAgICAgICAgICBjb250YWluczogW1RJVExFXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgVElUTEVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbmFtZScsICAgIC8vIHRhYmxlXG4gICAgICAgIGJlZ2luOiBKU19JREVOVF9SRSArICc6JywgZW5kOiAnOicsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLCByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0pXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczpcbiAgICAgICAgICAnYnVpbGQgY3JlYXRlIGluZGV4IGRlbGV0ZSBkcm9wIGV4cGxhaW4gaW5mZXJ8MTAgaW5zZXJ0IG1lcmdlIHByZXBhcmUgc2VsZWN0IHVwZGF0ZSB1cHNlcnR8MTAnLFxuICAgICAgICBlbmQ6IC87LywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgLy8gVGFrZW4gZnJvbSBodHRwOi8vZGV2ZWxvcGVyLmNvdWNoYmFzZS5jb20vZG9jdW1lbnRhdGlvbi9zZXJ2ZXIvY3VycmVudC9uMXFsL24xcWwtbGFuZ3VhZ2UtcmVmZXJlbmNlL3Jlc2VydmVkd29yZHMuaHRtbFxuICAgICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgICAnYWxsIGFsdGVyIGFuYWx5emUgYW5kIGFueSBhcnJheSBhcyBhc2MgYmVnaW4gYmV0d2VlbiBiaW5hcnkgYm9vbGVhbiBicmVhayBidWNrZXQgYnVpbGQgYnkgY2FsbCAnICtcbiAgICAgICAgICAgICdjYXNlIGNhc3QgY2x1c3RlciBjb2xsYXRlIGNvbGxlY3Rpb24gY29tbWl0IGNvbm5lY3QgY29udGludWUgY29ycmVsYXRlIGNvdmVyIGNyZWF0ZSBkYXRhYmFzZSAnICtcbiAgICAgICAgICAgICdkYXRhc2V0IGRhdGFzdG9yZSBkZWNsYXJlIGRlY3JlbWVudCBkZWxldGUgZGVyaXZlZCBkZXNjIGRlc2NyaWJlIGRpc3RpbmN0IGRvIGRyb3AgZWFjaCBlbGVtZW50ICcgK1xuICAgICAgICAgICAgJ2Vsc2UgZW5kIGV2ZXJ5IGV4Y2VwdCBleGNsdWRlIGV4ZWN1dGUgZXhpc3RzIGV4cGxhaW4gZmV0Y2ggZmlyc3QgZmxhdHRlbiBmb3IgZm9yY2UgZnJvbSAnICtcbiAgICAgICAgICAgICdmdW5jdGlvbiBncmFudCBncm91cCBnc2kgaGF2aW5nIGlmIGlnbm9yZSBpbGlrZSBpbiBpbmNsdWRlIGluY3JlbWVudCBpbmRleCBpbmZlciBpbmxpbmUgaW5uZXIgJyArXG4gICAgICAgICAgICAnaW5zZXJ0IGludGVyc2VjdCBpbnRvIGlzIGpvaW4ga2V5IGtleXMga2V5c3BhY2Uga25vd24gbGFzdCBsZWZ0IGxldCBsZXR0aW5nIGxpa2UgbGltaXQgbHNtIG1hcCAnICtcbiAgICAgICAgICAgICdtYXBwaW5nIG1hdGNoZWQgbWF0ZXJpYWxpemVkIG1lcmdlIG1pbnVzIG5hbWVzcGFjZSBuZXN0IG5vdCBudW1iZXIgb2JqZWN0IG9mZnNldCBvbiAnICtcbiAgICAgICAgICAgICdvcHRpb24gb3Igb3JkZXIgb3V0ZXIgb3ZlciBwYXJzZSBwYXJ0aXRpb24gcGFzc3dvcmQgcGF0aCBwb29sIHByZXBhcmUgcHJpbWFyeSBwcml2YXRlIHByaXZpbGVnZSAnICtcbiAgICAgICAgICAgICdwcm9jZWR1cmUgcHVibGljIHJhdyByZWFsbSByZWR1Y2UgcmVuYW1lIHJldHVybiByZXR1cm5pbmcgcmV2b2tlIHJpZ2h0IHJvbGUgcm9sbGJhY2sgc2F0aXNmaWVzICcgK1xuICAgICAgICAgICAgJ3NjaGVtYSBzZWxlY3Qgc2VsZiBzZW1pIHNldCBzaG93IHNvbWUgc3RhcnQgc3RhdGlzdGljcyBzdHJpbmcgc3lzdGVtIHRoZW4gdG8gdHJhbnNhY3Rpb24gdHJpZ2dlciAnICtcbiAgICAgICAgICAgICd0cnVuY2F0ZSB1bmRlciB1bmlvbiB1bmlxdWUgdW5rbm93biB1bm5lc3QgdW5zZXQgdXBkYXRlIHVwc2VydCB1c2UgdXNlciB1c2luZyB2YWxpZGF0ZSB2YWx1ZSAnICtcbiAgICAgICAgICAgICd2YWx1ZWQgdmFsdWVzIHZpYSB2aWV3IHdoZW4gd2hlcmUgd2hpbGUgd2l0aCB3aXRoaW4gd29yayB4b3InLFxuICAgICAgICAgIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyLzQuNS9uMXFsL24xcWwtbGFuZ3VhZ2UtcmVmZXJlbmNlL2xpdGVyYWxzLmh0bWxcbiAgICAgICAgICBsaXRlcmFsOlxuICAgICAgICAgICAgJ3RydWUgZmFsc2UgbnVsbCBtaXNzaW5nfDUnLFxuICAgICAgICAgIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyLzQuNS9uMXFsL24xcWwtbGFuZ3VhZ2UtcmVmZXJlbmNlL2Z1bmN0aW9ucy5odG1sXG4gICAgICAgICAgYnVpbHRfaW46XG4gICAgICAgICAgICAnYXJyYXlfYWdnIGFycmF5X2FwcGVuZCBhcnJheV9jb25jYXQgYXJyYXlfY29udGFpbnMgYXJyYXlfY291bnQgYXJyYXlfZGlzdGluY3QgYXJyYXlfaWZudWxsIGFycmF5X2xlbmd0aCAnICtcbiAgICAgICAgICAgICdhcnJheV9tYXggYXJyYXlfbWluIGFycmF5X3Bvc2l0aW9uIGFycmF5X3ByZXBlbmQgYXJyYXlfcHV0IGFycmF5X3JhbmdlIGFycmF5X3JlbW92ZSBhcnJheV9yZXBlYXQgYXJyYXlfcmVwbGFjZSAnICtcbiAgICAgICAgICAgICdhcnJheV9yZXZlcnNlIGFycmF5X3NvcnQgYXJyYXlfc3VtIGF2ZyBjb3VudCBtYXggbWluIHN1bSBncmVhdGVzdCBsZWFzdCBpZm1pc3NpbmcgaWZtaXNzaW5nb3JudWxsIGlmbnVsbCAnICtcbiAgICAgICAgICAgICdtaXNzaW5naWYgbnVsbGlmIGlmaW5mIGlmbmFuIGlmbmFub3JpbmYgbmFuaW5mIG5lZ2luZmlmIHBvc2luZmlmIGNsb2NrX21pbGxpcyBjbG9ja19zdHIgZGF0ZV9hZGRfbWlsbGlzICcgK1xuICAgICAgICAgICAgJ2RhdGVfYWRkX3N0ciBkYXRlX2RpZmZfbWlsbGlzIGRhdGVfZGlmZl9zdHIgZGF0ZV9wYXJ0X21pbGxpcyBkYXRlX3BhcnRfc3RyIGRhdGVfdHJ1bmNfbWlsbGlzIGRhdGVfdHJ1bmNfc3RyICcgK1xuICAgICAgICAgICAgJ2R1cmF0aW9uX3RvX3N0ciBtaWxsaXMgc3RyX3RvX21pbGxpcyBtaWxsaXNfdG9fc3RyIG1pbGxpc190b191dGMgbWlsbGlzX3RvX3pvbmVfbmFtZSBub3dfbWlsbGlzIG5vd19zdHIgJyArXG4gICAgICAgICAgICAnc3RyX3RvX2R1cmF0aW9uIHN0cl90b191dGMgc3RyX3RvX3pvbmVfbmFtZSBkZWNvZGVfanNvbiBlbmNvZGVfanNvbiBlbmNvZGVkX3NpemUgcG9seV9sZW5ndGggYmFzZTY0IGJhc2U2NF9lbmNvZGUgJyArXG4gICAgICAgICAgICAnYmFzZTY0X2RlY29kZSBtZXRhIHV1aWQgYWJzIGFjb3MgYXNpbiBhdGFuIGF0YW4yIGNlaWwgY29zIGRlZ3JlZXMgZSBleHAgbG4gbG9nIGZsb29yIHBpIHBvd2VyIHJhZGlhbnMgcmFuZG9tICcgK1xuICAgICAgICAgICAgJ3JvdW5kIHNpZ24gc2luIHNxcnQgdGFuIHRydW5jIG9iamVjdF9sZW5ndGggb2JqZWN0X25hbWVzIG9iamVjdF9wYWlycyBvYmplY3RfaW5uZXJfcGFpcnMgb2JqZWN0X3ZhbHVlcyAnICtcbiAgICAgICAgICAgICdvYmplY3RfaW5uZXJfdmFsdWVzIG9iamVjdF9hZGQgb2JqZWN0X3B1dCBvYmplY3RfcmVtb3ZlIG9iamVjdF91bndyYXAgcmVnZXhwX2NvbnRhaW5zIHJlZ2V4cF9saWtlIHJlZ2V4cF9wb3NpdGlvbiAnICtcbiAgICAgICAgICAgICdyZWdleHBfcmVwbGFjZSBjb250YWlucyBpbml0Y2FwIGxlbmd0aCBsb3dlciBsdHJpbSBwb3NpdGlvbiByZXBlYXQgcmVwbGFjZSBydHJpbSBzcGxpdCBzdWJzdHIgdGl0bGUgdHJpbSB1cHBlciAnICtcbiAgICAgICAgICAgICdpc2FycmF5IGlzYXRvbSBpc2Jvb2xlYW4gaXNudW1iZXIgaXNvYmplY3QgaXNzdHJpbmcgdHlwZSB0b2FycmF5IHRvYXRvbSB0b2Jvb2xlYW4gdG9udW1iZXIgdG9vYmplY3QgdG9zdHJpbmcnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnXFwnJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV0sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICBiZWdpbjogJ2AnLCBlbmQ6ICdgJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMlxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAvXFwkXFxkKy99LFxuICAgICAge2JlZ2luOiAvXFwkXFx7LywgZW5kOiAvfS99LFxuICAgICAge2JlZ2luOiAnW1xcXFwkXFxcXEBdJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRX1cbiAgICBdXG4gIH07XG4gIHZhciBERUZBVUxUID0ge1xuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIGxleGVtZXM6ICdbYS16L19dKycsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdvbiBvZmYgeWVzIG5vIHRydWUgZmFsc2Ugbm9uZSBibG9ja2VkIGRlYnVnIGluZm8gbm90aWNlIHdhcm4gZXJyb3IgY3JpdCAnICtcbiAgICAgICAgJ3NlbGVjdCBicmVhayBsYXN0IHBlcm1hbmVudCByZWRpcmVjdCBrcXVldWUgcnRzaWcgZXBvbGwgcG9sbCAvZGV2L3BvbGwnXG4gICAgfSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgaWxsZWdhbDogJz0+JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFZBUl0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAvXCIvLCBlbmQ6IC9cIi99LFxuICAgICAgICAgIHtiZWdpbjogLycvLCBlbmQ6IC8nL31cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIHRoaXMgc3dhbGxvd3MgZW50aXJlIFVSTHMgdG8gYXZvaWQgZGV0ZWN0aW5nIG51bWJlcnMgd2l0aGluXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKFthLXpdKyk6LycsIGVuZDogJ1xcXFxzJywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbVkFSXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFZBUl0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiBcIlxcXFxzXFxcXF5cIiwgZW5kOiBcIlxcXFxzfHt8O1wiLCByZXR1cm5FbmQ6IHRydWV9LFxuICAgICAgICAgIC8vIHJlZ2V4cCBsb2NhdGlvbnMgKH4sIH4qKVxuICAgICAgICAgIHtiZWdpbjogXCJ+XFxcXCo/XFxcXHMrXCIsIGVuZDogXCJcXFxcc3x7fDtcIiwgcmV0dXJuRW5kOiB0cnVlfSxcbiAgICAgICAgICAvLyAqLmV4YW1wbGUuY29tXG4gICAgICAgICAge2JlZ2luOiBcIlxcXFwqKFxcXFwuW2EtelxcXFwtXSspK1wifSxcbiAgICAgICAgICAvLyBzdWIuZXhhbXBsZS4qXG4gICAgICAgICAge2JlZ2luOiBcIihbYS16XFxcXC1dK1xcXFwuKStcXFxcKlwifVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gSVBcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM30oOlxcXFxkezEsNX0pP1xcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIHVuaXRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCtba0ttTWdHZHNoZHd5XSpcXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIFZBUlxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnbmdpbnhjb25mJ10sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMreycsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6ICd7JyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccycsIGVuZDogJzt8eycsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgc3RhcnRzOiBERUZBVUxUXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6ICdbXlxcXFxzXFxcXH1dJ1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ25pbSddLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYWRkciBhbmQgYXMgYXNtIGJpbmQgYmxvY2sgYnJlYWsgY2FzZSBjYXN0IGNvbnN0IGNvbnRpbnVlIGNvbnZlcnRlciAnICtcbiAgICAgICAgJ2Rpc2NhcmQgZGlzdGluY3QgZGl2IGRvIGVsaWYgZWxzZSBlbmQgZW51bSBleGNlcHQgZXhwb3J0IGZpbmFsbHkgJyArXG4gICAgICAgICdmb3IgZnJvbSBnZW5lcmljIGlmIGltcG9ydCBpbiBpbmNsdWRlIGludGVyZmFjZSBpcyBpc25vdCBpdGVyYXRvciAnICtcbiAgICAgICAgJ2xldCBtYWNybyBtZXRob2QgbWl4aW4gbW9kIG5pbCBub3Qgbm90aW4gb2JqZWN0IG9mIG9yIG91dCBwcm9jIHB0ciAnICtcbiAgICAgICAgJ3JhaXNlIHJlZiByZXR1cm4gc2hsIHNociBzdGF0aWMgdGVtcGxhdGUgdHJ5IHR1cGxlIHR5cGUgdXNpbmcgdmFyICcgK1xuICAgICAgICAnd2hlbiB3aGlsZSB3aXRoIHdpdGhvdXQgeG9yIHlpZWxkJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdzaGFyZWQgZ3VhcmRlZCBzdGRpbiBzdGRvdXQgc3RkZXJyIHJlc3VsdCB0cnVlIGZhbHNlJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnaW50IGludDggaW50MTYgaW50MzIgaW50NjQgdWludCB1aW50OCB1aW50MTYgdWludDMyIHVpbnQ2NCBmbG9hdCAnICtcbiAgICAgICAgJ2Zsb2F0MzIgZmxvYXQ2NCBib29sIGNoYXIgc3RyaW5nIGNzdHJpbmcgcG9pbnRlciBleHByIHN0bXQgdm9pZCAnICtcbiAgICAgICAgJ2F1dG8gYW55IHJhbmdlIGFycmF5IG9wZW5hcnJheSB2YXJhcmdzIHNlcSBzZXQgY2xvbmcgY3Vsb25nIGNjaGFyICcgK1xuICAgICAgICAnY3NjaGFyIGNzaG9ydCBjaW50IGNzaXplIGNsb25nbG9uZyBjZmxvYXQgY2RvdWJsZSBjbG9uZ2RvdWJsZSAnICtcbiAgICAgICAgJ2N1Y2hhciBjdXNob3J0IGN1aW50IGN1bG9uZ2xvbmcgY3N0cmluZ2FycmF5IHNlbWlzdGF0aWMnXG4gICAgfSxcbiAgICBjb250YWluczogWyB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCAvLyBBY3R1YWxseSBwcmFnbWFcbiAgICAgICAgYmVnaW46IC97XFwuLyxcbiAgICAgICAgZW5kOiAvXFwufS8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9bYS16QS1aXVxcdypcIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFt7YmVnaW46IC9cIlwiL31dXG4gICAgICB9LCB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvKFthLXpBLVpdXFx3Kik/XCJcIlwiLyxcbiAgICAgICAgZW5kOiAvXCJcIlwiL1xuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogL1xcYltBLVpdXFx3K1xcYi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSwge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAvXFxiKDBbeFhdWzAtOWEtZkEtRl1bXzAtOWEtZkEtRl0qKSgnP1tpSXVVXSg4fDE2fDMyfDY0KSk/L30sXG4gICAgICAgICAge2JlZ2luOiAvXFxiKDBvWzAtN11bXzAtN10qKSgnP1tpSXVVZkZdKDh8MTZ8MzJ8NjQpKT8vfSxcbiAgICAgICAgICB7YmVnaW46IC9cXGIoMChifEIpWzAxXVtfMDFdKikoJz9baUl1VWZGXSg4fDE2fDMyfDY0KSk/L30sXG4gICAgICAgICAge2JlZ2luOiAvXFxiKFxcZFtfXFxkXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy99XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgTklYX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAncmVjIHdpdGggbGV0IGluIGluaGVyaXQgYXNzZXJ0IGlmIGVsc2UgdGhlbicsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0cnVlIGZhbHNlIG9yIGFuZCBudWxsJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdpbXBvcnQgYWJvcnQgYmFzZU5hbWVPZiBkaXJPZiBpc051bGwgYnVpbHRpbnMgbWFwIHJlbW92ZUF0dHJzIHRocm93ICcgK1xuICAgICAgJ3RvU3RyaW5nIGRlcml2YXRpb24nXG4gIH07XG4gIHZhciBBTlRJUVVPVEUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFwkXFx7LyxcbiAgICBlbmQ6IC99LyxcbiAgICBrZXl3b3JkczogTklYX0tFWVdPUkRTXG4gIH07XG4gIHZhciBBVFRSUyA9IHtcbiAgICBiZWdpbjogL1thLXpBLVowLTktX10rKFxccyo9KS8sIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IC9cXFMrL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbQU5USVFVT1RFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiBcIicnXCIsIGVuZDogXCInJ1wifSxcbiAgICAgIHtiZWdpbjogJ1wiJywgZW5kOiAnXCInfVxuICAgIF1cbiAgfTtcbiAgdmFyIEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIFNUUklORyxcbiAgICBBVFRSU1xuICBdO1xuICBBTlRJUVVPVEUuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbXCJuaXhvc1wiXSxcbiAgICBrZXl3b3JkczogTklYX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OU1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIENPTlNUQU5UUyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCQoQURNSU5UT09MU3xBUFBEQVRBfENEQlVSTl9BUkVBfENNRExJTkV8Q09NTU9ORklMRVMzMnxDT01NT05GSUxFUzY0fENPTU1PTkZJTEVTfENPT0tJRVN8REVTS1RPUHxET0NVTUVOVFN8RVhFRElSfEVYRUZJTEV8RVhFUEFUSHxGQVZPUklURVN8Rk9OVFN8SElTVE9SWXxIV05EUEFSRU5UfElOU1RESVJ8SU5URVJORVRfQ0FDSEV8TEFOR1VBR0V8TE9DQUxBUFBEQVRBfE1VU0lDfE5FVEhPT0R8T1VURElSfFBJQ1RVUkVTfFBMVUdJTlNESVJ8UFJJTlRIT09EfFBST0ZJTEV8UFJPR1JBTUZJTEVTMzJ8UFJPR1JBTUZJTEVTNjR8UFJPR1JBTUZJTEVTfFFVSUNLTEFVTkNIfFJFQ0VOVHxSRVNPVVJDRVNfTE9DQUxJWkVEfFJFU09VUkNFU3xTRU5EVE98U01QUk9HUkFNU3xTTVNUQVJUVVB8U1RBUlRNRU5VfFNZU0RJUnxURU1QfFRFTVBMQVRFU3xWSURFT1N8V0lORElSKS9cbiAgfTtcblxuICB2YXIgREVGSU5FUyA9IHtcbiAgICAvLyAke2RlZmluZXN9XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkK3tbXFx3XFwuOi1dK30vXG4gIH07XG5cbiAgdmFyIFZBUklBQkxFUyA9IHtcbiAgICAvLyAkdmFyaWFibGVzXG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkK1xcdysvLFxuICAgIGlsbGVnYWw6IC9cXChcXCl7fS9cbiAgfTtcblxuICB2YXIgTEFOR1VBR0VTID0ge1xuICAgIC8vICQobGFuZ3VhZ2Vfc3RyaW5ncylcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCQrXFwoW1xcd1xcXlxcLjotXStcXCkvXG4gIH07XG5cbiAgdmFyIFBBUkFNRVRFUlMgPSB7XG4gICAgLy8gY29tbWFuZCBwYXJhbWV0ZXJzXG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogJyhBUkNISVZFfEZJTEVfQVRUUklCVVRFX0FSQ0hJVkV8RklMRV9BVFRSSUJVVEVfTk9STUFMfEZJTEVfQVRUUklCVVRFX09GRkxJTkV8RklMRV9BVFRSSUJVVEVfUkVBRE9OTFl8RklMRV9BVFRSSUJVVEVfU1lTVEVNfEZJTEVfQVRUUklCVVRFX1RFTVBPUkFSWXxIS0NSfEhLQ1V8SEtERHxIS0VZX0NMQVNTRVNfUk9PVHxIS0VZX0NVUlJFTlRfQ09ORklHfEhLRVlfQ1VSUkVOVF9VU0VSfEhLRVlfRFlOX0RBVEF8SEtFWV9MT0NBTF9NQUNISU5FfEhLRVlfUEVSRk9STUFOQ0VfREFUQXxIS0VZX1VTRVJTfEhLTE18SEtQRHxIS1V8SURBQk9SVHxJRENBTkNFTHxJRElHTk9SRXxJRE5PfElET0t8SURSRVRSWXxJRFlFU3xNQl9BQk9SVFJFVFJZSUdOT1JFfE1CX0RFRkJVVFRPTjF8TUJfREVGQlVUVE9OMnxNQl9ERUZCVVRUT04zfE1CX0RFRkJVVFRPTjR8TUJfSUNPTkVYQ0xBTUFUSU9OfE1CX0lDT05JTkZPUk1BVElPTnxNQl9JQ09OUVVFU1RJT058TUJfSUNPTlNUT1B8TUJfT0t8TUJfT0tDQU5DRUx8TUJfUkVUUllDQU5DRUx8TUJfUklHSFR8TUJfUlRMUkVBRElOR3xNQl9TRVRGT1JFR1JPVU5EfE1CX1RPUE1PU1R8TUJfVVNFUklDT058TUJfWUVTTk98Tk9STUFMfE9GRkxJTkV8UkVBRE9OTFl8U0hDVFh8U0hFTExfQ09OVEVYVHxTWVNURU18VEVNUE9SQVJZKSdcbiAgfTtcblxuICB2YXIgQ09NUElMRVIgPSB7XG4gICAgLy8gIWNvbXBpbGVyX2ZsYWdzXG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46IC9cXCEoYWRkaW5jbHVkZWRpcnxhZGRwbHVnaW5kaXJ8YXBwZW5kZmlsZXxjZHxkZWZpbmV8ZGVsZmlsZXxlY2hvfGVsc2V8ZW5kaWZ8ZXJyb3J8ZXhlY3V0ZXxmaW5hbGl6ZXxnZXRkbGx2ZXJzaW9uc3lzdGVtfGlmZGVmfGlmbWFjcm9kZWZ8aWZtYWNyb25kZWZ8aWZuZGVmfGlmfGluY2x1ZGV8aW5zZXJ0bWFjcm98bWFjcm9lbmR8bWFjcm98bWFrZW5zaXN8cGFja2hkcnxzZWFyY2hwYXJzZXxzZWFyY2hyZXBsYWNlfHRlbXBmaWxlfHVuZGVmfHZlcmJvc2V8d2FybmluZykvXG4gIH07XG5cbiAgdmFyIE1FVEFDSEFSUyA9IHtcbiAgICAvLyAkXFxuLCAkXFxyLCAkXFx0LCAkJFxuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJChcXFxcW25ydF18XFwkKS9cbiAgfTtcblxuICB2YXIgUExVR0lOUyA9IHtcbiAgICAvLyBwbHVnOjppbnNcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW46IC9cXHcrXFw6XFw6XFx3Ky9cbiAgfTtcblxuICAgIHZhciBTVFJJTkcgPSB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnXFwnJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgJywgZW5kOiAnYCdcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgTUVUQUNIQVJTLFxuICAgICAgICBDT05TVEFOVFMsXG4gICAgICAgIERFRklORVMsXG4gICAgICAgIFZBUklBQkxFUyxcbiAgICAgICAgTEFOR1VBR0VTXG4gICAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICdBYm9ydCBBZGRCcmFuZGluZ0ltYWdlIEFkZFNpemUgQWxsb3dSb290RGlySW5zdGFsbCBBbGxvd1NraXBGaWxlcyBBdXRvQ2xvc2VXaW5kb3cgQkdGb250IEJHR3JhZGllbnQgQnJhbmRpbmdUZXh0IEJyaW5nVG9Gcm9udCBDYWxsIENhbGxJbnN0RExMIENhcHRpb24gQ2hhbmdlVUkgQ2hlY2tCaXRtYXAgQ2xlYXJFcnJvcnMgQ29tcGxldGVkVGV4dCBDb21wb25lbnRUZXh0IENvcHlGaWxlcyBDUkNDaGVjayBDcmVhdGVEaXJlY3RvcnkgQ3JlYXRlRm9udCBDcmVhdGVTaG9ydEN1dCBEZWxldGUgRGVsZXRlSU5JU2VjIERlbGV0ZUlOSVN0ciBEZWxldGVSZWdLZXkgRGVsZXRlUmVnVmFsdWUgRGV0YWlsUHJpbnQgRGV0YWlsc0J1dHRvblRleHQgRGlyVGV4dCBEaXJWYXIgRGlyVmVyaWZ5IEVuYWJsZVdpbmRvdyBFbnVtUmVnS2V5IEVudW1SZWdWYWx1ZSBFeGNoIEV4ZWMgRXhlY1NoZWxsIEV4ZWNXYWl0IEV4cGFuZEVudlN0cmluZ3MgRmlsZSBGaWxlQnVmU2l6ZSBGaWxlQ2xvc2UgRmlsZUVycm9yVGV4dCBGaWxlT3BlbiBGaWxlUmVhZCBGaWxlUmVhZEJ5dGUgRmlsZVJlYWRVVEYxNkxFIEZpbGVSZWFkV29yZCBGaWxlU2VlayBGaWxlV3JpdGUgRmlsZVdyaXRlQnl0ZSBGaWxlV3JpdGVVVEYxNkxFIEZpbGVXcml0ZVdvcmQgRmluZENsb3NlIEZpbmRGaXJzdCBGaW5kTmV4dCBGaW5kV2luZG93IEZsdXNoSU5JIEZ1bmN0aW9uRW5kIEdldEN1ckluc3RUeXBlIEdldEN1cnJlbnRBZGRyZXNzIEdldERsZ0l0ZW0gR2V0RExMVmVyc2lvbiBHZXRETExWZXJzaW9uTG9jYWwgR2V0RXJyb3JMZXZlbCBHZXRGaWxlVGltZSBHZXRGaWxlVGltZUxvY2FsIEdldEZ1bGxQYXRoTmFtZSBHZXRGdW5jdGlvbkFkZHJlc3MgR2V0SW5zdERpckVycm9yIEdldExhYmVsQWRkcmVzcyBHZXRUZW1wRmlsZU5hbWUgR290byBIaWRlV2luZG93IEljb24gSWZBYm9ydCBJZkVycm9ycyBJZkZpbGVFeGlzdHMgSWZSZWJvb3RGbGFnIElmU2lsZW50IEluaXRQbHVnaW5zRGlyIEluc3RhbGxCdXR0b25UZXh0IEluc3RhbGxDb2xvcnMgSW5zdGFsbERpciBJbnN0YWxsRGlyUmVnS2V5IEluc3RQcm9ncmVzc0ZsYWdzIEluc3RUeXBlIEluc3RUeXBlR2V0VGV4dCBJbnN0VHlwZVNldFRleHQgSW50Q21wIEludENtcFUgSW50Rm10IEludE9wIElzV2luZG93IExhbmdTdHJpbmcgTGljZW5zZUJrQ29sb3IgTGljZW5zZURhdGEgTGljZW5zZUZvcmNlU2VsZWN0aW9uIExpY2Vuc2VMYW5nU3RyaW5nIExpY2Vuc2VUZXh0IExvYWRMYW5ndWFnZUZpbGUgTG9ja1dpbmRvdyBMb2dTZXQgTG9nVGV4dCBNYW5pZmVzdERQSUF3YXJlIE1hbmlmZXN0U3VwcG9ydGVkT1MgTWVzc2FnZUJveCBNaXNjQnV0dG9uVGV4dCBOYW1lIE5vcCBPdXRGaWxlIFBhZ2UgUGFnZUNhbGxiYWNrcyBQYWdlRXhFbmQgUG9wIFB1c2ggUXVpdCBSZWFkRW52U3RyIFJlYWRJTklTdHIgUmVhZFJlZ0RXT1JEIFJlYWRSZWdTdHIgUmVib290IFJlZ0RMTCBSZW5hbWUgUmVxdWVzdEV4ZWN1dGlvbkxldmVsIFJlc2VydmVGaWxlIFJldHVybiBSTURpciBTZWFyY2hQYXRoIFNlY3Rpb25FbmQgU2VjdGlvbkdldEZsYWdzIFNlY3Rpb25HZXRJbnN0VHlwZXMgU2VjdGlvbkdldFNpemUgU2VjdGlvbkdldFRleHQgU2VjdGlvbkdyb3VwRW5kIFNlY3Rpb25JbiBTZWN0aW9uU2V0RmxhZ3MgU2VjdGlvblNldEluc3RUeXBlcyBTZWN0aW9uU2V0U2l6ZSBTZWN0aW9uU2V0VGV4dCBTZW5kTWVzc2FnZSBTZXRBdXRvQ2xvc2UgU2V0QnJhbmRpbmdJbWFnZSBTZXRDb21wcmVzcyBTZXRDb21wcmVzc29yIFNldENvbXByZXNzb3JEaWN0U2l6ZSBTZXRDdGxDb2xvcnMgU2V0Q3VySW5zdFR5cGUgU2V0RGF0YWJsb2NrT3B0aW1pemUgU2V0RGF0ZVNhdmUgU2V0RGV0YWlsc1ByaW50IFNldERldGFpbHNWaWV3IFNldEVycm9yTGV2ZWwgU2V0RXJyb3JzIFNldEZpbGVBdHRyaWJ1dGVzIFNldEZvbnQgU2V0T3V0UGF0aCBTZXRPdmVyd3JpdGUgU2V0UmVib290RmxhZyBTZXRSZWdWaWV3IFNldFNoZWxsVmFyQ29udGV4dCBTZXRTaWxlbnQgU2hvd0luc3REZXRhaWxzIFNob3dVbmluc3REZXRhaWxzIFNob3dXaW5kb3cgU2lsZW50SW5zdGFsbCBTaWxlbnRVbkluc3RhbGwgU2xlZXAgU3BhY2VUZXh0cyBTdHJDbXAgU3RyQ21wUyBTdHJDcHkgU3RyTGVuIFN1YkNhcHRpb24gVW5pY29kZSBVbmluc3RhbGxCdXR0b25UZXh0IFVuaW5zdGFsbENhcHRpb24gVW5pbnN0YWxsSWNvbiBVbmluc3RhbGxTdWJDYXB0aW9uIFVuaW5zdGFsbFRleHQgVW5pbnN0UGFnZSBVblJlZ0RMTCBWYXIgVklBZGRWZXJzaW9uS2V5IFZJRmlsZVZlcnNpb24gVklQcm9kdWN0VmVyc2lvbiBXaW5kb3dJY29uIFdyaXRlSU5JU3RyIFdyaXRlUmVnQmluIFdyaXRlUmVnRFdPUkQgV3JpdGVSZWdFeHBhbmRTdHIgV3JpdGVSZWdTdHIgV3JpdGVVbmluc3RhbGxlciBYUFN0eWxlJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAnYWRtaW4gYWxsIGF1dG8gYm90aCBib3R0b20gYnppcDIgY29sb3JlZCBjb21wb25lbnRzIGN1cnJlbnQgY3VzdG9tIGRpcmVjdG9yeSBmYWxzZSBmb3JjZSBoaWRlIGhpZ2hlc3QgaWZkaWZmIGlmbmV3ZXIgaW5zdGZpbGVzIGxhc3R1c2VkIGxlYXZlIGxlZnQgbGljZW5zZSBsaXN0b25seSBsem1hIG5ldmVyc2hvdyBub25lIG5vcm1hbCBub3RzZXQgb2ZmIG9uIG9wZW4gcHJpbnQgcmlnaHQgc2hvdyBzaWxlbnQgc2lsZW50bG9nIHNtb290aCB0ZXh0b25seSB0b3AgdHJ1ZSB0cnkgdW4uY29tcG9uZW50cyB1bi5jdXN0b20gdW4uZGlyZWN0b3J5IHVuLmluc3RmaWxlcyB1bi5saWNlbnNlIHVuaW5zdENvbmZpcm0gdXNlciBXaW4xMCBXaW43IFdpbjggV2luVmlzdGEgemxpYidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnRnVuY3Rpb24gUGFnZUV4IFNlY3Rpb24gU2VjdGlvbkdyb3VwJywgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBDT01QSUxFUixcbiAgICAgIERFRklORVMsXG4gICAgICBWQVJJQUJMRVMsXG4gICAgICBMQU5HVUFHRVMsXG4gICAgICBQQVJBTUVURVJTLFxuICAgICAgUExVR0lOUyxcbiAgICAgIGhsanMuTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQVBJX0NMQVNTID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKEFWfENBfENGfENHfENJfENMfENNfENOfENUfE1LfE1QfE1US3xNVEx8TlN8U0NOfFNLfFVJfFdLfFhDKVxcXFx3KycsXG4gIH07XG4gIHZhciBPQkpDX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnaW50IGZsb2F0IHdoaWxlIGNoYXIgZXhwb3J0IHNpemVvZiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBmb3IgdW5pb24gJyArXG4gICAgICAndW5zaWduZWQgbG9uZyB2b2xhdGlsZSBzdGF0aWMgYm9vbCBtdXRhYmxlIGlmIGRvIHJldHVybiBnb3RvIHZvaWQgJyArXG4gICAgICAnZW51bSBlbHNlIGJyZWFrIGV4dGVybiBhc20gY2FzZSBzaG9ydCBkZWZhdWx0IGRvdWJsZSByZWdpc3RlciBleHBsaWNpdCAnICtcbiAgICAgICdzaWduZWQgdHlwZW5hbWUgdGhpcyBzd2l0Y2ggY29udGludWUgd2NoYXJfdCBpbmxpbmUgcmVhZG9ubHkgYXNzaWduICcgK1xuICAgICAgJ3JlYWR3cml0ZSBzZWxmIEBzeW5jaHJvbml6ZWQgaWQgdHlwZW9mICcgK1xuICAgICAgJ25vbmF0b21pYyBzdXBlciB1bmljaGFyIElCT3V0bGV0IElCQWN0aW9uIHN0cm9uZyB3ZWFrIGNvcHkgJyArXG4gICAgICAnaW4gb3V0IGlub3V0IGJ5Y29weSBieXJlZiBvbmV3YXkgX19zdHJvbmcgX193ZWFrIF9fYmxvY2sgX19hdXRvcmVsZWFzaW5nICcgK1xuICAgICAgJ0Bwcml2YXRlIEBwcm90ZWN0ZWQgQHB1YmxpYyBAdHJ5IEBwcm9wZXJ0eSBAZW5kIEB0aHJvdyBAY2F0Y2ggQGZpbmFsbHkgJyArXG4gICAgICAnQGF1dG9yZWxlYXNlcG9vbCBAc3ludGhlc2l6ZSBAZHluYW1pYyBAc2VsZWN0b3IgQG9wdGlvbmFsIEByZXF1aXJlZCAnICtcbiAgICAgICdAZW5jb2RlIEBwYWNrYWdlIEBpbXBvcnQgQGRlZnMgQGNvbXBhdGliaWxpdHlfYWxpYXMgJyArXG4gICAgICAnX19icmlkZ2UgX19icmlkZ2VfdHJhbnNmZXIgX19icmlkZ2VfcmV0YWluZWQgX19icmlkZ2VfcmV0YWluICcgK1xuICAgICAgJ19fY292YXJpYW50IF9fY29udHJhdmFyaWFudCBfX2tpbmRvZiAnICtcbiAgICAgICdfTm9ubnVsbCBfTnVsbGFibGUgX051bGxfdW5zcGVjaWZpZWQgJyArXG4gICAgICAnX19GVU5DVElPTl9fIF9fUFJFVFRZX0ZVTkNUSU9OX18gX19hdHRyaWJ1dGVfXyAnICtcbiAgICAgICdnZXR0ZXIgc2V0dGVyIHJldGFpbiB1bnNhZmVfdW5yZXRhaW5lZCAnICtcbiAgICAgICdub25udWxsIG51bGxhYmxlIG51bGxfdW5zcGVjaWZpZWQgbnVsbF9yZXNldHRhYmxlIGNsYXNzIGluc3RhbmNldHlwZSAnICtcbiAgICAgICdOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSIE5TX1VOQVZBSUxBQkxFIE5TX1JFUVVJUkVTX1NVUEVSICcgK1xuICAgICAgJ05TX1JFVFVSTlNfSU5ORVJfUE9JTlRFUiBOU19JTkxJTkUgTlNfQVZBSUxBQkxFIE5TX0RFUFJFQ0FURUQgJyArXG4gICAgICAnTlNfRU5VTSBOU19PUFRJT05TIE5TX1NXSUZUX1VOQVZBSUxBQkxFICcgK1xuICAgICAgJ05TX0FTU1VNRV9OT05OVUxMX0JFR0lOIE5TX0FTU1VNRV9OT05OVUxMX0VORCAnICtcbiAgICAgICdOU19SRUZJTkVEX0ZPUl9TV0lGVCBOU19TV0lGVF9OQU1FIE5TX1NXSUZUX05PVEhST1cgJyArXG4gICAgICAnTlNfRFVSSU5HIE5TX0hBTkRMRVIgTlNfRU5ESEFORExFUiBOU19WQUxVRVJFVFVSTiBOU19WT0lEUkVUVVJOJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ2ZhbHNlIHRydWUgRkFMU0UgVFJVRSBuaWwgWUVTIE5PIE5VTEwnLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ0JPT0wgZGlzcGF0Y2hfb25jZV90IGRpc3BhdGNoX3F1ZXVlX3QgZGlzcGF0Y2hfc3luYyBkaXNwYXRjaF9hc3luYyBkaXNwYXRjaF9vbmNlJ1xuICB9O1xuICB2YXIgTEVYRU1FUyA9IC9bYS16QS1aQF1bYS16QS1aMC05X10qLztcbiAgdmFyIENMQVNTX0tFWVdPUkRTID0gJ0BpbnRlcmZhY2UgQGNsYXNzIEBwcm90b2NvbCBAaW1wbGVtZW50YXRpb24nO1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnbW0nLCAnb2JqYycsICdvYmotYyddLFxuICAgIGtleXdvcmRzOiBPQkpDX0tFWVdPUkRTLFxuICAgIGxleGVtZXM6IExFWEVNRVMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgQVBJX0NMQVNTLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdAXCInLCBlbmQ6ICdcIicsXG4gICAgICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcJycsIGVuZDogJ1teXFxcXFxcXFxdXFwnJyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdbXlxcXFxcXFxcXVteXFwnXSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhLXN0cmluZycsXG4gICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICB7IGJlZ2luOiAnXFxcIicsIGVuZDogJ1xcXCInIH0sXG4gICAgICAgICAgICAgIHsgYmVnaW46ICc8JywgZW5kOiAnPicgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJygnICsgQ0xBU1NfS0VZV09SRFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKVxcXFxiJywgZW5kOiAnKHt8JCknLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogQ0xBU1NfS0VZV09SRFMsIGxleGVtZXM6IExFWEVNRVMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLicraGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICAvKiBtaXNzaW5nIHN1cHBvcnQgZm9yIGhlcmVkb2MtbGlrZSBzdHJpbmcgKE9DYW1sIDQuMC4yKykgKi9cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ21sJ10sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhbmQgYXMgYXNzZXJ0IGFzciBiZWdpbiBjbGFzcyBjb25zdHJhaW50IGRvIGRvbmUgZG93bnRvIGVsc2UgZW5kICcgK1xuICAgICAgICAnZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlICcgK1xuICAgICAgICAnaW5oZXJpdCEgaW5oZXJpdCBpbml0aWFsaXplciBsYW5kIGxhenkgbGV0IGxvciBsc2wgbHNyIGx4b3IgbWF0Y2ggbWV0aG9kIXwxMCBtZXRob2QgJyArXG4gICAgICAgICdtb2QgbW9kdWxlIG11dGFibGUgbmV3IG9iamVjdCBvZiBvcGVuISBvcGVuIG9yIHByaXZhdGUgcmVjIHNpZyBzdHJ1Y3QgJyArXG4gICAgICAgICd0aGVuIHRvIHRyeSB0eXBlIHZhbCEgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoICcgK1xuICAgICAgICAvKiBjYW1scDQgKi9cbiAgICAgICAgJ3BhcnNlciB2YWx1ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSBzdHJpbmcgdW5pdCAnICtcbiAgICAgICAgLyogKHNvbWUpIHR5cGVzIGluIFBlcnZhc2l2ZXMgKi9cbiAgICAgICAgJ2luX2NoYW5uZWwgb3V0X2NoYW5uZWwgcmVmJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcL3w+Pi8sXG4gICAgbGV4ZW1lczogJ1thLXpfXVxcXFx3KiE/JyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgYmVnaW46ICdcXFxcWyhcXFxcfFxcXFx8KT9cXFxcXXxcXFxcKFxcXFwpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnXFxcXChcXFxcKicsXG4gICAgICAgICdcXFxcKlxcXFwpJyxcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgeyAvKiB0eXBlIHZhcmlhYmxlICovXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXFwnW0EtWmEtel9dKD8hXFwnKVtcXFxcd1xcJ10qJ1xuICAgICAgICAvKiB0aGUgZ3JhbW1hciBpcyBhbWJpZ3VvdXMgb24gaG93ICdhJ2Igc2hvdWxkIGJlIGludGVycHJldGVkIGJ1dCBub3QgdGhlIGNvbXBpbGVyICovXG4gICAgICB9LFxuICAgICAgeyAvKiBwb2x5bW9ycGhpYyB2YXJpYW50ICovXG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ2BbQS1aXVtcXFxcd1xcJ10qJ1xuICAgICAgfSxcbiAgICAgIHsgLyogbW9kdWxlIG9yIGNvbnN0cnVjdG9yICovXG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHdcXCddKicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLyogZG9uJ3QgY29sb3IgaWRlbnRpZmllcnMsIGJ1dCBzYWZlbHkgY2F0Y2ggYWxsIGlkZW50aWZpZXJzIHdpdGggJyovXG4gICAgICAgIGJlZ2luOiAnW2Etel9dXFxcXHcqXFwnW1xcXFx3XFwnXSonLCByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7Y2xhc3NOYW1lOiAnc3RyaW5nJywgcmVsZXZhbmNlOiAwfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46XG4gICAgICAgICAgJ1xcXFxiKDBbeFhdW2EtZkEtRjAtOV9dK1tMbG5dP3wnICtcbiAgICAgICAgICAnMFtvT11bMC03X10rW0xsbl0/fCcgK1xuICAgICAgICAgICcwW2JCXVswMV9dK1tMbG5dP3wnICtcbiAgICAgICAgICAnWzAtOV1bMC05X10qKFtMbG5dfChcXFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pPyknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvWy09XT4vIC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICB9XG4gICAgXVxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuXHR2YXIgU1BFQ0lBTF9WQVJTID0ge1xuXHRcdGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuXHRcdGJlZ2luOiAnXFxcXCQoZlthc25dfHR8dnBbcnRkXXxjaGlsZHJlbiknXG5cdH0sXG5cdExJVEVSQUxTID0ge1xuXHRcdGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuXHRcdGJlZ2luOiAnZmFsc2V8dHJ1ZXxQSXx1bmRlZidcblx0fSxcblx0TlVNQkVSUyA9IHtcblx0XHRjbGFzc05hbWU6ICdudW1iZXInLFxuXHRcdGJlZ2luOiAnXFxcXGJcXFxcZCsoXFxcXC5cXFxcZCspPyhlLT9cXFxcZCspPycsIC8vYWRkcyAxZTUsIDFlLTEwXG5cdFx0cmVsZXZhbmNlOiAwXG5cdH0sXG5cdFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLHtpbGxlZ2FsOiBudWxsfSksXG5cdFBSRVBSTyA9IHtcblx0XHRjbGFzc05hbWU6ICdtZXRhJyxcblx0XHRrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnaW5jbHVkZSB1c2UnfSxcblx0XHRiZWdpbjogJ2luY2x1ZGV8dXNlIDwnLFxuXHRcdGVuZDogJz4nXG5cdH0sXG5cdFBBUkFNUyA9IHtcblx0XHRjbGFzc05hbWU6ICdwYXJhbXMnLFxuXHRcdGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG5cdFx0Y29udGFpbnM6IFsnc2VsZicsIE5VTUJFUlMsIFNUUklORywgU1BFQ0lBTF9WQVJTLCBMSVRFUkFMU11cblx0fSxcblx0TU9ESUZJRVJTID0ge1xuXHRcdGJlZ2luOiAnWyohIyVdJyxcblx0XHRyZWxldmFuY2U6IDBcblx0fSxcblx0RlVOQ1RJT05TID0ge1xuXHRcdGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcblx0XHRiZWdpbktleXdvcmRzOiAnbW9kdWxlIGZ1bmN0aW9uJyxcblx0XHRlbmQ6ICdcXFxcPXxcXFxceycsXG5cdFx0Y29udGFpbnM6IFtQQVJBTVMsIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXVxuXHR9O1xuXG5cdHJldHVybiB7XG5cdFx0YWxpYXNlczogWydzY2FkJ10sXG5cdFx0a2V5d29yZHM6IHtcblx0XHRcdGtleXdvcmQ6ICdmdW5jdGlvbiBtb2R1bGUgaW5jbHVkZSB1c2UgZm9yIGludGVyc2VjdGlvbl9mb3IgaWYgZWxzZSBcXFxcJScsXG5cdFx0XHRsaXRlcmFsOiAnZmFsc2UgdHJ1ZSBQSSB1bmRlZicsXG5cdFx0XHRidWlsdF9pbjogJ2NpcmNsZSBzcXVhcmUgcG9seWdvbiB0ZXh0IHNwaGVyZSBjdWJlIGN5bGluZGVyIHBvbHloZWRyb24gdHJhbnNsYXRlIHJvdGF0ZSBzY2FsZSByZXNpemUgbWlycm9yIG11bHRtYXRyaXggY29sb3Igb2Zmc2V0IGh1bGwgbWlua293c2tpIHVuaW9uIGRpZmZlcmVuY2UgaW50ZXJzZWN0aW9uIGFicyBzaWduIHNpbiBjb3MgdGFuIGFjb3MgYXNpbiBhdGFuIGF0YW4yIGZsb29yIHJvdW5kIGNlaWwgbG4gbG9nIHBvdyBzcXJ0IGV4cCByYW5kcyBtaW4gbWF4IGNvbmNhdCBsb29rdXAgc3RyIGNociBzZWFyY2ggdmVyc2lvbiB2ZXJzaW9uX251bSBub3JtIGNyb3NzIHBhcmVudF9tb2R1bGUgZWNobyBpbXBvcnQgaW1wb3J0X2R4ZiBkeGZfbGluZWFyX2V4dHJ1ZGUgbGluZWFyX2V4dHJ1ZGUgcm90YXRlX2V4dHJ1ZGUgc3VyZmFjZSBwcm9qZWN0aW9uIHJlbmRlciBjaGlsZHJlbiBkeGZfY3Jvc3MgZHhmX2RpbSBsZXQgYXNzaWduJ1xuXHRcdH0sXG5cdFx0Y29udGFpbnM6IFtcblx0XHRcdGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcblx0XHRcdGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG5cdFx0XHROVU1CRVJTLFxuXHRcdFx0UFJFUFJPLFxuXHRcdFx0U1RSSU5HLFxuXHRcdFx0U1BFQ0lBTF9WQVJTLFxuXHRcdFx0TU9ESUZJRVJTLFxuXHRcdFx0RlVOQ1RJT05TXG5cdFx0XVxuXHR9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgT1hZR0VORV9LRVlXT1JEUyA9ICdhYnN0cmFjdCBhZGQgYW5kIGFycmF5IGFzIGFzYyBhc3BlY3QgYXNzZW1ibHkgYXN5bmMgYmVnaW4gYnJlYWsgYmxvY2sgYnkgY2FzZSBjbGFzcyBjb25jYXQgY29uc3QgY29weSBjb25zdHJ1Y3RvciBjb250aW51ZSAnK1xuICAgICdjcmVhdGUgZGVmYXVsdCBkZWxlZ2F0ZSBkZXNjIGRpc3RpbmN0IGRpdiBkbyBkb3dudG8gZHluYW1pYyBlYWNoIGVsc2UgZW1wdHkgZW5kIGVuc3VyZSBlbnVtIGVxdWFscyBldmVudCBleGNlcHQgZXhpdCBleHRlbnNpb24gZXh0ZXJuYWwgZmFsc2UgJytcbiAgICAnZmluYWwgZmluYWxpemUgZmluYWxpemVyIGZpbmFsbHkgZmxhZ3MgZm9yIGZvcndhcmQgZnJvbSBmdW5jdGlvbiBmdXR1cmUgZ2xvYmFsIGdyb3VwIGhhcyBpZiBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIGltcGxpZXMgaW4gaW5kZXggaW5oZXJpdGVkICcrXG4gICAgJ2lubGluZSBpbnRlcmZhY2UgaW50byBpbnZhcmlhbnRzIGlzIGl0ZXJhdG9yIGpvaW4gbG9ja2VkIGxvY2tpbmcgbG9vcCBtYXRjaGluZyBtZXRob2QgbW9kIG1vZHVsZSBuYW1lc3BhY2UgbmVzdGVkIG5ldyBuaWwgbm90IG5vdGlmeSBudWxsYWJsZSBvZiAnK1xuICAgICdvbGQgb24gb3BlcmF0b3Igb3Igb3JkZXIgb3V0IG92ZXJyaWRlIHBhcmFsbGVsIHBhcmFtcyBwYXJ0aWFsIHBpbm5lZCBwcml2YXRlIHByb2NlZHVyZSBwcm9wZXJ0eSBwcm90ZWN0ZWQgcHVibGljIHF1ZXJ5YWJsZSByYWlzZSByZWFkIHJlYWRvbmx5ICcrXG4gICAgJ3JlY29yZCByZWludHJvZHVjZSByZW1vdmUgcmVwZWF0IHJlcXVpcmUgcmVzdWx0IHJldmVyc2Ugc2VhbGVkIHNlbGVjdCBzZWxmIHNlcXVlbmNlIHNldCBzaGwgc2hyIHNraXAgc3RhdGljIHN0ZXAgc29mdCB0YWtlIHRoZW4gdG8gdHJ1ZSB0cnkgdHVwbGUgJytcbiAgICAndHlwZSB1bmlvbiB1bml0IHVuc2FmZSB1bnRpbCB1c2VzIHVzaW5nIHZhciB2aXJ0dWFsIHJhaXNlcyB2b2xhdGlsZSB3aGVyZSB3aGlsZSB3aXRoIHdyaXRlIHhvciB5aWVsZCBhd2FpdCBtYXBwZWQgZGVwcmVjYXRlZCBzdGRjYWxsIGNkZWNsIHBhc2NhbCAnK1xuICAgICdyZWdpc3RlciBzYWZlY2FsbCBvdmVybG9hZCBsaWJyYXJ5IHBsYXRmb3JtIHJlZmVyZW5jZSBwYWNrZWQgc3RyaWN0IHB1Ymxpc2hlZCBhdXRvcmVsZWFzZXBvb2wgc2VsZWN0b3Igc3Ryb25nIHdlYWsgdW5yZXRhaW5lZCc7XG4gIHZhciBDVVJMWV9DT01NRU5UID0gIGhsanMuQ09NTUVOVChcbiAgICAneycsXG4gICAgJ30nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgKTtcbiAgdmFyIFBBUkVOX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJ1xcXFwoXFxcXConLFxuICAgICdcXFxcKlxcXFwpJyxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfVxuICApO1xuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnLFxuICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnXFwnXFwnJ31dXG4gIH07XG4gIHZhciBDSEFSX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLCBiZWdpbjogJygjXFxcXGQrKSsnXG4gIH07XG4gIHZhciBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yIGRlc3RydWN0b3IgcHJvY2VkdXJlIG1ldGhvZCcsIGVuZDogJ1s6O10nLFxuICAgIGtleXdvcmRzOiAnZnVuY3Rpb24gY29uc3RydWN0b3J8MTAgZGVzdHJ1Y3RvcnwxMCBwcm9jZWR1cmV8MTAgbWV0aG9kfDEwJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgICAgICBrZXl3b3JkczogT1hZR0VORV9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtTVFJJTkcsIENIQVJfU1RSSU5HXVxuICAgICAgfSxcbiAgICAgIENVUkxZX0NPTU1FTlQsIFBBUkVOX0NPTU1FTlRcbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBsZXhlbWVzOiAvXFwuP1xcdysvLFxuICAgIGtleXdvcmRzOiBPWFlHRU5FX0tFWVdPUkRTLFxuICAgIGlsbGVnYWw6ICcoXCJ8XFxcXCRbRy1aZy16XXxcXFxcL1xcXFwqfDwvfD0+fC0+KScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENVUkxZX0NPTU1FTlQsIFBBUkVOX0NPTU1FTlQsIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNUUklORywgQ0hBUl9TVFJJTkcsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW46ICc9XFxcXGJjbGFzc1xcXFxiJywgZW5kOiAnZW5kOycsXG4gICAgICAgIGtleXdvcmRzOiBPWFlHRU5FX0tFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklORywgQ0hBUl9TVFJJTkcsXG4gICAgICAgICAgQ1VSTFlfQ09NTUVOVCwgUEFSRU5fQ09NTUVOVCwgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIEZVTkNUSU9OXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ1VSTFlfU1VCQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAneycsXG4gICAgJ30nLFxuICAgIHtcbiAgICAgIGNvbnRhaW5zOiBbJ3NlbGYnXVxuICAgIH1cbiAgKTtcbiAgcmV0dXJuIHtcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCdeIycsICckJyksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICdcXFxcXnJlbXsnLFxuICAgICAgICAnfScsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBDVVJMWV9TVUJDT01NRU5UXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeQCg/OkJBU0V8VVNFfENMQVNTfE9QVElPTlMpJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdAW1xcXFx3XFxcXC1dK1xcXFxbW1xcXFx3XjtcXFxcLV0qXFxcXF0oPzpcXFxcW1tcXFxcd147XFxcXC1dKlxcXFxdKT8oPzouKikkJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFwkXFxcXHs/W1xcXFx3XFxcXC1cXFxcLlxcXFw6XStcXFxcfT8nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICdcXFxcXltcXFxcd1xcXFwtXFxcXC5cXFxcOl0rJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcXiNbMC05YS1mQS1GXSsnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIE1BQ1JPID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qL1xuICB9O1xuICB2YXIgVEFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvPCg/IVxcLykvLCBlbmQ6IC8+L1xuICB9O1xuICB2YXIgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cIi8sIGVuZDogL1wiL1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydwZi5jb25mJ10sXG4gICAgbGV4ZW1lczogL1thLXowLTlfPD4tXSsvLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjogLyogYmxvY2sgbWF0Y2ggcGFzcyBhcmUgXCJhY3Rpb25zXCIgaW4gcGYuY29uZig1KSwgdGhlIHJlc3QgYXJlXG4gICAgICAgICAgICAgICAgICogbGV4aWNhbGx5IHNpbWlsYXIgdG9wLWxldmVsIGNvbW1hbmRzLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAnYmxvY2sgbWF0Y2ggcGFzcyBsb2FkIGFuY2hvcnw1IGFudGlzcG9vZnwxMCBzZXQgdGFibGUnLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2luIG91dCBsb2cgcXVpY2sgb24gcmRvbWFpbiBpbmV0IGluZXQ2IHByb3RvIGZyb20gcG9ydCBvcyB0byByb3V0ZScgK1xuICAgICAgICAnYWxsb3ctb3B0cyBkaXZlcnQtcGFja2V0IGRpdmVydC1yZXBseSBkaXZlcnQtdG8gZmxhZ3MgZ3JvdXAgaWNtcC10eXBlJyArXG4gICAgICAgICdpY21wNi10eXBlIGxhYmVsIG9uY2UgcHJvYmFiaWxpdHkgcmVjaWV2ZWQtb24gcnRhYmxlIHByaW8gcXVldWUnICtcbiAgICAgICAgJ3RvcyB0YWcgdGFnZ2VkIHVzZXIga2VlcCBmcmFnbWVudCBmb3Igb3MgZHJvcCcgK1xuICAgICAgICAnYWYtdG98MTAgYmluYXQtdG98MTAgbmF0LXRvfDEwIHJkci10b3wxMCBiaXRtYXNrIGxlYXN0LXN0YXRzIHJhbmRvbSByb3VuZC1yb2JpbicgK1xuICAgICAgICAnc291cmNlLWhhc2ggc3RhdGljLXBvcnQnICtcbiAgICAgICAgJ2R1cC10byByZXBseS10byByb3V0ZS10bycgK1xuICAgICAgICAncGFyZW50IGJhbmR3aWR0aCBkZWZhdWx0IG1pbiBtYXggcWxpbWl0JyArXG4gICAgICAgICdibG9jay1wb2xpY3kgZGVidWcgZmluZ2VycHJpbnRzIGhvc3RpZCBsaW1pdCBsb2dpbnRlcmZhY2Ugb3B0aW1pemF0aW9uJyArXG4gICAgICAgICdyZWFzc2VtYmxlIHJ1bGVzZXQtb3B0aW1pemF0aW9uIGJhc2ljIG5vbmUgcHJvZmlsZSBza2lwIHN0YXRlLWRlZmF1bHRzJyArXG4gICAgICAgICdzdGF0ZS1wb2xpY3kgdGltZW91dCcgK1xuICAgICAgICAnY29uc3QgY291bnRlcnMgcGVyc2lzdCcgK1xuICAgICAgICAnbm8gbW9kdWxhdGUgc3lucHJveHkgc3RhdGV8NSBmbG9hdGluZyBpZi1ib3VuZCBuby1zeW5jIHBmbG93fDEwIHNsb3BweScgK1xuICAgICAgICAnc291cmNlLXRyYWNrIGdsb2JhbCBydWxlIG1heC1zcmMtbm9kZXMgbWF4LXNyYy1zdGF0ZXMgbWF4LXNyYy1jb25uJyArXG4gICAgICAgICdtYXgtc3JjLWNvbm4tcmF0ZSBvdmVybG9hZCBmbHVzaCcgK1xuICAgICAgICAnc2NydWJ8NSBtYXgtbXNzIG1pbi10dGwgbm8tZGZ8MTAgcmFuZG9tLWlkJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdhbGwgYW55IG5vLXJvdXRlIHNlbGYgdXJwZi1mYWlsZWQgZWdyZXNzfDUgdW5rbm93bidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBNQUNSTyxcbiAgICAgIFRBQkxFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFZBUklBQkxFID0ge1xuICAgIGJlZ2luOiAnXFxcXCQrW2EtekEtWl9cXHg3Zi1cXHhmZl1bYS16QS1aMC05X1xceDdmLVxceGZmXSonXG4gIH07XG4gIHZhciBQUkVQUk9DRVNTT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsIGJlZ2luOiAvPFxcPyhwaHApP3xcXD8+L1xuICB9O1xuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIFBSRVBST0NFU1NPUl0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdiXCInLCBlbmQ6ICdcIidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnYlxcJycsIGVuZDogJ1xcJydcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7aWxsZWdhbDogbnVsbH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtpbGxlZ2FsOiBudWxsfSlcbiAgICBdXG4gIH07XG4gIHZhciBOVU1CRVIgPSB7dmFyaWFudHM6IFtobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSwgaGxqcy5DX05VTUJFUl9NT0RFXX07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydwaHAzJywgJ3BocDQnLCAncGhwNScsICdwaHA2J10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczpcbiAgICAgICdhbmQgaW5jbHVkZV9vbmNlIGxpc3QgYWJzdHJhY3QgZ2xvYmFsIHByaXZhdGUgZWNobyBpbnRlcmZhY2UgYXMgc3RhdGljIGVuZHN3aXRjaCAnICtcbiAgICAgICdhcnJheSBudWxsIGlmIGVuZHdoaWxlIG9yIGNvbnN0IGZvciBlbmRmb3JlYWNoIHNlbGYgdmFyIHdoaWxlIGlzc2V0IHB1YmxpYyAnICtcbiAgICAgICdwcm90ZWN0ZWQgZXhpdCBmb3JlYWNoIHRocm93IGVsc2VpZiBpbmNsdWRlIF9fRklMRV9fIGVtcHR5IHJlcXVpcmVfb25jZSBkbyB4b3IgJyArXG4gICAgICAncmV0dXJuIHBhcmVudCBjbG9uZSB1c2UgX19DTEFTU19fIF9fTElORV9fIGVsc2UgYnJlYWsgcHJpbnQgZXZhbCBuZXcgJyArXG4gICAgICAnY2F0Y2ggX19NRVRIT0RfXyBjYXNlIGV4Y2VwdGlvbiBkZWZhdWx0IGRpZSByZXF1aXJlIF9fRlVOQ1RJT05fXyAnICtcbiAgICAgICdlbmRkZWNsYXJlIGZpbmFsIHRyeSBzd2l0Y2ggY29udGludWUgZW5kZm9yIGVuZGlmIGRlY2xhcmUgdW5zZXQgdHJ1ZSBmYWxzZSAnICtcbiAgICAgICd0cmFpdCBnb3RvIGluc3RhbmNlb2YgaW5zdGVhZG9mIF9fRElSX18gX19OQU1FU1BBQ0VfXyAnICtcbiAgICAgICd5aWVsZCBmaW5hbGx5JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHtjb250YWluczogW1BSRVBST0NFU1NPUl19KSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7XG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ19faGFsdF9jb21waWxlci4rPzsnLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgIGtleXdvcmRzOiAnX19oYWx0X2NvbXBpbGVyJyxcbiAgICAgICAgICBsZXhlbWVzOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC88PDxbJ1wiXT9cXHcrWydcIl0/JC8sIGVuZDogL15cXHcrOz8kLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge2JlZ2luOiAvXFwkXFx3Ky99LFxuICAgICAgICAgICAgICB7YmVnaW46IC9cXHtcXCQvLCBlbmQ6IC9cXH0vfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsIGJlZ2luOiAvXFwkdGhpc1xcYi9cbiAgICAgIH0sXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIHtcbiAgICAgICAgLy8gc3dhbGxvdyBjb21wb3NlZCBpZGVudGlmaWVycyB0byBhdm9pZCBwYXJzaW5nIHRoZW0gYXMga2V5d29yZHNcbiAgICAgICAgYmVnaW46IC8oOjp8LT4pK1thLXpBLVpfXFx4N2YtXFx4ZmZdW2EtekEtWjAtOV9cXHg3Zi1cXHhmZl0qL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLCBlbmQ6IC9bO3tdLywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFwkfFxcXFxbfCUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBOVU1CRVJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsIGVuZDogJ3snLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvWzpcXChcXCRcIl0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJ30sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25hbWVzcGFjZScsIGVuZDogJzsnLFxuICAgICAgICBpbGxlZ2FsOiAvW1xcLiddLyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICd1c2UnLCBlbmQ6ICc7JyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPT4nIC8vIE5vIG1hcmt1cCwganVzdCBhIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnYWN0b3IgYWRkcmVzc29mIGFuZCBhcyBiZSBicmVhayBjbGFzcyBjb21waWxlX2Vycm9yIGNvbXBpbGVfaW50cmluc2ljJyArXG4gICAgICAnY29uc3VtZSBjb250aW51ZSBkZWxlZ2F0ZSBkaWdlc3RvZiBkbyBlbHNlIGVsc2VpZiBlbWJlZCBlbmQgZXJyb3InICtcbiAgICAgICdmb3IgZnVuIGlmIGlmZGVmIGluIGludGVyZmFjZSBpcyBpc250IGxhbWJkYSBsZXQgbWF0Y2ggbmV3IG5vdCBvYmplY3QnICtcbiAgICAgICdvciBwcmltaXRpdmUgcmVjb3ZlciByZXBlYXQgcmV0dXJuIHN0cnVjdCB0aGVuIHRyYWl0IHRyeSB0eXBlIHVudGlsICcgK1xuICAgICAgJ3VzZSB2YXIgd2hlcmUgd2hpbGUgd2l0aCB4b3InLFxuICAgIG1ldGE6XG4gICAgICAnaXNvIHZhbCB0YWcgdHJuIGJveCByZWYnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndGhpcyBmYWxzZSB0cnVlJ1xuICB9O1xuXG4gIHZhciBUUklQTEVfUVVPVEVfU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1wiXCJcIicsIGVuZDogJ1wiXCJcIicsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIHZhciBRVU9URV9TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gIH07XG5cbiAgdmFyIFNJTkdMRV9RVU9URV9DSEFSX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcJycsIGVuZDogJ1xcJycsXG4gICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHZhciBUWVBFX05BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgYmVnaW46ICdcXFxcYl8/W0EtWl1bXFxcXHddKicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIFBSSU1FRF9OQU1FID0ge1xuICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcJycsIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHZhciBDTEFTUyA9IHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGFjdG9yJywgZW5kOiAnJCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfVxuXG4gIHZhciBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW5LZXl3b3JkczogJ25ldyBmdW4nLCBlbmQ6ICc9PicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRZUEVfTkFNRSxcbiAgICAgICAgICBQUklNRURfTkFNRSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzovLCBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtUWVBFX05BTUVdXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENMQVNTLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBUWVBFX05BTUUsXG4gICAgICBUUklQTEVfUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBRVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFNJTkdMRV9RVU9URV9DSEFSX01PREUsXG4gICAgICBQUklNRURfTkFNRSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQkFDS1RJQ0tfRVNDQVBFID0ge1xuICAgIGJlZ2luOiAnYFtcXFxcc1xcXFxTXScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIHZhciBWQVIgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IC9cXCRbXFx3XFxkXVtcXHdcXGRfOl0qL31cbiAgICBdXG4gIH07XG4gIHZhciBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAvXFwkKG51bGx8dHJ1ZXxmYWxzZSlcXGIvXG4gIH07XG4gIHZhciBRVU9URV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1wiLywgZW5kOiAvXCIvIH0sXG4gICAgICB7IGJlZ2luOiAvQFwiLywgZW5kOiAvXlwiQC8gfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEJBQ0tUSUNLX0VTQ0FQRSxcbiAgICAgIFZBUixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xcJFtBLXpdLywgZW5kOiAvW15BLXpdL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgdmFyIEFQT1NfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC8nLywgZW5kOiAvJy8gfSxcbiAgICAgIHsgYmVnaW46IC9AJy8sIGVuZDogL14nQC8gfVxuICAgIF1cbiAgfTtcblxuICB2YXIgUFNfSEVMUFRBR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLyogbm8gcGFyYW1hdGVyIGhlbHAgdGFncyAqLyBcbiAgICAgIHsgYmVnaW46IC9cXC4oc3lub3BzaXN8ZGVzY3JpcHRpb258ZXhhbXBsZXxpbnB1dHN8b3V0cHV0c3xub3Rlc3xsaW5rfGNvbXBvbmVudHxyb2xlfGZ1bmN0aW9uYWxpdHkpLyB9LFxuICAgICAgLyogb25lIHBhcmFtZXRlciBoZWxwIHRhZ3MgKi9cbiAgICAgIHsgYmVnaW46IC9cXC4ocGFyYW1ldGVyfGZvcndhcmRoZWxwdGFyZ2V0bmFtZXxmb3J3YXJkaGVscGNhdGVnb3J5fHJlbW90ZWhlbHBydW5zcGFjZXxleHRlcm5hbGhlbHApXFxzK1xcUysvIH1cbiAgICBdXG4gIH07XG4gIHZhciBQU19DT01NRU5UID0gaGxqcy5pbmhlcml0KFxuICAgIGhsanMuQ09NTUVOVChudWxsLCBudWxsKSxcbiAgICB7XG4gICAgICB2YXJpYW50czogW1xuICAgICAgICAvKiBzaW5nbGUtbGluZSBjb21tZW50ICovXG4gICAgICAgIHsgYmVnaW46IC8jLywgZW5kOiAvJC8gfSxcbiAgICAgICAgLyogbXVsdGktbGluZSBjb21tZW50ICovXG4gICAgICAgIHsgYmVnaW46IC88Iy8sIGVuZDogLyM+LyB9XG4gICAgICBdLFxuICAgICAgY29udGFpbnM6IFtQU19IRUxQVEFHU11cbiAgICB9XG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3BzJ10sXG4gICAgbGV4ZW1lczogLy0/W0EtelxcLlxcLV0rLyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAnaWYgZWxzZSBmb3JlYWNoIHJldHVybiBmdW5jdGlvbiBkbyB3aGlsZSB1bnRpbCBlbHNlaWYgYmVnaW4gZm9yIHRyYXAgZGF0YSBkeW5hbWljcGFyYW0gZW5kIGJyZWFrIHRocm93IHBhcmFtIGNvbnRpbnVlIGZpbmFsbHkgaW4gc3dpdGNoIGV4aXQgZmlsdGVyIHRyeSBwcm9jZXNzIGNhdGNoJyxcbiAgICAgIGJ1aWx0X2luOiAnQWRkLUNvbXB1dGVyIEFkZC1Db250ZW50IEFkZC1IaXN0b3J5IEFkZC1Kb2JUcmlnZ2VyIEFkZC1NZW1iZXIgQWRkLVBTU25hcGluIEFkZC1UeXBlIENoZWNrcG9pbnQtQ29tcHV0ZXIgQ2xlYXItQ29udGVudCBDbGVhci1FdmVudExvZyBDbGVhci1IaXN0b3J5IENsZWFyLUhvc3QgQ2xlYXItSXRlbSBDbGVhci1JdGVtUHJvcGVydHkgQ2xlYXItVmFyaWFibGUgQ29tcGFyZS1PYmplY3QgQ29tcGxldGUtVHJhbnNhY3Rpb24gQ29ubmVjdC1QU1Nlc3Npb24gQ29ubmVjdC1XU01hbiBDb252ZXJ0LVBhdGggQ29udmVydEZyb20tQ3N2IENvbnZlcnRGcm9tLUpzb24gQ29udmVydEZyb20tU2VjdXJlU3RyaW5nIENvbnZlcnRGcm9tLVN0cmluZ0RhdGEgQ29udmVydFRvLUNzdiBDb252ZXJ0VG8tSHRtbCBDb252ZXJ0VG8tSnNvbiBDb252ZXJ0VG8tU2VjdXJlU3RyaW5nIENvbnZlcnRUby1YbWwgQ29weS1JdGVtIENvcHktSXRlbVByb3BlcnR5IERlYnVnLVByb2Nlc3MgRGlzYWJsZS1Db21wdXRlclJlc3RvcmUgRGlzYWJsZS1Kb2JUcmlnZ2VyIERpc2FibGUtUFNCcmVha3BvaW50IERpc2FibGUtUFNSZW1vdGluZyBEaXNhYmxlLVBTU2Vzc2lvbkNvbmZpZ3VyYXRpb24gRGlzYWJsZS1XU01hbkNyZWRTU1AgRGlzY29ubmVjdC1QU1Nlc3Npb24gRGlzY29ubmVjdC1XU01hbiBEaXNhYmxlLVNjaGVkdWxlZEpvYiBFbmFibGUtQ29tcHV0ZXJSZXN0b3JlIEVuYWJsZS1Kb2JUcmlnZ2VyIEVuYWJsZS1QU0JyZWFrcG9pbnQgRW5hYmxlLVBTUmVtb3RpbmcgRW5hYmxlLVBTU2Vzc2lvbkNvbmZpZ3VyYXRpb24gRW5hYmxlLVNjaGVkdWxlZEpvYiBFbmFibGUtV1NNYW5DcmVkU1NQIEVudGVyLVBTU2Vzc2lvbiBFeGl0LVBTU2Vzc2lvbiBFeHBvcnQtQWxpYXMgRXhwb3J0LUNsaXhtbCBFeHBvcnQtQ29uc29sZSBFeHBvcnQtQ291bnRlciBFeHBvcnQtQ3N2IEV4cG9ydC1Gb3JtYXREYXRhIEV4cG9ydC1Nb2R1bGVNZW1iZXIgRXhwb3J0LVBTU2Vzc2lvbiBGb3JFYWNoLU9iamVjdCBGb3JtYXQtQ3VzdG9tIEZvcm1hdC1MaXN0IEZvcm1hdC1UYWJsZSBGb3JtYXQtV2lkZSBHZXQtQWNsIEdldC1BbGlhcyBHZXQtQXV0aGVudGljb2RlU2lnbmF0dXJlIEdldC1DaGlsZEl0ZW0gR2V0LUNvbW1hbmQgR2V0LUNvbXB1dGVyUmVzdG9yZVBvaW50IEdldC1Db250ZW50IEdldC1Db250cm9sUGFuZWxJdGVtIEdldC1Db3VudGVyIEdldC1DcmVkZW50aWFsIEdldC1DdWx0dXJlIEdldC1EYXRlIEdldC1FdmVudCBHZXQtRXZlbnRMb2cgR2V0LUV2ZW50U3Vic2NyaWJlciBHZXQtRXhlY3V0aW9uUG9saWN5IEdldC1Gb3JtYXREYXRhIEdldC1Ib3N0IEdldC1Ib3RGaXggR2V0LUhlbHAgR2V0LUhpc3RvcnkgR2V0LUlzZVNuaXBwZXQgR2V0LUl0ZW0gR2V0LUl0ZW1Qcm9wZXJ0eSBHZXQtSm9iIEdldC1Kb2JUcmlnZ2VyIEdldC1Mb2NhdGlvbiBHZXQtTWVtYmVyIEdldC1Nb2R1bGUgR2V0LVBmeENlcnRpZmljYXRlIEdldC1Qcm9jZXNzIEdldC1QU0JyZWFrcG9pbnQgR2V0LVBTQ2FsbFN0YWNrIEdldC1QU0RyaXZlIEdldC1QU1Byb3ZpZGVyIEdldC1QU1Nlc3Npb24gR2V0LVBTU2Vzc2lvbkNvbmZpZ3VyYXRpb24gR2V0LVBTU25hcGluIEdldC1SYW5kb20gR2V0LVNjaGVkdWxlZEpvYiBHZXQtU2NoZWR1bGVkSm9iT3B0aW9uIEdldC1TZXJ2aWNlIEdldC1UcmFjZVNvdXJjZSBHZXQtVHJhbnNhY3Rpb24gR2V0LVR5cGVEYXRhIEdldC1VSUN1bHR1cmUgR2V0LVVuaXF1ZSBHZXQtVmFyaWFibGUgR2V0LVZlcmIgR2V0LVdpbkV2ZW50IEdldC1XbWlPYmplY3QgR2V0LVdTTWFuQ3JlZFNTUCBHZXQtV1NNYW5JbnN0YW5jZSBHcm91cC1PYmplY3QgSW1wb3J0LUFsaWFzIEltcG9ydC1DbGl4bWwgSW1wb3J0LUNvdW50ZXIgSW1wb3J0LUNzdiBJbXBvcnQtSXNlU25pcHBldCBJbXBvcnQtTG9jYWxpemVkRGF0YSBJbXBvcnQtUFNTZXNzaW9uIEltcG9ydC1Nb2R1bGUgSW52b2tlLUFzV29ya2Zsb3cgSW52b2tlLUNvbW1hbmQgSW52b2tlLUV4cHJlc3Npb24gSW52b2tlLUhpc3RvcnkgSW52b2tlLUl0ZW0gSW52b2tlLVJlc3RNZXRob2QgSW52b2tlLVdlYlJlcXVlc3QgSW52b2tlLVdtaU1ldGhvZCBJbnZva2UtV1NNYW5BY3Rpb24gSm9pbi1QYXRoIExpbWl0LUV2ZW50TG9nIE1lYXN1cmUtQ29tbWFuZCBNZWFzdXJlLU9iamVjdCBNb3ZlLUl0ZW0gTW92ZS1JdGVtUHJvcGVydHkgTmV3LUFsaWFzIE5ldy1FdmVudCBOZXctRXZlbnRMb2cgTmV3LUlzZVNuaXBwZXQgTmV3LUl0ZW0gTmV3LUl0ZW1Qcm9wZXJ0eSBOZXctSm9iVHJpZ2dlciBOZXctT2JqZWN0IE5ldy1Nb2R1bGUgTmV3LU1vZHVsZU1hbmlmZXN0IE5ldy1QU0RyaXZlIE5ldy1QU1Nlc3Npb24gTmV3LVBTU2Vzc2lvbkNvbmZpZ3VyYXRpb25GaWxlIE5ldy1QU1Nlc3Npb25PcHRpb24gTmV3LVBTVHJhbnNwb3J0T3B0aW9uIE5ldy1QU1dvcmtmbG93RXhlY3V0aW9uT3B0aW9uIE5ldy1QU1dvcmtmbG93U2Vzc2lvbiBOZXctU2NoZWR1bGVkSm9iT3B0aW9uIE5ldy1TZXJ2aWNlIE5ldy1UaW1lU3BhbiBOZXctVmFyaWFibGUgTmV3LVdlYlNlcnZpY2VQcm94eSBOZXctV2luRXZlbnQgTmV3LVdTTWFuSW5zdGFuY2UgTmV3LVdTTWFuU2Vzc2lvbk9wdGlvbiBPdXQtRGVmYXVsdCBPdXQtRmlsZSBPdXQtR3JpZFZpZXcgT3V0LUhvc3QgT3V0LU51bGwgT3V0LVByaW50ZXIgT3V0LVN0cmluZyBQb3AtTG9jYXRpb24gUHVzaC1Mb2NhdGlvbiBSZWFkLUhvc3QgUmVjZWl2ZS1Kb2IgUmVnaXN0ZXItRW5naW5lRXZlbnQgUmVnaXN0ZXItT2JqZWN0RXZlbnQgUmVnaXN0ZXItUFNTZXNzaW9uQ29uZmlndXJhdGlvbiBSZWdpc3Rlci1TY2hlZHVsZWRKb2IgUmVnaXN0ZXItV21pRXZlbnQgUmVtb3ZlLUNvbXB1dGVyIFJlbW92ZS1FdmVudCBSZW1vdmUtRXZlbnRMb2cgUmVtb3ZlLUl0ZW0gUmVtb3ZlLUl0ZW1Qcm9wZXJ0eSBSZW1vdmUtSm9iIFJlbW92ZS1Kb2JUcmlnZ2VyIFJlbW92ZS1Nb2R1bGUgUmVtb3ZlLVBTQnJlYWtwb2ludCBSZW1vdmUtUFNEcml2ZSBSZW1vdmUtUFNTZXNzaW9uIFJlbW92ZS1QU1NuYXBpbiBSZW1vdmUtVHlwZURhdGEgUmVtb3ZlLVZhcmlhYmxlIFJlbW92ZS1XbWlPYmplY3QgUmVtb3ZlLVdTTWFuSW5zdGFuY2UgUmVuYW1lLUNvbXB1dGVyIFJlbmFtZS1JdGVtIFJlbmFtZS1JdGVtUHJvcGVydHkgUmVzZXQtQ29tcHV0ZXJNYWNoaW5lUGFzc3dvcmQgUmVzb2x2ZS1QYXRoIFJlc3RhcnQtQ29tcHV0ZXIgUmVzdGFydC1TZXJ2aWNlIFJlc3RvcmUtQ29tcHV0ZXIgUmVzdW1lLUpvYiBSZXN1bWUtU2VydmljZSBTYXZlLUhlbHAgU2VsZWN0LU9iamVjdCBTZWxlY3QtU3RyaW5nIFNlbGVjdC1YbWwgU2VuZC1NYWlsTWVzc2FnZSBTZXQtQWNsIFNldC1BbGlhcyBTZXQtQXV0aGVudGljb2RlU2lnbmF0dXJlIFNldC1Db250ZW50IFNldC1EYXRlIFNldC1FeGVjdXRpb25Qb2xpY3kgU2V0LUl0ZW0gU2V0LUl0ZW1Qcm9wZXJ0eSBTZXQtSm9iVHJpZ2dlciBTZXQtTG9jYXRpb24gU2V0LVBTQnJlYWtwb2ludCBTZXQtUFNEZWJ1ZyBTZXQtUFNTZXNzaW9uQ29uZmlndXJhdGlvbiBTZXQtU2NoZWR1bGVkSm9iIFNldC1TY2hlZHVsZWRKb2JPcHRpb24gU2V0LVNlcnZpY2UgU2V0LVN0cmljdE1vZGUgU2V0LVRyYWNlU291cmNlIFNldC1WYXJpYWJsZSBTZXQtV21pSW5zdGFuY2UgU2V0LVdTTWFuSW5zdGFuY2UgU2V0LVdTTWFuUXVpY2tDb25maWcgU2hvdy1Db21tYW5kIFNob3ctQ29udHJvbFBhbmVsSXRlbSBTaG93LUV2ZW50TG9nIFNvcnQtT2JqZWN0IFNwbGl0LVBhdGggU3RhcnQtSm9iIFN0YXJ0LVByb2Nlc3MgU3RhcnQtU2VydmljZSBTdGFydC1TbGVlcCBTdGFydC1UcmFuc2FjdGlvbiBTdGFydC1UcmFuc2NyaXB0IFN0b3AtQ29tcHV0ZXIgU3RvcC1Kb2IgU3RvcC1Qcm9jZXNzIFN0b3AtU2VydmljZSBTdG9wLVRyYW5zY3JpcHQgU3VzcGVuZC1Kb2IgU3VzcGVuZC1TZXJ2aWNlIFRlZS1PYmplY3QgVGVzdC1Db21wdXRlclNlY3VyZUNoYW5uZWwgVGVzdC1Db25uZWN0aW9uIFRlc3QtTW9kdWxlTWFuaWZlc3QgVGVzdC1QYXRoIFRlc3QtUFNTZXNzaW9uQ29uZmlndXJhdGlvbkZpbGUgVHJhY2UtQ29tbWFuZCBVbmJsb2NrLUZpbGUgVW5kby1UcmFuc2FjdGlvbiBVbnJlZ2lzdGVyLUV2ZW50IFVucmVnaXN0ZXItUFNTZXNzaW9uQ29uZmlndXJhdGlvbiBVbnJlZ2lzdGVyLVNjaGVkdWxlZEpvYiBVcGRhdGUtRm9ybWF0RGF0YSBVcGRhdGUtSGVscCBVcGRhdGUtTGlzdCBVcGRhdGUtVHlwZURhdGEgVXNlLVRyYW5zYWN0aW9uIFdhaXQtRXZlbnQgV2FpdC1Kb2IgV2FpdC1Qcm9jZXNzIFdoZXJlLU9iamVjdCBXcml0ZS1EZWJ1ZyBXcml0ZS1FcnJvciBXcml0ZS1FdmVudExvZyBXcml0ZS1Ib3N0IFdyaXRlLU91dHB1dCBXcml0ZS1Qcm9ncmVzcyBXcml0ZS1WZXJib3NlIFdyaXRlLVdhcm5pbmcgQWRkLU1EVFBlcnNpc3RlbnREcml2ZSBEaXNhYmxlLU1EVE1vbml0b3JTZXJ2aWNlIEVuYWJsZS1NRFRNb25pdG9yU2VydmljZSBHZXQtTURURGVwbG95bWVudFNoYXJlU3RhdGlzdGljcyBHZXQtTURUTW9uaXRvckRhdGEgR2V0LU1EVE9wZXJhdGluZ1N5c3RlbUNhdGFsb2cgR2V0LU1EVFBlcnNpc3RlbnREcml2ZSBJbXBvcnQtTURUQXBwbGljYXRpb24gSW1wb3J0LU1EVERyaXZlciBJbXBvcnQtTURUT3BlcmF0aW5nU3lzdGVtIEltcG9ydC1NRFRQYWNrYWdlIEltcG9ydC1NRFRUYXNrU2VxdWVuY2UgTmV3LU1EVERhdGFiYXNlIFJlbW92ZS1NRFRNb25pdG9yRGF0YSBSZW1vdmUtTURUUGVyc2lzdGVudERyaXZlIFJlc3RvcmUtTURUUGVyc2lzdGVudERyaXZlIFNldC1NRFRNb25pdG9yRGF0YSBUZXN0LU1EVERlcGxveW1lbnRTaGFyZSBUZXN0LU1EVE1vbml0b3JEYXRhIFVwZGF0ZS1NRFREYXRhYmFzZVNjaGVtYSBVcGRhdGUtTURURGVwbG95bWVudFNoYXJlIFVwZGF0ZS1NRFRMaW5rZWREUyBVcGRhdGUtTURUTWVkaWEgVXBkYXRlLU1EVE1lZGlhIEFkZC1WYW10UHJvZHVjdEtleSBFeHBvcnQtVmFtdERhdGEgRmluZC1WYW10TWFuYWdlZE1hY2hpbmUgR2V0LVZhbXRDb25maXJtYXRpb25JZCBHZXQtVmFtdFByb2R1Y3QgR2V0LVZhbXRQcm9kdWN0S2V5IEltcG9ydC1WYW10RGF0YSBJbml0aWFsaXplLVZhbXREYXRhIEluc3RhbGwtVmFtdENvbmZpcm1hdGlvbklkIEluc3RhbGwtVmFtdFByb2R1Y3RBY3RpdmF0aW9uIEluc3RhbGwtVmFtdFByb2R1Y3RLZXkgVXBkYXRlLVZhbXRQcm9kdWN0JyxcbiAgICAgIG5vbWFya3VwOiAnLW5lIC1lcSAtbHQgLWd0IC1nZSAtbGUgLW5vdCAtbGlrZSAtbm90bGlrZSAtbWF0Y2ggLW5vdG1hdGNoIC1jb250YWlucyAtbm90Y29udGFpbnMgLWluIC1ub3RpbiAtcmVwbGFjZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgUVVPVEVfU1RSSU5HLFxuICAgICAgQVBPU19TVFJJTkcsXG4gICAgICBMSVRFUkFMLFxuICAgICAgVkFSLFxuICAgICAgUFNfQ09NTUVOVFxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdCdWZmZXJlZFJlYWRlciBQVmVjdG9yIFBGb250IFBJbWFnZSBQR3JhcGhpY3MgSGFzaE1hcCBib29sZWFuIGJ5dGUgY2hhciBjb2xvciAnICtcbiAgICAgICAgJ2RvdWJsZSBmbG9hdCBpbnQgbG9uZyBTdHJpbmcgQXJyYXkgRmxvYXREaWN0IEZsb2F0TGlzdCBJbnREaWN0IEludExpc3QgSlNPTkFycmF5IEpTT05PYmplY3QgJyArXG4gICAgICAgICdPYmplY3QgU3RyaW5nRGljdCBTdHJpbmdMaXN0IFRhYmxlIFRhYmxlUm93IFhNTCAnICtcbiAgICAgICAgLy8gSmF2YSBrZXl3b3Jkc1xuICAgICAgICAnZmFsc2Ugc3luY2hyb25pemVkIGludCBhYnN0cmFjdCBmbG9hdCBwcml2YXRlIGNoYXIgYm9vbGVhbiBzdGF0aWMgbnVsbCBpZiBjb25zdCAnICtcbiAgICAgICAgJ2ZvciB0cnVlIHdoaWxlIGxvbmcgdGhyb3cgc3RyaWN0ZnAgZmluYWxseSBwcm90ZWN0ZWQgaW1wb3J0IG5hdGl2ZSBmaW5hbCByZXR1cm4gdm9pZCAnICtcbiAgICAgICAgJ2VudW0gZWxzZSBicmVhayB0cmFuc2llbnQgbmV3IGNhdGNoIGluc3RhbmNlb2YgYnl0ZSBzdXBlciB2b2xhdGlsZSBjYXNlIGFzc2VydCBzaG9ydCAnICtcbiAgICAgICAgJ3BhY2thZ2UgZGVmYXVsdCBkb3VibGUgcHVibGljIHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0aHJvd3MgcHJvdGVjdGVkIHB1YmxpYyBwcml2YXRlJyxcbiAgICAgIGxpdGVyYWw6ICdQMkQgUDNEIEhBTEZfUEkgUEkgUVVBUlRFUl9QSSBUQVUgVFdPX1BJJyxcbiAgICAgIHRpdGxlOiAnc2V0dXAgZHJhdycsXG4gICAgICBidWlsdF9pbjogJ2Rpc3BsYXlIZWlnaHQgZGlzcGxheVdpZHRoIG1vdXNlWSBtb3VzZVggbW91c2VQcmVzc2VkIHBtb3VzZVggcG1vdXNlWSBrZXkgJyArXG4gICAgICAgICdrZXlDb2RlIHBpeGVscyBmb2N1c2VkIGZyYW1lQ291bnQgZnJhbWVSYXRlIGhlaWdodCB3aWR0aCAnICtcbiAgICAgICAgJ3NpemUgY3JlYXRlR3JhcGhpY3MgYmVnaW5EcmF3IGNyZWF0ZVNoYXBlIGxvYWRTaGFwZSBQU2hhcGUgYXJjIGVsbGlwc2UgbGluZSBwb2ludCAnICtcbiAgICAgICAgJ3F1YWQgcmVjdCB0cmlhbmdsZSBiZXppZXIgYmV6aWVyRGV0YWlsIGJlemllclBvaW50IGJlemllclRhbmdlbnQgY3VydmUgY3VydmVEZXRhaWwgY3VydmVQb2ludCAnICtcbiAgICAgICAgJ2N1cnZlVGFuZ2VudCBjdXJ2ZVRpZ2h0bmVzcyBzaGFwZSBzaGFwZU1vZGUgYmVnaW5Db250b3VyIGJlZ2luU2hhcGUgYmV6aWVyVmVydGV4IGN1cnZlVmVydGV4ICcgK1xuICAgICAgICAnZW5kQ29udG91ciBlbmRTaGFwZSBxdWFkcmF0aWNWZXJ0ZXggdmVydGV4IGVsbGlwc2VNb2RlIG5vU21vb3RoIHJlY3RNb2RlIHNtb290aCBzdHJva2VDYXAgJyArXG4gICAgICAgICdzdHJva2VKb2luIHN0cm9rZVdlaWdodCBtb3VzZUNsaWNrZWQgbW91c2VEcmFnZ2VkIG1vdXNlTW92ZWQgbW91c2VQcmVzc2VkIG1vdXNlUmVsZWFzZWQgJyArXG4gICAgICAgICdtb3VzZVdoZWVsIGtleVByZXNzZWQga2V5UHJlc3NlZGtleVJlbGVhc2VkIGtleVR5cGVkIHByaW50IHByaW50bG4gc2F2ZSBzYXZlRnJhbWUgZGF5IGhvdXIgJyArXG4gICAgICAgICdtaWxsaXMgbWludXRlIG1vbnRoIHNlY29uZCB5ZWFyIGJhY2tncm91bmQgY2xlYXIgY29sb3JNb2RlIGZpbGwgbm9GaWxsIG5vU3Ryb2tlIHN0cm9rZSBhbHBoYSAnICtcbiAgICAgICAgJ2JsdWUgYnJpZ2h0bmVzcyBjb2xvciBncmVlbiBodWUgbGVycENvbG9yIHJlZCBzYXR1cmF0aW9uIG1vZGVsWCBtb2RlbFkgbW9kZWxaIHNjcmVlblggc2NyZWVuWSAnICtcbiAgICAgICAgJ3NjcmVlblogYW1iaWVudCBlbWlzc2l2ZSBzaGluaW5lc3Mgc3BlY3VsYXIgYWRkIGNyZWF0ZUltYWdlIGJlZ2luQ2FtZXJhIGNhbWVyYSBlbmRDYW1lcmEgZnJ1c3R1bSAnICtcbiAgICAgICAgJ29ydGhvIHBlcnNwZWN0aXZlIHByaW50Q2FtZXJhIHByaW50UHJvamVjdGlvbiBjdXJzb3IgZnJhbWVSYXRlIG5vQ3Vyc29yIGV4aXQgbG9vcCBub0xvb3AgcG9wU3R5bGUgJyArXG4gICAgICAgICdwdXNoU3R5bGUgcmVkcmF3IGJpbmFyeSBib29sZWFuIGJ5dGUgY2hhciBmbG9hdCBoZXggaW50IHN0ciB1bmJpbmFyeSB1bmhleCBqb2luIG1hdGNoIG1hdGNoQWxsIG5mICcgK1xuICAgICAgICAnbmZjIG5mcCBuZnMgc3BsaXQgc3BsaXRUb2tlbnMgdHJpbSBhcHBlbmQgYXJyYXlDb3B5IGNvbmNhdCBleHBhbmQgcmV2ZXJzZSBzaG9ydGVuIHNvcnQgc3BsaWNlIHN1YnNldCAnICtcbiAgICAgICAgJ2JveCBzcGhlcmUgc3BoZXJlRGV0YWlsIGNyZWF0ZUlucHV0IGNyZWF0ZVJlYWRlciBsb2FkQnl0ZXMgbG9hZEpTT05BcnJheSBsb2FkSlNPTk9iamVjdCBsb2FkU3RyaW5ncyAnICtcbiAgICAgICAgJ2xvYWRUYWJsZSBsb2FkWE1MIG9wZW4gcGFyc2VYTUwgc2F2ZVRhYmxlIHNlbGVjdEZvbGRlciBzZWxlY3RJbnB1dCBiZWdpblJhdyBiZWdpblJlY29yZCBjcmVhdGVPdXRwdXQgJyArXG4gICAgICAgICdjcmVhdGVXcml0ZXIgZW5kUmF3IGVuZFJlY29yZCBQcmludFdyaXRlcnNhdmVCeXRlcyBzYXZlSlNPTkFycmF5IHNhdmVKU09OT2JqZWN0IHNhdmVTdHJlYW0gc2F2ZVN0cmluZ3MgJyArXG4gICAgICAgICdzYXZlWE1MIHNlbGVjdE91dHB1dCBwb3BNYXRyaXggcHJpbnRNYXRyaXggcHVzaE1hdHJpeCByZXNldE1hdHJpeCByb3RhdGUgcm90YXRlWCByb3RhdGVZIHJvdGF0ZVogc2NhbGUgJyArXG4gICAgICAgICdzaGVhclggc2hlYXJZIHRyYW5zbGF0ZSBhbWJpZW50TGlnaHQgZGlyZWN0aW9uYWxMaWdodCBsaWdodEZhbGxvZmYgbGlnaHRzIGxpZ2h0U3BlY3VsYXIgbm9MaWdodHMgbm9ybWFsICcgK1xuICAgICAgICAncG9pbnRMaWdodCBzcG90TGlnaHQgaW1hZ2UgaW1hZ2VNb2RlIGxvYWRJbWFnZSBub1RpbnQgcmVxdWVzdEltYWdlIHRpbnQgdGV4dHVyZSB0ZXh0dXJlTW9kZSB0ZXh0dXJlV3JhcCAnICtcbiAgICAgICAgJ2JsZW5kIGNvcHkgZmlsdGVyIGdldCBsb2FkUGl4ZWxzIHNldCB1cGRhdGVQaXhlbHMgYmxlbmRNb2RlIGxvYWRTaGFkZXIgUFNoYWRlcnJlc2V0U2hhZGVyIHNoYWRlciBjcmVhdGVGb250ICcgK1xuICAgICAgICAnbG9hZEZvbnQgdGV4dCB0ZXh0Rm9udCB0ZXh0QWxpZ24gdGV4dExlYWRpbmcgdGV4dE1vZGUgdGV4dFNpemUgdGV4dFdpZHRoIHRleHRBc2NlbnQgdGV4dERlc2NlbnQgYWJzIGNlaWwgJyArXG4gICAgICAgICdjb25zdHJhaW4gZGlzdCBleHAgZmxvb3IgbGVycCBsb2cgbWFnIG1hcCBtYXggbWluIG5vcm0gcG93IHJvdW5kIHNxIHNxcnQgYWNvcyBhc2luIGF0YW4gYXRhbjIgY29zIGRlZ3JlZXMgJyArXG4gICAgICAgICdyYWRpYW5zIHNpbiB0YW4gbm9pc2Ugbm9pc2VEZXRhaWwgbm9pc2VTZWVkIHJhbmRvbSByYW5kb21HYXVzc2lhbiByYW5kb21TZWVkJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1thLXpBLVpfXVtcXFxcZGEtekEtWl9dK1xcXFwuW1xcXFxkYS16QS1aX117MSwzfScsIGVuZDogJzonLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyhuY2FsbHN8dG90dGltZXxjdW10aW1lKScsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ25jYWxscyB0b3R0aW1lfDEwIGN1bXRpbWV8MTAgZmlsZW5hbWUnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ2Z1bmN0aW9uIGNhbGxzJywgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5DX05VTUJFUl9NT0RFXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKSQnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG5cbiAgdmFyIEFUT00gPSB7XG5cbiAgICBiZWdpbjogL1thLXpdW0EtWmEtejAtOV9dKi8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIFZBUiA9IHtcblxuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogL1tBLVpdW2EtekEtWjAtOV9dKi99LFxuICAgICAge2JlZ2luOiAvX1tBLVphLXowLTlfXSovfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHZhciBQQVJFTlRFRCA9IHtcblxuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHZhciBMSVNUID0ge1xuXG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS9cbiAgfTtcblxuICB2YXIgTElORV9DT01NRU5UID0ge1xuXG4gICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgYmVnaW46IC8lLywgZW5kOiAvJC8sXG4gICAgY29udGFpbnM6IFtobGpzLlBIUkFTQUxfV09SRFNfTU9ERV1cbiAgfTtcblxuICB2YXIgQkFDS1RJQ0tfU1RSSU5HID0ge1xuXG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL2AvLCBlbmQ6IC9gLyxcbiAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgfTtcblxuICB2YXIgQ0hBUl9DT0RFID0ge1xuXG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgLy8gMCdhIGV0Yy5cbiAgICBiZWdpbjogLzBcXCcoXFxcXFxcJ3wuKS9cbiAgfTtcblxuICB2YXIgU1BBQ0VfQ09ERSA9IHtcblxuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8wXFwnXFxcXHMvIC8vIDAnXFxzXG4gIH07XG5cbiAgdmFyIFBSRURfT1AgPSB7IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgYmVnaW46IC86LS9cbiAgfTtcblxuICB2YXIgaW5uZXIgPSBbXG5cbiAgICBBVE9NLFxuICAgIFZBUixcbiAgICBQQVJFTlRFRCxcbiAgICBQUkVEX09QLFxuICAgIExJU1QsXG4gICAgTElORV9DT01NRU5ULFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgQkFDS1RJQ0tfU1RSSU5HLFxuICAgIENIQVJfQ09ERSxcbiAgICBTUEFDRV9DT0RFLFxuICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICBdO1xuXG4gIFBBUkVOVEVELmNvbnRhaW5zID0gaW5uZXI7XG4gIExJU1QuY29udGFpbnMgPSBpbm5lcjtcblxuICByZXR1cm4ge1xuICAgIGNvbnRhaW5zOiBpbm5lci5jb25jYXQoW1xuICAgICAge2JlZ2luOiAvXFwuJC99IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgXSlcbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdwYWNrYWdlIGltcG9ydCBvcHRpb24gb3B0aW9uYWwgcmVxdWlyZWQgcmVwZWF0ZWQgZ3JvdXAnLFxuICAgICAgYnVpbHRfaW46ICdkb3VibGUgZmxvYXQgaW50MzIgaW50NjQgdWludDMyIHVpbnQ2NCBzaW50MzIgc2ludDY0ICcgK1xuICAgICAgICAnZml4ZWQzMiBmaXhlZDY0IHNmaXhlZDMyIHNmaXhlZDY0IGJvb2wgc3RyaW5nIGJ5dGVzJyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdtZXNzYWdlIGVudW0gc2VydmljZScsIGVuZDogL1xcey8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICAgIHN0YXJ0czoge2VuZHNXaXRoUGFyZW50OiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlfSAvLyBoYWNrOiBlYXRpbmcgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgdGl0bGVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdycGMnLFxuICAgICAgICBlbmQ6IC87LywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6ICdycGMgcmV0dXJucydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXlxccypbQS1aX10rLyxcbiAgICAgICAgZW5kOiAvXFxzKj0vLCBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcblxuICB2YXIgUFVQUEVUX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgLyogbGFuZ3VhZ2Uga2V5d29yZHMgKi9cbiAgICAgICdhbmQgY2FzZSBkZWZhdWx0IGVsc2UgZWxzaWYgZmFsc2UgaWYgaW4gaW1wb3J0IGVuaGVyaXRzIG5vZGUgb3IgdHJ1ZSB1bmRlZiB1bmxlc3MgbWFpbiBzZXR0aW5ncyAkc3RyaW5nICcsXG4gICAgbGl0ZXJhbDpcbiAgICAvKiBtZXRhcGFyYW1ldGVycyAqL1xuICAgICAgJ2FsaWFzIGF1ZGl0IGJlZm9yZSBsb2dsZXZlbCBub29wIHJlcXVpcmUgc3Vic2NyaWJlIHRhZyAnICtcbiAgICAvKiBub3JtYWwgYXR0cmlidXRlcyAqL1xuICAgICAgJ293bmVyIGVuc3VyZSBncm91cCBtb2RlIG5hbWV8MCBjaGFuZ2VzIGNvbnRleHQgZm9yY2UgaW5jbCBsZW5zIGxvYWRfcGF0aCBvbmx5aWYgcHJvdmlkZXIgcmV0dXJucyByb290IHNob3dfZGlmZiB0eXBlX2NoZWNrICcgK1xuICAgICAgJ2VuX2FkZHJlc3MgaXBfYWRkcmVzcyByZWFsbmFtZSBjb21tYW5kIGVudmlyb25tZW50IGhvdXIgbW9udXRlIG1vbnRoIG1vbnRoZGF5IHNwZWNpYWwgdGFyZ2V0IHdlZWtkYXkgJytcbiAgICAgICdjcmVhdGVzIGN3ZCBvZ291dHB1dCByZWZyZXNoIHJlZnJlc2hvbmx5IHRyaWVzIHRyeV9zbGVlcCB1bWFzayBiYWNrdXAgY2hlY2tzdW0gY29udGVudCBjdGltZSBmb3JjZSBpZ25vcmUgJyArXG4gICAgICAnbGlua3MgbXRpbWUgcHVyZ2UgcmVjdXJzZSByZWN1cnNlbGltaXQgcmVwbGFjZSBzZWxpbnV4X2lnbm9yZV9kZWZhdWx0cyBzZWxyYW5nZSBzZWxyb2xlIHNlbHR5cGUgc2VsdXNlciBzb3VyY2UgJyArXG4gICAgICAnc291aXJjZV9wZXJtaXNzaW9ucyBzb3VyY2VzZWxlY3QgdmFsaWRhdGVfY21kIHZhbGlkYXRlX3JlcGxhY2VtZW50IGFsbG93ZHVwZSBhdHRyaWJ1dGVfbWVtYmVyc2hpcCBhdXRoX21lbWJlcnNoaXAgZm9yY2Vsb2NhbCBnaWQgJytcbiAgICAgICdpYV9sb2FkX21vZHVsZSBtZW1iZXJzIHN5c3RlbSBob3N0X2FsaWFzZXMgaXAgYWxsb3dlZF90cnVua192bGFucyBkZXNjcmlwdGlvbiBkZXZpY2VfdXJsIGR1cGxleCBlbmNhcHN1bGF0aW9uIGV0aGVyY2hhbm5lbCAnICtcbiAgICAgICduYXRpdmVfdmxhbiBzcGVlZCBwcmluY2lwYWxzIGFsbG93X3Jvb3QgYXV0aF9jbGFzcyBhdXRoX3R5cGUgYXV0aGVudGljYXRlX3VzZXIga19vZl9uIG1lY2hhbmlzbXMgcnVsZSBzZXNzaW9uX293bmVyIHNoYXJlZCBvcHRpb25zICcgK1xuICAgICAgJ2RldmljZSBmc3R5cGUgZW5hYmxlIGhhc3Jlc3RhcnQgZGlyZWN0b3J5IHByZXNlbnQgYWJzZW50IGxpbmsgYXRib290IGJsb2NrZGV2aWNlIGRldmljZSBkdW1wIHBhc3MgcmVtb3VudHMgcG9sbGVyX3RhZyB1c2UgJyArXG4gICAgICAnbWVzc2FnZSB3aXRocGF0aCBhZG1pbmZpbGUgYWxsb3dfdmlydHVhbCBhbGxvd2Nkcm9tIGNhdGVnb3J5IGNvbmZpZ2ZpbGVzIGZsYXZvciBpbnN0YWxsX29wdGlvbnMgaW5zdGFuY2UgcGFja2FnZV9zZXR0aW5ncyBwbGF0Zm9ybSAnICtcbiAgICAgICdyZXNwb25zZWZpbGUgc3RhdHVzIHVuaW5zdGFsbF9vcHRpb25zIHZlbmRvciB1bmxlc3Nfc3lzdGVtX3VzZXIgdW5sZXNzX3VpZCBiaW5hcnkgY29udHJvbCBmbGFncyBoYXNzdGF0dXMgbWFuaWZlc3QgcGF0dGVybiByZXN0YXJ0IHJ1bm5pbmcgJyArXG4gICAgICAnc3RhcnQgc3RvcCBhbGxvd2R1cGUgYXV0aHMgZXhwaXJ5IGdpZCBncm91cHMgaG9tZSBpdGVyYXRpb25zIGtleV9tZW1iZXJzaGlwIGtleXMgbWFuYWdlaG9tZSBtZW1iZXJzaGlwIHBhc3N3b3JkIHBhc3N3b3JkX21heF9hZ2UgJyArXG4gICAgICAncGFzc3dvcmRfbWluX2FnZSBwcm9maWxlX21lbWJlcnNoaXAgcHJvZmlsZXMgcHJvamVjdCBwdXJnZV9zc2hfa2V5cyByb2xlX21lbWJlcnNoaXAgcm9sZXMgc2FsdCBzaGVsbCB1aWQgYmFzZXVybCBjb3N0IGRlc2NyIGVuYWJsZWQgJyArXG4gICAgICAnZW5hYmxlZ3JvdXBzIGV4Y2x1ZGUgZmFpbG92ZXJtZXRob2QgZ3BnY2hlY2sgZ3Bna2V5IGh0dHBfY2FjaGluZyBpbmNsdWRlIGluY2x1ZGVwa2dzIGtlZXBhbGl2ZSBtZXRhZGF0YV9leHBpcmUgbWV0YWxpbmsgbWlycm9ybGlzdCAnICtcbiAgICAgICdwcmlvcml0eSBwcm90ZWN0IHByb3h5IHByb3h5X3Bhc3N3b3JkIHByb3h5X3VzZXJuYW1lIHJlcG9fZ3BnY2hlY2sgczNfZW5hYmxlZCBza2lwX2lmX3VuYXZhaWxhYmxlIHNzbGNhY2VydCBzc2xjbGllbnRjZXJ0IHNzbGNsaWVudGtleSAnICtcbiAgICAgICdzc2x2ZXJpZnkgbW91bnRlZCcsXG4gICAgYnVpbHRfaW46XG4gICAgLyogY29yZSBmYWN0cyAqL1xuICAgICAgJ2FyY2hpdGVjdHVyZSBhdWdlYXN2ZXJzaW9uIGJsb2NrZGV2aWNlcyBib2FyZG1hbnVmYWN0dXJlciBib2FyZHByb2R1Y3RuYW1lIGJvYXJkc2VyaWFsbnVtYmVyIGNma2V5IGRoY3Bfc2VydmVycyAnICtcbiAgICAgICdkb21haW4gZWMyXyBlYzJfdXNlcmRhdGEgZmFjdGVydmVyc2lvbiBmaWxlc3lzdGVtcyBsZG9tIGZxZG4gZ2lkIGhhcmR3YXJlaXNhIGhhcmR3YXJlbW9kZWwgaG9zdG5hbWUgaWR8MCBpbnRlcmZhY2VzICcrXG4gICAgICAnaXBhZGRyZXNzIGlwYWRkcmVzc18gaXBhZGRyZXNzNiBpcGFkZHJlc3M2XyBpcGhvc3RudW1iZXIgaXNfdmlydHVhbCBrZXJuZWwga2VybmVsbWFqdmVyc2lvbiBrZXJuZWxyZWxlYXNlIGtlcm5lbHZlcnNpb24gJyArXG4gICAgICAna2VybmVscmVsZWFzZSBrZXJuZWx2ZXJzaW9uIGxzYmRpc3Rjb2RlbmFtZSBsc2JkaXN0ZGVzY3JpcHRpb24gbHNiZGlzdGlkIGxzYmRpc3RyZWxlYXNlIGxzYm1hamRpc3RyZWxlYXNlIGxzYm1pbm9yZGlzdHJlbGVhc2UgJyArXG4gICAgICAnbHNicmVsZWFzZSBtYWNhZGRyZXNzIG1hY2FkZHJlc3NfIG1hY29zeF9idWlsZHZlcnNpb24gbWFjb3N4X3Byb2R1Y3RuYW1lIG1hY29zeF9wcm9kdWN0dmVyc2lvbiBtYWNvc3hfcHJvZHVjdHZlcnNvbl9tYWpvciAnICtcbiAgICAgICdtYWNvc3hfcHJvZHVjdHZlcnNpb25fbWlub3IgbWFudWZhY3R1cmVyIG1lbW9yeWZyZWUgbWVtb3J5c2l6ZSBuZXRtYXNrIG1ldG1hc2tfIG5ldHdvcmtfIG9wZXJhdGluZ3N5c3RlbSBvcGVyYXRpbmdzeXN0ZW1tYWpyZWxlYXNlICcrXG4gICAgICAnb3BlcmF0aW5nc3lzdGVtcmVsZWFzZSBvc2ZhbWlseSBwYXJ0aXRpb25zIHBhdGggcGh5c2ljYWxwcm9jZXNzb3Jjb3VudCBwcm9jZXNzb3IgcHJvY2Vzc29yY291bnQgcHJvZHVjdG5hbWUgcHMgcHVwcGV0dmVyc2lvbiAnK1xuICAgICAgJ3J1YnlzaXRlZGlyIHJ1Ynl2ZXJzaW9uIHNlbGludXggc2VsaW51eF9jb25maWdfbW9kZSBzZWxpbnV4X2NvbmZpZ19wb2xpY3kgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9jdXJyZW50X21vZGUgc2VsaW51eF9lbmZvcmNlZCAnK1xuICAgICAgJ3NlbGludXhfcG9saWN5dmVyc2lvbiBzZXJpYWxudW1iZXIgc3BfIHNzaGRzYWtleSBzc2hlY2RzYWtleSBzc2hyc2FrZXkgc3dhcGVuY3J5cHRlZCBzd2FwZnJlZSBzd2Fwc2l6ZSB0aW1lem9uZSB0eXBlIHVuaXF1ZWlkIHVwdGltZSAnK1xuICAgICAgJ3VwdGltZV9kYXlzIHVwdGltZV9ob3VycyB1cHRpbWVfc2Vjb25kcyB1dWlkIHZpcnR1YWwgdmxhbnMgeGVuZG9tYWlucyB6ZnNfdmVyc2lvbiB6b25lbmFlIHpvbmVzIHpwb29sX3ZlcnNpb24nXG4gIH07XG5cbiAgdmFyIENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyMnLCAnJCcpO1xuXG4gIHZhciBJREVOVF9SRSA9ICcoW0EtWmEtel9dfDo6KShcXFxcd3w6OikqJztcblxuICB2YXIgVElUTEUgPSBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IElERU5UX1JFfSk7XG5cbiAgdmFyIFZBUklBQkxFID0ge2NsYXNzTmFtZTogJ3ZhcmlhYmxlJywgYmVnaW46ICdcXFxcJCcgKyBJREVOVF9SRX07XG5cbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCBWQVJJQUJMRV0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogLycvLCBlbmQ6IC8nL30sXG4gICAgICB7YmVnaW46IC9cIi8sIGVuZDogL1wiL31cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3BwJ10sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENPTU1FTlQsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJywgZW5kOiAnXFxcXHt8OycsXG4gICAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgICAgY29udGFpbnM6IFtUSVRMRSwgQ09NTUVOVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLCBlbmQ6IC9cXHsvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLCBiZWdpbjogaGxqcy5JREVOVF9SRSwgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUgKyAnXFxcXHMrXFxcXHsnLCByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcey8sIGVuZDogL1xcfS8sXG4gICAgICAgICAgICBrZXl3b3JkczogUFVQUEVUX0tFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBDT01NRU5ULFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46J1thLXpBLVpfXStcXFxccyo9PicsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsIGVuZDogJz0+JyxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogJyhcXFxcYjBbMC03X10rKXwoXFxcXGIweFswLTlhLWZBLUZfXSspfChcXFxcYlsxLTldWzAtOV9dKihcXFxcLlswLTlfXSspPyl8WzBfXVxcXFxiJyxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgVkFSSUFCTEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IC8vIEJhc2UgZGVhZnVsdCBjb2xvcnMgaW4gUEIgSURFOiBiYWNrZ3JvdW5kOiAjRkZGRkRGOyBmb3JlZ3JvdW5kOiAjMDAwMDAwO1xuXG5mdW5jdGlvbihobGpzKSB7XG4gIHZhciBTVFJJTkdTID0geyAvLyBQQiBJREUgY29sb3I6ICMwMDgwRkYgKEF6dXJlIFJhZGlhbmNlKVxuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICcofik/XCInLCBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogJ1xcXFxuJ1xuICB9O1xuICB2YXIgQ09OU1RBTlRTID0geyAvLyBQQiBJREUgY29sb3I6ICM5MjRCNzIgKENhbm5vbiBQaW5rKVxuICAgIC8vICBcIiNcIiArIGEgbGV0dGVyIG9yIHVuZGVyc2NvcmUgKyBsZXR0ZXJzLCBkaWdpdHMgb3IgdW5kZXJzY29yZXMgKyAob3B0aW9uYWwpIFwiJFwiXG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJyNbYS16QS1aX11cXFxcdypcXFxcJD8nXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3BiJywgJ3BiaSddLFxuICAgIGtleXdvcmRzOiAvLyBQQiBJREUgY29sb3I6ICMwMDY2NjYgKEJsdWUgU3RvbmUpICsgQm9sZFxuICAgICAgLy8gVGhlIGZvbGxvd2luZyBrZXl3b3JkcyBsaXN0IHdhcyB0YWtlbiBhbmQgYWRhcHRlZCBmcm9tIEd1U2hIJ3MgUHVyZUJhc2ljIGxhbmd1YWdlIGZpbGUgZm9yIEdlU0hpLi4uXG4gICAgICAnQW5kIEFzIEJyZWFrIENhbGxEZWJ1Z2dlciBDYXNlIENvbXBpbGVyQ2FzZSBDb21waWxlckRlZmF1bHQgQ29tcGlsZXJFbHNlIENvbXBpbGVyRW5kSWYgQ29tcGlsZXJFbmRTZWxlY3QgJyArXG4gICAgICAnQ29tcGlsZXJFcnJvciBDb21waWxlcklmIENvbXBpbGVyU2VsZWN0IENvbnRpbnVlIERhdGEgRGF0YVNlY3Rpb24gRW5kRGF0YVNlY3Rpb24gRGVidWcgRGVidWdMZXZlbCAnICtcbiAgICAgICdEZWZhdWx0IERlZmluZSBEaW0gRGlzYWJsZUFTTSBEaXNhYmxlRGVidWdnZXIgRGlzYWJsZUV4cGxpY2l0IEVsc2UgRWxzZUlmIEVuYWJsZUFTTSAnICtcbiAgICAgICdFbmFibGVEZWJ1Z2dlciBFbmFibGVFeHBsaWNpdCBFbmQgRW5kRW51bWVyYXRpb24gRW5kSWYgRW5kSW1wb3J0IEVuZEludGVyZmFjZSBFbmRNYWNybyBFbmRQcm9jZWR1cmUgJyArXG4gICAgICAnRW5kU2VsZWN0IEVuZFN0cnVjdHVyZSBFbmRTdHJ1Y3R1cmVVbmlvbiBFbmRXaXRoIEVudW1lcmF0aW9uIEV4dGVuZHMgRmFrZVJldHVybiBGb3IgTmV4dCBGb3JFYWNoICcgK1xuICAgICAgJ0ZvckV2ZXIgR2xvYmFsIEdvc3ViIEdvdG8gSWYgSW1wb3J0IEltcG9ydEMgSW5jbHVkZUJpbmFyeSBJbmNsdWRlRmlsZSBJbmNsdWRlUGF0aCBJbnRlcmZhY2UgTWFjcm8gJyArXG4gICAgICAnTmV3TGlzdCBOb3QgT3IgUHJvY2VkdXJlUmV0dXJuIFByb3RlY3RlZCBQcm90b3R5cGUgJyArXG4gICAgICAnUHJvdG90eXBlQyBSZWFkIFJlRGltIFJlcGVhdCBVbnRpbCBSZXN0b3JlIFJldHVybiBTZWxlY3QgU2hhcmVkIFN0YXRpYyBTdGVwIFN0cnVjdHVyZSBTdHJ1Y3R1cmVVbmlvbiAnICtcbiAgICAgICdTd2FwIFRvIFdlbmQgV2hpbGUgV2l0aCBYSW5jbHVkZUZpbGUgWE9yICcgK1xuICAgICAgJ1Byb2NlZHVyZSBQcm9jZWR1cmVDIFByb2NlZHVyZUNETEwgUHJvY2VkdXJlRExMIERlY2xhcmUgRGVjbGFyZUMgRGVjbGFyZUNETEwgRGVjbGFyZURMTCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC8vIENPTU1FTlRTIHwgUEIgSURFIGNvbG9yOiAjMDBBQUFBIChQZXJzaWFuIEdyZWVuKVxuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7cmVsZXZhbmNlOiAwfSksXG5cbiAgICAgIHsgLy8gUFJPQ0VEVVJFUyBERUZJTklUSU9OU1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoUHJvY2VkdXJlfERlY2xhcmUpKEN8Q0RMTHxETEwpP1xcXFxiJyxcbiAgICAgICAgZW5kOiAnXFxcXCgnLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIFBST0NFRFVSRSBLRVlXT1JEUyB8IFBCIElERSBjb2xvcjogIzAwNjY2NiAoQmx1ZSBTdG9uZSkgKyBCb2xkXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnKFByb2NlZHVyZXxEZWNsYXJlKShDfENETEx8RExMKT8nLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBQUk9DRURVUkUgUkVUVVJOIFRZUEUgU0VUVElORyB8IFBCIElERSBjb2xvcjogIzAwMDAwMCAoQmxhY2spXG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXC5cXFxcdyonXG4gICAgICAgICAgICAvLyBlbmQ6ICcgJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIC8vIFBST0NFRFVSRSBOQU1FIHwgUEIgSURFIGNvbG9yOiAjMDA2NjY2IChCbHVlIFN0b25lKVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgU1RSSU5HUyxcbiAgICAgIENPTlNUQU5UU1xuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2FuZCBlbGlmIGlzIGdsb2JhbCBhcyBpbiBpZiBmcm9tIHJhaXNlIGZvciBleGNlcHQgZmluYWxseSBwcmludCBpbXBvcnQgcGFzcyByZXR1cm4gJyArXG4gICAgICAnZXhlYyBlbHNlIGJyZWFrIG5vdCB3aXRoIGNsYXNzIGFzc2VydCB5aWVsZCB0cnkgd2hpbGUgY29udGludWUgZGVsIG9yIGRlZiBsYW1iZGEgJyArXG4gICAgICAnYXN5bmMgYXdhaXQgbm9ubG9jYWx8MTAgTm9uZSBUcnVlIEZhbHNlJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdFbGxpcHNpcyBOb3RJbXBsZW1lbnRlZCdcbiAgfTtcbiAgdmFyIFBST01QVCA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJywgIGJlZ2luOiAvXig+Pj58XFwuXFwuXFwuKSAvXG4gIH07XG4gIHZhciBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXHsvLCBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyh1fGIpP3I/JycnLywgZW5kOiAvJycnLyxcbiAgICAgICAgY29udGFpbnM6IFtQUk9NUFRdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyh1fGIpP3I/XCJcIlwiLywgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgY29udGFpbnM6IFtQUk9NUFRdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhmcnxyZnxmKScnJy8sIGVuZDogLycnJy8sXG4gICAgICAgIGNvbnRhaW5zOiBbUFJPTVBULCBTVUJTVF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKGZyfHJmfGYpXCJcIlwiLywgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgY29udGFpbnM6IFtQUk9NUFQsIFNVQlNUXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8odXxyfHVyKScvLCBlbmQ6IC8nLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8odXxyfHVyKVwiLywgZW5kOiAvXCIvLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhifGJyKScvLCBlbmQ6IC8nL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oYnxicilcIi8sIGVuZDogL1wiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oZnJ8cmZ8ZiknLywgZW5kOiAvJy8sXG4gICAgICAgIGNvbnRhaW5zOiBbU1VCU1RdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhmcnxyZnxmKVwiLywgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW1NVQlNUXVxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG4gIHZhciBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJywgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IGhsanMuQklOQVJZX05VTUJFUl9SRSArICdbbExqSl0/J30sXG4gICAgICB7YmVnaW46ICdcXFxcYigwb1swLTddKylbbExqSl0/J30sXG4gICAgICB7YmVnaW46IGhsanMuQ19OVU1CRVJfUkUgKyAnW2xMakpdPyd9XG4gICAgXVxuICB9O1xuICB2YXIgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgIGNvbnRhaW5zOiBbJ3NlbGYnLCBQUk9NUFQsIE5VTUJFUiwgU1RSSU5HXVxuICB9O1xuICBTVUJTVC5jb250YWlucyA9IFtTVFJJTkcsIE5VTUJFUiwgUFJPTVBUXTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3B5JywgJ2d5cCddLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvKDxcXC98LT58XFw/KXw9Pi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBST01QVCxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2NsYXNzTmFtZTogJ2Z1bmN0aW9uJywgYmVnaW5LZXl3b3JkczogJ2RlZid9LFxuICAgICAgICAgIHtjbGFzc05hbWU6ICdjbGFzcycsIGJlZ2luS2V5d29yZHM6ICdjbGFzcyd9XG4gICAgICAgIF0sXG4gICAgICAgIGVuZDogLzovLFxuICAgICAgICBpbGxlZ2FsOiAvWyR7PTtcXG4sXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAgUEFSQU1TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvLT4vLCBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiAnTm9uZSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL15bXFx0IF0qQC8sIGVuZDogLyQvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYihwcmludHxleGVjKVxcKC8gLy8gZG9u4oCZdCBoaWdobGlnaHQga2V5d29yZHMtdHVybmVkLWZ1bmN0aW9ucyBpbiBQeXRob24gM1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBRX0tFWVdPUkRTID0ge1xuICBrZXl3b3JkOlxuICAgICdkbyB3aGlsZSBzZWxlY3QgZGVsZXRlIGJ5IHVwZGF0ZSBmcm9tJyxcbiAgbGl0ZXJhbDpcbiAgICAnMGIgMWInLFxuICBidWlsdF9pbjpcbiAgICAnbmVnIG5vdCBudWxsIHN0cmluZyByZWNpcHJvY2FsIGZsb29yIGNlaWxpbmcgc2lnbnVtIG1vZCB4YmFyIHhsb2cgYW5kIG9yIGVhY2ggc2NhbiBvdmVyIHByaW9yIG1tdSBsc3EgaW52IG1kNSBsdGltZSBndGltZSBjb3VudCBmaXJzdCB2YXIgZGV2IG1lZCBjb3YgY29yIGFsbCBhbnkgcmFuZCBzdW1zIHByZHMgbWlucyBtYXhzIGZpbGxzIGRlbHRhcyByYXRpb3MgYXZncyBkaWZmZXIgcHJldiBuZXh0IHJhbmsgcmV2ZXJzZSBpYXNjIGlkZXNjIGFzYyBkZXNjIG1zdW0gbWNvdW50IG1hdmcgbWRldiB4cmFuayBtbWluIG1tYXggeHByZXYgcm90YXRlIGRpc3RpbmN0IGdyb3VwIHdoZXJlIGZsaXAgdHlwZSBrZXkgdGlsIGdldCB2YWx1ZSBhdHRyIGN1dCBzZXQgdXBzZXJ0IHJhemUgdW5pb24gaW50ZXIgZXhjZXB0IGNyb3NzIHN2IHZzIHN1Ymxpc3QgZW5saXN0IHJlYWQwIHJlYWQxIGhvcGVuIGhjbG9zZSBoZGVsIGhzeW0gaGNvdW50IHBlYWNoIHN5c3RlbSBsdHJpbSBydHJpbSB0cmltIGxvd2VyIHVwcGVyIHNzciB2aWV3IHRhYmxlcyB2aWV3cyBjb2xzIHhjb2xzIGtleXMgeGtleSB4Y29sIHhhc2MgeGRlc2MgZmtleXMgbWV0YSBsaiBhaiBhajAgaWogcGogYXNvZiB1aiB3dyB3aiB3ajEgZmJ5IHhncm91cCB1bmdyb3VwIGVqIHNhdmUgbG9hZCByc2F2ZSBybG9hZCBzaG93IGNzdiBwYXJzZSBldmFsIG1pbiBtYXggYXZnIHdhdmcgd3N1bSBzaW4gY29zIHRhbiBzdW0nLFxuICB0eXBlOlxuICAgICdgZmxvYXQgYGRvdWJsZSBpbnQgYHRpbWVzdGFtcCBgdGltZXNwYW4gYGRhdGV0aW1lIGB0aW1lIGBib29sZWFuIGBzeW1ib2wgYGNoYXIgYGJ5dGUgYHNob3J0IGBsb25nIGByZWFsIGBtb250aCBgZGF0ZSBgbWludXRlIGBzZWNvbmQgYGd1aWQnXG4gIH07XG4gIHJldHVybiB7XG4gIGFsaWFzZXM6WydrJywgJ2tkYiddLFxuICBrZXl3b3JkczogUV9LRVlXT1JEUyxcbiAgbGV4ZW1lczogLyhgPylbQS1aYS16MC05X10rXFxiLyxcbiAgY29udGFpbnM6IFtcbiAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdpbiBvZiBvbiBpZiBmb3Igd2hpbGUgZmluYWxseSB2YXIgbmV3IGZ1bmN0aW9uIGRvIHJldHVybiB2b2lkIGVsc2UgYnJlYWsgY2F0Y2ggJyArXG4gICAgICAgICdpbnN0YW5jZW9mIHdpdGggdGhyb3cgY2FzZSBkZWZhdWx0IHRyeSB0aGlzIHN3aXRjaCBjb250aW51ZSB0eXBlb2YgZGVsZXRlICcgK1xuICAgICAgICAnbGV0IHlpZWxkIGNvbnN0IGV4cG9ydCBzdXBlciBkZWJ1Z2dlciBhcyBhc3luYyBhd2FpdCBpbXBvcnQnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ3RydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQgTmFOIEluZmluaXR5JyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnZXZhbCBpc0Zpbml0ZSBpc05hTiBwYXJzZUZsb2F0IHBhcnNlSW50IGRlY29kZVVSSSBkZWNvZGVVUklDb21wb25lbnQgJyArXG4gICAgICAgICdlbmNvZGVVUkkgZW5jb2RlVVJJQ29tcG9uZW50IGVzY2FwZSB1bmVzY2FwZSBPYmplY3QgRnVuY3Rpb24gQm9vbGVhbiBFcnJvciAnICtcbiAgICAgICAgJ0V2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciAnICtcbiAgICAgICAgJ1R5cGVFcnJvciBVUklFcnJvciBOdW1iZXIgTWF0aCBEYXRlIFN0cmluZyBSZWdFeHAgQXJyYXkgRmxvYXQzMkFycmF5ICcgK1xuICAgICAgICAnRmxvYXQ2NEFycmF5IEludDE2QXJyYXkgSW50MzJBcnJheSBJbnQ4QXJyYXkgVWludDE2QXJyYXkgVWludDMyQXJyYXkgJyArXG4gICAgICAgICdVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSAnICtcbiAgICAgICAgJ21vZHVsZSBjb25zb2xlIHdpbmRvdyBkb2N1bWVudCBTeW1ib2wgU2V0IE1hcCBXZWFrU2V0IFdlYWtNYXAgUHJveHkgUmVmbGVjdCAnICtcbiAgICAgICAgJ0JlaGF2aW9yIGJvb2wgY29sb3IgY29vcmRpbmF0ZSBkYXRlIGRvdWJsZSBlbnVtZXJhdGlvbiBmb250IGdlb2NpcmNsZSBnZW9yZWN0YW5nbGUgJyArXG4gICAgICAgICdnZW9zaGFwZSBpbnQgbGlzdCBtYXRyaXg0eDQgcGFyZW50IHBvaW50IHF1YXRlcm5pb24gcmVhbCByZWN0ICcgK1xuICAgICAgICAnc2l6ZSBzdHJpbmcgdXJsIHZhcmlhbnQgdmVjdG9yMmQgdmVjdG9yM2QgdmVjdG9yNGQnICtcbiAgICAgICAgJ1Byb21pc2UnXG4gICAgfTtcblxuICB2YXIgUU1MX0lERU5UX1JFID0gJ1thLXpBLVpfXVthLXpBLVowLTlcXFxcLl9dKic7XG5cbiAgLy8gSXNvbGF0ZSBwcm9wZXJ0eSBzdGF0ZW1lbnRzLiBFbmRzIGF0IGEgOiwgPSwgOywgLCwgYSBjb21tZW50IG9yIGVuZCBvZiBsaW5lLlxuICAvLyBVc2UgcHJvcGVydHkgY2xhc3MuXG4gIHZhciBQUk9QRVJUWSA9IHtcbiAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgYmVnaW46ICdcXFxcYnByb3BlcnR5XFxcXGInLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGVuZDogJyg6fD18O3wsfC8vfC9cXFxcKnwkKScsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZVxuICAgICAgfVxuICB9O1xuXG4gIC8vIElzb2xhdGUgc2lnbmFsIHN0YXRlbWVudHMuIEVuZHMgYXQgYSApIGEgY29tbWVudCBvciBlbmQgb2YgbGluZS5cbiAgLy8gVXNlIHByb3BlcnR5IGNsYXNzLlxuICB2YXIgU0lHTkFMID0ge1xuICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICBiZWdpbjogJ1xcXFxic2lnbmFsXFxcXGInLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGVuZDogJyhcXFxcKHw6fD18O3wsfC8vfC9cXFxcKnwkKScsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZVxuICAgICAgfVxuICB9O1xuXG4gIC8vIGlkOiBpcyBzcGVjaWFsIGluIFFNTC4gV2hlbiB3ZSBzZWUgaWQ6IHdlIHdhbnQgdG8gbWFyayB0aGUgaWQ6IGFzIGF0dHJpYnV0ZSBhbmRcbiAgLy8gZW1waGFzaXplIHRoZSB0b2tlbiBmb2xsb3dpbmcuXG4gIHZhciBJRF9JRCA9IHtcbiAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICBiZWdpbjogJ1xcXFxiaWRcXFxccyo6JyxcbiAgICAgIHN0YXJ0czoge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBlbmQ6IFFNTF9JREVOVF9SRSxcbiAgICAgICAgcmV0dXJuRW5kOiBmYWxzZVxuICAgICAgfVxuICB9O1xuXG4gIC8vIEZpbmQgUU1MIG9iamVjdCBhdHRyaWJ1dGUuIEFuIGF0dHJpYnV0ZSBpcyBhIFFNTCBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IDouXG4gIC8vIFVuZm9ydHVuYXRlbHkgaXQncyBoYXJkIHRvIGtub3cgd2hlcmUgaXQgZW5kcywgYXMgaXQgbWF5IGNvbnRhaW4gc2NhbGFycyxcbiAgLy8gb2JqZWN0cywgb2JqZWN0IGRlZmluaXRpb25zLCBvciBqYXZhc2NyaXB0LiBUaGUgdHJ1ZSBlbmQgaXMgZWl0aGVyIHdoZW4gdGhlIHBhcmVudFxuICAvLyBlbmRzIG9yIHRoZSBuZXh0IGF0dHJpYnV0ZSBpcyBkZXRlY3RlZC5cbiAgdmFyIFFNTF9BVFRSSUJVVEUgPSB7XG4gICAgYmVnaW46IFFNTF9JREVOVF9SRSArICdcXFxccyo6JyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBiZWdpbjogUU1MX0lERU5UX1JFLFxuICAgICAgICBlbmQ6ICdcXFxccyo6JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyBGaW5kIFFNTCBvYmplY3QuIEEgUU1MIG9iamVjdCBpcyBhIFFNTCBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IHsgYW5kIGVuZHMgYXQgdGhlIG1hdGNoaW5nIH0uXG4gIC8vIEFsbCB3ZSByZWFsbHkgY2FyZSBhYm91dCBpcyBmaW5kaW5nIElERU5UIGZvbGxvd2VkIGJ5IHsgYW5kIGp1c3QgbWFyayB1cCB0aGUgSURFTlQgYW5kIGlnbm9yZSB0aGUgey5cbiAgdmFyIFFNTF9PQkpFQ1QgPSB7XG4gICAgYmVnaW46IFFNTF9JREVOVF9SRSArICdcXFxccyp7JywgZW5kOiAneycsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7YmVnaW46IFFNTF9JREVOVF9SRX0pXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydxdCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIChzdHJpY3R8YXNtKVsnXCJdL1xuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7IC8vIHRlbXBsYXRlIHN0cmluZ1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ2AnLCBlbmQ6ICdgJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcJFxcXFx7JywgZW5kOiAnXFxcXH0nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoMFtiQl1bMDFdKyknIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiKDBbb09dWzAtN10rKScgfSxcbiAgICAgICAgICB7IGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvLyBcInZhbHVlXCIgY29udGFpbmVyXG4gICAgICAgIGJlZ2luOiAnKCcgKyBobGpzLlJFX1NUQVJURVJTX1JFICsgJ3xcXFxcYihjYXNlfHJldHVybnx0aHJvdylcXFxcYilcXFxccyonLFxuICAgICAgICBrZXl3b3JkczogJ3JldHVybiB0aHJvdyBjYXNlJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHsgLy8gRTRYIC8gSlNYXG4gICAgICAgICAgICBiZWdpbjogLzwvLCBlbmQ6IC8+XFxzKlspO1xcXV0vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBTSUdOQUwsXG4gICAgICBQUk9QRVJUWSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLCBlbmQ6IC9cXHsvLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogL1tBLVphLXokX11bMC05QS1aYS16JF9dKi99KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogL1xcW3wlL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLklERU5UX1JFLCByZWxldmFuY2U6IDAgLy8gaGFjazogcHJldmVudHMgZGV0ZWN0aW9uIG9mIGtleXdvcmRzIGFmdGVyIGRvdHNcbiAgICAgIH0sXG4gICAgICBJRF9JRCxcbiAgICAgIFFNTF9BVFRSSUJVVEUsXG4gICAgICBRTUxfT0JKRUNUXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBJREVOVF9SRSA9ICcoW2EtekEtWl18XFxcXC5bYS16QS1aLl0pW2EtekEtWjAtOS5fXSonO1xuXG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBJREVOVF9SRSxcbiAgICAgICAgbGV4ZW1lczogSURFTlRfUkUsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDpcbiAgICAgICAgICAgICdmdW5jdGlvbiBpZiBpbiBicmVhayBuZXh0IHJlcGVhdCBlbHNlIGZvciByZXR1cm4gc3dpdGNoIHdoaWxlIHRyeSB0cnlDYXRjaCAnICtcbiAgICAgICAgICAgICdzdG9wIHdhcm5pbmcgcmVxdWlyZSBsaWJyYXJ5IGF0dGFjaCBkZXRhY2ggc291cmNlIHNldE1ldGhvZCBzZXRHZW5lcmljICcgK1xuICAgICAgICAgICAgJ3NldEdyb3VwR2VuZXJpYyBzZXRDbGFzcyAuLi4nLFxuICAgICAgICAgIGxpdGVyYWw6XG4gICAgICAgICAgICAnTlVMTCBOQSBUUlVFIEZBTFNFIFQgRiBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwIE5BX2NoYXJhY3Rlcl98MTAgJyArXG4gICAgICAgICAgICAnTkFfY29tcGxleF98MTAnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGV4IHZhbHVlXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIjBbeFhdWzAtOWEtZkEtRl0rW0xpXT9cXFxcYlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGV4cGxpY2l0IGludGVnZXJcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IFwiXFxcXGQrKD86W2VFXVsrXFxcXC1dP1xcXFxkKik/TFxcXFxiXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyIHdpdGggdHJhaWxpbmcgZGVjaW1hbFxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogXCJcXFxcZCtcXFxcLig/IVxcXFxkKSg/OmlcXFxcYik/XCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIlxcXFxkKyg/OlxcXFwuXFxcXGQqKT8oPzpbZUVdWytcXFxcLV0/XFxcXGQqKT9pP1xcXFxiXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyIHdpdGggbGVhZGluZyBkZWNpbWFsXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIlxcXFwuXFxcXGQrKD86W2VFXVsrXFxcXC1dP1xcXFxkKik/aT9cXFxcYlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgLy8gZXNjYXBlZCBpZGVudGlmaWVyXG4gICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgIGVuZDogJ2AnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogJ1wiJywgZW5kOiAnXCInfSxcbiAgICAgICAgICB7YmVnaW46IFwiJ1wiLCBlbmQ6IFwiJ1wifVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBrZXl3b3JkczpcbiAgICAgICdBcmNoaXZlUmVjb3JkIEFyZWFMaWdodFNvdXJjZSBBdG1vc3BoZXJlIEF0dHJpYnV0ZSBBdHRyaWJ1dGVCZWdpbiBBdHRyaWJ1dGVFbmQgQmFzaXMgJyArXG4gICAgICAnQmVnaW4gQmxvYmJ5IEJvdW5kIENsaXBwaW5nIENsaXBwaW5nUGxhbmUgQ29sb3IgQ29sb3JTYW1wbGVzIENvbmNhdFRyYW5zZm9ybSBDb25lICcgK1xuICAgICAgJ0Nvb3JkaW5hdGVTeXN0ZW0gQ29vcmRTeXNUcmFuc2Zvcm0gQ3JvcFdpbmRvdyBDdXJ2ZXMgQ3lsaW5kZXIgRGVwdGhPZkZpZWxkIERldGFpbCAnICtcbiAgICAgICdEZXRhaWxSYW5nZSBEaXNrIERpc3BsYWNlbWVudCBEaXNwbGF5IEVuZCBFcnJvckhhbmRsZXIgRXhwb3N1cmUgRXh0ZXJpb3IgRm9ybWF0ICcgK1xuICAgICAgJ0ZyYW1lQXNwZWN0UmF0aW8gRnJhbWVCZWdpbiBGcmFtZUVuZCBHZW5lcmFsUG9seWdvbiBHZW9tZXRyaWNBcHByb3hpbWF0aW9uIEdlb21ldHJ5ICcgK1xuICAgICAgJ0hpZGVyIEh5cGVyYm9sb2lkIElkZW50aXR5IElsbHVtaW5hdGUgSW1hZ2VyIEludGVyaW9yIExpZ2h0U291cmNlICcgK1xuICAgICAgJ01ha2VDdWJlRmFjZUVudmlyb25tZW50IE1ha2VMYXRMb25nRW52aXJvbm1lbnQgTWFrZVNoYWRvdyBNYWtlVGV4dHVyZSBNYXR0ZSAnICtcbiAgICAgICdNb3Rpb25CZWdpbiBNb3Rpb25FbmQgTnVQYXRjaCBPYmplY3RCZWdpbiBPYmplY3RFbmQgT2JqZWN0SW5zdGFuY2UgT3BhY2l0eSBPcHRpb24gJyArXG4gICAgICAnT3JpZW50YXRpb24gUGFyYWJvbG9pZCBQYXRjaCBQYXRjaE1lc2ggUGVyc3BlY3RpdmUgUGl4ZWxGaWx0ZXIgUGl4ZWxTYW1wbGVzICcgK1xuICAgICAgJ1BpeGVsVmFyaWFuY2UgUG9pbnRzIFBvaW50c0dlbmVyYWxQb2x5Z29ucyBQb2ludHNQb2x5Z29ucyBQb2x5Z29uIFByb2NlZHVyYWwgUHJvamVjdGlvbiAnICtcbiAgICAgICdRdWFudGl6ZSBSZWFkQXJjaGl2ZSBSZWxhdGl2ZURldGFpbCBSZXZlcnNlT3JpZW50YXRpb24gUm90YXRlIFNjYWxlIFNjcmVlbldpbmRvdyAnICtcbiAgICAgICdTaGFkaW5nSW50ZXJwb2xhdGlvbiBTaGFkaW5nUmF0ZSBTaHV0dGVyIFNpZGVzIFNrZXcgU29saWRCZWdpbiBTb2xpZEVuZCBTcGhlcmUgJyArXG4gICAgICAnU3ViZGl2aXNpb25NZXNoIFN1cmZhY2UgVGV4dHVyZUNvb3JkaW5hdGVzIFRvcnVzIFRyYW5zZm9ybSBUcmFuc2Zvcm1CZWdpbiBUcmFuc2Zvcm1FbmQgJyArXG4gICAgICAnVHJhbnNmb3JtUG9pbnRzIFRyYW5zbGF0ZSBUcmltQ3VydmUgV29ybGRCZWdpbiBXb3JsZEVuZCcsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgSURFTlRJRklFUiA9ICdbYS16QS1aLV9dW15cXFxcbntdK1xcXFx7JztcblxuICB2YXIgUFJPUEVSVFkgPSB7XG4gICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICBiZWdpbjogL1thLXpBLVotX10rLywgZW5kOiAvXFxzKjovLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnOycsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgIGJlZ2luOiAvXFwuW2EtekEtWi1fXSsvXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICBiZWdpbjogL1xcKG9wdGlvbmFsXFwpL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydncmFwaCcsICdpbnN0YW5jZXMnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiAnaW1wb3J0JyxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gRmFjZXQgc2VjdGlvbnNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeZmFjZXQgJyArIElERU5USUZJRVIsXG4gICAgICAgIGVuZDogJ30nLFxuICAgICAgICBrZXl3b3JkczogJ2ZhY2V0JyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBQUk9QRVJUWSxcbiAgICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIEluc3RhbmNlIHNlY3Rpb25zXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKmluc3RhbmNlIG9mICcgKyBJREVOVElGSUVSLFxuICAgICAgICBlbmQ6ICd9JyxcbiAgICAgICAga2V5d29yZHM6ICduYW1lIGNvdW50IGNoYW5uZWxzIGluc3RhbmNlLWRhdGEgaW5zdGFuY2Utc3RhdGUgaW5zdGFuY2Ugb2YnLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBDb21wb25lbnQgc2VjdGlvbnNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeJyArIElERU5USUZJRVIsXG4gICAgICAgIGVuZDogJ30nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBST1BFUlRZLFxuICAgICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgLy8gQ29tbWVudHNcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gLy8gQ29sb3JzIGZyb20gUm91dGVyT1MgdGVybWluYWw6XG4vLyAgIGdyZWVuICAgICAgICAtICMwRTlBMDBcbi8vICAgdGVhbCAgICAgICAgIC0gIzBDOUE5QVxuLy8gICBwdXJwbGUgICAgICAgLSAjOTkwNjlBXG4vLyAgIGxpZ2h0LWJyb3duICAtICM5QTk5MDBcblxuZnVuY3Rpb24oaGxqcykge1xuXG4gIHZhciBTVEFURU1FTlRTID0gJ2ZvcmVhY2ggZG8gd2hpbGUgZm9yIGlmIGZyb20gdG8gc3RlcCBlbHNlIG9uLWVycm9yIGFuZCBvciBub3QgaW4nO1xuXG4gIC8vIEdsb2JhbCBjb21tYW5kczogRXZlcnkgZ2xvYmFsIGNvbW1hbmQgc2hvdWxkIHN0YXJ0IHdpdGggXCI6XCIgdG9rZW4sIG90aGVyd2lzZSBpdCB3aWxsIGJlIHRyZWF0ZWQgYXMgdmFyaWFibGUuXG4gIHZhciBHTE9CQUxfQ09NTUFORFMgPSAnZ2xvYmFsIGxvY2FsIGJlZXAgZGVsYXkgcHV0IGxlbiB0eXBlb2YgcGljayBsb2cgdGltZSBzZXQgZmluZCBlbnZpcm9ubWVudCB0ZXJtaW5hbCBlcnJvciBleGVjdXRlIHBhcnNlIHJlc29sdmUgdG9hcnJheSB0b2Jvb2wgdG9pZCB0b2lwIHRvaXA2IHRvbnVtIHRvc3RyIHRvdGltZSc7XG5cbiAgLy8gQ29tbW9uIGNvbW1hbmRzOiBGb2xsb3dpbmcgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gbW9zdCBzdWItbWVudXM6XG4gIHZhciBDT01NT05fQ09NTUFORFMgPSAnYWRkIHJlbW92ZSBlbmFibGUgZGlzYWJsZSBzZXQgZ2V0IHByaW50IGV4cG9ydCBlZGl0IGZpbmQgcnVuIGRlYnVnIGVycm9yIGluZm8gd2FybmluZyc7XG5cbiAgdmFyIExJVEVSQUxTID0gJ3RydWUgZmFsc2UgeWVzIG5vIG5vdGhpbmcgbmlsIG51bGwnO1xuXG4gIHZhciBPQkpFQ1RTID0gJ3RyYWZmaWMtZmxvdyB0cmFmZmljLWdlbmVyYXRvciBmaXJld2FsbCBzY2hlZHVsZXIgYWFhIGFjY291bnRpbmcgYWRkcmVzcy1saXN0IGFkZHJlc3MgYWxpZ24gYXJlYSBiYW5kd2lkdGgtc2VydmVyIGJmZCBiZ3AgYnJpZGdlIGNsaWVudCBjbG9jayBjb21tdW5pdHkgY29uZmlnIGNvbm5lY3Rpb24gY29uc29sZSBjdXN0b21lciBkZWZhdWx0IGRoY3AtY2xpZW50IGRoY3Atc2VydmVyIGRpc2NvdmVyeSBkbnMgZS1tYWlsIGV0aGVybmV0IGZpbHRlciBmaXJld2FsbCBmaXJtd2FyZSBncHMgZ3JhcGhpbmcgZ3JvdXAgaGFyZHdhcmUgaGVhbHRoIGhvdHNwb3QgaWRlbnRpdHkgaWdtcC1wcm94eSBpbmNvbWluZyBpbnN0YW5jZSBpbnRlcmZhY2UgaXAgaXBzZWMgaXB2NiBpcnEgbDJ0cC1zZXJ2ZXIgbGNkIGxkcCBsb2dnaW5nIG1hYy1zZXJ2ZXIgbWFjLXdpbmJveCBtYW5nbGUgbWFudWFsIG1pcnJvciBtbWUgbXBscyBuYXQgbmQgbmVpZ2hib3IgbmV0d29yayBub3RlIG50cCBvc3BmIG9zcGYtdjMgb3Zwbi1zZXJ2ZXIgcGFnZSBwZWVyIHBpbSBwaW5nIHBvbGljeSBwb29sIHBvcnQgcHBwIHBwcG9lLWNsaWVudCBwcHRwLXNlcnZlciBwcmVmaXggcHJvZmlsZSBwcm9wb3NhbCBwcm94eSBxdWV1ZSByYWRpdXMgcmVzb3VyY2UgcmlwIHJpcG5nIHJvdXRlIHJvdXRpbmcgc2NyZWVuIHNjcmlwdCBzZWN1cml0eS1wcm9maWxlcyBzZXJ2ZXIgc2VydmljZSBzZXJ2aWNlLXBvcnQgc2V0dGluZ3Mgc2hhcmVzIHNtYiBzbXMgc25pZmZlciBzbm1wIHNub29wZXIgc29ja3Mgc3N0cC1zZXJ2ZXIgc3lzdGVtIHRvb2wgdHJhY2tpbmcgdHlwZSB1cGdyYWRlIHVwbnAgdXNlci1tYW5hZ2VyIHVzZXJzIHVzZXIgdmxhbiBzZWNyZXQgdnJycCB3YXRjaGRvZyB3ZWItYWNjZXNzIHdpcmVsZXNzIHBwdHAgcHBwb2UgbGFuIHdhbiBsYXllcjctcHJvdG9jb2wgbGVhc2Ugc2ltcGxlIHJhdyc7XG5cbiAgLy8gcHJpbnQgcGFyYW1ldGVyc1xuICAvLyBTZXZlcmFsIHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZSBmb3IgcHJpbnQgY29tbWFuZDpcbiAgLy8gVG9EbzogdmFyIFBBUkFNRVRFUlNfUFJJTlQgPSAnYXBwZW5kIGFzLXZhbHVlIGJyaWVmIGRldGFpbCBjb3VudC1vbmx5IGZpbGUgZm9sbG93IGZvbGxvdy1vbmx5IGZyb20gaW50ZXJ2YWwgdGVyc2UgdmFsdWUtbGlzdCB3aXRob3V0LXBhZ2luZyB3aGVyZSBpbmZvJztcbiAgLy8gVG9EbzogdmFyIE9QRVJBVE9SUyA9ICcmJiBhbmQgISBub3QgfHwgb3IgaW4gfiBeICYgPDwgPj4gKyAtICogLyc7XG4gIC8vIFRvRG86IHZhciBUWVBFUyA9ICdudW0gbnVtYmVyIGJvb2wgYm9vbGVhbiBzdHIgc3RyaW5nIGlwIGlwNi1wcmVmaXggaWQgdGltZSBhcnJheSc7XG4gIC8vIFRvRG86IFRoZSBmb2xsb3dpbmcgdG9rZW5zIHNlcnZlIGFzIGRlbGltaXRlcnMgaW4gdGhlIGdyYW1tYXI6ICgpICBbXSAge30gIDogICA7ICAgJCAgIC8gXG5cbiAgdmFyIFZBUl9QUkVGSVggPSAnZ2xvYmFsIGxvY2FsIHNldCBmb3IgZm9yZWFjaCc7XG5cbiAgdmFyIFZBUiA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qL30sXG4gICAgICB7YmVnaW46IC9cXCRcXHsoLio/KX0vfVxuICAgIF1cbiAgfTtcbiAgXG4gIHZhciBRVU9URV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiLywgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBWQVIsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXCRcXCgvLCBlbmQ6IC9cXCkvLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFxuICB2YXIgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLCBlbmQ6IC8nL1xuICB9O1xuICBcbiAgdmFyIElQQUREUiA9ICcoKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVxcLil7M30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFxcXGInO1xuICB2YXIgSVBBRERSX3dCSVRNQVNLID0gIElQQUREUisnLygzWzAtMl18WzEtMl1bMC05XXxcXFxcZCknO1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydyb3V0ZXJvcycsICdtaWtyb3RpayddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgbGV4ZW1lczogLzo/W1xcdy1dKy8sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAga2V5d29yZDogU1RBVEVNRU5UUyArICcgOicgKyBTVEFURU1FTlRTLnNwbGl0KCcgJykuam9pbignIDonKSArICcgOicgKyBHTE9CQUxfQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCcgOicpLFxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8g0L3QtdC00L7Qv9GD0YHRgtC40LzRi9C1INC60L7QvdGB0YLRgNGD0LrRhtC40LhcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAvXkAvLCBlbmQ6IC8kLywgfSwgICAgICAgICAgICAgICAvLyBkbnNcbiAgICAgICAgICB7IGJlZ2luOiAvXFwvXFwqLywgZW5kOiAvXFwqXFwvLywgfSwgICAgICAgICAgLy8gLS0gY29tbWVudFxuICAgICAgICAgIHsgYmVnaW46IC8lJS8sIGVuZDogLyQvLCB9LCAgICAgICAgICAgICAgIC8vIC0tIGNvbW1lbnRcbiAgICAgICAgICB7IGJlZ2luOiAvXicvLCBlbmQ6IC8kLywgfSwgICAgICAgICAgICAgICAvLyBNb25rZXkgb25lIGxpbmUgY29tbWVudFxuICAgICAgICAgIHsgYmVnaW46IC9eXFxzKlxcL1tcXHctXSs9LywgZW5kOiAvJC8sIH0sICAgIC8vIGpib3NzLWNsaVxuICAgICAgICAgIHsgYmVnaW46IC9cXC9cXC8vLCBlbmQ6IC8kLywgfSwgICAgICAgICAgICAgLy8gU3RhbiBjb21tZW50XG4gICAgICAgICAgeyBiZWdpbjogL15cXFtcXDwvLCBlbmQ6IC9cXD5cXF0kLywgfSwgICAgICAgIC8vIEYjIGNsYXNzIGRlY2xhcmF0aW9uP1xuICAgICAgICAgIHsgYmVnaW46IC88XFwvLywgZW5kOiAvPi8sIH0sICAgICAgICAgICAgICAvLyBIVE1MIHRhZ3NcbiAgICAgICAgICB7IGJlZ2luOiAvXmZhY2V0IC8sIGVuZDogL1xcfS8sIH0sICAgICAgICAgLy8gcm9ib2NvbmYgLSDQu9GO0YLRi9C5INC60L7RgdGC0YvQu9GMICkpKVxuICAgICAgICAgIHsgYmVnaW46ICdeMVxcXFwuXFxcXC4oXFxcXGQrKSQnLCBlbmQ6IC8kLywgfSwgIC8vIHRhcCAgXG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6IC8uLyxcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoJ14jJywgJyQnKSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEFQT1NfU1RSSU5HLFxuICAgICAgVkFSLFxuICAgICAgeyAvLyBhdHRyaWJ1dGU9dmFsdWVcbiAgICAgICAgYmVnaW46IC9bXFx3LV0rXFw9KFteXFxzXFx7XFx9XFxbXFxdXFwoXFwpXSspLywgXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgICAgIGJlZ2luOiAvW149XSsvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLz0vLCBcbiAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiAgdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgICAgICAgICAgQVBPU19TVFJJTkcsXG4gICAgICAgICAgICAgIFZBUixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIExJVEVSQUxTLnNwbGl0KCcgJykuam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8qe1xuICAgICAgICAgICAgICAgIC8vIElQdjQgYWRkcmVzc2VzIGFuZCBzdWJuZXRzXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge2JlZ2luOiBJUEFERFJfd0JJVE1BU0srJygsJytJUEFERFJfd0JJVE1BU0srJykqJ30sIC8vMTkyLjE2OC4wLjAvMjQsMS4yLjMuMC8yNFxuICAgICAgICAgICAgICAgICAge2JlZ2luOiBJUEFERFIrJy0nK0lQQUREUn0sICAgICAgIC8vIDE5Mi4xNjguMC4xLTE5Mi4xNjguMC4zXG4gICAgICAgICAgICAgICAgICB7YmVnaW46IElQQUREUisnKCwnK0lQQUREUisnKSonfSwgLy8gMTkyLjE2OC4wLjEsMTkyLjE2OC4wLjM0LDE5Mi4xNjguMjQuMSwxOTIuMTY4LjAuMVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSwgLy8gKi9cbiAgICAgICAgICAgICAgLyp7XG4gICAgICAgICAgICAgICAgLy8gTUFDIGFkZHJlc3NlcyBhbmQgREhDUCBDbGllbnQgSURzXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogL1xcYigxOik/KFswLTlBLUZhLWZdezEsMn1bOi1dKXs1fShbMC05QS1GYS1mXSl7MSwyfVxcYi8sXG4gICAgICAgICAgICAgIH0sIC8vKi9cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vINCd0LUg0YTQvtGA0LzQsNGC0LjRgNC+0LLQsNGC0Ywg0L3QtSDQutC70LDRgdGB0LjRhNC40YbQuNGA0L7QstCw0L3QvdGL0LUg0LfQvdCw0YfQtdC90LjRjy4g0J3QtdC+0LHRhdC+0LTQuNC80L4g0LTQu9GPINC40YHQutC70Y7Rh9C10L3QuNGPINC/0L7QtNGB0LLQtdGC0LrQuCDQt9C90LDRh9C10L3QuNC5INC60LDQuiBidWlsdF9pbi5cbiAgICAgICAgICAgICAgICAvLyBjbGFzc05hbWU6ICdudW1iZXInLCAgXG4gICAgICAgICAgICAgICAgYmVnaW46IC8oXCJbXlwiXSpcInxbXlxcc1xce1xcfVxcW1xcXV0rKS8sXG4gICAgICAgICAgICAgIH0sIC8vKi9cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9IC8vKi9cbiAgICAgICAgXVxuICAgICAgfSwvLyovXG4gICAgICB7XG4gICAgICAgIC8vIEhFWCB2YWx1ZXNcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IC9cXCpbMC05YS1mQS1GXSsvLFxuICAgICAgfSwgLy8qL1xuXG4gICAgICB7IFxuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBDT01NT05fQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKShbXFxcXHNcXFtcXChdfFxcXSknLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdidWlsdGluLW5hbWUnLCAvLydmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbjogL1xcdysvLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sICBcbiAgICAgIH0sXG4gICAgICBcbiAgICAgIHsgXG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46ICcoXFxcXC5cXFxcLi98L3xcXFxccykoKCcgKyBPQkpFQ1RTLnNwbGl0KCcgJykuam9pbignfCcpICsgJyk7P1xcXFxzKSsnLHJlbGV2YW5jZTogMTAsfSxcbiAgICAgICAgICB7YmVnaW46IC9cXC5cXC4vLH0sXG4gICAgICAgIF0sXG4gICAgICB9LC8vKi9cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnZmxvYXQgY29sb3IgcG9pbnQgbm9ybWFsIHZlY3RvciBtYXRyaXggd2hpbGUgZm9yIGlmIGRvIHJldHVybiBlbHNlIGJyZWFrIGV4dGVybiBjb250aW51ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ2FicyBhY29zIGFtYmllbnQgYXJlYSBhc2luIGF0YW4gYXRtb3NwaGVyZSBhdHRyaWJ1dGUgY2FsY3VsYXRlbm9ybWFsIGNlaWwgY2VsbG5vaXNlICcgK1xuICAgICAgICAnY2xhbXAgY29tcCBjb25jYXQgY29zIGRlZ3JlZXMgZGVwdGggRGVyaXYgZGlmZnVzZSBkaXN0YW5jZSBEdSBEdiBlbnZpcm9ubWVudCBleHAgJyArXG4gICAgICAgICdmYWNlZm9yd2FyZCBmaWx0ZXJzdGVwIGZsb29yIGZvcm1hdCBmcmVzbmVsIGluY2lkZW50IGxlbmd0aCBsaWdodHNvdXJjZSBsb2cgbWF0Y2ggJyArXG4gICAgICAgICdtYXggbWluIG1vZCBub2lzZSBub3JtYWxpemUgbnRyYW5zZm9ybSBvcHBvc2l0ZSBvcHRpb24gcGhvbmcgcG5vaXNlIHBvdyBwcmludGYgJyArXG4gICAgICAgICdwdGxpbmVkIHJhZGlhbnMgcmFuZG9tIHJlZmxlY3QgcmVmcmFjdCByZW5kZXJpbmZvIHJvdW5kIHNldGNvbXAgc2V0eGNvbXAgc2V0eWNvbXAgJyArXG4gICAgICAgICdzZXR6Y29tcCBzaGFkb3cgc2lnbiBzaW4gc21vb3Roc3RlcCBzcGVjdWxhciBzcGVjdWxhcmJyZGYgc3BsaW5lIHNxcnQgc3RlcCB0YW4gJyArXG4gICAgICAgICd0ZXh0dXJlIHRleHR1cmVpbmZvIHRyYWNlIHRyYW5zZm9ybSB2dHJhbnNmb3JtIHhjb21wIHljb21wIHpjb21wJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLCBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3VyZmFjZSBkaXNwbGFjZW1lbnQgbGlnaHQgdm9sdW1lIGltYWdlcicsIGVuZDogJ1xcXFwoJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2lsbHVtaW5hdGUgaWxsdW1pbmFuY2UgZ2F0aGVyJywgZW5kOiAnXFxcXCgnXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBrZXl3b3Jkczoge1xuICAgICAgIGtleXdvcmQ6ICdCSUxMX1BFUklPRCBCSUxMX1NUQVJUIEJJTExfU1RPUCBSU19FRkZFQ1RJVkVfU1RBUlQgUlNfRUZGRUNUSVZFX1NUT1AgUlNfSlVSSVNfQ09ERSBSU19PUENPX0NPREUgJyArXG4gICAgICAgICAnSU5UREFEREFUVFJJQlVURXw1IElOVERBRERWTVNHfDUgSU5UREJMT0NLT1B8NSBJTlREQkxPQ0tPUE5BfDUgSU5URENMT1NFfDUgSU5URENPVU5UfDUgJyArXG4gICAgICAgICAnSU5URENPVU5UU1RBVFVTQ09ERXw1IElOVERDUkVBVEVNQVNLfDUgSU5URENSRUFURURBWU1BU0t8NSBJTlREQ1JFQVRFRkFDVE9STUFTS3w1ICcgK1xuICAgICAgICAgJ0lOVERDUkVBVEVIQU5ETEV8NSBJTlREQ1JFQVRFT1ZFUlJJREVEQVlNQVNLfDUgSU5URENSRUFURU9WRVJSSURFTUFTS3w1ICcgK1xuICAgICAgICAgJ0lOVERDUkVBVEVTVEFUVVNDT0RFTUFTS3w1IElOVERDUkVBVEVUT1VQRVJJT0R8NSBJTlREREVMRVRFfDUgSU5URERJUFRFU1R8NSBJTlRERVhQT1JUfDUgJyArXG4gICAgICAgICAnSU5UREdFVEVSUk9SQ09ERXw1IElOVERHRVRFUlJPUk1FU1NBR0V8NSBJTlRESVNFUVVBTHw1IElOVERKT0lOfDUgSU5URExPQUR8NSBJTlRETE9BREFDVFVBTENVVHw1ICcgK1xuICAgICAgICAgJ0lOVERMT0FEREFURVN8NSBJTlRETE9BREhJU1R8NSBJTlRETE9BRExJU1R8NSBJTlRETE9BRExJU1REQVRFU3w1IElOVERMT0FETElTVEVORVJHWXw1ICcgK1xuICAgICAgICAgJ0lOVERMT0FETElTVEhJU1R8NSBJTlRETE9BRFJFTEFURURDSEFOTkVMfDUgSU5URExPQURTUHw1IElOVERMT0FEU1RBR0lOR3w1IElOVERMT0FEVU9NfDUgJyArXG4gICAgICAgICAnSU5URExPQURVT01EQVRFU3w1IElOVERMT0FEVU9NSElTVHw1IElOVERMT0FEVkVSU0lPTnw1IElOVERPUEVOfDUgSU5URFJFQURGSVJTVHw1IElOVERSRUFETkVYVHw1ICcgK1xuICAgICAgICAgJ0lOVERSRUNDT1VOVHw1IElOVERSRUxFQVNFfDUgSU5URFJFUExBQ0V8NSBJTlREUk9MTEFWR3w1IElOVERST0xMUEVBS3w1IElOVERTQ0FMQVJPUHw1IElOVERTQ0FMRXw1ICcgK1xuICAgICAgICAgJ0lOVERTRVRBVFRSSUJVVEV8NSBJTlREU0VURFNUUEFSVElDSVBBTlR8NSBJTlREU0VUU1RSSU5HfDUgSU5URFNFVFZBTFVFfDUgSU5URFNFVFZBTFVFU1RBVFVTfDUgJyArXG4gICAgICAgICAnSU5URFNISUZUU1RBUlRUSU1FfDUgSU5URFNNT09USHw1IElOVERTT1JUfDUgSU5URFNQSUtFVEVTVHw1IElOVERTVUJTRVR8NSBJTlREVE9VfDUgJyArXG4gICAgICAgICAnSU5URFRPVVJFTEVBU0V8NSBJTlREVE9VVkFMVUV8NSBJTlREVVBEQVRFU1RBVFN8NSBJTlREVkFMVUV8NSBTVERFViBJTlREREVMRVRFRVh8NSAnICtcbiAgICAgICAgICdJTlRETE9BREVYQUNUVUFMfDUgSU5URExPQURFWENVVHw1IElOVERMT0FERVhEQVRFU3w1IElOVERMT0FERVh8NSBJTlRETE9BREVYUkVMQVRFRENIQU5ORUx8NSAnICtcbiAgICAgICAgICdJTlREU0FWRUVYfDUgTVZMT0FEfDUgTVZMT0FEQUNDVHw1IE1WTE9BREFDQ1REQVRFU3w1IE1WTE9BREFDQ1RISVNUfDUgTVZMT0FEREFURVN8NSBNVkxPQURISVNUfDUgJyArXG4gICAgICAgICAnTVZMT0FETElTVHw1IE1WTE9BRExJU1REQVRFU3w1IE1WTE9BRExJU1RISVNUfDUgSUYgRk9SIE5FWFQgRE9ORSBTRUxFQ1QgRU5EIENBTEwgQUJPUlQgQ0xFQVIgQ0hBTk5FTCBGQUNUT1IgTElTVCBOVU1CRVIgJyArXG4gICAgICAgICAnT1ZFUlJJREUgU0VUIFdFRUsgRElTVFJJQlVUSU9OTk9ERSBFTFNFIFdIRU4gVEhFTiBPVEhFUldJU0UgSUVOVU0gQ1NWIElOQ0xVREUgTEVBVkUgUklERVIgU0FWRSBERUxFVEUgJyArXG4gICAgICAgICAnTk9WQUxVRSBTRUNUSU9OIFdBUk4gU0FWRV9VUERBVEUgREVURVJNSU5BTlQgTEFCRUwgUkVQT1JUIFJFVkVOVUUgRUFDSCAnICtcbiAgICAgICAgICdJTiBGUk9NIFRPVEFMIENIQVJHRSBCTE9DSyBBTkQgT1IgQ1NWX0ZJTEUgUkFURV9DT0RFIEFVWElMSUFSWV9ERU1BTkQgJyArXG4gICAgICAgICAnVUlEQUNDT1VOVCBSUyBCSUxMX1BFUklPRF9TRUxFQ1QgSE9VUlNfUEVSX01PTlRIIElOVERfRVJST1JfU1RPUCBTRUFTT05fU0NIRURVTEVfTkFNRSAnICtcbiAgICAgICAgICdBQ0NPVU5URkFDVE9SIEFSUkFZVVBQRVJCT1VORCBDQUxMU1RPUkVEUFJPQyBHRVRBRE9DT05ORUNUSU9OIEdFVENPTk5FQ1QgR0VUREFUQVNPVVJDRSAnICtcbiAgICAgICAgICdHRVRRVUFMSUZJRVIgR0VUVVNFUklEIEhBU1ZBTFVFIExJU1RDT1VOVCBMSVNUT1AgTElTVFVQREFURSBMSVNUVkFMVUUgUFJPUkFURUZBQ1RPUiBSU1BST1JBVEUgJyArXG4gICAgICAgICAnU0VUQklOUEFUSCBTRVREQk1PTklUT1IgV1FfT1BFTiBCSUxMSU5HSE9VUlMgREFURSBEQVRFRlJPTUZMT0FUIERBVEVUSU1FRlJPTVNUUklORyAnICtcbiAgICAgICAgICdEQVRFVElNRVRPU1RSSU5HIERBVEVUT0ZMT0FUIERBWSBEQVlESUZGIERBWU5BTUUgREJEQVRFVElNRSBIT1VSIE1JTlVURSBNT05USCBNT05USERJRkYgJyArXG4gICAgICAgICAnTU9OVEhIT1VSUyBNT05USE5BTUUgUk9VTkREQVRFIFNBTUVXRUVLREFZTEFTVFlFQVIgU0VDT05EIFdFRUtEQVkgV0VFS0RJRkYgWUVBUiBZRUFSREFZICcgK1xuICAgICAgICAgJ1lFQVJTVFIgQ09NUFNVTSBISVNUQ09VTlQgSElTVE1BWCBISVNUTUlOIEhJU1RNSU5OWiBISVNUVkFMVUUgTUFYTlJBTkdFIE1BWFJBTkdFIE1JTlJBTkdFICcgK1xuICAgICAgICAgJ0NPTVBJS1ZBIENPTVBLVkEgQ09NUEtWQVJGUk9NS1FLVyBDT01QTEYgSURBVFRSIEZMQUcgTEYyS1cgTEYyS1dIIE1BWEtXIFBPV0VSRkFDVE9SICcgK1xuICAgICAgICAgJ1JFQURJTkcyVVNBR0UgQVZHU0VBU09OIE1BWFNFQVNPTiBNT05USExZTUVSR0UgU0VBU09OVkFMVUUgU1VNU0VBU09OIEFDQ1RSRUFEREFURVMgJyArXG4gICAgICAgICAnQUNDVFRBQkxFTE9BRCBDT05GSUdBREQgQ09ORklHR0VUIENSRUFURU9CSkVDVCBDUkVBVEVSRVBPUlQgRU1BSUxDTElFTlQgRVhQQkxLTURNVVNBR0UgJyArXG4gICAgICAgICAnRVhQTURNVVNBR0UgRVhQT1JUX1VTQUdFIEZBQ1RPUklORUZGRUNUIEdFVFVTRVJTUEVDSUZJRURTVE9QIElORUZGRUNUIElTSE9MSURBWSBSVU5SQVRFICcgK1xuICAgICAgICAgJ1NBVkVfUFJPRklMRSBTRVRSRVBPUlRUSVRMRSBVU0VSRVhJVCBXQVRGT1JSVU5SQVRFIFRPIFRBQkxFIEFDT1MgQVNJTiBBVEFOIEFUQU4yIEJJVEFORCBDRUlMICcgK1xuICAgICAgICAgJ0NPUyBDT1NFQ0FOVCBDT1NIIENPVEFOR0VOVCBESVZRVU9UIERJVlJFTSBFWFAgRkFCUyBGTE9PUiBGTU9EIEZSRVBNIEZSRVhQTiBMT0cgTE9HMTAgTUFYIE1BWE4gJyArXG4gICAgICAgICAnTUlOIE1JTk5aIE1PREYgUE9XIFJPVU5EIFJPVU5EMlZBTFVFIFJPVU5ESU5UIFNFQ0FOVCBTSU4gU0lOSCBTUVJPT1QgVEFOIFRBTkggRkxPQVQyU1RSSU5HICcgK1xuICAgICAgICAgJ0ZMT0FUMlNUUklOR05DIElOU1RSIExFRlQgTEVOIExUUklNIE1JRCBSSUdIVCBSVFJJTSBTVFJJTkcgU1RSSU5HTkMgVE9MT1dFUiBUT1VQUEVSIFRSSU0gJyArXG4gICAgICAgICAnTlVNREFZUyBSRUFEX0RBVEUgU1RBR0lORycsXG4gICAgICAgYnVpbHRfaW46ICdJREVOVElGSUVSIE9QVElPTlMgWE1MX0VMRU1FTlQgWE1MX09QIFhNTF9FTEVNRU5UX09GIERPTURPQ0NSRUFURSBET01ET0NMT0FERklMRSBET01ET0NMT0FEWE1MICcgK1xuICAgICAgICAgJ0RPTURPQ1NBVkVGSUxFIERPTURPQ0dFVFJPT1QgRE9NRE9DQUREUEkgRE9NTk9ERUdFVE5BTUUgRE9NTk9ERUdFVFRZUEUgRE9NTk9ERUdFVFZBTFVFIERPTU5PREVHRVRDSElMRENUICcgK1xuICAgICAgICAgJ0RPTU5PREVHRVRGSVJTVENISUxEIERPTU5PREVHRVRTSUJMSU5HIERPTU5PREVDUkVBVEVDSElMREVMRU1FTlQgRE9NTk9ERVNFVEFUVFJJQlVURSAnICtcbiAgICAgICAgICdET01OT0RFR0VUQ0hJTERFTEVNRU5UQ1QgRE9NTk9ERUdFVEZJUlNUQ0hJTERFTEVNRU5UIERPTU5PREVHRVRTSUJMSU5HRUxFTUVOVCBET01OT0RFR0VUQVRUUklCVVRFQ1QgJyArXG4gICAgICAgICAnRE9NTk9ERUdFVEFUVFJJQlVURUkgRE9NTk9ERUdFVEFUVFJJQlVURUJZTkFNRSBET01OT0RFR0VUQllOQU1FJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46ICcjXFxcXHMrW2EtekEtWlxcXFwgXFxcXC5dKicsIHJlbGV2YW5jZTogMH0sIC8vIGxvb2tzIGxpa2UgIy1jb21tZW50XG4gICAgICAgICAge2JlZ2luOiAnI1thLXpBLVpcXFxcIFxcXFwuXSsnfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIE5VTV9TVUZGSVggPSAnKFt1aV0oOHwxNnwzMnw2NHwxMjh8c2l6ZSl8ZigzMnw2NCkpXFw/JztcbiAgdmFyIEtFWVdPUkRTID1cbiAgICAnYWxpZ25vZiBhcyBiZSBib3ggYnJlYWsgY29uc3QgY29udGludWUgY3JhdGUgZG8gZWxzZSBlbnVtIGV4dGVybiAnICtcbiAgICAnZmFsc2UgZm4gZm9yIGlmIGltcGwgaW4gbGV0IGxvb3AgbWF0Y2ggbW9kIG11dCBvZmZzZXRvZiBvbmNlIHByaXYgJyArXG4gICAgJ3Byb2MgcHViIHB1cmUgcmVmIHJldHVybiBzZWxmIFNlbGYgc2l6ZW9mIHN0YXRpYyBzdHJ1Y3Qgc3VwZXIgdHJhaXQgdHJ1ZSAnICtcbiAgICAndHlwZSB0eXBlb2YgdW5zYWZlIHVuc2l6ZWQgdXNlIHZpcnR1YWwgd2hpbGUgd2hlcmUgeWllbGQgbW92ZSBkZWZhdWx0JztcbiAgdmFyIEJVSUxUSU5TID1cbiAgICAvLyBmdW5jdGlvbnNcbiAgICAnZHJvcCAnICtcbiAgICAvLyB0eXBlc1xuICAgICdpOCBpMTYgaTMyIGk2NCBpMTI4IGlzaXplICcgK1xuICAgICd1OCB1MTYgdTMyIHU2NCB1MTI4IHVzaXplICcgK1xuICAgICdmMzIgZjY0ICcgK1xuICAgICdzdHIgY2hhciBib29sICcgK1xuICAgICdCb3ggT3B0aW9uIFJlc3VsdCBTdHJpbmcgVmVjICcgK1xuICAgIC8vIHRyYWl0c1xuICAgICdDb3B5IFNlbmQgU2l6ZWQgU3luYyBEcm9wIEZuIEZuTXV0IEZuT25jZSBUb093bmVkIENsb25lIERlYnVnICcgK1xuICAgICdQYXJ0aWFsRXEgUGFydGlhbE9yZCBFcSBPcmQgQXNSZWYgQXNNdXQgSW50byBGcm9tIERlZmF1bHQgSXRlcmF0b3IgJyArXG4gICAgJ0V4dGVuZCBJbnRvSXRlcmF0b3IgRG91YmxlRW5kZWRJdGVyYXRvciBFeGFjdFNpemVJdGVyYXRvciAnICtcbiAgICAnU2xpY2VDb25jYXRFeHQgVG9TdHJpbmcgJyArXG4gICAgLy8gbWFjcm9zXG4gICAgJ2Fzc2VydCEgYXNzZXJ0X2VxISBiaXRmbGFncyEgYnl0ZXMhIGNmZyEgY29sISBjb25jYXQhIGNvbmNhdF9pZGVudHMhICcgK1xuICAgICdkZWJ1Z19hc3NlcnQhIGRlYnVnX2Fzc2VydF9lcSEgZW52ISBwYW5pYyEgZmlsZSEgZm9ybWF0ISBmb3JtYXRfYXJncyEgJyArXG4gICAgJ2luY2x1ZGVfYmluISBpbmNsdWRlX3N0ciEgbGluZSEgbG9jYWxfZGF0YV9rZXkhIG1vZHVsZV9wYXRoISAnICtcbiAgICAnb3B0aW9uX2VudiEgcHJpbnQhIHByaW50bG4hIHNlbGVjdCEgc3RyaW5naWZ5ISB0cnkhIHVuaW1wbGVtZW50ZWQhICcgK1xuICAgICd1bnJlYWNoYWJsZSEgdmVjISB3cml0ZSEgd3JpdGVsbiEgbWFjcm9fcnVsZXMhIGFzc2VydF9uZSEgZGVidWdfYXNzZXJ0X25lISc7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydycyddLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlIFNvbWUgTm9uZSBPayBFcnInLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIEJVSUxUSU5TXG4gICAgfSxcbiAgICBsZXhlbWVzOiBobGpzLklERU5UX1JFICsgJyE/JyxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nLCB7Y29udGFpbnM6IFsnc2VsZiddfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2JlZ2luOiAvYj9cIi8sIGlsbGVnYWw6IG51bGx9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgeyBiZWdpbjogL3IoIyopXCIoLnxcXG4pKj9cIlxcMSg/ISMpLyB9LFxuICAgICAgICAgICB7IGJlZ2luOiAvYj8nXFxcXD8oeFxcd3syfXx1XFx3ezR9fFVcXHd7OH18LiknLyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAvJ1thLXpBLVpfXVthLXpBLVowLTlfXSovXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYjBiKFswMV9dKyknICsgTlVNX1NVRkZJWCB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYjBvKFswLTdfXSspJyArIE5VTV9TVUZGSVggfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIweChbQS1GYS1mMC05X10rKScgKyBOVU1fU1VGRklYIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiKFxcXFxkW1xcXFxkX10qKFxcXFwuWzAtOV9dKyk/KFtlRV1bKy1dP1swLTlfXSspPyknICtcbiAgICAgICAgICAgICAgICAgICBOVU1fU1VGRklYXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2ZuJywgZW5kOiAnKFxcXFwofDwpJywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyNcXFxcIT9cXFxcWycsIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhLXN0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogL1wiLywgZW5kOiAvXCIvXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICd0eXBlJywgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCB7ZW5kc1BhcmVudDogdHJ1ZX0pXG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcUydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3RyYWl0IGVudW0gc3RydWN0IHVuaW9uJywgZW5kOiAneycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCB7ZW5kc1BhcmVudDogdHJ1ZX0pXG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6ICdbXFxcXHdcXFxcZF0nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgIGtleXdvcmRzOiB7YnVpbHRfaW46IEJVSUxUSU5TfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICctPidcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuXG4gIHZhciBBTk5PVEFUSU9OID0geyBjbGFzc05hbWU6ICdtZXRhJywgYmVnaW46ICdAW0EtWmEtel0rJyB9O1xuXG4gIC8vIHVzZWQgaW4gc3RyaW5ncyBmb3IgZXNjYXBpbmcvaW50ZXJwb2xhdGlvbi9zdWJzdGl0dXRpb25cbiAgdmFyIFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge2JlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJ30sXG4gICAgICB7YmVnaW46ICdcXFxcJHsnLCBlbmQ6ICd9J31cbiAgICBdXG4gIH07XG5cbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLCBlbmQ6ICdcIlwiXCInLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1thLXpdK1wiJywgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRSwgU1VCU1RdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1thLXpdK1wiXCJcIicsIGVuZDogJ1wiXCJcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbU1VCU1RdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXVxuXG4gIH07XG5cbiAgdmFyIFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXFwnXFxcXHdbXFxcXHdcXFxcZF9dKig/IVxcJyknXG4gIH07XG5cbiAgdmFyIFRZUEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgYmVnaW46ICdcXFxcYltBLVpdW0EtWmEtejAtOV9dKicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIE5BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiAvW14wLTlcXG5cXHQgXCInKCksLmB7fVxcW1xcXTo7XVteXFxuXFx0IFwiJygpLC5ge31cXFtcXF06O10rfFteMC05XFxuXFx0IFwiJygpLC5ge31cXFtcXF06Oz1dLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICB2YXIgQ0xBU1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBvYmplY3QgdHJhaXQgdHlwZScsXG4gICAgZW5kOiAvWzo9e1xcW1xcbjtdLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIHdpdGgnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcWy8sXG4gICAgICAgIGVuZDogL1xcXS8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1RZUEVdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1RZUEVdXG4gICAgICB9LFxuICAgICAgTkFNRVxuICAgIF1cbiAgfTtcblxuICB2YXIgTUVUSE9EID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmJyxcbiAgICBlbmQ6IC9bOj17XFxbKFxcbjtdLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbTkFNRV1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiB7XG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBudWxsJyxcbiAgICAgIGtleXdvcmQ6ICd0eXBlIHlpZWxkIGxhenkgb3ZlcnJpZGUgZGVmIHdpdGggdmFsIHZhciBzZWFsZWQgYWJzdHJhY3QgcHJpdmF0ZSB0cmFpdCBvYmplY3QgaWYgZm9yU29tZSBmb3Igd2hpbGUgdGhyb3cgZmluYWxseSBwcm90ZWN0ZWQgZXh0ZW5kcyBpbXBvcnQgZmluYWwgcmV0dXJuIGVsc2UgYnJlYWsgbmV3IGNhdGNoIHN1cGVyIGNsYXNzIGNhc2UgcGFja2FnZSBkZWZhdWx0IHRyeSB0aGlzIG1hdGNoIGNvbnRpbnVlIHRocm93cyBpbXBsaWNpdCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgU1RSSU5HLFxuICAgICAgU1lNQk9MLFxuICAgICAgVFlQRSxcbiAgICAgIE1FVEhPRCxcbiAgICAgIENMQVNTLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgQU5OT1RBVElPTlxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBTQ0hFTUVfSURFTlRfUkUgPSAnW15cXFxcKFxcXFwpXFxcXFtcXFxcXVxcXFx7XFxcXH1cIixcXCdgOyN8XFxcXFxcXFxcXFxcc10rJztcbiAgdmFyIFNDSEVNRV9TSU1QTEVfTlVNQkVSX1JFID0gJyhcXFxcLXxcXFxcKyk/XFxcXGQrKFsuL11cXFxcZCspPyc7XG4gIHZhciBTQ0hFTUVfQ09NUExFWF9OVU1CRVJfUkUgPSBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdbK1xcXFwtXScgKyBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdpJztcbiAgdmFyIEJVSUxUSU5TID0ge1xuICAgICdidWlsdGluLW5hbWUnOlxuICAgICAgJ2Nhc2UtbGFtYmRhIGNhbGwvY2MgY2xhc3MgZGVmaW5lLWNsYXNzIGV4aXQtaGFuZGxlciBmaWVsZCBpbXBvcnQgJyArXG4gICAgICAnaW5oZXJpdCBpbml0LWZpZWxkIGludGVyZmFjZSBsZXQqLXZhbHVlcyBsZXQtdmFsdWVzIGxldC9lYyBtaXhpbiAnICtcbiAgICAgICdvcHQtbGFtYmRhIG92ZXJyaWRlIHByb3RlY3QgcHJvdmlkZSBwdWJsaWMgcmVuYW1lIHJlcXVpcmUgJyArXG4gICAgICAncmVxdWlyZS1mb3Itc3ludGF4IHN5bnRheCBzeW50YXgtY2FzZSBzeW50YXgtZXJyb3IgdW5pdC9zaWcgdW5sZXNzICcgK1xuICAgICAgJ3doZW4gd2l0aC1zeW50YXggYW5kIGJlZ2luIGNhbGwtd2l0aC1jdXJyZW50LWNvbnRpbnVhdGlvbiAnICtcbiAgICAgICdjYWxsLXdpdGgtaW5wdXQtZmlsZSBjYWxsLXdpdGgtb3V0cHV0LWZpbGUgY2FzZSBjb25kIGRlZmluZSAnICtcbiAgICAgICdkZWZpbmUtc3ludGF4IGRlbGF5IGRvIGR5bmFtaWMtd2luZCBlbHNlIGZvci1lYWNoIGlmIGxhbWJkYSBsZXQgbGV0KiAnICtcbiAgICAgICdsZXQtc3ludGF4IGxldHJlYyBsZXRyZWMtc3ludGF4IG1hcCBvciBzeW50YXgtcnVsZXMgXFwnICogKyAsICxAIC0gLi4uIC8gJyArXG4gICAgICAnOyA8IDw9ID0gPT4gPiA+PSBgIGFicyBhY29zIGFuZ2xlIGFwcGVuZCBhcHBseSBhc2luIGFzc29jIGFzc3EgYXNzdiBhdGFuICcgK1xuICAgICAgJ2Jvb2xlYW4/IGNhYXIgY2FkciBjYWxsLXdpdGgtaW5wdXQtZmlsZSBjYWxsLXdpdGgtb3V0cHV0LWZpbGUgJyArXG4gICAgICAnY2FsbC13aXRoLXZhbHVlcyBjYXIgY2RkZGFyIGNkZGRkciBjZHIgY2VpbGluZyBjaGFyLT5pbnRlZ2VyICcgK1xuICAgICAgJ2NoYXItYWxwaGFiZXRpYz8gY2hhci1jaTw9PyBjaGFyLWNpPD8gY2hhci1jaT0/IGNoYXItY2k+PT8gY2hhci1jaT4/ICcgK1xuICAgICAgJ2NoYXItZG93bmNhc2UgY2hhci1sb3dlci1jYXNlPyBjaGFyLW51bWVyaWM/IGNoYXItcmVhZHk/IGNoYXItdXBjYXNlICcgK1xuICAgICAgJ2NoYXItdXBwZXItY2FzZT8gY2hhci13aGl0ZXNwYWNlPyBjaGFyPD0/IGNoYXI8PyBjaGFyPT8gY2hhcj49PyBjaGFyPj8gJyArXG4gICAgICAnY2hhcj8gY2xvc2UtaW5wdXQtcG9ydCBjbG9zZS1vdXRwdXQtcG9ydCBjb21wbGV4PyBjb25zIGNvcyAnICtcbiAgICAgICdjdXJyZW50LWlucHV0LXBvcnQgY3VycmVudC1vdXRwdXQtcG9ydCBkZW5vbWluYXRvciBkaXNwbGF5IGVvZi1vYmplY3Q/ICcgK1xuICAgICAgJ2VxPyBlcXVhbD8gZXF2PyBldmFsIGV2ZW4/IGV4YWN0LT5pbmV4YWN0IGV4YWN0PyBleHAgZXhwdCBmbG9vciAnICtcbiAgICAgICdmb3JjZSBnY2QgaW1hZy1wYXJ0IGluZXhhY3QtPmV4YWN0IGluZXhhY3Q/IGlucHV0LXBvcnQ/IGludGVnZXItPmNoYXIgJyArXG4gICAgICAnaW50ZWdlcj8gaW50ZXJhY3Rpb24tZW52aXJvbm1lbnQgbGNtIGxlbmd0aCBsaXN0IGxpc3QtPnN0cmluZyAnICtcbiAgICAgICdsaXN0LT52ZWN0b3IgbGlzdC1yZWYgbGlzdC10YWlsIGxpc3Q/IGxvYWQgbG9nIG1hZ25pdHVkZSBtYWtlLXBvbGFyICcgK1xuICAgICAgJ21ha2UtcmVjdGFuZ3VsYXIgbWFrZS1zdHJpbmcgbWFrZS12ZWN0b3IgbWF4IG1lbWJlciBtZW1xIG1lbXYgbWluICcgK1xuICAgICAgJ21vZHVsbyBuZWdhdGl2ZT8gbmV3bGluZSBub3QgbnVsbC1lbnZpcm9ubWVudCBudWxsPyBudW1iZXItPnN0cmluZyAnICtcbiAgICAgICdudW1iZXI/IG51bWVyYXRvciBvZGQ/IG9wZW4taW5wdXQtZmlsZSBvcGVuLW91dHB1dC1maWxlIG91dHB1dC1wb3J0PyAnICtcbiAgICAgICdwYWlyPyBwZWVrLWNoYXIgcG9ydD8gcG9zaXRpdmU/IHByb2NlZHVyZT8gcXVhc2lxdW90ZSBxdW90ZSBxdW90aWVudCAnICtcbiAgICAgICdyYXRpb25hbD8gcmF0aW9uYWxpemUgcmVhZCByZWFkLWNoYXIgcmVhbC1wYXJ0IHJlYWw/IHJlbWFpbmRlciByZXZlcnNlICcgK1xuICAgICAgJ3JvdW5kIHNjaGVtZS1yZXBvcnQtZW52aXJvbm1lbnQgc2V0ISBzZXQtY2FyISBzZXQtY2RyISBzaW4gc3FydCBzdHJpbmcgJyArXG4gICAgICAnc3RyaW5nLT5saXN0IHN0cmluZy0+bnVtYmVyIHN0cmluZy0+c3ltYm9sIHN0cmluZy1hcHBlbmQgc3RyaW5nLWNpPD0/ICcgK1xuICAgICAgJ3N0cmluZy1jaTw/IHN0cmluZy1jaT0/IHN0cmluZy1jaT49PyBzdHJpbmctY2k+PyBzdHJpbmctY29weSAnICtcbiAgICAgICdzdHJpbmctZmlsbCEgc3RyaW5nLWxlbmd0aCBzdHJpbmctcmVmIHN0cmluZy1zZXQhIHN0cmluZzw9PyBzdHJpbmc8PyAnICtcbiAgICAgICdzdHJpbmc9PyBzdHJpbmc+PT8gc3RyaW5nPj8gc3RyaW5nPyBzdWJzdHJpbmcgc3ltYm9sLT5zdHJpbmcgc3ltYm9sPyAnICtcbiAgICAgICd0YW4gdHJhbnNjcmlwdC1vZmYgdHJhbnNjcmlwdC1vbiB0cnVuY2F0ZSB2YWx1ZXMgdmVjdG9yICcgK1xuICAgICAgJ3ZlY3Rvci0+bGlzdCB2ZWN0b3ItZmlsbCEgdmVjdG9yLWxlbmd0aCB2ZWN0b3ItcmVmIHZlY3Rvci1zZXQhICcgK1xuICAgICAgJ3dpdGgtaW5wdXQtZnJvbS1maWxlIHdpdGgtb3V0cHV0LXRvLWZpbGUgd3JpdGUgd3JpdGUtY2hhciB6ZXJvPydcbiAgfTtcblxuICB2YXIgU0hFQkFORyA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ14jIScsXG4gICAgZW5kOiAnJCdcbiAgfTtcblxuICB2YXIgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogJygjdHwjZnwjXFxcXFxcXFwnICsgU0NIRU1FX0lERU5UX1JFICsgJ3wjXFxcXFxcXFwuKSdcbiAgfTtcblxuICB2YXIgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IFNDSEVNRV9TSU1QTEVfTlVNQkVSX1JFLCByZWxldmFuY2U6IDAgfSxcbiAgICAgIHsgYmVnaW46IFNDSEVNRV9DT01QTEVYX05VTUJFUl9SRSwgcmVsZXZhbmNlOiAwIH0sXG4gICAgICB7IGJlZ2luOiAnI2JbMC0xXSsoL1swLTFdKyk/JyB9LFxuICAgICAgeyBiZWdpbjogJyNvWzAtN10rKC9bMC03XSspPycgfSxcbiAgICAgIHsgYmVnaW46ICcjeFswLTlhLWZdKygvWzAtOWEtZl0rKT8nIH1cbiAgICBdXG4gIH07XG5cbiAgdmFyIFNUUklORyA9IGhsanMuUVVPVEVfU1RSSU5HX01PREU7XG5cbiAgdmFyIFJFR1VMQVJfRVhQUkVTU0lPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgIGJlZ2luOiAnI1twcl14XCInLFxuICAgIGVuZDogJ1teXFxcXFxcXFxdXCInXG4gIH07XG5cbiAgdmFyIENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DT01NRU5UKFxuICAgICAgJzsnLFxuICAgICAgJyQnLFxuICAgICAge1xuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICApLFxuICAgIGhsanMuQ09NTUVOVCgnI1xcXFx8JywgJ1xcXFx8IycpXG4gIF07XG5cbiAgdmFyIElERU5UID0ge1xuICAgIGJlZ2luOiBTQ0hFTUVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgdmFyIFFVT1RFRF9JREVOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXFwnJyArIFNDSEVNRV9JREVOVF9SRVxuICB9O1xuXG4gIHZhciBCT0RZID0ge1xuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHZhciBRVU9URURfTElTVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogLycvIH0sXG4gICAgICB7IGJlZ2luOiAnYCcgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFsnc2VsZicsIExJVEVSQUwsIFNUUklORywgTlVNQkVSLCBJREVOVCwgUVVPVEVEX0lERU5UXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICB2YXIgTkFNRSA9IHtcbiAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICBiZWdpbjogU0NIRU1FX0lERU5UX1JFLFxuICAgIGxleGVtZXM6IFNDSEVNRV9JREVOVF9SRSxcbiAgICBrZXl3b3JkczogQlVJTFRJTlNcbiAgfTtcblxuICB2YXIgTEFNQkRBID0ge1xuICAgIGJlZ2luOiAvbGFtYmRhLywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOQU1FLFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbSURFTlRdLFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICB2YXIgTElTVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXFsnLCBlbmQ6ICdcXFxcXScgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtMQU1CREEsIE5BTUUsIEJPRFldXG4gIH07XG5cbiAgQk9EWS5jb250YWlucyA9IFtMSVRFUkFMLCBOVU1CRVIsIFNUUklORywgSURFTlQsIFFVT1RFRF9JREVOVCwgUVVPVEVEX0xJU1QsIExJU1RdLmNvbmNhdChDT01NRU5UX01PREVTKTtcblxuICByZXR1cm4ge1xuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbU0hFQkFORywgTlVNQkVSLCBTVFJJTkcsIFFVT1RFRF9JREVOVCwgUVVPVEVEX0xJU1QsIExJU1RdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcblxuICB2YXIgQ09NTU9OX0NPTlRBSU5TID0gW1xuICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcXCd8XFxcIicsIGVuZDogJ1xcJ3xcXFwiJyxcbiAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCB7YmVnaW46ICdcXCdcXCcnfV1cbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3NjaSddLFxuICAgIGxleGVtZXM6IC8lP1xcdysvLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiAnYWJvcnQgYnJlYWsgY2FzZSBjbGVhciBjYXRjaCBjb250aW51ZSBkbyBlbHNlaWYgZWxzZSBlbmRmdW5jdGlvbiBlbmQgZm9yIGZ1bmN0aW9uICcrXG4gICAgICAgICdnbG9iYWwgaWYgcGF1c2UgcmV0dXJuIHJlc3VtZSBzZWxlY3QgdHJ5IHRoZW4gd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJyVmICVGICV0ICVUICVwaSAlZXBzICVpbmYgJW5hbiAlZSAlaSAleiAlcycsXG4gICAgICBidWlsdF9pbjogLy8gU2NpbGFiIGhhcyBtb3JlIHRoYW4gMjAwMCBmdW5jdGlvbnMuIEp1c3QgbGlzdCB0aGUgbW9zdCBjb21tb25zXG4gICAgICAgJ2FicyBhbmQgYWNvcyBhc2luIGF0YW4gY2VpbCBjZCBjaGRpciBjbGVhcmdsb2JhbCBjb3NoIGNvcyBjdW1wcm9kIGRlZmYgZGlzcCBlcnJvciAnK1xuICAgICAgICdleGVjIGV4ZWNzdHIgZXhpc3RzIGV4cCBleWUgZ2V0dGV4dCBmbG9vciBmcHJpbnRmIGZyZWFkIGZzb2x2ZSBpbWFnIGlzZGVmIGlzZW1wdHkgJytcbiAgICAgICAnaXNpbmZpc25hbiBpc3ZlY3RvciBsYXN0ZXJyb3IgbGVuZ3RoIGxvYWQgbGluc3BhY2UgbGlzdCBsaXN0ZmlsZXMgbG9nMTAgbG9nMiBsb2cgJytcbiAgICAgICAnbWF4IG1pbiBtc3ByaW50ZiBtY2xvc2UgbW9wZW4gb25lcyBvciBwYXRoY29udmVydCBwb2x5IHByaW50ZiBwcm9kIHB3ZCByYW5kIHJlYWwgJytcbiAgICAgICAncm91bmQgc2luaCBzaW4gc2l6ZSBnc29ydCBzcHJpbnRmIHNxcnQgc3RyY2F0IHN0cmNtcHMgdHJpbmcgc3VtIHN5c3RlbSB0YW5oIHRhbiAnK1xuICAgICAgICd0eXBlIHR5cGVuYW1lIHdhcm5pbmcgemVyb3MgbWF0cml4J1xuICAgIH0sXG4gICAgaWxsZWdhbDogJyhcInwjfC9cXFxcKnxcXFxccysvXFxcXHcrKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLCBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16QS1aX11bYS16QS1aXzAtOV0qKFxcJytbXFxcXC5cXCddKnxbXFxcXC5cXCddKyknLCBlbmQ6ICcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXFsnLCBlbmQ6ICdcXFxcXVxcJypbXFxcXC5cXCddKicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IENPTU1PTl9DT05UQUlOU1xuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnJCcpXG4gICAgXS5jb25jYXQoQ09NTU9OX0NPTlRBSU5TKVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIElERU5UX1JFID0gJ1thLXpBLVotXVthLXpBLVowLTlfLV0qJztcbiAgdmFyIFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJyhcXFxcJCcgKyBJREVOVF9SRSArICcpXFxcXGInXG4gIH07XG4gIHZhciBIRVhDT0xPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLCBiZWdpbjogJyNbMC05QS1GYS1mXSsnXG4gIH07XG4gIHZhciBERUZfSU5URVJOQUxTID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgYmVnaW46ICdbQS1aXFxcXF9cXFxcLlxcXFwtXSsnLCBlbmQ6ICc6JyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbXlxcXFxzXScsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIEhFWENPTE9SLFxuICAgICAgICBobGpzLkNTU19OVU1CRVJfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPS98XFwnXScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJywgYmVnaW46ICdcXFxcI1tBLVphLXowLTlfLV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1jbGFzcycsIGJlZ2luOiAnXFxcXC5bQS1aYS16MC05Xy1dKycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItYXR0cicsIGJlZ2luOiAnXFxcXFsnLCBlbmQ6ICdcXFxcXScsXG4gICAgICAgIGlsbGVnYWw6ICckJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItdGFnJywgLy8gYmVnaW46IElERU5UX1JFLCBlbmQ6ICdbLHxcXFxcc10nXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoYXxhYmJyfGFjcm9ueW18YWRkcmVzc3xhcmVhfGFydGljbGV8YXNpZGV8YXVkaW98YnxiYXNlfGJpZ3xibG9ja3F1b3RlfGJvZHl8YnJ8YnV0dG9ufGNhbnZhc3xjYXB0aW9ufGNpdGV8Y29kZXxjb2x8Y29sZ3JvdXB8Y29tbWFuZHxkYXRhbGlzdHxkZHxkZWx8ZGV0YWlsc3xkZm58ZGl2fGRsfGR0fGVtfGVtYmVkfGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fChoWzEtNl0pfGhlYWR8aGVhZGVyfGhncm91cHxocnxodG1sfGl8aWZyYW1lfGltZ3xpbnB1dHxpbnN8a2JkfGtleWdlbnxsYWJlbHxsZWdlbmR8bGl8bGlua3xtYXB8bWFya3xtZXRhfG1ldGVyfG5hdnxub2ZyYW1lc3xub3NjcmlwdHxvYmplY3R8b2x8b3B0Z3JvdXB8b3B0aW9ufG91dHB1dHxwfHBhcmFtfHByZXxwcm9ncmVzc3xxfHJwfHJ0fHJ1Ynl8c2FtcHxzY3JpcHR8c2VjdGlvbnxzZWxlY3R8c21hbGx8c3BhbnxzdHJpa2V8c3Ryb25nfHN0eWxlfHN1YnxzdXB8dGFibGV8dGJvZHl8dGR8dGV4dGFyZWF8dGZvb3R8dGh8dGhlYWR8dGltZXx0aXRsZXx0cnx0dHx1bHx2YXJ8dmlkZW8pXFxcXGInLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnOih2aXNpdGVkfHZhbGlkfHJvb3R8cmlnaHR8cmVxdWlyZWR8cmVhZC13cml0ZXxyZWFkLW9ubHl8b3V0LXJhbmdlfG9wdGlvbmFsfG9ubHktb2YtdHlwZXxvbmx5LWNoaWxkfG50aC1vZi10eXBlfG50aC1sYXN0LW9mLXR5cGV8bnRoLWxhc3QtY2hpbGR8bnRoLWNoaWxkfG5vdHxsaW5rfGxlZnR8bGFzdC1vZi10eXBlfGxhc3QtY2hpbGR8bGFuZ3xpbnZhbGlkfGluZGV0ZXJtaW5hdGV8aW4tcmFuZ2V8aG92ZXJ8Zm9jdXN8Zmlyc3Qtb2YtdHlwZXxmaXJzdC1saW5lfGZpcnN0LWxldHRlcnxmaXJzdC1jaGlsZHxmaXJzdHxlbmFibGVkfGVtcHR5fGRpc2FibGVkfGRlZmF1bHR8Y2hlY2tlZHxiZWZvcmV8YWZ0ZXJ8YWN0aXZlKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnOjooYWZ0ZXJ8YmVmb3JlfGNob2ljZXN8Zmlyc3QtbGV0dGVyfGZpcnN0LWxpbmV8cmVwZWF0LWluZGV4fHJlcGVhdC1pdGVtfHNlbGVjdGlvbnx2YWx1ZSknXG4gICAgICB9LFxuICAgICAgVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoei1pbmRleHx3b3JkLXdyYXB8d29yZC1zcGFjaW5nfHdvcmQtYnJlYWt8d2lkdGh8d2lkb3dzfHdoaXRlLXNwYWNlfHZpc2liaWxpdHl8dmVydGljYWwtYWxpZ258dW5pY29kZS1iaWRpfHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9ufHRyYW5zaXRpb24tcHJvcGVydHl8dHJhbnNpdGlvbi1kdXJhdGlvbnx0cmFuc2l0aW9uLWRlbGF5fHRyYW5zaXRpb258dHJhbnNmb3JtLXN0eWxlfHRyYW5zZm9ybS1vcmlnaW58dHJhbnNmb3JtfHRvcHx0ZXh0LXVuZGVybGluZS1wb3NpdGlvbnx0ZXh0LXRyYW5zZm9ybXx0ZXh0LXNoYWRvd3x0ZXh0LXJlbmRlcmluZ3x0ZXh0LW92ZXJmbG93fHRleHQtaW5kZW50fHRleHQtZGVjb3JhdGlvbi1zdHlsZXx0ZXh0LWRlY29yYXRpb24tbGluZXx0ZXh0LWRlY29yYXRpb24tY29sb3J8dGV4dC1kZWNvcmF0aW9ufHRleHQtYWxpZ24tbGFzdHx0ZXh0LWFsaWdufHRhYi1zaXplfHRhYmxlLWxheW91dHxyaWdodHxyZXNpemV8cXVvdGVzfHBvc2l0aW9ufHBvaW50ZXItZXZlbnRzfHBlcnNwZWN0aXZlLW9yaWdpbnxwZXJzcGVjdGl2ZXxwYWdlLWJyZWFrLWluc2lkZXxwYWdlLWJyZWFrLWJlZm9yZXxwYWdlLWJyZWFrLWFmdGVyfHBhZGRpbmctdG9wfHBhZGRpbmctcmlnaHR8cGFkZGluZy1sZWZ0fHBhZGRpbmctYm90dG9tfHBhZGRpbmd8b3ZlcmZsb3cteXxvdmVyZmxvdy14fG92ZXJmbG93LXdyYXB8b3ZlcmZsb3d8b3V0bGluZS13aWR0aHxvdXRsaW5lLXN0eWxlfG91dGxpbmUtb2Zmc2V0fG91dGxpbmUtY29sb3J8b3V0bGluZXxvcnBoYW5zfG9yZGVyfG9wYWNpdHl8b2JqZWN0LXBvc2l0aW9ufG9iamVjdC1maXR8bm9ybWFsfG5vbmV8bmF2LXVwfG5hdi1yaWdodHxuYXYtbGVmdHxuYXYtaW5kZXh8bmF2LWRvd258bWluLXdpZHRofG1pbi1oZWlnaHR8bWF4LXdpZHRofG1heC1oZWlnaHR8bWFza3xtYXJrc3xtYXJnaW4tdG9wfG1hcmdpbi1yaWdodHxtYXJnaW4tbGVmdHxtYXJnaW4tYm90dG9tfG1hcmdpbnxsaXN0LXN0eWxlLXR5cGV8bGlzdC1zdHlsZS1wb3NpdGlvbnxsaXN0LXN0eWxlLWltYWdlfGxpc3Qtc3R5bGV8bGluZS1oZWlnaHR8bGV0dGVyLXNwYWNpbmd8bGVmdHxqdXN0aWZ5LWNvbnRlbnR8aW5pdGlhbHxpbmhlcml0fGltZS1tb2RlfGltYWdlLW9yaWVudGF0aW9ufGltYWdlLXJlc29sdXRpb258aW1hZ2UtcmVuZGVyaW5nfGljb258aHlwaGVuc3xoZWlnaHR8Zm9udC13ZWlnaHR8Zm9udC12YXJpYW50LWxpZ2F0dXJlc3xmb250LXZhcmlhbnR8Zm9udC1zdHlsZXxmb250LXN0cmV0Y2h8Zm9udC1zaXplLWFkanVzdHxmb250LXNpemV8Zm9udC1sYW5ndWFnZS1vdmVycmlkZXxmb250LWtlcm5pbmd8Zm9udC1mZWF0dXJlLXNldHRpbmdzfGZvbnQtZmFtaWx5fGZvbnR8ZmxvYXR8ZmxleC13cmFwfGZsZXgtc2hyaW5rfGZsZXgtZ3Jvd3xmbGV4LWZsb3d8ZmxleC1kaXJlY3Rpb258ZmxleC1iYXNpc3xmbGV4fGZpbHRlcnxlbXB0eS1jZWxsc3xkaXNwbGF5fGRpcmVjdGlvbnxjdXJzb3J8Y291bnRlci1yZXNldHxjb3VudGVyLWluY3JlbWVudHxjb250ZW50fGNvbHVtbi13aWR0aHxjb2x1bW4tc3Bhbnxjb2x1bW4tcnVsZS13aWR0aHxjb2x1bW4tcnVsZS1zdHlsZXxjb2x1bW4tcnVsZS1jb2xvcnxjb2x1bW4tcnVsZXxjb2x1bW4tZ2FwfGNvbHVtbi1maWxsfGNvbHVtbi1jb3VudHxjb2x1bW5zfGNvbG9yfGNsaXAtcGF0aHxjbGlwfGNsZWFyfGNhcHRpb24tc2lkZXxicmVhay1pbnNpZGV8YnJlYWstYmVmb3JlfGJyZWFrLWFmdGVyfGJveC1zaXppbmd8Ym94LXNoYWRvd3xib3gtZGVjb3JhdGlvbi1icmVha3xib3R0b218Ym9yZGVyLXdpZHRofGJvcmRlci10b3Atd2lkdGh8Ym9yZGVyLXRvcC1zdHlsZXxib3JkZXItdG9wLXJpZ2h0LXJhZGl1c3xib3JkZXItdG9wLWxlZnQtcmFkaXVzfGJvcmRlci10b3AtY29sb3J8Ym9yZGVyLXRvcHxib3JkZXItc3R5bGV8Ym9yZGVyLXNwYWNpbmd8Ym9yZGVyLXJpZ2h0LXdpZHRofGJvcmRlci1yaWdodC1zdHlsZXxib3JkZXItcmlnaHQtY29sb3J8Ym9yZGVyLXJpZ2h0fGJvcmRlci1yYWRpdXN8Ym9yZGVyLWxlZnQtd2lkdGh8Ym9yZGVyLWxlZnQtc3R5bGV8Ym9yZGVyLWxlZnQtY29sb3J8Ym9yZGVyLWxlZnR8Ym9yZGVyLWltYWdlLXdpZHRofGJvcmRlci1pbWFnZS1zb3VyY2V8Ym9yZGVyLWltYWdlLXNsaWNlfGJvcmRlci1pbWFnZS1yZXBlYXR8Ym9yZGVyLWltYWdlLW91dHNldHxib3JkZXItaW1hZ2V8Ym9yZGVyLWNvbG9yfGJvcmRlci1jb2xsYXBzZXxib3JkZXItYm90dG9tLXdpZHRofGJvcmRlci1ib3R0b20tc3R5bGV8Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXN8Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1c3xib3JkZXItYm90dG9tLWNvbG9yfGJvcmRlci1ib3R0b218Ym9yZGVyfGJhY2tncm91bmQtc2l6ZXxiYWNrZ3JvdW5kLXJlcGVhdHxiYWNrZ3JvdW5kLXBvc2l0aW9ufGJhY2tncm91bmQtb3JpZ2lufGJhY2tncm91bmQtaW1hZ2V8YmFja2dyb3VuZC1jb2xvcnxiYWNrZ3JvdW5kLWNsaXB8YmFja2dyb3VuZC1hdHRhY2htZW50fGJhY2tncm91bmQtYmxlbmQtbW9kZXxiYWNrZ3JvdW5kfGJhY2tmYWNlLXZpc2liaWxpdHl8YXV0b3xhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9ufGFuaW1hdGlvbi1wbGF5LXN0YXRlfGFuaW1hdGlvbi1uYW1lfGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnR8YW5pbWF0aW9uLWZpbGwtbW9kZXxhbmltYXRpb24tZHVyYXRpb258YW5pbWF0aW9uLWRpcmVjdGlvbnxhbmltYXRpb24tZGVsYXl8YW5pbWF0aW9ufGFsaWduLXNlbGZ8YWxpZ24taXRlbXN8YWxpZ24tY29udGVudClcXFxcYicsXG4gICAgICAgIGlsbGVnYWw6ICdbXlxcXFxzXSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGIod2hpdGVzcGFjZXx3YWl0fHctcmVzaXplfHZpc2libGV8dmVydGljYWwtdGV4dHx2ZXJ0aWNhbC1pZGVvZ3JhcGhpY3x1cHBlcmNhc2V8dXBwZXItcm9tYW58dXBwZXItYWxwaGF8dW5kZXJsaW5lfHRyYW5zcGFyZW50fHRvcHx0aGlufHRoaWNrfHRleHR8dGV4dC10b3B8dGV4dC1ib3R0b218dGItcmx8dGFibGUtaGVhZGVyLWdyb3VwfHRhYmxlLWZvb3Rlci1ncm91cHxzdy1yZXNpemV8c3VwZXJ8c3RyaWN0fHN0YXRpY3xzcXVhcmV8c29saWR8c21hbGwtY2Fwc3xzZXBhcmF0ZXxzZS1yZXNpemV8c2Nyb2xsfHMtcmVzaXplfHJ0bHxyb3ctcmVzaXplfHJpZGdlfHJpZ2h0fHJlcGVhdHxyZXBlYXQteXxyZXBlYXQteHxyZWxhdGl2ZXxwcm9ncmVzc3xwb2ludGVyfG92ZXJsaW5lfG91dHNpZGV8b3V0c2V0fG9ibGlxdWV8bm93cmFwfG5vdC1hbGxvd2VkfG5vcm1hbHxub25lfG53LXJlc2l6ZXxuby1yZXBlYXR8bm8tZHJvcHxuZXdzcGFwZXJ8bmUtcmVzaXplfG4tcmVzaXplfG1vdmV8bWlkZGxlfG1lZGl1bXxsdHJ8bHItdGJ8bG93ZXJjYXNlfGxvd2VyLXJvbWFufGxvd2VyLWFscGhhfGxvb3NlfGxpc3QtaXRlbXxsaW5lfGxpbmUtdGhyb3VnaHxsaW5lLWVkZ2V8bGlnaHRlcnxsZWZ0fGtlZXAtYWxsfGp1c3RpZnl8aXRhbGljfGludGVyLXdvcmR8aW50ZXItaWRlb2dyYXBofGluc2lkZXxpbnNldHxpbmxpbmV8aW5saW5lLWJsb2NrfGluaGVyaXR8aW5hY3RpdmV8aWRlb2dyYXBoLXNwYWNlfGlkZW9ncmFwaC1wYXJlbnRoZXNpc3xpZGVvZ3JhcGgtbnVtZXJpY3xpZGVvZ3JhcGgtYWxwaGF8aG9yaXpvbnRhbHxoaWRkZW58aGVscHxoYW5kfGdyb292ZXxmaXhlZHxlbGxpcHNpc3xlLXJlc2l6ZXxkb3VibGV8ZG90dGVkfGRpc3RyaWJ1dGV8ZGlzdHJpYnV0ZS1zcGFjZXxkaXN0cmlidXRlLWxldHRlcnxkaXN0cmlidXRlLWFsbC1saW5lc3xkaXNjfGRpc2FibGVkfGRlZmF1bHR8ZGVjaW1hbHxkYXNoZWR8Y3Jvc3NoYWlyfGNvbGxhcHNlfGNvbC1yZXNpemV8Y2lyY2xlfGNoYXJ8Y2VudGVyfGNhcGl0YWxpemV8YnJlYWstd29yZHxicmVhay1hbGx8Ym90dG9tfGJvdGh8Ym9sZGVyfGJvbGR8YmxvY2t8YmlkaS1vdmVycmlkZXxiZWxvd3xiYXNlbGluZXxhdXRvfGFsd2F5c3xhbGwtc2Nyb2xsfGFic29sdXRlfHRhYmxlfHRhYmxlLWNlbGwpXFxcXGInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJzonLCBlbmQ6ICc7JyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBIRVhDT0xPUixcbiAgICAgICAgICBobGpzLkNTU19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJywgYmVnaW46ICchaW1wb3J0YW50J1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdAJywgZW5kOiAnW3s7XScsXG4gICAgICAgIGtleXdvcmRzOiAnbWl4aW4gaW5jbHVkZSBleHRlbmQgZm9yIGlmIGVsc2UgZWFjaCB3aGlsZSBjaGFyc2V0IGltcG9ydCBkZWJ1ZyBtZWRpYSBwYWdlIGNvbnRlbnQgZm9udC1mYWNlIG5hbWVzcGFjZSB3YXJuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICBIRVhDT0xPUixcbiAgICAgICAgICBobGpzLkNTU19OVU1CRVJfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxzW0EtWmEtejAtOV8uLV0rJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjb25zb2xlJ10sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzezAsM31bXFxcXHdcXFxcZFxcXFxbXFxcXF0oKUAtXSpbPiUkI10nLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6ICckJywgc3ViTGFuZ3VhZ2U6ICdiYXNoJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIF1cbiAgfVxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIHNtYWxpX2luc3RyX2xvd19wcmlvID0gWydhZGQnLCAnYW5kJywgJ2NtcCcsICdjbXBnJywgJ2NtcGwnLCAnY29uc3QnLCAnZGl2JywgJ2RvdWJsZScsICdmbG9hdCcsICdnb3RvJywgJ2lmJywgJ2ludCcsICdsb25nJywgJ21vdmUnLCAnbXVsJywgJ25lZycsICduZXcnLCAnbm9wJywgJ25vdCcsICdvcicsICdyZW0nLCAncmV0dXJuJywgJ3NobCcsICdzaHInLCAnc3B1dCcsICdzdWInLCAndGhyb3cnLCAndXNocicsICd4b3InXTtcbiAgdmFyIHNtYWxpX2luc3RyX2hpZ2hfcHJpbyA9IFsnYWdldCcsICdhcHV0JywgJ2FycmF5JywgJ2NoZWNrJywgJ2V4ZWN1dGUnLCAnZmlsbCcsICdmaWxsZWQnLCAnZ290by8xNicsICdnb3RvLzMyJywgJ2lnZXQnLCAnaW5zdGFuY2UnLCAnaW52b2tlJywgJ2lwdXQnLCAnbW9uaXRvcicsICdwYWNrZWQnLCAnc2dldCcsICdzcGFyc2UnXTtcbiAgdmFyIHNtYWxpX2tleXdvcmRzID0gWyd0cmFuc2llbnQnLCAnY29uc3RydWN0b3InLCAnYWJzdHJhY3QnLCAnZmluYWwnLCAnc3ludGhldGljJywgJ3B1YmxpYycsICdwcml2YXRlJywgJ3Byb3RlY3RlZCcsICdzdGF0aWMnLCAnYnJpZGdlJywgJ3N5c3RlbSddO1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnc21hbGknXSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1wiJywgZW5kOiAnXCInLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICcjJyxcbiAgICAgICAgJyQnLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogJ1xcXFxzKlxcXFwuZW5kXFxcXHNbYS16QS1aMC05XSonfSxcbiAgICAgICAgICB7YmVnaW46ICdeWyBdKlxcXFwuW2EtekEtWl0qJywgcmVsZXZhbmNlOiAwfSxcbiAgICAgICAgICB7YmVnaW46ICdcXFxcczpbYS16QS1aXzAtOV0qJywgcmVsZXZhbmNlOiAwfSxcbiAgICAgICAgICB7YmVnaW46ICdcXFxccygnICsgc21hbGlfa2V5d29yZHMuam9pbignfCcpICsgJyknfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIHZhcmlhbnRzIDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXHMoJytzbWFsaV9pbnN0cl9sb3dfcHJpby5qb2luKCd8JykrJylcXFxccydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXHMoJytzbWFsaV9pbnN0cl9sb3dfcHJpby5qb2luKCd8JykrJykoKFxcXFwtfC8pW2EtekEtWjAtOV0rKStcXFxccycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxzKCcrc21hbGlfaW5zdHJfaGlnaF9wcmlvLmpvaW4oJ3wnKSsnKSgoXFxcXC18LylbYS16QS1aMC05XSspKlxcXFxzJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luOiAnTFteXFwoOzpcXG5dKjsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW3ZwXVswLTldKycsXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFZBUl9JREVOVF9SRSA9ICdbYS16XVthLXpBLVowLTlfXSonO1xuICB2YXIgQ0hBUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFxcXCQuezF9J1xuICB9O1xuICB2YXIgU1lNQk9MID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICcjJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRVxuICB9O1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnc3QnXSxcbiAgICBrZXl3b3JkczogJ3NlbGYgc3VwZXIgbmlsIHRydWUgZmFsc2UgdGhpc0NvbnRleHQnLCAvLyBvbmx5IDZcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCdcIicsICdcIicpLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW0EtWmEtejAtOV9dKicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFZBUl9JREVOVF9SRSArICc6JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgU1lNQk9MLFxuICAgICAgQ0hBUixcbiAgICAgIHtcbiAgICAgICAgLy8gVGhpcyBsb29rcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gbmVlZGVkIHRvIGF2b2lkIGNvbWJpbmF0b3JpYWxcbiAgICAgICAgLy8gZXhwbG9zaW9uIHVuZGVyIFY4LiBJdCBlZmZlY3RpdmVseSBtZWFucyBgfCB2YXIxIHZhcjIgLi4uIHxgIHdpdGhcbiAgICAgICAgLy8gd2hpdGVzcGFjZSBhZGphY2VudCB0byBgfGAgYmVpbmcgb3B0aW9uYWwuXG4gICAgICAgIGJlZ2luOiAnXFxcXHxbIF0qJyArIFZBUl9JREVOVF9SRSArICcoWyBdKycgKyBWQVJfSURFTlRfUkUgKyAnKSpbIF0qXFxcXHwnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSwgZW5kOiAvXFx8LyxcbiAgICAgICAgaWxsZWdhbDogL1xcUy8sXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnKFxcXFx8WyBdKik/JyArIFZBUl9JREVOVF9SRX1dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFwjXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIENIQVIsXG4gICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgIFNZTUJPTFxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ21sJ10sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8qIGFjY29yZGluZyB0byBEZWZpbml0aW9uIG9mIFN0YW5kYXJkIE1MIDk3ICAqL1xuICAgICAgICAnYWJzdHlwZSBhbmQgYW5kYWxzbyBhcyBjYXNlIGRhdGF0eXBlIGRvIGVsc2UgZW5kIGVxdHlwZSAnICtcbiAgICAgICAgJ2V4Y2VwdGlvbiBmbiBmdW4gZnVuY3RvciBoYW5kbGUgaWYgaW4gaW5jbHVkZSBpbmZpeCBpbmZpeHIgJyArXG4gICAgICAgICdsZXQgbG9jYWwgbm9uZml4IG9mIG9wIG9wZW4gb3JlbHNlIHJhaXNlIHJlYyBzaGFyaW5nIHNpZyAnICtcbiAgICAgICAgJ3NpZ25hdHVyZSBzdHJ1Y3Qgc3RydWN0dXJlIHRoZW4gdHlwZSB2YWwgd2l0aCB3aXRodHlwZSB3aGVyZSB3aGlsZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgYWNjb3JkaW5nIHRvIGJhc2lzIGxpYnJhcnkgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgY2hhciBleG4gaW50IGxpc3Qgb3B0aW9uIG9yZGVyIHJlYWwgcmVmIHN0cmluZyBzdWJzdHJpbmcgdmVjdG9yIHVuaXQgd29yZCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZSBOT05FIFNPTUUgTEVTUyBFUVVBTCBHUkVBVEVSIG5pbCdcbiAgICB9LFxuICAgIGlsbGVnYWw6IC9cXC9cXC98Pj4vLFxuICAgIGxleGVtZXM6ICdbYS16X11cXFxcdyohPycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgICAgIGJlZ2luOiAvXFxbKFxcfFxcfCk/XFxdfFxcKFxcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ1xcXFwoXFxcXConLFxuICAgICAgICAnXFxcXCpcXFxcKScsXG4gICAgICAgIHtcbiAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHsgLyogdHlwZSB2YXJpYWJsZSAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ1xcJ1tBLVphLXpfXSg/IVxcJylbXFxcXHdcXCddKidcbiAgICAgICAgLyogdGhlIGdyYW1tYXIgaXMgYW1iaWd1b3VzIG9uIGhvdyAnYSdiIHNob3VsZCBiZSBpbnRlcnByZXRlZCBidXQgbm90IHRoZSBjb21waWxlciAqL1xuICAgICAgfSxcbiAgICAgIHsgLyogcG9seW1vcnBoaWMgdmFyaWFudCAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdgW0EtWl1bXFxcXHdcXCddKidcbiAgICAgIH0sXG4gICAgICB7IC8qIG1vZHVsZSBvciBjb25zdHJ1Y3RvciAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XFwnXSonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8qIGRvbid0IGNvbG9yIGlkZW50aWZpZXJzLCBidXQgc2FmZWx5IGNhdGNoIGFsbCBpZGVudGlmaWVycyB3aXRoICcqL1xuICAgICAgICBiZWdpbjogJ1thLXpfXVxcXFx3KlxcJ1tcXFxcd1xcJ10qJ1xuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtjbGFzc05hbWU6ICdzdHJpbmcnLCByZWxldmFuY2U6IDB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7aWxsZWdhbDogbnVsbH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAnXFxcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fCcgK1xuICAgICAgICAgICcwW29PXVswLTdfXStbTGxuXT98JyArXG4gICAgICAgICAgJzBbYkJdWzAxX10rW0xsbl0/fCcgK1xuICAgICAgICAgICdbMC05XVswLTlfXSooW0xsbl18KFxcXFwuWzAtOV9dKik/KFtlRV1bLStdP1swLTlfXSspPyk/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9bLT1dPi8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ1BQID0gaGxqcy5nZXRMYW5ndWFnZSgnY3BwJykuZXhwb3J0cztcblxuICAvLyBJbiBTUUYsIGEgdmFyaWFibGUgc3RhcnQgd2l0aCBfXG4gIHZhciBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXGJfK1thLXpBLVpfXVxcdyovXG4gIH07XG5cbiAgLy8gSW4gU1FGLCBhIGZ1bmN0aW9uIHNob3VsZCBmaXQgbXlUYWdfZm5jX215RnVuY3Rpb24gcGF0dGVyblxuICAvLyBodHRwczovL2NvbW11bml0eS5iaXN0dWRpby5jb20vd2lraS9GdW5jdGlvbnNfTGlicmFyeV8oQXJtYV8zKSNBZGRpbmdfYV9GdW5jdGlvblxuICB2YXIgRlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiAvW2EtekEtWl1bYS16QS1aMC05XStfZm5jX1xcdyovXG4gIH07XG5cbiAgLy8gSW4gU1FGIHN0cmluZ3MsIHF1b3RlcyBtYXRjaGluZyB0aGUgc3RhcnQgYXJlIGVzY2FwZWQgYnkgYWRkaW5nIGEgY29uc2VjdXRpdmUuXG4gIC8vIEV4YW1wbGUgb2Ygc2luZ2xlIGVzY2FwZWQgcXVvdGVzOiBcIiBcIlwiIFwiIGFuZCAgJyAnJyAnLlxuICB2YXIgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnXCJcIicsIHJlbGV2YW5jZTogMH1dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbe2JlZ2luOiAnXFwnXFwnJywgcmVsZXZhbmNlOiAwfV1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3NxZiddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdjYXNlIGNhdGNoIGRlZmF1bHQgZG8gZWxzZSBleGl0IGV4aXRXaXRoIGZvciBmb3JFYWNoIGZyb20gaWYgJyArXG4gICAgICAgICdzd2l0Y2ggdGhlbiB0aHJvdyB0byB0cnkgd2FpdFVudGlsIHdoaWxlIHdpdGgnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdhYnMgYWNjVGltZSBhY29zIGFjdGlvbiBhY3Rpb25JRHMgYWN0aW9uS2V5cyBhY3Rpb25LZXlzSW1hZ2VzIGFjdGlvbktleXNOYW1lcyAnICtcbiAgICAgICAgJ2FjdGlvbktleXNOYW1lc0FycmF5IGFjdGlvbk5hbWUgYWN0aW9uUGFyYW1zIGFjdGl2YXRlQWRkb25zIGFjdGl2YXRlZEFkZG9ucyBhY3RpdmF0ZUtleSAnICtcbiAgICAgICAgJ2FkZDNERU5Db25uZWN0aW9uIGFkZDNERU5FdmVudEhhbmRsZXIgYWRkM0RFTkxheWVyIGFkZEFjdGlvbiBhZGRCYWNrcGFjayBhZGRCYWNrcGFja0NhcmdvICcgK1xuICAgICAgICAnYWRkQmFja3BhY2tDYXJnb0dsb2JhbCBhZGRCYWNrcGFja0dsb2JhbCBhZGRDYW1TaGFrZSBhZGRDdXJhdG9yQWRkb25zIGFkZEN1cmF0b3JDYW1lcmFBcmVhICcgK1xuICAgICAgICAnYWRkQ3VyYXRvckVkaXRhYmxlT2JqZWN0cyBhZGRDdXJhdG9yRWRpdGluZ0FyZWEgYWRkQ3VyYXRvclBvaW50cyBhZGRFZGl0b3JPYmplY3QgYWRkRXZlbnRIYW5kbGVyICcgK1xuICAgICAgICAnYWRkR29nZ2xlcyBhZGRHcm91cEljb24gYWRkSGFuZGd1bkl0ZW0gYWRkSGVhZGdlYXIgYWRkSXRlbSBhZGRJdGVtQ2FyZ28gYWRkSXRlbUNhcmdvR2xvYmFsICcgK1xuICAgICAgICAnYWRkSXRlbVBvb2wgYWRkSXRlbVRvQmFja3BhY2sgYWRkSXRlbVRvVW5pZm9ybSBhZGRJdGVtVG9WZXN0IGFkZExpdmVTdGF0cyBhZGRNYWdhemluZSAnICtcbiAgICAgICAgJ2FkZE1hZ2F6aW5lQW1tb0NhcmdvIGFkZE1hZ2F6aW5lQ2FyZ28gYWRkTWFnYXppbmVDYXJnb0dsb2JhbCBhZGRNYWdhemluZUdsb2JhbCBhZGRNYWdhemluZVBvb2wgJyArXG4gICAgICAgICdhZGRNYWdhemluZXMgYWRkTWFnYXppbmVUdXJyZXQgYWRkTWVudSBhZGRNZW51SXRlbSBhZGRNaXNzaW9uRXZlbnRIYW5kbGVyIGFkZE1QRXZlbnRIYW5kbGVyICcgK1xuICAgICAgICAnYWRkTXVzaWNFdmVudEhhbmRsZXIgYWRkT3duZWRNaW5lIGFkZFBsYXllclNjb3JlcyBhZGRQcmltYXJ5V2VhcG9uSXRlbSAnICtcbiAgICAgICAgJ2FkZFB1YmxpY1ZhcmlhYmxlRXZlbnRIYW5kbGVyIGFkZFJhdGluZyBhZGRSZXNvdXJjZXMgYWRkU2NvcmUgYWRkU2NvcmVTaWRlIGFkZFNlY29uZGFyeVdlYXBvbkl0ZW0gJyArXG4gICAgICAgICdhZGRTd2l0Y2hhYmxlVW5pdCBhZGRUZWFtTWVtYmVyIGFkZFRvUmVtYWluc0NvbGxlY3RvciBhZGRVbmlmb3JtIGFkZFZlaGljbGUgYWRkVmVzdCBhZGRXYXlwb2ludCAnICtcbiAgICAgICAgJ2FkZFdlYXBvbiBhZGRXZWFwb25DYXJnbyBhZGRXZWFwb25DYXJnb0dsb2JhbCBhZGRXZWFwb25HbG9iYWwgYWRkV2VhcG9uSXRlbSBhZGRXZWFwb25Qb29sICcgK1xuICAgICAgICAnYWRkV2VhcG9uVHVycmV0IGFnZW50IGFnZW50cyBBR0xUb0FTTCBhaW1lZEF0VGFyZ2V0IGFpbVBvcyBhaXJEZW5zaXR5UlREIGFpcnBvcnRTaWRlICcgK1xuICAgICAgICAnQUlTRmluaXNoSGVhbCBhbGl2ZSBhbGwzREVORW50aXRpZXMgYWxsQ29udHJvbHMgYWxsQ3VyYXRvcnMgYWxsQ3V0TGF5ZXJzIGFsbERlYWQgYWxsRGVhZE1lbiAnICtcbiAgICAgICAgJ2FsbERpc3BsYXlzIGFsbEdyb3VwcyBhbGxNYXBNYXJrZXJzIGFsbE1pbmVzIGFsbE1pc3Npb25PYmplY3RzIGFsbG93M0RNb2RlIGFsbG93Q3Jld0luSW1tb2JpbGUgJyArXG4gICAgICAgICdhbGxvd0N1cmF0b3JMb2dpY0lnbm9yZUFyZWFzIGFsbG93RGFtYWdlIGFsbG93RGFtbWFnZSBhbGxvd0ZpbGVPcGVyYXRpb25zIGFsbG93RmxlZWluZyBhbGxvd0dldEluICcgK1xuICAgICAgICAnYWxsb3dTcHJpbnQgYWxsUGxheWVycyBhbGxTaXRlcyBhbGxUdXJyZXRzIGFsbFVuaXRzIGFsbFVuaXRzVUFWIGFsbFZhcmlhYmxlcyBhbW1vIGFuZCBhbmltYXRlICcgK1xuICAgICAgICAnYW5pbWF0ZURvb3IgYW5pbWF0ZVNvdXJjZSBhbmltYXRpb25OYW1lcyBhbmltYXRpb25QaGFzZSBhbmltYXRpb25Tb3VyY2VQaGFzZSBhbmltYXRpb25TdGF0ZSAnICtcbiAgICAgICAgJ2FwcGVuZCBhcHBseSBhcm1vcnlQb2ludHMgYXJyYXlJbnRlcnNlY3QgYXNpbiBBU0xUb0FHTCBBU0xUb0FUTCBhc3NlcnQgYXNzaWduQXNDYXJnbyAnICtcbiAgICAgICAgJ2Fzc2lnbkFzQ2FyZ29JbmRleCBhc3NpZ25Bc0NvbW1hbmRlciBhc3NpZ25Bc0RyaXZlciBhc3NpZ25Bc0d1bm5lciBhc3NpZ25Bc1R1cnJldCBhc3NpZ25DdXJhdG9yICcgK1xuICAgICAgICAnYXNzaWduZWRDYXJnbyBhc3NpZ25lZENvbW1hbmRlciBhc3NpZ25lZERyaXZlciBhc3NpZ25lZEd1bm5lciBhc3NpZ25lZEl0ZW1zIGFzc2lnbmVkVGFyZ2V0ICcgK1xuICAgICAgICAnYXNzaWduZWRUZWFtIGFzc2lnbmVkVmVoaWNsZSBhc3NpZ25lZFZlaGljbGVSb2xlIGFzc2lnbkl0ZW0gYXNzaWduVGVhbSBhc3NpZ25Ub0FpcnBvcnQgYXRhbiBhdGFuMiAnICtcbiAgICAgICAgJ2F0ZyBBVExUb0FTTCBhdHRhY2hlZE9iamVjdCBhdHRhY2hlZE9iamVjdHMgYXR0YWNoZWRUbyBhdHRhY2hPYmplY3QgYXR0YWNoVG8gYXR0YWNrRW5hYmxlZCAnICtcbiAgICAgICAgJ2JhY2twYWNrIGJhY2twYWNrQ2FyZ28gYmFja3BhY2tDb250YWluZXIgYmFja3BhY2tJdGVtcyBiYWNrcGFja01hZ2F6aW5lcyBiYWNrcGFja1NwYWNlRm9yICcgK1xuICAgICAgICAnYmVoYXZpb3VyIGJlbmNobWFyayBiaW5vY3VsYXIgYmx1Zm9yIGJvdW5kaW5nQm94IGJvdW5kaW5nQm94UmVhbCBib3VuZGluZ0NlbnRlciBicmVha091dCBicmVha1RvICcgK1xuICAgICAgICAnYnJpZWZpbmdOYW1lIGJ1aWxkaW5nRXhpdCBidWlsZGluZ1BvcyBidXR0b25BY3Rpb24gYnV0dG9uU2V0QWN0aW9uIGNhZGV0TW9kZSBjYWxsIGNhbGxFeHRlbnNpb24gJyArXG4gICAgICAgICdjYW1Db21tYW5kIGNhbUNvbW1pdCBjYW1Db21taXRQcmVwYXJlZCBjYW1Db21taXR0ZWQgY2FtQ29uc3R1Y3Rpb25TZXRQYXJhbXMgY2FtQ3JlYXRlIGNhbURlc3Ryb3kgJyArXG4gICAgICAgICdjYW1lcmFFZmZlY3QgY2FtZXJhRWZmZWN0RW5hYmxlSFVEIGNhbWVyYUludGVyZXN0IGNhbWVyYU9uIGNhbWVyYVZpZXcgY2FtcGFpZ25Db25maWdGaWxlICcgK1xuICAgICAgICAnY2FtUHJlbG9hZCBjYW1QcmVsb2FkZWQgY2FtUHJlcGFyZUJhbmsgY2FtUHJlcGFyZURpciBjYW1QcmVwYXJlRGl2ZSBjYW1QcmVwYXJlRm9jdXMgY2FtUHJlcGFyZUZvdiAnICtcbiAgICAgICAgJ2NhbVByZXBhcmVGb3ZSYW5nZSBjYW1QcmVwYXJlUG9zIGNhbVByZXBhcmVSZWxQb3MgY2FtUHJlcGFyZVRhcmdldCBjYW1TZXRCYW5rIGNhbVNldERpciAnICtcbiAgICAgICAgJ2NhbVNldERpdmUgY2FtU2V0Rm9jdXMgY2FtU2V0Rm92IGNhbVNldEZvdlJhbmdlIGNhbVNldFBvcyBjYW1TZXRSZWxQb3MgY2FtU2V0VGFyZ2V0IGNhbVRhcmdldCAnICtcbiAgICAgICAgJ2NhbVVzZU5WRyBjYW5BZGQgY2FuQWRkSXRlbVRvQmFja3BhY2sgY2FuQWRkSXRlbVRvVW5pZm9ybSBjYW5BZGRJdGVtVG9WZXN0ICcgK1xuICAgICAgICAnY2FuY2VsU2ltcGxlVGFza0Rlc3RpbmF0aW9uIGNhbkZpcmUgY2FuTW92ZSBjYW5TbGluZ0xvYWQgY2FuU3RhbmQgY2FuU3VzcGVuZCBjYW5VbmxvYWRJbkNvbWJhdCAnICtcbiAgICAgICAgJ2NhblZlaGljbGVDYXJnbyBjYXB0aXZlIGNhcHRpdmVOdW0gY2JDaGVja2VkIGNiU2V0Q2hlY2tlZCBjZWlsIGNoYW5uZWxFbmFibGVkIGNoZWF0c0VuYWJsZWQgJyArXG4gICAgICAgICdjaGVja0FJRmVhdHVyZSBjaGVja1Zpc2liaWxpdHkgY2l2aWxpYW4gY2xhc3NOYW1lIGNsZWFyQWxsSXRlbXNGcm9tQmFja3BhY2sgY2xlYXJCYWNrcGFja0NhcmdvICcgK1xuICAgICAgICAnY2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsIGNsZWFyR3JvdXBJY29ucyBjbGVhckl0ZW1DYXJnbyBjbGVhckl0ZW1DYXJnb0dsb2JhbCBjbGVhckl0ZW1Qb29sICcgK1xuICAgICAgICAnY2xlYXJNYWdhemluZUNhcmdvIGNsZWFyTWFnYXppbmVDYXJnb0dsb2JhbCBjbGVhck1hZ2F6aW5lUG9vbCBjbGVhck92ZXJsYXkgY2xlYXJSYWRpbyAnICtcbiAgICAgICAgJ2NsZWFyV2VhcG9uQ2FyZ28gY2xlYXJXZWFwb25DYXJnb0dsb2JhbCBjbGVhcldlYXBvblBvb2wgY2xpZW50T3duZXIgY2xvc2VEaWFsb2cgY2xvc2VEaXNwbGF5ICcgK1xuICAgICAgICAnY2xvc2VPdmVybGF5IGNvbGxhcHNlT2JqZWN0VHJlZSBjb2xsZWN0M0RFTkhpc3RvcnkgY29tYmF0TW9kZSBjb21tYW5kQXJ0aWxsZXJ5RmlyZSBjb21tYW5kQ2hhdCAnICtcbiAgICAgICAgJ2NvbW1hbmRlciBjb21tYW5kRmlyZSBjb21tYW5kRm9sbG93IGNvbW1hbmRGU00gY29tbWFuZEdldE91dCBjb21tYW5kaW5nTWVudSBjb21tYW5kTW92ZSAnICtcbiAgICAgICAgJ2NvbW1hbmRSYWRpbyBjb21tYW5kU3RvcCBjb21tYW5kU3VwcHJlc3NpdmVGaXJlIGNvbW1hbmRUYXJnZXQgY29tbWFuZFdhdGNoIGNvbW1lbnQgY29tbWl0T3ZlcmxheSAnICtcbiAgICAgICAgJ2NvbXBpbGUgY29tcGlsZUZpbmFsIGNvbXBsZXRlZEZTTSBjb21wb3NlVGV4dCBjb25maWdDbGFzc2VzIGNvbmZpZ0ZpbGUgY29uZmlnSGllcmFyY2h5IGNvbmZpZ05hbWUgJyArXG4gICAgICAgICdjb25maWdOdWxsIGNvbmZpZ1Byb3BlcnRpZXMgY29uZmlnU291cmNlQWRkb25MaXN0IGNvbmZpZ1NvdXJjZU1vZCBjb25maWdTb3VyY2VNb2RMaXN0ICcgK1xuICAgICAgICAnY29ubmVjdFRlcm1pbmFsVG9VQVYgY29udHJvbE51bGwgY29udHJvbHNHcm91cEN0cmwgY29weUZyb21DbGlwYm9hcmQgY29weVRvQ2xpcGJvYXJkICcgK1xuICAgICAgICAnY29weVdheXBvaW50cyBjb3MgY291bnQgY291bnRFbmVteSBjb3VudEZyaWVuZGx5IGNvdW50U2lkZSBjb3VudFR5cGUgY291bnRVbmtub3duICcgK1xuICAgICAgICAnY3JlYXRlM0RFTkNvbXBvc2l0aW9uIGNyZWF0ZTNERU5FbnRpdHkgY3JlYXRlQWdlbnQgY3JlYXRlQ2VudGVyIGNyZWF0ZURpYWxvZyBjcmVhdGVEaWFyeUxpbmsgJyArXG4gICAgICAgICdjcmVhdGVEaWFyeVJlY29yZCBjcmVhdGVEaWFyeVN1YmplY3QgY3JlYXRlRGlzcGxheSBjcmVhdGVHZWFyRGlhbG9nIGNyZWF0ZUdyb3VwICcgK1xuICAgICAgICAnY3JlYXRlR3VhcmRlZFBvaW50IGNyZWF0ZUxvY2F0aW9uIGNyZWF0ZU1hcmtlciBjcmVhdGVNYXJrZXJMb2NhbCBjcmVhdGVNZW51IGNyZWF0ZU1pbmUgJyArXG4gICAgICAgICdjcmVhdGVNaXNzaW9uRGlzcGxheSBjcmVhdGVNUENhbXBhaWduRGlzcGxheSBjcmVhdGVTaW1wbGVPYmplY3QgY3JlYXRlU2ltcGxlVGFzayBjcmVhdGVTaXRlICcgK1xuICAgICAgICAnY3JlYXRlU291bmRTb3VyY2UgY3JlYXRlVGFzayBjcmVhdGVUZWFtIGNyZWF0ZVRyaWdnZXIgY3JlYXRlVW5pdCBjcmVhdGVWZWhpY2xlIGNyZWF0ZVZlaGljbGVDcmV3ICcgK1xuICAgICAgICAnY3JlYXRlVmVoaWNsZUxvY2FsIGNyZXcgY3RybEFjdGl2YXRlIGN0cmxBZGRFdmVudEhhbmRsZXIgY3RybEFuZ2xlIGN0cmxBdXRvU2Nyb2xsRGVsYXkgJyArXG4gICAgICAgICdjdHJsQXV0b1Njcm9sbFJld2luZCBjdHJsQXV0b1Njcm9sbFNwZWVkIGN0cmxDaGVja2VkIGN0cmxDbGFzc05hbWUgY3RybENvbW1pdCBjdHJsQ29tbWl0dGVkICcgK1xuICAgICAgICAnY3RybENyZWF0ZSBjdHJsRGVsZXRlIGN0cmxFbmFibGUgY3RybEVuYWJsZWQgY3RybEZhZGUgY3RybEhUTUxMb2FkZWQgY3RybElEQyBjdHJsSUREICcgK1xuICAgICAgICAnY3RybE1hcEFuaW1BZGQgY3RybE1hcEFuaW1DbGVhciBjdHJsTWFwQW5pbUNvbW1pdCBjdHJsTWFwQW5pbURvbmUgY3RybE1hcEN1cnNvciBjdHJsTWFwTW91c2VPdmVyICcgK1xuICAgICAgICAnY3RybE1hcFNjYWxlIGN0cmxNYXBTY3JlZW5Ub1dvcmxkIGN0cmxNYXBXb3JsZFRvU2NyZWVuIGN0cmxNb2RlbCBjdHJsTW9kZWxEaXJBbmRVcCBjdHJsTW9kZWxTY2FsZSAnICtcbiAgICAgICAgJ2N0cmxQYXJlbnQgY3RybFBhcmVudENvbnRyb2xzR3JvdXAgY3RybFBvc2l0aW9uIGN0cmxSZW1vdmVBbGxFdmVudEhhbmRsZXJzIGN0cmxSZW1vdmVFdmVudEhhbmRsZXIgJyArXG4gICAgICAgICdjdHJsU2NhbGUgY3RybFNldEFjdGl2ZUNvbG9yIGN0cmxTZXRBbmdsZSBjdHJsU2V0QXV0b1Njcm9sbERlbGF5IGN0cmxTZXRBdXRvU2Nyb2xsUmV3aW5kICcgK1xuICAgICAgICAnY3RybFNldEF1dG9TY3JvbGxTcGVlZCBjdHJsU2V0QmFja2dyb3VuZENvbG9yIGN0cmxTZXRDaGVja2VkIGN0cmxTZXRFdmVudEhhbmRsZXIgY3RybFNldEZhZGUgJyArXG4gICAgICAgICdjdHJsU2V0Rm9jdXMgY3RybFNldEZvbnQgY3RybFNldEZvbnRIMSBjdHJsU2V0Rm9udEgxQiBjdHJsU2V0Rm9udEgyIGN0cmxTZXRGb250SDJCIGN0cmxTZXRGb250SDMgJyArXG4gICAgICAgICdjdHJsU2V0Rm9udEgzQiBjdHJsU2V0Rm9udEg0IGN0cmxTZXRGb250SDRCIGN0cmxTZXRGb250SDUgY3RybFNldEZvbnRINUIgY3RybFNldEZvbnRINiAnICtcbiAgICAgICAgJ2N0cmxTZXRGb250SDZCIGN0cmxTZXRGb250SGVpZ2h0IGN0cmxTZXRGb250SGVpZ2h0SDEgY3RybFNldEZvbnRIZWlnaHRIMiBjdHJsU2V0Rm9udEhlaWdodEgzICcgK1xuICAgICAgICAnY3RybFNldEZvbnRIZWlnaHRINCBjdHJsU2V0Rm9udEhlaWdodEg1IGN0cmxTZXRGb250SGVpZ2h0SDYgY3RybFNldEZvbnRIZWlnaHRTZWNvbmRhcnkgJyArXG4gICAgICAgICdjdHJsU2V0Rm9udFAgY3RybFNldEZvbnRQQiBjdHJsU2V0Rm9udFNlY29uZGFyeSBjdHJsU2V0Rm9yZWdyb3VuZENvbG9yIGN0cmxTZXRNb2RlbCAnICtcbiAgICAgICAgJ2N0cmxTZXRNb2RlbERpckFuZFVwIGN0cmxTZXRNb2RlbFNjYWxlIGN0cmxTZXRQb3NpdGlvbiBjdHJsU2V0U2NhbGUgY3RybFNldFN0cnVjdHVyZWRUZXh0ICcgK1xuICAgICAgICAnY3RybFNldFRleHQgY3RybFNldFRleHRDb2xvciBjdHJsU2V0VG9vbHRpcCBjdHJsU2V0VG9vbHRpcENvbG9yQm94IGN0cmxTZXRUb29sdGlwQ29sb3JTaGFkZSAnICtcbiAgICAgICAgJ2N0cmxTZXRUb29sdGlwQ29sb3JUZXh0IGN0cmxTaG93IGN0cmxTaG93biBjdHJsVGV4dCBjdHJsVGV4dEhlaWdodCBjdHJsVHlwZSBjdHJsVmlzaWJsZSAnICtcbiAgICAgICAgJ2N1cmF0b3JBZGRvbnMgY3VyYXRvckNhbWVyYSBjdXJhdG9yQ2FtZXJhQXJlYSBjdXJhdG9yQ2FtZXJhQXJlYUNlaWxpbmcgY3VyYXRvckNvZWYgJyArXG4gICAgICAgICdjdXJhdG9yRWRpdGFibGVPYmplY3RzIGN1cmF0b3JFZGl0aW5nQXJlYSBjdXJhdG9yRWRpdGluZ0FyZWFUeXBlIGN1cmF0b3JNb3VzZU92ZXIgY3VyYXRvclBvaW50cyAnICtcbiAgICAgICAgJ2N1cmF0b3JSZWdpc3RlcmVkT2JqZWN0cyBjdXJhdG9yU2VsZWN0ZWQgY3VyYXRvcldheXBvaW50Q29zdCBjdXJyZW50M0RFTk9wZXJhdGlvbiBjdXJyZW50Q2hhbm5lbCAnICtcbiAgICAgICAgJ2N1cnJlbnRDb21tYW5kIGN1cnJlbnRNYWdhemluZSBjdXJyZW50TWFnYXppbmVEZXRhaWwgY3VycmVudE1hZ2F6aW5lRGV0YWlsVHVycmV0ICcgK1xuICAgICAgICAnY3VycmVudE1hZ2F6aW5lVHVycmV0IGN1cnJlbnRNdXp6bGUgY3VycmVudE5hbWVzcGFjZSBjdXJyZW50VGFzayBjdXJyZW50VGFza3MgY3VycmVudFRocm93YWJsZSAnICtcbiAgICAgICAgJ2N1cnJlbnRWaXNpb25Nb2RlIGN1cnJlbnRXYXlwb2ludCBjdXJyZW50V2VhcG9uIGN1cnJlbnRXZWFwb25Nb2RlIGN1cnJlbnRXZWFwb25UdXJyZXQgJyArXG4gICAgICAgICdjdXJyZW50WmVyb2luZyBjdXJzb3JPYmplY3QgY3Vyc29yVGFyZ2V0IGN1c3RvbUNoYXQgY3VzdG9tUmFkaW8gY3V0RmFkZU91dCBjdXRPYmogY3V0UnNjIGN1dFRleHQgJyArXG4gICAgICAgICdkYW1hZ2UgZGF0ZSBkYXRlVG9OdW1iZXIgZGF5dGltZSBkZUFjdGl2YXRlS2V5IGRlYnJpZWZpbmdUZXh0IGRlYnVnRlNNIGRlYnVnTG9nIGRlZyAnICtcbiAgICAgICAgJ2RlbGV0ZTNERU5FbnRpdGllcyBkZWxldGVBdCBkZWxldGVDZW50ZXIgZGVsZXRlQ29sbGVjdGlvbiBkZWxldGVFZGl0b3JPYmplY3QgZGVsZXRlR3JvdXAgJyArXG4gICAgICAgICdkZWxldGVJZGVudGl0eSBkZWxldGVMb2NhdGlvbiBkZWxldGVNYXJrZXIgZGVsZXRlTWFya2VyTG9jYWwgZGVsZXRlUmFuZ2UgZGVsZXRlUmVzb3VyY2VzICcgK1xuICAgICAgICAnZGVsZXRlU2l0ZSBkZWxldGVTdGF0dXMgZGVsZXRlVGVhbSBkZWxldGVWZWhpY2xlIGRlbGV0ZVZlaGljbGVDcmV3IGRlbGV0ZVdheXBvaW50IGRldGFjaCAnICtcbiAgICAgICAgJ2RldGVjdGVkTWluZXMgZGlhZ19hY3RpdmVNaXNzaW9uRlNNcyBkaWFnX2FjdGl2ZVNjcmlwdHMgZGlhZ19hY3RpdmVTUUZTY3JpcHRzICcgK1xuICAgICAgICAnZGlhZ19hY3RpdmVTUVNTY3JpcHRzIGRpYWdfY2FwdHVyZUZyYW1lIGRpYWdfY2FwdHVyZVNsb3dGcmFtZSBkaWFnX2NvZGVQZXJmb3JtYW5jZSBkaWFnX2RyYXdNb2RlICcgK1xuICAgICAgICAnZGlhZ19lbmFibGUgZGlhZ19lbmFibGVkIGRpYWdfZnBzIGRpYWdfZnBzTWluIGRpYWdfZnJhbWVObyBkaWFnX2xpc3QgZGlhZ19sb2cgZGlhZ19sb2dTbG93RnJhbWUgJyArXG4gICAgICAgICdkaWFnX21lcmdlQ29uZmlnRmlsZSBkaWFnX3JlY29yZFR1cnJldExpbWl0cyBkaWFnX3RpY2tUaW1lIGRpYWdfdG9nZ2xlIGRpYWxvZyBkaWFyeVN1YmplY3RFeGlzdHMgJyArXG4gICAgICAgICdkaWRKSVAgZGlkSklQT3duZXIgZGlmZmljdWx0eSBkaWZmaWN1bHR5RW5hYmxlZCBkaWZmaWN1bHR5RW5hYmxlZFJURCBkaWZmaWN1bHR5T3B0aW9uIGRpcmVjdGlvbiAnICtcbiAgICAgICAgJ2RpcmVjdFNheSBkaXNhYmxlQUkgZGlzYWJsZUNvbGxpc2lvbldpdGggZGlzYWJsZUNvbnZlcnNhdGlvbiBkaXNhYmxlRGVicmllZmluZ1N0YXRzICcgK1xuICAgICAgICAnZGlzYWJsZU5WR0VxdWlwbWVudCBkaXNhYmxlUmVtb3RlU2Vuc29ycyBkaXNhYmxlU2VyaWFsaXphdGlvbiBkaXNhYmxlVElFcXVpcG1lbnQgJyArXG4gICAgICAgICdkaXNhYmxlVUFWQ29ubmVjdGFiaWxpdHkgZGlzYWJsZVVzZXJJbnB1dCBkaXNwbGF5QWRkRXZlbnRIYW5kbGVyIGRpc3BsYXlDdHJsIGRpc3BsYXlOdWxsICcgK1xuICAgICAgICAnZGlzcGxheVBhcmVudCBkaXNwbGF5UmVtb3ZlQWxsRXZlbnRIYW5kbGVycyBkaXNwbGF5UmVtb3ZlRXZlbnRIYW5kbGVyIGRpc3BsYXlTZXRFdmVudEhhbmRsZXIgJyArXG4gICAgICAgICdkaXNzb2x2ZVRlYW0gZGlzdGFuY2UgZGlzdGFuY2UyRCBkaXN0YW5jZVNxciBkaXN0cmlidXRpb25SZWdpb24gZG8zREVOQWN0aW9uIGRvQXJ0aWxsZXJ5RmlyZSAnICtcbiAgICAgICAgJ2RvRmlyZSBkb0ZvbGxvdyBkb0ZTTSBkb0dldE91dCBkb01vdmUgZG9vclBoYXNlIGRvU3RvcCBkb1N1cHByZXNzaXZlRmlyZSBkb1RhcmdldCBkb1dhdGNoICcgK1xuICAgICAgICAnZHJhd0Fycm93IGRyYXdFbGxpcHNlIGRyYXdJY29uIGRyYXdJY29uM0QgZHJhd0xpbmUgZHJhd0xpbmUzRCBkcmF3TGluayBkcmF3TG9jYXRpb24gZHJhd1BvbHlnb24gJyArXG4gICAgICAgICdkcmF3UmVjdGFuZ2xlIGRyaXZlciBkcm9wIGVhc3QgZWNobyBlZGl0M0RFTk1pc3Npb25BdHRyaWJ1dGVzIGVkaXRPYmplY3QgZWRpdG9yU2V0RXZlbnRIYW5kbGVyICcgK1xuICAgICAgICAnZWZmZWN0aXZlQ29tbWFuZGVyIGVtcHR5UG9zaXRpb25zIGVuYWJsZUFJIGVuYWJsZUFJRmVhdHVyZSBlbmFibGVBaW1QcmVjaXNpb24gZW5hYmxlQXR0YWNrICcgK1xuICAgICAgICAnZW5hYmxlQXVkaW9GZWF0dXJlIGVuYWJsZUNhbVNoYWtlIGVuYWJsZUNhdXN0aWNzIGVuYWJsZUNoYW5uZWwgZW5hYmxlQ29sbGlzaW9uV2l0aCBlbmFibGVDb3BpbG90ICcgK1xuICAgICAgICAnZW5hYmxlRGVicmllZmluZ1N0YXRzIGVuYWJsZURpYWdMZWdlbmQgZW5hYmxlRW5kRGlhbG9nIGVuYWJsZUVuZ2luZUFydGlsbGVyeSBlbmFibGVFbnZpcm9ubWVudCAnICtcbiAgICAgICAgJ2VuYWJsZUZhdGlndWUgZW5hYmxlR3VuTGlnaHRzIGVuYWJsZUlSTGFzZXJzIGVuYWJsZU1pbWljcyBlbmFibGVQZXJzb25UdXJyZXQgZW5hYmxlUmFkaW8gJyArXG4gICAgICAgICdlbmFibGVSZWxvYWQgZW5hYmxlUm9wZUF0dGFjaCBlbmFibGVTYXROb3JtYWxPbkRldGFpbCBlbmFibGVTYXZpbmcgZW5hYmxlU2VudGVuY2VzICcgK1xuICAgICAgICAnZW5hYmxlU2ltdWxhdGlvbiBlbmFibGVTaW11bGF0aW9uR2xvYmFsIGVuYWJsZVN0YW1pbmEgZW5hYmxlVGVhbVN3aXRjaCBlbmFibGVVQVZDb25uZWN0YWJpbGl0eSAnICtcbiAgICAgICAgJ2VuYWJsZVVBVldheXBvaW50cyBlbmFibGVWZWhpY2xlQ2FyZ28gZW5kTG9hZGluZ1NjcmVlbiBlbmRNaXNzaW9uIGVuZ2luZU9uIGVuZ2luZXNJc09uUlREICcgK1xuICAgICAgICAnZW5naW5lc1JwbVJURCBlbmdpbmVzVG9ycXVlUlREIGVudGl0aWVzIGVzdGltYXRlZEVuZFNlcnZlclRpbWUgZXN0aW1hdGVkVGltZUxlZnQgJyArXG4gICAgICAgICdldmFsT2JqZWN0QXJndW1lbnQgZXZlcnlCYWNrcGFjayBldmVyeUNvbnRhaW5lciBleGVjIGV4ZWNFZGl0b3JTY3JpcHQgZXhlY0ZTTSBleGVjVk0gZXhwICcgK1xuICAgICAgICAnZXhwZWN0ZWREZXN0aW5hdGlvbiBleHBvcnRKSVBNZXNzYWdlcyBleWVEaXJlY3Rpb24gZXllUG9zIGZhY2UgZmFjdGlvbiBmYWRlTXVzaWMgZmFkZVJhZGlvICcgK1xuICAgICAgICAnZmFkZVNvdW5kIGZhZGVTcGVlY2ggZmFpbE1pc3Npb24gZmlsbFdlYXBvbnNGcm9tUG9vbCBmaW5kIGZpbmRDb3ZlciBmaW5kRGlzcGxheSBmaW5kRWRpdG9yT2JqZWN0ICcgK1xuICAgICAgICAnZmluZEVtcHR5UG9zaXRpb24gZmluZEVtcHR5UG9zaXRpb25SZWFkeSBmaW5kTmVhcmVzdEVuZW15IGZpbmlzaE1pc3Npb25Jbml0IGZpbml0ZSBmaXJlICcgK1xuICAgICAgICAnZmlyZUF0VGFyZ2V0IGZpcnN0QmFja3BhY2sgZmxhZyBmbGFnT3duZXIgZmxhZ1NpZGUgZmxhZ1RleHR1cmUgZmxlZWluZyBmbG9vciBmbHlJbkhlaWdodCAnICtcbiAgICAgICAgJ2ZseUluSGVpZ2h0QVNMIGZvZyBmb2dGb3JlY2FzdCBmb2dQYXJhbXMgZm9yY2VBZGRVbmlmb3JtIGZvcmNlZE1hcCBmb3JjZUVuZCBmb3JjZU1hcCBmb3JjZVJlc3Bhd24gJyArXG4gICAgICAgICdmb3JjZVNwZWVkIGZvcmNlV2FsayBmb3JjZVdlYXBvbkZpcmUgZm9yY2VXZWF0aGVyQ2hhbmdlIGZvckVhY2hNZW1iZXIgZm9yRWFjaE1lbWJlckFnZW50ICcgK1xuICAgICAgICAnZm9yRWFjaE1lbWJlclRlYW0gZm9ybWF0IGZvcm1hdGlvbiBmb3JtYXRpb25EaXJlY3Rpb24gZm9ybWF0aW9uTGVhZGVyIGZvcm1hdGlvbk1lbWJlcnMgJyArXG4gICAgICAgICdmb3JtYXRpb25Qb3NpdGlvbiBmb3JtYXRpb25UYXNrIGZvcm1hdFRleHQgZm9ybUxlYWRlciBmcmVlTG9vayBmcm9tRWRpdG9yIGZ1ZWwgZnVsbENyZXcgJyArXG4gICAgICAgICdnZWFySURDQW1tb0NvdW50IGdlYXJTbG90QW1tb0NvdW50IGdlYXJTbG90RGF0YSBnZXQzREVOQWN0aW9uU3RhdGUgZ2V0M0RFTkF0dHJpYnV0ZSBnZXQzREVOQ2FtZXJhICcgK1xuICAgICAgICAnZ2V0M0RFTkNvbm5lY3Rpb25zIGdldDNERU5FbnRpdHkgZ2V0M0RFTkVudGl0eUlEIGdldDNERU5HcmlkIGdldDNERU5JY29uc1Zpc2libGUgJyArXG4gICAgICAgICdnZXQzREVOTGF5ZXJFbnRpdGllcyBnZXQzREVOTGluZXNWaXNpYmxlIGdldDNERU5NaXNzaW9uQXR0cmlidXRlIGdldDNERU5Nb3VzZU92ZXIgZ2V0M0RFTlNlbGVjdGVkICcgK1xuICAgICAgICAnZ2V0QWltaW5nQ29lZiBnZXRBbGxIaXRQb2ludHNEYW1hZ2UgZ2V0QWxsT3duZWRNaW5lcyBnZXRBbW1vQ2FyZ28gZ2V0QW5pbUFpbVByZWNpc2lvbiAnICtcbiAgICAgICAgJ2dldEFuaW1TcGVlZENvZWYgZ2V0QXJyYXkgZ2V0QXJ0aWxsZXJ5QW1tbyBnZXRBcnRpbGxlcnlDb21wdXRlclNldHRpbmdzIGdldEFydGlsbGVyeUVUQSAnICtcbiAgICAgICAgJ2dldEFzc2lnbmVkQ3VyYXRvckxvZ2ljIGdldEFzc2lnbmVkQ3VyYXRvclVuaXQgZ2V0QmFja3BhY2tDYXJnbyBnZXRCbGVlZGluZ1JlbWFpbmluZyAnICtcbiAgICAgICAgJ2dldEJ1cm5pbmdWYWx1ZSBnZXRDYW1lcmFWaWV3RGlyZWN0aW9uIGdldENhcmdvSW5kZXggZ2V0Q2VudGVyT2ZNYXNzIGdldENsaWVudFN0YXRlICcgK1xuICAgICAgICAnZ2V0Q2xpZW50U3RhdGVOdW1iZXIgZ2V0Q29ubmVjdGVkVUFWIGdldEN1c3RvbUFpbWluZ0NvZWYgZ2V0RGFtbWFnZSBnZXREZXNjcmlwdGlvbiBnZXREaXIgJyArXG4gICAgICAgICdnZXREaXJWaXN1YWwgZ2V0RExDcyBnZXRFZGl0b3JDYW1lcmEgZ2V0RWRpdG9yTW9kZSBnZXRFZGl0b3JPYmplY3RTY29wZSBnZXRFbGV2YXRpb25PZmZzZXQgJyArXG4gICAgICAgICdnZXRGYXRpZ3VlIGdldEZyaWVuZCBnZXRGU01WYXJpYWJsZSBnZXRGdWVsQ2FyZ28gZ2V0R3JvdXBJY29uIGdldEdyb3VwSWNvblBhcmFtcyBnZXRHcm91cEljb25zICcgK1xuICAgICAgICAnZ2V0SGlkZUZyb20gZ2V0SGl0IGdldEhpdEluZGV4IGdldEhpdFBvaW50RGFtYWdlIGdldEl0ZW1DYXJnbyBnZXRNYWdhemluZUNhcmdvIGdldE1hcmtlckNvbG9yICcgK1xuICAgICAgICAnZ2V0TWFya2VyUG9zIGdldE1hcmtlclNpemUgZ2V0TWFya2VyVHlwZSBnZXRNYXNzIGdldE1pc3Npb25Db25maWcgZ2V0TWlzc2lvbkNvbmZpZ1ZhbHVlICcgK1xuICAgICAgICAnZ2V0TWlzc2lvbkRMQ3MgZ2V0TWlzc2lvbkxheWVyRW50aXRpZXMgZ2V0TW9kZWxJbmZvIGdldE1vdXNlUG9zaXRpb24gZ2V0TnVtYmVyIGdldE9iamVjdEFyZ3VtZW50ICcgK1xuICAgICAgICAnZ2V0T2JqZWN0Q2hpbGRyZW4gZ2V0T2JqZWN0RExDIGdldE9iamVjdE1hdGVyaWFscyBnZXRPYmplY3RQcm94eSBnZXRPYmplY3RUZXh0dXJlcyBnZXRPYmplY3RUeXBlICcgK1xuICAgICAgICAnZ2V0T2JqZWN0Vmlld0Rpc3RhbmNlIGdldE94eWdlblJlbWFpbmluZyBnZXRQZXJzb25Vc2VkRExDcyBnZXRQaWxvdENhbWVyYURpcmVjdGlvbiAnICtcbiAgICAgICAgJ2dldFBpbG90Q2FtZXJhUG9zaXRpb24gZ2V0UGlsb3RDYW1lcmFSb3RhdGlvbiBnZXRQaWxvdENhbWVyYVRhcmdldCBnZXRQbGF5ZXJDaGFubmVsICcgK1xuICAgICAgICAnZ2V0UGxheWVyU2NvcmVzIGdldFBsYXllclVJRCBnZXRQb3MgZ2V0UG9zQVNMIGdldFBvc0FTTFZpc3VhbCBnZXRQb3NBU0xXIGdldFBvc0FUTCAnICtcbiAgICAgICAgJ2dldFBvc0FUTFZpc3VhbCBnZXRQb3NWaXN1YWwgZ2V0UG9zV29ybGQgZ2V0UmVsRGlyIGdldFJlbFBvcyBnZXRSZW1vdGVTZW5zb3JzRGlzYWJsZWQgJyArXG4gICAgICAgICdnZXRSZXBhaXJDYXJnbyBnZXRSZXNvbHV0aW9uIGdldFNoYWRvd0Rpc3RhbmNlIGdldFNob3RQYXJlbnRzIGdldFNsaW5nTG9hZCBnZXRTcGVlZCBnZXRTdGFtaW5hICcgK1xuICAgICAgICAnZ2V0U3RhdFZhbHVlIGdldFN1cHByZXNzaW9uIGdldFRlcnJhaW5IZWlnaHRBU0wgZ2V0VGV4dCBnZXRVbml0TG9hZG91dCBnZXRVbml0VHJhaXQgZ2V0VmFyaWFibGUgJyArXG4gICAgICAgICdnZXRWZWhpY2xlQ2FyZ28gZ2V0V2VhcG9uQ2FyZ28gZ2V0V2VhcG9uU3dheSBnZXRXUFBvcyBnbGFuY2VBdCBnbG9iYWxDaGF0IGdsb2JhbFJhZGlvIGdvZ2dsZXMgJyArXG4gICAgICAgICdnb3RvIGdyb3VwIGdyb3VwQ2hhdCBncm91cEZyb21OZXRJZCBncm91cEljb25TZWxlY3RhYmxlIGdyb3VwSWNvbnNWaXNpYmxlIGdyb3VwSWQgZ3JvdXBPd25lciAnICtcbiAgICAgICAgJ2dyb3VwUmFkaW8gZ3JvdXBTZWxlY3RlZFVuaXRzIGdyb3VwU2VsZWN0VW5pdCBncnBOdWxsIGd1bm5lciBndXN0cyBoYWx0IGhhbmRndW5JdGVtcyAnICtcbiAgICAgICAgJ2hhbmRndW5NYWdhemluZSBoYW5kZ3VuV2VhcG9uIGhhbmRzSGl0IGhhc0ludGVyZmFjZSBoYXNQaWxvdENhbWVyYSBoYXNXZWFwb24gaGNBbGxHcm91cHMgJyArXG4gICAgICAgICdoY0dyb3VwUGFyYW1zIGhjTGVhZGVyIGhjUmVtb3ZlQWxsR3JvdXBzIGhjUmVtb3ZlR3JvdXAgaGNTZWxlY3RlZCBoY1NlbGVjdEdyb3VwIGhjU2V0R3JvdXAgJyArXG4gICAgICAgICdoY1Nob3dCYXIgaGNTaG93bkJhciBoZWFkZ2VhciBoaWRlQm9keSBoaWRlT2JqZWN0IGhpZGVPYmplY3RHbG9iYWwgaGlkZVNlbGVjdGlvbiBoaW50IGhpbnRDICcgK1xuICAgICAgICAnaGludENhZGV0IGhpbnRTaWxlbnQgaG1kIGhvc3RNaXNzaW9uIGh0bWxMb2FkIEhVRE1vdmVtZW50TGV2ZWxzIGh1bWlkaXR5IGltYWdlIGltcG9ydEFsbEdyb3VwcyAnICtcbiAgICAgICAgJ2ltcG9ydGFuY2UgaW4gaW5BcmVhIGluQXJlYUFycmF5IGluY2FwYWNpdGF0ZWRTdGF0ZSBpbmRlcGVuZGVudCBpbmZsYW1lIGluZmxhbWVkICcgK1xuICAgICAgICAnaW5HYW1lVUlTZXRFdmVudEhhbmRsZXIgaW5oZXJpdHNGcm9tIGluaXRBbWJpZW50TGlmZSBpblBvbHlnb24gaW5wdXRBY3Rpb24gaW5SYW5nZU9mQXJ0aWxsZXJ5ICcgK1xuICAgICAgICAnaW5zZXJ0RWRpdG9yT2JqZWN0IGludGVyc2VjdCBpczNERU4gaXMzREVOTXVsdGlwbGF5ZXIgaXNBYmxlVG9CcmVhdGhlIGlzQWdlbnQgaXNBcnJheSAnICtcbiAgICAgICAgJ2lzQXV0b0hvdmVyT24gaXNBdXRvbm9tb3VzIGlzQXV0b3Rlc3QgaXNCbGVlZGluZyBpc0J1cm5pbmcgaXNDbGFzcyBpc0NvbGxpc2lvbkxpZ2h0T24gJyArXG4gICAgICAgICdpc0NvcGlsb3RFbmFibGVkIGlzRGVkaWNhdGVkIGlzRExDQXZhaWxhYmxlIGlzRW5naW5lT24gaXNFcXVhbFRvIGlzRXF1YWxUeXBlIGlzRXF1YWxUeXBlQWxsICcgK1xuICAgICAgICAnaXNFcXVhbFR5cGVBbnkgaXNFcXVhbFR5cGVBcnJheSBpc0VxdWFsVHlwZVBhcmFtcyBpc0ZpbGVQYXRjaGluZ0VuYWJsZWQgaXNGbGFzaGxpZ2h0T24gJyArXG4gICAgICAgICdpc0ZsYXRFbXB0eSBpc0ZvcmNlZFdhbGsgaXNGb3JtYXRpb25MZWFkZXIgaXNIaWRkZW4gaXNJblJlbWFpbnNDb2xsZWN0b3IgJyArXG4gICAgICAgICdpc0luc3RydWN0b3JGaWd1cmVFbmFibGVkIGlzSVJMYXNlck9uIGlzS2V5QWN0aXZlIGlzS2luZE9mIGlzTGlnaHRPbiBpc0xvY2FsaXplZCBpc01hbnVhbEZpcmUgJyArXG4gICAgICAgICdpc01hcmtlZEZvckNvbGxlY3Rpb24gaXNNdWx0aXBsYXllciBpc011bHRpcGxheWVyU29sbyBpc05pbCBpc051bGwgaXNOdW1iZXIgaXNPYmplY3RIaWRkZW4gJyArXG4gICAgICAgICdpc09iamVjdFJURCBpc09uUm9hZCBpc1BpcEVuYWJsZWQgaXNQbGF5ZXIgaXNSZWFsVGltZSBpc1JlbW90ZUV4ZWN1dGVkIGlzUmVtb3RlRXhlY3V0ZWRKSVAgJyArXG4gICAgICAgICdpc1NlcnZlciBpc1Nob3dpbmczREljb25zIGlzU3ByaW50QWxsb3dlZCBpc1N0YW1pbmFFbmFibGVkIGlzU3RlYW1NaXNzaW9uICcgK1xuICAgICAgICAnaXNTdHJlYW1GcmllbmRseVVJRW5hYmxlZCBpc1RleHQgaXNUb3VjaGluZ0dyb3VuZCBpc1R1cm5lZE91dCBpc1R1dEhpbnRzRW5hYmxlZCBpc1VBVkNvbm5lY3RhYmxlICcgK1xuICAgICAgICAnaXNVQVZDb25uZWN0ZWQgaXNVbmlmb3JtQWxsb3dlZCBpc1ZlaGljbGVDYXJnbyBpc1dhbGtpbmcgaXNXZWFwb25EZXBsb3llZCBpc1dlYXBvblJlc3RlZCAnICtcbiAgICAgICAgJ2l0ZW1DYXJnbyBpdGVtcyBpdGVtc1dpdGhNYWdhemluZXMgam9pbiBqb2luQXMgam9pbkFzU2lsZW50IGpvaW5TaWxlbnQgam9pblN0cmluZyBrYkFkZERhdGFiYXNlICcgK1xuICAgICAgICAna2JBZGREYXRhYmFzZVRhcmdldHMga2JBZGRUb3BpYyBrYkhhc1RvcGljIGtiUmVhY3Qga2JSZW1vdmVUb3BpYyBrYlRlbGwga2JXYXNTYWlkIGtleUltYWdlICcgK1xuICAgICAgICAna2V5TmFtZSBrbm93c0Fib3V0IGxhbmQgbGFuZEF0IGxhbmRSZXN1bHQgbGFuZ3VhZ2UgbGFzZXJUYXJnZXQgbGJBZGQgbGJDbGVhciBsYkNvbG9yIGxiQ3VyU2VsICcgK1xuICAgICAgICAnbGJEYXRhIGxiRGVsZXRlIGxiSXNTZWxlY3RlZCBsYlBpY3R1cmUgbGJTZWxlY3Rpb24gbGJTZXRDb2xvciBsYlNldEN1clNlbCBsYlNldERhdGEgbGJTZXRQaWN0dXJlICcgK1xuICAgICAgICAnbGJTZXRQaWN0dXJlQ29sb3IgbGJTZXRQaWN0dXJlQ29sb3JEaXNhYmxlZCBsYlNldFBpY3R1cmVDb2xvclNlbGVjdGVkIGxiU2V0U2VsZWN0Q29sb3IgJyArXG4gICAgICAgICdsYlNldFNlbGVjdENvbG9yUmlnaHQgbGJTZXRTZWxlY3RlZCBsYlNldFRvb2x0aXAgbGJTZXRWYWx1ZSBsYlNpemUgbGJTb3J0IGxiU29ydEJ5VmFsdWUgbGJUZXh0ICcgK1xuICAgICAgICAnbGJWYWx1ZSBsZWFkZXIgbGVhZGVyYm9hcmREZUluaXQgbGVhZGVyYm9hcmRHZXRSb3dzIGxlYWRlcmJvYXJkSW5pdCBsZWF2ZVZlaGljbGUgbGlicmFyeUNyZWRpdHMgJyArXG4gICAgICAgICdsaWJyYXJ5RGlzY2xhaW1lcnMgbGlmZVN0YXRlIGxpZ2h0QXR0YWNoT2JqZWN0IGxpZ2h0RGV0YWNoT2JqZWN0IGxpZ2h0SXNPbiBsaWdodG5pbmdzIGxpbWl0U3BlZWQgJyArXG4gICAgICAgICdsaW5lYXJDb252ZXJzaW9uIGxpbmVCcmVhayBsaW5lSW50ZXJzZWN0cyBsaW5lSW50ZXJzZWN0c09ianMgbGluZUludGVyc2VjdHNTdXJmYWNlcyAnICtcbiAgICAgICAgJ2xpbmVJbnRlcnNlY3RzV2l0aCBsaW5rSXRlbSBsaXN0IGxpc3RPYmplY3RzIGxuIGxuYkFkZEFycmF5IGxuYkFkZENvbHVtbiBsbmJBZGRSb3cgbG5iQ2xlYXIgJyArXG4gICAgICAgICdsbmJDb2xvciBsbmJDdXJTZWxSb3cgbG5iRGF0YSBsbmJEZWxldGVDb2x1bW4gbG5iRGVsZXRlUm93IGxuYkdldENvbHVtbnNQb3NpdGlvbiBsbmJQaWN0dXJlICcgK1xuICAgICAgICAnbG5iU2V0Q29sb3IgbG5iU2V0Q29sdW1uc1BvcyBsbmJTZXRDdXJTZWxSb3cgbG5iU2V0RGF0YSBsbmJTZXRQaWN0dXJlIGxuYlNldFRleHQgbG5iU2V0VmFsdWUgJyArXG4gICAgICAgICdsbmJTaXplIGxuYlRleHQgbG5iVmFsdWUgbG9hZCBsb2FkQWJzIGxvYWRCYWNrcGFjayBsb2FkRmlsZSBsb2FkR2FtZSBsb2FkSWRlbnRpdHkgbG9hZE1hZ2F6aW5lICcgK1xuICAgICAgICAnbG9hZE92ZXJsYXkgbG9hZFN0YXR1cyBsb2FkVW5pZm9ybSBsb2FkVmVzdCBsb2NhbCBsb2NhbGl6ZSBsb2NhdGlvbk51bGwgbG9jYXRpb25Qb3NpdGlvbiBsb2NrICcgK1xuICAgICAgICAnbG9ja0NhbWVyYVRvIGxvY2tDYXJnbyBsb2NrRHJpdmVyIGxvY2tlZCBsb2NrZWRDYXJnbyBsb2NrZWREcml2ZXIgbG9ja2VkVHVycmV0IGxvY2tJZGVudGl0eSAnICtcbiAgICAgICAgJ2xvY2tUdXJyZXQgbG9ja1dQIGxvZyBsb2dFbnRpdGllcyBsb2dOZXR3b3JrIGxvZ05ldHdvcmtUZXJtaW5hdGUgbG9va0F0IGxvb2tBdFBvcyBtYWdhemluZUNhcmdvICcgK1xuICAgICAgICAnbWFnYXppbmVzIG1hZ2F6aW5lc0FsbFR1cnJldHMgbWFnYXppbmVzQW1tbyBtYWdhemluZXNBbW1vQ2FyZ28gbWFnYXppbmVzQW1tb0Z1bGwgbWFnYXppbmVzRGV0YWlsICcgK1xuICAgICAgICAnbWFnYXppbmVzRGV0YWlsQmFja3BhY2sgbWFnYXppbmVzRGV0YWlsVW5pZm9ybSBtYWdhemluZXNEZXRhaWxWZXN0IG1hZ2F6aW5lc1R1cnJldCAnICtcbiAgICAgICAgJ21hZ2F6aW5lVHVycmV0QW1tbyBtYXBBbmltQWRkIG1hcEFuaW1DbGVhciBtYXBBbmltQ29tbWl0IG1hcEFuaW1Eb25lIG1hcENlbnRlck9uQ2FtZXJhICcgK1xuICAgICAgICAnbWFwR3JpZFBvc2l0aW9uIG1hcmtBc0ZpbmlzaGVkT25TdGVhbSBtYXJrZXJBbHBoYSBtYXJrZXJCcnVzaCBtYXJrZXJDb2xvciBtYXJrZXJEaXIgbWFya2VyUG9zICcgK1xuICAgICAgICAnbWFya2VyU2hhcGUgbWFya2VyU2l6ZSBtYXJrZXJUZXh0IG1hcmtlclR5cGUgbWF4IG1lbWJlcnMgbWVudUFjdGlvbiBtZW51QWRkIG1lbnVDaGVja2VkIG1lbnVDbGVhciAnICtcbiAgICAgICAgJ21lbnVDb2xsYXBzZSBtZW51RGF0YSBtZW51RGVsZXRlIG1lbnVFbmFibGUgbWVudUVuYWJsZWQgbWVudUV4cGFuZCBtZW51SG92ZXIgbWVudVBpY3R1cmUgJyArXG4gICAgICAgICdtZW51U2V0QWN0aW9uIG1lbnVTZXRDaGVjayBtZW51U2V0RGF0YSBtZW51U2V0UGljdHVyZSBtZW51U2V0VmFsdWUgbWVudVNob3J0Y3V0IG1lbnVTaG9ydGN1dFRleHQgJyArXG4gICAgICAgICdtZW51U2l6ZSBtZW51U29ydCBtZW51VGV4dCBtZW51VVJMIG1lbnVWYWx1ZSBtaW4gbWluZUFjdGl2ZSBtaW5lRGV0ZWN0ZWRCeSBtaXNzaW9uQ29uZmlnRmlsZSAnICtcbiAgICAgICAgJ21pc3Npb25EaWZmaWN1bHR5IG1pc3Npb25OYW1lIG1pc3Npb25OYW1lc3BhY2UgbWlzc2lvblN0YXJ0IG1pc3Npb25WZXJzaW9uIG1vZCBtb2RlbFRvV29ybGQgJyArXG4gICAgICAgICdtb2RlbFRvV29ybGRWaXN1YWwgbW9kUGFyYW1zIG1vb25JbnRlbnNpdHkgbW9vblBoYXNlIG1vcmFsZSBtb3ZlIG1vdmUzREVOQ2FtZXJhIG1vdmVJbkFueSAnICtcbiAgICAgICAgJ21vdmVJbkNhcmdvIG1vdmVJbkNvbW1hbmRlciBtb3ZlSW5Ecml2ZXIgbW92ZUluR3VubmVyIG1vdmVJblR1cnJldCBtb3ZlT2JqZWN0VG9FbmQgbW92ZU91dCAnICtcbiAgICAgICAgJ21vdmVUaW1lIG1vdmVUbyBtb3ZlVG9Db21wbGV0ZWQgbW92ZVRvRmFpbGVkIG11c2ljVm9sdW1lIG5hbWUgbmFtZVNvdW5kIG5lYXJFbnRpdGllcyAnICtcbiAgICAgICAgJ25lYXJlc3RCdWlsZGluZyBuZWFyZXN0TG9jYXRpb24gbmVhcmVzdExvY2F0aW9ucyBuZWFyZXN0TG9jYXRpb25XaXRoRHViYmluZyBuZWFyZXN0T2JqZWN0ICcgK1xuICAgICAgICAnbmVhcmVzdE9iamVjdHMgbmVhcmVzdFRlcnJhaW5PYmplY3RzIG5lYXJPYmplY3RzIG5lYXJPYmplY3RzUmVhZHkgbmVhclJvYWRzIG5lYXJTdXBwbGllcyAnICtcbiAgICAgICAgJ25lYXJUYXJnZXRzIG5lZWRSZWxvYWQgbmV0SWQgbmV0T2JqTnVsbCBuZXdPdmVybGF5IG5leHRNZW51SXRlbUluZGV4IG5leHRXZWF0aGVyQ2hhbmdlIG5NZW51SXRlbXMgJyArXG4gICAgICAgICdub3QgbnVtYmVyVG9EYXRlIG9iamVjdEN1cmF0b3JzIG9iamVjdEZyb21OZXRJZCBvYmplY3RQYXJlbnQgb2JqTnVsbCBvYmpTdGF0dXMgb25CcmllZmluZ0dyb3VwICcgK1xuICAgICAgICAnb25CcmllZmluZ05vdGVzIG9uQnJpZWZpbmdQbGFuIG9uQnJpZWZpbmdUZWFtU3dpdGNoIG9uQ29tbWFuZE1vZGVDaGFuZ2VkIG9uRG91YmxlQ2xpY2sgJyArXG4gICAgICAgICdvbkVhY2hGcmFtZSBvbkdyb3VwSWNvbkNsaWNrIG9uR3JvdXBJY29uT3ZlckVudGVyIG9uR3JvdXBJY29uT3ZlckxlYXZlIG9uSENHcm91cFNlbGVjdGlvbkNoYW5nZWQgJyArXG4gICAgICAgICdvbk1hcFNpbmdsZUNsaWNrIG9uUGxheWVyQ29ubmVjdGVkIG9uUGxheWVyRGlzY29ubmVjdGVkIG9uUHJlbG9hZEZpbmlzaGVkIG9uUHJlbG9hZFN0YXJ0ZWQgJyArXG4gICAgICAgICdvblNob3dOZXdPYmplY3Qgb25UZWFtU3dpdGNoIG9wZW5DdXJhdG9ySW50ZXJmYWNlIG9wZW5ETENQYWdlIG9wZW5NYXAgb3BlbllvdXR1YmVWaWRlbyBvcGZvciBvciAnICtcbiAgICAgICAgJ29yZGVyR2V0SW4gb3ZlcmNhc3Qgb3ZlcmNhc3RGb3JlY2FzdCBvd25lciBwYXJhbSBwYXJhbXMgcGFyc2VOdW1iZXIgcGFyc2VUZXh0IHBhcnNpbmdOYW1lc3BhY2UgJyArXG4gICAgICAgICdwYXJ0aWNsZXNRdWFsaXR5IHBpIHBpY2tXZWFwb25Qb29sIHBpdGNoIHBpeGVsR3JpZCBwaXhlbEdyaWRCYXNlIHBpeGVsR3JpZE5vVUlTY2FsZSBwaXhlbEggcGl4ZWxXICcgK1xuICAgICAgICAncGxheWFibGVTbG90c051bWJlciBwbGF5YWJsZVVuaXRzIHBsYXlBY3Rpb24gcGxheUFjdGlvbk5vdyBwbGF5ZXIgcGxheWVyUmVzcGF3blRpbWUgcGxheWVyU2lkZSAnICtcbiAgICAgICAgJ3BsYXllcnNOdW1iZXIgcGxheUdlc3R1cmUgcGxheU1pc3Npb24gcGxheU1vdmUgcGxheU1vdmVOb3cgcGxheU11c2ljIHBsYXlTY3JpcHRlZE1pc3Npb24gJyArXG4gICAgICAgICdwbGF5U291bmQgcGxheVNvdW5kM0QgcG9zaXRpb24gcG9zaXRpb25DYW1lcmFUb1dvcmxkIHBvc1NjcmVlblRvV29ybGQgcG9zV29ybGRUb1NjcmVlbiAnICtcbiAgICAgICAgJ3BwRWZmZWN0QWRqdXN0IHBwRWZmZWN0Q29tbWl0IHBwRWZmZWN0Q29tbWl0dGVkIHBwRWZmZWN0Q3JlYXRlIHBwRWZmZWN0RGVzdHJveSBwcEVmZmVjdEVuYWJsZSAnICtcbiAgICAgICAgJ3BwRWZmZWN0RW5hYmxlZCBwcEVmZmVjdEZvcmNlSW5OVkcgcHJlY2lzaW9uIHByZWxvYWRDYW1lcmEgcHJlbG9hZE9iamVjdCBwcmVsb2FkU291bmQgJyArXG4gICAgICAgICdwcmVsb2FkVGl0bGVPYmogcHJlbG9hZFRpdGxlUnNjIHByZXByb2Nlc3NGaWxlIHByZXByb2Nlc3NGaWxlTGluZU51bWJlcnMgcHJpbWFyeVdlYXBvbiAnICtcbiAgICAgICAgJ3ByaW1hcnlXZWFwb25JdGVtcyBwcmltYXJ5V2VhcG9uTWFnYXppbmUgcHJpb3JpdHkgcHJpdmF0ZSBwcm9jZXNzRGlhcnlMaW5rIHByb2R1Y3RWZXJzaW9uICcgK1xuICAgICAgICAncHJvZmlsZU5hbWUgcHJvZmlsZU5hbWVzcGFjZSBwcm9maWxlTmFtZVN0ZWFtIHByb2dyZXNzTG9hZGluZ1NjcmVlbiBwcm9ncmVzc1Bvc2l0aW9uICcgK1xuICAgICAgICAncHJvZ3Jlc3NTZXRQb3NpdGlvbiBwdWJsaWNWYXJpYWJsZSBwdWJsaWNWYXJpYWJsZUNsaWVudCBwdWJsaWNWYXJpYWJsZVNlcnZlciBwdXNoQmFjayAnICtcbiAgICAgICAgJ3B1c2hCYWNrVW5pcXVlIHB1dFdlYXBvblBvb2wgcXVlcnlJdGVtc1Bvb2wgcXVlcnlNYWdhemluZVBvb2wgcXVlcnlXZWFwb25Qb29sIHJhZCByYWRpb0NoYW5uZWxBZGQgJyArXG4gICAgICAgICdyYWRpb0NoYW5uZWxDcmVhdGUgcmFkaW9DaGFubmVsUmVtb3ZlIHJhZGlvQ2hhbm5lbFNldENhbGxTaWduIHJhZGlvQ2hhbm5lbFNldExhYmVsIHJhZGlvVm9sdW1lICcgK1xuICAgICAgICAncmFpbiByYWluYm93IHJhbmRvbSByYW5rIHJhbmtJZCByYXRpbmcgcmVjdGFuZ3VsYXIgcmVnaXN0ZXJlZFRhc2tzIHJlZ2lzdGVyVGFzayByZWxvYWQgJyArXG4gICAgICAgICdyZWxvYWRFbmFibGVkIHJlbW90ZUNvbnRyb2wgcmVtb3RlRXhlYyByZW1vdGVFeGVjQ2FsbCByZW1vdmUzREVOQ29ubmVjdGlvbiByZW1vdmUzREVORXZlbnRIYW5kbGVyICcgK1xuICAgICAgICAncmVtb3ZlM0RFTkxheWVyIHJlbW92ZUFjdGlvbiByZW1vdmVBbGwzREVORXZlbnRIYW5kbGVycyByZW1vdmVBbGxBY3Rpb25zIHJlbW92ZUFsbEFzc2lnbmVkSXRlbXMgJyArXG4gICAgICAgICdyZW1vdmVBbGxDb250YWluZXJzIHJlbW92ZUFsbEN1cmF0b3JBZGRvbnMgcmVtb3ZlQWxsQ3VyYXRvckNhbWVyYUFyZWFzICcgK1xuICAgICAgICAncmVtb3ZlQWxsQ3VyYXRvckVkaXRpbmdBcmVhcyByZW1vdmVBbGxFdmVudEhhbmRsZXJzIHJlbW92ZUFsbEhhbmRndW5JdGVtcyByZW1vdmVBbGxJdGVtcyAnICtcbiAgICAgICAgJ3JlbW92ZUFsbEl0ZW1zV2l0aE1hZ2F6aW5lcyByZW1vdmVBbGxNaXNzaW9uRXZlbnRIYW5kbGVycyByZW1vdmVBbGxNUEV2ZW50SGFuZGxlcnMgJyArXG4gICAgICAgICdyZW1vdmVBbGxNdXNpY0V2ZW50SGFuZGxlcnMgcmVtb3ZlQWxsT3duZWRNaW5lcyByZW1vdmVBbGxQcmltYXJ5V2VhcG9uSXRlbXMgcmVtb3ZlQWxsV2VhcG9ucyAnICtcbiAgICAgICAgJ3JlbW92ZUJhY2twYWNrIHJlbW92ZUJhY2twYWNrR2xvYmFsIHJlbW92ZUN1cmF0b3JBZGRvbnMgcmVtb3ZlQ3VyYXRvckNhbWVyYUFyZWEgJyArXG4gICAgICAgICdyZW1vdmVDdXJhdG9yRWRpdGFibGVPYmplY3RzIHJlbW92ZUN1cmF0b3JFZGl0aW5nQXJlYSByZW1vdmVEcmF3SWNvbiByZW1vdmVEcmF3TGlua3MgJyArXG4gICAgICAgICdyZW1vdmVFdmVudEhhbmRsZXIgcmVtb3ZlRnJvbVJlbWFpbnNDb2xsZWN0b3IgcmVtb3ZlR29nZ2xlcyByZW1vdmVHcm91cEljb24gcmVtb3ZlSGFuZGd1bkl0ZW0gJyArXG4gICAgICAgICdyZW1vdmVIZWFkZ2VhciByZW1vdmVJdGVtIHJlbW92ZUl0ZW1Gcm9tQmFja3BhY2sgcmVtb3ZlSXRlbUZyb21Vbmlmb3JtIHJlbW92ZUl0ZW1Gcm9tVmVzdCAnICtcbiAgICAgICAgJ3JlbW92ZUl0ZW1zIHJlbW92ZU1hZ2F6aW5lIHJlbW92ZU1hZ2F6aW5lR2xvYmFsIHJlbW92ZU1hZ2F6aW5lcyByZW1vdmVNYWdhemluZXNUdXJyZXQgJyArXG4gICAgICAgICdyZW1vdmVNYWdhemluZVR1cnJldCByZW1vdmVNZW51SXRlbSByZW1vdmVNaXNzaW9uRXZlbnRIYW5kbGVyIHJlbW92ZU1QRXZlbnRIYW5kbGVyICcgK1xuICAgICAgICAncmVtb3ZlTXVzaWNFdmVudEhhbmRsZXIgcmVtb3ZlT3duZWRNaW5lIHJlbW92ZVByaW1hcnlXZWFwb25JdGVtIHJlbW92ZVNlY29uZGFyeVdlYXBvbkl0ZW0gJyArXG4gICAgICAgICdyZW1vdmVTaW1wbGVUYXNrIHJlbW92ZVN3aXRjaGFibGVVbml0IHJlbW92ZVRlYW1NZW1iZXIgcmVtb3ZlVW5pZm9ybSByZW1vdmVWZXN0IHJlbW92ZVdlYXBvbiAnICtcbiAgICAgICAgJ3JlbW92ZVdlYXBvbkdsb2JhbCByZW1vdmVXZWFwb25UdXJyZXQgcmVxdWlyZWRWZXJzaW9uIHJlc2V0Q2FtU2hha2UgcmVzZXRTdWJncm91cERpcmVjdGlvbiAnICtcbiAgICAgICAgJ3Jlc2lzdGFuY2UgcmVzaXplIHJlc291cmNlcyByZXNwYXduVmVoaWNsZSByZXN0YXJ0RWRpdG9yQ2FtZXJhIHJldmVhbCByZXZlYWxNaW5lIHJldmVyc2UgJyArXG4gICAgICAgICdyZXZlcnNlZE1vdXNlWSByb2FkQXQgcm9hZHNDb25uZWN0ZWRUbyByb2xlRGVzY3JpcHRpb24gcm9wZUF0dGFjaGVkT2JqZWN0cyByb3BlQXR0YWNoZWRUbyAnICtcbiAgICAgICAgJ3JvcGVBdHRhY2hFbmFibGVkIHJvcGVBdHRhY2hUbyByb3BlQ3JlYXRlIHJvcGVDdXQgcm9wZURlc3Ryb3kgcm9wZURldGFjaCByb3BlRW5kUG9zaXRpb24gJyArXG4gICAgICAgICdyb3BlTGVuZ3RoIHJvcGVzIHJvcGVVbndpbmQgcm9wZVVud291bmQgcm90b3JzRm9yY2VzUlREIHJvdG9yc1JwbVJURCByb3VuZCBydW5Jbml0U2NyaXB0ICcgK1xuICAgICAgICAnc2FmZVpvbmVIIHNhZmVab25lVyBzYWZlWm9uZVdBYnMgc2FmZVpvbmVYIHNhZmVab25lWEFicyBzYWZlWm9uZVkgc2F2ZTNERU5JbnZlbnRvcnkgc2F2ZUdhbWUgJyArXG4gICAgICAgICdzYXZlSWRlbnRpdHkgc2F2ZUpveXN0aWNrcyBzYXZlT3ZlcmxheSBzYXZlUHJvZmlsZU5hbWVzcGFjZSBzYXZlU3RhdHVzIHNhdmVWYXIgc2F2aW5nRW5hYmxlZCBzYXkgJyArXG4gICAgICAgICdzYXkyRCBzYXkzRCBzY29wZU5hbWUgc2NvcmUgc2NvcmVTaWRlIHNjcmVlbnNob3Qgc2NyZWVuVG9Xb3JsZCBzY3JpcHREb25lIHNjcmlwdE5hbWUgc2NyaXB0TnVsbCAnICtcbiAgICAgICAgJ3NjdWRTdGF0ZSBzZWNvbmRhcnlXZWFwb24gc2Vjb25kYXJ5V2VhcG9uSXRlbXMgc2Vjb25kYXJ5V2VhcG9uTWFnYXppbmUgc2VsZWN0IHNlbGVjdEJlc3RQbGFjZXMgJyArXG4gICAgICAgICdzZWxlY3REaWFyeVN1YmplY3Qgc2VsZWN0ZWRFZGl0b3JPYmplY3RzIHNlbGVjdEVkaXRvck9iamVjdCBzZWxlY3Rpb25OYW1lcyBzZWxlY3Rpb25Qb3NpdGlvbiAnICtcbiAgICAgICAgJ3NlbGVjdExlYWRlciBzZWxlY3RNYXggc2VsZWN0TWluIHNlbGVjdE5vUGxheWVyIHNlbGVjdFBsYXllciBzZWxlY3RSYW5kb20gc2VsZWN0V2VhcG9uICcgK1xuICAgICAgICAnc2VsZWN0V2VhcG9uVHVycmV0IHNlbmRBVU1lc3NhZ2Ugc2VuZFNpbXBsZUNvbW1hbmQgc2VuZFRhc2sgc2VuZFRhc2tSZXN1bHQgc2VuZFVEUE1lc3NhZ2UgJyArXG4gICAgICAgICdzZXJ2ZXJDb21tYW5kIHNlcnZlckNvbW1hbmRBdmFpbGFibGUgc2VydmVyQ29tbWFuZEV4ZWN1dGFibGUgc2VydmVyTmFtZSBzZXJ2ZXJUaW1lIHNldCAnICtcbiAgICAgICAgJ3NldDNERU5BdHRyaWJ1dGUgc2V0M0RFTkF0dHJpYnV0ZXMgc2V0M0RFTkdyaWQgc2V0M0RFTkljb25zVmlzaWJsZSBzZXQzREVOTGF5ZXIgJyArXG4gICAgICAgICdzZXQzREVOTGluZXNWaXNpYmxlIHNldDNERU5NaXNzaW9uQXR0cmlidXRlcyBzZXQzREVOTW9kZWxzVmlzaWJsZSBzZXQzREVOT2JqZWN0VHlwZSAnICtcbiAgICAgICAgJ3NldDNERU5TZWxlY3RlZCBzZXRBY2NUaW1lIHNldEFpcnBvcnRTaWRlIHNldEFtbW8gc2V0QW1tb0NhcmdvIHNldEFuaW1TcGVlZENvZWYgc2V0QXBlcnR1cmUgJyArXG4gICAgICAgICdzZXRBcGVydHVyZU5ldyBzZXRBcm1vcnlQb2ludHMgc2V0QXR0cmlidXRlcyBzZXRBdXRvbm9tb3VzIHNldEJlaGF2aW91ciBzZXRCbGVlZGluZ1JlbWFpbmluZyAnICtcbiAgICAgICAgJ3NldENhbWVyYUludGVyZXN0IHNldENhbVNoYWtlRGVmUGFyYW1zIHNldENhbVNoYWtlUGFyYW1zIHNldENhbVVzZVRpIHNldENhcHRpdmUgc2V0Q2VudGVyT2ZNYXNzICcgK1xuICAgICAgICAnc2V0Q29sbGlzaW9uTGlnaHQgc2V0Q29tYmF0TW9kZSBzZXRDb21wYXNzT3NjaWxsYXRpb24gc2V0Q3VyYXRvckNhbWVyYUFyZWFDZWlsaW5nIHNldEN1cmF0b3JDb2VmICcgK1xuICAgICAgICAnc2V0Q3VyYXRvckVkaXRpbmdBcmVhVHlwZSBzZXRDdXJhdG9yV2F5cG9pbnRDb3N0IHNldEN1cnJlbnRDaGFubmVsIHNldEN1cnJlbnRUYXNrICcgK1xuICAgICAgICAnc2V0Q3VycmVudFdheXBvaW50IHNldEN1c3RvbUFpbUNvZWYgc2V0RGFtYWdlIHNldERhbW1hZ2Ugc2V0RGF0ZSBzZXREZWJyaWVmaW5nVGV4dCAnICtcbiAgICAgICAgJ3NldERlZmF1bHRDYW1lcmEgc2V0RGVzdGluYXRpb24gc2V0RGV0YWlsTWFwQmxlbmRQYXJzIHNldERpciBzZXREaXJlY3Rpb24gc2V0RHJhd0ljb24gJyArXG4gICAgICAgICdzZXREcm9wSW50ZXJ2YWwgc2V0RWRpdG9yTW9kZSBzZXRFZGl0b3JPYmplY3RTY29wZSBzZXRFZmZlY3RDb25kaXRpb24gc2V0RmFjZSBzZXRGYWNlQW5pbWF0aW9uICcgK1xuICAgICAgICAnc2V0RmF0aWd1ZSBzZXRGbGFnT3duZXIgc2V0RmxhZ1NpZGUgc2V0RmxhZ1RleHR1cmUgc2V0Rm9nIHNldEZvcm1hdGlvbiBzZXRGb3JtYXRpb25UYXNrICcgK1xuICAgICAgICAnc2V0Rm9ybURpciBzZXRGcmllbmQgc2V0RnJvbUVkaXRvciBzZXRGU01WYXJpYWJsZSBzZXRGdWVsIHNldEZ1ZWxDYXJnbyBzZXRHcm91cEljb24gJyArXG4gICAgICAgICdzZXRHcm91cEljb25QYXJhbXMgc2V0R3JvdXBJY29uc1NlbGVjdGFibGUgc2V0R3JvdXBJY29uc1Zpc2libGUgc2V0R3JvdXBJZCBzZXRHcm91cElkR2xvYmFsICcgK1xuICAgICAgICAnc2V0R3JvdXBPd25lciBzZXRHdXN0cyBzZXRIaWRlQmVoaW5kIHNldEhpdCBzZXRIaXRJbmRleCBzZXRIaXRQb2ludERhbWFnZSBzZXRIb3Jpem9uUGFyYWxsYXhDb2VmICcgK1xuICAgICAgICAnc2V0SFVETW92ZW1lbnRMZXZlbHMgc2V0SWRlbnRpdHkgc2V0SW1wb3J0YW5jZSBzZXRMZWFkZXIgc2V0TGlnaHRBbWJpZW50IHNldExpZ2h0QXR0ZW51YXRpb24gJyArXG4gICAgICAgICdzZXRMaWdodEJyaWdodG5lc3Mgc2V0TGlnaHRDb2xvciBzZXRMaWdodERheUxpZ2h0IHNldExpZ2h0RmxhcmVNYXhEaXN0YW5jZSBzZXRMaWdodEZsYXJlU2l6ZSAnICtcbiAgICAgICAgJ3NldExpZ2h0SW50ZW5zaXR5IHNldExpZ2h0bmluZ3Mgc2V0TGlnaHRVc2VGbGFyZSBzZXRMb2NhbFdpbmRQYXJhbXMgc2V0TWFnYXppbmVUdXJyZXRBbW1vICcgK1xuICAgICAgICAnc2V0TWFya2VyQWxwaGEgc2V0TWFya2VyQWxwaGFMb2NhbCBzZXRNYXJrZXJCcnVzaCBzZXRNYXJrZXJCcnVzaExvY2FsIHNldE1hcmtlckNvbG9yICcgK1xuICAgICAgICAnc2V0TWFya2VyQ29sb3JMb2NhbCBzZXRNYXJrZXJEaXIgc2V0TWFya2VyRGlyTG9jYWwgc2V0TWFya2VyUG9zIHNldE1hcmtlclBvc0xvY2FsIHNldE1hcmtlclNoYXBlICcgK1xuICAgICAgICAnc2V0TWFya2VyU2hhcGVMb2NhbCBzZXRNYXJrZXJTaXplIHNldE1hcmtlclNpemVMb2NhbCBzZXRNYXJrZXJUZXh0IHNldE1hcmtlclRleHRMb2NhbCAnICtcbiAgICAgICAgJ3NldE1hcmtlclR5cGUgc2V0TWFya2VyVHlwZUxvY2FsIHNldE1hc3Mgc2V0TWltaWMgc2V0TW91c2VQb3NpdGlvbiBzZXRNdXNpY0VmZmVjdCAnICtcbiAgICAgICAgJ3NldE11c2ljRXZlbnRIYW5kbGVyIHNldE5hbWUgc2V0TmFtZVNvdW5kIHNldE9iamVjdEFyZ3VtZW50cyBzZXRPYmplY3RNYXRlcmlhbCAnICtcbiAgICAgICAgJ3NldE9iamVjdE1hdGVyaWFsR2xvYmFsIHNldE9iamVjdFByb3h5IHNldE9iamVjdFRleHR1cmUgc2V0T2JqZWN0VGV4dHVyZUdsb2JhbCAnICtcbiAgICAgICAgJ3NldE9iamVjdFZpZXdEaXN0YW5jZSBzZXRPdmVyY2FzdCBzZXRPd25lciBzZXRPeHlnZW5SZW1haW5pbmcgc2V0UGFydGljbGVDaXJjbGUgc2V0UGFydGljbGVDbGFzcyAnICtcbiAgICAgICAgJ3NldFBhcnRpY2xlRmlyZSBzZXRQYXJ0aWNsZVBhcmFtcyBzZXRQYXJ0aWNsZVJhbmRvbSBzZXRQaWxvdENhbWVyYURpcmVjdGlvbiAnICtcbiAgICAgICAgJ3NldFBpbG90Q2FtZXJhUm90YXRpb24gc2V0UGlsb3RDYW1lcmFUYXJnZXQgc2V0UGlsb3RMaWdodCBzZXRQaVBFZmZlY3Qgc2V0UGl0Y2ggc2V0UGxheWFibGUgJyArXG4gICAgICAgICdzZXRQbGF5ZXJSZXNwYXduVGltZSBzZXRQb3Mgc2V0UG9zQVNMIHNldFBvc0FTTDIgc2V0UG9zQVNMVyBzZXRQb3NBVEwgc2V0UG9zaXRpb24gc2V0UG9zV29ybGQgJyArXG4gICAgICAgICdzZXRSYWRpb01zZyBzZXRSYWluIHNldFJhaW5ib3cgc2V0UmFuZG9tTGlwIHNldFJhbmsgc2V0UmVjdGFuZ3VsYXIgc2V0UmVwYWlyQ2FyZ28gJyArXG4gICAgICAgICdzZXRTaGFkb3dEaXN0YW5jZSBzZXRTaG90UGFyZW50cyBzZXRTaWRlIHNldFNpbXBsZVRhc2tBbHdheXNWaXNpYmxlIHNldFNpbXBsZVRhc2tDdXN0b21EYXRhICcgK1xuICAgICAgICAnc2V0U2ltcGxlVGFza0Rlc2NyaXB0aW9uIHNldFNpbXBsZVRhc2tEZXN0aW5hdGlvbiBzZXRTaW1wbGVUYXNrVGFyZ2V0IHNldFNpbXBsZVRhc2tUeXBlICcgK1xuICAgICAgICAnc2V0U2ltdWxXZWF0aGVyTGF5ZXJzIHNldFNpemUgc2V0U2tpbGwgc2V0U2xpbmdMb2FkIHNldFNvdW5kRWZmZWN0IHNldFNwZWFrZXIgc2V0U3BlZWNoICcgK1xuICAgICAgICAnc2V0U3BlZWRNb2RlIHNldFN0YW1pbmEgc2V0U3RhbWluYVNjaGVtZSBzZXRTdGF0VmFsdWUgc2V0U3VwcHJlc3Npb24gc2V0U3lzdGVtT2ZVbml0cyAnICtcbiAgICAgICAgJ3NldFRhcmdldEFnZSBzZXRUYXNrUmVzdWx0IHNldFRhc2tTdGF0ZSBzZXRUZXJyYWluR3JpZCBzZXRUZXh0IHNldFRpbWVNdWx0aXBsaWVyIHNldFRpdGxlRWZmZWN0ICcgK1xuICAgICAgICAnc2V0VHJpZ2dlckFjdGl2YXRpb24gc2V0VHJpZ2dlckFyZWEgc2V0VHJpZ2dlclN0YXRlbWVudHMgc2V0VHJpZ2dlclRleHQgc2V0VHJpZ2dlclRpbWVvdXQgJyArXG4gICAgICAgICdzZXRUcmlnZ2VyVHlwZSBzZXRUeXBlIHNldFVuY29uc2Npb3VzIHNldFVuaXRBYmlsaXR5IHNldFVuaXRMb2Fkb3V0IHNldFVuaXRQb3Mgc2V0VW5pdFBvc1dlYWsgJyArXG4gICAgICAgICdzZXRVbml0UmFuayBzZXRVbml0UmVjb2lsQ29lZmZpY2llbnQgc2V0VW5pdFRyYWl0IHNldFVubG9hZEluQ29tYmF0IHNldFVzZXJBY3Rpb25UZXh0IHNldFZhcmlhYmxlICcgK1xuICAgICAgICAnc2V0VmVjdG9yRGlyIHNldFZlY3RvckRpckFuZFVwIHNldFZlY3RvclVwIHNldFZlaGljbGVBbW1vIHNldFZlaGljbGVBbW1vRGVmIHNldFZlaGljbGVBcm1vciAnICtcbiAgICAgICAgJ3NldFZlaGljbGVDYXJnbyBzZXRWZWhpY2xlSWQgc2V0VmVoaWNsZUxvY2sgc2V0VmVoaWNsZVBvc2l0aW9uIHNldFZlaGljbGVUaVBhcnMgc2V0VmVoaWNsZVZhck5hbWUgJyArXG4gICAgICAgICdzZXRWZWxvY2l0eSBzZXRWZWxvY2l0eVRyYW5zZm9ybWF0aW9uIHNldFZpZXdEaXN0YW5jZSBzZXRWaXNpYmxlSWZUcmVlQ29sbGFwc2VkIHNldFdhdmVzICcgK1xuICAgICAgICAnc2V0V2F5cG9pbnRCZWhhdmlvdXIgc2V0V2F5cG9pbnRDb21iYXRNb2RlIHNldFdheXBvaW50Q29tcGxldGlvblJhZGl1cyBzZXRXYXlwb2ludERlc2NyaXB0aW9uICcgK1xuICAgICAgICAnc2V0V2F5cG9pbnRGb3JjZUJlaGF2aW91ciBzZXRXYXlwb2ludEZvcm1hdGlvbiBzZXRXYXlwb2ludEhvdXNlUG9zaXRpb24gc2V0V2F5cG9pbnRMb2l0ZXJSYWRpdXMgJyArXG4gICAgICAgICdzZXRXYXlwb2ludExvaXRlclR5cGUgc2V0V2F5cG9pbnROYW1lIHNldFdheXBvaW50UG9zaXRpb24gc2V0V2F5cG9pbnRTY3JpcHQgc2V0V2F5cG9pbnRTcGVlZCAnICtcbiAgICAgICAgJ3NldFdheXBvaW50U3RhdGVtZW50cyBzZXRXYXlwb2ludFRpbWVvdXQgc2V0V2F5cG9pbnRUeXBlIHNldFdheXBvaW50VmlzaWJsZSAnICtcbiAgICAgICAgJ3NldFdlYXBvblJlbG9hZGluZ1RpbWUgc2V0V2luZCBzZXRXaW5kRGlyIHNldFdpbmRGb3JjZSBzZXRXaW5kU3RyIHNldFdQUG9zIHNob3czREljb25zIHNob3dDaGF0ICcgK1xuICAgICAgICAnc2hvd0NpbmVtYUJvcmRlciBzaG93Q29tbWFuZGluZ01lbnUgc2hvd0NvbXBhc3Mgc2hvd0N1cmF0b3JDb21wYXNzIHNob3dHUFMgc2hvd0hVRCBzaG93TGVnZW5kICcgK1xuICAgICAgICAnc2hvd01hcCBzaG93bkFydGlsbGVyeUNvbXB1dGVyIHNob3duQ2hhdCBzaG93bkNvbXBhc3Mgc2hvd25DdXJhdG9yQ29tcGFzcyBzaG93TmV3RWRpdG9yT2JqZWN0ICcgK1xuICAgICAgICAnc2hvd25HUFMgc2hvd25IVUQgc2hvd25NYXAgc2hvd25QYWQgc2hvd25SYWRpbyBzaG93blNjb3JldGFibGUgc2hvd25VQVZGZWVkIHNob3duV2FycmFudCAnICtcbiAgICAgICAgJ3Nob3duV2F0Y2ggc2hvd1BhZCBzaG93UmFkaW8gc2hvd1Njb3JldGFibGUgc2hvd1N1YnRpdGxlcyBzaG93VUFWRmVlZCBzaG93V2FycmFudCBzaG93V2F0Y2ggJyArXG4gICAgICAgICdzaG93V2F5cG9pbnQgc2hvd1dheXBvaW50cyBzaWRlIHNpZGVBbWJpZW50TGlmZSBzaWRlQ2hhdCBzaWRlRW1wdHkgc2lkZUVuZW15IHNpZGVGcmllbmRseSAnICtcbiAgICAgICAgJ3NpZGVMb2dpYyBzaWRlUmFkaW8gc2lkZVVua25vd24gc2ltcGxlVGFza3Mgc2ltdWxhdGlvbkVuYWJsZWQgc2ltdWxDbG91ZERlbnNpdHkgJyArXG4gICAgICAgICdzaW11bENsb3VkT2NjbHVzaW9uIHNpbXVsSW5DbG91ZHMgc2ltdWxXZWF0aGVyU3luYyBzaW4gc2l6ZSBzaXplT2Ygc2tpbGwgc2tpbGxGaW5hbCBza2lwVGltZSAnICtcbiAgICAgICAgJ3NsZWVwIHNsaWRlclBvc2l0aW9uIHNsaWRlclJhbmdlIHNsaWRlclNldFBvc2l0aW9uIHNsaWRlclNldFJhbmdlIHNsaWRlclNldFNwZWVkIHNsaWRlclNwZWVkICcgK1xuICAgICAgICAnc2xpbmdMb2FkQXNzaXN0YW50U2hvd24gc29sZGllck1hZ2F6aW5lcyBzb21lQW1tbyBzb3J0IHNvdW5kVm9sdW1lIHNwYXduIHNwZWFrZXIgc3BlZWQgc3BlZWRNb2RlICcgK1xuICAgICAgICAnc3BsaXRTdHJpbmcgc3FydCBzcXVhZFBhcmFtcyBzdGFuY2Ugc3RhcnRMb2FkaW5nU2NyZWVuIHN0ZXAgc3RvcCBzdG9wRW5naW5lUlREIHN0b3BwZWQgc3RyICcgK1xuICAgICAgICAnc3VuT3JNb29uIHN1cHBvcnRJbmZvIHN1cHByZXNzRm9yIHN1cmZhY2VJc1dhdGVyIHN1cmZhY2VOb3JtYWwgc3VyZmFjZVR5cGUgc3dpbUluRGVwdGggJyArXG4gICAgICAgICdzd2l0Y2hhYmxlVW5pdHMgc3dpdGNoQWN0aW9uIHN3aXRjaENhbWVyYSBzd2l0Y2hHZXN0dXJlIHN3aXRjaExpZ2h0IHN3aXRjaE1vdmUgJyArXG4gICAgICAgICdzeW5jaHJvbml6ZWRPYmplY3RzIHN5bmNocm9uaXplZFRyaWdnZXJzIHN5bmNocm9uaXplZFdheXBvaW50cyBzeW5jaHJvbml6ZU9iamVjdHNBZGQgJyArXG4gICAgICAgICdzeW5jaHJvbml6ZU9iamVjdHNSZW1vdmUgc3luY2hyb25pemVUcmlnZ2VyIHN5bmNocm9uaXplV2F5cG9pbnQgc3lzdGVtQ2hhdCBzeXN0ZW1PZlVuaXRzIHRhbiAnICtcbiAgICAgICAgJ3RhcmdldEtub3dsZWRnZSB0YXJnZXRzQWdncmVnYXRlIHRhcmdldHNRdWVyeSB0YXNrQWx3YXlzVmlzaWJsZSB0YXNrQ2hpbGRyZW4gdGFza0NvbXBsZXRlZCAnICtcbiAgICAgICAgJ3Rhc2tDdXN0b21EYXRhIHRhc2tEZXNjcmlwdGlvbiB0YXNrRGVzdGluYXRpb24gdGFza0hpbnQgdGFza01hcmtlck9mZnNldCB0YXNrTnVsbCB0YXNrUGFyZW50ICcgK1xuICAgICAgICAndGFza1Jlc3VsdCB0YXNrU3RhdGUgdGFza1R5cGUgdGVhbU1lbWJlciB0ZWFtTWVtYmVyTnVsbCB0ZWFtTmFtZSB0ZWFtcyB0ZWFtU3dpdGNoICcgK1xuICAgICAgICAndGVhbVN3aXRjaEVuYWJsZWQgdGVhbVR5cGUgdGVybWluYXRlIHRlcnJhaW5JbnRlcnNlY3QgdGVycmFpbkludGVyc2VjdEFTTCB0ZXh0IHRleHRMb2cgJyArXG4gICAgICAgICd0ZXh0TG9nRm9ybWF0IHRnIHRpbWUgdGltZU11bHRpcGxpZXIgdGl0bGVDdXQgdGl0bGVGYWRlT3V0IHRpdGxlT2JqIHRpdGxlUnNjIHRpdGxlVGV4dCB0b0FycmF5ICcgK1xuICAgICAgICAndG9GaXhlZCB0b0xvd2VyIHRvU3RyaW5nIHRvVXBwZXIgdHJpZ2dlckFjdGl2YXRlZCB0cmlnZ2VyQWN0aXZhdGlvbiB0cmlnZ2VyQXJlYSAnICtcbiAgICAgICAgJ3RyaWdnZXJBdHRhY2hlZFZlaGljbGUgdHJpZ2dlckF0dGFjaE9iamVjdCB0cmlnZ2VyQXR0YWNoVmVoaWNsZSB0cmlnZ2VyU3RhdGVtZW50cyB0cmlnZ2VyVGV4dCAnICtcbiAgICAgICAgJ3RyaWdnZXJUaW1lb3V0IHRyaWdnZXJUaW1lb3V0Q3VycmVudCB0cmlnZ2VyVHlwZSB0dXJyZXRMb2NhbCB0dXJyZXRPd25lciB0dXJyZXRVbml0IHR2QWRkIHR2Q2xlYXIgJyArXG4gICAgICAgICd0dkNvbGxhcHNlIHR2Q291bnQgdHZDdXJTZWwgdHZEYXRhIHR2RGVsZXRlIHR2RXhwYW5kIHR2UGljdHVyZSB0dlNldEN1clNlbCB0dlNldERhdGEgdHZTZXRQaWN0dXJlICcgK1xuICAgICAgICAndHZTZXRQaWN0dXJlQ29sb3IgdHZTZXRQaWN0dXJlQ29sb3JEaXNhYmxlZCB0dlNldFBpY3R1cmVDb2xvclNlbGVjdGVkIHR2U2V0UGljdHVyZVJpZ2h0ICcgK1xuICAgICAgICAndHZTZXRQaWN0dXJlUmlnaHRDb2xvciB0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWQgdHZTZXRQaWN0dXJlUmlnaHRDb2xvclNlbGVjdGVkIHR2U2V0VGV4dCAnICtcbiAgICAgICAgJ3R2U2V0VG9vbHRpcCB0dlNldFZhbHVlIHR2U29ydCB0dlNvcnRCeVZhbHVlIHR2VGV4dCB0dlRvb2x0aXAgdHZWYWx1ZSB0eXBlIHR5cGVOYW1lIHR5cGVPZiAnICtcbiAgICAgICAgJ1VBVkNvbnRyb2wgdWlOYW1lc3BhY2UgdWlTbGVlcCB1bmFzc2lnbkN1cmF0b3IgdW5hc3NpZ25JdGVtIHVuYXNzaWduVGVhbSB1bmFzc2lnblZlaGljbGUgJyArXG4gICAgICAgICd1bmRlcndhdGVyIHVuaWZvcm0gdW5pZm9ybUNvbnRhaW5lciB1bmlmb3JtSXRlbXMgdW5pZm9ybU1hZ2F6aW5lcyB1bml0QWRkb25zIHVuaXRBaW1Qb3NpdGlvbiAnICtcbiAgICAgICAgJ3VuaXRBaW1Qb3NpdGlvblZpc3VhbCB1bml0QmFja3BhY2sgdW5pdElzVUFWIHVuaXRQb3MgdW5pdFJlYWR5IHVuaXRSZWNvaWxDb2VmZmljaWVudCB1bml0cyAnICtcbiAgICAgICAgJ3VuaXRzQmVsb3dIZWlnaHQgdW5saW5rSXRlbSB1bmxvY2tBY2hpZXZlbWVudCB1bnJlZ2lzdGVyVGFzayB1cGRhdGVEcmF3SWNvbiB1cGRhdGVNZW51SXRlbSAnICtcbiAgICAgICAgJ3VwZGF0ZU9iamVjdFRyZWUgdXNlQUlTdGVlcmluZ0NvbXBvbmVudCB1c2VBdWRpb1RpbWVGb3JNb3ZlcyB2ZWN0b3JBZGQgdmVjdG9yQ29zICcgK1xuICAgICAgICAndmVjdG9yQ3Jvc3NQcm9kdWN0IHZlY3RvckRpZmYgdmVjdG9yRGlyIHZlY3RvckRpclZpc3VhbCB2ZWN0b3JEaXN0YW5jZSB2ZWN0b3JEaXN0YW5jZVNxciAnICtcbiAgICAgICAgJ3ZlY3RvckRvdFByb2R1Y3QgdmVjdG9yRnJvbVRvIHZlY3Rvck1hZ25pdHVkZSB2ZWN0b3JNYWduaXR1ZGVTcXIgdmVjdG9yTXVsdGlwbHkgdmVjdG9yTm9ybWFsaXplZCAnICtcbiAgICAgICAgJ3ZlY3RvclVwIHZlY3RvclVwVmlzdWFsIHZlaGljbGUgdmVoaWNsZUNhcmdvRW5hYmxlZCB2ZWhpY2xlQ2hhdCB2ZWhpY2xlUmFkaW8gdmVoaWNsZXMgJyArXG4gICAgICAgICd2ZWhpY2xlVmFyTmFtZSB2ZWxvY2l0eSB2ZWxvY2l0eU1vZGVsU3BhY2UgdmVyaWZ5U2lnbmF0dXJlIHZlc3QgdmVzdENvbnRhaW5lciB2ZXN0SXRlbXMgJyArXG4gICAgICAgICd2ZXN0TWFnYXppbmVzIHZpZXdEaXN0YW5jZSB2aXNpYmxlQ29tcGFzcyB2aXNpYmxlR1BTIHZpc2libGVNYXAgdmlzaWJsZVBvc2l0aW9uICcgK1xuICAgICAgICAndmlzaWJsZVBvc2l0aW9uQVNMIHZpc2libGVTY29yZXRhYmxlIHZpc2libGVXYXRjaCB3YXZlcyB3YXlwb2ludEF0dGFjaGVkT2JqZWN0ICcgK1xuICAgICAgICAnd2F5cG9pbnRBdHRhY2hlZFZlaGljbGUgd2F5cG9pbnRBdHRhY2hPYmplY3Qgd2F5cG9pbnRBdHRhY2hWZWhpY2xlIHdheXBvaW50QmVoYXZpb3VyICcgK1xuICAgICAgICAnd2F5cG9pbnRDb21iYXRNb2RlIHdheXBvaW50Q29tcGxldGlvblJhZGl1cyB3YXlwb2ludERlc2NyaXB0aW9uIHdheXBvaW50Rm9yY2VCZWhhdmlvdXIgJyArXG4gICAgICAgICd3YXlwb2ludEZvcm1hdGlvbiB3YXlwb2ludEhvdXNlUG9zaXRpb24gd2F5cG9pbnRMb2l0ZXJSYWRpdXMgd2F5cG9pbnRMb2l0ZXJUeXBlIHdheXBvaW50TmFtZSAnICtcbiAgICAgICAgJ3dheXBvaW50UG9zaXRpb24gd2F5cG9pbnRzIHdheXBvaW50U2NyaXB0IHdheXBvaW50c0VuYWJsZWRVQVYgd2F5cG9pbnRTaG93IHdheXBvaW50U3BlZWQgJyArXG4gICAgICAgICd3YXlwb2ludFN0YXRlbWVudHMgd2F5cG9pbnRUaW1lb3V0IHdheXBvaW50VGltZW91dEN1cnJlbnQgd2F5cG9pbnRUeXBlIHdheXBvaW50VmlzaWJsZSAnICtcbiAgICAgICAgJ3dlYXBvbkFjY2Vzc29yaWVzIHdlYXBvbkFjY2Vzc29yaWVzQ2FyZ28gd2VhcG9uQ2FyZ28gd2VhcG9uRGlyZWN0aW9uIHdlYXBvbkluZXJ0aWEgd2VhcG9uTG93ZXJlZCAnICtcbiAgICAgICAgJ3dlYXBvbnMgd2VhcG9uc0l0ZW1zIHdlYXBvbnNJdGVtc0NhcmdvIHdlYXBvblN0YXRlIHdlYXBvbnNUdXJyZXQgd2VpZ2h0UlREIHdlc3QgV0ZTaWRlVGV4dCB3aW5kJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlIG5pbCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBTVFJJTkdTLFxuICAgICAgQ1BQLnByZXByb2Nlc3NvclxuICAgIF0sXG4gICAgaWxsZWdhbDogLyMvXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKCctLScsICckJyk7XG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvWzw+e30qI10vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6XG4gICAgICAgICAgJ2JlZ2luIGVuZCBzdGFydCBjb21taXQgcm9sbGJhY2sgc2F2ZXBvaW50IGxvY2sgYWx0ZXIgY3JlYXRlIGRyb3AgcmVuYW1lIGNhbGwgJyArXG4gICAgICAgICAgJ2RlbGV0ZSBkbyBoYW5kbGVyIGluc2VydCBsb2FkIHJlcGxhY2Ugc2VsZWN0IHRydW5jYXRlIHVwZGF0ZSBzZXQgc2hvdyBwcmFnbWEgZ3JhbnQgJyArXG4gICAgICAgICAgJ21lcmdlIGRlc2NyaWJlIHVzZSBleHBsYWluIGhlbHAgZGVjbGFyZSBwcmVwYXJlIGV4ZWN1dGUgZGVhbGxvY2F0ZSByZWxlYXNlICcgK1xuICAgICAgICAgICd1bmxvY2sgcHVyZ2UgcmVzZXQgY2hhbmdlIHN0b3AgYW5hbHl6ZSBjYWNoZSBmbHVzaCBvcHRpbWl6ZSByZXBhaXIga2lsbCAnICtcbiAgICAgICAgICAnaW5zdGFsbCB1bmluc3RhbGwgY2hlY2tzdW0gcmVzdG9yZSBjaGVjayBiYWNrdXAgcmV2b2tlIGNvbW1lbnQnLFxuICAgICAgICBlbmQ6IC87LywgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgIGxleGVtZXM6IC9bXFx3XFwuXSsvLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgIGtleXdvcmQ6XG4gICAgICAgICAgICAnYWJvcnQgYWJzIGFic29sdXRlIGFjYyBhY2NlIGFjY2VwIGFjY2VwdCBhY2Nlc3MgYWNjZXNzZWQgYWNjZXNzaWJsZSBhY2NvdW50IGFjb3MgYWN0aW9uIGFjdGl2YXRlIGFkZCAnICtcbiAgICAgICAgICAgICdhZGR0aW1lIGFkbWluIGFkbWluaXN0ZXIgYWR2YW5jZWQgYWR2aXNlIGFlc19kZWNyeXB0IGFlc19lbmNyeXB0IGFmdGVyIGFnZW50IGFnZ3JlZ2F0ZSBhbGkgYWxpYSBhbGlhcyAnICtcbiAgICAgICAgICAgICdhbGxvY2F0ZSBhbGxvdyBhbHRlciBhbHdheXMgYW5hbHl6ZSBhbmNpbGxhcnkgYW5kIGFueSBhbnlkYXRhIGFueWRhdGFzZXQgYW55c2NoZW1hIGFueXR5cGUgYXBwbHkgJyArXG4gICAgICAgICAgICAnYXJjaGl2ZSBhcmNoaXZlZCBhcmNoaXZlbG9nIGFyZSBhcyBhc2MgYXNjaWkgYXNpbiBhc3NlbWJseSBhc3NlcnRpb24gYXNzb2NpYXRlIGFzeW5jaHJvbm91cyBhdCBhdGFuICcgK1xuICAgICAgICAgICAgJ2F0bjIgYXR0ciBhdHRyaSBhdHRyaWIgYXR0cmlidSBhdHRyaWJ1dCBhdHRyaWJ1dGUgYXR0cmlidXRlcyBhdWRpdCBhdXRoZW50aWNhdGVkIGF1dGhlbnRpY2F0aW9uIGF1dGhpZCAnICtcbiAgICAgICAgICAgICdhdXRob3JzIGF1dG8gYXV0b2FsbG9jYXRlIGF1dG9kYmxpbmsgYXV0b2V4dGVuZCBhdXRvbWF0aWMgYXZhaWxhYmlsaXR5IGF2ZyBiYWNrdXAgYmFkZmlsZSBiYXNpY2ZpbGUgJyArXG4gICAgICAgICAgICAnYmVmb3JlIGJlZ2luIGJlZ2lubmluZyBiZW5jaG1hcmsgYmV0d2VlbiBiZmlsZSBiZmlsZV9iYXNlIGJpZyBiaWdmaWxlIGJpbiBiaW5hcnlfZG91YmxlIGJpbmFyeV9mbG9hdCAnICtcbiAgICAgICAgICAgICdiaW5sb2cgYml0X2FuZCBiaXRfY291bnQgYml0X2xlbmd0aCBiaXRfb3IgYml0X3hvciBiaXRtYXAgYmxvYl9iYXNlIGJsb2NrIGJsb2Nrc2l6ZSBib2R5IGJvdGggYm91bmQgJyArXG4gICAgICAgICAgICAnYnVmZmVyX2NhY2hlIGJ1ZmZlcl9wb29sIGJ1aWxkIGJ1bGsgYnkgYnl0ZSBieXRlb3JkZXJtYXJrIGJ5dGVzIGNhY2hlIGNhY2hpbmcgY2FsbCBjYWxsaW5nIGNhbmNlbCAnICtcbiAgICAgICAgICAgICdjYXBhY2l0eSBjYXNjYWRlIGNhc2NhZGVkIGNhc2UgY2FzdCBjYXRhbG9nIGNhdGVnb3J5IGNlaWwgY2VpbGluZyBjaGFpbiBjaGFuZ2UgY2hhbmdlZCBjaGFyX2Jhc2UgJyArXG4gICAgICAgICAgICAnY2hhcl9sZW5ndGggY2hhcmFjdGVyX2xlbmd0aCBjaGFyYWN0ZXJzIGNoYXJhY3RlcnNldCBjaGFyaW5kZXggY2hhcnNldCBjaGFyc2V0Zm9ybSBjaGFyc2V0aWQgY2hlY2sgJyArXG4gICAgICAgICAgICAnY2hlY2tzdW0gY2hlY2tzdW1fYWdnIGNoaWxkIGNob29zZSBjaHIgY2h1bmsgY2xhc3MgY2xlYW51cCBjbGVhciBjbGllbnQgY2xvYiBjbG9iX2Jhc2UgY2xvbmUgY2xvc2UgJyArXG4gICAgICAgICAgICAnY2x1c3Rlcl9pZCBjbHVzdGVyX3Byb2JhYmlsaXR5IGNsdXN0ZXJfc2V0IGNsdXN0ZXJpbmcgY29hbGVzY2UgY29lcmNpYmlsaXR5IGNvbCBjb2xsYXRlIGNvbGxhdGlvbiAnICtcbiAgICAgICAgICAgICdjb2xsZWN0IGNvbHUgY29sdW0gY29sdW1uIGNvbHVtbl92YWx1ZSBjb2x1bW5zIGNvbHVtbnNfdXBkYXRlZCBjb21tZW50IGNvbW1pdCBjb21wYWN0IGNvbXBhdGliaWxpdHkgJyArXG4gICAgICAgICAgICAnY29tcGlsZWQgY29tcGxldGUgY29tcG9zaXRlX2xpbWl0IGNvbXBvdW5kIGNvbXByZXNzIGNvbXB1dGUgY29uY2F0IGNvbmNhdF93cyBjb25jdXJyZW50IGNvbmZpcm0gY29ubiAnICtcbiAgICAgICAgICAgICdjb25uZWMgY29ubmVjdCBjb25uZWN0X2J5X2lzY3ljbGUgY29ubmVjdF9ieV9pc2xlYWYgY29ubmVjdF9ieV9yb290IGNvbm5lY3RfdGltZSBjb25uZWN0aW9uICcgK1xuICAgICAgICAgICAgJ2NvbnNpZGVyIGNvbnNpc3RlbnQgY29uc3RhbnQgY29uc3RyYWludCBjb25zdHJhaW50cyBjb25zdHJ1Y3RvciBjb250YWluZXIgY29udGVudCBjb250ZW50cyBjb250ZXh0ICcgK1xuICAgICAgICAgICAgJ2NvbnRyaWJ1dG9ycyBjb250cm9sZmlsZSBjb252IGNvbnZlcnQgY29udmVydF90eiBjb3JyIGNvcnJfayBjb3JyX3MgY29ycmVzcG9uZGluZyBjb3JydXB0aW9uIGNvcyBjb3N0ICcgK1xuICAgICAgICAgICAgJ2NvdW50IGNvdW50X2JpZyBjb3VudGVkIGNvdmFyX3BvcCBjb3Zhcl9zYW1wIGNwdV9wZXJfY2FsbCBjcHVfcGVyX3Nlc3Npb24gY3JjMzIgY3JlYXRlIGNyZWF0aW9uICcgK1xuICAgICAgICAgICAgJ2NyaXRpY2FsIGNyb3NzIGN1YmUgY3VtZV9kaXN0IGN1cmRhdGUgY3VycmVudCBjdXJyZW50X2RhdGUgY3VycmVudF90aW1lIGN1cnJlbnRfdGltZXN0YW1wIGN1cnJlbnRfdXNlciAnICtcbiAgICAgICAgICAgICdjdXJzb3IgY3VydGltZSBjdXN0b21kYXR1bSBjeWNsZSBkYXRhIGRhdGFiYXNlIGRhdGFiYXNlcyBkYXRhZmlsZSBkYXRhZmlsZXMgZGF0YWxlbmd0aCBkYXRlX2FkZCAnICtcbiAgICAgICAgICAgICdkYXRlX2NhY2hlIGRhdGVfZm9ybWF0IGRhdGVfc3ViIGRhdGVhZGQgZGF0ZWRpZmYgZGF0ZWZyb21wYXJ0cyBkYXRlbmFtZSBkYXRlcGFydCBkYXRldGltZTJmcm9tcGFydHMgJyArXG4gICAgICAgICAgICAnZGF5IGRheV90b19zZWNvbmQgZGF5bmFtZSBkYXlvZm1vbnRoIGRheW9md2VlayBkYXlvZnllYXIgZGF5cyBkYl9yb2xlX2NoYW5nZSBkYnRpbWV6b25lIGRkbCBkZWFsbG9jYXRlICcgK1xuICAgICAgICAgICAgJ2RlY2xhcmUgZGVjb2RlIGRlY29tcG9zZSBkZWNyZW1lbnQgZGVjcnlwdCBkZWR1cGxpY2F0ZSBkZWYgZGVmYSBkZWZhdSBkZWZhdWwgZGVmYXVsdCBkZWZhdWx0cyAnICtcbiAgICAgICAgICAgICdkZWZlcnJlZCBkZWZpIGRlZmluIGRlZmluZSBkZWdyZWVzIGRlbGF5ZWQgZGVsZWdhdGUgZGVsZXRlIGRlbGV0ZV9hbGwgZGVsaW1pdGVkIGRlbWFuZCBkZW5zZV9yYW5rICcgK1xuICAgICAgICAgICAgJ2RlcHRoIGRlcXVldWUgZGVzX2RlY3J5cHQgZGVzX2VuY3J5cHQgZGVzX2tleV9maWxlIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzY3JpcHRvciAnICtcbiAgICAgICAgICAgICdkZXRlcm1pbmlzdGljIGRpYWdub3N0aWNzIGRpZmZlcmVuY2UgZGltZW5zaW9uIGRpcmVjdF9sb2FkIGRpcmVjdG9yeSBkaXNhYmxlIGRpc2FibGVfYWxsICcgK1xuICAgICAgICAgICAgJ2Rpc2FsbG93IGRpc2Fzc29jaWF0ZSBkaXNjYXJkZmlsZSBkaXNjb25uZWN0IGRpc2tncm91cCBkaXN0aW5jdCBkaXN0aW5jdHJvdyBkaXN0cmlidXRlIGRpc3RyaWJ1dGVkIGRpdiAnICtcbiAgICAgICAgICAgICdkbyBkb2N1bWVudCBkb21haW4gZG90bmV0IGRvdWJsZSBkb3duZ3JhZGUgZHJvcCBkdW1wZmlsZSBkdXBsaWNhdGUgZHVyYXRpb24gZWFjaCBlZGl0aW9uIGVkaXRpb25hYmxlICcgK1xuICAgICAgICAgICAgJ2VkaXRpb25zIGVsZW1lbnQgZWxsaXBzaXMgZWxzZSBlbHNpZiBlbHQgZW1wdHkgZW5hYmxlIGVuYWJsZV9hbGwgZW5jbG9zZWQgZW5jb2RlIGVuY29kaW5nIGVuY3J5cHQgJyArXG4gICAgICAgICAgICAnZW5kIGVuZC1leGVjIGVuZGlhbiBlbmZvcmNlZCBlbmdpbmUgZW5naW5lcyBlbnF1ZXVlIGVudGVycHJpc2UgZW50aXR5ZXNjYXBpbmcgZW9tb250aCBlcnJvciBlcnJvcnMgJyArXG4gICAgICAgICAgICAnZXNjYXBlZCBldmFsbmFtZSBldmFsdWF0ZSBldmVudCBldmVudGRhdGEgZXZlbnRzIGV4Y2VwdCBleGNlcHRpb24gZXhjZXB0aW9ucyBleGNoYW5nZSBleGNsdWRlIGV4Y2x1ZGluZyAnICtcbiAgICAgICAgICAgICdleGVjdSBleGVjdXQgZXhlY3V0ZSBleGVtcHQgZXhpc3RzIGV4aXQgZXhwIGV4cGlyZSBleHBsYWluIGV4cG9ydCBleHBvcnRfc2V0IGV4dGVuZGVkIGV4dGVudCBleHRlcm5hbCAnICtcbiAgICAgICAgICAgICdleHRlcm5hbF8xIGV4dGVybmFsXzIgZXh0ZXJuYWxseSBleHRyYWN0IGZhaWxlZCBmYWlsZWRfbG9naW5fYXR0ZW1wdHMgZmFpbG92ZXIgZmFpbHVyZSBmYXIgZmFzdCAnICtcbiAgICAgICAgICAgICdmZWF0dXJlX3NldCBmZWF0dXJlX3ZhbHVlIGZldGNoIGZpZWxkIGZpZWxkcyBmaWxlIGZpbGVfbmFtZV9jb252ZXJ0IGZpbGVzeXN0ZW1fbGlrZV9sb2dnaW5nIGZpbmFsICcgK1xuICAgICAgICAgICAgJ2ZpbmlzaCBmaXJzdCBmaXJzdF92YWx1ZSBmaXhlZCBmbGFzaF9jYWNoZSBmbGFzaGJhY2sgZmxvb3IgZmx1c2ggZm9sbG93aW5nIGZvbGxvd3MgZm9yIGZvcmFsbCBmb3JjZSAnICtcbiAgICAgICAgICAgICdmb3JtIGZvcm1hIGZvcm1hdCBmb3VuZCBmb3VuZF9yb3dzIGZyZWVsaXN0IGZyZWVsaXN0cyBmcmVlcG9vbHMgZnJlc2ggZnJvbSBmcm9tX2Jhc2U2NCBmcm9tX2RheXMgJyArXG4gICAgICAgICAgICAnZnRwIGZ1bGwgZnVuY3Rpb24gZ2VuZXJhbCBnZW5lcmF0ZWQgZ2V0IGdldF9mb3JtYXQgZ2V0X2xvY2sgZ2V0ZGF0ZSBnZXR1dGNkYXRlIGdsb2JhbCBnbG9iYWxfbmFtZSAnICtcbiAgICAgICAgICAgICdnbG9iYWxseSBnbyBnb3RvIGdyYW50IGdyYW50cyBncmVhdGVzdCBncm91cCBncm91cF9jb25jYXQgZ3JvdXBfaWQgZ3JvdXBpbmcgZ3JvdXBpbmdfaWQgZ3JvdXBzICcgK1xuICAgICAgICAgICAgJ2d0aWRfc3VidHJhY3QgZ3VhcmFudGVlIGd1YXJkIGhhbmRsZXIgaGFzaCBoYXNoa2V5cyBoYXZpbmcgaGVhIGhlYWQgaGVhZGkgaGVhZGluIGhlYWRpbmcgaGVhcCBoZWxwIGhleCAnICtcbiAgICAgICAgICAgICdoaWVyYXJjaHkgaGlnaCBoaWdoX3ByaW9yaXR5IGhvc3RzIGhvdXIgaHR0cCBpZCBpZGVudF9jdXJyZW50IGlkZW50X2luY3IgaWRlbnRfc2VlZCBpZGVudGlmaWVkICcgK1xuICAgICAgICAgICAgJ2lkZW50aXR5IGlkbGVfdGltZSBpZiBpZm51bGwgaWdub3JlIGlpZiBpbGlrZSBpbG0gaW1tZWRpYXRlIGltcG9ydCBpbiBpbmNsdWRlIGluY2x1ZGluZyBpbmNyZW1lbnQgJyArXG4gICAgICAgICAgICAnaW5kZXggaW5kZXhlcyBpbmRleGluZyBpbmRleHR5cGUgaW5kaWNhdG9yIGluZGljZXMgaW5ldDZfYXRvbiBpbmV0Nl9udG9hIGluZXRfYXRvbiBpbmV0X250b2EgaW5maWxlICcgK1xuICAgICAgICAgICAgJ2luaXRpYWwgaW5pdGlhbGl6ZWQgaW5pdGlhbGx5IGluaXRyYW5zIGlubWVtb3J5IGlubmVyIGlubm9kYiBpbnB1dCBpbnNlcnQgaW5zdGFsbCBpbnN0YW5jZSBpbnN0YW50aWFibGUgJyArXG4gICAgICAgICAgICAnaW5zdHIgaW50ZXJmYWNlIGludGVybGVhdmVkIGludGVyc2VjdCBpbnRvIGludmFsaWRhdGUgaW52aXNpYmxlIGlzIGlzX2ZyZWVfbG9jayBpc19pcHY0IGlzX2lwdjRfY29tcGF0ICcgK1xuICAgICAgICAgICAgJ2lzX25vdCBpc19ub3RfbnVsbCBpc191c2VkX2xvY2sgaXNkYXRlIGlzbnVsbCBpc29sYXRpb24gaXRlcmF0ZSBqYXZhIGpvaW4ganNvbiBqc29uX2V4aXN0cyAnICtcbiAgICAgICAgICAgICdrZWVwIGtlZXBfZHVwbGljYXRlcyBrZXkga2V5cyBraWxsIGxhbmd1YWdlIGxhcmdlIGxhc3QgbGFzdF9kYXkgbGFzdF9pbnNlcnRfaWQgbGFzdF92YWx1ZSBsYXggbGNhc2UgJyArXG4gICAgICAgICAgICAnbGVhZCBsZWFkaW5nIGxlYXN0IGxlYXZlcyBsZWZ0IGxlbiBsZW5naHQgbGVuZ3RoIGxlc3MgbGV2ZWwgbGV2ZWxzIGxpYnJhcnkgbGlrZSBsaWtlMiBsaWtlNCBsaWtlYyBsaW1pdCAnICtcbiAgICAgICAgICAgICdsaW5lcyBsaW5rIGxpc3QgbGlzdGFnZyBsaXR0bGUgbG4gbG9hZCBsb2FkX2ZpbGUgbG9iIGxvYnMgbG9jYWwgbG9jYWx0aW1lIGxvY2FsdGltZXN0YW1wIGxvY2F0ZSAnICtcbiAgICAgICAgICAgICdsb2NhdG9yIGxvY2sgbG9ja2VkIGxvZyBsb2cxMCBsb2cyIGxvZ2ZpbGUgbG9nZmlsZXMgbG9nZ2luZyBsb2dpY2FsIGxvZ2ljYWxfcmVhZHNfcGVyX2NhbGwgJyArXG4gICAgICAgICAgICAnbG9nb2ZmIGxvZ29uIGxvZ3MgbG9uZyBsb29wIGxvdyBsb3dfcHJpb3JpdHkgbG93ZXIgbHBhZCBscnRyaW0gbHRyaW0gbWFpbiBtYWtlX3NldCBtYWtlZGF0ZSBtYWtldGltZSAnICtcbiAgICAgICAgICAgICdtYW5hZ2VkIG1hbmFnZW1lbnQgbWFudWFsIG1hcCBtYXBwaW5nIG1hc2sgbWFzdGVyIG1hc3Rlcl9wb3Nfd2FpdCBtYXRjaCBtYXRjaGVkIG1hdGVyaWFsaXplZCBtYXggJyArXG4gICAgICAgICAgICAnbWF4ZXh0ZW50cyBtYXhpbWl6ZSBtYXhpbnN0YW5jZXMgbWF4bGVuIG1heGxvZ2ZpbGVzIG1heGxvZ2hpc3RvcnkgbWF4bG9nbWVtYmVycyBtYXhzaXplIG1heHRyYW5zICcgK1xuICAgICAgICAgICAgJ21kNSBtZWFzdXJlcyBtZWRpYW4gbWVkaXVtIG1lbWJlciBtZW1jb21wcmVzcyBtZW1vcnkgbWVyZ2UgbWljcm9zZWNvbmQgbWlkIG1pZ3JhdGlvbiBtaW4gbWluZXh0ZW50cyAnICtcbiAgICAgICAgICAgICdtaW5pbXVtIG1pbmluZyBtaW51cyBtaW51dGUgbWludmFsdWUgbWlzc2luZyBtb2QgbW9kZSBtb2RlbCBtb2RpZmljYXRpb24gbW9kaWZ5IG1vZHVsZSBtb25pdG9yaW5nIG1vbnRoICcgK1xuICAgICAgICAgICAgJ21vbnRocyBtb3VudCBtb3ZlIG1vdmVtZW50IG11bHRpc2V0IG11dGV4IG5hbWUgbmFtZV9jb25zdCBuYW1lcyBuYW4gbmF0aW9uYWwgbmF0aXZlIG5hdHVyYWwgbmF2IG5jaGFyICcgK1xuICAgICAgICAgICAgJ25jbG9iIG5lc3RlZCBuZXZlciBuZXcgbmV3bGluZSBuZXh0IG5leHR2YWwgbm8gbm9fd3JpdGVfdG9fYmlubG9nIG5vYXJjaGl2ZWxvZyBub2F1ZGl0IG5vYmFkZmlsZSAnICtcbiAgICAgICAgICAgICdub2NoZWNrIG5vY29tcHJlc3Mgbm9jb3B5IG5vY3ljbGUgbm9kZWxheSBub2Rpc2NhcmRmaWxlIG5vZW50aXR5ZXNjYXBpbmcgbm9ndWFyYW50ZWUgbm9rZWVwIG5vbG9nZmlsZSAnICtcbiAgICAgICAgICAgICdub21hcHBpbmcgbm9tYXh2YWx1ZSBub21pbmltaXplIG5vbWludmFsdWUgbm9tb25pdG9yaW5nIG5vbmUgbm9uZWRpdGlvbmFibGUgbm9uc2NoZW1hIG5vb3JkZXIgJyArXG4gICAgICAgICAgICAnbm9wciBub3BybyBub3Byb20gbm9wcm9tcCBub3Byb21wdCBub3JlbHkgbm9yZXNldGxvZ3Mgbm9yZXZlcnNlIG5vcm1hbCBub3Jvd2RlcGVuZGVuY2llcyBub3NjaGVtYWNoZWNrICcgK1xuICAgICAgICAgICAgJ25vc3dpdGNoIG5vdCBub3RoaW5nIG5vdGljZSBub3RyaW0gbm92YWxpZGF0ZSBub3cgbm93YWl0IG50aF92YWx1ZSBudWxsaWYgbnVsbHMgbnVtIG51bWIgbnVtYmUgJyArXG4gICAgICAgICAgICAnbnZhcmNoYXIgbnZhcmNoYXIyIG9iamVjdCBvY2ljb2xsIG9jaWRhdGUgb2NpZGF0ZXRpbWUgb2NpZHVyYXRpb24gb2NpaW50ZXJ2YWwgb2NpbG9ibG9jYXRvciBvY2ludW1iZXIgJyArXG4gICAgICAgICAgICAnb2NpcmVmIG9jaXJlZmN1cnNvciBvY2lyb3dpZCBvY2lzdHJpbmcgb2NpdHlwZSBvY3Qgb2N0ZXRfbGVuZ3RoIG9mIG9mZiBvZmZsaW5lIG9mZnNldCBvaWQgb2lkaW5kZXggb2xkICcgK1xuICAgICAgICAgICAgJ29uIG9ubGluZSBvbmx5IG9wYXF1ZSBvcGVuIG9wZXJhdGlvbnMgb3BlcmF0b3Igb3B0aW1hbCBvcHRpbWl6ZSBvcHRpb24gb3B0aW9uYWxseSBvciBvcmFjbGUgb3JhY2xlX2RhdGUgJyArXG4gICAgICAgICAgICAnb3JhZGF0YSBvcmQgb3JkYXVkaW8gb3JkZGljb20gb3JkZG9jIG9yZGVyIG9yZGltYWdlIG9yZGluYWxpdHkgb3JkdmlkZW8gb3JnYW5pemF0aW9uIG9ybGFueSBvcmx2YXJ5ICcgK1xuICAgICAgICAgICAgJ291dCBvdXRlciBvdXRmaWxlIG91dGxpbmUgb3V0cHV0IG92ZXIgb3ZlcmZsb3cgb3ZlcnJpZGluZyBwYWNrYWdlIHBhZCBwYXJhbGxlbCBwYXJhbGxlbF9lbmFibGUgJyArXG4gICAgICAgICAgICAncGFyYW1ldGVycyBwYXJlbnQgcGFyc2UgcGFydGlhbCBwYXJ0aXRpb24gcGFydGl0aW9ucyBwYXNjYWwgcGFzc2luZyBwYXNzd29yZCBwYXNzd29yZF9ncmFjZV90aW1lICcgK1xuICAgICAgICAgICAgJ3Bhc3N3b3JkX2xvY2tfdGltZSBwYXNzd29yZF9yZXVzZV9tYXggcGFzc3dvcmRfcmV1c2VfdGltZSBwYXNzd29yZF92ZXJpZnlfZnVuY3Rpb24gcGF0Y2ggcGF0aCBwYXRpbmRleCAnICtcbiAgICAgICAgICAgICdwY3RpbmNyZWFzZSBwY3R0aHJlc2hvbGQgcGN0dXNlZCBwY3R2ZXJzaW9uIHBlcmNlbnQgcGVyY2VudF9yYW5rIHBlcmNlbnRpbGVfY29udCBwZXJjZW50aWxlX2Rpc2MgJyArXG4gICAgICAgICAgICAncGVyZm9ybWFuY2UgcGVyaW9kIHBlcmlvZF9hZGQgcGVyaW9kX2RpZmYgcGVybWFuZW50IHBoeXNpY2FsIHBpIHBpcGUgcGlwZWxpbmVkIHBpdm90IHBsdWdnYWJsZSBwbHVnaW4gJyArXG4gICAgICAgICAgICAncG9saWN5IHBvc2l0aW9uIHBvc3RfdHJhbnNhY3Rpb24gcG93IHBvd2VyIHByYWdtYSBwcmVidWlsdCBwcmVjZWRlcyBwcmVjZWRpbmcgcHJlY2lzaW9uIHByZWRpY3Rpb24gJyArXG4gICAgICAgICAgICAncHJlZGljdGlvbl9jb3N0IHByZWRpY3Rpb25fZGV0YWlscyBwcmVkaWN0aW9uX3Byb2JhYmlsaXR5IHByZWRpY3Rpb25fc2V0IHByZXBhcmUgcHJlc2VudCBwcmVzZXJ2ZSAnICtcbiAgICAgICAgICAgICdwcmlvciBwcmlvcml0eSBwcml2YXRlIHByaXZhdGVfc2dhIHByaXZpbGVnZXMgcHJvY2VkdXJhbCBwcm9jZWR1cmUgcHJvY2VkdXJlX2FuYWx5emUgcHJvY2Vzc2xpc3QgJyArXG4gICAgICAgICAgICAncHJvZmlsZXMgcHJvamVjdCBwcm9tcHQgcHJvdGVjdGlvbiBwdWJsaWMgcHVibGlzaGluZ3NlcnZlcm5hbWUgcHVyZ2UgcXVhcnRlciBxdWVyeSBxdWljayBxdWllc2NlIHF1b3RhICcgK1xuICAgICAgICAgICAgJ3F1b3RlbmFtZSByYWRpYW5zIHJhaXNlIHJhbmQgcmFuZ2UgcmFuayByYXcgcmVhZCByZWFkcyByZWFkc2l6ZSByZWJ1aWxkIHJlY29yZCByZWNvcmRzICcgK1xuICAgICAgICAgICAgJ3JlY292ZXIgcmVjb3ZlcnkgcmVjdXJzaXZlIHJlY3ljbGUgcmVkbyByZWR1Y2VkIHJlZiByZWZlcmVuY2UgcmVmZXJlbmNlZCByZWZlcmVuY2VzIHJlZmVyZW5jaW5nIHJlZnJlc2ggJyArXG4gICAgICAgICAgICAncmVnZXhwX2xpa2UgcmVnaXN0ZXIgcmVncl9hdmd4IHJlZ3JfYXZneSByZWdyX2NvdW50IHJlZ3JfaW50ZXJjZXB0IHJlZ3JfcjIgcmVncl9zbG9wZSByZWdyX3N4eCByZWdyX3N4eSAnICtcbiAgICAgICAgICAgICdyZWplY3QgcmVrZXkgcmVsYXRpb25hbCByZWxhdGl2ZSByZWxheWxvZyByZWxlYXNlIHJlbGVhc2VfbG9jayByZWxpZXNfb24gcmVsb2NhdGUgcmVseSByZW0gcmVtYWluZGVyIHJlbmFtZSAnICtcbiAgICAgICAgICAgICdyZXBhaXIgcmVwZWF0IHJlcGxhY2UgcmVwbGljYXRlIHJlcGxpY2F0aW9uIHJlcXVpcmVkIHJlc2V0IHJlc2V0bG9ncyByZXNpemUgcmVzb3VyY2UgcmVzcGVjdCByZXN0b3JlICcgK1xuICAgICAgICAgICAgJ3Jlc3RyaWN0ZWQgcmVzdWx0IHJlc3VsdF9jYWNoZSByZXN1bWFibGUgcmVzdW1lIHJldGVudGlvbiByZXR1cm4gcmV0dXJuaW5nIHJldHVybnMgcmV1c2UgcmV2ZXJzZSByZXZva2UgJyArXG4gICAgICAgICAgICAncmlnaHQgcmxpa2Ugcm9sZSByb2xlcyByb2xsYmFjayByb2xsaW5nIHJvbGx1cCByb3VuZCByb3cgcm93X2NvdW50IHJvd2RlcGVuZGVuY2llcyByb3dpZCByb3dudW0gcm93cyAnICtcbiAgICAgICAgICAgICdydHJpbSBydWxlcyBzYWZlIHNhbHQgc2FtcGxlIHNhdmUgc2F2ZXBvaW50IHNiMSBzYjIgc2I0IHNjYW4gc2NoZW1hIHNjaGVtYWNoZWNrIHNjbiBzY29wZSBzY3JvbGwgJyArXG4gICAgICAgICAgICAnc2RvX2dlb3Jhc3RlciBzZG9fdG9wb19nZW9tZXRyeSBzZWFyY2ggc2VjX3RvX3RpbWUgc2Vjb25kIHNlY3Rpb24gc2VjdXJlZmlsZSBzZWN1cml0eSBzZWVkIHNlZ21lbnQgc2VsZWN0ICcgK1xuICAgICAgICAgICAgJ3NlbGYgc2VxdWVuY2Ugc2VxdWVudGlhbCBzZXJpYWxpemFibGUgc2VydmVyIHNlcnZlcmVycm9yIHNlc3Npb24gc2Vzc2lvbl91c2VyIHNlc3Npb25zX3Blcl91c2VyIHNldCAnICtcbiAgICAgICAgICAgICdzZXRzIHNldHRpbmdzIHNoYSBzaGExIHNoYTIgc2hhcmUgc2hhcmVkIHNoYXJlZF9wb29sIHNob3J0IHNob3cgc2hyaW5rIHNodXRkb3duIHNpX2F2ZXJhZ2Vjb2xvciAnICtcbiAgICAgICAgICAgICdzaV9jb2xvcmhpc3RvZ3JhbSBzaV9mZWF0dXJlbGlzdCBzaV9wb3NpdGlvbmFsY29sb3Igc2lfc3RpbGxpbWFnZSBzaV90ZXh0dXJlIHNpYmxpbmdzIHNpZCBzaWduIHNpbiAnICtcbiAgICAgICAgICAgICdzaXplIHNpemVfdCBzaXplcyBza2lwIHNsYXZlIHNsZWVwIHNtYWxsZGF0ZXRpbWVmcm9tcGFydHMgc21hbGxmaWxlIHNuYXBzaG90IHNvbWUgc29uYW1lIHNvcnQgc291bmRleCAnICtcbiAgICAgICAgICAgICdzb3VyY2Ugc3BhY2Ugc3BhcnNlIHNwZmlsZSBzcGxpdCBzcWwgc3FsX2JpZ19yZXN1bHQgc3FsX2J1ZmZlcl9yZXN1bHQgc3FsX2NhY2hlIHNxbF9jYWxjX2ZvdW5kX3Jvd3MgJyArXG4gICAgICAgICAgICAnc3FsX3NtYWxsX3Jlc3VsdCBzcWxfdmFyaWFudF9wcm9wZXJ0eSBzcWxjb2RlIHNxbGRhdGEgc3FsZXJyb3Igc3FsbmFtZSBzcWxzdGF0ZSBzcXJ0IHNxdWFyZSBzdGFuZGFsb25lICcgK1xuICAgICAgICAgICAgJ3N0YW5kYnkgc3RhcnQgc3RhcnRpbmcgc3RhcnR1cCBzdGF0ZW1lbnQgc3RhdGljIHN0YXRpc3RpY3Mgc3RhdHNfYmlub21pYWxfdGVzdCBzdGF0c19jcm9zc3RhYiAnICtcbiAgICAgICAgICAgICdzdGF0c19rc190ZXN0IHN0YXRzX21vZGUgc3RhdHNfbXdfdGVzdCBzdGF0c19vbmVfd2F5X2Fub3ZhIHN0YXRzX3RfdGVzdF8gc3RhdHNfdF90ZXN0X2luZGVwICcgK1xuICAgICAgICAgICAgJ3N0YXRzX3RfdGVzdF9vbmUgc3RhdHNfdF90ZXN0X3BhaXJlZCBzdGF0c193c3JfdGVzdCBzdGF0dXMgc3RkIHN0ZGRldiBzdGRkZXZfcG9wIHN0ZGRldl9zYW1wIHN0ZGV2ICcgK1xuICAgICAgICAgICAgJ3N0b3Agc3RvcmFnZSBzdG9yZSBzdG9yZWQgc3RyIHN0cl90b19kYXRlIHN0cmFpZ2h0X2pvaW4gc3RyY21wIHN0cmljdCBzdHJpbmcgc3RydWN0IHN0dWZmIHN0eWxlIHN1YmRhdGUgJyArXG4gICAgICAgICAgICAnc3VicGFydGl0aW9uIHN1YnBhcnRpdGlvbnMgc3Vic3RpdHV0YWJsZSBzdWJzdHIgc3Vic3RyaW5nIHN1YnRpbWUgc3VidHJpbmdfaW5kZXggc3VidHlwZSBzdWNjZXNzIHN1bSAnICtcbiAgICAgICAgICAgICdzdXNwZW5kIHN3aXRjaCBzd2l0Y2hvZmZzZXQgc3dpdGNob3ZlciBzeW5jIHN5bmNocm9ub3VzIHN5bm9ueW0gc3lzIHN5c194bWxhZ2cgc3lzYXNtIHN5c2F1eCBzeXNkYXRlICcgK1xuICAgICAgICAgICAgJ3N5c2RhdGV0aW1lb2Zmc2V0IHN5c2RiYSBzeXNvcGVyIHN5c3RlbSBzeXN0ZW1fdXNlciBzeXN1dGNkYXRldGltZSB0YWJsZSB0YWJsZXMgdGFibGVzcGFjZSB0YW4gdGRvICcgK1xuICAgICAgICAgICAgJ3RlbXBsYXRlIHRlbXBvcmFyeSB0ZXJtaW5hdGVkIHRlcnRpYXJ5X3dlaWdodHMgdGVzdCB0aGFuIHRoZW4gdGhyZWFkIHRocm91Z2ggdGllciB0aWVzIHRpbWUgdGltZV9mb3JtYXQgJyArXG4gICAgICAgICAgICAndGltZV96b25lIHRpbWVkaWZmIHRpbWVmcm9tcGFydHMgdGltZW91dCB0aW1lc3RhbXAgdGltZXN0YW1wYWRkIHRpbWVzdGFtcGRpZmYgdGltZXpvbmVfYWJiciAnICtcbiAgICAgICAgICAgICd0aW1lem9uZV9taW51dGUgdGltZXpvbmVfcmVnaW9uIHRvIHRvX2Jhc2U2NCB0b19kYXRlIHRvX2RheXMgdG9fc2Vjb25kcyB0b2RhdGV0aW1lb2Zmc2V0IHRyYWNlIHRyYWNraW5nICcgK1xuICAgICAgICAgICAgJ3RyYW5zYWN0aW9uIHRyYW5zYWN0aW9uYWwgdHJhbnNsYXRlIHRyYW5zbGF0aW9uIHRyZWF0IHRyaWdnZXIgdHJpZ2dlcl9uZXN0bGV2ZWwgdHJpZ2dlcnMgdHJpbSB0cnVuY2F0ZSAnICtcbiAgICAgICAgICAgICd0cnlfY2FzdCB0cnlfY29udmVydCB0cnlfcGFyc2UgdHlwZSB1YjEgdWIyIHViNCB1Y2FzZSB1bmFyY2hpdmVkIHVuYm91bmRlZCB1bmNvbXByZXNzICcgK1xuICAgICAgICAgICAgJ3VuZGVyIHVuZG8gdW5oZXggdW5pY29kZSB1bmlmb3JtIHVuaW5zdGFsbCB1bmlvbiB1bmlxdWUgdW5peF90aW1lc3RhbXAgdW5rbm93biB1bmxpbWl0ZWQgdW5sb2NrIHVucGl2b3QgJyArXG4gICAgICAgICAgICAndW5yZWNvdmVyYWJsZSB1bnNhZmUgdW5zaWduZWQgdW50aWwgdW50cnVzdGVkIHVudXNhYmxlIHVudXNlZCB1cGRhdGUgdXBkYXRlZCB1cGdyYWRlIHVwcGVkIHVwcGVyIHVwc2VydCAnICtcbiAgICAgICAgICAgICd1cmwgdXJvd2lkIHVzYWJsZSB1c2FnZSB1c2UgdXNlX3N0b3JlZF9vdXRsaW5lcyB1c2VyIHVzZXJfZGF0YSB1c2VyX3Jlc291cmNlcyB1c2VycyB1c2luZyB1dGNfZGF0ZSAnICtcbiAgICAgICAgICAgICd1dGNfdGltZXN0YW1wIHV1aWQgdXVpZF9zaG9ydCB2YWxpZGF0ZSB2YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aCB2YWxpZGF0aW9uIHZhbGlzdCB2YWx1ZSB2YWx1ZXMgdmFyICcgK1xuICAgICAgICAgICAgJ3Zhcl9zYW1wIHZhcmNoYXJjIHZhcmkgdmFyaWEgdmFyaWFiIHZhcmlhYmwgdmFyaWFibGUgdmFyaWFibGVzIHZhcmlhbmNlIHZhcnAgdmFycmF3IHZhcnJhd2MgdmFycmF5ICcgK1xuICAgICAgICAgICAgJ3ZlcmlmeSB2ZXJzaW9uIHZlcnNpb25zIHZpZXcgdmlydHVhbCB2aXNpYmxlIHZvaWQgd2FpdCB3YWxsZXQgd2FybmluZyB3YXJuaW5ncyB3ZWVrIHdlZWtkYXkgd2Vla29meWVhciAnICtcbiAgICAgICAgICAgICd3ZWxsZm9ybWVkIHdoZW4gd2hlbmUgd2hlbmV2IHdoZW5ldmUgd2hlbmV2ZXIgd2hlcmUgd2hpbGUgd2hpdGVzcGFjZSB3aXRoIHdpdGhpbiB3aXRob3V0IHdvcmsgd3JhcHBlZCAnICtcbiAgICAgICAgICAgICd4ZGIgeG1sIHhtbGFnZyB4bWxhdHRyaWJ1dGVzIHhtbGNhc3QgeG1sY29sYXR0dmFsIHhtbGVsZW1lbnQgeG1sZXhpc3RzIHhtbGZvcmVzdCB4bWxpbmRleCB4bWxuYW1lc3BhY2VzICcgK1xuICAgICAgICAgICAgJ3htbHBpIHhtbHF1ZXJ5IHhtbHJvb3QgeG1sc2NoZW1hIHhtbHNlcmlhbGl6ZSB4bWx0YWJsZSB4bWx0eXBlIHhvciB5ZWFyIHllYXJfdG9fbW9udGggeWVhcnMgeWVhcndlZWsnLFxuICAgICAgICAgIGxpdGVyYWw6XG4gICAgICAgICAgICAndHJ1ZSBmYWxzZSBudWxsJyxcbiAgICAgICAgICBidWlsdF9pbjpcbiAgICAgICAgICAgICdhcnJheSBiaWdpbnQgYmluYXJ5IGJpdCBibG9iIGJvb2xlYW4gY2hhciBjaGFyYWN0ZXIgZGF0ZSBkZWMgZGVjaW1hbCBmbG9hdCBpbnQgaW50OCBpbnRlZ2VyIGludGVydmFsIG51bWJlciAnICtcbiAgICAgICAgICAgICdudW1lcmljIHJlYWwgcmVjb3JkIHNlcmlhbCBzZXJpYWw4IHNtYWxsaW50IHRleHQgdmFyY2hhciB2YXJ5aW5nIHZvaWQnXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJywgZW5kOiAnXFwnJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFLCB7YmVnaW46ICdcXCdcXCcnfV1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ1wiJywgZW5kOiAnXCInLFxuICAgICAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEUsIHtiZWdpbjogJ1wiXCInfV1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ2AnLCBlbmQ6ICdgJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIGxleGVtZXM6IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAvLyBTdGFuJ3Mga2V5d29yZHNcbiAgICAgICAgICBuYW1lOlxuICAgICAgICAgICAgJ2ZvciBpbiB3aGlsZSByZXBlYXQgdW50aWwgaWYgdGhlbiBlbHNlJyxcbiAgICAgICAgICAvLyBTdGFuJ3MgcHJvYmFibGl0eSBkaXN0cmlidXRpb25zIChsZXNzIGJldGEgYW5kIGdhbW1hLCBhcyBjb21tb25seVxuICAgICAgICAgIC8vIHVzZWQgZm9yIHBhcmFtZXRlciBuYW1lcykuIFNvIGZhciwgX2xvZyBhbmQgX3JuZyB2YXJpYW50cyBhcmUgbm90XG4gICAgICAgICAgLy8gaW5jbHVkZWRcbiAgICAgICAgICBzeW1ib2w6XG4gICAgICAgICAgICAnYmVybm91bGxpIGJlcm5vdWxsaV9sb2dpdCBiaW5vbWlhbCBiaW5vbWlhbF9sb2dpdCAnICAgICAgICAgICAgICAgK1xuICAgICAgICAgICAgJ2JldGFfYmlub21pYWwgaHlwZXJnZW9tZXRyaWMgY2F0ZWdvcmljYWwgY2F0ZWdvcmljYWxfbG9naXQgJyAgICAgICtcbiAgICAgICAgICAgICdvcmRlcmVkX2xvZ2lzdGljIG5lZ19iaW5vbWlhbCBuZWdfYmlub21pYWxfMiAnICAgICAgICAgICAgICAgICAgICArXG4gICAgICAgICAgICAnbmVnX2Jpbm9taWFsXzJfbG9nIHBvaXNzb24gcG9pc3Nvbl9sb2cgbXVsdGlub21pYWwgbm9ybWFsICcgICAgICAgK1xuICAgICAgICAgICAgJ2V4cF9tb2Rfbm9ybWFsIHNrZXdfbm9ybWFsIHN0dWRlbnRfdCBjYXVjaHkgZG91YmxlX2V4cG9uZW50aWFsICcgICtcbiAgICAgICAgICAgICdsb2dpc3RpYyBndW1iZWwgbG9nbm9ybWFsIGNoaV9zcXVhcmUgaW52X2NoaV9zcXVhcmUgJyAgICAgICAgICAgICArXG4gICAgICAgICAgICAnc2NhbGVkX2ludl9jaGlfc3F1YXJlIGV4cG9uZW50aWFsIGludl9nYW1tYSB3ZWlidWxsIGZyZWNoZXQgJyAgICAgK1xuICAgICAgICAgICAgJ3JheWxlaWdoIHdpZW5lciBwYXJldG8gcGFyZXRvX3R5cGVfMiB2b25fbWlzZXMgdW5pZm9ybSAnICAgICAgICAgICtcbiAgICAgICAgICAgICdtdWx0aV9ub3JtYWwgbXVsdGlfbm9ybWFsX3ByZWMgbXVsdGlfbm9ybWFsX2Nob2xlc2t5IG11bHRpX2dwICcgICArXG4gICAgICAgICAgICAnbXVsdGlfZ3BfY2hvbGVza3kgbXVsdGlfc3R1ZGVudF90IGdhdXNzaWFuX2RsbV9vYnMgZGlyaWNobGV0ICcgICAgK1xuICAgICAgICAgICAgJ2xral9jb3JyIGxral9jb3JyX2Nob2xlc2t5IHdpc2hhcnQgaW52X3dpc2hhcnQnLFxuICAgICAgICAgIC8vIFN0YW4ncyBkYXRhIHR5cGVzXG4gICAgICAgICAgJ3NlbGVjdG9yLXRhZyc6XG4gICAgICAgICAgICAnaW50IHJlYWwgdmVjdG9yIHNpbXBsZXggdW5pdF92ZWN0b3Igb3JkZXJlZCBwb3NpdGl2ZV9vcmRlcmVkICcgICAgK1xuICAgICAgICAgICAgJ3Jvd192ZWN0b3IgbWF0cml4IGNob2xlc2t5X2ZhY3Rvcl9jb3JyIGNob2xlc2t5X2ZhY3Rvcl9jb3YgJyAgICAgICtcbiAgICAgICAgICAgICdjb3JyX21hdHJpeCBjb3ZfbWF0cml4JyxcbiAgICAgICAgICAvLyBTdGFuJ3MgbW9kZWwgYmxvY2tzXG4gICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAnZnVuY3Rpb25zIG1vZGVsIGRhdGEgcGFyYW1ldGVycyBxdWFudGl0aWVzIHRyYW5zZm9ybWVkICcgICAgICAgICAgK1xuICAgICAgICAgICAgJ2dlbmVyYXRlZCcsXG4gICAgICAgICAgbGl0ZXJhbDpcbiAgICAgICAgICAgICd0cnVlIGZhbHNlJ1xuICAgICAgICB9LFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBUaGUgYmVsb3cgaXMgYWxsIHRha2VuIGZyb20gdGhlIFIgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuICAgICAge1xuICAgICAgICAvLyBoZXggdmFsdWVcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IFwiMFt4WF1bMC05YS1mQS1GXStbTGldP1xcXFxiXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGV4IHZhbHVlXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIjBbeFhdWzAtOWEtZkEtRl0rW0xpXT9cXFxcYlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGV4cGxpY2l0IGludGVnZXJcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IFwiXFxcXGQrKD86W2VFXVsrXFxcXC1dP1xcXFxkKik/TFxcXFxiXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyIHdpdGggdHJhaWxpbmcgZGVjaW1hbFxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogXCJcXFxcZCtcXFxcLig/IVxcXFxkKSg/OmlcXFxcYik/XCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIlxcXFxkKyg/OlxcXFwuXFxcXGQqKT8oPzpbZUVdWytcXFxcLV0/XFxcXGQqKT9pP1xcXFxiXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gbnVtYmVyIHdpdGggbGVhZGluZyBkZWNpbWFsXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBcIlxcXFwuXFxcXGQrKD86W2VFXVsrXFxcXC1dP1xcXFxkKik/aT9cXFxcYlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsnZG8nLCAnYWRvJ10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogJ2lmIGVsc2UgaW4gZm9yZWFjaCBmb3IgZm9ydiBmb3J2YSBmb3J2YWwgZm9ydmFsdSBmb3J2YWx1ZSBmb3J2YWx1ZXMgYnkgYnlzIGJ5c29ydCB4aSBxdWlldGx5IHF1aSBjYXB0dXJlIGFib3V0IGFjIGFjXzcgYWNwcnBsb3QgYWNwcnBsb3RfNyBhZGp1c3QgYWRvIGFkb3BhdGggYWRvdXBkYXRlIGFscGhhIGFtZWFucyBhbiBhbm8gYW5vdiBhbm92YSBhbm92YV9lc3RhdCBhbm92YV90ZXJtcyBhbm92YWRlZiBhb3JkZXIgYXAgYXBwIGFwcGUgYXBwZW4gYXBwZW5kIGFyY2ggYXJjaF9kciBhcmNoX2VzdGF0IGFyY2hfcCBhcmNobG0gYXJlZyBhcmVnX3AgYXJncyBhcmltYSBhcmltYV9kciBhcmltYV9lc3RhdCBhcmltYV9wIGFzIGFzbXByb2JpdCBhc21wcm9iaXRfZXN0YXQgYXNtcHJvYml0X2xmIGFzbXByb2JpdF9tZnhfX2RsZyBhc21wcm9iaXRfcCBhc3MgYXNzZSBhc3NlciBhc3NlcnQgYXZwbG90IGF2cGxvdF83IGF2cGxvdHMgYXZwbG90c183IGJjc2tldzAgYmdvZGZyZXkgYmlucmVnIGJpcDBfbGYgYmlwbG90IGJpcHBfbGYgYmlwcl9sZiBiaXByX3AgYmlwcm9iaXQgYml0ZXN0IGJpdGVzdGkgYml0b3d0IGJsb2dpdCBibWVtc2l6ZSBib290IGJvb3RzYW1wIGJvb3RzdHJhcCBib290c3RyYXBfOCBib3hjb19sIGJveGNvX3AgYm94Y294IGJveGNveF82IGJveGNveF9wIGJwcm9iaXQgYnIgYnJlYWsgYnJpZXIgYnJvIGJyb3cgYnJvd3MgYnJvd3NlIGJyciBicnJzdGF0IGJzIGJzXzcgYnNhbXBsX3cgYnNhbXBsZSBic2FtcGxlXzcgYnNxcmVnIGJzdGF0IGJzdGF0XzcgYnN0YXRfOCBic3RyYXAgYnN0cmFwXzcgY2EgY2FfZXN0YXQgY2FfcCBjYWJpcGxvdCBjYW1hdCBjYW5vbiBjYW5vbl84IGNhbm9uXzhfcCBjYW5vbl9lc3RhdCBjYW5vbl9wIGNhcCBjYXByb2plY3Rpb24gY2FwdCBjYXB0dSBjYXB0dXIgY2FwdHVyZSBjYXQgY2MgY2NoYXJ0IGNjaGFydF83IGNjaSBjZCBjZW5zb2JzX3RhYmxlIGNlbnRpbGUgY2YgY2hhciBjaGRpciBjaGVja2RsZ2ZpbGVzIGNoZWNrZXN0aW1hdGlvbnNhbXBsZSBjaGVja2hscGZpbGVzIGNoZWNrc3VtIGNoZWxwIGNpIGNpaSBjbCBjbGFzcyBjbGFzc3V0aWwgY2xlYXIgY2xpIGNsaXMgY2xpc3QgY2xvIGNsb2cgY2xvZ19sZiBjbG9nX3AgY2xvZ2kgY2xvZ2lfc3cgY2xvZ2l0IGNsb2dpdF9sZiBjbG9naXRfcCBjbG9naXRwIGNsb2dsX3N3IGNsb2dsb2cgY2xvbmV2YXIgY2xzbGlzdGFycmF5IGNsdXN0ZXIgY2x1c3Rlcl9tZWFzdXJlcyBjbHVzdGVyX3N0b3AgY2x1c3Rlcl90cmVlIGNsdXN0ZXJfdHJlZV84IGNsdXN0ZXJtYXQgY21kbG9nIGNuciBjbnJlIGNucmVnIGNucmVnX3AgY25yZWdfc3cgY25zcmVnIGNvZGVib29rIGNvbGxhcHM0IGNvbGxhcHNlIGNvbG9ybXVsdF9uYiBjb2xvcm11bHRfbncgY29tcGFyZSBjb21wcmVzcyBjb25mIGNvbmZpIGNvbmZpciBjb25maXJtIGNvbnJlbiBjb25zIGNvbnN0IGNvbnN0ciBjb25zdHJhIGNvbnN0cmFpIGNvbnN0cmFpbiBjb25zdHJhaW50IGNvbnRpbnVlIGNvbnRyYWN0IGNvcHkgY29weXJpZ2h0IGNvcHlzb3VyY2UgY29yIGNvcmMgY29yciBjb3JyMmRhdGEgY29ycl9hbnRpIGNvcnJfa21vIGNvcnJfc21jIGNvcnJlIGNvcnJlbCBjb3JyZWxhIGNvcnJlbGF0IGNvcnJlbGF0ZSBjb3JyZ3JhbSBjb3UgY291biBjb3VudCBjb3ggY294X3AgY294X3N3IGNveGJhc2UgY294aGF6IGNveHZhciBjcHJwbG90IGNwcnBsb3RfNyBjcmMgY3JldCBjcmV0dSBjcmV0dXIgY3JldHVybiBjcm9zcyBjcyBjc2NyaXB0IGNzY3JpcHRfbG9nIGNzaSBjdCBjdF9pcyBjdHNldCBjdHN0XzUgY3RzdF9zdCBjdHRvc3QgY3Vtc3AgY3Vtc3BfNyBjdW11bCBjdXN1bSBjdXN1bV83IGN1dGlsIGR8MCBkYXRhc2lnIGRhdGFzaWduIGRhdGFzaWduYSBkYXRhc2lnbmF0IGRhdGFzaWduYXR1IGRhdGFzaWduYXR1ciBkYXRhc2lnbmF0dXJlIGRhdGV0b2YgZGIgZGJldGEgZGUgZGVjIGRlY28gZGVjb2QgZGVjb2RlIGRlZmYgZGVzIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzdHJpbmcgZGZiZXRhIGRmZ2xzIGRmdWxsZXIgZGkgZGlfZyBkaXIgZGlyc3RhdHMgZGlzIGRpc2NhcmQgZGlzcCBkaXNwX3JlcyBkaXNwX3MgZGlzcGwgZGlzcGxhIGRpc3BsYXkgZGlzdGluY3QgZG8gZG9lIGRvZWQgZG9lZGkgZG9lZGl0IGRvdHBsb3QgZG90cGxvdF83IGRwcm9iaXQgZHJhd25vcm0gZHJvcCBkcyBkc191dGlsIGRzdGRpemUgZHVwbGljYXRlcyBkdXJiaW5hIGR3c3RhdCBkeWR4IGV8MCBlZCBlZGkgZWRpdCBlZ2VuIGVpdnJlZyBlbWRlZiBlbiBlbmMgZW5jbyBlbmNvZCBlbmNvZGUgZXEgZXJhc2UgZXJlZyBlcmVnX2xmIGVyZWdfcCBlcmVnX3N3IGVyZWdoZXQgZXJlZ2hldF9nbGYgZXJlZ2hldF9nbGZfc2ggZXJlZ2hldF9ncCBlcmVnaGV0X2lsZiBlcmVnaGV0X2lsZl9zaCBlcmVnaGV0X2lwIGVyZXQgZXJldHUgZXJldHVyIGVyZXR1cm4gZXJyIGVycm8gZXJyb3IgZXN0IGVzdF9jZmV4aXN0IGVzdF9jZm5hbWUgZXN0X2NsaWNrYWJsZSBlc3RfZXhwYW5kIGVzdF9ob2xkIGVzdF90YWJsZSBlc3RfdW5ob2xkIGVzdF91bmhvbGRvayBlc3RhdCBlc3RhdF9kZWZhdWx0IGVzdGF0X3N1bW0gZXN0YXRfdmNlX29ubHkgZXN0aSBlc3RpbWF0ZXMgZXRvZG93IGV0b2YgZXRvbWR5IGV4IGV4aSBleGl0IGV4cGFuZCBleHBhbmRjbCBmYWMgZmFjdCBmYWN0byBmYWN0b3IgZmFjdG9yX2VzdGF0IGZhY3Rvcl9wIGZhY3Rvcl9wY2Ffcm90YXRlZCBmYWN0b3Jfcm90YXRlIGZhY3Rvcm1hdCBmY2FzdCBmY2FzdF9jb21wdXRlIGZjYXN0X2dyYXBoIGZkYWRlcyBmZGFkZXNjIGZkYWRlc2NyIGZkYWRlc2NyaSBmZGFkZXNjcmliIGZkYWRlc2NyaWJlIGZkYXNhdiBmZGFzYXZlIGZkYXVzZSBmaF9zdCBmaWxlIG9wZW4gZmlsZSByZWFkIGZpbGUgY2xvc2UgZmlsZSBmaWxlZmlsdGVyIGZpbGxpbiBmaW5kX2hscF9maWxlIGZpbmRmaWxlIGZpbmRpdCBmaW5kaXRfNyBmaXQgZmwgZmxpIGZsaXMgZmxpc3QgZm9yNV8wIGZvcm0gZm9ybWEgZm9ybWF0IGZwcmVkaWN0IGZyYWNfMTU0IGZyYWNfYWRqIGZyYWNfY2hrIGZyYWNfY294IGZyYWNfZGRwIGZyYWNfZGlzIGZyYWNfZHYgZnJhY19pbiBmcmFjX211biBmcmFjX3BwIGZyYWNfcHEgZnJhY19wdiBmcmFjX3dndCBmcmFjX3hvIGZyYWNnZW4gZnJhY3Bsb3QgZnJhY3Bsb3RfNyBmcmFjcG9seSBmcmFjcHJlZCBmcm9uX2V4IGZyb25faG4gZnJvbl9wIGZyb25fdG4gZnJvbl90bjIgZnJvbnRpZXIgZnRvZGF0ZSBmdG9lIGZ0b21keSBmdG93ZGF0ZSBnfDAgZ2FtaGV0X2dsZiBnYW1oZXRfZ3AgZ2FtaGV0X2lsZiBnYW1oZXRfaXAgZ2FtbWEgZ2FtbWFfZDIgZ2FtbWFfcCBnYW1tYV9zdyBnYW1tYWhldCBnZGlfaGV4YWdvbiBnZGlfc3Bva2VzIGdlIGdlbiBnZW5lIGdlbmVyIGdlbmVyYSBnZW5lcmF0IGdlbmVyYXRlIGdlbnJhbmsgZ2Vuc3RkIGdlbnZtZWFuIGdldHRva2VuIGdsIGdsYWRkZXIgZ2xhZGRlcl83IGdsaW1fbDAxIGdsaW1fbDAyIGdsaW1fbDAzIGdsaW1fbDA0IGdsaW1fbDA1IGdsaW1fbDA2IGdsaW1fbDA3IGdsaW1fbDA4IGdsaW1fbDA5IGdsaW1fbDEwIGdsaW1fbDExIGdsaW1fbDEyIGdsaW1fbGYgZ2xpbV9tdSBnbGltX253MSBnbGltX253MiBnbGltX253MyBnbGltX3AgZ2xpbV92MSBnbGltX3YyIGdsaW1fdjMgZ2xpbV92NCBnbGltX3Y1IGdsaW1fdjYgZ2xpbV92NyBnbG0gZ2xtXzYgZ2xtX3AgZ2xtX3N3IGdsbXByZWQgZ2xvIGdsb2IgZ2xvYmEgZ2xvYmFsIGdsb2dpdCBnbG9naXRfOCBnbG9naXRfcCBnbWVhbnMgZ25icmVfbGYgZ25icmVnIGduYnJlZ181IGduYnJlZ19wIGdvbXBfbGYgZ29tcGVfc3cgZ29tcGVyX3AgZ29tcGVydHogZ29tcGVydHpoZXQgZ29tcGhldF9nbGYgZ29tcGhldF9nbGZfc2ggZ29tcGhldF9ncCBnb21waGV0X2lsZiBnb21waGV0X2lsZl9zaCBnb21waGV0X2lwIGdwaGRvdCBncGhwZW4gZ3BocHJpbnQgZ3ByZWZzIGdwcm9iaV9wIGdwcm9iaXQgZ3Byb2JpdF84IGdyIGdyNyBncl9jb3B5IGdyX2N1cnJlbnQgZ3JfZGIgZ3JfZGVzY3JpYmUgZ3JfZGlyIGdyX2RyYXcgZ3JfZHJhd19yZXBsYXkgZ3JfZHJvcCBncl9lZGl0IGdyX2VkaXR2aWV3b3B0cyBncl9leGFtcGxlIGdyX2V4YW1wbGUyIGdyX2V4cG9ydCBncl9wcmludCBncl9xc2NoZW1lIGdyX3F1ZXJ5IGdyX3JlYWQgZ3JfcmVuYW1lIGdyX3JlcGxheSBncl9zYXZlIGdyX3NldCBncl9zZXRzY2hlbWUgZ3JfdGFibGUgZ3JfdW5kbyBncl91c2UgZ3JhcGggZ3JhcGg3IGdyZWJhciBncmVpZ2VuIGdyZWlnZW5fNyBncmVpZ2VuXzggZ3JtZWFuYnkgZ3JtZWFuYnlfNyBnc19maWxlaW5mbyBnc19maWxldHlwZSBnc19ncmFwaGluZm8gZ3Nfc3RhdCBnc29ydCBnd29vZCBofDAgaGFkaW12byBoYXJlZyBoYXVzbWFuIGhhdmVyIGhlIGhlY2tfZDIgaGVja21hX3AgaGVja21hbiBoZWNrcF9sZiBoZWNrcHJfcCBoZWNrcHJvYiBoZWwgaGVscCBoZXJlZyBoZXRwcl9sZiBoZXRwcl9wIGhldHByb2IgaGV0dGVzdCBoZXhkdW1wIGhpbGl0ZSBoaXN0IGhpc3RfNyBoaXN0b2dyYW0gaGxvZ2l0IGhsdSBobWVhbnMgaG90ZWwgaG90ZWxsaW5nIGhwcm9iaXQgaHJlZyBoc2VhcmNoIGljZDkgaWNkOV9mZiBpY2Q5cCBpaXMgaW1wdXRlIGltdGVzdCBpbmJhc2UgaW5jbHVkZSBpbmYgaW5maSBpbmZpbCBpbmZpbGUgaW5maXggaW5wIGlucHUgaW5wdXQgaW5zIGluc2hlZXQgaW5zcCBpbnNwZSBpbnNwZWMgaW5zcGVjdCBpbnRlZyBpbnRlbiBpbnRyZWcgaW50cmVnXzcgaW50cmVnX3AgaW50cmcyX2xsIGludHJnX2xsIGludHJnX2xsMiBpcG9sYXRlIGlxcmVnIGlyIGlyZiBpcmZfY3JlYXRlIGlyZm0gaXJpIGlzX3N2eSBpc19zdnlzdW0gaXNpZCBpc3RkaXplIGl2cHJvYl8xX2xmIGl2cHJvYl9sZiBpdnByb2JpdCBpdnByb2JpdF9wIGl2cmVnIGl2cmVnX2Zvb3Rub3RlIGl2dG9iXzFfbGYgaXZ0b2JfbGYgaXZ0b2JpdCBpdnRvYml0X3AgamFja2tuaWZlIGphY2tuaWZlIGprbmlmZSBqa25pZmVfNiBqa25pZmVfOCBqa3N0YXQgam9pbmJ5IGthbGFybWExIGthcCBrYXBfMyBrYXBtZWllciBrYXBwYSBrYXB3Z3Qga2RlbnNpdHkga2RlbnNpdHlfNyBrZWVwIGtzbSBrc21pcm5vdiBrdGF1IGt3YWxsaXMgbHwwIGxhIGxhYiBsYWJlIGxhYmVsIGxhYmVsYm9vayBsYWRkZXIgbGV2ZWxzIGxldmVsc29mIGxldmVyYWdlIGxmaXQgbGZpdF9wIGxpIGxpbmNvbSBsaW5lIGxpbmt0ZXN0IGxpcyBsaXN0IGxsb2doZXRfZ2xmIGxsb2doZXRfZ2xmX3NoIGxsb2doZXRfZ3AgbGxvZ2hldF9pbGYgbGxvZ2hldF9pbGZfc2ggbGxvZ2hldF9pcCBsbG9naV9zdyBsbG9naXNfcCBsbG9naXN0IGxsb2dpc3RpYyBsbG9naXN0aWNoZXQgbG5vcm1fbGYgbG5vcm1fc3cgbG5vcm1hX3AgbG5vcm1hbCBsbm9ybWFsaGV0IGxub3JtaGV0X2dsZiBsbm9ybWhldF9nbGZfc2ggbG5vcm1oZXRfZ3AgbG5vcm1oZXRfaWxmIGxub3JtaGV0X2lsZl9zaCBsbm9ybWhldF9pcCBsbnNrZXcwIGxvYWRpbmdwbG90IGxvYyBsb2NhIGxvY2FsIGxvZyBsb2dpIGxvZ2lzX2xmIGxvZ2lzdGljIGxvZ2lzdGljX3AgbG9naXQgbG9naXRfZXN0YXQgbG9naXRfcCBsb2dsb2dzIGxvZ3JhbmsgbG9uZXdheSBsb29rZm9yIGxvb2t1cCBsb3dlc3MgbG93ZXNzXzcgbHByZWRpY3QgbHJlY29tcCBscm9jIGxyb2NfNyBscnRlc3QgbHMgbHNlbnMgbHNlbnNfNyBsc2Vuc194IGxzdGF0IGx0YWJsZSBsdGFibGVfNyBsdHJpYW5nIGx2IGx2cjJwbG90IGx2cjJwbG90XzcgbXwwIG1hIG1hYyBtYWNyIG1hY3JvIG1ha2VjbnMgbWFuIG1hbm92YSBtYW5vdmFfZXN0YXQgbWFub3ZhX3AgbWFub3ZhdGVzdCBtYW50ZWwgbWFyayBtYXJraW4gbWFya291dCBtYXJrc2FtcGxlIG1hdCBtYXRfY2FwcCBtYXRfb3JkZXIgbWF0X3B1dF9yciBtYXRfcmFwcCBtYXRhIG1hdGFfY2xlYXIgbWF0YV9kZXNjcmliZSBtYXRhX2Ryb3AgbWF0YV9tYXRkZXNjcmliZSBtYXRhX21hdHNhdmUgbWF0YV9tYXR1c2UgbWF0YV9tZW1vcnkgbWF0YV9tbGliIG1hdGFfbW9zYXZlIG1hdGFfcmVuYW1lIG1hdGFfd2hpY2ggbWF0YWxhYmVsIG1hdGNwcm9jIG1hdGxpc3QgbWF0bmFtZSBtYXRyIG1hdHJpIG1hdHJpeCBtYXRyaXhfaW5wdXRfX2RsZyBtYXRzdHJpayBtY2MgbWNjaSBtZDBfIG1kMV8gbWQxZGVidWdfIG1kMl8gbWQyZGVidWdfIG1kcyBtZHNfZXN0YXQgbWRzX3AgbWRzY29uZmlnIG1kc2xvbmcgbWRzbWF0IG1kc3NoZXBhcmQgbWR5dG9lIG1keXRvZiBtZV9kZXJkIG1lYW4gbWVhbnMgbWVkaWFuIG1lbW9yeSBtZW1zaXplIG1lcXBhcnNlIG1lciBtZXJnIG1lcmdlIG1mcCBtZnggbWhlbHAgbWhvZGRzIG1pbmJvdW5kIG1peGVkX2xsIG1peGVkX2xsX3JlcGFybSBta2Fzc2VydCBta2RpciBta21hdCBta3NwbGluZSBtbCBtbF81IG1sX2FkanMgbWxfYmhoaHMgbWxfY19kIG1sX2NoZWNrIG1sX2NsZWFyIG1sX2NudCBtbF9kZWJ1ZyBtbF9kZWZkIG1sX2UwIG1sX2UwX2JmZ3MgbWxfZTBfY3ljbGUgbWxfZTBfZGZwIG1sX2UwaSBtbF9lMSBtbF9lMV9iZmdzIG1sX2UxX2JoaGggbWxfZTFfY3ljbGUgbWxfZTFfZGZwIG1sX2UyIG1sX2UyX2N5Y2xlIG1sX2ViZmcwIG1sX2ViZnIwIG1sX2ViZnIxIG1sX2ViaDBxIG1sX2ViaGgwIG1sX2ViaHIwIG1sX2VicjBpIG1sX2VjcjBpIG1sX2VkZnAwIG1sX2VkZnIwIG1sX2VkZnIxIG1sX2VkcjBpIG1sX2VkcyBtbF9lZXIwaSBtbF9lZ3IwaSBtbF9lbGYgbWxfZWxmX2JmZ3MgbWxfZWxmX2JoaGggbWxfZWxmX2N5Y2xlIG1sX2VsZl9kZnAgbWxfZWxmaSBtbF9lbGZzIG1sX2VucjBpIG1sX2VucnIwIG1sX2VyZHUwIG1sX2VyZHUwX2JmZ3MgbWxfZXJkdTBfYmhoaCBtbF9lcmR1MF9iaGhocSBtbF9lcmR1MF9jeWNsZSBtbF9lcmR1MF9kZnAgbWxfZXJkdTBfbnJiZmdzIG1sX2V4ZGUgbWxfZm9vdG5vdGUgbWxfZ2VxbnIgbWxfZ3JhZDAgbWxfZ3JhcGggbWxfaGJoaGggbWxfaGQwIG1sX2hvbGQgbWxfaW5pdCBtbF9pbnYgbWxfbG9nIG1sX21heCBtbF9tbG91dCBtbF9tbG91dF84IG1sX21vZGVsIG1sX25iMCBtbF9vcHQgbWxfcCBtbF9wbG90IG1sX3F1ZXJ5IG1sX3JkZ3JkIG1sX3JlcG9yIG1sX3NfZSBtbF9zY29yZSBtbF9zZWFyYyBtbF90ZWNobmlxdWUgbWxfdW5ob2xkIG1sZXZhbCBtbGZfIG1sbWF0YnlzdW0gbWxtYXRzdW0gbWxvZyBtbG9naSBtbG9naXQgbWxvZ2l0X2Zvb3Rub3RlIG1sb2dpdF9wIG1sb3B0cyBtbHN1bSBtbHZlY3N1bSBtbmwwXyBtb3IgbW9yZSBtb3YgbW92ZSBtcHJvYml0IG1wcm9iaXRfbGYgbXByb2JpdF9wIG1yZHUwXyBtcmR1MV8gbXZkZWNvZGUgbXZlbmNvZGUgbXZyZWcgbXZyZWdfZXN0YXQgbnwwIG5icmVnIG5icmVnX2FsIG5icmVnX2xmIG5icmVnX3AgbmJyZWdfc3cgbmVzdHJlZyBuZXQgbmV3ZXkgbmV3ZXlfNyBuZXdleV9wIG5ld3MgbmwgbmxfNyBubF85IG5sXzlfcCBubF9wIG5sX3BfNyBubGNvbSBubGNvbV9wIG5sZXhwMiBubGV4cDJfNyBubGV4cDJhIG5sZXhwMmFfNyBubGV4cDMgbmxleHAzXzcgbmxnb20zIG5sZ29tM183IG5sZ29tNCBubGdvbTRfNyBubGluaXQgbmxsb2czIG5sbG9nM183IG5sbG9nNCBubGxvZzRfNyBubG9nX3JkIG5sb2dpdCBubG9naXRfcCBubG9naXRnZW4gbmxvZ2l0dHJlZSBubHByZWQgbm8gbm9icmVhayBub2kgbm9pcyBub2lzaSBub2lzaWwgbm9pc2lseSBub3RlIG5vdGVzIG5vdGVzX2RsZyBucHRyZW5kIG51bWxhYmVsIG51bWxpc3Qgb2RiYyBvbGRfdmVyIG9sbyBvbG9nIG9sb2dpIG9sb2dpX3N3IG9sb2dpdCBvbG9naXRfcCBvbG9naXRwIG9uIG9uZSBvbmV3IG9uZXdhIG9uZXdheSBvcF9jb2xubSBvcF9jb21wIG9wX2RpZmYgb3BfaW52IG9wX3N0ciBvcHIgb3BybyBvcHJvYiBvcHJvYl9zdyBvcHJvYmkgb3Byb2JpX3Agb3Byb2JpdCBvcHJvYml0cCBvcHRzX2V4Y2x1c2l2ZSBvcmRlciBvcnRob2cgb3J0aHBvbHkgb3Ugb3V0IG91dGYgb3V0Zmkgb3V0ZmlsIG91dGZpbGUgb3V0cyBvdXRzaCBvdXRzaGUgb3V0c2hlZSBvdXRzaGVldCBvdnRlc3QgcGFjIHBhY183IHBhbGV0dGUgcGFyc2UgcGFyc2VfZGlzc2ltIHBhdXNlIHBjYSBwY2FfOCBwY2FfZGlzcGxheSBwY2FfZXN0YXQgcGNhX3AgcGNhX3JvdGF0ZSBwY2FtYXQgcGNoYXJ0IHBjaGFydF83IHBjaGkgcGNoaV83IHBjb3JyIHBjdGlsZSBwZW50aXVtIHBlcmdyYW0gcGVyZ3JhbV83IHBlcm11dGUgcGVybXV0ZV84IHBlcnNvbmFsIHBldG9fc3QgcGtjb2xsYXBzZSBwa2Nyb3NzIHBrZXF1aXYgcGtleGFtaW5lIHBrZXhhbWluZV83IHBrc2hhcGUgcGtzdW1tIHBrc3VtbV83IHBsIHBsbyBwbG90IHBsdWdpbiBwbm9ybSBwbm9ybV83IHBvaXNnb2YgcG9pc3NfbGYgcG9pc3Nfc3cgcG9pc3NvX3AgcG9pc3NvbiBwb2lzc29uX2VzdGF0IHBvc3QgcG9zdGNsb3NlIHBvc3RmaWxlIHBvc3R1dGlsIHBwZXJyb24gcHIgcHJhaXMgcHJhaXNfZSBwcmFpc19lMiBwcmFpc19wIHByZWRpY3QgcHJlZGljdG5sIHByZXNlcnZlIHByaW50IHBybyBwcm9iIHByb2JpIHByb2JpdCBwcm9iaXRfZXN0YXQgcHJvYml0X3AgcHJvY190aW1lIHByb2NvdmVybGF5IHByb2NydXN0ZXMgcHJvY3J1c3Rlc19lc3RhdCBwcm9jcnVzdGVzX3AgcHJvZmlsZXIgcHJvZyBwcm9nciBwcm9ncmEgcHJvZ3JhbSBwcm9wIHByb3BvcnRpb24gcHJ0ZXN0IHBydGVzdGkgcHdjb3JyIHB3ZCBxXFxcXHMgcWJ5IHFieXMgcWNoaSBxY2hpXzcgcWxhZGRlciBxbGFkZGVyXzcgcW5vcm0gcW5vcm1fNyBxcXBsb3QgcXFwbG90XzcgcXJlZyBxcmVnX2MgcXJlZ19wIHFyZWdfc3cgcXUgcXVhZGNoayBxdWFudGlsZSBxdWFudGlsZV83IHF1ZSBxdWVyIHF1ZXJ5IHJhbmdlIHJhbmtzdW0gcmF0aW8gcmNoYXJ0IHJjaGFydF83IHJjb2YgcmVjYXN0IHJlY2xpbmsgcmVjb2RlIHJlZyByZWczIHJlZzNfcCByZWdkdyByZWdyIHJlZ3JlIHJlZ3JlX3AyIHJlZ3JlcyByZWdyZXNfcCByZWdyZXNzIHJlZ3Jlc3NfZXN0YXQgcmVncml2X3AgcmVtYXAgcmVuIHJlbmEgcmVuYW0gcmVuYW1lIHJlbnBmaXggcmVwZWF0IHJlcGxhY2UgcmVwb3J0IHJlc2hhcGUgcmVzdG9yZSByZXQgcmV0dSByZXR1ciByZXR1cm4gcm0gcm1kaXIgcm9idmFyIHJvY2NvbXAgcm9jY29tcF83IHJvY2NvbXBfOCByb2NmX2xmIHJvY2ZpdCByb2NmaXRfOCByb2Nnb2xkIHJvY3Bsb3Qgcm9jcGxvdF83IHJvY3RhYiByb2N0YWJfNyByb2xsaW5nIHJvbG9naXQgcm9sb2dpdF9wIHJvdCByb3RhIHJvdGF0IHJvdGF0ZSByb3RhdGVtYXQgcnJlZyBycmVnX3AgcnUgcnVuIHJ1bnRlc3QgcnZmcGxvdCBydmZwbG90XzcgcnZwcGxvdCBydnBwbG90Xzcgc2Egc2FmZXN1bSBzYW1wbGUgc2FtcHNpIHNhdiBzYXZlIHNhdmVkcmVzdWx0cyBzYXZlb2xkIHNjIHNjYSBzY2FsIHNjYWxhIHNjYWxhciBzY2F0dGVyIHNjbV9taW5lIHNjbyBzY29iX2xmIHNjb2JfcCBzY29iaV9zdyBzY29iaXQgc2NvciBzY29yZSBzY29yZXBsb3Qgc2NvcmVwbG90X2hlbHAgc2NyZWUgc2NyZWVwbG90IHNjcmVlcGxvdF9oZWxwIHNkdGVzdCBzZHRlc3RpIHNlIHNlYXJjaCBzZXBhcmF0ZSBzZXBlcmF0ZSBzZXJyYmFyIHNlcnJiYXJfNyBzZXJzZXQgc2V0IHNldF9kZWZhdWx0cyBzZnJhbmNpYSBzaCBzaGUgc2hlbCBzaGVsbCBzaGV3aGFydCBzaGV3aGFydF83IHNpZ25lc3RpbWF0aW9uc2FtcGxlIHNpZ25yYW5rIHNpZ250ZXN0IHNpbXVsIHNpbXVsXzcgc2ltdWxhdGUgc2ltdWxhdGVfOCBza3Rlc3Qgc2xlZXAgc2xvZ2l0IHNsb2dpdF9kMiBzbG9naXRfcCBzbW9vdGggc25hcHNwYW4gc28gc29yIHNvcnQgc3BlYXJtYW4gc3Bpa2VwbG90IHNwaWtlcGxvdF83IHNwaWtlcGx0IHNwbGluZV94IHNwbGl0IHNxcmVnIHNxcmVnX3Agc3JldCBzcmV0dSBzcmV0dXIgc3JldHVybiBzc2Mgc3Qgc3RfY3Qgc3RfaGMgc3RfaGNkIHN0X2hjZF9zaCBzdF9pcyBzdF9pc3N5cyBzdF9ub3RlIHN0X3Byb21vIHN0X3NldCBzdF9zaG93IHN0X3NtcGwgc3Rfc3ViaWQgc3RhY2sgc3RhdHNieSBzdGF0c2J5Xzggc3RiYXNlIHN0Y2kgc3RjaV83IHN0Y294IHN0Y294X2VzdGF0IHN0Y294X2ZyIHN0Y294X2ZyX2xsIHN0Y294X3Agc3Rjb3hfc3cgc3Rjb3hrbSBzdGNveGttXzcgc3Rjc3RhdCBzdGN1cnYgc3RjdXJ2ZSBzdGN1cnZlXzcgc3RkZXMgc3RlbSBzdGVwd2lzZSBzdGVyZWcgc3RmaWxsIHN0Z2VuIHN0aXIgc3Rqb2luIHN0bWMgc3RtaCBzdHBocGxvdCBzdHBocGxvdF83IHN0cGh0ZXN0IHN0cGh0ZXN0Xzcgc3RwdGltZSBzdHJhdGUgc3RyYXRlXzcgc3RyZWcgc3RyZWdfc3cgc3RyZXNldCBzdHMgc3RzXzcgc3RzZXQgc3RzcGxpdCBzdHN1bSBzdHRvY2Mgc3R0b2N0IHN0dmFyeSBzdHdlaWIgc3Ugc3Vlc3Qgc3Vlc3RfOCBzdW0gc3VtbSBzdW1tYSBzdW1tYXIgc3VtbWFyaSBzdW1tYXJpeiBzdW1tYXJpemUgc3VuZmxvd2VyIHN1cmVnIHN1cnZjdXJ2IHN1cnZzdW0gc3ZhciBzdmFyX3Agc3ZtYXQgc3Z5IHN2eV9kaXNwIHN2eV9kcmVnIHN2eV9lc3Qgc3Z5X2VzdF83IHN2eV9lc3RhdCBzdnlfZ2V0IHN2eV9nbmJyZWdfcCBzdnlfaGVhZCBzdnlfaGVhZGVyIHN2eV9oZWNrbWFuX3Agc3Z5X2hlY2twcm9iX3Agc3Z5X2ludHJlZ19wIHN2eV9pdnJlZ19wIHN2eV9sb2dpc3RpY19wIHN2eV9sb2dpdF9wIHN2eV9tbG9naXRfcCBzdnlfbmJyZWdfcCBzdnlfb2xvZ2l0X3Agc3Z5X29wcm9iaXRfcCBzdnlfcG9pc3Nvbl9wIHN2eV9wcm9iaXRfcCBzdnlfcmVncmVzc19wIHN2eV9zdWIgc3Z5X3N1Yl83IHN2eV94IHN2eV94Xzcgc3Z5X3hfcCBzdnlkZXMgc3Z5ZGVzXzggc3Z5Z2VuIHN2eWduYnJlZyBzdnloZWNrbWFuIHN2eWhlY2twcm9iIHN2eWludHJlZyBzdnlpbnRyZWdfNyBzdnlpbnRyZyBzdnlpdnJlZyBzdnlsYyBzdnlsb2dfcCBzdnlsb2dpdCBzdnltYXJrb3V0IHN2eW1hcmtvdXRfOCBzdnltZWFuIHN2eW1sb2cgc3Z5bWxvZ2l0IHN2eW5icmVnIHN2eW9sb2cgc3Z5b2xvZ2l0IHN2eW9wcm9iIHN2eW9wcm9iaXQgc3Z5b3B0cyBzdnlwb2lzIHN2eXBvaXNfNyBzdnlwb2lzc29uIHN2eXByb2JpdCBzdnlwcm9idCBzdnlwcm9wIHN2eXByb3BfNyBzdnlyYXRpbyBzdnlyZWcgc3Z5cmVnX3Agc3Z5cmVncmVzcyBzdnlzZXQgc3Z5c2V0Xzcgc3Z5c2V0Xzggc3Z5dGFiIHN2eXRhYl83IHN2eXRlc3Qgc3Z5dG90YWwgc3cgc3dfOCBzd2NucmVnIHN3Y294IHN3ZXJlZyBzd2lsayBzd2xvZ2lzIHN3bG9naXQgc3dvbG9naXQgc3dvcHJidCBzd3BvaXMgc3dwcm9iaXQgc3dxcmVnIHN3dG9iaXQgc3d3ZWliIHN5bW1ldHJ5IHN5bW1pIHN5bXBsb3Qgc3ltcGxvdF83IHN5bnRheCBzeXNkZXNjcmliZSBzeXNkaXIgc3lzdXNlIHN6cm9ldGVyIHRhIHRhYiB0YWIxIHRhYjIgdGFiX29yIHRhYmQgdGFiZGkgdGFiZGlzIHRhYmRpc3AgdGFiaSB0YWJsZSB0YWJvZGRzIHRhYm9kZHNfNyB0YWJzdGF0IHRhYnUgdGFidWwgdGFidWxhIHRhYnVsYXQgdGFidWxhdGUgdGUgdGVtcGZpbGUgdGVtcG5hbWUgdGVtcHZhciB0ZXMgdGVzdCB0ZXN0bmwgdGVzdHBhcm0gdGVzdHN0ZCB0ZXRyYWNob3JpYyB0aW1lX2l0IHRpbWVyIHRpcyB0b2IgdG9iaSB0b2JpdCB0b2JpdF9wIHRvYml0X3N3IHRva2VuIHRva2VuaSB0b2tlbml6IHRva2VuaXplIHRvc3RyaW5nIHRvdGFsIHRyYW5zbGF0ZSB0cmFuc2xhdG9yIHRyYW5zbWFwIHRyZWF0X2xsIHRyZWF0cl9wIHRyZWF0cmVnIHRyaW0gdHJuYl9jb25zIHRybmJfbWVhbiB0cnBvaXNzX2QyIHRydW5jX2xsIHRydW5jcl9wIHRydW5jcmVnIHRzYXBwZW5kIHRzZXQgdHNmaWxsIHRzbGluZSB0c2xpbmVfZXggdHNyZXBvcnQgdHNyZXZhciB0c3JsaW5lIHRzc2V0IHRzc21vb3RoIHRzdW5hYiB0dGVzdCB0dGVzdGkgdHV0X2NoayB0dXRfd2FpdCB0dXRvcmlhbCB0dyB0d2FyZV9zdCB0d28gdHdvd2F5IHR3b3dheV9fZnBmaXRfc2Vyc2V0IHR3b3dheV9fZnVuY3Rpb25fZ2VuIHR3b3dheV9faGlzdG9ncmFtX2dlbiB0d293YXlfX2lwb2ludF9zZXJzZXQgdHdvd2F5X19pcG9pbnRzX3NlcnNldCB0d293YXlfX2tkZW5zaXR5X2dlbiB0d293YXlfX2xmaXRfc2Vyc2V0IHR3b3dheV9fbm9ybWdlbl9nZW4gdHdvd2F5X19wY2lfc2Vyc2V0IHR3b3dheV9fcWZpdF9zZXJzZXQgdHdvd2F5X19zY2F0dGVyaV9zZXJzZXQgdHdvd2F5X19zdW5mbG93ZXJfZ2VuIHR3b3dheV9rc21fc2Vyc2V0IHR5IHR5cCB0eXBlIHR5cGVvZiB1fDAgdW5hYiB1bmFiYnJldiB1bmFiY21kIHVwZGF0ZSB1cyB1c2UgdXNlbGFiZWwgdmFyIHZhcl9ta2NvbXBhbmlvbiB2YXJfcCB2YXJiYXNpYyB2YXJmY2FzdCB2YXJncmFuZ2VyIHZhcmlyZiB2YXJpcmZfYWRkIHZhcmlyZl9jZ3JhcGggdmFyaXJmX2NyZWF0ZSB2YXJpcmZfY3RhYmxlIHZhcmlyZl9kZXNjcmliZSB2YXJpcmZfZGlyIHZhcmlyZl9kcm9wIHZhcmlyZl9lcmFzZSB2YXJpcmZfZ3JhcGggdmFyaXJmX29ncmFwaCB2YXJpcmZfcmVuYW1lIHZhcmlyZl9zZXQgdmFyaXJmX3RhYmxlIHZhcmxpc3QgdmFybG1hciB2YXJub3JtIHZhcnNvYyB2YXJzdGFibGUgdmFyc3RhYmxlX3cgdmFyc3RhYmxlX3cyIHZhcndsZSB2Y2UgdmVjIHZlY19mZXZkIHZlY19ta3BoaSB2ZWNfcCB2ZWNfcF93IHZlY2lyZl9jcmVhdGUgdmVjbG1hciB2ZWNsbWFyX3cgdmVjbm9ybSB2ZWNub3JtX3cgdmVjcmFuayB2ZWNzdGFibGUgdmVyaW5zdCB2ZXJzIHZlcnNpIHZlcnNpbyB2ZXJzaW9uIHZpZXcgdmlld3NvdXJjZSB2aWYgdndscyB3ZGF0ZXRvZiB3ZWJkZXNjcmliZSB3ZWJzZWVrIHdlYnVzZSB3ZWliMV9sZiB3ZWliMl9sZiB3ZWliX2xmIHdlaWJfbGYwIHdlaWJoZXRfZ2xmIHdlaWJoZXRfZ2xmX3NoIHdlaWJoZXRfZ2xmYSB3ZWliaGV0X2dsZmFfc2ggd2VpYmhldF9ncCB3ZWliaGV0X2lsZiB3ZWliaGV0X2lsZl9zaCB3ZWliaGV0X2lsZmEgd2VpYmhldF9pbGZhX3NoIHdlaWJoZXRfaXAgd2VpYnVfc3cgd2VpYnVsX3Agd2VpYnVsbCB3ZWlidWxsX2Mgd2VpYnVsbF9zIHdlaWJ1bGxoZXQgd2ggd2hlbHAgd2hpIHdoaWNoIHdoaWwgd2hpbGUgd2lsY19zdCB3aWxjb3hvbiB3aW4gd2luZCB3aW5kbyB3aW5kb3cgd2luZXhlYyB3bnRlc3RiIHdudGVzdGJfNyB3bnRlc3RxIHhjaGFydCB4Y2hhcnRfNyB4Y29yciB4Y29ycl83IHhpIHhpXzYgeG1sc2F2IHhtbHNhdmUgeG1sdXNlIHhwb3NlIHhzaCB4c2hlIHhzaGVsIHhzaGVsbCB4dF9paXMgeHRfdGlzIHh0YWJfcCB4dGFib25kIHh0YmluX3AgeHRjbG9nIHh0Y2xvZ2xvZyB4dGNsb2dsb2dfOCB4dGNsb2dsb2dfZDIgeHRjbG9nbG9nX3BhX3AgeHRjbG9nbG9nX3JlX3AgeHRjbnRfcCB4dGNvcnIgeHRkYXRhIHh0ZGVzIHh0ZnJvbnRfcCB4dGZyb250aWVyIHh0Z2VlIHh0Z2VlX2VsaW5rIHh0Z2VlX2VzdGF0IHh0Z2VlX21ha2VpdmFyIHh0Z2VlX3AgeHRnZWVfcGxpbmsgeHRnbHMgeHRnbHNfcCB4dGhhdXMgeHRoYXVzbWFuIHh0aHRfcCB4dGh0YXlsb3IgeHRpbGUgeHRpbnRfcCB4dGludHJlZyB4dGludHJlZ184IHh0aW50cmVnX2QyIHh0aW50cmVnX3AgeHRpdnBfMSB4dGl2cF8yIHh0aXZyZWcgeHRsaW5lIHh0bGluZV9leCB4dGxvZ2l0IHh0bG9naXRfOCB4dGxvZ2l0X2QyIHh0bG9naXRfZmVfcCB4dGxvZ2l0X3BhX3AgeHRsb2dpdF9yZV9wIHh0bWl4ZWQgeHRtaXhlZF9lc3RhdCB4dG1peGVkX3AgeHRuYl9mZSB4dG5iX2xmIHh0bmJyZWcgeHRuYnJlZ19wYV9wIHh0bmJyZWdfcmVmZV9wIHh0cGNzZSB4dHBjc2VfcCB4dHBvaXMgeHRwb2lzc29uIHh0cG9pc3Nvbl9kMiB4dHBvaXNzb25fcGFfcCB4dHBvaXNzb25fcmVmZV9wIHh0cHJlZCB4dHByb2JpdCB4dHByb2JpdF84IHh0cHJvYml0X2QyIHh0cHJvYml0X3JlX3AgeHRwc19mZSB4dHBzX2xmIHh0cHNfcmVuIHh0cHNfcmVuXzggeHRyYXJfcCB4dHJjIHh0cmNfcCB4dHJjaGggeHRyZWZlX3AgeHRyZWcgeHRyZWdfYmUgeHRyZWdfZmUgeHRyZWdfbWwgeHRyZWdfcGFfcCB4dHJlZ19yZSB4dHJlZ2FyIHh0cmVyZV9wIHh0c2V0IHh0c2ZfbGwgeHRzZl9sbHRpIHh0c3VtIHh0dGFiIHh0dGVzdDAgeHR0b2JpdCB4dHRvYml0XzggeHR0b2JpdF9wIHh0dHJhbnMgeXggeXh2aWV3X19iYXJsaWtlX2RyYXcgeXh2aWV3X2FyZWFfZHJhdyB5eHZpZXdfYmFyX2RyYXcgeXh2aWV3X2RvdF9kcmF3IHl4dmlld19kcm9wbGluZV9kcmF3IHl4dmlld19mdW5jdGlvbl9kcmF3IHl4dmlld19pYXJyb3dfZHJhdyB5eHZpZXdfaWxhYmVsc19kcmF3IHl4dmlld19ub3JtYWxfZHJhdyB5eHZpZXdfcGNhcnJvd19kcmF3IHl4dmlld19wY2JhcnJvd19kcmF3IHl4dmlld19wY2NhcHN5bV9kcmF3IHl4dmlld19wY3NjYXR0ZXJfZHJhdyB5eHZpZXdfcGNzcGlrZV9kcmF3IHl4dmlld19yYXJlYV9kcmF3IHl4dmlld19yYmFyX2RyYXcgeXh2aWV3X3JiYXJtX2RyYXcgeXh2aWV3X3JjYXBfZHJhdyB5eHZpZXdfcmNhcHN5bV9kcmF3IHl4dmlld19yY29ubmVjdGVkX2RyYXcgeXh2aWV3X3JsaW5lX2RyYXcgeXh2aWV3X3JzY2F0dGVyX2RyYXcgeXh2aWV3X3JzcGlrZV9kcmF3IHl4dmlld19zcGlrZV9kcmF3IHl4dmlld19zdW5mbG93ZXJfZHJhdyB6YXBfcyB6aW5iIHppbmJfbGxmIHppbmJfcGxmIHppcCB6aXBfbGxmIHppcF9wIHppcF9wbGYgenRfY3RfNSB6dF9oY181IHp0X2hjZF81IHp0X2lzXzUgenRfaXNzXzUgenRfc2hvXzUgenRfc21wXzUgenRiYXNlXzUgenRjb3hfNSB6dGRlc181IHp0ZXJlZ181IHp0ZmlsbF81IHp0Z2VuXzUgenRpcl81IHp0am9pbl81IHp0bmIgenRuYl9wIHp0cCB6dHBfcCB6dHNfNSB6dHNldF81IHp0c3BsaV81IHp0c3VtXzUgenR0b2N0XzUgenR2YXJ5XzUgenR3ZWliXzUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL2BbYS16QS1aMC05X10rJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXCRcXHs/W2EtekEtWjAtOV9dK1xcfT8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogJ2BcIlteXFxyXFxuXSo/XCJcXCcnfSxcbiAgICAgICAgICB7YmVnaW46ICdcIlteXFxyXFxuXCJdKlwiJ31cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihhYnN8YWNvc3xhc2lufGF0YW58YXRhbjJ8YXRhbmh8Y2VpbHxjbG9nbG9nfGNvbWJ8Y29zfGRpZ2FtbWF8ZXhwfGZsb29yfGludmNsb2dsb2d8aW52bG9naXR8bG58bG5mYWN0fGxuZmFjdG9yaWFsfGxuZ2FtbWF8bG9nfGxvZzEwfG1heHxtaW58bW9kfHJlbGRpZnxyb3VuZHxzaWdufHNpbnxzcXJ0fHN1bXx0YW58dGFuaHx0cmlnYW1tYXx0cnVuY3xiZXRhZGVufEJpbm9taWFsfGJpbm9ybXxiaW5vcm1hbHxjaGkyfGNoaTJ0YWlsfGRnYW1tYXBkYXxkZ2FtbWFwZGFkYXxkZ2FtbWFwZGFkeHxkZ2FtbWFwZHh8ZGdhbW1hcGR4ZHh8RnxGZGVufEZ0YWlsfGdhbW1hZGVufGdhbW1hcHxpYmV0YXxpbnZiaW5vbWlhbHxpbnZjaGkyfGludmNoaTJ0YWlsfGludkZ8aW52RnRhaWx8aW52Z2FtbWFwfGludmliZXRhfGludm5jaGkyfGludm5GdGFpbHxpbnZuaWJldGF8aW52bm9ybXxpbnZub3JtYWx8aW52dHRhaWx8bmJldGFkZW58bmNoaTJ8bkZkZW58bkZ0YWlsfG5pYmV0YXxub3JtfG5vcm1hbHxub3JtYWxkZW58bm9ybWR8bnBuY2hpMnx0ZGVufHR0YWlsfHVuaWZvcm18YWJicmV2fGNoYXJ8aW5kZXh8aW5kZXhub3R8bGVuZ3RofGxvd2VyfGx0cmltfG1hdGNofHBsdXJhbHxwcm9wZXJ8cmVhbHxyZWdleG18cmVnZXhyfHJlZ2V4c3xyZXZlcnNlfHJ0cmltfHN0cmluZ3xzdHJsZW58c3RybG93ZXJ8c3RybHRyaW18c3RybWF0Y2h8c3Ryb2ZyZWFsfHN0cnBvc3xzdHJwcm9wZXJ8c3RycmV2ZXJzZXxzdHJydHJpbXxzdHJ0cmltfHN0cnVwcGVyfHN1Ymluc3RyfHN1Ymlud29yZHxzdWJzdHJ8dHJpbXx1cHBlcnx3b3JkfHdvcmRjb3VudHxfY2FsbGVyfGF1dG9jb2RlfGJ5dGVvcmRlcnxjaG9wfGNsaXB8Y29uZHxlfGVwc2RvdWJsZXxlcHNmbG9hdHxncm91cHxpbmxpc3R8aW5yYW5nZXxpcmVjb2RlfG1hdHJpeHxtYXhieXRlfG1heGRvdWJsZXxtYXhmbG9hdHxtYXhpbnR8bWF4bG9uZ3xtaXxtaW5ieXRlfG1pbmRvdWJsZXxtaW5mbG9hdHxtaW5pbnR8bWlubG9uZ3xtaXNzaW5nfHJ8cmVjb2RlfHJlcGxheXxyZXR1cm58c3xzY2FsYXJ8ZHxkYXRlfGRheXxkb3d8ZG95fGhhbGZ5ZWFyfG1keXxtb250aHxxdWFydGVyfHdlZWt8eWVhcnxkfGRhaWx5fGRvZmR8ZG9maHxkb2ZtfGRvZnF8ZG9md3xkb2Z5fGh8aGFsZnllYXJseXxob2ZkfG18bW9mZHxtb250aGx5fHF8cW9mZHxxdWFydGVybHl8dGlufHR3aXRoaW58d3x3ZWVrbHl8d29mZHx5fHllYXJseXx5aHx5bXx5b2ZkfHlxfHl3fGNob2xlc2t5fGNvbG51bWJ8Y29sc29mfGNvcnJ8ZGV0fGRpYWd8ZGlhZzBjbnR8ZWx8Z2V0fGhhZGFtYXJkfEl8aW52fGludnN5bXxpc3N5bXxpc3N5bW1ldHJpY3xKfG1hdG1pc3Npbmd8bWF0dW5pZm9ybXxtcmVsZGlmfG51bGxtYXR8cm93bnVtYnxyb3dzb2Z8c3dlZXB8c3ltaW52fHRyYWNlfHZlY3x2ZWNkaWFnKSg/PVxcXFwofCQpJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgaGxqcy5DT01NRU5UKCdeWyBcXHRdKlxcXFwqLiokJywgZmFsc2UpLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBTVEVQMjFfSURFTlRfUkUgPSAnW0EtWl9dW0EtWjAtOV8uXSonO1xuICB2YXIgU1RFUDIxX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6ICdIRUFERVIgRU5EU0VDIERBVEEnXG4gIH07XG4gIHZhciBTVEVQMjFfU1RBUlQgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdJU08tMTAzMDMtMjE7JyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG4gIHZhciBTVEVQMjFfQ0xPU0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdFTkQtSVNPLTEwMzAzLTIxOycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydwMjEnLCAnc3RlcCcsICdzdHAnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLCAvLyBTVEVQIDIxIGlzIGNhc2UgaW5zZW5zaXRpdmUgaW4gdGhlb3J5LCBpbiBwcmFjdGljZSBhbGwgbm9uLWNvbW1lbnRzIGFyZSBjYXBpdGFsaXplZC5cbiAgICBsZXhlbWVzOiBTVEVQMjFfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IFNURVAyMV9LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RFUDIxX1NUQVJULFxuICAgICAgU1RFUDIxX0NMT1NFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqXFxcXCohJywgJ1xcXFwqLycpLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7aWxsZWdhbDogbnVsbH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogXCInXCIsIGVuZDogXCInXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcjJywgZW5kOiAnXFxcXGQrJyxcbiAgICAgICAgICAgIGlsbGVnYWw6ICdcXFxcVydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuXG4gIHZhciBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46ICdcXFxcJCcgKyBobGpzLklERU5UX1JFXG4gIH07XG5cbiAgdmFyIEhFWF9DT0xPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnIyhbYS1mQS1GMC05XXs2fXxbYS1mQS1GMC05XXszfSknXG4gIH07XG5cbiAgdmFyIEFUX0tFWVdPUkRTID0gW1xuICAgICdjaGFyc2V0JyxcbiAgICAnY3NzJyxcbiAgICAnZGVidWcnLFxuICAgICdleHRlbmQnLFxuICAgICdmb250LWZhY2UnLFxuICAgICdmb3InLFxuICAgICdpbXBvcnQnLFxuICAgICdpbmNsdWRlJyxcbiAgICAnbWVkaWEnLFxuICAgICdtaXhpbicsXG4gICAgJ3BhZ2UnLFxuICAgICd3YXJuJyxcbiAgICAnd2hpbGUnXG4gIF07XG5cbiAgdmFyIFBTRVVET19TRUxFQ1RPUlMgPSBbXG4gICAgJ2FmdGVyJyxcbiAgICAnYmVmb3JlJyxcbiAgICAnZmlyc3QtbGV0dGVyJyxcbiAgICAnZmlyc3QtbGluZScsXG4gICAgJ2FjdGl2ZScsXG4gICAgJ2ZpcnN0LWNoaWxkJyxcbiAgICAnZm9jdXMnLFxuICAgICdob3ZlcicsXG4gICAgJ2xhbmcnLFxuICAgICdsaW5rJyxcbiAgICAndmlzaXRlZCdcbiAgXTtcblxuICB2YXIgVEFHUyA9IFtcbiAgICAnYScsXG4gICAgJ2FiYnInLFxuICAgICdhZGRyZXNzJyxcbiAgICAnYXJ0aWNsZScsXG4gICAgJ2FzaWRlJyxcbiAgICAnYXVkaW8nLFxuICAgICdiJyxcbiAgICAnYmxvY2txdW90ZScsXG4gICAgJ2JvZHknLFxuICAgICdidXR0b24nLFxuICAgICdjYW52YXMnLFxuICAgICdjYXB0aW9uJyxcbiAgICAnY2l0ZScsXG4gICAgJ2NvZGUnLFxuICAgICdkZCcsXG4gICAgJ2RlbCcsXG4gICAgJ2RldGFpbHMnLFxuICAgICdkZm4nLFxuICAgICdkaXYnLFxuICAgICdkbCcsXG4gICAgJ2R0JyxcbiAgICAnZW0nLFxuICAgICdmaWVsZHNldCcsXG4gICAgJ2ZpZ2NhcHRpb24nLFxuICAgICdmaWd1cmUnLFxuICAgICdmb290ZXInLFxuICAgICdmb3JtJyxcbiAgICAnaDEnLFxuICAgICdoMicsXG4gICAgJ2gzJyxcbiAgICAnaDQnLFxuICAgICdoNScsXG4gICAgJ2g2JyxcbiAgICAnaGVhZGVyJyxcbiAgICAnaGdyb3VwJyxcbiAgICAnaHRtbCcsXG4gICAgJ2knLFxuICAgICdpZnJhbWUnLFxuICAgICdpbWcnLFxuICAgICdpbnB1dCcsXG4gICAgJ2lucycsXG4gICAgJ2tiZCcsXG4gICAgJ2xhYmVsJyxcbiAgICAnbGVnZW5kJyxcbiAgICAnbGknLFxuICAgICdtYXJrJyxcbiAgICAnbWVudScsXG4gICAgJ25hdicsXG4gICAgJ29iamVjdCcsXG4gICAgJ29sJyxcbiAgICAncCcsXG4gICAgJ3EnLFxuICAgICdxdW90ZScsXG4gICAgJ3NhbXAnLFxuICAgICdzZWN0aW9uJyxcbiAgICAnc3BhbicsXG4gICAgJ3N0cm9uZycsXG4gICAgJ3N1bW1hcnknLFxuICAgICdzdXAnLFxuICAgICd0YWJsZScsXG4gICAgJ3Rib2R5JyxcbiAgICAndGQnLFxuICAgICd0ZXh0YXJlYScsXG4gICAgJ3Rmb290JyxcbiAgICAndGgnLFxuICAgICd0aGVhZCcsXG4gICAgJ3RpbWUnLFxuICAgICd0cicsXG4gICAgJ3VsJyxcbiAgICAndmFyJyxcbiAgICAndmlkZW8nXG4gIF07XG5cbiAgdmFyIFRBR19FTkQgPSAnW1xcXFwuXFxcXHNcXFxcblxcXFxbXFxcXDosXSc7XG5cbiAgdmFyIEFUVFJJQlVURVMgPSBbXG4gICAgJ2FsaWduLWNvbnRlbnQnLFxuICAgICdhbGlnbi1pdGVtcycsXG4gICAgJ2FsaWduLXNlbGYnLFxuICAgICdhbmltYXRpb24nLFxuICAgICdhbmltYXRpb24tZGVsYXknLFxuICAgICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgICAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgICAnYW5pbWF0aW9uLWZpbGwtbW9kZScsXG4gICAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAgICdhbmltYXRpb24tbmFtZScsXG4gICAgJ2FuaW1hdGlvbi1wbGF5LXN0YXRlJyxcbiAgICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICAgJ2F1dG8nLFxuICAgICdiYWNrZmFjZS12aXNpYmlsaXR5JyxcbiAgICAnYmFja2dyb3VuZCcsXG4gICAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICAgJ2JhY2tncm91bmQtY2xpcCcsXG4gICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICdiYWNrZ3JvdW5kLWltYWdlJyxcbiAgICAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAgICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgICAnYmFja2dyb3VuZC1yZXBlYXQnLFxuICAgICdiYWNrZ3JvdW5kLXNpemUnLFxuICAgICdib3JkZXInLFxuICAgICdib3JkZXItYm90dG9tJyxcbiAgICAnYm9yZGVyLWJvdHRvbS1jb2xvcicsXG4gICAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAgICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICAgJ2JvcmRlci1ib3R0b20tc3R5bGUnLFxuICAgICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgICAnYm9yZGVyLWNvbGxhcHNlJyxcbiAgICAnYm9yZGVyLWNvbG9yJyxcbiAgICAnYm9yZGVyLWltYWdlJyxcbiAgICAnYm9yZGVyLWltYWdlLW91dHNldCcsXG4gICAgJ2JvcmRlci1pbWFnZS1yZXBlYXQnLFxuICAgICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAgICdib3JkZXItaW1hZ2Utc291cmNlJyxcbiAgICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgICAnYm9yZGVyLWxlZnQnLFxuICAgICdib3JkZXItbGVmdC1jb2xvcicsXG4gICAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgICAnYm9yZGVyLWxlZnQtd2lkdGgnLFxuICAgICdib3JkZXItcmFkaXVzJyxcbiAgICAnYm9yZGVyLXJpZ2h0JyxcbiAgICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgICAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgICAnYm9yZGVyLXJpZ2h0LXdpZHRoJyxcbiAgICAnYm9yZGVyLXNwYWNpbmcnLFxuICAgICdib3JkZXItc3R5bGUnLFxuICAgICdib3JkZXItdG9wJyxcbiAgICAnYm9yZGVyLXRvcC1jb2xvcicsXG4gICAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAgICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICAgJ2JvcmRlci10b3Atc3R5bGUnLFxuICAgICdib3JkZXItdG9wLXdpZHRoJyxcbiAgICAnYm9yZGVyLXdpZHRoJyxcbiAgICAnYm90dG9tJyxcbiAgICAnYm94LWRlY29yYXRpb24tYnJlYWsnLFxuICAgICdib3gtc2hhZG93JyxcbiAgICAnYm94LXNpemluZycsXG4gICAgJ2JyZWFrLWFmdGVyJyxcbiAgICAnYnJlYWstYmVmb3JlJyxcbiAgICAnYnJlYWstaW5zaWRlJyxcbiAgICAnY2FwdGlvbi1zaWRlJyxcbiAgICAnY2xlYXInLFxuICAgICdjbGlwJyxcbiAgICAnY2xpcC1wYXRoJyxcbiAgICAnY29sb3InLFxuICAgICdjb2x1bW4tY291bnQnLFxuICAgICdjb2x1bW4tZmlsbCcsXG4gICAgJ2NvbHVtbi1nYXAnLFxuICAgICdjb2x1bW4tcnVsZScsXG4gICAgJ2NvbHVtbi1ydWxlLWNvbG9yJyxcbiAgICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAgICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICAgJ2NvbHVtbi1zcGFuJyxcbiAgICAnY29sdW1uLXdpZHRoJyxcbiAgICAnY29sdW1ucycsXG4gICAgJ2NvbnRlbnQnLFxuICAgICdjb3VudGVyLWluY3JlbWVudCcsXG4gICAgJ2NvdW50ZXItcmVzZXQnLFxuICAgICdjdXJzb3InLFxuICAgICdkaXJlY3Rpb24nLFxuICAgICdkaXNwbGF5JyxcbiAgICAnZW1wdHktY2VsbHMnLFxuICAgICdmaWx0ZXInLFxuICAgICdmbGV4JyxcbiAgICAnZmxleC1iYXNpcycsXG4gICAgJ2ZsZXgtZGlyZWN0aW9uJyxcbiAgICAnZmxleC1mbG93JyxcbiAgICAnZmxleC1ncm93JyxcbiAgICAnZmxleC1zaHJpbmsnLFxuICAgICdmbGV4LXdyYXAnLFxuICAgICdmbG9hdCcsXG4gICAgJ2ZvbnQnLFxuICAgICdmb250LWZhbWlseScsXG4gICAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICAgJ2ZvbnQta2VybmluZycsXG4gICAgJ2ZvbnQtbGFuZ3VhZ2Utb3ZlcnJpZGUnLFxuICAgICdmb250LXNpemUnLFxuICAgICdmb250LXNpemUtYWRqdXN0JyxcbiAgICAnZm9udC1zdHJldGNoJyxcbiAgICAnZm9udC1zdHlsZScsXG4gICAgJ2ZvbnQtdmFyaWFudCcsXG4gICAgJ2ZvbnQtdmFyaWFudC1saWdhdHVyZXMnLFxuICAgICdmb250LXdlaWdodCcsXG4gICAgJ2hlaWdodCcsXG4gICAgJ2h5cGhlbnMnLFxuICAgICdpY29uJyxcbiAgICAnaW1hZ2Utb3JpZW50YXRpb24nLFxuICAgICdpbWFnZS1yZW5kZXJpbmcnLFxuICAgICdpbWFnZS1yZXNvbHV0aW9uJyxcbiAgICAnaW1lLW1vZGUnLFxuICAgICdpbmhlcml0JyxcbiAgICAnaW5pdGlhbCcsXG4gICAgJ2p1c3RpZnktY29udGVudCcsXG4gICAgJ2xlZnQnLFxuICAgICdsZXR0ZXItc3BhY2luZycsXG4gICAgJ2xpbmUtaGVpZ2h0JyxcbiAgICAnbGlzdC1zdHlsZScsXG4gICAgJ2xpc3Qtc3R5bGUtaW1hZ2UnLFxuICAgICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgICAnbGlzdC1zdHlsZS10eXBlJyxcbiAgICAnbWFyZ2luJyxcbiAgICAnbWFyZ2luLWJvdHRvbScsXG4gICAgJ21hcmdpbi1sZWZ0JyxcbiAgICAnbWFyZ2luLXJpZ2h0JyxcbiAgICAnbWFyZ2luLXRvcCcsXG4gICAgJ21hcmtzJyxcbiAgICAnbWFzaycsXG4gICAgJ21heC1oZWlnaHQnLFxuICAgICdtYXgtd2lkdGgnLFxuICAgICdtaW4taGVpZ2h0JyxcbiAgICAnbWluLXdpZHRoJyxcbiAgICAnbmF2LWRvd24nLFxuICAgICduYXYtaW5kZXgnLFxuICAgICduYXYtbGVmdCcsXG4gICAgJ25hdi1yaWdodCcsXG4gICAgJ25hdi11cCcsXG4gICAgJ25vbmUnLFxuICAgICdub3JtYWwnLFxuICAgICdvYmplY3QtZml0JyxcbiAgICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgICAnb3BhY2l0eScsXG4gICAgJ29yZGVyJyxcbiAgICAnb3JwaGFucycsXG4gICAgJ291dGxpbmUnLFxuICAgICdvdXRsaW5lLWNvbG9yJyxcbiAgICAnb3V0bGluZS1vZmZzZXQnLFxuICAgICdvdXRsaW5lLXN0eWxlJyxcbiAgICAnb3V0bGluZS13aWR0aCcsXG4gICAgJ292ZXJmbG93JyxcbiAgICAnb3ZlcmZsb3ctd3JhcCcsXG4gICAgJ292ZXJmbG93LXgnLFxuICAgICdvdmVyZmxvdy15JyxcbiAgICAncGFkZGluZycsXG4gICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAncGFkZGluZy1yaWdodCcsXG4gICAgJ3BhZGRpbmctdG9wJyxcbiAgICAncGFnZS1icmVhay1hZnRlcicsXG4gICAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgICAncGFnZS1icmVhay1pbnNpZGUnLFxuICAgICdwZXJzcGVjdGl2ZScsXG4gICAgJ3BlcnNwZWN0aXZlLW9yaWdpbicsXG4gICAgJ3BvaW50ZXItZXZlbnRzJyxcbiAgICAncG9zaXRpb24nLFxuICAgICdxdW90ZXMnLFxuICAgICdyZXNpemUnLFxuICAgICdyaWdodCcsXG4gICAgJ3RhYi1zaXplJyxcbiAgICAndGFibGUtbGF5b3V0JyxcbiAgICAndGV4dC1hbGlnbicsXG4gICAgJ3RleHQtYWxpZ24tbGFzdCcsXG4gICAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcicsXG4gICAgJ3RleHQtZGVjb3JhdGlvbi1saW5lJyxcbiAgICAndGV4dC1kZWNvcmF0aW9uLXN0eWxlJyxcbiAgICAndGV4dC1pbmRlbnQnLFxuICAgICd0ZXh0LW92ZXJmbG93JyxcbiAgICAndGV4dC1yZW5kZXJpbmcnLFxuICAgICd0ZXh0LXNoYWRvdycsXG4gICAgJ3RleHQtdHJhbnNmb3JtJyxcbiAgICAndGV4dC11bmRlcmxpbmUtcG9zaXRpb24nLFxuICAgICd0b3AnLFxuICAgICd0cmFuc2Zvcm0nLFxuICAgICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgICAndHJhbnNmb3JtLXN0eWxlJyxcbiAgICAndHJhbnNpdGlvbicsXG4gICAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAgICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgICAndHJhbnNpdGlvbi1wcm9wZXJ0eScsXG4gICAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgICAndW5pY29kZS1iaWRpJyxcbiAgICAndmVydGljYWwtYWxpZ24nLFxuICAgICd2aXNpYmlsaXR5JyxcbiAgICAnd2hpdGUtc3BhY2UnLFxuICAgICd3aWRvd3MnLFxuICAgICd3aWR0aCcsXG4gICAgJ3dvcmQtYnJlYWsnLFxuICAgICd3b3JkLXNwYWNpbmcnLFxuICAgICd3b3JkLXdyYXAnLFxuICAgICd6LWluZGV4J1xuICBdO1xuXG4gIC8vIGlsbGVnYWxzXG4gIHZhciBJTExFR0FMID0gW1xuICAgICdcXFxcPycsXG4gICAgJyhcXFxcYlJldHVyblxcXFxiKScsIC8vIG1vbmtleVxuICAgICcoXFxcXGJFbmRcXFxcYiknLCAvLyBtb25rZXlcbiAgICAnKFxcXFxiZW5kXFxcXGIpJywgLy8gdmJzY3JpcHRcbiAgICAnKFxcXFxiZGVmXFxcXGIpJywgLy8gZ3JhZGxlXG4gICAgJzsnLCAvLyBhIHdob2xlIGxvdCBvZiBsYW5ndWFnZXNcbiAgICAnI1xcXFxzJywgLy8gbWFya2Rvd25cbiAgICAnXFxcXCpcXFxccycsIC8vIG1hcmtkb3duXG4gICAgJz09PVxcXFxzJywgLy8gbWFya2Rvd25cbiAgICAnXFxcXHwnLFxuICAgICclJywgLy8gcHJvbG9nXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3N0eWwnXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogJ2lmIGVsc2UgZm9yIGluJyxcbiAgICBpbGxlZ2FsOiAnKCcgKyBJTExFR0FMLmpvaW4oJ3wnKSArICcpJyxcbiAgICBjb250YWluczogW1xuXG4gICAgICAvLyBzdHJpbmdzXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuXG4gICAgICAvLyBjb21tZW50c1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcblxuICAgICAgLy8gaGV4IGNvbG9yc1xuICAgICAgSEVYX0NPTE9SLFxuXG4gICAgICAvLyBjbGFzcyB0YWdcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLlthLXpBLVpdW2EtekEtWjAtOV8tXSonICsgVEFHX0VORCxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge2NsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJywgYmVnaW46ICdcXFxcLlthLXpBLVpdW2EtekEtWjAtOV8tXSonfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBpZCB0YWdcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcI1thLXpBLVpdW2EtekEtWjAtOV8tXSonICsgVEFHX0VORCxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge2NsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJywgYmVnaW46ICdcXFxcI1thLXpBLVpdW2EtekEtWjAtOV8tXSonfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyB0YWdzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJyknICsgVEFHX0VORCxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge2NsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsIGJlZ2luOiAnXFxcXGJbYS16QS1aXVthLXpBLVowLTlfLV0qJ31cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgLy8gcHN1ZWRvIHNlbGVjdG9yc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyY/Oj86XFxcXGIoJyArIFBTRVVET19TRUxFQ1RPUlMuam9pbignfCcpICsgJyknICsgVEFHX0VORFxuICAgICAgfSxcblxuICAgICAgLy8gQCBrZXl3b3Jkc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcQCgnICsgQVRfS0VZV09SRFMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG5cbiAgICAgIC8vIHZhcmlhYmxlc1xuICAgICAgVkFSSUFCTEUsXG5cbiAgICAgIC8vIGRpbWVuc2lvblxuICAgICAgaGxqcy5DU1NfTlVNQkVSX01PREUsXG5cbiAgICAgIC8vIG51bWJlclxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcblxuICAgICAgLy8gZnVuY3Rpb25zXG4gICAgICAvLyAgLSBvbmx5IGZyb20gYmVnaW5uaW5nIG9mIGxpbmUgKyB3aGl0ZXNwYWNlXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdeW2EtekEtWl1bYS16QS1aMC05X1xcLV0qXFxcXCguKlxcXFwpJyxcbiAgICAgICAgaWxsZWdhbDogJ1tcXFxcbl0nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7Y2xhc3NOYW1lOiAndGl0bGUnLCBiZWdpbjogJ1xcXFxiW2EtekEtWl1bYS16QS1aMC05X1xcLV0qJ30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBIRVhfQ09MT1IsXG4gICAgICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBhdHRyaWJ1dGVzXG4gICAgICAvLyAgLSBvbmx5IGZyb20gYmVnaW5uaW5nIG9mIGxpbmUgKyB3aGl0ZXNwYWNlXG4gICAgICAvLyAgLSBtdXN0IGhhdmUgd2hpdGVzcGFjZSBhZnRlciBpdFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBBVFRSSUJVVEVTLnJldmVyc2UoKS5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gdmFsdWUgY29udGFpbmVyXG4gICAgICAgICAgZW5kOiAvO3wkLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgSEVYX0NPTE9SLFxuICAgICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgaGxqcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgIF0sXG4gICAgICAgICAgaWxsZWdhbDogL1xcLi8sXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgREVUQUlMUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFxcXFtcXG4obXVsdGlwYXJ0KT8nLCBlbmQ6ICdcXFxcXVxcbidcbiAgfTtcbiAgdmFyIFRJTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcXFxkezR9LVxcXFxkezJ9LVxcXFxkezJ9KFxcXFxzKylcXFxcZHsyfTpcXFxcZHsyfTpcXFxcZHsyfVxcLlxcXFxkK1onXG4gIH07XG4gIHZhciBQUk9HUkVTU1ZBTFVFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICcoXFxcXCt8LSlcXFxcZCsnXG4gIH07XG4gIHZhciBLRVlXT1JEUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXih0ZXN0fHRlc3Rpbmd8c3VjY2Vzc3xzdWNjZXNzZnVsfGZhaWx1cmV8ZXJyb3J8c2tpcHx4ZmFpbHx1eHN1Y2Nlc3MpKDo/KVxcXFxzKyh0ZXN0KT8nIH0sXG4gICAgICB7IGJlZ2luOiAnXnByb2dyZXNzKDo/KShcXFxccyspPyhwb3B8cHVzaCk/JyB9LFxuICAgICAgeyBiZWdpbjogJ150YWdzOicgfSxcbiAgICAgIHsgYmVnaW46ICdedGltZTonIH1cbiAgICBdLFxuICB9O1xuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIERFVEFJTFMsXG4gICAgICBUSU1FLFxuICAgICAgUFJPR1JFU1NWQUxVRSxcbiAgICAgIEtFWVdPUkRTXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFNXSUZUX0tFWVdPUkRTID0ge1xuICAgICAga2V5d29yZDogJ19fQ09MVU1OX18gX19GSUxFX18gX19GVU5DVElPTl9fIF9fTElORV9fIGFzIGFzISBhcz8gYXNzb2NpYXRpdml0eSAnICtcbiAgICAgICAgJ2JyZWFrIGNhc2UgY2F0Y2ggY2xhc3MgY29udGludWUgY29udmVuaWVuY2UgZGVmYXVsdCBkZWZlciBkZWluaXQgZGlkU2V0IGRvICcgK1xuICAgICAgICAnZHluYW1pYyBkeW5hbWljVHlwZSBlbHNlIGVudW0gZXh0ZW5zaW9uIGZhbGx0aHJvdWdoIGZhbHNlIGZpbGVwcml2YXRlIGZpbmFsIGZvciBmdW5jICcgK1xuICAgICAgICAnZ2V0IGd1YXJkIGlmIGltcG9ydCBpbiBpbmRpcmVjdCBpbmZpeCBpbml0IGlub3V0IGludGVybmFsIGlzIGxhenkgbGVmdCBsZXQgJyArXG4gICAgICAgICdtdXRhdGluZyBuaWwgbm9uZSBub25tdXRhdGluZyBvcGVuIG9wZXJhdG9yIG9wdGlvbmFsIG92ZXJyaWRlIHBvc3RmaXggcHJlY2VkZW5jZSAnICtcbiAgICAgICAgJ3ByZWZpeCBwcml2YXRlIHByb3RvY29sIFByb3RvY29sIHB1YmxpYyByZXBlYXQgcmVxdWlyZWQgcmV0aHJvd3MgcmV0dXJuICcgK1xuICAgICAgICAncmlnaHQgc2VsZiBTZWxmIHNldCBzdGF0aWMgc3RydWN0IHN1YnNjcmlwdCBzdXBlciBzd2l0Y2ggdGhyb3cgdGhyb3dzIHRydWUgJyArXG4gICAgICAgICd0cnkgdHJ5ISB0cnk/IFR5cGUgdHlwZWFsaWFzIHVub3duZWQgdmFyIHdlYWsgd2hlcmUgd2hpbGUgd2lsbFNldCcsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBuaWwnLFxuICAgICAgYnVpbHRfaW46ICdhYnMgYWR2YW5jZSBhbGlnbm9mIGFsaWdub2ZWYWx1ZSBhbnlHZW5lcmF0b3IgYXNzZXJ0IGFzc2VydGlvbkZhaWx1cmUgJyArXG4gICAgICAgICdicmlkZ2VGcm9tT2JqZWN0aXZlQyBicmlkZ2VGcm9tT2JqZWN0aXZlQ1VuY29uZGl0aW9uYWwgYnJpZGdlVG9PYmplY3RpdmVDICcgK1xuICAgICAgICAnYnJpZGdlVG9PYmplY3RpdmVDVW5jb25kaXRpb25hbCBjIGNvbnRhaW5zIGNvdW50IGNvdW50RWxlbWVudHMgY291bnRMZWFkaW5nWmVyb3MgJyArXG4gICAgICAgICdkZWJ1Z1ByaW50IGRlYnVnUHJpbnRsbiBkaXN0YW5jZSBkcm9wRmlyc3QgZHJvcExhc3QgZHVtcCBlbmNvZGVCaXRzQXNXb3JkcyAnICtcbiAgICAgICAgJ2VudW1lcmF0ZSBlcXVhbCBmYXRhbEVycm9yIGZpbHRlciBmaW5kIGdldEJyaWRnZWRPYmplY3RpdmVDVHlwZSBnZXRWYUxpc3QgJyArXG4gICAgICAgICdpbmRpY2VzIGluc2VydGlvblNvcnQgaXNCcmlkZ2VkVG9PYmplY3RpdmVDIGlzQnJpZGdlZFZlcmJhdGltVG9PYmplY3RpdmVDICcgK1xuICAgICAgICAnaXNVbmlxdWVseVJlZmVyZW5jZWQgaXNVbmlxdWVseVJlZmVyZW5jZWROb25PYmpDIGpvaW4gbGF6eSBsZXhpY29ncmFwaGljYWxDb21wYXJlICcgK1xuICAgICAgICAnbWFwIG1heCBtYXhFbGVtZW50IG1pbiBtaW5FbGVtZW50IG51bWVyaWNDYXN0IG92ZXJsYXBzIHBhcnRpdGlvbiBwb3NpeCAnICtcbiAgICAgICAgJ3ByZWNvbmRpdGlvbiBwcmVjb25kaXRpb25GYWlsdXJlIHByaW50IHByaW50bG4gcXVpY2tTb3J0IHJlYWRMaW5lIHJlZHVjZSByZWZsZWN0ICcgK1xuICAgICAgICAncmVpbnRlcnByZXRDYXN0IHJldmVyc2Ugcm91bmRVcFRvQWxpZ25tZW50IHNpemVvZiBzaXplb2ZWYWx1ZSBzb3J0IHNwbGl0ICcgK1xuICAgICAgICAnc3RhcnRzV2l0aCBzdHJpZGUgc3RyaWRlb2Ygc3RyaWRlb2ZWYWx1ZSBzd2FwIHRvU3RyaW5nIHRyYW5zY29kZSAnICtcbiAgICAgICAgJ3VuZGVyZXN0aW1hdGVDb3VudCB1bnNhZmVBZGRyZXNzT2YgdW5zYWZlQml0Q2FzdCB1bnNhZmVEb3duY2FzdCB1bnNhZmVVbndyYXAgJyArXG4gICAgICAgICd1bnNhZmVSZWZsZWN0IHdpdGhFeHRlbmRlZExpZmV0aW1lIHdpdGhPYmplY3RBdFBsdXNaZXJvIHdpdGhVbnNhZmVQb2ludGVyICcgK1xuICAgICAgICAnd2l0aFVuc2FmZVBvaW50ZXJUb09iamVjdCB3aXRoVW5zYWZlTXV0YWJsZVBvaW50ZXIgd2l0aFVuc2FmZU11dGFibGVQb2ludGVycyAnICtcbiAgICAgICAgJ3dpdGhVbnNhZmVQb2ludGVyIHdpdGhVbnNhZmVQb2ludGVycyB3aXRoVmFMaXN0IHppcCdcbiAgICB9O1xuXG4gIHZhciBUWVBFID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIGJlZ2luOiAnXFxcXGJbQS1aXVtcXFxcd1xcdTAwQzAtXFx1MDJCOFxcJ10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIEJMT0NLX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJy9cXFxcKicsXG4gICAgJ1xcXFwqLycsXG4gICAge1xuICAgICAgY29udGFpbnM6IFsnc2VsZiddXG4gICAgfVxuICApO1xuICB2YXIgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFxcXFxcKC8sIGVuZDogJ1xcXFwpJyxcbiAgICBrZXl3b3JkczogU1dJRlRfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtdIC8vIGFzc2lnbmVkIGxhdGVyXG4gIH07XG4gIHZhciBOVU1CRVJTID0ge1xuICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAnXFxcXGIoW1xcXFxkX10rKFxcXFwuW1xcXFxkZUVfXSspP3wweFthLWZBLUYwLTlfXSsoXFxcXC5bYS1mQS1GMC05cF9dKyk/fDBiWzAxX10rfDBvWzAtN19dKylcXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgdmFyIFFVT1RFX1NUUklOR19NT0RFID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICBjb250YWluczogW1NVQlNULCBobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gIH0pO1xuICBTVUJTVC5jb250YWlucyA9IFtOVU1CRVJTXTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiBTV0lGVF9LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBCTE9DS19DT01NRU5ULFxuICAgICAgVFlQRSxcbiAgICAgIE5VTUJFUlMsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmMnLCBlbmQ6ICd7JywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgICBiZWdpbjogL1tBLVphLXokX11bMC05QS1aYS16JF9dKi9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLzwvLCBlbmQ6IC8+L1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLywgZW5kOiAvXFwpLywgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiBTV0lGVF9LRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgTlVNQkVSUyxcbiAgICAgICAgICAgICAgUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIHtiZWdpbjogJzonfSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGlsbGVnYWw6IC9bXCInXS9cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6IC9cXFt8JS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3N0cnVjdCBwcm90b2NvbCBjbGFzcyBleHRlbnNpb24gZW51bScsXG4gICAgICAgIGtleXdvcmRzOiBTV0lGVF9LRVlXT1JEUyxcbiAgICAgICAgZW5kOiAnXFxcXHsnLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtiZWdpbjogL1tBLVphLXokX11bXFx1MDBDMC1cXHUwMkI4MC05QS1aYS16JF9dKi99KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJywgLy8gQGF0dHJpYnV0ZXNcbiAgICAgICAgYmVnaW46ICcoQHdhcm5fdW51c2VkX3Jlc3VsdHxAZXhwb3J0ZWR8QGxhenl8QG5vZXNjYXBlfCcgK1xuICAgICAgICAgICAgICAgICAgJ0BOU0NvcHlpbmd8QE5TTWFuYWdlZHxAb2JqY3xAY29udmVudGlvbnxAcmVxdWlyZWR8JyArXG4gICAgICAgICAgICAgICAgICAnQG5vcmV0dXJufEBJQkFjdGlvbnxASUJEZXNpZ25hYmxlfEBJQkluc3BlY3RhYmxlfEBJQk91dGxldHwnICtcbiAgICAgICAgICAgICAgICAgICdAaW5maXh8QHByZWZpeHxAcG9zdGZpeHxAYXV0b2Nsb3N1cmV8QHRlc3RhYmxlfEBhdmFpbGFibGV8JyArXG4gICAgICAgICAgICAgICAgICAnQG5vbm9iamN8QE5TQXBwbGljYXRpb25NYWlufEBVSUFwcGxpY2F0aW9uTWFpbiknXG5cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQnLCBlbmQ6IC8kLyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkNfTElORV9DT01NRU5UX01PREUsIEJMT0NLX0NPTU1FTlRdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcblxuICB2YXIgQ09NTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogL1xcJG5vb3BcXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFt7XG4gICAgICBiZWdpbjogL1xcKC8sXG4gICAgICBlbmQ6IC9cXCkvLFxuICAgICAgY29udGFpbnM6IFsnc2VsZicsIHtcbiAgICAgICAgYmVnaW46IC9cXFxcLi9cbiAgICAgIH1dXG4gICAgfV0sXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIHZhciBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogL1xcJCg/IW5vb3ApW2EtekEtWl1bX2EtekEtWjAtOV0qLyxcbiAgICBlbmQ6IC9cXCgvLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcblxuICB2YXIgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvJVtfYS16QS1aMC05Ol0qLyxcbiAgICBlbmQ6ICclJ1xuICB9O1xuXG4gIHZhciBFU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogL1xcXFwuL1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY29udGFpbnM6IFtcbiAgICAgIENPTU1FTlQsXG4gICAgICBGVU5DVElPTixcbiAgICAgIFZBUklBQkxFLFxuICAgICAgRVNDQVBFX1NFUVVFTkNFXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIExJVEVSQUxTID0gJ3RydWUgZmFsc2UgeWVzIG5vIG51bGwnO1xuXG4gIHZhciBrZXlQcmVmaXggPSAnXlsgXFxcXC1dKic7XG4gIHZhciBrZXlOYW1lID0gICdbYS16QS1aX11bXFxcXHdcXFxcLV0qJztcbiAgdmFyIEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjoga2V5UHJlZml4ICsga2V5TmFtZSArIFwiOlwifSxcbiAgICAgIHsgYmVnaW46IGtleVByZWZpeCArICdcIicgKyBrZXlOYW1lICsgJ1wiJyArIFwiOlwifSxcbiAgICAgIHsgYmVnaW46IGtleVByZWZpeCArIFwiJ1wiICsga2V5TmFtZSArIFwiJ1wiICsgXCI6XCJ9XG4gICAgXVxuICB9O1xuXG4gIHZhciBURU1QTEFURV9WQVJJQUJMRVMgPSB7XG4gICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFx7XFx7JywgZW5kOiAnXFx9XFx9JyB9LCAvLyBqaW5qYSB0ZW1wbGF0ZXMgQW5zaWJsZVxuICAgICAgeyBiZWdpbjogJyVcXHsnLCBlbmQ6ICdcXH0nIH0gLy8gUnVieSBpMThuXG4gICAgXVxuICB9O1xuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7YmVnaW46IC8nLywgZW5kOiAvJy99LFxuICAgICAge2JlZ2luOiAvXCIvLCBlbmQ6IC9cIi99LFxuICAgICAge2JlZ2luOiAvXFxTKy99XG4gICAgXSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVEVNUExBVEVfVkFSSUFCTEVTXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbJ3ltbCcsICdZQU1MJywgJ3lhbWwnXSxcbiAgICBjb250YWluczogW1xuICAgICAgS0VZLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeLS0tXFxzKiQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgeyAvLyBtdWx0aSBsaW5lIHN0cmluZ1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1tcXFxcfD5dICokJyxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogU1RSSU5HLmNvbnRhaW5zLFxuICAgICAgICAvLyB2ZXJ5IHNpbXBsZSB0ZXJtaW5hdGlvbjogbmV4dCBoYXNoIGtleVxuICAgICAgICBlbmQ6IEtFWS52YXJpYW50c1swXS5iZWdpblxuICAgICAgfSxcbiAgICAgIHsgLy8gUnVieS9SYWlscyBlcmJcbiAgICAgICAgYmVnaW46ICc8JVslPS1dPycsIGVuZDogJ1slLV0/JT4nLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gZGF0YSB0eXBlXG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJyEhJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgIH0sXG4gICAgICB7IC8vIGZyYWdtZW50IGlkICZyZWZcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnJicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnJCcsXG4gICAgICB9LFxuICAgICAgeyAvLyBmcmFnbWVudCByZWZlcmVuY2UgKnJlZlxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdcXFxcKicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnJCdcbiAgICAgIH0sXG4gICAgICB7IC8vIGFycmF5IGxpc3RpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVsbGV0JyxcbiAgICAgICAgYmVnaW46ICdeICotJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogTElURVJBTFMsXG4gICAgICAgIGtleXdvcmRzOiB7bGl0ZXJhbDogTElURVJBTFN9XG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgU1RSSU5HXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgLy8gdmVyc2lvbiBvZiBmb3JtYXQgYW5kIHRvdGFsIGFtb3VudCBvZiB0ZXN0Y2FzZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15UQVAgdmVyc2lvbiAoXFxcXGQrKSQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ14xXFxcXC5cXFxcLihcXFxcZCspJCcgfVxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIC8vIFlBTUwgYmxvY2tcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcoXFxzKyk/LS0tJCcsIGVuZDogJ1xcXFwuXFxcXC5cXFxcLiQnLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3lhbWwnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG5cdCAgLy8gdGVzdGNhc2UgbnVtYmVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnIChcXFxcZCspICdcbiAgICAgIH0sXG5cdCAgLy8gdGVzdGNhc2Ugc3RhdHVzIGFuZCBkZXNjcmlwdGlvblxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdeb2snIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ15ub3Qgb2snIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3RrJ10sXG4gICAga2V5d29yZHM6ICdhZnRlciBhcHBlbmQgYXBwbHkgYXJyYXkgYXV0b19leGVjb2sgYXV0b19pbXBvcnQgYXV0b19sb2FkIGF1dG9fbWtpbmRleCAnICtcbiAgICAgICdhdXRvX21raW5kZXhfb2xkIGF1dG9fcXVhbGlmeSBhdXRvX3Jlc2V0IGJnZXJyb3IgYmluYXJ5IGJyZWFrIGNhdGNoIGNkIGNoYW4gY2xvY2sgJyArXG4gICAgICAnY2xvc2UgY29uY2F0IGNvbnRpbnVlIGRkZSBkaWN0IGVuY29kaW5nIGVvZiBlcnJvciBldmFsIGV4ZWMgZXhpdCBleHByIGZibG9ja2VkICcgK1xuICAgICAgJ2Zjb25maWd1cmUgZmNvcHkgZmlsZSBmaWxlZXZlbnQgZmlsZW5hbWUgZmx1c2ggZm9yIGZvcmVhY2ggZm9ybWF0IGdldHMgZ2xvYiBnbG9iYWwgJyArXG4gICAgICAnaGlzdG9yeSBodHRwIGlmIGluY3IgaW5mbyBpbnRlcnAgam9pbiBsYXBwZW5kfDEwIGxhc3NpZ258MTAgbGluZGV4fDEwIGxpbnNlcnR8MTAgbGlzdCAnICtcbiAgICAgICdsbGVuZ3RofDEwIGxvYWQgbHJhbmdlfDEwIGxyZXBlYXR8MTAgbHJlcGxhY2V8MTAgbHJldmVyc2V8MTAgbHNlYXJjaHwxMCBsc2V0fDEwIGxzb3J0fDEwICcrXG4gICAgICAnbWF0aGZ1bmMgbWF0aG9wIG1lbW9yeSBtc2djYXQgbmFtZXNwYWNlIG9wZW4gcGFja2FnZSBwYXJyYXkgcGlkIHBrZzo6Y3JlYXRlIHBrZ19ta0luZGV4ICcrXG4gICAgICAncGxhdGZvcm0gcGxhdGZvcm06OnNoZWxsIHByb2MgcHV0cyBwd2QgcmVhZCByZWZjaGFuIHJlZ2V4cCByZWdpc3RyeSByZWdzdWJ8MTAgcmVuYW1lICcrXG4gICAgICAncmV0dXJuIHNhZmUgc2NhbiBzZWVrIHNldCBzb2NrZXQgc291cmNlIHNwbGl0IHN0cmluZyBzdWJzdCBzd2l0Y2ggdGNsX2VuZE9mV29yZCAnK1xuICAgICAgJ3RjbF9maW5kTGlicmFyeSB0Y2xfc3RhcnRPZk5leHRXb3JkIHRjbF9zdGFydE9mUHJldmlvdXNXb3JkIHRjbF93b3JkQnJlYWtBZnRlciAnK1xuICAgICAgJ3RjbF93b3JkQnJlYWtCZWZvcmUgdGNsdGVzdCB0Y2x2YXJzIHRlbGwgdGltZSB0bSB0cmFjZSB1bmtub3duIHVubG9hZCB1bnNldCB1cGRhdGUgJytcbiAgICAgICd1cGxldmVsIHVwdmFyIHZhcmlhYmxlIHZ3YWl0IHdoaWxlJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc7WyBcXFxcdF0qIycsICckJyksXG4gICAgICBobGpzLkNPTU1FTlQoJ15bIFxcXFx0XSojJywgJyQnKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3Byb2MnLFxuICAgICAgICBlbmQ6ICdbXFxcXHtdJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICBiZWdpbjogJ1sgXFxcXHRcXFxcblxcXFxyXSsoOjopP1thLXpBLVpfXSgoOjopP1thLXpBLVowLTlfXSkqJyxcbiAgICAgICAgICAgIGVuZDogJ1sgXFxcXHRcXFxcblxcXFxyXScsXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcJChcXFxceyk/KDo6KT9bYS16QS1aX10oKDo6KT9bYS16QS1aMC05X10pKlxcXFwoKFthLXpBLVowLTlfXSkqXFxcXCknLFxuICAgICAgICAgICAgZW5kOiAnW15hLXpBLVowLTlfXFxcXH1cXFxcJF0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwkKFxcXFx7KT8oOjopP1thLXpBLVpfXSgoOjopP1thLXpBLVowLTlfXSkqJyxcbiAgICAgICAgICAgIGVuZDogJyhcXFxcKSk/W15hLXpBLVowLTlfXFxcXH1cXFxcJF0nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KSxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW2hsanMuQklOQVJZX05VTUJFUl9NT0RFLCBobGpzLkNfTlVNQkVSX01PREVdXG4gICAgICB9XG4gICAgXVxuICB9XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgQ09NTUFORCA9IHtcbiAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgIGJlZ2luOiAvXFxcXC8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtiZWdpbjogL1thLXpBLVrQsC3Rj9CQLdGPXStbKl0/L30sXG4gICAgICAgICAge2JlZ2luOiAvW15hLXpBLVrQsC3Rj9CQLdGPMC05XS99XG4gICAgICAgIF0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLCAvLyBiZWNhdXNlIGl0IGxvb2tzIGxpa2UgYXR0cmlidXRlcyBpbiBIVE1MIHRhZ3NcbiAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICB7YmVnaW46IC9cXFsvLCBlbmQ6IC9cXF0vfSxcbiAgICAgICAgICAgICAgICB7YmVnaW46IC9cXHsvLCBlbmQ6IC9cXH0vfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogL1xccyo9XFxzKi8sIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgIGJlZ2luOiAvLT9cXGQqXFwuP1xcZCsocHR8cGN8bW18Y218aW58ZGR8Y2N8ZXh8ZW0pPy9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUFORCxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZm9ybXVsYScsXG4gICAgICAgIGNvbnRhaW5zOiBbQ09NTUFORF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46IC9cXCRcXCQvLCBlbmQ6IC9cXCRcXCQvfSxcbiAgICAgICAgICB7YmVnaW46IC9cXCQvLCBlbmQ6IC9cXCQvfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnJScsXG4gICAgICAgICckJyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApXG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEJVSUxUX0lOX1RZUEVTID0gJ2Jvb2wgYnl0ZSBpMTYgaTMyIGk2NCBkb3VibGUgc3RyaW5nIGJpbmFyeSc7XG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICduYW1lc3BhY2UgY29uc3QgdHlwZWRlZiBzdHJ1Y3QgZW51bSBzZXJ2aWNlIGV4Y2VwdGlvbiB2b2lkIG9uZXdheSBzZXQgbGlzdCBtYXAgcmVxdWlyZWQgb3B0aW9uYWwnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIEJVSUxUX0lOX1RZUEVTLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ3RydWUgZmFsc2UnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdzdHJ1Y3QgZW51bSBzZXJ2aWNlIGV4Y2VwdGlvbicsIGVuZDogL1xcey8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICAgIHN0YXJ0czoge2VuZHNXaXRoUGFyZW50OiB0cnVlLCBleGNsdWRlRW5kOiB0cnVlfSAvLyBoYWNrOiBlYXRpbmcgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgdGl0bGVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKHNldHxsaXN0fG1hcClcXFxccyo8JywgZW5kOiAnPicsXG4gICAgICAgIGtleXdvcmRzOiBCVUlMVF9JTl9UWVBFUyxcbiAgICAgICAgY29udGFpbnM6IFsnc2VsZiddXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFRQSUQgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogJ1sxLTldWzAtOV0qJywgLyogbm8gbGVhZGluZyB6ZXJvcyAqL1xuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICB2YXIgVFBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnOlteXFxcXF1dKydcbiAgfTtcbiAgdmFyIFRQREFUQSA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgYmVnaW46ICcoQVJ8UHxQQVlMT0FEfFBSfFJ8U1J8UlNSfExCTHxWUnxVQUxNfE1FU1NBR0V8VVRPT0x8VUZSQU1FfFRJTUVSfFxcXG4gICAgVElNRVJfT1ZFUkZMT1d8Sk9JTlRfTUFYX1NQRUVEfFJFU1VNRV9QUk9HfERJQUdfUkVDKVxcXFxbJywgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUUElELFxuICAgICAgVFBMQUJFTFxuICAgIF1cbiAgfTtcbiAgdmFyIFRQSU8gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIGJlZ2luOiAnKEFJfEFPfERJfERPfEZ8Ukl8Uk98VUl8VU98R0l8R098U0l8U08pXFxcXFsnLCBlbmQ6ICdcXFxcXScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgICdzZWxmJyxcbiAgICAgIFRQSUQsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLCAvKiBmb3IgcG9zIHNlY3Rpb24gYXQgYm90dG9tICovXG4gICAgICBUUExBQkVMXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdBQk9SVCBBQ0MgQURKVVNUIEFORCBBUF9MRCBCUkVBSyBDQUxMIENOVCBDT0wgQ09ORElUSU9OIENPTkZJRyBEQSBEQiAnICtcbiAgICAgICAgJ0RJViBERVRFQ1QgRUxTRSBFTkQgRU5ERk9SIEVSUl9OVU0gRVJST1JfUFJPRyBGSU5FIEZPUiBHUCBHVUFSRCBJTkMgJyArXG4gICAgICAgICdJRiBKTVAgTElORUFSX01BWF9TUEVFRCBMT0NLIE1PRCBNT05JVE9SIE9GRlNFVCBPZmZzZXQgT1IgT1ZFUlJJREUgJyArXG4gICAgICAgICdQQVVTRSBQUkVHIFBUSCBSVF9MRCBSVU4gU0VMRUNUIFNLSVAgU2tpcCBUQSBUQiBUTyBUT09MX09GRlNFVCAnICtcbiAgICAgICAgJ1Rvb2xfT2Zmc2V0IFVGIFVUIFVGUkFNRV9OVU0gVVRPT0xfTlVNIFVOTE9DSyBXQUlUIFggWSBaIFcgUCBSIFNUUkxFTiAnICtcbiAgICAgICAgJ1NVQlNUUiBGSU5EU1RSIFZPRkZTRVQgUFJPRyBBVFRSIE1OIFBPUycsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnT04gT0ZGIG1heF9zcGVlZCBMUE9TIEpQT1MgRU5BQkxFIERJU0FCTEUgU1RBUlQgU1RPUCBSRVNFVCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUUERBVEEsXG4gICAgICBUUElPLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcvKFBST0d8QVRUUnxNTnxQT1N8RU5EKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSAsQ0FMTCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcoQ0FMTHxSVU58UE9JTlRfTE9HSUN8TEJMKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSBDTlQxMDAgd2hlcmUgdGhlIGRlZmF1bHQgbGV4ZW1lcyBkbyBub3RcbiAgICAgICAgICogc2VwYXJhdGUgdGhlIGtleXdvcmQgYW5kIHRoZSBudW1iZXIgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoQUNDfENOVHxTa2lwfE9mZnNldHxQU1BEfFJUX0xEfEFQX0xEfFRvb2xfT2Zmc2V0KSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8qIHRvIGNhdGNoIG51bWJlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIHdvcmQgYm91bmRhcnkgb24gdGhlIGxlZnQgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcZCsoc2VjfG1zZWN8bW0vc2VjfGNtL21pbnxpbmNoL21pbnxkZWcvc2VjfG1tfGlufGNtKT9cXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnWzskXScpLFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJ1s7JF0nKSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLS1lZzonLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHZhciBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogJ1xcXFwoJywgZW5kOiAnXFxcXCknXG4gIH07XG5cbiAgdmFyIEZVTkNUSU9OX05BTUVTID0gJ2F0dHJpYnV0ZSBibG9jayBjb25zdGFudCBjeWNsZSBkYXRlIGR1bXAgaW5jbHVkZSAnICtcbiAgICAgICAgICAgICAgICAgICdtYXggbWluIHBhcmVudCByYW5kb20gcmFuZ2Ugc291cmNlIHRlbXBsYXRlX2Zyb21fc3RyaW5nJztcblxuICB2YXIgRlVOQ1RJT05TID0ge1xuICAgIGJlZ2luS2V5d29yZHM6IEZVTkNUSU9OX05BTUVTLFxuICAgIGtleXdvcmRzOiB7bmFtZTogRlVOQ1RJT05fTkFNRVN9LFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIHZhciBGSUxURVIgPSB7XG4gICAgYmVnaW46IC9cXHxbQS1aYS16X10rOj8vLFxuICAgIGtleXdvcmRzOlxuICAgICAgJ2FicyBiYXRjaCBjYXBpdGFsaXplIGNvbnZlcnRfZW5jb2RpbmcgZGF0ZSBkYXRlX21vZGlmeSBkZWZhdWx0ICcgK1xuICAgICAgJ2VzY2FwZSBmaXJzdCBmb3JtYXQgam9pbiBqc29uX2VuY29kZSBrZXlzIGxhc3QgbGVuZ3RoIGxvd2VyICcgK1xuICAgICAgJ21lcmdlIG5sMmJyIG51bWJlcl9mb3JtYXQgcmF3IHJlcGxhY2UgcmV2ZXJzZSByb3VuZCBzbGljZSBzb3J0IHNwbGl0ICcgK1xuICAgICAgJ3N0cmlwdGFncyB0aXRsZSB0cmltIHVwcGVyIHVybF9lbmNvZGUnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBGVU5DVElPTlNcbiAgICBdXG4gIH07XG5cbiAgdmFyIFRBR1MgPSAnYXV0b2VzY2FwZSBibG9jayBkbyBlbWJlZCBleHRlbmRzIGZpbHRlciBmbHVzaCBmb3IgJyArXG4gICAgJ2lmIGltcG9ydCBpbmNsdWRlIG1hY3JvIHNhbmRib3ggc2V0IHNwYWNlbGVzcyB1c2UgdmVyYmF0aW0nO1xuXG4gIFRBR1MgPSBUQUdTICsgJyAnICsgVEFHUy5zcGxpdCgnICcpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gJ2VuZCcgKyB0fSkuam9pbignICcpO1xuXG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWydjcmFmdGNtcyddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoL1xceyMvLCAvI30vKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHslLywgZW5kOiAvJX0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBUQUdTLFxuICAgICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICBjb250YWluczogW0ZJTFRFUiwgRlVOQ1RJT05TXSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7LywgZW5kOiAvfX0vLFxuICAgICAgICBjb250YWluczogWydzZWxmJywgRklMVEVSLCBGVU5DVElPTlNdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnaW4gaWYgZm9yIHdoaWxlIGZpbmFsbHkgdmFyIG5ldyBmdW5jdGlvbiBkbyByZXR1cm4gdm9pZCBlbHNlIGJyZWFrIGNhdGNoICcgK1xuICAgICAgJ2luc3RhbmNlb2Ygd2l0aCB0aHJvdyBjYXNlIGRlZmF1bHQgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHR5cGVvZiBkZWxldGUgJyArXG4gICAgICAnbGV0IHlpZWxkIGNvbnN0IGNsYXNzIHB1YmxpYyBwcml2YXRlIHByb3RlY3RlZCBnZXQgc2V0IHN1cGVyICcgK1xuICAgICAgJ3N0YXRpYyBpbXBsZW1lbnRzIGVudW0gZXhwb3J0IGltcG9ydCBkZWNsYXJlIHR5cGUgbmFtZXNwYWNlIGFic3RyYWN0ICcgK1xuICAgICAgJ2FzIGZyb20gZXh0ZW5kcyBhc3luYyBhd2FpdCcsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0cnVlIGZhbHNlIG51bGwgdW5kZWZpbmVkIE5hTiBJbmZpbml0eScsXG4gICAgYnVpbHRfaW46XG4gICAgICAnZXZhbCBpc0Zpbml0ZSBpc05hTiBwYXJzZUZsb2F0IHBhcnNlSW50IGRlY29kZVVSSSBkZWNvZGVVUklDb21wb25lbnQgJyArXG4gICAgICAnZW5jb2RlVVJJIGVuY29kZVVSSUNvbXBvbmVudCBlc2NhcGUgdW5lc2NhcGUgT2JqZWN0IEZ1bmN0aW9uIEJvb2xlYW4gRXJyb3IgJyArXG4gICAgICAnRXZhbEVycm9yIEludGVybmFsRXJyb3IgUmFuZ2VFcnJvciBSZWZlcmVuY2VFcnJvciBTdG9wSXRlcmF0aW9uIFN5bnRheEVycm9yICcgK1xuICAgICAgJ1R5cGVFcnJvciBVUklFcnJvciBOdW1iZXIgTWF0aCBEYXRlIFN0cmluZyBSZWdFeHAgQXJyYXkgRmxvYXQzMkFycmF5ICcgK1xuICAgICAgJ0Zsb2F0NjRBcnJheSBJbnQxNkFycmF5IEludDMyQXJyYXkgSW50OEFycmF5IFVpbnQxNkFycmF5IFVpbnQzMkFycmF5ICcgK1xuICAgICAgJ1VpbnQ4QXJyYXkgVWludDhDbGFtcGVkQXJyYXkgQXJyYXlCdWZmZXIgRGF0YVZpZXcgSlNPTiBJbnRsIGFyZ3VtZW50cyByZXF1aXJlICcgK1xuICAgICAgJ21vZHVsZSBjb25zb2xlIHdpbmRvdyBkb2N1bWVudCBhbnkgbnVtYmVyIGJvb2xlYW4gc3RyaW5nIHZvaWQgUHJvbWlzZSdcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsndHMnXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxccypbJ1wiXXVzZSBzdHJpY3RbJ1wiXS9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgeyAvLyB0ZW1wbGF0ZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdgJywgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxceycsIGVuZDogJ1xcXFx9J1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiKDBbYkJdWzAxXSspJyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYigwW29PXVswLTddKyknIH0sXG4gICAgICAgICAgeyBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gXCJ2YWx1ZVwiIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogJygnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIoY2FzZXxyZXR1cm58dGhyb3cpXFxcXGIpXFxcXHMqJyxcbiAgICAgICAga2V5d29yZHM6ICdyZXR1cm4gdGhyb3cgY2FzZScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5SRUdFWFBfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbjogJyhcXFxcKC4qP1xcXFwpfCcgKyBobGpzLklERU5UX1JFICsgJylcXFxccyo9PicsIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZW5kOiAnXFxcXHMqPT4nLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkVcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvXFwoXFxzKlxcKS8sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSwgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdmdW5jdGlvbicsIGVuZDogL1tcXHs7XS8sIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge2JlZ2luOiAvW0EtWmEteiRfXVswLTlBLVphLXokX10qL30pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaWxsZWdhbDogL1tcIidcXChdL1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogLyUvLFxuICAgICAgICByZWxldmFuY2U6IDAgLy8gKCkgPT4ge30gaXMgbW9yZSB0eXBpY2FsIGluIFR5cGVTY3JpcHRcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjb25zdHJ1Y3RvcicsIGVuZDogL1xcey8sIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgaWxsZWdhbDogL1tcIidcXChdL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gcHJldmVudCByZWZlcmVuY2VzIGxpa2UgbW9kdWxlLmlkIGZyb20gYmVpbmcgaGlnbGlnaHRlZCBhcyBtb2R1bGUgZGVmaW5pdGlvbnNcbiAgICAgICAgYmVnaW46IC9tb2R1bGVcXC4vLFxuICAgICAgICBrZXl3b3Jkczoge2J1aWx0X2luOiAnbW9kdWxlJ30sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ21vZHVsZScsIGVuZDogL1xcey8sIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbnRlcmZhY2UnLCBlbmQ6IC9cXHsvLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogJ2ludGVyZmFjZSBleHRlbmRzJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLklERU5UX1JFLCByZWxldmFuY2U6IDAgLy8gaGFjazogcHJldmVudHMgZGV0ZWN0aW9uIG9mIGtleXdvcmRzIGFmdGVyIGRvdHNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgLy8gVmFsdWUgdHlwZXNcbiAgICAgICAgJ2NoYXIgdWNoYXIgdW5pY2hhciBpbnQgdWludCBsb25nIHVsb25nIHNob3J0IHVzaG9ydCBpbnQ4IGludDE2IGludDMyIGludDY0IHVpbnQ4ICcgK1xuICAgICAgICAndWludDE2IHVpbnQzMiB1aW50NjQgZmxvYXQgZG91YmxlIGJvb2wgc3RydWN0IGVudW0gc3RyaW5nIHZvaWQgJyArXG4gICAgICAgIC8vIFJlZmVyZW5jZSB0eXBlc1xuICAgICAgICAnd2VhayB1bm93bmVkIG93bmVkICcgK1xuICAgICAgICAvLyBNb2RpZmllcnNcbiAgICAgICAgJ2FzeW5jIHNpZ25hbCBzdGF0aWMgYWJzdHJhY3QgaW50ZXJmYWNlIG92ZXJyaWRlIHZpcnR1YWwgZGVsZWdhdGUgJyArXG4gICAgICAgIC8vIENvbnRyb2wgU3RydWN0dXJlc1xuICAgICAgICAnaWYgd2hpbGUgZG8gZm9yIGZvcmVhY2ggZWxzZSBzd2l0Y2ggY2FzZSBicmVhayBkZWZhdWx0IHJldHVybiB0cnkgY2F0Y2ggJyArXG4gICAgICAgIC8vIFZpc2liaWxpdHlcbiAgICAgICAgJ3B1YmxpYyBwcml2YXRlIHByb3RlY3RlZCBpbnRlcm5hbCAnICtcbiAgICAgICAgLy8gT3RoZXJcbiAgICAgICAgJ3VzaW5nIG5ldyB0aGlzIGdldCBzZXQgY29uc3Qgc3Rkb3V0IHN0ZGluIHN0ZGVyciB2YXInLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdEQnVzIEdMaWIgQ0NvZGUgR2VlIE9iamVjdCBHdGsgUG9zaXgnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ2ZhbHNlIHRydWUgbnVsbCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZSBuYW1lc3BhY2UnLCBlbmQ6ICd7JywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1teLDpcXFxcblxcXFxzXFxcXC5dJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLCBlbmQ6ICdcIlwiXCInLFxuICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeIycsIGVuZDogJyQnLFxuICAgICAgICByZWxldmFuY2U6IDJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsndmInXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYWRkaGFuZGxlciBhZGRyZXNzb2YgYWxpYXMgYW5kIGFuZGFsc28gYWdncmVnYXRlIGFuc2kgYXMgYXNzZW1ibHkgYXV0byBiaW5hcnkgYnkgYnlyZWYgYnl2YWwgJyArIC8qIGEtYiAqL1xuICAgICAgICAnY2FsbCBjYXNlIGNhdGNoIGNsYXNzIGNvbXBhcmUgY29uc3QgY29udGludWUgY3VzdG9tIGRlY2xhcmUgZGVmYXVsdCBkZWxlZ2F0ZSBkaW0gZGlzdGluY3QgZG8gJyArIC8qIGMtZCAqL1xuICAgICAgICAnZWFjaCBlcXVhbHMgZWxzZSBlbHNlaWYgZW5kIGVudW0gZXJhc2UgZXJyb3IgZXZlbnQgZXhpdCBleHBsaWNpdCBmaW5hbGx5IGZvciBmcmllbmQgZnJvbSBmdW5jdGlvbiAnICsgLyogZS1mICovXG4gICAgICAgICdnZXQgZ2xvYmFsIGdvdG8gZ3JvdXAgaGFuZGxlcyBpZiBpbXBsZW1lbnRzIGltcG9ydHMgaW4gaW5oZXJpdHMgaW50ZXJmYWNlIGludG8gaXMgaXNmYWxzZSBpc25vdCBpc3RydWUgJyArIC8qIGctaSAqL1xuICAgICAgICAnam9pbiBrZXkgbGV0IGxpYiBsaWtlIGxvb3AgbWUgbWlkIG1vZCBtb2R1bGUgbXVzdGluaGVyaXQgbXVzdG92ZXJyaWRlIG15YmFzZSBteWNsYXNzICcgKyAvKiBqLW0gKi9cbiAgICAgICAgJ25hbWVzcGFjZSBuYXJyb3dpbmcgbmV3IG5leHQgbm90IG5vdGluaGVyaXRhYmxlIG5vdG92ZXJyaWRhYmxlICcgKyAvKiBuICovXG4gICAgICAgICdvZiBvZmYgb24gb3BlcmF0b3Igb3B0aW9uIG9wdGlvbmFsIG9yIG9yZGVyIG9yZWxzZSBvdmVybG9hZHMgb3ZlcnJpZGFibGUgb3ZlcnJpZGVzICcgKyAvKiBvICovXG4gICAgICAgICdwYXJhbWFycmF5IHBhcnRpYWwgcHJlc2VydmUgcHJpdmF0ZSBwcm9wZXJ0eSBwcm90ZWN0ZWQgcHVibGljICcgKyAvKiBwICovXG4gICAgICAgICdyYWlzZWV2ZW50IHJlYWRvbmx5IHJlZGltIHJlbSByZW1vdmVoYW5kbGVyIHJlc3VtZSByZXR1cm4gJyArIC8qIHIgKi9cbiAgICAgICAgJ3NlbGVjdCBzZXQgc2hhZG93cyBzaGFyZWQgc2tpcCBzdGF0aWMgc3RlcCBzdG9wIHN0cnVjdHVyZSBzdHJpY3Qgc3ViIHN5bmNsb2NrICcgKyAvKiBzICovXG4gICAgICAgICd0YWtlIHRleHQgdGhlbiB0aHJvdyB0byB0cnkgdW5pY29kZSB1bnRpbCB1c2luZyB3aGVuIHdoZXJlIHdoaWxlIHdpZGVuaW5nIHdpdGggd2l0aGV2ZW50cyB3cml0ZW9ubHkgeG9yJywgLyogdC14ICovXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ2Jvb2xlYW4gYnl0ZSBjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGVjIGNkYmwgY2hhciBjaW50IGNsbmcgY29iaiBjc2J5dGUgY3Nob3J0IGNzbmcgY3N0ciBjdHlwZSAnICsgIC8qIGItYyAqL1xuICAgICAgICAnZGF0ZSBkZWNpbWFsIGRpcmVjdGNhc3QgZG91YmxlIGdldHR5cGUgZ2V0eG1sbmFtZXNwYWNlIGlpZiBpbnRlZ2VyIGxvbmcgb2JqZWN0ICcgKyAvKiBkLW8gKi9cbiAgICAgICAgJ3NieXRlIHNob3J0IHNpbmdsZSBzdHJpbmcgdHJ5Y2FzdCB0eXBlb2YgdWludGVnZXIgdWxvbmcgdXNob3J0JywgLyogcy11ICovXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZSBub3RoaW5nJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJy8vfHt8fXxlbmRpZnxnb3N1Ynx2YXJpYW50fHdlbmQnLCAvKiByZXNlcnZlZCBkZXByZWNhdGVkIGtleXdvcmRzICovXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7Y29udGFpbnM6IFt7YmVnaW46ICdcIlwiJ31dfSksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICdcXCcnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHtcbiAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJ1xcJ1xcJ1xcJ3w8IS0tfC0tPicsXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbaGxqcy5QSFJBU0FMX1dPUkRTX01PREVdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJzwvPycsIGVuZDogJz4nLFxuICAgICAgICAgICAgICBjb250YWluczogW2hsanMuUEhSQVNBTF9XT1JEU19NT0RFXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnaWYgZWxzZSBlbHNlaWYgZW5kIHJlZ2lvbiBleHRlcm5hbHNvdXJjZSd9XG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3ZicyddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdjYWxsIGNsYXNzIGNvbnN0IGRpbSBkbyBsb29wIGVyYXNlIGV4ZWN1dGUgZXhlY3V0ZWdsb2JhbCBleGl0IGZvciBlYWNoIG5leHQgZnVuY3Rpb24gJyArXG4gICAgICAgICdpZiB0aGVuIGVsc2Ugb24gZXJyb3Igb3B0aW9uIGV4cGxpY2l0IG5ldyBwcml2YXRlIHByb3BlcnR5IGxldCBnZXQgcHVibGljIHJhbmRvbWl6ZSAnICtcbiAgICAgICAgJ3JlZGltIHJlbSBzZWxlY3QgY2FzZSBzZXQgc3RvcCBzdWIgd2hpbGUgd2VuZCB3aXRoIGVuZCB0byBlbHNlaWYgaXMgb3IgeG9yIGFuZCBub3QgJyArXG4gICAgICAgICdjbGFzc19pbml0aWFsaXplIGNsYXNzX3Rlcm1pbmF0ZSBkZWZhdWx0IHByZXNlcnZlIGluIG1lIGJ5dmFsIGJ5cmVmIHN0ZXAgcmVzdW1lIGdvdG8nLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdsY2FzZSBtb250aCB2YXJ0eXBlIGluc3RycmV2IHVib3VuZCBzZXRsb2NhbGUgZ2V0b2JqZWN0IHJnYiBnZXRyZWYgc3RyaW5nICcgK1xuICAgICAgICAnd2Vla2RheW5hbWUgcm5kIGRhdGVhZGQgbW9udGhuYW1lIG5vdyBkYXkgbWludXRlIGlzYXJyYXkgY2Jvb2wgcm91bmQgZm9ybWF0Y3VycmVuY3kgJyArXG4gICAgICAgICdjb252ZXJzaW9ucyBjc25nIHRpbWV2YWx1ZSBzZWNvbmQgeWVhciBzcGFjZSBhYnMgY2xuZyB0aW1lc2VyaWFsIGZpeHMgbGVuIGFzYyAnICtcbiAgICAgICAgJ2lzZW1wdHkgbWF0aHMgZGF0ZXNlcmlhbCBhdG4gdGltZXIgaXNvYmplY3QgZmlsdGVyIHdlZWtkYXkgZGF0ZXZhbHVlIGNjdXIgaXNkYXRlICcgK1xuICAgICAgICAnaW5zdHIgZGF0ZWRpZmYgZm9ybWF0ZGF0ZXRpbWUgcmVwbGFjZSBpc251bGwgcmlnaHQgc2duIGFycmF5IHNudW1lcmljIGxvZyBjZGJsIGhleCAnICtcbiAgICAgICAgJ2NociBsYm91bmQgbXNnYm94IHVjYXNlIGdldGxvY2FsZSBjb3MgY2RhdGUgY2J5dGUgcnRyaW0gam9pbiBob3VyIG9jdCB0eXBlbmFtZSB0cmltICcgK1xuICAgICAgICAnc3RyY29tcCBpbnQgY3JlYXRlb2JqZWN0IGxvYWRwaWN0dXJlIHRhbiBmb3JtYXRudW1iZXIgbWlkIHNjcmlwdGVuZ2luZWJ1aWxkdmVyc2lvbiAnICtcbiAgICAgICAgJ3NjcmlwdGVuZ2luZSBzcGxpdCBzY3JpcHRlbmdpbmVtaW5vcnZlcnNpb24gY2ludCBzaW4gZGF0ZXBhcnQgbHRyaW0gc3FyICcgK1xuICAgICAgICAnc2NyaXB0ZW5naW5lbWFqb3J2ZXJzaW9uIHRpbWUgZGVyaXZlZCBldmFsIGRhdGUgZm9ybWF0cGVyY2VudCBleHAgaW5wdXRib3ggbGVmdCBhc2N3ICcgK1xuICAgICAgICAnY2hydyByZWdleHAgc2VydmVyIHJlc3BvbnNlIHJlcXVlc3QgY3N0ciBlcnInLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ3RydWUgZmFsc2UgbnVsbCBub3RoaW5nIGVtcHR5J1xuICAgIH0sXG4gICAgaWxsZWdhbDogJy8vJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtjb250YWluczogW3tiZWdpbjogJ1wiXCInfV19KSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgLycvLFxuICAgICAgICAvJC8sXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn07IiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPCUnLCBlbmQ6ICclPicsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAndmJzY3JpcHQnXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFNWX0tFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnYWNjZXB0X29uIGFsaWFzIGFsd2F5cyBhbHdheXNfY29tYiBhbHdheXNfZmYgYWx3YXlzX2xhdGNoIGFuZCBhc3NlcnQgYXNzaWduICcgK1xuICAgICAgJ2Fzc3VtZSBhdXRvbWF0aWMgYmVmb3JlIGJlZ2luIGJpbmQgYmlucyBiaW5zb2YgYml0IGJyZWFrIGJ1ZnwwIGJ1ZmlmMCBidWZpZjEgJyArXG4gICAgICAnYnl0ZSBjYXNlIGNhc2V4IGNhc2V6IGNlbGwgY2hhbmRsZSBjaGVja2VyIGNsYXNzIGNsb2NraW5nIGNtb3MgY29uZmlnIGNvbnN0ICcgK1xuICAgICAgJ2NvbnN0cmFpbnQgY29udGV4dCBjb250aW51ZSBjb3ZlciBjb3Zlcmdyb3VwIGNvdmVycG9pbnQgY3Jvc3MgZGVhc3NpZ24gZGVmYXVsdCAnICtcbiAgICAgICdkZWZwYXJhbSBkZXNpZ24gZGlzYWJsZSBkaXN0IGRvIGVkZ2UgZWxzZSBlbmQgZW5kY2FzZSBlbmRjaGVja2VyIGVuZGNsYXNzICcgK1xuICAgICAgJ2VuZGNsb2NraW5nIGVuZGNvbmZpZyBlbmRmdW5jdGlvbiBlbmRnZW5lcmF0ZSBlbmRncm91cCBlbmRpbnRlcmZhY2UgZW5kbW9kdWxlICcgK1xuICAgICAgJ2VuZHBhY2thZ2UgZW5kcHJpbWl0aXZlIGVuZHByb2dyYW0gZW5kcHJvcGVydHkgZW5kc3BlY2lmeSBlbmRzZXF1ZW5jZSBlbmR0YWJsZSAnICtcbiAgICAgICdlbmR0YXNrIGVudW0gZXZlbnQgZXZlbnR1YWxseSBleHBlY3QgZXhwb3J0IGV4dGVuZHMgZXh0ZXJuIGZpbmFsIGZpcnN0X21hdGNoIGZvciAnICtcbiAgICAgICdmb3JjZSBmb3JlYWNoIGZvcmV2ZXIgZm9yayBmb3Jram9pbiBmdW5jdGlvbiBnZW5lcmF0ZXw1IGdlbnZhciBnbG9iYWwgaGlnaHowIGhpZ2h6MSAnICtcbiAgICAgICdpZiBpZmYgaWZub25lIGlnbm9yZV9iaW5zIGlsbGVnYWxfYmlucyBpbXBsZW1lbnRzIGltcGxpZXMgaW1wb3J0IGluY2RpciBpbmNsdWRlICcgK1xuICAgICAgJ2luaXRpYWwgaW5vdXQgaW5wdXQgaW5zaWRlIGluc3RhbmNlIGludCBpbnRlZ2VyIGludGVyY29ubmVjdCBpbnRlcmZhY2UgaW50ZXJzZWN0ICcgK1xuICAgICAgJ2pvaW4gam9pbl9hbnkgam9pbl9ub25lIGxhcmdlIGxldCBsaWJsaXN0IGxpYnJhcnkgbG9jYWwgbG9jYWxwYXJhbSBsb2dpYyBsb25naW50ICcgK1xuICAgICAgJ21hY3JvbW9kdWxlIG1hdGNoZXMgbWVkaXVtIG1vZHBvcnQgbW9kdWxlIG5hbmQgbmVnZWRnZSBuZXR0eXBlIG5ldyBuZXh0dGltZSBubW9zICcgK1xuICAgICAgJ25vciBub3Nob3djYW5jZWxsZWQgbm90IG5vdGlmMCBub3RpZjEgb3Igb3V0cHV0IHBhY2thZ2UgcGFja2VkIHBhcmFtZXRlciBwbW9zICcgK1xuICAgICAgJ3Bvc2VkZ2UgcHJpbWl0aXZlIHByaW9yaXR5IHByb2dyYW0gcHJvcGVydHkgcHJvdGVjdGVkIHB1bGwwIHB1bGwxIHB1bGxkb3duIHB1bGx1cCAnICtcbiAgICAgICdwdWxzZXN0eWxlX29uZGV0ZWN0IHB1bHNlc3R5bGVfb25ldmVudCBwdXJlIHJhbmQgcmFuZGMgcmFuZGNhc2UgcmFuZHNlcXVlbmNlIHJjbW9zICcgK1xuICAgICAgJ3JlYWwgcmVhbHRpbWUgcmVmIHJlZyByZWplY3Rfb24gcmVsZWFzZSByZXBlYXQgcmVzdHJpY3QgcmV0dXJuIHJubW9zIHJwbW9zIHJ0cmFuICcgK1xuICAgICAgJ3J0cmFuaWYwIHJ0cmFuaWYxIHNfYWx3YXlzIHNfZXZlbnR1YWxseSBzX25leHR0aW1lIHNfdW50aWwgc191bnRpbF93aXRoIHNjYWxhcmVkICcgK1xuICAgICAgJ3NlcXVlbmNlIHNob3J0aW50IHNob3J0cmVhbCBzaG93Y2FuY2VsbGVkIHNpZ25lZCBzbWFsbCBzb2Z0IHNvbHZlIHNwZWNpZnkgc3BlY3BhcmFtICcgK1xuICAgICAgJ3N0YXRpYyBzdHJpbmcgc3Ryb25nIHN0cm9uZzAgc3Ryb25nMSBzdHJ1Y3Qgc3VwZXIgc3VwcGx5MCBzdXBwbHkxIHN5bmNfYWNjZXB0X29uICcgK1xuICAgICAgJ3N5bmNfcmVqZWN0X29uIHRhYmxlIHRhZ2dlZCB0YXNrIHRoaXMgdGhyb3VnaG91dCB0aW1lIHRpbWVwcmVjaXNpb24gdGltZXVuaXQgdHJhbiAnICtcbiAgICAgICd0cmFuaWYwIHRyYW5pZjEgdHJpIHRyaTAgdHJpMSB0cmlhbmQgdHJpb3IgdHJpcmVnIHR5cGUgdHlwZWRlZiB1bmlvbiB1bmlxdWUgdW5pcXVlMCAnICtcbiAgICAgICd1bnNpZ25lZCB1bnRpbCB1bnRpbF93aXRoIHVudHlwZWQgdXNlIHV3aXJlIHZhciB2ZWN0b3JlZCB2aXJ0dWFsIHZvaWQgd2FpdCB3YWl0X29yZGVyICcgK1xuICAgICAgJ3dhbmQgd2VhayB3ZWFrMCB3ZWFrMSB3aGlsZSB3aWxkY2FyZCB3aXJlIHdpdGggd2l0aGluIHdvciB4bm9yIHhvcicsXG4gICAgbGl0ZXJhbDpcbiAgICAgICdudWxsJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICckZmluaXNoICRzdG9wICRleGl0ICRmYXRhbCAkZXJyb3IgJHdhcm5pbmcgJGluZm8gJHJlYWx0aW1lICR0aW1lICRwcmludHRpbWVzY2FsZSAnICtcbiAgICAgICckYml0c3RvcmVhbCAkYml0c3Rvc2hvcnRyZWFsICRpdG9yICRzaWduZWQgJGNhc3QgJGJpdHMgJHN0aW1lICR0aW1lZm9ybWF0ICcgK1xuICAgICAgJyRyZWFsdG9iaXRzICRzaG9ydHJlYWx0b2JpdHMgJHJ0b2kgJHVuc2lnbmVkICRhc3NlcnRvbiAkYXNzZXJ0a2lsbCAkYXNzZXJ0cGFzc29uICcgK1xuICAgICAgJyRhc3NlcnRmYWlsb24gJGFzc2VydG5vbnZhY3VvdXNvbiAkYXNzZXJ0b2ZmICRhc3NlcnRjb250cm9sICRhc3NlcnRwYXNzb2ZmICcgK1xuICAgICAgJyRhc3NlcnRmYWlsb2ZmICRhc3NlcnR2YWN1b3Vzb2ZmICRpc3VuYm91bmRlZCAkc2FtcGxlZCAkZmVsbCAkY2hhbmdlZCAkcGFzdF9nY2xrICcgK1xuICAgICAgJyRmZWxsX2djbGsgJGNoYW5nZWRfZ2NsayAkcmlzaW5nX2djbGsgJHN0ZWFkeV9nY2xrICRjb3ZlcmFnZV9jb250cm9sICcgK1xuICAgICAgJyRjb3ZlcmFnZV9nZXQgJGNvdmVyYWdlX3NhdmUgJHNldF9jb3ZlcmFnZV9kYl9uYW1lICRyb3NlICRzdGFibGUgJHBhc3QgJyArXG4gICAgICAnJHJvc2VfZ2NsayAkc3RhYmxlX2djbGsgJGZ1dHVyZV9nY2xrICRmYWxsaW5nX2djbGsgJGNoYW5naW5nX2djbGsgJGRpc3BsYXkgJyArXG4gICAgICAnJGNvdmVyYWdlX2dldF9tYXggJGNvdmVyYWdlX21lcmdlICRnZXRfY292ZXJhZ2UgJGxvYWRfY292ZXJhZ2VfZGIgJHR5cGVuYW1lICcgK1xuICAgICAgJyR1bnBhY2tlZF9kaW1lbnNpb25zICRsZWZ0ICRsb3cgJGluY3JlbWVudCAkY2xvZzIgJGxuICRsb2cxMCAkZXhwICRzcXJ0ICRwb3cgJyArXG4gICAgICAnJGZsb29yICRjZWlsICRzaW4gJGNvcyAkdGFuICRjb3VudGJpdHMgJG9uZWhvdCAkaXN1bmtub3duICRmYXRhbCAkd2FybmluZyAnICtcbiAgICAgICckZGltZW5zaW9ucyAkcmlnaHQgJGhpZ2ggJHNpemUgJGFzaW4gJGFjb3MgJGF0YW4gJGF0YW4yICRoeXBvdCAkc2luaCAkY29zaCAnICtcbiAgICAgICckdGFuaCAkYXNpbmggJGFjb3NoICRhdGFuaCAkY291bnRvbmVzICRvbmVob3QwICRlcnJvciAkaW5mbyAkcmFuZG9tICcgK1xuICAgICAgJyRkaXN0X2NoaV9zcXVhcmUgJGRpc3RfZXJsYW5nICRkaXN0X2V4cG9uZW50aWFsICRkaXN0X25vcm1hbCAkZGlzdF9wb2lzc29uICcgK1xuICAgICAgJyRkaXN0X3QgJGRpc3RfdW5pZm9ybSAkcV9pbml0aWFsaXplICRxX3JlbW92ZSAkcV9leGFtICRhc3luYyRhbmQkYXJyYXkgJyArXG4gICAgICAnJGFzeW5jJG5hbmQkYXJyYXkgJGFzeW5jJG9yJGFycmF5ICRhc3luYyRub3IkYXJyYXkgJHN5bmMkYW5kJGFycmF5ICcgK1xuICAgICAgJyRzeW5jJG5hbmQkYXJyYXkgJHN5bmMkb3IkYXJyYXkgJHN5bmMkbm9yJGFycmF5ICRxX2FkZCAkcV9mdWxsICRwc3ByaW50ZiAnICtcbiAgICAgICckYXN5bmMkYW5kJHBsYW5lICRhc3luYyRuYW5kJHBsYW5lICRhc3luYyRvciRwbGFuZSAkYXN5bmMkbm9yJHBsYW5lICcgK1xuICAgICAgJyRzeW5jJGFuZCRwbGFuZSAkc3luYyRuYW5kJHBsYW5lICRzeW5jJG9yJHBsYW5lICRzeW5jJG5vciRwbGFuZSAkc3lzdGVtICcgK1xuICAgICAgJyRkaXNwbGF5ICRkaXNwbGF5YiAkZGlzcGxheWggJGRpc3BsYXlvICRzdHJvYmUgJHN0cm9iZWIgJHN0cm9iZWggJHN0cm9iZW8gJyArXG4gICAgICAnJHdyaXRlICRyZWFkbWVtYiAkcmVhZG1lbWggJHdyaXRlbWVtaCAkdmFsdWUkcGx1c2FyZ3MgJyArXG4gICAgICAnJGR1bXB2YXJzICRkdW1wb24gJGR1bXBsaW1pdCAkZHVtcHBvcnRzICRkdW1wcG9ydHNvbiAkZHVtcHBvcnRzbGltaXQgJyArXG4gICAgICAnJHdyaXRlYiAkd3JpdGVoICR3cml0ZW8gJG1vbml0b3IgJG1vbml0b3JiICRtb25pdG9yaCAkbW9uaXRvcm8gJHdyaXRlbWVtYiAnICtcbiAgICAgICckZHVtcGZpbGUgJGR1bXBvZmYgJGR1bXBhbGwgJGR1bXBmbHVzaCAkZHVtcHBvcnRzb2ZmICRkdW1wcG9ydHNhbGwgJyArXG4gICAgICAnJGR1bXBwb3J0c2ZsdXNoICRmY2xvc2UgJGZkaXNwbGF5ICRmZGlzcGxheWIgJGZkaXNwbGF5aCAkZmRpc3BsYXlvICcgK1xuICAgICAgJyRmc3Ryb2JlICRmc3Ryb2JlYiAkZnN0cm9iZWggJGZzdHJvYmVvICRzd3JpdGUgJHN3cml0ZWIgJHN3cml0ZWggJyArXG4gICAgICAnJHN3cml0ZW8gJGZzY2FuZiAkZnJlYWQgJGZzZWVrICRmZmx1c2ggJGZlb2YgJGZvcGVuICRmd3JpdGUgJGZ3cml0ZWIgJyArXG4gICAgICAnJGZ3cml0ZWggJGZ3cml0ZW8gJGZtb25pdG9yICRmbW9uaXRvcmIgJGZtb25pdG9yaCAkZm1vbml0b3JvICRzZm9ybWF0ICcgK1xuICAgICAgJyRzZm9ybWF0ZiAkZmdldGMgJHVuZ2V0YyAkZmdldHMgJHNzY2FuZiAkcmV3aW5kICRmdGVsbCAkZmVycm9yJ1xuICAgIH07XG4gIHJldHVybiB7XG4gICAgYWxpYXNlczogWyd2JywgJ3N2JywgJ3N2aCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiBTVl9LRVlXT1JEUywgbGV4ZW1lczogL1tcXHdcXCRdKy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge2JlZ2luOiAnXFxcXGIoKFxcXFxkK1xcJyhifGh8b3xkfEJ8SHxPfEQpKVswLTl4elhaYS1mQS1GX10rKSd9LFxuICAgICAgICAgIHtiZWdpbjogJ1xcXFxCKChcXCcoYnxofG98ZHxCfEh8T3xEKSlbMC05eHpYWmEtZkEtRl9dKyknfSxcbiAgICAgICAgICB7YmVnaW46ICdcXFxcYihbMC05X10pKycsIHJlbGV2YW5jZTogMH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8qIHBhcmFtZXRlcnMgdG8gaW5zdGFuY2VzICovXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7YmVnaW46ICcjXFxcXCgoPyFwYXJhbWV0ZXIpLitcXFxcKSd9LFxuICAgICAgICAgIHtiZWdpbjogJ1xcXFwuXFxcXHcrJywgcmVsZXZhbmNlOiAwfSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnYCcsIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeydtZXRhLWtleXdvcmQnOiAnZGVmaW5lIF9fRklMRV9fICcgK1xuICAgICAgICAgICdfX0xJTkVfXyBiZWdpbl9rZXl3b3JkcyBjZWxsZGVmaW5lIGRlZmF1bHRfbmV0dHlwZSBkZWZpbmUgJyArXG4gICAgICAgICAgJ2Vsc2UgZWxzaWYgZW5kX2tleXdvcmRzIGVuZGNlbGxkZWZpbmUgZW5kaWYgaWZkZWYgaWZuZGVmICcgK1xuICAgICAgICAgICdpbmNsdWRlIGxpbmUgbm91bmNvbm5lY3RlZF9kcml2ZSBwcmFnbWEgcmVzZXRhbGwgdGltZXNjYWxlICcgK1xuICAgICAgICAgICd1bmNvbm5lY3RlZF9kcml2ZSB1bmRlZiB1bmRlZmluZWFsbCd9LFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07IC8vIHJldHVyblxufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgLy8gUmVndWxhciBleHByZXNzaW9uIGZvciBWSERMIG51bWVyaWMgbGl0ZXJhbHMuXG5cbiAgLy8gRGVjaW1hbCBsaXRlcmFsOlxuICB2YXIgSU5URUdFUl9SRSA9ICdcXFxcZChffFxcXFxkKSonO1xuICB2YXIgRVhQT05FTlRfUkUgPSAnW2VFXVstK10/JyArIElOVEVHRVJfUkU7XG4gIHZhciBERUNJTUFMX0xJVEVSQUxfUkUgPSBJTlRFR0VSX1JFICsgJyhcXFxcLicgKyBJTlRFR0VSX1JFICsgJyk/JyArICcoJyArIEVYUE9ORU5UX1JFICsgJyk/JztcbiAgLy8gQmFzZWQgbGl0ZXJhbDpcbiAgdmFyIEJBU0VEX0lOVEVHRVJfUkUgPSAnXFxcXHcrJztcbiAgdmFyIEJBU0VEX0xJVEVSQUxfUkUgPSBJTlRFR0VSX1JFICsgJyMnICsgQkFTRURfSU5URUdFUl9SRSArICcoXFxcXC4nICsgQkFTRURfSU5URUdFUl9SRSArICcpPycgKyAnIycgKyAnKCcgKyBFWFBPTkVOVF9SRSArICcpPyc7XG5cbiAgdmFyIE5VTUJFUl9SRSA9ICdcXFxcYignICsgQkFTRURfTElURVJBTF9SRSArICd8JyArIERFQ0lNQUxfTElURVJBTF9SRSArICcpJztcblxuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhYnMgYWNjZXNzIGFmdGVyIGFsaWFzIGFsbCBhbmQgYXJjaGl0ZWN0dXJlIGFycmF5IGFzc2VydCBhc3N1bWUgYXNzdW1lX2d1YXJhbnRlZSBhdHRyaWJ1dGUgJyArXG4gICAgICAgICdiZWdpbiBibG9jayBib2R5IGJ1ZmZlciBidXMgY2FzZSBjb21wb25lbnQgY29uZmlndXJhdGlvbiBjb25zdGFudCBjb250ZXh0IGNvdmVyIGRpc2Nvbm5lY3QgJyArXG4gICAgICAgICdkb3dudG8gZGVmYXVsdCBlbHNlIGVsc2lmIGVuZCBlbnRpdHkgZXhpdCBmYWlybmVzcyBmaWxlIGZvciBmb3JjZSBmdW5jdGlvbiBnZW5lcmF0ZSAnICtcbiAgICAgICAgJ2dlbmVyaWMgZ3JvdXAgZ3VhcmRlZCBpZiBpbXB1cmUgaW4gaW5lcnRpYWwgaW5vdXQgaXMgbGFiZWwgbGlicmFyeSBsaW5rYWdlIGxpdGVyYWwgJyArXG4gICAgICAgICdsb29wIG1hcCBtb2QgbmFuZCBuZXcgbmV4dCBub3Igbm90IG51bGwgb2Ygb24gb3BlbiBvciBvdGhlcnMgb3V0IHBhY2thZ2UgcG9ydCAnICtcbiAgICAgICAgJ3Bvc3Rwb25lZCBwcm9jZWR1cmUgcHJvY2VzcyBwcm9wZXJ0eSBwcm90ZWN0ZWQgcHVyZSByYW5nZSByZWNvcmQgcmVnaXN0ZXIgcmVqZWN0ICcgK1xuICAgICAgICAncmVsZWFzZSByZW0gcmVwb3J0IHJlc3RyaWN0IHJlc3RyaWN0X2d1YXJhbnRlZSByZXR1cm4gcm9sIHJvciBzZWxlY3Qgc2VxdWVuY2UgJyArXG4gICAgICAgICdzZXZlcml0eSBzaGFyZWQgc2lnbmFsIHNsYSBzbGwgc3JhIHNybCBzdHJvbmcgc3VidHlwZSB0aGVuIHRvIHRyYW5zcG9ydCB0eXBlICcgK1xuICAgICAgICAndW5hZmZlY3RlZCB1bml0cyB1bnRpbCB1c2UgdmFyaWFibGUgdm1vZGUgdnByb3AgdnVuaXQgd2FpdCB3aGVuIHdoaWxlIHdpdGggeG5vciB4b3InLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdib29sZWFuIGJpdCBjaGFyYWN0ZXIgJyArXG4gICAgICAgICdpbnRlZ2VyIHRpbWUgZGVsYXlfbGVuZ3RoIG5hdHVyYWwgcG9zaXRpdmUgJyArXG4gICAgICAgICdzdHJpbmcgYml0X3ZlY3RvciBmaWxlX29wZW5fa2luZCBmaWxlX29wZW5fc3RhdHVzICcgK1xuICAgICAgICAnc3RkX2xvZ2ljIHN0ZF9sb2dpY192ZWN0b3IgdW5zaWduZWQgc2lnbmVkIGJvb2xlYW5fdmVjdG9yIGludGVnZXJfdmVjdG9yICcgK1xuICAgICAgICAnc3RkX3Vsb2dpYyBzdGRfdWxvZ2ljX3ZlY3RvciB1bnJlc29sdmVkX3Vuc2lnbmVkIHVfdW5zaWduZWQgdW5yZXNvbHZlZF9zaWduZWQgdV9zaWduZWQnICtcbiAgICAgICAgJ3JlYWxfdmVjdG9yIHRpbWVfdmVjdG9yJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdmYWxzZSB0cnVlIG5vdGUgd2FybmluZyBlcnJvciBmYWlsdXJlICcgKyAgLy8gc2V2ZXJpdHlfbGV2ZWxcbiAgICAgICAgJ2xpbmUgdGV4dCBzaWRlIHdpZHRoJyAgICAgICAgICAgICAgICAgICAgICAvLyB0ZXh0aW9cbiAgICB9LFxuICAgIGlsbGVnYWw6ICd7JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSwgICAgICAvLyBWSERMLTIwMDggYmxvY2sgY29tbWVudGluZy5cbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJyhVfFh8MHwxfFp8V3xMfEh8LSlcXCcnLFxuICAgICAgICBjb250YWluczogW2hsanMuQkFDS1NMQVNIX0VTQ0FQRV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXFwnW0EtWmEtel0oXz9bQS1aYS16MC05XSkqJyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBsZXhlbWVzOiAvWyEjQFxcd10rLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgLy8gZXhwcmVzcyB2ZXJzaW9uIGV4Y2VwdDogISAmICogPCA9ID4gISEgIyBAIEBAXG4gICAgICAgICdOfDAgUHwwIFh8MCBhfDAgYWIgYWJjIGFibyBhbCBhbSBhbnwwIGFyIGFyZ2EgYXJnZCBhcmdlIGFyZ2RvIGFyZ2cgYXJnbCBhcmd1IGFzIGF1IGF1ZyBhdW4gYnwwIGJOIGJhIGJhZCBiZCBiZSBiZWwgYmYgYmwgYm0gYm4gYm8gYnAgYnIgYnJlYSBicmVha2EgYnJlYWtkIGJyZWFrbCBicm8gYnVmZG8gYnVmZmVycyBidW4gYncgY3wwIGNOIGNOZiBjYSBjYWJjIGNhZGRiIGNhZCBjYWRkZiBjYWwgY2F0IGNiIGNjIGNjbCBjZCBjZSBjZXggY2YgY2ZpciBjZ2V0YiBjZ2V0ZSBjZyBjaGFuZ2VzIGNoZCBjaGUgY2hlY2t0IGNsIGNsYSBjbG8gY20gY21hcGMgY21lIGNuIGNuZXcgY25mIGNubyBjbm9yZWEgY25vcmVtZSBjbyBjb2wgY29sbyBjb20gY29tYyBjb21wIGNvbiBjb25mIGNvcGUgJytcbiAgICAgICAgJ2NwIGNwZiBjcSBjciBjcyBjc3QgY3UgY3VuYSBjdW5tZSBjdyBkZWxtIGRlYiBkZWJ1Z2cgZGVsYyBkZWxmIGRpZiBkaWZmZyBkaWZmbyBkaWZmcCBkaWZmcHUgZGlmZnMgZGlmZnRoaXMgZGlnIGRpIGRsIGRlbGwgZGogZGxpIGRvIGRvYXV0b2EgZHAgZHIgZHMgZHNwIGV8MCBlYSBlYyBlY2hvZSBlY2hvaCBlY2hvbSBlY2hvbiBlbCBlbHNlaSBlbSBlbiBlbmRmbyBlbmRmIGVuZHQgZW5kdyBlbmUgZXggZXhlIGV4aSBleHUgZnwwIGZpbGVzIGZpbGV0IGZpbiBmaW5hIGZpbmkgZmlyIGZpeCBmbyBmb2xkYyBmb2xkZCBmb2xkZG9jIGZvbGRvIGZvciBmdSBnbyBnciBncmVwYSBndSBndiBoYSBoZWxwZiBoZWxwZyBoZWxwdCBoaSBoaWQgaGlzIGlhIGlhYmMgaWYgaWogaWwgaW0gaW1hcGMgJytcbiAgICAgICAgJ2ltZSBpbm8gaW5vcmVhIGlub3JlbWUgaW50IGlzIGlzcCBpdSBpdW5hIGl1bm1lIGp8MCBqdSBrfDAga2VlcGEga2VlIGtlZXBqIGxOIGxOZiBsfDAgbGFkIGxhZGRiIGxhZGRmIGxhIGxhbiBsYXQgbGIgbGMgbGNoIGxjbCBsY3MgbGUgbGVmdGEgbGV0IGxleCBsZiBsZmlyIGxnZXRiIGxnZXRlIGxnIGxnciBsZ3JlcGEgbGggbGwgbGxhIGxsaSBsbWFrIGxtIGxtYXBjIGxuZSBsbmV3IGxuZiBsbiBsb2FkayBsbyBsb2MgbG9ja3YgbG9sIGxvcGUgbHAgbHBmIGxyIGxzIGx0IGx1IGx1YSBsdWFkIGx1YWYgbHYgbHZpbWdyZXBhIGx3IG18MCBtYSBtYWsgbWFwIG1hcGMgbWFya3MgbWF0IG1lIG1lbnV0IG1lcyBtayBta3MgbWtzcCBta3YgbWt2aWUgbW9kIG16IG16ZiBuYmMgbmIgbmJzIG5ldyBubSBubWFwYyBubWUgbm4gbm5vcmVtZSBub2Egbm8gbm9oIG5vcmVhIG5vcmVtZSBub3JtIG51IG51biBudW5tZSBvbCBvfDAgb20gb21hcGMgb21lIG9uIG9ubyBvbm9yZW1lIG9wdCBvdSBvdW5tZSBvdyBwfDAgJytcbiAgICAgICAgJ3Byb2ZkIHByb2YgcHJvIHByb21wdHIgcGMgcGVkIHBlIHBlcmxkIHBvIHBvcHUgcHAgcHJlIHByZXYgcHMgcHQgcHROIHB0ZiBwdGogcHRsIHB0biBwdHAgcHRyIHB0cyBwdSBwdyBweTMgcHl0aG9uMyBweTNkIHB5M2YgcHkgcHlkIHB5ZiBxdWl0YSBxYSByZWMgcmVkIHJlZGkgcmVkciByZWRyYXdzIHJlZyByZXMgcmV0IHJldHUgcmV3IHJpIHJpZ2h0YiBydWIgcnVieWQgcnVieWYgcnVuZCBydSBydiBzTiBzYW4gc2Egc2FsIHNhdiBzYiBzYk4gc2JhIHNiZiBzYmwgc2JtIHNibiBzYnAgc2JyIHNjcmlwIHNjcmlwdGUgc2NzIHNlIHNldGYgc2V0ZyBzZXRsIHNmIHNmaXIgc2ggc2ltIHNpZyBzaWwgc2wgc2xhIHNtIHNtYXAgc21hcGMgc21lIHNuIHNuaSBzbm8gc25vciBzbm9yZW1lIHNvciAnK1xuICAgICAgICAnc28gc3BlbGxkIHNwZSBzcGVsbGkgc3BlbGxyIHNwZWxsdSBzcGVsbHcgc3Agc3ByIHNyZSBzdCBzdGEgc3RhcnRnIHN0YXJ0ciBzdGFyIHN0b3BpIHN0aiBzdHMgc3VuIHN1bm0gc3VubWUgc3VzIHN2IHN3IHN5IHN5bnRpIHN5bmMgdE4gdGFiTiB0YWJjIHRhYmRvIHRhYmUgdGFiZiB0YWJmaXIgdGFibCB0YWJtIHRhYm5ldyAnK1xuICAgICAgICAndGFibiB0YWJvIHRhYnAgdGFiciB0YWJzIHRhYiB0YSB0YWdzIHRjIHRjbGQgdGNsZiB0ZSB0ZiB0aCB0aiB0bCB0bSB0biB0byB0cCB0ciB0cnkgdHMgdHUgdXwwIHVuZG9qIHVuZG9sIHVuYSB1bmggdW5sIHVubG8gdW5tIHVubWUgdW5zIHVwIHZlIHZlcmIgdmVydCB2aW0gdmltZ3JlcGEgdmkgdml1IHZpZSB2bSB2bWFwYyB2bWUgdm5lIHZuIHZub3JlbWUgdnMgdnUgdnVubWUgd2luZG8gd3wwIHdOIHdhIHdoIHdpIHdpbmMgd2lucCB3biB3cCB3cSB3cWEgd3Mgd3Ugd3YgeHwwIHhhIHhtYXBjIHhtIHhtZSB4biB4bm9yZW1lIHh1IHh1bm1lIHl8MCB6fDAgfiAnK1xuICAgICAgICAvLyBmdWxsIHZlcnNpb25cbiAgICAgICAgJ05leHQgUHJpbnQgYXBwZW5kIGFiYnJldmlhdGUgYWJjbGVhciBhYm92ZWxlZnQgYWxsIGFtZW51IGFub3JlbWVudSBhcmdzIGFyZ2FkZCBhcmdkZWxldGUgYXJnZWRpdCBhcmdnbG9iYWwgYXJnbG9jYWwgYXJndW1lbnQgYXNjaWkgYXV0b2NtZCBhdWdyb3VwIGF1bm1lbnUgYnVmZmVyIGJOZXh0IGJhbGwgYmFkZCBiZGVsZXRlIGJlaGF2ZSBiZWxvd3JpZ2h0IGJmaXJzdCBibGFzdCBibW9kaWZpZWQgYm5leHQgYm90cmlnaHQgYnByZXZpb3VzIGJyZXdpbmQgYnJlYWsgYnJlYWthZGQgYnJlYWtkZWwgYnJlYWtsaXN0IGJyb3dzZSBidW5sb2FkICcrXG4gICAgICAgICdid2lwZW91dCBjaGFuZ2UgY05leHQgY05maWxlIGNhYmJyZXYgY2FiY2xlYXIgY2FkZGJ1ZmZlciBjYWRkZXhwciBjYWRkZmlsZSBjYWxsIGNhdGNoIGNidWZmZXIgY2Nsb3NlIGNlbnRlciBjZXhwciBjZmlsZSBjZmlyc3QgY2dldGJ1ZmZlciBjZ2V0ZXhwciBjZ2V0ZmlsZSBjaGRpciBjaGVja3BhdGggY2hlY2t0aW1lIGNsaXN0IGNsYXN0IGNsb3NlIGNtYXAgY21hcGNsZWFyIGNtZW51IGNuZXh0IGNuZXdlciBjbmZpbGUgY25vcmVtYXAgY25vcmVhYmJyZXYgY25vcmVtZW51IGNvcHkgY29sZGVyIGNvbG9yc2NoZW1lIGNvbW1hbmQgY29tY2xlYXIgY29tcGlsZXIgY29udGludWUgY29uZmlybSBjb3BlbiBjcHJldmlvdXMgY3BmaWxlIGNxdWl0IGNyZXdpbmQgY3Njb3BlIGNzdGFnIGN1bm1hcCAnK1xuICAgICAgICAnY3VuYWJicmV2IGN1bm1lbnUgY3dpbmRvdyBkZWxldGUgZGVsbWFya3MgZGVidWcgZGVidWdncmVlZHkgZGVsY29tbWFuZCBkZWxmdW5jdGlvbiBkaWZmdXBkYXRlIGRpZmZnZXQgZGlmZm9mZiBkaWZmcGF0Y2ggZGlmZnB1dCBkaWZmc3BsaXQgZGlncmFwaHMgZGlzcGxheSBkZWxldGVsIGRqdW1wIGRsaXN0IGRvYXV0b2NtZCBkb2F1dG9hbGwgZGVsZXRlcCBkcm9wIGRzZWFyY2ggZHNwbGl0IGVkaXQgZWFybGllciBlY2hvIGVjaG9lcnIgZWNob2hsIGVjaG9tc2cgZWxzZSBlbHNlaWYgZW1lbnUgZW5kaWYgZW5kZm9yICcrXG4gICAgICAgICdlbmRmdW5jdGlvbiBlbmR0cnkgZW5kd2hpbGUgZW5ldyBleGVjdXRlIGV4aXQgZXh1c2FnZSBmaWxlIGZpbGV0eXBlIGZpbmQgZmluYWxseSBmaW5pc2ggZmlyc3QgZml4ZGVsIGZvbGQgZm9sZGNsb3NlIGZvbGRkb29wZW4gZm9sZGRvY2xvc2VkIGZvbGRvcGVuIGZ1bmN0aW9uIGdsb2JhbCBnb3RvIGdyZXAgZ3JlcGFkZCBndWkgZ3ZpbSBoYXJkY29weSBoZWxwIGhlbHBmaW5kIGhlbHBncmVwIGhlbHB0YWdzIGhpZ2hsaWdodCBoaWRlIGhpc3RvcnkgaW5zZXJ0IGlhYmJyZXYgaWFiY2xlYXIgaWp1bXAgaWxpc3QgaW1hcCAnK1xuICAgICAgICAnaW1hcGNsZWFyIGltZW51IGlub3JlbWFwIGlub3JlYWJicmV2IGlub3JlbWVudSBpbnRybyBpc2VhcmNoIGlzcGxpdCBpdW5tYXAgaXVuYWJicmV2IGl1bm1lbnUgam9pbiBqdW1wcyBrZWVwYWx0IGtlZXBtYXJrcyBrZWVwanVtcHMgbE5leHQgbE5maWxlIGxpc3QgbGFkZGV4cHIgbGFkZGJ1ZmZlciBsYWRkZmlsZSBsYXN0IGxhbmd1YWdlIGxhdGVyIGxidWZmZXIgbGNkIGxjaGRpciBsY2xvc2UgbGNzY29wZSBsZWZ0IGxlZnRhYm92ZSBsZXhwciBsZmlsZSBsZmlyc3QgbGdldGJ1ZmZlciBsZ2V0ZXhwciBsZ2V0ZmlsZSBsZ3JlcCBsZ3JlcGFkZCBsaGVscGdyZXAgbGxhc3QgbGxpc3QgbG1ha2UgbG1hcCBsbWFwY2xlYXIgbG5leHQgbG5ld2VyIGxuZmlsZSBsbm9yZW1hcCBsb2Fka2V5bWFwIGxvYWR2aWV3ICcrXG4gICAgICAgICdsb2NrbWFya3MgbG9ja3ZhciBsb2xkZXIgbG9wZW4gbHByZXZpb3VzIGxwZmlsZSBscmV3aW5kIGx0YWcgbHVubWFwIGx1YWRvIGx1YWZpbGUgbHZpbWdyZXAgbHZpbWdyZXBhZGQgbHdpbmRvdyBtb3ZlIG1hcmsgbWFrZSBtYXBjbGVhciBtYXRjaCBtZW51IG1lbnV0cmFuc2xhdGUgbWVzc2FnZXMgbWtleHJjIG1rc2Vzc2lvbiBta3NwZWxsIG1rdmltcmMgbWt2aWV3IG1vZGUgbXpzY2hlbWUgbXpmaWxlIG5iY2xvc2UgbmJrZXkgbmJzYXJ0IG5leHQgbm1hcCBubWFwY2xlYXIgbm1lbnUgbm5vcmVtYXAgJytcbiAgICAgICAgJ25ub3JlbWVudSBub2F1dG9jbWQgbm9yZW1hcCBub2hsc2VhcmNoIG5vcmVhYmJyZXYgbm9yZW1lbnUgbm9ybWFsIG51bWJlciBudW5tYXAgbnVubWVudSBvbGRmaWxlcyBvcGVuIG9tYXAgb21hcGNsZWFyIG9tZW51IG9ubHkgb25vcmVtYXAgb25vcmVtZW51IG9wdGlvbnMgb3VubWFwIG91bm1lbnUgb3duc3ludGF4IHByaW50IHByb2ZkZWwgcHJvZmlsZSBwcm9tcHRmaW5kIHByb21wdHJlcGwgcGNsb3NlIHBlZGl0IHBlcmwgcGVybGRvIHBvcCBwb3B1cCBwcG9wIHByZXNlcnZlIHByZXZpb3VzIHBzZWFyY2ggcHRhZyBwdE5leHQgJytcbiAgICAgICAgJ3B0Zmlyc3QgcHRqdW1wIHB0bGFzdCBwdG5leHQgcHRwcmV2aW91cyBwdHJld2luZCBwdHNlbGVjdCBwdXQgcHdkIHB5M2RvIHB5M2ZpbGUgcHl0aG9uIHB5ZG8gcHlmaWxlIHF1aXQgcXVpdGFsbCBxYWxsIHJlYWQgcmVjb3ZlciByZWRvIHJlZGlyIHJlZHJhdyByZWRyYXdzdGF0dXMgcmVnaXN0ZXJzIHJlc2l6ZSByZXRhYiByZXR1cm4gcmV3aW5kIHJpZ2h0IHJpZ2h0YmVsb3cgcnVieSBydWJ5ZG8gcnVieWZpbGUgcnVuZG8gcnVudGltZSBydmltaW5mbyBzdWJzdGl0dXRlIHNOZXh0IHNhbmRib3ggc2FyZ3VtZW50IHNhbGwgc2F2ZWFzIHNidWZmZXIgc2JOZXh0IHNiYWxsIHNiZmlyc3Qgc2JsYXN0IHNibW9kaWZpZWQgc2JuZXh0IHNicHJldmlvdXMgc2JyZXdpbmQgc2NyaXB0bmFtZXMgc2NyaXB0ZW5jb2RpbmcgJytcbiAgICAgICAgJ3Njc2NvcGUgc2V0IHNldGZpbGV0eXBlIHNldGdsb2JhbCBzZXRsb2NhbCBzZmluZCBzZmlyc3Qgc2hlbGwgc2ltYWx0IHNpZ24gc2lsZW50IHNsZWVwIHNsYXN0IHNtYWdpYyBzbWFwY2xlYXIgc21lbnUgc25leHQgc25pZmYgc25vbWFnaWMgc25vcmVtYXAgc25vcmVtZW51IHNvcnQgc291cmNlIHNwZWxsZHVtcCBzcGVsbGdvb2Qgc3BlbGxpbmZvIHNwZWxscmVwYWxsIHNwZWxsdW5kbyBzcGVsbHdyb25nIHNwbGl0IHNwcmV2aW91cyBzcmV3aW5kIHN0b3Agc3RhZyBzdGFydGdyZXBsYWNlIHN0YXJ0cmVwbGFjZSAnK1xuICAgICAgICAnc3RhcnRpbnNlcnQgc3RvcGluc2VydCBzdGp1bXAgc3RzZWxlY3Qgc3VuaGlkZSBzdW5tYXAgc3VubWVudSBzdXNwZW5kIHN2aWV3IHN3YXBuYW1lIHN5bnRheCBzeW50aW1lIHN5bmNiaW5kIHROZXh0IHRhYk5leHQgdGFiY2xvc2UgdGFiZWRpdCB0YWJmaW5kIHRhYmZpcnN0IHRhYmxhc3QgdGFibW92ZSB0YWJuZXh0IHRhYm9ubHkgdGFicHJldmlvdXMgdGFicmV3aW5kIHRhZyB0Y2wgdGNsZG8gdGNsZmlsZSB0ZWFyb2ZmIHRmaXJzdCB0aHJvdyB0anVtcCB0bGFzdCB0bWVudSB0bmV4dCB0b3BsZWZ0IHRwcmV2aW91cyAnKyd0cmV3aW5kIHRzZWxlY3QgdHVubWVudSB1bmRvIHVuZG9qb2luIHVuZG9saXN0IHVuYWJicmV2aWF0ZSB1bmhpZGUgdW5sZXQgdW5sb2NrdmFyIHVubWFwIHVubWVudSB1bnNpbGVudCB1cGRhdGUgdmdsb2JhbCB2ZXJzaW9uIHZlcmJvc2UgdmVydGljYWwgdmltZ3JlcCB2aW1ncmVwYWRkIHZpc3VhbCB2aXVzYWdlIHZpZXcgdm1hcCB2bWFwY2xlYXIgdm1lbnUgdm5ldyAnK1xuICAgICAgICAndm5vcmVtYXAgdm5vcmVtZW51IHZzcGxpdCB2dW5tYXAgdnVubWVudSB3cml0ZSB3TmV4dCB3YWxsIHdoaWxlIHdpbnNpemUgd2luY21kIHdpbnBvcyB3bmV4dCB3cHJldmlvdXMgd3FhbGwgd3N2ZXJiIHd1bmRvIHd2aW1pbmZvIHhpdCB4YWxsIHhtYXBjbGVhciB4bWFwIHhtZW51IHhub3JlbWFwIHhub3JlbWVudSB4dW5tYXAgeHVubWVudSB5YW5rJyxcbiAgICAgIGJ1aWx0X2luOiAvL2J1aWx0IGluIGZ1bmNcbiAgICAgICAgJ3N5bklEdHJhbnMgYXRhbjIgcmFuZ2UgbWF0Y2hhcmcgZGlkX2ZpbGV0eXBlIGFzaW4gZmVlZGtleXMgeG9yIGFyZ3YgJyArXG4gICAgICAgICdjb21wbGV0ZV9jaGVjayBhZGQgZ2V0d2lucG9zeCBnZXRxZmxpc3QgZ2V0d2lucG9zeSBzY3JlZW5jb2wgJyArXG4gICAgICAgICdjbGVhcm1hdGNoZXMgZW1wdHkgZXh0ZW5kIGdldGNtZHBvcyBtemV2YWwgZ2FyYmFnZWNvbGxlY3Qgc2V0cmVnICcgK1xuICAgICAgICAnY2VpbCBzcXJ0IGRpZmZfaGxJRCBpbnB1dHNlY3JldCBnZXQgZ2V0ZnBlcm0gZ2V0cGlkIGZpbGV3cml0YWJsZSAnICtcbiAgICAgICAgJ3NoaWZ0d2lkdGggbWF4IHNpbmggaXNkaXJlY3Rvcnkgc3luSUQgc3lzdGVtIGlucHV0cmVzdG9yZSB3aW5saW5lICcgK1xuICAgICAgICAnYXRhbiB2aXN1YWxtb2RlIGlucHV0bGlzdCB0YWJwYWdld2lubnIgcm91bmQgZ2V0cmVndHlwZSBtYXBjaGVjayAnICtcbiAgICAgICAgJ2hhc21hcHRvIGhpc3RkZWwgYXJnaWR4IGZpbmRmaWxlIHNoYTI1NiBleGlzdHMgdG91cHBlciBnZXRjbWRsaW5lICcgK1xuICAgICAgICAndGFnbGlzdCBzdHJpbmcgZ2V0bWF0Y2hlcyBidWZuciBzdHJmdGltZSB3aW53aWR0aCBidWZleGlzdHMgJyArXG4gICAgICAgICdzdHJ0cmFucyB0YWJwYWdlYnVmbGlzdCBzZXRjbWRwb3MgcmVtb3RlX3JlYWQgcHJpbnRmIHNldGxvY2xpc3QgJyArXG4gICAgICAgICdnZXRwb3MgZ2V0bGluZSBidWZ3aW5uciBmbG9hdDJuciBsZW4gZ2V0Y21kdHlwZSBkaWZmX2ZpbGxlciBsdWFldmFsICcgK1xuICAgICAgICAncmVzb2x2ZSBsaWJjYWxsbnIgZm9sZGNsb3NlZGVuZCByZXZlcnNlIGZpbHRlciBoYXNfa2V5IGJ1Zm5hbWUgJyArXG4gICAgICAgICdzdHIyZmxvYXQgc3RybGVuIHNldGxpbmUgZ2V0Y2hhcm1vZCBzZXRidWZ2YXIgaW5kZXggc2VhcmNocG9zICcgK1xuICAgICAgICAnc2hlbGxlc2NhcGUgdW5kb2ZpbGUgZm9sZGNsb3NlZCBzZXRxZmxpc3QgYnVmbGlzdGVkIHN0cmNoYXJzIHN0cjJuciAnICtcbiAgICAgICAgJ3ZpcnRjb2wgZmxvb3IgcmVtb3ZlIHVuZG90cmVlIHJlbW90ZV9leHByIHdpbmhlaWdodCBnZXR0YWJ3aW52YXIgJyArXG4gICAgICAgICdyZWx0aW1lIGN1cnNvciB0YWJwYWdlbnIgZmluZGRpciBsb2NhbHRpbWUgYWNvcyBnZXRsb2NsaXN0IHNlYXJjaCAnICtcbiAgICAgICAgJ3RhbmggbWF0Y2hlbmQgcmVuYW1lIGdldHRhYnZhciBzdHJkaXNwbGF5d2lkdGggdHlwZSBhYnMgcHkzZXZhbCAnICtcbiAgICAgICAgJ3NldHdpbnZhciB0b2xvd2VyIHdpbGRtZW51bW9kZSBsb2cxMCBzcGVsbHN1Z2dlc3QgYnVmbG9hZGVkICcgK1xuICAgICAgICAnc3luY29uY2VhbGVkIG5leHRub25ibGFuayBzZXJ2ZXIyY2xpZW50IGNvbXBsZXRlIHNldHRhYndpbnZhciAnICtcbiAgICAgICAgJ2V4ZWN1dGFibGUgaW5wdXQgd2luY29sIHNldG1hdGNoZXMgZ2V0ZnR5cGUgaGxJRCBpbnB1dHNhdmUgJyArXG4gICAgICAgICdzZWFyY2hwYWlyIG9yIHNjcmVlbnJvdyBsaW5lIHNldHRhYnZhciBoaXN0YWRkIGRlZXBjb3B5IHN0cnBhcnQgJyArXG4gICAgICAgICdyZW1vdGVfcGVlayBhbmQgZXZhbCBnZXRmdGltZSBzdWJtYXRjaCBzY3JlZW5jaGFyIHdpbnNhdmV2aWV3ICcgK1xuICAgICAgICAnbWF0Y2hhZGQgbWtkaXIgc2NyZWVuYXR0ciBnZXRmb250bmFtZSBsaWJjYWxsIHJlbHRpbWVzdHIgZ2V0ZnNpemUgJyArXG4gICAgICAgICd3aW5uciBpbnZlcnQgcG93IGdldGJ1ZmxpbmUgYnl0ZTJsaW5lIHNvdW5kZm9sZCByZXBlYXQgZm5hbWVlc2NhcGUgJyArXG4gICAgICAgICd0YWdmaWxlcyBzaW4gc3Ryd2lkdGggc3BlbGxiYWR3b3JkIHRydW5jIG1hcGFyZyBsb2cgbGlzcGluZGVudCAnICtcbiAgICAgICAgJ2hvc3RuYW1lIHNldHBvcyBnbG9icGF0aCByZW1vdGVfZm9yZWdyb3VuZCBnZXRjaGFyIHN5bklEYXR0ciAnICtcbiAgICAgICAgJ2ZuYW1lbW9kaWZ5IGNzY29wZV9jb25uZWN0aW9uIHN0cmlkeCB3aW5idWZuciBpbmRlbnQgbWluICcgK1xuICAgICAgICAnY29tcGxldGVfYWRkIG5yMmNoYXIgc2VhcmNocGFpcnBvcyBpbnB1dGRpYWxvZyB2YWx1ZXMgbWF0Y2hsaXN0ICcgK1xuICAgICAgICAnaXRlbXMgaGxleGlzdHMgc3RycmlkeCBicm93c2VkaXIgZXhwYW5kIGZtb2QgcGF0aHNob3J0ZW4gbGluZTJieXRlICcgK1xuICAgICAgICAnYXJnYyBjb3VudCBnZXR3aW52YXIgZ2xvYiBmb2xkdGV4dHJlc3VsdCBnZXRyZWcgZm9yZWdyb3VuZCBjb3NoICcgK1xuICAgICAgICAnbWF0Y2hkZWxldGUgaGFzIGNoYXIybnIgc2ltcGxpZnkgaGlzdGdldCBzZWFyY2hkZWNsIGljb252ICcgK1xuICAgICAgICAnd2lucmVzdGNtZCBwdW12aXNpYmxlIHdyaXRlZmlsZSBmb2xkbGV2ZWwgaGFzbG9jYWxkaXIga2V5cyBjb3MgJyArXG4gICAgICAgICdtYXRjaHN0ciBmb2xkdGV4dCBoaXN0bnIgdGFuIHRlbXBuYW1lIGdldGN3ZCBieXRlaWR4IGdldGJ1ZnZhciAnICtcbiAgICAgICAgJ2lzbG9ja2VkIGVzY2FwZSBldmVudGhhbmRsZXIgcmVtb3RlX3NlbmQgc2VydmVybGlzdCB3aW5yZXN0dmlldyAnICtcbiAgICAgICAgJ3N5bnN0YWNrIHB5ZXZhbCBwcmV2bm9uYmxhbmsgcmVhZGZpbGUgY2luZGVudCBmaWxlcmVhZGFibGUgY2hhbmdlbnIgJyArXG4gICAgICAgICdleHAnXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAvOy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG5cbiAgICAgIC8qXG4gICAgICBBIGRvdWJsZSBxdW90ZSBjYW4gc3RhcnQgZWl0aGVyIGEgc3RyaW5nIG9yIGEgbGluZSBjb21tZW50LiBTdHJpbmdzIGFyZVxuICAgICAgZW5kZWQgYmVmb3JlIHRoZSBlbmQgb2YgYSBsaW5lIGJ5IGFub3RoZXIgZG91YmxlIHF1b3RlIGFuZCBjYW4gY29udGFpblxuICAgICAgZXNjYXBlZCBkb3VibGUtcXVvdGVzIGFuZCBwb3N0LWVzY2FwZWQgbGluZSBicmVha3MuXG5cbiAgICAgIEFsc28sIGFueSBkb3VibGUgcXVvdGUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgaXMgYSBjb21tZW50IGJ1dCB3ZVxuICAgICAgZG9uJ3QgaGFuZGxlIHRoYXQgcHJvcGVybHkgYXQgdGhlIG1vbWVudDogYW55IGRvdWJsZSBxdW90ZSBpbnNpZGUgd2lsbFxuICAgICAgdHVybiB0aGVtIGludG8gYSBzdHJpbmcuIEhhbmRsaW5nIGl0IHByb3Blcmx5IHdpbGwgcmVxdWlyZSBhIHNtYXJ0ZXJcbiAgICAgIHBhcnNlci5cbiAgICAgICovXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXCIoXFxcXFwifFxcblxcXFx8W15cIlxcbl0pKlwiL1xuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXCInLCAnJCcpLFxuXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9bYnd0Z2xzYXZdOltcXHdcXGRfXSovXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbiBmdW5jdGlvbiEnLCBlbmQ6ICckJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcKCcsIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC88W1xcdy1dKz4vXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGxleGVtZXM6ICdbLiVdPycgKyBobGpzLklERU5UX1JFLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnbG9jayByZXAgcmVwZSByZXB6IHJlcG5lIHJlcG56IHhhcXVpcmUgeHJlbGVhc2UgYm5kIG5vYm5kICcgK1xuICAgICAgICAnYWFhIGFhZCBhYW0gYWFzIGFkYyBhZGQgYW5kIGFycGwgYmIwX3Jlc2V0IGJiMV9yZXNldCBib3VuZCBic2YgYnNyIGJzd2FwIGJ0IGJ0YyBidHIgYnRzIGNhbGwgY2J3IGNkcSBjZHFlIGNsYyBjbGQgY2xpIGNsdHMgY21jIGNtcCBjbXBzYiBjbXBzZCBjbXBzcSBjbXBzdyBjbXB4Y2hnIGNtcHhjaGc0ODYgY21weGNoZzhiIGNtcHhjaGcxNmIgY3B1aWQgY3B1X3JlYWQgY3B1X3dyaXRlIGNxbyBjd2QgY3dkZSBkYWEgZGFzIGRlYyBkaXYgZG1pbnQgZW1tcyBlbnRlciBlcXUgZjJ4bTEgZmFicyBmYWRkIGZhZGRwIGZibGQgZmJzdHAgZmNocyBmY2xleCBmY21vdmIgZmNtb3ZiZSBmY21vdmUgZmNtb3ZuYiBmY21vdm5iZSBmY21vdm5lIGZjbW92bnUgZmNtb3Z1IGZjb20gZmNvbWkgZmNvbWlwIGZjb21wIGZjb21wcCBmY29zIGZkZWNzdHAgZmRpc2kgZmRpdiBmZGl2cCBmZGl2ciBmZGl2cnAgZmVtbXMgZmVuaSBmZnJlZSBmZnJlZXAgZmlhZGQgZmljb20gZmljb21wIGZpZGl2IGZpZGl2ciBmaWxkIGZpbXVsIGZpbmNzdHAgZmluaXQgZmlzdCBmaXN0cCBmaXN0dHAgZmlzdWIgZmlzdWJyIGZsZCBmbGQxIGZsZGN3IGZsZGVudiBmbGRsMmUgZmxkbDJ0IGZsZGxnMiBmbGRsbjIgZmxkcGkgZmxkeiBmbXVsIGZtdWxwIGZuY2xleCBmbmRpc2kgZm5lbmkgZm5pbml0IGZub3AgZm5zYXZlIGZuc3RjdyBmbnN0ZW52IGZuc3RzdyBmcGF0YW4gZnByZW0gZnByZW0xIGZwdGFuIGZybmRpbnQgZnJzdG9yIGZzYXZlIGZzY2FsZSBmc2V0cG0gZnNpbiBmc2luY29zIGZzcXJ0IGZzdCBmc3RjdyBmc3RlbnYgZnN0cCBmc3RzdyBmc3ViIGZzdWJwIGZzdWJyIGZzdWJycCBmdHN0IGZ1Y29tIGZ1Y29taSBmdWNvbWlwIGZ1Y29tcCBmdWNvbXBwIGZ4YW0gZnhjaCBmeHRyYWN0IGZ5bDJ4IGZ5bDJ4cDEgaGx0IGlidHMgaWNlYnAgaWRpdiBpbXVsIGluIGluYyBpbmNiaW4gaW5zYiBpbnNkIGluc3cgaW50IGludDAxIGludDEgaW50MDMgaW50MyBpbnRvIGludmQgaW52cGNpZCBpbnZscGcgaW52bHBnYSBpcmV0IGlyZXRkIGlyZXRxIGlyZXR3IGpjeHogamVjeHoganJjeHogam1wIGptcGUgbGFoZiBsYXIgbGRzIGxlYSBsZWF2ZSBsZXMgbGZlbmNlIGxmcyBsZ2R0IGxncyBsaWR0IGxsZHQgbG1zdyBsb2FkYWxsIGxvYWRhbGwyODYgbG9kc2IgbG9kc2QgbG9kc3EgbG9kc3cgbG9vcCBsb29wZSBsb29wbmUgbG9vcG56IGxvb3B6IGxzbCBsc3MgbHRyIG1mZW5jZSBtb25pdG9yIG1vdiBtb3ZkIG1vdnEgbW92c2IgbW92c2QgbW92c3EgbW92c3cgbW92c3ggbW92c3hkIG1vdnp4IG11bCBtd2FpdCBuZWcgbm9wIG5vdCBvciBvdXQgb3V0c2Igb3V0c2Qgb3V0c3cgcGFja3NzZHcgcGFja3Nzd2IgcGFja3Vzd2IgcGFkZGIgcGFkZGQgcGFkZHNiIHBhZGRzaXcgcGFkZHN3IHBhZGR1c2IgcGFkZHVzdyBwYWRkdyBwYW5kIHBhbmRuIHBhdXNlIHBhdmViIHBhdmd1c2IgcGNtcGVxYiBwY21wZXFkIHBjbXBlcXcgcGNtcGd0YiBwY21wZ3RkIHBjbXBndHcgcGRpc3RpYiBwZjJpZCBwZmFjYyBwZmFkZCBwZmNtcGVxIHBmY21wZ2UgcGZjbXBndCBwZm1heCBwZm1pbiBwZm11bCBwZnJjcCBwZnJjcGl0MSBwZnJjcGl0MiBwZnJzcWl0MSBwZnJzcXJ0IHBmc3ViIHBmc3ViciBwaTJmZCBwbWFjaHJpdyBwbWFkZHdkIHBtYWd3IHBtdWxocml3IHBtdWxocndhIHBtdWxocndjIHBtdWxodyBwbXVsbHcgcG12Z2V6YiBwbXZsemIgcG12bnpiIHBtdnpiIHBvcCBwb3BhIHBvcGFkIHBvcGF3IHBvcGYgcG9wZmQgcG9wZnEgcG9wZncgcG9yIHByZWZldGNoIHByZWZldGNodyBwc2xsZCBwc2xscSBwc2xsdyBwc3JhZCBwc3JhdyBwc3JsZCBwc3JscSBwc3JsdyBwc3ViYiBwc3ViZCBwc3Vic2IgcHN1YnNpdyBwc3Vic3cgcHN1YnVzYiBwc3VidXN3IHBzdWJ3IHB1bnBja2hidyBwdW5wY2toZHEgcHVucGNraHdkIHB1bnBja2xidyBwdW5wY2tsZHEgcHVucGNrbHdkIHB1c2ggcHVzaGEgcHVzaGFkIHB1c2hhdyBwdXNoZiBwdXNoZmQgcHVzaGZxIHB1c2hmdyBweG9yIHJjbCByY3IgcmRzaHIgcmRtc3IgcmRwbWMgcmR0c2MgcmR0c2NwIHJldCByZXRmIHJldG4gcm9sIHJvciByZG0gcnNkYyByc2xkdCByc20gcnN0cyBzYWhmIHNhbCBzYWxjIHNhciBzYmIgc2Nhc2Igc2Nhc2Qgc2Nhc3Egc2Nhc3cgc2ZlbmNlIHNnZHQgc2hsIHNobGQgc2hyIHNocmQgc2lkdCBzbGR0IHNraW5pdCBzbWkgc21pbnQgc21pbnRvbGQgc21zdyBzdGMgc3RkIHN0aSBzdG9zYiBzdG9zZCBzdG9zcSBzdG9zdyBzdHIgc3ViIHN2ZGMgc3ZsZHQgc3Z0cyBzd2FwZ3Mgc3lzY2FsbCBzeXNlbnRlciBzeXNleGl0IHN5c3JldCB0ZXN0IHVkMCB1ZDEgdWQyYiB1ZDIgdWQyYSB1bW92IHZlcnIgdmVydyBmd2FpdCB3YmludmQgd3JzaHIgd3Jtc3IgeGFkZCB4YnRzIHhjaGcgeGxhdGIgeGxhdCB4b3IgY21vdmUgY21vdnogY21vdm5lIGNtb3ZueiBjbW92YSBjbW92bmJlIGNtb3ZhZSBjbW92bmIgY21vdmIgY21vdm5hZSBjbW92YmUgY21vdm5hIGNtb3ZnIGNtb3ZubGUgY21vdmdlIGNtb3ZubCBjbW92bCBjbW92bmdlIGNtb3ZsZSBjbW92bmcgY21vdmMgY21vdm5jIGNtb3ZvIGNtb3ZubyBjbW92cyBjbW92bnMgY21vdnAgY21vdnBlIGNtb3ZucCBjbW92cG8gamUganogam5lIGpueiBqYSBqbmJlIGphZSBqbmIgamIgam5hZSBqYmUgam5hIGpnIGpubGUgamdlIGpubCBqbCBqbmdlIGpsZSBqbmcgamMgam5jIGpvIGpubyBqcyBqbnMganBvIGpucCBqcGUganAgc2V0ZSBzZXR6IHNldG5lIHNldG56IHNldGEgc2V0bmJlIHNldGFlIHNldG5iIHNldG5jIHNldGIgc2V0bmFlIHNldGNzZXQgc2V0YmUgc2V0bmEgc2V0ZyBzZXRubGUgc2V0Z2Ugc2V0bmwgc2V0bCBzZXRuZ2Ugc2V0bGUgc2V0bmcgc2V0cyBzZXRucyBzZXRvIHNldG5vIHNldHBlIHNldHAgc2V0cG8gc2V0bnAgYWRkcHMgYWRkc3MgYW5kbnBzIGFuZHBzIGNtcGVxcHMgY21wZXFzcyBjbXBsZXBzIGNtcGxlc3MgY21wbHRwcyBjbXBsdHNzIGNtcG5lcXBzIGNtcG5lcXNzIGNtcG5sZXBzIGNtcG5sZXNzIGNtcG5sdHBzIGNtcG5sdHNzIGNtcG9yZHBzIGNtcG9yZHNzIGNtcHVub3JkcHMgY21wdW5vcmRzcyBjbXBwcyBjbXBzcyBjb21pc3MgY3Z0cGkycHMgY3Z0cHMycGkgY3Z0c2kyc3MgY3Z0c3Myc2kgY3Z0dHBzMnBpIGN2dHRzczJzaSBkaXZwcyBkaXZzcyBsZG14Y3NyIG1heHBzIG1heHNzIG1pbnBzIG1pbnNzIG1vdmFwcyBtb3ZocHMgbW92bGhwcyBtb3ZscHMgbW92aGxwcyBtb3Ztc2twcyBtb3ZudHBzIG1vdnNzIG1vdnVwcyBtdWxwcyBtdWxzcyBvcnBzIHJjcHBzIHJjcHNzIHJzcXJ0cHMgcnNxcnRzcyBzaHVmcHMgc3FydHBzIHNxcnRzcyBzdG14Y3NyIHN1YnBzIHN1YnNzIHVjb21pc3MgdW5wY2tocHMgdW5wY2tscHMgeG9ycHMgZnhyc3RvciBmeHJzdG9yNjQgZnhzYXZlIGZ4c2F2ZTY0IHhnZXRidiB4c2V0YnYgeHNhdmUgeHNhdmU2NCB4c2F2ZW9wdCB4c2F2ZW9wdDY0IHhyc3RvciB4cnN0b3I2NCBwcmVmZXRjaG50YSBwcmVmZXRjaHQwIHByZWZldGNodDEgcHJlZmV0Y2h0MiBtYXNrbW92cSBtb3ZudHEgcGF2Z2IgcGF2Z3cgcGV4dHJ3IHBpbnNydyBwbWF4c3cgcG1heHViIHBtaW5zdyBwbWludWIgcG1vdm1za2IgcG11bGh1dyBwc2FkYncgcHNodWZ3IHBmMml3IHBmbmFjYyBwZnBuYWNjIHBpMmZ3IHBzd2FwZCBtYXNrbW92ZHF1IGNsZmx1c2ggbW92bnRkcSBtb3ZudGkgbW92bnRwZCBtb3ZkcWEgbW92ZHF1IG1vdmRxMnEgbW92cTJkcSBwYWRkcSBwbXVsdWRxIHBzaHVmZCBwc2h1Zmh3IHBzaHVmbHcgcHNsbGRxIHBzcmxkcSBwc3VicSBwdW5wY2tocWRxIHB1bnBja2xxZHEgYWRkcGQgYWRkc2QgYW5kbnBkIGFuZHBkIGNtcGVxcGQgY21wZXFzZCBjbXBsZXBkIGNtcGxlc2QgY21wbHRwZCBjbXBsdHNkIGNtcG5lcXBkIGNtcG5lcXNkIGNtcG5sZXBkIGNtcG5sZXNkIGNtcG5sdHBkIGNtcG5sdHNkIGNtcG9yZHBkIGNtcG9yZHNkIGNtcHVub3JkcGQgY21wdW5vcmRzZCBjbXBwZCBjb21pc2QgY3Z0ZHEycGQgY3Z0ZHEycHMgY3Z0cGQyZHEgY3Z0cGQycGkgY3Z0cGQycHMgY3Z0cGkycGQgY3Z0cHMyZHEgY3Z0cHMycGQgY3Z0c2Qyc2kgY3Z0c2Qyc3MgY3Z0c2kyc2QgY3Z0c3Myc2QgY3Z0dHBkMnBpIGN2dHRwZDJkcSBjdnR0cHMyZHEgY3Z0dHNkMnNpIGRpdnBkIGRpdnNkIG1heHBkIG1heHNkIG1pbnBkIG1pbnNkIG1vdmFwZCBtb3ZocGQgbW92bHBkIG1vdm1za3BkIG1vdnVwZCBtdWxwZCBtdWxzZCBvcnBkIHNodWZwZCBzcXJ0cGQgc3FydHNkIHN1YnBkIHN1YnNkIHVjb21pc2QgdW5wY2tocGQgdW5wY2tscGQgeG9ycGQgYWRkc3VicGQgYWRkc3VicHMgaGFkZHBkIGhhZGRwcyBoc3VicGQgaHN1YnBzIGxkZHF1IG1vdmRkdXAgbW92c2hkdXAgbW92c2xkdXAgY2xnaSBzdGdpIHZtY2FsbCB2bWNsZWFyIHZtZnVuYyB2bWxhdW5jaCB2bWxvYWQgdm1tY2FsbCB2bXB0cmxkIHZtcHRyc3Qgdm1yZWFkIHZtcmVzdW1lIHZtcnVuIHZtc2F2ZSB2bXdyaXRlIHZteG9mZiB2bXhvbiBpbnZlcHQgaW52dnBpZCBwYWJzYiBwYWJzdyBwYWJzZCBwYWxpZ25yIHBoYWRkdyBwaGFkZGQgcGhhZGRzdyBwaHN1YncgcGhzdWJkIHBoc3Vic3cgcG1hZGR1YnN3IHBtdWxocnN3IHBzaHVmYiBwc2lnbmIgcHNpZ253IHBzaWduZCBleHRycSBpbnNlcnRxIG1vdm50c2QgbW92bnRzcyBsemNudCBibGVuZHBkIGJsZW5kcHMgYmxlbmR2cGQgYmxlbmR2cHMgZHBwZCBkcHBzIGV4dHJhY3RwcyBpbnNlcnRwcyBtb3ZudGRxYSBtcHNhZGJ3IHBhY2t1c2R3IHBibGVuZHZiIHBibGVuZHcgcGNtcGVxcSBwZXh0cmIgcGV4dHJkIHBleHRycSBwaG1pbnBvc3V3IHBpbnNyYiBwaW5zcmQgcGluc3JxIHBtYXhzYiBwbWF4c2QgcG1heHVkIHBtYXh1dyBwbWluc2IgcG1pbnNkIHBtaW51ZCBwbWludXcgcG1vdnN4YncgcG1vdnN4YmQgcG1vdnN4YnEgcG1vdnN4d2QgcG1vdnN4d3EgcG1vdnN4ZHEgcG1vdnp4YncgcG1vdnp4YmQgcG1vdnp4YnEgcG1vdnp4d2QgcG1vdnp4d3EgcG1vdnp4ZHEgcG11bGRxIHBtdWxsZCBwdGVzdCByb3VuZHBkIHJvdW5kcHMgcm91bmRzZCByb3VuZHNzIGNyYzMyIHBjbXBlc3RyaSBwY21wZXN0cm0gcGNtcGlzdHJpIHBjbXBpc3RybSBwY21wZ3RxIHBvcGNudCBnZXRzZWMgcGZyY3B2IHBmcnNxcnR2IG1vdmJlIGFlc2VuYyBhZXNlbmNsYXN0IGFlc2RlYyBhZXNkZWNsYXN0IGFlc2ltYyBhZXNrZXlnZW5hc3Npc3QgdmFlc2VuYyB2YWVzZW5jbGFzdCB2YWVzZGVjIHZhZXNkZWNsYXN0IHZhZXNpbWMgdmFlc2tleWdlbmFzc2lzdCB2YWRkcGQgdmFkZHBzIHZhZGRzZCB2YWRkc3MgdmFkZHN1YnBkIHZhZGRzdWJwcyB2YW5kcGQgdmFuZHBzIHZhbmRucGQgdmFuZG5wcyB2YmxlbmRwZCB2YmxlbmRwcyB2YmxlbmR2cGQgdmJsZW5kdnBzIHZicm9hZGNhc3RzcyB2YnJvYWRjYXN0c2QgdmJyb2FkY2FzdGYxMjggdmNtcGVxX29zcGQgdmNtcGVxcGQgdmNtcGx0X29zcGQgdmNtcGx0cGQgdmNtcGxlX29zcGQgdmNtcGxlcGQgdmNtcHVub3JkX3FwZCB2Y21wdW5vcmRwZCB2Y21wbmVxX3VxcGQgdmNtcG5lcXBkIHZjbXBubHRfdXNwZCB2Y21wbmx0cGQgdmNtcG5sZV91c3BkIHZjbXBubGVwZCB2Y21wb3JkX3FwZCB2Y21wb3JkcGQgdmNtcGVxX3VxcGQgdmNtcG5nZV91c3BkIHZjbXBuZ2VwZCB2Y21wbmd0X3VzcGQgdmNtcG5ndHBkIHZjbXBmYWxzZV9vcXBkIHZjbXBmYWxzZXBkIHZjbXBuZXFfb3FwZCB2Y21wZ2Vfb3NwZCB2Y21wZ2VwZCB2Y21wZ3Rfb3NwZCB2Y21wZ3RwZCB2Y21wdHJ1ZV91cXBkIHZjbXB0cnVlcGQgdmNtcGx0X29xcGQgdmNtcGxlX29xcGQgdmNtcHVub3JkX3NwZCB2Y21wbmVxX3VzcGQgdmNtcG5sdF91cXBkIHZjbXBubGVfdXFwZCB2Y21wb3JkX3NwZCB2Y21wZXFfdXNwZCB2Y21wbmdlX3VxcGQgdmNtcG5ndF91cXBkIHZjbXBmYWxzZV9vc3BkIHZjbXBuZXFfb3NwZCB2Y21wZ2Vfb3FwZCB2Y21wZ3Rfb3FwZCB2Y21wdHJ1ZV91c3BkIHZjbXBwZCB2Y21wZXFfb3NwcyB2Y21wZXFwcyB2Y21wbHRfb3NwcyB2Y21wbHRwcyB2Y21wbGVfb3NwcyB2Y21wbGVwcyB2Y21wdW5vcmRfcXBzIHZjbXB1bm9yZHBzIHZjbXBuZXFfdXFwcyB2Y21wbmVxcHMgdmNtcG5sdF91c3BzIHZjbXBubHRwcyB2Y21wbmxlX3VzcHMgdmNtcG5sZXBzIHZjbXBvcmRfcXBzIHZjbXBvcmRwcyB2Y21wZXFfdXFwcyB2Y21wbmdlX3VzcHMgdmNtcG5nZXBzIHZjbXBuZ3RfdXNwcyB2Y21wbmd0cHMgdmNtcGZhbHNlX29xcHMgdmNtcGZhbHNlcHMgdmNtcG5lcV9vcXBzIHZjbXBnZV9vc3BzIHZjbXBnZXBzIHZjbXBndF9vc3BzIHZjbXBndHBzIHZjbXB0cnVlX3VxcHMgdmNtcHRydWVwcyB2Y21wbHRfb3FwcyB2Y21wbGVfb3FwcyB2Y21wdW5vcmRfc3BzIHZjbXBuZXFfdXNwcyB2Y21wbmx0X3VxcHMgdmNtcG5sZV91cXBzIHZjbXBvcmRfc3BzIHZjbXBlcV91c3BzIHZjbXBuZ2VfdXFwcyB2Y21wbmd0X3VxcHMgdmNtcGZhbHNlX29zcHMgdmNtcG5lcV9vc3BzIHZjbXBnZV9vcXBzIHZjbXBndF9vcXBzIHZjbXB0cnVlX3VzcHMgdmNtcHBzIHZjbXBlcV9vc3NkIHZjbXBlcXNkIHZjbXBsdF9vc3NkIHZjbXBsdHNkIHZjbXBsZV9vc3NkIHZjbXBsZXNkIHZjbXB1bm9yZF9xc2QgdmNtcHVub3Jkc2QgdmNtcG5lcV91cXNkIHZjbXBuZXFzZCB2Y21wbmx0X3Vzc2QgdmNtcG5sdHNkIHZjbXBubGVfdXNzZCB2Y21wbmxlc2QgdmNtcG9yZF9xc2QgdmNtcG9yZHNkIHZjbXBlcV91cXNkIHZjbXBuZ2VfdXNzZCB2Y21wbmdlc2QgdmNtcG5ndF91c3NkIHZjbXBuZ3RzZCB2Y21wZmFsc2Vfb3FzZCB2Y21wZmFsc2VzZCB2Y21wbmVxX29xc2QgdmNtcGdlX29zc2QgdmNtcGdlc2QgdmNtcGd0X29zc2QgdmNtcGd0c2QgdmNtcHRydWVfdXFzZCB2Y21wdHJ1ZXNkIHZjbXBsdF9vcXNkIHZjbXBsZV9vcXNkIHZjbXB1bm9yZF9zc2QgdmNtcG5lcV91c3NkIHZjbXBubHRfdXFzZCB2Y21wbmxlX3Vxc2QgdmNtcG9yZF9zc2QgdmNtcGVxX3Vzc2QgdmNtcG5nZV91cXNkIHZjbXBuZ3RfdXFzZCB2Y21wZmFsc2Vfb3NzZCB2Y21wbmVxX29zc2QgdmNtcGdlX29xc2QgdmNtcGd0X29xc2QgdmNtcHRydWVfdXNzZCB2Y21wc2QgdmNtcGVxX29zc3MgdmNtcGVxc3MgdmNtcGx0X29zc3MgdmNtcGx0c3MgdmNtcGxlX29zc3MgdmNtcGxlc3MgdmNtcHVub3JkX3FzcyB2Y21wdW5vcmRzcyB2Y21wbmVxX3Vxc3MgdmNtcG5lcXNzIHZjbXBubHRfdXNzcyB2Y21wbmx0c3MgdmNtcG5sZV91c3NzIHZjbXBubGVzcyB2Y21wb3JkX3FzcyB2Y21wb3Jkc3MgdmNtcGVxX3Vxc3MgdmNtcG5nZV91c3NzIHZjbXBuZ2VzcyB2Y21wbmd0X3Vzc3MgdmNtcG5ndHNzIHZjbXBmYWxzZV9vcXNzIHZjbXBmYWxzZXNzIHZjbXBuZXFfb3FzcyB2Y21wZ2Vfb3NzcyB2Y21wZ2VzcyB2Y21wZ3Rfb3NzcyB2Y21wZ3RzcyB2Y21wdHJ1ZV91cXNzIHZjbXB0cnVlc3MgdmNtcGx0X29xc3MgdmNtcGxlX29xc3MgdmNtcHVub3JkX3NzcyB2Y21wbmVxX3Vzc3MgdmNtcG5sdF91cXNzIHZjbXBubGVfdXFzcyB2Y21wb3JkX3NzcyB2Y21wZXFfdXNzcyB2Y21wbmdlX3Vxc3MgdmNtcG5ndF91cXNzIHZjbXBmYWxzZV9vc3NzIHZjbXBuZXFfb3NzcyB2Y21wZ2Vfb3FzcyB2Y21wZ3Rfb3FzcyB2Y21wdHJ1ZV91c3NzIHZjbXBzcyB2Y29taXNkIHZjb21pc3MgdmN2dGRxMnBkIHZjdnRkcTJwcyB2Y3Z0cGQyZHEgdmN2dHBkMnBzIHZjdnRwczJkcSB2Y3Z0cHMycGQgdmN2dHNkMnNpIHZjdnRzZDJzcyB2Y3Z0c2kyc2QgdmN2dHNpMnNzIHZjdnRzczJzZCB2Y3Z0c3Myc2kgdmN2dHRwZDJkcSB2Y3Z0dHBzMmRxIHZjdnR0c2Qyc2kgdmN2dHRzczJzaSB2ZGl2cGQgdmRpdnBzIHZkaXZzZCB2ZGl2c3MgdmRwcGQgdmRwcHMgdmV4dHJhY3RmMTI4IHZleHRyYWN0cHMgdmhhZGRwZCB2aGFkZHBzIHZoc3VicGQgdmhzdWJwcyB2aW5zZXJ0ZjEyOCB2aW5zZXJ0cHMgdmxkZHF1IHZsZHFxdSB2bGRteGNzciB2bWFza21vdmRxdSB2bWFza21vdnBzIHZtYXNrbW92cGQgdm1heHBkIHZtYXhwcyB2bWF4c2Qgdm1heHNzIHZtaW5wZCB2bWlucHMgdm1pbnNkIHZtaW5zcyB2bW92YXBkIHZtb3ZhcHMgdm1vdmQgdm1vdnEgdm1vdmRkdXAgdm1vdmRxYSB2bW92cXFhIHZtb3ZkcXUgdm1vdnFxdSB2bW92aGxwcyB2bW92aHBkIHZtb3ZocHMgdm1vdmxocHMgdm1vdmxwZCB2bW92bHBzIHZtb3Ztc2twZCB2bW92bXNrcHMgdm1vdm50ZHEgdm1vdm50cXEgdm1vdm50ZHFhIHZtb3ZudHBkIHZtb3ZudHBzIHZtb3ZzZCB2bW92c2hkdXAgdm1vdnNsZHVwIHZtb3ZzcyB2bW92dXBkIHZtb3Z1cHMgdm1wc2FkYncgdm11bHBkIHZtdWxwcyB2bXVsc2Qgdm11bHNzIHZvcnBkIHZvcnBzIHZwYWJzYiB2cGFic3cgdnBhYnNkIHZwYWNrc3N3YiB2cGFja3NzZHcgdnBhY2t1c3diIHZwYWNrdXNkdyB2cGFkZGIgdnBhZGR3IHZwYWRkZCB2cGFkZHEgdnBhZGRzYiB2cGFkZHN3IHZwYWRkdXNiIHZwYWRkdXN3IHZwYWxpZ25yIHZwYW5kIHZwYW5kbiB2cGF2Z2IgdnBhdmd3IHZwYmxlbmR2YiB2cGJsZW5kdyB2cGNtcGVzdHJpIHZwY21wZXN0cm0gdnBjbXBpc3RyaSB2cGNtcGlzdHJtIHZwY21wZXFiIHZwY21wZXF3IHZwY21wZXFkIHZwY21wZXFxIHZwY21wZ3RiIHZwY21wZ3R3IHZwY21wZ3RkIHZwY21wZ3RxIHZwZXJtaWxwZCB2cGVybWlscHMgdnBlcm0yZjEyOCB2cGV4dHJiIHZwZXh0cncgdnBleHRyZCB2cGV4dHJxIHZwaGFkZHcgdnBoYWRkZCB2cGhhZGRzdyB2cGhtaW5wb3N1dyB2cGhzdWJ3IHZwaHN1YmQgdnBoc3Vic3cgdnBpbnNyYiB2cGluc3J3IHZwaW5zcmQgdnBpbnNycSB2cG1hZGR3ZCB2cG1hZGR1YnN3IHZwbWF4c2IgdnBtYXhzdyB2cG1heHNkIHZwbWF4dWIgdnBtYXh1dyB2cG1heHVkIHZwbWluc2IgdnBtaW5zdyB2cG1pbnNkIHZwbWludWIgdnBtaW51dyB2cG1pbnVkIHZwbW92bXNrYiB2cG1vdnN4YncgdnBtb3ZzeGJkIHZwbW92c3hicSB2cG1vdnN4d2QgdnBtb3ZzeHdxIHZwbW92c3hkcSB2cG1vdnp4YncgdnBtb3Z6eGJkIHZwbW92enhicSB2cG1vdnp4d2QgdnBtb3Z6eHdxIHZwbW92enhkcSB2cG11bGh1dyB2cG11bGhyc3cgdnBtdWxodyB2cG11bGx3IHZwbXVsbGQgdnBtdWx1ZHEgdnBtdWxkcSB2cG9yIHZwc2FkYncgdnBzaHVmYiB2cHNodWZkIHZwc2h1Zmh3IHZwc2h1Zmx3IHZwc2lnbmIgdnBzaWdudyB2cHNpZ25kIHZwc2xsZHEgdnBzcmxkcSB2cHNsbHcgdnBzbGxkIHZwc2xscSB2cHNyYXcgdnBzcmFkIHZwc3JsdyB2cHNybGQgdnBzcmxxIHZwdGVzdCB2cHN1YmIgdnBzdWJ3IHZwc3ViZCB2cHN1YnEgdnBzdWJzYiB2cHN1YnN3IHZwc3VidXNiIHZwc3VidXN3IHZwdW5wY2toYncgdnB1bnBja2h3ZCB2cHVucGNraGRxIHZwdW5wY2tocWRxIHZwdW5wY2tsYncgdnB1bnBja2x3ZCB2cHVucGNrbGRxIHZwdW5wY2tscWRxIHZweG9yIHZyY3BwcyB2cmNwc3MgdnJzcXJ0cHMgdnJzcXJ0c3MgdnJvdW5kcGQgdnJvdW5kcHMgdnJvdW5kc2QgdnJvdW5kc3MgdnNodWZwZCB2c2h1ZnBzIHZzcXJ0cGQgdnNxcnRwcyB2c3FydHNkIHZzcXJ0c3MgdnN0bXhjc3IgdnN1YnBkIHZzdWJwcyB2c3Vic2QgdnN1YnNzIHZ0ZXN0cHMgdnRlc3RwZCB2dWNvbWlzZCB2dWNvbWlzcyB2dW5wY2tocGQgdnVucGNraHBzIHZ1bnBja2xwZCB2dW5wY2tscHMgdnhvcnBkIHZ4b3JwcyB2emVyb2FsbCB2emVyb3VwcGVyIHBjbG11bGxxbHFkcSBwY2xtdWxocWxxZHEgcGNsbXVsbHFocWRxIHBjbG11bGhxaHFkcSBwY2xtdWxxZHEgdnBjbG11bGxxbHFkcSB2cGNsbXVsaHFscWRxIHZwY2xtdWxscWhxZHEgdnBjbG11bGhxaHFkcSB2cGNsbXVscWRxIHZmbWFkZDEzMnBzIHZmbWFkZDEzMnBkIHZmbWFkZDMxMnBzIHZmbWFkZDMxMnBkIHZmbWFkZDIxM3BzIHZmbWFkZDIxM3BkIHZmbWFkZDEyM3BzIHZmbWFkZDEyM3BkIHZmbWFkZDIzMXBzIHZmbWFkZDIzMXBkIHZmbWFkZDMyMXBzIHZmbWFkZDMyMXBkIHZmbWFkZHN1YjEzMnBzIHZmbWFkZHN1YjEzMnBkIHZmbWFkZHN1YjMxMnBzIHZmbWFkZHN1YjMxMnBkIHZmbWFkZHN1YjIxM3BzIHZmbWFkZHN1YjIxM3BkIHZmbWFkZHN1YjEyM3BzIHZmbWFkZHN1YjEyM3BkIHZmbWFkZHN1YjIzMXBzIHZmbWFkZHN1YjIzMXBkIHZmbWFkZHN1YjMyMXBzIHZmbWFkZHN1YjMyMXBkIHZmbXN1YjEzMnBzIHZmbXN1YjEzMnBkIHZmbXN1YjMxMnBzIHZmbXN1YjMxMnBkIHZmbXN1YjIxM3BzIHZmbXN1YjIxM3BkIHZmbXN1YjEyM3BzIHZmbXN1YjEyM3BkIHZmbXN1YjIzMXBzIHZmbXN1YjIzMXBkIHZmbXN1YjMyMXBzIHZmbXN1YjMyMXBkIHZmbXN1YmFkZDEzMnBzIHZmbXN1YmFkZDEzMnBkIHZmbXN1YmFkZDMxMnBzIHZmbXN1YmFkZDMxMnBkIHZmbXN1YmFkZDIxM3BzIHZmbXN1YmFkZDIxM3BkIHZmbXN1YmFkZDEyM3BzIHZmbXN1YmFkZDEyM3BkIHZmbXN1YmFkZDIzMXBzIHZmbXN1YmFkZDIzMXBkIHZmbXN1YmFkZDMyMXBzIHZmbXN1YmFkZDMyMXBkIHZmbm1hZGQxMzJwcyB2Zm5tYWRkMTMycGQgdmZubWFkZDMxMnBzIHZmbm1hZGQzMTJwZCB2Zm5tYWRkMjEzcHMgdmZubWFkZDIxM3BkIHZmbm1hZGQxMjNwcyB2Zm5tYWRkMTIzcGQgdmZubWFkZDIzMXBzIHZmbm1hZGQyMzFwZCB2Zm5tYWRkMzIxcHMgdmZubWFkZDMyMXBkIHZmbm1zdWIxMzJwcyB2Zm5tc3ViMTMycGQgdmZubXN1YjMxMnBzIHZmbm1zdWIzMTJwZCB2Zm5tc3ViMjEzcHMgdmZubXN1YjIxM3BkIHZmbm1zdWIxMjNwcyB2Zm5tc3ViMTIzcGQgdmZubXN1YjIzMXBzIHZmbm1zdWIyMzFwZCB2Zm5tc3ViMzIxcHMgdmZubXN1YjMyMXBkIHZmbWFkZDEzMnNzIHZmbWFkZDEzMnNkIHZmbWFkZDMxMnNzIHZmbWFkZDMxMnNkIHZmbWFkZDIxM3NzIHZmbWFkZDIxM3NkIHZmbWFkZDEyM3NzIHZmbWFkZDEyM3NkIHZmbWFkZDIzMXNzIHZmbWFkZDIzMXNkIHZmbWFkZDMyMXNzIHZmbWFkZDMyMXNkIHZmbXN1YjEzMnNzIHZmbXN1YjEzMnNkIHZmbXN1YjMxMnNzIHZmbXN1YjMxMnNkIHZmbXN1YjIxM3NzIHZmbXN1YjIxM3NkIHZmbXN1YjEyM3NzIHZmbXN1YjEyM3NkIHZmbXN1YjIzMXNzIHZmbXN1YjIzMXNkIHZmbXN1YjMyMXNzIHZmbXN1YjMyMXNkIHZmbm1hZGQxMzJzcyB2Zm5tYWRkMTMyc2QgdmZubWFkZDMxMnNzIHZmbm1hZGQzMTJzZCB2Zm5tYWRkMjEzc3MgdmZubWFkZDIxM3NkIHZmbm1hZGQxMjNzcyB2Zm5tYWRkMTIzc2QgdmZubWFkZDIzMXNzIHZmbm1hZGQyMzFzZCB2Zm5tYWRkMzIxc3MgdmZubWFkZDMyMXNkIHZmbm1zdWIxMzJzcyB2Zm5tc3ViMTMyc2QgdmZubXN1YjMxMnNzIHZmbm1zdWIzMTJzZCB2Zm5tc3ViMjEzc3MgdmZubXN1YjIxM3NkIHZmbm1zdWIxMjNzcyB2Zm5tc3ViMTIzc2QgdmZubXN1YjIzMXNzIHZmbm1zdWIyMzFzZCB2Zm5tc3ViMzIxc3MgdmZubXN1YjMyMXNkIHJkZnNiYXNlIHJkZ3NiYXNlIHJkcmFuZCB3cmZzYmFzZSB3cmdzYmFzZSB2Y3Z0cGgycHMgdmN2dHBzMnBoIGFkY3ggYWRveCByZHNlZWQgY2xhYyBzdGFjIHhzdG9yZSB4Y3J5cHRlY2IgeGNyeXB0Y2JjIHhjcnlwdGN0ciB4Y3J5cHRjZmIgeGNyeXB0b2ZiIG1vbnRtdWwgeHNoYTEgeHNoYTI1NiBsbHdwY2Igc2x3cGNiIGx3cHZhbCBsd3BpbnMgdmZtYWRkcGQgdmZtYWRkcHMgdmZtYWRkc2QgdmZtYWRkc3MgdmZtYWRkc3VicGQgdmZtYWRkc3VicHMgdmZtc3ViYWRkcGQgdmZtc3ViYWRkcHMgdmZtc3VicGQgdmZtc3VicHMgdmZtc3Vic2QgdmZtc3Vic3MgdmZubWFkZHBkIHZmbm1hZGRwcyB2Zm5tYWRkc2QgdmZubWFkZHNzIHZmbm1zdWJwZCB2Zm5tc3VicHMgdmZubXN1YnNkIHZmbm1zdWJzcyB2ZnJjenBkIHZmcmN6cHMgdmZyY3pzZCB2ZnJjenNzIHZwY21vdiB2cGNvbWIgdnBjb21kIHZwY29tcSB2cGNvbXViIHZwY29tdWQgdnBjb211cSB2cGNvbXV3IHZwY29tdyB2cGhhZGRiZCB2cGhhZGRicSB2cGhhZGRidyB2cGhhZGRkcSB2cGhhZGR1YmQgdnBoYWRkdWJxIHZwaGFkZHVidyB2cGhhZGR1ZHEgdnBoYWRkdXdkIHZwaGFkZHV3cSB2cGhhZGR3ZCB2cGhhZGR3cSB2cGhzdWJidyB2cGhzdWJkcSB2cGhzdWJ3ZCB2cG1hY3NkZCB2cG1hY3NkcWggdnBtYWNzZHFsIHZwbWFjc3NkZCB2cG1hY3NzZHFoIHZwbWFjc3NkcWwgdnBtYWNzc3dkIHZwbWFjc3N3dyB2cG1hY3N3ZCB2cG1hY3N3dyB2cG1hZGNzc3dkIHZwbWFkY3N3ZCB2cHBlcm0gdnByb3RiIHZwcm90ZCB2cHJvdHEgdnByb3R3IHZwc2hhYiB2cHNoYWQgdnBzaGFxIHZwc2hhdyB2cHNobGIgdnBzaGxkIHZwc2hscSB2cHNobHcgdmJyb2FkY2FzdGkxMjggdnBibGVuZGQgdnBicm9hZGNhc3RiIHZwYnJvYWRjYXN0dyB2cGJyb2FkY2FzdGQgdnBicm9hZGNhc3RxIHZwZXJtZCB2cGVybXBkIHZwZXJtcHMgdnBlcm1xIHZwZXJtMmkxMjggdmV4dHJhY3RpMTI4IHZpbnNlcnRpMTI4IHZwbWFza21vdmQgdnBtYXNrbW92cSB2cHNsbHZkIHZwc2xsdnEgdnBzcmF2ZCB2cHNybHZkIHZwc3JsdnEgdmdhdGhlcmRwZCB2Z2F0aGVycXBkIHZnYXRoZXJkcHMgdmdhdGhlcnFwcyB2cGdhdGhlcmRkIHZwZ2F0aGVycWQgdnBnYXRoZXJkcSB2cGdhdGhlcnFxIHhhYm9ydCB4YmVnaW4geGVuZCB4dGVzdCBhbmRuIGJleHRyIGJsY2kgYmxjaWMgYmxzaSBibHNpYyBibGNmaWxsIGJsc2ZpbGwgYmxjbXNrIGJsc21zayBibHNyIGJsY3MgYnpoaSBtdWx4IHBkZXAgcGV4dCByb3J4IHNhcnggc2hseCBzaHJ4IHR6Y250IHR6bXNrIHQxbXNrYyB2YWxpZ25kIHZhbGlnbnEgdmJsZW5kbXBkIHZibGVuZG1wcyB2YnJvYWRjYXN0ZjMyeDQgdmJyb2FkY2FzdGY2NHg0IHZicm9hZGNhc3RpMzJ4NCB2YnJvYWRjYXN0aTY0eDQgdmNvbXByZXNzcGQgdmNvbXByZXNzcHMgdmN2dHBkMnVkcSB2Y3Z0cHMydWRxIHZjdnRzZDJ1c2kgdmN2dHNzMnVzaSB2Y3Z0dHBkMnVkcSB2Y3Z0dHBzMnVkcSB2Y3Z0dHNkMnVzaSB2Y3Z0dHNzMnVzaSB2Y3Z0dWRxMnBkIHZjdnR1ZHEycHMgdmN2dHVzaTJzZCB2Y3Z0dXNpMnNzIHZleHBhbmRwZCB2ZXhwYW5kcHMgdmV4dHJhY3RmMzJ4NCB2ZXh0cmFjdGY2NHg0IHZleHRyYWN0aTMyeDQgdmV4dHJhY3RpNjR4NCB2Zml4dXBpbW1wZCB2Zml4dXBpbW1wcyB2Zml4dXBpbW1zZCB2Zml4dXBpbW1zcyB2Z2V0ZXhwcGQgdmdldGV4cHBzIHZnZXRleHBzZCB2Z2V0ZXhwc3MgdmdldG1hbnRwZCB2Z2V0bWFudHBzIHZnZXRtYW50c2QgdmdldG1hbnRzcyB2aW5zZXJ0ZjMyeDQgdmluc2VydGY2NHg0IHZpbnNlcnRpMzJ4NCB2aW5zZXJ0aTY0eDQgdm1vdmRxYTMyIHZtb3ZkcWE2NCB2bW92ZHF1MzIgdm1vdmRxdTY0IHZwYWJzcSB2cGFuZGQgdnBhbmRuZCB2cGFuZG5xIHZwYW5kcSB2cGJsZW5kbWQgdnBibGVuZG1xIHZwY21wbHRkIHZwY21wbGVkIHZwY21wbmVxZCB2cGNtcG5sdGQgdnBjbXBubGVkIHZwY21wZCB2cGNtcGx0cSB2cGNtcGxlcSB2cGNtcG5lcXEgdnBjbXBubHRxIHZwY21wbmxlcSB2cGNtcHEgdnBjbXBlcXVkIHZwY21wbHR1ZCB2cGNtcGxldWQgdnBjbXBuZXF1ZCB2cGNtcG5sdHVkIHZwY21wbmxldWQgdnBjbXB1ZCB2cGNtcGVxdXEgdnBjbXBsdHVxIHZwY21wbGV1cSB2cGNtcG5lcXVxIHZwY21wbmx0dXEgdnBjbXBubGV1cSB2cGNtcHVxIHZwY29tcHJlc3NkIHZwY29tcHJlc3NxIHZwZXJtaTJkIHZwZXJtaTJwZCB2cGVybWkycHMgdnBlcm1pMnEgdnBlcm10MmQgdnBlcm10MnBkIHZwZXJtdDJwcyB2cGVybXQycSB2cGV4cGFuZGQgdnBleHBhbmRxIHZwbWF4c3EgdnBtYXh1cSB2cG1pbnNxIHZwbWludXEgdnBtb3ZkYiB2cG1vdmR3IHZwbW92cWIgdnBtb3ZxZCB2cG1vdnF3IHZwbW92c2RiIHZwbW92c2R3IHZwbW92c3FiIHZwbW92c3FkIHZwbW92c3F3IHZwbW92dXNkYiB2cG1vdnVzZHcgdnBtb3Z1c3FiIHZwbW92dXNxZCB2cG1vdnVzcXcgdnBvcmQgdnBvcnEgdnByb2xkIHZwcm9scSB2cHJvbHZkIHZwcm9sdnEgdnByb3JkIHZwcm9ycSB2cHJvcnZkIHZwcm9ydnEgdnBzY2F0dGVyZGQgdnBzY2F0dGVyZHEgdnBzY2F0dGVycWQgdnBzY2F0dGVycXEgdnBzcmFxIHZwc3JhdnEgdnB0ZXJubG9nZCB2cHRlcm5sb2dxIHZwdGVzdG1kIHZwdGVzdG1xIHZwdGVzdG5tZCB2cHRlc3RubXEgdnB4b3JkIHZweG9ycSB2cmNwMTRwZCB2cmNwMTRwcyB2cmNwMTRzZCB2cmNwMTRzcyB2cm5kc2NhbGVwZCB2cm5kc2NhbGVwcyB2cm5kc2NhbGVzZCB2cm5kc2NhbGVzcyB2cnNxcnQxNHBkIHZyc3FydDE0cHMgdnJzcXJ0MTRzZCB2cnNxcnQxNHNzIHZzY2FsZWZwZCB2c2NhbGVmcHMgdnNjYWxlZnNkIHZzY2FsZWZzcyB2c2NhdHRlcmRwZCB2c2NhdHRlcmRwcyB2c2NhdHRlcnFwZCB2c2NhdHRlcnFwcyB2c2h1ZmYzMng0IHZzaHVmZjY0eDIgdnNodWZpMzJ4NCB2c2h1Zmk2NHgyIGthbmRudyBrYW5kdyBrbW92dyBrbm90dyBrb3J0ZXN0dyBrb3J3IGtzaGlmdGx3IGtzaGlmdHJ3IGt1bnBja2J3IGt4bm9ydyBreG9ydyB2cGJyb2FkY2FzdG1iMnEgdnBicm9hZGNhc3RtdzJkIHZwY29uZmxpY3RkIHZwY29uZmxpY3RxIHZwbHpjbnRkIHZwbHpjbnRxIHZleHAycGQgdmV4cDJwcyB2cmNwMjhwZCB2cmNwMjhwcyB2cmNwMjhzZCB2cmNwMjhzcyB2cnNxcnQyOHBkIHZyc3FydDI4cHMgdnJzcXJ0MjhzZCB2cnNxcnQyOHNzIHZnYXRoZXJwZjBkcGQgdmdhdGhlcnBmMGRwcyB2Z2F0aGVycGYwcXBkIHZnYXRoZXJwZjBxcHMgdmdhdGhlcnBmMWRwZCB2Z2F0aGVycGYxZHBzIHZnYXRoZXJwZjFxcGQgdmdhdGhlcnBmMXFwcyB2c2NhdHRlcnBmMGRwZCB2c2NhdHRlcnBmMGRwcyB2c2NhdHRlcnBmMHFwZCB2c2NhdHRlcnBmMHFwcyB2c2NhdHRlcnBmMWRwZCB2c2NhdHRlcnBmMWRwcyB2c2NhdHRlcnBmMXFwZCB2c2NhdHRlcnBmMXFwcyBwcmVmZXRjaHd0MSBibmRtayBibmRjbCBibmRjdSBibmRjbiBibmRtb3YgYm5kbGR4IGJuZHN0eCBzaGExcm5kczQgc2hhMW5leHRlIHNoYTFtc2cxIHNoYTFtc2cyIHNoYTI1NnJuZHMyIHNoYTI1Nm1zZzEgc2hhMjU2bXNnMiBoaW50X25vcDAgaGludF9ub3AxIGhpbnRfbm9wMiBoaW50X25vcDMgaGludF9ub3A0IGhpbnRfbm9wNSBoaW50X25vcDYgaGludF9ub3A3IGhpbnRfbm9wOCBoaW50X25vcDkgaGludF9ub3AxMCBoaW50X25vcDExIGhpbnRfbm9wMTIgaGludF9ub3AxMyBoaW50X25vcDE0IGhpbnRfbm9wMTUgaGludF9ub3AxNiBoaW50X25vcDE3IGhpbnRfbm9wMTggaGludF9ub3AxOSBoaW50X25vcDIwIGhpbnRfbm9wMjEgaGludF9ub3AyMiBoaW50X25vcDIzIGhpbnRfbm9wMjQgaGludF9ub3AyNSBoaW50X25vcDI2IGhpbnRfbm9wMjcgaGludF9ub3AyOCBoaW50X25vcDI5IGhpbnRfbm9wMzAgaGludF9ub3AzMSBoaW50X25vcDMyIGhpbnRfbm9wMzMgaGludF9ub3AzNCBoaW50X25vcDM1IGhpbnRfbm9wMzYgaGludF9ub3AzNyBoaW50X25vcDM4IGhpbnRfbm9wMzkgaGludF9ub3A0MCBoaW50X25vcDQxIGhpbnRfbm9wNDIgaGludF9ub3A0MyBoaW50X25vcDQ0IGhpbnRfbm9wNDUgaGludF9ub3A0NiBoaW50X25vcDQ3IGhpbnRfbm9wNDggaGludF9ub3A0OSBoaW50X25vcDUwIGhpbnRfbm9wNTEgaGludF9ub3A1MiBoaW50X25vcDUzIGhpbnRfbm9wNTQgaGludF9ub3A1NSBoaW50X25vcDU2IGhpbnRfbm9wNTcgaGludF9ub3A1OCBoaW50X25vcDU5IGhpbnRfbm9wNjAgaGludF9ub3A2MSBoaW50X25vcDYyIGhpbnRfbm9wNjMnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8vIEluc3RydWN0aW9uIHBvaW50ZXJcbiAgICAgICAgJ2lwIGVpcCByaXAgJyArXG4gICAgICAgIC8vIDgtYml0IHJlZ2lzdGVyc1xuICAgICAgICAnYWwgYWggYmwgYmggY2wgY2ggZGwgZGggc2lsIGRpbCBicGwgc3BsIHI4YiByOWIgcjEwYiByMTFiIHIxMmIgcjEzYiByMTRiIHIxNWIgJyArXG4gICAgICAgIC8vIDE2LWJpdCByZWdpc3RlcnNcbiAgICAgICAgJ2F4IGJ4IGN4IGR4IHNpIGRpIGJwIHNwIHI4dyByOXcgcjEwdyByMTF3IHIxMncgcjEzdyByMTR3IHIxNXcgJyArXG4gICAgICAgIC8vIDMyLWJpdCByZWdpc3RlcnNcbiAgICAgICAgJ2VheCBlYnggZWN4IGVkeCBlc2kgZWRpIGVicCBlc3AgZWlwIHI4ZCByOWQgcjEwZCByMTFkIHIxMmQgcjEzZCByMTRkIHIxNWQgJyArXG4gICAgICAgIC8vIDY0LWJpdCByZWdpc3RlcnNcbiAgICAgICAgJ3JheCByYnggcmN4IHJkeCByc2kgcmRpIHJicCByc3AgcjggcjkgcjEwIHIxMSByMTIgcjEzIHIxNCByMTUgJyArXG4gICAgICAgIC8vIFNlZ21lbnQgcmVnaXN0ZXJzXG4gICAgICAgICdjcyBkcyBlcyBmcyBncyBzcyAnICtcbiAgICAgICAgLy8gRmxvYXRpbmcgcG9pbnQgc3RhY2sgcmVnaXN0ZXJzXG4gICAgICAgICdzdCBzdDAgc3QxIHN0MiBzdDMgc3Q0IHN0NSBzdDYgc3Q3ICcgK1xuICAgICAgICAvLyBNTVggUmVnaXN0ZXJzXG4gICAgICAgICdtbTAgbW0xIG1tMiBtbTMgbW00IG1tNSBtbTYgbW03ICcgK1xuICAgICAgICAvLyBTU0UgcmVnaXN0ZXJzXG4gICAgICAgICd4bW0wICB4bW0xICB4bW0yICB4bW0zICB4bW00ICB4bW01ICB4bW02ICB4bW03ICB4bW04ICB4bW05IHhtbTEwICB4bW0xMSB4bW0xMiB4bW0xMyB4bW0xNCB4bW0xNSAnICtcbiAgICAgICAgJ3htbTE2IHhtbTE3IHhtbTE4IHhtbTE5IHhtbTIwIHhtbTIxIHhtbTIyIHhtbTIzIHhtbTI0IHhtbTI1IHhtbTI2IHhtbTI3IHhtbTI4IHhtbTI5IHhtbTMwIHhtbTMxICcgK1xuICAgICAgICAvLyBBVlggcmVnaXN0ZXJzXG4gICAgICAgICd5bW0wICB5bW0xICB5bW0yICB5bW0zICB5bW00ICB5bW01ICB5bW02ICB5bW03ICB5bW04ICB5bW05IHltbTEwICB5bW0xMSB5bW0xMiB5bW0xMyB5bW0xNCB5bW0xNSAnICtcbiAgICAgICAgJ3ltbTE2IHltbTE3IHltbTE4IHltbTE5IHltbTIwIHltbTIxIHltbTIyIHltbTIzIHltbTI0IHltbTI1IHltbTI2IHltbTI3IHltbTI4IHltbTI5IHltbTMwIHltbTMxICcgK1xuICAgICAgICAvLyBBVlgtNTEyRiByZWdpc3RlcnNcbiAgICAgICAgJ3ptbTAgIHptbTEgIHptbTIgIHptbTMgIHptbTQgIHptbTUgIHptbTYgIHptbTcgIHptbTggIHptbTkgem1tMTAgIHptbTExIHptbTEyIHptbTEzIHptbTE0IHptbTE1ICcgK1xuICAgICAgICAnem1tMTYgem1tMTcgem1tMTggem1tMTkgem1tMjAgem1tMjEgem1tMjIgem1tMjMgem1tMjQgem1tMjUgem1tMjYgem1tMjcgem1tMjggem1tMjkgem1tMzAgem1tMzEgJyArXG4gICAgICAgIC8vIEFWWC01MTJGIG1hc2sgcmVnaXN0ZXJzXG4gICAgICAgICdrMCBrMSBrMiBrMyBrNCBrNSBrNiBrNyAnICtcbiAgICAgICAgLy8gQm91bmQgKE1QWCkgcmVnaXN0ZXJcbiAgICAgICAgJ2JuZDAgYm5kMSBibmQyIGJuZDMgJyArXG4gICAgICAgIC8vIFNwZWNpYWwgcmVnaXN0ZXJcbiAgICAgICAgJ2NyMCBjcjEgY3IyIGNyMyBjcjQgY3I4IGRyMCBkcjEgZHIyIGRyMyBkcjggdHIzIHRyNCB0cjUgdHI2IHRyNyAnICtcbiAgICAgICAgLy8gTkFTTSBhbHRyZWcgcGFja2FnZVxuICAgICAgICAncjAgcjEgcjIgcjMgcjQgcjUgcjYgcjcgcjBiIHIxYiByMmIgcjNiIHI0YiByNWIgcjZiIHI3YiAnICtcbiAgICAgICAgJ3IwdyByMXcgcjJ3IHIzdyByNHcgcjV3IHI2dyByN3cgcjBkIHIxZCByMmQgcjNkIHI0ZCByNWQgcjZkIHI3ZCAnICtcbiAgICAgICAgJ3IwaCByMWggcjJoIHIzaCAnICtcbiAgICAgICAgJ3IwbCByMWwgcjJsIHIzbCByNGwgcjVsIHI2bCByN2wgcjhsIHI5bCByMTBsIHIxMWwgcjEybCByMTNsIHIxNGwgcjE1bCAnICtcblxuICAgICAgICAnZGIgZHcgZGQgZHEgZHQgZGRxIGRvIGR5IGR6ICcgK1xuICAgICAgICAncmVzYiByZXN3IHJlc2QgcmVzcSByZXN0IHJlc2RxIHJlc28gcmVzeSByZXN6ICcgK1xuICAgICAgICAnaW5jYmluIGVxdSB0aW1lcyAnICtcbiAgICAgICAgJ2J5dGUgd29yZCBkd29yZCBxd29yZCBub3NwbGl0IHJlbCBhYnMgc2VnIHdydCBzdHJpY3QgbmVhciBmYXIgYTMyIHB0cicsXG5cbiAgICAgIG1ldGE6XG4gICAgICAgICclZGVmaW5lICV4ZGVmaW5lICUrICV1bmRlZiAlZGVmc3RyICVkZWZ0b2sgJWFzc2lnbiAlc3RyY2F0ICVzdHJsZW4gJXN1YnN0ciAlcm90YXRlICVlbGlmICVlbHNlICVlbmRpZiAnICtcbiAgICAgICAgJyVpZiAlaWZtYWNybyAlaWZjdHggJWlmaWRuICVpZmlkbmkgJWlmaWQgJWlmbnVtICVpZnN0ciAlaWZ0b2tlbiAlaWZlbXB0eSAlaWZlbnYgJWVycm9yICV3YXJuaW5nICVmYXRhbCAlcmVwICcgK1xuICAgICAgICAnJWVuZHJlcCAlaW5jbHVkZSAlcHVzaCAlcG9wICVyZXBsICVwYXRoc2VhcmNoICVkZXBlbmQgJXVzZSAlYXJnICVzdGFja3NpemUgJWxvY2FsICVsaW5lICVjb21tZW50ICVlbmRjb21tZW50ICcgK1xuICAgICAgICAnLm5vbGlzdCAnICtcbiAgICAgICAgJ19fRklMRV9fIF9fTElORV9fIF9fU0VDVF9fICBfX0JJVFNfXyBfX09VVFBVVF9GT1JNQVRfXyBfX0RBVEVfXyBfX1RJTUVfXyBfX0RBVEVfTlVNX18gX19USU1FX05VTV9fICcgK1xuICAgICAgICAnX19VVENfREFURV9fIF9fVVRDX1RJTUVfXyBfX1VUQ19EQVRFX05VTV9fIF9fVVRDX1RJTUVfTlVNX18gIF9fUEFTU19fIHN0cnVjIGVuZHN0cnVjIGlzdHJ1YyBhdCBpZW5kICcgK1xuICAgICAgICAnYWxpZ24gYWxpZ25iIHNlY3RhbGlnbiBkYXogbm9kYXogdXAgZG93biB6ZXJvIGRlZmF1bHQgb3B0aW9uIGFzc3VtZSBwdWJsaWMgJyArXG5cbiAgICAgICAgJ2JpdHMgdXNlMTYgdXNlMzIgdXNlNjQgZGVmYXVsdCBzZWN0aW9uIHNlZ21lbnQgYWJzb2x1dGUgZXh0ZXJuIGdsb2JhbCBjb21tb24gY3B1IGZsb2F0ICcgK1xuICAgICAgICAnX191dGYxNl9fIF9fdXRmMTZsZV9fIF9fdXRmMTZiZV9fIF9fdXRmMzJfXyBfX3V0ZjMybGVfXyBfX3V0ZjMyYmVfXyAnICtcbiAgICAgICAgJ19fZmxvYXQ4X18gX19mbG9hdDE2X18gX19mbG9hdDMyX18gX19mbG9hdDY0X18gX19mbG9hdDgwbV9fIF9fZmxvYXQ4MGVfXyBfX2Zsb2F0MTI4bF9fIF9fZmxvYXQxMjhoX18gJyArXG4gICAgICAgICdfX0luZmluaXR5X18gX19RTmFOX18gX19TTmFOX18gSW5mIE5hTiBRTmFOIFNOYU4gZmxvYXQ4IGZsb2F0MTYgZmxvYXQzMiBmbG9hdDY0IGZsb2F0ODBtIGZsb2F0ODBlICcgK1xuICAgICAgICAnZmxvYXQxMjhsIGZsb2F0MTI4aCBfX0ZMT0FUX0RBWl9fIF9fRkxPQVRfUk9VTkRfXyBfX0ZMT0FUX18nXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnOycsXG4gICAgICAgICckJyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIC8vIEZsb2F0IG51bWJlciBhbmQgeDg3IEJDRFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoPzooWzAtOV1bMC05X10qKT9cXFxcLlswLTlfXSooPzpbZUVdWystXT9bMC05X10rKT98JyArXG4gICAgICAgICAgICAgICAgICAgJygwW1h4XSk/WzAtOV1bMC05X10qXFxcXC4/WzAtOV9dKig/OltwUF0oPzpbKy1dP1swLTlfXSspPyk/KVxcXFxiJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG5cbiAgICAgICAgICAvLyBIZXggbnVtYmVyIGluICRcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXCRbMC05XVswLTlBLUZhLWZdKicsIHJlbGV2YW5jZTogMCB9LFxuXG4gICAgICAgICAgLy8gTnVtYmVyIGluIEgsRCxULFEsTyxCLFkgc3VmZml4XG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiKD86WzAtOUEtRmEtZl1bMC05QS1GYS1mX10qW0hoXXxbMC05XVswLTlfXSpbRGRUdF0/fFswLTddWzAtN19dKltRcU9vXXxbMC0xXVswLTFfXSpbQmJZeV0pXFxcXGInIH0sXG5cbiAgICAgICAgICAvLyBOdW1iZXIgaW4gWCxELFQsUSxPLEIsWSBwcmVmaXhcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoPzowW1h4XVswLTlBLUZhLWZfXSt8MFtEZFR0XVswLTlfXSt8MFtRcU9vXVswLTdfXSt8MFtCYll5XVswLTFfXSspXFxcXGInfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gRG91YmxlIHF1b3RlIHN0cmluZ1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAvLyBTaW5nbGUtcXVvdGVkIHN0cmluZ1xuICAgICAgICAgIHsgYmVnaW46ICdcXCcnLCBlbmQ6ICdbXlxcXFxcXFxcXVxcJycgfSxcbiAgICAgICAgICAvLyBCYWNrcXVvdGVkIHN0cmluZ1xuICAgICAgICAgIHsgYmVnaW46ICdgJywgZW5kOiAnW15cXFxcXFxcXF1gJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAvLyBHbG9iYWwgbGFiZWwgYW5kIGxvY2FsIGxhYmVsXG4gICAgICAgICAgeyBiZWdpbjogJ15cXFxccypbQS1aYS16Ll8/XVtBLVphLXowLTlfJCNAfi4/XSooOnxcXFxccytsYWJlbCknIH0sXG4gICAgICAgICAgLy8gTWFjcm8tbG9jYWwgbGFiZWxcbiAgICAgICAgICB7IGJlZ2luOiAnXlxcXFxzKiUlW0EtWmEtejAtOV8kI0B+Lj9dKjonIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gTWFjcm8gcGFyYW1ldGVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICAgICAgYmVnaW46ICclWzAtOV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gTWFjcm8gcGFyYW1ldGVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICAgICAgYmVnaW46ICclIVxcUysnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL15cXHMqXFwuW1xcd18tXSsvXG4gICAgICB9XG4gICAgXVxuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIEJVSUxUSU5fTU9EVUxFUyA9XG4gICAgJ09iamVjdExvYWRlciBBbmltYXRlIE1vdmllQ3JlZGl0cyBTbGlkZXMgRmlsdGVycyBTaGFkaW5nIE1hdGVyaWFscyBMZW5zRmxhcmUgTWFwcGluZyBWTENBdWRpb1ZpZGVvICcgK1xuICAgICdTdGVyZW9EZWNvZGVyIFBvaW50Q2xvdWQgTmV0d29ya0FjY2VzcyBSZW1vdGVDb250cm9sIFJlZ0V4cCBDaHJvbWFLZXkgU25vd2ZhbGwgTm9kZUpTIFNwZWVjaCBDaGFydHMnO1xuXG4gIHZhciBYTF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2lmIHRoZW4gZWxzZSBkbyB3aGlsZSB1bnRpbCBmb3IgbG9vcCBpbXBvcnQgd2l0aCBpcyBhcyB3aGVyZSB3aGVuIGJ5IGRhdGEgY29uc3RhbnQgJyArXG4gICAgICAnaW50ZWdlciByZWFsIHRleHQgbmFtZSBib29sZWFuIHN5bWJvbCBpbmZpeCBwcmVmaXggcG9zdGZpeCBibG9jayB0cmVlJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ3RydWUgZmFsc2UgbmlsJyxcbiAgICBidWlsdF9pbjpcbiAgICAgICdpbiBtb2QgcmVtIGFuZCBvciB4b3Igbm90IGFicyBzaWduIGZsb29yIGNlaWwgc3FydCBzaW4gY29zIHRhbiBhc2luICcgK1xuICAgICAgJ2Fjb3MgYXRhbiBleHAgZXhwbTEgbG9nIGxvZzIgbG9nMTAgbG9nMXAgcGkgYXQgdGV4dF9sZW5ndGggdGV4dF9yYW5nZSAnICtcbiAgICAgICd0ZXh0X2ZpbmQgdGV4dF9yZXBsYWNlIGNvbnRhaW5zIHBhZ2Ugc2xpZGUgYmFzaWNfc2xpZGUgdGl0bGVfc2xpZGUgJyArXG4gICAgICAndGl0bGUgc3VidGl0bGUgZmFkZV9pbiBmYWRlX291dCBmYWRlX2F0IGNsZWFyX2NvbG9yIGNvbG9yIGxpbmVfY29sb3IgJyArXG4gICAgICAnbGluZV93aWR0aCB0ZXh0dXJlX3dyYXAgdGV4dHVyZV90cmFuc2Zvcm0gdGV4dHVyZSBzY2FsZV8/eCBzY2FsZV8/eSAnICtcbiAgICAgICdzY2FsZV8/ej8gdHJhbnNsYXRlXz94IHRyYW5zbGF0ZV8/eSB0cmFuc2xhdGVfP3o/IHJvdGF0ZV8/eCByb3RhdGVfP3kgJyArXG4gICAgICAncm90YXRlXz96PyByZWN0YW5nbGUgY2lyY2xlIGVsbGlwc2Ugc3BoZXJlIHBhdGggbGluZV90byBtb3ZlX3RvICcgK1xuICAgICAgJ3F1YWRfdG8gY3VydmVfdG8gdGhlbWUgYmFja2dyb3VuZCBjb250ZW50cyBsb2NhbGx5IHRpbWUgbW91c2VfP3ggJyArXG4gICAgICAnbW91c2VfP3kgbW91c2VfYnV0dG9ucyAnICtcbiAgICAgIEJVSUxUSU5fTU9EVUxFU1xuICB9O1xuXG4gIHZhciBET1VCTEVfUVVPVEVfVEVYVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLCBlbmQ6ICdcIicsIGlsbGVnYWw6ICdcXFxcbidcbiAgfTtcbiAgdmFyIFNJTkdMRV9RVU9URV9URVhUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcnLCBlbmQ6ICdcXCcnLCBpbGxlZ2FsOiAnXFxcXG4nXG4gIH07XG4gIHZhciBMT05HX1RFWFQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJzw8JywgZW5kOiAnPj4nXG4gIH07XG4gIHZhciBCQVNFRF9OVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogJ1swLTldKyNbMC05QS1aX10rKFxcXFwuWzAtOS1BLVpfXSspPyM/KFtFZV1bKy1dP1swLTldKyk/J1xuICB9O1xuICB2YXIgSU1QT1JUID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQnLCBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogWExfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtET1VCTEVfUVVPVEVfVEVYVF1cbiAgfTtcbiAgdmFyIEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvW2Etel1bXlxcbl0qLT4vLCByZXR1cm5CZWdpbjogdHJ1ZSwgZW5kOiAvLT4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7c3RhcnRzOiB7XG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogWExfS0VZV09SRFNcbiAgICAgIH19KVxuICAgIF1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3RhbyddLFxuICAgIGxleGVtZXM6IC9bYS16QS1aXVthLXpBLVowLTlfP10qLyxcbiAgICBrZXl3b3JkczogWExfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBET1VCTEVfUVVPVEVfVEVYVCxcbiAgICBTSU5HTEVfUVVPVEVfVEVYVCxcbiAgICBMT05HX1RFWFQsXG4gICAgRlVOQ1RJT05fREVGSU5JVElPTixcbiAgICBJTVBPUlQsXG4gICAgQkFTRURfTlVNQkVSLFxuICAgIGhsanMuTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59OyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaGxqcykge1xuICB2YXIgS0VZV09SRFMgPSAnZm9yIGxldCBpZiB3aGlsZSB0aGVuIGVsc2UgcmV0dXJuIHdoZXJlIGdyb3VwIGJ5IHhxdWVyeSBlbmNvZGluZyB2ZXJzaW9uJyArXG4gICAgJ21vZHVsZSBuYW1lc3BhY2UgYm91bmRhcnktc3BhY2UgcHJlc2VydmUgc3RyaXAgZGVmYXVsdCBjb2xsYXRpb24gYmFzZS11cmkgb3JkZXJpbmcnICtcbiAgICAnY29weS1uYW1lc3BhY2VzIG9yZGVyIGRlY2xhcmUgaW1wb3J0IHNjaGVtYSBuYW1lc3BhY2UgZnVuY3Rpb24gb3B0aW9uIGluIGFsbG93aW5nIGVtcHR5JyArXG4gICAgJ2F0IHR1bWJsaW5nIHdpbmRvdyBzbGlkaW5nIHdpbmRvdyBzdGFydCB3aGVuIG9ubHkgZW5kIHdoZW4gcHJldmlvdXMgbmV4dCBzdGFibGUgYXNjZW5kaW5nJyArXG4gICAgJ2Rlc2NlbmRpbmcgZW1wdHkgZ3JlYXRlc3QgbGVhc3Qgc29tZSBldmVyeSBzYXRpc2ZpZXMgc3dpdGNoIGNhc2UgdHlwZXN3aXRjaCB0cnkgY2F0Y2ggYW5kJyArXG4gICAgJ29yIHRvIHVuaW9uIGludGVyc2VjdCBpbnN0YW5jZSBvZiB0cmVhdCBhcyBjYXN0YWJsZSBjYXN0IG1hcCBhcnJheSBkZWxldGUgaW5zZXJ0IGludG8nICtcbiAgICAncmVwbGFjZSB2YWx1ZSByZW5hbWUgY29weSBtb2RpZnkgdXBkYXRlJztcbiAgdmFyIExJVEVSQUwgPSAnZmFsc2UgdHJ1ZSB4czpzdHJpbmcgeHM6aW50ZWdlciBlbGVtZW50IGl0ZW0geHM6ZGF0ZSB4czpkYXRldGltZSB4czpmbG9hdCB4czpkb3VibGUgeHM6ZGVjaW1hbCBRTmFtZSB4czphbnlVUkkgeHM6bG9uZyB4czppbnQgeHM6c2hvcnQgeHM6Ynl0ZSBhdHRyaWJ1dGUnO1xuICB2YXIgVkFSID0ge1xuICAgIGJlZ2luOiAvXFwkW2EtekEtWjAtOVxcLV0rL1xuICB9O1xuXG4gIHZhciBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogJyhcXFxcYjBbMC03X10rKXwoXFxcXGIweFswLTlhLWZBLUZfXSspfChcXFxcYlsxLTldWzAtOV9dKihcXFxcLlswLTlfXSspPyl8WzBfXVxcXFxiJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICB2YXIgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtiZWdpbjogL1wiLywgZW5kOiAvXCIvLCBjb250YWluczogW3tiZWdpbjogL1wiXCIvLCByZWxldmFuY2U6IDB9XX0sXG4gICAgICB7YmVnaW46IC8nLywgZW5kOiAvJy8sIGNvbnRhaW5zOiBbe2JlZ2luOiAvJycvLCByZWxldmFuY2U6IDB9XX1cbiAgICBdXG4gIH07XG5cbiAgdmFyIEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICclXFxcXHcrJ1xuICB9O1xuXG4gIHZhciBDT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIGJlZ2luOiAnXFxcXCg6JywgZW5kOiAnOlxcXFwpJyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsIGJlZ2luOiAnQFxcXFx3KydcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgdmFyIE1FVEhPRCA9IHtcbiAgICBiZWdpbjogJ3snLCBlbmQ6ICd9J1xuICB9O1xuXG4gIHZhciBDT05UQUlOUyA9IFtcbiAgICBWQVIsXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT01NRU5ULFxuICAgIEFOTk9UQVRJT04sXG4gICAgTUVUSE9EXG4gIF07XG4gIE1FVEhPRC5jb250YWlucyA9IENPTlRBSU5TO1xuXG5cbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3hwYXRoJywgJ3hxJ10sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogZmFsc2UsXG4gICAgbGV4ZW1lczogL1thLXpBLVpcXCRdW2EtekEtWjAtOV86XFwtXSovLFxuICAgIGlsbGVnYWw6IC8ocHJvYyl8KGFic3RyYWN0KXwoZXh0ZW5kcyl8KHVudGlsKXwoIykvLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBDT05UQUlOU1xuICB9O1xufTsiLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgdmFyIFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbaGxqcy5CQUNLU0xBU0hfRVNDQVBFXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ2JcIicsIGVuZDogJ1wiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdiXFwnJywgZW5kOiAnXFwnJ1xuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtpbGxlZ2FsOiBudWxsfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwge2lsbGVnYWw6IG51bGx9KVxuICAgIF1cbiAgfTtcbiAgdmFyIE5VTUJFUiA9IHt2YXJpYW50czogW2hsanMuQklOQVJZX05VTUJFUl9NT0RFLCBobGpzLkNfTlVNQkVSX01PREVdfTtcbiAgcmV0dXJuIHtcbiAgICBhbGlhc2VzOiBbJ3plcCddLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6XG4gICAgICAnYW5kIGluY2x1ZGVfb25jZSBsaXN0IGFic3RyYWN0IGdsb2JhbCBwcml2YXRlIGVjaG8gaW50ZXJmYWNlIGFzIHN0YXRpYyBlbmRzd2l0Y2ggJyArXG4gICAgICAnYXJyYXkgbnVsbCBpZiBlbmR3aGlsZSBvciBjb25zdCBmb3IgZW5kZm9yZWFjaCBzZWxmIHZhciBsZXQgd2hpbGUgaXNzZXQgcHVibGljICcgK1xuICAgICAgJ3Byb3RlY3RlZCBleGl0IGZvcmVhY2ggdGhyb3cgZWxzZWlmIGluY2x1ZGUgX19GSUxFX18gZW1wdHkgcmVxdWlyZV9vbmNlIGRvIHhvciAnICtcbiAgICAgICdyZXR1cm4gcGFyZW50IGNsb25lIHVzZSBfX0NMQVNTX18gX19MSU5FX18gZWxzZSBicmVhayBwcmludCBldmFsIG5ldyAnICtcbiAgICAgICdjYXRjaCBfX01FVEhPRF9fIGNhc2UgZXhjZXB0aW9uIGRlZmF1bHQgZGllIHJlcXVpcmUgX19GVU5DVElPTl9fICcgK1xuICAgICAgJ2VuZGRlY2xhcmUgZmluYWwgdHJ5IHN3aXRjaCBjb250aW51ZSBlbmRmb3IgZW5kaWYgZGVjbGFyZSB1bnNldCB0cnVlIGZhbHNlICcgK1xuICAgICAgJ3RyYWl0IGdvdG8gaW5zdGFuY2VvZiBpbnN0ZWFkb2YgX19ESVJfXyBfX05BTUVTUEFDRV9fICcgK1xuICAgICAgJ3lpZWxkIGZpbmFsbHkgaW50IHVpbnQgbG9uZyB1bG9uZyBjaGFyIHVjaGFyIGRvdWJsZSBmbG9hdCBib29sIGJvb2xlYW4gc3RyaW5nJyArXG4gICAgICAnbGlrZWx5IHVubGlrZWx5JyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7XG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ19faGFsdF9jb21waWxlci4rPzsnLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAge1xuICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgIGtleXdvcmRzOiAnX19oYWx0X2NvbXBpbGVyJyxcbiAgICAgICAgICBsZXhlbWVzOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICc8PDxbXFwnXCJdP1xcXFx3K1tcXCdcIl0/JCcsIGVuZDogJ15cXFxcdys7JyxcbiAgICAgICAgY29udGFpbnM6IFtobGpzLkJBQ0tTTEFTSF9FU0NBUEVdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBzd2FsbG93IGNvbXBvc2VkIGlkZW50aWZpZXJzIHRvIGF2b2lkIHBhcnNpbmcgdGhlbSBhcyBrZXl3b3Jkc1xuICAgICAgICBiZWdpbjogLyg6OnwtPikrW2EtekEtWl9cXHg3Zi1cXHhmZl1bYS16QS1aMC05X1xceDdmLVxceGZmXSovXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsIGVuZDogL1s7e10vLCBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXCR8XFxcXFt8JScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLCBlbmQ6ICdcXFxcKScsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAgTlVNQkVSXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLCBlbmQ6ICd7JywgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogL1s6XFwoXFwkXCJdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7YmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cyd9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduYW1lc3BhY2UnLCBlbmQ6ICc7JyxcbiAgICAgICAgaWxsZWdhbDogL1tcXC4nXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAndXNlJywgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJz0+JyAvLyBObyBtYXJrdXAsIGp1c3QgYSByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIE5VTUJFUlxuICAgIF1cbiAgfTtcbn07IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbG93ID0gbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYi9jb3JlLmpzJyk7XG5cbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCcxYycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzLzFjJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FibmYnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hYm5mJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FjY2Vzc2xvZycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FjY2Vzc2xvZycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdhY3Rpb25zY3JpcHQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY3Rpb25zY3JpcHQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYWRhJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYWRhJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FwYWNoZScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwYWNoZScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdhcHBsZXNjcmlwdCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwcGxlc2NyaXB0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NwcCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NwcCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdhcmR1aW5vJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJkdWlubycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdhcm1hc20nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hcm1hc20nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgneG1sJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveG1sJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FzY2lpZG9jJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXNjaWlkb2MnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYXNwZWN0aicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FzcGVjdGonKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYXV0b2hvdGtleScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2F1dG9ob3RrZXknKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYXV0b2l0JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXV0b2l0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2F2cmFzbScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2F2cmFzbScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdhd2snLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hd2snKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYXhhcHRhJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXhhcHRhJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Jhc2gnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9iYXNoJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Jhc2ljJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaWMnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnYm5mJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYm5mJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2JyYWluZnVjaycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2JyYWluZnVjaycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdjYWwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jYWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnY2FwbnByb3RvJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2FwbnByb3RvJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NleWxvbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NleWxvbicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdjbGVhbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NsZWFuJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Nsb2p1cmUnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jbG9qdXJlJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Nsb2p1cmUtcmVwbCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Nsb2p1cmUtcmVwbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdjbWFrZScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NtYWtlJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NvZmZlZXNjcmlwdCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NvZmZlZXNjcmlwdCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdjb3EnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3EnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnY29zJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY29zJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NybXNoJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3Jtc2gnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnY3J5c3RhbCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NyeXN0YWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnY3MnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdjc3AnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc3AnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnY3NzJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY3NzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2QnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ21hcmtkb3duJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFya2Rvd24nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZGFydCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RhcnQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZGVscGhpJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGVscGhpJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RpZmYnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kaWZmJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RqYW5nbycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RqYW5nbycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdkbnMnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kbnMnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZG9ja2VyZmlsZScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RvY2tlcmZpbGUnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZG9zJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZG9zJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RzY29uZmlnJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZHNjb25maWcnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZHRzJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZHRzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2R1c3QnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kdXN0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VibmYnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lYm5mJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VsaXhpcicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VsaXhpcicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdlbG0nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lbG0nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncnVieScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1YnknKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZXJiJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJiJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VybGFuZy1yZXBsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nLXJlcGwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZXJsYW5nJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2V4Y2VsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXhjZWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZml4JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZml4JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2ZsaXgnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9mbGl4JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2ZvcnRyYW4nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9mb3J0cmFuJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2ZzaGFycCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2ZzaGFycCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdnYW1zJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2FtcycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdnYXVzcycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dhdXNzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2djb2RlJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2NvZGUnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZ2hlcmtpbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2doZXJraW4nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZ2xzbCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dsc2wnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZ28nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nbycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdnb2xvJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ29sbycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdncmFkbGUnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ncmFkbGUnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnZ3Jvb3Z5JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ3Jvb3Z5JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hhbWwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYW1sJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hhbmRsZWJhcnMnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYW5kbGViYXJzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hhc2tlbGwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYXNrZWxsJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hheGUnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYXhlJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hzcCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hzcCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdodG1sYmFycycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2h0bWxiYXJzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2h0dHAnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9odHRwJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2h5JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaHknKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnaW5mb3JtNycsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2luZm9ybTcnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnaW5pJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaW5pJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2lycGY5MCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2lycGY5MCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdqYXZhJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdqYXZhc2NyaXB0JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YXNjcmlwdCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdqYm9zcy1jbGknLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYm9zcy1jbGknKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnanNvbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2pzb24nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnanVsaWEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qdWxpYScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdqdWxpYS1yZXBsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanVsaWEtcmVwbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdrb3RsaW4nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9rb3RsaW4nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbGFzc28nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sYXNzbycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsZGlmJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGRpZicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsZWFmJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGVhZicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsZXNzJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGVzcycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsaXNwJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGlzcCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsaXZlY29kZXNlcnZlcicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xpdmVjb2Rlc2VydmVyJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xpdmVzY3JpcHQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9saXZlc2NyaXB0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xsdm0nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sbHZtJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xzbCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xzbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdsdWEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sdWEnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbWFrZWZpbGUnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYWtlZmlsZScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdtYXRoZW1hdGljYScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21hdGhlbWF0aWNhJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ21hdGxhYicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21hdGxhYicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdtYXhpbWEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYXhpbWEnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbWVsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWVsJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ21lcmN1cnknLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tZXJjdXJ5JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ21pcHNhc20nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9taXBzYXNtJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ21pemFyJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWl6YXInKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncGVybCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BlcmwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbW9qb2xpY2lvdXMnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb2pvbGljaW91cycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdtb25rZXknLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb25rZXknKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbW9vbnNjcmlwdCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21vb25zY3JpcHQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbjFxbCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL24xcWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbmdpbngnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uZ2lueCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCduaW1yb2QnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uaW1yb2QnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnbml4JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbml4JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ25zaXMnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uc2lzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ29iamVjdGl2ZWMnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vYmplY3RpdmVjJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ29jYW1sJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvb2NhbWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnb3BlbnNjYWQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vcGVuc2NhZCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdveHlnZW5lJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvb3h5Z2VuZScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwYXJzZXIzJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGFyc2VyMycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwZicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BmJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3BocCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BocCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwb255JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcG9ueScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwb3dlcnNoZWxsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcG93ZXJzaGVsbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwcm9jZXNzaW5nJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvY2Vzc2luZycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwcm9maWxlJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvZmlsZScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwcm9sb2cnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9sb2cnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncHJvdG9idWYnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm90b2J1ZicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdwdXBwZXQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wdXBwZXQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncHVyZWJhc2ljJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHVyZWJhc2ljJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3B5dGhvbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3B5dGhvbicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdxJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdxbWwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9xbWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3InKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncmliJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcmliJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JvYm9jb25mJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcm9ib2NvbmYnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncm91dGVyb3MnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yb3V0ZXJvcycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdyc2wnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yc2wnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncnVsZXNsYW5ndWFnZScsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1bGVzbGFuZ3VhZ2UnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgncnVzdCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1c3QnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc2NhbGEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2FsYScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdzY2hlbWUnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2hlbWUnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc2NpbGFiJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2NpbGFiJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Njc3MnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY3NzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NoZWxsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc2hlbGwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc21hbGknLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zbWFsaScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdzbWFsbHRhbGsnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zbWFsbHRhbGsnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc21sJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21sJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NxZicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NxZicpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdzcWwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zcWwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc3RhbicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N0YW4nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc3RhdGEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zdGF0YScpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCdzdGVwMjEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zdGVwMjEnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgnc3R5bHVzJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3R5bHVzJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3N1YnVuaXQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zdWJ1bml0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3N3aWZ0JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3dpZnQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgndGFnZ2Vyc2NyaXB0JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdGFnZ2Vyc2NyaXB0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3lhbWwnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy95YW1sJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3RhcCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RhcCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd0Y2wnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90Y2wnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgndGV4JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdGV4JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3RocmlmdCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RocmlmdCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd0cCcsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RwJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3R3aWcnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90d2lnJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3R5cGVzY3JpcHQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy90eXBlc2NyaXB0JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZhbGEnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YWxhJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZibmV0JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmJuZXQnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgndmJzY3JpcHQnLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YnNjcmlwdCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd2YnNjcmlwdC1odG1sJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmJzY3JpcHQtaHRtbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd2ZXJpbG9nJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmVyaWxvZycpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd2aGRsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmhkbCcpKTtcbmxvdy5yZWdpc3Rlckxhbmd1YWdlKCd2aW0nLCByZXF1aXJlKCdoaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92aW0nKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgneDg2YXNtJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveDg2YXNtJykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3hsJywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveGwnKSk7XG5sb3cucmVnaXN0ZXJMYW5ndWFnZSgneHF1ZXJ5JywgcmVxdWlyZSgnaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveHF1ZXJ5JykpO1xubG93LnJlZ2lzdGVyTGFuZ3VhZ2UoJ3plcGhpcicsIHJlcXVpcmUoJ2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3plcGhpcicpKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbmV4cG9ydHMuZGVmYXVsdCA9IGF0dGFjaGVyO1xuXG52YXIgX2xvd2xpZ2h0ID0gcmVxdWlyZSgnbG93bGlnaHQnKTtcblxudmFyIF9sb3dsaWdodDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9sb3dsaWdodCk7XG5cbnZhciBfdW5pc3RVdGlsVmlzaXQgPSByZXF1aXJlKCd1bmlzdC11dGlsLXZpc2l0Jyk7XG5cbnZhciBfdW5pc3RVdGlsVmlzaXQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdW5pc3RVdGlsVmlzaXQpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBhdHRhY2hlcigpIHtcbiAgICB2YXIgX3JlZiA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgICAgIGluY2x1ZGUgPSBfcmVmLmluY2x1ZGUsXG4gICAgICAgIGV4Y2x1ZGUgPSBfcmVmLmV4Y2x1ZGU7XG5cbiAgICBmdW5jdGlvbiB2aXNpdG9yKG5vZGUpIHtcbiAgICAgICAgdmFyIGxhbmcgPSBub2RlLmxhbmc7XG5cbiAgICAgICAgaWYgKCFsYW5nIHx8IGluY2x1ZGUgJiYgIX5pbmNsdWRlLmluZGV4T2YobGFuZykgfHwgZXhjbHVkZSAmJiB+ZXhjbHVkZS5pbmRleE9mKGxhbmcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZGF0YSA9IG5vZGUuZGF0YTtcblxuXG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgbm9kZS5kYXRhID0gZGF0YSA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEuaENoaWxkcmVuID0gX2xvd2xpZ2h0Mi5kZWZhdWx0LmhpZ2hsaWdodChsYW5nLCBub2RlLnZhbHVlKS52YWx1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBkYXRhLmhDaGlsZHJlbiA9IF9sb3dsaWdodDIuZGVmYXVsdC5oaWdobGlnaHRBdXRvKG5vZGUudmFsdWUpLnZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGF0YS5oUHJvcGVydGllcyA9IGRhdGEuaFByb3BlcnRpZXMgfHwge307XG4gICAgICAgIGRhdGEuaFByb3BlcnRpZXMuY2xhc3NOYW1lID0gWydobGpzJ10uY29uY2F0KGRhdGEuaFByb3BlcnRpZXMuY2xhc3NOYW1lIHx8IFtdLCBbJ2xhbmd1YWdlLScgKyBsYW5nXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChhc3QpIHtcbiAgICAgICAgcmV0dXJuICgwLCBfdW5pc3RVdGlsVmlzaXQyLmRlZmF1bHQpKGFzdCwgJ2NvZGUnLCB2aXNpdG9yKTtcbiAgICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107IiwiY29uc3QgdmlzaXQgPSByZXF1aXJlKCd1bmlzdC11dGlsLXZpc2l0Jyk7XG5cbi8qKlxuICogR2l2ZW4gdGhlIE1EQVNUIGFzdCwgbG9vayBmb3IgYWxsIGZlbmNlZCBCbG9ja3F1b3RlXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IGFzdFxuICogQHBhcmFtIHt2RmlsZX0gdkZpbGVcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiB2aXNpdEJsb2NrcXVvdGUoYXN0KSB7XG4gIHJldHVybiB2aXNpdChhc3QsICdibG9ja3F1b3RlJywgKG5vZGUsIGluZGV4LCBwYXJlbnQpID0+IHtcbiAgICBjb25zdCBmaXJzdE5vZGUgPSBub2RlLmNoaWxkcmVuWzBdO1xuXG4gICAgaWYgKGZpcnN0Tm9kZS50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgaWYgKGZpcnN0Tm9kZS5jaGlsZHJlblswXS50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgY29uc3QgZmlyc3RDaGlsZCA9IGZpcnN0Tm9kZS5jaGlsZHJlblswXTtcbiAgICAgICAgaWYgKGZpcnN0Q2hpbGQudmFsdWUuc3RhcnRzV2l0aCgnIXNlY3JldCcpKSB7XG4gICAgICAgICAgbm9kZS50eXBlID0gJ2Rpdic7XG4gICAgICAgICAgZmlyc3RDaGlsZC52YWx1ZSA9IGZpcnN0Q2hpbGQudmFsdWUuc3Vic3RyKDcpO1xuICAgICAgICAgIGxldCBzdW0gPSAnJztcbiAgICAgICAgICBpZiAoZmlyc3RDaGlsZC52YWx1ZS5pbmRleE9mKCdcXG4nKSA+PSAwKSB7XG4gICAgICAgICAgICBzdW0gPSBmaXJzdENoaWxkLnZhbHVlLnN1YnN0cigwLFxuICAgICAgICAgICAgICBmaXJzdENoaWxkLnZhbHVlLmluZGV4T2YoJ1xcbicpKTtcbiAgICAgICAgICAgIGZpcnN0Q2hpbGQudmFsdWUgPSBmaXJzdENoaWxkLnZhbHVlLnN1YnN0cihcbiAgICAgICAgICAgICAgZmlyc3RDaGlsZC52YWx1ZS5pbmRleE9mKCdcXG4nKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1bSA9IGZpcnN0Q2hpbGQudmFsdWU7XG4gICAgICAgICAgICBmaXJzdENoaWxkLnZhbHVlID0gJyc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2VjcmV0ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3NwZWNpYWwtYm94LXNlY3JldCcsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3N1bW1hcnknLFxuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGhOYW1lOiAnc3VtbWFyeScsXG4gICAgICAgICAgICAgICAgICBoQ2hpbGRyZW46IFt7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN1bSB8fCAnU3BvaWxlcicsXG4gICAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgaE5hbWU6ICdkZXRhaWxzJyxcbiAgICAgICAgICAgICAgaFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzcGVjaWFsLWJveCBzZWNyZXQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSwgc2VjcmV0KTtcblxuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGZpcnN0Q2hpbGQudmFsdWUuc3RhcnRzV2l0aCgnIWluZm9ybWF0aW9uJykgfHxcbiAgICAgICAgICAgIGZpcnN0Q2hpbGQudmFsdWUuc3RhcnRzV2l0aCgnIWdvb2QnKSB8fFxuICAgICAgICAgICAgZmlyc3RDaGlsZC52YWx1ZS5zdGFydHNXaXRoKCchYmFkJykgfHxcbiAgICAgICAgICAgIGZpcnN0Q2hpbGQudmFsdWUuc3RhcnRzV2l0aCgnIWNvbW1lbnQnKSB8fFxuICAgICAgICAgICAgZmlyc3RDaGlsZC52YWx1ZS5zdGFydHNXaXRoKCchYXR0ZW50aW9uJykgfHxcbiAgICAgICAgICAgIGZpcnN0Q2hpbGQudmFsdWUuc3RhcnRzV2l0aCgnIXF1ZXN0aW9uJykpIHtcbiAgICAgICAgICBub2RlLnR5cGUgPSAnZGl2JztcbiAgICAgICAgICBub2RlLmRhdGEgPSB7XG4gICAgICAgICAgICBoTmFtZTogJ2RpdicsXG4gICAgICAgICAgICBoUHJvcGVydGllczoge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzcGVjaWFsLWJveC1jb250ZW50JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBsZXQgdHlwZSA9ICcnO1xuICAgICAgICAgIGlmIChmaXJzdENoaWxkLnZhbHVlLmluZGV4T2YoJ1xcbicpID4gMCkge1xuICAgICAgICAgICAgdHlwZSA9IGZpcnN0Q2hpbGQudmFsdWUuc3Vic3RyKDEsIGZpcnN0Q2hpbGQudmFsdWUuaW5kZXhPZignXFxuJykpO1xuICAgICAgICAgICAgZmlyc3RDaGlsZC52YWx1ZSA9IGZpcnN0Q2hpbGQudmFsdWUuc3Vic3RyKGZpcnN0Q2hpbGQudmFsdWUuaW5kZXhPZignXFxuJykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0eXBlID0gZmlyc3RDaGlsZC52YWx1ZS5zdWJzdHIoMSk7XG4gICAgICAgICAgICBmaXJzdENoaWxkLnZhbHVlID0gJyc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYm94ID0ge1xuICAgICAgICAgICAgdHlwZTogJ3NwZWNpYWwtYm94LWRpdicsXG4gICAgICAgICAgICBjaGlsZHJlbjogW25vZGVdLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBoTmFtZTogJ2RpdicsXG4gICAgICAgICAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBgc3BlY2lhbC1ib3ggJHt0eXBlfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxLCBib3gpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHRyYW5zZm9ybWVyIHdoaWNoIGFjc3Qgb24gdGhlIE1EQVNUIHRyZWUgYW5kIGdpdmVuIFZGaWxlLlxuICpcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS91bmlmaWVkanMvdW5pZmllZCNmdW5jdGlvbi10cmFuc2Zvcm1lcm5vZGUtZmlsZS1uZXh0XG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3ludGF4LXRyZWUvbWRhc3RcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS92ZmlsZS92ZmlsZVxuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmZ1bmN0aW9uIGJveCgpIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhc3QgTURBU1RcbiAgICogQHBhcmFtIHt2RmlsZX0gdkZpbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbmV4dFxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICByZXR1cm4gZnVuY3Rpb24gKGFzdCwgdkZpbGUsIG5leHQpIHsgLy8gVHJhbnNmb3JtZXJcbiAgICB2aXNpdEJsb2NrcXVvdGUoYXN0KTtcblxuICAgIGlmICh0eXBlb2YgbmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG5leHQobnVsbCwgYXN0LCB2RmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzdDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBib3g7XG4iLCJjb25zdCB2aXNpdCA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtdmlzaXQnKTtcblxuZnVuY3Rpb24gZGVhbExhYmVsQ2hpbGRyZW4obGlzdENoaWxkKSB7XG4gIGxldCB0ID0gW107XG4gIGlmIChsaXN0Q2hpbGRbMF0udHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcbiAgICB0ID0gbGlzdENoaWxkWzBdLmNoaWxkcmVuO1xuICB9XG4gIHRbMF0udmFsdWUgPSB0WzBdLnZhbHVlLnRyaW0oKTtcbiAgaWYgKGxpc3RDaGlsZFtsaXN0Q2hpbGQubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ2Jsb2NrcXVvdGUnKSB7XG4gICAgbGlzdENoaWxkW2xpc3RDaGlsZC5sZW5ndGggLSAxXS50eXBlID0gJ2Rpdic7XG4gICAgbGlzdENoaWxkW2xpc3RDaGlsZC5sZW5ndGggLSAxXS5kYXRhID0ge1xuICAgICAgaE5hbWU6ICdibG9ja3F1b3RlJyxcbiAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2hpZGVuX2Jsb2NrX3F1b3RlJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuICB0ID0gdC5jb25jYXQobGlzdENoaWxkLnNsaWNlKDEpKTtcbiAgcmV0dXJuIHQ7XG59XG5cbmZ1bmN0aW9uIHZpc2l0TGlzdChhc3QpIHtcbiAgbGV0IG5iTUMgPSAwO1xuICByZXR1cm4gdmlzaXQoYXN0LCAnbGlzdCcsIG5vZGUgPT4ge1xuICAgIGxldCBpc011bHRpcGxlQ2hvaXNlID0gdHJ1ZTtcbiAgICBsZXQgbmJRID0gMDtcbiAgICBjb25zdCB0YWIgPSBbXTtcblxuICAgIEFycmF5LmZyb20obm9kZS5jaGlsZHJlbikuZm9yRWFjaChub2RlQyA9PiB7XG4gICAgICBpZiAobm9kZUMuY2hpbGRyZW4gJiYgbm9kZUMuY2hpbGRyZW5bMF0udHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgaWYgKG5vZGVDLmNoaWxkcmVuWzBdLmNoaWxkcmVuICYmIG5vZGVDLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLnZhbHVlKSB7XG4gICAgICAgICAgaWYgKCd+IT0nLmluZGV4T2Yobm9kZUMuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0udmFsdWVbMF0pIDwgMCkge1xuICAgICAgICAgICAgaXNNdWx0aXBsZUNob2lzZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc011bHRpcGxlQ2hvaXNlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzTXVsdGlwbGVDaG9pc2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoaXNNdWx0aXBsZUNob2lzZSkge1xuICAgICAgQXJyYXkuZnJvbShub2RlLmNoaWxkcmVuKS5mb3JFYWNoKG5vZGVDID0+IHtcbiAgICAgICAgaWYgKG5vZGVDLmNoaWxkcmVuWzBdLnR5cGUgPT09ICdwYXJhZ3JhcGgnKSB7XG4gICAgICAgICAgaWYgKG5vZGVDLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLnZhbHVlWzBdID09PSAnficpIHtcbiAgICAgICAgICAgIHRhYi5wdXNoKDAuNSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChub2RlQy5jaGlsZHJlblswXS5jaGlsZHJlblswXS52YWx1ZVswXSA9PT0gJyEnKSB7XG4gICAgICAgICAgICB0YWIucHVzaCgwKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGFiLnB1c2goMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5vZGVDLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLnZhbHVlID0gYCR7bm9kZUMuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0udmFsdWUuc2xpY2UoMSl9XFxyYDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBub2RlLnR5cGUgPSAnbWMnO1xuICAgICAgbm9kZS5kYXRhID0ge1xuICAgICAgICBoTmFtZTogJ2ZpZWxkc2V0JyxcbiAgICAgICAgaFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdtYyBjaGVjaycsXG4gICAgICAgICAgaWQ6IGBtY18ke25iTUN9YCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICBub2RlLmNoaWxkcmVuID0gW3tcbiAgICAgICAgdHlwZTogJ2xpc3QtaXRlbS1tYycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoTmFtZTogJ3VsJyxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW4ubWFwKHggPT4gKHt0eXBlOiAnaW5wdXQtbGlzdC1pdGVtJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBoTmFtZTogJ2xpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7dHlwZTogJ2lucHV0LWxpc3QtaW5wdXQnLFxuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgaE5hbWU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgaFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6IHguY2hlY2tlZCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgICAgICAgICBpZDogYG1jXyR7bmJNQ31fJHtuYlF9YCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJyF+PSdbdGFiW25iUV0gKiAyXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9fSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2lucHV0LWxpc3QtbGFiZWwnLFxuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgaE5hbWU6ICdsYWJlbCcsXG4gICAgICAgICAgICAgICAgaFByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgIGZvcjogYG1jXyR7bmJNQ31fJHtuYlErK31gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBkZWFsTGFiZWxDaGlsZHJlbih4LmNoaWxkcmVuKSxcbiAgICAgICAgICAgIH1dLFxuICAgICAgICB9KSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZmllbGQtYnV0dG9uJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhOYW1lOiAnaW5wdXQnLFxuICAgICAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBvbmNsaWNrOiBgY2hlY2soJ21jXyR7bmJNQ30nLFske1N0cmluZyh0YWIpfV0pYCxcbiAgICAgICAgICAgIHZhbHVlOiAnVmFsaWRhdGUnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBuYk1DKys7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSB0cmFuc2Zvcm1lciB3aGljaCBhY3N0IG9uIHRoZSBNREFTVCB0cmVlIGFuZCBnaXZlbiBWRmlsZS5cbiAqXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vdW5pZmllZGpzL3VuaWZpZWQjZnVuY3Rpb24tdHJhbnNmb3JtZXJub2RlLWZpbGUtbmV4dFxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3N5bnRheC10cmVlL21kYXN0XG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vdmZpbGUvdmZpbGVcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5mdW5jdGlvbiBtdWx0aXBsZUNob2lzZSgpIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhc3QgTURBU1RcbiAgICogQHBhcmFtIHt2RmlsZX0gdkZpbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gbmV4dFxuICAgKiBAcmV0dXJuIHtvYmplY3R9XG4gICAqL1xuICByZXR1cm4gZnVuY3Rpb24gKGFzdCwgdkZpbGUsIG5leHQpIHsgLy8gVHJhbnNmb3JtZXJcbiAgICB2aXNpdExpc3QoYXN0KTtcblxuICAgIGlmICh0eXBlb2YgbmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG5leHQobnVsbCwgYXN0LCB2RmlsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzdDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtdWx0aXBsZUNob2lzZTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gQSB2YWxpZCBvdXRwdXQgd2hpY2ggbWVhbiBub3RoaW5nIGhhcyBiZWVuIHBhcnNlZC5cbi8vIFVzZWQgYXMgZXJyb3IgcmV0dXJuIC8gaW52YWxpZCBvdXRwdXRcblxudmFyIG5vdGhpbmdIYXBwZW5kID0ge1xuICBwcm9wOiB7XG4gICAga2V5OiB1bmRlZmluZWQsXG4gICAgY2xhc3M6IHVuZGVmaW5lZCxcbiAgICBpZDogdW5kZWZpbmVkXG4gIH0sXG4gIGVhdGVuOiAnJ1xufTtcblxuLy8gTWFpbiBmdW5jdGlvblxuZnVuY3Rpb24gcGFyc2UodmFsdWUsIGluZGV4TmV4dCkge1xuICB2YXIgbGV0c0VhdCA9ICcnO1xuICB2YXIgc3RvcE9uQnJhY2UgPSBmYWxzZTtcbiAgdmFyIGVycm9yRGV0ZWN0ZWQgPSBmYWxzZTtcblxuICB2YXIgcHJvcCA9IHsga2V5OiB1bmRlZmluZWQgLyoge30gKi8sIGNsYXNzOiB1bmRlZmluZWQgLyogW10gKi8sIGlkOiB1bmRlZmluZWQgfTtcblxuICAvKiBUaGV5IGlzIGF0IGxlYXQgb25lIGxhYmVsIGFuZCBhdCBiZXN0IHR3byAqL1xuICAvKiBla3FzZGYgPC0gb25lIGxhYmVsXG4gICAqIHFzZGZxc2ZkPXFzZGZxc2RmIDwtIHR3byAqL1xuICB2YXIgbGFiZWxGaXJzdCA9ICcnO1xuICB2YXIgbGFiZWxTZWNvbmQ7XG5cbiAgaWYgKGluZGV4TmV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaW5kZXhOZXh0ID0gMDtcbiAgfVxuXG4gIC8qIDMgdHlwZXMgOlxuICAgKiAuYXpjdiA8LSBjbGFzc1xuICAgKiAjcG9pIDwtIGlkXG4gICAqIGRmZ2g9emVydCA8LSBrZXlcbiAgICogamtqIDwtIHRoaXMgaXMgYWxzbyBhIGtleSBidXQgd2l0aCBhIHVuZGVmaW5lZCB2YWx1ZVxuICAgKiBqa2o9IDwtIHRoaXMgaXMgYWxzbyBhIGtleSBidXQgd2l0aCBhIGVtcHR5IHZhbHVlXG4gICAqL1xuICB2YXIgdHlwZTtcbiAgdmFyIGZvcmJpZGVuQ2hhcmFjdGVycyA9ICdcXG5cXHJ7fSc7XG5cbiAgLy8gQSBmdW5jdGlvbiB0aGF0IGRldGVjdCBpZiBpdCdzIHRpbWUgdG8gZW5kIHRoZSBwYXJzaW5nXG4gIHZhciBzaG91bGRTdG9wID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChpbmRleE5leHQgPj0gdmFsdWUubGVuZ3RoIHx8IGZvcmJpZGVuQ2hhcmFjdGVycy5pbmRleE9mKHZhbHVlW2luZGV4TmV4dF0pID4gLTEpIHtcbiAgICAgIGlmIChzdG9wT25CcmFjZSAmJiB2YWx1ZVtpbmRleE5leHRdICE9PSAnfScpIHtcbiAgICAgICAgZXJyb3JEZXRlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlW2luZGV4TmV4dF0gPT09ICd9JyAmJiBzdG9wT25CcmFjZTtcbiAgfTtcblxuICB2YXIgZWF0ZW4gPSAnJztcbiAgLy8gQ291cGxlIG9mIGZ1bmN0aW9ucyB0aGF0IHBhcnNlIHNhbWUga2luZHMgb2YgY2hhcmFjdGVyc1xuICAvLyBVc2VkIHRvIHBhcnNlIHNwYWNlcyBvciBpZGVudGlmaWVyc1xuICB2YXIgZWF0ID0gZnVuY3Rpb24gKGNoYXJzKSB7XG4gICAgZWF0ZW4gPSAnJztcblxuICAgIHdoaWxlIChpbmRleE5leHQgPCB2YWx1ZS5sZW5ndGggJiYgZm9yYmlkZW5DaGFyYWN0ZXJzLmluZGV4T2YodmFsdWUuY2hhckF0KGluZGV4TmV4dCkpIDwgMCAmJiBjaGFycy5pbmRleE9mKHZhbHVlLmNoYXJBdChpbmRleE5leHQpKSA+PSAwKSB7XG4gICAgICBsZXRzRWF0ICs9IHZhbHVlLmNoYXJBdChpbmRleE5leHQpO1xuICAgICAgZWF0ZW4gKz0gdmFsdWUuY2hhckF0KGluZGV4TmV4dCk7XG4gICAgICBpbmRleE5leHQrKztcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvdWxkU3RvcCgpO1xuICB9O1xuICB2YXIgZWF0VW50aWwgPSBmdW5jdGlvbiAoY2hhcnMpIHtcbiAgICBlYXRlbiA9ICcnO1xuXG4gICAgd2hpbGUgKGluZGV4TmV4dCA8IHZhbHVlLmxlbmd0aCAmJiBmb3JiaWRlbkNoYXJhY3RlcnMuaW5kZXhPZih2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KSkgPCAwICYmIGNoYXJzLmluZGV4T2YodmFsdWUuY2hhckF0KGluZGV4TmV4dCkpIDwgMCkge1xuICAgICAgbGV0c0VhdCArPSB2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KTtcbiAgICAgIGVhdGVuICs9IHZhbHVlLmNoYXJBdChpbmRleE5leHQpO1xuICAgICAgaW5kZXhOZXh0Kys7XG4gICAgfVxuXG4gICAgLy8gVWdseSBidXQga2VlcCB0aGUgbWFpbiBsb29wIHJlYWRhYmxlXG4gICAgLy8gU2V0IHRoZSBsYWJlbCBpdCBzaG91bGQgc2V0XG4gICAgaWYgKGxhYmVsRmlyc3QpIHtcbiAgICAgIGxhYmVsU2Vjb25kID0gZWF0ZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhYmVsRmlyc3QgPSBlYXRlbjtcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvdWxkU3RvcCgpO1xuICB9O1xuXG4gIC8vIEluIHF1b3RlLCBldmVyeSBjaGFyYWN0ZXIgaXMgdmFsaWQgZXhlcHQgdGhlIHVuZXNjYXBlZCBxdW90ZXMgYW5kIENSIG9yIExGXG4gIC8vIFNhbWUgZnVuY3Rpb24gZm9yIHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlXG4gIHZhciBlYXRJblF1b3RlID0gZnVuY3Rpb24gKHF1b3RlKSB7XG4gICAgZWF0ZW4gPSAnJztcbiAgICAvLyBGaXJzdCBjaGVjayBzbyB2YWx1ZVtpbmRleE5leHQtMV0gd2lsbCBhbHdheXMgYmUgdmFsaWRcbiAgICBpZiAodmFsdWVbaW5kZXhOZXh0XSA9PT0gcXVvdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAoaW5kZXhOZXh0IDwgdmFsdWUubGVuZ3RoICYmICEocXVvdGUgPT09IHZhbHVlW2luZGV4TmV4dF0gJiYgdmFsdWVbaW5kZXhOZXh0IC0gMV0gIT09ICdcXFxcJykgJiYgdmFsdWVbaW5kZXhOZXh0XSAhPT0gJ1xcbicgJiYgdmFsdWVbaW5kZXhOZXh0XSAhPT0gJ1xccicpIHtcbiAgICAgIGxldHNFYXQgKz0gdmFsdWUuY2hhckF0KGluZGV4TmV4dCk7XG4gICAgICBlYXRlbiArPSB2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KTtcbiAgICAgIGluZGV4TmV4dCsrO1xuICAgIH1cbiAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYW4gRU9MLCB0aGVyZSBpcyBhbiBlcnJvclxuICAgIC8vIFdlIGFyZSB3YWl0aW5nIGZvciBhIHF1b3RlXG4gICAgaWYgKHZhbHVlW2luZGV4TmV4dF0gPT09ICdcXG4nIHx8IHZhbHVlW2luZGV4TmV4dF0gPT09ICdcXHInIHx8IGluZGV4TmV4dCA+PSB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGVycm9yRGV0ZWN0ZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gVWdseSBidXQga2VlcCB0aGUgbWFpbiBsb29wIHJlYWRhYmxlXG4gICAgaWYgKGxhYmVsRmlyc3QpIHtcbiAgICAgIGxhYmVsU2Vjb25kID0gZWF0ZW4ucmVwbGFjZSgvXFxcXFwiL2csICdcIicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYWJlbEZpcnN0ID0gZWF0ZW4ucmVwbGFjZSgvXFxcXFwiL2csICdcIicpO1xuICAgIH1cblxuICAgIHJldHVybiBzaG91bGRTdG9wKCk7XG4gIH07XG5cbiAgLy8gSXQncyByZWFseSBjb21tdW4gdG8gZWF0IG9ubHkgb25lIGNoYXJhY3RlciBzbyBsZXQncyBtYWtlIGl0IGEgZnVuY3Rpb25cbiAgdmFyIGVhdE9uZSA9IGZ1bmN0aW9uIChjKSB7XG4gICAgLy8gTWlhbSAhXG4gICAgbGV0c0VhdCArPSBjO1xuICAgIGluZGV4TmV4dCsrO1xuXG4gICAgcmV0dXJuIHNob3VsZFN0b3AoKTtcbiAgfTtcblxuICB2YXIgYWRkQXR0cmlidXRlID0gZnVuY3Rpb24gKCkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnaWQnOlxuICAgICAgICAvLyBJRFxuICAgICAgICBwcm9wLmlkID0gcHJvcC5pZCB8fCBsYWJlbEZpcnN0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgaWYgKCFwcm9wLmNsYXNzKSB7XG4gICAgICAgICAgcHJvcC5jbGFzcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3AuY2xhc3MuaW5kZXhPZihsYWJlbEZpcnN0KSA8IDApIHtcbiAgICAgICAgICBwcm9wLmNsYXNzLnB1c2gobGFiZWxGaXJzdCk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2tleSc6XG4gICAgICAgIGlmICghbGFiZWxGaXJzdCkge1xuICAgICAgICAgIHJldHVybiBub3RoaW5nSGFwcGVuZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGFiZWxGaXJzdCAhPT0gJ2lkJyAmJiBsYWJlbEZpcnN0ICE9PSAnY2xhc3MnKSB7XG4gICAgICAgICAgcHJvcFtsYWJlbEZpcnN0XSA9IGxhYmVsU2Vjb25kO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gICAgdHlwZSA9IHVuZGVmaW5lZDtcbiAgICBsYWJlbEZpcnN0ID0gJyc7XG4gICAgbGFiZWxTZWNvbmQgPSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqICoqKioqKioqKioqKioqKioqKioqKioqIFN0YXJ0IHBhcnNpbmcgKioqKioqKioqKioqKioqKioqKioqKioqICovXG5cbiAgLy8gTGV0J3MgY2hlY2sgZm9yIHRyZWxsaW5nIHNwYWNlcyBmaXJzdFxuICBlYXQoJyBcXHRcXHYnKTtcblxuICBpZiAodmFsdWVbaW5kZXhOZXh0XSA9PT0gJ3snKSB7XG4gICAgZWF0T25lKCd7Jyk7XG4gICAgc3RvcE9uQnJhY2UgPSB0cnVlO1xuICB9XG5cbiAgd2hpbGUgKCFzaG91bGRTdG9wKCkpIHtcbiAgICBpZiAoZWF0KCcgXFx0XFx2JykpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KSA9PT0gJy4nKSB7XG4gICAgICAvLyBDbGFzc2VzXG4gICAgICB0eXBlID0gJ2NsYXNzJztcbiAgICAgIGlmIChlYXRPbmUoJy4nKSkge1xuICAgICAgICBlcnJvckRldGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KSA9PT0gJyMnKSB7XG4gICAgICAvLyBJRFxuICAgICAgdHlwZSA9ICdpZCc7XG4gICAgICBpZiAoZWF0T25lKCcjJykpIHtcbiAgICAgICAgZXJyb3JEZXRlY3RlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBLZXlcbiAgICAgIHR5cGUgPSAna2V5JztcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IG5hbWVcbiAgICBpZiAoZWF0VW50aWwoJz1cXHRcXGJcXHYgwqAnKSB8fCAhbGFiZWxGaXJzdCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXhOZXh0KSA9PT0gJz0nICYmIHR5cGUgPT09ICdrZXknKSB7XG4gICAgICAvLyBTZXQgbGFiZWxTZWNvbmRcbiAgICAgIGlmIChlYXRPbmUoJz0nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleE5leHQpID09PSAnXCInKSB7XG4gICAgICAgIGlmIChlYXRPbmUoJ1wiJykpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlYXRJblF1b3RlKCdcIicpKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUuY2hhckF0KGluZGV4TmV4dCkgPT09ICdcIicpIHtcbiAgICAgICAgICBpZiAoZWF0T25lKCdcIicpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG5vdGhpbmdIYXBwZW5kO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlLmNoYXJBdChpbmRleE5leHQpID09PSAnXFwnJykge1xuICAgICAgICBpZiAoZWF0T25lKCdcXCcnKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlYXRJblF1b3RlKCdcXCcnKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleE5leHQpID09PSAnXFwnJykge1xuICAgICAgICAgIGlmIChlYXRPbmUoJ1xcJycpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG5vdGhpbmdIYXBwZW5kO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGVhdFVudGlsKCcgXFx0XFxuXFxyXFx2PX0nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIHBhcnNlZCBhdHRyaWJ1dGUgdG8gdGhlIG91dHB1dCBwcm9wIHdpdGggdGhlIGFkIGhvYyB0eXBlXG4gICAgYWRkQXR0cmlidXRlKCk7XG4gIH1cbiAgYWRkQXR0cmlidXRlKCk7XG4gIGlmIChzdG9wT25CcmFjZSkge1xuICAgIGlmIChpbmRleE5leHQgPCB2YWx1ZS5sZW5ndGggJiYgdmFsdWVbaW5kZXhOZXh0XSA9PT0gJ30nKSB7XG4gICAgICBzdG9wT25CcmFjZSA9IGZhbHNlO1xuICAgICAgZWF0T25lKCd9Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub3RoaW5nSGFwcGVuZDtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JEZXRlY3RlZCkge1xuICAgIHJldHVybiBub3RoaW5nSGFwcGVuZDtcbiAgfVxuXG4gIHJldHVybiB7IHByb3A6IHByb3AsIGVhdGVuOiBsZXRzRWF0IH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyc2U7IiwiJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBTVEFSVCA9ICdbX18nO1xuY29uc3QgRU5EID0gJ19fXSc7XG5cbmNvbnN0IHBhcnNlQXR0ciA9IHJlcXVpcmUoJ21kLWF0dHItcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGxvY2F0b3IodmFsdWUsIGZyb21JbmRleCkge1xuICBjb25zdCBpbmRleCA9IHZhbHVlLmluZGV4T2YoU1RBUlQsIGZyb21JbmRleCk7XG4gIHJldHVybiBpbmRleDtcbn1cblxuZnVuY3Rpb24gcGx1Z2luKCkge1xuICBmdW5jdGlvbiBpbmxpbmVUb2tlbml6ZXIoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZ2ZtIHx8ICF2YWx1ZS5zdGFydHNXaXRoKFNUQVJUKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWJ2YWx1ZSA9ICcnO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IG5vdyA9IGVhdC5ub3coKTtcbiAgICBub3cuY29sdW1uICs9IDI7XG4gICAgbm93Lm9mZnNldCArPSAyO1xuXG4gICAgd2hpbGUgKCF2YWx1ZS5zdGFydHNXaXRoKEVORCwgaW5kZXgpICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHN1YnZhbHVlICs9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gICAgICBpZiAodmFsdWUuY2hhckF0KGluZGV4KSA9PT0gJ1xcbicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBsZXRzRWF0ID0gJyc7XG4gICAgbGV0IHByb3AgPSB7a2V5OiB1bmRlZmluZWQgLyoge30gKi8sIGNsYXNzOiB1bmRlZmluZWQgLyogW10gKi8sIGlkOiB1bmRlZmluZWR9O1xuICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXggKyBFTkQubGVuZ3RoKSA9PT0gJ3snKSB7XG4gICAgICBjb25zdCByZXMgPSBwYXJzZUF0dHIodmFsdWUsIGluZGV4ICsgRU5ELmxlbmd0aCk7XG4gICAgICBsZXRzRWF0ID0gcmVzLmVhdGVuO1xuICAgICAgcHJvcCA9IHJlcy5wcm9wO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgICBpZiAoc2lsZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAocHJvcC50eXBlICE9PSAncGFzc3dvcmQnKSB7XG4gICAgICBwcm9wLnR5cGUgPSAndGV4dCc7XG4gICAgfVxuXG4gICAgcHJvcC5wbGFjZWhvbGRlciA9IHN1YnZhbHVlLnJlcGxhY2UoL15fKi9nLCAnJykucmVwbGFjZSgvXyokL2csICcnKSB8fCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHJldHVybiBlYXQoU1RBUlQgKyBzdWJ2YWx1ZS5zbGljZSgxKSArIEVORC5zbGljZSgxKSArIGxldHNFYXQpKHtcbiAgICAgICAgdHlwZTogJ2xpbmUtaW5wdXQnLFxuICAgICAgICBjaGlsZHJlbjogW10sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoTmFtZTogJ2lucHV0JyxcbiAgICAgICAgICBoUHJvcGVydGllczogcHJvcCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlubGluZVRva2VuaXplci5sb2NhdG9yID0gbG9jYXRvcjtcblxuICBjb25zdCBQYXJzZXIgPSB0aGlzLlBhcnNlcjtcblxuICAvLyBJbmplY3QgaW5saW5lVG9rZW5pemVyXG4gIGNvbnN0IGlubGluZVRva2VuaXplcnMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZVRva2VuaXplcnM7XG4gIGNvbnN0IGlubGluZU1ldGhvZHMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZU1ldGhvZHM7XG4gIGlubGluZVRva2VuaXplcnMuaW5wdXQgPSBpbmxpbmVUb2tlbml6ZXI7XG4gIGlubGluZU1ldGhvZHMuc3BsaWNlKGlubGluZU1ldGhvZHMuaW5kZXhPZigndXJsJyksIDAsICdpbnB1dCcpO1xuXG4gIGNvbnN0IENvbXBpbGVyID0gdGhpcy5Db21waWxlcjtcblxuICAvLyBTdHJpbmdpZnlcbiAgaWYgKENvbXBpbGVyKSB7XG4gICAgY29uc3QgdmlzaXRvcnMgPSBDb21waWxlci5wcm90b3R5cGUudmlzaXRvcnM7XG4gICAgdmlzaXRvcnMubGluZWlucHV0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBgW19fJHt0aGlzLmFsbChub2RlKS5qb2luKCcnKX1fX11gO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwbHVnaW47XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IFNUQVJUID0gJ1snO1xuY29uc3QgRU5EX1JHWCA9IC8oXFx8ICpbdlZdICpdKSh7W15cXG5dKn0pPy87XG5cbmNvbnN0IHBhcnNlQXR0ciA9IHJlcXVpcmUoJ21kLWF0dHItcGFyc2VyJyk7XG5cbmZ1bmN0aW9uIGxvY2F0b3IodmFsdWUsIGZyb21JbmRleCkge1xuICBjb25zdCBpbmRleCA9IHZhbHVlLmluZGV4T2YoU1RBUlQsIGZyb21JbmRleCk7XG4gIHJldHVybiBpbmRleDtcbn1cblxuZnVuY3Rpb24gcGx1Z2luKCkge1xuICBsZXQgRU5EID0gJ3x2XSc7XG4gIGZ1bmN0aW9uIGlubGluZVRva2VuaXplcihlYXQsIHZhbHVlKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZ2ZtIHx8ICF2YWx1ZS5zdGFydHNXaXRoKFNUQVJUKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWJ2YWx1ZSA9ICcnO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IG5vdyA9IGVhdC5ub3coKTtcbiAgICBub3cuY29sdW1uICs9IDI7XG4gICAgbm93Lm9mZnNldCArPSAyO1xuXG4gICAgbGV0IHJldCA9IG51bGw7XG4gICAgaWYgKChyZXQgPSB2YWx1ZS5zdWJzdHIoMSkubWF0Y2goRU5EX1JHWCkpICYmIGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBzdWJ2YWx1ZSArPSB2YWx1ZS5zdWJzdHIoMSwgcmV0LmluZGV4KTtcbiAgICAgIEVORCA9IHJldFsxXTtcblxuICAgICAgaW5kZXggKz0gcmV0LmluZGV4ICsgRU5ELmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBsZXRzRWF0ID0gJyc7XG4gICAgbGV0IHByb3AgPSB7Y2xhc3M6IHVuZGVmaW5lZCAvKiBbXSAqLywgaWQ6IHVuZGVmaW5lZH07XG4gICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgPT09ICd7Jykge1xuICAgICAgY29uc3QgcmVzID0gcGFyc2VBdHRyKHZhbHVlLCBpbmRleCk7XG4gICAgICBsZXRzRWF0ID0gcmVzLmVhdGVuO1xuICAgICAgaW5kZXggKz0gbGV0c0VhdC5sZW5ndGg7XG4gICAgICBwcm9wID0gcmVzLnByb3A7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4IDw9IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIGVhdChTVEFSVCArIHN1YnZhbHVlICsgRU5EICsgbGV0c0VhdCkoe1xuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaE5hbWU6ICdzZWxlY3QnLFxuICAgICAgICAgIGhQcm9wZXJ0aWVzOiBwcm9wLFxuICAgICAgICAgIGhDaGlsZHJlbjogc3VidmFsdWUuc3BsaXQoJ3wnKS5maWx0ZXIoeCA9PiB4KS5tYXAodW50cmltID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSB1bnRyaW0udHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgICAgICAgICAgICB0YWdOYW1lOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRleHQsXG4gICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlubGluZVRva2VuaXplci5sb2NhdG9yID0gbG9jYXRvcjtcblxuICBjb25zdCBQYXJzZXIgPSB0aGlzLlBhcnNlcjtcblxuICAvLyBJbmplY3QgaW5saW5lVG9rZW5pemVyXG4gIGNvbnN0IGlubGluZVRva2VuaXplcnMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZVRva2VuaXplcnM7XG4gIGNvbnN0IGlubGluZU1ldGhvZHMgPSBQYXJzZXIucHJvdG90eXBlLmlubGluZU1ldGhvZHM7XG4gIGlubGluZVRva2VuaXplcnMuc2VsZWN0ID0gaW5saW5lVG9rZW5pemVyO1xuICBpbmxpbmVNZXRob2RzLnNwbGljZShpbmxpbmVNZXRob2RzLmluZGV4T2YoJ3VybCcpLCAwLCAnc2VsZWN0Jyk7XG5cbiAgY29uc3QgQ29tcGlsZXIgPSB0aGlzLkNvbXBpbGVyO1xuXG4gIC8vIFN0cmluZ2lmeVxuICBpZiAoQ29tcGlsZXIpIHtcbiAgICBjb25zdCB2aXNpdG9ycyA9IENvbXBpbGVyLnByb3RvdHlwZS52aXNpdG9ycztcbiAgICB2aXNpdG9ycy5saW5lc2VsZWN0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgIHJldHVybiBTVEFSVCArIHRoaXMuYWxsKG5vZGUpLmpvaW4oJycpICsgRU5EO1xuICAgIH07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwbHVnaW47XG4iLCIndXNlIHN0cmljdCc7XG5cbmNvbnN0IFNUQVJUID0gL14oXFxbXytcXG4pL2c7XG5jb25zdCBFTkQgPSAvKF8rXSkvZztcblxuY29uc3QgcGFyc2VBdHRyID0gcmVxdWlyZSgnbWQtYXR0ci1wYXJzZXInKTtcblxuZnVuY3Rpb24gbG9jYXRvcih2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIGNvbnN0IGluZGV4ID0gdmFsdWUuaW5kZXhPZihTVEFSVCwgZnJvbUluZGV4KTtcbiAgcmV0dXJuIGluZGV4O1xufVxuXG5mdW5jdGlvbiBwbHVnaW4oKSB7XG4gIGZ1bmN0aW9uIGJsb2NrVG9rZW5pemVyKGVhdCwgdmFsdWUpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5nZm0gfHwgdmFsdWUuc2VhcmNoKFNUQVJUKSAhPT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBwcm9wID0ge1xuICAgICAgY2xhc3M6IHVuZGVmaW5lZCAvKiBbXSAqLyxcbiAgICAgIGlkOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIGxldCBlYXRlbiA9ICcnO1xuXG4gICAgaWYgKHZhbHVlLnNlYXJjaChFTkQpID4gMCkge1xuICAgICAgaWYgKCh2YWx1ZS5zZWFyY2goRU5EKSArIHZhbHVlLm1hdGNoKEVORClbMF0ubGVuZ3RoKSA8IHZhbHVlLmxlbmd0aCAmJlxuICAgICAgICAgICAgdmFsdWUuY2hhckF0KHZhbHVlLnNlYXJjaChFTkQpICsgdmFsdWUubWF0Y2goRU5EKVswXS5sZW5ndGgpID09PSAneycpIHtcbiAgICAgICAgY29uc3QgcmVzID0gcGFyc2VBdHRyKHZhbHVlLCB2YWx1ZS5zZWFyY2goRU5EKSArIHZhbHVlLm1hdGNoKEVORClbMF0ubGVuZ3RoKTtcbiAgICAgICAgZWF0ZW4gPSByZXMuZWF0ZW47XG4gICAgICAgIHByb3AgPSByZXMucHJvcDtcbiAgICAgIH1cbiAgICAgIGxldCBlbmQgPSB2YWx1ZS5zZWFyY2goRU5EKTtcbiAgICAgIGlmIChlbmQgIT09IHZhbHVlLm1hdGNoKFNUQVJUKVswXS5sZW5ndGgpIHtcbiAgICAgICAgZW5kIC09IDE7XG4gICAgICB9XG4gICAgICBjb25zdCB0ID0gZWF0KHZhbHVlLnNsaWNlKDAsIHZhbHVlLnNlYXJjaChFTkQpICsgdmFsdWUubWF0Y2goRU5EKVswXS5sZW5ndGgpICsgZWF0ZW4pKHtcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhOYW1lOiAnVEVYVEFSRUEnLFxuICAgICAgICAgIGhQcm9wZXJ0aWVzOiBwcm9wLFxuICAgICAgICAgIGhDaGlsZHJlbjogW3t0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUuc2xpY2UodmFsdWUubWF0Y2goU1RBUlQpWzBdLmxlbmd0aCwgZW5kKSxcbiAgICAgICAgICB9XSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQ7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYmxvY2tUb2tlbml6ZXIubG9jYXRvciA9IGxvY2F0b3I7XG5cbiAgY29uc3QgUGFyc2VyID0gdGhpcy5QYXJzZXI7XG5cbiAgY29uc3QgYmxvY2tUb2tlbml6ZXJzID0gUGFyc2VyLnByb3RvdHlwZS5ibG9ja1Rva2VuaXplcnM7XG4gIGNvbnN0IGJsb2NrTWV0aG9kcyA9IFBhcnNlci5wcm90b3R5cGUuYmxvY2tNZXRob2RzO1xuICBibG9ja1Rva2VuaXplcnMudGV4dGlucHV0ID0gYmxvY2tUb2tlbml6ZXI7XG4gIGJsb2NrTWV0aG9kcy5zcGxpY2UoYmxvY2tNZXRob2RzLmluZGV4T2YoJ2ZlbmNlZENvZGUnKSArIDEsIDAsICd0ZXh0aW5wdXQnKTtcblxuICBjb25zdCBDb21waWxlciA9IHRoaXMuQ29tcGlsZXI7XG5cbiAgLy8gU3RyaW5naWZ5XG4gIGlmIChDb21waWxlcikge1xuICAgIGNvbnN0IHZpc2l0b3JzID0gQ29tcGlsZXIucHJvdG90eXBlLnZpc2l0b3JzO1xuICAgIHZpc2l0b3JzLnRleHRpbnB1dCA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICByZXR1cm4gYFtfXyR7dGhpcy5hbGwobm9kZSkuam9pbignJyl9X19dYDtcbiAgICB9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGx1Z2luO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA9ICdcXHVGRkZEJztcblxuZXhwb3J0cy5DT0RFX1BPSU5UUyA9IHtcbiAgICBFT0Y6IC0xLFxuICAgIE5VTEw6IDB4MDAsXG4gICAgVEFCVUxBVElPTjogMHgwOSxcbiAgICBDQVJSSUFHRV9SRVRVUk46IDB4MEQsXG4gICAgTElORV9GRUVEOiAweDBBLFxuICAgIEZPUk1fRkVFRDogMHgwQyxcbiAgICBTUEFDRTogMHgyMCxcbiAgICBFWENMQU1BVElPTl9NQVJLOiAweDIxLFxuICAgIFFVT1RBVElPTl9NQVJLOiAweDIyLFxuICAgIE5VTUJFUl9TSUdOOiAweDIzLFxuICAgIEFNUEVSU0FORDogMHgyNixcbiAgICBBUE9TVFJPUEhFOiAweDI3LFxuICAgIEhZUEhFTl9NSU5VUzogMHgyRCxcbiAgICBTT0xJRFVTOiAweDJGLFxuICAgIERJR0lUXzA6IDB4MzAsXG4gICAgRElHSVRfOTogMHgzOSxcbiAgICBTRU1JQ09MT046IDB4M0IsXG4gICAgTEVTU19USEFOX1NJR046IDB4M0MsXG4gICAgRVFVQUxTX1NJR046IDB4M0QsXG4gICAgR1JFQVRFUl9USEFOX1NJR046IDB4M0UsXG4gICAgUVVFU1RJT05fTUFSSzogMHgzRixcbiAgICBMQVRJTl9DQVBJVEFMX0E6IDB4NDEsXG4gICAgTEFUSU5fQ0FQSVRBTF9GOiAweDQ2LFxuICAgIExBVElOX0NBUElUQUxfWDogMHg1OCxcbiAgICBMQVRJTl9DQVBJVEFMX1o6IDB4NUEsXG4gICAgR1JBVkVfQUNDRU5UOiAweDYwLFxuICAgIExBVElOX1NNQUxMX0E6IDB4NjEsXG4gICAgTEFUSU5fU01BTExfRjogMHg2NixcbiAgICBMQVRJTl9TTUFMTF9YOiAweDc4LFxuICAgIExBVElOX1NNQUxMX1o6IDB4N0EsXG4gICAgUkVQTEFDRU1FTlRfQ0hBUkFDVEVSOiAweEZGRkRcbn07XG5cbmV4cG9ydHMuQ09ERV9QT0lOVF9TRVFVRU5DRVMgPSB7XG4gICAgREFTSF9EQVNIX1NUUklORzogWzB4MkQsIDB4MkRdLCAvLy0tXG4gICAgRE9DVFlQRV9TVFJJTkc6IFsweDQ0LCAweDRGLCAweDQzLCAweDU0LCAweDU5LCAweDUwLCAweDQ1XSwgLy9ET0NUWVBFXG4gICAgQ0RBVEFfU1RBUlRfU1RSSU5HOiBbMHg1QiwgMHg0MywgMHg0NCwgMHg0MSwgMHg1NCwgMHg0MSwgMHg1Ql0sIC8vW0NEQVRBW1xuICAgIENEQVRBX0VORF9TVFJJTkc6IFsweDVELCAweDVELCAweDNFXSwgLy9dXT5cbiAgICBTQ1JJUFRfU1RSSU5HOiBbMHg3MywgMHg2MywgMHg3MiwgMHg2OSwgMHg3MCwgMHg3NF0sIC8vc2NyaXB0XG4gICAgUFVCTElDX1NUUklORzogWzB4NTAsIDB4NTUsIDB4NDIsIDB4NEMsIDB4NDksIDB4NDNdLCAvL1BVQkxJQ1xuICAgIFNZU1RFTV9TVFJJTkc6IFsweDUzLCAweDU5LCAweDUzLCAweDU0LCAweDQ1LCAweDREXSAvL1NZU1RFTVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFVOSUNPREUgPSByZXF1aXJlKCcuLi9jb21tb24vdW5pY29kZScpO1xuXG4vL0FsaWFzZXNcbnZhciAkID0gVU5JQ09ERS5DT0RFX1BPSU5UUztcblxuLy9VdGlsc1xuXG4vL09QVElNSVpBVElPTjogdGhlc2UgdXRpbGl0eSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBtb3ZlZCBvdXQgb2YgdGhpcyBtb2R1bGUuIFY4IENyYW5rc2hhZnQgd2lsbCBub3QgaW5saW5lXG4vL3RoaXMgZnVuY3Rpb25zIGlmIHRoZXkgd2lsbCBiZSBzaXR1YXRlZCBpbiBhbm90aGVyIG1vZHVsZSBkdWUgdG8gY29udGV4dCBzd2l0Y2guXG4vL0Fsd2F5cyBwZXJmb3JtIGlubGluaW5nIGNoZWNrIGJlZm9yZSBtb2RpZnlpbmcgdGhpcyBmdW5jdGlvbnMgKCdub2RlIC0tdHJhY2UtaW5saW5pbmcnKS5cbmZ1bmN0aW9uIGlzU3Vycm9nYXRlUGFpcihjcDEsIGNwMikge1xuICAgIHJldHVybiBjcDEgPj0gMHhEODAwICYmIGNwMSA8PSAweERCRkYgJiYgY3AyID49IDB4REMwMCAmJiBjcDIgPD0gMHhERkZGO1xufVxuXG5mdW5jdGlvbiBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwMSwgY3AyKSB7XG4gICAgcmV0dXJuIChjcDEgLSAweEQ4MDApICogMHg0MDAgKyAweDI0MDAgKyBjcDI7XG59XG5cblxuLy9Db25zdFxudmFyIERFRkFVTFRfQlVGRkVSX1dBVEVSTElORSA9IDEgPDwgMTY7XG5cblxuLy9QcmVwcm9jZXNzb3Jcbi8vTk9URTogSFRNTCBpbnB1dCBwcmVwcm9jZXNzaW5nXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0pXG52YXIgUHJlcHJvY2Vzc29yID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5odG1sID0gbnVsbDtcblxuICAgIHRoaXMucG9zID0gLTE7XG4gICAgdGhpcy5sYXN0R2FwUG9zID0gLTE7XG4gICAgdGhpcy5sYXN0Q2hhclBvcyA9IC0xO1xuXG4gICAgdGhpcy5nYXBTdGFjayA9IFtdO1xuXG4gICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcblxuICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGZhbHNlO1xuICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgIHRoaXMuYnVmZmVyV2F0ZXJsaW5lID0gREVGQVVMVF9CVUZGRVJfV0FURVJMSU5FO1xufTtcblxuUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5kcm9wUGFyc2VkQ2h1bmsgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMucG9zID4gdGhpcy5idWZmZXJXYXRlcmxpbmUpIHtcbiAgICAgICAgdGhpcy5sYXN0Q2hhclBvcyAtPSB0aGlzLnBvcztcbiAgICAgICAgdGhpcy5odG1sID0gdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyk7XG4gICAgICAgIHRoaXMucG9zID0gMDtcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gLTE7XG4gICAgICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcbiAgICB9XG59O1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLl9hZGRHYXAgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5nYXBTdGFjay5wdXNoKHRoaXMubGFzdEdhcFBvcyk7XG4gICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5wb3M7XG59O1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLl9wcm9jZXNzSGlnaFJhbmdlQ29kZVBvaW50ID0gZnVuY3Rpb24gKGNwKSB7XG4gICAgLy9OT1RFOiB0cnkgdG8gcGVlayBhIHN1cnJvZ2F0ZSBwYWlyXG4gICAgaWYgKHRoaXMucG9zICE9PSB0aGlzLmxhc3RDaGFyUG9zKSB7XG4gICAgICAgIHZhciBuZXh0Q3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyArIDEpO1xuXG4gICAgICAgIGlmIChpc1N1cnJvZ2F0ZVBhaXIoY3AsIG5leHRDcCkpIHtcbiAgICAgICAgICAgIC8vTk9URTogd2UgaGF2ZSBhIHN1cnJvZ2F0ZSBwYWlyLiBQZWVrIHBhaXIgY2hhcmFjdGVyIGFuZCByZWNhbGN1bGF0ZSBjb2RlIHBvaW50LlxuICAgICAgICAgICAgdGhpcy5wb3MrKztcbiAgICAgICAgICAgIGNwID0gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcCwgbmV4dENwKTtcblxuICAgICAgICAgICAgLy9OT1RFOiBhZGQgZ2FwIHRoYXQgc2hvdWxkIGJlIGF2b2lkZWQgZHVyaW5nIHJldHJlYXRcbiAgICAgICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTk9URTogd2UndmUgaGl0IHRoZSBlbmQgb2YgY2h1bmssIHN0b3AgcHJvY2Vzc2luZyBhdCB0aGlzIHBvaW50XG4gICAgZWxzZSBpZiAoIXRoaXMubGFzdENodW5rV3JpdHRlbikge1xuICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gJC5FT0Y7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNwO1xufTtcblxuUHJlcHJvY2Vzc29yLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgaXNMYXN0Q2h1bmspIHtcbiAgICBpZiAodGhpcy5odG1sKVxuICAgICAgICB0aGlzLmh0bWwgKz0gY2h1bms7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuaHRtbCA9IGNodW5rO1xuXG4gICAgdGhpcy5sYXN0Q2hhclBvcyA9IHRoaXMuaHRtbC5sZW5ndGggLSAxO1xuICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xuICAgIHRoaXMubGFzdENodW5rV3JpdHRlbiA9IGlzTGFzdENodW5rO1xufTtcblxuUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5pbnNlcnRIdG1sQXRDdXJyZW50UG9zID0gZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgdGhpcy5odG1sID0gdGhpcy5odG1sLnN1YnN0cmluZygwLCB0aGlzLnBvcyArIDEpICtcbiAgICAgICAgICAgICAgICBjaHVuayArXG4gICAgICAgICAgICAgICAgdGhpcy5odG1sLnN1YnN0cmluZyh0aGlzLnBvcyArIDEsIHRoaXMuaHRtbC5sZW5ndGgpO1xuXG4gICAgdGhpcy5sYXN0Q2hhclBvcyA9IHRoaXMuaHRtbC5sZW5ndGggLSAxO1xuICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IGZhbHNlO1xufTtcblxuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLmFkdmFuY2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5wb3MrKztcblxuICAgIGlmICh0aGlzLnBvcyA+IHRoaXMubGFzdENoYXJQb3MpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RDaHVua1dyaXR0ZW4pXG4gICAgICAgICAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiAkLkVPRjtcbiAgICB9XG5cbiAgICB2YXIgY3AgPSB0aGlzLmh0bWwuY2hhckNvZGVBdCh0aGlzLnBvcyk7XG5cbiAgICAvL05PVEU6IGFueSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVycyB0aGF0IGltbWVkaWF0ZWx5IGZvbGxvdyBhIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gKENSKSBjaGFyYWN0ZXJcbiAgICAvL211c3QgYmUgaWdub3JlZC5cbiAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUgJiYgY3AgPT09ICQuTElORV9GRUVEKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2FkZEdhcCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hZHZhbmNlKCk7XG4gICAgfVxuXG4gICAgLy9OT1RFOiBhbGwgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlcnMgbXVzdCBiZSBjb252ZXJ0ZWQgdG8gVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlcnNcbiAgICBpZiAoY3AgPT09ICQuQ0FSUklBR0VfUkVUVVJOKSB7XG4gICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuICQuTElORV9GRUVEO1xuICAgIH1cblxuICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG5cbiAgICAvL09QVElNSVpBVElPTjogZmlyc3QgcGVyZm9ybSBjaGVjayBpZiB0aGUgY29kZSBwb2ludCBpbiB0aGUgYWxsb3dlZCByYW5nZSB0aGF0IGNvdmVycyBtb3N0IGNvbW1vblxuICAgIC8vSFRNTCBpbnB1dCAoZS5nLiBBU0NJSSBjb2RlcykgdG8gYXZvaWQgcGVyZm9ybWFuY2UtY29zdCBvcGVyYXRpb25zIGZvciBoaWdoLXJhbmdlIGNvZGUgcG9pbnRzLlxuICAgIHJldHVybiBjcCA+PSAweEQ4MDAgPyB0aGlzLl9wcm9jZXNzSGlnaFJhbmdlQ29kZVBvaW50KGNwKSA6IGNwO1xufTtcblxuUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5yZXRyZWF0ID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnBvcyA9PT0gdGhpcy5sYXN0R2FwUG9zKSB7XG4gICAgICAgIHRoaXMubGFzdEdhcFBvcyA9IHRoaXMuZ2FwU3RhY2sucG9wKCk7XG4gICAgICAgIHRoaXMucG9zLS07XG4gICAgfVxuXG4gICAgdGhpcy5wb3MtLTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxuLy9OT1RFOiB0aGlzIGZpbGUgY29udGFpbnMgYXV0by1nZW5lcmF0ZWQgYXJyYXkgbWFwcGVkIHJhZGl4IHRyZWUgdGhhdCBpcyB1c2VkIGZvciB0aGUgbmFtZWQgZW50aXR5IHJlZmVyZW5jZXMgY29uc3VtcHRpb25cbi8vKGRldGFpbHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvdHJlZS9tYXN0ZXIvc2NyaXB0cy9nZW5lcmF0ZV9uYW1lZF9lbnRpdHlfZGF0YS9SRUFETUUubWQpXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBVaW50MTZBcnJheShbNCw1Miw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEwNiwzMDMsNDEyLDgxMCwxNDMyLDE3MDEsMTc5NiwxOTg3LDIxMTQsMjM2MCwyNDIwLDI0ODQsMzE3MCwzMjUxLDQxNDAsNDM5Myw0NTc1LDQ2MTAsNTEwNiw1NTEyLDU3MjgsNjExNyw2Mjc0LDYzMTUsNjM0NSw2NDI3LDY1MTYsNzAwMiw3OTEwLDg3MzMsOTMyMyw5ODcwLDEwMTcwLDEwNjMxLDEwODkzLDExMzE4LDExMzg2LDExNDY3LDEyNzczLDEzMDkyLDE0NDc0LDE0OTIyLDE1NDQ4LDE1NTQyLDE2NDE5LDE3NjY2LDE4MTY2LDE4NjExLDE5MDA0LDE5MDk1LDE5Mjk4LDE5Mzk3LDQsMTYsNjksNzcsOTcsOTgsOTksMTAyLDEwMywxMDgsMTA5LDExMCwxMTEsMTEyLDExNCwxMTUsMTE2LDExNywxNDAsMTUwLDE1OCwxNjksMTc2LDE5NCwxOTksMjEwLDIxNiwyMjIsMjI2LDI0MiwyNTYsMjY2LDI4MywyOTQsMTA4LDEwNSwxMDMsNSwxOTgsMSw1OSwxNDgsMSwxOTgsODAsNSwzOCwxLDU5LDE1NiwxLDM4LDk5LDExNywxMTYsMTAxLDUsMTkzLDEsNTksMTY3LDEsMTkzLDExNCwxMDEsMTE4LDEwMSw1OSwxLDI1OCw0LDIsMTA1LDEyMSwxODIsMTkxLDExNCw5OSw1LDE5NCwxLDU5LDE4OSwxLDE5NCw1OSwxLDEwNDAsMTE0LDU5LDMsNTUzNDksNTY1ODAsMTE0LDk3LDExOCwxMDEsNSwxOTIsMSw1OSwyMDgsMSwxOTIsMTEyLDEwNCw5Nyw1OSwxLDkxMyw5Nyw5OSwxMTQsNTksMSwyNTYsMTAwLDU5LDEsMTA4MzUsNCwyLDEwMywxMTIsMjMyLDIzNywxMTEsMTEwLDU5LDEsMjYwLDEwMiw1OSwzLDU1MzQ5LDU2NjMyLDExMiwxMDgsMTIxLDcwLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLDU5LDEsODI4OSwxMDUsMTEwLDEwMyw1LDE5NywxLDU5LDI2NCwxLDE5Nyw0LDIsOTksMTE1LDI3MiwyNzcsMTE0LDU5LDMsNTUzNDksNTY0NzYsMTA1LDEwMywxMTAsNTksMSw4Nzg4LDEwNSwxMDgsMTAwLDEwMSw1LDE5NSwxLDU5LDI5MiwxLDE5NSwxMDksMTA4LDUsMTk2LDEsNTksMzAxLDEsMTk2LDQsOCw5Nyw5OSwxMDEsMTAyLDExMSwxMTQsMTE1LDExNywzMjEsMzUwLDM1NCwzODMsMzg4LDM5NCw0MDAsNDA1LDQsMiw5OSwxMTQsMzI3LDMzNiwxMDcsMTE1LDEwOCw5NywxMTUsMTA0LDU5LDEsODcyNiw0LDIsMTE4LDExOSwzNDIsMzQ1LDU5LDEsMTA5ODMsMTAxLDEwMCw1OSwxLDg5NjYsMTIxLDU5LDEsMTA0MSw0LDMsOTksMTE0LDExNiwzNjIsMzY5LDM3OSw5NywxMTcsMTE1LDEwMSw1OSwxLDg3NTcsMTEwLDExMSwxMTcsMTA4LDEwOCwxMDUsMTE1LDU5LDEsODQ5Miw5Nyw1OSwxLDkxNCwxMTQsNTksMyw1NTM0OSw1NjU4MSwxMTIsMTAyLDU5LDMsNTUzNDksNTY2MzMsMTAxLDExOCwxMDEsNTksMSw3MjgsOTksMTE0LDU5LDEsODQ5MiwxMDksMTEyLDEwMSwxMTMsNTksMSw4NzgyLDQsMTQsNzIsNzksOTcsOTksMTAwLDEwMSwxMDIsMTA0LDEwNSwxMDgsMTExLDExNCwxMTUsMTE3LDQ0Miw0NDcsNDU2LDUwNCw1NDIsNTQ3LDU2OSw1NzMsNTc3LDYxNiw2NzgsNzg0LDc5MCw3OTYsOTksMTIxLDU5LDEsMTA2Myw4MCw4OSw1LDE2OSwxLDU5LDQ1NCwxLDE2OSw0LDMsOTksMTEyLDEyMSw0NjQsNDcwLDQ5NywxMTcsMTE2LDEwMSw1OSwxLDI2Miw0LDIsNTksMTA1LDQ3Niw0NzgsMSw4OTE0LDExNiw5NywxMDgsNjgsMTA1LDEwMiwxMDIsMTAxLDExNCwxMDEsMTEwLDExNiwxMDUsOTcsMTA4LDY4LDU5LDEsODUxNywxMDgsMTAxLDEyMSwxMTUsNTksMSw4NDkzLDQsNCw5NywxMDEsMTA1LDExMSw1MTQsNTIwLDUzMCw1MzUsMTE0LDExMSwxMTAsNTksMSwyNjgsMTAwLDEwNSwxMDgsNSwxOTksMSw1OSw1MjgsMSwxOTksMTE0LDk5LDU5LDEsMjY0LDExMCwxMDUsMTEwLDExNiw1OSwxLDg3NTIsMTExLDExNiw1OSwxLDI2Niw0LDIsMTAwLDExMCw1NTMsNTYwLDEwNSwxMDgsMTA4LDk3LDU5LDEsMTg0LDExNiwxMDEsMTE0LDY4LDExMSwxMTYsNTksMSwxODMsMTE0LDU5LDEsODQ5MywxMDUsNTksMSw5MzUsMTE0LDk5LDEwOCwxMDEsNCw0LDY4LDc3LDgwLDg0LDU5MSw1OTYsNjAzLDYwOSwxMTEsMTE2LDU5LDEsODg1NywxMDUsMTEwLDExNywxMTUsNTksMSw4ODU0LDEwOCwxMTcsMTE1LDU5LDEsODg1MywxMDUsMTA5LDEwMSwxMTUsNTksMSw4ODU1LDExMSw0LDIsOTksMTE1LDYyMyw2NDYsMTA3LDExOSwxMDUsMTE1LDEwMSw2NywxMTEsMTEwLDExNiwxMTEsMTE3LDExNCw3MywxMTAsMTE2LDEwMSwxMDMsMTE0LDk3LDEwOCw1OSwxLDg3NTQsMTAxLDY3LDExNywxMTQsMTA4LDEyMSw0LDIsNjgsODEsNjU4LDY3MSwxMTEsMTE3LDk4LDEwOCwxMDEsODEsMTE3LDExMSwxMTYsMTAxLDU5LDEsODIyMSwxMTcsMTExLDExNiwxMDEsNTksMSw4MjE3LDQsNCwxMDgsMTEwLDExMiwxMTcsNjg4LDcwMSw3MzYsNzUzLDExMSwxMTAsNCwyLDU5LDEwMSw2OTYsNjk4LDEsODc1OSw1OSwxLDEwODY4LDQsMywxMDMsMTA1LDExNiw3MDksNzE3LDcyMiwxMTQsMTE3LDEwMSwxMTAsMTE2LDU5LDEsODgwMSwxMTAsMTE2LDU5LDEsODc1MSwxMTEsMTE3LDExNCw3MywxMTAsMTE2LDEwMSwxMDMsMTE0LDk3LDEwOCw1OSwxLDg3NTAsNCwyLDEwMiwxMTQsNzQyLDc0NSw1OSwxLDg0NTAsMTExLDEwMCwxMTcsOTksMTE2LDU5LDEsODcyMCwxMTAsMTE2LDEwMSwxMTQsNjcsMTA4LDExMSw5OSwxMDcsMTE5LDEwNSwxMTUsMTAxLDY3LDExMSwxMTAsMTE2LDExMSwxMTcsMTE0LDczLDExMCwxMTYsMTAxLDEwMywxMTQsOTcsMTA4LDU5LDEsODc1NSwxMTEsMTE1LDExNSw1OSwxLDEwNzk5LDk5LDExNCw1OSwzLDU1MzQ5LDU2NDc4LDExMiw0LDIsNTksNjcsODAzLDgwNSwxLDg5MTUsOTcsMTEyLDU5LDEsODc4MSw0LDExLDY4LDc0LDgzLDkwLDk3LDk5LDEwMSwxMDIsMTA1LDExMSwxMTUsODM0LDg1MCw4NTUsODYwLDg2NSw4ODgsOTAzLDkxNiw5MjEsMTAxMSwxNDE1LDQsMiw1OSwxMTEsODQwLDg0MiwxLDg1MTcsMTE2LDExNCw5NywxMDQsMTAwLDU5LDEsMTA1MTMsOTksMTIxLDU5LDEsMTAyNiw5OSwxMjEsNTksMSwxMDI5LDk5LDEyMSw1OSwxLDEwMzksNCwzLDEwMywxMTQsMTE1LDg3Myw4NzksODgzLDEwMywxMDEsMTE0LDU5LDEsODIyNSwxMTQsNTksMSw4NjA5LDEwNCwxMTgsNTksMSwxMDk4MCw0LDIsOTcsMTIxLDg5NCw5MDAsMTE0LDExMSwxMTAsNTksMSwyNzAsNTksMSwxMDQ0LDEwOCw0LDIsNTksMTE2LDkxMCw5MTIsMSw4NzExLDk3LDU5LDEsOTE2LDExNCw1OSwzLDU1MzQ5LDU2NTgzLDQsMiw5NywxMDIsOTI3LDk5OCw0LDIsOTksMTA5LDkzMyw5OTIsMTE0LDEwNSwxMTYsMTA1LDk5LDk3LDEwOCw0LDQsNjUsNjgsNzEsODQsOTUwLDk1Nyw5NzgsOTg1LDk5LDExNywxMTYsMTAxLDU5LDEsMTgwLDExMSw0LDIsMTE2LDExNyw5NjQsOTY3LDU5LDEsNzI5LDk4LDEwOCwxMDEsNjUsOTksMTE3LDExNiwxMDEsNTksMSw3MzMsMTE0LDk3LDExOCwxMDEsNTksMSw5NiwxMDUsMTA4LDEwMCwxMDEsNTksMSw3MzIsMTExLDExMCwxMDAsNTksMSw4OTAwLDEwMiwxMDEsMTE0LDEwMSwxMTAsMTE2LDEwNSw5NywxMDgsNjgsNTksMSw4NTE4LDQsNCwxMTIsMTE2LDExNywxMTksMTAyMSwxMDI2LDEwNDgsMTI0OSwxMDIsNTksMyw1NTM0OSw1NjYzNSw0LDMsNTksNjgsNjksMTAzNCwxMDM2LDEwNDEsMSwxNjgsMTExLDExNiw1OSwxLDg0MTIsMTEzLDExNyw5NywxMDgsNTksMSw4Nzg0LDk4LDEwOCwxMDEsNCw2LDY3LDY4LDc2LDgyLDg1LDg2LDEwNjUsMTA4MiwxMTAxLDExODksMTIxMSwxMjM2LDExMSwxMTAsMTE2LDExMSwxMTcsMTE0LDczLDExMCwxMTYsMTAxLDEwMywxMTQsOTcsMTA4LDU5LDEsODc1MSwxMTEsNCwyLDExNiwxMTksMTA4OSwxMDkyLDU5LDEsMTY4LDExMCw2NSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjU5LDQsMiwxMDEsMTExLDExMDcsMTE0MSwxMDIsMTE2LDQsMyw2NSw4Miw4NCwxMTE3LDExMjQsMTEzNiwxMTQsMTE0LDExMSwxMTksNTksMSw4NjU2LDEwNSwxMDMsMTA0LDExNiw2NSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjYwLDEwMSwxMDEsNTksMSwxMDk4MCwxMTAsMTAzLDQsMiw3Niw4MiwxMTQ5LDExNzcsMTAxLDEwMiwxMTYsNCwyLDY1LDgyLDExNTgsMTE2NSwxMTQsMTE0LDExMSwxMTksNTksMSwxMDIzMiwxMDUsMTAzLDEwNCwxMTYsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsMTAyMzQsMTA1LDEwMywxMDQsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDEwMjMzLDEwNSwxMDMsMTA0LDExNiw0LDIsNjUsODQsMTE5OSwxMjA2LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NTgsMTAxLDEwMSw1OSwxLDg4NzIsMTEyLDQsMiw2NSw2OCwxMjE4LDEyMjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsODY1NywxMTEsMTE5LDExMCw2NSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjYxLDEwMSwxMTQsMTE2LDEwNSw5OSw5NywxMDgsNjYsOTcsMTE0LDU5LDEsODc0MSwxMTAsNCw2LDY1LDY2LDc2LDgyLDg0LDk3LDEyNjQsMTI5MiwxMjk5LDEzNTIsMTM5MSwxNDA4LDExNCwxMTQsMTExLDExOSw0LDMsNTksNjYsODUsMTI3NiwxMjc4LDEyODMsMSw4NTk1LDk3LDExNCw1OSwxLDEwNTE1LDExMiw2NSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjkzLDExNCwxMDEsMTE4LDEwMSw1OSwxLDc4NSwxMDEsMTAyLDExNiw0LDMsODIsODQsODYsMTMxMCwxMzIzLDEzMzQsMTA1LDEwMywxMDQsMTE2LDg2LDEwMSw5OSwxMTYsMTExLDExNCw1OSwxLDEwNTc2LDEwMSwxMDEsODYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1OTAsMTAxLDk5LDExNiwxMTEsMTE0LDQsMiw1OSw2NiwxMzQ1LDEzNDcsMSw4NjM3LDk3LDExNCw1OSwxLDEwNTgyLDEwNSwxMDMsMTA0LDExNiw0LDIsODQsODYsMTM2MiwxMzczLDEwMSwxMDEsODYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1OTEsMTAxLDk5LDExNiwxMTEsMTE0LDQsMiw1OSw2NiwxMzg0LDEzODYsMSw4NjQxLDk3LDExNCw1OSwxLDEwNTgzLDEwMSwxMDEsNCwyLDU5LDY1LDEzOTksMTQwMSwxLDg4NjgsMTE0LDExNCwxMTEsMTE5LDU5LDEsODYxNSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjU5LDQsMiw5OSwxMTYsMTQyMSwxNDI2LDExNCw1OSwzLDU1MzQ5LDU2NDc5LDExNCwxMTEsMTA3LDU5LDEsMjcyLDQsMTYsNzgsODQsOTcsOTksMTAwLDEwMiwxMDMsMTA4LDEwOSwxMTEsMTEyLDExMywxMTUsMTE2LDExNywxMjAsMTQ2NiwxNDcwLDE0NzgsMTQ4OSwxNTE1LDE1MjAsMTUyNSwxNTM2LDE1NDQsMTU5MywxNjA5LDE2MTcsMTY1MCwxNjY0LDE2NjgsMTY3Nyw3MSw1OSwxLDMzMCw3Miw1LDIwOCwxLDU5LDE0NzYsMSwyMDgsOTksMTE3LDExNiwxMDEsNSwyMDEsMSw1OSwxNDg3LDEsMjAxLDQsMyw5NywxMDUsMTIxLDE0OTcsMTUwMywxNTEyLDExNCwxMTEsMTEwLDU5LDEsMjgyLDExNCw5OSw1LDIwMiwxLDU5LDE1MTAsMSwyMDIsNTksMSwxMDY5LDExMSwxMTYsNTksMSwyNzgsMTE0LDU5LDMsNTUzNDksNTY1ODQsMTE0LDk3LDExOCwxMDEsNSwyMDAsMSw1OSwxNTM0LDEsMjAwLDEwMSwxMDksMTAxLDExMCwxMTYsNTksMSw4NzEyLDQsMiw5NywxMTIsMTU1MCwxNTU1LDk5LDExNCw1OSwxLDI3NCwxMTYsMTIxLDQsMiw4Myw4NiwxNTYzLDE1NzYsMTA5LDk3LDEwOCwxMDgsODMsMTEzLDExNyw5NywxMTQsMTAxLDU5LDEsOTcyMywxMDEsMTE0LDEyMSw4MywxMDksOTcsMTA4LDEwOCw4MywxMTMsMTE3LDk3LDExNCwxMDEsNTksMSw5NjQzLDQsMiwxMDMsMTEyLDE1OTksMTYwNCwxMTEsMTEwLDU5LDEsMjgwLDEwMiw1OSwzLDU1MzQ5LDU2NjM2LDExNSwxMDUsMTA4LDExMSwxMTAsNTksMSw5MTcsMTE3LDQsMiw5NywxMDUsMTYyNCwxNjQwLDEwOCw0LDIsNTksODQsMTYzMSwxNjMzLDEsMTA4NjksMTA1LDEwOCwxMDAsMTAxLDU5LDEsODc3MCwxMDgsMTA1LDk4LDExNCwxMDUsMTE3LDEwOSw1OSwxLDg2NTIsNCwyLDk5LDEwNSwxNjU2LDE2NjAsMTE0LDU5LDEsODQ5NiwxMDksNTksMSwxMDg2Nyw5Nyw1OSwxLDkxOSwxMDksMTA4LDUsMjAzLDEsNTksMTY3NSwxLDIwMyw0LDIsMTA1LDExMiwxNjgzLDE2ODksMTE1LDExNiwxMTUsNTksMSw4NzA3LDExMSwxMTAsMTAxLDExMCwxMTYsMTA1LDk3LDEwOCw2OSw1OSwxLDg1MTksNCw1LDk5LDEwMiwxMDUsMTExLDExNSwxNzEzLDE3MTcsMTcyMiwxNzYyLDE3OTEsMTIxLDU5LDEsMTA2MCwxMTQsNTksMyw1NTM0OSw1NjU4NSwxMDgsMTA4LDEwMSwxMDAsNCwyLDgzLDg2LDE3MzIsMTc0NSwxMDksOTcsMTA4LDEwOCw4MywxMTMsMTE3LDk3LDExNCwxMDEsNTksMSw5NzI0LDEwMSwxMTQsMTIxLDgzLDEwOSw5NywxMDgsMTA4LDgzLDExMywxMTcsOTcsMTE0LDEwMSw1OSwxLDk2NDIsNCwzLDExMiwxMTQsMTE3LDE3NzAsMTc3NSwxNzgxLDEwMiw1OSwzLDU1MzQ5LDU2NjM3LDY1LDEwOCwxMDgsNTksMSw4NzA0LDExNCwxMDUsMTAxLDExNCwxMTYsMTE0LDEwMiw1OSwxLDg0OTcsOTksMTE0LDU5LDEsODQ5Nyw0LDEyLDc0LDg0LDk3LDk4LDk5LDEwMCwxMDIsMTAzLDExMSwxMTQsMTE1LDExNiwxODIyLDE4MjcsMTgzNCwxODQ4LDE4NTUsMTg3NywxODgyLDE4ODcsMTg5MCwxODk2LDE5NzgsMTk4NCw5OSwxMjEsNTksMSwxMDI3LDUsNjIsMSw1OSwxODMyLDEsNjIsMTA5LDEwOSw5Nyw0LDIsNTksMTAwLDE4NDMsMTg0NSwxLDkxNSw1OSwxLDk4OCwxMTQsMTAxLDExOCwxMDEsNTksMSwyODYsNCwzLDEwMSwxMDUsMTIxLDE4NjMsMTg2OSwxODc0LDEwMCwxMDUsMTA4LDU5LDEsMjkwLDExNCw5OSw1OSwxLDI4NCw1OSwxLDEwNDMsMTExLDExNiw1OSwxLDI4OCwxMTQsNTksMyw1NTM0OSw1NjU4Niw1OSwxLDg5MjEsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjM4LDEwMSw5NywxMTYsMTAxLDExNCw0LDYsNjksNzAsNzEsNzYsODMsODQsMTkxNSwxOTMzLDE5NDQsMTk1MywxOTU5LDE5NzEsMTEzLDExNyw5NywxMDgsNCwyLDU5LDc2LDE5MjUsMTkyNywxLDg4MDUsMTAxLDExNSwxMTUsNTksMSw4OTIzLDExNywxMDgsMTA4LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODgwNywxMTQsMTAxLDk3LDExNiwxMDEsMTE0LDU5LDEsMTA5MTQsMTAxLDExNSwxMTUsNTksMSw4ODIzLDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsMTA4NzgsMTA1LDEwOCwxMDAsMTAxLDU5LDEsODgxOSw5OSwxMTQsNTksMyw1NTM0OSw1NjQ4Miw1OSwxLDg4MTEsNCw4LDY1LDk3LDk5LDEwMiwxMDUsMTExLDExNSwxMTcsMjAwNSwyMDEyLDIwMjYsMjAzMiwyMDM2LDIwNDksMjA3MywyMDg5LDgyLDY4LDk5LDEyMSw1OSwxLDEwNjYsNCwyLDk5LDExNiwyMDE4LDIwMjMsMTAxLDEwNyw1OSwxLDcxMSw1OSwxLDk0LDEwNSwxMTQsOTksNTksMSwyOTIsMTE0LDU5LDEsODQ2MCwxMDgsOTgsMTAxLDExNCwxMTYsODMsMTEyLDk3LDk5LDEwMSw1OSwxLDg0NTksNCwyLDExMiwxMTQsMjA1NSwyMDU5LDEwMiw1OSwxLDg0NjEsMTA1LDEyMiwxMTEsMTEwLDExNiw5NywxMDgsNzYsMTA1LDExMCwxMDEsNTksMSw5NDcyLDQsMiw5OSwxMTYsMjA3OSwyMDgzLDExNCw1OSwxLDg0NTksMTE0LDExMSwxMDcsNTksMSwyOTQsMTA5LDExMiw0LDIsNjgsNjksMjA5NywyMTA3LDExMSwxMTksMTEwLDcyLDExNywxMDksMTEyLDU5LDEsODc4MiwxMTMsMTE3LDk3LDEwOCw1OSwxLDg3ODMsNCwxNCw2OSw3NCw3OSw5Nyw5OSwxMDAsMTAyLDEwMywxMDksMTEwLDExMSwxMTUsMTE2LDExNywyMTQ0LDIxNDksMjE1NSwyMTYwLDIxNzEsMjE4OSwyMTk0LDIxOTgsMjIwOSwyMjQ1LDIzMDcsMjMyOSwyMzM0LDIzNDEsOTksMTIxLDU5LDEsMTA0NSwxMDgsMTA1LDEwMyw1OSwxLDMwNiw5OSwxMjEsNTksMSwxMDI1LDk5LDExNywxMTYsMTAxLDUsMjA1LDEsNTksMjE2OSwxLDIwNSw0LDIsMTA1LDEyMSwyMTc3LDIxODYsMTE0LDk5LDUsMjA2LDEsNTksMjE4NCwxLDIwNiw1OSwxLDEwNDgsMTExLDExNiw1OSwxLDMwNCwxMTQsNTksMSw4NDY1LDExNCw5NywxMTgsMTAxLDUsMjA0LDEsNTksMjIwNywxLDIwNCw0LDMsNTksOTcsMTEyLDIyMTcsMjIxOSwyMjM4LDEsODQ2NSw0LDIsOTksMTAzLDIyMjUsMjIyOSwxMTQsNTksMSwyOTgsMTA1LDExMCw5NywxMTQsMTIxLDczLDU5LDEsODUyMCwxMDgsMTA1LDEwMSwxMTUsNTksMSw4NjU4LDQsMiwxMTYsMTE4LDIyNTEsMjI4MSw0LDIsNTksMTAxLDIyNTcsMjI1OSwxLDg3NDgsNCwyLDEwMywxMTQsMjI2NSwyMjcxLDExNCw5NywxMDgsNTksMSw4NzQ3LDExNSwxMDEsOTksMTE2LDEwNSwxMTEsMTEwLDU5LDEsODg5OCwxMDUsMTE1LDEwNSw5OCwxMDgsMTAxLDQsMiw2Nyw4NCwyMjkzLDIzMDAsMTExLDEwOSwxMDksOTcsNTksMSw4MjkxLDEwNSwxMDksMTAxLDExNSw1OSwxLDgyOTAsNCwzLDEwMywxMTIsMTE2LDIzMTUsMjMyMCwyMzI1LDExMSwxMTAsNTksMSwzMDIsMTAyLDU5LDMsNTUzNDksNTY2NDAsOTcsNTksMSw5MjEsOTksMTE0LDU5LDEsODQ2NCwxMDUsMTA4LDEwMCwxMDEsNTksMSwyOTYsNCwyLDEwNywxMDksMjM0NywyMzUyLDk5LDEyMSw1OSwxLDEwMzAsMTA4LDUsMjA3LDEsNTksMjM1OCwxLDIwNyw0LDUsOTksMTAyLDExMSwxMTUsMTE3LDIzNzIsMjM4NiwyMzkxLDIzOTcsMjQxNCw0LDIsMTA1LDEyMSwyMzc4LDIzODMsMTE0LDk5LDU5LDEsMzA4LDU5LDEsMTA0OSwxMTQsNTksMyw1NTM0OSw1NjU4OSwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NDEsNCwyLDk5LDEwMSwyNDAzLDI0MDgsMTE0LDU5LDMsNTUzNDksNTY0ODUsMTE0LDk5LDEyMSw1OSwxLDEwMzIsMTA3LDk5LDEyMSw1OSwxLDEwMjgsNCw3LDcyLDc0LDk3LDk5LDEwMiwxMTEsMTE1LDI0MzYsMjQ0MSwyNDQ2LDI0NTIsMjQ2NywyNDcyLDI0NzgsOTksMTIxLDU5LDEsMTA2MSw5OSwxMjEsNTksMSwxMDM2LDExMiwxMTIsOTcsNTksMSw5MjIsNCwyLDEwMSwxMjEsMjQ1OCwyNDY0LDEwMCwxMDUsMTA4LDU5LDEsMzEwLDU5LDEsMTA1MCwxMTQsNTksMyw1NTM0OSw1NjU5MCwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NDIsOTksMTE0LDU5LDMsNTUzNDksNTY0ODYsNCwxMSw3NCw4NCw5Nyw5OSwxMDEsMTAyLDEwOCwxMDksMTExLDExNSwxMTYsMjUwOCwyNTEzLDI1MjAsMjU2MiwyNTg1LDI5ODEsMjk4NiwzMDA0LDMwMTEsMzE0NiwzMTY3LDk5LDEyMSw1OSwxLDEwMzMsNSw2MCwxLDU5LDI1MTgsMSw2MCw0LDUsOTksMTA5LDExMCwxMTIsMTE0LDI1MzIsMjUzOCwyNTQ0LDI1NDgsMjU1OCwxMTcsMTE2LDEwMSw1OSwxLDMxMyw5OCwxMDAsOTcsNTksMSw5MjMsMTAzLDU5LDEsMTAyMTgsMTA4LDk3LDk5LDEwMSwxMTYsMTE0LDEwMiw1OSwxLDg0NjYsMTE0LDU5LDEsODYwNiw0LDMsOTcsMTAxLDEyMSwyNTcwLDI1NzYsMjU4MiwxMTQsMTExLDExMCw1OSwxLDMxNywxMDAsMTA1LDEwOCw1OSwxLDMxNSw1OSwxLDEwNTEsNCwyLDEwMiwxMTUsMjU5MSwyOTA3LDExNiw0LDEwLDY1LDY3LDY4LDcwLDgyLDg0LDg1LDg2LDk3LDExNCwyNjE0LDI2NjMsMjY3MiwyNzI4LDI3MzUsMjc2MCwyODIwLDI4NzAsMjg4OCwyODk1LDQsMiwxMTAsMTE0LDI2MjAsMjYzMywxMDMsMTA4LDEwMSw2NiwxMTQsOTcsOTksMTA3LDEwMSwxMTYsNTksMSwxMDIxNiwxMTQsMTExLDExOSw0LDMsNTksNjYsODIsMjY0NCwyNjQ2LDI2NTEsMSw4NTkyLDk3LDExNCw1OSwxLDg2NzYsMTA1LDEwMywxMDQsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NDYsMTAxLDEwNSwxMDgsMTA1LDExMCwxMDMsNTksMSw4OTY4LDExMSw0LDIsMTE3LDExOSwyNjc5LDI2OTIsOTgsMTA4LDEwMSw2NiwxMTQsOTcsOTksMTA3LDEwMSwxMTYsNTksMSwxMDIxNCwxMTAsNCwyLDg0LDg2LDI2OTksMjcxMCwxMDEsMTAxLDg2LDEwMSw5OSwxMTYsMTExLDExNCw1OSwxLDEwNTkzLDEwMSw5OSwxMTYsMTExLDExNCw0LDIsNTksNjYsMjcyMSwyNzIzLDEsODY0Myw5NywxMTQsNTksMSwxMDU4NSwxMDgsMTExLDExMSwxMTQsNTksMSw4OTcwLDEwNSwxMDMsMTA0LDExNiw0LDIsNjUsODYsMjc0NSwyNzUyLDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1NzQsNCwyLDEwMSwxMTQsMjc2NiwyNzkyLDEwMSw0LDMsNTksNjUsODYsMjc3NSwyNzc3LDI3ODQsMSw4ODY3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MTIsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1ODYsMTA1LDk3LDExMCwxMDMsMTA4LDEwMSw0LDMsNTksNjYsNjksMjgwNiwyODA4LDI4MTMsMSw4ODgyLDk3LDExNCw1OSwxLDEwNzAzLDExMywxMTcsOTcsMTA4LDU5LDEsODg4NCwxMTIsNCwzLDY4LDg0LDg2LDI4MjksMjg0MSwyODUyLDExMSwxMTksMTEwLDg2LDEwMSw5OSwxMTYsMTExLDExNCw1OSwxLDEwNTc3LDEwMSwxMDEsODYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1OTIsMTAxLDk5LDExNiwxMTEsMTE0LDQsMiw1OSw2NiwyODYzLDI4NjUsMSw4NjM5LDk3LDExNCw1OSwxLDEwNTg0LDEwMSw5OSwxMTYsMTExLDExNCw0LDIsNTksNjYsMjg4MSwyODgzLDEsODYzNiw5NywxMTQsNTksMSwxMDU3OCwxMTQsMTE0LDExMSwxMTksNTksMSw4NjU2LDEwNSwxMDMsMTA0LDExNiw5NywxMTQsMTE0LDExMSwxMTksNTksMSw4NjYwLDExNSw0LDYsNjksNzAsNzEsNzYsODMsODQsMjkyMiwyOTM2LDI5NDcsMjk1NiwyOTYyLDI5NzQsMTEzLDExNyw5NywxMDgsNzEsMTE0LDEwMSw5NywxMTYsMTAxLDExNCw1OSwxLDg5MjIsMTE3LDEwOCwxMDgsNjksMTEzLDExNyw5NywxMDgsNTksMSw4ODA2LDExNCwxMDEsOTcsMTE2LDEwMSwxMTQsNTksMSw4ODIyLDEwMSwxMTUsMTE1LDU5LDEsMTA5MTMsMTA4LDk3LDExMCwxMTYsNjksMTEzLDExNyw5NywxMDgsNTksMSwxMDg3NywxMDUsMTA4LDEwMCwxMDEsNTksMSw4ODE4LDExNCw1OSwzLDU1MzQ5LDU2NTkxLDQsMiw1OSwxMDEsMjk5MiwyOTk0LDEsODkyMCwxMDIsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NjYsMTA1LDEwMCwxMTEsMTE2LDU5LDEsMzE5LDQsMywxMTAsMTEyLDExOSwzMDE5LDMxMTAsMzExNSwxMDMsNCw0LDc2LDgyLDEwOCwxMTQsMzAzMCwzMDU4LDMwNzAsMzA5OCwxMDEsMTAyLDExNiw0LDIsNjUsODIsMzAzOSwzMDQ2LDExNCwxMTQsMTExLDExOSw1OSwxLDEwMjI5LDEwNSwxMDMsMTA0LDExNiw2NSwxMTQsMTE0LDExMSwxMTksNTksMSwxMDIzMSwxMDUsMTAzLDEwNCwxMTYsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsMTAyMzAsMTAxLDEwMiwxMTYsNCwyLDk3LDExNCwzMDc5LDMwODYsMTE0LDExNCwxMTEsMTE5LDU5LDEsMTAyMzIsMTA1LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDEwMjM0LDEwNSwxMDMsMTA0LDExNiw5NywxMTQsMTE0LDExMSwxMTksNTksMSwxMDIzMywxMDIsNTksMyw1NTM0OSw1NjY0MywxMDEsMTE0LDQsMiw3Niw4MiwzMTIzLDMxMzQsMTAxLDEwMiwxMTYsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsODYwMSwxMDUsMTAzLDEwNCwxMTYsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsODYwMCw0LDMsOTksMTA0LDExNiwzMTU0LDMxNTgsMzE2MSwxMTQsNTksMSw4NDY2LDU5LDEsODYyNCwxMTQsMTExLDEwNyw1OSwxLDMyMSw1OSwxLDg4MTAsNCw4LDk3LDk5LDEwMSwxMDIsMTA1LDExMSwxMTUsMTE3LDMxODgsMzE5MiwzMTk2LDMyMjIsMzIyNywzMjM3LDMyNDMsMzI0OCwxMTIsNTksMSwxMDUwMSwxMjEsNTksMSwxMDUyLDQsMiwxMDAsMTA4LDMyMDIsMzIxMywxMDUsMTE3LDEwOSw4MywxMTIsOTcsOTksMTAxLDU5LDEsODI4NywxMDgsMTA1LDExMCwxMTYsMTE0LDEwMiw1OSwxLDg0OTksMTE0LDU5LDMsNTUzNDksNTY1OTIsMTEwLDExNywxMTUsODAsMTA4LDExNywxMTUsNTksMSw4NzIzLDExMiwxMDIsNTksMyw1NTM0OSw1NjY0NCw5OSwxMTQsNTksMSw4NDk5LDU5LDEsOTI0LDQsOSw3NCw5Nyw5OSwxMDEsMTAyLDExMSwxMTUsMTE2LDExNywzMjcxLDMyNzYsMzI4MywzMzA2LDM0MjIsMzQyNyw0MTIwLDQxMjYsNDEzNyw5OSwxMjEsNTksMSwxMDM0LDk5LDExNywxMTYsMTAxLDU5LDEsMzIzLDQsMyw5NywxMDEsMTIxLDMyOTEsMzI5NywzMzAzLDExNCwxMTEsMTEwLDU5LDEsMzI3LDEwMCwxMDUsMTA4LDU5LDEsMzI1LDU5LDEsMTA1Myw0LDMsMTAzLDExNSwxMTksMzMxNCwzMzgwLDM0MTUsOTcsMTE2LDEwNSwxMTgsMTAxLDQsMyw3Nyw4NCw4NiwzMzI3LDMzNDAsMzM2NSwxMDEsMTAwLDEwNSwxMTcsMTA5LDgzLDExMiw5Nyw5OSwxMDEsNTksMSw4MjAzLDEwNCwxMDUsNCwyLDk5LDExMCwzMzQ4LDMzNTcsMTA3LDgzLDExMiw5Nyw5OSwxMDEsNTksMSw4MjAzLDgzLDExMiw5Nyw5OSwxMDEsNTksMSw4MjAzLDEwMSwxMTQsMTIxLDg0LDEwNCwxMDUsMTEwLDgzLDExMiw5Nyw5OSwxMDEsNTksMSw4MjAzLDExNiwxMDEsMTAwLDQsMiw3MSw3NiwzMzg5LDM0MDUsMTE0LDEwMSw5NywxMTYsMTAxLDExNCw3MSwxMTQsMTAxLDk3LDExNiwxMDEsMTE0LDU5LDEsODgxMSwxMDEsMTE1LDExNSw3NiwxMDEsMTE1LDExNSw1OSwxLDg4MTAsNzYsMTA1LDExMCwxMDEsNTksMSwxMCwxMTQsNTksMyw1NTM0OSw1NjU5Myw0LDQsNjYsMTEwLDExMiwxMTYsMzQzNywzNDQ0LDM0NjAsMzQ2NCwxMTQsMTAxLDk3LDEwNyw1OSwxLDgyODgsNjYsMTE0LDEwMSw5NywxMDcsMTA1LDExMCwxMDMsODMsMTEyLDk3LDk5LDEwMSw1OSwxLDE2MCwxMDIsNTksMSw4NDY5LDQsMTMsNTksNjcsNjgsNjksNzEsNzIsNzYsNzgsODAsODIsODMsODQsODYsMzQ5MiwzNDk0LDM1MTcsMzUzNiwzNTc4LDM2NTcsMzY4NSwzNzg0LDM4MjMsMzg2MCwzOTE1LDQwNjYsNDEwNywxLDEwOTg4LDQsMiwxMTEsMTE3LDM1MDAsMzUxMCwxMTAsMTAzLDExNCwxMTcsMTAxLDExMCwxMTYsNTksMSw4ODAyLDExMiw2Nyw5NywxMTIsNTksMSw4ODEzLDExMSwxMTcsOTgsMTA4LDEwMSw4NiwxMDEsMTE0LDExNiwxMDUsOTksOTcsMTA4LDY2LDk3LDExNCw1OSwxLDg3NDIsNCwzLDEwOCwxMTMsMTIwLDM1NDQsMzU1MiwzNTcxLDEwMSwxMDksMTAxLDExMCwxMTYsNTksMSw4NzEzLDExNyw5NywxMDgsNCwyLDU5LDg0LDM1NjEsMzU2MywxLDg4MDAsMTA1LDEwOCwxMDAsMTAxLDU5LDMsODc3MCw4MjQsMTA1LDExNSwxMTYsMTE1LDU5LDEsODcwOCwxMTQsMTAxLDk3LDExNiwxMDEsMTE0LDQsNyw1OSw2OSw3MCw3MSw3Niw4Myw4NCwzNjAwLDM2MDIsMzYwOSwzNjIxLDM2MzEsMzYzNywzNjUwLDEsODgxNSwxMTMsMTE3LDk3LDEwOCw1OSwxLDg4MTcsMTE3LDEwOCwxMDgsNjksMTEzLDExNyw5NywxMDgsNTksMyw4ODA3LDgyNCwxMTQsMTAxLDk3LDExNiwxMDEsMTE0LDU5LDMsODgxMSw4MjQsMTAxLDExNSwxMTUsNTksMSw4ODI1LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDMsMTA4NzgsODI0LDEwNSwxMDgsMTAwLDEwMSw1OSwxLDg4MjEsMTE3LDEwOSwxMTIsNCwyLDY4LDY5LDM2NjYsMzY3NywxMTEsMTE5LDExMCw3MiwxMTcsMTA5LDExMiw1OSwzLDg3ODIsODI0LDExMywxMTcsOTcsMTA4LDU5LDMsODc4Myw4MjQsMTAxLDQsMiwxMDIsMTE1LDM2OTIsMzcyNCwxMTYsODQsMTE0LDEwNSw5NywxMTAsMTAzLDEwOCwxMDEsNCwzLDU5LDY2LDY5LDM3MDksMzcxMSwzNzE3LDEsODkzOCw5NywxMTQsNTksMywxMDcwMyw4MjQsMTEzLDExNyw5NywxMDgsNTksMSw4OTQwLDExNSw0LDYsNTksNjksNzEsNzYsODMsODQsMzczOSwzNzQxLDM3NDgsMzc1NywzNzY0LDM3NzcsMSw4ODE0LDExMywxMTcsOTcsMTA4LDU5LDEsODgxNiwxMTQsMTAxLDk3LDExNiwxMDEsMTE0LDU5LDEsODgyNCwxMDEsMTE1LDExNSw1OSwzLDg4MTAsODI0LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDMsMTA4NzcsODI0LDEwNSwxMDgsMTAwLDEwMSw1OSwxLDg4MjAsMTAxLDExNSwxMTYsMTAxLDEwMCw0LDIsNzEsNzYsMzc5NSwzODEyLDExNCwxMDEsOTcsMTE2LDEwMSwxMTQsNzEsMTE0LDEwMSw5NywxMTYsMTAxLDExNCw1OSwzLDEwOTE0LDgyNCwxMDEsMTE1LDExNSw3NiwxMDEsMTE1LDExNSw1OSwzLDEwOTEzLDgyNCwxMTQsMTAxLDk5LDEwMSwxMDAsMTAxLDExNSw0LDMsNTksNjksODMsMzgzOCwzODQwLDM4NDgsMSw4ODMyLDExMywxMTcsOTcsMTA4LDU5LDMsMTA5MjcsODI0LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODkyOCw0LDIsMTAxLDEwNSwzODY2LDM4ODEsMTE4LDEwMSwxMTQsMTE1LDEwMSw2OSwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiw1OSwxLDg3MTYsMTAzLDEwNCwxMTYsODQsMTE0LDEwNSw5NywxMTAsMTAzLDEwOCwxMDEsNCwzLDU5LDY2LDY5LDM5MDAsMzkwMiwzOTA4LDEsODkzOSw5NywxMTQsNTksMywxMDcwNCw4MjQsMTEzLDExNyw5NywxMDgsNTksMSw4OTQxLDQsMiwxMTMsMTE3LDM5MjEsMzk3MywxMTcsOTcsMTE0LDEwMSw4MywxMTcsNCwyLDk4LDExMiwzOTMzLDM5NTIsMTE1LDEwMSwxMTYsNCwyLDU5LDY5LDM5NDIsMzk0NSwzLDg4NDcsODI0LDExMywxMTcsOTcsMTA4LDU5LDEsODkzMCwxMDEsMTE0LDExNSwxMDEsMTE2LDQsMiw1OSw2OSwzOTYzLDM5NjYsMyw4ODQ4LDgyNCwxMTMsMTE3LDk3LDEwOCw1OSwxLDg5MzEsNCwzLDk4LDk5LDExMiwzOTgxLDQwMDAsNDA0NSwxMTUsMTAxLDExNiw0LDIsNTksNjksMzk5MCwzOTkzLDMsODgzNCw4NDAyLDExMywxMTcsOTcsMTA4LDU5LDEsODg0MCw5OSwxMDEsMTAxLDEwMCwxMTUsNCw0LDU5LDY5LDgzLDg0LDQwMTUsNDAxNyw0MDI1LDQwMzcsMSw4ODMzLDExMywxMTcsOTcsMTA4LDU5LDMsMTA5MjgsODI0LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODkyOSwxMDUsMTA4LDEwMCwxMDEsNTksMyw4ODMxLDgyNCwxMDEsMTE0LDExNSwxMDEsMTE2LDQsMiw1OSw2OSw0MDU2LDQwNTksMyw4ODM1LDg0MDIsMTEzLDExNyw5NywxMDgsNTksMSw4ODQxLDEwNSwxMDgsMTAwLDEwMSw0LDQsNTksNjksNzAsODQsNDA4MCw0MDgyLDQwODksNDEwMCwxLDg3NjksMTEzLDExNyw5NywxMDgsNTksMSw4NzcyLDExNywxMDgsMTA4LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODc3NSwxMDUsMTA4LDEwMCwxMDEsNTksMSw4Nzc3LDEwMSwxMTQsMTE2LDEwNSw5OSw5NywxMDgsNjYsOTcsMTE0LDU5LDEsODc0MCw5OSwxMTQsNTksMyw1NTM0OSw1NjQ4OSwxMDUsMTA4LDEwMCwxMDEsNSwyMDksMSw1OSw0MTM1LDEsMjA5LDU5LDEsOTI1LDQsMTQsNjksOTcsOTksMTAwLDEwMiwxMDMsMTA5LDExMSwxMTIsMTE0LDExNSwxMTYsMTE3LDExOCw0MTcwLDQxNzYsNDE4Nyw0MjA1LDQyMTIsNDIxNyw0MjI4LDQyNTMsNDI1OSw0MjkyLDQyOTUsNDMxNiw0MzM3LDQzNDYsMTA4LDEwNSwxMDMsNTksMSwzMzgsOTksMTE3LDExNiwxMDEsNSwyMTEsMSw1OSw0MTg1LDEsMjExLDQsMiwxMDUsMTIxLDQxOTMsNDIwMiwxMTQsOTksNSwyMTIsMSw1OSw0MjAwLDEsMjEyLDU5LDEsMTA1NCw5OCwxMDgsOTcsOTksNTksMSwzMzYsMTE0LDU5LDMsNTUzNDksNTY1OTQsMTE0LDk3LDExOCwxMDEsNSwyMTAsMSw1OSw0MjI2LDEsMjEwLDQsMyw5NywxMDEsMTA1LDQyMzYsNDI0MSw0MjQ2LDk5LDExNCw1OSwxLDMzMiwxMDMsOTcsNTksMSw5MzcsOTksMTE0LDExMSwxMTAsNTksMSw5MjcsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjQ2LDEwMSwxMTAsNjcsMTE3LDExNCwxMDgsMTIxLDQsMiw2OCw4MSw0MjcyLDQyODUsMTExLDExNyw5OCwxMDgsMTAxLDgxLDExNywxMTEsMTE2LDEwMSw1OSwxLDgyMjAsMTE3LDExMSwxMTYsMTAxLDU5LDEsODIxNiw1OSwxLDEwODM2LDQsMiw5OSwxMDgsNDMwMSw0MzA2LDExNCw1OSwzLDU1MzQ5LDU2NDkwLDk3LDExNSwxMDQsNSwyMTYsMSw1OSw0MzE0LDEsMjE2LDEwNSw0LDIsMTA4LDEwOSw0MzIzLDQzMzIsMTAwLDEwMSw1LDIxMywxLDU5LDQzMzAsMSwyMTMsMTAxLDExNSw1OSwxLDEwODA3LDEwOSwxMDgsNSwyMTQsMSw1OSw0MzQ0LDEsMjE0LDEwMSwxMTQsNCwyLDY2LDgwLDQzNTQsNDM4MCw0LDIsOTcsMTE0LDQzNjAsNDM2NCwxMTQsNTksMSw4MjU0LDk3LDk5LDQsMiwxMDEsMTA3LDQzNzIsNDM3NSw1OSwxLDkxODIsMTAxLDExNiw1OSwxLDkxNDAsOTcsMTE0LDEwMSwxMTAsMTE2LDEwNCwxMDEsMTE1LDEwNSwxMTUsNTksMSw5MTgwLDQsOSw5Nyw5OSwxMDIsMTA0LDEwNSwxMDgsMTExLDExNCwxMTUsNDQxMyw0NDIyLDQ0MjYsNDQzMSw0NDM1LDQ0MzgsNDQ0OCw0NDcxLDQ1NjEsMTE0LDExNiwxMDUsOTcsMTA4LDY4LDU5LDEsODcwNiwxMjEsNTksMSwxMDU1LDExNCw1OSwzLDU1MzQ5LDU2NTk1LDEwNSw1OSwxLDkzNCw1OSwxLDkyOCwxMTcsMTE1LDc3LDEwNSwxMTAsMTE3LDExNSw1OSwxLDE3Nyw0LDIsMTA1LDExMiw0NDU0LDQ0NjcsMTEwLDk5LDk3LDExNCwxMDEsMTEyLDEwOCw5NywxMTAsMTAxLDU5LDEsODQ2MCwxMDIsNTksMSw4NDczLDQsNCw1OSwxMDEsMTA1LDExMSw0NDgxLDQ0ODMsNDUyNiw0NTMxLDEsMTA5MzksOTksMTAxLDEwMCwxMDEsMTE1LDQsNCw1OSw2OSw4Myw4NCw0NDk4LDQ1MDAsNDUwNyw0NTE5LDEsODgyNiwxMTMsMTE3LDk3LDEwOCw1OSwxLDEwOTI3LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODgyOCwxMDUsMTA4LDEwMCwxMDEsNTksMSw4ODMwLDEwOSwxMDEsNTksMSw4MjQzLDQsMiwxMDAsMTEyLDQ1MzcsNDU0MywxMTcsOTksMTE2LDU5LDEsODcxOSwxMTEsMTE0LDExNiwxMDUsMTExLDExMCw0LDIsNTksOTcsNDU1NSw0NTU3LDEsODc1OSwxMDgsNTksMSw4NzMzLDQsMiw5OSwxMDUsNDU2Nyw0NTcyLDExNCw1OSwzLDU1MzQ5LDU2NDkxLDU5LDEsOTM2LDQsNCw4NSwxMDIsMTExLDExNSw0NTg1LDQ1OTQsNDU5OSw0NjA0LDc5LDg0LDUsMzQsMSw1OSw0NTkyLDEsMzQsMTE0LDU5LDMsNTUzNDksNTY1OTYsMTEyLDEwMiw1OSwxLDg0NzQsOTksMTE0LDU5LDMsNTUzNDksNTY0OTIsNCwxMiw2Niw2OSw5Nyw5OSwxMDEsMTAyLDEwNCwxMDUsMTExLDExNCwxMTUsMTE3LDQ2MzYsNDY0Miw0NjUwLDQ2ODEsNDcwNCw0NzYzLDQ3NjcsNDc3MSw1MDQ3LDUwNjksNTA4MSw1MDk0LDk3LDExNCwxMTQsNTksMSwxMDUxMiw3MSw1LDE3NCwxLDU5LDQ2NDgsMSwxNzQsNCwzLDk5LDExMCwxMTQsNDY1OCw0NjY0LDQ2NjgsMTE3LDExNiwxMDEsNTksMSwzNDAsMTAzLDU5LDEsMTAyMTksMTE0LDQsMiw1OSwxMTYsNDY3NSw0Njc3LDEsODYwOCwxMDgsNTksMSwxMDUxOCw0LDMsOTcsMTAxLDEyMSw0Njg5LDQ2OTUsNDcwMSwxMTQsMTExLDExMCw1OSwxLDM0NCwxMDAsMTA1LDEwOCw1OSwxLDM0Miw1OSwxLDEwNTYsNCwyLDU5LDExOCw0NzEwLDQ3MTIsMSw4NDc2LDEwMSwxMTQsMTE1LDEwMSw0LDIsNjksODUsNDcyMiw0NzQ4LDQsMiwxMDgsMTEzLDQ3MjgsNDczNiwxMDEsMTA5LDEwMSwxMTAsMTE2LDU5LDEsODcxNSwxMTcsMTA1LDEwOCwxMDUsOTgsMTE0LDEwNSwxMTcsMTA5LDU5LDEsODY1MSwxMTIsNjksMTEzLDExNywxMDUsMTA4LDEwNSw5OCwxMTQsMTA1LDExNywxMDksNTksMSwxMDYwNywxMTQsNTksMSw4NDc2LDExMSw1OSwxLDkyOSwxMDMsMTA0LDExNiw0LDgsNjUsNjcsNjgsNzAsODQsODUsODYsOTcsNDc5Miw0ODQwLDQ4NDksNDkwNSw0OTEyLDQ5NzIsNTAyMiw1MDQwLDQsMiwxMTAsMTE0LDQ3OTgsNDgxMSwxMDMsMTA4LDEwMSw2NiwxMTQsOTcsOTksMTA3LDEwMSwxMTYsNTksMSwxMDIxNywxMTQsMTExLDExOSw0LDMsNTksNjYsNzYsNDgyMiw0ODI0LDQ4MjksMSw4NTk0LDk3LDExNCw1OSwxLDg2NzcsMTAxLDEwMiwxMTYsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsODY0NCwxMDEsMTA1LDEwOCwxMDUsMTEwLDEwMyw1OSwxLDg5NjksMTExLDQsMiwxMTcsMTE5LDQ4NTYsNDg2OSw5OCwxMDgsMTAxLDY2LDExNCw5Nyw5OSwxMDcsMTAxLDExNiw1OSwxLDEwMjE1LDExMCw0LDIsODQsODYsNDg3Niw0ODg3LDEwMSwxMDEsODYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1ODksMTAxLDk5LDExNiwxMTEsMTE0LDQsMiw1OSw2Niw0ODk4LDQ5MDAsMSw4NjQyLDk3LDExNCw1OSwxLDEwNTgxLDEwOCwxMTEsMTExLDExNCw1OSwxLDg5NzEsNCwyLDEwMSwxMTQsNDkxOCw0OTQ0LDEwMSw0LDMsNTksNjUsODYsNDkyNyw0OTI5LDQ5MzYsMSw4ODY2LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MTQsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1ODcsMTA1LDk3LDExMCwxMDMsMTA4LDEwMSw0LDMsNTksNjYsNjksNDk1OCw0OTYwLDQ5NjUsMSw4ODgzLDk3LDExNCw1OSwxLDEwNzA0LDExMywxMTcsOTcsMTA4LDU5LDEsODg4NSwxMTIsNCwzLDY4LDg0LDg2LDQ5ODEsNDk5Myw1MDA0LDExMSwxMTksMTEwLDg2LDEwMSw5OSwxMTYsMTExLDExNCw1OSwxLDEwNTc1LDEwMSwxMDEsODYsMTAxLDk5LDExNiwxMTEsMTE0LDU5LDEsMTA1ODgsMTAxLDk5LDExNiwxMTEsMTE0LDQsMiw1OSw2Niw1MDE1LDUwMTcsMSw4NjM4LDk3LDExNCw1OSwxLDEwNTgwLDEwMSw5OSwxMTYsMTExLDExNCw0LDIsNTksNjYsNTAzMyw1MDM1LDEsODY0MCw5NywxMTQsNTksMSwxMDU3OSwxMTQsMTE0LDExMSwxMTksNTksMSw4NjU4LDQsMiwxMTIsMTE3LDUwNTMsNTA1NywxMDIsNTksMSw4NDc3LDExMCwxMDAsNzMsMTA5LDExMiwxMDgsMTA1LDEwMSwxMTUsNTksMSwxMDYwOCwxMDUsMTAzLDEwNCwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDU5LDEsODY2Nyw0LDIsOTksMTA0LDUwODcsNTA5MSwxMTQsNTksMSw4NDc1LDU5LDEsODYyNSwxMDgsMTAxLDY4LDEwMSwxMDgsOTcsMTIxLDEwMSwxMDAsNTksMSwxMDc0MCw0LDEzLDcyLDc5LDk3LDk5LDEwMiwxMDQsMTA1LDEwOSwxMTEsMTEzLDExNSwxMTYsMTE3LDUxMzQsNTE1MCw1MTU3LDUxNjQsNTE5OCw1MjAzLDUyNTksNTI2NSw1Mjc3LDUyODMsNTM3NCw1MzgwLDUzODUsNCwyLDY3LDk5LDUxNDAsNTE0Niw3Miw5OSwxMjEsNTksMSwxMDY1LDEyMSw1OSwxLDEwNjQsNzAsODQsOTksMTIxLDU5LDEsMTA2OCw5OSwxMTcsMTE2LDEwMSw1OSwxLDM0Niw0LDUsNTksOTcsMTAxLDEwNSwxMjEsNTE3Niw1MTc4LDUxODQsNTE5MCw1MTk1LDEsMTA5NDAsMTE0LDExMSwxMTAsNTksMSwzNTIsMTAwLDEwNSwxMDgsNTksMSwzNTAsMTE0LDk5LDU5LDEsMzQ4LDU5LDEsMTA1NywxMTQsNTksMyw1NTM0OSw1NjU5OCwxMTEsMTE0LDExNiw0LDQsNjgsNzYsODIsODUsNTIxNiw1MjI3LDUyMzgsNTI1MCwxMTEsMTE5LDExMCw2NSwxMTQsMTE0LDExMSwxMTksNTksMSw4NTk1LDEwMSwxMDIsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTIsMTA1LDEwMywxMDQsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTQsMTEyLDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTMsMTAzLDEwOSw5Nyw1OSwxLDkzMSw5NywxMDgsMTA4LDY3LDEwNSwxMTQsOTksMTA4LDEwMSw1OSwxLDg3MjgsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjUwLDQsMiwxMTQsMTE3LDUyODksNTI5MywxMTYsNTksMSw4NzMwLDk3LDExNCwxMDEsNCw0LDU5LDczLDgzLDg1LDUzMDYsNTMwOCw1MzIyLDUzNjcsMSw5NjMzLDExMCwxMTYsMTAxLDExNCwxMTUsMTAxLDk5LDExNiwxMDUsMTExLDExMCw1OSwxLDg4NTEsMTE3LDQsMiw5OCwxMTIsNTMyOSw1MzQ3LDExNSwxMDEsMTE2LDQsMiw1OSw2OSw1MzM4LDUzNDAsMSw4ODQ3LDExMywxMTcsOTcsMTA4LDU5LDEsODg0OSwxMDEsMTE0LDExNSwxMDEsMTE2LDQsMiw1OSw2OSw1MzU4LDUzNjAsMSw4ODQ4LDExMywxMTcsOTcsMTA4LDU5LDEsODg1MCwxMTAsMTA1LDExMSwxMTAsNTksMSw4ODUyLDk5LDExNCw1OSwzLDU1MzQ5LDU2NDk0LDk3LDExNCw1OSwxLDg5MDIsNCw0LDk4LDk5LDEwOSwxMTIsNTM5NSw1NDIwLDU0NzUsNTQ3OCw0LDIsNTksMTE1LDU0MDEsNTQwMywxLDg5MTIsMTAxLDExNiw0LDIsNTksNjksNTQxMSw1NDEzLDEsODkxMiwxMTMsMTE3LDk3LDEwOCw1OSwxLDg4MzgsNCwyLDk5LDEwNCw1NDI2LDU0NjgsMTAxLDEwMSwxMDAsMTE1LDQsNCw1OSw2OSw4Myw4NCw1NDQwLDU0NDIsNTQ0OSw1NDYxLDEsODgyNywxMTMsMTE3LDk3LDEwOCw1OSwxLDEwOTI4LDEwOCw5NywxMTAsMTE2LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODgyOSwxMDUsMTA4LDEwMCwxMDEsNTksMSw4ODMxLDg0LDEwNCw5NywxMTYsNTksMSw4NzE1LDU5LDEsODcyMSw0LDMsNTksMTAxLDExNSw1NDg2LDU0ODgsNTUwNywxLDg5MTMsMTE0LDExNSwxMDEsMTE2LDQsMiw1OSw2OSw1NDk4LDU1MDAsMSw4ODM1LDExMywxMTcsOTcsMTA4LDU5LDEsODgzOSwxMDEsMTE2LDU5LDEsODkxMyw0LDExLDcyLDgyLDgzLDk3LDk5LDEwMiwxMDQsMTA1LDExMSwxMTQsMTE1LDU1MzYsNTU0Niw1NTUyLDU1NjcsNTU3OSw1NjAyLDU2MDcsNTY1NSw1Njk1LDU3MDEsNTcxMSw3OSw4Miw3OCw1LDIyMiwxLDU5LDU1NDQsMSwyMjIsNjUsNjgsNjksNTksMSw4NDgyLDQsMiw3Miw5OSw1NTU4LDU1NjMsOTksMTIxLDU5LDEsMTAzNSwxMjEsNTksMSwxMDYyLDQsMiw5OCwxMTcsNTU3Myw1NTc2LDU5LDEsOSw1OSwxLDkzMiw0LDMsOTcsMTAxLDEyMSw1NTg3LDU1OTMsNTU5OSwxMTQsMTExLDExMCw1OSwxLDM1NiwxMDAsMTA1LDEwOCw1OSwxLDM1NCw1OSwxLDEwNTgsMTE0LDU5LDMsNTUzNDksNTY1OTksNCwyLDEwMSwxMDUsNTYxMyw1NjMxLDQsMiwxMTQsMTE2LDU2MTksNTYyNywxMDEsMTAyLDExMSwxMTQsMTAxLDU5LDEsODc1Niw5Nyw1OSwxLDkyMCw0LDIsOTksMTEwLDU2MzcsNTY0NywxMDcsODMsMTEyLDk3LDk5LDEwMSw1OSwzLDgyODcsODIwMiw4MywxMTIsOTcsOTksMTAxLDU5LDEsODIwMSwxMDgsMTAwLDEwMSw0LDQsNTksNjksNzAsODQsNTY2OCw1NjcwLDU2NzcsNTY4OCwxLDg3NjQsMTEzLDExNyw5NywxMDgsNTksMSw4NzcxLDExNywxMDgsMTA4LDY5LDExMywxMTcsOTcsMTA4LDU5LDEsODc3MywxMDUsMTA4LDEwMCwxMDEsNTksMSw4Nzc2LDExMiwxMDIsNTksMyw1NTM0OSw1NjY1MSwxMDUsMTEyLDEwOCwxMDEsNjgsMTExLDExNiw1OSwxLDg0MTEsNCwyLDk5LDExNiw1NzE3LDU3MjIsMTE0LDU5LDMsNTUzNDksNTY0OTUsMTE0LDExMSwxMDcsNTksMSwzNTgsNCwxNCw5Nyw5OCw5OSwxMDAsMTAyLDEwMywxMDksMTEwLDExMSwxMTIsMTE0LDExNSwxMTYsMTE3LDU3NTgsNTc4OSw1ODA1LDU4MjMsNTgzMCw1ODM1LDU4NDYsNTg1Miw1OTIxLDU5MzcsNjA4OSw2MDk1LDYxMDEsNjEwOCw0LDIsOTksMTE0LDU3NjQsNTc3NCwxMTcsMTE2LDEwMSw1LDIxOCwxLDU5LDU3NzIsMSwyMTgsMTE0LDQsMiw1OSwxMTEsNTc4MSw1NzgzLDEsODYwNyw5OSwxMDUsMTE0LDU5LDEsMTA1NjksMTE0LDQsMiw5OSwxMDEsNTc5Niw1ODAwLDEyMSw1OSwxLDEwMzgsMTE4LDEwMSw1OSwxLDM2NCw0LDIsMTA1LDEyMSw1ODExLDU4MjAsMTE0LDk5LDUsMjE5LDEsNTksNTgxOCwxLDIxOSw1OSwxLDEwNTksOTgsMTA4LDk3LDk5LDU5LDEsMzY4LDExNCw1OSwzLDU1MzQ5LDU2NjAwLDExNCw5NywxMTgsMTAxLDUsMjE3LDEsNTksNTg0NCwxLDIxNyw5Nyw5OSwxMTQsNTksMSwzNjIsNCwyLDEwMCwxMDUsNTg1OCw1OTA1LDEwMSwxMTQsNCwyLDY2LDgwLDU4NjYsNTg5Miw0LDIsOTcsMTE0LDU4NzIsNTg3NiwxMTQsNTksMSw5NSw5Nyw5OSw0LDIsMTAxLDEwNyw1ODg0LDU4ODcsNTksMSw5MTgzLDEwMSwxMTYsNTksMSw5MTQxLDk3LDExNCwxMDEsMTEwLDExNiwxMDQsMTAxLDExNSwxMDUsMTE1LDU5LDEsOTE4MSwxMTEsMTEwLDQsMiw1OSw4MCw1OTEzLDU5MTUsMSw4ODk5LDEwOCwxMTcsMTE1LDU5LDEsODg0Niw0LDIsMTAzLDExMiw1OTI3LDU5MzIsMTExLDExMCw1OSwxLDM3MCwxMDIsNTksMyw1NTM0OSw1NjY1Miw0LDgsNjUsNjgsNjksODQsOTcsMTAwLDExMiwxMTUsNTk1NSw1OTg1LDU5OTYsNjAwOSw2MDI2LDYwMzMsNjA0NCw2MDc1LDExNCwxMTQsMTExLDExOSw0LDMsNTksNjYsNjgsNTk2Nyw1OTY5LDU5NzQsMSw4NTkzLDk3LDExNCw1OSwxLDEwNTE0LDExMSwxMTksMTEwLDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NDUsMTExLDExOSwxMTAsNjUsMTE0LDExNCwxMTEsMTE5LDU5LDEsODU5NywxMTMsMTE3LDEwNSwxMDgsMTA1LDk4LDExNCwxMDUsMTE3LDEwOSw1OSwxLDEwNjA2LDEwMSwxMDEsNCwyLDU5LDY1LDYwMTcsNjAxOSwxLDg4NjksMTE0LDExNCwxMTEsMTE5LDU5LDEsODYxMywxMTQsMTE0LDExMSwxMTksNTksMSw4NjU3LDExMSwxMTksMTEwLDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NjEsMTAxLDExNCw0LDIsNzYsODIsNjA1Miw2MDYzLDEwMSwxMDIsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTgsMTA1LDEwMywxMDQsMTE2LDY1LDExNCwxMTQsMTExLDExOSw1OSwxLDg1OTksMTA1LDQsMiw1OSwxMDgsNjA4Miw2MDg0LDEsOTc4LDExMSwxMTAsNTksMSw5MzMsMTA1LDExMCwxMDMsNTksMSwzNjYsOTksMTE0LDU5LDMsNTUzNDksNTY0OTYsMTA1LDEwOCwxMDAsMTAxLDU5LDEsMzYwLDEwOSwxMDgsNSwyMjAsMSw1OSw2MTE1LDEsMjIwLDQsOSw2OCw5OCw5OSwxMDAsMTAxLDEwMiwxMTEsMTE1LDExOCw2MTM3LDYxNDMsNjE0OCw2MTUyLDYxNjYsNjI1MCw2MjU1LDYyNjEsNjI2Nyw5NywxMTUsMTA0LDU5LDEsODg3NSw5NywxMTQsNTksMSwxMDk4NywxMjEsNTksMSwxMDQyLDk3LDExNSwxMDQsNCwyLDU5LDEwOCw2MTYxLDYxNjMsMSw4ODczLDU5LDEsMTA5ODIsNCwyLDEwMSwxMTQsNjE3Miw2MTc1LDU5LDEsODg5Nyw0LDMsOTgsMTE2LDEyMSw2MTgzLDYxODgsNjIzOCw5NywxMTQsNTksMSw4MjE0LDQsMiw1OSwxMDUsNjE5NCw2MTk2LDEsODIxNCw5OSw5NywxMDgsNCw0LDY2LDc2LDgzLDg0LDYyMDksNjIxNCw2MjIwLDYyMzEsOTcsMTE0LDU5LDEsODczOSwxMDUsMTEwLDEwMSw1OSwxLDEyNCwxMDEsMTEyLDk3LDExNCw5NywxMTYsMTExLDExNCw1OSwxLDEwMDcyLDEwNSwxMDgsMTAwLDEwMSw1OSwxLDg3NjgsODQsMTA0LDEwNSwxMTAsODMsMTEyLDk3LDk5LDEwMSw1OSwxLDgyMDIsMTE0LDU5LDMsNTUzNDksNTY2MDEsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjUzLDk5LDExNCw1OSwzLDU1MzQ5LDU2NDk3LDEwMCw5NywxMTUsMTA0LDU5LDEsODg3NCw0LDUsOTksMTAxLDEwMiwxMTEsMTE1LDYyODYsNjI5Miw2Mjk4LDYzMDMsNjMwOSwxMDUsMTE0LDk5LDU5LDEsMzcyLDEwMCwxMDMsMTAxLDU5LDEsODg5NiwxMTQsNTksMyw1NTM0OSw1NjYwMiwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NTQsOTksMTE0LDU5LDMsNTUzNDksNTY0OTgsNCw0LDEwMiwxMDUsMTExLDExNSw2MzI1LDYzMzAsNjMzMyw2MzM5LDExNCw1OSwzLDU1MzQ5LDU2NjAzLDU5LDEsOTI2LDExMiwxMDIsNTksMyw1NTM0OSw1NjY1NSw5OSwxMTQsNTksMyw1NTM0OSw1NjQ5OSw0LDksNjUsNzMsODUsOTcsOTksMTAyLDExMSwxMTUsMTE3LDYzNjUsNjM3MCw2Mzc1LDYzODAsNjM5MSw2NDA1LDY0MTAsNjQxNiw2NDIyLDk5LDEyMSw1OSwxLDEwNzEsOTksMTIxLDU5LDEsMTAzMSw5OSwxMjEsNTksMSwxMDcwLDk5LDExNywxMTYsMTAxLDUsMjIxLDEsNTksNjM4OSwxLDIyMSw0LDIsMTA1LDEyMSw2Mzk3LDY0MDIsMTE0LDk5LDU5LDEsMzc0LDU5LDEsMTA2NywxMTQsNTksMyw1NTM0OSw1NjYwNCwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NTYsOTksMTE0LDU5LDMsNTUzNDksNTY1MDAsMTA5LDEwOCw1OSwxLDM3Niw0LDgsNzIsOTcsOTksMTAwLDEwMSwxMDIsMTExLDExNSw2NDQ1LDY0NTAsNjQ1Nyw2NDcyLDY0NzcsNjUwMSw2NTA1LDY1MTAsOTksMTIxLDU5LDEsMTA0Niw5OSwxMTcsMTE2LDEwMSw1OSwxLDM3Nyw0LDIsOTcsMTIxLDY0NjMsNjQ2OSwxMTQsMTExLDExMCw1OSwxLDM4MSw1OSwxLDEwNDcsMTExLDExNiw1OSwxLDM3OSw0LDIsMTE0LDExNiw2NDgzLDY0OTcsMTExLDg3LDEwNSwxMDAsMTE2LDEwNCw4MywxMTIsOTcsOTksMTAxLDU5LDEsODIwMyw5Nyw1OSwxLDkxOCwxMTQsNTksMSw4NDg4LDExMiwxMDIsNTksMSw4NDg0LDk5LDExNCw1OSwzLDU1MzQ5LDU2NTAxLDQsMTYsOTcsOTgsOTksMTAxLDEwMiwxMDMsMTA4LDEwOSwxMTAsMTExLDExMiwxMTQsMTE1LDExNiwxMTcsMTE5LDY1NTAsNjU2MSw2NTY4LDY2MTIsNjYyMiw2NjM0LDY2NDUsNjY3Miw2Njk5LDY4NTQsNjg3MCw2OTIzLDY5MzMsNjk2Myw2OTc0LDY5ODMsOTksMTE3LDExNiwxMDEsNSwyMjUsMSw1OSw2NTU5LDEsMjI1LDExNCwxMDEsMTE4LDEwMSw1OSwxLDI1OSw0LDYsNTksNjksMTAwLDEwNSwxMTcsMTIxLDY1ODIsNjU4NCw2NTg4LDY1OTEsNjYwMCw2NjA5LDEsODc2Niw1OSwzLDg3NjYsODE5LDU5LDEsODc2NywxMTQsOTksNSwyMjYsMSw1OSw2NTk4LDEsMjI2LDExNiwxMDEsNSwxODAsMSw1OSw2NjA3LDEsMTgwLDU5LDEsMTA3MiwxMDgsMTA1LDEwMyw1LDIzMCwxLDU5LDY2MjAsMSwyMzAsNCwyLDU5LDExNCw2NjI4LDY2MzAsMSw4Mjg5LDU5LDMsNTUzNDksNTY2MDYsMTE0LDk3LDExOCwxMDEsNSwyMjQsMSw1OSw2NjQzLDEsMjI0LDQsMiwxMDEsMTEyLDY2NTEsNjY2Nyw0LDIsMTAyLDExMiw2NjU3LDY2NjMsMTE1LDEyMSwxMDksNTksMSw4NTAxLDEwNCw1OSwxLDg1MDEsMTA0LDk3LDU5LDEsOTQ1LDQsMiw5NywxMTIsNjY3OCw2NjkyLDQsMiw5OSwxMDgsNjY4NCw2Njg4LDExNCw1OSwxLDI1NywxMDMsNTksMSwxMDgxNSw1LDM4LDEsNTksNjY5NywxLDM4LDQsMiwxMDAsMTAzLDY3MDUsNjczNyw0LDUsNTksOTcsMTAwLDExNSwxMTgsNjcxNyw2NzE5LDY3MjQsNjcyNyw2NzM0LDEsODc0MywxMTAsMTAwLDU5LDEsMTA4MzcsNTksMSwxMDg0NCwxMDgsMTExLDExMiwxMDEsNTksMSwxMDg0MCw1OSwxLDEwODQyLDQsNyw1OSwxMDEsMTA4LDEwOSwxMTQsMTE1LDEyMiw2NzUzLDY3NTUsNjc1OCw2NzYyLDY4MTQsNjgzNSw2ODQ4LDEsODczNiw1OSwxLDEwNjYwLDEwMSw1OSwxLDg3MzYsMTE1LDEwMCw0LDIsNTksOTcsNjc3MCw2NzcyLDEsODczNyw0LDgsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCw2NzkwLDY3OTMsNjc5Niw2Nzk5LDY4MDIsNjgwNSw2ODA4LDY4MTEsNTksMSwxMDY2NCw1OSwxLDEwNjY1LDU5LDEsMTA2NjYsNTksMSwxMDY2Nyw1OSwxLDEwNjY4LDU5LDEsMTA2NjksNTksMSwxMDY3MCw1OSwxLDEwNjcxLDExNiw0LDIsNTksMTE4LDY4MjEsNjgyMywxLDg3MzUsOTgsNCwyLDU5LDEwMCw2ODMwLDY4MzIsMSw4ODk0LDU5LDEsMTA2NTMsNCwyLDExMiwxMTYsNjg0MSw2ODQ1LDEwNCw1OSwxLDg3MzgsNTksMSwxOTcsOTcsMTE0LDExNCw1OSwxLDkwODQsNCwyLDEwMywxMTIsNjg2MCw2ODY1LDExMSwxMTAsNTksMSwyNjEsMTAyLDU5LDMsNTUzNDksNTY2NTgsNCw3LDU5LDY5LDk3LDEwMSwxMDUsMTExLDExMiw2ODg2LDY4ODgsNjg5MSw2ODk3LDY5MDAsNjkwNCw2OTA4LDEsODc3Niw1OSwxLDEwODY0LDk5LDEwNSwxMTQsNTksMSwxMDg2Myw1OSwxLDg3NzgsMTAwLDU5LDEsODc3OSwxMTUsNTksMSwzOSwxMTQsMTExLDEyMCw0LDIsNTksMTAxLDY5MTcsNjkxOSwxLDg3NzYsMTEzLDU5LDEsODc3OCwxMDUsMTEwLDEwMyw1LDIyOSwxLDU5LDY5MzEsMSwyMjksNCwzLDk5LDExNiwxMjEsNjk0MSw2OTQ2LDY5NDksMTE0LDU5LDMsNTUzNDksNTY1MDIsNTksMSw0MiwxMDksMTEyLDQsMiw1OSwxMDEsNjk1Nyw2OTU5LDEsODc3NiwxMTMsNTksMSw4NzgxLDEwNSwxMDgsMTAwLDEwMSw1LDIyNywxLDU5LDY5NzIsMSwyMjcsMTA5LDEwOCw1LDIyOCwxLDU5LDY5ODEsMSwyMjgsNCwyLDk5LDEwNSw2OTg5LDY5OTcsMTExLDExMCwxMDUsMTEwLDExNiw1OSwxLDg3NTUsMTEwLDExNiw1OSwxLDEwNzY5LDQsMTYsNzgsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTA1LDEwNywxMDgsMTEwLDExMSwxMTIsMTE0LDExNSwxMTcsNzAzNiw3MDQxLDcxMTksNzEzNSw3MTQ5LDcxNTUsNzIxOSw3MjI0LDczNDcsNzM1NCw3NDYzLDc0ODksNzc4Niw3NzkzLDc4MTQsNzg2NiwxMTEsMTE2LDU5LDEsMTA5ODksNCwyLDk5LDExNCw3MDQ3LDcwOTQsMTA3LDQsNCw5OSwxMDEsMTEyLDExNSw3MDU4LDcwNjQsNzA3Myw3MDgwLDExMSwxMTAsMTAzLDU5LDEsODc4MCwxMTIsMTE1LDEwNSwxMDgsMTExLDExMCw1OSwxLDEwMTQsMTE0LDEwNSwxMDksMTAxLDU5LDEsODI0NSwxMDUsMTA5LDQsMiw1OSwxMDEsNzA4OCw3MDkwLDEsODc2NSwxMTMsNTksMSw4OTA5LDQsMiwxMTgsMTE5LDcxMDAsNzEwNSwxMDEsMTAxLDU5LDEsODg5MywxMDEsMTAwLDQsMiw1OSwxMDMsNzExMyw3MTE1LDEsODk2NSwxMDEsNTksMSw4OTY1LDExNCwxMDcsNCwyLDU5LDExNiw3MTI3LDcxMjksMSw5MTQxLDk4LDExNCwxMDcsNTksMSw5MTQyLDQsMiwxMTEsMTIxLDcxNDEsNzE0NiwxMTAsMTAzLDU5LDEsODc4MCw1OSwxLDEwNzMsMTEzLDExNywxMTEsNTksMSw4MjIyLDQsNSw5OSwxMDksMTEyLDExNCwxMTYsNzE2Nyw3MTgxLDcxODgsNzE5Myw3MTk5LDk3LDExNywxMTUsNCwyLDU5LDEwMSw3MTc2LDcxNzgsMSw4NzU3LDU5LDEsODc1NywxMTIsMTE2LDEyMSwxMTgsNTksMSwxMDY3MiwxMTUsMTA1LDU5LDEsMTAxNCwxMTAsMTExLDExNyw1OSwxLDg0OTIsNCwzLDk3LDEwNCwxMTksNzIwNyw3MjEwLDcyMTMsNTksMSw5NDYsNTksMSw4NTAyLDEwMSwxMDEsMTEwLDU5LDEsODgxMiwxMTQsNTksMyw1NTM0OSw1NjYwNywxMDMsNCw3LDk5LDExMSwxMTUsMTE2LDExNywxMTgsMTE5LDcyNDEsNzI2Miw3Mjg4LDczMDUsNzMyOCw3MzM1LDczNDAsNCwzLDk3LDEwNSwxMTcsNzI0OSw3MjUzLDcyNTgsMTEyLDU5LDEsODg5OCwxMTQsOTksNTksMSw5NzExLDExMiw1OSwxLDg4OTksNCwzLDEwMCwxMTIsMTE2LDcyNzAsNzI3NSw3MjgxLDExMSwxMTYsNTksMSwxMDc1MiwxMDgsMTE3LDExNSw1OSwxLDEwNzUzLDEwNSwxMDksMTAxLDExNSw1OSwxLDEwNzU0LDQsMiwxMTMsMTE2LDcyOTQsNzMwMCw5OSwxMTcsMTEyLDU5LDEsMTA3NTgsOTcsMTE0LDU5LDEsOTczMywxMTQsMTA1LDk3LDExMCwxMDMsMTA4LDEwMSw0LDIsMTAwLDExNyw3MzE4LDczMjQsMTExLDExOSwxMTAsNTksMSw5NjYxLDExMiw1OSwxLDk2NTEsMTEyLDEwOCwxMTcsMTE1LDU5LDEsMTA3NTYsMTAxLDEwMSw1OSwxLDg4OTcsMTAxLDEwMCwxMDMsMTAxLDU5LDEsODg5Niw5NywxMTQsMTExLDExOSw1OSwxLDEwNTA5LDQsMyw5NywxMDcsMTExLDczNjIsNzQzNiw3NDU4LDQsMiw5OSwxMTAsNzM2OCw3NDMyLDEwNyw0LDMsMTA4LDExNSwxMTYsNzM3Nyw3Mzg2LDczOTQsMTExLDEyMiwxMDEsMTEwLDEwMywxMDEsNTksMSwxMDczMSwxMTMsMTE3LDk3LDExNCwxMDEsNTksMSw5NjQyLDExNCwxMDUsOTcsMTEwLDEwMywxMDgsMTAxLDQsNCw1OSwxMDAsMTA4LDExNCw3NDExLDc0MTMsNzQxOSw3NDI1LDEsOTY1MiwxMTEsMTE5LDExMCw1OSwxLDk2NjIsMTAxLDEwMiwxMTYsNTksMSw5NjY2LDEwNSwxMDMsMTA0LDExNiw1OSwxLDk2NTYsMTA3LDU5LDEsOTI1MSw0LDIsNDksNTEsNzQ0Miw3NDU0LDQsMiw1MCw1Miw3NDQ4LDc0NTEsNTksMSw5NjE4LDU5LDEsOTYxNyw1Miw1OSwxLDk2MTksOTksMTA3LDU5LDEsOTYwOCw0LDIsMTAxLDExMSw3NDY5LDc0ODUsNCwyLDU5LDExMyw3NDc1LDc0NzgsMyw2MSw4NDIxLDExNywxMDUsMTE4LDU5LDMsODgwMSw4NDIxLDExNiw1OSwxLDg5NzYsNCw0LDExMiwxMTYsMTE5LDEyMCw3NDk5LDc1MDQsNzUxNyw3NTIzLDEwMiw1OSwzLDU1MzQ5LDU2NjU5LDQsMiw1OSwxMTYsNzUxMCw3NTEyLDEsODg2OSwxMTEsMTA5LDU5LDEsODg2OSwxMTYsMTA1LDEwMSw1OSwxLDg5MDQsNCwxMiw2OCw3Miw4NSw4Niw5OCwxMDAsMTA0LDEwOSwxMTIsMTE2LDExNywxMTgsNzU0OSw3NTcxLDc1OTcsNzYxOSw3NjU1LDc2NjAsNzY4Miw3NzA4LDc3MTUsNzcyMSw3NzI4LDc3NTAsNCw0LDc2LDgyLDEwOCwxMTQsNzU1OSw3NTYyLDc1NjUsNzU2OCw1OSwxLDk1NTksNTksMSw5NTU2LDU5LDEsOTU1OCw1OSwxLDk1NTUsNCw1LDU5LDY4LDg1LDEwMCwxMTcsNzU4Myw3NTg1LDc1ODgsNzU5MSw3NTk0LDEsOTU1Miw1OSwxLDk1NzQsNTksMSw5NTc3LDU5LDEsOTU3Miw1OSwxLDk1NzUsNCw0LDc2LDgyLDEwOCwxMTQsNzYwNyw3NjEwLDc2MTMsNzYxNiw1OSwxLDk1NjUsNTksMSw5NTYyLDU5LDEsOTU2NCw1OSwxLDk1NjEsNCw3LDU5LDcyLDc2LDgyLDEwNCwxMDgsMTE0LDc2MzUsNzYzNyw3NjQwLDc2NDMsNzY0Niw3NjQ5LDc2NTIsMSw5NTUzLDU5LDEsOTU4MCw1OSwxLDk1NzEsNTksMSw5NTY4LDU5LDEsOTU3OSw1OSwxLDk1NzAsNTksMSw5NTY3LDExMSwxMjAsNTksMSwxMDY5Nyw0LDQsNzYsODIsMTA4LDExNCw3NjcwLDc2NzMsNzY3Niw3Njc5LDU5LDEsOTU1Nyw1OSwxLDk1NTQsNTksMSw5NDg4LDU5LDEsOTQ4NCw0LDUsNTksNjgsODUsMTAwLDExNyw3Njk0LDc2OTYsNzY5OSw3NzAyLDc3MDUsMSw5NDcyLDU5LDEsOTU3Myw1OSwxLDk1NzYsNTksMSw5NTE2LDU5LDEsOTUyNCwxMDUsMTEwLDExNywxMTUsNTksMSw4ODYzLDEwOCwxMTcsMTE1LDU5LDEsODg2MiwxMDUsMTA5LDEwMSwxMTUsNTksMSw4ODY0LDQsNCw3Niw4MiwxMDgsMTE0LDc3MzgsNzc0MSw3NzQ0LDc3NDcsNTksMSw5NTYzLDU5LDEsOTU2MCw1OSwxLDk0OTYsNTksMSw5NDkyLDQsNyw1OSw3Miw3Niw4MiwxMDQsMTA4LDExNCw3NzY2LDc3NjgsNzc3MSw3Nzc0LDc3NzcsNzc4MCw3NzgzLDEsOTQ3NCw1OSwxLDk1NzgsNTksMSw5NTY5LDU5LDEsOTU2Niw1OSwxLDk1MzIsNTksMSw5NTA4LDU5LDEsOTUwMCwxMTQsMTA1LDEwOSwxMDEsNTksMSw4MjQ1LDQsMiwxMDEsMTE4LDc3OTksNzgwNCwxMTgsMTAxLDU5LDEsNzI4LDk4LDk3LDExNCw1LDE2NiwxLDU5LDc4MTIsMSwxNjYsNCw0LDk5LDEwMSwxMDUsMTExLDc4MjQsNzgyOSw3ODM0LDc4NDYsMTE0LDU5LDMsNTUzNDksNTY1MDMsMTA5LDEwNSw1OSwxLDgyNzEsMTA5LDQsMiw1OSwxMDEsNzg0MSw3ODQzLDEsODc2NSw1OSwxLDg5MDksMTA4LDQsMyw1OSw5OCwxMDQsNzg1NSw3ODU3LDc4NjAsMSw5Miw1OSwxLDEwNjkzLDExNSwxMTcsOTgsNTksMSwxMDE4NCw0LDIsMTA4LDEwOSw3ODcyLDc4ODUsMTA4LDQsMiw1OSwxMDEsNzg3OSw3ODgxLDEsODIyNiwxMTYsNTksMSw4MjI2LDExMiw0LDMsNTksNjksMTAxLDc4OTQsNzg5Niw3ODk5LDEsODc4Miw1OSwxLDEwOTI2LDQsMiw1OSwxMTMsNzkwNSw3OTA3LDEsODc4Myw1OSwxLDg3ODMsNCwxNSw5Nyw5OSwxMDAsMTAxLDEwMiwxMDQsMTA1LDEwOCwxMTEsMTE0LDExNSwxMTYsMTE3LDExOSwxMjEsNzk0Miw4MDIxLDgwNzUsODA4MCw4MTIxLDgxMjYsODE1Nyw4Mjc5LDgyOTUsODQzMCw4NDQ2LDg0ODUsODQ5MSw4NzA3LDg3MjYsNCwzLDk5LDExMiwxMTQsNzk1MCw3OTU2LDgwMDcsMTE3LDExNiwxMDEsNTksMSwyNjMsNCw2LDU5LDk3LDk4LDk5LDEwMCwxMTUsNzk3MCw3OTcyLDc5NzcsNzk4NCw3OTk4LDgwMDMsMSw4NzQ1LDExMCwxMDAsNTksMSwxMDgyMCwxMTQsOTksMTE3LDExMiw1OSwxLDEwODI1LDQsMiw5NywxMTcsNzk5MCw3OTk0LDExMiw1OSwxLDEwODI3LDExMiw1OSwxLDEwODIzLDExMSwxMTYsNTksMSwxMDgxNiw1OSwzLDg3NDUsNjUwMjQsNCwyLDEwMSwxMTEsODAxMyw4MDE3LDExNiw1OSwxLDgyNTcsMTEwLDU5LDEsNzExLDQsNCw5NywxMDEsMTA1LDExNyw4MDMxLDgwNDYsODA1Niw4MDYxLDQsMiwxMTIsMTE0LDgwMzcsODA0MSwxMTUsNTksMSwxMDgyOSwxMTEsMTEwLDU5LDEsMjY5LDEwMCwxMDUsMTA4LDUsMjMxLDEsNTksODA1NCwxLDIzMSwxMTQsOTksNTksMSwyNjUsMTEyLDExNSw0LDIsNTksMTE1LDgwNjksODA3MSwxLDEwODI4LDEwOSw1OSwxLDEwODMyLDExMSwxMTYsNTksMSwyNjcsNCwzLDEwMCwxMDksMTEwLDgwODgsODA5Nyw4MTA0LDEwNSwxMDgsNSwxODQsMSw1OSw4MDk1LDEsMTg0LDExMiwxMTYsMTIxLDExOCw1OSwxLDEwNjc0LDExNiw1LDE2MiwyLDU5LDEwMSw4MTEyLDgxMTQsMSwxNjIsMTE0LDEwMCwxMTEsMTE2LDU5LDEsMTgzLDExNCw1OSwzLDU1MzQ5LDU2NjA4LDQsMyw5OSwxMDEsMTA1LDgxMzQsODEzOCw4MTU0LDEyMSw1OSwxLDEwOTUsOTksMTA3LDQsMiw1OSwxMDksODE0Niw4MTQ4LDEsMTAwMDMsOTcsMTE0LDEwNyw1OSwxLDEwMDAzLDU5LDEsOTY3LDExNCw0LDcsNTksNjksOTksMTAxLDEwMiwxMDksMTE1LDgxNzQsODE3Niw4MTc5LDgyNTgsODI2MSw4MjY4LDgyNzMsMSw5Njc1LDU5LDEsMTA2OTEsNCwzLDU5LDEwMSwxMDgsODE4Nyw4MTg5LDgxOTMsMSw3MTAsMTEzLDU5LDEsODc5MSwxMDEsNCwyLDk3LDEwMCw4MjAwLDgyMjMsMTE0LDExNCwxMTEsMTE5LDQsMiwxMDgsMTE0LDgyMTAsODIxNiwxMDEsMTAyLDExNiw1OSwxLDg2MzQsMTA1LDEwMywxMDQsMTE2LDU5LDEsODYzNSw0LDUsODIsODMsOTcsOTksMTAwLDgyMzUsODIzOCw4MjQxLDgyNDYsODI1Miw1OSwxLDE3NCw1OSwxLDk0MTYsMTE1LDExNiw1OSwxLDg4NTksMTA1LDExNCw5OSw1OSwxLDg4NTgsOTcsMTE1LDEwNCw1OSwxLDg4NjEsNTksMSw4NzkxLDExMCwxMDUsMTEwLDExNiw1OSwxLDEwNzY4LDEwNSwxMDAsNTksMSwxMDk5MSw5OSwxMDUsMTE0LDU5LDEsMTA2OTAsMTE3LDk4LDExNSw0LDIsNTksMTE3LDgyODgsODI5MCwxLDk4MjcsMTA1LDExNiw1OSwxLDk4MjcsNCw0LDEwOCwxMDksMTEwLDExMiw4MzA1LDgzMjYsODM3Niw4NDAwLDExMSwxMTAsNCwyLDU5LDEwMSw4MzEzLDgzMTUsMSw1OCw0LDIsNTksMTEzLDgzMjEsODMyMywxLDg3ODgsNTksMSw4Nzg4LDQsMiwxMDksMTEyLDgzMzIsODM0NCw5Nyw0LDIsNTksMTE2LDgzMzksODM0MSwxLDQ0LDU5LDEsNjQsNCwzLDU5LDEwMiwxMDgsODM1Miw4MzU0LDgzNTgsMSw4NzA1LDExMCw1OSwxLDg3MjgsMTAxLDQsMiwxMDksMTIwLDgzNjUsODM3MSwxMDEsMTEwLDExNiw1OSwxLDg3MDUsMTAxLDExNSw1OSwxLDg0NTAsNCwyLDEwMywxMDUsODM4Miw4Mzk1LDQsMiw1OSwxMDAsODM4OCw4MzkwLDEsODc3MywxMTEsMTE2LDU5LDEsMTA4NjEsMTEwLDExNiw1OSwxLDg3NTAsNCwzLDEwMiwxMTQsMTIxLDg0MDgsODQxMiw4NDE3LDU5LDMsNTUzNDksNTY2NjAsMTExLDEwMCw1OSwxLDg3MjAsNSwxNjksMiw1OSwxMTUsODQyNCw4NDI2LDEsMTY5LDExNCw1OSwxLDg0NzEsNCwyLDk3LDExMSw4NDM2LDg0NDEsMTE0LDExNCw1OSwxLDg2MjksMTE1LDExNSw1OSwxLDEwMDA3LDQsMiw5OSwxMTcsODQ1Miw4NDU3LDExNCw1OSwzLDU1MzQ5LDU2NTA0LDQsMiw5OCwxMTIsODQ2Myw4NDc0LDQsMiw1OSwxMDEsODQ2OSw4NDcxLDEsMTA5NTksNTksMSwxMDk2MSw0LDIsNTksMTAxLDg0ODAsODQ4MiwxLDEwOTYwLDU5LDEsMTA5NjIsMTAwLDExMSwxMTYsNTksMSw4OTQzLDQsNywxMDAsMTAxLDEwOCwxMTIsMTE0LDExOCwxMTksODUwNyw4NTIyLDg1MzYsODU1MCw4NjAwLDg2OTcsODcwMiw5NywxMTQsMTE0LDQsMiwxMDgsMTE0LDg1MTYsODUxOSw1OSwxLDEwNTUyLDU5LDEsMTA1NDksNCwyLDExMiwxMTUsODUyOCw4NTMyLDExNCw1OSwxLDg5MjYsOTksNTksMSw4OTI3LDk3LDExNCwxMTQsNCwyLDU5LDExMiw4NTQ1LDg1NDcsMSw4NjMwLDU5LDEsMTA1NTcsNCw2LDU5LDk4LDk5LDEwMCwxMTEsMTE1LDg1NjQsODU2Niw4NTczLDg1ODcsODU5Miw4NTk2LDEsODc0NiwxMTQsOTksOTcsMTEyLDU5LDEsMTA4MjQsNCwyLDk3LDExNyw4NTc5LDg1ODMsMTEyLDU5LDEsMTA4MjIsMTEyLDU5LDEsMTA4MjYsMTExLDExNiw1OSwxLDg4NDUsMTE0LDU5LDEsMTA4MjEsNTksMyw4NzQ2LDY1MDI0LDQsNCw5NywxMDgsMTE0LDExOCw4NjEwLDg2MjMsODY2Myw4NjcyLDExNCwxMTQsNCwyLDU5LDEwOSw4NjE4LDg2MjAsMSw4NjMxLDU5LDEsMTA1NTYsMTIxLDQsMywxMDEsMTE4LDExOSw4NjMyLDg2NTEsODY1NiwxMTMsNCwyLDExMiwxMTUsODYzOSw4NjQ1LDExNCwxMDEsOTksNTksMSw4OTI2LDExNyw5OSw5OSw1OSwxLDg5MjcsMTAxLDEwMSw1OSwxLDg5MTAsMTAxLDEwMCwxMDMsMTAxLDU5LDEsODkxMSwxMDEsMTEwLDUsMTY0LDEsNTksODY3MCwxLDE2NCwxMDEsOTcsMTE0LDExNCwxMTEsMTE5LDQsMiwxMDgsMTE0LDg2ODQsODY5MCwxMDEsMTAyLDExNiw1OSwxLDg2MzAsMTA1LDEwMywxMDQsMTE2LDU5LDEsODYzMSwxMDEsMTAxLDU5LDEsODkxMCwxMDEsMTAwLDU5LDEsODkxMSw0LDIsOTksMTA1LDg3MTMsODcyMSwxMTEsMTEwLDEwNSwxMTAsMTE2LDU5LDEsODc1NCwxMTAsMTE2LDU5LDEsODc1MywxMDgsOTksMTE2LDEyMSw1OSwxLDkwMDUsNCwxOSw2NSw3Miw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDQsMTA1LDEwNiwxMDgsMTExLDExNCwxMTUsMTE2LDExNywxMTksMTIyLDg3NzMsODc3OCw4NzgzLDg4MjEsODgzOSw4ODU0LDg4ODcsODkxNCw4OTMwLDg5NDQsOTAzNiw5MDQxLDkwNTgsOTE5Nyw5MjI3LDkyNTgsOTI4MSw5Mjk3LDkzMDUsMTE0LDExNCw1OSwxLDg2NTksOTcsMTE0LDU5LDEsMTA1OTcsNCw0LDEwMywxMDgsMTE0LDExNSw4NzkzLDg3OTksODgwNSw4ODA5LDEwMywxMDEsMTE0LDU5LDEsODIyNCwxMDEsMTE2LDEwNCw1OSwxLDg1MDQsMTE0LDU5LDEsODU5NSwxMDQsNCwyLDU5LDExOCw4ODE2LDg4MTgsMSw4MjA4LDU5LDEsODg2Nyw0LDIsMTA3LDEwOCw4ODI3LDg4MzQsOTcsMTE0LDExMSwxMTksNTksMSwxMDUxMSw5Nyw5OSw1OSwxLDczMyw0LDIsOTcsMTIxLDg4NDUsODg1MSwxMTQsMTExLDExMCw1OSwxLDI3MSw1OSwxLDEwNzYsNCwzLDU5LDk3LDExMSw4ODYyLDg4NjQsODg4MCwxLDg1MTgsNCwyLDEwMywxMTQsODg3MCw4ODc2LDEwMywxMDEsMTE0LDU5LDEsODIyNSwxMTQsNTksMSw4NjUwLDExNiwxMTUsMTAxLDExMyw1OSwxLDEwODcxLDQsMywxMDMsMTA4LDEwOSw4ODk1LDg5MDIsODkwNyw1LDE3NiwxLDU5LDg5MDAsMSwxNzYsMTE2LDk3LDU5LDEsOTQ4LDExMiwxMTYsMTIxLDExOCw1OSwxLDEwNjczLDQsMiwxMDUsMTE0LDg5MjAsODkyNiwxMTUsMTA0LDExNiw1OSwxLDEwNjIzLDU5LDMsNTUzNDksNTY2MDksOTcsMTE0LDQsMiwxMDgsMTE0LDg5MzgsODk0MSw1OSwxLDg2NDMsNTksMSw4NjQyLDQsNSw5NywxMDEsMTAzLDExNSwxMTgsODk1Niw4OTg2LDg5ODksODk5Niw5MDAxLDEwOSw0LDMsNTksMTExLDExNSw4OTY1LDg5NjcsODk4MywxLDg5MDAsMTEwLDEwMCw0LDIsNTksMTE1LDg5NzUsODk3NywxLDg5MDAsMTE3LDEwNSwxMTYsNTksMSw5ODMwLDU5LDEsOTgzMCw1OSwxLDE2OCw5NywxMDksMTA5LDk3LDU5LDEsOTg5LDEwNSwxMTAsNTksMSw4OTQ2LDQsMyw1OSwxMDUsMTExLDkwMDksOTAxMSw5MDMxLDEsMjQ3LDEwMCwxMDEsNSwyNDcsMiw1OSwxMTEsOTAyMCw5MDIyLDEsMjQ3LDExMCwxMTYsMTA1LDEwOSwxMDEsMTE1LDU5LDEsODkwMywxMTAsMTIwLDU5LDEsODkwMyw5OSwxMjEsNTksMSwxMTA2LDk5LDQsMiwxMTEsMTE0LDkwNDgsOTA1MywxMTQsMTEwLDU5LDEsODk5MCwxMTEsMTEyLDU5LDEsODk3Myw0LDUsMTA4LDExMiwxMTYsMTE3LDExOSw5MDcwLDkwNzYsOTA4MSw5MTMwLDkxNDQsMTA4LDk3LDExNCw1OSwxLDM2LDEwMiw1OSwzLDU1MzQ5LDU2NjYxLDQsNSw1OSwxMDEsMTA5LDExMiwxMTUsOTA5Myw5MDk1LDkxMDksOTExNiw5MTIyLDEsNzI5LDExMyw0LDIsNTksMTAwLDkxMDIsOTEwNCwxLDg3ODQsMTExLDExNiw1OSwxLDg3ODUsMTA1LDExMCwxMTcsMTE1LDU5LDEsODc2MCwxMDgsMTE3LDExNSw1OSwxLDg3MjQsMTEzLDExNyw5NywxMTQsMTAxLDU5LDEsODg2NSw5OCwxMDgsMTAxLDk4LDk3LDExNCwxMTksMTAxLDEwMCwxMDMsMTAxLDU5LDEsODk2NiwxMTAsNCwzLDk3LDEwMCwxMDQsOTE1Myw5MTYwLDkxNzIsMTE0LDExNCwxMTEsMTE5LDU5LDEsODU5NSwxMTEsMTE5LDExMCw5NywxMTQsMTE0LDExMSwxMTksMTE1LDU5LDEsODY1MCw5NywxMTQsMTEyLDExMSwxMTEsMTEwLDQsMiwxMDgsMTE0LDkxODQsOTE5MCwxMDEsMTAyLDExNiw1OSwxLDg2NDMsMTA1LDEwMywxMDQsMTE2LDU5LDEsODY0Miw0LDIsOTgsOTksOTIwMyw5MjExLDEwNyw5NywxMTQsMTExLDExOSw1OSwxLDEwNTEyLDQsMiwxMTEsMTE0LDkyMTcsOTIyMiwxMTQsMTEwLDU5LDEsODk5MSwxMTEsMTEyLDU5LDEsODk3Miw0LDMsOTksMTExLDExNiw5MjM1LDkyNDgsOTI1Miw0LDIsMTE0LDEyMSw5MjQxLDkyNDUsNTksMyw1NTM0OSw1NjUwNSw1OSwxLDExMDksMTA4LDU5LDEsMTA3NDIsMTE0LDExMSwxMDcsNTksMSwyNzMsNCwyLDEwMCwxMTQsOTI2NCw5MjY5LDExMSwxMTYsNTksMSw4OTQ1LDEwNSw0LDIsNTksMTAyLDkyNzYsOTI3OCwxLDk2NjMsNTksMSw5NjYyLDQsMiw5NywxMDQsOTI4Nyw5MjkyLDExNCwxMTQsNTksMSw4NjkzLDk3LDExNCw1OSwxLDEwNjA3LDk3LDExMCwxMDMsMTA4LDEwMSw1OSwxLDEwNjYyLDQsMiw5OSwxMDUsOTMxMSw5MzE1LDEyMSw1OSwxLDExMTksMTAzLDExNCw5NywxMTQsMTE0LDU5LDEsMTAyMzksNCwxOCw2OCw5Nyw5OSwxMDAsMTAxLDEwMiwxMDMsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDEyMCw5MzYxLDkzNzYsOTM5OCw5NDM5LDk0NDQsOTQ0Nyw5NDYyLDk0OTUsOTUzMSw5NTg1LDk1OTgsOTYxNCw5NjU5LDk3NTUsOTc3MSw5NzkyLDk4MDgsOTgyNiw0LDIsNjgsMTExLDkzNjcsOTM3MiwxMTEsMTE2LDU5LDEsMTA4NzEsMTE2LDU5LDEsODc4NSw0LDIsOTksMTE1LDkzODIsOTM5MiwxMTcsMTE2LDEwMSw1LDIzMywxLDU5LDkzOTAsMSwyMzMsMTE2LDEwMSwxMTQsNTksMSwxMDg2Miw0LDQsOTcsMTA1LDExMSwxMjEsOTQwOCw5NDE0LDk0MzAsOTQzNiwxMTQsMTExLDExMCw1OSwxLDI4MywxMTQsNCwyLDU5LDk5LDk0MjEsOTQyMywxLDg3OTAsNSwyMzQsMSw1OSw5NDI4LDEsMjM0LDEwOCwxMTEsMTEwLDU5LDEsODc4OSw1OSwxLDExMDEsMTExLDExNiw1OSwxLDI3OSw1OSwxLDg1MTksNCwyLDY4LDExNCw5NDUzLDk0NTgsMTExLDExNiw1OSwxLDg3ODYsNTksMyw1NTM0OSw1NjYxMCw0LDMsNTksMTE0LDExNSw5NDcwLDk0NzIsOTQ4MiwxLDEwOTA2LDk3LDExOCwxMDEsNSwyMzIsMSw1OSw5NDgwLDEsMjMyLDQsMiw1OSwxMDAsOTQ4OCw5NDkwLDEsMTA5MDIsMTExLDExNiw1OSwxLDEwOTA0LDQsNCw1OSwxMDUsMTA4LDExNSw5NTA1LDk1MDcsOTUxNSw5NTE4LDEsMTA5MDUsMTEwLDExNiwxMDEsMTE0LDExNSw1OSwxLDkxOTEsNTksMSw4NDY3LDQsMiw1OSwxMDAsOTUyNCw5NTI2LDEsMTA5MDEsMTExLDExNiw1OSwxLDEwOTAzLDQsMyw5NywxMTIsMTE1LDk1MzksOTU0NCw5NTY0LDk5LDExNCw1OSwxLDI3NSwxMTYsMTIxLDQsMyw1OSwxMTUsMTE4LDk1NTQsOTU1Niw5NTYxLDEsODcwOSwxMDEsMTE2LDU5LDEsODcwOSw1OSwxLDg3MDksMTEyLDQsMiw0OSw1OSw5NTcxLDk1ODMsNCwyLDUxLDUyLDk1NzcsOTU4MCw1OSwxLDgxOTYsNTksMSw4MTk3LDEsODE5NSw0LDIsMTAzLDExNSw5NTkxLDk1OTQsNTksMSwzMzEsMTEyLDU5LDEsODE5NCw0LDIsMTAzLDExMiw5NjA0LDk2MDksMTExLDExMCw1OSwxLDI4MSwxMDIsNTksMyw1NTM0OSw1NjY2Miw0LDMsOTcsMTA4LDExNSw5NjIyLDk2MzUsOTY0MCwxMTQsNCwyLDU5LDExNSw5NjI5LDk2MzEsMSw4OTE3LDEwOCw1OSwxLDEwNzIzLDExNywxMTUsNTksMSwxMDg2NSwxMDUsNCwzLDU5LDEwOCwxMTgsOTY0OSw5NjUxLDk2NTYsMSw5NDksMTExLDExMCw1OSwxLDk0OSw1OSwxLDEwMTMsNCw0LDk5LDExNSwxMTcsMTE4LDk2NjksOTY4Niw5NzE2LDk3NDcsNCwyLDEwNSwxMTEsOTY3NSw5NjgwLDExNCw5OSw1OSwxLDg3OTAsMTA4LDExMSwxMTAsNTksMSw4Nzg5LDQsMiwxMDUsMTA4LDk2OTIsOTY5NiwxMDksNTksMSw4NzcwLDk3LDExMCwxMTYsNCwyLDEwMywxMDgsOTcwNSw5NzEwLDExNiwxMTQsNTksMSwxMDkwMiwxMDEsMTE1LDExNSw1OSwxLDEwOTAxLDQsMyw5NywxMDEsMTA1LDk3MjQsOTcyOSw5NzM0LDEwOCwxMTUsNTksMSw2MSwxMTUsMTE2LDU5LDEsODc5OSwxMTgsNCwyLDU5LDY4LDk3NDEsOTc0MywxLDg4MDEsNjgsNTksMSwxMDg3MiwxMTIsOTcsMTE0LDExNSwxMDgsNTksMSwxMDcyNSw0LDIsNjgsOTcsOTc2MSw5NzY2LDExMSwxMTYsNTksMSw4Nzg3LDExNCwxMTQsNTksMSwxMDYwOSw0LDMsOTksMTAwLDEwNSw5Nzc5LDk3ODMsOTc4OCwxMTQsNTksMSw4NDk1LDExMSwxMTYsNTksMSw4Nzg0LDEwOSw1OSwxLDg3NzAsNCwyLDk3LDEwNCw5Nzk4LDk4MDEsNTksMSw5NTEsNSwyNDAsMSw1OSw5ODA2LDEsMjQwLDQsMiwxMDksMTE0LDk4MTQsOTgyMiwxMDgsNSwyMzUsMSw1OSw5ODIwLDEsMjM1LDExMSw1OSwxLDgzNjQsNCwzLDk5LDEwNSwxMTIsOTgzNCw5ODM4LDk4NDMsMTA4LDU5LDEsMzMsMTE1LDExNiw1OSwxLDg3MDcsNCwyLDEwMSwxMTEsOTg0OSw5ODU5LDk5LDExNiw5NywxMTYsMTA1LDExMSwxMTAsNTksMSw4NDk2LDExMCwxMDEsMTEwLDExNiwxMDUsOTcsMTA4LDEwMSw1OSwxLDg1MTksNCwxMiw5Nyw5OSwxMDEsMTAyLDEwNSwxMDYsMTA4LDExMCwxMTEsMTEyLDExNCwxMTUsOTg5Niw5OTEwLDk5MTQsOTkyMSw5OTU0LDk5NjAsOTk2Nyw5OTg5LDk5OTQsMTAwMjcsMTAwMzYsMTAxNjQsMTA4LDEwOCwxMDUsMTEwLDEwMywxMDAsMTExLDExNiwxMTUsMTAxLDExMyw1OSwxLDg3ODYsMTIxLDU5LDEsMTA5MiwxMDksOTcsMTA4LDEwMSw1OSwxLDk3OTIsNCwzLDEwNSwxMDgsMTE0LDk5MjksOTkzNSw5OTUwLDEwOCwxMDUsMTAzLDU5LDEsNjQyNTksNCwyLDEwNSwxMDgsOTk0MSw5OTQ1LDEwMyw1OSwxLDY0MjU2LDEwNSwxMDMsNTksMSw2NDI2MCw1OSwzLDU1MzQ5LDU2NjExLDEwOCwxMDUsMTAzLDU5LDEsNjQyNTcsMTA4LDEwNSwxMDMsNTksMywxMDIsMTA2LDQsMyw5NywxMDgsMTE2LDk5NzUsOTk3OSw5OTg0LDExNiw1OSwxLDk4MzcsMTA1LDEwMyw1OSwxLDY0MjU4LDExMCwxMTUsNTksMSw5NjQ5LDExMSwxMDIsNTksMSw0MDIsNCwyLDExMiwxMTQsMTAwMDAsMTAwMDUsMTAyLDU5LDMsNTUzNDksNTY2NjMsNCwyLDk3LDEwNywxMDAxMSwxMDAxNiwxMDgsMTA4LDU5LDEsODcwNCw0LDIsNTksMTE4LDEwMDIyLDEwMDI0LDEsODkxNiw1OSwxLDEwOTY5LDk3LDExNCwxMTYsMTA1LDExMCwxMTYsNTksMSwxMDc2NSw0LDIsOTcsMTExLDEwMDQyLDEwMTU5LDQsMiw5OSwxMTUsMTAwNDgsMTAxNTUsNCw2LDQ5LDUwLDUxLDUyLDUzLDU1LDEwMDYyLDEwMTAyLDEwMTE0LDEwMTM1LDEwMTM5LDEwMTUxLDQsNiw1MCw1MSw1Miw1Myw1NCw1NiwxMDA3NiwxMDA4MywxMDA4NiwxMDA5MywxMDA5NiwxMDA5OSw1LDE4OSwxLDU5LDEwMDgxLDEsMTg5LDU5LDEsODUzMSw1LDE4OCwxLDU5LDEwMDkxLDEsMTg4LDU5LDEsODUzMyw1OSwxLDg1MzcsNTksMSw4NTM5LDQsMiw1MSw1MywxMDEwOCwxMDExMSw1OSwxLDg1MzIsNTksMSw4NTM0LDQsMyw1Miw1Myw1NiwxMDEyMiwxMDEyOSwxMDEzMiw1LDE5MCwxLDU5LDEwMTI3LDEsMTkwLDU5LDEsODUzNSw1OSwxLDg1NDAsNTMsNTksMSw4NTM2LDQsMiw1NCw1NiwxMDE0NSwxMDE0OCw1OSwxLDg1MzgsNTksMSw4NTQxLDU2LDU5LDEsODU0MiwxMDgsNTksMSw4MjYwLDExOSwxMTAsNTksMSw4OTk0LDk5LDExNCw1OSwzLDU1MzQ5LDU2NTA3LDQsMTcsNjksOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNSwxMDYsMTA4LDExMCwxMTEsMTE0LDExNSwxMTYsMTE4LDEwMjA2LDEwMjE3LDEwMjQ3LDEwMjU0LDEwMjY4LDEwMjczLDEwMzU4LDEwMzYzLDEwMzc0LDEwMzgwLDEwMzg1LDEwNDA2LDEwNDU4LDEwNDY0LDEwNDcwLDEwNDk3LDEwNjEwLDQsMiw1OSwxMDgsMTAyMTIsMTAyMTQsMSw4ODA3LDU5LDEsMTA4OTIsNCwzLDk5LDEwOSwxMTIsMTAyMjUsMTAyMzEsMTAyNDQsMTE3LDExNiwxMDEsNTksMSw1MDEsMTA5LDk3LDQsMiw1OSwxMDAsMTAyMzksMTAyNDEsMSw5NDcsNTksMSw5ODksNTksMSwxMDg4NiwxMTQsMTAxLDExOCwxMDEsNTksMSwyODcsNCwyLDEwNSwxMjEsMTAyNjAsMTAyNjUsMTE0LDk5LDU5LDEsMjg1LDU5LDEsMTA3NSwxMTEsMTE2LDU5LDEsMjg5LDQsNCw1OSwxMDgsMTEzLDExNSwxMDI4MywxMDI4NSwxMDI4OCwxMDMwOCwxLDg4MDUsNTksMSw4OTIzLDQsMyw1OSwxMTMsMTE1LDEwMjk2LDEwMjk4LDEwMzAxLDEsODgwNSw1OSwxLDg4MDcsMTA4LDk3LDExMCwxMTYsNTksMSwxMDg3OCw0LDQsNTksOTksMTAwLDEwOCwxMDMxOCwxMDMyMCwxMDMyNCwxMDM0NSwxLDEwODc4LDk5LDU5LDEsMTA5MjEsMTExLDExNiw0LDIsNTksMTExLDEwMzMyLDEwMzM0LDEsMTA4ODAsNCwyLDU5LDEwOCwxMDM0MCwxMDM0MiwxLDEwODgyLDU5LDEsMTA4ODQsNCwyLDU5LDEwMSwxMDM1MSwxMDM1NCwzLDg5MjMsNjUwMjQsMTE1LDU5LDEsMTA5MDAsMTE0LDU5LDMsNTUzNDksNTY2MTIsNCwyLDU5LDEwMywxMDM2OSwxMDM3MSwxLDg4MTEsNTksMSw4OTIxLDEwOSwxMDEsMTA4LDU5LDEsODUwMyw5OSwxMjEsNTksMSwxMTA3LDQsNCw1OSw2OSw5NywxMDYsMTAzOTUsMTAzOTcsMTA0MDAsMTA0MDMsMSw4ODIzLDU5LDEsMTA4OTgsNTksMSwxMDkxNyw1OSwxLDEwOTE2LDQsNCw2OSw5NywxMDEsMTE1LDEwNDE2LDEwNDE5LDEwNDM0LDEwNDUzLDU5LDEsODgwOSwxMTIsNCwyLDU5LDExMiwxMDQyNiwxMDQyOCwxLDEwODkwLDExNCwxMTEsMTIwLDU5LDEsMTA4OTAsNCwyLDU5LDExMywxMDQ0MCwxMDQ0MiwxLDEwODg4LDQsMiw1OSwxMTMsMTA0NDgsMTA0NTAsMSwxMDg4OCw1OSwxLDg4MDksMTA1LDEwOSw1OSwxLDg5MzUsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjY0LDk3LDExOCwxMDEsNTksMSw5Niw0LDIsOTksMTA1LDEwNDc2LDEwNDgwLDExNCw1OSwxLDg0NTgsMTA5LDQsMyw1OSwxMDEsMTA4LDEwNDg5LDEwNDkxLDEwNDk0LDEsODgxOSw1OSwxLDEwODk0LDU5LDEsMTA4OTYsNSw2Miw2LDU5LDk5LDEwMCwxMDgsMTEzLDExNCwxMDUxMiwxMDUxNCwxMDUyNywxMDUzMiwxMDUzOCwxMDU0NSwxLDYyLDQsMiw5OSwxMDUsMTA1MjAsMTA1MjMsNTksMSwxMDkxOSwxMTQsNTksMSwxMDg3NCwxMTEsMTE2LDU5LDEsODkxOSw4MCw5NywxMTQsNTksMSwxMDY0NSwxMTcsMTAxLDExNSwxMTYsNTksMSwxMDg3Niw0LDUsOTcsMTAwLDEwMSwxMDgsMTE1LDEwNTU3LDEwNTc0LDEwNTc5LDEwNTk5LDEwNjA1LDQsMiwxMTIsMTE0LDEwNTYzLDEwNTcwLDExMiwxMTQsMTExLDEyMCw1OSwxLDEwODg2LDExNCw1OSwxLDEwNjE2LDExMSwxMTYsNTksMSw4OTE5LDExMyw0LDIsMTA4LDExMywxMDU4NiwxMDU5MiwxMDEsMTE1LDExNSw1OSwxLDg5MjMsMTA4LDEwMSwxMTUsMTE1LDU5LDEsMTA4OTIsMTAxLDExNSwxMTUsNTksMSw4ODIzLDEwNSwxMDksNTksMSw4ODE5LDQsMiwxMDEsMTEwLDEwNjE2LDEwNjI2LDExNCwxMTYsMTEwLDEwMSwxMTMsMTEzLDU5LDMsODgwOSw2NTAyNCw2OSw1OSwzLDg4MDksNjUwMjQsNCwxMCw2NSw5Nyw5OCw5OSwxMDEsMTAyLDEwNywxMTEsMTE1LDEyMSwxMDY1MywxMDY1OCwxMDcxMywxMDcxOCwxMDcyNCwxMDc2MCwxMDc2NSwxMDc4NiwxMDg1MCwxMDg3NSwxMTQsMTE0LDU5LDEsODY2MCw0LDQsMTA1LDEwOCwxMDksMTE0LDEwNjY4LDEwNjc0LDEwNjc4LDEwNjg0LDExNCwxMTUsMTEyLDU5LDEsODIwMiwxMDIsNTksMSwxODksMTA1LDEwOCwxMTYsNTksMSw4NDU5LDQsMiwxMDAsMTE0LDEwNjkwLDEwNjk1LDk5LDEyMSw1OSwxLDEwOTgsNCwzLDU5LDk5LDExOSwxMDcwMywxMDcwNSwxMDcxMCwxLDg1OTYsMTA1LDExNCw1OSwxLDEwNTY4LDU5LDEsODYyMSw5NywxMTQsNTksMSw4NDYzLDEwNSwxMTQsOTksNTksMSwyOTMsNCwzLDk3LDEwOCwxMTQsMTA3MzIsMTA3NDgsMTA3NTQsMTE0LDExNiwxMTUsNCwyLDU5LDExNywxMDc0MSwxMDc0MywxLDk4MjksMTA1LDExNiw1OSwxLDk4MjksMTA4LDEwNSwxMTIsNTksMSw4MjMwLDk5LDExMSwxMTAsNTksMSw4ODg5LDExNCw1OSwzLDU1MzQ5LDU2NjEzLDExNSw0LDIsMTAxLDExOSwxMDc3MiwxMDc3OSw5NywxMTQsMTExLDExOSw1OSwxLDEwNTMzLDk3LDExNCwxMTEsMTE5LDU5LDEsMTA1MzQsNCw1LDk3LDEwOSwxMTEsMTEyLDExNCwxMDc5OCwxMDgwMywxMDgwOSwxMDgzOSwxMDg0NCwxMTQsMTE0LDU5LDEsODcwMywxMTYsMTA0LDExNiw1OSwxLDg3NjMsMTA3LDQsMiwxMDgsMTE0LDEwODE2LDEwODI3LDEwMSwxMDIsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MTcsMTA1LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MTgsMTAyLDU5LDMsNTUzNDksNTY2NjUsOTgsOTcsMTE0LDU5LDEsODIxMyw0LDMsOTksMTA4LDExNiwxMDg1OCwxMDg2MywxMDg2OSwxMTQsNTksMyw1NTM0OSw1NjUwOSw5NywxMTUsMTA0LDU5LDEsODQ2MywxMTQsMTExLDEwNyw1OSwxLDI5NSw0LDIsOTgsMTEyLDEwODgxLDEwODg3LDExNywxMDgsMTA4LDU5LDEsODI1OSwxMDQsMTAxLDExMCw1OSwxLDgyMDgsNCwxNSw5Nyw5OSwxMDEsMTAyLDEwMywxMDUsMTA2LDEwOSwxMTAsMTExLDExMiwxMTMsMTE1LDExNiwxMTcsMTA5MjUsMTA5MzYsMTA5NTgsMTA5NzcsMTA5OTAsMTEwMDEsMTEwMzksMTEwNDUsMTExMDEsMTExOTIsMTEyMjAsMTEyMjYsMTEyMzcsMTEyODUsMTEyOTksOTksMTE3LDExNiwxMDEsNSwyMzcsMSw1OSwxMDkzNCwxLDIzNyw0LDMsNTksMTA1LDEyMSwxMDk0NCwxMDk0NiwxMDk1NSwxLDgyOTEsMTE0LDk5LDUsMjM4LDEsNTksMTA5NTMsMSwyMzgsNTksMSwxMDgwLDQsMiw5OSwxMjAsMTA5NjQsMTA5NjgsMTIxLDU5LDEsMTA3Nyw5OSwxMDgsNSwxNjEsMSw1OSwxMDk3NSwxLDE2MSw0LDIsMTAyLDExNCwxMDk4MywxMDk4Niw1OSwxLDg2NjAsNTksMyw1NTM0OSw1NjYxNCwxMTQsOTcsMTE4LDEwMSw1LDIzNiwxLDU5LDEwOTk5LDEsMjM2LDQsNCw1OSwxMDUsMTEwLDExMSwxMTAxMSwxMTAxMywxMTAyOCwxMTAzNCwxLDg1MjAsNCwyLDEwNSwxMTAsMTEwMTksMTEwMjQsMTEwLDExNiw1OSwxLDEwNzY0LDExNiw1OSwxLDg3NDksMTAyLDEwNSwxMTAsNTksMSwxMDcxNiwxMTYsOTcsNTksMSw4NDg5LDEwOCwxMDUsMTAzLDU5LDEsMzA3LDQsMyw5NywxMTEsMTEyLDExMDUzLDExMDkyLDExMDk2LDQsMyw5OSwxMDMsMTE2LDExMDYxLDExMDY1LDExMDg4LDExNCw1OSwxLDI5OSw0LDMsMTAxLDEwOCwxMTIsMTEwNzMsMTEwNzYsMTEwODIsNTksMSw4NDY1LDEwNSwxMTAsMTAxLDU5LDEsODQ2NCw5NywxMTQsMTE2LDU5LDEsODQ2NSwxMDQsNTksMSwzMDUsMTAyLDU5LDEsODg4NywxMDEsMTAwLDU5LDEsNDM3LDQsNSw1OSw5OSwxMDIsMTExLDExNiwxMTExMywxMTExNSwxMTEyMSwxMTEzNiwxMTE0MiwxLDg3MTIsOTcsMTE0LDEwMSw1OSwxLDg0NTMsMTA1LDExMCw0LDIsNTksMTE2LDExMTI5LDExMTMxLDEsODczNCwxMDUsMTAxLDU5LDEsMTA3MTcsMTAwLDExMSwxMTYsNTksMSwzMDUsNCw1LDU5LDk5LDEwMSwxMDgsMTEyLDExMTU0LDExMTU2LDExMTYxLDExMTc5LDExMTg2LDEsODc0Nyw5NywxMDgsNTksMSw4ODkwLDQsMiwxMDMsMTE0LDExMTY3LDExMTczLDEwMSwxMTQsMTE1LDU5LDEsODQ4NCw5OSw5NywxMDgsNTksMSw4ODkwLDk3LDExNCwxMDQsMTA3LDU5LDEsMTA3NzUsMTE0LDExMSwxMDAsNTksMSwxMDgxMiw0LDQsOTksMTAzLDExMiwxMTYsMTEyMDIsMTEyMDYsMTEyMTEsMTEyMTYsMTIxLDU5LDEsMTEwNSwxMTEsMTEwLDU5LDEsMzAzLDEwMiw1OSwzLDU1MzQ5LDU2NjY2LDk3LDU5LDEsOTUzLDExNCwxMTEsMTAwLDU5LDEsMTA4MTIsMTE3LDEwMSwxMTUsMTE2LDUsMTkxLDEsNTksMTEyMzUsMSwxOTEsNCwyLDk5LDEwNSwxMTI0MywxMTI0OCwxMTQsNTksMyw1NTM0OSw1NjUxMCwxMTAsNCw1LDU5LDY5LDEwMCwxMTUsMTE4LDExMjYxLDExMjYzLDExMjY2LDExMjcxLDExMjgyLDEsODcxMiw1OSwxLDg5NTMsMTExLDExNiw1OSwxLDg5NDksNCwyLDU5LDExOCwxMTI3NywxMTI3OSwxLDg5NDgsNTksMSw4OTQ3LDU5LDEsODcxMiw0LDIsNTksMTA1LDExMjkxLDExMjkzLDEsODI5MCwxMDgsMTAwLDEwMSw1OSwxLDI5Nyw0LDIsMTA3LDEwOSwxMTMwNSwxMTMxMCw5OSwxMjEsNTksMSwxMTEwLDEwOCw1LDIzOSwxLDU5LDExMzE2LDEsMjM5LDQsNiw5OSwxMDIsMTA5LDExMSwxMTUsMTE3LDExMzMyLDExMzQ2LDExMzUxLDExMzU3LDExMzYzLDExMzgwLDQsMiwxMDUsMTIxLDExMzM4LDExMzQzLDExNCw5OSw1OSwxLDMwOSw1OSwxLDEwODEsMTE0LDU5LDMsNTUzNDksNTY2MTUsOTcsMTE2LDEwNCw1OSwxLDU2NywxMTIsMTAyLDU5LDMsNTUzNDksNTY2NjcsNCwyLDk5LDEwMSwxMTM2OSwxMTM3NCwxMTQsNTksMyw1NTM0OSw1NjUxMSwxMTQsOTksMTIxLDU5LDEsMTExMiwxMDcsOTksMTIxLDU5LDEsMTEwOCw0LDgsOTcsOTksMTAyLDEwMywxMDQsMTA2LDExMSwxMTUsMTE0MDQsMTE0MTgsMTE0MzMsMTE0MzgsMTE0NDUsMTE0NTAsMTE0NTUsMTE0NjEsMTEyLDExMiw5Nyw0LDIsNTksMTE4LDExNDEzLDExNDE1LDEsOTU0LDU5LDEsMTAwOCw0LDIsMTAxLDEyMSwxMTQyNCwxMTQzMCwxMDAsMTA1LDEwOCw1OSwxLDMxMSw1OSwxLDEwODIsMTE0LDU5LDMsNTUzNDksNTY2MTYsMTE0LDEwMSwxMDEsMTEwLDU5LDEsMzEyLDk5LDEyMSw1OSwxLDEwOTMsOTksMTIxLDU5LDEsMTExNiwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NjgsOTksMTE0LDU5LDMsNTUzNDksNTY1MTIsNCwyMyw2NSw2Niw2OSw3Miw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNiwxMDgsMTA5LDExMCwxMTEsMTEyLDExNCwxMTUsMTE2LDExNywxMTgsMTE1MTUsMTE1MzgsMTE1NDQsMTE1NTUsMTE1NjAsMTE3MjEsMTE3ODAsMTE4MTgsMTE4NjgsMTIxMzYsMTIxNjAsMTIxNzEsMTIyMDMsMTIyMDgsMTIyNDYsMTIyNzUsMTIzMjcsMTI1MDksMTI1MjMsMTI1NjksMTI2NDEsMTI3MzIsMTI3NTIsNCwzLDk3LDExNCwxMTYsMTE1MjMsMTE1MjgsMTE1MzIsMTE0LDExNCw1OSwxLDg2NjYsMTE0LDU5LDEsODY1Niw5NywxMDUsMTA4LDU5LDEsMTA1MjMsOTcsMTE0LDExNCw1OSwxLDEwNTEwLDQsMiw1OSwxMDMsMTE1NTAsMTE1NTIsMSw4ODA2LDU5LDEsMTA4OTEsOTcsMTE0LDU5LDEsMTA1OTQsNCw5LDk5LDEwMSwxMDMsMTA5LDExMCwxMTIsMTEzLDExNCwxMTYsMTE1ODAsMTE1ODYsMTE1OTQsMTE2MDAsMTE2MDYsMTE2MjQsMTE2MjcsMTE2MzYsMTE2OTQsMTE3LDExNiwxMDEsNTksMSwzMTQsMTA5LDExMiwxMTYsMTIxLDExOCw1OSwxLDEwNjc2LDExNCw5NywxMTAsNTksMSw4NDY2LDk4LDEwMCw5Nyw1OSwxLDk1NSwxMDMsNCwzLDU5LDEwMCwxMDgsMTE2MTUsMTE2MTcsMTE2MjAsMSwxMDIxNiw1OSwxLDEwNjQxLDEwMSw1OSwxLDEwMjE2LDU5LDEsMTA4ODUsMTE3LDExMSw1LDE3MSwxLDU5LDExNjM0LDEsMTcxLDExNCw0LDgsNTksOTgsMTAyLDEwNCwxMDgsMTEyLDExNSwxMTYsMTE2NTUsMTE2NTcsMTE2NjksMTE2NzMsMTE2NzcsMTE2ODEsMTE2ODUsMTE2OTAsMSw4NTkyLDQsMiw1OSwxMDIsMTE2NjMsMTE2NjUsMSw4Njc2LDExNSw1OSwxLDEwNTI3LDExNSw1OSwxLDEwNTI1LDEwNyw1OSwxLDg2MTcsMTEyLDU5LDEsODYxOSwxMDgsNTksMSwxMDU1MywxMDUsMTA5LDU5LDEsMTA2MTEsMTA4LDU5LDEsODYxMCw0LDMsNTksOTcsMTAxLDExNzAyLDExNzA0LDExNzA5LDEsMTA5MjMsMTA1LDEwOCw1OSwxLDEwNTIxLDQsMiw1OSwxMTUsMTE3MTUsMTE3MTcsMSwxMDkyNSw1OSwzLDEwOTI1LDY1MDI0LDQsMyw5Nyw5OCwxMTQsMTE3MjksMTE3MzQsMTE3MzksMTE0LDExNCw1OSwxLDEwNTA4LDExNCwxMDcsNTksMSwxMDA5OCw0LDIsOTcsMTA3LDExNzQ1LDExNzU4LDk5LDQsMiwxMDEsMTA3LDExNzUyLDExNzU1LDU5LDEsMTIzLDU5LDEsOTEsNCwyLDEwMSwxMTUsMTE3NjQsMTE3NjcsNTksMSwxMDYzNSwxMDgsNCwyLDEwMCwxMTcsMTE3NzQsMTE3NzcsNTksMSwxMDYzOSw1OSwxLDEwNjM3LDQsNCw5NywxMDEsMTE3LDEyMSwxMTc5MCwxMTc5NiwxMTgxMSwxMTgxNSwxMTQsMTExLDExMCw1OSwxLDMxOCw0LDIsMTAwLDEwNSwxMTgwMiwxMTgwNywxMDUsMTA4LDU5LDEsMzE2LDEwOCw1OSwxLDg5NjgsOTgsNTksMSwxMjMsNTksMSwxMDgzLDQsNCw5OSwxMTMsMTE0LDExNSwxMTgyOCwxMTgzMiwxMTg0NSwxMTg2NCw5Nyw1OSwxLDEwNTUwLDExNywxMTEsNCwyLDU5LDExNCwxMTg0MCwxMTg0MiwxLDgyMjAsNTksMSw4MjIyLDQsMiwxMDAsMTE3LDExODUxLDExODU3LDEwNCw5NywxMTQsNTksMSwxMDU5OSwxMTUsMTA0LDk3LDExNCw1OSwxLDEwNTcxLDEwNCw1OSwxLDg2MjYsNCw1LDU5LDEwMiwxMDMsMTEzLDExNSwxMTg4MCwxMTg4MiwxMjAwOCwxMjAxMSwxMjAzMSwxLDg4MDQsMTE2LDQsNSw5NywxMDQsMTA4LDExNCwxMTYsMTE4OTUsMTE5MTMsMTE5MzUsMTE5NDcsMTE5OTYsMTE0LDExNCwxMTEsMTE5LDQsMiw1OSwxMTYsMTE5MDUsMTE5MDcsMSw4NTkyLDk3LDEwNSwxMDgsNTksMSw4NjEwLDk3LDExNCwxMTIsMTExLDExMSwxMTAsNCwyLDEwMCwxMTcsMTE5MjUsMTE5MzEsMTExLDExOSwxMTAsNTksMSw4NjM3LDExMiw1OSwxLDg2MzYsMTAxLDEwMiwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDExNSw1OSwxLDg2NDcsMTA1LDEwMywxMDQsMTE2LDQsMyw5NywxMDQsMTE1LDExOTU5LDExOTc0LDExOTg0LDExNCwxMTQsMTExLDExOSw0LDIsNTksMTE1LDExOTY5LDExOTcxLDEsODU5Niw1OSwxLDg2NDYsOTcsMTE0LDExMiwxMTEsMTExLDExMCwxMTUsNTksMSw4NjUxLDExMywxMTcsMTA1LDEwMyw5NywxMTQsMTE0LDExMSwxMTksNTksMSw4NjIxLDEwNCwxMTQsMTAxLDEwMSwxMTYsMTA1LDEwOSwxMDEsMTE1LDU5LDEsODkwNyw1OSwxLDg5MjIsNCwzLDU5LDExMywxMTUsMTIwMTksMTIwMjEsMTIwMjQsMSw4ODA0LDU5LDEsODgwNiwxMDgsOTcsMTEwLDExNiw1OSwxLDEwODc3LDQsNSw1OSw5OSwxMDAsMTAzLDExNSwxMjA0MywxMjA0NSwxMjA0OSwxMjA3MCwxMjA4MywxLDEwODc3LDk5LDU5LDEsMTA5MjAsMTExLDExNiw0LDIsNTksMTExLDEyMDU3LDEyMDU5LDEsMTA4NzksNCwyLDU5LDExNCwxMjA2NSwxMjA2NywxLDEwODgxLDU5LDEsMTA4ODMsNCwyLDU5LDEwMSwxMjA3NiwxMjA3OSwzLDg5MjIsNjUwMjQsMTE1LDU5LDEsMTA4OTksNCw1LDk3LDEwMCwxMDEsMTAzLDExNSwxMjA5NSwxMjEwMywxMjEwOCwxMjEyNiwxMjEzMSwxMTIsMTEyLDExNCwxMTEsMTIwLDU5LDEsMTA4ODUsMTExLDExNiw1OSwxLDg5MTgsMTEzLDQsMiwxMDMsMTEzLDEyMTE1LDEyMTIwLDExNiwxMTQsNTksMSw4OTIyLDEwMywxMTYsMTE0LDU5LDEsMTA4OTEsMTE2LDExNCw1OSwxLDg4MjIsMTA1LDEwOSw1OSwxLDg4MTgsNCwzLDEwNSwxMDgsMTE0LDEyMTQ0LDEyMTUwLDEyMTU2LDExNSwxMDQsMTE2LDU5LDEsMTA2MjAsMTExLDExMSwxMTQsNTksMSw4OTcwLDU5LDMsNTUzNDksNTY2MTcsNCwyLDU5LDY5LDEyMTY2LDEyMTY4LDEsODgyMiw1OSwxLDEwODk3LDQsMiw5Nyw5OCwxMjE3NywxMjE5OCwxMTQsNCwyLDEwMCwxMTcsMTIxODQsMTIxODcsNTksMSw4NjM3LDQsMiw1OSwxMDgsMTIxOTMsMTIxOTUsMSw4NjM2LDU5LDEsMTA2MDIsMTA4LDEwNyw1OSwxLDk2MDQsOTksMTIxLDU5LDEsMTExMyw0LDUsNTksOTcsOTksMTA0LDExNiwxMjIyMCwxMjIyMiwxMjIyNywxMjIzNSwxMjI0MSwxLDg4MTAsMTE0LDExNCw1OSwxLDg2NDcsMTExLDExNCwxMTAsMTAxLDExNCw1OSwxLDg5OTAsOTcsMTE0LDEwMCw1OSwxLDEwNjAzLDExNCwxMDUsNTksMSw5NzIyLDQsMiwxMDUsMTExLDEyMjUyLDEyMjU4LDEwMCwxMTEsMTE2LDU5LDEsMzIwLDExNywxMTUsMTE2LDQsMiw1OSw5NywxMjI2NywxMjI2OSwxLDkxMzYsOTksMTA0LDEwMSw1OSwxLDkxMzYsNCw0LDY5LDk3LDEwMSwxMTUsMTIyODUsMTIyODgsMTIzMDMsMTIzMjIsNTksMSw4ODA4LDExMiw0LDIsNTksMTEyLDEyMjk1LDEyMjk3LDEsMTA4ODksMTE0LDExMSwxMjAsNTksMSwxMDg4OSw0LDIsNTksMTEzLDEyMzA5LDEyMzExLDEsMTA4ODcsNCwyLDU5LDExMywxMjMxNywxMjMxOSwxLDEwODg3LDU5LDEsODgwOCwxMDUsMTA5LDU5LDEsODkzNCw0LDgsOTcsOTgsMTEwLDExMSwxMTIsMTE2LDExOSwxMjIsMTIzNDUsMTIzNTksMTIzNjQsMTI0MjEsMTI0NDYsMTI0NjcsMTI0NzQsMTI0OTAsNCwyLDExMCwxMTQsMTIzNTEsMTIzNTUsMTAzLDU5LDEsMTAyMjAsMTE0LDU5LDEsODcwMSwxMTQsMTA3LDU5LDEsMTAyMTQsMTAzLDQsMywxMDgsMTA5LDExNCwxMjM3MywxMjQwMSwxMjQwOSwxMDEsMTAyLDExNiw0LDIsOTcsMTE0LDEyMzgyLDEyMzg5LDExNCwxMTQsMTExLDExOSw1OSwxLDEwMjI5LDEwNSwxMDMsMTA0LDExNiw5NywxMTQsMTE0LDExMSwxMTksNTksMSwxMDIzMSw5NywxMTIsMTE1LDExNiwxMTEsNTksMSwxMDIzNiwxMDUsMTAzLDEwNCwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDU5LDEsMTAyMzAsMTEyLDk3LDExNCwxMTQsMTExLDExOSw0LDIsMTA4LDExNCwxMjQzMywxMjQzOSwxMDEsMTAyLDExNiw1OSwxLDg2MTksMTA1LDEwMywxMDQsMTE2LDU5LDEsODYyMCw0LDMsOTcsMTAyLDEwOCwxMjQ1NCwxMjQ1OCwxMjQ2MiwxMTQsNTksMSwxMDYyOSw1OSwzLDU1MzQ5LDU2NjY5LDExNywxMTUsNTksMSwxMDc5NywxMDUsMTA5LDEwMSwxMTUsNTksMSwxMDgwNCw0LDIsOTcsOTgsMTI0ODAsMTI0ODUsMTE1LDExNiw1OSwxLDg3MjcsOTcsMTE0LDU5LDEsOTUsNCwzLDU5LDEwMSwxMDIsMTI0OTgsMTI1MDAsMTI1MDYsMSw5Njc0LDExMCwxMDMsMTAxLDU5LDEsOTY3NCw1OSwxLDEwNzMxLDk3LDExNCw0LDIsNTksMTA4LDEyNTE3LDEyNTE5LDEsNDAsMTE2LDU5LDEsMTA2NDMsNCw1LDk3LDk5LDEwNCwxMDksMTE2LDEyNTM1LDEyNTQwLDEyNTQ4LDEyNTYxLDEyNTY0LDExNCwxMTQsNTksMSw4NjQ2LDExMSwxMTQsMTEwLDEwMSwxMTQsNTksMSw4OTkxLDk3LDExNCw0LDIsNTksMTAwLDEyNTU2LDEyNTU4LDEsODY1MSw1OSwxLDEwNjA1LDU5LDEsODIwNiwxMTQsMTA1LDU5LDEsODg5NSw0LDYsOTcsOTksMTA0LDEwNSwxMTMsMTE2LDEyNTgzLDEyNTg5LDEyNTk0LDEyNTk3LDEyNjE0LDEyNjM1LDExMywxMTcsMTExLDU5LDEsODI0OSwxMTQsNTksMyw1NTM0OSw1NjUxMyw1OSwxLDg2MjQsMTA5LDQsMyw1OSwxMDEsMTAzLDEyNjA2LDEyNjA4LDEyNjExLDEsODgxOCw1OSwxLDEwODkzLDU5LDEsMTA4OTUsNCwyLDk4LDExNywxMjYyMCwxMjYyMyw1OSwxLDkxLDExMSw0LDIsNTksMTE0LDEyNjMwLDEyNjMyLDEsODIxNiw1OSwxLDgyMTgsMTE0LDExMSwxMDcsNTksMSwzMjIsNSw2MCw4LDU5LDk5LDEwMCwxMDQsMTA1LDEwOCwxMTMsMTE0LDEyNjYwLDEyNjYyLDEyNjc1LDEyNjgwLDEyNjg2LDEyNjkyLDEyNjk4LDEyNzA1LDEsNjAsNCwyLDk5LDEwNSwxMjY2OCwxMjY3MSw1OSwxLDEwOTE4LDExNCw1OSwxLDEwODczLDExMSwxMTYsNTksMSw4OTE4LDExNCwxMDEsMTAxLDU5LDEsODkwNywxMDksMTAxLDExNSw1OSwxLDg5MDUsOTcsMTE0LDExNCw1OSwxLDEwNjE0LDExNywxMDEsMTE1LDExNiw1OSwxLDEwODc1LDQsMiw4MCwxMDUsMTI3MTEsMTI3MTYsOTcsMTE0LDU5LDEsMTA2NDYsNCwzLDU5LDEwMSwxMDIsMTI3MjQsMTI3MjYsMTI3MjksMSw5NjY3LDU5LDEsODg4NCw1OSwxLDk2NjYsMTE0LDQsMiwxMDAsMTE3LDEyNzM5LDEyNzQ2LDExNSwxMDQsOTcsMTE0LDU5LDEsMTA1NzAsMTA0LDk3LDExNCw1OSwxLDEwNTk4LDQsMiwxMDEsMTEwLDEyNzU4LDEyNzY4LDExNCwxMTYsMTEwLDEwMSwxMTMsMTEzLDU5LDMsODgwOCw2NTAyNCw2OSw1OSwzLDg4MDgsNjUwMjQsNCwxNCw2OCw5Nyw5OSwxMDAsMTAxLDEwMiwxMDQsMTA1LDEwOCwxMTAsMTExLDExMiwxMTUsMTE3LDEyODAzLDEyODA5LDEyODkzLDEyOTA4LDEyOTE0LDEyOTI4LDEyOTMzLDEyOTM3LDEzMDExLDEzMDI1LDEzMDMyLDEzMDQ5LDEzMDUyLDEzMDY5LDY4LDExMSwxMTYsNTksMSw4NzYyLDQsNCw5OSwxMDgsMTEyLDExNCwxMjgxOSwxMjgyNywxMjg0OSwxMjg4NywxMTQsNSwxNzUsMSw1OSwxMjgyNSwxLDE3NSw0LDIsMTAxLDExNiwxMjgzMywxMjgzNiw1OSwxLDk3OTQsNCwyLDU5LDEwMSwxMjg0MiwxMjg0NCwxLDEwMDE2LDExNSwxMDEsNTksMSwxMDAxNiw0LDIsNTksMTE1LDEyODU1LDEyODU3LDEsODYxNCwxMTYsMTExLDQsNCw1OSwxMDAsMTA4LDExNywxMjg2OSwxMjg3MSwxMjg3NywxMjg4MywxLDg2MTQsMTExLDExOSwxMTAsNTksMSw4NjE1LDEwMSwxMDIsMTE2LDU5LDEsODYxMiwxMTIsNTksMSw4NjEzLDEwNywxMDEsMTE0LDU5LDEsOTY0Niw0LDIsMTExLDEyMSwxMjg5OSwxMjkwNSwxMDksMTA5LDk3LDU5LDEsMTA3OTMsNTksMSwxMDg0LDk3LDExNSwxMDQsNTksMSw4MjEyLDk3LDExNSwxMTcsMTE0LDEwMSwxMDAsOTcsMTEwLDEwMywxMDgsMTAxLDU5LDEsODczNywxMTQsNTksMyw1NTM0OSw1NjYxOCwxMTEsNTksMSw4NDg3LDQsMyw5OSwxMDAsMTEwLDEyOTQ1LDEyOTU0LDEyOTg1LDExNCwxMTEsNSwxODEsMSw1OSwxMjk1MiwxLDE4MSw0LDQsNTksOTcsOTksMTAwLDEyOTY0LDEyOTY2LDEyOTcxLDEyOTc2LDEsODczOSwxMTUsMTE2LDU5LDEsNDIsMTA1LDExNCw1OSwxLDEwOTkyLDExMSwxMTYsNSwxODMsMSw1OSwxMjk4MywxLDE4MywxMTcsMTE1LDQsMyw1OSw5OCwxMDAsMTI5OTUsMTI5OTcsMTMwMDAsMSw4NzIyLDU5LDEsODg2Myw0LDIsNTksMTE3LDEzMDA2LDEzMDA4LDEsODc2MCw1OSwxLDEwNzk0LDQsMiw5OSwxMDAsMTMwMTcsMTMwMjEsMTEyLDU5LDEsMTA5NzEsMTE0LDU5LDEsODIzMCwxMTIsMTA4LDExNywxMTUsNTksMSw4NzIzLDQsMiwxMDAsMTEyLDEzMDM4LDEzMDQ0LDEwMSwxMDgsMTE1LDU5LDEsODg3MSwxMDIsNTksMyw1NTM0OSw1NjY3MCw1OSwxLDg3MjMsNCwyLDk5LDExNiwxMzA1OCwxMzA2MywxMTQsNTksMyw1NTM0OSw1NjUxNCwxMTIsMTExLDExNSw1OSwxLDg3NjYsNCwzLDU5LDEwOCwxMDksMTMwNzcsMTMwNzksMTMwODcsMSw5NTYsMTE2LDEwNSwxMDksOTcsMTEyLDU5LDEsODg4OCw5NywxMTIsNTksMSw4ODg4LDQsMjQsNzEsNzYsODIsODYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwOCwxMDksMTExLDExMiwxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMzE0MiwxMzE2NSwxMzIxNywxMzIyOSwxMzI0NywxMzMzMCwxMzM1OSwxMzQxNCwxMzQyMCwxMzUwOCwxMzUxMywxMzU3OSwxMzYwMiwxMzYyNiwxMzYzMSwxMzc2MiwxMzc2NywxMzg1NSwxMzkzNiwxMzk5NSwxNDIxNCwxNDI4NSwxNDMxMiwxNDQzMiw0LDIsMTAzLDExNiwxMzE0OCwxMzE1Miw1OSwzLDg5MjEsODI0LDQsMiw1OSwxMTgsMTMxNTgsMTMxNjEsMyw4ODExLDg0MDIsNTksMyw4ODExLDgyNCw0LDMsMTAxLDEwOCwxMTYsMTMxNzMsMTMyMDAsMTMyMDQsMTAyLDExNiw0LDIsOTcsMTE0LDEzMTgxLDEzMTg4LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NTMsMTA1LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NTQsNTksMyw4OTIwLDgyNCw0LDIsNTksMTE4LDEzMjEwLDEzMjEzLDMsODgxMCw4NDAyLDU5LDMsODgxMCw4MjQsMTA1LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2NTUsNCwyLDY4LDEwMCwxMzIzNSwxMzI0MSw5NywxMTUsMTA0LDU5LDEsODg3OSw5NywxMTUsMTA0LDU5LDEsODg3OCw0LDUsOTgsOTksMTEwLDExMiwxMTYsMTMyNTksMTMyNjQsMTMyNzAsMTMyNzUsMTMzMDgsMTA4LDk3LDU5LDEsODcxMSwxMTcsMTE2LDEwMSw1OSwxLDMyNCwxMDMsNTksMyw4NzM2LDg0MDIsNCw1LDU5LDY5LDEwNSwxMTEsMTEyLDEzMjg3LDEzMjg5LDEzMjkzLDEzMjk4LDEzMzAyLDEsODc3Nyw1OSwzLDEwODY0LDgyNCwxMDAsNTksMyw4Nzc5LDgyNCwxMTUsNTksMSwzMjksMTE0LDExMSwxMjAsNTksMSw4Nzc3LDExNywxMTQsNCwyLDU5LDk3LDEzMzE2LDEzMzE4LDEsOTgzOCwxMDgsNCwyLDU5LDExNSwxMzMyNSwxMzMyNywxLDk4MzgsNTksMSw4NDY5LDQsMiwxMTUsMTE3LDEzMzM2LDEzMzQ0LDExMiw1LDE2MCwxLDU5LDEzMzQyLDEsMTYwLDEwOSwxMTIsNCwyLDU5LDEwMSwxMzM1MiwxMzM1NSwzLDg3ODIsODI0LDU5LDMsODc4Myw4MjQsNCw1LDk3LDEwMSwxMTEsMTE3LDEyMSwxMzM3MSwxMzM4NSwxMzM5MSwxMzQwNywxMzQxMSw0LDIsMTEyLDExNCwxMzM3NywxMzM4MCw1OSwxLDEwODE5LDExMSwxMTAsNTksMSwzMjgsMTAwLDEwNSwxMDgsNTksMSwzMjYsMTEwLDEwMyw0LDIsNTksMTAwLDEzMzk5LDEzNDAxLDEsODc3NSwxMTEsMTE2LDU5LDMsMTA4NjEsODI0LDExMiw1OSwxLDEwODE4LDU5LDEsMTA4NSw5NywxMTUsMTA0LDU5LDEsODIxMSw0LDcsNTksNjUsOTcsMTAwLDExMywxMTUsMTIwLDEzNDM2LDEzNDM4LDEzNDQzLDEzNDY2LDEzNDcyLDEzNDc4LDEzNDk0LDEsODgwMCwxMTQsMTE0LDU5LDEsODY2MywxMTQsNCwyLDEwNCwxMTQsMTM0NTAsMTM0NTQsMTA3LDU5LDEsMTA1MzIsNCwyLDU5LDExMSwxMzQ2MCwxMzQ2MiwxLDg1OTksMTE5LDU5LDEsODU5OSwxMTEsMTE2LDU5LDMsODc4NCw4MjQsMTE3LDEwNSwxMTgsNTksMSw4ODAyLDQsMiwxMDEsMTA1LDEzNDg0LDEzNDg5LDk3LDExNCw1OSwxLDEwNTM2LDEwOSw1OSwzLDg3NzAsODI0LDEwNSwxMTUsMTE2LDQsMiw1OSwxMTUsMTM1MDMsMTM1MDUsMSw4NzA4LDU5LDEsODcwOCwxMTQsNTksMyw1NTM0OSw1NjYxOSw0LDQsNjksMTAxLDExNSwxMTYsMTM1MjMsMTM1MjcsMTM1NjMsMTM1NjgsNTksMyw4ODA3LDgyNCw0LDMsNTksMTEzLDExNSwxMzUzNSwxMzUzNywxMzU1OSwxLDg4MTcsNCwzLDU5LDExMywxMTUsMTM1NDUsMTM1NDcsMTM1NTEsMSw4ODE3LDU5LDMsODgwNyw4MjQsMTA4LDk3LDExMCwxMTYsNTksMywxMDg3OCw4MjQsNTksMywxMDg3OCw4MjQsMTA1LDEwOSw1OSwxLDg4MjEsNCwyLDU5LDExNCwxMzU3NCwxMzU3NiwxLDg4MTUsNTksMSw4ODE1LDQsMyw2NSw5NywxMTIsMTM1ODcsMTM1OTIsMTM1OTcsMTE0LDExNCw1OSwxLDg2NTQsMTE0LDExNCw1OSwxLDg2MjIsOTcsMTE0LDU5LDEsMTA5OTQsNCwzLDU5LDExNSwxMTgsMTM2MTAsMTM2MTIsMTM2MjMsMSw4NzE1LDQsMiw1OSwxMDAsMTM2MTgsMTM2MjAsMSw4OTU2LDU5LDEsODk1NCw1OSwxLDg3MTUsOTksMTIxLDU5LDEsMTExNCw0LDcsNjUsNjksOTcsMTAwLDEwMSwxMTUsMTE2LDEzNjQ3LDEzNjUyLDEzNjU2LDEzNjYxLDEzNjY1LDEzNzM3LDEzNzQyLDExNCwxMTQsNTksMSw4NjUzLDU5LDMsODgwNiw4MjQsMTE0LDExNCw1OSwxLDg2MDIsMTE0LDU5LDEsODIyOSw0LDQsNTksMTAyLDExMywxMTUsMTM2NzUsMTM2NzcsMTM3MDMsMTM3MjUsMSw4ODE2LDExNiw0LDIsOTcsMTE0LDEzNjg0LDEzNjkxLDExNCwxMTQsMTExLDExOSw1OSwxLDg2MDIsMTA1LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MjIsNCwzLDU5LDExMywxMTUsMTM3MTEsMTM3MTMsMTM3MTcsMSw4ODE2LDU5LDMsODgwNiw4MjQsMTA4LDk3LDExMCwxMTYsNTksMywxMDg3Nyw4MjQsNCwyLDU5LDExNSwxMzczMSwxMzczNCwzLDEwODc3LDgyNCw1OSwxLDg4MTQsMTA1LDEwOSw1OSwxLDg4MjAsNCwyLDU5LDExNCwxMzc0OCwxMzc1MCwxLDg4MTQsMTA1LDQsMiw1OSwxMDEsMTM3NTcsMTM3NTksMSw4OTM4LDU5LDEsODk0MCwxMDUsMTAwLDU5LDEsODc0MCw0LDIsMTEyLDExNiwxMzc3MywxMzc3OCwxMDIsNTksMyw1NTM0OSw1NjY3MSw1LDE3MiwzLDU5LDEwNSwxMTAsMTM3ODcsMTM3ODksMTM4MjksMSwxNzIsMTEwLDQsNCw1OSw2OSwxMDAsMTE4LDEzODAwLDEzODAyLDEzODA2LDEzODEyLDEsODcxMyw1OSwzLDg5NTMsODI0LDExMSwxMTYsNTksMyw4OTQ5LDgyNCw0LDMsOTcsOTgsOTksMTM4MjAsMTM4MjMsMTM4MjYsNTksMSw4NzEzLDU5LDEsODk1MSw1OSwxLDg5NTAsMTA1LDQsMiw1OSwxMTgsMTM4MzYsMTM4MzgsMSw4NzE2LDQsMyw5Nyw5OCw5OSwxMzg0NiwxMzg0OSwxMzg1Miw1OSwxLDg3MTYsNTksMSw4OTU4LDU5LDEsODk1Nyw0LDMsOTcsMTExLDExNCwxMzg2MywxMzg5MiwxMzg5OSwxMTQsNCw0LDU5LDk3LDExNSwxMTYsMTM4NzQsMTM4NzYsMTM4ODMsMTM4ODgsMSw4NzQyLDEwOCwxMDgsMTAxLDEwOCw1OSwxLDg3NDIsMTA4LDU5LDMsMTEwMDUsODQyMSw1OSwzLDg3MDYsODI0LDEwOCwxMDUsMTEwLDExNiw1OSwxLDEwNzcyLDQsMyw1OSw5OSwxMDEsMTM5MDcsMTM5MDksMTM5MTQsMSw4ODMyLDExNywxMDEsNTksMSw4OTI4LDQsMiw1OSw5OSwxMzkyMCwxMzkyMywzLDEwOTI3LDgyNCw0LDIsNTksMTAxLDEzOTI5LDEzOTMxLDEsODgzMiwxMTMsNTksMywxMDkyNyw4MjQsNCw0LDY1LDk3LDEwNSwxMTYsMTM5NDYsMTM5NTEsMTM5NzEsMTM5ODIsMTE0LDExNCw1OSwxLDg2NTUsMTE0LDExNCw0LDMsNTksOTksMTE5LDEzOTYxLDEzOTYzLDEzOTY3LDEsODYwMyw1OSwzLDEwNTQ3LDgyNCw1OSwzLDg2MDUsODI0LDEwMywxMDQsMTE2LDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MDMsMTE0LDEwNSw0LDIsNTksMTAxLDEzOTkwLDEzOTkyLDEsODkzOSw1OSwxLDg5NDEsNCw3LDk5LDEwNCwxMDUsMTA5LDExMiwxMTMsMTE3LDE0MDExLDE0MDM2LDE0MDYwLDE0MDgwLDE0MDg1LDE0MDkwLDE0MTA2LDQsNCw1OSw5OSwxMDEsMTE0LDE0MDIxLDE0MDIzLDE0MDI4LDE0MDMyLDEsODgzMywxMTcsMTAxLDU5LDEsODkyOSw1OSwzLDEwOTI4LDgyNCw1OSwzLDU1MzQ5LDU2NTE1LDExMSwxMTQsMTE2LDQsMiwxMDksMTEyLDE0MDQ1LDE0MDUwLDEwNSwxMDAsNTksMSw4NzQwLDk3LDExNCw5NywxMDgsMTA4LDEwMSwxMDgsNTksMSw4NzQyLDEwOSw0LDIsNTksMTAxLDE0MDY3LDE0MDY5LDEsODc2OSw0LDIsNTksMTEzLDE0MDc1LDE0MDc3LDEsODc3Miw1OSwxLDg3NzIsMTA1LDEwMCw1OSwxLDg3NDAsOTcsMTE0LDU5LDEsODc0MiwxMTUsMTE3LDQsMiw5OCwxMTIsMTQwOTgsMTQxMDIsMTAxLDU5LDEsODkzMCwxMDEsNTksMSw4OTMxLDQsMyw5OCw5OSwxMTIsMTQxMTQsMTQxNTcsMTQxNzEsNCw0LDU5LDY5LDEwMSwxMTUsMTQxMjQsMTQxMjYsMTQxMzAsMTQxMzMsMSw4ODM2LDU5LDMsMTA5NDksODI0LDU5LDEsODg0MCwxMDEsMTE2LDQsMiw1OSwxMDEsMTQxNDEsMTQxNDQsMyw4ODM0LDg0MDIsMTEzLDQsMiw1OSwxMTMsMTQxNTEsMTQxNTMsMSw4ODQwLDU5LDMsMTA5NDksODI0LDk5LDQsMiw1OSwxMDEsMTQxNjQsMTQxNjYsMSw4ODMzLDExMyw1OSwzLDEwOTI4LDgyNCw0LDQsNTksNjksMTAxLDExNSwxNDE4MSwxNDE4MywxNDE4NywxNDE5MCwxLDg4MzcsNTksMywxMDk1MCw4MjQsNTksMSw4ODQxLDEwMSwxMTYsNCwyLDU5LDEwMSwxNDE5OCwxNDIwMSwzLDg4MzUsODQwMiwxMTMsNCwyLDU5LDExMywxNDIwOCwxNDIxMCwxLDg4NDEsNTksMywxMDk1MCw4MjQsNCw0LDEwMywxMDUsMTA4LDExNCwxNDIyNCwxNDIyOCwxNDIzOCwxNDI0MiwxMDgsNTksMSw4ODI1LDEwOCwxMDAsMTAxLDUsMjQxLDEsNTksMTQyMzYsMSwyNDEsMTAzLDU5LDEsODgyNCwxMDUsOTcsMTEwLDEwMywxMDgsMTAxLDQsMiwxMDgsMTE0LDE0MjU0LDE0MjY5LDEwMSwxMDIsMTE2LDQsMiw1OSwxMDEsMTQyNjMsMTQyNjUsMSw4OTM4LDExMyw1OSwxLDg5NDAsMTA1LDEwMywxMDQsMTE2LDQsMiw1OSwxMDEsMTQyNzksMTQyODEsMSw4OTM5LDExMyw1OSwxLDg5NDEsNCwyLDU5LDEwOSwxNDI5MSwxNDI5MywxLDk1Nyw0LDMsNTksMTAxLDExNSwxNDMwMSwxNDMwMywxNDMwOCwxLDM1LDExNCwxMTEsNTksMSw4NDcwLDExMiw1OSwxLDgxOTksNCw5LDY4LDcyLDk3LDEwMCwxMDMsMTA1LDEwOCwxMTQsMTE1LDE0MzMyLDE0MzM4LDE0MzQ0LDE0MzQ5LDE0MzU1LDE0MzY5LDE0Mzc2LDE0NDA4LDE0NDI2LDk3LDExNSwxMDQsNTksMSw4ODc3LDk3LDExNCwxMTQsNTksMSwxMDUwMCwxMTIsNTksMyw4NzgxLDg0MDIsOTcsMTE1LDEwNCw1OSwxLDg4NzYsNCwyLDEwMSwxMTYsMTQzNjEsMTQzNjUsNTksMyw4ODA1LDg0MDIsNTksMyw2Miw4NDAyLDExMCwxMDIsMTA1LDExMCw1OSwxLDEwNzE4LDQsMyw2NSwxMDEsMTE2LDE0Mzg0LDE0Mzg5LDE0MzkzLDExNCwxMTQsNTksMSwxMDQ5OCw1OSwzLDg4MDQsODQwMiw0LDIsNTksMTE0LDE0Mzk5LDE0NDAyLDMsNjAsODQwMiwxMDUsMTAxLDU5LDMsODg4NCw4NDAyLDQsMiw2NSwxMTYsMTQ0MTQsMTQ0MTksMTE0LDExNCw1OSwxLDEwNDk5LDExNCwxMDUsMTAxLDU5LDMsODg4NSw4NDAyLDEwNSwxMDksNTksMyw4NzY0LDg0MDIsNCwzLDY1LDk3LDExMCwxNDQ0MCwxNDQ0NSwxNDQ2OCwxMTQsMTE0LDU5LDEsODY2MiwxMTQsNCwyLDEwNCwxMTQsMTQ0NTIsMTQ0NTYsMTA3LDU5LDEsMTA1MzEsNCwyLDU5LDExMSwxNDQ2MiwxNDQ2NCwxLDg1OTgsMTE5LDU5LDEsODU5OCwxMDEsOTcsMTE0LDU5LDEsMTA1MzUsNCwxOCw4Myw5Nyw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDgsMTA5LDExMSwxMTIsMTE0LDExNSwxMTYsMTE3LDExOCwxNDUxMiwxNDUxNSwxNDUzNSwxNDU2MCwxNDU5NywxNDYwMywxNDYxOCwxNDY0MywxNDY1NywxNDY2MiwxNDcwMSwxNDc0MSwxNDc0NywxNDc2OSwxNDg1MSwxNDg3NywxNDkwNywxNDkxNiw1OSwxLDk0MTYsNCwyLDk5LDExNSwxNDUyMSwxNDUzMSwxMTcsMTE2LDEwMSw1LDI0MywxLDU5LDE0NTI5LDEsMjQzLDExNiw1OSwxLDg4NTksNCwyLDEwNSwxMjEsMTQ1NDEsMTQ1NTcsMTE0LDQsMiw1OSw5OSwxNDU0OCwxNDU1MCwxLDg4NTgsNSwyNDQsMSw1OSwxNDU1NSwxLDI0NCw1OSwxLDEwODYsNCw1LDk3LDk4LDEwNSwxMTEsMTE1LDE0NTcyLDE0NTc3LDE0NTgzLDE0NTg3LDE0NTkxLDExNSwxMDQsNTksMSw4ODYxLDEwOCw5Nyw5OSw1OSwxLDMzNywxMTgsNTksMSwxMDgwOCwxMTYsNTksMSw4ODU3LDExMSwxMDgsMTAwLDU5LDEsMTA2ODQsMTA4LDEwNSwxMDMsNTksMSwzMzksNCwyLDk5LDExNCwxNDYwOSwxNDYxNCwxMDUsMTE0LDU5LDEsMTA2ODcsNTksMyw1NTM0OSw1NjYyMCw0LDMsMTExLDExNCwxMTYsMTQ2MjYsMTQ2MzAsMTQ2NDAsMTEwLDU5LDEsNzMxLDk3LDExOCwxMDEsNSwyNDIsMSw1OSwxNDYzOCwxLDI0Miw1OSwxLDEwNjg5LDQsMiw5OCwxMDksMTQ2NDksMTQ2NTQsOTcsMTE0LDU5LDEsMTA2NzcsNTksMSw5MzcsMTEwLDExNiw1OSwxLDg3NTAsNCw0LDk3LDk5LDEwNSwxMTYsMTQ2NzIsMTQ2NzcsMTQ2OTMsMTQ2OTgsMTE0LDExNCw1OSwxLDg2MzQsNCwyLDEwNSwxMTQsMTQ2ODMsMTQ2ODcsMTE0LDU5LDEsMTA2ODYsMTExLDExNSwxMTUsNTksMSwxMDY4MywxMTAsMTAxLDU5LDEsODI1NCw1OSwxLDEwNjg4LDQsMyw5NywxMDEsMTA1LDE0NzA5LDE0NzE0LDE0NzE5LDk5LDExNCw1OSwxLDMzMywxMDMsOTcsNTksMSw5NjksNCwzLDk5LDEwMCwxMTAsMTQ3MjcsMTQ3MzMsMTQ3MzYsMTE0LDExMSwxMTAsNTksMSw5NTksNTksMSwxMDY3OCwxMTcsMTE1LDU5LDEsODg1NCwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NzIsNCwzLDk3LDEwMSwxMDgsMTQ3NTUsMTQ3NTksMTQ3NjQsMTE0LDU5LDEsMTA2NzksMTE0LDExMiw1OSwxLDEwNjgxLDExNywxMTUsNTksMSw4ODUzLDQsNyw1OSw5NywxMDAsMTA1LDExMSwxMTUsMTE4LDE0Nzg1LDE0Nzg3LDE0NzkyLDE0ODMxLDE0ODM3LDE0ODQxLDE0ODQ4LDEsODc0NCwxMTQsMTE0LDU5LDEsODYzNSw0LDQsNTksMTAxLDEwMiwxMDksMTQ4MDIsMTQ4MDQsMTQ4MTcsMTQ4MjQsMSwxMDg0NSwxMTQsNCwyLDU5LDExMSwxNDgxMSwxNDgxMywxLDg1MDAsMTAyLDU5LDEsODUwMCw1LDE3MCwxLDU5LDE0ODIyLDEsMTcwLDUsMTg2LDEsNTksMTQ4MjksMSwxODYsMTAzLDExMSwxMDIsNTksMSw4ODg2LDExNCw1OSwxLDEwODM4LDEwOCwxMTEsMTEyLDEwMSw1OSwxLDEwODM5LDU5LDEsMTA4NDMsNCwzLDk5LDEwOCwxMTEsMTQ4NTksMTQ4NjMsMTQ4NzMsMTE0LDU5LDEsODUwMCw5NywxMTUsMTA0LDUsMjQ4LDEsNTksMTQ4NzEsMSwyNDgsMTA4LDU5LDEsODg1NiwxMDUsNCwyLDEwOCwxMDksMTQ4ODQsMTQ4OTMsMTAwLDEwMSw1LDI0NSwxLDU5LDE0ODkxLDEsMjQ1LDEwMSwxMTUsNCwyLDU5LDk3LDE0OTAxLDE0OTAzLDEsODg1NSwxMTUsNTksMSwxMDgwNiwxMDksMTA4LDUsMjQ2LDEsNTksMTQ5MTQsMSwyNDYsOTgsOTcsMTE0LDU5LDEsOTAyMSw0LDEyLDk3LDk5LDEwMSwxMDIsMTA0LDEwNSwxMDgsMTA5LDExMSwxMTQsMTE1LDExNywxNDk0OCwxNDk5MiwxNDk5NiwxNTAzMywxNTAzOCwxNTA2OCwxNTA5MCwxNTE4OSwxNTE5MiwxNTIyMiwxNTQyNywxNTQ0MSwxMTQsNCw0LDU5LDk3LDExNSwxMTYsMTQ5NTksMTQ5NjEsMTQ5NzYsMTQ5ODksMSw4NzQxLDUsMTgyLDIsNTksMTA4LDE0OTY4LDE0OTcwLDEsMTgyLDEwOCwxMDEsMTA4LDU5LDEsODc0MSw0LDIsMTA1LDEwOCwxNDk4MiwxNDk4NiwxMDksNTksMSwxMDk5NSw1OSwxLDExMDA1LDU5LDEsODcwNiwxMjEsNTksMSwxMDg3LDExNCw0LDUsOTksMTA1LDEwOSwxMTIsMTE2LDE1MDA5LDE1MDE0LDE1MDE5LDE1MDI0LDE1MDI3LDExMCwxMTYsNTksMSwzNywxMTEsMTAwLDU5LDEsNDYsMTA1LDEwOCw1OSwxLDgyNDAsNTksMSw4ODY5LDEwMSwxMTAsMTA3LDU5LDEsODI0MSwxMTQsNTksMyw1NTM0OSw1NjYyMSw0LDMsMTA1LDEwOSwxMTEsMTUwNDYsMTUwNTcsMTUwNjMsNCwyLDU5LDExOCwxNTA1MiwxNTA1NCwxLDk2Niw1OSwxLDk4MSwxMDksOTcsMTE2LDU5LDEsODQ5OSwxMTAsMTAxLDU5LDEsOTc0Miw0LDMsNTksMTE2LDExOCwxNTA3NiwxNTA3OCwxNTA4NywxLDk2MCw5OSwxMDQsMTAyLDExMSwxMTQsMTA3LDU5LDEsODkxNiw1OSwxLDk4Miw0LDIsOTcsMTE3LDE1MDk2LDE1MTE5LDExMCw0LDIsOTksMTA3LDE1MTAzLDE1MTE1LDEwNyw0LDIsNTksMTA0LDE1MTEwLDE1MTEyLDEsODQ2Myw1OSwxLDg0NjIsMTE4LDU5LDEsODQ2MywxMTUsNCw5LDU5LDk3LDk4LDk5LDEwMCwxMDEsMTA5LDExNSwxMTYsMTUxNDAsMTUxNDIsMTUxNDgsMTUxNTEsMTUxNTYsMTUxNjgsMTUxNzEsMTUxNzksMTUxODQsMSw0Myw5OSwxMDUsMTE0LDU5LDEsMTA3ODcsNTksMSw4ODYyLDEwNSwxMTQsNTksMSwxMDc4Niw0LDIsMTExLDExNywxNTE2MiwxNTE2NSw1OSwxLDg3MjQsNTksMSwxMDc4OSw1OSwxLDEwODY2LDExMCw1LDE3NywxLDU5LDE1MTc3LDEsMTc3LDEwNSwxMDksNTksMSwxMDc5MCwxMTksMTExLDU5LDEsMTA3OTEsNTksMSwxNzcsNCwzLDEwNSwxMTIsMTE3LDE1MjAwLDE1MjA4LDE1MjEzLDExMCwxMTYsMTA1LDExMCwxMTYsNTksMSwxMDc3MywxMDIsNTksMyw1NTM0OSw1NjY3MywxMTAsMTAwLDUsMTYzLDEsNTksMTUyMjAsMSwxNjMsNCwxMCw1OSw2OSw5Nyw5OSwxMDEsMTA1LDExMCwxMTEsMTE1LDExNywxNTI0NCwxNTI0NiwxNTI0OSwxNTI1MywxNTI1OCwxNTMzNCwxNTM0NywxNTM2NywxNTQxNiwxNTQyMSwxLDg4MjYsNTksMSwxMDkzMSwxMTIsNTksMSwxMDkzNSwxMTcsMTAxLDU5LDEsODgyOCw0LDIsNTksOTksMTUyNjQsMTUyNjYsMSwxMDkyNyw0LDYsNTksOTcsOTksMTAxLDExMCwxMTUsMTUyODAsMTUyODIsMTUyOTAsMTUyOTksMTUzMDMsMTUzMjksMSw4ODI2LDExMiwxMTIsMTE0LDExMSwxMjAsNTksMSwxMDkzNSwxMTcsMTE0LDEwOCwxMjEsMTAxLDExMyw1OSwxLDg4MjgsMTEzLDU5LDEsMTA5MjcsNCwzLDk3LDEwMSwxMTUsMTUzMTEsMTUzMTksMTUzMjQsMTEyLDExMiwxMTQsMTExLDEyMCw1OSwxLDEwOTM3LDExMywxMTMsNTksMSwxMDkzMywxMDUsMTA5LDU5LDEsODkzNiwxMDUsMTA5LDU5LDEsODgzMCwxMDksMTAxLDQsMiw1OSwxMTUsMTUzNDIsMTUzNDQsMSw4MjQyLDU5LDEsODQ3Myw0LDMsNjksOTcsMTE1LDE1MzU1LDE1MzU4LDE1MzYyLDU5LDEsMTA5MzMsMTEyLDU5LDEsMTA5MzcsMTA1LDEwOSw1OSwxLDg5MzYsNCwzLDEwMCwxMDIsMTEyLDE1Mzc1LDE1Mzc4LDE1NDA0LDU5LDEsODcxOSw0LDMsOTcsMTA4LDExNSwxNTM4NiwxNTM5MiwxNTM5OCwxMDgsOTcsMTE0LDU5LDEsOTAwNiwxMDUsMTEwLDEwMSw1OSwxLDg5NzgsMTE3LDExNCwxMDIsNTksMSw4OTc5LDQsMiw1OSwxMTYsMTU0MTAsMTU0MTIsMSw4NzMzLDExMSw1OSwxLDg3MzMsMTA1LDEwOSw1OSwxLDg4MzAsMTE0LDEwMSwxMDgsNTksMSw4ODgwLDQsMiw5OSwxMDUsMTU0MzMsMTU0MzgsMTE0LDU5LDMsNTUzNDksNTY1MTcsNTksMSw5NjgsMTEwLDk5LDExNSwxMTIsNTksMSw4MjAwLDQsNiwxMDIsMTA1LDExMSwxMTIsMTE1LDExNywxNTQ2MiwxNTQ2NywxNTQ3MiwxNTQ3OCwxNTQ4NSwxNTQ5MSwxMTQsNTksMyw1NTM0OSw1NjYyMiwxMTAsMTE2LDU5LDEsMTA3NjQsMTEyLDEwMiw1OSwzLDU1MzQ5LDU2Njc0LDExNCwxMDUsMTA5LDEwMSw1OSwxLDgyNzksOTksMTE0LDU5LDMsNTUzNDksNTY1MTgsNCwzLDk3LDEwMSwxMTEsMTU0OTksMTU1MjAsMTU1MzQsMTE2LDQsMiwxMDEsMTA1LDE1NTA2LDE1NTE1LDExNCwxMTAsMTA1LDExMSwxMTAsMTE1LDU5LDEsODQ2MSwxMTAsMTE2LDU5LDEsMTA3NzQsMTE1LDExNiw0LDIsNTksMTAxLDE1NTI4LDE1NTMwLDEsNjMsMTEzLDU5LDEsODc5OSwxMTYsNSwzNCwxLDU5LDE1NTQwLDEsMzQsNCwyMSw2NSw2Niw3Miw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDQsMTA1LDEwOCwxMDksMTEwLDExMSwxMTIsMTE0LDExNSwxMTYsMTE3LDEyMCwxNTU4NiwxNTYwOSwxNTYxNSwxNTYyMCwxNTc5NiwxNTg1NSwxNTg5MywxNTkzMSwxNTk3NywxNjAwMSwxNjAzOSwxNjE4MywxNjIwNCwxNjIyMiwxNjIyOCwxNjI4NSwxNjMxMiwxNjMxOCwxNjM2MywxNjQwOCwxNjQxNiw0LDMsOTcsMTE0LDExNiwxNTU5NCwxNTU5OSwxNTYwMywxMTQsMTE0LDU5LDEsODY2NywxMTQsNTksMSw4NjU4LDk3LDEwNSwxMDgsNTksMSwxMDUyNCw5NywxMTQsMTE0LDU5LDEsMTA1MTEsOTcsMTE0LDU5LDEsMTA1OTYsNCw3LDk5LDEwMCwxMDEsMTEwLDExMywxMTQsMTE2LDE1NjM2LDE1NjUxLDE1NjU2LDE1NjY0LDE1Njg3LDE1Njk2LDE1NzcwLDQsMiwxMDEsMTE3LDE1NjQyLDE1NjQ2LDU5LDMsODc2NSw4MTcsMTE2LDEwMSw1OSwxLDM0MSwxMDUsOTksNTksMSw4NzMwLDEwOSwxMTIsMTE2LDEyMSwxMTgsNTksMSwxMDY3NSwxMDMsNCw0LDU5LDEwMCwxMDEsMTA4LDE1Njc1LDE1Njc3LDE1NjgwLDE1NjgzLDEsMTAyMTcsNTksMSwxMDY0Miw1OSwxLDEwNjYxLDEwMSw1OSwxLDEwMjE3LDExNywxMTEsNSwxODcsMSw1OSwxNTY5NCwxLDE4NywxMTQsNCwxMSw1OSw5Nyw5OCw5OSwxMDIsMTA0LDEwOCwxMTIsMTE1LDExNiwxMTksMTU3MjEsMTU3MjMsMTU3MjcsMTU3MzksMTU3NDIsMTU3NDYsMTU3NTAsMTU3NTQsMTU3NTgsMTU3NjMsMTU3NjcsMSw4NTk0LDExMiw1OSwxLDEwNjEzLDQsMiw1OSwxMDIsMTU3MzMsMTU3MzUsMSw4Njc3LDExNSw1OSwxLDEwNTI4LDU5LDEsMTA1NDcsMTE1LDU5LDEsMTA1MjYsMTA3LDU5LDEsODYxOCwxMTIsNTksMSw4NjIwLDEwOCw1OSwxLDEwNTY1LDEwNSwxMDksNTksMSwxMDYxMiwxMDgsNTksMSw4NjExLDU5LDEsODYwNSw0LDIsOTcsMTA1LDE1Nzc2LDE1NzgxLDEwNSwxMDgsNTksMSwxMDUyMiwxMTEsNCwyLDU5LDExMCwxNTc4OCwxNTc5MCwxLDg3NTgsOTcsMTA4LDExNSw1OSwxLDg0NzQsNCwzLDk3LDk4LDExNCwxNTgwNCwxNTgwOSwxNTgxNCwxMTQsMTE0LDU5LDEsMTA1MDksMTE0LDEwNyw1OSwxLDEwMDk5LDQsMiw5NywxMDcsMTU4MjAsMTU4MzMsOTksNCwyLDEwMSwxMDcsMTU4MjcsMTU4MzAsNTksMSwxMjUsNTksMSw5Myw0LDIsMTAxLDExNSwxNTgzOSwxNTg0Miw1OSwxLDEwNjM2LDEwOCw0LDIsMTAwLDExNywxNTg0OSwxNTg1Miw1OSwxLDEwNjM4LDU5LDEsMTA2NDAsNCw0LDk3LDEwMSwxMTcsMTIxLDE1ODY1LDE1ODcxLDE1ODg2LDE1ODkwLDExNCwxMTEsMTEwLDU5LDEsMzQ1LDQsMiwxMDAsMTA1LDE1ODc3LDE1ODgyLDEwNSwxMDgsNTksMSwzNDMsMTA4LDU5LDEsODk2OSw5OCw1OSwxLDEyNSw1OSwxLDEwODgsNCw0LDk5LDEwOCwxMTMsMTE1LDE1OTAzLDE1OTA3LDE1OTE0LDE1OTI3LDk3LDU5LDEsMTA1NTEsMTAwLDEwNCw5NywxMTQsNTksMSwxMDYwMSwxMTcsMTExLDQsMiw1OSwxMTQsMTU5MjIsMTU5MjQsMSw4MjIxLDU5LDEsODIyMSwxMDQsNTksMSw4NjI3LDQsMyw5Nyw5OSwxMDMsMTU5MzksMTU5NjYsMTU5NzAsMTA4LDQsNCw1OSwxMDUsMTEyLDExNSwxNTk1MCwxNTk1MiwxNTk1NywxNTk2MywxLDg0NzYsMTEwLDEwMSw1OSwxLDg0NzUsOTcsMTE0LDExNiw1OSwxLDg0NzYsNTksMSw4NDc3LDExNiw1OSwxLDk2NDUsNSwxNzQsMSw1OSwxNTk3NSwxLDE3NCw0LDMsMTA1LDEwOCwxMTQsMTU5ODUsMTU5OTEsMTU5OTcsMTE1LDEwNCwxMTYsNTksMSwxMDYyMSwxMTEsMTExLDExNCw1OSwxLDg5NzEsNTksMyw1NTM0OSw1NjYyMyw0LDIsOTcsMTExLDE2MDA3LDE2MDI4LDExNCw0LDIsMTAwLDExNywxNjAxNCwxNjAxNyw1OSwxLDg2NDEsNCwyLDU5LDEwOCwxNjAyMywxNjAyNSwxLDg2NDAsNTksMSwxMDYwNCw0LDIsNTksMTE4LDE2MDM0LDE2MDM2LDEsOTYxLDU5LDEsMTAwOSw0LDMsMTAzLDExMCwxMTUsMTYwNDcsMTYxNjcsMTYxNzEsMTA0LDExNiw0LDYsOTcsMTA0LDEwOCwxMTQsMTE1LDExNiwxNjA2MywxNjA4MSwxNjEwMywxNjEzMCwxNjE0MywxNjE1NSwxMTQsMTE0LDExMSwxMTksNCwyLDU5LDExNiwxNjA3MywxNjA3NSwxLDg1OTQsOTcsMTA1LDEwOCw1OSwxLDg2MTEsOTcsMTE0LDExMiwxMTEsMTExLDExMCw0LDIsMTAwLDExNywxNjA5MywxNjA5OSwxMTEsMTE5LDExMCw1OSwxLDg2NDEsMTEyLDU5LDEsODY0MCwxMDEsMTAyLDExNiw0LDIsOTcsMTA0LDE2MTEyLDE2MTIwLDExNCwxMTQsMTExLDExOSwxMTUsNTksMSw4NjQ0LDk3LDExNCwxMTIsMTExLDExMSwxMTAsMTE1LDU5LDEsODY1MiwxMDUsMTAzLDEwNCwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDExNSw1OSwxLDg2NDksMTEzLDExNywxMDUsMTAzLDk3LDExNCwxMTQsMTExLDExOSw1OSwxLDg2MDUsMTA0LDExNCwxMDEsMTAxLDExNiwxMDUsMTA5LDEwMSwxMTUsNTksMSw4OTA4LDEwMyw1OSwxLDczMCwxMDUsMTEwLDEwMywxMDAsMTExLDExNiwxMTUsMTAxLDExMyw1OSwxLDg3ODcsNCwzLDk3LDEwNCwxMDksMTYxOTEsMTYxOTYsMTYyMDEsMTE0LDExNCw1OSwxLDg2NDQsOTcsMTE0LDU5LDEsODY1Miw1OSwxLDgyMDcsMTExLDExNywxMTUsMTE2LDQsMiw1OSw5NywxNjIxNCwxNjIxNiwxLDkxMzcsOTksMTA0LDEwMSw1OSwxLDkxMzcsMTA5LDEwNSwxMDAsNTksMSwxMDk5MCw0LDQsOTcsOTgsMTEyLDExNiwxNjIzOCwxNjI1MiwxNjI1NywxNjI3OCw0LDIsMTEwLDExNCwxNjI0NCwxNjI0OCwxMDMsNTksMSwxMDIyMSwxMTQsNTksMSw4NzAyLDExNCwxMDcsNTksMSwxMDIxNSw0LDMsOTcsMTAyLDEwOCwxNjI2NSwxNjI2OSwxNjI3MywxMTQsNTksMSwxMDYzMCw1OSwzLDU1MzQ5LDU2Njc1LDExNywxMTUsNTksMSwxMDc5OCwxMDUsMTA5LDEwMSwxMTUsNTksMSwxMDgwNSw0LDIsOTcsMTEyLDE2MjkxLDE2MzA0LDExNCw0LDIsNTksMTAzLDE2Mjk4LDE2MzAwLDEsNDEsMTE2LDU5LDEsMTA2NDQsMTExLDEwOCwxMDUsMTEwLDExNiw1OSwxLDEwNzcwLDk3LDExNCwxMTQsNTksMSw4NjQ5LDQsNCw5Nyw5OSwxMDQsMTEzLDE2MzI4LDE2MzM0LDE2MzM5LDE2MzQyLDExMywxMTcsMTExLDU5LDEsODI1MCwxMTQsNTksMyw1NTM0OSw1NjUxOSw1OSwxLDg2MjUsNCwyLDk4LDExNywxNjM0OCwxNjM1MSw1OSwxLDkzLDExMSw0LDIsNTksMTE0LDE2MzU4LDE2MzYwLDEsODIxNyw1OSwxLDgyMTcsNCwzLDEwNCwxMDUsMTE0LDE2MzcxLDE2Mzc3LDE2MzgzLDExNCwxMDEsMTAxLDU5LDEsODkwOCwxMDksMTAxLDExNSw1OSwxLDg5MDYsMTA1LDQsNCw1OSwxMDEsMTAyLDEwOCwxNjM5NCwxNjM5NiwxNjM5OSwxNjQwMiwxLDk2NTcsNTksMSw4ODg1LDU5LDEsOTY1NiwxMTYsMTE0LDEwNSw1OSwxLDEwNzAyLDEwOCwxMTcsMTA0LDk3LDExNCw1OSwxLDEwNjAwLDU5LDEsODQ3OCw0LDE5LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwNCwxMDUsMTA4LDEwOSwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE5LDEyMiwxNjQ1OSwxNjQ2NiwxNjQ3MiwxNjU3MiwxNjU5MCwxNjY3MiwxNjY4NywxNjc0NiwxNjg0NCwxNjg1MCwxNjkyNCwxNjk2MywxNjk4OCwxNzExNSwxNzEyMSwxNzE1NCwxNzIwNiwxNzYxNCwxNzY1Niw5OSwxMTcsMTE2LDEwMSw1OSwxLDM0NywxMTMsMTE3LDExMSw1OSwxLDgyMTgsNCwxMCw1OSw2OSw5Nyw5OSwxMDEsMTA1LDExMCwxMTIsMTE1LDEyMSwxNjQ5NCwxNjQ5NiwxNjQ5OSwxNjUxMywxNjUxOCwxNjUzMSwxNjUzNiwxNjU1NiwxNjU2NCwxNjU2OSwxLDg4MjcsNTksMSwxMDkzMiw0LDIsMTEyLDExNCwxNjUwNSwxNjUwOCw1OSwxLDEwOTM2LDExMSwxMTAsNTksMSwzNTMsMTE3LDEwMSw1OSwxLDg4MjksNCwyLDU5LDEwMCwxNjUyNCwxNjUyNiwxLDEwOTI4LDEwNSwxMDgsNTksMSwzNTEsMTE0LDk5LDU5LDEsMzQ5LDQsMyw2OSw5NywxMTUsMTY1NDQsMTY1NDcsMTY1NTEsNTksMSwxMDkzNCwxMTIsNTksMSwxMDkzOCwxMDUsMTA5LDU5LDEsODkzNywxMTEsMTA4LDEwNSwxMTAsMTE2LDU5LDEsMTA3NzEsMTA1LDEwOSw1OSwxLDg4MzEsNTksMSwxMDg5LDExMSwxMTYsNCwzLDU5LDk4LDEwMSwxNjU4MiwxNjU4NCwxNjU4NywxLDg5MDEsNTksMSw4ODY1LDU5LDEsMTA4NTQsNCw3LDY1LDk3LDk5LDEwOSwxMTUsMTE2LDEyMCwxNjYwNiwxNjYxMSwxNjYzNCwxNjY0MiwxNjY0NiwxNjY1MiwxNjY2OCwxMTQsMTE0LDU5LDEsODY2NCwxMTQsNCwyLDEwNCwxMTQsMTY2MTgsMTY2MjIsMTA3LDU5LDEsMTA1MzMsNCwyLDU5LDExMSwxNjYyOCwxNjYzMCwxLDg2MDAsMTE5LDU5LDEsODYwMCwxMTYsNSwxNjcsMSw1OSwxNjY0MCwxLDE2NywxMDUsNTksMSw1OSwxMTksOTcsMTE0LDU5LDEsMTA1MzcsMTA5LDQsMiwxMDUsMTEwLDE2NjU5LDE2NjY1LDExMCwxMTcsMTE1LDU5LDEsODcyNiw1OSwxLDg3MjYsMTE2LDU5LDEsMTAwMzgsMTE0LDQsMiw1OSwxMTEsMTY2NzksMTY2ODIsMyw1NTM0OSw1NjYyNCwxMTksMTEwLDU5LDEsODk5NCw0LDQsOTcsOTksMTExLDEyMSwxNjY5NywxNjcwMiwxNjcxNiwxNjczOSwxMTQsMTEyLDU5LDEsOTgzOSw0LDIsMTA0LDEyMSwxNjcwOCwxNjcxMyw5OSwxMjEsNTksMSwxMDk3LDU5LDEsMTA5NiwxMTQsMTE2LDQsMiwxMDksMTEyLDE2NzI0LDE2NzI5LDEwNSwxMDAsNTksMSw4NzM5LDk3LDExNCw5NywxMDgsMTA4LDEwMSwxMDgsNTksMSw4NzQxLDUsMTczLDEsNTksMTY3NDQsMSwxNzMsNCwyLDEwMywxMDksMTY3NTIsMTY3NzAsMTA5LDk3LDQsMyw1OSwxMDIsMTE4LDE2NzYyLDE2NzY0LDE2NzY3LDEsOTYzLDU5LDEsOTYyLDU5LDEsOTYyLDQsOCw1OSwxMDAsMTAxLDEwMywxMDgsMTEwLDExMiwxMTQsMTY3ODgsMTY3OTAsMTY3OTUsMTY4MDYsMTY4MTcsMTY4MjgsMTY4MzIsMTY4MzgsMSw4NzY0LDExMSwxMTYsNTksMSwxMDg1OCw0LDIsNTksMTEzLDE2ODAxLDE2ODAzLDEsODc3MSw1OSwxLDg3NzEsNCwyLDU5LDY5LDE2ODEyLDE2ODE0LDEsMTA5MTAsNTksMSwxMDkxMiw0LDIsNTksNjksMTY4MjMsMTY4MjUsMSwxMDkwOSw1OSwxLDEwOTExLDEwMSw1OSwxLDg3NzQsMTA4LDExNywxMTUsNTksMSwxMDc4OCw5NywxMTQsMTE0LDU5LDEsMTA2MTAsOTcsMTE0LDExNCw1OSwxLDg1OTIsNCw0LDk3LDEwMSwxMDUsMTE2LDE2ODYwLDE2ODgzLDE2ODkxLDE2OTA0LDQsMiwxMDgsMTE1LDE2ODY2LDE2ODc4LDEwOCwxMTUsMTAxLDExNiwxMDksMTA1LDExMCwxMTcsMTE1LDU5LDEsODcyNiwxMDQsMTEyLDU5LDEsMTA4MDMsMTEyLDk3LDExNCwxMTUsMTA4LDU5LDEsMTA3MjQsNCwyLDEwMCwxMDgsMTY4OTcsMTY5MDAsNTksMSw4NzM5LDEwMSw1OSwxLDg5OTUsNCwyLDU5LDEwMSwxNjkxMCwxNjkxMiwxLDEwOTIyLDQsMiw1OSwxMTUsMTY5MTgsMTY5MjAsMSwxMDkyNCw1OSwzLDEwOTI0LDY1MDI0LDQsMywxMDIsMTA4LDExMiwxNjkzMiwxNjkzOCwxNjk1OCwxMTYsOTksMTIxLDU5LDEsMTEwMCw0LDIsNTksOTgsMTY5NDQsMTY5NDYsMSw0Nyw0LDIsNTksOTcsMTY5NTIsMTY5NTQsMSwxMDY5MiwxMTQsNTksMSw5MDIzLDEwMiw1OSwzLDU1MzQ5LDU2Njc2LDk3LDQsMiwxMDAsMTE0LDE2OTcwLDE2OTg1LDEwMSwxMTUsNCwyLDU5LDExNywxNjk3OCwxNjk4MCwxLDk4MjQsMTA1LDExNiw1OSwxLDk4MjQsNTksMSw4NzQxLDQsMyw5OSwxMTUsMTE3LDE2OTk2LDE3MDI4LDE3MDg5LDQsMiw5NywxMTcsMTcwMDIsMTcwMTUsMTEyLDQsMiw1OSwxMTUsMTcwMDksMTcwMTEsMSw4ODUxLDU5LDMsODg1MSw2NTAyNCwxMTIsNCwyLDU5LDExNSwxNzAyMiwxNzAyNCwxLDg4NTIsNTksMyw4ODUyLDY1MDI0LDExNyw0LDIsOTgsMTEyLDE3MDM1LDE3MDYyLDQsMyw1OSwxMDEsMTE1LDE3MDQzLDE3MDQ1LDE3MDQ4LDEsODg0Nyw1OSwxLDg4NDksMTAxLDExNiw0LDIsNTksMTAxLDE3MDU2LDE3MDU4LDEsODg0NywxMTMsNTksMSw4ODQ5LDQsMyw1OSwxMDEsMTE1LDE3MDcwLDE3MDcyLDE3MDc1LDEsODg0OCw1OSwxLDg4NTAsMTAxLDExNiw0LDIsNTksMTAxLDE3MDgzLDE3MDg1LDEsODg0OCwxMTMsNTksMSw4ODUwLDQsMyw1OSw5NywxMDIsMTcwOTcsMTcwOTksMTcxMTIsMSw5NjMzLDExNCw0LDIsMTAxLDEwMiwxNzEwNiwxNzEwOSw1OSwxLDk2MzMsNTksMSw5NjQyLDU5LDEsOTY0Miw5NywxMTQsMTE0LDU5LDEsODU5NCw0LDQsOTksMTAxLDEwOSwxMTYsMTcxMzEsMTcxMzYsMTcxNDIsMTcxNDgsMTE0LDU5LDMsNTUzNDksNTY1MjAsMTE2LDEwOSwxMTAsNTksMSw4NzI2LDEwNSwxMDgsMTAxLDU5LDEsODk5NSw5NywxMTQsMTAyLDU5LDEsODkwMiw0LDIsOTcsMTE0LDE3MTYwLDE3MTcyLDExNCw0LDIsNTksMTAyLDE3MTY3LDE3MTY5LDEsOTczNCw1OSwxLDk3MzMsNCwyLDk3LDExMCwxNzE3OCwxNzIwMiwxMDUsMTAzLDEwNCwxMTYsNCwyLDEwMSwxMTIsMTcxODgsMTcxOTcsMTEyLDExNSwxMDUsMTA4LDExMSwxMTAsNTksMSwxMDEzLDEwNCwxMDUsNTksMSw5ODEsMTE1LDU5LDEsMTc1LDQsNSw5OCw5OSwxMDksMTEwLDExMiwxNzIxOCwxNzM1MSwxNzQyMCwxNzQyMywxNzQyNyw0LDksNTksNjksMTAwLDEwMSwxMDksMTEwLDExMiwxMTQsMTE1LDE3MjM4LDE3MjQwLDE3MjQzLDE3MjQ4LDE3MjYxLDE3MjY3LDE3Mjc5LDE3Mjg1LDE3MjkxLDEsODgzNCw1OSwxLDEwOTQ5LDExMSwxMTYsNTksMSwxMDk0MSw0LDIsNTksMTAwLDE3MjU0LDE3MjU2LDEsODgzOCwxMTEsMTE2LDU5LDEsMTA5NDcsMTE3LDEwOCwxMTYsNTksMSwxMDk0NSw0LDIsNjksMTAxLDE3MjczLDE3Mjc2LDU5LDEsMTA5NTUsNTksMSw4ODQyLDEwOCwxMTcsMTE1LDU5LDEsMTA5NDMsOTcsMTE0LDExNCw1OSwxLDEwNjE3LDQsMywxMDEsMTA1LDExNywxNzI5OSwxNzMzNSwxNzMzOSwxMTYsNCwzLDU5LDEwMSwxMTAsMTczMDgsMTczMTAsMTczMjIsMSw4ODM0LDExMyw0LDIsNTksMTEzLDE3MzE3LDE3MzE5LDEsODgzOCw1OSwxLDEwOTQ5LDEwMSwxMTMsNCwyLDU5LDExMywxNzMzMCwxNzMzMiwxLDg4NDIsNTksMSwxMDk1NSwxMDksNTksMSwxMDk1MSw0LDIsOTgsMTEyLDE3MzQ1LDE3MzQ4LDU5LDEsMTA5NjUsNTksMSwxMDk2Myw5OSw0LDYsNTksOTcsOTksMTAxLDExMCwxMTUsMTczNjYsMTczNjgsMTczNzYsMTczODUsMTczODksMTc0MTUsMSw4ODI3LDExMiwxMTIsMTE0LDExMSwxMjAsNTksMSwxMDkzNiwxMTcsMTE0LDEwOCwxMjEsMTAxLDExMyw1OSwxLDg4MjksMTEzLDU5LDEsMTA5MjgsNCwzLDk3LDEwMSwxMTUsMTczOTcsMTc0MDUsMTc0MTAsMTEyLDExMiwxMTQsMTExLDEyMCw1OSwxLDEwOTM4LDExMywxMTMsNTksMSwxMDkzNCwxMDUsMTA5LDU5LDEsODkzNywxMDUsMTA5LDU5LDEsODgzMSw1OSwxLDg3MjEsMTAzLDU5LDEsOTgzNCw0LDEzLDQ5LDUwLDUxLDU5LDY5LDEwMCwxMDEsMTA0LDEwOCwxMDksMTEwLDExMiwxMTUsMTc0NTUsMTc0NjIsMTc0NjksMTc0NzYsMTc0NzgsMTc0ODEsMTc0OTYsMTc1MDksMTc1MjQsMTc1MzAsMTc1MzYsMTc1NDgsMTc1NTQsNSwxODUsMSw1OSwxNzQ2MCwxLDE4NSw1LDE3OCwxLDU5LDE3NDY3LDEsMTc4LDUsMTc5LDEsNTksMTc0NzQsMSwxNzksMSw4ODM1LDU5LDEsMTA5NTAsNCwyLDExMSwxMTUsMTc0ODcsMTc0OTEsMTE2LDU5LDEsMTA5NDIsMTE3LDk4LDU5LDEsMTA5NjgsNCwyLDU5LDEwMCwxNzUwMiwxNzUwNCwxLDg4MzksMTExLDExNiw1OSwxLDEwOTQ4LDExNSw0LDIsMTExLDExNywxNzUxNiwxNzUyMCwxMDgsNTksMSwxMDE4NSw5OCw1OSwxLDEwOTY3LDk3LDExNCwxMTQsNTksMSwxMDYxOSwxMTcsMTA4LDExNiw1OSwxLDEwOTQ2LDQsMiw2OSwxMDEsMTc1NDIsMTc1NDUsNTksMSwxMDk1Niw1OSwxLDg4NDMsMTA4LDExNywxMTUsNTksMSwxMDk0NCw0LDMsMTAxLDEwNSwxMTcsMTc1NjIsMTc1OTgsMTc2MDIsMTE2LDQsMyw1OSwxMDEsMTEwLDE3NTcxLDE3NTczLDE3NTg1LDEsODgzNSwxMTMsNCwyLDU5LDExMywxNzU4MCwxNzU4MiwxLDg4MzksNTksMSwxMDk1MCwxMDEsMTEzLDQsMiw1OSwxMTMsMTc1OTMsMTc1OTUsMSw4ODQzLDU5LDEsMTA5NTYsMTA5LDU5LDEsMTA5NTIsNCwyLDk4LDExMiwxNzYwOCwxNzYxMSw1OSwxLDEwOTY0LDU5LDEsMTA5NjYsNCwzLDY1LDk3LDExMCwxNzYyMiwxNzYyNywxNzY1MCwxMTQsMTE0LDU5LDEsODY2NSwxMTQsNCwyLDEwNCwxMTQsMTc2MzQsMTc2MzgsMTA3LDU5LDEsMTA1MzQsNCwyLDU5LDExMSwxNzY0NCwxNzY0NiwxLDg2MDEsMTE5LDU5LDEsODYwMSwxMTksOTcsMTE0LDU5LDEsMTA1MzgsMTA4LDEwNSwxMDMsNSwyMjMsMSw1OSwxNzY2NCwxLDIyMyw0LDEzLDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwNCwxMDUsMTExLDExMiwxMTQsMTE1LDExOSwxNzY5NCwxNzcwOSwxNzcxNCwxNzczNywxNzc0MiwxNzc0OSwxNzc1NCwxNzg2MCwxNzkwNSwxNzk1NywxNzk2NCwxODA5MCwxODEyMiw0LDIsMTE0LDExNywxNzcwMCwxNzcwNiwxMDMsMTAxLDExNiw1OSwxLDg5ODIsNTksMSw5NjQsMTE0LDEwNyw1OSwxLDkxNDAsNCwzLDk3LDEwMSwxMjEsMTc3MjIsMTc3MjgsMTc3MzQsMTE0LDExMSwxMTAsNTksMSwzNTcsMTAwLDEwNSwxMDgsNTksMSwzNTUsNTksMSwxMDkwLDExMSwxMTYsNTksMSw4NDExLDEwOCwxMTQsMTAxLDk5LDU5LDEsODk4MSwxMTQsNTksMyw1NTM0OSw1NjYyNSw0LDQsMTAxLDEwNSwxMDcsMTExLDE3NzY0LDE3ODA1LDE3ODM2LDE3ODUxLDQsMiwxMTQsMTE2LDE3NzcwLDE3Nzg2LDEwMSw0LDIsNTIsMTAyLDE3Nzc3LDE3NzgwLDU5LDEsODc1NiwxMTEsMTE0LDEwMSw1OSwxLDg3NTYsOTcsNCwzLDU5LDExNSwxMTgsMTc3OTUsMTc3OTcsMTc4MDIsMSw5NTIsMTIxLDEwOSw1OSwxLDk3Nyw1OSwxLDk3Nyw0LDIsOTksMTEwLDE3ODExLDE3ODMxLDEwNyw0LDIsOTcsMTE1LDE3ODE4LDE3ODI2LDExMiwxMTIsMTE0LDExMSwxMjAsNTksMSw4Nzc2LDEwNSwxMDksNTksMSw4NzY0LDExNSwxMTIsNTksMSw4MjAxLDQsMiw5NywxMTUsMTc4NDIsMTc4NDYsMTEyLDU5LDEsODc3NiwxMDUsMTA5LDU5LDEsODc2NCwxMTQsMTEwLDUsMjU0LDEsNTksMTc4NTgsMSwyNTQsNCwzLDEwOCwxMDksMTEwLDE3ODY4LDE3ODczLDE3OTAxLDEwMCwxMDEsNTksMSw3MzIsMTAxLDExNSw1LDIxNSwzLDU5LDk4LDEwMCwxNzg4NCwxNzg4NiwxNzg5OCwxLDIxNSw0LDIsNTksOTcsMTc4OTIsMTc4OTQsMSw4ODY0LDExNCw1OSwxLDEwODAxLDU5LDEsMTA4MDAsMTE2LDU5LDEsODc0OSw0LDMsMTAxLDExMiwxMTUsMTc5MTMsMTc5MTcsMTc5NTMsOTcsNTksMSwxMDUzNiw0LDQsNTksOTgsOTksMTAyLDE3OTI3LDE3OTI5LDE3OTM0LDE3OTM5LDEsODg2OCwxMTEsMTE2LDU5LDEsOTAxNCwxMDUsMTE0LDU5LDEsMTA5OTMsNCwyLDU5LDExMSwxNzk0NSwxNzk0OCwzLDU1MzQ5LDU2Njc3LDExNCwxMDcsNTksMSwxMDk3MCw5Nyw1OSwxLDEwNTM3LDExNCwxMDUsMTA5LDEwMSw1OSwxLDgyNDQsNCwzLDk3LDEwNSwxMTIsMTc5NzIsMTc5NzcsMTgwODIsMTAwLDEwMSw1OSwxLDg0ODIsNCw3LDk3LDEwMCwxMDEsMTA5LDExMiwxMTUsMTE2LDE3OTkzLDE4MDUxLDE4MDU2LDE4MDU5LDE4MDY2LDE4MDcyLDE4MDc2LDExMCwxMDMsMTA4LDEwMSw0LDUsNTksMTAwLDEwOCwxMTMsMTE0LDE4MDA5LDE4MDExLDE4MDE3LDE4MDMyLDE4MDM1LDEsOTY1MywxMTEsMTE5LDExMCw1OSwxLDk2NjMsMTAxLDEwMiwxMTYsNCwyLDU5LDEwMSwxODAyNiwxODAyOCwxLDk2NjcsMTEzLDU5LDEsODg4NCw1OSwxLDg3OTYsMTA1LDEwMywxMDQsMTE2LDQsMiw1OSwxMDEsMTgwNDUsMTgwNDcsMSw5NjU3LDExMyw1OSwxLDg4ODUsMTExLDExNiw1OSwxLDk3MDgsNTksMSw4Nzk2LDEwNSwxMTAsMTE3LDExNSw1OSwxLDEwODEwLDEwOCwxMTcsMTE1LDU5LDEsMTA4MDksOTgsNTksMSwxMDcwMSwxMDUsMTA5LDEwMSw1OSwxLDEwODExLDEwMSwxMjIsMTA1LDExNywxMDksNTksMSw5MTg2LDQsMyw5OSwxMDQsMTE2LDE4MDk4LDE4MTExLDE4MTE2LDQsMiwxMTQsMTIxLDE4MTA0LDE4MTA4LDU5LDMsNTUzNDksNTY1MjEsNTksMSwxMDk0LDk5LDEyMSw1OSwxLDExMTUsMTE0LDExMSwxMDcsNTksMSwzNTksNCwyLDEwNSwxMTEsMTgxMjgsMTgxMzMsMTIwLDExNiw1OSwxLDg4MTIsMTA0LDEwMSw5NywxMDAsNCwyLDEwOCwxMTQsMTgxNDMsMTgxNTQsMTAxLDEwMiwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDU5LDEsODYwNiwxMDUsMTAzLDEwNCwxMTYsOTcsMTE0LDExNCwxMTEsMTE5LDU5LDEsODYwOCw0LDE4LDY1LDcyLDk3LDk4LDk5LDEwMCwxMDIsMTAzLDEwNCwxMDgsMTA5LDExMSwxMTIsMTE0LDExNSwxMTYsMTE3LDExOSwxODIwNCwxODIwOSwxODIxNCwxODIzNCwxODI1MCwxODI2OCwxODI5MiwxODMwOCwxODMxOSwxODM0MywxODM3OSwxODM5NywxODQxMywxODUwNCwxODU0NywxODU1MywxODU4NCwxODYwMywxMTQsMTE0LDU5LDEsODY1Nyw5NywxMTQsNTksMSwxMDU5NSw0LDIsOTksMTE0LDE4MjIwLDE4MjMwLDExNywxMTYsMTAxLDUsMjUwLDEsNTksMTgyMjgsMSwyNTAsMTE0LDU5LDEsODU5MywxMTQsNCwyLDk5LDEwMSwxODI0MSwxODI0NSwxMjEsNTksMSwxMTE4LDExOCwxMDEsNTksMSwzNjUsNCwyLDEwNSwxMjEsMTgyNTYsMTgyNjUsMTE0LDk5LDUsMjUxLDEsNTksMTgyNjMsMSwyNTEsNTksMSwxMDkxLDQsMyw5Nyw5OCwxMDQsMTgyNzYsMTgyODEsMTgyODcsMTE0LDExNCw1OSwxLDg2NDUsMTA4LDk3LDk5LDU5LDEsMzY5LDk3LDExNCw1OSwxLDEwNjA2LDQsMiwxMDUsMTE0LDE4Mjk4LDE4MzA0LDExNSwxMDQsMTE2LDU5LDEsMTA2MjIsNTksMyw1NTM0OSw1NjYyNiwxMTQsOTcsMTE4LDEwMSw1LDI0OSwxLDU5LDE4MzE3LDEsMjQ5LDQsMiw5Nyw5OCwxODMyNSwxODMzOCwxMTQsNCwyLDEwOCwxMTQsMTgzMzIsMTgzMzUsNTksMSw4NjM5LDU5LDEsODYzOCwxMDgsMTA3LDU5LDEsOTYwMCw0LDIsOTksMTE2LDE4MzQ5LDE4Mzc0LDQsMiwxMTEsMTE0LDE4MzU1LDE4MzY5LDExNCwxMTAsNCwyLDU5LDEwMSwxODM2MywxODM2NSwxLDg5ODgsMTE0LDU5LDEsODk4OCwxMTEsMTEyLDU5LDEsODk3NSwxMTQsMTA1LDU5LDEsOTcyMCw0LDIsOTcsMTA4LDE4Mzg1LDE4MzkwLDk5LDExNCw1OSwxLDM2Myw1LDE2OCwxLDU5LDE4Mzk1LDEsMTY4LDQsMiwxMDMsMTEyLDE4NDAzLDE4NDA4LDExMSwxMTAsNTksMSwzNzEsMTAyLDU5LDMsNTUzNDksNTY2NzgsNCw2LDk3LDEwMCwxMDQsMTA4LDExNSwxMTcsMTg0MjcsMTg0MzQsMTg0NDUsMTg0NzAsMTg0NzUsMTg0OTQsMTE0LDExNCwxMTEsMTE5LDU5LDEsODU5MywxMTEsMTE5LDExMCw5NywxMTQsMTE0LDExMSwxMTksNTksMSw4NTk3LDk3LDExNCwxMTIsMTExLDExMSwxMTAsNCwyLDEwOCwxMTQsMTg0NTcsMTg0NjMsMTAxLDEwMiwxMTYsNTksMSw4NjM5LDEwNSwxMDMsMTA0LDExNiw1OSwxLDg2MzgsMTE3LDExNSw1OSwxLDg4NDYsMTA1LDQsMyw1OSwxMDQsMTA4LDE4NDg0LDE4NDg2LDE4NDg5LDEsOTY1LDU5LDEsOTc4LDExMSwxMTAsNTksMSw5NjUsMTEyLDk3LDExNCwxMTQsMTExLDExOSwxMTUsNTksMSw4NjQ4LDQsMyw5OSwxMDUsMTE2LDE4NTEyLDE4NTM3LDE4NTQyLDQsMiwxMTEsMTE0LDE4NTE4LDE4NTMyLDExNCwxMTAsNCwyLDU5LDEwMSwxODUyNiwxODUyOCwxLDg5ODksMTE0LDU5LDEsODk4OSwxMTEsMTEyLDU5LDEsODk3NCwxMTAsMTAzLDU5LDEsMzY3LDExNCwxMDUsNTksMSw5NzIxLDk5LDExNCw1OSwzLDU1MzQ5LDU2NTIyLDQsMywxMDAsMTA1LDExNCwxODU2MSwxODU2NiwxODU3MiwxMTEsMTE2LDU5LDEsODk0NCwxMDgsMTAwLDEwMSw1OSwxLDM2MSwxMDUsNCwyLDU5LDEwMiwxODU3OSwxODU4MSwxLDk2NTMsNTksMSw5NjUyLDQsMiw5NywxMDksMTg1OTAsMTg1OTUsMTE0LDExNCw1OSwxLDg2NDgsMTA4LDUsMjUyLDEsNTksMTg2MDEsMSwyNTIsOTcsMTEwLDEwMywxMDgsMTAxLDU5LDEsMTA2NjMsNCwxNSw2NSw2Niw2OCw5Nyw5OSwxMDAsMTAxLDEwMiwxMDgsMTEwLDExMSwxMTIsMTE0LDExNSwxMjIsMTg2NDMsMTg2NDgsMTg2NjEsMTg2NjcsMTg4NDcsMTg4NTEsMTg4NTcsMTg5MDQsMTg5MDksMTg5MTUsMTg5MzEsMTg5MzcsMTg5NDMsMTg5NDksMTg5OTYsMTE0LDExNCw1OSwxLDg2NjEsOTcsMTE0LDQsMiw1OSwxMTgsMTg2NTYsMTg2NTgsMSwxMDk4NCw1OSwxLDEwOTg1LDk3LDExNSwxMDQsNTksMSw4ODcyLDQsMiwxMTAsMTE0LDE4NjczLDE4Njc5LDEwMywxMTQsMTE2LDU5LDEsMTA2NTIsNCw3LDEwMSwxMDcsMTEwLDExMiwxMTQsMTE1LDExNiwxODY5NSwxODcwNCwxODcxMSwxODcyMCwxODc0MiwxODc1NCwxODgxMCwxMTIsMTE1LDEwNSwxMDgsMTExLDExMCw1OSwxLDEwMTMsOTcsMTEyLDExMiw5Nyw1OSwxLDEwMDgsMTExLDExNiwxMDQsMTA1LDExMCwxMDMsNTksMSw4NzA5LDQsMywxMDQsMTA1LDExNCwxODcyOCwxODczMiwxODczNSwxMDUsNTksMSw5ODEsNTksMSw5ODIsMTExLDExMiwxMTYsMTExLDU5LDEsODczMyw0LDIsNTksMTA0LDE4NzQ4LDE4NzUwLDEsODU5NywxMTEsNTksMSwxMDA5LDQsMiwxMDUsMTE3LDE4NzYwLDE4NzY2LDEwMywxMDksOTcsNTksMSw5NjIsNCwyLDk4LDExMiwxODc3MiwxODc5MSwxMTUsMTAxLDExNiwxMTAsMTAxLDExMyw0LDIsNTksMTEzLDE4Nzg0LDE4Nzg3LDMsODg0Miw2NTAyNCw1OSwzLDEwOTU1LDY1MDI0LDExNSwxMDEsMTE2LDExMCwxMDEsMTEzLDQsMiw1OSwxMTMsMTg4MDMsMTg4MDYsMyw4ODQzLDY1MDI0LDU5LDMsMTA5NTYsNjUwMjQsNCwyLDEwNCwxMTQsMTg4MTYsMTg4MjIsMTAxLDExNiw5Nyw1OSwxLDk3NywxMDUsOTcsMTEwLDEwMywxMDgsMTAxLDQsMiwxMDgsMTE0LDE4ODM0LDE4ODQwLDEwMSwxMDIsMTE2LDU5LDEsODg4MiwxMDUsMTAzLDEwNCwxMTYsNTksMSw4ODgzLDEyMSw1OSwxLDEwNzQsOTcsMTE1LDEwNCw1OSwxLDg4NjYsNCwzLDEwMSwxMDgsMTE0LDE4ODY1LDE4ODg0LDE4ODkwLDQsMyw1OSw5OCwxMDEsMTg4NzMsMTg4NzUsMTg4ODAsMSw4NzQ0LDk3LDExNCw1OSwxLDg4OTEsMTEzLDU5LDEsODc5NCwxMDgsMTA1LDExMiw1OSwxLDg5NDIsNCwyLDk4LDExNiwxODg5NiwxODkwMSw5NywxMTQsNTksMSwxMjQsNTksMSwxMjQsMTE0LDU5LDMsNTUzNDksNTY2MjcsMTE2LDExNCwxMDUsNTksMSw4ODgyLDExNSwxMTcsNCwyLDk4LDExMiwxODkyMywxODkyNyw1OSwzLDg4MzQsODQwMiw1OSwzLDg4MzUsODQwMiwxMTIsMTAyLDU5LDMsNTUzNDksNTY2NzksMTE0LDExMSwxMTIsNTksMSw4NzMzLDExNiwxMTQsMTA1LDU5LDEsODg4Myw0LDIsOTksMTE3LDE4OTU1LDE4OTYwLDExNCw1OSwzLDU1MzQ5LDU2NTIzLDQsMiw5OCwxMTIsMTg5NjYsMTg5ODEsMTEwLDQsMiw2OSwxMDEsMTg5NzMsMTg5NzcsNTksMywxMDk1NSw2NTAyNCw1OSwzLDg4NDIsNjUwMjQsMTEwLDQsMiw2OSwxMDEsMTg5ODgsMTg5OTIsNTksMywxMDk1Niw2NTAyNCw1OSwzLDg4NDMsNjUwMjQsMTA1LDEwMywxMjIsOTcsMTAzLDU5LDEsMTA2NTAsNCw3LDk5LDEwMSwxMDIsMTExLDExMiwxMTQsMTE1LDE5MDIwLDE5MDI2LDE5MDYxLDE5MDY2LDE5MDcyLDE5MDc1LDE5MDg5LDEwNSwxMTQsOTksNTksMSwzNzMsNCwyLDEwMCwxMDUsMTkwMzIsMTkwNTUsNCwyLDk4LDEwMywxOTAzOCwxOTA0Myw5NywxMTQsNTksMSwxMDg0NywxMDEsNCwyLDU5LDExMywxOTA1MCwxOTA1MiwxLDg3NDMsNTksMSw4NzkzLDEwMSwxMTQsMTEyLDU5LDEsODQ3MiwxMTQsNTksMyw1NTM0OSw1NjYyOCwxMTIsMTAyLDU5LDMsNTUzNDksNTY2ODAsNTksMSw4NDcyLDQsMiw1OSwxMDEsMTkwODEsMTkwODMsMSw4NzY4LDk3LDExNiwxMDQsNTksMSw4NzY4LDk5LDExNCw1OSwzLDU1MzQ5LDU2NTI0LDQsMTQsOTksMTAwLDEwMiwxMDQsMTA1LDEwOCwxMDksMTEwLDExMSwxMTQsMTE1LDExNywxMTgsMTE5LDE5MTI1LDE5MTQ2LDE5MTUyLDE5MTU3LDE5MTczLDE5MTc2LDE5MTkyLDE5MTk3LDE5MjAyLDE5MjM2LDE5MjUyLDE5MjY5LDE5Mjg2LDE5MjkxLDQsMyw5NywxMDUsMTE3LDE5MTMzLDE5MTM3LDE5MTQyLDExMiw1OSwxLDg4OTgsMTE0LDk5LDU5LDEsOTcxMSwxMTIsNTksMSw4ODk5LDExNiwxMTQsMTA1LDU5LDEsOTY2MSwxMTQsNTksMyw1NTM0OSw1NjYyOSw0LDIsNjUsOTcsMTkxNjMsMTkxNjgsMTE0LDExNCw1OSwxLDEwMjM0LDExNCwxMTQsNTksMSwxMDIzMSw1OSwxLDk1OCw0LDIsNjUsOTcsMTkxODIsMTkxODcsMTE0LDExNCw1OSwxLDEwMjMyLDExNCwxMTQsNTksMSwxMDIyOSw5NywxMTIsNTksMSwxMDIzNiwxMDUsMTE1LDU5LDEsODk1NSw0LDMsMTAwLDExMiwxMTYsMTkyMTAsMTkyMTUsMTkyMzAsMTExLDExNiw1OSwxLDEwNzUyLDQsMiwxMDIsMTA4LDE5MjIxLDE5MjI1LDU5LDMsNTUzNDksNTY2ODEsMTE3LDExNSw1OSwxLDEwNzUzLDEwNSwxMDksMTAxLDU5LDEsMTA3NTQsNCwyLDY1LDk3LDE5MjQyLDE5MjQ3LDExNCwxMTQsNTksMSwxMDIzMywxMTQsMTE0LDU5LDEsMTAyMzAsNCwyLDk5LDExMywxOTI1OCwxOTI2MywxMTQsNTksMyw1NTM0OSw1NjUyNSw5OSwxMTcsMTEyLDU5LDEsMTA3NTgsNCwyLDExMiwxMTYsMTkyNzUsMTkyODEsMTA4LDExNywxMTUsNTksMSwxMDc1NiwxMTQsMTA1LDU5LDEsOTY1MSwxMDEsMTAxLDU5LDEsODg5NywxMDEsMTAwLDEwMywxMDEsNTksMSw4ODk2LDQsOCw5Nyw5OSwxMDEsMTAyLDEwNSwxMTEsMTE1LDExNywxOTMxNiwxOTMzNSwxOTM0OSwxOTM1NywxOTM2MiwxOTM2NywxOTM3MywxOTM3OSw5OSw0LDIsMTE3LDEyMSwxOTMyMywxOTMzMiwxMTYsMTAxLDUsMjUzLDEsNTksMTkzMzAsMSwyNTMsNTksMSwxMTAzLDQsMiwxMDUsMTIxLDE5MzQxLDE5MzQ2LDExNCw5OSw1OSwxLDM3NSw1OSwxLDEwOTksMTEwLDUsMTY1LDEsNTksMTkzNTUsMSwxNjUsMTE0LDU5LDMsNTUzNDksNTY2MzAsOTksMTIxLDU5LDEsMTExMSwxMTIsMTAyLDU5LDMsNTUzNDksNTY2ODIsOTksMTE0LDU5LDMsNTUzNDksNTY1MjYsNCwyLDk5LDEwOSwxOTM4NSwxOTM4OSwxMjEsNTksMSwxMTAyLDEwOCw1LDI1NSwxLDU5LDE5Mzk1LDEsMjU1LDQsMTAsOTcsOTksMTAwLDEwMSwxMDIsMTA0LDEwNSwxMTEsMTE1LDExOSwxOTQxOSwxOTQyNiwxOTQ0MSwxOTQ0NiwxOTQ2MiwxOTQ2NywxOTQ3MiwxOTQ4MCwxOTQ4NiwxOTQ5Miw5OSwxMTcsMTE2LDEwMSw1OSwxLDM3OCw0LDIsOTcsMTIxLDE5NDMyLDE5NDM4LDExNCwxMTEsMTEwLDU5LDEsMzgyLDU5LDEsMTA3OSwxMTEsMTE2LDU5LDEsMzgwLDQsMiwxMDEsMTE2LDE5NDUyLDE5NDU4LDExNiwxMTQsMTAyLDU5LDEsODQ4OCw5Nyw1OSwxLDk1MCwxMTQsNTksMyw1NTM0OSw1NjYzMSw5OSwxMjEsNTksMSwxMDc4LDEwMywxMTQsOTcsMTE0LDExNCw1OSwxLDg2NjksMTEyLDEwMiw1OSwzLDU1MzQ5LDU2NjgzLDk5LDExNCw1OSwzLDU1MzQ5LDU2NTI3LDQsMiwxMDYsMTEwLDE5NDk4LDE5NTAxLDU5LDEsODIwNSwxMDYsNTksMSw4MjA0XSk7IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgUHJlcHJvY2Vzc29yID0gcmVxdWlyZSgnLi9wcmVwcm9jZXNzb3InKSxcbiAgICBVTklDT0RFID0gcmVxdWlyZSgnLi4vY29tbW9uL3VuaWNvZGUnKSxcbiAgICBuZVRyZWUgPSByZXF1aXJlKCcuL25hbWVkX2VudGl0eV9kYXRhJyk7XG5cbi8vQWxpYXNlc1xudmFyICQgPSBVTklDT0RFLkNPREVfUE9JTlRTLFxuICAgICQkID0gVU5JQ09ERS5DT0RFX1BPSU5UX1NFUVVFTkNFUztcblxuLy9SZXBsYWNlbWVudCBjb2RlIHBvaW50cyBmb3IgbnVtZXJpYyBlbnRpdGllc1xudmFyIE5VTUVSSUNfRU5USVRZX1JFUExBQ0VNRU5UUyA9IHtcbiAgICAweDAwOiAweEZGRkQsIDB4MEQ6IDB4MDAwRCwgMHg4MDogMHgyMEFDLCAweDgxOiAweDAwODEsIDB4ODI6IDB4MjAxQSwgMHg4MzogMHgwMTkyLCAweDg0OiAweDIwMUUsXG4gICAgMHg4NTogMHgyMDI2LCAweDg2OiAweDIwMjAsIDB4ODc6IDB4MjAyMSwgMHg4ODogMHgwMkM2LCAweDg5OiAweDIwMzAsIDB4OEE6IDB4MDE2MCwgMHg4QjogMHgyMDM5LFxuICAgIDB4OEM6IDB4MDE1MiwgMHg4RDogMHgwMDhELCAweDhFOiAweDAxN0QsIDB4OEY6IDB4MDA4RiwgMHg5MDogMHgwMDkwLCAweDkxOiAweDIwMTgsIDB4OTI6IDB4MjAxOSxcbiAgICAweDkzOiAweDIwMUMsIDB4OTQ6IDB4MjAxRCwgMHg5NTogMHgyMDIyLCAweDk2OiAweDIwMTMsIDB4OTc6IDB4MjAxNCwgMHg5ODogMHgwMkRDLCAweDk5OiAweDIxMjIsXG4gICAgMHg5QTogMHgwMTYxLCAweDlCOiAweDIwM0EsIDB4OUM6IDB4MDE1MywgMHg5RDogMHgwMDlELCAweDlFOiAweDAxN0UsIDB4OUY6IDB4MDE3OFxufTtcblxuLy8gTmFtZWQgZW50aXR5IHRyZWUgZmxhZ3NcbnZhciBIQVNfREFUQV9GTEFHID0gMSA8PCAwO1xudmFyIERBVEFfRFVQTEVUX0ZMQUcgPSAxIDw8IDE7XG52YXIgSEFTX0JSQU5DSEVTX0ZMQUcgPSAxIDw8IDI7XG52YXIgTUFYX0JSQU5DSF9NQVJLRVJfVkFMVUUgPSBIQVNfREFUQV9GTEFHIHwgREFUQV9EVVBMRVRfRkxBRyB8IEhBU19CUkFOQ0hFU19GTEFHO1xuXG5cbi8vU3RhdGVzXG52YXIgREFUQV9TVEFURSA9ICdEQVRBX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0RBVEFfU1RBVEUgPSAnQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFJyxcbiAgICBSQ0RBVEFfU1RBVEUgPSAnUkNEQVRBX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURSA9ICdDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURScsXG4gICAgUkFXVEVYVF9TVEFURSA9ICdSQVdURVhUX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9TVEFURSA9ICdTQ1JJUFRfREFUQV9TVEFURScsXG4gICAgUExBSU5URVhUX1NUQVRFID0gJ1BMQUlOVEVYVF9TVEFURScsXG4gICAgVEFHX09QRU5fU1RBVEUgPSAnVEFHX09QRU5fU1RBVEUnLFxuICAgIEVORF9UQUdfT1BFTl9TVEFURSA9ICdFTkRfVEFHX09QRU5fU1RBVEUnLFxuICAgIFRBR19OQU1FX1NUQVRFID0gJ1RBR19OQU1FX1NUQVRFJyxcbiAgICBSQ0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBSQ0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFID0gJ1JDREFUQV9FTkRfVEFHX09QRU5fU1RBVEUnLFxuICAgIFJDREFUQV9FTkRfVEFHX05BTUVfU1RBVEUgPSAnUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURScsXG4gICAgUkFXVEVYVF9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURSA9ICdSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURScsXG4gICAgUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEUgPSAnUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFJyxcbiAgICBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUgPSAnQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFJyxcbiAgICBBVFRSSUJVVEVfTkFNRV9TVEFURSA9ICdBVFRSSUJVVEVfTkFNRV9TVEFURScsXG4gICAgQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEUgPSAnQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEUnLFxuICAgIEJFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEUgPSAnQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURScsXG4gICAgQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEUgPSAnQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEUnLFxuICAgIEFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0FUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEUgPSAnQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURSA9ICdDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURScsXG4gICAgQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURSA9ICdBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFJyxcbiAgICBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFID0gJ1NFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEUnLFxuICAgIEJPR1VTX0NPTU1FTlRfU1RBVEUgPSAnQk9HVVNfQ09NTUVOVF9TVEFURScsXG4gICAgQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT04gPSAnQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT04nLFxuICAgIE1BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFID0gJ01BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFJyxcbiAgICBDT01NRU5UX1NUQVJUX1NUQVRFID0gJ0NPTU1FTlRfU1RBUlRfU1RBVEUnLFxuICAgIENPTU1FTlRfU1RBUlRfREFTSF9TVEFURSA9ICdDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEUnLFxuICAgIENPTU1FTlRfU1RBVEUgPSAnQ09NTUVOVF9TVEFURScsXG4gICAgQ09NTUVOVF9FTkRfREFTSF9TVEFURSA9ICdDT01NRU5UX0VORF9EQVNIX1NUQVRFJyxcbiAgICBDT01NRU5UX0VORF9TVEFURSA9ICdDT01NRU5UX0VORF9TVEFURScsXG4gICAgQ09NTUVOVF9FTkRfQkFOR19TVEFURSA9ICdDT01NRU5UX0VORF9CQU5HX1NUQVRFJyxcbiAgICBET0NUWVBFX1NUQVRFID0gJ0RPQ1RZUEVfU1RBVEUnLFxuICAgIERPQ1RZUEVfTkFNRV9TVEFURSA9ICdET0NUWVBFX05BTUVfU1RBVEUnLFxuICAgIEFGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX05BTUVfU1RBVEUnLFxuICAgIEJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFID0gJ0JFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFJyxcbiAgICBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEUgPSAnQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFJyxcbiAgICBCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURScsXG4gICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURScsXG4gICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURScsXG4gICAgQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFJyxcbiAgICBCT0dVU19ET0NUWVBFX1NUQVRFID0gJ0JPR1VTX0RPQ1RZUEVfU1RBVEUnLFxuICAgIENEQVRBX1NFQ1RJT05fU1RBVEUgPSAnQ0RBVEFfU0VDVElPTl9TVEFURSc7XG5cbi8vVXRpbHNcblxuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cblxuZnVuY3Rpb24gaXNBc2NpaVVwcGVyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9aO1xufVxuXG5mdW5jdGlvbiBpc0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfWjtcbn1cblxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5cbmZ1bmN0aW9uIGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaUxldHRlcihjcCkgfHwgaXNBc2NpaURpZ2l0KGNwKTtcbn1cblxuZnVuY3Rpb24gaXNEaWdpdChjcCwgaXNIZXgpIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0hleCAmJiAoY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX0YgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfRik7XG59XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gMHhEODAwICYmIGNwIDw9IDB4REZGRiB8fCBjcCA+IDB4MTBGRkZGO1xufVxuXG5mdW5jdGlvbiB0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gY3AgKyAweDAwMjA7XG59XG5cbi8vTk9URTogU3RyaW5nLmZyb21DaGFyQ29kZSgpIGZ1bmN0aW9uIGNhbiBoYW5kbGUgb25seSBjaGFyYWN0ZXJzIGZyb20gQk1QIHN1YnNldC5cbi8vU28sIHdlIG5lZWQgdG8gd29ya2Fyb3VuZCB0aGlzIG1hbnVhbGx5LlxuLy8oc2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1N0cmluZy9mcm9tQ2hhckNvZGUjR2V0dGluZ19pdF90b193b3JrX3dpdGhfaGlnaGVyX3ZhbHVlcylcbmZ1bmN0aW9uIHRvQ2hhcihjcCkge1xuICAgIGlmIChjcCA8PSAweEZGRkYpXG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNwKTtcblxuICAgIGNwIC09IDB4MTAwMDA7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY3AgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweERDMDAgfCBjcCAmIDB4M0ZGKTtcbn1cblxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyQ2hhcihjcCkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpO1xufVxuXG5mdW5jdGlvbiBmaW5kTmFtZWRFbnRpdHlUcmVlQnJhbmNoKG5vZGVJeCwgY3ApIHtcbiAgICB2YXIgYnJhbmNoQ291bnQgPSBuZVRyZWVbKytub2RlSXhdLFxuICAgICAgICBsbyA9ICsrbm9kZUl4LFxuICAgICAgICBoaSA9IGxvICsgYnJhbmNoQ291bnQgLSAxO1xuXG4gICAgd2hpbGUgKGxvIDw9IGhpKSB7XG4gICAgICAgIHZhciBtaWQgPSBsbyArIGhpID4+PiAxLFxuICAgICAgICAgICAgbWlkQ3AgPSBuZVRyZWVbbWlkXTtcblxuICAgICAgICBpZiAobWlkQ3AgPCBjcClcbiAgICAgICAgICAgIGxvID0gbWlkICsgMTtcblxuICAgICAgICBlbHNlIGlmIChtaWRDcCA+IGNwKVxuICAgICAgICAgICAgaGkgPSBtaWQgLSAxO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHJldHVybiBuZVRyZWVbbWlkICsgYnJhbmNoQ291bnRdO1xuICAgIH1cblxuICAgIHJldHVybiAtMTtcbn1cblxuXG4vL1Rva2VuaXplclxudmFyIFRva2VuaXplciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMucHJlcHJvY2Vzc29yID0gbmV3IFByZXByb2Nlc3NvcigpO1xuXG4gICAgdGhpcy50b2tlblF1ZXVlID0gW107XG5cbiAgICB0aGlzLmFsbG93Q0RBVEEgPSBmYWxzZTtcblxuICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIHRoaXMucmV0dXJuU3RhdGUgPSAnJztcblxuICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTtcbiAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSB2b2lkIDA7XG4gICAgdGhpcy5sYXN0U3RhcnRUYWdOYW1lID0gJyc7XG5cbiAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA9IC0xO1xuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG5cbiAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xuICAgIHRoaXMuY3VycmVudEF0dHIgPSBudWxsO1xufTtcblxuLy9Ub2tlbiB0eXBlc1xuVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiA9ICdDSEFSQUNURVJfVE9LRU4nO1xuVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOID0gJ05VTExfQ0hBUkFDVEVSX1RPS0VOJztcblRva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTiA9ICdXSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTic7XG5Ub2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOID0gJ1NUQVJUX1RBR19UT0tFTic7XG5Ub2tlbml6ZXIuRU5EX1RBR19UT0tFTiA9ICdFTkRfVEFHX1RPS0VOJztcblRva2VuaXplci5DT01NRU5UX1RPS0VOID0gJ0NPTU1FTlRfVE9LRU4nO1xuVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU4gPSAnRE9DVFlQRV9UT0tFTic7XG5Ub2tlbml6ZXIuRU9GX1RPS0VOID0gJ0VPRl9UT0tFTic7XG5Ub2tlbml6ZXIuSElCRVJOQVRJT05fVE9LRU4gPSAnSElCRVJOQVRJT05fVE9LRU4nO1xuXG4vL1Rva2VuaXplciBpbml0aWFsIHN0YXRlcyBmb3IgZGlmZmVyZW50IG1vZGVzXG5Ub2tlbml6ZXIuTU9ERSA9IHtcbiAgICBEQVRBOiBEQVRBX1NUQVRFLFxuICAgIFJDREFUQTogUkNEQVRBX1NUQVRFLFxuICAgIFJBV1RFWFQ6IFJBV1RFWFRfU1RBVEUsXG4gICAgU0NSSVBUX0RBVEE6IFNDUklQVF9EQVRBX1NUQVRFLFxuICAgIFBMQUlOVEVYVDogUExBSU5URVhUX1NUQVRFXG59O1xuXG4vL1N0YXRpY1xuVG9rZW5pemVyLmdldFRva2VuQXR0ciA9IGZ1bmN0aW9uICh0b2tlbiwgYXR0ck5hbWUpIHtcbiAgICBmb3IgKHZhciBpID0gdG9rZW4uYXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IGF0dHJOYW1lKVxuICAgICAgICAgICAgcmV0dXJuIHRva2VuLmF0dHJzW2ldLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLy9BUElcblRva2VuaXplci5wcm90b3R5cGUuZ2V0TmV4dFRva2VuID0gZnVuY3Rpb24gKCkge1xuICAgIHdoaWxlICghdGhpcy50b2tlblF1ZXVlLmxlbmd0aCAmJiB0aGlzLmFjdGl2ZSkge1xuICAgICAgICB0aGlzLl9oaWJlcm5hdGlvblNuYXBzaG90KCk7XG5cbiAgICAgICAgdmFyIGNwID0gdGhpcy5fY29uc3VtZSgpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSlcbiAgICAgICAgICAgIHRoaXNbdGhpcy5zdGF0ZV0oY3ApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRva2VuUXVldWUuc2hpZnQoKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGlzTGFzdENodW5rKSB7XG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLndyaXRlKGNodW5rLCBpc0xhc3RDaHVuayk7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLmluc2VydEh0bWxBdEN1cnJlbnRQb3MgPSBmdW5jdGlvbiAoY2h1bmspIHtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3IuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyhjaHVuayk7XG59O1xuXG4vL0hpYmVybmF0aW9uXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9oaWJlcm5hdGlvblNuYXBzaG90ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID0gMDtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2Vuc3VyZUhpYmVybmF0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnByZXByb2Nlc3Nvci5lbmRPZkNodW5rSGl0KSB7XG4gICAgICAgIGZvciAoOyB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCA+IDA7IHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90LS0pXG4gICAgICAgICAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b2tlblF1ZXVlLnB1c2goe3R5cGU6IFRva2VuaXplci5ISUJFUk5BVElPTl9UT0tFTn0pO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cblxuLy9Db25zdW1wdGlvblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdCsrO1xuICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3Nvci5hZHZhbmNlKCk7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl91bmNvbnN1bWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QtLTtcbiAgICB0aGlzLnByZXByb2Nlc3Nvci5yZXRyZWF0KCk7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl91bmNvbnN1bWVTZXZlcmFsID0gZnVuY3Rpb24gKGNvdW50KSB7XG4gICAgd2hpbGUgKGNvdW50LS0pXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZSgpO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fcmVjb25zdW1lSW5TdGF0ZSA9IGZ1bmN0aW9uIChzdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLl91bmNvbnN1bWUoKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCA9IGZ1bmN0aW9uIChwYXR0ZXJuLCBzdGFydENwLCBjYXNlU2Vuc2l0aXZlKSB7XG4gICAgdmFyIGNvbnN1bWVkQ291bnQgPSAwLFxuICAgICAgICBpc01hdGNoID0gdHJ1ZSxcbiAgICAgICAgcGF0dGVybkxlbmd0aCA9IHBhdHRlcm4ubGVuZ3RoLFxuICAgICAgICBwYXR0ZXJuUG9zID0gMCxcbiAgICAgICAgY3AgPSBzdGFydENwLFxuICAgICAgICBwYXR0ZXJuQ3AgPSB2b2lkIDA7XG5cbiAgICBmb3IgKDsgcGF0dGVyblBvcyA8IHBhdHRlcm5MZW5ndGg7IHBhdHRlcm5Qb3MrKykge1xuICAgICAgICBpZiAocGF0dGVyblBvcyA+IDApIHtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgY29uc3VtZWRDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBwYXR0ZXJuQ3AgPSBwYXR0ZXJuW3BhdHRlcm5Qb3NdO1xuXG4gICAgICAgIGlmIChjcCAhPT0gcGF0dGVybkNwICYmIChjYXNlU2Vuc2l0aXZlIHx8IGNwICE9PSB0b0FzY2lpTG93ZXJDb2RlUG9pbnQocGF0dGVybkNwKSkpIHtcbiAgICAgICAgICAgIGlzTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc01hdGNoKVxuICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQpO1xuXG4gICAgcmV0dXJuIGlzTWF0Y2g7XG59O1xuXG4vL0xvb2thaGVhZFxuVG9rZW5pemVyLnByb3RvdHlwZS5fbG9va2FoZWFkID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcblxuICAgIHRoaXMuX3VuY29uc3VtZSgpO1xuXG4gICAgcmV0dXJuIGNwO1xufTtcblxuLy9UZW1wIGJ1ZmZlclxuVG9rZW5pemVyLnByb3RvdHlwZS5pc1RlbXBCdWZmZXJFcXVhbFRvU2NyaXB0U3RyaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICh0aGlzLnRlbXBCdWZmLmxlbmd0aCAhPT0gJCQuU0NSSVBUX1NUUklORy5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50ZW1wQnVmZi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAodGhpcy50ZW1wQnVmZltpXSAhPT0gJCQuU0NSSVBUX1NUUklOR1tpXSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbi8vVG9rZW4gY3JlYXRpb25cblRva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgIHR5cGU6IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4sXG4gICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICBzZWxmQ2xvc2luZzogZmFsc2UsXG4gICAgICAgIGF0dHJzOiBbXVxuICAgIH07XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgdHlwZTogVG9rZW5pemVyLkVORF9UQUdfVE9LRU4sXG4gICAgICAgIHRhZ05hbWU6ICcnLFxuICAgICAgICBhdHRyczogW11cbiAgICB9O1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlQ29tbWVudFRva2VuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICB0eXBlOiBUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTixcbiAgICAgICAgZGF0YTogJydcbiAgICB9O1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlRG9jdHlwZVRva2VuID0gZnVuY3Rpb24gKGluaXRpYWxOYW1lKSB7XG4gICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgIHR5cGU6IFRva2VuaXplci5ET0NUWVBFX1RPS0VOLFxuICAgICAgICBuYW1lOiBpbml0aWFsTmFtZSxcbiAgICAgICAgZm9yY2VRdWlya3M6IGZhbHNlLFxuICAgICAgICBwdWJsaWNJZDogbnVsbCxcbiAgICAgICAgc3lzdGVtSWQ6IG51bGxcbiAgICB9O1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAodHlwZSwgY2gpIHtcbiAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgY2hhcnM6IGNoXG4gICAgfTtcbn07XG5cbi8vVGFnIGF0dHJpYnV0ZXNcblRva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZUF0dHIgPSBmdW5jdGlvbiAoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgdGhpcy5jdXJyZW50QXR0ciA9IHtcbiAgICAgICAgbmFtZTogYXR0ck5hbWVGaXJzdENoLFxuICAgICAgICB2YWx1ZTogJydcbiAgICB9O1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5faXNEdXBsaWNhdGVBdHRyID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHRoaXMuY3VycmVudFRva2VuLCB0aGlzLmN1cnJlbnRBdHRyLm5hbWUpICE9PSBudWxsO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fbGVhdmVBdHRyTmFtZSA9IGZ1bmN0aW9uICh0b1N0YXRlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHRvU3RhdGU7XG5cbiAgICBpZiAoIXRoaXMuX2lzRHVwbGljYXRlQXR0cigpKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5hdHRycy5wdXNoKHRoaXMuY3VycmVudEF0dHIpO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fbGVhdmVBdHRyVmFsdWUgPSBmdW5jdGlvbiAodG9TdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUgPSB0b1N0YXRlO1xufTtcblxuLy9BcHByb3ByaWF0ZSBlbmQgdGFnIHRva2VuXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI2FwcHJvcHJpYXRlLWVuZC10YWctdG9rZW4pXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9PT0gdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZTtcbn07XG5cbi8vVG9rZW4gZW1pc3Npb25cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRDdXJyZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbigpO1xuXG4gICAgLy9OT1RFOiBzdG9yZSBlbWl0ZWQgc3RhcnQgdGFnJ3MgdGFnTmFtZSB0byBkZXRlcm1pbmUgaXMgdGhlIGZvbGxvd2luZyBlbmQgdGFnIHRva2VuIGlzIGFwcHJvcHJpYXRlLlxuICAgIGlmICh0aGlzLmN1cnJlbnRUb2tlbi50eXBlID09PSBUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOKVxuICAgICAgICB0aGlzLmxhc3RTdGFydFRhZ05hbWUgPSB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lO1xuXG4gICAgdGhpcy50b2tlblF1ZXVlLnB1c2godGhpcy5jdXJyZW50VG9rZW4pO1xuICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKSB7XG4gICAgICAgIHRoaXMudG9rZW5RdWV1ZS5wdXNoKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKTtcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgIH1cbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRFT0ZUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKCk7XG4gICAgdGhpcy50b2tlblF1ZXVlLnB1c2goe3R5cGU6IFRva2VuaXplci5FT0ZfVE9LRU59KTtcbn07XG5cbi8vQ2hhcmFjdGVycyBlbWlzc2lvblxuXG4vL09QVElNSVpBVElPTjogc3BlY2lmaWNhdGlvbiB1c2VzIG9ubHkgb25lIHR5cGUgb2YgY2hhcmFjdGVyIHRva2VucyAob25lIHRva2VuIHBlciBjaGFyYWN0ZXIpLlxuLy9UaGlzIGNhdXNlcyBhIGh1Z2UgbWVtb3J5IG92ZXJoZWFkIGFuZCBhIGxvdCBvZiB1bm5lY2Vzc2FyeSBwYXJzZXIgbG9vcHMuIHBhcnNlNSB1c2VzIDMgZ3JvdXBzIG9mIGNoYXJhY3RlcnMuXG4vL0lmIHdlIGhhdmUgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIGdyb3VwLCBwYXJzZXIgY2FuIHByb2Nlc3MgaXRcbi8vYXMgYSBzaW5nbGUgc29saWQgY2hhcmFjdGVyIHRva2VuLlxuLy9TbywgdGhlcmUgYXJlIDMgdHlwZXMgb2YgY2hhcmFjdGVyIHRva2VucyBpbiBwYXJzZTU6XG4vLzEpTlVMTF9DSEFSQUNURVJfVE9LRU4gLSBcXHUwMDAwLWNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcdTAwMDBcXHUwMDAwXFx1MDAwMCcpXG4vLzIpV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gLSBhbnkgd2hpdGVzcGFjZS9uZXctbGluZSBjaGFyYWN0ZXIgc2VxdWVuY2VzIChlLmcuICdcXG4gIFxcclxcdCAgIFxcZicpXG4vLzMpQ0hBUkFDVEVSX1RPS0VOIC0gYW55IGNoYXJhY3RlciBzZXF1ZW5jZSB3aGljaCBkb24ndCBiZWxvbmcgdG8gZ3JvdXBzIDEgYW5kIDIgKGUuZy4gJ2FiY2RlZjEyMzRAQCMkJV4nKVxuVG9rZW5pemVyLnByb3RvdHlwZS5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuID0gZnVuY3Rpb24gKHR5cGUsIGNoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLnR5cGUgIT09IHR5cGUpXG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oKTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbilcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2hhcnMgKz0gY2g7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNoYXJhY3RlclRva2VuKHR5cGUsIGNoKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRDb2RlUG9pbnQgPSBmdW5jdGlvbiAoY3ApIHtcbiAgICB2YXIgdHlwZSA9IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU47XG5cbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgdHlwZSA9IFRva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHR5cGUgPSBUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU47XG5cbiAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4odHlwZSwgdG9DaGFyKGNwKSk7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9lbWl0U2V2ZXJhbENvZGVQb2ludHMgPSBmdW5jdGlvbiAoY29kZVBvaW50cykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZVBvaW50cy5sZW5ndGg7IGkrKylcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjb2RlUG9pbnRzW2ldKTtcbn07XG5cbi8vTk9URTogdXNlZCB0aGVuIHdlIGVtaXQgY2hhcmFjdGVyIGV4cGxpY2l0bHkuIFRoaXMgaXMgYWx3YXlzIGEgbm9uLXdoaXRlc3BhY2UgYW5kIGEgbm9uLW51bGwgY2hhcmFjdGVyLlxuLy9TbyB3ZSBjYW4gYXZvaWQgYWRkaXRpb25hbCBjaGVja3MgaGVyZS5cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRDaGFyID0gZnVuY3Rpb24gKGNoKSB7XG4gICAgdGhpcy5fYXBwZW5kQ2hhclRvQ3VycmVudENoYXJhY3RlclRva2VuKFRva2VuaXplci5DSEFSQUNURVJfVE9LRU4sIGNoKTtcbn07XG5cbi8vQ2hhcmFjdGVyIHJlZmVyZW5jZSB0b2tlbml6YXRpb25cblRva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWVOdW1lcmljRW50aXR5ID0gZnVuY3Rpb24gKGlzSGV4KSB7XG4gICAgdmFyIGRpZ2l0cyA9ICcnLFxuICAgICAgICBuZXh0Q3AgPSB2b2lkIDA7XG5cbiAgICBkbyB7XG4gICAgICAgIGRpZ2l0cyArPSB0b0NoYXIodGhpcy5fY29uc3VtZSgpKTtcbiAgICAgICAgbmV4dENwID0gdGhpcy5fbG9va2FoZWFkKCk7XG4gICAgfSB3aGlsZSAobmV4dENwICE9PSAkLkVPRiAmJiBpc0RpZ2l0KG5leHRDcCwgaXNIZXgpKTtcblxuICAgIGlmICh0aGlzLl9sb29rYWhlYWQoKSA9PT0gJC5TRU1JQ09MT04pXG4gICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcblxuICAgIHZhciByZWZlcmVuY2VkQ3AgPSBwYXJzZUludChkaWdpdHMsIGlzSGV4ID8gMTYgOiAxMCksXG4gICAgICAgIHJlcGxhY2VtZW50ID0gTlVNRVJJQ19FTlRJVFlfUkVQTEFDRU1FTlRTW3JlZmVyZW5jZWRDcF07XG5cbiAgICBpZiAocmVwbGFjZW1lbnQpXG4gICAgICAgIHJldHVybiByZXBsYWNlbWVudDtcblxuICAgIGlmIChpc1Jlc2VydmVkQ29kZVBvaW50KHJlZmVyZW5jZWRDcCkpXG4gICAgICAgIHJldHVybiAkLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIHJldHVybiByZWZlcmVuY2VkQ3A7XG59O1xuXG4vLyBOT1RFOiBmb3IgdGhlIGRldGFpbHMgb24gdGhpcyBhbGdvcml0aG0gc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L3RyZWUvbWFzdGVyL3NjcmlwdHMvZ2VuZXJhdGVfbmFtZWRfZW50aXR5X2RhdGEvUkVBRE1FLm1kXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jb25zdW1lTmFtZWRFbnRpdHkgPSBmdW5jdGlvbiAoaW5BdHRyKSB7XG4gICAgdmFyIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gbnVsbCxcbiAgICAgICAgcmVmZXJlbmNlU2l6ZSA9IDAsXG4gICAgICAgIGNwID0gbnVsbCxcbiAgICAgICAgY29uc3VtZWRDb3VudCA9IDAsXG4gICAgICAgIHNlbWljb2xvblRlcm1pbmF0ZWQgPSBmYWxzZTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpID4gLTE7KSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gbmVUcmVlW2ldLFxuICAgICAgICAgICAgaW5Ob2RlID0gY3VycmVudCA8IE1BWF9CUkFOQ0hfTUFSS0VSX1ZBTFVFLFxuICAgICAgICAgICAgbm9kZVdpdGhEYXRhID0gaW5Ob2RlICYmIGN1cnJlbnQgJiBIQVNfREFUQV9GTEFHO1xuXG4gICAgICAgIGlmIChub2RlV2l0aERhdGEpIHtcbiAgICAgICAgICAgIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gY3VycmVudCAmIERBVEFfRFVQTEVUX0ZMQUcgPyBbbmVUcmVlWysraV0sIG5lVHJlZVsrK2ldXSA6IFtuZVRyZWVbKytpXV07XG4gICAgICAgICAgICByZWZlcmVuY2VTaXplID0gY29uc3VtZWRDb3VudDtcblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHNlbWljb2xvblRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7XG4gICAgICAgIGNvbnN1bWVkQ291bnQrKztcblxuICAgICAgICBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgaWYgKGluTm9kZSlcbiAgICAgICAgICAgIGkgPSBjdXJyZW50ICYgSEFTX0JSQU5DSEVTX0ZMQUcgPyBmaW5kTmFtZWRFbnRpdHlUcmVlQnJhbmNoKGksIGNwKSA6IC0xO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGkgPSBjcCA9PT0gY3VycmVudCA/ICsraSA6IC0xO1xuICAgIH1cblxuXG4gICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKSB7XG4gICAgICAgIGlmICghc2VtaWNvbG9uVGVybWluYXRlZCkge1xuICAgICAgICAgICAgLy9OT1RFOiB1bmNvbnN1bWUgZXhjZXNzIChlLmcuICdpdCcgaW4gJyZub3RpdCcpXG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQgLSByZWZlcmVuY2VTaXplKTtcblxuICAgICAgICAgICAgLy9OT1RFOiBJZiB0aGUgY2hhcmFjdGVyIHJlZmVyZW5jZSBpcyBiZWluZyBjb25zdW1lZCBhcyBwYXJ0IG9mIGFuIGF0dHJpYnV0ZSBhbmQgdGhlIG5leHQgY2hhcmFjdGVyXG4gICAgICAgICAgICAvL2lzIGVpdGhlciBhIFUrMDAzRCBFUVVBTFMgU0lHTiBjaGFyYWN0ZXIgKD0pIG9yIGFuIGFscGhhbnVtZXJpYyBBU0NJSSBjaGFyYWN0ZXIsIHRoZW4sIGZvciBoaXN0b3JpY2FsXG4gICAgICAgICAgICAvL3JlYXNvbnMsIGFsbCB0aGUgY2hhcmFjdGVycyB0aGF0IHdlcmUgbWF0Y2hlZCBhZnRlciB0aGUgVSswMDI2IEFNUEVSU0FORCBjaGFyYWN0ZXIgKCYpIG11c3QgYmVcbiAgICAgICAgICAgIC8vdW5jb25zdW1lZCwgYW5kIG5vdGhpbmcgaXMgcmV0dXJuZWQuXG4gICAgICAgICAgICAvL0hvd2V2ZXIsIGlmIHRoaXMgbmV4dCBjaGFyYWN0ZXIgaXMgaW4gZmFjdCBhIFUrMDAzRCBFUVVBTFMgU0lHTiBjaGFyYWN0ZXIgKD0pLCB0aGVuIHRoaXMgaXMgYVxuICAgICAgICAgICAgLy9wYXJzZSBlcnJvciwgYmVjYXVzZSBzb21lIGxlZ2FjeSB1c2VyIGFnZW50cyB3aWxsIG1pc2ludGVycHJldCB0aGUgbWFya3VwIGluIHRob3NlIGNhc2VzLlxuICAgICAgICAgICAgLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCN0b2tlbml6aW5nLWNoYXJhY3Rlci1yZWZlcmVuY2VzKVxuICAgICAgICAgICAgaWYgKGluQXR0cikge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0Q3AgPSB0aGlzLl9sb29rYWhlYWQoKTtcblxuICAgICAgICAgICAgICAgIGlmIChuZXh0Q3AgPT09ICQuRVFVQUxTX1NJR04gfHwgaXNBc2NpaUFscGhhTnVtZXJpYyhuZXh0Q3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3VuY29uc3VtZVNldmVyYWwocmVmZXJlbmNlU2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZWZlcmVuY2VkQ29kZVBvaW50cztcbiAgICB9XG5cbiAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQpO1xuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlID0gZnVuY3Rpb24gKHN0YXJ0Q3AsIGluQXR0cikge1xuICAgIGlmIChpc1doaXRlc3BhY2Uoc3RhcnRDcCkgfHwgc3RhcnRDcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTiB8fFxuICAgICAgICBzdGFydENwID09PSAkLkFNUEVSU0FORCB8fCBzdGFydENwID09PSB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgfHwgc3RhcnRDcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgLy9OT1RFOiBub3QgYSBjaGFyYWN0ZXIgcmVmZXJlbmNlLiBObyBjaGFyYWN0ZXJzIGFyZSBjb25zdW1lZCwgYW5kIG5vdGhpbmcgaXMgcmV0dXJuZWQuXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZSgpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRDcCA9PT0gJC5OVU1CRVJfU0lHTikge1xuICAgICAgICAvL05PVEU6IHdlIGhhdmUgYSBudW1lcmljIGVudGl0eSBjYW5kaWRhdGUsIG5vdyB3ZSBzaG91bGQgZGV0ZXJtaW5lIGlmIGl0J3MgaGV4IG9yIGRlY2ltYWxcbiAgICAgICAgdmFyIGlzSGV4ID0gZmFsc2UsXG4gICAgICAgICAgICBuZXh0Q3AgPSB0aGlzLl9sb29rYWhlYWQoKTtcblxuICAgICAgICBpZiAobmV4dENwID09PSAkLkxBVElOX1NNQUxMX1ggfHwgbmV4dENwID09PSAkLkxBVElOX0NBUElUQUxfWCkge1xuICAgICAgICAgICAgdGhpcy5fY29uc3VtZSgpO1xuICAgICAgICAgICAgaXNIZXggPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV4dENwID0gdGhpcy5fbG9va2FoZWFkKCk7XG5cbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBkaWdpdCB0aGlzIGlzIGEgbnVtZXJpYyBlbnRpdHkgZm9yIHN1cmUsIHNvIHdlIGNvbnN1bWUgaXRcbiAgICAgICAgaWYgKG5leHRDcCAhPT0gJC5FT0YgJiYgaXNEaWdpdChuZXh0Q3AsIGlzSGV4KSlcbiAgICAgICAgICAgIHJldHVybiBbdGhpcy5fY29uc3VtZU51bWVyaWNFbnRpdHkoaXNIZXgpXTtcblxuICAgICAgICAvL05PVEU6IG90aGVyd2lzZSB0aGlzIGlzIGEgYm9ndXMgbnVtYmVyIGVudGl0eSBhbmQgYSBwYXJzZSBlcnJvci4gVW5jb25zdW1lIHRoZSBudW1iZXIgc2lnblxuICAgICAgICAvL2FuZCB0aGUgJ3gnLWNoYXJhY3RlciBpZiBhcHByb3ByaWF0ZS5cbiAgICAgICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChpc0hleCA/IDIgOiAxKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5fdW5jb25zdW1lKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fY29uc3VtZU5hbWVkRW50aXR5KGluQXR0cik7XG59O1xuXG4vL1N0YXRlIG1hY2hpbmVcbnZhciBfID0gVG9rZW5pemVyLnByb3RvdHlwZTtcblxuLy8xMi4yLjQuMSBEYXRhIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tEQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGRhdGFTdGF0ZShjcCkge1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuXG4gICAgaWYgKGNwID09PSAkLkFNUEVSU0FORClcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fREFUQV9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKVxuICAgICAgICB0aGlzLnN0YXRlID0gVEFHX09QRU5fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xufTtcblxuXG4vLzEyLjIuNC4yIENoYXJhY3RlciByZWZlcmVuY2UgaW4gZGF0YSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluRGF0YVN0YXRlKGNwKSB7XG4gICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gdm9pZCAwO1xuXG4gICAgdmFyIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gdGhpcy5fY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZShjcCwgZmFsc2UpO1xuXG4gICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgIGlmIChyZWZlcmVuY2VkQ29kZVBvaW50cylcbiAgICAgICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyhyZWZlcmVuY2VkQ29kZVBvaW50cyk7XG5cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5fZW1pdENoYXIoJyYnKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjMgUkNEQVRBIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQ0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhU3RhdGUoY3ApIHtcbiAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcblxuICAgIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKVxuICAgICAgICB0aGlzLnN0YXRlID0gUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG59O1xuXG5cbi8vMTIuMi40LjQgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBSQ0RBVEEgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fUkNEQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluUmNkYXRhU3RhdGUoY3ApIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSB2b2lkIDA7XG5cbiAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSB0aGlzLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKGNwLCBmYWxzZSk7XG5cbiAgICBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKVxuICAgICAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHJlZmVyZW5jZWRDb2RlUG9pbnRzKTtcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcignJicpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBSQ0RBVEFfU1RBVEU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41IFJBV1RFWFQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JBV1RFWFRfU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dFN0YXRlKGNwKSB7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG5cbiAgICBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG59O1xuXG5cbi8vMTIuMi40LjYgU2NyaXB0IGRhdGEgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFTdGF0ZShjcCkge1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuXG4gICAgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKVxuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNyBQTEFJTlRFWFQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1BMQUlOVEVYVF9TVEFURV0gPSBmdW5jdGlvbiBwbGFpbnRleHRTdGF0ZShjcCkge1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuXG4gICAgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xufTtcblxuXG4vLzEyLjIuNC44IFRhZyBvcGVuIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tUQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiB0YWdPcGVuU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuRVhDTEFNQVRJT05fTUFSSylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IE1BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEVORF9UQUdfT1BFTl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVN0YXJ0VGFnVG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShUQUdfTkFNRV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuUVVFU1RJT05fTUFSSylcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCT0dVU19DT01NRU5UX1NUQVRFKTtcblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuOSBFbmQgdGFnIG9wZW4gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0VORF9UQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiBlbmRUYWdPcGVuU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShUQUdfTkFNRV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJPR1VTX0NPTU1FTlRfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4xMCBUYWcgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gdGFnTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKVxuICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSlcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuMTEgUkNEQVRBIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQ0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhTGVzc1RoYW5TaWduU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUgPSBSQ0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJDREFUQV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4xMiBSQ0RBVEEgZW5kIHRhZyBvcGVuIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQ0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHJjZGF0YUVuZFRhZ09wZW5TdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJDREFUQV9FTkRfVEFHX05BTUVfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJDREFUQV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4xMyBSQ0RBVEEgZW5kIHRhZyBuYW1lIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQ0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHJjZGF0YUVuZFRhZ05hbWVTdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkge1xuICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHModGhpcy50ZW1wQnVmZik7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE0IFJBV1RFWFQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JBV1RFWFRfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dExlc3NUaGFuU2lnblN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdO1xuICAgICAgICB0aGlzLnN0YXRlID0gUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkFXVEVYVF9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4xNSBSQVdURVhUIGVuZCB0YWcgb3BlbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bUkFXVEVYVF9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gcmF3dGV4dEVuZFRhZ09wZW5TdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJBV1RFWFRfRU5EX1RBR19OQU1FX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQVdURVhUX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE2IFJBV1RFWFQgZW5kIHRhZyBuYW1lIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQVdURVhUX0VORF9UQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0RW5kVGFnTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7XG4gICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQVdURVhUX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE3IFNjcmlwdCBkYXRhIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhTGVzc1RoYW5TaWduU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRVhDTEFNQVRJT05fTUFSSykge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignIScpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE4IFNjcmlwdCBkYXRhIGVuZCB0YWcgb3BlbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFbmRUYWdPcGVuU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE5IFNjcmlwdCBkYXRhIGVuZCB0YWcgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFbmRUYWdOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5faXNBcHByb3ByaWF0ZUVuZFRhZ1Rva2VuKCkpIHtcbiAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4yMCBTY3JpcHQgZGF0YSBlc2NhcGUgc3RhcnQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlU3RhcnRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjIxIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBkYXNoIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlU3RhcnREYXNoU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4yMiBTY3JpcHQgZGF0YSBlc2NhcGVkIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbn07XG5cblxuLy8xMi4yLjQuMjMgU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWREYXNoU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjI0IFNjcmlwdCBkYXRhIGVzY2FwZWQgZGFzaCBkYXNoIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPicpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMjUgU2NyaXB0IGRhdGEgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnblN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLlNPTElEVVMpIHtcbiAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdO1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5fU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgdGhpcy50ZW1wQnVmZiA9IFtdO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMjYgU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG9wZW4gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRW5kVGFnT3BlblN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMjcgU2NyaXB0IGRhdGEgZXNjYXBlZCBlbmQgdGFnIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRURfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRW5kVGFnTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7XG4gICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjI4IFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgc3RhcnQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZVN0YXJ0U3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmlzVGVtcEJ1ZmZlckVxdWFsVG9TY3JpcHRTdHJpbmcoKSA/IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFIDogU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2godG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSk7XG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4yOSBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG59O1xuXG5cbi8vMTIuMi40LjMwIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWREYXNoU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9EQVNIX0RBU0hfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4zMSBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hEYXNoU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJz4nKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMzIgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgbGVzcy10aGFuIHNpZ24gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4zMyBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlIGVuZCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9FTkRfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZUVuZFN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuU09MSURVUyB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gdGhpcy5pc1RlbXBCdWZmZXJFcXVhbFRvU2NyaXB0U3RyaW5nKCkgPyBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFIDogU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7XG5cbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2godG9Bc2NpaUxvd2VyQ29kZVBvaW50KGNwKSk7XG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFKTtcbn07XG5cblxuLy8xMi4yLjQuMzQgQmVmb3JlIGF0dHJpYnV0ZSBuYW1lIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlQXR0cmlidXRlTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOIHx8IGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FUVVBTFNfU0lHTikge1xuICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCc9Jyk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfTkFNRV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQVRUUklCVVRFX05BTUVfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMzUgQXR0cmlidXRlIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FUVFJJQlVURV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZU5hbWVTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04gfHwgY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2xlYXZlQXR0ck5hbWUoQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEUpO1xuICAgICAgICB0aGlzLl91bmNvbnN1bWUoKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FUVVBTFNfU0lHTilcbiAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZShCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFKTtcblxuICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLIHx8IGNwID09PSAkLkFQT1NUUk9QSEUgfHwgY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSB0b0NoYXIoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuMzYgQWZ0ZXIgYXR0cmlidXRlIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FGVEVSX0FUVFJJQlVURV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyQXR0cmlidXRlTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKVxuICAgICAgICB0aGlzLnN0YXRlID0gU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVRVUFMU19TSUdOKVxuICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEFUVFJJQlVURV9OQU1FX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjM3IEJlZm9yZSBhdHRyaWJ1dGUgdmFsdWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0JFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlQXR0cmlidXRlVmFsdWVTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspXG4gICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4zOCBBdHRyaWJ1dGUgdmFsdWUgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tBVFRSSUJVVEVfVkFMVUVfRE9VQkxFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBhdHRyaWJ1dGVWYWx1ZURvdWJsZVF1b3RlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKVxuICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkFNUEVSU0FORCkge1xuICAgICAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSAkLlFVT1RBVElPTl9NQVJLO1xuICAgICAgICB0aGlzLnJldHVyblN0YXRlID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuMzkgQXR0cmlidXRlIHZhbHVlIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQVRUUklCVVRFX1ZBTFVFX1NJTkdMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gYXR0cmlidXRlVmFsdWVTaW5nbGVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKVxuICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkFNUEVSU0FORCkge1xuICAgICAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSAkLkFQT1NUUk9QSEU7XG4gICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC40MCBBdHRyaWJ1dGUgdmFsdWUgKHVucXVvdGVkKSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZVZhbHVlVW5xdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZShCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKSB7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9ICQuR1JFQVRFUl9USEFOX1NJR047XG4gICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoREFUQV9TVEFURSk7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUksgfHwgY3AgPT09ICQuQVBPU1RST1BIRSB8fCBjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTiB8fFxuICAgICAgICAgICAgIGNwID09PSAkLkVRVUFMU19TSUdOIHx8IGNwID09PSAkLkdSQVZFX0FDQ0VOVClcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjQxIENoYXJhY3RlciByZWZlcmVuY2UgaW4gYXR0cmlidXRlIHZhbHVlIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURV0gPSBmdW5jdGlvbiBjaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUoY3ApIHtcbiAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSB0aGlzLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKGNwLCB0cnVlKTtcblxuICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICBpZiAocmVmZXJlbmNlZENvZGVQb2ludHMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVmZXJlbmNlZENvZGVQb2ludHMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIocmVmZXJlbmNlZENvZGVQb2ludHNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gJyYnO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLnJldHVyblN0YXRlO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNDIgQWZ0ZXIgYXR0cmlidXRlIHZhbHVlIChxdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyQXR0cmlidXRlVmFsdWVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZShCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUylcbiAgICAgICAgdGhpcy5fbGVhdmVBdHRyVmFsdWUoU0VMRl9DTE9TSU5HX1NUQVJUX1RBR19TVEFURSk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC40MyBTZWxmLWNsb3Npbmcgc3RhcnQgdGFnIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFXSA9IGZ1bmN0aW9uIHNlbGZDbG9zaW5nU3RhcnRUYWdTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zZWxmQ2xvc2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjQ0IEJvZ3VzIGNvbW1lbnQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0JPR1VTX0NPTU1FTlRfU1RBVEVdID0gZnVuY3Rpb24gYm9ndXNDb21tZW50U3RhdGUoKSB7XG4gICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCk7XG4gICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCT0dVU19DT01NRU5UX1NUQVRFX0NPTlRJTlVBVElPTik7XG59O1xuXG4vL0hBQ0s6IHRvIHN1cHBvcnQgc3RyZWFtaW5nIGFuZCBtYWtlIEJPR1VTX0NPTU1FTlRfU1RBVEUgcmVlbnRyYW50IHdlJ3ZlXG4vL2ludHJvZHVjZWQgQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT04gc3RhdGUgd2hpY2ggd2lsbCBub3QgcHJvZHVjZVxuLy9jb21tZW50IHRva2VuIG9uIGVhY2ggY2FsbC5cbl9bQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT05dID0gZnVuY3Rpb24gYm9ndXNDb21tZW50U3RhdGVDb250aW51YXRpb24oY3ApIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBjcCA9PT0gJC5OVUxMID8gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIgOiB0b0NoYXIoY3ApO1xuXG4gICAgICAgICAgICB0aGlzLl9oaWJlcm5hdGlvblNuYXBzaG90KCk7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xufTtcblxuLy8xMi4yLjQuNDUgTWFya3VwIGRlY2xhcmF0aW9uIG9wZW4gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW01BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIG1hcmt1cERlY2xhcmF0aW9uT3BlblN0YXRlKGNwKSB7XG4gICAgdmFyIGRhc2hEYXNoTWF0Y2ggPSB0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuREFTSF9EQVNIX1NUUklORywgY3AsIHRydWUpLFxuICAgICAgICBkb2N0eXBlTWF0Y2ggPSAhZGFzaERhc2hNYXRjaCAmJiB0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuRE9DVFlQRV9TVFJJTkcsIGNwLCBmYWxzZSksXG4gICAgICAgIGNkYXRhTWF0Y2ggPSAhZGFzaERhc2hNYXRjaCAmJiAhZG9jdHlwZU1hdGNoICYmXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmFsbG93Q0RBVEEgJiZcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5DREFUQV9TVEFSVF9TVFJJTkcsIGNwLCB0cnVlKTtcblxuICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICBpZiAoZGFzaERhc2hNYXRjaCkge1xuICAgICAgICAgICAgdGhpcy5fY3JlYXRlQ29tbWVudFRva2VuKCk7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFSVF9TVEFURTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKGRvY3R5cGVNYXRjaClcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NUQVRFO1xuXG4gICAgICAgIGVsc2UgaWYgKGNkYXRhTWF0Y2gpXG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQ0RBVEFfU0VDVElPTl9TVEFURTtcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJPR1VTX0NPTU1FTlRfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNDYgQ29tbWVudCBzdGFydCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ09NTUVOVF9TVEFSVF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50U3RhcnRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjQ3IENvbW1lbnQgc3RhcnQgZGFzaCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ09NTUVOVF9TVEFSVF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRTdGFydERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC40OCBDb21tZW50IHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDT01NRU5UX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9EQVNIX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjQ5IENvbW1lbnQgZW5kIGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NPTU1FTlRfRU5EX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudEVuZERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNTAgQ29tbWVudCBlbmQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NPTU1FTlRfRU5EX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRFbmRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVYQ0xBTUFUSU9OX01BUkspXG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9CQU5HX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJztcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0nO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41MSBDb21tZW50IGVuZCBiYW5nIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDT01NRU5UX0VORF9CQU5HX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRFbmRCYW5nU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuSFlQSEVOX01JTlVTKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX0VORF9EQVNIX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSEnO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNTIgRE9DVFlQRSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRE9DVFlQRV9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbihudWxsKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4oJycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERPQ1RZUEVfTkFNRV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41NCBET0NUWVBFIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0RPQ1RZUEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04gfHwgY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEFGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURSk7XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5uYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubmFtZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubmFtZSArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC41NSBBZnRlciBET0NUWVBFIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBhZnRlckRvY3R5cGVOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBwdWJsaWNNYXRjaCA9IHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5QVUJMSUNfU1RSSU5HLCBjcCwgZmFsc2UpLFxuICAgICAgICAgICAgc3lzdGVtTWF0Y2ggPSAhcHVibGljTWF0Y2ggJiYgdGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLlNZU1RFTV9TVFJJTkcsIGNwLCBmYWxzZSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgICAgICBpZiAocHVibGljTWF0Y2gpXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFO1xuXG4gICAgICAgICAgICBlbHNlIGlmIChzeXN0ZW1NYXRjaClcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEU7XG5cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQk9HVVNfRE9DVFlQRV9TVEFURTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNTcgQmVmb3JlIERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0JFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFXSA9IGZ1bmN0aW9uIGJlZm9yZURvY3R5cGVQdWJsaWNJZGVudGlmaWVyU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCA9ICcnO1xuICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQk9HVVNfRE9DVFlQRV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41OCBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChkb3VibGUtcXVvdGVkKSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVQdWJsaWNJZGVudGlmaWVyRG91YmxlUXVvdGVkU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspXG4gICAgICAgIHRoaXMuc3RhdGUgPSBCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5wdWJsaWNJZCArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC41OSBET0NUWVBFIHB1YmxpYyBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVQdWJsaWNJZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSlcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU19TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjYxIEJldHdlZW4gRE9DVFlQRSBwdWJsaWMgYW5kIHN5c3RlbSBpZGVudGlmaWVycyBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFXSA9IGZ1bmN0aW9uIGJldHdlZW5Eb2N0eXBlUHVibGljQW5kU3lzdGVtSWRlbnRpZmllcnNTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFO1xuICAgIH1cblxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQk9HVVNfRE9DVFlQRV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC42MyBCZWZvcmUgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQkVGT1JFX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCT0dVU19ET0NUWVBFX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjY0IERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC42NSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIChzaW5nbGUtcXVvdGVkKSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSlcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC42NiBBZnRlciBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLnN0YXRlID0gQk9HVVNfRE9DVFlQRV9TVEFURTtcbn07XG5cblxuLy8xMi4yLjQuNjcgQm9ndXMgRE9DVFlQRSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQk9HVVNfRE9DVFlQRV9TVEFURV0gPSBmdW5jdGlvbiBib2d1c0RvY3R5cGVTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC42OCBDREFUQSBzZWN0aW9uIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDREFUQV9TRUNUSU9OX1NUQVRFXSA9IGZ1bmN0aW9uIGNkYXRhU2VjdGlvblN0YXRlKGNwKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgY2RhdGFFbmRNYXRjaCA9IHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5DREFUQV9FTkRfU1RSSU5HLCBjcCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBpZiAoY2RhdGFFbmRNYXRjaCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcblxuICAgICAgICAgICAgdGhpcy5faGliZXJuYXRpb25TbmFwc2hvdCgpO1xuICAgICAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE5TID0gZXhwb3J0cy5OQU1FU1BBQ0VTID0ge1xuICAgIEhUTUw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgICBNQVRITUw6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJyxcbiAgICBTVkc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gICAgWExJTks6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyxcbiAgICBYTUw6ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnLFxuICAgIFhNTE5TOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8nXG59O1xuXG5leHBvcnRzLkFUVFJTID0ge1xuICAgIFRZUEU6ICd0eXBlJyxcbiAgICBBQ1RJT046ICdhY3Rpb24nLFxuICAgIEVOQ09ESU5HOiAnZW5jb2RpbmcnLFxuICAgIFBST01QVDogJ3Byb21wdCcsXG4gICAgTkFNRTogJ25hbWUnLFxuICAgIENPTE9SOiAnY29sb3InLFxuICAgIEZBQ0U6ICdmYWNlJyxcbiAgICBTSVpFOiAnc2l6ZSdcbn07XG5cbmV4cG9ydHMuRE9DVU1FTlRfTU9ERSA9IHtcbiAgICBOT19RVUlSS1M6ICduby1xdWlya3MnLFxuICAgIFFVSVJLUzogJ3F1aXJrcycsXG4gICAgTElNSVRFRF9RVUlSS1M6ICdsaW1pdGVkLXF1aXJrcydcbn07XG5cbnZhciAkID0gZXhwb3J0cy5UQUdfTkFNRVMgPSB7XG4gICAgQTogJ2EnLFxuICAgIEFERFJFU1M6ICdhZGRyZXNzJyxcbiAgICBBTk5PVEFUSU9OX1hNTDogJ2Fubm90YXRpb24teG1sJyxcbiAgICBBUFBMRVQ6ICdhcHBsZXQnLFxuICAgIEFSRUE6ICdhcmVhJyxcbiAgICBBUlRJQ0xFOiAnYXJ0aWNsZScsXG4gICAgQVNJREU6ICdhc2lkZScsXG5cbiAgICBCOiAnYicsXG4gICAgQkFTRTogJ2Jhc2UnLFxuICAgIEJBU0VGT05UOiAnYmFzZWZvbnQnLFxuICAgIEJHU09VTkQ6ICdiZ3NvdW5kJyxcbiAgICBCSUc6ICdiaWcnLFxuICAgIEJMT0NLUVVPVEU6ICdibG9ja3F1b3RlJyxcbiAgICBCT0RZOiAnYm9keScsXG4gICAgQlI6ICdicicsXG4gICAgQlVUVE9OOiAnYnV0dG9uJyxcblxuICAgIENBUFRJT046ICdjYXB0aW9uJyxcbiAgICBDRU5URVI6ICdjZW50ZXInLFxuICAgIENPREU6ICdjb2RlJyxcbiAgICBDT0w6ICdjb2wnLFxuICAgIENPTEdST1VQOiAnY29sZ3JvdXAnLFxuXG4gICAgREQ6ICdkZCcsXG4gICAgREVTQzogJ2Rlc2MnLFxuICAgIERFVEFJTFM6ICdkZXRhaWxzJyxcbiAgICBESUFMT0c6ICdkaWFsb2cnLFxuICAgIERJUjogJ2RpcicsXG4gICAgRElWOiAnZGl2JyxcbiAgICBETDogJ2RsJyxcbiAgICBEVDogJ2R0JyxcblxuICAgIEVNOiAnZW0nLFxuICAgIEVNQkVEOiAnZW1iZWQnLFxuXG4gICAgRklFTERTRVQ6ICdmaWVsZHNldCcsXG4gICAgRklHQ0FQVElPTjogJ2ZpZ2NhcHRpb24nLFxuICAgIEZJR1VSRTogJ2ZpZ3VyZScsXG4gICAgRk9OVDogJ2ZvbnQnLFxuICAgIEZPT1RFUjogJ2Zvb3RlcicsXG4gICAgRk9SRUlHTl9PQkpFQ1Q6ICdmb3JlaWduT2JqZWN0JyxcbiAgICBGT1JNOiAnZm9ybScsXG4gICAgRlJBTUU6ICdmcmFtZScsXG4gICAgRlJBTUVTRVQ6ICdmcmFtZXNldCcsXG5cbiAgICBIMTogJ2gxJyxcbiAgICBIMjogJ2gyJyxcbiAgICBIMzogJ2gzJyxcbiAgICBINDogJ2g0JyxcbiAgICBINTogJ2g1JyxcbiAgICBINjogJ2g2JyxcbiAgICBIRUFEOiAnaGVhZCcsXG4gICAgSEVBREVSOiAnaGVhZGVyJyxcbiAgICBIR1JPVVA6ICdoZ3JvdXAnLFxuICAgIEhSOiAnaHInLFxuICAgIEhUTUw6ICdodG1sJyxcblxuICAgIEk6ICdpJyxcbiAgICBJTUc6ICdpbWcnLFxuICAgIElNQUdFOiAnaW1hZ2UnLFxuICAgIElOUFVUOiAnaW5wdXQnLFxuICAgIElGUkFNRTogJ2lmcmFtZScsXG5cbiAgICBLRVlHRU46ICdrZXlnZW4nLFxuXG4gICAgTEFCRUw6ICdsYWJlbCcsXG4gICAgTEk6ICdsaScsXG4gICAgTElOSzogJ2xpbmsnLFxuICAgIExJU1RJTkc6ICdsaXN0aW5nJyxcblxuICAgIE1BSU46ICdtYWluJyxcbiAgICBNQUxJR05NQVJLOiAnbWFsaWdubWFyaycsXG4gICAgTUFSUVVFRTogJ21hcnF1ZWUnLFxuICAgIE1BVEg6ICdtYXRoJyxcbiAgICBNRU5VOiAnbWVudScsXG4gICAgTUVOVUlURU06ICdtZW51aXRlbScsXG4gICAgTUVUQTogJ21ldGEnLFxuICAgIE1HTFlQSDogJ21nbHlwaCcsXG4gICAgTUk6ICdtaScsXG4gICAgTU86ICdtbycsXG4gICAgTU46ICdtbicsXG4gICAgTVM6ICdtcycsXG4gICAgTVRFWFQ6ICdtdGV4dCcsXG5cbiAgICBOQVY6ICduYXYnLFxuICAgIE5PQlI6ICdub2JyJyxcbiAgICBOT0ZSQU1FUzogJ25vZnJhbWVzJyxcbiAgICBOT0VNQkVEOiAnbm9lbWJlZCcsXG4gICAgTk9TQ1JJUFQ6ICdub3NjcmlwdCcsXG5cbiAgICBPQkpFQ1Q6ICdvYmplY3QnLFxuICAgIE9MOiAnb2wnLFxuICAgIE9QVEdST1VQOiAnb3B0Z3JvdXAnLFxuICAgIE9QVElPTjogJ29wdGlvbicsXG5cbiAgICBQOiAncCcsXG4gICAgUEFSQU06ICdwYXJhbScsXG4gICAgUExBSU5URVhUOiAncGxhaW50ZXh0JyxcbiAgICBQUkU6ICdwcmUnLFxuXG4gICAgUkI6ICdyYicsXG4gICAgUlA6ICdycCcsXG4gICAgUlQ6ICdydCcsXG4gICAgUlRDOiAncnRjJyxcbiAgICBSVUJZOiAncnVieScsXG5cbiAgICBTOiAncycsXG4gICAgU0NSSVBUOiAnc2NyaXB0JyxcbiAgICBTRUNUSU9OOiAnc2VjdGlvbicsXG4gICAgU0VMRUNUOiAnc2VsZWN0JyxcbiAgICBTT1VSQ0U6ICdzb3VyY2UnLFxuICAgIFNNQUxMOiAnc21hbGwnLFxuICAgIFNQQU46ICdzcGFuJyxcbiAgICBTVFJJS0U6ICdzdHJpa2UnLFxuICAgIFNUUk9ORzogJ3N0cm9uZycsXG4gICAgU1RZTEU6ICdzdHlsZScsXG4gICAgU1VCOiAnc3ViJyxcbiAgICBTVU1NQVJZOiAnc3VtbWFyeScsXG4gICAgU1VQOiAnc3VwJyxcblxuICAgIFRBQkxFOiAndGFibGUnLFxuICAgIFRCT0RZOiAndGJvZHknLFxuICAgIFRFTVBMQVRFOiAndGVtcGxhdGUnLFxuICAgIFRFWFRBUkVBOiAndGV4dGFyZWEnLFxuICAgIFRGT09UOiAndGZvb3QnLFxuICAgIFREOiAndGQnLFxuICAgIFRIOiAndGgnLFxuICAgIFRIRUFEOiAndGhlYWQnLFxuICAgIFRJVExFOiAndGl0bGUnLFxuICAgIFRSOiAndHInLFxuICAgIFRSQUNLOiAndHJhY2snLFxuICAgIFRUOiAndHQnLFxuXG4gICAgVTogJ3UnLFxuICAgIFVMOiAndWwnLFxuXG4gICAgU1ZHOiAnc3ZnJyxcblxuICAgIFZBUjogJ3ZhcicsXG5cbiAgICBXQlI6ICd3YnInLFxuXG4gICAgWE1QOiAneG1wJ1xufTtcblxudmFyIFNQRUNJQUxfRUxFTUVOVFMgPSBleHBvcnRzLlNQRUNJQUxfRUxFTUVOVFMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BRERSRVNTXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQVBQTEVUXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQVJFQV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFSVElDTEVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BU0lERV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJBU0VdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CQVNFRk9OVF0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJHU09VTkRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CTE9DS1FVT1RFXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQk9EWV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJSXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQlVUVE9OXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQ0FQVElPTl0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNFTlRFUl0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNPTF0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNPTEdST1VQXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRERdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5ERVRBSUxTXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRElSXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRElWXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRExdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5EVF0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkVNQkVEXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRklFTERTRVRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5GSUdDQVBUSU9OXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRklHVVJFXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRk9PVEVSXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRk9STV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZSQU1FXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRlJBTUVTRVRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IMV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkgyXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDNdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5INF0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkg1XSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDZdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IRUFEXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSEVBREVSXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSEdST1VQXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSFJdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IVE1MXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSUZSQU1FXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSU1HXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSU5QVVRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5MSV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkxJTktdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5MSVNUSU5HXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTUFJTl0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1BUlFVRUVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5NRU5VXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTUVUQV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5BVl0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5PRU1CRURdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5OT0ZSQU1FU10gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5PU0NSSVBUXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuT0JKRUNUXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuT0xdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUEFSQU1dID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QTEFJTlRFWFRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QUkVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TQ1JJUFRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TRUNUSU9OXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0VMRUNUXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU09VUkNFXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU1RZTEVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TVU1NQVJZXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEFCTEVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UQk9EWV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlREXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEVNUExBVEVdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5URVhUQVJFQV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRGT09UXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEhdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5USEVBRF0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRJVExFXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVFJdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UUkFDS10gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlVMXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuV0JSXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuWE1QXSA9IHRydWU7XG5cblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5TUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5NSV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuTU9dID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1OXSA9IHRydWU7XG5TUEVDSUFMX0VMRU1FTlRTW05TLk1BVEhNTF1bJC5NU10gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdWyQuTVRFWFRdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLkFOTk9UQVRJT05fWE1MXSA9IHRydWU7XG5cblNQRUNJQUxfRUxFTUVOVFNbTlMuU1ZHXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5TUEVDSUFMX0VMRU1FTlRTW05TLlNWR11bJC5USVRMRV0gPSB0cnVlO1xuU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuRk9SRUlHTl9PQkpFQ1RdID0gdHJ1ZTtcblNQRUNJQUxfRUxFTUVOVFNbTlMuU1ZHXVskLkRFU0NdID0gdHJ1ZTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpO1xuXG4vL0FsaWFzZXNcbnZhciAkID0gSFRNTC5UQUdfTkFNRVMsXG4gICAgTlMgPSBIVE1MLk5BTUVTUEFDRVM7XG5cbi8vRWxlbWVudCB1dGlsc1xuXG4vL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuXG4vL0l0J3MgZmFzdGVyIHRoYW4gdXNpbmcgZGljdGlvbmFyeS5cbmZ1bmN0aW9uIGlzSW1wbGllZEVuZFRhZ1JlcXVpcmVkKHRuKSB7XG4gICAgc3dpdGNoICh0bi5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlA7XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlJCIHx8IHRuID09PSAkLlJQIHx8IHRuID09PSAkLlJUIHx8IHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUIHx8IHRuID09PSAkLkxJO1xuXG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5SVEM7XG5cbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLk9QVElPTjtcblxuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICByZXR1cm4gdG4gPT09ICQuT1BUR1JPVVAgfHwgdG4gPT09ICQuTUVOVUlURU07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBpc1Njb3BpbmdFbGVtZW50KHRuLCBucykge1xuICAgIHN3aXRjaCAodG4ubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TKVxuICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTClcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRFU0MpXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5TVkc7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1URVhUKVxuICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5USVRMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLlNWRztcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKSAmJiBucyA9PT0gTlMuSFRNTDtcblxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICByZXR1cm4gKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuTUFSUVVFRSkgJiYgbnMgPT09IE5TLkhUTUw7XG5cbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MO1xuXG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICByZXR1cm4gdG4gPT09ICQuRk9SRUlHTl9PQkpFQ1QgJiYgbnMgPT09IE5TLlNWRztcblxuICAgICAgICBjYXNlIDE0OlxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLkFOTk9UQVRJT05fWE1MICYmIG5zID09PSBOUy5NQVRITUw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vL1N0YWNrIG9mIG9wZW4gZWxlbWVudHNcbnZhciBPcGVuRWxlbWVudFN0YWNrID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIHRyZWVBZGFwdGVyKSB7XG4gICAgdGhpcy5zdGFja1RvcCA9IC0xO1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcbiAgICB0aGlzLmN1cnJlbnRUYWdOYW1lID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRUbXBsQ29udGVudCA9IG51bGw7XG4gICAgdGhpcy50bXBsQ291bnQgPSAwO1xuICAgIHRoaXMudHJlZUFkYXB0ZXIgPSB0cmVlQWRhcHRlcjtcbn07XG5cbi8vSW5kZXggb2YgZWxlbWVudFxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX2luZGV4T2YgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBpZHggPSAtMTtcblxuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodGhpcy5pdGVtc1tpXSA9PT0gZWxlbWVudCkge1xuICAgICAgICAgICAgaWR4ID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpZHg7XG59O1xuXG4vL1VwZGF0ZSBjdXJyZW50IGVsZW1lbnRcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl9pc0luVGVtcGxhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRhZ05hbWUgPT09ICQuVEVNUExBVEUgJiYgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KSA9PT0gTlMuSFRNTDtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl91cGRhdGVDdXJyZW50RWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmN1cnJlbnQgPSB0aGlzLml0ZW1zW3RoaXMuc3RhY2tUb3BdO1xuICAgIHRoaXMuY3VycmVudFRhZ05hbWUgPSB0aGlzLmN1cnJlbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuY3VycmVudCk7XG5cbiAgICB0aGlzLmN1cnJlbnRUbXBsQ29udGVudCA9IHRoaXMuX2lzSW5UZW1wbGF0ZSgpID8gdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQodGhpcy5jdXJyZW50KSA6IG51bGw7XG59O1xuXG4vL011dGF0aW9uc1xuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdGhpcy5pdGVtc1srK3RoaXMuc3RhY2tUb3BdID0gZWxlbWVudDtcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuXG4gICAgaWYgKHRoaXMuX2lzSW5UZW1wbGF0ZSgpKVxuICAgICAgICB0aGlzLnRtcGxDb3VudCsrO1xuXG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5zdGFja1RvcC0tO1xuXG4gICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSlcbiAgICAgICAgdGhpcy50bXBsQ291bnQtLTtcblxuICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZXBsYWNlID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcbiAgICB2YXIgaWR4ID0gdGhpcy5faW5kZXhPZihvbGRFbGVtZW50KTtcblxuICAgIHRoaXMuaXRlbXNbaWR4XSA9IG5ld0VsZW1lbnQ7XG5cbiAgICBpZiAoaWR4ID09PSB0aGlzLnN0YWNrVG9wKVxuICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaW5zZXJ0QWZ0ZXIgPSBmdW5jdGlvbiAocmVmZXJlbmNlRWxlbWVudCwgbmV3RWxlbWVudCkge1xuICAgIHZhciBpbnNlcnRpb25JZHggPSB0aGlzLl9pbmRleE9mKHJlZmVyZW5jZUVsZW1lbnQpICsgMTtcblxuICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XG5cbiAgICBpZiAoaW5zZXJ0aW9uSWR4ID09PSArK3RoaXMuc3RhY2tUb3ApXG4gICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbFRhZ05hbWVQb3BwZWQgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xuICAgIHdoaWxlICh0aGlzLnN0YWNrVG9wID4gLTEpIHtcbiAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZSxcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KTtcblxuICAgICAgICB0aGlzLnBvcCgpO1xuXG4gICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcFVudGlsRWxlbWVudFBvcHBlZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPiAtMSkge1xuICAgICAgICB2YXIgcG9wcGVkRWxlbWVudCA9IHRoaXMuY3VycmVudDtcblxuICAgICAgICB0aGlzLnBvcCgpO1xuXG4gICAgICAgIGlmIChwb3BwZWRFbGVtZW50ID09PSBlbGVtZW50KVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7XG4gICAgICAgIHZhciB0biA9IHRoaXMuY3VycmVudFRhZ05hbWUsXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCk7XG5cbiAgICAgICAgdGhpcy5wb3AoKTtcblxuICAgICAgICBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYgJiYgbnMgPT09IE5TLkhUTUwpXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7XG4gICAgICAgIHZhciB0biA9IHRoaXMuY3VycmVudFRhZ05hbWUsXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCk7XG5cbiAgICAgICAgdGhpcy5wb3AoKTtcblxuICAgICAgICBpZiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEggJiYgbnMgPT09IE5TLkhUTUwpXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BBbGxVcFRvSHRtbEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHJvb3QgPGh0bWw+IGVsZW1lbnQgaXMgYWx3YXlzIGZpcnN0IGluIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2ssIHNvXG4gICAgLy93ZSBwZXJmb3JtIHRoaXMgZmFzdCBzdGFjayBjbGVhbiB1cC5cbiAgICB0aGlzLnN0YWNrVG9wID0gMDtcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEFCTEUgJiZcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5URU1QTEFURSAmJlxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkhUTUwgfHxcbiAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KSAhPT0gTlMuSFRNTClcbiAgICAgICAgdGhpcy5wb3AoKTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQk9EWSAmJlxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRGT09UICYmXG4gICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEhFQUQgJiZcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5URU1QTEFURSAmJlxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkhUTUwgfHxcbiAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KSAhPT0gTlMuSFRNTClcbiAgICAgICAgdGhpcy5wb3AoKTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xuICAgIHdoaWxlICh0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRSICYmXG4gICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEVNUExBVEUgJiZcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5IVE1MIHx8XG4gICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgIT09IE5TLkhUTUwpXG4gICAgICAgIHRoaXMucG9wKCk7XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodGhpcy5pdGVtc1tpXSA9PT0gZWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICB0aGlzLnN0YWNrVG9wLS07XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG4vL1NlYXJjaFxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUudHJ5UGVla1Byb3Blcmx5TmVzdGVkQm9keUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXG4gICAgdmFyIGVsZW1lbnQgPSB0aGlzLml0ZW1zWzFdO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSAkLkJPRFkgPyBlbGVtZW50IDogbnVsbDtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5faW5kZXhPZihlbGVtZW50KSA+IC0xO1xufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuZ2V0Q29tbW9uQW5jZXN0b3IgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBlbGVtZW50SWR4ID0gdGhpcy5faW5kZXhPZihlbGVtZW50KTtcblxuICAgIHJldHVybiAtLWVsZW1lbnRJZHggPj0gMCA/IHRoaXMuaXRlbXNbZWxlbWVudElkeF0gOiBudWxsO1xufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuY3VycmVudFRhZ05hbWUgPT09ICQuSFRNTDtcbn07XG5cbi8vRWxlbWVudCBpbiBzY29wZVxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKSxcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG5cbiAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgaWYgKGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc051bWJlcmVkSGVhZGVySW5TY29wZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pLFxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcblxuICAgICAgICBpZiAoKHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2KSAmJiBucyA9PT0gTlMuSFRNTClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmIChpc1Njb3BpbmdFbGVtZW50KHRuLCBucykpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJbkxpc3RJdGVtU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSksXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuXG4gICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICgodG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpICYmIG5zID09PSBOUy5IVE1MIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luQnV0dG9uU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSksXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xuXG4gICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh0biA9PT0gJC5CVVRUT04gJiYgbnMgPT09IE5TLkhUTUwgfHwgaXNTY29waW5nRWxlbWVudCh0biwgbnMpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufTtcblxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5UYWJsZVNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pLFxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcblxuICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpXG4gICAgICAgICAgICBjb250aW51ZTtcblxuICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEVNUExBVEUgfHwgdG4gPT09ICQuSFRNTClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKSxcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XG5cbiAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKVxuICAgICAgICAgICAgY29udGludWU7XG5cbiAgICAgICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRGT09UKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLkhUTUwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59O1xuXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJblNlbGVjdFNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pLFxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcblxuICAgICAgICBpZiAobnMgIT09IE5TLkhUTUwpXG4gICAgICAgICAgICBjb250aW51ZTtcblxuICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodG4gIT09ICQuT1BUSU9OICYmIHRuICE9PSAkLk9QVEdST1VQKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufTtcblxuLy9JbXBsaWVkIGVuZCB0YWdzXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzID0gZnVuY3Rpb24gKCkge1xuICAgIHdoaWxlIChpc0ltcGxpZWRFbmRUYWdSZXF1aXJlZCh0aGlzLmN1cnJlbnRUYWdOYW1lKSlcbiAgICAgICAgdGhpcy5wb3AoKTtcbn07XG5cbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uID0gZnVuY3Rpb24gKGV4Y2x1c2lvblRhZ05hbWUpIHtcbiAgICB3aGlsZSAoaXNJbXBsaWVkRW5kVGFnUmVxdWlyZWQodGhpcy5jdXJyZW50VGFnTmFtZSkgJiYgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gZXhjbHVzaW9uVGFnTmFtZSlcbiAgICAgICAgdGhpcy5wb3AoKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8vQ29uc3RcbnZhciBOT0FIX0FSS19DQVBBQ0lUWSA9IDM7XG5cbi8vTGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzXG52YXIgRm9ybWF0dGluZ0VsZW1lbnRMaXN0ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodHJlZUFkYXB0ZXIpIHtcbiAgICB0aGlzLmxlbmd0aCA9IDA7XG4gICAgdGhpcy5lbnRyaWVzID0gW107XG4gICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xuICAgIHRoaXMuYm9va21hcmsgPSBudWxsO1xufTtcblxuLy9FbnRyeSB0eXBlc1xuRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSA9ICdNQVJLRVJfRU5UUlknO1xuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkgPSAnRUxFTUVOVF9FTlRSWSc7XG5cbi8vTm9haCBBcmsncyBjb25kaXRpb25cbi8vT1BUSU1JWkFUSU9OOiBhdCBmaXJzdCB3ZSB0cnkgdG8gZmluZCBwb3NzaWJsZSBjYW5kaWRhdGVzIGZvciBleGNsdXNpb24gdXNpbmdcbi8vbGlnaHR3ZWlnaHQgaGV1cmlzdGljcyB3aXRob3V0IHRob3JvdWdoIGF0dHJpYnV0ZXMgY2hlY2suXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyA9IGZ1bmN0aW9uIChuZXdFbGVtZW50KSB7XG4gICAgdmFyIGNhbmRpZGF0ZXMgPSBbXTtcblxuICAgIGlmICh0aGlzLmxlbmd0aCA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xuICAgICAgICB2YXIgbmVBdHRyc0xlbmd0aCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QobmV3RWxlbWVudCkubGVuZ3RoLFxuICAgICAgICAgICAgbmVUYWdOYW1lID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5ld0VsZW1lbnQpLFxuICAgICAgICAgICAgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcblxuICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuXG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSlcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBlbnRyeS5lbGVtZW50LFxuICAgICAgICAgICAgICAgIGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCksXG4gICAgICAgICAgICAgICAgaXNDYW5kaWRhdGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IG5lVGFnTmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCkgPT09IG5lTmFtZXNwYWNlVVJJICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoO1xuXG4gICAgICAgICAgICBpZiAoaXNDYW5kaWRhdGUpXG4gICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHtpZHg6IGksIGF0dHJzOiBlbGVtZW50QXR0cnN9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZID8gW10gOiBjYW5kaWRhdGVzO1xufTtcblxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5fZW5zdXJlTm9haEFya0NvbmRpdGlvbiA9IGZ1bmN0aW9uIChuZXdFbGVtZW50KSB7XG4gICAgdmFyIGNhbmRpZGF0ZXMgPSB0aGlzLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyhuZXdFbGVtZW50KSxcbiAgICAgICAgY0xlbmd0aCA9IGNhbmRpZGF0ZXMubGVuZ3RoO1xuXG4gICAgaWYgKGNMZW5ndGgpIHtcbiAgICAgICAgdmFyIG5lQXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5ld0VsZW1lbnQpLFxuICAgICAgICAgICAgbmVBdHRyc0xlbmd0aCA9IG5lQXR0cnMubGVuZ3RoLFxuICAgICAgICAgICAgbmVBdHRyc01hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCBzbyB3ZSBjYW4gcGVyZm9ybSBmYXN0IGxvb2t1cHNcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZUF0dHJzTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBuZUF0dHIgPSBuZUF0dHJzW2ldO1xuXG4gICAgICAgICAgICBuZUF0dHJzTWFwW25lQXR0ci5uYW1lXSA9IG5lQXR0ci52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBuZUF0dHJzTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY0xlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNBdHRyID0gY2FuZGlkYXRlc1tqXS5hdHRyc1tpXTtcblxuICAgICAgICAgICAgICAgIGlmIChuZUF0dHJzTWFwW2NBdHRyLm5hbWVdICE9PSBjQXR0ci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnNwbGljZShqLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgY0xlbmd0aC0tO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA8IE5PQUhfQVJLX0NBUEFDSVRZKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvL05PVEU6IHJlbW92ZSBib3R0b21tb3N0IGNhbmRpZGF0ZXMgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XG4gICAgICAgIGZvciAoaSA9IGNMZW5ndGggLSAxOyBpID49IE5PQUhfQVJLX0NBUEFDSVRZIC0gMTsgaS0tKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGNhbmRpZGF0ZXNbaV0uaWR4LCAxKTtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoLS07XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG4vL011dGF0aW9uc1xuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5pbnNlcnRNYXJrZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe3R5cGU6IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUll9KTtcbiAgICB0aGlzLmxlbmd0aCsrO1xufTtcblxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5wdXNoRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50LCB0b2tlbikge1xuICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XG5cbiAgICB0aGlzLmVudHJpZXMucHVzaCh7XG4gICAgICAgIHR5cGU6IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5FTEVNRU5UX0VOVFJZLFxuICAgICAgICBlbGVtZW50OiBlbGVtZW50LFxuICAgICAgICB0b2tlbjogdG9rZW5cbiAgICB9KTtcblxuICAgIHRoaXMubGVuZ3RoKys7XG59O1xuXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLmluc2VydEVsZW1lbnRBZnRlckJvb2ttYXJrID0gZnVuY3Rpb24gKGVsZW1lbnQsIHRva2VuKSB7XG4gICAgdmFyIGJvb2ttYXJrSWR4ID0gdGhpcy5sZW5ndGggLSAxO1xuXG4gICAgZm9yICg7IGJvb2ttYXJrSWR4ID49IDA7IGJvb2ttYXJrSWR4LS0pIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllc1tib29rbWFya0lkeF0gPT09IHRoaXMuYm9va21hcmspXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGJvb2ttYXJrSWR4ICsgMSwgMCwge1xuICAgICAgICB0eXBlOiBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSxcbiAgICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgICAgdG9rZW46IHRva2VuXG4gICAgfSk7XG5cbiAgICB0aGlzLmxlbmd0aCsrO1xufTtcblxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5yZW1vdmVFbnRyeSA9IGZ1bmN0aW9uIChlbnRyeSkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmICh0aGlzLmVudHJpZXNbaV0gPT09IGVudHJ5KSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgdGhpcy5sZW5ndGgtLTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5jbGVhclRvTGFzdE1hcmtlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB3aGlsZSAodGhpcy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzLnBvcCgpO1xuXG4gICAgICAgIHRoaXMubGVuZ3RoLS07XG5cbiAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkpXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59O1xuXG4vL1NlYXJjaFxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllc1tpXTtcblxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZW50cnkuZWxlbWVudCkgPT09IHRhZ05hbWUpXG4gICAgICAgICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLmdldEVsZW1lbnRFbnRyeSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xuXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSAmJiBlbnRyeS5lbGVtZW50ID09PSBlbGVtZW50KVxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE1peGluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaG9zdCkge1xuICAgIHZhciBvcmlnaW5hbE1ldGhvZHMgPSB7fSxcbiAgICAgICAgb3ZlcnJpZGRlbk1ldGhvZHMgPSB0aGlzLl9nZXRPdmVycmlkZGVuTWV0aG9kcyh0aGlzLCBvcmlnaW5hbE1ldGhvZHMpO1xuXG4gICAgT2JqZWN0LmtleXMob3ZlcnJpZGRlbk1ldGhvZHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAodHlwZW9mIG92ZXJyaWRkZW5NZXRob2RzW2tleV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTWV0aG9kc1trZXldID0gaG9zdFtrZXldO1xuICAgICAgICAgICAgaG9zdFtrZXldID0gb3ZlcnJpZGRlbk1ldGhvZHNba2V5XTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuTWl4aW4ucHJvdG90eXBlLl9nZXRPdmVycmlkZGVuTWV0aG9kcyA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xufTtcblxuIiwiZXhwb3J0IGRlZmF1bHQgdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6XG4gICAgICAgICAgICB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOlxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9XG4iLCJcbnZhciBsb29rdXAgPSBbXVxudmFyIHJldkxvb2t1cCA9IFtdXG52YXIgQXJyID0gdHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnID8gVWludDhBcnJheSA6IEFycmF5XG52YXIgaW5pdGVkID0gZmFsc2U7XG5mdW5jdGlvbiBpbml0ICgpIHtcbiAgaW5pdGVkID0gdHJ1ZTtcbiAgdmFyIGNvZGUgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLydcbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvZGUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICBsb29rdXBbaV0gPSBjb2RlW2ldXG4gICAgcmV2TG9va3VwW2NvZGUuY2hhckNvZGVBdChpKV0gPSBpXG4gIH1cblxuICByZXZMb29rdXBbJy0nLmNoYXJDb2RlQXQoMCldID0gNjJcbiAgcmV2TG9va3VwWydfJy5jaGFyQ29kZUF0KDApXSA9IDYzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0J5dGVBcnJheSAoYjY0KSB7XG4gIGlmICghaW5pdGVkKSB7XG4gICAgaW5pdCgpO1xuICB9XG4gIHZhciBpLCBqLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyXG4gIHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cbiAgaWYgKGxlbiAlIDQgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0JylcbiAgfVxuXG4gIC8vIHRoZSBudW1iZXIgb2YgZXF1YWwgc2lnbnMgKHBsYWNlIGhvbGRlcnMpXG4gIC8vIGlmIHRoZXJlIGFyZSB0d28gcGxhY2Vob2xkZXJzLCB0aGFuIHRoZSB0d28gY2hhcmFjdGVycyBiZWZvcmUgaXRcbiAgLy8gcmVwcmVzZW50IG9uZSBieXRlXG4gIC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lLCB0aGVuIHRoZSB0aHJlZSBjaGFyYWN0ZXJzIGJlZm9yZSBpdCByZXByZXNlbnQgMiBieXRlc1xuICAvLyB0aGlzIGlzIGp1c3QgYSBjaGVhcCBoYWNrIHRvIG5vdCBkbyBpbmRleE9mIHR3aWNlXG4gIHBsYWNlSG9sZGVycyA9IGI2NFtsZW4gLSAyXSA9PT0gJz0nID8gMiA6IGI2NFtsZW4gLSAxXSA9PT0gJz0nID8gMSA6IDBcblxuICAvLyBiYXNlNjQgaXMgNC8zICsgdXAgdG8gdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG9yaWdpbmFsIGRhdGFcbiAgYXJyID0gbmV3IEFycihsZW4gKiAzIC8gNCAtIHBsYWNlSG9sZGVycylcblxuICAvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG4gIGwgPSBwbGFjZUhvbGRlcnMgPiAwID8gbGVuIC0gNCA6IGxlblxuXG4gIHZhciBMID0gMFxuXG4gIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbDsgaSArPSA0LCBqICs9IDMpIHtcbiAgICB0bXAgPSAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAxOCkgfCAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPDwgMTIpIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildIDw8IDYpIHwgcmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAzKV1cbiAgICBhcnJbTCsrXSA9ICh0bXAgPj4gMTYpICYgMHhGRlxuICAgIGFycltMKytdID0gKHRtcCA+PiA4KSAmIDB4RkZcbiAgICBhcnJbTCsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHtcbiAgICB0bXAgPSAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAyKSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA+PiA0KVxuICAgIGFycltMKytdID0gdG1wICYgMHhGRlxuICB9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkge1xuICAgIHRtcCA9IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDEwKSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCA0KSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA+PiAyKVxuICAgIGFycltMKytdID0gKHRtcCA+PiA4KSAmIDB4RkZcbiAgICBhcnJbTCsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcbiAgcmV0dXJuIGxvb2t1cFtudW0gPj4gMTggJiAweDNGXSArIGxvb2t1cFtudW0gPj4gMTIgJiAweDNGXSArIGxvb2t1cFtudW0gPj4gNiAmIDB4M0ZdICsgbG9va3VwW251bSAmIDB4M0ZdXG59XG5cbmZ1bmN0aW9uIGVuY29kZUNodW5rICh1aW50OCwgc3RhcnQsIGVuZCkge1xuICB2YXIgdG1wXG4gIHZhciBvdXRwdXQgPSBbXVxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gMykge1xuICAgIHRtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSlcbiAgICBvdXRwdXQucHVzaCh0cmlwbGV0VG9CYXNlNjQodG1wKSlcbiAgfVxuICByZXR1cm4gb3V0cHV0LmpvaW4oJycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQnl0ZUFycmF5ICh1aW50OCkge1xuICBpZiAoIWluaXRlZCkge1xuICAgIGluaXQoKTtcbiAgfVxuICB2YXIgdG1wXG4gIHZhciBsZW4gPSB1aW50OC5sZW5ndGhcbiAgdmFyIGV4dHJhQnl0ZXMgPSBsZW4gJSAzIC8vIGlmIHdlIGhhdmUgMSBieXRlIGxlZnQsIHBhZCAyIGJ5dGVzXG4gIHZhciBvdXRwdXQgPSAnJ1xuICB2YXIgcGFydHMgPSBbXVxuICB2YXIgbWF4Q2h1bmtMZW5ndGggPSAxNjM4MyAvLyBtdXN0IGJlIG11bHRpcGxlIG9mIDNcblxuICAvLyBnbyB0aHJvdWdoIHRoZSBhcnJheSBldmVyeSB0aHJlZSBieXRlcywgd2UnbGwgZGVhbCB3aXRoIHRyYWlsaW5nIHN0dWZmIGxhdGVyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4yID0gbGVuIC0gZXh0cmFCeXRlczsgaSA8IGxlbjI7IGkgKz0gbWF4Q2h1bmtMZW5ndGgpIHtcbiAgICBwYXJ0cy5wdXNoKGVuY29kZUNodW5rKHVpbnQ4LCBpLCAoaSArIG1heENodW5rTGVuZ3RoKSA+IGxlbjIgPyBsZW4yIDogKGkgKyBtYXhDaHVua0xlbmd0aCkpKVxuICB9XG5cbiAgLy8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuICBpZiAoZXh0cmFCeXRlcyA9PT0gMSkge1xuICAgIHRtcCA9IHVpbnQ4W2xlbiAtIDFdXG4gICAgb3V0cHV0ICs9IGxvb2t1cFt0bXAgPj4gMl1cbiAgICBvdXRwdXQgKz0gbG9va3VwWyh0bXAgPDwgNCkgJiAweDNGXVxuICAgIG91dHB1dCArPSAnPT0nXG4gIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikge1xuICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArICh1aW50OFtsZW4gLSAxXSlcbiAgICBvdXRwdXQgKz0gbG9va3VwW3RtcCA+PiAxMF1cbiAgICBvdXRwdXQgKz0gbG9va3VwWyh0bXAgPj4gNCkgJiAweDNGXVxuICAgIG91dHB1dCArPSBsb29rdXBbKHRtcCA8PCAyKSAmIDB4M0ZdXG4gICAgb3V0cHV0ICs9ICc9J1xuICB9XG5cbiAgcGFydHMucHVzaChvdXRwdXQpXG5cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG4iLCJcbmV4cG9ydCBmdW5jdGlvbiByZWFkIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7XG4gIHZhciBlLCBtXG4gIHZhciBlTGVuID0gbkJ5dGVzICogOCAtIG1MZW4gLSAxXG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxXG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMVxuICB2YXIgbkJpdHMgPSAtN1xuICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwXG4gIHZhciBkID0gaXNMRSA/IC0xIDogMVxuICB2YXIgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IGUgKiAyNTYgKyBidWZmZXJbb2Zmc2V0ICsgaV0sIGkgKz0gZCwgbkJpdHMgLT0gOCkge31cblxuICBtID0gZSAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBlID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBtTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IG0gPSBtICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgaWYgKGUgPT09IDApIHtcbiAgICBlID0gMSAtIGVCaWFzXG4gIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkge1xuICAgIHJldHVybiBtID8gTmFOIDogKChzID8gLTEgOiAxKSAqIEluZmluaXR5KVxuICB9IGVsc2Uge1xuICAgIG0gPSBtICsgTWF0aC5wb3coMiwgbUxlbilcbiAgICBlID0gZSAtIGVCaWFzXG4gIH1cbiAgcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBNYXRoLnBvdygyLCBlIC0gbUxlbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlIChidWZmZXIsIHZhbHVlLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbSwgY1xuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIHJ0ID0gKG1MZW4gPT09IDIzID8gTWF0aC5wb3coMiwgLTI0KSAtIE1hdGgucG93KDIsIC03NykgOiAwKVxuICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpXG4gIHZhciBkID0gaXNMRSA/IDEgOiAtMVxuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCAodmFsdWUgPT09IDAgJiYgMSAvIHZhbHVlIDwgMCkgPyAxIDogMFxuXG4gIHZhbHVlID0gTWF0aC5hYnModmFsdWUpXG5cbiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHtcbiAgICBtID0gaXNOYU4odmFsdWUpID8gMSA6IDBcbiAgICBlID0gZU1heFxuICB9IGVsc2Uge1xuICAgIGUgPSBNYXRoLmZsb29yKE1hdGgubG9nKHZhbHVlKSAvIE1hdGguTE4yKVxuICAgIGlmICh2YWx1ZSAqIChjID0gTWF0aC5wb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLVxuICAgICAgYyAqPSAyXG4gICAgfVxuICAgIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgdmFsdWUgKz0gcnQgLyBjXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKVxuICAgIH1cbiAgICBpZiAodmFsdWUgKiBjID49IDIpIHtcbiAgICAgIGUrK1xuICAgICAgYyAvPSAyXG4gICAgfVxuXG4gICAgaWYgKGUgKyBlQmlhcyA+PSBlTWF4KSB7XG4gICAgICBtID0gMFxuICAgICAgZSA9IGVNYXhcbiAgICB9IGVsc2UgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtID0gKHZhbHVlICogYyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSBlICsgZUJpYXNcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IHZhbHVlICogTWF0aC5wb3coMiwgZUJpYXMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gMFxuICAgIH1cbiAgfVxuXG4gIGZvciAoOyBtTGVuID49IDg7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IG0gJiAweGZmLCBpICs9IGQsIG0gLz0gMjU2LCBtTGVuIC09IDgpIHt9XG5cbiAgZSA9IChlIDw8IG1MZW4pIHwgbVxuICBlTGVuICs9IG1MZW5cbiAgZm9yICg7IGVMZW4gPiAwOyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBlICYgMHhmZiwgaSArPSBkLCBlIC89IDI1NiwgZUxlbiAtPSA4KSB7fVxuXG4gIGJ1ZmZlcltvZmZzZXQgKyBpIC0gZF0gfD0gcyAqIDEyOFxufVxuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbmV4cG9ydCBkZWZhdWx0IEFycmF5LmlzQXJyYXkgfHwgZnVuY3Rpb24gKGFycikge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChhcnIpID09ICdbb2JqZWN0IEFycmF5XSc7XG59O1xuIiwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cblxuXG5pbXBvcnQgKiBhcyBiYXNlNjQgZnJvbSAnLi9iYXNlNjQnXG5pbXBvcnQgKiBhcyBpZWVlNzU0IGZyb20gJy4vaWVlZTc1NCdcbmltcG9ydCBpc0FycmF5IGZyb20gJy4vaXNBcnJheSdcblxuZXhwb3J0IHZhciBJTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5cbi8qKlxuICogSWYgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYDpcbiAqICAgPT09IHRydWUgICAgVXNlIFVpbnQ4QXJyYXkgaW1wbGVtZW50YXRpb24gKGZhc3Rlc3QpXG4gKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpXG4gKlxuICogQnJvd3NlcnMgdGhhdCBzdXBwb3J0IHR5cGVkIGFycmF5cyBhcmUgSUUgMTArLCBGaXJlZm94IDQrLCBDaHJvbWUgNyssIFNhZmFyaSA1LjErLFxuICogT3BlcmEgMTEuNissIGlPUyA0LjIrLlxuICpcbiAqIER1ZSB0byB2YXJpb3VzIGJyb3dzZXIgYnVncywgc29tZXRpbWVzIHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24gd2lsbCBiZSB1c2VkIGV2ZW5cbiAqIHdoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgdHlwZWQgYXJyYXlzLlxuICpcbiAqIE5vdGU6XG4gKlxuICogICAtIEZpcmVmb3ggNC0yOSBsYWNrcyBzdXBwb3J0IGZvciBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcyxcbiAqICAgICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZlxuICogICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleVxuICogZ2V0IHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHNsb3dlciBidXQgYmVoYXZlcyBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQgIT09IHVuZGVmaW5lZFxuICA/IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gIDogdHJ1ZVxuXG4vKlxuICogRXhwb3J0IGtNYXhMZW5ndGggYWZ0ZXIgdHlwZWQgYXJyYXkgc3VwcG9ydCBpcyBkZXRlcm1pbmVkLlxuICovXG52YXIgX2tNYXhMZW5ndGggPSBrTWF4TGVuZ3RoKClcbmV4cG9ydCB7X2tNYXhMZW5ndGggYXMga01heExlbmd0aH07XG5mdW5jdGlvbiB0eXBlZEFycmF5U3VwcG9ydCAoKSB7XG4gIHJldHVybiB0cnVlO1xuICAvLyByb2xsdXAgaXNzdWVzXG4gIC8vIHRyeSB7XG4gIC8vICAgdmFyIGFyciA9IG5ldyBVaW50OEFycmF5KDEpXG4gIC8vICAgYXJyLl9fcHJvdG9fXyA9IHtcbiAgLy8gICAgIF9fcHJvdG9fXzogVWludDhBcnJheS5wcm90b3R5cGUsXG4gIC8vICAgICBmb286IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDQyIH1cbiAgLy8gICB9XG4gIC8vICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgLy8gICAgICAgdHlwZW9mIGFyci5zdWJhcnJheSA9PT0gJ2Z1bmN0aW9uJyAmJiAvLyBjaHJvbWUgOS0xMCBsYWNrIGBzdWJhcnJheWBcbiAgLy8gICAgICAgYXJyLnN1YmFycmF5KDEsIDEpLmJ5dGVMZW5ndGggPT09IDAgLy8gaWUxMCBoYXMgYnJva2VuIGBzdWJhcnJheWBcbiAgLy8gfSBjYXRjaCAoZSkge1xuICAvLyAgIHJldHVybiBmYWxzZVxuICAvLyB9XG59XG5cbmZ1bmN0aW9uIGtNYXhMZW5ndGggKCkge1xuICByZXR1cm4gQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRcbiAgICA/IDB4N2ZmZmZmZmZcbiAgICA6IDB4M2ZmZmZmZmZcbn1cblxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyICh0aGF0LCBsZW5ndGgpIHtcbiAgaWYgKGtNYXhMZW5ndGgoKSA8IGxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHR5cGVkIGFycmF5IGxlbmd0aCcpXG4gIH1cbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgLy8gUmV0dXJuIGFuIGF1Z21lbnRlZCBgVWludDhBcnJheWAgaW5zdGFuY2UsIGZvciBiZXN0IHBlcmZvcm1hbmNlXG4gICAgdGhhdCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aClcbiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgaWYgKHRoYXQgPT09IG51bGwpIHtcbiAgICAgIHRoYXQgPSBuZXcgQnVmZmVyKGxlbmd0aClcbiAgICB9XG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogVGhlIEJ1ZmZlciBjb25zdHJ1Y3RvciByZXR1cm5zIGluc3RhbmNlcyBvZiBgVWludDhBcnJheWAgdGhhdCBoYXZlIHRoZWlyXG4gKiBwcm90b3R5cGUgY2hhbmdlZCB0byBgQnVmZmVyLnByb3RvdHlwZWAuIEZ1cnRoZXJtb3JlLCBgQnVmZmVyYCBpcyBhIHN1YmNsYXNzIG9mXG4gKiBgVWludDhBcnJheWAsIHNvIHRoZSByZXR1cm5lZCBpbnN0YW5jZXMgd2lsbCBoYXZlIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBtZXRob2RzXG4gKiBhbmQgdGhlIGBVaW50OEFycmF5YCBtZXRob2RzLiBTcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdFxuICogcmV0dXJucyBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBUaGUgYFVpbnQ4QXJyYXlgIHByb3RvdHlwZSByZW1haW5zIHVubW9kaWZpZWQuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiAhKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZ09yT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhbGxvY1Vuc2FmZSh0aGlzLCBhcmcpXG4gIH1cbiAgcmV0dXJuIGZyb20odGhpcywgYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wb29sU2l6ZSA9IDgxOTIgLy8gbm90IHVzZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvblxuXG4vLyBUT0RPOiBMZWdhY3ksIG5vdCBuZWVkZWQgYW55bW9yZS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgdmVyc2lvbi5cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIChhcnIpIHtcbiAgYXJyLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgcmV0dXJuIGFyclxufVxuXG5mdW5jdGlvbiBmcm9tICh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0KVxuICB9XG5cbiAgcmV0dXJuIGZyb21PYmplY3QodGhhdCwgdmFsdWUpXG59XG5cbi8qKlxuICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gQnVmZmVyKGFyZywgZW5jb2RpbmcpIGJ1dCB0aHJvd3MgYSBUeXBlRXJyb3JcbiAqIGlmIHZhbHVlIGlzIGEgbnVtYmVyLlxuICogQnVmZmVyLmZyb20oc3RyWywgZW5jb2RpbmddKVxuICogQnVmZmVyLmZyb20oYXJyYXkpXG4gKiBCdWZmZXIuZnJvbShidWZmZXIpXG4gKiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlclssIGJ5dGVPZmZzZXRbLCBsZW5ndGhdXSlcbiAqKi9cbkJ1ZmZlci5mcm9tID0gZnVuY3Rpb24gKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGZyb20obnVsbCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gIEJ1ZmZlci5wcm90b3R5cGUuX19wcm90b19fID0gVWludDhBcnJheS5wcm90b3R5cGVcbiAgQnVmZmVyLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXlcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5zcGVjaWVzICYmXG4gICAgICBCdWZmZXJbU3ltYm9sLnNwZWNpZXNdID09PSBCdWZmZXIpIHtcbiAgICAvLyBGaXggc3ViYXJyYXkoKSBpbiBFUzIwMTYuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXIvcHVsbC85N1xuICAgIC8vIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIsIFN5bWJvbC5zcGVjaWVzLCB7XG4gICAgLy8gICB2YWx1ZTogbnVsbCxcbiAgICAvLyAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIC8vIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2l6ZSAoc2l6ZSkge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH0gZWxzZSBpZiAoc2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG9jICh0aGF0LCBzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIGlmIChzaXplIDw9IDApIHtcbiAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG4gIH1cbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9ubHkgcGF5IGF0dGVudGlvbiB0byBlbmNvZGluZyBpZiBpdCdzIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gcHJldmVudHMgYWNjaWRlbnRhbGx5IHNlbmRpbmcgaW4gYSBudW1iZXIgdGhhdCB3b3VsZFxuICAgIC8vIGJlIGludGVycHJldHRlZCBhcyBhIHN0YXJ0IG9mZnNldC5cbiAgICByZXR1cm4gdHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJ1xuICAgICAgPyBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICAgIDogY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbClcbiAgfVxuICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBmaWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogYWxsb2Moc2l6ZVssIGZpbGxbLCBlbmNvZGluZ11dKVxuICoqL1xuQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIHJldHVybiBhbGxvYyhudWxsLCBzaXplLCBmaWxsLCBlbmNvZGluZylcbn1cblxuZnVuY3Rpb24gYWxsb2NVbnNhZmUgKHRoYXQsIHNpemUpIHtcbiAgYXNzZXJ0U2l6ZShzaXplKVxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUgPCAwID8gMCA6IGNoZWNrZWQoc2l6ZSkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpIHtcbiAgICAgIHRoYXRbaV0gPSAwXG4gICAgfVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogRXF1aXZhbGVudCB0byBCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqICovXG5CdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cbi8qKlxuICogRXF1aXZhbGVudCB0byBTbG93QnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImVuY29kaW5nXCIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpXG4gIH1cblxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG5cbiAgdmFyIGFjdHVhbCA9IHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcblxuICBpZiAoYWN0dWFsICE9PSBsZW5ndGgpIHtcbiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGxcbiAgICAvLyBjYXVzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkIGNoYXJhY3RlciB0byBiZSBpZ25vcmVkLiAoZS5nLlxuICAgIC8vICdhYnh4Y2QnIHdpbGwgYmUgdHJlYXRlZCBhcyAnYWInKVxuICAgIHRoYXQgPSB0aGF0LnNsaWNlKDAsIGFjdHVhbClcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPCAwID8gMCA6IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgYXJyYXkuYnl0ZUxlbmd0aCAvLyB0aGlzIHRocm93cyBpZiBgYXJyYXlgIGlzIG5vdCBhIHZhbGlkIEFycmF5QnVmZmVyXG5cbiAgaWYgKGJ5dGVPZmZzZXQgPCAwIHx8IGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1xcJ29mZnNldFxcJyBpcyBvdXQgb2YgYm91bmRzJylcbiAgfVxuXG4gIGlmIChhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCArIChsZW5ndGggfHwgMCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnbGVuZ3RoXFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGJ5dGVPZmZzZXQgPT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXkpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBhcnJheVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0ID0gZnJvbUFycmF5TGlrZSh0aGF0LCBhcnJheSlcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tT2JqZWN0ICh0aGF0LCBvYmopIHtcbiAgaWYgKGludGVybmFsSXNCdWZmZXIob2JqKSkge1xuICAgIHZhciBsZW4gPSBjaGVja2VkKG9iai5sZW5ndGgpIHwgMFxuICAgIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgbGVuKVxuXG4gICAgaWYgKHRoYXQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhhdFxuICAgIH1cblxuICAgIG9iai5jb3B5KHRoYXQsIDAsIDAsIGxlbilcbiAgICByZXR1cm4gdGhhdFxuICB9XG5cbiAgaWYgKG9iaikge1xuICAgIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICBvYmouYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHx8ICdsZW5ndGgnIGluIG9iaikge1xuICAgICAgaWYgKHR5cGVvZiBvYmoubGVuZ3RoICE9PSAnbnVtYmVyJyB8fCBpc25hbihvYmoubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIDApXG4gICAgICB9XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmopXG4gICAgfVxuXG4gICAgaWYgKG9iai50eXBlID09PSAnQnVmZmVyJyAmJiBpc0FycmF5KG9iai5kYXRhKSkge1xuICAgICAgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcignRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIGFycmF5LWxpa2Ugb2JqZWN0LicpXG59XG5cbmZ1bmN0aW9uIGNoZWNrZWQgKGxlbmd0aCkge1xuICAvLyBOb3RlOiBjYW5ub3QgdXNlIGBsZW5ndGggPCBrTWF4TGVuZ3RoKClgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCgpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgoKS50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2xvd0J1ZmZlciAobGVuZ3RoKSB7XG4gIGlmICgrbGVuZ3RoICE9IGxlbmd0aCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIGVxZXFlcVxuICAgIGxlbmd0aCA9IDBcbiAgfVxuICByZXR1cm4gQnVmZmVyLmFsbG9jKCtsZW5ndGgpXG59XG5CdWZmZXIuaXNCdWZmZXIgPSBpc0J1ZmZlcjtcbmZ1bmN0aW9uIGludGVybmFsSXNCdWZmZXIgKGIpIHtcbiAgcmV0dXJuICEhKGIgIT0gbnVsbCAmJiBiLl9pc0J1ZmZlcilcbn1cblxuQnVmZmVyLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChhLCBiKSB7XG4gIGlmICghaW50ZXJuYWxJc0J1ZmZlcihhKSB8fCAhaW50ZXJuYWxJc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IE1hdGgubWluKHgsIHkpOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkge1xuICAgICAgeCA9IGFbaV1cbiAgICAgIHkgPSBiW2ldXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdsYXRpbjEnOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdCAobGlzdCwgbGVuZ3RoKSB7XG4gIGlmICghaXNBcnJheShsaXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gIH1cblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgIHZhciBidWYgPSBsaXN0W2ldXG4gICAgaWYgKCFpbnRlcm5hbElzQnVmZmVyKGJ1ZikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gICAgfVxuICAgIGJ1Zi5jb3B5KGJ1ZmZlciwgcG9zKVxuICAgIHBvcyArPSBidWYubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZmZlclxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmIChpbnRlcm5hbElzQnVmZmVyKHN0cmluZykpIHtcbiAgICByZXR1cm4gc3RyaW5nLmxlbmd0aFxuICB9XG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXcgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIChBcnJheUJ1ZmZlci5pc1ZpZXcoc3RyaW5nKSB8fCBzdHJpbmcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHtcbiAgICByZXR1cm4gc3RyaW5nLmJ5dGVMZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcbiAgICBzdHJpbmcgPSAnJyArIHN0cmluZ1xuICB9XG5cbiAgdmFyIGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBVc2UgYSBmb3IgbG9vcCB0byBhdm9pZCByZWN1cnNpb25cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGVuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cbkJ1ZmZlci5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuXG5mdW5jdGlvbiBzbG93VG9TdHJpbmcgKGVuY29kaW5nLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG5cbiAgLy8gTm8gbmVlZCB0byB2ZXJpZnkgdGhhdCBcInRoaXMubGVuZ3RoIDw9IE1BWF9VSU5UMzJcIiBzaW5jZSBpdCdzIGEgcmVhZC1vbmx5XG4gIC8vIHByb3BlcnR5IG9mIGEgdHlwZWQgYXJyYXkuXG5cbiAgLy8gVGhpcyBiZWhhdmVzIG5laXRoZXIgbGlrZSBTdHJpbmcgbm9yIFVpbnQ4QXJyYXkgaW4gdGhhdCB3ZSBzZXQgc3RhcnQvZW5kXG4gIC8vIHRvIHRoZWlyIHVwcGVyL2xvd2VyIGJvdW5kcyBpZiB0aGUgdmFsdWUgcGFzc2VkIGlzIG91dCBvZiByYW5nZS5cbiAgLy8gdW5kZWZpbmVkIGlzIGhhbmRsZWQgc3BlY2lhbGx5IGFzIHBlciBFQ01BLTI2MiA2dGggRWRpdGlvbixcbiAgLy8gU2VjdGlvbiAxMy4zLjMuNyBSdW50aW1lIFNlbWFudGljczogS2V5ZWRCaW5kaW5nSW5pdGlhbGl6YXRpb24uXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkIHx8IHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ID0gMFxuICB9XG4gIC8vIFJldHVybiBlYXJseSBpZiBzdGFydCA+IHRoaXMubGVuZ3RoLiBEb25lIGhlcmUgdG8gcHJldmVudCBwb3RlbnRpYWwgdWludDMyXG4gIC8vIGNvZXJjaW9uIGZhaWwgYmVsb3cuXG4gIGlmIChzdGFydCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKGVuZCA8PSAwKSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICAvLyBGb3JjZSBjb2Vyc2lvbiB0byB1aW50MzIuIFRoaXMgd2lsbCBhbHNvIGNvZXJjZSBmYWxzZXkvTmFOIHZhbHVlcyB0byAwLlxuICBlbmQgPj4+PSAwXG4gIHN0YXJ0ID4+Pj0gMFxuXG4gIGlmIChlbmQgPD0gc3RhcnQpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxhdGluMVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9IChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgcHJvcGVydHkgaXMgdXNlZCBieSBgQnVmZmVyLmlzQnVmZmVyYCBhbmQgYGlzLWJ1ZmZlcmAgKGluIFNhZmFyaSA1LTcpIHRvIGRldGVjdFxuLy8gQnVmZmVyIGluc3RhbmNlcy5cbkJ1ZmZlci5wcm90b3R5cGUuX2lzQnVmZmVyID0gdHJ1ZVxuXG5mdW5jdGlvbiBzd2FwIChiLCBuLCBtKSB7XG4gIHZhciBpID0gYltuXVxuICBiW25dID0gYlttXVxuICBiW21dID0gaVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXAxNiA9IGZ1bmN0aW9uIHN3YXAxNiAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgMiAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gMikge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDEpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMzIgPSBmdW5jdGlvbiBzd2FwMzIgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDQgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAzKVxuICAgIHN3YXAodGhpcywgaSArIDEsIGkgKyAyKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDY0ID0gZnVuY3Rpb24gc3dhcDY0ICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA4ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA4KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgNylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgNilcbiAgICBzd2FwKHRoaXMsIGkgKyAyLCBpICsgNSlcbiAgICBzd2FwKHRoaXMsIGkgKyAzLCBpICsgNClcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKCkge1xuICB2YXIgbGVuZ3RoID0gdGhpcy5sZW5ndGggfCAwXG4gIGlmIChsZW5ndGggPT09IDApIHJldHVybiAnJ1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCAwLCBsZW5ndGgpXG4gIHJldHVybiBzbG93VG9TdHJpbmcuYXBwbHkodGhpcywgYXJndW1lbnRzKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uIGVxdWFscyAoYikge1xuICBpZiAoIWludGVybmFsSXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IElOU1BFQ1RfTUFYX0JZVEVTXG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBzdHIgPSB0aGlzLnRvU3RyaW5nKCdoZXgnLCAwLCBtYXgpLm1hdGNoKC8uezJ9L2cpLmpvaW4oJyAnKVxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG1heCkgc3RyICs9ICcgLi4uICdcbiAgfVxuICByZXR1cm4gJzxCdWZmZXIgJyArIHN0ciArICc+J1xufVxuXG5CdWZmZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlICh0YXJnZXQsIHN0YXJ0LCBlbmQsIHRoaXNTdGFydCwgdGhpc0VuZCkge1xuICBpZiAoIWludGVybmFsSXNCdWZmZXIodGFyZ2V0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICB9XG5cbiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICBpZiAoZW5kID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmQgPSB0YXJnZXQgPyB0YXJnZXQubGVuZ3RoIDogMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNTdGFydCA9IDBcbiAgfVxuICBpZiAodGhpc0VuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpc0VuZCA9IHRoaXMubGVuZ3RoXG4gIH1cblxuICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRhcmdldC5sZW5ndGggfHwgdGhpc1N0YXJ0IDwgMCB8fCB0aGlzRW5kID4gdGhpcy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb3V0IG9mIHJhbmdlIGluZGV4JylcbiAgfVxuXG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCAmJiBzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChzdGFydCA+PSBlbmQpIHtcbiAgICByZXR1cm4gMVxuICB9XG5cbiAgc3RhcnQgPj4+PSAwXG4gIGVuZCA+Pj49IDBcbiAgdGhpc1N0YXJ0ID4+Pj0gMFxuICB0aGlzRW5kID4+Pj0gMFxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQpIHJldHVybiAwXG5cbiAgdmFyIHggPSB0aGlzRW5kIC0gdGhpc1N0YXJ0XG4gIHZhciB5ID0gZW5kIC0gc3RhcnRcbiAgdmFyIGxlbiA9IE1hdGgubWluKHgsIHkpXG5cbiAgdmFyIHRoaXNDb3B5ID0gdGhpcy5zbGljZSh0aGlzU3RhcnQsIHRoaXNFbmQpXG4gIHZhciB0YXJnZXRDb3B5ID0gdGFyZ2V0LnNsaWNlKHN0YXJ0LCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgIGlmICh0aGlzQ29weVtpXSAhPT0gdGFyZ2V0Q29weVtpXSkge1xuICAgICAgeCA9IHRoaXNDb3B5W2ldXG4gICAgICB5ID0gdGFyZ2V0Q29weVtpXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbi8vIEZpbmRzIGVpdGhlciB0aGUgZmlyc3QgaW5kZXggb2YgYHZhbGAgaW4gYGJ1ZmZlcmAgYXQgb2Zmc2V0ID49IGBieXRlT2Zmc2V0YCxcbi8vIE9SIHRoZSBsYXN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA8PSBgYnl0ZU9mZnNldGAuXG4vL1xuLy8gQXJndW1lbnRzOlxuLy8gLSBidWZmZXIgLSBhIEJ1ZmZlciB0byBzZWFyY2hcbi8vIC0gdmFsIC0gYSBzdHJpbmcsIEJ1ZmZlciwgb3IgbnVtYmVyXG4vLyAtIGJ5dGVPZmZzZXQgLSBhbiBpbmRleCBpbnRvIGBidWZmZXJgOyB3aWxsIGJlIGNsYW1wZWQgdG8gYW4gaW50MzJcbi8vIC0gZW5jb2RpbmcgLSBhbiBvcHRpb25hbCBlbmNvZGluZywgcmVsZXZhbnQgaXMgdmFsIGlzIGEgc3RyaW5nXG4vLyAtIGRpciAtIHRydWUgZm9yIGluZGV4T2YsIGZhbHNlIGZvciBsYXN0SW5kZXhPZlxuZnVuY3Rpb24gYmlkaXJlY3Rpb25hbEluZGV4T2YgKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIC8vIEVtcHR5IGJ1ZmZlciBtZWFucyBubyBtYXRjaFxuICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xXG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXRcbiAgaWYgKHR5cGVvZiBieXRlT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gYnl0ZU9mZnNldFxuICAgIGJ5dGVPZmZzZXQgPSAwXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIHtcbiAgICBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAtMHg4MDAwMDAwMCkge1xuICAgIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICB9XG4gIGJ5dGVPZmZzZXQgPSArYnl0ZU9mZnNldCAgLy8gQ29lcmNlIHRvIE51bWJlci5cbiAgaWYgKGlzTmFOKGJ5dGVPZmZzZXQpKSB7XG4gICAgLy8gYnl0ZU9mZnNldDogaXQgaXQncyB1bmRlZmluZWQsIG51bGwsIE5hTiwgXCJmb29cIiwgZXRjLCBzZWFyY2ggd2hvbGUgYnVmZmVyXG4gICAgYnl0ZU9mZnNldCA9IGRpciA/IDAgOiAoYnVmZmVyLmxlbmd0aCAtIDEpXG4gIH1cblxuICAvLyBOb3JtYWxpemUgYnl0ZU9mZnNldDogbmVnYXRpdmUgb2Zmc2V0cyBzdGFydCBmcm9tIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlclxuICBpZiAoYnl0ZU9mZnNldCA8IDApIGJ5dGVPZmZzZXQgPSBidWZmZXIubGVuZ3RoICsgYnl0ZU9mZnNldFxuICBpZiAoYnl0ZU9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgaWYgKGRpcikgcmV0dXJuIC0xXG4gICAgZWxzZSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCAtIDFcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgMCkge1xuICAgIGlmIChkaXIpIGJ5dGVPZmZzZXQgPSAwXG4gICAgZWxzZSByZXR1cm4gLTFcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSB2YWxcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFsID0gQnVmZmVyLmZyb20odmFsLCBlbmNvZGluZylcbiAgfVxuXG4gIC8vIEZpbmFsbHksIHNlYXJjaCBlaXRoZXIgaW5kZXhPZiAoaWYgZGlyIGlzIHRydWUpIG9yIGxhc3RJbmRleE9mXG4gIGlmIChpbnRlcm5hbElzQnVmZmVyKHZhbCkpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZy9idWZmZXIgYWx3YXlzIGZhaWxzXG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMHhGRiAvLyBTZWFyY2ggZm9yIGEgYnl0ZSB2YWx1ZSBbMC0yNTVdXG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmXG4gICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoZGlyKSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIFsgdmFsIF0sIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG5mdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIHZhciBpbmRleFNpemUgPSAxXG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoXG4gIHZhciB2YWxMZW5ndGggPSB2YWwubGVuZ3RoXG5cbiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9IFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgIGlmIChlbmNvZGluZyA9PT0gJ3VjczInIHx8IGVuY29kaW5nID09PSAndWNzLTInIHx8XG4gICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHtcbiAgICAgIGlmIChhcnIubGVuZ3RoIDwgMiB8fCB2YWwubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH1cbiAgICAgIGluZGV4U2l6ZSA9IDJcbiAgICAgIGFyckxlbmd0aCAvPSAyXG4gICAgICB2YWxMZW5ndGggLz0gMlxuICAgICAgYnl0ZU9mZnNldCAvPSAyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZCAoYnVmLCBpKSB7XG4gICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGJ1ZltpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKVxuICAgIH1cbiAgfVxuXG4gIHZhciBpXG4gIGlmIChkaXIpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA8IGFyckxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmVhZChhcnIsIGkpID09PSByZWFkKHZhbCwgZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXgpKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsTGVuZ3RoKSByZXR1cm4gZm91bmRJbmRleCAqIGluZGV4U2l6ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoYnl0ZU9mZnNldCArIHZhbExlbmd0aCA+IGFyckxlbmd0aCkgYnl0ZU9mZnNldCA9IGFyckxlbmd0aCAtIHZhbExlbmd0aFxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgZm91bmQgPSB0cnVlXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbExlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gaVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaW5kZXhPZih2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSAhPT0gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgdHJ1ZSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9IGZ1bmN0aW9uIGxhc3RJbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSlcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuIGlcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGxhdGluMVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQnXG4gICAgKVxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuICB2YXIgcmVzID0gW11cblxuICB2YXIgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgdmFyIGZpcnN0Qnl0ZSA9IGJ1ZltpXVxuICAgIHZhciBjb2RlUG9pbnQgPSBudWxsXG4gICAgdmFyIGJ5dGVzUGVyU2VxdWVuY2UgPSAoZmlyc3RCeXRlID4gMHhFRikgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKSA/IDNcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMlxuICAgICAgOiAxXG5cbiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7XG4gICAgICB2YXIgc2Vjb25kQnl0ZSwgdGhpcmRCeXRlLCBmb3VydGhCeXRlLCB0ZW1wQ29kZVBvaW50XG5cbiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0YpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHhDIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAodGhpcmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RkYgJiYgKHRlbXBDb2RlUG9pbnQgPCAweEQ4MDAgfHwgdGVtcENvZGVQb2ludCA+IDB4REZGRikpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgZm91cnRoQnl0ZSA9IGJ1ZltpICsgM11cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKGZvdXJ0aEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4RkZGRiAmJiB0ZW1wQ29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29kZVBvaW50ID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhXG4gICAgICAvLyByZXBsYWNlbWVudCBjaGFyIChVK0ZGRkQpIGFuZCBhZHZhbmNlIG9ubHkgMSBieXRlXG4gICAgICBjb2RlUG9pbnQgPSAweEZGRkRcbiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPiAweEZGRkYpIHtcbiAgICAgIC8vIGVuY29kZSB0byB1dGYxNiAoc3Vycm9nYXRlIHBhaXIgZGFuY2UpXG4gICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgcmVzLnB1c2goY29kZVBvaW50ID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKVxuICAgICAgY29kZVBvaW50ID0gMHhEQzAwIHwgY29kZVBvaW50ICYgMHgzRkZcbiAgICB9XG5cbiAgICByZXMucHVzaChjb2RlUG9pbnQpXG4gICAgaSArPSBieXRlc1BlclNlcXVlbmNlXG4gIH1cblxuICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcylcbn1cblxuLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoXG4vLyB0aGUgbG93ZXN0IGxpbWl0IGlzIENocm9tZSwgd2l0aCAweDEwMDAwIGFyZ3MuXG4vLyBXZSBnbyAxIG1hZ25pdHVkZSBsZXNzLCBmb3Igc2FmZXR5XG52YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDBcblxuZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5IChjb2RlUG9pbnRzKSB7XG4gIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIHZhciByZXMgPSAnJ1xuICB2YXIgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBsYXRpbjFTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKVxuICAgIG5ld0J1Zi5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgKytpKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghaW50ZXJuYWxJc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZmZlclwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKVxuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlVUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIG1heEJ5dGVzID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpIC0gMVxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG1heEJ5dGVzLCAwKVxuICB9XG5cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlVUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIG1heEJ5dGVzID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpIC0gMVxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG1heEJ5dGVzLCAwKVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVVSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweGZmLCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDE2IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDIpOyBpIDwgajsgKytpKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlICYgKDB4ZmYgPDwgKDggKiAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSkpKSA+Pj5cbiAgICAgIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpICogOFxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDMyIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCA0KTsgaSA8IGo7ICsraSkge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSA+Pj4gKGxpdHRsZUVuZGlhbiA/IGkgOiAzIC0gaSkgKiA4KSAmIDB4ZmZcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSAwXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSAtIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSArIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG4gIGlmIChvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG9hdCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCAyMywgNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiB3cml0ZURvdWJsZSAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA4LCAxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCwgLTEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KVxuICByZXR1cm4gb2Zmc2V0ICsgOFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkgKHRhcmdldCwgdGFyZ2V0U3RhcnQsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kICYmIGVuZCAhPT0gMCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldFN0YXJ0ID49IHRhcmdldC5sZW5ndGgpIHRhcmdldFN0YXJ0ID0gdGFyZ2V0Lmxlbmd0aFxuICBpZiAoIXRhcmdldFN0YXJ0KSB0YXJnZXRTdGFydCA9IDBcbiAgaWYgKGVuZCA+IDAgJiYgZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgLy8gQ29weSAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm4gMFxuICBpZiAodGFyZ2V0Lmxlbmd0aCA9PT0gMCB8fCB0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBGYXRhbCBlcnJvciBjb25kaXRpb25zXG4gIGlmICh0YXJnZXRTdGFydCA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIH1cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZVN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkge1xuICAgIGVuZCA9IHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCArIHN0YXJ0XG4gIH1cblxuICB2YXIgbGVuID0gZW5kIC0gc3RhcnRcbiAgdmFyIGlcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0ICYmIHN0YXJ0IDwgdGFyZ2V0U3RhcnQgJiYgdGFyZ2V0U3RhcnQgPCBlbmQpIHtcbiAgICAvLyBkZXNjZW5kaW5nIGNvcHkgZnJvbSBlbmRcbiAgICBmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSBpZiAobGVuIDwgMTAwMCB8fCAhQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAvLyBhc2NlbmRpbmcgY29weSBmcm9tIHN0YXJ0XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChcbiAgICAgIHRhcmdldCxcbiAgICAgIHRoaXMuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ICsgbGVuKSxcbiAgICAgIHRhcmdldFN0YXJ0XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGxlblxufVxuXG4vLyBVc2FnZTpcbi8vICAgIGJ1ZmZlci5maWxsKG51bWJlclssIG9mZnNldFssIGVuZF1dKVxuLy8gICAgYnVmZmVyLmZpbGwoYnVmZmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChzdHJpbmdbLCBvZmZzZXRbLCBlbmRdXVssIGVuY29kaW5nXSlcbkJ1ZmZlci5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uIGZpbGwgKHZhbCwgc3RhcnQsIGVuZCwgZW5jb2RpbmcpIHtcbiAgLy8gSGFuZGxlIHN0cmluZyBjYXNlczpcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHR5cGVvZiBzdGFydCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gc3RhcnRcbiAgICAgIHN0YXJ0ID0gMFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IGVuZFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDEpIHtcbiAgICAgIHZhciBjb2RlID0gdmFsLmNoYXJDb2RlQXQoMClcbiAgICAgIGlmIChjb2RlIDwgMjU2KSB7XG4gICAgICAgIHZhbCA9IGNvZGVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnICYmICFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAyNTVcbiAgfVxuXG4gIC8vIEludmFsaWQgcmFuZ2VzIGFyZSBub3Qgc2V0IHRvIGEgZGVmYXVsdCwgc28gY2FuIHJhbmdlIGNoZWNrIGVhcmx5LlxuICBpZiAoc3RhcnQgPCAwIHx8IHRoaXMubGVuZ3RoIDwgc3RhcnQgfHwgdGhpcy5sZW5ndGggPCBlbmQpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignT3V0IG9mIHJhbmdlIGluZGV4JylcbiAgfVxuXG4gIGlmIChlbmQgPD0gc3RhcnQpIHtcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc3RhcnQgPSBzdGFydCA+Pj4gMFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IHRoaXMubGVuZ3RoIDogZW5kID4+PiAwXG5cbiAgaWYgKCF2YWwpIHZhbCA9IDBcblxuICB2YXIgaVxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgICB0aGlzW2ldID0gdmFsXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBieXRlcyA9IGludGVybmFsSXNCdWZmZXIodmFsKVxuICAgICAgPyB2YWxcbiAgICAgIDogdXRmOFRvQnl0ZXMobmV3IEJ1ZmZlcih2YWwsIGVuY29kaW5nKS50b1N0cmluZygpKVxuICAgIHZhciBsZW4gPSBieXRlcy5sZW5ndGhcbiAgICBmb3IgKGkgPSAwOyBpIDwgZW5kIC0gc3RhcnQ7ICsraSkge1xuICAgICAgdGhpc1tpICsgc3RhcnRdID0gYnl0ZXNbaSAlIGxlbl1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpc1xufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbnZhciBJTlZBTElEX0JBU0U2NF9SRSA9IC9bXitcXC8wLTlBLVphLXotX10vZ1xuXG5mdW5jdGlvbiBiYXNlNjRjbGVhbiAoc3RyKSB7XG4gIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcXG4gYW5kIFxcdCBmcm9tIHRoZSBzdHJpbmcsIGJhc2U2NC1qcyBkb2VzIG5vdFxuICBzdHIgPSBzdHJpbmd0cmltKHN0cikucmVwbGFjZShJTlZBTElEX0JBU0U2NF9SRSwgJycpXG4gIC8vIE5vZGUgY29udmVydHMgc3RyaW5ncyB3aXRoIGxlbmd0aCA8IDIgdG8gJydcbiAgaWYgKHN0ci5sZW5ndGggPCAyKSByZXR1cm4gJydcbiAgLy8gTm9kZSBhbGxvd3MgZm9yIG5vbi1wYWRkZWQgYmFzZTY0IHN0cmluZ3MgKG1pc3NpbmcgdHJhaWxpbmcgPT09KSwgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHdoaWxlIChzdHIubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHN0ciA9IHN0ciArICc9J1xuICB9XG4gIHJldHVybiBzdHJcbn1cblxuZnVuY3Rpb24gc3RyaW5ndHJpbSAoc3RyKSB7XG4gIGlmIChzdHIudHJpbSkgcmV0dXJuIHN0ci50cmltKClcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJylcbn1cblxuZnVuY3Rpb24gdG9IZXggKG4pIHtcbiAgaWYgKG4gPCAxNikgcmV0dXJuICcwJyArIG4udG9TdHJpbmcoMTYpXG4gIHJldHVybiBuLnRvU3RyaW5nKDE2KVxufVxuXG5mdW5jdGlvbiB1dGY4VG9CeXRlcyAoc3RyaW5nLCB1bml0cykge1xuICB1bml0cyA9IHVuaXRzIHx8IEluZmluaXR5XG4gIHZhciBjb2RlUG9pbnRcbiAgdmFyIGxlbmd0aCA9IHN0cmluZy5sZW5ndGhcbiAgdmFyIGxlYWRTdXJyb2dhdGUgPSBudWxsXG4gIHZhciBieXRlcyA9IFtdXG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoIWxlYWRTdXJyb2dhdGUpIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcbiAgICAgICAgaWYgKGNvZGVQb2ludCA+IDB4REJGRikge1xuICAgICAgICAgIC8vIHVuZXhwZWN0ZWQgdHJhaWxcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2UgaWYgKGkgKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIDIgbGVhZHMgaW4gYSByb3dcbiAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXJcbiAgICAgIGNvZGVQb2ludCA9IChsZWFkU3Vycm9nYXRlIC0gMHhEODAwIDw8IDEwIHwgY29kZVBvaW50IC0gMHhEQzAwKSArIDB4MTAwMDBcbiAgICB9IGVsc2UgaWYgKGxlYWRTdXJyb2dhdGUpIHtcbiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgIH1cblxuICAgIGxlYWRTdXJyb2dhdGUgPSBudWxsXG5cbiAgICAvLyBlbmNvZGUgdXRmOFxuICAgIGlmIChjb2RlUG9pbnQgPCAweDgwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDEpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHg4MDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiB8IDB4QzAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDMpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgfCAweEUwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDExMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHgxMiB8IDB4RjAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzXG59XG5cbmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7XG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIC8vIE5vZGUncyBjb2RlIHNlZW1zIHRvIGJlIGRvaW5nIHRoaXMgYW5kIG5vdCAmIDB4N0YuLlxuICAgIGJ5dGVBcnJheS5wdXNoKHN0ci5jaGFyQ29kZUF0KGkpICYgMHhGRilcbiAgfVxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzIChzdHIsIHVuaXRzKSB7XG4gIHZhciBjLCBoaSwgbG9cbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG5cbiAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSlcbiAgICBoaSA9IGMgPj4gOFxuICAgIGxvID0gYyAlIDI1NlxuICAgIGJ5dGVBcnJheS5wdXNoKGxvKVxuICAgIGJ5dGVBcnJheS5wdXNoKGhpKVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5cbmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikge1xuICByZXR1cm4gYmFzZTY0LnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKHN0cikpXG59XG5cbmZ1bmN0aW9uIGJsaXRCdWZmZXIgKHNyYywgZHN0LCBvZmZzZXQsIGxlbmd0aCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVha1xuICAgIGRzdFtpICsgb2Zmc2V0XSA9IHNyY1tpXVxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIGlzbmFuICh2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPT0gdmFsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2VsZi1jb21wYXJlXG59XG5cblxuLy8gdGhlIGZvbGxvd2luZyBpcyBmcm9tIGlzLWJ1ZmZlciwgYWxzbyBieSBGZXJvc3MgQWJvdWtoYWRpamVoIGFuZCB3aXRoIHNhbWUgbGlzZW5jZVxuLy8gVGhlIF9pc0J1ZmZlciBjaGVjayBpcyBmb3IgU2FmYXJpIDUtNyBzdXBwb3J0LCBiZWNhdXNlIGl0J3MgbWlzc2luZ1xuLy8gT2JqZWN0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseVxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKCEhb2JqLl9pc0J1ZmZlciB8fCBpc0Zhc3RCdWZmZXIob2JqKSB8fCBpc1Nsb3dCdWZmZXIob2JqKSlcbn1cblxuZnVuY3Rpb24gaXNGYXN0QnVmZmVyIChvYmopIHtcbiAgcmV0dXJuICEhb2JqLmNvbnN0cnVjdG9yICYmIHR5cGVvZiBvYmouY29uc3RydWN0b3IuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiYgb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyKG9iailcbn1cblxuLy8gRm9yIE5vZGUgdjAuMTAgc3VwcG9ydC4gUmVtb3ZlIHRoaXMgZXZlbnR1YWxseS5cbmZ1bmN0aW9uIGlzU2xvd0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqLnJlYWRGbG9hdExFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmouc2xpY2UgPT09ICdmdW5jdGlvbicgJiYgaXNGYXN0QnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuLy8gYmFzZWQgb2ZmIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWZ1bmN0em9tYmllL25vZGUtcHJvY2Vzcy9ibG9iL21hc3Rlci9icm93c2VyLmpzXG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxudmFyIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dCA9IGRlZmF1bHRDbGVhclRpbWVvdXQ7XG5pZiAodHlwZW9mIGdsb2JhbC5zZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG59XG5pZiAodHlwZW9mIGdsb2JhbC5jbGVhclRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG59XG5cbmZ1bmN0aW9uIHJ1blRpbWVvdXQoZnVuKSB7XG4gICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIC8vIGlmIHNldFRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRTZXRUaW1lb3V0ID09PSBkZWZhdWx0U2V0VGltb3V0IHx8ICFjYWNoZWRTZXRUaW1lb3V0KSAmJiBzZXRUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfSBjYXRjaChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApO1xuICAgICAgICB9IGNhdGNoKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG5mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7XG4gICAgaWYgKGNhY2hlZENsZWFyVGltZW91dCA9PT0gY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIC8vIGlmIGNsZWFyVGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseVxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKG51bGwsIG1hcmtlcik7XG4gICAgICAgIH0gY2F0Y2ggKGUpe1xuICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuXG4gICAgICAgICAgICAvLyBTb21lIHZlcnNpb25zIG9mIEkuRS4gaGF2ZSBkaWZmZXJlbnQgcnVsZXMgZm9yIGNsZWFyVGltZW91dCB2cyBzZXRUaW1lb3V0XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwodGhpcywgbWFya2VyKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG52YXIgY3VycmVudFF1ZXVlO1xudmFyIHF1ZXVlSW5kZXggPSAtMTtcblxuZnVuY3Rpb24gY2xlYW5VcE5leHRUaWNrKCkge1xuICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgaWYgKGN1cnJlbnRRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgcXVldWUgPSBjdXJyZW50UXVldWUuY29uY2F0KHF1ZXVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgfVxuICAgIGlmIChxdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgZHJhaW5RdWV1ZSgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZHJhaW5RdWV1ZSgpIHtcbiAgICBpZiAoZHJhaW5pbmcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTtcbiAgICBkcmFpbmluZyA9IHRydWU7XG5cbiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIHdoaWxlKGxlbikge1xuICAgICAgICBjdXJyZW50UXVldWUgPSBxdWV1ZTtcbiAgICAgICAgcXVldWUgPSBbXTtcbiAgICAgICAgd2hpbGUgKCsrcXVldWVJbmRleCA8IGxlbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIHJ1bkNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBuZXh0VGljayhmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHJ1blRpbWVvdXQoZHJhaW5RdWV1ZSk7XG4gICAgfVxufVxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbmV4cG9ydCB2YXIgdGl0bGUgPSAnYnJvd3Nlcic7XG5leHBvcnQgdmFyIHBsYXRmb3JtID0gJ2Jyb3dzZXInO1xuZXhwb3J0IHZhciBicm93c2VyID0gdHJ1ZTtcbmV4cG9ydCB2YXIgZW52ID0ge307XG5leHBvcnQgdmFyIGFyZ3YgPSBbXTtcbmV4cG9ydCB2YXIgdmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xuZXhwb3J0IHZhciB2ZXJzaW9ucyA9IHt9O1xuZXhwb3J0IHZhciByZWxlYXNlID0ge307XG5leHBvcnQgdmFyIGNvbmZpZyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxuZXhwb3J0IHZhciBvbiA9IG5vb3A7XG5leHBvcnQgdmFyIGFkZExpc3RlbmVyID0gbm9vcDtcbmV4cG9ydCB2YXIgb25jZSA9IG5vb3A7XG5leHBvcnQgdmFyIG9mZiA9IG5vb3A7XG5leHBvcnQgdmFyIHJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbmV4cG9ydCB2YXIgcmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbmV4cG9ydCB2YXIgZW1pdCA9IG5vb3A7XG5cbmV4cG9ydCBmdW5jdGlvbiBiaW5kaW5nKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjd2QgKCkgeyByZXR1cm4gJy8nIH1cbmV4cG9ydCBmdW5jdGlvbiBjaGRpciAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5leHBvcnQgZnVuY3Rpb24gdW1hc2soKSB7IHJldHVybiAwOyB9XG5cbi8vIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2t1bWF2aXMvYnJvd3Nlci1wcm9jZXNzLWhydGltZS9ibG9iL21hc3Rlci9pbmRleC5qc1xudmFyIHBlcmZvcm1hbmNlID0gZ2xvYmFsLnBlcmZvcm1hbmNlIHx8IHt9XG52YXIgcGVyZm9ybWFuY2VOb3cgPVxuICBwZXJmb3JtYW5jZS5ub3cgICAgICAgIHx8XG4gIHBlcmZvcm1hbmNlLm1vek5vdyAgICAgfHxcbiAgcGVyZm9ybWFuY2UubXNOb3cgICAgICB8fFxuICBwZXJmb3JtYW5jZS5vTm93ICAgICAgIHx8XG4gIHBlcmZvcm1hbmNlLndlYmtpdE5vdyAgfHxcbiAgZnVuY3Rpb24oKXsgcmV0dXJuIChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgfVxuXG4vLyBnZW5lcmF0ZSB0aW1lc3RhbXAgb3IgZGVsdGFcbi8vIHNlZSBodHRwOi8vbm9kZWpzLm9yZy9hcGkvcHJvY2Vzcy5odG1sI3Byb2Nlc3NfcHJvY2Vzc19ocnRpbWVcbmV4cG9ydCBmdW5jdGlvbiBocnRpbWUocHJldmlvdXNUaW1lc3RhbXApe1xuICB2YXIgY2xvY2t0aW1lID0gcGVyZm9ybWFuY2VOb3cuY2FsbChwZXJmb3JtYW5jZSkqMWUtM1xuICB2YXIgc2Vjb25kcyA9IE1hdGguZmxvb3IoY2xvY2t0aW1lKVxuICB2YXIgbmFub3NlY29uZHMgPSBNYXRoLmZsb29yKChjbG9ja3RpbWUlMSkqMWU5KVxuICBpZiAocHJldmlvdXNUaW1lc3RhbXApIHtcbiAgICBzZWNvbmRzID0gc2Vjb25kcyAtIHByZXZpb3VzVGltZXN0YW1wWzBdXG4gICAgbmFub3NlY29uZHMgPSBuYW5vc2Vjb25kcyAtIHByZXZpb3VzVGltZXN0YW1wWzFdXG4gICAgaWYgKG5hbm9zZWNvbmRzPDApIHtcbiAgICAgIHNlY29uZHMtLVxuICAgICAgbmFub3NlY29uZHMgKz0gMWU5XG4gICAgfVxuICB9XG4gIHJldHVybiBbc2Vjb25kcyxuYW5vc2Vjb25kc11cbn1cblxudmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCk7XG5leHBvcnQgZnVuY3Rpb24gdXB0aW1lKCkge1xuICB2YXIgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpO1xuICB2YXIgZGlmID0gY3VycmVudFRpbWUgLSBzdGFydFRpbWU7XG4gIHJldHVybiBkaWYgLyAxMDAwO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5leHRUaWNrOiBuZXh0VGljayxcbiAgdGl0bGU6IHRpdGxlLFxuICBicm93c2VyOiBicm93c2VyLFxuICBlbnY6IGVudixcbiAgYXJndjogYXJndixcbiAgdmVyc2lvbjogdmVyc2lvbixcbiAgdmVyc2lvbnM6IHZlcnNpb25zLFxuICBvbjogb24sXG4gIGFkZExpc3RlbmVyOiBhZGRMaXN0ZW5lcixcbiAgb25jZTogb25jZSxcbiAgb2ZmOiBvZmYsXG4gIHJlbW92ZUxpc3RlbmVyOiByZW1vdmVMaXN0ZW5lcixcbiAgcmVtb3ZlQWxsTGlzdGVuZXJzOiByZW1vdmVBbGxMaXN0ZW5lcnMsXG4gIGVtaXQ6IGVtaXQsXG4gIGJpbmRpbmc6IGJpbmRpbmcsXG4gIGN3ZDogY3dkLFxuICBjaGRpcjogY2hkaXIsXG4gIHVtYXNrOiB1bWFzayxcbiAgaHJ0aW1lOiBocnRpbWUsXG4gIHBsYXRmb3JtOiBwbGF0Zm9ybSxcbiAgcmVsZWFzZTogcmVsZWFzZSxcbiAgY29uZmlnOiBjb25maWcsXG4gIHVwdGltZTogdXB0aW1lXG59O1xuIiwiXG52YXIgaW5oZXJpdHM7XG5pZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpe1xuICBpbmhlcml0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59IGVsc2Uge1xuICBpbmhlcml0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICB9XG59XG5leHBvcnQgZGVmYXVsdCBpbmhlcml0cztcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuaW1wb3J0IHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG52YXIgZm9ybWF0UmVnRXhwID0gLyVbc2RqJV0vZztcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXQoZikge1xuICBpZiAoIWlzU3RyaW5nKGYpKSB7XG4gICAgdmFyIG9iamVjdHMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgb2JqZWN0cy5wdXNoKGluc3BlY3QoYXJndW1lbnRzW2ldKSk7XG4gICAgfVxuICAgIHJldHVybiBvYmplY3RzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHZhciBpID0gMTtcbiAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gIHZhciBsZW4gPSBhcmdzLmxlbmd0aDtcbiAgdmFyIHN0ciA9IFN0cmluZyhmKS5yZXBsYWNlKGZvcm1hdFJlZ0V4cCwgZnVuY3Rpb24oeCkge1xuICAgIGlmICh4ID09PSAnJSUnKSByZXR1cm4gJyUnO1xuICAgIGlmIChpID49IGxlbikgcmV0dXJuIHg7XG4gICAgc3dpdGNoICh4KSB7XG4gICAgICBjYXNlICclcyc6IHJldHVybiBTdHJpbmcoYXJnc1tpKytdKTtcbiAgICAgIGNhc2UgJyVkJzogcmV0dXJuIE51bWJlcihhcmdzW2krK10pO1xuICAgICAgY2FzZSAnJWonOlxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pO1xuICAgICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcbiAgICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuICB9KTtcbiAgZm9yICh2YXIgeCA9IGFyZ3NbaV07IGkgPCBsZW47IHggPSBhcmdzWysraV0pIHtcbiAgICBpZiAoaXNOdWxsKHgpIHx8ICFpc09iamVjdCh4KSkge1xuICAgICAgc3RyICs9ICcgJyArIHg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ciArPSAnICcgKyBpbnNwZWN0KHgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc3RyO1xufTtcblxuXG4vLyBNYXJrIHRoYXQgYSBtZXRob2Qgc2hvdWxkIG5vdCBiZSB1c2VkLlxuLy8gUmV0dXJucyBhIG1vZGlmaWVkIGZ1bmN0aW9uIHdoaWNoIHdhcm5zIG9uY2UgYnkgZGVmYXVsdC5cbi8vIElmIC0tbm8tZGVwcmVjYXRpb24gaXMgc2V0LCB0aGVuIGl0IGlzIGEgbm8tb3AuXG5leHBvcnQgZnVuY3Rpb24gZGVwcmVjYXRlKGZuLCBtc2cpIHtcbiAgLy8gQWxsb3cgZm9yIGRlcHJlY2F0aW5nIHRoaW5ncyBpbiB0aGUgcHJvY2VzcyBvZiBzdGFydGluZyB1cC5cbiAgaWYgKGlzVW5kZWZpbmVkKGdsb2JhbC5wcm9jZXNzKSkge1xuICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiBkZXByZWNhdGUoZm4sIG1zZykuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9XG5cbiAgaWYgKHByb2Nlc3Mubm9EZXByZWNhdGlvbiA9PT0gdHJ1ZSkge1xuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIHZhciB3YXJuZWQgPSBmYWxzZTtcbiAgZnVuY3Rpb24gZGVwcmVjYXRlZCgpIHtcbiAgICBpZiAoIXdhcm5lZCkge1xuICAgICAgaWYgKHByb2Nlc3MudGhyb3dEZXByZWNhdGlvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy50cmFjZURlcHJlY2F0aW9uKSB7XG4gICAgICAgIGNvbnNvbGUudHJhY2UobXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IobXNnKTtcbiAgICAgIH1cbiAgICAgIHdhcm5lZCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgcmV0dXJuIGRlcHJlY2F0ZWQ7XG59O1xuXG5cbnZhciBkZWJ1Z3MgPSB7fTtcbnZhciBkZWJ1Z0Vudmlyb247XG5leHBvcnQgZnVuY3Rpb24gZGVidWdsb2coc2V0KSB7XG4gIGlmIChpc1VuZGVmaW5lZChkZWJ1Z0Vudmlyb24pKVxuICAgIGRlYnVnRW52aXJvbiA9IHByb2Nlc3MuZW52Lk5PREVfREVCVUcgfHwgJyc7XG4gIHNldCA9IHNldC50b1VwcGVyQ2FzZSgpO1xuICBpZiAoIWRlYnVnc1tzZXRdKSB7XG4gICAgaWYgKG5ldyBSZWdFeHAoJ1xcXFxiJyArIHNldCArICdcXFxcYicsICdpJykudGVzdChkZWJ1Z0Vudmlyb24pKSB7XG4gICAgICB2YXIgcGlkID0gMDtcbiAgICAgIGRlYnVnc1tzZXRdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBtc2cgPSBmb3JtYXQuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignJXMgJWQ6ICVzJywgc2V0LCBwaWQsIG1zZyk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1Z3Nbc2V0XSA9IGZ1bmN0aW9uKCkge307XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWJ1Z3Nbc2V0XTtcbn07XG5cblxuLyoqXG4gKiBFY2hvcyB0aGUgdmFsdWUgb2YgYSB2YWx1ZS4gVHJ5cyB0byBwcmludCB0aGUgdmFsdWUgb3V0XG4gKiBpbiB0aGUgYmVzdCB3YXkgcG9zc2libGUgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIFRoZSBvYmplY3QgdG8gcHJpbnQgb3V0LlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QgdGhhdCBhbHRlcnMgdGhlIG91dHB1dC5cbiAqL1xuLyogbGVnYWN5OiBvYmosIHNob3dIaWRkZW4sIGRlcHRoLCBjb2xvcnMqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc3BlY3Qob2JqLCBvcHRzKSB7XG4gIC8vIGRlZmF1bHQgb3B0aW9uc1xuICB2YXIgY3R4ID0ge1xuICAgIHNlZW46IFtdLFxuICAgIHN0eWxpemU6IHN0eWxpemVOb0NvbG9yXG4gIH07XG4gIC8vIGxlZ2FjeS4uLlxuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+PSAzKSBjdHguZGVwdGggPSBhcmd1bWVudHNbMl07XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID49IDQpIGN0eC5jb2xvcnMgPSBhcmd1bWVudHNbM107XG4gIGlmIChpc0Jvb2xlYW4ob3B0cykpIHtcbiAgICAvLyBsZWdhY3kuLi5cbiAgICBjdHguc2hvd0hpZGRlbiA9IG9wdHM7XG4gIH0gZWxzZSBpZiAob3B0cykge1xuICAgIC8vIGdvdCBhbiBcIm9wdGlvbnNcIiBvYmplY3RcbiAgICBfZXh0ZW5kKGN0eCwgb3B0cyk7XG4gIH1cbiAgLy8gc2V0IGRlZmF1bHQgb3B0aW9uc1xuICBpZiAoaXNVbmRlZmluZWQoY3R4LnNob3dIaWRkZW4pKSBjdHguc2hvd0hpZGRlbiA9IGZhbHNlO1xuICBpZiAoaXNVbmRlZmluZWQoY3R4LmRlcHRoKSkgY3R4LmRlcHRoID0gMjtcbiAgaWYgKGlzVW5kZWZpbmVkKGN0eC5jb2xvcnMpKSBjdHguY29sb3JzID0gZmFsc2U7XG4gIGlmIChpc1VuZGVmaW5lZChjdHguY3VzdG9tSW5zcGVjdCkpIGN0eC5jdXN0b21JbnNwZWN0ID0gdHJ1ZTtcbiAgaWYgKGN0eC5jb2xvcnMpIGN0eC5zdHlsaXplID0gc3R5bGl6ZVdpdGhDb2xvcjtcbiAgcmV0dXJuIGZvcm1hdFZhbHVlKGN0eCwgb2JqLCBjdHguZGVwdGgpO1xufVxuXG4vLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FOU0lfZXNjYXBlX2NvZGUjZ3JhcGhpY3Ncbmluc3BlY3QuY29sb3JzID0ge1xuICAnYm9sZCcgOiBbMSwgMjJdLFxuICAnaXRhbGljJyA6IFszLCAyM10sXG4gICd1bmRlcmxpbmUnIDogWzQsIDI0XSxcbiAgJ2ludmVyc2UnIDogWzcsIDI3XSxcbiAgJ3doaXRlJyA6IFszNywgMzldLFxuICAnZ3JleScgOiBbOTAsIDM5XSxcbiAgJ2JsYWNrJyA6IFszMCwgMzldLFxuICAnYmx1ZScgOiBbMzQsIDM5XSxcbiAgJ2N5YW4nIDogWzM2LCAzOV0sXG4gICdncmVlbicgOiBbMzIsIDM5XSxcbiAgJ21hZ2VudGEnIDogWzM1LCAzOV0sXG4gICdyZWQnIDogWzMxLCAzOV0sXG4gICd5ZWxsb3cnIDogWzMzLCAzOV1cbn07XG5cbi8vIERvbid0IHVzZSAnYmx1ZScgbm90IHZpc2libGUgb24gY21kLmV4ZVxuaW5zcGVjdC5zdHlsZXMgPSB7XG4gICdzcGVjaWFsJzogJ2N5YW4nLFxuICAnbnVtYmVyJzogJ3llbGxvdycsXG4gICdib29sZWFuJzogJ3llbGxvdycsXG4gICd1bmRlZmluZWQnOiAnZ3JleScsXG4gICdudWxsJzogJ2JvbGQnLFxuICAnc3RyaW5nJzogJ2dyZWVuJyxcbiAgJ2RhdGUnOiAnbWFnZW50YScsXG4gIC8vIFwibmFtZVwiOiBpbnRlbnRpb25hbGx5IG5vdCBzdHlsaW5nXG4gICdyZWdleHAnOiAncmVkJ1xufTtcblxuXG5mdW5jdGlvbiBzdHlsaXplV2l0aENvbG9yKHN0ciwgc3R5bGVUeXBlKSB7XG4gIHZhciBzdHlsZSA9IGluc3BlY3Quc3R5bGVzW3N0eWxlVHlwZV07XG5cbiAgaWYgKHN0eWxlKSB7XG4gICAgcmV0dXJuICdcXHUwMDFiWycgKyBpbnNwZWN0LmNvbG9yc1tzdHlsZV1bMF0gKyAnbScgKyBzdHIgK1xuICAgICAgICAgICAnXFx1MDAxYlsnICsgaW5zcGVjdC5jb2xvcnNbc3R5bGVdWzFdICsgJ20nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBzdHlsaXplTm9Db2xvcihzdHIsIHN0eWxlVHlwZSkge1xuICByZXR1cm4gc3RyO1xufVxuXG5cbmZ1bmN0aW9uIGFycmF5VG9IYXNoKGFycmF5KSB7XG4gIHZhciBoYXNoID0ge307XG5cbiAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbih2YWwsIGlkeCkge1xuICAgIGhhc2hbdmFsXSA9IHRydWU7XG4gIH0pO1xuXG4gIHJldHVybiBoYXNoO1xufVxuXG5cbmZ1bmN0aW9uIGZvcm1hdFZhbHVlKGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcykge1xuICAvLyBQcm92aWRlIGEgaG9vayBmb3IgdXNlci1zcGVjaWZpZWQgaW5zcGVjdCBmdW5jdGlvbnMuXG4gIC8vIENoZWNrIHRoYXQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggYW4gaW5zcGVjdCBmdW5jdGlvbiBvbiBpdFxuICBpZiAoY3R4LmN1c3RvbUluc3BlY3QgJiZcbiAgICAgIHZhbHVlICYmXG4gICAgICBpc0Z1bmN0aW9uKHZhbHVlLmluc3BlY3QpICYmXG4gICAgICAvLyBGaWx0ZXIgb3V0IHRoZSB1dGlsIG1vZHVsZSwgaXQncyBpbnNwZWN0IGZ1bmN0aW9uIGlzIHNwZWNpYWxcbiAgICAgIHZhbHVlLmluc3BlY3QgIT09IGluc3BlY3QgJiZcbiAgICAgIC8vIEFsc28gZmlsdGVyIG91dCBhbnkgcHJvdG90eXBlIG9iamVjdHMgdXNpbmcgdGhlIGNpcmN1bGFyIGNoZWNrLlxuICAgICAgISh2YWx1ZS5jb25zdHJ1Y3RvciAmJiB2YWx1ZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgPT09IHZhbHVlKSkge1xuICAgIHZhciByZXQgPSB2YWx1ZS5pbnNwZWN0KHJlY3Vyc2VUaW1lcywgY3R4KTtcbiAgICBpZiAoIWlzU3RyaW5nKHJldCkpIHtcbiAgICAgIHJldCA9IGZvcm1hdFZhbHVlKGN0eCwgcmV0LCByZWN1cnNlVGltZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgLy8gUHJpbWl0aXZlIHR5cGVzIGNhbm5vdCBoYXZlIHByb3BlcnRpZXNcbiAgdmFyIHByaW1pdGl2ZSA9IGZvcm1hdFByaW1pdGl2ZShjdHgsIHZhbHVlKTtcbiAgaWYgKHByaW1pdGl2ZSkge1xuICAgIHJldHVybiBwcmltaXRpdmU7XG4gIH1cblxuICAvLyBMb29rIHVwIHRoZSBrZXlzIG9mIHRoZSBvYmplY3QuXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXModmFsdWUpO1xuICB2YXIgdmlzaWJsZUtleXMgPSBhcnJheVRvSGFzaChrZXlzKTtcblxuICBpZiAoY3R4LnNob3dIaWRkZW4pIHtcbiAgICBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsdWUpO1xuICB9XG5cbiAgLy8gSUUgZG9lc24ndCBtYWtlIGVycm9yIGZpZWxkcyBub24tZW51bWVyYWJsZVxuICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvZHd3NTJzYnQodj12cy45NCkuYXNweFxuICBpZiAoaXNFcnJvcih2YWx1ZSlcbiAgICAgICYmIChrZXlzLmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwIHx8IGtleXMuaW5kZXhPZignZGVzY3JpcHRpb24nKSA+PSAwKSkge1xuICAgIHJldHVybiBmb3JtYXRFcnJvcih2YWx1ZSk7XG4gIH1cblxuICAvLyBTb21lIHR5cGUgb2Ygb2JqZWN0IHdpdGhvdXQgcHJvcGVydGllcyBjYW4gYmUgc2hvcnRjdXR0ZWQuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkge1xuICAgICAgdmFyIG5hbWUgPSB2YWx1ZS5uYW1lID8gJzogJyArIHZhbHVlLm5hbWUgOiAnJztcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZSgnW0Z1bmN0aW9uJyArIG5hbWUgKyAnXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICAgIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBjdHguc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLCAncmVnZXhwJyk7XG4gICAgfVxuICAgIGlmIChpc0RhdGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSksICdkYXRlJyk7XG4gICAgfVxuICAgIGlmIChpc0Vycm9yKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdEVycm9yKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB2YXIgYmFzZSA9ICcnLCBhcnJheSA9IGZhbHNlLCBicmFjZXMgPSBbJ3snLCAnfSddO1xuXG4gIC8vIE1ha2UgQXJyYXkgc2F5IHRoYXQgdGhleSBhcmUgQXJyYXlcbiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgYXJyYXkgPSB0cnVlO1xuICAgIGJyYWNlcyA9IFsnWycsICddJ107XG4gIH1cblxuICAvLyBNYWtlIGZ1bmN0aW9ucyBzYXkgdGhhdCB0aGV5IGFyZSBmdW5jdGlvbnNcbiAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgdmFyIG4gPSB2YWx1ZS5uYW1lID8gJzogJyArIHZhbHVlLm5hbWUgOiAnJztcbiAgICBiYXNlID0gJyBbRnVuY3Rpb24nICsgbiArICddJztcbiAgfVxuXG4gIC8vIE1ha2UgUmVnRXhwcyBzYXkgdGhhdCB0aGV5IGFyZSBSZWdFeHBzXG4gIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHtcbiAgICBiYXNlID0gJyAnICsgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgfVxuXG4gIC8vIE1ha2UgZGF0ZXMgd2l0aCBwcm9wZXJ0aWVzIGZpcnN0IHNheSB0aGUgZGF0ZVxuICBpZiAoaXNEYXRlKHZhbHVlKSkge1xuICAgIGJhc2UgPSAnICcgKyBEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgfVxuXG4gIC8vIE1ha2UgZXJyb3Igd2l0aCBtZXNzYWdlIGZpcnN0IHNheSB0aGUgZXJyb3JcbiAgaWYgKGlzRXJyb3IodmFsdWUpKSB7XG4gICAgYmFzZSA9ICcgJyArIGZvcm1hdEVycm9yKHZhbHVlKTtcbiAgfVxuXG4gIGlmIChrZXlzLmxlbmd0aCA9PT0gMCAmJiAoIWFycmF5IHx8IHZhbHVlLmxlbmd0aCA9PSAwKSkge1xuICAgIHJldHVybiBicmFjZXNbMF0gKyBiYXNlICsgYnJhY2VzWzFdO1xuICB9XG5cbiAgaWYgKHJlY3Vyc2VUaW1lcyA8IDApIHtcbiAgICBpZiAoaXNSZWdFeHAodmFsdWUpKSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSwgJ3JlZ2V4cCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3R4LnN0eWxpemUoJ1tPYmplY3RdJywgJ3NwZWNpYWwnKTtcbiAgICB9XG4gIH1cblxuICBjdHguc2Vlbi5wdXNoKHZhbHVlKTtcblxuICB2YXIgb3V0cHV0O1xuICBpZiAoYXJyYXkpIHtcbiAgICBvdXRwdXQgPSBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKTtcbiAgfSBlbHNlIHtcbiAgICBvdXRwdXQgPSBrZXlzLm1hcChmdW5jdGlvbihrZXkpIHtcbiAgICAgIHJldHVybiBmb3JtYXRQcm9wZXJ0eShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXksIGFycmF5KTtcbiAgICB9KTtcbiAgfVxuXG4gIGN0eC5zZWVuLnBvcCgpO1xuXG4gIHJldHVybiByZWR1Y2VUb1NpbmdsZVN0cmluZyhvdXRwdXQsIGJhc2UsIGJyYWNlcyk7XG59XG5cblxuZnVuY3Rpb24gZm9ybWF0UHJpbWl0aXZlKGN0eCwgdmFsdWUpIHtcbiAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSlcbiAgICByZXR1cm4gY3R4LnN0eWxpemUoJ3VuZGVmaW5lZCcsICd1bmRlZmluZWQnKTtcbiAgaWYgKGlzU3RyaW5nKHZhbHVlKSkge1xuICAgIHZhciBzaW1wbGUgPSAnXFwnJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKS5yZXBsYWNlKC9eXCJ8XCIkL2csICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcXFxcIi9nLCAnXCInKSArICdcXCcnO1xuICAgIHJldHVybiBjdHguc3R5bGl6ZShzaW1wbGUsICdzdHJpbmcnKTtcbiAgfVxuICBpZiAoaXNOdW1iZXIodmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnJyArIHZhbHVlLCAnbnVtYmVyJyk7XG4gIGlmIChpc0Jvb2xlYW4odmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnJyArIHZhbHVlLCAnYm9vbGVhbicpO1xuICAvLyBGb3Igc29tZSByZWFzb24gdHlwZW9mIG51bGwgaXMgXCJvYmplY3RcIiwgc28gc3BlY2lhbCBjYXNlIGhlcmUuXG4gIGlmIChpc051bGwodmFsdWUpKVxuICAgIHJldHVybiBjdHguc3R5bGl6ZSgnbnVsbCcsICdudWxsJyk7XG59XG5cblxuZnVuY3Rpb24gZm9ybWF0RXJyb3IodmFsdWUpIHtcbiAgcmV0dXJuICdbJyArIEVycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSArICddJztcbn1cblxuXG5mdW5jdGlvbiBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKSB7XG4gIHZhciBvdXRwdXQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyArK2kpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkodmFsdWUsIFN0cmluZyhpKSkpIHtcbiAgICAgIG91dHB1dC5wdXNoKGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsXG4gICAgICAgICAgU3RyaW5nKGkpLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5wdXNoKCcnKTtcbiAgICB9XG4gIH1cbiAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgIGlmICgha2V5Lm1hdGNoKC9eXFxkKyQvKSkge1xuICAgICAgb3V0cHV0LnB1c2goZm9ybWF0UHJvcGVydHkoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzLCB2aXNpYmxlS2V5cyxcbiAgICAgICAgICBrZXksIHRydWUpKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb3V0cHV0O1xufVxuXG5cbmZ1bmN0aW9uIGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleSwgYXJyYXkpIHtcbiAgdmFyIG5hbWUsIHN0ciwgZGVzYztcbiAgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodmFsdWUsIGtleSkgfHwgeyB2YWx1ZTogdmFsdWVba2V5XSB9O1xuICBpZiAoZGVzYy5nZXQpIHtcbiAgICBpZiAoZGVzYy5zZXQpIHtcbiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbR2V0dGVyL1NldHRlcl0nLCAnc3BlY2lhbCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHIgPSBjdHguc3R5bGl6ZSgnW0dldHRlcl0nLCAnc3BlY2lhbCcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoZGVzYy5zZXQpIHtcbiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbU2V0dGVyXScsICdzcGVjaWFsJyk7XG4gICAgfVxuICB9XG4gIGlmICghaGFzT3duUHJvcGVydHkodmlzaWJsZUtleXMsIGtleSkpIHtcbiAgICBuYW1lID0gJ1snICsga2V5ICsgJ10nO1xuICB9XG4gIGlmICghc3RyKSB7XG4gICAgaWYgKGN0eC5zZWVuLmluZGV4T2YoZGVzYy52YWx1ZSkgPCAwKSB7XG4gICAgICBpZiAoaXNOdWxsKHJlY3Vyc2VUaW1lcykpIHtcbiAgICAgICAgc3RyID0gZm9ybWF0VmFsdWUoY3R4LCBkZXNjLnZhbHVlLCBudWxsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0ciA9IGZvcm1hdFZhbHVlKGN0eCwgZGVzYy52YWx1ZSwgcmVjdXJzZVRpbWVzIC0gMSk7XG4gICAgICB9XG4gICAgICBpZiAoc3RyLmluZGV4T2YoJ1xcbicpID4gLTEpIHtcbiAgICAgICAgaWYgKGFycmF5KSB7XG4gICAgICAgICAgc3RyID0gc3RyLnNwbGl0KCdcXG4nKS5tYXAoZnVuY3Rpb24obGluZSkge1xuICAgICAgICAgICAgcmV0dXJuICcgICcgKyBsaW5lO1xuICAgICAgICAgIH0pLmpvaW4oJ1xcbicpLnN1YnN0cigyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdHIgPSAnXFxuJyArIHN0ci5zcGxpdCgnXFxuJykubWFwKGZ1bmN0aW9uKGxpbmUpIHtcbiAgICAgICAgICAgIHJldHVybiAnICAgJyArIGxpbmU7XG4gICAgICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3RyID0gY3R4LnN0eWxpemUoJ1tDaXJjdWxhcl0nLCAnc3BlY2lhbCcpO1xuICAgIH1cbiAgfVxuICBpZiAoaXNVbmRlZmluZWQobmFtZSkpIHtcbiAgICBpZiAoYXJyYXkgJiYga2V5Lm1hdGNoKC9eXFxkKyQvKSkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG4gICAgbmFtZSA9IEpTT04uc3RyaW5naWZ5KCcnICsga2V5KTtcbiAgICBpZiAobmFtZS5tYXRjaCgvXlwiKFthLXpBLVpfXVthLXpBLVpfMC05XSopXCIkLykpIHtcbiAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cigxLCBuYW1lLmxlbmd0aCAtIDIpO1xuICAgICAgbmFtZSA9IGN0eC5zdHlsaXplKG5hbWUsICduYW1lJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKVxuICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXFwiL2csICdcIicpXG4gICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8oXlwifFwiJCkvZywgXCInXCIpO1xuICAgICAgbmFtZSA9IGN0eC5zdHlsaXplKG5hbWUsICdzdHJpbmcnKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmFtZSArICc6ICcgKyBzdHI7XG59XG5cblxuZnVuY3Rpb24gcmVkdWNlVG9TaW5nbGVTdHJpbmcob3V0cHV0LCBiYXNlLCBicmFjZXMpIHtcbiAgdmFyIG51bUxpbmVzRXN0ID0gMDtcbiAgdmFyIGxlbmd0aCA9IG91dHB1dC5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY3VyKSB7XG4gICAgbnVtTGluZXNFc3QrKztcbiAgICBpZiAoY3VyLmluZGV4T2YoJ1xcbicpID49IDApIG51bUxpbmVzRXN0Kys7XG4gICAgcmV0dXJuIHByZXYgKyBjdXIucmVwbGFjZSgvXFx1MDAxYlxcW1xcZFxcZD9tL2csICcnKS5sZW5ndGggKyAxO1xuICB9LCAwKTtcblxuICBpZiAobGVuZ3RoID4gNjApIHtcbiAgICByZXR1cm4gYnJhY2VzWzBdICtcbiAgICAgICAgICAgKGJhc2UgPT09ICcnID8gJycgOiBiYXNlICsgJ1xcbiAnKSArXG4gICAgICAgICAgICcgJyArXG4gICAgICAgICAgIG91dHB1dC5qb2luKCcsXFxuICAnKSArXG4gICAgICAgICAgICcgJyArXG4gICAgICAgICAgIGJyYWNlc1sxXTtcbiAgfVxuXG4gIHJldHVybiBicmFjZXNbMF0gKyBiYXNlICsgJyAnICsgb3V0cHV0LmpvaW4oJywgJykgKyAnICcgKyBicmFjZXNbMV07XG59XG5cblxuLy8gTk9URTogVGhlc2UgdHlwZSBjaGVja2luZyBmdW5jdGlvbnMgaW50ZW50aW9uYWxseSBkb24ndCB1c2UgYGluc3RhbmNlb2ZgXG4vLyBiZWNhdXNlIGl0IGlzIGZyYWdpbGUgYW5kIGNhbiBiZSBlYXNpbHkgZmFrZWQgd2l0aCBgT2JqZWN0LmNyZWF0ZSgpYC5cbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5KGFyKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdib29sZWFuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKGFyZykge1xuICByZXR1cm4gYXJnID09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnc3RyaW5nJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3ltYm9sKGFyZykge1xuICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ3N5bWJvbCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZChhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gdm9pZCAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWdFeHAocmUpIHtcbiAgcmV0dXJuIGlzT2JqZWN0KHJlKSAmJiBvYmplY3RUb1N0cmluZyhyZSkgPT09ICdbb2JqZWN0IFJlZ0V4cF0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUoZCkge1xuICByZXR1cm4gaXNPYmplY3QoZCkgJiYgb2JqZWN0VG9TdHJpbmcoZCkgPT09ICdbb2JqZWN0IERhdGVdJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXJyb3IoZSkge1xuICByZXR1cm4gaXNPYmplY3QoZSkgJiZcbiAgICAgIChvYmplY3RUb1N0cmluZyhlKSA9PT0gJ1tvYmplY3QgRXJyb3JdJyB8fCBlIGluc3RhbmNlb2YgRXJyb3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByaW1pdGl2ZShhcmcpIHtcbiAgcmV0dXJuIGFyZyA9PT0gbnVsbCB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nIHx8XG4gICAgICAgICB0eXBlb2YgYXJnID09PSAnbnVtYmVyJyB8fFxuICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnIHx8ICAvLyBFUzYgc3ltYm9sXG4gICAgICAgICB0eXBlb2YgYXJnID09PSAndW5kZWZpbmVkJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyKG1heWJlQnVmKSB7XG4gIHJldHVybiBCdWZmZXIuaXNCdWZmZXIobWF5YmVCdWYpO1xufVxuXG5mdW5jdGlvbiBvYmplY3RUb1N0cmluZyhvKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyk7XG59XG5cblxuZnVuY3Rpb24gcGFkKG4pIHtcbiAgcmV0dXJuIG4gPCAxMCA/ICcwJyArIG4udG9TdHJpbmcoMTApIDogbi50b1N0cmluZygxMCk7XG59XG5cblxudmFyIG1vbnRocyA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLFxuICAgICAgICAgICAgICAnT2N0JywgJ05vdicsICdEZWMnXTtcblxuLy8gMjYgRmViIDE2OjE5OjM0XG5mdW5jdGlvbiB0aW1lc3RhbXAoKSB7XG4gIHZhciBkID0gbmV3IERhdGUoKTtcbiAgdmFyIHRpbWUgPSBbcGFkKGQuZ2V0SG91cnMoKSksXG4gICAgICAgICAgICAgIHBhZChkLmdldE1pbnV0ZXMoKSksXG4gICAgICAgICAgICAgIHBhZChkLmdldFNlY29uZHMoKSldLmpvaW4oJzonKTtcbiAgcmV0dXJuIFtkLmdldERhdGUoKSwgbW9udGhzW2QuZ2V0TW9udGgoKV0sIHRpbWVdLmpvaW4oJyAnKTtcbn1cblxuXG4vLyBsb2cgaXMganVzdCBhIHRoaW4gd3JhcHBlciB0byBjb25zb2xlLmxvZyB0aGF0IHByZXBlbmRzIGEgdGltZXN0YW1wXG5leHBvcnQgZnVuY3Rpb24gbG9nKCkge1xuICBjb25zb2xlLmxvZygnJXMgLSAlcycsIHRpbWVzdGFtcCgpLCBmb3JtYXQuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7XG59XG5cblxuLyoqXG4gKiBJbmhlcml0IHRoZSBwcm90b3R5cGUgbWV0aG9kcyBmcm9tIG9uZSBjb25zdHJ1Y3RvciBpbnRvIGFub3RoZXIuXG4gKlxuICogVGhlIEZ1bmN0aW9uLnByb3RvdHlwZS5pbmhlcml0cyBmcm9tIGxhbmcuanMgcmV3cml0dGVuIGFzIGEgc3RhbmRhbG9uZVxuICogZnVuY3Rpb24gKG5vdCBvbiBGdW5jdGlvbi5wcm90b3R5cGUpLiBOT1RFOiBJZiB0aGlzIGZpbGUgaXMgdG8gYmUgbG9hZGVkXG4gKiBkdXJpbmcgYm9vdHN0cmFwcGluZyB0aGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIHJld3JpdHRlbiB1c2luZyBzb21lIG5hdGl2ZVxuICogZnVuY3Rpb25zIGFzIHByb3RvdHlwZSBzZXR1cCB1c2luZyBub3JtYWwgSmF2YVNjcmlwdCBkb2VzIG5vdCB3b3JrIGFzXG4gKiBleHBlY3RlZCBkdXJpbmcgYm9vdHN0cmFwcGluZyAoc2VlIG1pcnJvci5qcyBpbiByMTE0OTAzKS5cbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjdG9yIENvbnN0cnVjdG9yIGZ1bmN0aW9uIHdoaWNoIG5lZWRzIHRvIGluaGVyaXQgdGhlXG4gKiAgICAgcHJvdG90eXBlLlxuICogQHBhcmFtIHtmdW5jdGlvbn0gc3VwZXJDdG9yIENvbnN0cnVjdG9yIGZ1bmN0aW9uIHRvIGluaGVyaXQgcHJvdG90eXBlIGZyb20uXG4gKi9cbmltcG9ydCBpbmhlcml0cyBmcm9tICcuL2luaGVyaXRzJztcbmV4cG9ydCB7aW5oZXJpdHN9XG5cbmV4cG9ydCBmdW5jdGlvbiBfZXh0ZW5kKG9yaWdpbiwgYWRkKSB7XG4gIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIGFkZCBpc24ndCBhbiBvYmplY3RcbiAgaWYgKCFhZGQgfHwgIWlzT2JqZWN0KGFkZCkpIHJldHVybiBvcmlnaW47XG5cbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhZGQpO1xuICB2YXIgaSA9IGtleXMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgb3JpZ2luW2tleXNbaV1dID0gYWRkW2tleXNbaV1dO1xuICB9XG4gIHJldHVybiBvcmlnaW47XG59O1xuXG5mdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGluaGVyaXRzOiBpbmhlcml0cyxcbiAgX2V4dGVuZDogX2V4dGVuZCxcbiAgbG9nOiBsb2csXG4gIGlzQnVmZmVyOiBpc0J1ZmZlcixcbiAgaXNQcmltaXRpdmU6IGlzUHJpbWl0aXZlLFxuICBpc0Z1bmN0aW9uOiBpc0Z1bmN0aW9uLFxuICBpc0Vycm9yOiBpc0Vycm9yLFxuICBpc0RhdGU6IGlzRGF0ZSxcbiAgaXNPYmplY3Q6IGlzT2JqZWN0LFxuICBpc1JlZ0V4cDogaXNSZWdFeHAsXG4gIGlzVW5kZWZpbmVkOiBpc1VuZGVmaW5lZCxcbiAgaXNTeW1ib2w6IGlzU3ltYm9sLFxuICBpc1N0cmluZzogaXNTdHJpbmcsXG4gIGlzTnVtYmVyOiBpc051bWJlcixcbiAgaXNOdWxsT3JVbmRlZmluZWQ6IGlzTnVsbE9yVW5kZWZpbmVkLFxuICBpc051bGw6IGlzTnVsbCxcbiAgaXNCb29sZWFuOiBpc0Jvb2xlYW4sXG4gIGlzQXJyYXk6IGlzQXJyYXksXG4gIGluc3BlY3Q6IGluc3BlY3QsXG4gIGRlcHJlY2F0ZTogZGVwcmVjYXRlLFxuICBmb3JtYXQ6IGZvcm1hdCxcbiAgZGVidWdsb2c6IGRlYnVnbG9nXG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBNaXhpbiA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL21peGluJyksXG4gICAgaW5oZXJpdHMgPSByZXF1aXJlKCd1dGlsJykuaW5oZXJpdHMsXG4gICAgVU5JQ09ERSA9IHJlcXVpcmUoJy4uLy4uL2NvbW1vbi91bmljb2RlJyk7XG5cbi8vQWxpYXNlc1xudmFyICQgPSBVTklDT0RFLkNPREVfUE9JTlRTO1xuXG52YXIgUG9zaXRpb25UcmFja2luZ1ByZXByb2Nlc3Nvck1peGluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocHJlcHJvY2Vzc29yKSB7XG4gICAgLy8gTk9URTogYXZvaWQgaW5zdGFsbGluZyB0cmFja2VyIHR3aWNlXG4gICAgaWYgKCFwcmVwcm9jZXNzb3IuX19sb2NUcmFja2VyKSB7XG4gICAgICAgIHByZXByb2Nlc3Nvci5fX2xvY1RyYWNrZXIgPSB0aGlzO1xuXG4gICAgICAgIE1peGluLmNhbGwodGhpcywgcHJlcHJvY2Vzc29yKTtcblxuICAgICAgICB0aGlzLnByZXByb2Nlc3NvciA9IHByZXByb2Nlc3NvcjtcbiAgICAgICAgdGhpcy5pc0VvbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpbmVTdGFydFBvcyA9IDA7XG4gICAgICAgIHRoaXMuZHJvcHBlZEJ1ZmZlclNpemUgPSAwO1xuXG4gICAgICAgIHRoaXMuY29sID0gLTE7XG4gICAgICAgIHRoaXMubGluZSA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZXByb2Nlc3Nvci5fX2xvY1RyYWNrZXI7XG59O1xuXG5pbmhlcml0cyhQb3NpdGlvblRyYWNraW5nUHJlcHJvY2Vzc29yTWl4aW4sIE1peGluKTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFBvc2l0aW9uVHJhY2tpbmdQcmVwcm9jZXNzb3JNaXhpbi5wcm90b3R5cGUsICdvZmZzZXQnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICsgdGhpcy5wcmVwcm9jZXNzb3IucG9zO1xuICAgIH1cbn0pO1xuXG5Qb3NpdGlvblRyYWNraW5nUHJlcHJvY2Vzc29yTWl4aW4ucHJvdG90eXBlLl9nZXRPdmVycmlkZGVuTWV0aG9kcyA9IGZ1bmN0aW9uIChteG4sIG9yaWcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBhZHZhbmNlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgY3AgPSBvcmlnLmFkdmFuY2UuY2FsbCh0aGlzKTtcblxuICAgICAgICAgICAgLy9OT1RFOiBMRiBzaG91bGQgYmUgaW4gdGhlIGxhc3QgY29sdW1uIG9mIHRoZSBsaW5lXG4gICAgICAgICAgICBpZiAobXhuLmlzRW9sKSB7XG4gICAgICAgICAgICAgICAgbXhuLmlzRW9sID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbXhuLmxpbmUrKztcbiAgICAgICAgICAgICAgICBteG4ubGluZVN0YXJ0UG9zID0gbXhuLm9mZnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRClcbiAgICAgICAgICAgICAgICBteG4uaXNFb2wgPSB0cnVlO1xuXG4gICAgICAgICAgICBteG4uY29sID0gbXhuLm9mZnNldCAtIG14bi5saW5lU3RhcnRQb3MgKyAxO1xuXG4gICAgICAgICAgICByZXR1cm4gY3A7XG4gICAgICAgIH0sXG5cbiAgICAgICAgcmV0cmVhdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgb3JpZy5yZXRyZWF0LmNhbGwodGhpcyk7XG4gICAgICAgICAgICBteG4uaXNFb2wgPSBmYWxzZTtcblxuICAgICAgICAgICAgbXhuLmNvbCA9IG14bi5vZmZzZXQgLSBteG4ubGluZVN0YXJ0UG9zICsgMTtcbiAgICAgICAgfSxcblxuICAgICAgICBkcm9wUGFyc2VkQ2h1bms6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UG9zID0gdGhpcy5wb3M7XG5cbiAgICAgICAgICAgIG9yaWcuZHJvcFBhcnNlZENodW5rLmNhbGwodGhpcyk7XG5cbiAgICAgICAgICAgIG14bi5kcm9wcGVkQnVmZmVyU2l6ZSArPSBwcmV2UG9zIC0gdGhpcy5wb3M7XG4gICAgICAgIH1cbiAgICB9O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE1peGluID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvbWl4aW4nKSxcbiAgICBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi8uLi90b2tlbml6ZXInKSxcbiAgICBQb3NpdGlvblRyYWNraW5nUHJlcHJvY2Vzc29yTWl4aW4gPSByZXF1aXJlKCcuLi9wb3NpdGlvbl90cmFja2luZy9wcmVwcm9jZXNzb3JfbWl4aW4nKSxcbiAgICBpbmhlcml0cyA9IHJlcXVpcmUoJ3V0aWwnKS5pbmhlcml0cztcblxudmFyIExvY2F0aW9uSW5mb1Rva2VuaXplck1peGluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodG9rZW5pemVyKSB7XG4gICAgTWl4aW4uY2FsbCh0aGlzLCB0b2tlbml6ZXIpO1xuXG4gICAgdGhpcy50b2tlbml6ZXIgPSB0b2tlbml6ZXI7XG4gICAgdGhpcy5wb3NUcmFja2VyID0gbmV3IFBvc2l0aW9uVHJhY2tpbmdQcmVwcm9jZXNzb3JNaXhpbih0b2tlbml6ZXIucHJlcHJvY2Vzc29yKTtcbiAgICB0aGlzLmN1cnJlbnRBdHRyTG9jYXRpb24gPSBudWxsO1xuICAgIHRoaXMuY3VycmVudFRva2VuTG9jYXRpb24gPSBudWxsO1xufTtcblxuaW5oZXJpdHMoTG9jYXRpb25JbmZvVG9rZW5pemVyTWl4aW4sIE1peGluKTtcblxuTG9jYXRpb25JbmZvVG9rZW5pemVyTWl4aW4ucHJvdG90eXBlLl9nZXRDdXJyZW50TG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbGluZTogdGhpcy5wb3NUcmFja2VyLmxpbmUsXG4gICAgICAgIGNvbDogdGhpcy5wb3NUcmFja2VyLmNvbCxcbiAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucG9zVHJhY2tlci5vZmZzZXQsXG4gICAgICAgIGVuZE9mZnNldDogLTFcbiAgICB9O1xufTtcblxuTG9jYXRpb25JbmZvVG9rZW5pemVyTWl4aW4ucHJvdG90eXBlLl9hdHRhY2hDdXJyZW50QXR0ckxvY2F0aW9uSW5mbyA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmN1cnJlbnRBdHRyTG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wb3NUcmFja2VyLm9mZnNldDtcblxuICAgIHZhciBjdXJyZW50VG9rZW4gPSB0aGlzLnRva2VuaXplci5jdXJyZW50VG9rZW4sXG4gICAgICAgIGN1cnJlbnRBdHRyID0gdGhpcy50b2tlbml6ZXIuY3VycmVudEF0dHI7XG5cbiAgICBpZiAoIWN1cnJlbnRUb2tlbi5sb2NhdGlvbi5hdHRycylcbiAgICAgICAgY3VycmVudFRva2VuLmxvY2F0aW9uLmF0dHJzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGN1cnJlbnRUb2tlbi5sb2NhdGlvbi5hdHRyc1tjdXJyZW50QXR0ci5uYW1lXSA9IHRoaXMuY3VycmVudEF0dHJMb2NhdGlvbjtcbn07XG5cbkxvY2F0aW9uSW5mb1Rva2VuaXplck1peGluLnByb3RvdHlwZS5fZ2V0T3ZlcnJpZGRlbk1ldGhvZHMgPSBmdW5jdGlvbiAobXhuLCBvcmlnKSB7XG4gICAgdmFyIG1ldGhvZHMgPSB7XG4gICAgICAgIF9jcmVhdGVTdGFydFRhZ1Rva2VuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvcmlnLl9jcmVhdGVTdGFydFRhZ1Rva2VuLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5sb2NhdGlvbiA9IG14bi5jdXJyZW50VG9rZW5Mb2NhdGlvbjtcbiAgICAgICAgfSxcblxuICAgICAgICBfY3JlYXRlRW5kVGFnVG9rZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG9yaWcuX2NyZWF0ZUVuZFRhZ1Rva2VuLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5sb2NhdGlvbiA9IG14bi5jdXJyZW50VG9rZW5Mb2NhdGlvbjtcbiAgICAgICAgfSxcblxuICAgICAgICBfY3JlYXRlQ29tbWVudFRva2VuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvcmlnLl9jcmVhdGVDb21tZW50VG9rZW4uY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uID0gbXhuLmN1cnJlbnRUb2tlbkxvY2F0aW9uO1xuICAgICAgICB9LFxuXG4gICAgICAgIF9jcmVhdGVEb2N0eXBlVG9rZW46IGZ1bmN0aW9uIChpbml0aWFsTmFtZSkge1xuICAgICAgICAgICAgb3JpZy5fY3JlYXRlRG9jdHlwZVRva2VuLmNhbGwodGhpcywgaW5pdGlhbE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ubG9jYXRpb24gPSBteG4uY3VycmVudFRva2VuTG9jYXRpb247XG4gICAgICAgIH0sXG5cbiAgICAgICAgX2NyZWF0ZUNoYXJhY3RlclRva2VuOiBmdW5jdGlvbiAodHlwZSwgY2gpIHtcbiAgICAgICAgICAgIG9yaWcuX2NyZWF0ZUNoYXJhY3RlclRva2VuLmNhbGwodGhpcywgdHlwZSwgY2gpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24gPSBteG4uY3VycmVudFRva2VuTG9jYXRpb247XG4gICAgICAgIH0sXG5cbiAgICAgICAgX2NyZWF0ZUF0dHI6IGZ1bmN0aW9uIChhdHRyTmFtZUZpcnN0Q2gpIHtcbiAgICAgICAgICAgIG9yaWcuX2NyZWF0ZUF0dHIuY2FsbCh0aGlzLCBhdHRyTmFtZUZpcnN0Q2gpO1xuICAgICAgICAgICAgbXhuLmN1cnJlbnRBdHRyTG9jYXRpb24gPSBteG4uX2dldEN1cnJlbnRMb2NhdGlvbigpO1xuICAgICAgICB9LFxuXG4gICAgICAgIF9sZWF2ZUF0dHJOYW1lOiBmdW5jdGlvbiAodG9TdGF0ZSkge1xuICAgICAgICAgICAgb3JpZy5fbGVhdmVBdHRyTmFtZS5jYWxsKHRoaXMsIHRvU3RhdGUpO1xuICAgICAgICAgICAgbXhuLl9hdHRhY2hDdXJyZW50QXR0ckxvY2F0aW9uSW5mbygpO1xuICAgICAgICB9LFxuXG4gICAgICAgIF9sZWF2ZUF0dHJWYWx1ZTogZnVuY3Rpb24gKHRvU3RhdGUpIHtcbiAgICAgICAgICAgIG9yaWcuX2xlYXZlQXR0clZhbHVlLmNhbGwodGhpcywgdG9TdGF0ZSk7XG4gICAgICAgICAgICBteG4uX2F0dGFjaEN1cnJlbnRBdHRyTG9jYXRpb25JbmZvKCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX2VtaXRDdXJyZW50VG9rZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBwZW5kaW5nIGNoYXJhY3RlciB0b2tlbiBtYWtlIGl0J3MgZW5kIGxvY2F0aW9uIGVxdWFsIHRvIHRoZVxuICAgICAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5jdXJyZW50VG9rZW4ubG9jYXRpb24uc3RhcnRPZmZzZXQ7XG5cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IG14bi5wb3NUcmFja2VyLm9mZnNldCArIDE7XG4gICAgICAgICAgICBvcmlnLl9lbWl0Q3VycmVudFRva2VuLmNhbGwodGhpcyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBjaGFyYWN0ZXIgdG9rZW4gYW5kIGl0J3MgbG9jYXRpb24gd2Fzbid0IHNldCBpbiB0aGUgX2VtaXRDdXJyZW50VG9rZW4oKSxcbiAgICAgICAgICAgIC8vdGhlbiBzZXQgaXQncyBsb2NhdGlvbiBhdCB0aGUgY3VycmVudCBwcmVwcm9jZXNzb3IgcG9zaXRpb24uXG4gICAgICAgICAgICAvL1dlIGRvbid0IG5lZWQgdG8gaW5jcmVtZW50IHByZXByb2Nlc3NvciBwb3NpdGlvbiwgc2luY2UgY2hhcmFjdGVyIHRva2VuXG4gICAgICAgICAgICAvL2VtaXNzaW9uIGlzIGFsd2F5cyBmb3JjZWQgYnkgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGNoYXJhY3RlciB0b2tlbiBoZXJlLlxuICAgICAgICAgICAgLy9Tbywgd2UgYWxyZWFkeSBoYXZlIGFkdmFuY2VkIHBvc2l0aW9uLlxuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9PT0gLTEpXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0ID0gbXhuLnBvc1RyYWNrZXIub2Zmc2V0O1xuXG4gICAgICAgICAgICBvcmlnLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLy9OT1RFOiBwYXRjaCBpbml0aWFsIHN0YXRlcyBmb3IgZWFjaCBtb2RlIHRvIG9idGFpbiB0b2tlbiBzdGFydCBwb3NpdGlvblxuICAgIE9iamVjdC5rZXlzKFRva2VuaXplci5NT0RFKS5mb3JFYWNoKGZ1bmN0aW9uIChtb2RlTmFtZSkge1xuICAgICAgICB2YXIgc3RhdGUgPSBUb2tlbml6ZXIuTU9ERVttb2RlTmFtZV07XG5cbiAgICAgICAgbWV0aG9kc1tzdGF0ZV0gPSBmdW5jdGlvbiAoY3ApIHtcbiAgICAgICAgICAgIG14bi5jdXJyZW50VG9rZW5Mb2NhdGlvbiA9IG14bi5fZ2V0Q3VycmVudExvY2F0aW9uKCk7XG4gICAgICAgICAgICBvcmlnW3N0YXRlXS5jYWxsKHRoaXMsIGNwKTtcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtZXRob2RzO1xufTtcblxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgTWl4aW4gPSByZXF1aXJlKCcuLi8uLi91dGlscy9taXhpbicpLFxuICAgIGluaGVyaXRzID0gcmVxdWlyZSgndXRpbCcpLmluaGVyaXRzO1xuXG52YXIgTG9jYXRpb25JbmZvT3BlbkVsZW1lbnRTdGFja01peGluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoc3RhY2ssIG9wdGlvbnMpIHtcbiAgICBNaXhpbi5jYWxsKHRoaXMsIHN0YWNrKTtcblxuICAgIHRoaXMub25JdGVtUG9wID0gb3B0aW9ucy5vbkl0ZW1Qb3A7XG59O1xuXG5pbmhlcml0cyhMb2NhdGlvbkluZm9PcGVuRWxlbWVudFN0YWNrTWl4aW4sIE1peGluKTtcblxuTG9jYXRpb25JbmZvT3BlbkVsZW1lbnRTdGFja01peGluLnByb3RvdHlwZS5fZ2V0T3ZlcnJpZGRlbk1ldGhvZHMgPSBmdW5jdGlvbiAobXhuLCBvcmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcG9wOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBteG4ub25JdGVtUG9wKHRoaXMuY3VycmVudCk7XG4gICAgICAgICAgICBvcmlnLnBvcC5jYWxsKHRoaXMpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBvcEFsbFVwVG9IdG1sRWxlbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPiAwOyBpLS0pXG4gICAgICAgICAgICAgICAgbXhuLm9uSXRlbVBvcCh0aGlzLml0ZW1zW2ldKTtcblxuICAgICAgICAgICAgb3JpZy5wb3BBbGxVcFRvSHRtbEVsZW1lbnQuY2FsbCh0aGlzKTtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmU6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICBteG4ub25JdGVtUG9wKHRoaXMuY3VycmVudCk7XG4gICAgICAgICAgICBvcmlnLnJlbW92ZS5jYWxsKHRoaXMsIGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIE1peGluID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvbWl4aW4nKSxcbiAgICBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi8uLi90b2tlbml6ZXInKSxcbiAgICBMb2NhdGlvbkluZm9Ub2tlbml6ZXJNaXhpbiA9IHJlcXVpcmUoJy4vdG9rZW5pemVyX21peGluJyksXG4gICAgUG9zaXRpb25UcmFja2luZ1ByZXByb2Nlc3Nvck1peGluID0gcmVxdWlyZSgnLi4vcG9zaXRpb25fdHJhY2tpbmcvcHJlcHJvY2Vzc29yX21peGluJyksXG4gICAgTG9jYXRpb25JbmZvT3BlbkVsZW1lbnRTdGFja01peGluID0gcmVxdWlyZSgnLi9vcGVuX2VsZW1lbnRfc3RhY2tfbWl4aW4nKSxcbiAgICBIVE1MID0gcmVxdWlyZSgnLi4vLi4vY29tbW9uL2h0bWwnKSxcbiAgICBpbmhlcml0cyA9IHJlcXVpcmUoJ3V0aWwnKS5pbmhlcml0cztcblxuXG4vL0FsaWFzZXNcbnZhciAkID0gSFRNTC5UQUdfTkFNRVM7XG5cbnZhciBMb2NhdGlvbkluZm9QYXJzZXJNaXhpbiA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHBhcnNlcikge1xuICAgIE1peGluLmNhbGwodGhpcywgcGFyc2VyKTtcblxuICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgIHRoaXMucG9zVHJhY2tlciA9IG51bGw7XG4gICAgdGhpcy5sYXN0U3RhcnRUYWdUb2tlbiA9IG51bGw7XG4gICAgdGhpcy5sYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBudWxsO1xuICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbn07XG5cbmluaGVyaXRzKExvY2F0aW9uSW5mb1BhcnNlck1peGluLCBNaXhpbik7XG5cblxuTG9jYXRpb25JbmZvUGFyc2VyTWl4aW4ucHJvdG90eXBlLl9zZXRTdGFydExvY2F0aW9uID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICBpZiAodGhpcy5sYXN0U3RhcnRUYWdUb2tlbikge1xuICAgICAgICBlbGVtZW50Ll9fbG9jYXRpb24gPSBPYmplY3QuY3JlYXRlKHRoaXMubGFzdFN0YXJ0VGFnVG9rZW4ubG9jYXRpb24pO1xuICAgICAgICBlbGVtZW50Ll9fbG9jYXRpb24uc3RhcnRUYWcgPSB0aGlzLmxhc3RTdGFydFRhZ1Rva2VuLmxvY2F0aW9uO1xuICAgIH1cbiAgICBlbHNlXG4gICAgICAgIGVsZW1lbnQuX19sb2NhdGlvbiA9IG51bGw7XG59O1xuXG5Mb2NhdGlvbkluZm9QYXJzZXJNaXhpbi5wcm90b3R5cGUuX3NldEVuZExvY2F0aW9uID0gZnVuY3Rpb24gKGVsZW1lbnQsIGNsb3NpbmdUb2tlbikge1xuICAgIHZhciBsb2MgPSBlbGVtZW50Ll9fbG9jYXRpb247XG5cbiAgICBpZiAobG9jKSB7XG4gICAgICAgIGlmIChjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHZhciBjdExvYyA9IGNsb3NpbmdUb2tlbi5sb2NhdGlvbixcbiAgICAgICAgICAgICAgICB0biA9IHRoaXMucGFyc2VyLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCk7XG5cbiAgICAgICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmdcbiAgICAgICAgICAgIC8vIHRhZyBhbmQgZm9yIGNhc2VzIGxpa2UgPHRkPiA8cD4gPC90ZD4gLSAncCcgY2xvc2VzIHdpdGhvdXQgYSBjbG9zaW5nIHRhZy5cbiAgICAgICAgICAgIHZhciBpc0Nsb3NpbmdFbmRUYWcgPSBjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4gJiYgdG4gPT09IGNsb3NpbmdUb2tlbi50YWdOYW1lO1xuXG4gICAgICAgICAgICBpZiAoaXNDbG9zaW5nRW5kVGFnKSB7XG4gICAgICAgICAgICAgICAgbG9jLmVuZFRhZyA9IE9iamVjdC5jcmVhdGUoY3RMb2MpO1xuICAgICAgICAgICAgICAgIGxvYy5lbmRPZmZzZXQgPSBjdExvYy5lbmRPZmZzZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBsb2MuZW5kT2Zmc2V0ID0gY3RMb2Muc3RhcnRPZmZzZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBlbHNlIGlmIChjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVPRl9UT0tFTilcbiAgICAgICAgICAgIGxvYy5lbmRPZmZzZXQgPSB0aGlzLnBvc1RyYWNrZXIub2Zmc2V0O1xuICAgIH1cbn07XG5cbkxvY2F0aW9uSW5mb1BhcnNlck1peGluLnByb3RvdHlwZS5fZ2V0T3ZlcnJpZGRlbk1ldGhvZHMgPSBmdW5jdGlvbiAobXhuLCBvcmlnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgX2Jvb3RzdHJhcDogZnVuY3Rpb24gKGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgICAgIG9yaWcuX2Jvb3RzdHJhcC5jYWxsKHRoaXMsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpO1xuXG4gICAgICAgICAgICBteG4ubGFzdFN0YXJ0VGFnVG9rZW4gPSBudWxsO1xuICAgICAgICAgICAgbXhuLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbiA9IG51bGw7XG4gICAgICAgICAgICBteG4uY3VycmVudFRva2VuID0gbnVsbDtcbiAgICAgICAgICAgIG14bi5wb3NUcmFja2VyID0gbmV3IFBvc2l0aW9uVHJhY2tpbmdQcmVwcm9jZXNzb3JNaXhpbih0aGlzLnRva2VuaXplci5wcmVwcm9jZXNzb3IpO1xuXG4gICAgICAgICAgICBuZXcgTG9jYXRpb25JbmZvVG9rZW5pemVyTWl4aW4odGhpcy50b2tlbml6ZXIpO1xuXG4gICAgICAgICAgICBuZXcgTG9jYXRpb25JbmZvT3BlbkVsZW1lbnRTdGFja01peGluKHRoaXMub3BlbkVsZW1lbnRzLCB7XG4gICAgICAgICAgICAgICAgb25JdGVtUG9wOiBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBteG4uX3NldEVuZExvY2F0aW9uKGVsZW1lbnQsIG14bi5jdXJyZW50VG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIF9ydW5QYXJzaW5nTG9vcDogZnVuY3Rpb24gKHNjcmlwdEhhbmRsZXIpIHtcbiAgICAgICAgICAgIG9yaWcuX3J1blBhcnNpbmdMb29wLmNhbGwodGhpcywgc2NyaXB0SGFuZGxlcik7XG5cbiAgICAgICAgICAgIC8vIE5PVEU6IGdlbmVyYXRlIGxvY2F0aW9uIGluZm8gZm9yIGVsZW1lbnRzXG4gICAgICAgICAgICAvLyB0aGF0IHJlbWFpbnMgb24gb3BlbiBlbGVtZW50IHN0YWNrXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKVxuICAgICAgICAgICAgICAgIG14bi5fc2V0RW5kTG9jYXRpb24odGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaV0sIG14bi5jdXJyZW50VG9rZW4pO1xuICAgICAgICB9LFxuXG5cbiAgICAgICAgLy9Ub2tlbiBwcm9jZXNzaW5nXG4gICAgICAgIF9wcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50OiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIG14bi5jdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgICAgIG9yaWcuX3Byb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQuY2FsbCh0aGlzLCB0b2tlbik7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX3Byb2Nlc3NUb2tlbjogZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgICAgICBteG4uY3VycmVudFRva2VuID0gdG9rZW47XG4gICAgICAgICAgICBvcmlnLl9wcm9jZXNzVG9rZW4uY2FsbCh0aGlzLCB0b2tlbik7XG5cbiAgICAgICAgICAgIC8vTk9URTogPGJvZHk+IGFuZCA8aHRtbD4gYXJlIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgICAgICAvL3RoZWlyIGVuZCBsb2NhdGlvbiBleHBsaWNpdGx5LlxuICAgICAgICAgICAgdmFyIHJlcXVpcmVFeHBsaWNpdFVwZGF0ZSA9IHRva2VuLnR5cGUgPT09IFRva2VuaXplci5FTkRfVEFHX1RPS0VOICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lID09PSAkLkJPRFkgJiYgdGhpcy5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJPRFkpKTtcblxuICAgICAgICAgICAgaWYgKHJlcXVpcmVFeHBsaWNpdFVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSB0b2tlbi50YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBteG4uX3NldEVuZExvY2F0aW9uKGVsZW1lbnQsIHRva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG5cbiAgICAgICAgLy9Eb2N0eXBlXG4gICAgICAgIF9zZXREb2N1bWVudFR5cGU6IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgb3JpZy5fc2V0RG9jdW1lbnRUeXBlLmNhbGwodGhpcywgdG9rZW4pO1xuXG4gICAgICAgICAgICB2YXIgZG9jdW1lbnRDaGlsZHJlbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyh0aGlzLmRvY3VtZW50KSxcbiAgICAgICAgICAgICAgICBjbkxlbmd0aCA9IGRvY3VtZW50Q2hpbGRyZW4ubGVuZ3RoO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNuTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgbm9kZSA9IGRvY3VtZW50Q2hpbGRyZW5baV07XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5pc0RvY3VtZW50VHlwZU5vZGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5fX2xvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuXG4gICAgICAgIC8vRWxlbWVudHNcbiAgICAgICAgX2F0dGFjaEVsZW1lbnRUb1RyZWU6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICAvL05PVEU6IF9hdHRhY2hFbGVtZW50VG9UcmVlIGlzIGNhbGxlZCBmcm9tIF9hcHBlbmRFbGVtZW50LCBfaW5zZXJ0RWxlbWVudCBhbmQgX2luc2VydFRlbXBsYXRlIG1ldGhvZHMuXG4gICAgICAgICAgICAvL1NvIHdlIHdpbGwgdXNlIHRva2VuIGxvY2F0aW9uIHN0b3JlZCBpbiB0aGlzIG1ldGhvZHMgZm9yIHRoZSBlbGVtZW50LlxuICAgICAgICAgICAgbXhuLl9zZXRTdGFydExvY2F0aW9uKGVsZW1lbnQpO1xuICAgICAgICAgICAgbXhuLmxhc3RTdGFydFRhZ1Rva2VuID0gbnVsbDtcbiAgICAgICAgICAgIG9yaWcuX2F0dGFjaEVsZW1lbnRUb1RyZWUuY2FsbCh0aGlzLCBlbGVtZW50KTtcbiAgICAgICAgfSxcblxuICAgICAgICBfYXBwZW5kRWxlbWVudDogZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgIG14bi5sYXN0U3RhcnRUYWdUb2tlbiA9IHRva2VuO1xuICAgICAgICAgICAgb3JpZy5fYXBwZW5kRWxlbWVudC5jYWxsKHRoaXMsIHRva2VuLCBuYW1lc3BhY2VVUkkpO1xuICAgICAgICB9LFxuXG4gICAgICAgIF9pbnNlcnRFbGVtZW50OiBmdW5jdGlvbiAodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICAgICAgbXhuLmxhc3RTdGFydFRhZ1Rva2VuID0gdG9rZW47XG4gICAgICAgICAgICBvcmlnLl9pbnNlcnRFbGVtZW50LmNhbGwodGhpcywgdG9rZW4sIG5hbWVzcGFjZVVSSSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgX2luc2VydFRlbXBsYXRlOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIG14bi5sYXN0U3RhcnRUYWdUb2tlbiA9IHRva2VuO1xuICAgICAgICAgICAgb3JpZy5faW5zZXJ0VGVtcGxhdGUuY2FsbCh0aGlzLCB0b2tlbik7XG5cbiAgICAgICAgICAgIHZhciB0bXBsQ29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xuXG4gICAgICAgICAgICB0bXBsQ29udGVudC5fX2xvY2F0aW9uID0gbnVsbDtcbiAgICAgICAgfSxcblxuICAgICAgICBfaW5zZXJ0RmFrZVJvb3RFbGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBvcmlnLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQuX19sb2NhdGlvbiA9IG51bGw7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy9Db21tZW50c1xuICAgICAgICBfYXBwZW5kQ29tbWVudE5vZGU6IGZ1bmN0aW9uICh0b2tlbiwgcGFyZW50KSB7XG4gICAgICAgICAgICBvcmlnLl9hcHBlbmRDb21tZW50Tm9kZS5jYWxsKHRoaXMsIHRva2VuLCBwYXJlbnQpO1xuXG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KSxcbiAgICAgICAgICAgICAgICBjb21tZW50Tm9kZSA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBjb21tZW50Tm9kZS5fX2xvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy9UZXh0XG4gICAgICAgIF9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8vTk9URTogc3RvcmUgbGFzdCBmb3N0ZXIgcGFyZW50aW5nIGxvY2F0aW9uLCBzbyB3ZSB3aWxsIGJlIGFibGUgdG8gZmluZCBpbnNlcnRlZCB0ZXh0XG4gICAgICAgICAgICAvL2luIGNhc2Ugb2YgZm9zdGVyIHBhcmVudGluZ1xuICAgICAgICAgICAgbXhuLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbiA9IG9yaWcuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbi5jYWxsKHRoaXMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbXhuLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbjtcbiAgICAgICAgfSxcblxuICAgICAgICBfaW5zZXJ0Q2hhcmFjdGVyczogZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgICAgICBvcmlnLl9pbnNlcnRDaGFyYWN0ZXJzLmNhbGwodGhpcywgdG9rZW4pO1xuXG4gICAgICAgICAgICB2YXIgaGFzRm9zdGVyUGFyZW50ID0gdGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSxcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBoYXNGb3N0ZXJQYXJlbnQgJiYgbXhuLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbi5wYXJlbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LFxuICAgICAgICAgICAgICAgIHNpYmxpbmdzID0gdGhpcy50cmVlQWRhcHRlci5nZXRDaGlsZE5vZGVzKHBhcmVudCksXG4gICAgICAgICAgICAgICAgdGV4dE5vZGVJZHggPSBoYXNGb3N0ZXJQYXJlbnQgJiYgbXhuLmxhc3RGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbi5iZWZvcmVFbGVtZW50ID9cbiAgICAgICAgICAgICAgICBzaWJsaW5ncy5pbmRleE9mKG14bi5sYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24uYmVmb3JlRWxlbWVudCkgLSAxIDpcbiAgICAgICAgICAgICAgICBzaWJsaW5ncy5sZW5ndGggLSAxLFxuICAgICAgICAgICAgICAgIHRleHROb2RlID0gc2libGluZ3NbdGV4dE5vZGVJZHhdO1xuXG4gICAgICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSBlbmQgcG9zaXRpb25cbiAgICAgICAgICAgIGlmICh0ZXh0Tm9kZS5fX2xvY2F0aW9uKVxuICAgICAgICAgICAgICAgIHRleHROb2RlLl9fbG9jYXRpb24uZW5kT2Zmc2V0ID0gdG9rZW4ubG9jYXRpb24uZW5kT2Zmc2V0O1xuXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdGV4dE5vZGUuX19sb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICB9XG4gICAgfTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIERPQ1VNRU5UX01PREUgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpLkRPQ1VNRU5UX01PREU7XG5cbi8vTm9kZSBjb25zdHJ1Y3Rpb25cbmV4cG9ydHMuY3JlYXRlRG9jdW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQnLFxuICAgICAgICBtb2RlOiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUyxcbiAgICAgICAgY2hpbGROb2RlczogW11cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVEb2N1bWVudEZyYWdtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5vZGVOYW1lOiAnI2RvY3VtZW50LWZyYWdtZW50JyxcbiAgICAgICAgY2hpbGROb2RlczogW11cbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24gKHRhZ05hbWUsIG5hbWVzcGFjZVVSSSwgYXR0cnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBub2RlTmFtZTogdGFnTmFtZSxcbiAgICAgICAgdGFnTmFtZTogdGFnTmFtZSxcbiAgICAgICAgYXR0cnM6IGF0dHJzLFxuICAgICAgICBuYW1lc3BhY2VVUkk6IG5hbWVzcGFjZVVSSSxcbiAgICAgICAgY2hpbGROb2RlczogW10sXG4gICAgICAgIHBhcmVudE5vZGU6IG51bGxcbiAgICB9O1xufTtcblxuZXhwb3J0cy5jcmVhdGVDb21tZW50Tm9kZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIHBhcmVudE5vZGU6IG51bGxcbiAgICB9O1xufTtcblxudmFyIGNyZWF0ZVRleHROb2RlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgcGFyZW50Tm9kZTogbnVsbFxuICAgIH07XG59O1xuXG5cbi8vVHJlZSBtdXRhdGlvblxudmFyIGFwcGVuZENoaWxkID0gZXhwb3J0cy5hcHBlbmRDaGlsZCA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCBuZXdOb2RlKSB7XG4gICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XG4gICAgbmV3Tm9kZS5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbn07XG5cbnZhciBpbnNlcnRCZWZvcmUgPSBleHBvcnRzLmluc2VydEJlZm9yZSA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCBuZXdOb2RlLCByZWZlcmVuY2VOb2RlKSB7XG4gICAgdmFyIGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpO1xuXG4gICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnNwbGljZShpbnNlcnRpb25JZHgsIDAsIG5ld05vZGUpO1xuICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG59O1xuXG5leHBvcnRzLnNldFRlbXBsYXRlQ29udGVudCA9IGZ1bmN0aW9uICh0ZW1wbGF0ZUVsZW1lbnQsIGNvbnRlbnRFbGVtZW50KSB7XG4gICAgdGVtcGxhdGVFbGVtZW50LmNvbnRlbnQgPSBjb250ZW50RWxlbWVudDtcbn07XG5cbmV4cG9ydHMuZ2V0VGVtcGxhdGVDb250ZW50ID0gZnVuY3Rpb24gKHRlbXBsYXRlRWxlbWVudCkge1xuICAgIHJldHVybiB0ZW1wbGF0ZUVsZW1lbnQuY29udGVudDtcbn07XG5cbmV4cG9ydHMuc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICB2YXIgZG9jdHlwZU5vZGUgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChkb2N1bWVudC5jaGlsZE5vZGVzW2ldLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZScpIHtcbiAgICAgICAgICAgIGRvY3R5cGVOb2RlID0gZG9jdW1lbnQuY2hpbGROb2Rlc1tpXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRvY3R5cGVOb2RlKSB7XG4gICAgICAgIGRvY3R5cGVOb2RlLm5hbWUgPSBuYW1lO1xuICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xuICAgICAgICBkb2N0eXBlTm9kZS5zeXN0ZW1JZCA9IHN5c3RlbUlkO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICBhcHBlbmRDaGlsZChkb2N1bWVudCwge1xuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBwdWJsaWNJZDogcHVibGljSWQsXG4gICAgICAgICAgICBzeXN0ZW1JZDogc3lzdGVtSWRcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuZXhwb3J0cy5zZXREb2N1bWVudE1vZGUgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIG1vZGUpIHtcbiAgICBkb2N1bWVudC5tb2RlID0gbW9kZTtcbn07XG5cbmV4cG9ydHMuZ2V0RG9jdW1lbnRNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50Lm1vZGU7XG59O1xuXG5leHBvcnRzLmRldGFjaE5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgICAgdmFyIGlkeCA9IG5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzLmluZGV4T2Yobm9kZSk7XG5cbiAgICAgICAgbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7XG4gICAgfVxufTtcblxuZXhwb3J0cy5pbnNlcnRUZXh0ID0gZnVuY3Rpb24gKHBhcmVudE5vZGUsIHRleHQpIHtcbiAgICBpZiAocGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICB2YXIgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChwcmV2Tm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0Jykge1xuICAgICAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGVuZENoaWxkKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpKTtcbn07XG5cbmV4cG9ydHMuaW5zZXJ0VGV4dEJlZm9yZSA9IGZ1bmN0aW9uIChwYXJlbnROb2RlLCB0ZXh0LCByZWZlcmVuY2VOb2RlKSB7XG4gICAgdmFyIHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XG5cbiAgICBpZiAocHJldk5vZGUgJiYgcHJldk5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpXG4gICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XG4gICAgZWxzZVxuICAgICAgICBpbnNlcnRCZWZvcmUocGFyZW50Tm9kZSwgY3JlYXRlVGV4dE5vZGUodGV4dCksIHJlZmVyZW5jZU5vZGUpO1xufTtcblxuZXhwb3J0cy5hZG9wdEF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAocmVjaXBpZW50LCBhdHRycykge1xuICAgIHZhciByZWNpcGllbnRBdHRyc01hcCA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNpcGllbnQuYXR0cnMubGVuZ3RoOyBpKyspXG4gICAgICAgIHJlY2lwaWVudEF0dHJzTWFwLnB1c2gocmVjaXBpZW50LmF0dHJzW2ldLm5hbWUpO1xuXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xuICAgICAgICBpZiAocmVjaXBpZW50QXR0cnNNYXAuaW5kZXhPZihhdHRyc1tqXS5uYW1lKSA9PT0gLTEpXG4gICAgICAgICAgICByZWNpcGllbnQuYXR0cnMucHVzaChhdHRyc1tqXSk7XG4gICAgfVxufTtcblxuXG4vL1RyZWUgdHJhdmVyc2luZ1xuZXhwb3J0cy5nZXRGaXJzdENoaWxkID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzWzBdO1xufTtcblxuZXhwb3J0cy5nZXRDaGlsZE5vZGVzID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5jaGlsZE5vZGVzO1xufTtcblxuZXhwb3J0cy5nZXRQYXJlbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZS5wYXJlbnROb2RlO1xufTtcblxuZXhwb3J0cy5nZXRBdHRyTGlzdCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuYXR0cnM7XG59O1xuXG4vL05vZGUgZGF0YVxuZXhwb3J0cy5nZXRUYWdOYW1lID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbWVudC50YWdOYW1lO1xufTtcblxuZXhwb3J0cy5nZXROYW1lc3BhY2VVUkkgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtZW50Lm5hbWVzcGFjZVVSSTtcbn07XG5cbmV4cG9ydHMuZ2V0VGV4dE5vZGVDb250ZW50ID0gZnVuY3Rpb24gKHRleHROb2RlKSB7XG4gICAgcmV0dXJuIHRleHROb2RlLnZhbHVlO1xufTtcblxuZXhwb3J0cy5nZXRDb21tZW50Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAoY29tbWVudE5vZGUpIHtcbiAgICByZXR1cm4gY29tbWVudE5vZGUuZGF0YTtcbn07XG5cbmV4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZU5hbWUgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHtcbiAgICByZXR1cm4gZG9jdHlwZU5vZGUubmFtZTtcbn07XG5cbmV4cG9ydHMuZ2V0RG9jdW1lbnRUeXBlTm9kZVB1YmxpY0lkID0gZnVuY3Rpb24gKGRvY3R5cGVOb2RlKSB7XG4gICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkO1xufTtcblxuZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHtcbiAgICByZXR1cm4gZG9jdHlwZU5vZGUuc3lzdGVtSWQ7XG59O1xuXG4vL05vZGUgdHlwZXNcbmV4cG9ydHMuaXNUZXh0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCc7XG59O1xuXG5leHBvcnRzLmlzQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xufTtcblxuZXhwb3J0cy5pc0RvY3VtZW50VHlwZU5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZSc7XG59O1xuXG5leHBvcnRzLmlzRWxlbWVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgIHJldHVybiAhIW5vZGUudGFnTmFtZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBET0NVTUVOVF9NT0RFID0gcmVxdWlyZSgnLi9odG1sJykuRE9DVU1FTlRfTU9ERTtcblxuLy9Db25zdFxudmFyIFZBTElEX0RPQ1RZUEVfTkFNRSA9ICdodG1sJyxcbiAgICBRVUlSS1NfTU9ERV9TWVNURU1fSUQgPSAnaHR0cDovL3d3dy5pYm0uY29tL2RhdGEvZHRkL3YxMS9pYm14aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCcsXG4gICAgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICAgICAnKy8vc2lsbWFyaWwvL2R0ZCBodG1sIHBybyB2MHIxMSAxOTk3MDEwMS8vZW4nLFxuICAgICAgICAnLS8vYWR2YXNvZnQgbHRkLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvL2VuJyxcbiAgICAgICAgJy0vL2FzLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBsZXZlbCAxLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgbGV2ZWwgMi8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAxLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0IGxldmVsIDIvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMC8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4xZS8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4wLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvL2VuLy8nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yIGZpbmFsLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjIvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDMvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDAvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDAvL2VuLy8yLjAnLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMS8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMS8vZW4vLzIuMCcsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy9lbi8vMi4wJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDMvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIGxldmVsIDMvL2VuLy8zLjAnLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAwLy9lbi8vMi4wJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAxLy9lbicsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMS8vZW4vLzIuMCcsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMi8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDIvL2VuLy8yLjAnLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvL2VuJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAzLy9lbi8vMy4wJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly9lbi8vMi4wJyxcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdC8vZW4vLzMuMCcsXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbC8vZW4nLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvL2VuLy8yLjAnLFxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvL2VuLy8zLjAnLFxuICAgICAgICAnLS8vbWV0cml1cy8vZHRkIG1ldHJpdXMgcHJlc2VudGF0aW9uYWwvL2VuJyxcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vZW4nLFxuICAgICAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMi4wIGh0bWwvL2VuJyxcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCB0YWJsZXMvL2VuJyxcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vZW4nLFxuICAgICAgICAnLS8vbWljcm9zb2Z0Ly9kdGQgaW50ZXJuZXQgZXhwbG9yZXIgMy4wIGh0bWwvL2VuJyxcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCB0YWJsZXMvL2VuJyxcbiAgICAgICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vZW4nLFxuICAgICAgICAnLS8vbmV0c2NhcGUgY29tbS4gY29ycC4vL2R0ZCBzdHJpY3QgaHRtbC8vZW4nLFxuICAgICAgICAnLS8vb1xcJ3JlaWxseSBhbmQgYXNzb2NpYXRlcy8vZHRkIGh0bWwgMi4wLy9lbicsXG4gICAgICAgICctLy9vXFwncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL2VuJyxcbiAgICAgICAgJy0vL3NweWdsYXNzLy9kdGQgaHRtbCAyLjAgZXh0ZW5kZWQvL2VuJyxcbiAgICAgICAgJy0vL3NxLy9kdGQgaHRtbCAyLjAgaG90bWV0YWwgKyBleHRlbnNpb25zLy9lbicsXG4gICAgICAgICctLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBodG1sLy9lbicsXG4gICAgICAgICctLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBzdHJpY3QgaHRtbC8vZW4nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCAzIDE5OTUtMDMtMjQvL2VuJyxcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGRyYWZ0Ly9lbicsXG4gICAgICAgICctLy93M2MvL2R0ZCBodG1sIDMuMiBmaW5hbC8vZW4nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCAzLjIvL2VuJyxcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4ycyBkcmFmdC8vZW4nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAgZnJhbWVzZXQvL2VuJyxcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC8vZW4nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgMTk5NjA3MTIvL2VuJyxcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgZXhwZXJpbWVudGFsIDk3MDQyMS8vZW4nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgdzMgaHRtbC8vZW4nLFxuICAgICAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCAzLjAvL2VuJyxcbiAgICAgICAgJy0vL3czby8vZHRkIHczIGh0bWwgMy4wLy9lbi8vJyxcbiAgICAgICAgJy0vL3dlYnRlY2hzLy9kdGQgbW96aWxsYSBodG1sIDIuMC8vZW4nLFxuICAgICAgICAnLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwvL2VuJ1xuICAgIF0sXG4gICAgUVVJUktTX01PREVfTk9fU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyA9IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUy5jb25jYXQoW1xuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIGZyYW1lc2V0Ly8nLFxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIHRyYW5zaXRpb25hbC8vJ1xuICAgIF0pLFxuICAgIFFVSVJLU19NT0RFX1BVQkxJQ19JRFMgPSBbXG4gICAgICAgICctLy93M28vL2R0ZCB3MyBodG1sIHN0cmljdCAzLjAvL2VuLy8nLFxuICAgICAgICAnLS93M2MvZHRkIGh0bWwgNC4wIHRyYW5zaXRpb25hbC9lbicsXG4gICAgICAgICdodG1sJ1xuICAgIF0sXG4gICAgTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xuICAgICAgICAnLS8vVzNDLy9EVEQgWEhUTUwgMS4wIEZyYW1lc2V0Ly8nLFxuICAgICAgICAnLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vJ1xuICAgIF0sXG4gICAgTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTID0gTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTLmNvbmNhdChbXG4gICAgICAgICctLy9XM0MvL0RURCBIVE1MIDQuMDEgRnJhbWVzZXQvLycsXG4gICAgICAgICctLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy8nXG4gICAgXSk7XG5cblxuLy9VdGlsc1xuZnVuY3Rpb24gZW5xdW90ZURvY3R5cGVJZChpZCkge1xuICAgIHZhciBxdW90ZSA9IGlkLmluZGV4T2YoJ1wiJykgIT09IC0xID8gJ1xcJycgOiAnXCInO1xuXG4gICAgcmV0dXJuIHF1b3RlICsgaWQgKyBxdW90ZTtcbn1cblxuZnVuY3Rpb24gaGFzUHJlZml4KHB1YmxpY0lkLCBwcmVmaXhlcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHB1YmxpY0lkLmluZGV4T2YocHJlZml4ZXNbaV0pID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5cbi8vQVBJXG5leHBvcnRzLmdldERvY3VtZW50TW9kZSA9IGZ1bmN0aW9uIChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICBpZiAobmFtZSAhPT0gVkFMSURfRE9DVFlQRV9OQU1FKVxuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG5cbiAgICBpZiAoc3lzdGVtSWQgJiYgc3lzdGVtSWQudG9Mb3dlckNhc2UoKSA9PT0gUVVJUktTX01PREVfU1lTVEVNX0lEKVxuICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG5cbiAgICBpZiAocHVibGljSWQgIT09IG51bGwpIHtcbiAgICAgICAgcHVibGljSWQgPSBwdWJsaWNJZC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGlmIChRVUlSS1NfTU9ERV9QVUJMSUNfSURTLmluZGV4T2YocHVibGljSWQpID4gLTEpXG4gICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfTU9ERS5RVUlSS1M7XG5cbiAgICAgICAgdmFyIHByZWZpeGVzID0gc3lzdGVtSWQgPT09IG51bGwgPyBRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTIDogUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTO1xuXG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSlcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLlFVSVJLUztcblxuICAgICAgICBwcmVmaXhlcyA9IHN5c3RlbUlkID09PSBudWxsID8gTElNSVRFRF9RVUlSS1NfUFVCTElDX0lEX1BSRUZJWEVTIDogTElNSVRFRF9RVUlSS1NfV0lUSF9TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTO1xuXG4gICAgICAgIGlmIChoYXNQcmVmaXgocHVibGljSWQsIHByZWZpeGVzKSlcbiAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9NT0RFLkxJTUlURURfUVVJUktTO1xuICAgIH1cblxuICAgIHJldHVybiBET0NVTUVOVF9NT0RFLk5PX1FVSVJLUztcbn07XG5cbmV4cG9ydHMuc2VyaWFsaXplQ29udGVudCA9IGZ1bmN0aW9uIChuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcbiAgICB2YXIgc3RyID0gJyFET0NUWVBFICc7XG5cbiAgICBpZiAobmFtZSlcbiAgICAgICAgc3RyICs9IG5hbWU7XG5cbiAgICBpZiAocHVibGljSWQgIT09IG51bGwpXG4gICAgICAgIHN0ciArPSAnIFBVQkxJQyAnICsgZW5xdW90ZURvY3R5cGVJZChwdWJsaWNJZCk7XG5cbiAgICBlbHNlIGlmIChzeXN0ZW1JZCAhPT0gbnVsbClcbiAgICAgICAgc3RyICs9ICcgU1lTVEVNJztcblxuICAgIGlmIChzeXN0ZW1JZCAhPT0gbnVsbClcbiAgICAgICAgc3RyICs9ICcgJyArIGVucXVvdGVEb2N0eXBlSWQoc3lzdGVtSWQpO1xuXG4gICAgcmV0dXJuIHN0cjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qIEV4cG9zZS4gKi9cbm1vZHVsZS5leHBvcnRzID0gZ2V0UHJvcGVydHlJbmZvcm1hdGlvbjtcblxuLyogQ29uc3RhbnRzLiAqL1xudmFyIFVTRV9BVFRSSUJVVEUgPSAweDE7XG52YXIgVVNFX1BST1BFUlRZID0gMHgyO1xudmFyIEJPT0xFQU5fVkFMVUUgPSAweDg7XG52YXIgTlVNRVJJQ19WQUxVRSA9IDB4MTA7XG52YXIgUE9TSVRJVkVfTlVNRVJJQ19WQUxVRSA9IDB4MjAgfCAweDEwO1xudmFyIE9WRVJMT0FERURfQk9PTEVBTl9WQUxVRSA9IDB4NDA7XG52YXIgU1BBQ0VfU0VQQVJBVEVEID0gMHg4MDtcbnZhciBDT01NQV9TRVBBUkFURUQgPSAweDEwMDtcblxuLyogTWFwIG9mIHByb3BlcnRpZXMuIE5hbWVzIGFyZSBjYW1lbC1jYXNlZCBwcm9wZXJ0aWVzLiAqL1xudmFyIHByb3BlcnR5Q29uZmlnID0ge1xuICAvKiBTdGFuZGFyZCBQcm9wZXJ0aWVzLiAqL1xuICBhYmJyOiBudWxsLFxuICBhY2NlcHQ6IENPTU1BX1NFUEFSQVRFRCxcbiAgYWNjZXB0Q2hhcnNldDogU1BBQ0VfU0VQQVJBVEVELFxuICBhY2Nlc3NLZXk6IFNQQUNFX1NFUEFSQVRFRCxcbiAgYWN0aW9uOiBudWxsLFxuICBhbGxvd0Z1bGxTY3JlZW46IFVTRV9BVFRSSUJVVEUgfCBCT09MRUFOX1ZBTFVFLFxuICBhbGxvd1RyYW5zcGFyZW5jeTogVVNFX0FUVFJJQlVURSxcbiAgYWx0OiBudWxsLFxuICAvKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyLWxpbmstYXMgKi9cbiAgYXM6IG51bGwsXG4gIGFzeW5jOiBCT09MRUFOX1ZBTFVFLFxuICBhdXRvQ29tcGxldGU6IFNQQUNFX1NFUEFSQVRFRCxcbiAgYXV0b0ZvY3VzOiBCT09MRUFOX1ZBTFVFLFxuICBhdXRvUGxheTogQk9PTEVBTl9WQUxVRSxcbiAgY2FwdHVyZTogVVNFX0FUVFJJQlVURSB8IEJPT0xFQU5fVkFMVUUsXG4gIGNlbGxQYWRkaW5nOiBudWxsLFxuICBjZWxsU3BhY2luZzogbnVsbCxcbiAgY2hhbGxlbmdlOiBVU0VfQVRUUklCVVRFLFxuICBjaGFyU2V0OiBVU0VfQVRUUklCVVRFLFxuICBjaGVja2VkOiBVU0VfUFJPUEVSVFkgfCBCT09MRUFOX1ZBTFVFLFxuICBjaXRlOiBudWxsLFxuICAvKiBUbyBzZXQgY2xhc3NOYW1lIG9uIFNWRyBlbGVtZW50cywgaXQncyBuZWNlc3NhcnkgdG9cbiAgICogdXNlIC5zZXRBdHRyaWJ1dGU7IHRoaXMgd29ya3Mgb24gSFRNTCBlbGVtZW50cyB0b29cbiAgICogaW4gYWxsIGJyb3dzZXJzIGV4Y2VwdCBJRTguICovXG4gIGNsYXNzTmFtZTogVVNFX0FUVFJJQlVURSB8IFNQQUNFX1NFUEFSQVRFRCxcbiAgY29sczogVVNFX0FUVFJJQlVURSB8IFBPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gIGNvbFNwYW46IG51bGwsXG4gIGNvbW1hbmQ6IG51bGwsXG4gIGNvbnRlbnQ6IG51bGwsXG4gIGNvbnRlbnRFZGl0YWJsZTogbnVsbCxcbiAgY29udGV4dE1lbnU6IFVTRV9BVFRSSUJVVEUsXG4gIGNvbnRyb2xzOiBVU0VfUFJPUEVSVFkgfCBCT09MRUFOX1ZBTFVFLFxuICAvKiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9jb250cm9scy1saXN0L2Jsb2IvZ2gtcGFnZXMvZXhwbGFpbmVyLm1kICovXG4gIGNvbnRyb2xzTGlzdDogU1BBQ0VfU0VQQVJBVEVELFxuICBjb29yZHM6IE5VTUVSSUNfVkFMVUUgfCBDT01NQV9TRVBBUkFURUQsXG4gIGNyb3NzT3JpZ2luOiBudWxsLFxuICAvKiBGb3IgYDxvYmplY3QgLz5gIGFjdHMgYXMgYHNyY2AuICovXG4gIGRhdGE6IG51bGwsXG4gIGRhdGVUaW1lOiBVU0VfQVRUUklCVVRFLFxuICBkZWZhdWx0OiBCT09MRUFOX1ZBTFVFLFxuICBkZWZlcjogQk9PTEVBTl9WQUxVRSxcbiAgZGlyOiBudWxsLFxuICBkaXJOYW1lOiBudWxsLFxuICBkaXNhYmxlZDogVVNFX0FUVFJJQlVURSB8IEJPT0xFQU5fVkFMVUUsXG4gIGRvd25sb2FkOiBPVkVSTE9BREVEX0JPT0xFQU5fVkFMVUUsXG4gIGRyYWdnYWJsZTogbnVsbCxcbiAgZHJvcHpvbmU6IFNQQUNFX1NFUEFSQVRFRCxcbiAgZW5jVHlwZTogbnVsbCxcbiAgZm9ybTogVVNFX0FUVFJJQlVURSxcbiAgZm9ybUFjdGlvbjogVVNFX0FUVFJJQlVURSxcbiAgZm9ybUVuY1R5cGU6IFVTRV9BVFRSSUJVVEUsXG4gIGZvcm1NZXRob2Q6IFVTRV9BVFRSSUJVVEUsXG4gIGZvcm1Ob1ZhbGlkYXRlOiBCT09MRUFOX1ZBTFVFLFxuICBmb3JtVGFyZ2V0OiBVU0VfQVRUUklCVVRFLFxuICBmcmFtZUJvcmRlcjogVVNFX0FUVFJJQlVURSxcbiAgaGVhZGVyczogU1BBQ0VfU0VQQVJBVEVELFxuICBoZWlnaHQ6IFVTRV9BVFRSSUJVVEUgfCBQT1NJVElWRV9OVU1FUklDX1ZBTFVFLFxuICBoaWRkZW46IFVTRV9BVFRSSUJVVEUgfCBCT09MRUFOX1ZBTFVFLFxuICBoaWdoOiBOVU1FUklDX1ZBTFVFLFxuICBocmVmOiBudWxsLFxuICBocmVmTGFuZzogbnVsbCxcbiAgaHRtbEZvcjogU1BBQ0VfU0VQQVJBVEVELFxuICBodHRwRXF1aXY6IFNQQUNFX1NFUEFSQVRFRCxcbiAgaWQ6IFVTRV9QUk9QRVJUWSxcbiAgaW5wdXRNb2RlOiBVU0VfQVRUUklCVVRFLFxuICAvKiBXZWIgQ29tcG9uZW50cyAqL1xuICBpczogVVNFX0FUVFJJQlVURSxcbiAgaXNNYXA6IEJPT0xFQU5fVkFMVUUsXG4gIGtleVBhcmFtczogVVNFX0FUVFJJQlVURSxcbiAga2V5VHlwZTogVVNFX0FUVFJJQlVURSxcbiAga2luZDogbnVsbCxcbiAgbGFiZWw6IG51bGwsXG4gIGxhbmc6IG51bGwsXG4gIGxpc3Q6IFVTRV9BVFRSSUJVVEUsXG4gIGxvb3A6IFVTRV9QUk9QRVJUWSB8IEJPT0xFQU5fVkFMVUUsXG4gIGxvdzogTlVNRVJJQ19WQUxVRSxcbiAgbWFuaWZlc3Q6IFVTRV9BVFRSSUJVVEUsXG4gIG1hcmdpbkhlaWdodDogTlVNRVJJQ19WQUxVRSxcbiAgbWFyZ2luV2lkdGg6IE5VTUVSSUNfVkFMVUUsXG4gIG1heDogbnVsbCxcbiAgbWF4TGVuZ3RoOiBVU0VfQVRUUklCVVRFIHwgUE9TSVRJVkVfTlVNRVJJQ19WQUxVRSxcbiAgbWVkaWE6IFVTRV9BVFRSSUJVVEUsXG4gIG1lZGlhR3JvdXA6IG51bGwsXG4gIG1lbnU6IG51bGwsXG4gIG1ldGhvZDogbnVsbCxcbiAgbWluOiBudWxsLFxuICBtaW5MZW5ndGg6IFVTRV9BVFRSSUJVVEUgfCBQT1NJVElWRV9OVU1FUklDX1ZBTFVFLFxuICBtdWx0aXBsZTogVVNFX1BST1BFUlRZIHwgQk9PTEVBTl9WQUxVRSxcbiAgbXV0ZWQ6IFVTRV9QUk9QRVJUWSB8IEJPT0xFQU5fVkFMVUUsXG4gIG5hbWU6IG51bGwsXG4gIG5vbmNlOiBudWxsLFxuICBub1ZhbGlkYXRlOiBCT09MRUFOX1ZBTFVFLFxuICBvcGVuOiBCT09MRUFOX1ZBTFVFLFxuICBvcHRpbXVtOiBOVU1FUklDX1ZBTFVFLFxuICBwYXR0ZXJuOiBudWxsLFxuICBwaW5nOiBTUEFDRV9TRVBBUkFURUQsXG4gIHBsYWNlaG9sZGVyOiBudWxsLFxuICAvKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyLXZpZGVvLXBsYXlzaW5saW5lICovXG4gIHBsYXlzSW5saW5lOiBCT09MRUFOX1ZBTFVFLFxuICBwb3N0ZXI6IG51bGwsXG4gIHByZWxvYWQ6IG51bGwsXG4gIC8qIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1oZWFkLXByb2ZpbGUgKi9cbiAgcHJvZmlsZTogbnVsbCxcbiAgcmFkaW9Hcm91cDogbnVsbCxcbiAgcmVhZE9ubHk6IFVTRV9QUk9QRVJUWSB8IEJPT0xFQU5fVkFMVUUsXG4gIC8qIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHItbGluay1yZWZlcnJlcnBvbGljeSAqL1xuICByZWZlcnJlclBvbGljeTogbnVsbCxcbiAgLyogYHJlbGAgaXMgYHJlbExpc3RgIGluIERPTSAqL1xuICByZWw6IFNQQUNFX1NFUEFSQVRFRCB8IFVTRV9BVFRSSUJVVEUsXG4gIHJlcXVpcmVkOiBCT09MRUFOX1ZBTFVFLFxuICByZXZlcnNlZDogQk9PTEVBTl9WQUxVRSxcbiAgcm9sZTogVVNFX0FUVFJJQlVURSxcbiAgcm93czogVVNFX0FUVFJJQlVURSB8IFBPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gIHJvd1NwYW46IFBPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gIHNhbmRib3g6IFNQQUNFX1NFUEFSQVRFRCxcbiAgc2NvcGU6IG51bGwsXG4gIHNjb3BlZDogQk9PTEVBTl9WQUxVRSxcbiAgc2Nyb2xsaW5nOiBudWxsLFxuICBzZWFtbGVzczogVVNFX0FUVFJJQlVURSB8IEJPT0xFQU5fVkFMVUUsXG4gIHNlbGVjdGVkOiBVU0VfUFJPUEVSVFkgfCBCT09MRUFOX1ZBTFVFLFxuICBzaGFwZTogbnVsbCxcbiAgc2l6ZTogVVNFX0FUVFJJQlVURSB8IFBPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gIHNpemVzOiBVU0VfQVRUUklCVVRFIHwgU1BBQ0VfU0VQQVJBVEVELFxuICAvKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyLXNsb3QgKi9cbiAgc2xvdDogbnVsbCxcbiAgc29ydGFibGU6IEJPT0xFQU5fVkFMVUUsXG4gIHNvcnRlZDogU1BBQ0VfU0VQQVJBVEVELFxuICBzcGFuOiBQT1NJVElWRV9OVU1FUklDX1ZBTFVFLFxuICBzcGVsbENoZWNrOiBudWxsLFxuICBzcmM6IG51bGwsXG4gIHNyY0RvYzogVVNFX1BST1BFUlRZLFxuICBzcmNMYW5nOiBudWxsLFxuICBzcmNTZXQ6IFVTRV9BVFRSSUJVVEUgfCBDT01NQV9TRVBBUkFURUQsXG4gIHN0YXJ0OiBOVU1FUklDX1ZBTFVFLFxuICBzdGVwOiBudWxsLFxuICBzdHlsZTogbnVsbCxcbiAgc3VtbWFyeTogbnVsbCxcbiAgdGFiSW5kZXg6IE5VTUVSSUNfVkFMVUUsXG4gIHRhcmdldDogbnVsbCxcbiAgdGl0bGU6IG51bGwsXG4gIHRyYW5zbGF0ZTogbnVsbCxcbiAgdHlwZTogbnVsbCxcbiAgdHlwZU11c3RNYXRjaDogQk9PTEVBTl9WQUxVRSxcbiAgdXNlTWFwOiBudWxsLFxuICB2YWx1ZTogVVNFX1BST1BFUlRZLFxuICB2b2x1bWU6IFBPU0lUSVZFX05VTUVSSUNfVkFMVUUsXG4gIHdpZHRoOiBVU0VfQVRUUklCVVRFIHwgTlVNRVJJQ19WQUxVRSxcbiAgd21vZGU6IFVTRV9BVFRSSUJVVEUsXG4gIHdyYXA6IG51bGwsXG5cbiAgLyogTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuICovXG5cbiAgLyogYGF1dG9DYXBpdGFsaXplYCBhbmQgYGF1dG9Db3JyZWN0YCBhcmUgc3VwcG9ydGVkIGluXG4gICAqIE1vYmlsZSBTYWZhcmkgZm9yIGtleWJvYXJkIGhpbnRzLiAqL1xuICBhdXRvQ2FwaXRhbGl6ZTogbnVsbCxcbiAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gIC8qIGBhdXRvU2F2ZWAgYWxsb3dzIFdlYktpdC9CbGluayB0byBwZXJzaXN0IHZhbHVlcyBvZlxuICAgKiBpbnB1dCBmaWVsZHMgb24gcGFnZSByZWxvYWRzICovXG4gIGF1dG9TYXZlOiBudWxsLFxuICAvKiBgaXRlbVByb3BgLCBgaXRlbVNjb3BlYCwgYGl0ZW1UeXBlYCBhcmUgZm9yIE1pY3JvZGF0YVxuICAgKiBzdXBwb3J0LiBTZWUgaHR0cDovL3NjaGVtYS5vcmcvZG9jcy9ncy5odG1sICovXG4gIGl0ZW1Qcm9wOiBVU0VfQVRUUklCVVRFIHwgU1BBQ0VfU0VQQVJBVEVELFxuICBpdGVtU2NvcGU6IFVTRV9BVFRSSUJVVEUgfCBCT09MRUFOX1ZBTFVFLFxuICBpdGVtVHlwZTogVVNFX0FUVFJJQlVURSB8IFNQQUNFX1NFUEFSQVRFRCxcbiAgLyogYGl0ZW1JRGAgYW5kIGBpdGVtUmVmYCBhcmUgZm9yIE1pY3JvZGF0YSBzdXBwb3J0IGFzIHdlbGxcbiAgICogYnV0IG9ubHkgc3BlY2lmaWVkIGluIHRoZSB0aGUgV0hBVFdHIHNwZWMgZG9jdW1lbnQuXG4gICAqIFNlZSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9cbiAgICogbWljcm9kYXRhLmh0bWwjbWljcm9kYXRhLWRvbS1hcGkgKi9cbiAgaXRlbUlEOiBVU0VfQVRUUklCVVRFLFxuICBpdGVtUmVmOiBVU0VfQVRUUklCVVRFIHwgU1BBQ0VfU0VQQVJBVEVELFxuICAvKiBgcHJvcGVydHlgIGlzIHN1cHBvcnRlZCBmb3IgT3BlbkdyYXBoIGluIG1ldGEgdGFncy4gKi9cbiAgcHJvcGVydHk6IG51bGwsXG4gIC8qIGByZXN1bHRzYCBzaG93IGxvb2tpbmcgZ2xhc3MgaWNvbiBhbmQgcmVjZW50IHNlYXJjaGVzXG4gICAqIG9uIGlucHV0IHNlYXJjaCBmaWVsZHMgaW4gV2ViS2l0L0JsaW5rICovXG4gIHJlc3VsdHM6IG51bGwsXG4gIC8qIElFLW9ubHkgYXR0cmlidXRlIHRoYXQgc3BlY2lmaWVzIHNlY3VyaXR5XG4gICAqIHJlc3RyaWN0aW9ucyBvbiBhbiBpZnJhbWUgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gdGhlXG4gICAqIHNhbmRib3ggYXR0cmlidXRlIG9uIElFIDwgMTAgKi9cbiAgc2VjdXJpdHk6IFVTRV9BVFRSSUJVVEUsXG4gIC8qIElFLW9ubHkgYXR0cmlidXRlIHRoYXQgY29udHJvbHMgZm9jdXMgYmVoYXZpb3IgKi9cbiAgdW5zZWxlY3RhYmxlOiBVU0VfQVRUUklCVVRFLFxuXG4gIC8qIEFuY2llbnQuICovXG4gIHhtbExhbmc6IFVTRV9BVFRSSUJVVEUsXG4gIHhtbEJhc2U6IFVTRV9BVFRSSUJVVEVcbn07XG5cbi8qIE1hcCBvZiBwcm9wZXJ0aWVzIHRvIGF0dHJpYnV0ZXMuXG4gKiBOYW1lcyBhcmUgbG93ZXItY2FzZSBwcm9wZXJ0aWVzLlxuICogVmFsdWVzIGFyZSBIVE1MIGF0dHJpYnV0ZXMuICovXG52YXIgcHJvcGVydHlUb0F0dHJpYnV0ZU1hcHBpbmcgPSB7XG4gIHhtbGJhc2U6ICd4bWw6YmFzZScsXG4gIHhtbGxhbmc6ICd4bWw6bGFuZycsXG4gIGNsYXNzbmFtZTogJ2NsYXNzJyxcbiAgaHRtbGZvcjogJ2ZvcicsXG4gIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnLFxuICBhY2NlcHRjaGFyc2V0OiAnYWNjZXB0LWNoYXJzZXQnXG59O1xuXG4vKiBFeHBhbmQgY29uZmlnLiAqL1xudmFyIGluZm9ybWF0aW9uID0ge307XG52YXIgcHJvcGVydHk7XG52YXIgbmFtZTtcbnZhciBjb25maWc7XG5cbmdldFByb3BlcnR5SW5mb3JtYXRpb24uYWxsID0gaW5mb3JtYXRpb247XG5cbmZvciAocHJvcGVydHkgaW4gcHJvcGVydHlDb25maWcpIHtcbiAgbmFtZSA9IGxvd2VyKHByb3BlcnR5KTtcbiAgbmFtZSA9IHByb3BlcnR5VG9BdHRyaWJ1dGVNYXBwaW5nW25hbWVdIHx8IG5hbWU7XG4gIGNvbmZpZyA9IHByb3BlcnR5Q29uZmlnW3Byb3BlcnR5XTtcblxuICBpbmZvcm1hdGlvbltuYW1lXSA9IHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIHByb3BlcnR5TmFtZTogcHJvcGVydHksXG4gICAgbXVzdFVzZUF0dHJpYnV0ZTogY2hlY2soY29uZmlnLCBVU0VfQVRUUklCVVRFKSxcbiAgICBtdXN0VXNlUHJvcGVydHk6IGNoZWNrKGNvbmZpZywgVVNFX1BST1BFUlRZKSxcbiAgICBib29sZWFuOiBjaGVjayhjb25maWcsIEJPT0xFQU5fVkFMVUUpLFxuICAgIG92ZXJsb2FkZWRCb29sZWFuOiBjaGVjayhjb25maWcsIE9WRVJMT0FERURfQk9PTEVBTl9WQUxVRSksXG4gICAgbnVtZXJpYzogY2hlY2soY29uZmlnLCBOVU1FUklDX1ZBTFVFKSxcbiAgICBwb3NpdGl2ZU51bWVyaWM6IGNoZWNrKGNvbmZpZywgUE9TSVRJVkVfTlVNRVJJQ19WQUxVRSksXG4gICAgY29tbWFTZXBhcmF0ZWQ6IGNoZWNrKGNvbmZpZywgQ09NTUFfU0VQQVJBVEVEKSxcbiAgICBzcGFjZVNlcGFyYXRlZDogY2hlY2soY29uZmlnLCBTUEFDRV9TRVBBUkFURUQpXG4gIH07XG59XG5cbi8qIEdldCBhIGNvbmZpZyBmb3IgYSBwcm9wZXJ0eS4gKi9cbmZ1bmN0aW9uIGdldFByb3BlcnR5SW5mb3JtYXRpb24ocHJvcGVydHlOYW1lKSB7XG4gIHZhciBpbnNlbnNpdGl2ZSA9IGxvd2VyKHByb3BlcnR5TmFtZSk7XG5cbiAgcmV0dXJuIGluZm9ybWF0aW9uW3Byb3BlcnR5VG9BdHRyaWJ1dGVNYXBwaW5nW2luc2Vuc2l0aXZlXSB8fCBpbnNlbnNpdGl2ZV07XG59XG5cbi8qIENoZWNrIGEgbWFzay4gKi9cbmZ1bmN0aW9uIGNoZWNrKHZhbHVlLCBiaXRtYXNrKSB7XG4gIHJldHVybiAodmFsdWUgJiBiaXRtYXNrKSA9PT0gYml0bWFzaztcbn1cblxuLyogTG93ZXItY2FzZSBhIHN0cmluZy4gKi9cbmZ1bmN0aW9uIGxvd2VyKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyJyksXG4gICAgSFRNTCA9IHJlcXVpcmUoJy4vaHRtbCcpO1xuXG4vL0FsaWFzZXNcbnZhciAkID0gSFRNTC5UQUdfTkFNRVMsXG4gICAgTlMgPSBIVE1MLk5BTUVTUEFDRVMsXG4gICAgQVRUUlMgPSBIVE1MLkFUVFJTO1xuXG5cbi8vTUlNRSB0eXBlc1xudmFyIE1JTUVfVFlQRVMgPSB7XG4gICAgVEVYVF9IVE1MOiAndGV4dC9odG1sJyxcbiAgICBBUFBMSUNBVElPTl9YTUw6ICdhcHBsaWNhdGlvbi94aHRtbCt4bWwnXG59O1xuXG4vL0F0dHJpYnV0ZXNcbnZhciBERUZJTklUSU9OX1VSTF9BVFRSID0gJ2RlZmluaXRpb251cmwnLFxuICAgIEFESlVTVEVEX0RFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvblVSTCcsXG4gICAgU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQID0ge1xuICAgICAgICAnYXR0cmlidXRlbmFtZSc6ICdhdHRyaWJ1dGVOYW1lJyxcbiAgICAgICAgJ2F0dHJpYnV0ZXR5cGUnOiAnYXR0cmlidXRlVHlwZScsXG4gICAgICAgICdiYXNlZnJlcXVlbmN5JzogJ2Jhc2VGcmVxdWVuY3knLFxuICAgICAgICAnYmFzZXByb2ZpbGUnOiAnYmFzZVByb2ZpbGUnLFxuICAgICAgICAnY2FsY21vZGUnOiAnY2FsY01vZGUnLFxuICAgICAgICAnY2xpcHBhdGh1bml0cyc6ICdjbGlwUGF0aFVuaXRzJyxcbiAgICAgICAgJ2RpZmZ1c2Vjb25zdGFudCc6ICdkaWZmdXNlQ29uc3RhbnQnLFxuICAgICAgICAnZWRnZW1vZGUnOiAnZWRnZU1vZGUnLFxuICAgICAgICAnZmlsdGVydW5pdHMnOiAnZmlsdGVyVW5pdHMnLFxuICAgICAgICAnZ2x5cGhyZWYnOiAnZ2x5cGhSZWYnLFxuICAgICAgICAnZ3JhZGllbnR0cmFuc2Zvcm0nOiAnZ3JhZGllbnRUcmFuc2Zvcm0nLFxuICAgICAgICAnZ3JhZGllbnR1bml0cyc6ICdncmFkaWVudFVuaXRzJyxcbiAgICAgICAgJ2tlcm5lbG1hdHJpeCc6ICdrZXJuZWxNYXRyaXgnLFxuICAgICAgICAna2VybmVsdW5pdGxlbmd0aCc6ICdrZXJuZWxVbml0TGVuZ3RoJyxcbiAgICAgICAgJ2tleXBvaW50cyc6ICdrZXlQb2ludHMnLFxuICAgICAgICAna2V5c3BsaW5lcyc6ICdrZXlTcGxpbmVzJyxcbiAgICAgICAgJ2tleXRpbWVzJzogJ2tleVRpbWVzJyxcbiAgICAgICAgJ2xlbmd0aGFkanVzdCc6ICdsZW5ndGhBZGp1c3QnLFxuICAgICAgICAnbGltaXRpbmdjb25lYW5nbGUnOiAnbGltaXRpbmdDb25lQW5nbGUnLFxuICAgICAgICAnbWFya2VyaGVpZ2h0JzogJ21hcmtlckhlaWdodCcsXG4gICAgICAgICdtYXJrZXJ1bml0cyc6ICdtYXJrZXJVbml0cycsXG4gICAgICAgICdtYXJrZXJ3aWR0aCc6ICdtYXJrZXJXaWR0aCcsXG4gICAgICAgICdtYXNrY29udGVudHVuaXRzJzogJ21hc2tDb250ZW50VW5pdHMnLFxuICAgICAgICAnbWFza3VuaXRzJzogJ21hc2tVbml0cycsXG4gICAgICAgICdudW1vY3RhdmVzJzogJ251bU9jdGF2ZXMnLFxuICAgICAgICAncGF0aGxlbmd0aCc6ICdwYXRoTGVuZ3RoJyxcbiAgICAgICAgJ3BhdHRlcm5jb250ZW50dW5pdHMnOiAncGF0dGVybkNvbnRlbnRVbml0cycsXG4gICAgICAgICdwYXR0ZXJudHJhbnNmb3JtJzogJ3BhdHRlcm5UcmFuc2Zvcm0nLFxuICAgICAgICAncGF0dGVybnVuaXRzJzogJ3BhdHRlcm5Vbml0cycsXG4gICAgICAgICdwb2ludHNhdHgnOiAncG9pbnRzQXRYJyxcbiAgICAgICAgJ3BvaW50c2F0eSc6ICdwb2ludHNBdFknLFxuICAgICAgICAncG9pbnRzYXR6JzogJ3BvaW50c0F0WicsXG4gICAgICAgICdwcmVzZXJ2ZWFscGhhJzogJ3ByZXNlcnZlQWxwaGEnLFxuICAgICAgICAncHJlc2VydmVhc3BlY3RyYXRpbyc6ICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJyxcbiAgICAgICAgJ3ByaW1pdGl2ZXVuaXRzJzogJ3ByaW1pdGl2ZVVuaXRzJyxcbiAgICAgICAgJ3JlZngnOiAncmVmWCcsXG4gICAgICAgICdyZWZ5JzogJ3JlZlknLFxuICAgICAgICAncmVwZWF0Y291bnQnOiAncmVwZWF0Q291bnQnLFxuICAgICAgICAncmVwZWF0ZHVyJzogJ3JlcGVhdER1cicsXG4gICAgICAgICdyZXF1aXJlZGV4dGVuc2lvbnMnOiAncmVxdWlyZWRFeHRlbnNpb25zJyxcbiAgICAgICAgJ3JlcXVpcmVkZmVhdHVyZXMnOiAncmVxdWlyZWRGZWF0dXJlcycsXG4gICAgICAgICdzcGVjdWxhcmNvbnN0YW50JzogJ3NwZWN1bGFyQ29uc3RhbnQnLFxuICAgICAgICAnc3BlY3VsYXJleHBvbmVudCc6ICdzcGVjdWxhckV4cG9uZW50JyxcbiAgICAgICAgJ3NwcmVhZG1ldGhvZCc6ICdzcHJlYWRNZXRob2QnLFxuICAgICAgICAnc3RhcnRvZmZzZXQnOiAnc3RhcnRPZmZzZXQnLFxuICAgICAgICAnc3RkZGV2aWF0aW9uJzogJ3N0ZERldmlhdGlvbicsXG4gICAgICAgICdzdGl0Y2h0aWxlcyc6ICdzdGl0Y2hUaWxlcycsXG4gICAgICAgICdzdXJmYWNlc2NhbGUnOiAnc3VyZmFjZVNjYWxlJyxcbiAgICAgICAgJ3N5c3RlbWxhbmd1YWdlJzogJ3N5c3RlbUxhbmd1YWdlJyxcbiAgICAgICAgJ3RhYmxldmFsdWVzJzogJ3RhYmxlVmFsdWVzJyxcbiAgICAgICAgJ3RhcmdldHgnOiAndGFyZ2V0WCcsXG4gICAgICAgICd0YXJnZXR5JzogJ3RhcmdldFknLFxuICAgICAgICAndGV4dGxlbmd0aCc6ICd0ZXh0TGVuZ3RoJyxcbiAgICAgICAgJ3ZpZXdib3gnOiAndmlld0JveCcsXG4gICAgICAgICd2aWV3dGFyZ2V0JzogJ3ZpZXdUYXJnZXQnLFxuICAgICAgICAneGNoYW5uZWxzZWxlY3Rvcic6ICd4Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAgICAgJ3ljaGFubmVsc2VsZWN0b3InOiAneUNoYW5uZWxTZWxlY3RvcicsXG4gICAgICAgICd6b29tYW5kcGFuJzogJ3pvb21BbmRQYW4nXG4gICAgfSxcbiAgICBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSB7XG4gICAgICAgICd4bGluazphY3R1YXRlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FjdHVhdGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSxcbiAgICAgICAgJ3hsaW5rOmFyY3JvbGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYXJjcm9sZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneGxpbms6aHJlZic6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdocmVmJywgbmFtZXNwYWNlOiBOUy5YTElOS30sXG4gICAgICAgICd4bGluazpyb2xlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3JvbGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSxcbiAgICAgICAgJ3hsaW5rOnNob3cnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnc2hvdycsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneGxpbms6dGl0bGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAndGl0bGUnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSxcbiAgICAgICAgJ3hsaW5rOnR5cGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAndHlwZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneG1sOmJhc2UnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ2Jhc2UnLCBuYW1lc3BhY2U6IE5TLlhNTH0sXG4gICAgICAgICd4bWw6bGFuZyc6IHtwcmVmaXg6ICd4bWwnLCBuYW1lOiAnbGFuZycsIG5hbWVzcGFjZTogTlMuWE1MfSxcbiAgICAgICAgJ3htbDpzcGFjZSc6IHtwcmVmaXg6ICd4bWwnLCBuYW1lOiAnc3BhY2UnLCBuYW1lc3BhY2U6IE5TLlhNTH0sXG4gICAgICAgICd4bWxucyc6IHtwcmVmaXg6ICcnLCBuYW1lOiAneG1sbnMnLCBuYW1lc3BhY2U6IE5TLlhNTE5TfSxcbiAgICAgICAgJ3htbG5zOnhsaW5rJzoge3ByZWZpeDogJ3htbG5zJywgbmFtZTogJ3hsaW5rJywgbmFtZXNwYWNlOiBOUy5YTUxOU31cblxuICAgIH07XG5cbi8vU1ZHIHRhZyBuYW1lcyBhZGp1c3RtZW50IG1hcFxudmFyIFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSBleHBvcnRzLlNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVAgPSB7XG4gICAgJ2FsdGdseXBoJzogJ2FsdEdseXBoJyxcbiAgICAnYWx0Z2x5cGhkZWYnOiAnYWx0R2x5cGhEZWYnLFxuICAgICdhbHRnbHlwaGl0ZW0nOiAnYWx0R2x5cGhJdGVtJyxcbiAgICAnYW5pbWF0ZWNvbG9yJzogJ2FuaW1hdGVDb2xvcicsXG4gICAgJ2FuaW1hdGVtb3Rpb24nOiAnYW5pbWF0ZU1vdGlvbicsXG4gICAgJ2FuaW1hdGV0cmFuc2Zvcm0nOiAnYW5pbWF0ZVRyYW5zZm9ybScsXG4gICAgJ2NsaXBwYXRoJzogJ2NsaXBQYXRoJyxcbiAgICAnZmVibGVuZCc6ICdmZUJsZW5kJyxcbiAgICAnZmVjb2xvcm1hdHJpeCc6ICdmZUNvbG9yTWF0cml4JyxcbiAgICAnZmVjb21wb25lbnR0cmFuc2Zlcic6ICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgICAnZmVjb21wb3NpdGUnOiAnZmVDb21wb3NpdGUnLFxuICAgICdmZWNvbnZvbHZlbWF0cml4JzogJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAgICdmZWRpZmZ1c2VsaWdodGluZyc6ICdmZURpZmZ1c2VMaWdodGluZycsXG4gICAgJ2ZlZGlzcGxhY2VtZW50bWFwJzogJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgICAnZmVkaXN0YW50bGlnaHQnOiAnZmVEaXN0YW50TGlnaHQnLFxuICAgICdmZWZsb29kJzogJ2ZlRmxvb2QnLFxuICAgICdmZWZ1bmNhJzogJ2ZlRnVuY0EnLFxuICAgICdmZWZ1bmNiJzogJ2ZlRnVuY0InLFxuICAgICdmZWZ1bmNnJzogJ2ZlRnVuY0cnLFxuICAgICdmZWZ1bmNyJzogJ2ZlRnVuY1InLFxuICAgICdmZWdhdXNzaWFuYmx1cic6ICdmZUdhdXNzaWFuQmx1cicsXG4gICAgJ2ZlaW1hZ2UnOiAnZmVJbWFnZScsXG4gICAgJ2ZlbWVyZ2UnOiAnZmVNZXJnZScsXG4gICAgJ2ZlbWVyZ2Vub2RlJzogJ2ZlTWVyZ2VOb2RlJyxcbiAgICAnZmVtb3JwaG9sb2d5JzogJ2ZlTW9ycGhvbG9neScsXG4gICAgJ2Zlb2Zmc2V0JzogJ2ZlT2Zmc2V0JyxcbiAgICAnZmVwb2ludGxpZ2h0JzogJ2ZlUG9pbnRMaWdodCcsXG4gICAgJ2Zlc3BlY3VsYXJsaWdodGluZyc6ICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAgICdmZXNwb3RsaWdodCc6ICdmZVNwb3RMaWdodCcsXG4gICAgJ2ZldGlsZSc6ICdmZVRpbGUnLFxuICAgICdmZXR1cmJ1bGVuY2UnOiAnZmVUdXJidWxlbmNlJyxcbiAgICAnZm9yZWlnbm9iamVjdCc6ICdmb3JlaWduT2JqZWN0JyxcbiAgICAnZ2x5cGhyZWYnOiAnZ2x5cGhSZWYnLFxuICAgICdsaW5lYXJncmFkaWVudCc6ICdsaW5lYXJHcmFkaWVudCcsXG4gICAgJ3JhZGlhbGdyYWRpZW50JzogJ3JhZGlhbEdyYWRpZW50JyxcbiAgICAndGV4dHBhdGgnOiAndGV4dFBhdGgnXG59O1xuXG4vL1RhZ3MgdGhhdCBjYXVzZXMgZXhpdCBmcm9tIGZvcmVpZ24gY29udGVudFxudmFyIEVYSVRTX0ZPUkVJR05fQ09OVEVOVCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJJR10gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQkxPQ0tRVU9URV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQk9EWV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQlJdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkNFTlRFUl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQ09ERV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRERdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkRJVl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRExdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkRUXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5FTV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRU1CRURdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkgxXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IMl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDNdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkg0XSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5INV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDZdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkhFQURdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkhSXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5JXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5JTUddID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkxJXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5MSVNUSU5HXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5NRU5VXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5NRVRBXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5OT0JSXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5PTF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuUF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuUFJFXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5SVUJZXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TTUFMTF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1BBTl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1RST05HXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TVFJJS0VdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNVQl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1VQXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5UQUJMRV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVFRdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlVdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlVMXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5WQVJdID0gdHJ1ZTtcblxuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnRzLmNhdXNlc0V4aXQgPSBmdW5jdGlvbiAoc3RhcnRUYWdUb2tlbikge1xuICAgIHZhciB0biA9IHN0YXJ0VGFnVG9rZW4udGFnTmFtZTtcbiAgICB2YXIgaXNGb250V2l0aEF0dHJzID0gdG4gPT09ICQuRk9OVCAmJiAoVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5DT0xPUikgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5TSVpFKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHN0YXJ0VGFnVG9rZW4sIEFUVFJTLkZBQ0UpICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpc0ZvbnRXaXRoQXR0cnMgPyB0cnVlIDogRVhJVFNfRk9SRUlHTl9DT05URU5UW3RuXTtcbn07XG5cbi8vVG9rZW4gYWRqdXN0bWVudHNcbmV4cG9ydHMuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnRzLmFkanVzdFRva2VuU1ZHQXR0cnMgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBhZGp1c3RlZEF0dHJOYW1lID0gU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQW3Rva2VuLmF0dHJzW2ldLm5hbWVdO1xuXG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lKVxuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ck5hbWU7XG4gICAgfVxufTtcblxuZXhwb3J0cy5hZGp1c3RUb2tlblhNTEF0dHJzID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYWRqdXN0ZWRBdHRyRW50cnkgPSBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVBbdG9rZW4uYXR0cnNbaV0ubmFtZV07XG5cbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydHMuYWRqdXN0VG9rZW5TVkdUYWdOYW1lID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgdmFyIGFkanVzdGVkVGFnTmFtZSA9IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVBbdG9rZW4udGFnTmFtZV07XG5cbiAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lKVxuICAgICAgICB0b2tlbi50YWdOYW1lID0gYWRqdXN0ZWRUYWdOYW1lO1xufTtcblxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cblxuZnVuY3Rpb24gaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSB7XG4gICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5zID09PSBOUy5TVkcgJiYgKHRuID09PSAkLkZPUkVJR05fT0JKRUNUIHx8IHRuID09PSAkLkRFU0MgfHwgdG4gPT09ICQuVElUTEUpO1xufVxuXG5leHBvcnRzLmlzSW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uICh0biwgbnMsIGF0dHJzLCBmb3JlaWduTlMpIHtcbiAgICBpZiAoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5IVE1MKSAmJiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLk1BVEhNTCkgJiYgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIHJldHVybiBmYWxzZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi90b2tlbml6ZXInKSxcbiAgICBPcGVuRWxlbWVudFN0YWNrID0gcmVxdWlyZSgnLi9vcGVuX2VsZW1lbnRfc3RhY2snKSxcbiAgICBGb3JtYXR0aW5nRWxlbWVudExpc3QgPSByZXF1aXJlKCcuL2Zvcm1hdHRpbmdfZWxlbWVudF9saXN0JyksXG4gICAgTG9jYXRpb25JbmZvUGFyc2VyTWl4aW4gPSByZXF1aXJlKCcuLi9leHRlbnNpb25zL2xvY2F0aW9uX2luZm8vcGFyc2VyX21peGluJyksXG4gICAgZGVmYXVsdFRyZWVBZGFwdGVyID0gcmVxdWlyZSgnLi4vdHJlZV9hZGFwdGVycy9kZWZhdWx0JyksXG4gICAgbWVyZ2VPcHRpb25zID0gcmVxdWlyZSgnLi4vdXRpbHMvbWVyZ2Vfb3B0aW9ucycpLFxuICAgIGRvY3R5cGUgPSByZXF1aXJlKCcuLi9jb21tb24vZG9jdHlwZScpLFxuICAgIGZvcmVpZ25Db250ZW50ID0gcmVxdWlyZSgnLi4vY29tbW9uL2ZvcmVpZ25fY29udGVudCcpLFxuICAgIFVOSUNPREUgPSByZXF1aXJlKCcuLi9jb21tb24vdW5pY29kZScpLFxuICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpO1xuXG4vL0FsaWFzZXNcbnZhciAkID0gSFRNTC5UQUdfTkFNRVMsXG4gICAgTlMgPSBIVE1MLk5BTUVTUEFDRVMsXG4gICAgQVRUUlMgPSBIVE1MLkFUVFJTO1xuXG52YXIgREVGQVVMVF9PUFRJT05TID0ge1xuICAgIGxvY2F0aW9uSW5mbzogZmFsc2UsXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlclxufTtcblxuLy9NaXNjIGNvbnN0YW50c1xudmFyIEhJRERFTl9JTlBVVF9UWVBFID0gJ2hpZGRlbic7XG5cbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxudmFyIEFBX09VVEVSX0xPT1BfSVRFUiA9IDgsXG4gICAgQUFfSU5ORVJfTE9PUF9JVEVSID0gMztcblxuLy9JbnNlcnRpb24gbW9kZXNcbnZhciBJTklUSUFMX01PREUgPSAnSU5JVElBTF9NT0RFJyxcbiAgICBCRUZPUkVfSFRNTF9NT0RFID0gJ0JFRk9SRV9IVE1MX01PREUnLFxuICAgIEJFRk9SRV9IRUFEX01PREUgPSAnQkVGT1JFX0hFQURfTU9ERScsXG4gICAgSU5fSEVBRF9NT0RFID0gJ0lOX0hFQURfTU9ERScsXG4gICAgQUZURVJfSEVBRF9NT0RFID0gJ0FGVEVSX0hFQURfTU9ERScsXG4gICAgSU5fQk9EWV9NT0RFID0gJ0lOX0JPRFlfTU9ERScsXG4gICAgVEVYVF9NT0RFID0gJ1RFWFRfTU9ERScsXG4gICAgSU5fVEFCTEVfTU9ERSA9ICdJTl9UQUJMRV9NT0RFJyxcbiAgICBJTl9UQUJMRV9URVhUX01PREUgPSAnSU5fVEFCTEVfVEVYVF9NT0RFJyxcbiAgICBJTl9DQVBUSU9OX01PREUgPSAnSU5fQ0FQVElPTl9NT0RFJyxcbiAgICBJTl9DT0xVTU5fR1JPVVBfTU9ERSA9ICdJTl9DT0xVTU5fR1JPVVBfTU9ERScsXG4gICAgSU5fVEFCTEVfQk9EWV9NT0RFID0gJ0lOX1RBQkxFX0JPRFlfTU9ERScsXG4gICAgSU5fUk9XX01PREUgPSAnSU5fUk9XX01PREUnLFxuICAgIElOX0NFTExfTU9ERSA9ICdJTl9DRUxMX01PREUnLFxuICAgIElOX1NFTEVDVF9NT0RFID0gJ0lOX1NFTEVDVF9NT0RFJyxcbiAgICBJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERSA9ICdJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERScsXG4gICAgSU5fVEVNUExBVEVfTU9ERSA9ICdJTl9URU1QTEFURV9NT0RFJyxcbiAgICBBRlRFUl9CT0RZX01PREUgPSAnQUZURVJfQk9EWV9NT0RFJyxcbiAgICBJTl9GUkFNRVNFVF9NT0RFID0gJ0lOX0ZSQU1FU0VUX01PREUnLFxuICAgIEFGVEVSX0ZSQU1FU0VUX01PREUgPSAnQUZURVJfRlJBTUVTRVRfTU9ERScsXG4gICAgQUZURVJfQUZURVJfQk9EWV9NT0RFID0gJ0FGVEVSX0FGVEVSX0JPRFlfTU9ERScsXG4gICAgQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERSA9ICdBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFJztcblxuLy9JbnNlcnRpb24gbW9kZSByZXNldCBtYXBcbnZhciBJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5UUl0gPSBJTl9ST1dfTU9ERTtcbklOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRCT0RZXSA9XG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5USEVBRF0gPVxuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEZPT1RdID0gSU5fVEFCTEVfQk9EWV9NT0RFO1xuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuQ0FQVElPTl0gPSBJTl9DQVBUSU9OX01PREU7XG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5DT0xHUk9VUF0gPSBJTl9DT0xVTU5fR1JPVVBfTU9ERTtcbklOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRBQkxFXSA9IElOX1RBQkxFX01PREU7XG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5CT0RZXSA9IElOX0JPRFlfTU9ERTtcbklOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkZSQU1FU0VUXSA9IElOX0ZSQU1FU0VUX01PREU7XG5cbi8vVGVtcGxhdGUgaW5zZXJ0aW9uIG1vZGUgc3dpdGNoIG1hcFxudmFyIFRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ0FQVElPTl0gPVxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLkNPTEdST1VQXSA9XG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuVEJPRFldID1cblRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URk9PVF0gPVxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIRUFEXSA9IElOX1RBQkxFX01PREU7XG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ09MXSA9IElOX0NPTFVNTl9HUk9VUF9NT0RFO1xuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRSXSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcblRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URF0gPVxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRIXSA9IElOX1JPV19NT0RFO1xuXG4vL1Rva2VuIGhhbmRsZXJzIG1hcCBmb3IgaW5zZXJ0aW9uIG1vZGVzXG52YXIgXyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbl9bSU5JVElBTF9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluSW5pdGlhbE1vZGU7XG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gZG9jdHlwZUluSW5pdGlhbE1vZGU7XG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPVxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9XG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSB0b2tlbkluSW5pdGlhbE1vZGU7XG5cbl9bQkVGT1JFX0hUTUxfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XG5fW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkJlZm9yZUh0bWw7XG5fW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIdG1sO1xuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIdG1sO1xuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQmVmb3JlSHRtbDtcblxuX1tCRUZPUkVfSEVBRF9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuQmVmb3JlSGVhZDtcbl9bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xuX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0JlZm9yZUhlYWQ7XG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0JlZm9yZUhlYWQ7XG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5CZWZvcmVIZWFkO1xuXG5fW0lOX0hFQURfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5JbkhlYWQ7XG5fW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XG5fW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5IZWFkO1xuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luSGVhZDtcbl9bSU5fSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuSW5IZWFkO1xuXG5fW0FGVEVSX0hFQURfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5BZnRlckhlYWQ7XG5fW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XG5fW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJIZWFkO1xuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVySGVhZDtcbl9bQUZURVJfSEVBRF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuQWZ0ZXJIZWFkO1xuXG5fW0lOX0JPRFlfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5Cb2R5O1xuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcbl9bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkJvZHk7XG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Cb2R5O1xuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5O1xuXG5fW1RFWFRfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tURVhUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID1cbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPVxuX1tURVhUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9XG5fW1RFWFRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRleHQ7XG5fW1RFWFRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJblRleHQ7XG5cbl9bSU5fVEFCTEVfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XG5fW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPVxuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5UYWJsZTtcbl9bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRhYmxlO1xuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlO1xuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcblxuX1tJTl9UQUJMRV9URVhUX01PREVdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGVUZXh0O1xuX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0O1xuX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9XG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID1cbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9XG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID1cbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuSW5UYWJsZVRleHQ7XG5cbl9bSU5fQ0FQVElPTl9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7XG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5O1xuX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luQ2FwdGlvbjtcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNhcHRpb247XG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XG5cbl9bSU5fQ09MVU1OX0dST1VQX01PREVdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluQ29sdW1uR3JvdXA7XG5fW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XG5fW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkNvbHVtbkdyb3VwO1xuX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Db2x1bW5Hcm91cDtcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5O1xuXG5fW0lOX1RBQkxFX0JPRFlfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID1cbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5UYWJsZTtcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRhYmxlQm9keTtcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlQm9keTtcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcblxuX1tJTl9ST1dfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxuX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9XG5fW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5UYWJsZTtcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XG5fW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblJvdztcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luUm93O1xuX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XG5cbl9bSU5fQ0VMTF9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7XG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5O1xuX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luQ2VsbDtcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNlbGw7XG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XG5cbl9bSU5fU0VMRUNUX01PREVdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luU2VsZWN0O1xuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5TZWxlY3Q7XG5fW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcblxuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5TZWxlY3RJblRhYmxlO1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5TZWxlY3RJblRhYmxlO1xuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XG5cbl9bSU5fVEVNUExBVEVfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTtcbl9bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcbl9bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX1RFTVBMQVRFX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblRlbXBsYXRlO1xuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRlbXBsYXRlO1xuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGVtcGxhdGU7XG5cbl9bQUZURVJfQk9EWV9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxuX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkFmdGVyQm9keTtcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQ7XG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVyQm9keTtcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdBZnRlckJvZHk7XG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZztcblxuX1tJTl9GUkFNRVNFVF9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cbl9bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcbl9bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcbl9bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkZyYW1lc2V0O1xuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkZyYW1lc2V0O1xuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHN0b3BQYXJzaW5nO1xuXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbl9bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxuX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xuX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xuX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVyRnJhbWVzZXQ7XG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVyRnJhbWVzZXQ7XG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7XG5cbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5fW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkFmdGVyQWZ0ZXJCb2R5O1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkFmdGVyQWZ0ZXJCb2R5O1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5O1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnRUb0RvY3VtZW50O1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckFmdGVyQm9keTtcbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSB0b2tlbkFmdGVyQWZ0ZXJCb2R5O1xuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7XG5cbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7XG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnRUb0RvY3VtZW50O1xuX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVyQWZ0ZXJGcmFtZXNldDtcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gaWdub3JlVG9rZW47XG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7XG5cblxuLy9QYXJzZXJcbnZhciBQYXJzZXIgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gbWVyZ2VPcHRpb25zKERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7XG5cbiAgICB0aGlzLnRyZWVBZGFwdGVyID0gdGhpcy5vcHRpb25zLnRyZWVBZGFwdGVyO1xuICAgIHRoaXMucGVuZGluZ1NjcmlwdCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmxvY2F0aW9uSW5mbylcbiAgICAgICAgbmV3IExvY2F0aW9uSW5mb1BhcnNlck1peGluKHRoaXMpO1xufTtcblxuLy8gQVBJXG5QYXJzZXIucHJvdG90eXBlLnBhcnNlID0gZnVuY3Rpb24gKGh0bWwpIHtcbiAgICB2YXIgZG9jdW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50KCk7XG5cbiAgICB0aGlzLl9ib290c3RyYXAoZG9jdW1lbnQsIG51bGwpO1xuICAgIHRoaXMudG9rZW5pemVyLndyaXRlKGh0bWwsIHRydWUpO1xuICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKG51bGwpO1xuXG4gICAgcmV0dXJuIGRvY3VtZW50O1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyYWdtZW50ID0gZnVuY3Rpb24gKGh0bWwsIGZyYWdtZW50Q29udGV4dCkge1xuICAgIC8vTk9URTogdXNlIDx0ZW1wbGF0ZT4gZWxlbWVudCBhcyBhIGZyYWdtZW50IGNvbnRleHQgaWYgY29udGV4dCBlbGVtZW50IHdhcyBub3QgcHJvdmlkZWQsXG4gICAgLy9zbyB3ZSB3aWxsIHBhcnNlIGluIFwiZm9yZ2l2aW5nXCIgbWFubmVyXG4gICAgaWYgKCFmcmFnbWVudENvbnRleHQpXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlRFTVBMQVRFLCBOUy5IVE1MLCBbXSk7XG5cbiAgICAvL05PVEU6IGNyZWF0ZSBmYWtlIGVsZW1lbnQgd2hpY2ggd2lsbCBiZSB1c2VkIGFzICdkb2N1bWVudCcgZm9yIGZyYWdtZW50IHBhcnNpbmcuXG4gICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20gdGhlcmUgJ2RvY3VtZW50JyBjYW4ndCBiZSByZWNyZWF0ZWQsIHRoZXJlZm9yZVxuICAgIC8vZnJhZ21lbnQgcGFyc2luZyBjYXVzZXMgbWVzc2luZyBvZiB0aGUgbWFpbiBgZG9jdW1lbnRgLlxuICAgIHZhciBkb2N1bWVudE1vY2sgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJ2RvY3VtZW50bW9jaycsIE5TLkhUTUwsIFtdKTtcblxuICAgIHRoaXMuX2Jvb3RzdHJhcChkb2N1bWVudE1vY2ssIGZyYWdtZW50Q29udGV4dCk7XG5cbiAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkgPT09ICQuVEVNUExBVEUpXG4gICAgICAgIHRoaXMuX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZShJTl9URU1QTEFURV9NT0RFKTtcblxuICAgIHRoaXMuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcbiAgICB0aGlzLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICB0aGlzLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XG4gICAgdGhpcy50b2tlbml6ZXIud3JpdGUoaHRtbCwgdHJ1ZSk7XG4gICAgdGhpcy5fcnVuUGFyc2luZ0xvb3AobnVsbCk7XG5cbiAgICB2YXIgcm9vdEVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9jdW1lbnRNb2NrKSxcbiAgICAgICAgZnJhZ21lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcblxuICAgIHRoaXMuX2Fkb3B0Tm9kZXMocm9vdEVsZW1lbnQsIGZyYWdtZW50KTtcblxuICAgIHJldHVybiBmcmFnbWVudDtcbn07XG5cbi8vQm9vdHN0cmFwIHBhcnNlclxuUGFyc2VyLnByb3RvdHlwZS5fYm9vdHN0cmFwID0gZnVuY3Rpb24gKGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpIHtcbiAgICB0aGlzLnRva2VuaXplciA9IG5ldyBUb2tlbml6ZXIodGhpcy5vcHRpb25zKTtcblxuICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5JVElBTF9NT0RFO1xuICAgIHRoaXMub3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gJyc7XG5cbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgdGhpcy5mcmFnbWVudENvbnRleHQgPSBmcmFnbWVudENvbnRleHQ7XG5cbiAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLmZvcm1FbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlcik7XG4gICAgdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBuZXcgRm9ybWF0dGluZ0VsZW1lbnRMaXN0KHRoaXMudHJlZUFkYXB0ZXIpO1xuXG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrID0gW107XG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wID0gLTE7XG4gICAgdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGUgPSBudWxsO1xuXG4gICAgdGhpcy5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107XG4gICAgdGhpcy5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuID0gZmFsc2U7XG5cbiAgICB0aGlzLmZyYW1lc2V0T2sgPSB0cnVlO1xuICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG4gICAgdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gZmFsc2U7XG59O1xuXG4vL1BhcnNpbmcgbG9vcFxuUGFyc2VyLnByb3RvdHlwZS5fcnVuUGFyc2luZ0xvb3AgID0gZnVuY3Rpb24gKHNjcmlwdEhhbmRsZXIpIHtcbiAgICB3aGlsZSAoIXRoaXMuc3RvcHBlZCkge1xuICAgICAgICB0aGlzLl9zZXR1cFRva2VuaXplckNEQVRBTW9kZSgpO1xuXG4gICAgICAgIHZhciB0b2tlbiA9IHRoaXMudG9rZW5pemVyLmdldE5leHRUb2tlbigpO1xuXG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuSElCRVJOQVRJT05fVE9LRU4pXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBpZiAodGhpcy5za2lwTmV4dE5ld0xpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU4gJiYgdG9rZW4uY2hhcnNbMF0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG5cbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NJbnB1dFRva2VuKHRva2VuKTtcblxuICAgICAgICBpZiAoc2NyaXB0SGFuZGxlciAmJiB0aGlzLnBlbmRpbmdTY3JpcHQpXG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLnJ1blBhcnNpbmdMb29wRm9yQ3VycmVudENodW5rID0gZnVuY3Rpb24gKHdyaXRlQ2FsbGJhY2ssIHNjcmlwdEhhbmRsZXIpIHtcbiAgICB0aGlzLl9ydW5QYXJzaW5nTG9vcChzY3JpcHRIYW5kbGVyKTtcblxuICAgIGlmIChzY3JpcHRIYW5kbGVyICYmIHRoaXMucGVuZGluZ1NjcmlwdCkge1xuICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5wZW5kaW5nU2NyaXB0O1xuXG4gICAgICAgIHRoaXMucGVuZGluZ1NjcmlwdCA9IG51bGw7XG5cbiAgICAgICAgc2NyaXB0SGFuZGxlcihzY3JpcHQpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAod3JpdGVDYWxsYmFjaylcbiAgICAgICAgd3JpdGVDYWxsYmFjaygpO1xufTtcblxuLy9UZXh0IHBhcnNpbmdcblBhcnNlci5wcm90b3R5cGUuX3NldHVwVG9rZW5pemVyQ0RBVEFNb2RlID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBjdXJyZW50ID0gdGhpcy5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xuXG4gICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IGN1cnJlbnQgJiYgY3VycmVudCAhPT0gdGhpcy5kb2N1bWVudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KSAhPT0gTlMuSFRNTCAmJiAhdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fc3dpdGNoVG9UZXh0UGFyc2luZyA9IGZ1bmN0aW9uIChjdXJyZW50VG9rZW4sIG5leHRUb2tlbml6ZXJTdGF0ZSkge1xuICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcbiAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IG5leHRUb2tlbml6ZXJTdGF0ZTtcbiAgICB0aGlzLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHRoaXMuaW5zZXJ0aW9uTW9kZTtcbiAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBURVhUX01PREU7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLnN3aXRjaFRvUGxhaW50ZXh0UGFyc2luZyA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBURVhUX01PREU7XG4gICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7XG4gICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5QTEFJTlRFWFQ7XG59O1xuXG4vL0ZyYWdtZW50IHBhcnNpbmdcblBhcnNlci5wcm90b3R5cGUuX2dldEFkanVzdGVkQ3VycmVudEVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wID09PSAwICYmIHRoaXMuZnJhZ21lbnRDb250ZXh0ID9cbiAgICAgICAgdGhpcy5mcmFnbWVudENvbnRleHQgOlxuICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbm9kZSA9IHRoaXMuZnJhZ21lbnRDb250ZXh0O1xuXG4gICAgZG8ge1xuICAgICAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG5vZGUpID09PSAkLkZPUk0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBub2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG5vZGUpO1xuICAgIH0gd2hpbGUgKG5vZGUpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5faW5pdFRva2VuaXplckZvckZyYWdtZW50UGFyc2luZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLmZyYWdtZW50Q29udGV4dCk7XG5cbiAgICAgICAgaWYgKHRuID09PSAkLlRJVExFIHx8IHRuID09PSAkLlRFWFRBUkVBKVxuICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7XG5cbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuWE1QIHx8IHRuID09PSAkLklGUkFNRSB8fFxuICAgICAgICAgICAgICAgICB0biA9PT0gJC5OT0VNQkVEIHx8IHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLk5PU0NSSVBUKVxuICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQVdURVhUO1xuXG4gICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVClcbiAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuU0NSSVBUX0RBVEE7XG5cbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUExBSU5URVhUKVxuICAgICAgICAgICAgdGhpcy50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5QTEFJTlRFWFQ7XG4gICAgfVxufTtcblxuLy9UcmVlIG11dGF0aW9uXG5QYXJzZXIucHJvdG90eXBlLl9zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICB0aGlzLnRyZWVBZGFwdGVyLnNldERvY3VtZW50VHlwZSh0aGlzLmRvY3VtZW50LCB0b2tlbi5uYW1lLCB0b2tlbi5wdWJsaWNJZCwgdG9rZW4uc3lzdGVtSWQpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fYXR0YWNoRWxlbWVudFRvVHJlZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpXG4gICAgICAgIHRoaXMuX2Zvc3RlclBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnRUbXBsQ29udGVudCB8fCB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBlbGVtZW50KTtcbiAgICB9XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9hcHBlbmRFbGVtZW50ID0gZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICB2YXIgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcblxuICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCk7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9pbnNlcnRFbGVtZW50ID0gZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICB2YXIgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0b2tlbi50YWdOYW1lLCBuYW1lc3BhY2VVUkksIHRva2VuLmF0dHJzKTtcblxuICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUoZWxlbWVudCk7XG4gICAgdGhpcy5vcGVuRWxlbWVudHMucHVzaChlbGVtZW50KTtcbn07XG5cblBhcnNlci5wcm90b3R5cGUuX2luc2VydEZha2VFbGVtZW50ID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcbiAgICB2YXIgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XG5cbiAgICB0aGlzLl9hdHRhY2hFbGVtZW50VG9UcmVlKGVsZW1lbnQpO1xuICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9pbnNlcnRUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIHZhciB0bXBsID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIE5TLkhUTUwsIHRva2VuLmF0dHJzKSxcbiAgICAgICAgY29udGVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgdGhpcy50cmVlQWRhcHRlci5zZXRUZW1wbGF0ZUNvbnRlbnQodG1wbCwgY29udGVudCk7XG4gICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZSh0bXBsKTtcbiAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5faW5zZXJ0RmFrZVJvb3RFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBlbGVtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCQuSFRNTCwgTlMuSFRNTCwgW10pO1xuXG4gICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcbiAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fYXBwZW5kQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAodG9rZW4sIHBhcmVudCkge1xuICAgIHZhciBjb21tZW50Tm9kZSA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlQ29tbWVudE5vZGUodG9rZW4uZGF0YSk7XG5cbiAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHBhcmVudCwgY29tbWVudE5vZGUpO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5faW5zZXJ0Q2hhcmFjdGVycyA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIGlmICh0aGlzLl9zaG91bGRGb3N0ZXJQYXJlbnRPbkluc2VydGlvbigpKVxuICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRUZXh0KHRva2VuLmNoYXJzKTtcblxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50IHx8IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG5cbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KHBhcmVudCwgdG9rZW4uY2hhcnMpO1xuICAgIH1cbn07XG5cblBhcnNlci5wcm90b3R5cGUuX2Fkb3B0Tm9kZXMgPSBmdW5jdGlvbiAoZG9ub3IsIHJlY2lwaWVudCkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIHZhciBjaGlsZCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb25vcik7XG5cbiAgICAgICAgaWYgKCFjaGlsZClcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShjaGlsZCk7XG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocmVjaXBpZW50LCBjaGlsZCk7XG4gICAgfVxufTtcblxuLy9Ub2tlbiBwcm9jZXNzaW5nXG5QYXJzZXIucHJvdG90eXBlLl9zaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50ID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7XG5cbiAgICBpZiAoIWN1cnJlbnQgfHwgY3VycmVudCA9PT0gdGhpcy5kb2N1bWVudClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCk7XG5cbiAgICBpZiAobnMgPT09IE5TLkhUTUwpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09ICQuQU5OT1RBVElPTl9YTUwgJiYgbnMgPT09IE5TLk1BVEhNTCAmJlxuICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOICYmIHRva2VuLnRhZ05hbWUgPT09ICQuU1ZHKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICB2YXIgaXNDaGFyYWN0ZXJUb2tlbiA9IHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DSEFSQUNURVJfVE9LRU4gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOLFxuICAgICAgICBpc01hdGhNTFRleHRTdGFydFRhZyA9IHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50YWdOYW1lICE9PSAkLk1HTFlQSCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgIT09ICQuTUFMSUdOTUFSSztcblxuICAgIGlmICgoaXNNYXRoTUxUZXh0U3RhcnRUYWcgfHwgaXNDaGFyYWN0ZXJUb2tlbikgJiYgdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQsIE5TLk1BVEhNTCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIGlmICgodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiB8fCBpc0NoYXJhY3RlclRva2VuKSAmJiB0aGlzLl9pc0ludGVncmF0aW9uUG9pbnQoY3VycmVudCwgTlMuSFRNTCkpXG4gICAgICAgIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiB0b2tlbi50eXBlICE9PSBUb2tlbml6ZXIuRU9GX1RPS0VOO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fcHJvY2Vzc1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgX1t0aGlzLmluc2VydGlvbk1vZGVdW3Rva2VuLnR5cGVdKHRoaXMsIHRva2VuKTtcbn07XG5cblBhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NUb2tlbkluQm9keU1vZGUgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICBfW0lOX0JPRFlfTU9ERV1bdG9rZW4udHlwZV0odGhpcywgdG9rZW4pO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOKVxuICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTilcbiAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xuXG4gICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOKVxuICAgICAgICBpbnNlcnRDaGFyYWN0ZXJzKHRoaXMsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5DT01NRU5UX1RPS0VOKVxuICAgICAgICBhcHBlbmRDb21tZW50KHRoaXMsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4pXG4gICAgICAgIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG5cbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuRU5EX1RBR19UT0tFTilcbiAgICAgICAgZW5kVGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzSW5wdXRUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIGlmICh0aGlzLl9zaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KHRva2VuKSlcbiAgICAgICAgdGhpcy5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbik7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59O1xuXG4vL0ludGVncmF0aW9uIHBvaW50c1xuUGFyc2VyLnByb3RvdHlwZS5faXNJbnRlZ3JhdGlvblBvaW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIGZvcmVpZ25OUykge1xuICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSxcbiAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KSxcbiAgICAgICAgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIGZvcmVpZ25Db250ZW50LmlzSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzLCBmb3JlaWduTlMpO1xufTtcblxuLy9BY3RpdmUgZm9ybWF0dGluZyBlbGVtZW50cyByZWNvbnN0cnVjdGlvblxuUGFyc2VyLnByb3RvdHlwZS5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxpc3RMZW5ndGggPSB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAobGlzdExlbmd0aCkge1xuICAgICAgICB2YXIgdW5vcGVuSWR4ID0gbGlzdExlbmd0aCxcbiAgICAgICAgICAgIGVudHJ5ID0gbnVsbDtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgICB1bm9wZW5JZHgtLTtcbiAgICAgICAgICAgIGVudHJ5ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllc1t1bm9wZW5JZHhdO1xuXG4gICAgICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSB8fCB0aGlzLm9wZW5FbGVtZW50cy5jb250YWlucyhlbnRyeS5lbGVtZW50KSkge1xuICAgICAgICAgICAgICAgIHVub3BlbklkeCsrO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlICh1bm9wZW5JZHggPiAwKTtcblxuICAgICAgICBmb3IgKHZhciBpID0gdW5vcGVuSWR4OyBpIDwgbGlzdExlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XG4gICAgICAgICAgICB0aGlzLl9pbnNlcnRFbGVtZW50KGVudHJ5LnRva2VuLCB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbnRyeS5lbGVtZW50KSk7XG4gICAgICAgICAgICBlbnRyeS5lbGVtZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbi8vQ2xvc2UgZWxlbWVudHNcblBhcnNlci5wcm90b3R5cGUuX2Nsb3NlVGFibGVDZWxsID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICB0aGlzLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhYmxlQ2VsbFBvcHBlZCgpO1xuICAgIHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fUk9XX01PREU7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9jbG9zZVBFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKCQuUCk7XG4gICAgdGhpcy5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuUCk7XG59O1xuXG4vL0luc2VydGlvbiBtb2Rlc1xuUGFyc2VyLnByb3RvdHlwZS5fcmVzZXRJbnNlcnRpb25Nb2RlID0gZnVuY3Rpb24gKCkge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCwgbGFzdCA9IGZhbHNlOyBpID49IDA7IGktLSkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuXG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICBsYXN0ID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZnJhZ21lbnRDb250ZXh0KVxuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSxcbiAgICAgICAgICAgIG5ld0luc2VydGlvbk1vZGUgPSBJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbdG5dO1xuXG4gICAgICAgIGlmIChuZXdJbnNlcnRpb25Nb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBuZXdJbnNlcnRpb25Nb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBlbHNlIGlmICghbGFzdCAmJiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpKSB7XG4gICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9DRUxMX01PREU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKCFsYXN0ICYmIHRuID09PSAkLkhFQUQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IElOX0hFQURfTU9ERTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU0VMRUNUKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKSB7XG4gICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmN1cnJlbnRUbXBsSW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSFRNTCkge1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5oZWFkRWxlbWVudCA/IEFGVEVSX0hFQURfTU9ERSA6IEJFRk9SRV9IRUFEX01PREU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IElOX0JPRFlfTU9ERTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0ID0gZnVuY3Rpb24gKHNlbGVjdElkeCkge1xuICAgIGlmIChzZWxlY3RJZHggPiAwKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSBzZWxlY3RJZHggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICAgICAgICB2YXIgYW5jZXN0b3IgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXSxcbiAgICAgICAgICAgICAgICB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShhbmNlc3Rvcik7XG5cbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSlcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBJTl9TRUxFQ1RfTU9ERTtcbn07XG5cblBhcnNlci5wcm90b3R5cGUuX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZSA9IGZ1bmN0aW9uIChtb2RlKSB7XG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnB1c2gobW9kZSk7XG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wKys7XG4gICAgdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGUgPSBtb2RlO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fcG9wVG1wbEluc2VydGlvbk1vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrLnBvcCgpO1xuICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcC0tO1xuICAgIHRoaXMuY3VycmVudFRtcGxJbnNlcnRpb25Nb2RlID0gdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrW3RoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcF07XG59O1xuXG4vL0Zvc3RlciBwYXJlbnRpbmdcblBhcnNlci5wcm90b3R5cGUuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSO1xufTtcblxuUGFyc2VyLnByb3RvdHlwZS5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCAmJiB0aGlzLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxvY2F0aW9uID0ge1xuICAgICAgICBwYXJlbnQ6IG51bGwsXG4gICAgICAgIGJlZm9yZUVsZW1lbnQ6IG51bGxcbiAgICB9O1xuXG4gICAgZm9yICh2YXIgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xuICAgICAgICB2YXIgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXSxcbiAgICAgICAgICAgIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKG9wZW5FbGVtZW50KSxcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpO1xuXG4gICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTCkge1xuICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQob3BlbkVsZW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQUJMRSkge1xuICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRQYXJlbnROb2RlKG9wZW5FbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKGxvY2F0aW9uLnBhcmVudClcbiAgICAgICAgICAgICAgICBsb2NhdGlvbi5iZWZvcmVFbGVtZW50ID0gb3BlbkVsZW1lbnQ7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbaSAtIDFdO1xuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICghbG9jYXRpb24ucGFyZW50KVxuICAgICAgICBsb2NhdGlvbi5wYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1swXTtcblxuICAgIHJldHVybiBsb2NhdGlvbjtcbn07XG5cblBhcnNlci5wcm90b3R5cGUuX2Zvc3RlclBhcmVudEVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xuXG4gICAgaWYgKGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCwgbG9jYXRpb24uYmVmb3JlRWxlbWVudCk7XG4gICAgZWxzZVxuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGxvY2F0aW9uLnBhcmVudCwgZWxlbWVudCk7XG59O1xuXG5QYXJzZXIucHJvdG90eXBlLl9mb3N0ZXJQYXJlbnRUZXh0ID0gZnVuY3Rpb24gKGNoYXJzKSB7XG4gICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uKCk7XG5cbiAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudClcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0QmVmb3JlKGxvY2F0aW9uLnBhcmVudCwgY2hhcnMsIGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpO1xuICAgIGVsc2VcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5pbnNlcnRUZXh0KGxvY2F0aW9uLnBhcmVudCwgY2hhcnMpO1xufTtcblxuLy9TcGVjaWFsIGVsZW1lbnRzXG5QYXJzZXIucHJvdG90eXBlLl9pc1NwZWNpYWxFbGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksXG4gICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCk7XG5cbiAgICByZXR1cm4gSFRNTC5TUEVDSUFMX0VMRU1FTlRTW25zXVt0bl07XG59O1xuXG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNhZG9wdGlvbkFnZW5jeSlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vU3RlcHMgNS04IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhT2J0YWluRm9ybWF0dGluZ0VsZW1lbnRFbnRyeShwLCB0b2tlbikge1xuICAgIHZhciBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRva2VuLnRhZ05hbWUpO1xuXG4gICAgaWYgKGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICAgICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSBpZiAoIXAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG9rZW4udGFnTmFtZSkpXG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgcmV0dXJuIGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG59XG5cbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxuZnVuY3Rpb24gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcbiAgICB2YXIgZnVydGhlc3RCbG9jayA9IG51bGw7XG5cbiAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG5cbiAgICAgICAgaWYgKGVsZW1lbnQgPT09IGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudClcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQpKVxuICAgICAgICAgICAgZnVydGhlc3RCbG9jayA9IGVsZW1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKCFmdXJ0aGVzdEJsb2NrKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsRWxlbWVudFBvcHBlZChmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVydGhlc3RCbG9jaztcbn1cblxuLy9TdGVwIDEzIG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5uZXJMb29wKHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50KSB7XG4gICAgdmFyIGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jayxcbiAgICAgICAgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihmdXJ0aGVzdEJsb2NrKTtcblxuICAgIGZvciAodmFyIGkgPSAwLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQ7IGVsZW1lbnQgIT09IGZvcm1hdHRpbmdFbGVtZW50OyBpKyssIGVsZW1lbnQgPSBuZXh0RWxlbWVudCkge1xuICAgICAgICAvL05PVEU6IHN0b3JlIG5leHQgZWxlbWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24gKGl0IG1heSBiZSBkZWxldGVkIGZyb20gdGhlIHN0YWNrIGJ5IHN0ZXAgOS41KVxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGVsZW1lbnQpO1xuXG4gICAgICAgIHZhciBlbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnkoZWxlbWVudCksXG4gICAgICAgICAgICBjb3VudGVyT3ZlcmZsb3cgPSBlbGVtZW50RW50cnkgJiYgaSA+PSBBQV9JTk5FUl9MT09QX0lURVIsXG4gICAgICAgICAgICBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XG5cbiAgICAgICAgaWYgKHNob3VsZFJlbW92ZUZyb21PcGVuRWxlbWVudHMpIHtcbiAgICAgICAgICAgIGlmIChjb3VudGVyT3ZlcmZsb3cpXG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucmVtb3ZlRW50cnkoZWxlbWVudEVudHJ5KTtcblxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50ID0gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KTtcblxuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKVxuICAgICAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZWxlbWVudEVudHJ5O1xuXG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xuICAgICAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChlbGVtZW50LCBsYXN0RWxlbWVudCk7XG4gICAgICAgICAgICBsYXN0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGFzdEVsZW1lbnQ7XG59XG5cbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhUmVjcmVhdGVFbGVtZW50RnJvbUVudHJ5KHAsIGVsZW1lbnRFbnRyeSkge1xuICAgIHZhciBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnRFbnRyeS5lbGVtZW50KSxcbiAgICAgICAgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XG5cbiAgICBwLm9wZW5FbGVtZW50cy5yZXBsYWNlKGVsZW1lbnRFbnRyeS5lbGVtZW50LCBuZXdFbGVtZW50KTtcbiAgICBlbGVtZW50RW50cnkuZWxlbWVudCA9IG5ld0VsZW1lbnQ7XG5cbiAgICByZXR1cm4gbmV3RWxlbWVudDtcbn1cblxuLy9TdGVwIDE0IG9mIHRoZSBhbGdvcml0aG1cbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xuICAgIGlmIChwLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcoY29tbW9uQW5jZXN0b3IpKVxuICAgICAgICBwLl9mb3N0ZXJQYXJlbnRFbGVtZW50KGxhc3RFbGVtZW50KTtcblxuICAgIGVsc2Uge1xuICAgICAgICB2YXIgdG4gPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY29tbW9uQW5jZXN0b3IpLFxuICAgICAgICAgICAgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XG5cbiAgICAgICAgaWYgKHRuID09PSAkLlRFTVBMQVRFICYmIG5zID09PSBOUy5IVE1MKVxuICAgICAgICAgICAgY29tbW9uQW5jZXN0b3IgPSBwLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChjb21tb25BbmNlc3Rvcik7XG5cbiAgICAgICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChjb21tb25BbmNlc3RvciwgbGFzdEVsZW1lbnQpO1xuICAgIH1cbn1cblxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXG5mdW5jdGlvbiBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XG4gICAgdmFyIG5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KSxcbiAgICAgICAgdG9rZW4gPSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LnRva2VuLFxuICAgICAgICBuZXdFbGVtZW50ID0gcC50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KHRva2VuLnRhZ05hbWUsIG5zLCB0b2tlbi5hdHRycyk7XG5cbiAgICBwLl9hZG9wdE5vZGVzKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xuICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XG5cbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LnRva2VuKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcblxuICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgIHAub3BlbkVsZW1lbnRzLmluc2VydEFmdGVyKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xufVxuXG4vL0FsZ29yaXRobSBlbnRyeSBwb2ludFxuZnVuY3Rpb24gY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKSB7XG4gICAgdmFyIGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IEFBX09VVEVSX0xPT1BfSVRFUjsgaSsrKSB7XG4gICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4sIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuXG4gICAgICAgIGlmICghZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSlcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIHZhciBmdXJ0aGVzdEJsb2NrID0gYWFPYnRhaW5GdXJ0aGVzdEJsb2NrKHAsIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuXG4gICAgICAgIGlmICghZnVydGhlc3RCbG9jaylcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmJvb2ttYXJrID0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeTtcblxuICAgICAgICB2YXIgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpLFxuICAgICAgICAgICAgY29tbW9uQW5jZXN0b3IgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3Rvcihmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuXG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCk7XG4gICAgICAgIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xuICAgIH1cbn1cblxuXG4vL0dlbmVyaWMgdG9rZW4gaGFuZGxlcnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBpZ25vcmVUb2tlbigpIHtcbiAgICAvL05PVEU6IGRvIG5vdGhpbmcgPSlcbn1cblxuZnVuY3Rpb24gYXBwZW5kQ29tbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHwgcC5vcGVuRWxlbWVudHMuY3VycmVudCk7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb1Jvb3RIdG1sRWxlbWVudChwLCB0b2tlbikge1xuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb0RvY3VtZW50KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kQ29tbWVudE5vZGUodG9rZW4sIHAuZG9jdW1lbnQpO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRDaGFyYWN0ZXJzKHAsIHRva2VuKSB7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG59XG5cbmZ1bmN0aW9uIHN0b3BQYXJzaW5nKHApIHtcbiAgICBwLnN0b3BwZWQgPSB0cnVlO1xufVxuXG4vLzEyLjIuNS40LjEgVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gZG9jdHlwZUluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xuXG4gICAgdmFyIG1vZGUgPSB0b2tlbi5mb3JjZVF1aXJrcyA/XG4gICAgICAgIEhUTUwuRE9DVU1FTlRfTU9ERS5RVUlSS1MgOlxuICAgICAgICBkb2N0eXBlLmdldERvY3VtZW50TW9kZSh0b2tlbi5uYW1lLCB0b2tlbi5wdWJsaWNJZCwgdG9rZW4uc3lzdGVtSWQpO1xuXG4gICAgcC50cmVlQWRhcHRlci5zZXREb2N1bWVudE1vZGUocC5kb2N1bWVudCwgbW9kZSk7XG5cbiAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSFRNTF9NT0RFO1xufVxuXG5mdW5jdGlvbiB0b2tlbkluSW5pdGlhbE1vZGUocCwgdG9rZW4pIHtcbiAgICBwLnRyZWVBZGFwdGVyLnNldERvY3VtZW50TW9kZShwLmRvY3VtZW50LCBIVE1MLkRPQ1VNRU5UX01PREUuUVVJUktTKTtcbiAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSFRNTF9NT0RFO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG5cblxuLy8xMi4yLjUuNC4yIFRoZSBcImJlZm9yZSBodG1sXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKSB7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSEVBRF9NT0RFO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdG9rZW5CZWZvcmVIdG1sKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5IRUFEIHx8IHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIpXG4gICAgICAgIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIHRva2VuQmVmb3JlSHRtbChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEJFRk9SRV9IRUFEX01PREU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cblxuXG4vLzEyLjIuNS40LjMgVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQmVmb3JlSGVhZChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuSFRNTClcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuSEVBRCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5oZWFkRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0hFQURfTU9ERTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKVxuICAgICAgICB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiB0b2tlbkJlZm9yZUhlYWQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudCgkLkhFQUQpO1xuICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0hFQURfTU9ERTtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuXG5cbi8vMTIuMi41LjQuNCBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuSFRNTClcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSlcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5USVRMRSlcbiAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkNEQVRBKTtcblxuICAgIC8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgYWN0IGFzIGFuIGludGVyYWN0aXZlIHVzZXIgYWdlbnQgd2l0aCBlbmFibGVkIHNjcmlwdGluZywgc28gd2UgcGFyc2VcbiAgICAvLzxub3NjcmlwdD4gYXMgYSByYXd0ZXh0LlxuICAgIGVsc2UgaWYgKHRuID09PSAkLk5PU0NSSVBUIHx8IHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLlNUWUxFKVxuICAgICAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5SQVdURVhUKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVClcbiAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuU0NSSVBUX0RBVEEpO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcbiAgICAgICAgcC5faW5zZXJ0VGVtcGxhdGUodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RFTVBMQVRFX01PREU7XG4gICAgICAgIHAuX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZShJTl9URU1QTEFURV9NT0RFKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biAhPT0gJC5IRUFEKVxuICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0luSGVhZChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuSEVBRCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfSEVBRF9NT0RFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIgfHwgdG4gPT09ICQuSFRNTClcbiAgICAgICAgdG9rZW5JbkhlYWQocCwgdG9rZW4pO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC5fcG9wVG1wbEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEFGVEVSX0hFQURfTU9ERTtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuXG5cbi8vMTIuMi41LjQuNiBUaGUgXCJhZnRlciBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuSFRNTClcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuQk9EWSkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0JPRFlfTU9ERTtcbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5GUkFNRVNFVCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fRlJBTUVTRVRfTU9ERTtcbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5CQVNFIHx8IHRuID09PSAkLkJBU0VGT05UIHx8IHRuID09PSAkLkJHU09VTkQgfHwgdG4gPT09ICQuTElOSyB8fCB0biA9PT0gJC5NRVRBIHx8XG4gICAgICAgICAgICAgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuU0NSSVBUIHx8IHRuID09PSAkLlNUWUxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLlRJVExFKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnB1c2gocC5oZWFkRWxlbWVudCk7XG4gICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpXG4gICAgICAgIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJIZWFkKHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5CT0RZIHx8IHRuID09PSAkLkhUTUwgfHwgdG4gPT09ICQuQlIpXG4gICAgICAgIHRva2VuQWZ0ZXJIZWFkKHAsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKVxuICAgICAgICBlbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiB0b2tlbkFmdGVySGVhZChwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KCQuQk9EWSk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQk9EWV9NT0RFO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG5cblxuLy8xMi4yLjUuNC43IFRoZSBcImluIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xufVxuXG5mdW5jdGlvbiBjaGFyYWN0ZXJJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBodG1sU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKVxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4uYXR0cnMpO1xufVxuXG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuXG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbiAgICAgICAgcC50cmVlQWRhcHRlci5hZG9wdEF0dHJpYnV0ZXMoYm9keUVsZW1lbnQsIHRva2VuLmF0dHJzKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgYm9keUVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy50cnlQZWVrUHJvcGVybHlOZXN0ZWRCb2R5RWxlbWVudCgpO1xuXG4gICAgaWYgKHAuZnJhbWVzZXRPayAmJiBib2R5RWxlbWVudCkge1xuICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUoYm9keUVsZW1lbnQpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BBbGxVcFRvSHRtbEVsZW1lbnQoKTtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0ZSQU1FU0VUX01PREU7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG5cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cblxuZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHZhciB0biA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2KVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuXG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgcHJlIGJsb2NrcyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxuICAgIHAuc2tpcE5leHROZXdMaW5lID0gdHJ1ZTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xuXG4gICAgaWYgKCFwLmZvcm1FbGVtZW50IHx8IGluVGVtcGxhdGUpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcbiAgICAgICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcblxuICAgICAgICBpZiAoIWluVGVtcGxhdGUpXG4gICAgICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcblxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV0sXG4gICAgICAgICAgICBlbGVtZW50VG4gPSBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksXG4gICAgICAgICAgICBjbG9zZVRuID0gbnVsbDtcblxuICAgICAgICBpZiAodG4gPT09ICQuTEkgJiYgZWxlbWVudFRuID09PSAkLkxJKVxuICAgICAgICAgICAgY2xvc2VUbiA9ICQuTEk7XG5cbiAgICAgICAgZWxzZSBpZiAoKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKSAmJiAoZWxlbWVudFRuID09PSAkLkREIHx8IGVsZW1lbnRUbiA9PT0gJC5EVCkpXG4gICAgICAgICAgICBjbG9zZVRuID0gZWxlbWVudFRuO1xuXG4gICAgICAgIGlmIChjbG9zZVRuKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihjbG9zZVRuKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZChjbG9zZVRuKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVsZW1lbnRUbiAhPT0gJC5BRERSRVNTICYmIGVsZW1lbnRUbiAhPT0gJC5ESVYgJiYgZWxlbWVudFRuICE9PSAkLlAgJiYgcC5faXNTcGVjaWFsRWxlbWVudChlbGVtZW50KSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuXG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUO1xufVxuXG5mdW5jdGlvbiBidXR0b25TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkJVVFRPTik7XG4gICAgfVxuXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIGFjdGl2ZUVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSgkLkEpO1xuXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnRFbnRyeSkge1xuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShhY3RpdmVFbGVtZW50RW50cnkpO1xuICAgIH1cblxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcblxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHtcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcbiAgICAgICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICB9XG5cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdGFibGVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldERvY3VtZW50TW9kZShwLmRvY3VtZW50KSAhPT0gSFRNTC5ET0NVTUVOVF9NT0RFLlFVSVJLUyAmJiBwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7XG59XG5cbmZ1bmN0aW9uIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuXG4gICAgdmFyIGlucHV0VHlwZSA9IFRva2VuaXplci5nZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xuXG4gICAgaWYgKCFpbnB1dFR5cGUgfHwgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgIT09IEhJRERFTl9JTlBVVF9UWVBFKVxuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcblxufVxuXG5mdW5jdGlvbiBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5cbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XG5cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuTUVOVUlURU0pXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB0b2tlbi50YWdOYW1lID0gJC5JTUc7XG4gICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gdGV4dGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgdGV4dGFyZWEgZWxlbWVudHMgYXJlIGlnbm9yZWQgYXMgYW4gYXV0aG9yaW5nIGNvbnZlbmllbmNlLilcbiAgICBwLnNraXBOZXh0TmV3TGluZSA9IHRydWU7XG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7XG4gICAgcC5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBwLmluc2VydGlvbk1vZGU7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gVEVYVF9NT0RFO1xufVxuXG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcblxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7XG59XG5cbmZ1bmN0aW9uIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7XG59XG5cbi8vTk9URTogaGVyZSB3ZSBhc3N1bWUgdGhhdCB3ZSBhbHdheXMgYWN0IGFzIGFuIHVzZXIgYWdlbnQgd2l0aCBlbmFibGVkIHBsdWdpbnMsIHNvIHdlIHBhcnNlXG4vLzxub2VtYmVkPiBhcyBhIHJhd3RleHQuXG5mdW5jdGlvbiBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9zd2l0Y2hUb1RleHRQYXJzaW5nKHRva2VuLCBUb2tlbml6ZXIuTU9ERS5SQVdURVhUKTtcbn1cblxuZnVuY3Rpb24gc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xuXG4gICAgaWYgKHAuaW5zZXJ0aW9uTW9kZSA9PT0gSU5fVEFCTEVfTU9ERSB8fFxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX0NBUFRJT05fTU9ERSB8fFxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX1RBQkxFX0JPRFlfTU9ERSB8fFxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX1JPV19NT0RFIHx8XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSU5fQ0VMTF9NT0RFKVxuXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9JTl9UQUJMRV9NT0RFO1xuXG4gICAgZWxzZVxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9TRUxFQ1RfTU9ERTtcbn1cblxuZnVuY3Rpb24gb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRJT04pXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cblxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuXG5mdW5jdGlvbiBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSlcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5SVEMpO1xuXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5cbmZ1bmN0aW9uIG1lbnVpdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuTUVOVUlURU0pXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgLy8gVE9ETyBuZWVkcyBjbGFyaWZpY2F0aW9uLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL3B1bGwvOTA3L2ZpbGVzI3I3MzUwNTg3N1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG5cbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbn1cblxuZnVuY3Rpb24gbWVudVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xuXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk1FTlVJVEVNKVxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcblxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xufVxuXG5mdW5jdGlvbiBtYXRoU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuXG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbik7XG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XG5cbiAgICBpZiAodG9rZW4uc2VsZkNsb3NpbmcpXG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XG4gICAgZWxzZVxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xufVxuXG5mdW5jdGlvbiBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG5cbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcblxuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZylcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcbiAgICBlbHNlXG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG59XG5cbi8vT1BUSU1JWkFUSU9OOiBJbnRlZ2VyIGNvbXBhcmlzb25zIGFyZSBsb3ctY29zdCwgc28gd2UgY2FuIHVzZSB2ZXJ5IGZhc3QgdGFnIG5hbWUgbGVuZ3RoIGZpbHRlcnMgaGVyZS5cbi8vSXQncyBmYXN0ZXIgdGhhbiB1c2luZyBkaWN0aW9uYXJ5LlxuZnVuY3Rpb24gc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgc3dpdGNoICh0bi5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkkgfHwgdG4gPT09ICQuUyB8fCB0biA9PT0gJC5CIHx8IHRuID09PSAkLlUpXG4gICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUClcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5BKVxuICAgICAgICAgICAgICAgIGFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuREwgfHwgdG4gPT09ICQuT0wgfHwgdG4gPT09ICQuVUwpXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYpXG4gICAgICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkxJIHx8IHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKVxuICAgICAgICAgICAgICAgIGxpc3RJdGVtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5FTSB8fCB0biA9PT0gJC5UVClcbiAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CUilcbiAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IUilcbiAgICAgICAgICAgICAgICBoclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUkIpXG4gICAgICAgICAgICAgICAgcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlJUIHx8IHRuID09PSAkLlJQKVxuICAgICAgICAgICAgICAgIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5USCAmJiB0biAhPT0gJC5URCAmJiB0biAhPT0gJC5UUilcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuRElWIHx8IHRuID09PSAkLkRJUiB8fCB0biA9PT0gJC5OQVYpXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUFJFKVxuICAgICAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQklHKVxuICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklNRyB8fCB0biA9PT0gJC5XQlIpXG4gICAgICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuWE1QKVxuICAgICAgICAgICAgICAgIHhtcFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1ZHKVxuICAgICAgICAgICAgICAgIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUlRDKVxuICAgICAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5DT0wpXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkhUTUwpXG4gICAgICAgICAgICAgICAgaHRtbFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5MSU5LIHx8IHRuID09PSAkLk1FVEEpXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CT0RZKVxuICAgICAgICAgICAgICAgIGJvZHlTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BSU4pXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRk9STSlcbiAgICAgICAgICAgICAgICBmb3JtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DT0RFIHx8IHRuID09PSAkLkZPTlQpXG4gICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTk9CUilcbiAgICAgICAgICAgICAgICBub2JyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5BUkVBKVxuICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1BVEgpXG4gICAgICAgICAgICAgICAgbWF0aFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUVOVSlcbiAgICAgICAgICAgICAgICBtZW51U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5IRUFEKVxuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5USVRMRSlcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkFTSURFKVxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNNQUxMKVxuICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKVxuICAgICAgICAgICAgICAgIHRhYmxlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5FTUJFRClcbiAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JTlBVVClcbiAgICAgICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUEFSQU0gfHwgdG4gPT09ICQuVFJBQ0spXG4gICAgICAgICAgICAgICAgcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklNQUdFKVxuICAgICAgICAgICAgICAgIGltYWdlU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5GUkFNRSAmJiB0biAhPT0gJC5UQk9EWSAmJiB0biAhPT0gJC5URk9PVCAmJiB0biAhPT0gJC5USEVBRClcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuU0NSSVBUKVxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQ0VOVEVSIHx8IHRuID09PSAkLkZJR1VSRSB8fCB0biA9PT0gJC5GT09URVIgfHwgdG4gPT09ICQuSEVBREVSIHx8IHRuID09PSAkLkhHUk9VUClcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CVVRUT04pXG4gICAgICAgICAgICAgICAgYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TVFJJS0UgfHwgdG4gPT09ICQuU1RST05HKVxuICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkFQUExFVCB8fCB0biA9PT0gJC5PQkpFQ1QpXG4gICAgICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5LRVlHRU4pXG4gICAgICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU09VUkNFKVxuICAgICAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JRlJBTUUpXG4gICAgICAgICAgICAgICAgaWZyYW1lU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TRUxFQ1QpXG4gICAgICAgICAgICAgICAgc2VsZWN0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRJT04pXG4gICAgICAgICAgICAgICAgb3B0Z3JvdXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQkdTT1VORClcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRFVEFJTFMgfHwgdG4gPT09ICQuQUREUkVTUyB8fCB0biA9PT0gJC5BUlRJQ0xFIHx8IHRuID09PSAkLlNFQ1RJT04gfHwgdG4gPT09ICQuU1VNTUFSWSlcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5MSVNUSU5HKVxuICAgICAgICAgICAgICAgIHByZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFSUVVFRSlcbiAgICAgICAgICAgICAgICBhcHBsZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRU1CRUQpXG4gICAgICAgICAgICAgICAgbm9lbWJlZFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gIT09ICQuQ0FQVElPTilcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQkFTRUZPTlQpXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NRU5VSVRFTSlcbiAgICAgICAgICAgICAgICBtZW51aXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRlJBTUVTRVQpXG4gICAgICAgICAgICAgICAgZnJhbWVzZXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkZJRUxEU0VUKVxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRFWFRBUkVBKVxuICAgICAgICAgICAgICAgIHRleHRhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSlcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk5PU0NSSVBUKVxuICAgICAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVEdST1VQKVxuICAgICAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5DT0xHUk9VUClcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuUExBSU5URVhUKVxuICAgICAgICAgICAgICAgIHBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQkxPQ0tRVU9URSB8fCB0biA9PT0gJC5GSUdDQVBUSU9OKVxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGJvZHlFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEFGVEVSX0JPRFlfTU9ERTtcbn1cblxuZnVuY3Rpb24gaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpIHtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQk9EWV9NT0RFO1xuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZm9ybUVuZFRhZ0luQm9keShwKSB7XG4gICAgdmFyIGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwLFxuICAgICAgICBmb3JtRWxlbWVudCA9IHAuZm9ybUVsZW1lbnQ7XG5cbiAgICBpZiAoIWluVGVtcGxhdGUpXG4gICAgICAgIHAuZm9ybUVsZW1lbnQgPSBudWxsO1xuXG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuXG4gICAgICAgIGlmIChpblRlbXBsYXRlKVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuRk9STSk7XG5cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGZvcm1FbGVtZW50KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHBFbmRUYWdJbkJvZHkocCkge1xuICAgIGlmICghcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudCgkLlApO1xuXG4gICAgcC5fY2xvc2VQRWxlbWVudCgpO1xufVxuXG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luTGlzdEl0ZW1TY29wZSgkLkxJKSkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbigkLkxJKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZGRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRuKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzTnVtYmVyZWRIZWFkZXJJblNjb3BlKCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbE51bWJlcmVkSGVhZGVyUG9wcGVkKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KCQuQlIpO1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGZvciAodmFyIGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+IDA7IGktLSkge1xuICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xuXG4gICAgICAgIGlmIChwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IHRuKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0bik7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbEVsZW1lbnRQb3BwZWQoZWxlbWVudCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwLl9pc1NwZWNpYWxFbGVtZW50KGVsZW1lbnQpKVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgfVxufVxuXG4vL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuXG4vL0l0J3MgZmFzdGVyIHRoYW4gdXNpbmcgZGljdGlvbmFyeS5cbmZ1bmN0aW9uIGVuZFRhZ0luQm9keShwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBzd2l0Y2ggKHRuLmxlbmd0aCkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQSB8fCB0biA9PT0gJC5CIHx8IHRuID09PSAkLkkgfHwgdG4gPT09ICQuUyB8fCB0biA9PT0gJC5VKVxuICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlApXG4gICAgICAgICAgICAgICAgcEVuZFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkRMIHx8IHRuID09PSAkLlVMIHx8IHRuID09PSAkLk9MKVxuICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5MSSlcbiAgICAgICAgICAgICAgICBsaUVuZFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkREIHx8IHRuID09PSAkLkRUKVxuICAgICAgICAgICAgICAgIGRkRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYpXG4gICAgICAgICAgICAgICAgbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CUilcbiAgICAgICAgICAgICAgICBickVuZFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNIHx8IHRuID09PSAkLlRUKVxuICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkJJRylcbiAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5ESVIgfHwgdG4gPT09ICQuRElWIHx8IHRuID09PSAkLk5BVilcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQk9EWSlcbiAgICAgICAgICAgICAgICBib2R5RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSFRNTClcbiAgICAgICAgICAgICAgICBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRk9STSlcbiAgICAgICAgICAgICAgICBmb3JtRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQ09ERSB8fCB0biA9PT0gJC5GT05UIHx8IHRuID09PSAkLk5PQlIpXG4gICAgICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFJTiB8fCB0biA9PT0gJC5NRU5VKVxuICAgICAgICAgICAgICAgIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5BU0lERSlcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU01BTEwpXG4gICAgICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQ0VOVEVSIHx8IHRuID09PSAkLkZJR1VSRSB8fCB0biA9PT0gJC5GT09URVIgfHwgdG4gPT09ICQuSEVBREVSIHx8IHRuID09PSAkLkhHUk9VUClcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVBQTEVUIHx8IHRuID09PSAkLk9CSkVDVClcbiAgICAgICAgICAgICAgICBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TVFJJS0UgfHwgdG4gPT09ICQuU1RST05HKVxuICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkFERFJFU1MgfHwgdG4gPT09ICQuQVJUSUNMRSB8fCB0biA9PT0gJC5ERVRBSUxTIHx8IHRuID09PSAkLlNFQ1RJT04gfHwgdG4gPT09ICQuU1VNTUFSWSlcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFSUVVFRSlcbiAgICAgICAgICAgICAgICBhcHBsZXRFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5GSUVMRFNFVClcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXG4gICAgICAgICAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkJMT0NLUVVPVEUgfHwgdG4gPT09ICQuRklHQ0FQVElPTilcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0IDpcbiAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZW9mSW5Cb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHAudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcCA+IC0xKVxuICAgICAgICBlb2ZJblRlbXBsYXRlKHAsIHRva2VuKTtcblxuICAgIGVsc2VcbiAgICAgICAgcC5zdG9wcGVkID0gdHJ1ZTtcbn1cblxuLy8xMi4yLjUuNC44IFRoZSBcInRleHRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGVuZFRhZ0luVGV4dChwLCB0b2tlbikge1xuICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLlNDUklQVClcbiAgICAgICAgcC5wZW5kaW5nU2NyaXB0ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcblxuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xufVxuXG5cbmZ1bmN0aW9uIGVvZkluVGV4dChwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG5cblxuLy8xMi4yLjUuNC45IFRoZSBcImluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgdmFyIGN1clRuID0gcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWU7XG5cbiAgICBpZiAoY3VyVG4gPT09ICQuVEFCTEUgfHwgY3VyVG4gPT09ICQuVEJPRFkgfHwgY3VyVG4gPT09ICQuVEZPT1QgfHwgY3VyVG4gPT09ICQuVEhFQUQgfHwgY3VyVG4gPT09ICQuVFIpIHtcbiAgICAgICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zID0gW107XG4gICAgICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xuICAgICAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfVEVYVF9NT0RFO1xuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuaW5zZXJ0TWFya2VyKCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ0FQVElPTl9NT0RFO1xufVxuXG5mdW5jdGlvbiBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ09MVU1OX0dST1VQX01PREU7XG59XG5cbmZ1bmN0aW9uIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVDb250ZXh0KCk7XG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoJC5DT0xHUk9VUCk7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ09MVU1OX0dST1VQX01PREU7XG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbn1cblxuZnVuY3Rpb24gdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcbn1cblxuZnVuY3Rpb24gdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xuICAgIHAuX2luc2VydEZha2VFbGVtZW50KCQuVEJPRFkpO1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuXG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuVEFCTEUpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgdmFyIGlucHV0VHlwZSA9IFRva2VuaXplci5nZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xuXG4gICAgaWYgKGlucHV0VHlwZSAmJiBpbnB1dFR5cGUudG9Mb3dlckNhc2UoKSA9PT0gSElEREVOX0lOUFVUX1RZUEUpXG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuXG4gICAgZWxzZVxuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgaWYgKCFwLmZvcm1FbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIHN3aXRjaCAodG4ubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCB8fCB0biA9PT0gJC5UUilcbiAgICAgICAgICAgICAgICB0ZFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQ09MKVxuICAgICAgICAgICAgICAgIGNvbFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuRk9STSlcbiAgICAgICAgICAgICAgICBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSlcbiAgICAgICAgICAgICAgICB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNUWUxFKVxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEhFQUQpXG4gICAgICAgICAgICAgICAgdGJvZHlTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5JTlBVVClcbiAgICAgICAgICAgICAgICBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICBpZiAodG4gPT09ICQuU0NSSVBUKVxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5DQVBUSU9OKVxuICAgICAgICAgICAgICAgIGNhcHRpb25TdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkNPTEdST1VQKVxuICAgICAgICAgICAgICAgIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XG4gICAgfVxuXG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UQUJMRSkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRBQkxFKTtcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXG4gICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG5cbiAgICBlbHNlIGlmICh0biAhPT0gJC5CT0RZICYmIHRuICE9PSAkLkNBUFRJT04gJiYgdG4gIT09ICQuQ09MICYmIHRuICE9PSAkLkNPTEdST1VQICYmIHRuICE9PSAkLkhUTUwgJiZcbiAgICAgICAgICAgICB0biAhPT0gJC5UQk9EWSAmJiB0biAhPT0gJC5URCAmJiB0biAhPT0gJC5URk9PVCAmJiB0biAhPT0gJC5USCAmJiB0biAhPT0gJC5USEVBRCAmJiB0biAhPT0gJC5UUilcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XG4gICAgdmFyIHNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGUgPSBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQ7XG5cbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xuICAgIHAuX3Byb2Nlc3NUb2tlbkluQm9keU1vZGUodG9rZW4pO1xuICAgIHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCA9IHNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGU7XG59XG5cblxuLy8xMi4yLjUuNC4xMCBUaGUgXCJpbiB0YWJsZSB0ZXh0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XG4gICAgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLnB1c2godG9rZW4pO1xuICAgIHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IHRydWU7XG59XG5cbmZ1bmN0aW9uIHRva2VuSW5UYWJsZVRleHQocCwgdG9rZW4pIHtcbiAgICB2YXIgaSA9IDA7XG5cbiAgICBpZiAocC5oYXNOb25XaGl0ZXNwYWNlUGVuZGluZ0NoYXJhY3RlclRva2VuKSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHAucGVuZGluZ0NoYXJhY3RlclRva2Vuc1tpXSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xuICAgIH1cblxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG5cblxuLy8xMi4yLjUuNC4xMSBUaGUgXCJpbiBjYXB0aW9uXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEggfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiBlbmRUYWdJbkNhcHRpb24ocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuVEFCTEUpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5DQVBUSU9OKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xuXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUpXG4gICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ09MICYmIHRuICE9PSAkLkNPTEdST1VQICYmIHRuICE9PSAkLkhUTUwgJiYgdG4gIT09ICQuVEJPRFkgJiZcbiAgICAgICAgICAgICB0biAhPT0gJC5URCAmJiB0biAhPT0gJC5URk9PVCAmJiB0biAhPT0gJC5USCAmJiB0biAhPT0gJC5USEVBRCAmJiB0biAhPT0gJC5UUilcbiAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cblxuXG4vLzEyLjIuNS40LjEyIFRoZSBcImluIGNvbHVtbiBncm91cFwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5DT0wpXG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXG4gICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgIGVsc2VcbiAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnSW5Db2x1bW5Hcm91cChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSlcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTClcbiAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLkNPTEdST1VQKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xuICAgIH1cbn1cblxuLy8xMi4yLjUuNC4xMyBUaGUgXCJpbiB0YWJsZSBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5UUikge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1JPV19NT0RFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRIIHx8IHRuID09PSAkLlREKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudCgkLlRSKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fUk9XX01PREU7XG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHxcbiAgICAgICAgICAgICB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkge1xuXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlKCkpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHxcbiAgICAgICAgICAgICB0biAhPT0gJC5IVE1MICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlRSKVxuICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcbn1cblxuLy8xMi4yLjUuNC4xNCBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLlRIIHx8IHRuID09PSAkLlREKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9DRUxMX01PREU7XG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuQ09MIHx8IHRuID09PSAkLkNPTEdST1VQIHx8IHRuID09PSAkLlRCT0RZIHx8XG4gICAgICAgICAgICAgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRSKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfQk9EWV9NT0RFO1xuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgc3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnSW5Sb3cocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLlRSKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSB8fCBwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biAhPT0gJC5CT0RZICYmIHRuICE9PSAkLkNBUFRJT04gJiYgdG4gIT09ICQuQ09MICYmIHRuICE9PSAkLkNPTEdST1VQIHx8XG4gICAgICAgICAgICAgdG4gIT09ICQuSFRNTCAmJiB0biAhPT0gJC5URCAmJiB0biAhPT0gJC5USClcbiAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XG59XG5cblxuLy8xMi4yLjUuNC4xNSBUaGUgXCJpbiBjZWxsXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwgdG4gPT09ICQuVEJPRFkgfHxcbiAgICAgICAgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEggfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHtcblxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkge1xuICAgICAgICAgICAgcC5fY2xvc2VUYWJsZUNlbGwoKTtcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnSW5DZWxsKHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCkge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9ST1dfTU9ERTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTClcbiAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcbn1cblxuLy8xMi4yLjUuNC4xNiBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikge1xuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG5cbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVElPTilcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRHUk9VUClcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUIHx8IHRuID09PSAkLktFWUdFTiB8fCB0biA9PT0gJC5URVhUQVJFQSB8fCB0biA9PT0gJC5TRUxFQ1QpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2VsZWN0U2NvcGUoJC5TRUxFQ1QpKSB7XG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG5cbiAgICAgICAgICAgIGlmICh0biAhPT0gJC5TRUxFQ1QpXG4gICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVsc2UgaWYgKHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5URU1QTEFURSlcbiAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuT1BUR1JPVVApIHtcbiAgICAgICAgdmFyIHByZXZPcGVuRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW3Aub3BlbkVsZW1lbnRzLnN0YWNrVG9wIC0gMV0sXG4gICAgICAgICAgICBwcmV2T3BlbkVsZW1lbnRUbiA9IHByZXZPcGVuRWxlbWVudCAmJiBwLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUocHJldk9wZW5FbGVtZW50KTtcblxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OICYmIHByZXZPcGVuRWxlbWVudFRuID09PSAkLk9QVEdST1VQKVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG5cbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVEdST1VQKVxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuT1BUSU9OKSB7XG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRJT04pXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5TRUxFQ1QgJiYgcC5vcGVuRWxlbWVudHMuaGFzSW5TZWxlY3RTY29wZSgkLlNFTEVDVCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXG4gICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7XG59XG5cbi8vMTIuMi41LjQuMTcgVGhlIFwiaW4gc2VsZWN0IGluIHRhYmxlXCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XG5cbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fFxuICAgICAgICB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5UUiB8fCB0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCkge1xuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHN0YXJ0VGFnSW5TZWxlY3QocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdEluVGFibGUocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHxcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIgfHwgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpIHtcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XG4gICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcbn1cblxuLy8xMi4yLjUuNC4xOCBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdJblRlbXBsYXRlKHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5CQVNFIHx8IHRuID09PSAkLkJBU0VGT05UIHx8IHRuID09PSAkLkJHU09VTkQgfHwgdG4gPT09ICQuTElOSyB8fCB0biA9PT0gJC5NRVRBIHx8XG4gICAgICAgIHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5USVRMRSlcbiAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBuZXdJbnNlcnRpb25Nb2RlID0gVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFt0bl0gfHwgSU5fQk9EWV9NT0RFO1xuXG4gICAgICAgIHAuX3BvcFRtcGxJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZShuZXdJbnNlcnRpb25Nb2RlKTtcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gbmV3SW5zZXJ0aW9uTW9kZTtcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0luVGVtcGxhdGUocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5URU1QTEFURSlcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW9mSW5UZW1wbGF0ZShwLCB0b2tlbikge1xuICAgIGlmIChwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwKSB7XG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRFTVBMQVRFKTtcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcbiAgICAgICAgcC5fcG9wVG1wbEluc2VydGlvbk1vZGUoKTtcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICBwLnN0b3BwZWQgPSB0cnVlO1xufVxuXG5cbi8vMTIuMi41LjQuMTkgVGhlIFwiYWZ0ZXIgYm9keVwiIGluc2VydGlvbiBtb2RlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKVxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICBlbHNlXG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcbn1cblxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCkge1xuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0KVxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQUZURVJfQk9EWV9NT0RFO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdG9rZW5BZnRlckJvZHkocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiB0b2tlbkFmdGVyQm9keShwLCB0b2tlbikge1xuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0JPRFlfTU9ERTtcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xufVxuXG4vLzEyLjIuNS40LjIwIFRoZSBcImluIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FU0VUKVxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLkZSQU1FKVxuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRlJBTUVTKVxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5GUkFNRVNFVCAmJiAhcC5vcGVuRWxlbWVudHMuaXNSb290SHRtbEVsZW1lbnRDdXJyZW50KCkpIHtcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XG5cbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dCAmJiBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSAhPT0gJC5GUkFNRVNFVClcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEFGVEVSX0ZSQU1FU0VUX01PREU7XG4gICAgfVxufVxuXG4vLzEyLjIuNS40LjIxIFRoZSBcImFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xuXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcblxuICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRlJBTUVTKVxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKVxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFO1xufVxuXG4vLzEyLjIuNS40LjIyIFRoZSBcImFmdGVyIGFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pIHtcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKVxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICBlbHNlXG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xufVxuXG5mdW5jdGlvbiB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQk9EWV9NT0RFO1xuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG59XG5cbi8vMTIuMi41LjQuMjMgVGhlIFwiYWZ0ZXIgYWZ0ZXIgZnJhbWVzZXRcIiBpbnNlcnRpb24gbW9kZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIHN0YXJ0VGFnQWZ0ZXJBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcblxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XG5cbiAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUylcbiAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xufVxuXG5cbi8vMTIuMi41LjUgVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnRcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBudWxsQ2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xuICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XG59XG5cbmZ1bmN0aW9uIGNoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgaWYgKGZvcmVpZ25Db250ZW50LmNhdXNlc0V4aXQodG9rZW4pICYmICFwLmZyYWdtZW50Q29udGV4dCkge1xuICAgICAgICB3aGlsZSAocC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkocC5vcGVuRWxlbWVudHMuY3VycmVudCkgIT09IE5TLkhUTUwgJiYgIXAuX2lzSW50ZWdyYXRpb25Qb2ludChwLm9wZW5FbGVtZW50cy5jdXJyZW50KSlcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xuXG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHZhciBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpLFxuICAgICAgICAgICAgY3VycmVudE5zID0gcC50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoY3VycmVudCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKVxuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyh0b2tlbik7XG5cbiAgICAgICAgZWxzZSBpZiAoY3VycmVudE5zID09PSBOUy5TVkcpIHtcbiAgICAgICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHVGFnTmFtZSh0b2tlbik7XG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblNWR0F0dHJzKHRva2VuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xuXG4gICAgICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZylcbiAgICAgICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIGN1cnJlbnROcyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBlbmRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XG4gICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XG4gICAgICAgIHZhciBlbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbaV07XG5cbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBOUy5IVE1MKSB7XG4gICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLnRvTG93ZXJDYXNlKCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsRWxlbWVudFBvcHBlZChlbGVtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIG1lcmdlT3B0aW9ucyhkZWZhdWx0cywgb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgICByZXR1cm4gW2RlZmF1bHRzLCBvcHRpb25zXS5yZWR1Y2UoZnVuY3Rpb24gKG1lcmdlZCwgb3B0T2JqKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKG9wdE9iaikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBtZXJnZWRba2V5XSA9IG9wdE9ialtrZXldO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbWVyZ2VkO1xuICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gcHJlc2VydmVDYW1lbENhc2Uoc3RyKSB7XG5cdHZhciBpc0xhc3RDaGFyTG93ZXIgPSBmYWxzZTtcblxuXHRmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuXHRcdHZhciBjID0gc3RyLmNoYXJBdChpKTtcblxuXHRcdGlmIChpc0xhc3RDaGFyTG93ZXIgJiYgKC9bYS16QS1aXS8pLnRlc3QoYykgJiYgYy50b1VwcGVyQ2FzZSgpID09PSBjKSB7XG5cdFx0XHRzdHIgPSBzdHIuc3Vic3RyKDAsIGkpICsgJy0nICsgc3RyLnN1YnN0cihpKTtcblx0XHRcdGlzTGFzdENoYXJMb3dlciA9IGZhbHNlO1xuXHRcdFx0aSsrO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpc0xhc3RDaGFyTG93ZXIgPSAoYy50b0xvd2VyQ2FzZSgpID09PSBjKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gc3RyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcblx0dmFyIHN0ciA9IFtdLm1hcC5jYWxsKGFyZ3VtZW50cywgZnVuY3Rpb24gKHN0cikge1xuXHRcdHJldHVybiBzdHIudHJpbSgpO1xuXHR9KS5maWx0ZXIoZnVuY3Rpb24gKHN0cikge1xuXHRcdHJldHVybiBzdHIubGVuZ3RoO1xuXHR9KS5qb2luKCctJyk7XG5cblx0aWYgKCFzdHIubGVuZ3RoKSB7XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0aWYgKHN0ci5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCk7XG5cdH1cblxuXHRpZiAoISgvW18uXFwtIF0rLykudGVzdChzdHIpKSB7XG5cdFx0aWYgKHN0ciA9PT0gc3RyLnRvVXBwZXJDYXNlKCkpIHtcblx0XHRcdHJldHVybiBzdHIudG9Mb3dlckNhc2UoKTtcblx0XHR9XG5cblx0XHRpZiAoc3RyWzBdICE9PSBzdHJbMF0udG9Mb3dlckNhc2UoKSkge1xuXHRcdFx0cmV0dXJuIHN0clswXS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xuXHRcdH1cblxuXHRcdHJldHVybiBzdHI7XG5cdH1cblxuXHRzdHIgPSBwcmVzZXJ2ZUNhbWVsQ2FzZShzdHIpO1xuXG5cdHJldHVybiBzdHJcblx0LnJlcGxhY2UoL15bXy5cXC0gXSsvLCAnJylcblx0LnRvTG93ZXJDYXNlKClcblx0LnJlcGxhY2UoL1tfLlxcLSBdKyhcXHd8JCkvZywgZnVuY3Rpb24gKG0sIHAxKSB7XG5cdFx0cmV0dXJuIHAxLnRvVXBwZXJDYXNlKCk7XG5cdH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyogRXhwb3NlLiAqL1xubW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5O1xuXG4vKiBGYWN0b3J5LiAqL1xuZnVuY3Rpb24gZmFjdG9yeShmaWxlKSB7XG4gIHZhciBjb250ZW50cyA9IGluZGljZXMoU3RyaW5nKGZpbGUpKTtcblxuICByZXR1cm4ge1xuICAgIHRvUG9zaXRpb246IG9mZnNldFRvUG9zaXRpb25GYWN0b3J5KGNvbnRlbnRzKSxcbiAgICB0b09mZnNldDogcG9zaXRpb25Ub09mZnNldEZhY3RvcnkoY29udGVudHMpXG4gIH07XG59XG5cbi8qIEZhY3RvcnkgdG8gZ2V0IHRoZSBsaW5lIGFuZCBjb2x1bW4tYmFzZWQgYHBvc2l0aW9uYCBmb3JcbiAqIGBvZmZzZXRgIGluIHRoZSBib3VuZCBpbmRpY2VzLiAqL1xuZnVuY3Rpb24gb2Zmc2V0VG9Qb3NpdGlvbkZhY3RvcnkoaW5kaWNlcykge1xuICByZXR1cm4gb2Zmc2V0VG9Qb3NpdGlvbjtcblxuICAvKiBHZXQgdGhlIGxpbmUgYW5kIGNvbHVtbi1iYXNlZCBgcG9zaXRpb25gIGZvclxuICAgKiBgb2Zmc2V0YCBpbiB0aGUgYm91bmQgaW5kaWNlcy4gKi9cbiAgZnVuY3Rpb24gb2Zmc2V0VG9Qb3NpdGlvbihvZmZzZXQpIHtcbiAgICB2YXIgaW5kZXggPSAtMTtcbiAgICB2YXIgbGVuZ3RoID0gaW5kaWNlcy5sZW5ndGg7XG5cbiAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBpZiAoaW5kaWNlc1tpbmRleF0gPiBvZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaW5lOiBpbmRleCArIDEsXG4gICAgICAgICAgY29sdW1uOiAob2Zmc2V0IC0gKGluZGljZXNbaW5kZXggLSAxXSB8fCAwKSkgKyAxLFxuICAgICAgICAgIG9mZnNldDogb2Zmc2V0XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qIEZhY3RvcnkgdG8gZ2V0IHRoZSBgb2Zmc2V0YCBmb3IgYSBsaW5lIGFuZCBjb2x1bW4tYmFzZWRcbiAqIGBwb3NpdGlvbmAgaW4gdGhlIGJvdW5kIGluZGljZXMuICovXG5mdW5jdGlvbiBwb3NpdGlvblRvT2Zmc2V0RmFjdG9yeShpbmRpY2VzKSB7XG4gIHJldHVybiBwb3NpdGlvblRvT2Zmc2V0O1xuXG4gIC8qIEdldCB0aGUgYG9mZnNldGAgZm9yIGEgbGluZSBhbmQgY29sdW1uLWJhc2VkXG4gICAqIGBwb3NpdGlvbmAgaW4gdGhlIGJvdW5kIGluZGljZXMuICovXG4gIGZ1bmN0aW9uIHBvc2l0aW9uVG9PZmZzZXQocG9zaXRpb24pIHtcbiAgICB2YXIgbGluZSA9IHBvc2l0aW9uICYmIHBvc2l0aW9uLmxpbmU7XG4gICAgdmFyIGNvbHVtbiA9IHBvc2l0aW9uICYmIHBvc2l0aW9uLmNvbHVtbjtcblxuICAgIGlmICghaXNOYU4obGluZSkgJiYgIWlzTmFOKGNvbHVtbikgJiYgbGluZSAtIDEgaW4gaW5kaWNlcykge1xuICAgICAgcmV0dXJuICgoaW5kaWNlc1tsaW5lIC0gMl0gfHwgMCkgKyBjb2x1bW4gLSAxKSB8fCAwO1xuICAgIH1cblxuICAgIHJldHVybiAtMTtcbiAgfVxufVxuXG4vKiBHZXQgaW5kaWNlcyBvZiBsaW5lLWJyZWFrcyBpbiBgdmFsdWVgLiAqL1xuZnVuY3Rpb24gaW5kaWNlcyh2YWx1ZSkge1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBpbmRleCA9IHZhbHVlLmluZGV4T2YoJ1xcbicpO1xuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICByZXN1bHQucHVzaChpbmRleCArIDEpO1xuICAgIGluZGV4ID0gdmFsdWUuaW5kZXhPZignXFxuJywgaW5kZXggKyAxKTtcbiAgfVxuXG4gIHJlc3VsdC5wdXNoKHZhbHVlLmxlbmd0aCArIDEpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qIEV4cG9zZS4gKi9cbm1vZHVsZS5leHBvcnRzID0gcGFyc2U7XG5cbi8qIENoYXJhY3RlcnMgKi9cbnZhciBkb3QgPSAnLicuY2hhckNvZGVBdCgwKTtcbnZhciBoYXNoID0gJyMnLmNoYXJDb2RlQXQoMCk7XG5cbi8qIFBhcnNlIGEgc2ltcGxlIENTUyBzZWxlY3RvciBpbnRvIGEgSEFTVCBub2RlLiAqL1xuZnVuY3Rpb24gcGFyc2Uoc2VsZWN0b3IpIHtcbiAgdmFyIGlkID0gbnVsbDtcbiAgdmFyIGNsYXNzTmFtZSA9IFtdO1xuICB2YXIgdmFsdWUgPSBzZWxlY3RvciB8fCAnJztcbiAgdmFyIG5hbWUgPSAnZGl2JztcbiAgdmFyIG5vZGU7XG4gIHZhciB0eXBlID0gbnVsbDtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBjb2RlO1xuICB2YXIgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBsYXN0SW5kZXg7XG5cbiAgbm9kZSA9IHtcbiAgICB0eXBlOiAnZWxlbWVudCcsXG4gICAgdGFnTmFtZTogbnVsbCxcbiAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICBjaGlsZHJlbjogW11cbiAgfTtcblxuICB0eXBlID0gbnVsbDtcblxuICB3aGlsZSAoKytpbmRleCA8PSBsZW5ndGgpIHtcbiAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICBpZiAoIWNvZGUgfHwgY29kZSA9PT0gZG90IHx8IGNvZGUgPT09IGhhc2gpIHtcbiAgICAgIHN1YnZhbHVlID0gdmFsdWUuc2xpY2UobGFzdEluZGV4LCBpbmRleCk7XG5cbiAgICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZSA9PT0gZG90KSB7XG4gICAgICAgICAgY2xhc3NOYW1lLnB1c2goc3VidmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IGhhc2gpIHtcbiAgICAgICAgICBpZCA9IHN1YnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5hbWUgPSBzdWJ2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYXN0SW5kZXggPSBpbmRleCArIDE7XG4gICAgICB0eXBlID0gY29kZTtcbiAgICB9XG4gIH1cblxuICBub2RlLnRhZ05hbWUgPSBuYW1lO1xuXG4gIGlmIChpZCkge1xuICAgIG5vZGUucHJvcGVydGllcy5pZCA9IGlkO1xuICB9XG5cbiAgaWYgKGNsYXNzTmFtZS5sZW5ndGggIT09IDApIHtcbiAgICBub2RlLnByb3BlcnRpZXMuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB0cmltID0gcmVxdWlyZSgndHJpbScpO1xuXG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnN0cmluZ2lmeSA9IHN0cmluZ2lmeTtcblxudmFyIGVtcHR5ID0gJyc7XG52YXIgc3BhY2UgPSAnICc7XG52YXIgd2hpdGVTcGFjZSA9IC9bIFxcdFxcblxcclxcZl0rL2c7XG5cbmZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIHZhciBpbnB1dCA9IHRyaW0oU3RyaW5nKHZhbHVlIHx8IGVtcHR5KSk7XG5cbiAgaWYgKGlucHV0ID09PSBlbXB0eSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dC5zcGxpdCh3aGl0ZVNwYWNlKTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcykge1xuICByZXR1cm4gdHJpbSh2YWx1ZXMuam9pbihzcGFjZSkpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5leHBvcnRzLnBhcnNlID0gcGFyc2U7XG5leHBvcnRzLnN0cmluZ2lmeSA9IHN0cmluZ2lmeTtcblxudmFyIHRyaW0gPSByZXF1aXJlKCd0cmltJyk7XG5cbnZhciBDX0NPTU1BID0gJywnO1xudmFyIENfU1BBQ0UgPSAnICc7XG52YXIgRU1QVFkgPSAnJztcblxuLyogUGFyc2UgY29tbWEtc2VwYXJhdGVkIHRva2VucyB0byBhbiBhcnJheS4gKi9cbmZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIHZhciB2YWx1ZXMgPSBbXTtcbiAgdmFyIGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8IEVNUFRZKTtcbiAgdmFyIGluZGV4ID0gaW5wdXQuaW5kZXhPZihDX0NPTU1BKTtcbiAgdmFyIGxhc3RJbmRleCA9IDA7XG4gIHZhciBlbmQgPSBmYWxzZTtcbiAgdmFyIHZhbDtcblxuICB3aGlsZSAoIWVuZCkge1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoO1xuICAgICAgZW5kID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YWwgPSB0cmltKGlucHV0LnNsaWNlKGxhc3RJbmRleCwgaW5kZXgpKTtcblxuICAgIGlmICh2YWwgfHwgIWVuZCkge1xuICAgICAgdmFsdWVzLnB1c2godmFsKTtcbiAgICB9XG5cbiAgICBsYXN0SW5kZXggPSBpbmRleCArIDE7XG4gICAgaW5kZXggPSBpbnB1dC5pbmRleE9mKENfQ09NTUEsIGxhc3RJbmRleCk7XG4gIH1cblxuICByZXR1cm4gdmFsdWVzO1xufVxuXG4vKiBDb21waWxlIGFuIGFycmF5IHRvIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4gKiBgb3B0aW9ucy5wYWRMZWZ0YCAoZGVmYXVsdDogYHRydWVgKSBwYWRzIGEgc3BhY2UgbGVmdCBvZiBlYWNoXG4gKiB0b2tlbiwgYW5kIGBvcHRpb25zLnBhZFJpZ2h0YCAoZGVmYXVsdDogYGZhbHNlYCkgcGFkcyBhIHNwYWNlXG4gKiB0byB0aGUgcmlnaHQgb2YgZWFjaCB0b2tlbi4gKi9cbmZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMsIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGxlZnQgPSBzZXR0aW5ncy5wYWRMZWZ0O1xuXG4gIC8qIEVuc3VyZSB0aGUgbGFzdCBlbXB0eSBlbnRyeSBpcyBzZWVuLiAqL1xuICBpZiAodmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA9PT0gRU1QVFkpIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KEVNUFRZKTtcbiAgfVxuXG4gIHJldHVybiB0cmltKHZhbHVlcy5qb2luKFxuICAgIChzZXR0aW5ncy5wYWRSaWdodCA/IENfU1BBQ0UgOiBFTVBUWSkgK1xuICAgIENfQ09NTUEgK1xuICAgIChsZWZ0IHx8IGxlZnQgPT09IHVuZGVmaW5lZCB8fCBsZWZ0ID09PSBudWxsID8gQ19TUEFDRSA6IEVNUFRZKVxuICApKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHBhcnNlU2VsZWN0b3IgPSByZXF1aXJlKCdoYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3InKTtcbnZhciBjYW1lbGNhc2UgPSByZXF1aXJlKCdjYW1lbGNhc2UnKTtcbnZhciBwcm9wZXJ0eUluZm9ybWF0aW9uID0gcmVxdWlyZSgncHJvcGVydHktaW5mb3JtYXRpb24nKTtcbnZhciBzcGFjZXMgPSByZXF1aXJlKCdzcGFjZS1zZXBhcmF0ZWQtdG9rZW5zJykucGFyc2U7XG52YXIgY29tbWFzID0gcmVxdWlyZSgnY29tbWEtc2VwYXJhdGVkLXRva2VucycpLnBhcnNlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGg7XG5cbi8qIEh5cGVyc2NyaXB0IGNvbXBhdGlibGUgRFNMIGZvciBjcmVhdGluZyB2aXJ0dWFsIEhBU1RcbiAqIHRyZWVzLiAqL1xuZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcywgY2hpbGRyZW4pIHtcbiAgdmFyIG5vZGUgPSBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yKTtcbiAgdmFyIHByb3BlcnR5O1xuXG4gIGlmIChcbiAgICBwcm9wZXJ0aWVzICYmXG4gICAgIWNoaWxkcmVuICYmXG4gICAgKFxuICAgICAgdHlwZW9mIHByb3BlcnRpZXMgPT09ICdzdHJpbmcnIHx8XG4gICAgICAnbGVuZ3RoJyBpbiBwcm9wZXJ0aWVzIHx8XG4gICAgICBpc05vZGUobm9kZS50YWdOYW1lLCBwcm9wZXJ0aWVzKVxuICAgIClcbiAgKSB7XG4gICAgY2hpbGRyZW4gPSBwcm9wZXJ0aWVzO1xuICAgIHByb3BlcnRpZXMgPSBudWxsO1xuICB9XG5cbiAgaWYgKHByb3BlcnRpZXMpIHtcbiAgICBmb3IgKHByb3BlcnR5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgIGFkZFByb3BlcnR5KG5vZGUucHJvcGVydGllcywgcHJvcGVydHksIHByb3BlcnRpZXNbcHJvcGVydHldKTtcbiAgICB9XG4gIH1cblxuICBhZGRDaGlsZChub2RlLmNoaWxkcmVuLCBjaGlsZHJlbik7XG5cbiAgaWYgKG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgIG5vZGUuY29udGVudCA9IHt0eXBlOiAncm9vdCcsIGNoaWxkcmVuOiBub2RlLmNoaWxkcmVufTtcbiAgICBub2RlLmNoaWxkcmVuID0gW107XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuLyogQ2hlY2sgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGNoaWxkIG5vZGUgb2YgYHRhZ05hbWVgLiAqL1xuZnVuY3Rpb24gaXNOb2RlKHRhZ05hbWUsIHZhbHVlKSB7XG4gIHZhciB0eXBlID0gdmFsdWUudHlwZTtcblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgdHlwZSA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGlmICh0YWdOYW1lID09PSAnaW5wdXQnIHx8ICF0eXBlIHx8IHR5cGVvZiB0eXBlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUuY2hpbGRyZW4gPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHZhbHVlLmNoaWxkcmVuKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodGFnTmFtZSA9PT0gJ2J1dHRvbicpIHtcbiAgICByZXR1cm4gdHlwZSAhPT0gJ21lbnUnICYmXG4gICAgICB0eXBlICE9PSAnc3VibWl0JyAmJlxuICAgICAgdHlwZSAhPT0gJ3Jlc2V0JyAmJlxuICAgICAgdHlwZSAhPT0gJ2J1dHRvbic7XG4gIH1cblxuICByZXR1cm4gJ3ZhbHVlJyBpbiB2YWx1ZTtcbn1cblxuLyogQWRkIGB2YWx1ZWAgYXMgYSBjaGlsZCB0byBgbm9kZXNgLiAqL1xuZnVuY3Rpb24gYWRkQ2hpbGQobm9kZXMsIHZhbHVlKSB7XG4gIHZhciBpbmRleDtcbiAgdmFyIGxlbmd0aDtcblxuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICB2YWx1ZSA9IHt0eXBlOiAndGV4dCcsIHZhbHVlOiBTdHJpbmcodmFsdWUpfTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHZhbHVlKSB7XG4gICAgaW5kZXggPSAtMTtcbiAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgISgndHlwZScgaW4gdmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub2Rlcywgb3Igc3RyaW5nLCBnb3QgYCcgKyB2YWx1ZSArICdgJyk7XG4gIH1cblxuICBub2Rlcy5wdXNoKHZhbHVlKTtcbn1cblxuLyogQWRkIGBuYW1lYCBhbmQgaXRzIGB2YWx1ZWAgdG8gYHByb3BlcnRpZXNgLiBgcHJvcGVydGllc2AgY2FuXG4gKiBiZSBwcmVmaWxsZWQgYnkgYHBhcnNlU2VsZWN0b3JgOiBpdCBjYW4gaGF2ZSBgaWRgIGFuZCBgY2xhc3NOYW1lYFxuICogcHJvcGVydGllcy4gKi9cbmZ1bmN0aW9uIGFkZFByb3BlcnR5KHByb3BlcnRpZXMsIG5hbWUsIHZhbHVlKSB7XG4gIHZhciBpbmZvID0gcHJvcGVydHlJbmZvcm1hdGlvbihuYW1lKSB8fCB7fTtcbiAgdmFyIHJlc3VsdCA9IHZhbHVlO1xuICB2YXIga2V5O1xuXG4gIC8qIElnbm9yZSBudWxseSBhbmQgTmFOIHZhbHVlcy4gKi9cbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyogSGFuZGxlIHZhbHVlcy4gKi9cbiAgaWYgKG5hbWUgPT09ICdzdHlsZScpIHtcbiAgICAvKiBBY2NlcHQgYG9iamVjdGAuICovXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgICAgICByZXN1bHQucHVzaChba2V5LCB2YWx1ZVtrZXldXS5qb2luKCc6ICcpKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0ID0gcmVzdWx0LmpvaW4oJzsgJyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGluZm8uc3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAvKiBBY2NlcHQgYm90aCBgc3RyaW5nYCBhbmQgYEFycmF5YC4gKi9cbiAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gc3BhY2VzKHJlc3VsdCkgOiByZXN1bHQ7XG5cbiAgICAvKiBDbGFzcy1uYW1lcyAod2hpY2ggY2FuIGJlIGFkZGVkIGJvdGggb25cbiAgICAgKiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuICovXG4gICAgaWYgKG5hbWUgPT09ICdjbGFzcycgJiYgcHJvcGVydGllcy5jbGFzc05hbWUpIHtcbiAgICAgIHJlc3VsdCA9IHByb3BlcnRpZXMuY2xhc3NOYW1lLmNvbmNhdChyZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpbmZvLmNvbW1hU2VwYXJhdGVkKSB7XG4gICAgLyogQWNjZXB0IGJvdGggYHN0cmluZ2AgYW5kIGBBcnJheWAuICovXG4gICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IGNvbW1hcyhyZXN1bHQpIDogcmVzdWx0O1xuICB9XG5cbiAgcmVzdWx0ID0gcGFyc2VQcmltaXRpdmUoaW5mbywgbmFtZSwgcmVzdWx0KTtcblxuICBwcm9wZXJ0aWVzW2luZm8ucHJvcGVydHlOYW1lIHx8IGNhbWVsY2FzZShuYW1lKV0gPSByZXN1bHQ7XG59XG5cbi8qIFBhcnNlIGEgKGxpc3Qgb2YpIHByaW1pdGl2ZXMuICovXG5mdW5jdGlvbiBwYXJzZVByaW1pdGl2ZShpbmZvLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgcmVzdWx0ID0gdmFsdWU7XG4gIHZhciBpbmRleDtcbiAgdmFyIGxlbmd0aDtcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiB2YWx1ZSkge1xuICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICBpbmRleCA9IC0xO1xuICAgIHJlc3VsdCA9IFtdO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHJlc3VsdFtpbmRleF0gPSBwYXJzZVByaW1pdGl2ZShpbmZvLCBuYW1lLCB2YWx1ZVtpbmRleF0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpZiAoaW5mby5udW1lcmljIHx8IGluZm8ucG9zaXRpdmVOdW1lcmljKSB7XG4gICAgaWYgKCFpc05hTihyZXN1bHQpICYmIHJlc3VsdCAhPT0gJycpIHtcbiAgICAgIHJlc3VsdCA9IE51bWJlcihyZXN1bHQpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpbmZvLmJvb2xlYW4gfHwgaW5mby5vdmVybG9hZGVkQm9vbGVhbikge1xuICAgIC8qIEFjY2VwdCBgYm9vbGVhbmAgYW5kIGBzdHJpbmdgLiAqL1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnICYmXG4gICAgICAocmVzdWx0ID09PSAnJyB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lKVxuICAgICkge1xuICAgICAgcmVzdWx0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaW5mb3JtYXRpb24gPSByZXF1aXJlKCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpO1xudmFyIGNhbWVsY2FzZSA9IHJlcXVpcmUoJ2NhbWVsY2FzZScpO1xudmFyIHZmaWxlTG9jYXRpb24gPSByZXF1aXJlKCd2ZmlsZS1sb2NhdGlvbicpO1xudmFyIGggPSByZXF1aXJlKCdoYXN0c2NyaXB0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gd3JhcHBlcjtcblxudmFyIG93biA9IHt9Lmhhc093blByb3BlcnR5O1xuXG4vKiBIYW5kbGVycy4gKi9cbnZhciBtYXAgPSB7XG4gICcjZG9jdW1lbnQnOiByb290LFxuICAnI2RvY3VtZW50LWZyYWdtZW50Jzogcm9vdCxcbiAgJyN0ZXh0JzogdGV4dCxcbiAgJyNjb21tZW50JzogY29tbWVudCxcbiAgJyNkb2N1bWVudFR5cGUnOiBkb2N0eXBlXG59O1xuXG4vKiBXcmFwcGVyIHRvIG5vcm1hbGlzZSBvcHRpb25zLiAqL1xuZnVuY3Rpb24gd3JhcHBlcihhc3QsIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIGZpbGU7XG5cbiAgaWYgKHNldHRpbmdzLm1lc3NhZ2VzKSB7XG4gICAgZmlsZSA9IHNldHRpbmdzO1xuICAgIHNldHRpbmdzID0ge307XG4gIH0gZWxzZSB7XG4gICAgZmlsZSA9IHNldHRpbmdzLmZpbGU7XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtKGFzdCwge1xuICAgIGZpbGU6IGZpbGUsXG4gICAgdG9Qb3NpdGlvbjogZmlsZSA/IHZmaWxlTG9jYXRpb24oZmlsZSkudG9Qb3NpdGlvbiA6IG51bGwsXG4gICAgdmVyYm9zZTogc2V0dGluZ3MudmVyYm9zZSxcbiAgICBsb2NhdGlvbjogZmFsc2VcbiAgfSk7XG59XG5cbi8qIFRyYW5zZm9ybSBhIG5vZGUuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm0oYXN0LCBjb25maWcpIHtcbiAgdmFyIGZuID0gb3duLmNhbGwobWFwLCBhc3Qubm9kZU5hbWUpID8gbWFwW2FzdC5ub2RlTmFtZV0gOiBlbGVtZW50O1xuICB2YXIgY2hpbGRyZW47XG4gIHZhciBub2RlO1xuICB2YXIgcG9zaXRpb247XG5cbiAgaWYgKGFzdC5jaGlsZE5vZGVzKSB7XG4gICAgY2hpbGRyZW4gPSBub2Rlcyhhc3QuY2hpbGROb2RlcywgY29uZmlnKTtcbiAgfVxuXG4gIG5vZGUgPSBmbihhc3QsIGNoaWxkcmVuLCBjb25maWcpO1xuXG4gIGlmIChhc3QuX19sb2NhdGlvbiAmJiBjb25maWcudG9Qb3NpdGlvbikge1xuICAgIGNvbmZpZy5sb2NhdGlvbiA9IHRydWU7XG4gICAgcG9zaXRpb24gPSBsb2NhdGlvbihhc3QuX19sb2NhdGlvbiwgYXN0LCBub2RlLCBjb25maWcpO1xuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBub2RlLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbi8qIFRyYW5zZm9ybSBjaGlsZHJlbi4gKi9cbmZ1bmN0aW9uIG5vZGVzKGNoaWxkcmVuLCBjb25maWcpIHtcbiAgdmFyIGxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciByZXN1bHQgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSB0cmFuc2Zvcm0oY2hpbGRyZW5baW5kZXhdLCBjb25maWcpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyogVHJhbnNmb3JtIGEgZG9jdW1lbnQuXG4gKiBTdG9yZXMgYGFzdC5xdWlya3NNb2RlYCBpbiBgbm9kZS5kYXRhLnF1aXJrc01vZGVgLiAqL1xuZnVuY3Rpb24gcm9vdChhc3QsIGNoaWxkcmVuLCBjb25maWcpIHtcbiAgdmFyIHF1aXJrcyA9IGFzdC5tb2RlID09PSAncXVpcmtzJyB8fCBhc3QubW9kZSA9PT0gJ2xpbWl0ZWQtcXVpcmtzJztcbiAgdmFyIG5vZGUgPSB7dHlwZTogJ3Jvb3QnLCBjaGlsZHJlbjogY2hpbGRyZW59O1xuICB2YXIgcG9zaXRpb247XG5cbiAgbm9kZS5kYXRhID0ge3F1aXJrc01vZGU6IHF1aXJrc307XG5cbiAgaWYgKGFzdC5fX2xvY2F0aW9uKSB7XG4gICAgaWYgKGNvbmZpZy50b1Bvc2l0aW9uKSB7XG4gICAgICBjb25maWcubG9jYXRpb24gPSB0cnVlO1xuICAgICAgcG9zaXRpb24gPSBhc3QuX19sb2NhdGlvbjtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29uZmlnLmZpbGUgJiYgY29uZmlnLmxvY2F0aW9uKSB7XG4gICAgcG9zaXRpb24gPSB7c3RhcnRPZmZzZXQ6IDAsIGVuZE9mZnNldDogU3RyaW5nKGNvbmZpZy5maWxlKS5sZW5ndGh9O1xuICB9XG5cbiAgcG9zaXRpb24gPSBwb3NpdGlvbiAmJiBsb2NhdGlvbihwb3NpdGlvbiwgYXN0LCBub2RlLCBjb25maWcpO1xuXG4gIGlmIChwb3NpdGlvbikge1xuICAgIG5vZGUucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG4vKiBUcmFuc2Zvcm0gYSBkb2N0eXBlLiAqL1xuZnVuY3Rpb24gZG9jdHlwZShhc3QpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnZG9jdHlwZScsXG4gICAgbmFtZTogYXN0Lm5hbWUgfHwgJycsXG4gICAgcHVibGljOiBhc3QucHVibGljSWQgfHwgbnVsbCxcbiAgICBzeXN0ZW06IGFzdC5zeXN0ZW1JZCB8fCBudWxsXG4gIH07XG59XG5cbi8qIFRyYW5zZm9ybSBhIHRleHQuICovXG5mdW5jdGlvbiB0ZXh0KGFzdCkge1xuICByZXR1cm4ge3R5cGU6ICd0ZXh0JywgdmFsdWU6IGFzdC52YWx1ZX07XG59XG5cbi8qIFRyYW5zZm9ybSBhIGNvbW1lbnQuICovXG5mdW5jdGlvbiBjb21tZW50KGFzdCkge1xuICByZXR1cm4ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IGFzdC5kYXRhfTtcbn1cblxuLyogVHJhbnNmb3JtIGFuIGVsZW1lbnQuICovXG5mdW5jdGlvbiBlbGVtZW50KGFzdCwgY2hpbGRyZW4sIGNvbmZpZykge1xuICB2YXIgcHJvcHMgPSB7fTtcbiAgdmFyIHZhbHVlcyA9IGFzdC5hdHRycztcbiAgdmFyIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgYXR0cjtcbiAgdmFyIG5vZGU7XG4gIHZhciBmcmFnbWVudDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGF0dHIgPSB2YWx1ZXNbaW5kZXhdO1xuICAgIHByb3BzWyhhdHRyLnByZWZpeCA/IGF0dHIucHJlZml4ICsgJzonIDogJycpICsgYXR0ci5uYW1lXSA9IGF0dHIudmFsdWU7XG4gIH1cblxuICBub2RlID0gaChhc3QudGFnTmFtZSwgcHJvcHMsIGNoaWxkcmVuKTtcblxuICBpZiAoYXN0Lm5vZGVOYW1lID09PSAndGVtcGxhdGUnICYmICdjb250ZW50JyBpbiBhc3QpIHtcbiAgICBmcmFnbWVudCA9IGFzdC5jb250ZW50O1xuXG4gICAgaWYgKGFzdC5fX2xvY2F0aW9uKSB7XG4gICAgICBmcmFnbWVudC5fX2xvY2F0aW9uID0ge1xuICAgICAgICBzdGFydE9mZnNldDogYXN0Ll9fbG9jYXRpb24uc3RhcnRUYWcuZW5kT2Zmc2V0LFxuICAgICAgICBlbmRPZmZzZXQ6IGFzdC5fX2xvY2F0aW9uLmVuZFRhZy5zdGFydE9mZnNldFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBub2RlLmNvbnRlbnQgPSB0cmFuc2Zvcm0oYXN0LmNvbnRlbnQsIGNvbmZpZyk7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuLyogQ3JlYXRlIGNsZWFuIHBvc2l0aW9uYWwgaW5mb3JtYXRpb24uICovXG5mdW5jdGlvbiBsb2ModG9Qb3NpdGlvbiwgZGlydHkpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogdG9Qb3NpdGlvbihkaXJ0eS5zdGFydE9mZnNldCksXG4gICAgZW5kOiB0b1Bvc2l0aW9uKGRpcnR5LmVuZE9mZnNldClcbiAgfTtcbn1cblxuLyogQ3JlYXRlIGNsZWFuIHBvc2l0aW9uYWwgaW5mb3JtYXRpb24uICovXG5mdW5jdGlvbiBsb2NhdGlvbihpbmZvLCBhc3QsIG5vZGUsIGNvbmZpZykge1xuICB2YXIgc3RhcnQgPSBpbmZvLnN0YXJ0T2Zmc2V0O1xuICB2YXIgZW5kID0gaW5mby5lbmRPZmZzZXQ7XG4gIHZhciB2YWx1ZXMgPSBpbmZvLmF0dHJzIHx8IHt9O1xuICB2YXIgcHJvcFBvc2l0aW9ucyA9IHt9O1xuICB2YXIgcHJvcDtcbiAgdmFyIG5hbWU7XG4gIHZhciByZWZlcmVuY2U7XG5cbiAgZm9yIChwcm9wIGluIHZhbHVlcykge1xuICAgIG5hbWUgPSAoaW5mb3JtYXRpb24ocHJvcCkgfHwge30pLnByb3BlcnR5TmFtZSB8fCBjYW1lbGNhc2UocHJvcCk7XG4gICAgcHJvcFBvc2l0aW9uc1tuYW1lXSA9IGxvYyhjb25maWcudG9Qb3NpdGlvbiwgdmFsdWVzW3Byb3BdKTtcbiAgfVxuXG4gIC8qIFVwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2lzc3Vlcy8xMDkgKi9cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnICYmICFpbmZvLmVuZFRhZykge1xuICAgIHJlZmVyZW5jZSA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXTtcblxuICAgIC8qIFVuY2xvc2VkIHdpdGggY2hpbGRyZW46ICovXG4gICAgaWYgKHJlZmVyZW5jZSAmJiByZWZlcmVuY2UucG9zaXRpb24pIHtcbiAgICAgIGlmIChyZWZlcmVuY2UucG9zaXRpb24uZW5kKSB7XG4gICAgICAgIGVuZCA9IHJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gbnVsbDtcbiAgICAgIH1cbiAgICAvKiBVbmNsb3NlZCB3aXRob3V0IGNoaWxkcmVuOiAqL1xuICAgIH0gZWxzZSBpZiAoaW5mby5zdGFydFRhZykge1xuICAgICAgZW5kID0gaW5mby5zdGFydFRhZy5lbmRPZmZzZXQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbmZpZy52ZXJib3NlICYmIG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgbm9kZS5kYXRhID0ge1xuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgb3BlbmluZzogbG9jKGNvbmZpZy50b1Bvc2l0aW9uLCBpbmZvLnN0YXJ0VGFnIHx8IGluZm8pLFxuICAgICAgICBjbG9zaW5nOiBpbmZvLmVuZFRhZyA/IGxvYyhjb25maWcudG9Qb3NpdGlvbiwgaW5mby5lbmRUYWcpIDogbnVsbCxcbiAgICAgICAgcHJvcGVydGllczogcHJvcFBvc2l0aW9uc1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzdGFydCA9IHR5cGVvZiBzdGFydCA9PT0gJ251bWJlcicgPyBjb25maWcudG9Qb3NpdGlvbihzdGFydCkgOiBudWxsO1xuICBlbmQgPSB0eXBlb2YgZW5kID09PSAnbnVtYmVyJyA/IGNvbmZpZy50b1Bvc2l0aW9uKGVuZCkgOiBudWxsO1xuXG4gIGlmICghc3RhcnQgJiYgIWVuZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge3N0YXJ0OiBzdGFydCwgZW5kOiBlbmR9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEtFQkFCX1JFR0VYID0gL1tBLVpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwREVdL2c7XG52YXIgUkVWRVJTRV9SRUdFWCA9IC8tW2EtelxcdTAwRTAtXFx1MDBGNlxcdTAwRjgtXFx1MDBGRV0vZztcblxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzID0gZnVuY3Rpb24ga2ViYWJDYXNlKHN0cikge1xuXHRyZXR1cm4gc3RyLnJlcGxhY2UoS0VCQUJfUkVHRVgsIGZ1bmN0aW9uIChtYXRjaCkge1xuXHRcdHJldHVybiAnLScgKyBtYXRjaC50b0xvd2VyQ2FzZSgpO1xuXHR9KTtcbn07XG5cbmV4cG9ydHMucmV2ZXJzZSA9IGZ1bmN0aW9uIChzdHIpIHtcblx0cmV0dXJuIHN0ci5yZXBsYWNlKFJFVkVSU0VfUkVHRVgsIGZ1bmN0aW9uIChtYXRjaCkge1xuXHRcdHJldHVybiBtYXRjaC5zbGljZSgxKS50b1VwcGVyQ2FzZSgpO1xuXHR9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB0b1N0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNBcmd1bWVudHModmFsdWUpIHtcblx0dmFyIHN0ciA9IHRvU3RyLmNhbGwodmFsdWUpO1xuXHR2YXIgaXNBcmdzID0gc3RyID09PSAnW29iamVjdCBBcmd1bWVudHNdJztcblx0aWYgKCFpc0FyZ3MpIHtcblx0XHRpc0FyZ3MgPSBzdHIgIT09ICdbb2JqZWN0IEFycmF5XScgJiZcblx0XHRcdHZhbHVlICE9PSBudWxsICYmXG5cdFx0XHR0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG5cdFx0XHR0eXBlb2YgdmFsdWUubGVuZ3RoID09PSAnbnVtYmVyJyAmJlxuXHRcdFx0dmFsdWUubGVuZ3RoID49IDAgJiZcblx0XHRcdHRvU3RyLmNhbGwodmFsdWUuY2FsbGVlKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblx0fVxuXHRyZXR1cm4gaXNBcmdzO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxuLy8gbW9kaWZpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZXMtc2hpbXMvZXM1LXNoaW1cbnZhciBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHRvU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBzbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTtcbnZhciBpc0FyZ3MgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyk7XG52YXIgaXNFbnVtZXJhYmxlID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBoYXNEb250RW51bUJ1ZyA9ICFpc0VudW1lcmFibGUuY2FsbCh7IHRvU3RyaW5nOiBudWxsIH0sICd0b1N0cmluZycpO1xudmFyIGhhc1Byb3RvRW51bUJ1ZyA9IGlzRW51bWVyYWJsZS5jYWxsKGZ1bmN0aW9uICgpIHt9LCAncHJvdG90eXBlJyk7XG52YXIgZG9udEVudW1zID0gW1xuXHQndG9TdHJpbmcnLFxuXHQndG9Mb2NhbGVTdHJpbmcnLFxuXHQndmFsdWVPZicsXG5cdCdoYXNPd25Qcm9wZXJ0eScsXG5cdCdpc1Byb3RvdHlwZU9mJyxcblx0J3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcblx0J2NvbnN0cnVjdG9yJ1xuXTtcbnZhciBlcXVhbHNDb25zdHJ1Y3RvclByb3RvdHlwZSA9IGZ1bmN0aW9uIChvKSB7XG5cdHZhciBjdG9yID0gby5jb25zdHJ1Y3Rvcjtcblx0cmV0dXJuIGN0b3IgJiYgY3Rvci5wcm90b3R5cGUgPT09IG87XG59O1xudmFyIGV4Y2x1ZGVkS2V5cyA9IHtcblx0JGNvbnNvbGU6IHRydWUsXG5cdCRleHRlcm5hbDogdHJ1ZSxcblx0JGZyYW1lOiB0cnVlLFxuXHQkZnJhbWVFbGVtZW50OiB0cnVlLFxuXHQkZnJhbWVzOiB0cnVlLFxuXHQkaW5uZXJIZWlnaHQ6IHRydWUsXG5cdCRpbm5lcldpZHRoOiB0cnVlLFxuXHQkb3V0ZXJIZWlnaHQ6IHRydWUsXG5cdCRvdXRlcldpZHRoOiB0cnVlLFxuXHQkcGFnZVhPZmZzZXQ6IHRydWUsXG5cdCRwYWdlWU9mZnNldDogdHJ1ZSxcblx0JHBhcmVudDogdHJ1ZSxcblx0JHNjcm9sbExlZnQ6IHRydWUsXG5cdCRzY3JvbGxUb3A6IHRydWUsXG5cdCRzY3JvbGxYOiB0cnVlLFxuXHQkc2Nyb2xsWTogdHJ1ZSxcblx0JHNlbGY6IHRydWUsXG5cdCR3ZWJraXRJbmRleGVkREI6IHRydWUsXG5cdCR3ZWJraXRTdG9yYWdlSW5mbzogdHJ1ZSxcblx0JHdpbmRvdzogdHJ1ZVxufTtcbnZhciBoYXNBdXRvbWF0aW9uRXF1YWxpdHlCdWcgPSAoZnVuY3Rpb24gKCkge1xuXHQvKiBnbG9iYWwgd2luZG93ICovXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgeyByZXR1cm4gZmFsc2U7IH1cblx0Zm9yICh2YXIgayBpbiB3aW5kb3cpIHtcblx0XHR0cnkge1xuXHRcdFx0aWYgKCFleGNsdWRlZEtleXNbJyQnICsga10gJiYgaGFzLmNhbGwod2luZG93LCBrKSAmJiB3aW5kb3dba10gIT09IG51bGwgJiYgdHlwZW9mIHdpbmRvd1trXSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRlcXVhbHNDb25zdHJ1Y3RvclByb3RvdHlwZSh3aW5kb3dba10pO1xuXHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufSgpKTtcbnZhciBlcXVhbHNDb25zdHJ1Y3RvclByb3RvdHlwZUlmTm90QnVnZ3kgPSBmdW5jdGlvbiAobykge1xuXHQvKiBnbG9iYWwgd2luZG93ICovXG5cdGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhaGFzQXV0b21hdGlvbkVxdWFsaXR5QnVnKSB7XG5cdFx0cmV0dXJuIGVxdWFsc0NvbnN0cnVjdG9yUHJvdG90eXBlKG8pO1xuXHR9XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGVxdWFsc0NvbnN0cnVjdG9yUHJvdG90eXBlKG8pO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xuXG52YXIga2V5c1NoaW0gPSBmdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuXHR2YXIgaXNPYmplY3QgPSBvYmplY3QgIT09IG51bGwgJiYgdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCc7XG5cdHZhciBpc0Z1bmN0aW9uID0gdG9TdHIuY2FsbChvYmplY3QpID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuXHR2YXIgaXNBcmd1bWVudHMgPSBpc0FyZ3Mob2JqZWN0KTtcblx0dmFyIGlzU3RyaW5nID0gaXNPYmplY3QgJiYgdG9TdHIuY2FsbChvYmplY3QpID09PSAnW29iamVjdCBTdHJpbmddJztcblx0dmFyIHRoZUtleXMgPSBbXTtcblxuXHRpZiAoIWlzT2JqZWN0ICYmICFpc0Z1bmN0aW9uICYmICFpc0FyZ3VtZW50cykge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5rZXlzIGNhbGxlZCBvbiBhIG5vbi1vYmplY3QnKTtcblx0fVxuXG5cdHZhciBza2lwUHJvdG8gPSBoYXNQcm90b0VudW1CdWcgJiYgaXNGdW5jdGlvbjtcblx0aWYgKGlzU3RyaW5nICYmIG9iamVjdC5sZW5ndGggPiAwICYmICFoYXMuY2FsbChvYmplY3QsIDApKSB7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyArK2kpIHtcblx0XHRcdHRoZUtleXMucHVzaChTdHJpbmcoaSkpO1xuXHRcdH1cblx0fVxuXG5cdGlmIChpc0FyZ3VtZW50cyAmJiBvYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdGZvciAodmFyIGogPSAwOyBqIDwgb2JqZWN0Lmxlbmd0aDsgKytqKSB7XG5cdFx0XHR0aGVLZXlzLnB1c2goU3RyaW5nKGopKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Zm9yICh2YXIgbmFtZSBpbiBvYmplY3QpIHtcblx0XHRcdGlmICghKHNraXBQcm90byAmJiBuYW1lID09PSAncHJvdG90eXBlJykgJiYgaGFzLmNhbGwob2JqZWN0LCBuYW1lKSkge1xuXHRcdFx0XHR0aGVLZXlzLnB1c2goU3RyaW5nKG5hbWUpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoaGFzRG9udEVudW1CdWcpIHtcblx0XHR2YXIgc2tpcENvbnN0cnVjdG9yID0gZXF1YWxzQ29uc3RydWN0b3JQcm90b3R5cGVJZk5vdEJ1Z2d5KG9iamVjdCk7XG5cblx0XHRmb3IgKHZhciBrID0gMDsgayA8IGRvbnRFbnVtcy5sZW5ndGg7ICsraykge1xuXHRcdFx0aWYgKCEoc2tpcENvbnN0cnVjdG9yICYmIGRvbnRFbnVtc1trXSA9PT0gJ2NvbnN0cnVjdG9yJykgJiYgaGFzLmNhbGwob2JqZWN0LCBkb250RW51bXNba10pKSB7XG5cdFx0XHRcdHRoZUtleXMucHVzaChkb250RW51bXNba10pO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRyZXR1cm4gdGhlS2V5cztcbn07XG5cbmtleXNTaGltLnNoaW0gPSBmdW5jdGlvbiBzaGltT2JqZWN0S2V5cygpIHtcblx0aWYgKE9iamVjdC5rZXlzKSB7XG5cdFx0dmFyIGtleXNXb3Jrc1dpdGhBcmd1bWVudHMgPSAoZnVuY3Rpb24gKCkge1xuXHRcdFx0Ly8gU2FmYXJpIDUuMCBidWdcblx0XHRcdHJldHVybiAoT2JqZWN0LmtleXMoYXJndW1lbnRzKSB8fCAnJykubGVuZ3RoID09PSAyO1xuXHRcdH0oMSwgMikpO1xuXHRcdGlmICgha2V5c1dvcmtzV2l0aEFyZ3VtZW50cykge1xuXHRcdFx0dmFyIG9yaWdpbmFsS2V5cyA9IE9iamVjdC5rZXlzO1xuXHRcdFx0T2JqZWN0LmtleXMgPSBmdW5jdGlvbiBrZXlzKG9iamVjdCkge1xuXHRcdFx0XHRpZiAoaXNBcmdzKG9iamVjdCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gb3JpZ2luYWxLZXlzKHNsaWNlLmNhbGwob2JqZWN0KSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9yaWdpbmFsS2V5cyhvYmplY3QpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRPYmplY3Qua2V5cyA9IGtleXNTaGltO1xuXHR9XG5cdHJldHVybiBPYmplY3Qua2V5cyB8fCBrZXlzU2hpbTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5c1NoaW07XG4iLCJcbnZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmb3JFYWNoIChvYmosIGZuLCBjdHgpIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChmbikgIT09ICdbb2JqZWN0IEZ1bmN0aW9uXScpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaXRlcmF0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gICAgfVxuICAgIHZhciBsID0gb2JqLmxlbmd0aDtcbiAgICBpZiAobCA9PT0gK2wpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGZuLmNhbGwoY3R4LCBvYmpbaV0sIGksIG9iaik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgICAgICAgICAgaWYgKGhhc093bi5jYWxsKG9iaiwgaykpIHtcbiAgICAgICAgICAgICAgICBmbi5jYWxsKGN0eCwgb2JqW2tdLCBrLCBvYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIga2V5cyA9IHJlcXVpcmUoJ29iamVjdC1rZXlzJyk7XG52YXIgZm9yZWFjaCA9IHJlcXVpcmUoJ2ZvcmVhY2gnKTtcbnZhciBoYXNTeW1ib2xzID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgU3ltYm9sKCkgPT09ICdzeW1ib2wnO1xuXG52YXIgdG9TdHIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG52YXIgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uIChmbikge1xuXHRyZXR1cm4gdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nICYmIHRvU3RyLmNhbGwoZm4pID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xufTtcblxudmFyIGFyZVByb3BlcnR5RGVzY3JpcHRvcnNTdXBwb3J0ZWQgPSBmdW5jdGlvbiAoKSB7XG5cdHZhciBvYmogPSB7fTtcblx0dHJ5IHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCAneCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiBvYmogfSk7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzLCBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuICAgICAgICBmb3IgKHZhciBfIGluIG9iaikgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycywgbm8tcmVzdHJpY3RlZC1zeW50YXggKi9cblx0XHRyZXR1cm4gb2JqLnggPT09IG9iajtcblx0fSBjYXRjaCAoZSkgeyAvKiB0aGlzIGlzIElFIDguICovXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59O1xudmFyIHN1cHBvcnRzRGVzY3JpcHRvcnMgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgYXJlUHJvcGVydHlEZXNjcmlwdG9yc1N1cHBvcnRlZCgpO1xuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lLCB2YWx1ZSwgcHJlZGljYXRlKSB7XG5cdGlmIChuYW1lIGluIG9iamVjdCAmJiAoIWlzRnVuY3Rpb24ocHJlZGljYXRlKSB8fCAhcHJlZGljYXRlKCkpKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cdGlmIChzdXBwb3J0c0Rlc2NyaXB0b3JzKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgbmFtZSwge1xuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0ZW51bWVyYWJsZTogZmFsc2UsXG5cdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHR3cml0YWJsZTogdHJ1ZVxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdG9iamVjdFtuYW1lXSA9IHZhbHVlO1xuXHR9XG59O1xuXG52YXIgZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIChvYmplY3QsIG1hcCkge1xuXHR2YXIgcHJlZGljYXRlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDoge307XG5cdHZhciBwcm9wcyA9IGtleXMobWFwKTtcblx0aWYgKGhhc1N5bWJvbHMpIHtcblx0XHRwcm9wcyA9IHByb3BzLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKG1hcCkpO1xuXHR9XG5cdGZvcmVhY2gocHJvcHMsIGZ1bmN0aW9uIChuYW1lKSB7XG5cdFx0ZGVmaW5lUHJvcGVydHkob2JqZWN0LCBuYW1lLCBtYXBbbmFtZV0sIHByZWRpY2F0ZXNbbmFtZV0pO1xuXHR9KTtcbn07XG5cbmRlZmluZVByb3BlcnRpZXMuc3VwcG9ydHNEZXNjcmlwdG9ycyA9ICEhc3VwcG9ydHNEZXNjcmlwdG9ycztcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbmVQcm9wZXJ0aWVzO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtbnVtYmVyLmlzbmFuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNOYU4odmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlICE9PSB2YWx1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpbXBsZW1lbnRhdGlvbiA9IHJlcXVpcmUoJy4vaW1wbGVtZW50YXRpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZXRQb2x5ZmlsbCgpIHtcblx0aWYgKE51bWJlci5pc05hTiAmJiBOdW1iZXIuaXNOYU4oTmFOKSAmJiAhTnVtYmVyLmlzTmFOKCdhJykpIHtcblx0XHRyZXR1cm4gTnVtYmVyLmlzTmFOO1xuXHR9XG5cdHJldHVybiBpbXBsZW1lbnRhdGlvbjtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBkZWZpbmUgPSByZXF1aXJlKCdkZWZpbmUtcHJvcGVydGllcycpO1xuXG52YXIgaW1wbGVtZW50YXRpb24gPSByZXF1aXJlKCcuL2ltcGxlbWVudGF0aW9uJyk7XG52YXIgZ2V0UG9seWZpbGwgPSByZXF1aXJlKCcuL3BvbHlmaWxsJyk7XG52YXIgc2hpbSA9IHJlcXVpcmUoJy4vc2hpbScpO1xuXG4vKiBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtbnVtYmVyLmlzbmFuICovXG5cbmRlZmluZShpbXBsZW1lbnRhdGlvbiwge1xuXHRnZXRQb2x5ZmlsbDogZ2V0UG9seWZpbGwsXG5cdGltcGxlbWVudGF0aW9uOiBpbXBsZW1lbnRhdGlvbixcblx0c2hpbTogc2hpbVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW1wbGVtZW50YXRpb247XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBkZWZpbmUgPSByZXF1aXJlKCdkZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGdldFBvbHlmaWxsID0gcmVxdWlyZSgnLi9wb2x5ZmlsbCcpO1xuXG4vKiBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtbnVtYmVyLmlzbmFuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc2hpbU51bWJlcklzTmFOKCkge1xuXHR2YXIgcG9seWZpbGwgPSBnZXRQb2x5ZmlsbCgpO1xuXHRkZWZpbmUoTnVtYmVyLCB7IGlzTmFOOiBwb2x5ZmlsbCB9LCB7IGlzTmFOOiBmdW5jdGlvbiAoKSB7IHJldHVybiBOdW1iZXIuaXNOYU4gIT09IHBvbHlmaWxsOyB9IH0pO1xuXHRyZXR1cm4gcG9seWZpbGw7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdHJpbSA9IHJlcXVpcmUoJ3RyaW0nKTtcbnZhciBwYXJhbUNhc2UgPSByZXF1aXJlKCdrZWJhYi1jYXNlJyk7XG52YXIgaW5mb3JtYXRpb24gPSByZXF1aXJlKCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpO1xudmFyIHNwYWNlcyA9IHJlcXVpcmUoJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnKTtcbnZhciBjb21tYXMgPSByZXF1aXJlKCdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJyk7XG52YXIgbmFuID0gcmVxdWlyZSgnaXMtbmFuJyk7XG52YXIgaXMgPSByZXF1aXJlKCd1bmlzdC11dGlsLWlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gd3JhcHBlcjtcblxuZnVuY3Rpb24gd3JhcHBlcihoLCBub2RlLCBwcmVmaXgpIHtcbiAgdmFyIHI7XG4gIHZhciB2O1xuXG4gIGlmICh0eXBlb2YgaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignaCBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgciA9IHJlYWN0KGgpO1xuICB2ID0gdmRvbShoKTtcblxuICBpZiAocHJlZml4ID09PSBudWxsIHx8IHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcHJlZml4ID0gciA9PT0gdHJ1ZSB8fCB2ID09PSB0cnVlID8gJ2gtJyA6IGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzKCdyb290Jywgbm9kZSkpIHtcbiAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDEgJiYgaXMoJ2VsZW1lbnQnLCBub2RlLmNoaWxkcmVuWzBdKSkge1xuICAgICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5bMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICAgICAgdGFnTmFtZTogJ2RpdicsXG4gICAgICAgIHByb3BlcnRpZXM6IHt9LFxuICAgICAgICBjaGlsZHJlbjogbm9kZS5jaGlsZHJlblxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoIWlzKCdlbGVtZW50Jywgbm9kZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHJvb3Qgb3IgZWxlbWVudCwgbm90IGAnICsgKChub2RlICYmIG5vZGUudHlwZSkgfHwgbm9kZSkgKyAnYCcpO1xuICB9XG5cbiAgcmV0dXJuIHRvSChoLCBub2RlLCB7XG4gICAgcHJlZml4OiBwcmVmaXgsXG4gICAga2V5OiAwLFxuICAgIHJlYWN0OiByLFxuICAgIHZkb206IHYsXG4gICAgaHlwZXJzY3JpcHQ6IGh5cGVyc2NyaXB0KGgpXG4gIH0pO1xufVxuXG4vKiBUcmFuc2Zvcm0gYSBIQVNUIG5vZGUgdGhyb3VnaCBhIGh5cGVyc2NyaXB0IGludGVyZmFjZVxuICogdG8gKmFueXRoaW5nKiEgKi9cbmZ1bmN0aW9uIHRvSChoLCBub2RlLCBjdHgpIHtcbiAgdmFyIHNlbGVjdG9yID0gbm9kZS50YWdOYW1lO1xuICB2YXIgcHJvcGVydGllcztcbiAgdmFyIGF0dHJpYnV0ZXM7XG4gIHZhciBjaGlsZHJlbjtcbiAgdmFyIHByb3BlcnR5O1xuICB2YXIgZWxlbWVudHM7XG4gIHZhciBsZW5ndGg7XG4gIHZhciBpbmRleDtcbiAgdmFyIHZhbHVlO1xuXG4gIHByb3BlcnRpZXMgPSBub2RlLnByb3BlcnRpZXM7XG4gIGF0dHJpYnV0ZXMgPSB7fTtcblxuICBmb3IgKHByb3BlcnR5IGluIHByb3BlcnRpZXMpIHtcbiAgICBhZGRBdHRyaWJ1dGUoYXR0cmlidXRlcywgcHJvcGVydHksIHByb3BlcnRpZXNbcHJvcGVydHldLCBjdHgpO1xuICB9XG5cbiAgaWYgKGN0eC52ZG9tID09PSB0cnVlKSB7XG4gICAgc2VsZWN0b3IgPSBzZWxlY3Rvci50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgaWYgKGN0eC5oeXBlcnNjcmlwdCA9PT0gdHJ1ZSAmJiBhdHRyaWJ1dGVzLmlkKSB7XG4gICAgc2VsZWN0b3IgKz0gJyMnICsgYXR0cmlidXRlcy5pZDtcbiAgICBkZWxldGUgYXR0cmlidXRlcy5pZDtcbiAgfVxuXG4gIGlmICgoY3R4Lmh5cGVyc2NyaXB0ID09PSB0cnVlIHx8IGN0eC52ZG9tID09PSB0cnVlKSAmJiBhdHRyaWJ1dGVzLmNsYXNzTmFtZSkge1xuICAgIHNlbGVjdG9yICs9ICcuJyArIHNwYWNlcy5wYXJzZShhdHRyaWJ1dGVzLmNsYXNzTmFtZSkuam9pbignLicpO1xuICAgIGRlbGV0ZSBhdHRyaWJ1dGVzLmNsYXNzTmFtZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgYXR0cmlidXRlcy5zdHlsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAvKiBWRE9NIGV4cGVjdHMgYSBgc3RyaW5nYCBzdHlsZSBpbiBgYXR0cmlidXRlc2BcbiAgICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL01hdHQtRXNjaC92aXJ0dWFsLWRvbS9ibG9iLzk0N2VjZjkvXG4gICAgICogZG9jcy92bm9kZS5tZCNwcm9wZXJ0aWVzc3R5bGUtdnMtcHJvcGVydGllc2F0dHJpYnV0ZXNzdHlsZSAqL1xuICAgIGlmIChjdHgudmRvbSA9PT0gdHJ1ZSkge1xuICAgICAgaWYgKCFhdHRyaWJ1dGVzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgYXR0cmlidXRlcy5hdHRyaWJ1dGVzID0ge307XG4gICAgICB9XG5cbiAgICAgIGF0dHJpYnV0ZXMuYXR0cmlidXRlcy5zdHlsZSA9IGF0dHJpYnV0ZXMuc3R5bGU7XG4gICAgICBkZWxldGUgYXR0cmlidXRlcy5zdHlsZTtcbiAgICAvKiBSZWFjdCBvbmx5IGFjY2VwdHMgYHN0eWxlYCBhcyBvYmplY3QuICovXG4gICAgfSBlbHNlIGlmIChjdHgucmVhY3QgPT09IHRydWUpIHtcbiAgICAgIGF0dHJpYnV0ZXMuc3R5bGUgPSBwYXJzZVN0eWxlKGF0dHJpYnV0ZXMuc3R5bGUpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChjdHgucHJlZml4KSB7XG4gICAgY3R4LmtleSsrO1xuICAgIGF0dHJpYnV0ZXMua2V5ID0gY3R4LnByZWZpeCArIGN0eC5rZXk7XG4gIH1cblxuICBlbGVtZW50cyA9IFtdO1xuICBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4gfHwgW107XG4gIGxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aDtcbiAgaW5kZXggPSAtMTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhbHVlID0gY2hpbGRyZW5baW5kZXhdO1xuXG4gICAgaWYgKGlzKCdlbGVtZW50JywgdmFsdWUpKSB7XG4gICAgICBlbGVtZW50cy5wdXNoKHRvSChoLCB2YWx1ZSwgY3R4KSk7XG4gICAgfSBlbHNlIGlmIChpcygndGV4dCcsIHZhbHVlKSkge1xuICAgICAgZWxlbWVudHMucHVzaCh2YWx1ZS52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyogRW5zdXJlIG5vIFJlYWN0IHdhcm5pbmdzIGFyZSB0cmlnZ2VyZWQgZm9yXG4gICAqIHZvaWQgZWxlbWVudHMgaGF2aW5nIGNoaWxkcmVuIHBhc3NlZCBpbi4gKi9cbiAgcmV0dXJuIGVsZW1lbnRzLmxlbmd0aCA9PT0gMCA/IGgoc2VsZWN0b3IsIGF0dHJpYnV0ZXMpIDogaChzZWxlY3RvciwgYXR0cmlidXRlcywgZWxlbWVudHMpO1xufVxuXG4vKiBBZGQgYG5hbWVgIGFuZCBpdHMgYHZhbHVlYCB0byBgcHJvcHNgLiAqL1xuZnVuY3Rpb24gYWRkQXR0cmlidXRlKHByb3BzLCBuYW1lLCB2YWx1ZSwgY3R4KSB7XG4gIHZhciBpbmZvID0gaW5mb3JtYXRpb24obmFtZSkgfHwge307XG4gIHZhciBzdWJwcm9wO1xuXG4gIC8qIElnbm9yZSBudWxseSwgYGZhbHNlYCwgYE5hTmAsIGFuZCBmYWxzZXkga25vd25cbiAgICogYm9vbGVhbnMuICovXG4gIGlmIChcbiAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgIHZhbHVlID09PSB1bmRlZmluZWQgfHxcbiAgICB2YWx1ZSA9PT0gZmFsc2UgfHxcbiAgICBuYW4odmFsdWUpIHx8XG4gICAgKGluZm8uYm9vbGVhbiAmJiAhdmFsdWUpXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG5hbWUgPSBpbmZvLm5hbWUgfHwgcGFyYW1DYXNlKG5hbWUpO1xuXG4gIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHZhbHVlKSB7XG4gICAgLyogQWNjZXB0IGBhcnJheWAuICBNb3N0IHByb3BzIGFyZSBzcGFjZS1zZXBhcmF0ZXIuICovXG4gICAgdmFsdWUgPSAoaW5mby5jb21tYVNlcGFyYXRlZCA/IGNvbW1hcyA6IHNwYWNlcykuc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuXG4gIC8qIFRyZWF0IGB0cnVlYCBhbmQgdHJ1dGh5IGtub3duIGJvb2xlYW5zLiAqL1xuICBpZiAoaW5mby5ib29sZWFuICYmIGN0eC5oeXBlcnNjcmlwdCA9PT0gdHJ1ZSkge1xuICAgIHZhbHVlID0gJyc7XG4gIH1cblxuICBpZiAoaW5mby5uYW1lICE9PSAnY2xhc3MnICYmIChpbmZvLm11c3RVc2VBdHRyaWJ1dGUgfHwgIWluZm8ubmFtZSkpIHtcbiAgICBpZiAoY3R4LnZkb20gPT09IHRydWUpIHtcbiAgICAgIHN1YnByb3AgPSAnYXR0cmlidXRlcyc7XG4gICAgfSBlbHNlIGlmIChjdHguaHlwZXJzY3JpcHQgPT09IHRydWUpIHtcbiAgICAgIHN1YnByb3AgPSAnYXR0cnMnO1xuICAgIH1cblxuICAgIGlmIChzdWJwcm9wKSB7XG4gICAgICBpZiAocHJvcHNbc3VicHJvcF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wc1tzdWJwcm9wXSA9IHt9O1xuICAgICAgfVxuXG4gICAgICBwcm9wc1tzdWJwcm9wXVtuYW1lXSA9IHZhbHVlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJvcHNbaW5mby5wcm9wZXJ0eU5hbWUgfHwgbmFtZV0gPSB2YWx1ZTtcbn1cblxuLyogQ2hlY2sgaWYgYGhgIGlzIGByZWFjdC5jcmVhdGVFbGVtZW50YC4gIEl0IGRvZXNu4oCZdCBhY2NlcHRcbiAqIGBjbGFzc2AgYXMgYW4gYXR0cmlidXRlLCBpdCBtdXN0IGJlIGFkZGVkIHRocm91Z2ggdGhlXG4gKiBgc2VsZWN0b3JgLiAqL1xuZnVuY3Rpb24gcmVhY3QoaCkge1xuICB2YXIgbm9kZSA9IGggJiYgaCgnZGl2Jyk7XG4gIHJldHVybiBCb29sZWFuKG5vZGUgJiYgKCdfb3duZXInIGluIG5vZGUgfHwgJ19zdG9yZScgaW4gbm9kZSkgJiYgbm9kZS5rZXkgPT09IG51bGwpO1xufVxuXG4vKiBDaGVjayBpZiBgaGAgaXMgYGh5cGVyc2NyaXB0YC4gIEl0IGRvZXNu4oCZdCBhY2NlcHRcbiAqIGBjbGFzc2AgYXMgYW4gYXR0cmlidXRlLCBpdCBtdXN0IGJlIGFkZGVkIHRocm91Z2ggdGhlXG4gKiBgc2VsZWN0b3JgLiAqL1xuZnVuY3Rpb24gaHlwZXJzY3JpcHQoaCkge1xuICByZXR1cm4gQm9vbGVhbihoICYmIGguY29udGV4dCAmJiBoLmNsZWFudXApO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGBoYCBpcyBgdmlydHVhbC1kb20vaGAuICBJdOKAmXMgdGhlIG9ubHlcbiAqIGh5cGVyc2NyaXB0IOKAnGNvbXBhdGlibGXigJ0gaW50ZXJmYWNlIG5lZWRpbmcgYGF0dHJpYnV0ZXNgLiAqL1xuZnVuY3Rpb24gdmRvbShoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGgoJ2RpdicpLnR5cGUgPT09ICdWaXJ0dWFsTm9kZSc7XG4gIH0gY2F0Y2ggKGVycikgeyAvKiBFbXB0eSAqLyB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBwYXJzZVN0eWxlKHZhbHVlKSB7XG4gIHZhciByZXN1bHQgPSB7fTtcbiAgdmFyIGRlY2xhcmF0aW9ucyA9IHZhbHVlLnNwbGl0KCc7Jyk7XG4gIHZhciBsZW5ndGggPSBkZWNsYXJhdGlvbnMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIGRlY2xhcmF0aW9uO1xuICB2YXIgcHJvcDtcbiAgdmFyIHBvcztcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGRlY2xhcmF0aW9uID0gZGVjbGFyYXRpb25zW2luZGV4XTtcbiAgICBwb3MgPSBkZWNsYXJhdGlvbi5pbmRleE9mKCc6Jyk7XG4gICAgaWYgKHBvcyAhPT0gLTEpIHtcbiAgICAgIHByb3AgPSBjYW1lbENhc2UodHJpbShkZWNsYXJhdGlvbi5zbGljZSgwLCBwb3MpKSk7XG4gICAgICByZXN1bHRbcHJvcF0gPSB0cmltKGRlY2xhcmF0aW9uLnNsaWNlKHBvcyArIDEpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBjYW1lbENhc2UodmFsKSB7XG4gIGlmICh2YWwuc2xpY2UoMCwgNCkgPT09ICctbXMtJykge1xuICAgIHZhbCA9ICdtcy0nICsgdmFsLnNsaWNlKDQpO1xuICB9XG5cbiAgcmV0dXJuIHZhbC5yZXBsYWNlKC8tKFthLXpdKS9nLCByZXBsYWNlKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZSgkMCwgJDEpIHtcbiAgcmV0dXJuICQxLnRvVXBwZXJDYXNlKCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFjdG9yeTtcblxudmFyIG5vb3AgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbi8qIEhhbmRsZSB2YWx1ZXMgYmFzZWQgb24gYSBwcm9wZXJ0eS4gKi9cbmZ1bmN0aW9uIGZhY3Rvcnkoa2V5LCBvcHRpb25zKSB7XG4gIHZhciBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge307XG5cbiAgZnVuY3Rpb24gb25lKHZhbHVlKSB7XG4gICAgdmFyIGZuID0gb25lLmludmFsaWQ7XG4gICAgdmFyIGhhbmRsZXJzID0gb25lLmhhbmRsZXJzO1xuXG4gICAgaWYgKHZhbHVlICYmIG93bi5jYWxsKHZhbHVlLCBrZXkpKSB7XG4gICAgICBmbiA9IG93bi5jYWxsKGhhbmRsZXJzLCB2YWx1ZVtrZXldKSA/IGhhbmRsZXJzW3ZhbHVlW2tleV1dIDogb25lLnVua25vd247XG4gICAgfVxuXG4gICAgcmV0dXJuIChmbiB8fCBub29wKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgb25lLmhhbmRsZXJzID0gc2V0dGluZ3MuaGFuZGxlcnMgfHwge307XG4gIG9uZS5pbnZhbGlkID0gc2V0dGluZ3MuaW52YWxpZDtcbiAgb25lLnVua25vd24gPSBzZXR0aW5ncy51bmtub3duO1xuXG4gIHJldHVybiBvbmU7XG59XG4iLCJ2YXIgbmF0aXZlSXNBcnJheSA9IEFycmF5LmlzQXJyYXlcbnZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBuYXRpdmVJc0FycmF5IHx8IGlzQXJyYXlcblxuZnVuY3Rpb24gaXNBcnJheShvYmopIHtcbiAgICByZXR1cm4gdG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgQXJyYXldXCJcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFycmF5ID0gcmVxdWlyZSgneC1pcy1hcnJheScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhY3Rvcnk7XG5cbi8qIEZ1bmN0aW9uYWwgbWFwIHdpdGggc3VnYXIuICovXG5mdW5jdGlvbiBmYWN0b3J5KGZuLCBvcHRpb25zKSB7XG4gIHZhciBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge307XG4gIHZhciBrZXkgPSBzZXR0aW5ncy5rZXk7XG4gIHZhciBpbmRpY2VzID0gc2V0dGluZ3MuaW5kaWNlcztcbiAgdmFyIGdhcGxlc3MgPSBzZXR0aW5ncy5nYXBsZXNzO1xuXG4gIGlmICh0eXBlb2Ygc2V0dGluZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5ID0gc2V0dGluZ3M7XG4gIH1cblxuICBpZiAoaW5kaWNlcyA9PSBudWxsKSB7XG4gICAgaW5kaWNlcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gYWxsO1xuXG4gIGZ1bmN0aW9uIGFsbCh2YWx1ZXMpIHtcbiAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgIHZhciBwYXJlbnQgPSB2YWx1ZXM7XG4gICAgdmFyIGluZGV4ID0gLTE7XG4gICAgdmFyIGxlbmd0aDtcbiAgICB2YXIgcmVzdWx0O1xuXG4gICAgaWYgKGtleSkge1xuICAgICAgaWYgKGFycmF5KHZhbHVlcykpIHtcbiAgICAgICAgcGFyZW50ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlcyA9IHBhcmVudFtrZXldO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxlbmd0aCA9IHZhbHVlcy5sZW5ndGg7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGluZGljZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gZm4uY2FsbCh0aGlzLCB2YWx1ZXNbaW5kZXhdLCBpbmRleCwgcGFyZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IGZuLmNhbGwodGhpcywgdmFsdWVzW2luZGV4XSwgcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFnYXBsZXNzIHx8IHJlc3VsdCAhPSBudWxsKSB7XG4gICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJyk7XG52YXIgdG9IID0gcmVxdWlyZSgnaGFzdC10by1oeXBlcnNjcmlwdCcpO1xudmFyIE5TID0gcmVxdWlyZSgnd2ViLW5hbWVzcGFjZXMnKTtcbnZhciB6d2l0Y2ggPSByZXF1aXJlKCd6d2l0Y2gnKTtcbnZhciBtYXB6ID0gcmVxdWlyZSgnbWFweicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRyYW5zZm9ybTtcblxudmFyIG93biA9IHt9Lmhhc093blByb3BlcnR5O1xudmFyIG9uZSA9IHp3aXRjaCgndHlwZScpO1xudmFyIGFsbCA9IG1hcHoob25lLCB7a2V5OiAnY2hpbGRyZW4nLCBpbmRpY2VzOiBmYWxzZX0pO1xuXG52YXIgY3VzdG9tUHJvcHMgPSBbJ19fbG9jYXRpb24nLCAnY2hpbGROb2RlcycsICdjb250ZW50JywgJ3BhcmVudE5vZGUnLCAnbmFtZXNwYWNlVVJJJ107XG5cbm9uZS5oYW5kbGVycy5yb290ID0gcm9vdDtcbm9uZS5oYW5kbGVycy5lbGVtZW50ID0gZWxlbWVudDtcbm9uZS5oYW5kbGVycy50ZXh0ID0gdGV4dDtcbm9uZS5oYW5kbGVycy5jb21tZW50ID0gY29tbWVudDtcbm9uZS5oYW5kbGVycy5kb2N0eXBlID0gZG9jdHlwZTtcblxuLyogTWFwIG9mIHRhZy1uYW1lcyBzdGFydGluZyBuZXcgbmFtZXNwYWNlcy4gKi9cbnZhciBuYW1lc3BhY2VzID0ge1xuICBtYXRoOiBOUy5tYXRobWwsXG4gIHN2ZzogTlMuc3ZnXG59O1xuXG4vKiBNYXAgb2YgYXR0cmlidXRlcyB3aXRoIG5hbWVzcGFjZXMuICovXG52YXIgYXR0cmlidXRlU3BhY2VzID0ge1xuICAneGxpbms6YWN0dWF0ZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhY3R1YXRlJywgbmFtZXNwYWNlOiBOUy54bGlua30sXG4gICd4bGluazphcmNyb2xlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2FyY3JvbGUnLCBuYW1lc3BhY2U6IE5TLnhsaW5rfSxcbiAgJ3hsaW5rOmhyZWYnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnaHJlZicsIG5hbWVzcGFjZTogTlMueGxpbmt9LFxuICAneGxpbms6cm9sZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdyb2xlJywgbmFtZXNwYWNlOiBOUy54bGlua30sXG4gICd4bGluazpzaG93Jzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3Nob3cnLCBuYW1lc3BhY2U6IE5TLnhsaW5rfSxcbiAgJ3hsaW5rOnRpdGxlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3RpdGxlJywgbmFtZXNwYWNlOiBOUy54bGlua30sXG4gICd4bGluazp0eXBlJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ3R5cGUnLCBuYW1lc3BhY2U6IE5TLnhsaW5rfSxcbiAgJ3htbDpiYXNlJzoge3ByZWZpeDogJ3htbCcsIG5hbWU6ICdiYXNlJywgbmFtZXNwYWNlOiBOUy54bWx9LFxuICAneG1sOmxhbmcnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ2xhbmcnLCBuYW1lc3BhY2U6IE5TLnhtbH0sXG4gICd4bWw6c3BhY2UnOiB7cHJlZml4OiAneG1sJywgbmFtZTogJ3NwYWNlJywgbmFtZXNwYWNlOiBOUy54bWx9LFxuICB4bWxuczoge3ByZWZpeDogJycsIG5hbWU6ICd4bWxucycsIG5hbWVzcGFjZTogTlMueG1sbnN9LFxuICAneG1sbnM6eGxpbmsnOiB7cHJlZml4OiAneG1sbnMnLCBuYW1lOiAneGxpbmsnLCBuYW1lc3BhY2U6IE5TLnhtbG5zfVxufTtcblxuLyogVHJhbnNmb3JtIGEgdHJlZSBmcm9tIEhBU1QgdG8gUGFyc2U14oCZcyBBU1QuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm0odHJlZSkge1xuICByZXR1cm4gcGF0Y2gob25lKHRyZWUpLCBudWxsLCBOUy5odG1sKTtcbn1cblxuZnVuY3Rpb24gcm9vdChub2RlKSB7XG4gIHZhciBkYXRhID0gbm9kZS5kYXRhIHx8IHt9O1xuICB2YXIgcXMgPSBvd24uY2FsbChkYXRhLCAncXVpcmtzTW9kZScpID8gQm9vbGVhbihkYXRhLnF1aXJrc01vZGUpIDogZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBub2RlTmFtZTogJyNkb2N1bWVudCcsXG4gICAgbW9kZTogcXMgPyAncXVpcmtzJyA6ICduby1xdWlya3MnLFxuICAgIGNoaWxkTm9kZXM6IGFsbChub2RlKVxuICB9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50KG5vZGUpIHtcbiAgdmFyIHNoYWxsb3cgPSB4dGVuZChub2RlKTtcblxuICBzaGFsbG93LmNoaWxkcmVuID0gW107XG5cbiAgcmV0dXJuIHRvSChmdW5jdGlvbiAobmFtZSwgYXR0cnMpIHtcbiAgICB2YXIgdmFsdWVzID0gW107XG4gICAgdmFyIGNvbnRlbnQ7XG4gICAgdmFyIHZhbHVlO1xuICAgIHZhciBrZXk7XG5cbiAgICBmb3IgKGtleSBpbiBhdHRycykge1xuICAgICAgdmFsdWUgPSB7bmFtZToga2V5LCB2YWx1ZTogYXR0cnNba2V5XX07XG5cbiAgICAgIGlmIChvd24uY2FsbChhdHRyaWJ1dGVTcGFjZXMsIGtleSkpIHtcbiAgICAgICAgdmFsdWUgPSB4dGVuZCh2YWx1ZSwgYXR0cmlidXRlU3BhY2VzW2tleV0pO1xuICAgICAgfVxuXG4gICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5hbWUgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgIGNvbnRlbnQgPSB0cmFuc2Zvcm0oc2hhbGxvdy5jb250ZW50KTtcbiAgICAgIGRlbGV0ZSBjb250ZW50Lm1vZGU7XG4gICAgICBjb250ZW50Lm5vZGVOYW1lID0gJyNkb2N1bWVudC1mcmFnbWVudCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdyYXAobm9kZSwge1xuICAgICAgbm9kZU5hbWU6IG5vZGUudGFnTmFtZSxcbiAgICAgIHRhZ05hbWU6IG5vZGUudGFnTmFtZSxcbiAgICAgIGF0dHJzOiB2YWx1ZXMsXG4gICAgICBjaGlsZE5vZGVzOiBub2RlLmNoaWxkcmVuID8gYWxsKG5vZGUpIDogW11cbiAgICB9LCBjb250ZW50KTtcbiAgfSwgc2hhbGxvdyk7XG59XG5cbmZ1bmN0aW9uIGRvY3R5cGUobm9kZSkge1xuICByZXR1cm4gd3JhcChub2RlLCB7XG4gICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcbiAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgcHVibGljSWQ6IG5vZGUucHVibGljIHx8IG51bGwsXG4gICAgc3lzdGVtSWQ6IG5vZGUuc3lzdGVtIHx8IG51bGxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHRleHQobm9kZSkge1xuICByZXR1cm4gd3JhcChub2RlLCB7XG4gICAgbm9kZU5hbWU6ICcjdGV4dCcsXG4gICAgdmFsdWU6IG5vZGUudmFsdWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbW1lbnQobm9kZSkge1xuICByZXR1cm4gd3JhcChub2RlLCB7XG4gICAgbm9kZU5hbWU6ICcjY29tbWVudCcsXG4gICAgZGF0YTogbm9kZS52YWx1ZVxuICB9KTtcbn1cblxuLyogUGF0Y2ggcG9zaXRpb24uICovXG5mdW5jdGlvbiB3cmFwKG5vZGUsIGFzdCwgY29udGVudCkge1xuICBpZiAobm9kZS5wb3NpdGlvbiAmJiBub2RlLnBvc2l0aW9uLnN0YXJ0ICYmIG5vZGUucG9zaXRpb24uZW5kKSB7XG4gICAgYXN0Ll9fbG9jYXRpb24gPSB7XG4gICAgICBsaW5lOiBub2RlLnBvc2l0aW9uLnN0YXJ0LmxpbmUsXG4gICAgICBjb2w6IG5vZGUucG9zaXRpb24uc3RhcnQuY29sdW1uLFxuICAgICAgc3RhcnRPZmZzZXQ6IG5vZGUucG9zaXRpb24uc3RhcnQub2Zmc2V0LFxuICAgICAgZW5kT2Zmc2V0OiBub2RlLnBvc2l0aW9uLmVuZC5vZmZzZXRcbiAgICB9O1xuICB9XG5cbiAgaWYgKGNvbnRlbnQpIHtcbiAgICBhc3QuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gYXN0O1xufVxuXG4vKiBQYXRjaCBhIHRyZWUgcmVjdXJzaXZlbHksIGJ5IGFkZGluZyBuYW1lc3BhY2VzXG4gKiBhbmQgcGFyZW50IHJlZmVyZW5jZXMgd2hlcmUgbmVlZGVkLiAqL1xuZnVuY3Rpb24gcGF0Y2gobm9kZSwgcGFyZW50LCBucykge1xuICB2YXIgbG9jYXRpb24gPSBub2RlLl9fbG9jYXRpb247XG4gIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGROb2RlcztcbiAgdmFyIG5hbWUgPSBub2RlLnRhZ05hbWU7XG4gIHZhciByZXBsYWNlbWVudCA9IHt9O1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgaW5kZXg7XG4gIHZhciBrZXk7XG5cbiAgZm9yIChrZXkgaW4gbm9kZSkge1xuICAgIGlmIChjdXN0b21Qcm9wcy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICByZXBsYWNlbWVudFtrZXldID0gbm9kZVtrZXldO1xuICAgIH1cbiAgfVxuXG4gIGlmIChvd24uY2FsbChuYW1lc3BhY2VzLCBuYW1lKSkge1xuICAgIG5zID0gbmFtZXNwYWNlc1tuYW1lXTtcbiAgfVxuXG4gIGlmIChvd24uY2FsbChyZXBsYWNlbWVudCwgJ3RhZ05hbWUnKSkge1xuICAgIHJlcGxhY2VtZW50Lm5hbWVzcGFjZVVSSSA9IG5zO1xuICB9XG5cbiAgaWYgKGNoaWxkcmVuKSB7XG4gICAgcmVwbGFjZW1lbnQuY2hpbGROb2RlcyA9IGNoaWxkcmVuO1xuICAgIGxlbmd0aCA9IGNoaWxkcmVuLmxlbmd0aDtcbiAgICBpbmRleCA9IC0xO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoaWxkcmVuW2luZGV4XSA9IHBhdGNoKGNoaWxkcmVuW2luZGV4XSwgcmVwbGFjZW1lbnQsIG5zKTtcbiAgICB9XG4gIH1cblxuICBpZiAobmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgIHJlcGxhY2VtZW50LmNvbnRlbnQgPSBwYXRjaChub2RlLmNvbnRlbnQsIG51bGwsIG5zKTtcbiAgfVxuXG4gIGlmIChwYXJlbnQpIHtcbiAgICByZXBsYWNlbWVudC5wYXJlbnROb2RlID0gcGFyZW50O1xuICB9XG5cbiAgaWYgKGxvY2F0aW9uKSB7XG4gICAgcmVwbGFjZW1lbnQuX19sb2NhdGlvbiA9IGxvY2F0aW9uO1xuICB9XG5cbiAgcmV0dXJuIHJlcGxhY2VtZW50O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgUGFyc2VyID0gcmVxdWlyZSgncGFyc2U1L2xpYi9wYXJzZXInKTtcbnZhciBwb3MgPSByZXF1aXJlKCd1bmlzdC11dGlsLXBvc2l0aW9uJyk7XG52YXIgZnJvbVBhcnNlNSA9IHJlcXVpcmUoJ2hhc3QtdXRpbC1mcm9tLXBhcnNlNScpO1xudmFyIHRvUGFyc2U1ID0gcmVxdWlyZSgnaGFzdC11dGlsLXRvLXBhcnNlNScpO1xudmFyIHZvaWRzID0gcmVxdWlyZSgnaHRtbC12b2lkLWVsZW1lbnRzJyk7XG52YXIgbnMgPSByZXF1aXJlKCd3ZWItbmFtZXNwYWNlcycpO1xudmFyIHp3aXRjaCA9IHJlcXVpcmUoJ3p3aXRjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHdyYXA7XG5cbnZhciBJTl9URU1QTEFURV9NT0RFID0gJ0lOX1RFTVBMQVRFX01PREUnO1xudmFyIENIQVJBQ1RFUl9UT0tFTiA9ICdDSEFSQUNURVJfVE9LRU4nO1xudmFyIFNUQVJUX1RBR19UT0tFTiA9ICdTVEFSVF9UQUdfVE9LRU4nO1xudmFyIEVORF9UQUdfVE9LRU4gPSAnRU5EX1RBR19UT0tFTic7XG52YXIgSElCRVJOQVRJT05fVE9LRU4gPSAnSElCRVJOQVRJT05fVE9LRU4nO1xudmFyIENPTU1FTlRfVE9LRU4gPSAnQ09NTUVOVF9UT0tFTic7XG52YXIgRE9DVFlQRV9UT0tFTiA9ICdET0NUWVBFX1RPS0VOJztcbnZhciBET0NVTUVOVCA9ICdkb2N1bWVudCc7XG52YXIgRlJBR01FTlQgPSAnZnJhZ21lbnQnO1xuXG5mdW5jdGlvbiB3cmFwKHRyZWUsIGZpbGUpIHtcbiAgdmFyIHBhcnNlciA9IG5ldyBQYXJzZXIoe2xvY2F0aW9uSW5mbzogdHJ1ZX0pO1xuICB2YXIgb25lID0gendpdGNoKCd0eXBlJyk7XG4gIHZhciBtb2RlID0gaW5mZXJNb2RlKHRyZWUpO1xuICB2YXIgcHJlcHJvY2Vzc29yO1xuICB2YXIgcmVzdWx0O1xuXG4gIG9uZS5oYW5kbGVycy5yb290ID0gcm9vdDtcbiAgb25lLmhhbmRsZXJzLmVsZW1lbnQgPSBlbGVtZW50O1xuICBvbmUuaGFuZGxlcnMudGV4dCA9IHRleHQ7XG4gIG9uZS5oYW5kbGVycy5jb21tZW50ID0gY29tbWVudDtcbiAgb25lLmhhbmRsZXJzLmRvY3R5cGUgPSBkb2N0eXBlO1xuICBvbmUuaGFuZGxlcnMucmF3ID0gcmF3O1xuICBvbmUudW5rbm93biA9IHVua25vd247XG5cbiAgcmVzdWx0ID0gZnJvbVBhcnNlNShtb2RlID09PSBGUkFHTUVOVCA/IGZyYWdtZW50KCkgOiBkb2N1bWVudCgpLCBmaWxlKTtcblxuICAvKiBVbnBhY2sgaWYgcG9zc2libGUgYW5kIHdoZW4gbm90IGdpdmVuIGEgYHJvb3RgLiAqL1xuICBpZiAodHJlZS50eXBlICE9PSAncm9vdCcgJiYgcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiByZXN1bHQuY2hpbGRyZW5bMF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGZ1bmN0aW9uIGZyYWdtZW50KCkge1xuICAgIHZhciBjb250ZXh0O1xuICAgIHZhciBtb2NrO1xuICAgIHZhciBkb2M7XG5cbiAgICBjb250ZXh0ID0ge1xuICAgICAgbm9kZU5hbWU6ICd0ZW1wbGF0ZScsXG4gICAgICB0YWdOYW1lOiAndGVtcGxhdGUnLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgbmFtZXNwYWNlVVJJOiBucy5odG1sLFxuICAgICAgY2hpbGROb2RlczogW11cbiAgICB9O1xuXG4gICAgbW9jayA9IHtcbiAgICAgIG5vZGVOYW1lOiAnZG9jdW1lbnRtb2NrJyxcbiAgICAgIHRhZ05hbWU6ICdkb2N1bWVudG1vY2snLFxuICAgICAgYXR0cnM6IFtdLFxuICAgICAgbmFtZXNwYWNlVVJJOiBucy5odG1sLFxuICAgICAgY2hpbGROb2RlczogW11cbiAgICB9O1xuXG4gICAgZG9jID0ge1xuICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxuICAgICAgY2hpbGROb2RlczogW11cbiAgICB9O1xuXG4gICAgcGFyc2VyLl9ib290c3RyYXAobW9jaywgY29udGV4dCk7XG4gICAgcGFyc2VyLl9wdXNoVG1wbEluc2VydGlvbk1vZGUoSU5fVEVNUExBVEVfTU9ERSk7XG4gICAgcGFyc2VyLl9pbml0VG9rZW5pemVyRm9yRnJhZ21lbnRQYXJzaW5nKCk7XG4gICAgcGFyc2VyLl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQoKTtcbiAgICBwYXJzZXIuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xuICAgIHBhcnNlci5fZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCgpO1xuXG4gICAgcHJlcHJvY2Vzc29yID0gcGFyc2VyLnRva2VuaXplci5wcmVwcm9jZXNzb3I7XG5cbiAgICBvbmUodHJlZSk7XG5cbiAgICBwYXJzZXIuX2Fkb3B0Tm9kZXMobW9jay5jaGlsZE5vZGVzWzBdLCBkb2MpO1xuXG4gICAgcmV0dXJuIGRvYztcbiAgfVxuXG4gIGZ1bmN0aW9uIGRvY3VtZW50KCkge1xuICAgIHZhciBkb2MgPSBwYXJzZXIudHJlZUFkYXB0ZXIuY3JlYXRlRG9jdW1lbnQoKTtcblxuICAgIHBhcnNlci5fYm9vdHN0cmFwKGRvYywgbnVsbCk7XG5cbiAgICBvbmUodHJlZSk7XG5cbiAgICByZXR1cm4gZG9jO1xuICB9XG5cbiAgZnVuY3Rpb24gYWxsKG5vZGVzKSB7XG4gICAgdmFyIGxlbmd0aCA9IDA7XG4gICAgdmFyIGluZGV4ID0gLTE7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAtIGludmFsaWQgbm9kZXMsIHNlZSB3b29vcm0vcmVoeXBlLXJhdyM3LiAqL1xuICAgIGlmIChub2Rlcykge1xuICAgICAgbGVuZ3RoID0gbm9kZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBvbmUobm9kZXNbaW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByb290KG5vZGUpIHtcbiAgICBhbGwobm9kZS5jaGlsZHJlbik7XG4gIH1cblxuICBmdW5jdGlvbiBlbGVtZW50KG5vZGUpIHtcbiAgICB2YXIgZW1wdHkgPSB2b2lkcy5pbmRleE9mKG5vZGUudGFnTmFtZSkgIT09IC0xO1xuXG4gICAgcGFyc2VyLl9wcm9jZXNzVG9rZW4oc3RhcnRUYWcobm9kZSksIG5zLmh0bWwpO1xuXG4gICAgYWxsKG5vZGUuY2hpbGRyZW4pO1xuXG4gICAgaWYgKCFlbXB0eSkge1xuICAgICAgcGFyc2VyLl9wcm9jZXNzVG9rZW4oZW5kVGFnKG5vZGUpKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB0ZXh0KG5vZGUpIHtcbiAgICB2YXIgc3RhcnQgPSBwb3Muc3RhcnQobm9kZSk7XG4gICAgcGFyc2VyLl9wcm9jZXNzVG9rZW4oe1xuICAgICAgdHlwZTogQ0hBUkFDVEVSX1RPS0VOLFxuICAgICAgY2hhcnM6IG5vZGUudmFsdWUsXG4gICAgICBsb2NhdGlvbjoge1xuICAgICAgICBsaW5lOiBzdGFydC5saW5lLFxuICAgICAgICBjb2w6IHN0YXJ0LmNvbHVtbixcbiAgICAgICAgc3RhcnRPZmZzZXQ6IHN0YXJ0Lm9mZnNldCxcbiAgICAgICAgZW5kT2Zmc2V0OiBwb3MuZW5kKG5vZGUpLm9mZnNldFxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZG9jdHlwZShub2RlKSB7XG4gICAgdmFyIHA1ID0gdG9QYXJzZTUobm9kZSk7XG4gICAgcGFyc2VyLl9wcm9jZXNzVG9rZW4oe1xuICAgICAgdHlwZTogRE9DVFlQRV9UT0tFTixcbiAgICAgIG5hbWU6IHA1Lm5hbWUsXG4gICAgICBmb3JjZVF1aXJrczogZmFsc2UsXG4gICAgICBwdWJsaWNJZDogcDUucHVibGljSWQsXG4gICAgICBzeXN0ZW1JZDogcDUuc3lzdGVtSWRcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbW1lbnQobm9kZSkge1xuICAgIHZhciBzdGFydCA9IHBvcy5zdGFydChub2RlKTtcbiAgICBwYXJzZXIuX3Byb2Nlc3NUb2tlbih7XG4gICAgICB0eXBlOiBDT01NRU5UX1RPS0VOLFxuICAgICAgZGF0YTogbm9kZS52YWx1ZSxcbiAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgIGxpbmU6IHN0YXJ0LmxpbmUsXG4gICAgICAgIGNvbDogc3RhcnQuY29sdW1uLFxuICAgICAgICBzdGFydE9mZnNldDogc3RhcnQub2Zmc2V0LFxuICAgICAgICBlbmRPZmZzZXQ6IHBvcy5lbmQobm9kZSkub2Zmc2V0XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiByYXcobm9kZSkge1xuICAgIHZhciBzdGFydCA9IHBvcy5zdGFydChub2RlKS5vZmZzZXQ7XG5cbiAgICBwcmVwcm9jZXNzb3IuaHRtbCA9IG51bGw7XG4gICAgcHJlcHJvY2Vzc29yLmxhc3RDaGFyUG9zID0gLTE7XG4gICAgcHJlcHJvY2Vzc29yLnBvcyA9IC0xO1xuXG4gICAgaWYgKHN0YXJ0ICE9PSBudWxsKSB7XG4gICAgICBwcmVwcm9jZXNzb3IuX19sb2NUcmFja2VyLmRyb3BwZWRCdWZmZXJTaXplID0gc3RhcnQ7XG4gICAgfVxuXG4gICAgcGFyc2VyLnRva2VuaXplci53cml0ZShub2RlLnZhbHVlKTtcblxuICAgIHJ1bihwYXJzZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bihwKSB7XG4gIHZhciB0b2tlbml6ZXIgPSBwLnRva2VuaXplcjtcbiAgdmFyIHRva2VuO1xuXG4gIHdoaWxlICghcC5zdG9wcGVkKSB7XG4gICAgcC5fc2V0dXBUb2tlbml6ZXJDREFUQU1vZGUoKTtcblxuICAgIHRva2VuID0gdG9rZW5pemVyLmdldE5leHRUb2tlbigpO1xuXG4gICAgaWYgKHRva2VuLnR5cGUgPT09IEhJQkVSTkFUSU9OX1RPS0VOKSB7XG4gICAgICB0b2tlbiA9IHRva2VuaXplci5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gfHwgdG9rZW5pemVyLmN1cnJlbnRUb2tlbjtcblxuICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgIHAuX3Byb2Nlc3NJbnB1dFRva2VuKHRva2VuKTtcbiAgICAgIH1cblxuICAgICAgdG9rZW5pemVyLmN1cnJlbnRUb2tlbiA9IG51bGw7XG4gICAgICB0b2tlbml6ZXIuY3VycmVudENoYXJhY3RlclRva2VuID0gbnVsbDtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcC5fcHJvY2Vzc0lucHV0VG9rZW4odG9rZW4pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VGFnKG5vZGUpIHtcbiAgdmFyIHN0YXJ0ID0gcG9zLnN0YXJ0KG5vZGUpO1xuICB2YXIgZW5kID0gcG9zLmVuZChub2RlKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IFNUQVJUX1RBR19UT0tFTixcbiAgICB0YWdOYW1lOiBub2RlLnRhZ05hbWUsXG4gICAgc2VsZkNsb3Npbmc6IGZhbHNlLFxuICAgIGF0dHJzOiBhdHRyaWJ1dGVzKG5vZGUpLFxuICAgIGxvY2F0aW9uOiB7XG4gICAgICBsaW5lOiBzdGFydC5saW5lLFxuICAgICAgY29sOiBzdGFydC5jb2x1bW4sXG4gICAgICBzdGFydE9mZnNldDogc3RhcnQub2Zmc2V0LFxuICAgICAgZW5kT2Zmc2V0OiBlbmQub2Zmc2V0LFxuICAgICAgYXR0cnM6IHt9LFxuICAgICAgc3RhcnRUYWc6IHtcbiAgICAgICAgbGluZTogc3RhcnQubGluZSxcbiAgICAgICAgY29sOiBzdGFydC5jb2x1bW4sXG4gICAgICAgIHN0YXJ0T2Zmc2V0OiBzdGFydC5vZmZzZXQsXG4gICAgICAgIGVuZE9mZnNldDogZW5kLm9mZnNldFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gYXR0cmlidXRlcyhub2RlKSB7XG4gIHJldHVybiB0b1BhcnNlNSh7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHByb3BlcnRpZXM6IG5vZGUucHJvcGVydGllc1xuICB9KS5hdHRycztcbn1cblxuZnVuY3Rpb24gZW5kVGFnKG5vZGUpIHtcbiAgdmFyIGVuZCA9IHBvcy5lbmQobm9kZSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBFTkRfVEFHX1RPS0VOLFxuICAgIHRhZ05hbWU6IG5vZGUudGFnTmFtZSxcbiAgICBhdHRyczogW10sXG4gICAgbG9jYXRpb246IHtcbiAgICAgIGxpbmU6IGVuZC5saW5lLFxuICAgICAgY29sOiBlbmQuY29sdW1uLFxuICAgICAgc3RhcnRPZmZzZXQ6IGVuZC5vZmZzZXQsXG4gICAgICBlbmRPZmZzZXQ6IGVuZC5vZmZzZXRcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIHVua25vd24obm9kZSkge1xuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21waWxlIGAnICsgbm9kZS50eXBlICsgJ2Agbm9kZScpO1xufVxuXG5mdW5jdGlvbiBpbmZlck1vZGUobm9kZSkge1xuICB2YXIgaGVhZCA9IG5vZGUudHlwZSA9PT0gJ3Jvb3QnID8gbm9kZS5jaGlsZHJlblswXSA6IG5vZGU7XG5cbiAgaWYgKGhlYWQgJiYgKGhlYWQudHlwZSA9PT0gJ2RvY3R5cGUnIHx8IGhlYWQudGFnTmFtZSA9PT0gJ2h0bWwnKSkge1xuICAgIHJldHVybiBET0NVTUVOVDtcbiAgfVxuXG4gIHJldHVybiBGUkFHTUVOVDtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHV0aWwgPSByZXF1aXJlKCdoYXN0LXV0aWwtcmF3Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmF3O1xuXG5mdW5jdGlvbiByYXcoKSB7XG4gIHJldHVybiB1dGlsO1xufVxuIiwiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wia2F0ZXhcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wia2F0ZXhcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8qKioqKiovIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNjMpO1xuLyoqKioqKi8gfSlcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyAoW1xuLyogMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3NsaWNlZFRvQXJyYXlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNTcpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfc2xpY2VkVG9BcnJheV9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19zbGljZWRUb0FycmF5X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2ZvbnRNZXRyaWNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N5bWJvbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19zdHJldGNoeV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X191bml0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7XG5cblxuXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXG4vKipcbiAqIFRoaXMgbW9kdWxlIGNvbnRhaW5zIGdlbmVyYWwgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGJ1aWxkaW5nXG4gKiBkaWZmZXJlbnQga2luZHMgb2YgZG9tVHJlZSBub2RlcyBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLlxuICovXG5cblxuXG5cblxuXG5cblxuLy8gVGhlIGZvbGxvd2luZyBoYXZlIHRvIGJlIGxvYWRlZCBmcm9tIE1haW4tSXRhbGljIGZvbnQsIHVzaW5nIGNsYXNzIG1haW5pdFxudmFyIG1haW5pdExldHRlcnMgPSBbXCJcXFxcaW1hdGhcIiwgXCLEsVwiLCAvLyBkb3RsZXNzIGlcblwiXFxcXGptYXRoXCIsIFwiyLdcIiwgLy8gZG90bGVzcyBqXG5cIlxcXFxwb3VuZHNcIiwgXCJcXFxcbWF0aHN0ZXJsaW5nXCIsIFwiXFxcXHRleHRzdGVybGluZ1wiLCBcIsKjXCJdO1xuXG4vKipcbiAqIExvb2tzIHVwIHRoZSBnaXZlbiBzeW1ib2wgaW4gZm9udE1ldHJpY3MsIGFmdGVyIGFwcGx5aW5nIGFueSBzeW1ib2xcbiAqIHJlcGxhY2VtZW50cyBkZWZpbmVkIGluIHN5bWJvbC5qc1xuICovXG52YXIgbG9va3VwU3ltYm9sID0gZnVuY3Rpb24gbG9va3VwU3ltYm9sKHZhbHVlLFxuLy8gVE9ETygjOTYzKTogVXNlIGEgdW5pb24gdHlwZSBmb3IgdGhpcy5cbmZvbnRGYW1pbHksIG1vZGUpIHtcbiAgICAvLyBSZXBsYWNlIHRoZSB2YWx1ZSB3aXRoIGl0cyByZXBsYWNlZCB2YWx1ZSBmcm9tIHN5bWJvbC5qc1xuICAgIGlmIChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVttb2RlXVt2YWx1ZV0gJiYgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bbW9kZV1bdmFsdWVdLnJlcGxhY2UpIHtcbiAgICAgICAgdmFsdWUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVttb2RlXVt2YWx1ZV0ucmVwbGFjZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICBtZXRyaWNzOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2ZvbnRNZXRyaWNzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZ2V0Q2hhcmFjdGVyTWV0cmljcyh2YWx1ZSwgZm9udEZhbWlseSwgbW9kZSlcbiAgICB9O1xufTtcblxuLyoqXG4gKiBNYWtlcyBhIHN5bWJvbE5vZGUgYWZ0ZXIgdHJhbnNsYXRpb24gdmlhIHRoZSBsaXN0IG9mIHN5bWJvbHMgaW4gc3ltYm9scy5qcy5cbiAqIENvcnJlY3RseSBwdWxscyBvdXQgbWV0cmljcyBmb3IgdGhlIGNoYXJhY3RlciwgYW5kIG9wdGlvbmFsbHkgdGFrZXMgYSBsaXN0IG9mXG4gKiBjbGFzc2VzIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBub2RlLlxuICpcbiAqIFRPRE86IG1ha2UgYXJndW1lbnQgb3JkZXIgY2xvc2VyIHRvIG1ha2VTcGFuXG4gKiBUT0RPOiBhZGQgYSBzZXBhcmF0ZSBhcmd1bWVudCBmb3IgbWF0aCBjbGFzcyAoZS5nLiBgbW9wYCwgYG1iaW5gKSwgd2hpY2hcbiAqIHNob3VsZCBpZiBwcmVzZW50IGNvbWUgZmlyc3QgaW4gYGNsYXNzZXNgLlxuICogVE9ETygjOTUzKTogTWFrZSBgb3B0aW9uc2AgbWFuZGF0b3J5IGFuZCBhbHdheXMgcGFzcyBpdCBpbi5cbiAqL1xudmFyIG1ha2VTeW1ib2wgPSBmdW5jdGlvbiBtYWtlU3ltYm9sKHZhbHVlLCBmb250RmFtaWx5LCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzKSB7XG4gICAgdmFyIGxvb2t1cCA9IGxvb2t1cFN5bWJvbCh2YWx1ZSwgZm9udEZhbWlseSwgbW9kZSk7XG4gICAgdmFyIG1ldHJpY3MgPSBsb29rdXAubWV0cmljcztcbiAgICB2YWx1ZSA9IGxvb2t1cC52YWx1ZTtcblxuICAgIHZhciBzeW1ib2xOb2RlID0gdm9pZCAwO1xuICAgIGlmIChtZXRyaWNzKSB7XG4gICAgICAgIHZhciBpdGFsaWMgPSBtZXRyaWNzLml0YWxpYztcbiAgICAgICAgaWYgKG1vZGUgPT09IFwidGV4dFwiKSB7XG4gICAgICAgICAgICBpdGFsaWMgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHN5bWJvbE5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ltYm9sTm9kZSh2YWx1ZSwgbWV0cmljcy5oZWlnaHQsIG1ldHJpY3MuZGVwdGgsIGl0YWxpYywgbWV0cmljcy5za2V3LCBtZXRyaWNzLndpZHRoLCBjbGFzc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPKGVtaWx5KTogRmlndXJlIG91dCBhIGdvb2Qgd2F5IHRvIG9ubHkgcHJpbnQgdGhpcyBpbiBkZXZlbG9wbWVudFxuICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJObyBjaGFyYWN0ZXIgbWV0cmljcyBmb3IgJ1wiICsgdmFsdWUgKyBcIicgaW4gc3R5bGUgJ1wiICsgZm9udEZhbWlseSArIFwiJ1wiKTtcbiAgICAgICAgc3ltYm9sTm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zeW1ib2xOb2RlKHZhbHVlLCAwLCAwLCAwLCAwLCAwLCBjbGFzc2VzKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgICBzeW1ib2xOb2RlLm1heEZvbnRTaXplID0gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3R5bGUuaXNUaWdodCgpKSB7XG4gICAgICAgICAgICBzeW1ib2xOb2RlLmNsYXNzZXMucHVzaChcIm10aWdodFwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29sb3IgPSBvcHRpb25zLmdldENvbG9yKCk7XG4gICAgICAgIGlmIChjb2xvcikge1xuICAgICAgICAgICAgc3ltYm9sTm9kZS5zdHlsZS5jb2xvciA9IGNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN5bWJvbE5vZGU7XG59O1xuXG4vKipcbiAqIE1ha2VzIGEgc3ltYm9sIGluIE1haW4tUmVndWxhciBvciBBTVMtUmVndWxhci5cbiAqIFVzZWQgZm9yIHJlbCwgYmluLCBvcGVuLCBjbG9zZSwgaW5uZXIsIGFuZCBwdW5jdC5cbiAqXG4gKiBUT0RPKCM5NTMpOiBNYWtlIGBvcHRpb25zYCBtYW5kYXRvcnkgYW5kIGFsd2F5cyBwYXNzIGl0IGluLlxuICovXG52YXIgbWF0aHN5bSA9IGZ1bmN0aW9uIG1hdGhzeW0odmFsdWUsIG1vZGUsIG9wdGlvbnMpIHtcbiAgICB2YXIgY2xhc3NlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogW107XG5cbiAgICAvLyBEZWNpZGUgd2hhdCBmb250IHRvIHJlbmRlciB0aGUgc3ltYm9sIGluIGJ5IGl0cyBlbnRyeSBpbiB0aGUgc3ltYm9sc1xuICAgIC8vIHRhYmxlLlxuICAgIC8vIEhhdmUgYSBzcGVjaWFsIGNhc2UgZm9yIHdoZW4gdGhlIHZhbHVlID0gXFwgYmVjYXVzZSB0aGUgXFwgaXMgdXNlZCBhcyBhXG4gICAgLy8gdGV4dG9yZCBpbiB1bnN1cHBvcnRlZCBjb21tYW5kIGVycm9ycyBidXQgY2Fubm90IGJlIHBhcnNlZCBhcyBhIHJlZ3VsYXJcbiAgICAvLyB0ZXh0IG9yZGluYWwgYW5kIGlzIHRoZXJlZm9yZSBub3QgcHJlc2VudCBhcyBhIHN5bWJvbCBpbiB0aGUgc3ltYm9sc1xuICAgIC8vIHRhYmxlIGZvciB0ZXh0LCBhcyB3ZWxsIGFzIGEgc3BlY2lhbCBjYXNlIGZvciBib2xkc3ltYm9sIGJlY2F1c2UgaXRcbiAgICAvLyBjYW4gYmUgdXNlZCBmb3IgYm9sZCArIGFuZCAtXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5mb250RmFtaWx5ICYmIG9wdGlvbnMuZm9udEZhbWlseSA9PT0gXCJib2xkc3ltYm9sXCIgJiYgbG9va3VwU3ltYm9sKHZhbHVlLCBcIk1haW4tQm9sZFwiLCBtb2RlKS5tZXRyaWNzKSB7XG4gICAgICAgIHJldHVybiBtYWtlU3ltYm9sKHZhbHVlLCBcIk1haW4tQm9sZFwiLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLmNvbmNhdChbXCJtYXRoYmZcIl0pKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBcIlxcXFxcIiB8fCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVttb2RlXVt2YWx1ZV0uZm9udCA9PT0gXCJtYWluXCIpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VTeW1ib2wodmFsdWUsIFwiTWFpbi1SZWd1bGFyXCIsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBtYWtlU3ltYm9sKHZhbHVlLCBcIkFNUy1SZWd1bGFyXCIsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KFtcImFtc3JtXCJdKSk7XG4gICAgfVxufTtcblxuLyoqXG4gKiBNYWtlcyBhIHN5bWJvbCBpbiB0aGUgZGVmYXVsdCBmb250IGZvciBtYXRob3JkcyBhbmQgdGV4dG9yZHMuXG4gKi9cbnZhciBtYXRoRGVmYXVsdCA9IGZ1bmN0aW9uIG1hdGhEZWZhdWx0KHZhbHVlLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLCB0eXBlKSB7XG4gICAgaWYgKHR5cGUgPT09IFwibWF0aG9yZFwiKSB7XG4gICAgICAgIHZhciBmb250TG9va3VwID0gbWF0aGl0KHZhbHVlLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzKTtcbiAgICAgICAgcmV0dXJuIG1ha2VTeW1ib2wodmFsdWUsIGZvbnRMb29rdXAuZm9udE5hbWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KFtmb250TG9va3VwLmZvbnRDbGFzc10pKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFwidGV4dG9yZFwiKSB7XG4gICAgICAgIHZhciBmb250ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bbW9kZV1bdmFsdWVdICYmIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW21vZGVdW3ZhbHVlXS5mb250O1xuICAgICAgICBpZiAoZm9udCA9PT0gXCJhbXNcIikge1xuICAgICAgICAgICAgdmFyIF9mb250TmFtZSA9IHJldHJpZXZlVGV4dEZvbnROYW1lKFwiYW1zcm1cIiwgb3B0aW9ucy5mb250V2VpZ2h0LCBvcHRpb25zLmZvbnRTaGFwZSk7XG4gICAgICAgICAgICByZXR1cm4gbWFrZVN5bWJvbCh2YWx1ZSwgX2ZvbnROYW1lLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLmNvbmNhdChcImFtc3JtXCIsIG9wdGlvbnMuZm9udFdlaWdodCwgb3B0aW9ucy5mb250U2hhcGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIChmb250ID09PSBcIm1haW5cIikge1xuICAgICAgICAgICAgdmFyIF9mb250TmFtZTIgPSByZXRyaWV2ZVRleHRGb250TmFtZShcInRleHRybVwiLCBvcHRpb25zLmZvbnRXZWlnaHQsIG9wdGlvbnMuZm9udFNoYXBlKTtcbiAgICAgICAgICAgIHJldHVybiBtYWtlU3ltYm9sKHZhbHVlLCBfZm9udE5hbWUyLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLmNvbmNhdChvcHRpb25zLmZvbnRXZWlnaHQsIG9wdGlvbnMuZm9udFNoYXBlKSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1bmV4cGVjdGVkIHR5cGU6IFwiICsgdHlwZSArIFwiIGluIG1hdGhEZWZhdWx0XCIpO1xuICAgIH1cbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBvZiB0aGUgdHdvIGZvbnQgbmFtZXMgKE1haW4tSXRhbGljIGFuZCBNYXRoLUl0YWxpYykgYW5kXG4gKiBjb3JyZXNwb25kaW5nIHN0eWxlIHRhZ3MgKG1haW5pdCBvciBtYXRoaXQpIHRvIHVzZSBmb3IgZm9udCBcIm1hdGhpdFwiLFxuICogZGVwZW5kaW5nIG9uIHRoZSBzeW1ib2wuICBVc2UgdGhpcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGZvbnRNYXAgZm9yIGZvbnRcbiAqIFwibWF0aGl0XCIuXG4gKi9cbnZhciBtYXRoaXQgPSBmdW5jdGlvbiBtYXRoaXQodmFsdWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMpIHtcbiAgICBpZiAoL1swLTldLy50ZXN0KHZhbHVlLmNoYXJBdCgwKSkgfHxcbiAgICAvLyBnbHlwaHMgZm9yIFxcaW1hdGggYW5kIFxcam1hdGggZG8gbm90IGV4aXN0IGluIE1hdGgtSXRhbGljIHNvIHdlXG4gICAgLy8gbmVlZCB0byB1c2UgTWFpbi1JdGFsaWMgaW5zdGVhZFxuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhtYWluaXRMZXR0ZXJzLCB2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZvbnROYW1lOiBcIk1haW4tSXRhbGljXCIsXG4gICAgICAgICAgICBmb250Q2xhc3M6IFwibWFpbml0XCJcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9udE5hbWU6IFwiTWF0aC1JdGFsaWNcIixcbiAgICAgICAgICAgIGZvbnRDbGFzczogXCJtYXRoaXRcIlxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGljaCBvZiB0aGUgdHdvIGZvbnQgbmFtZXMgKE1haW4tQm9sZCBhbmQgTWF0aC1Cb2xkSXRhbGljKSBhbmRcbiAqIGNvcnJlc3BvbmRpbmcgc3R5bGUgdGFncyAobWF0aGJmIG9yIGJvbGRzeW1ib2wpIHRvIHVzZSBmb3IgZm9udCBcImJvbGRzeW1ib2xcIixcbiAqIGRlcGVuZGluZyBvbiB0aGUgc3ltYm9sLiAgVXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmb250TWFwIGZvciBmb250XG4gKiBcImJvbGRzeW1ib2xcIi5cbiAqL1xudmFyIGJvbGRzeW1ib2wgPSBmdW5jdGlvbiBib2xkc3ltYm9sKHZhbHVlLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzKSB7XG4gICAgaWYgKGxvb2t1cFN5bWJvbCh2YWx1ZSwgXCJNYXRoLUJvbGRJdGFsaWNcIiwgbW9kZSkubWV0cmljcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9udE5hbWU6IFwiTWF0aC1Cb2xkSXRhbGljXCIsXG4gICAgICAgICAgICBmb250Q2xhc3M6IFwiYm9sZHN5bWJvbFwiXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU29tZSBnbHlwaHMgZG8gbm90IGV4aXN0IGluIE1hdGgtQm9sZEl0YWxpYyBzbyB3ZSBuZWVkIHRvIHVzZVxuICAgICAgICAvLyBNYWluLUJvbGQgaW5zdGVhZC5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZvbnROYW1lOiBcIk1haW4tQm9sZFwiLFxuICAgICAgICAgICAgZm9udENsYXNzOiBcIm1hdGhiZlwiXG4gICAgICAgIH07XG4gICAgfVxufTtcblxuLyoqXG4gKiBNYWtlcyBlaXRoZXIgYSBtYXRob3JkIG9yIHRleHRvcmQgaW4gdGhlIGNvcnJlY3QgZm9udCBhbmQgY29sb3IuXG4gKi9cbnZhciBtYWtlT3JkID0gZnVuY3Rpb24gbWFrZU9yZChncm91cCwgb3B0aW9ucywgdHlwZSkge1xuICAgIHZhciBtb2RlID0gZ3JvdXAubW9kZTtcbiAgICB2YXIgdmFsdWUgPSBncm91cC52YWx1ZTtcblxuICAgIHZhciBjbGFzc2VzID0gW1wibW9yZFwiXTtcblxuICAgIHZhciBmb250RmFtaWx5ID0gb3B0aW9ucy5mb250RmFtaWx5O1xuICAgIGlmIChmb250RmFtaWx5KSB7XG4gICAgICAgIHZhciBfZm9udE5hbWUzID0gdm9pZCAwO1xuICAgICAgICB2YXIgZm9udENsYXNzZXMgPSB2b2lkIDA7XG4gICAgICAgIGlmIChmb250RmFtaWx5ID09PSBcImJvbGRzeW1ib2xcIikge1xuICAgICAgICAgICAgdmFyIGZvbnREYXRhID0gYm9sZHN5bWJvbCh2YWx1ZSwgbW9kZSwgb3B0aW9ucywgY2xhc3Nlcyk7XG4gICAgICAgICAgICBfZm9udE5hbWUzID0gZm9udERhdGEuZm9udE5hbWU7XG4gICAgICAgICAgICBmb250Q2xhc3NlcyA9IFtmb250RGF0YS5mb250Q2xhc3NdO1xuICAgICAgICB9IGVsc2UgaWYgKGZvbnRGYW1pbHkgPT09IFwibWF0aGl0XCIgfHwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKG1haW5pdExldHRlcnMsIHZhbHVlKSkge1xuICAgICAgICAgICAgdmFyIF9mb250RGF0YSA9IG1hdGhpdCh2YWx1ZSwgbW9kZSwgb3B0aW9ucywgY2xhc3Nlcyk7XG4gICAgICAgICAgICBfZm9udE5hbWUzID0gX2ZvbnREYXRhLmZvbnROYW1lO1xuICAgICAgICAgICAgZm9udENsYXNzZXMgPSBbX2ZvbnREYXRhLmZvbnRDbGFzc107XG4gICAgICAgIH0gZWxzZSBpZiAoZm9udEZhbWlseS5pbmRleE9mKFwibWF0aFwiKSAhPT0gLTEgfHwgbW9kZSA9PT0gXCJtYXRoXCIpIHtcbiAgICAgICAgICAgIC8vIFRvIHN1cHBvcnQgb2xkIGZvbnQgZnVuY3Rpb25zIChpLmUuIFxccm0gXFxzZiBldGMuKSBvciBtYXRoIG1vZGUuXG4gICAgICAgICAgICBfZm9udE5hbWUzID0gZm9udE1hcFtmb250RmFtaWx5XS5mb250TmFtZTtcbiAgICAgICAgICAgIGZvbnRDbGFzc2VzID0gW2ZvbnRGYW1pbHldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgX2ZvbnROYW1lMyA9IHJldHJpZXZlVGV4dEZvbnROYW1lKGZvbnRGYW1pbHksIG9wdGlvbnMuZm9udFdlaWdodCwgb3B0aW9ucy5mb250U2hhcGUpO1xuICAgICAgICAgICAgZm9udENsYXNzZXMgPSBbZm9udEZhbWlseSwgb3B0aW9ucy5mb250V2VpZ2h0LCBvcHRpb25zLmZvbnRTaGFwZV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvb2t1cFN5bWJvbCh2YWx1ZSwgX2ZvbnROYW1lMywgbW9kZSkubWV0cmljcykge1xuICAgICAgICAgICAgcmV0dXJuIG1ha2VTeW1ib2wodmFsdWUsIF9mb250TmFtZTMsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMuY29uY2F0KGZvbnRDbGFzc2VzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWF0aERlZmF1bHQodmFsdWUsIG1vZGUsIG9wdGlvbnMsIGNsYXNzZXMsIHR5cGUpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1hdGhEZWZhdWx0KHZhbHVlLCBtb2RlLCBvcHRpb25zLCBjbGFzc2VzLCB0eXBlKTtcbiAgICB9XG59O1xuXG4vKipcbiAqIENvbWJpbmUgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIHBvc3NpYmxlIGluIHRoZSBnaXZlbiBhcnJheSBvZiBjaGFyYWN0ZXJzXG4gKiB2aWEgdGhlaXIgdHJ5Q29tYmluZSBtZXRob2QuXG4gKi9cbnZhciB0cnlDb21iaW5lQ2hhcnMgPSBmdW5jdGlvbiB0cnlDb21iaW5lQ2hhcnMoY2hhcnMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBpZiAoY2hhcnNbaV0udHJ5Q29tYmluZShjaGFyc1tpICsgMV0pKSB7XG4gICAgICAgICAgICBjaGFycy5zcGxpY2UoaSArIDEsIDEpO1xuICAgICAgICAgICAgaS0tO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjaGFycztcbn07XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBoZWlnaHQsIGRlcHRoLCBhbmQgbWF4Rm9udFNpemUgb2YgYW4gZWxlbWVudCBiYXNlZCBvbiBpdHNcbiAqIGNoaWxkcmVuLlxuICovXG52YXIgc2l6ZUVsZW1lbnRGcm9tQ2hpbGRyZW4gPSBmdW5jdGlvbiBzaXplRWxlbWVudEZyb21DaGlsZHJlbihlbGVtKSB7XG4gICAgdmFyIGhlaWdodCA9IDA7XG4gICAgdmFyIGRlcHRoID0gMDtcbiAgICB2YXIgbWF4Rm9udFNpemUgPSAwO1xuXG4gICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gPSB0cnVlO1xuICAgIHZhciBfZGlkSXRlcmF0b3JFcnJvciA9IGZhbHNlO1xuICAgIHZhciBfaXRlcmF0b3JFcnJvciA9IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCgpKGVsZW0uY2hpbGRyZW4pLCBfc3RlcDsgIShfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gKF9zdGVwID0gX2l0ZXJhdG9yLm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gPSB0cnVlKSB7XG4gICAgICAgICAgICB2YXIgY2hpbGQgPSBfc3RlcC52YWx1ZTtcblxuICAgICAgICAgICAgaWYgKGNoaWxkLmhlaWdodCA+IGhlaWdodCkge1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IGNoaWxkLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGlsZC5kZXB0aCA+IGRlcHRoKSB7XG4gICAgICAgICAgICAgICAgZGVwdGggPSBjaGlsZC5kZXB0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGlsZC5tYXhGb250U2l6ZSA+IG1heEZvbnRTaXplKSB7XG4gICAgICAgICAgICAgICAgbWF4Rm9udFNpemUgPSBjaGlsZC5tYXhGb250U2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfZGlkSXRlcmF0b3JFcnJvciA9IHRydWU7XG4gICAgICAgIF9pdGVyYXRvckVycm9yID0gZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gJiYgX2l0ZXJhdG9yLnJldHVybikge1xuICAgICAgICAgICAgICAgIF9pdGVyYXRvci5yZXR1cm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGlmIChfZGlkSXRlcmF0b3JFcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZWxlbS5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgZWxlbS5kZXB0aCA9IGRlcHRoO1xuICAgIGVsZW0ubWF4Rm9udFNpemUgPSBtYXhGb250U2l6ZTtcbn07XG5cbi8qKlxuICogTWFrZXMgYSBzcGFuIHdpdGggdGhlIGdpdmVuIGxpc3Qgb2YgY2xhc3NlcywgbGlzdCBvZiBjaGlsZHJlbiwgYW5kIG9wdGlvbnMuXG4gKlxuICogVE9ETygjOTUzKTogRW5zdXJlIHRoYXQgYG9wdGlvbnNgIGlzIGFsd2F5cyBwcm92aWRlZCAoY3VycmVudGx5IHNvbWUgY2FsbFxuICogc2l0ZXMgZG9uJ3QgcGFzcyBpdCkgYW5kIG1ha2UgdGhlIHR5cGUgYmVsb3cgbWFuZGF0b3J5LlxuICogVE9ETzogYWRkIGEgc2VwYXJhdGUgYXJndW1lbnQgZm9yIG1hdGggY2xhc3MgKGUuZy4gYG1vcGAsIGBtYmluYCksIHdoaWNoXG4gKiBzaG91bGQgaWYgcHJlc2VudCBjb21lIGZpcnN0IGluIGBjbGFzc2VzYC5cbiAqL1xudmFyIG1ha2VTcGFuID0gZnVuY3Rpb24gbWFrZVNwYW4oY2xhc3NlcywgY2hpbGRyZW4sIG9wdGlvbnMsIHN0eWxlKSB7XG4gICAgdmFyIHNwYW4gPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3BhbihjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucywgc3R5bGUpO1xuXG4gICAgc2l6ZUVsZW1lbnRGcm9tQ2hpbGRyZW4oc3Bhbik7XG5cbiAgICByZXR1cm4gc3Bhbjtcbn07XG5cbnZhciBtYWtlTGluZVNwYW4gPSBmdW5jdGlvbiBtYWtlTGluZVNwYW4oY2xhc3NOYW1lLCBvcHRpb25zKSB7XG4gICAgLy8gUmV0dXJuIGEgc3BhbiB3aXRoIGFuIFNWRyBpbWFnZSBvZiBhIGhvcml6b250YWwgbGluZS4gVGhlIFNWRyBwYXRoXG4gICAgLy8gZmlsbHMgdGhlIG1pZGRsZSBmaWZ0aCBvZiB0aGUgc3Bhbi4gV2Ugd2FudCBhbiBleHRyYSB0YWxsIHNwYW5cbiAgICAvLyBiZWNhdXNlIENocm9tZSB3aWxsIHNvbWV0aW1lcyBub3QgZGlzcGxheSBhIHNwYW4gdGhhdCBpcyAwLjA0ZW0gdGFsbC5cbiAgICB2YXIgbGluZUhlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcztcbiAgICB2YXIgbGluZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fc3RyZXRjaHlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5ydWxlU3BhbihjbGFzc05hbWUsIGxpbmVIZWlnaHQsIG9wdGlvbnMpO1xuICAgIGxpbmUuaGVpZ2h0ID0gbGluZUhlaWdodDtcbiAgICBsaW5lLnN0eWxlLmhlaWdodCA9IDUgKiBsaW5lLmhlaWdodCArIFwiZW1cIjtcbiAgICBsaW5lLm1heEZvbnRTaXplID0gMS4wO1xuICAgIHJldHVybiBsaW5lO1xufTtcblxuLyoqXG4gKiBNYWtlcyBhbiBhbmNob3Igd2l0aCB0aGUgZ2l2ZW4gaHJlZiwgbGlzdCBvZiBjbGFzc2VzLCBsaXN0IG9mIGNoaWxkcmVuLFxuICogYW5kIG9wdGlvbnMuXG4gKi9cbnZhciBtYWtlQW5jaG9yID0gZnVuY3Rpb24gbWFrZUFuY2hvcihocmVmLCBjbGFzc2VzLCBjaGlsZHJlbiwgb3B0aW9ucykge1xuICAgIHZhciBhbmNob3IgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uYW5jaG9yKGhyZWYsIGNsYXNzZXMsIGNoaWxkcmVuLCBvcHRpb25zKTtcblxuICAgIHNpemVFbGVtZW50RnJvbUNoaWxkcmVuKGFuY2hvcik7XG5cbiAgICByZXR1cm4gYW5jaG9yO1xufTtcblxuLyoqXG4gKiBNYWtlcyBhIGRvY3VtZW50IGZyYWdtZW50IHdpdGggdGhlIGdpdmVuIGxpc3Qgb2YgY2hpbGRyZW4uXG4gKi9cbnZhciBtYWtlRnJhZ21lbnQgPSBmdW5jdGlvbiBtYWtlRnJhZ21lbnQoY2hpbGRyZW4pIHtcbiAgICB2YXIgZnJhZ21lbnQgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZG9jdW1lbnRGcmFnbWVudChjaGlsZHJlbik7XG5cbiAgICBzaXplRWxlbWVudEZyb21DaGlsZHJlbihmcmFnbWVudCk7XG5cbiAgICByZXR1cm4gZnJhZ21lbnQ7XG59O1xuXG4vLyBUaGVzZSBhcmUgZXhhY3Qgb2JqZWN0IHR5cGVzIHRvIGNhdGNoIHR5cG9zIGluIHRoZSBuYW1lcyBvZiB0aGUgb3B0aW9uYWwgZmllbGRzLlxuXG5cbi8vIEEgbGlzdCBvZiBjaGlsZCBvciBrZXJuIG5vZGVzIHRvIGJlIHN0YWNrZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIgKGkuZS4gdGhlXG4vLyBmaXJzdCBlbGVtZW50IHdpbGwgYmUgYXQgdGhlIGJvdHRvbSwgYW5kIHRoZSBsYXN0IGF0IHRoZSB0b3ApLlxuXG5cbi8vIENvbXB1dGVzIHRoZSB1cGRhdGVkIGBjaGlsZHJlbmAgbGlzdCBhbmQgdGhlIG92ZXJhbGwgZGVwdGguXG4vL1xuLy8gVGhpcyBoZWxwZXIgZnVuY3Rpb24gZm9yIG1ha2VWTGlzdCBtYWtlcyBpdCBlYXNpZXIgdG8gZW5mb3JjZSB0eXBlIHNhZmV0eSBieVxuLy8gYWxsb3dpbmcgZWFybHkgZXhpdHMgKHJldHVybnMpIGluIHRoZSBsb2dpYy5cbnZhciBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGggPSBmdW5jdGlvbiBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGgocGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwiaW5kaXZpZHVhbFNoaWZ0XCIpIHtcbiAgICAgICAgdmFyIG9sZENoaWxkcmVuID0gcGFyYW1zLmNoaWxkcmVuO1xuICAgICAgICB2YXIgX2NoaWxkcmVuID0gW29sZENoaWxkcmVuWzBdXTtcblxuICAgICAgICAvLyBBZGQgaW4ga2VybnMgdG8gdGhlIGxpc3Qgb2YgcGFyYW1zLmNoaWxkcmVuIHRvIGdldCBlYWNoIGVsZW1lbnQgdG8gYmVcbiAgICAgICAgLy8gc2hpZnRlZCB0byB0aGUgY29ycmVjdCBzcGVjaWZpZWQgc2hpZnRcbiAgICAgICAgdmFyIF9kZXB0aCA9IC1vbGRDaGlsZHJlblswXS5zaGlmdCAtIG9sZENoaWxkcmVuWzBdLmVsZW0uZGVwdGg7XG4gICAgICAgIHZhciBjdXJyUG9zID0gX2RlcHRoO1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IG9sZENoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgZGlmZiA9IC1vbGRDaGlsZHJlbltpXS5zaGlmdCAtIGN1cnJQb3MgLSBvbGRDaGlsZHJlbltpXS5lbGVtLmRlcHRoO1xuICAgICAgICAgICAgdmFyIF9zaXplID0gZGlmZiAtIChvbGRDaGlsZHJlbltpIC0gMV0uZWxlbS5oZWlnaHQgKyBvbGRDaGlsZHJlbltpIC0gMV0uZWxlbS5kZXB0aCk7XG5cbiAgICAgICAgICAgIGN1cnJQb3MgPSBjdXJyUG9zICsgZGlmZjtcblxuICAgICAgICAgICAgX2NoaWxkcmVuLnB1c2goeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogX3NpemUgfSk7XG4gICAgICAgICAgICBfY2hpbGRyZW4ucHVzaChvbGRDaGlsZHJlbltpXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBjaGlsZHJlbjogX2NoaWxkcmVuLCBkZXB0aDogX2RlcHRoIH07XG4gICAgfVxuXG4gICAgdmFyIGRlcHRoID0gdm9pZCAwO1xuICAgIGlmIChwYXJhbXMucG9zaXRpb25UeXBlID09PSBcInRvcFwiKSB7XG4gICAgICAgIC8vIFdlIGFsd2F5cyBzdGFydCBhdCB0aGUgYm90dG9tLCBzbyBjYWxjdWxhdGUgdGhlIGJvdHRvbSBieSBhZGRpbmcgdXBcbiAgICAgICAgLy8gYWxsIHRoZSBzaXplc1xuICAgICAgICB2YXIgYm90dG9tID0gcGFyYW1zLnBvc2l0aW9uRGF0YTtcbiAgICAgICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yID0gdHJ1ZTtcbiAgICAgICAgdmFyIF9kaWRJdGVyYXRvckVycm9yMiA9IGZhbHNlO1xuICAgICAgICB2YXIgX2l0ZXJhdG9yRXJyb3IyID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfX19kZWZhdWx0KCkocGFyYW1zLmNoaWxkcmVuKSwgX3N0ZXAyOyAhKF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yID0gKF9zdGVwMiA9IF9pdGVyYXRvcjIubmV4dCgpKS5kb25lKTsgX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbjIgPSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gX3N0ZXAyLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgYm90dG9tIC09IGNoaWxkLnR5cGUgPT09IFwia2VyblwiID8gY2hpbGQuc2l6ZSA6IGNoaWxkLmVsZW0uaGVpZ2h0ICsgY2hpbGQuZWxlbS5kZXB0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBfZGlkSXRlcmF0b3JFcnJvcjIgPSB0cnVlO1xuICAgICAgICAgICAgX2l0ZXJhdG9yRXJyb3IyID0gZXJyO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yICYmIF9pdGVyYXRvcjIucmV0dXJuKSB7XG4gICAgICAgICAgICAgICAgICAgIF9pdGVyYXRvcjIucmV0dXJuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBpZiAoX2RpZEl0ZXJhdG9yRXJyb3IyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yMjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkZXB0aCA9IGJvdHRvbTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwiYm90dG9tXCIpIHtcbiAgICAgICAgZGVwdGggPSAtcGFyYW1zLnBvc2l0aW9uRGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IHBhcmFtcy5jaGlsZHJlblswXTtcbiAgICAgICAgaWYgKGZpcnN0Q2hpbGQudHlwZSAhPT0gXCJlbGVtXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgY2hpbGQgbXVzdCBoYXZlIHR5cGUgXCJlbGVtXCIuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtcy5wb3NpdGlvblR5cGUgPT09IFwic2hpZnRcIikge1xuICAgICAgICAgICAgZGVwdGggPSAtZmlyc3RDaGlsZC5lbGVtLmRlcHRoIC0gcGFyYW1zLnBvc2l0aW9uRGF0YTtcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMucG9zaXRpb25UeXBlID09PSBcImZpcnN0QmFzZWxpbmVcIikge1xuICAgICAgICAgICAgZGVwdGggPSAtZmlyc3RDaGlsZC5lbGVtLmRlcHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBwb3NpdGlvblR5cGUgXCIgKyBwYXJhbXMucG9zaXRpb25UeXBlICsgXCIuXCIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGNoaWxkcmVuOiBwYXJhbXMuY2hpbGRyZW4sIGRlcHRoOiBkZXB0aCB9O1xufTtcblxuLyoqXG4gKiBNYWtlcyBhIHZlcnRpY2FsIGxpc3QgYnkgc3RhY2tpbmcgZWxlbWVudHMgYW5kIGtlcm5zIG9uIHRvcCBvZiBlYWNoIG90aGVyLlxuICogQWxsb3dzIGZvciBtYW55IGRpZmZlcmVudCB3YXlzIG9mIHNwZWNpZnlpbmcgdGhlIHBvc2l0aW9uaW5nIG1ldGhvZC5cbiAqXG4gKiBTZWUgVkxpc3RQYXJhbSBkb2N1bWVudGF0aW9uIGFib3ZlLlxuICovXG52YXIgbWFrZVZMaXN0ID0gZnVuY3Rpb24gbWFrZVZMaXN0KHBhcmFtcywgb3B0aW9ucykge1xuICAgIHZhciBfZ2V0Vkxpc3RDaGlsZHJlbkFuZEQgPSBnZXRWTGlzdENoaWxkcmVuQW5kRGVwdGgocGFyYW1zKSxcbiAgICAgICAgY2hpbGRyZW4gPSBfZ2V0Vkxpc3RDaGlsZHJlbkFuZEQuY2hpbGRyZW4sXG4gICAgICAgIGRlcHRoID0gX2dldFZMaXN0Q2hpbGRyZW5BbmRELmRlcHRoO1xuXG4gICAgLy8gQ3JlYXRlIGEgc3RydXQgdGhhdCBpcyB0YWxsZXIgdGhhbiBhbnkgbGlzdCBpdGVtLiBUaGUgc3RydXQgaXMgYWRkZWQgdG9cbiAgICAvLyBlYWNoIGl0ZW0sIHdoZXJlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSBpdGVtJ3MgYmFzZWxpbmUuIFNpbmNlIGl0IGhhc1xuICAgIC8vIGBvdmVyZmxvdzpoaWRkZW5gLCB0aGUgc3RydXQncyB0b3AgZWRnZSB3aWxsIHNpdCBvbiB0aGUgaXRlbSdzIGxpbmUgYm94J3NcbiAgICAvLyB0b3AgZWRnZSBhbmQgdGhlIHN0cnV0J3MgYm90dG9tIGVkZ2Ugd2lsbCBzaXQgb24gdGhlIGl0ZW0ncyBiYXNlbGluZSxcbiAgICAvLyB3aXRoIG5vIGFkZGl0aW9uYWwgbGluZS1oZWlnaHQgc3BhY2luZy4gVGhpcyBhbGxvd3MgdGhlIGl0ZW0gYmFzZWxpbmUgdG9cbiAgICAvLyBiZSBwb3NpdGlvbmVkIHByZWNpc2VseSB3aXRob3V0IHdvcnJ5aW5nIGFib3V0IGZvbnQgYXNjZW50IGFuZFxuICAgIC8vIGxpbmUtaGVpZ2h0LlxuXG5cbiAgICB2YXIgcHN0cnV0U2l6ZSA9IDA7XG4gICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24zID0gdHJ1ZTtcbiAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IzID0gZmFsc2U7XG4gICAgdmFyIF9pdGVyYXRvckVycm9yMyA9IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQoKShjaGlsZHJlbiksIF9zdGVwMzsgIShfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMyA9IChfc3RlcDMgPSBfaXRlcmF0b3IzLm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24zID0gdHJ1ZSkge1xuICAgICAgICAgICAgdmFyIGNoaWxkID0gX3N0ZXAzLnZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoY2hpbGQudHlwZSA9PT0gXCJlbGVtXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2VsZW0gPSBjaGlsZC5lbGVtO1xuICAgICAgICAgICAgICAgIHBzdHJ1dFNpemUgPSBNYXRoLm1heChwc3RydXRTaXplLCBfZWxlbS5tYXhGb250U2l6ZSwgX2VsZW0uaGVpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfZGlkSXRlcmF0b3JFcnJvcjMgPSB0cnVlO1xuICAgICAgICBfaXRlcmF0b3JFcnJvcjMgPSBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbjMgJiYgX2l0ZXJhdG9yMy5yZXR1cm4pIHtcbiAgICAgICAgICAgICAgICBfaXRlcmF0b3IzLnJldHVybigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKF9kaWRJdGVyYXRvckVycm9yMykge1xuICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yMztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHBzdHJ1dFNpemUgKz0gMjtcbiAgICB2YXIgcHN0cnV0ID0gbWFrZVNwYW4oW1wicHN0cnV0XCJdLCBbXSk7XG4gICAgcHN0cnV0LnN0eWxlLmhlaWdodCA9IHBzdHJ1dFNpemUgKyBcImVtXCI7XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgbGlzdCBvZiBhY3R1YWwgY2hpbGRyZW4gYXQgdGhlIGNvcnJlY3Qgb2Zmc2V0c1xuICAgIHZhciByZWFsQ2hpbGRyZW4gPSBbXTtcbiAgICB2YXIgbWluUG9zID0gZGVwdGg7XG4gICAgdmFyIG1heFBvcyA9IGRlcHRoO1xuICAgIHZhciBjdXJyUG9zID0gZGVwdGg7XG4gICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb240ID0gdHJ1ZTtcbiAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3I0ID0gZmFsc2U7XG4gICAgdmFyIF9pdGVyYXRvckVycm9yNCA9IHVuZGVmaW5lZDtcblxuICAgIHRyeSB7XG4gICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjQgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQoKShjaGlsZHJlbiksIF9zdGVwNDsgIShfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uNCA9IChfc3RlcDQgPSBfaXRlcmF0b3I0Lm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb240ID0gdHJ1ZSkge1xuICAgICAgICAgICAgdmFyIF9jaGlsZCA9IF9zdGVwNC52YWx1ZTtcblxuICAgICAgICAgICAgaWYgKF9jaGlsZC50eXBlID09PSBcImtlcm5cIikge1xuICAgICAgICAgICAgICAgIGN1cnJQb3MgKz0gX2NoaWxkLnNpemU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBfZWxlbTIgPSBfY2hpbGQuZWxlbTtcbiAgICAgICAgICAgICAgICB2YXIgY2xhc3NlcyA9IF9jaGlsZC53cmFwcGVyQ2xhc3NlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBfY2hpbGQud3JhcHBlclN0eWxlIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgdmFyIGNoaWxkV3JhcCA9IG1ha2VTcGFuKGNsYXNzZXMsIFtwc3RydXQsIF9lbGVtMl0sIHVuZGVmaW5lZCwgc3R5bGUpO1xuICAgICAgICAgICAgICAgIGNoaWxkV3JhcC5zdHlsZS50b3AgPSAtcHN0cnV0U2l6ZSAtIGN1cnJQb3MgLSBfZWxlbTIuZGVwdGggKyBcImVtXCI7XG4gICAgICAgICAgICAgICAgaWYgKF9jaGlsZC5tYXJnaW5MZWZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkV3JhcC5zdHlsZS5tYXJnaW5MZWZ0ID0gX2NoaWxkLm1hcmdpbkxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChfY2hpbGQubWFyZ2luUmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRXcmFwLnN0eWxlLm1hcmdpblJpZ2h0ID0gX2NoaWxkLm1hcmdpblJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlYWxDaGlsZHJlbi5wdXNoKGNoaWxkV3JhcCk7XG4gICAgICAgICAgICAgICAgY3VyclBvcyArPSBfZWxlbTIuaGVpZ2h0ICsgX2VsZW0yLmRlcHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbWluUG9zID0gTWF0aC5taW4obWluUG9zLCBjdXJyUG9zKTtcbiAgICAgICAgICAgIG1heFBvcyA9IE1hdGgubWF4KG1heFBvcywgY3VyclBvcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgdmxpc3QgY29udGVudHMgZ28gaW4gYSB0YWJsZS1jZWxsIHdpdGggYHZlcnRpY2FsLWFsaWduOmJvdHRvbWAuXG4gICAgICAgIC8vIFRoaXMgY2VsbCdzIGJvdHRvbSBlZGdlIHdpbGwgZGV0ZXJtaW5lIHRoZSBjb250YWluaW5nIHRhYmxlJ3MgYmFzZWxpbmVcbiAgICAgICAgLy8gd2l0aG91dCBvdmVybHkgZXhwYW5kaW5nIHRoZSBjb250YWluaW5nIGxpbmUtYm94LlxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfZGlkSXRlcmF0b3JFcnJvcjQgPSB0cnVlO1xuICAgICAgICBfaXRlcmF0b3JFcnJvcjQgPSBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbjQgJiYgX2l0ZXJhdG9yNC5yZXR1cm4pIHtcbiAgICAgICAgICAgICAgICBfaXRlcmF0b3I0LnJldHVybigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKF9kaWRJdGVyYXRvckVycm9yNCkge1xuICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yNDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciB2bGlzdCA9IG1ha2VTcGFuKFtcInZsaXN0XCJdLCByZWFsQ2hpbGRyZW4pO1xuICAgIHZsaXN0LnN0eWxlLmhlaWdodCA9IG1heFBvcyArIFwiZW1cIjtcblxuICAgIC8vIEEgc2Vjb25kIHJvdyBpcyB1c2VkIGlmIG5lY2Vzc2FyeSB0byByZXByZXNlbnQgdGhlIHZsaXN0J3MgZGVwdGguXG4gICAgdmFyIHJvd3MgPSB2b2lkIDA7XG4gICAgaWYgKG1pblBvcyA8IDApIHtcbiAgICAgICAgdmFyIGRlcHRoU3RydXQgPSBtYWtlU3BhbihbXCJ2bGlzdFwiXSwgW10pO1xuICAgICAgICBkZXB0aFN0cnV0LnN0eWxlLmhlaWdodCA9IC1taW5Qb3MgKyBcImVtXCI7XG5cbiAgICAgICAgLy8gU2FmYXJpIHdhbnRzIHRoZSBmaXJzdCByb3cgdG8gaGF2ZSBpbmxpbmUgY29udGVudDsgb3RoZXJ3aXNlIGl0XG4gICAgICAgIC8vIHB1dHMgdGhlIGJvdHRvbSBvZiB0aGUgKnNlY29uZCogcm93IG9uIHRoZSBiYXNlbGluZS5cbiAgICAgICAgdmFyIHRvcFN0cnV0ID0gbWFrZVNwYW4oW1widmxpc3Qtc1wiXSwgW25ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zeW1ib2xOb2RlKFwiXFx1MjAwQlwiKV0pO1xuXG4gICAgICAgIHJvd3MgPSBbbWFrZVNwYW4oW1widmxpc3QtclwiXSwgW3ZsaXN0LCB0b3BTdHJ1dF0pLCBtYWtlU3BhbihbXCJ2bGlzdC1yXCJdLCBbZGVwdGhTdHJ1dF0pXTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByb3dzID0gW21ha2VTcGFuKFtcInZsaXN0LXJcIl0sIFt2bGlzdF0pXTtcbiAgICB9XG5cbiAgICB2YXIgdnRhYmxlID0gbWFrZVNwYW4oW1widmxpc3QtdFwiXSwgcm93cyk7XG4gICAgaWYgKHJvd3MubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHZ0YWJsZS5jbGFzc2VzLnB1c2goXCJ2bGlzdC10MlwiKTtcbiAgICB9XG4gICAgdnRhYmxlLmhlaWdodCA9IG1heFBvcztcbiAgICB2dGFibGUuZGVwdGggPSAtbWluUG9zO1xuICAgIHJldHVybiB2dGFibGU7XG59O1xuXG4vLyBDb252ZXJ0cyB2ZXJiIGdyb3VwIGludG8gYm9keSBzdHJpbmcsIGRlYWxpbmcgd2l0aCBcXHZlcmIqIGZvcm1cbnZhciBtYWtlVmVyYiA9IGZ1bmN0aW9uIG1ha2VWZXJiKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgLy8gVE9ETygjODkyKTogTWFrZSBQYXJzZU5vZGUgdHlwZS1zYWZlIGFuZCBjb25maXJtIGBncm91cC50eXBlYCB0byBndWFyYW50ZWVcbiAgICAvLyB0aGF0IGBncm91cC52YWx1ZS5ib2R5YCBpcyBvZiB0eXBlIHN0cmluZy5cbiAgICB2YXIgdGV4dCA9IGdyb3VwLnZhbHVlLmJvZHk7XG4gICAgaWYgKGdyb3VwLnZhbHVlLnN0YXIpIHtcbiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvIC9nLCBcIlxcdTI0MjNcIik7IC8vIE9wZW4gQm94XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvIC9nLCAnXFx4QTAnKTsgLy8gTm8tQnJlYWsgU3BhY2VcbiAgICAgICAgLy8gKHNvIHRoYXQsIGluIHBhcnRpY3VsYXIsIHNwYWNlcyBkb24ndCBjb2FsZXNjZSlcbiAgICB9XG4gICAgcmV0dXJuIHRleHQ7XG59O1xuXG4vLyBHbHVlIGlzIGEgY29uY2VwdCBmcm9tIFRlWCB3aGljaCBpcyBhIGZsZXhpYmxlIHNwYWNlIGJldHdlZW4gZWxlbWVudHMgaW5cbi8vIGVpdGhlciBhIHZlcnRpY2FsIG9yIGhvcml6b250YWwgbGlzdC4gIEluIEthVGVYLCBhdCBsZWFzdCBmb3Igbm93LCBpdCdzXG4vLyBzdGF0aWMgc3BhY2UgYmV0d2VlbiBlbGVtZW50cyBpbiBhIGhvcml6b250YWwgbGF5b3V0LlxudmFyIG1ha2VHbHVlID0gZnVuY3Rpb24gbWFrZUdsdWUobWVhc3VyZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAvLyBNYWtlIGFuIGVtcHR5IHNwYW4gZm9yIHRoZSBydWxlXG4gICAgdmFyIHJ1bGUgPSBtYWtlU3BhbihbXCJtb3JkXCIsIFwicnVsZVwiXSwgW10sIG9wdGlvbnMpO1xuICAgIHZhciBzaXplID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdW5pdHNfX1tcImFcIiAvKiBjYWxjdWxhdGVTaXplICovXSkobWVhc3VyZW1lbnQsIG9wdGlvbnMpO1xuICAgIHJ1bGUuc3R5bGUubWFyZ2luUmlnaHQgPSBzaXplICsgXCJlbVwiO1xuICAgIHJldHVybiBydWxlO1xufTtcblxuLy8gVGFrZXMgYW4gT3B0aW9ucyBvYmplY3QsIGFuZCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBmb250TG9va3VwXG52YXIgcmV0cmlldmVUZXh0Rm9udE5hbWUgPSBmdW5jdGlvbiByZXRyaWV2ZVRleHRGb250TmFtZShmb250RmFtaWx5LCBmb250V2VpZ2h0LCBmb250U2hhcGUpIHtcbiAgICB2YXIgYmFzZUZvbnROYW1lID0gcmV0cmlldmVCYXNlRm9udE5hbWUoZm9udEZhbWlseSk7XG4gICAgdmFyIGZvbnRTdHlsZXNOYW1lID0gcmV0cmlldmVGb250U3R5bGVzTmFtZShmb250V2VpZ2h0LCBmb250U2hhcGUpO1xuICAgIHJldHVybiBiYXNlRm9udE5hbWUgKyBcIi1cIiArIGZvbnRTdHlsZXNOYW1lO1xufTtcblxudmFyIHJldHJpZXZlQmFzZUZvbnROYW1lID0gZnVuY3Rpb24gcmV0cmlldmVCYXNlRm9udE5hbWUoZm9udCkge1xuICAgIHZhciBiYXNlRm9udE5hbWUgPSBcIlwiO1xuICAgIHN3aXRjaCAoZm9udCkge1xuICAgICAgICBjYXNlIFwiYW1zcm1cIjpcbiAgICAgICAgICAgIGJhc2VGb250TmFtZSA9IFwiQU1TXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRleHRybVwiOlxuICAgICAgICAgICAgYmFzZUZvbnROYW1lID0gXCJNYWluXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRleHRzZlwiOlxuICAgICAgICAgICAgYmFzZUZvbnROYW1lID0gXCJTYW5zU2VyaWZcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGV4dHR0XCI6XG4gICAgICAgICAgICBiYXNlRm9udE5hbWUgPSBcIlR5cGV3cml0ZXJcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBmb250IHByb3ZpZGVkOiBcIiArIGZvbnQpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZUZvbnROYW1lO1xufTtcblxudmFyIHJldHJpZXZlRm9udFN0eWxlc05hbWUgPSBmdW5jdGlvbiByZXRyaWV2ZUZvbnRTdHlsZXNOYW1lKGZvbnRXZWlnaHQsIGZvbnRTaGFwZSkge1xuICAgIHZhciBmb250U3R5bGVzTmFtZSA9ICcnO1xuICAgIGlmIChmb250V2VpZ2h0ID09PSBcInRleHRiZlwiKSB7XG4gICAgICAgIGZvbnRTdHlsZXNOYW1lICs9IFwiQm9sZFwiO1xuICAgIH1cbiAgICBpZiAoZm9udFNoYXBlID09PSBcInRleHRpdFwiKSB7XG4gICAgICAgIGZvbnRTdHlsZXNOYW1lICs9IFwiSXRhbGljXCI7XG4gICAgfVxuICAgIHJldHVybiBmb250U3R5bGVzTmFtZSB8fCBcIlJlZ3VsYXJcIjtcbn07XG5cbi8vIEEgbWFwIG9mIHNwYWNpbmcgZnVuY3Rpb25zIHRvIHRoZWlyIGF0dHJpYnV0ZXMsIGxpa2Ugc2l6ZSBhbmQgY29ycmVzcG9uZGluZ1xuLy8gQ1NTIGNsYXNzXG52YXIgc3BhY2luZ0Z1bmN0aW9ucyA9IHtcbiAgICBcIlxcXFxxcXVhZFwiOiB7XG4gICAgICAgIHNpemU6IFwiMmVtXCIsXG4gICAgICAgIGNsYXNzTmFtZTogXCJxcXVhZFwiXG4gICAgfSxcbiAgICBcIlxcXFxxdWFkXCI6IHtcbiAgICAgICAgc2l6ZTogXCIxZW1cIixcbiAgICAgICAgY2xhc3NOYW1lOiBcInF1YWRcIlxuICAgIH0sXG4gICAgXCJcXFxcZW5zcGFjZVwiOiB7XG4gICAgICAgIHNpemU6IFwiMC41ZW1cIixcbiAgICAgICAgY2xhc3NOYW1lOiBcImVuc3BhY2VcIlxuICAgIH0sXG4gICAgXCJcXFxcO1wiOiB7XG4gICAgICAgIHNpemU6IFwiMC4yNzc3NzhlbVwiLFxuICAgICAgICBjbGFzc05hbWU6IFwidGhpY2tzcGFjZVwiXG4gICAgfSxcbiAgICBcIlxcXFw6XCI6IHtcbiAgICAgICAgc2l6ZTogXCIwLjIyMjIyZW1cIixcbiAgICAgICAgY2xhc3NOYW1lOiBcIm1lZGl1bXNwYWNlXCJcbiAgICB9LFxuICAgIFwiXFxcXCxcIjoge1xuICAgICAgICBzaXplOiBcIjAuMTY2NjdlbVwiLFxuICAgICAgICBjbGFzc05hbWU6IFwidGhpbnNwYWNlXCJcbiAgICB9LFxuICAgIFwiXFxcXCFcIjoge1xuICAgICAgICBzaXplOiBcIi0wLjE2NjY3ZW1cIixcbiAgICAgICAgY2xhc3NOYW1lOiBcIm5lZ2F0aXZldGhpbnNwYWNlXCJcbiAgICB9XG59O1xuXG4vKipcbiAqIE1hcHMgVGVYIGZvbnQgY29tbWFuZHMgdG8gb2JqZWN0cyBjb250YWluaW5nOlxuICogLSB2YXJpYW50OiBzdHJpbmcgdXNlZCBmb3IgXCJtYXRodmFyaWFudFwiIGF0dHJpYnV0ZSBpbiBidWlsZE1hdGhNTC5qc1xuICogLSBmb250TmFtZTogdGhlIFwic3R5bGVcIiBwYXJhbWV0ZXIgdG8gZm9udE1ldHJpY3MuZ2V0Q2hhcmFjdGVyTWV0cmljc1xuICovXG4vLyBBIG1hcCBiZXR3ZWVuIHRleCBmb250IGNvbW1hbmRzIGFuIE1hdGhNTCBtYXRodmFyaWFudCBhdHRyaWJ1dGUgdmFsdWVzXG52YXIgZm9udE1hcCA9IHtcbiAgICAvLyBzdHlsZXNcbiAgICBcIm1hdGhiZlwiOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwiYm9sZFwiLFxuICAgICAgICBmb250TmFtZTogXCJNYWluLUJvbGRcIlxuICAgIH0sXG4gICAgXCJtYXRocm1cIjoge1xuICAgICAgICB2YXJpYW50OiBcIm5vcm1hbFwiLFxuICAgICAgICBmb250TmFtZTogXCJNYWluLVJlZ3VsYXJcIlxuICAgIH0sXG4gICAgXCJ0ZXh0aXRcIjoge1xuICAgICAgICB2YXJpYW50OiBcIml0YWxpY1wiLFxuICAgICAgICBmb250TmFtZTogXCJNYWluLUl0YWxpY1wiXG4gICAgfSxcblxuICAgIC8vIFwibWF0aGl0XCIgYW5kIFwiYm9sZHN5bWJvbFwiIGFyZSBtaXNzaW5nIGJlY2F1c2UgdGhleSByZXF1aXJlIHRoZSB1c2Ugb2YgdHdvXG4gICAgLy8gZm9udHM6IE1haW4tSXRhbGljIGFuZCBNYXRoLUl0YWxpYyBmb3IgXCJtYXRoaXRcIiwgYW5kIE1hdGgtQm9sZEl0YWxpYyBhbmRcbiAgICAvLyBNYWluLUJvbGQgZm9yIFwiYm9sZHN5bWJvbFwiLiAgVGhpcyBpcyBoYW5kbGVkIGJ5IGEgc3BlY2lhbCBjYXNlIGluIG1ha2VPcmRcbiAgICAvLyB3aGljaCBlbmRzIHVwIGNhbGxpbmcgbWF0aGl0IGFuZCBib2xkc3ltYm9sLlxuXG4gICAgLy8gZmFtaWxpZXNcbiAgICBcIm1hdGhiYlwiOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwiZG91YmxlLXN0cnVja1wiLFxuICAgICAgICBmb250TmFtZTogXCJBTVMtUmVndWxhclwiXG4gICAgfSxcbiAgICBcIm1hdGhjYWxcIjoge1xuICAgICAgICB2YXJpYW50OiBcInNjcmlwdFwiLFxuICAgICAgICBmb250TmFtZTogXCJDYWxpZ3JhcGhpYy1SZWd1bGFyXCJcbiAgICB9LFxuICAgIFwibWF0aGZyYWtcIjoge1xuICAgICAgICB2YXJpYW50OiBcImZyYWt0dXJcIixcbiAgICAgICAgZm9udE5hbWU6IFwiRnJha3R1ci1SZWd1bGFyXCJcbiAgICB9LFxuICAgIFwibWF0aHNjclwiOiB7XG4gICAgICAgIHZhcmlhbnQ6IFwic2NyaXB0XCIsXG4gICAgICAgIGZvbnROYW1lOiBcIlNjcmlwdC1SZWd1bGFyXCJcbiAgICB9LFxuICAgIFwibWF0aHNmXCI6IHtcbiAgICAgICAgdmFyaWFudDogXCJzYW5zLXNlcmlmXCIsXG4gICAgICAgIGZvbnROYW1lOiBcIlNhbnNTZXJpZi1SZWd1bGFyXCJcbiAgICB9LFxuICAgIFwibWF0aHR0XCI6IHtcbiAgICAgICAgdmFyaWFudDogXCJtb25vc3BhY2VcIixcbiAgICAgICAgZm9udE5hbWU6IFwiVHlwZXdyaXRlci1SZWd1bGFyXCJcbiAgICB9XG59O1xuXG52YXIgc3ZnRGF0YSA9IHtcbiAgICAvLyAgIHBhdGgsIHdpZHRoLCBoZWlnaHRcbiAgICB2ZWM6IFtcInZlY1wiLCAwLjQ3MSwgMC43MTRdIC8vIHZhbHVlcyBmcm9tIHRoZSBmb250IGdseXBoXG59O1xuXG52YXIgc3RhdGljU3ZnID0gZnVuY3Rpb24gc3RhdGljU3ZnKHZhbHVlLCBvcHRpb25zKSB7XG4gICAgLy8gQ3JlYXRlIGEgc3BhbiB3aXRoIGlubGluZSBTVkcgZm9yIHRoZSBlbGVtZW50LlxuICAgIHZhciBfc3ZnRGF0YSR2YWx1ZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfc2xpY2VkVG9BcnJheV9fX2RlZmF1bHQoKShzdmdEYXRhW3ZhbHVlXSwgMyksXG4gICAgICAgIHBhdGhOYW1lID0gX3N2Z0RhdGEkdmFsdWVbMF0sXG4gICAgICAgIHdpZHRoID0gX3N2Z0RhdGEkdmFsdWVbMV0sXG4gICAgICAgIGhlaWdodCA9IF9zdmdEYXRhJHZhbHVlWzJdO1xuXG4gICAgdmFyIHBhdGggPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10ucGF0aE5vZGUocGF0aE5hbWUpO1xuICAgIHZhciBzdmdOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN2Z05vZGUoW3BhdGhdLCB7XG4gICAgICAgIFwid2lkdGhcIjogd2lkdGggKyBcImVtXCIsXG4gICAgICAgIFwiaGVpZ2h0XCI6IGhlaWdodCArIFwiZW1cIixcbiAgICAgICAgLy8gT3ZlcnJpZGUgQ1NTIHJ1bGUgYC5rYXRleCBzdmcgeyB3aWR0aDogMTAwJSB9YFxuICAgICAgICBcInN0eWxlXCI6IFwid2lkdGg6XCIgKyB3aWR0aCArIFwiZW1cIixcbiAgICAgICAgXCJ2aWV3Qm94XCI6IFwiMCAwIFwiICsgMTAwMCAqIHdpZHRoICsgXCIgXCIgKyAxMDAwICogaGVpZ2h0LFxuICAgICAgICBcInByZXNlcnZlQXNwZWN0UmF0aW9cIjogXCJ4TWluWU1pblwiXG4gICAgfSk7XG4gICAgdmFyIHNwYW4gPSBtYWtlU3BhbihbXCJvdmVybGF5XCJdLCBbc3ZnTm9kZV0sIG9wdGlvbnMpO1xuICAgIHNwYW4uaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIHNwYW4uc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgXCJlbVwiO1xuICAgIHNwYW4uc3R5bGUud2lkdGggPSB3aWR0aCArIFwiZW1cIjtcbiAgICByZXR1cm4gc3Bhbjtcbn07XG5cbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoe1xuICAgIGZvbnRNYXA6IGZvbnRNYXAsXG4gICAgbWFrZVN5bWJvbDogbWFrZVN5bWJvbCxcbiAgICBtYXRoc3ltOiBtYXRoc3ltLFxuICAgIG1ha2VTcGFuOiBtYWtlU3BhbixcbiAgICBtYWtlTGluZVNwYW46IG1ha2VMaW5lU3BhbixcbiAgICBtYWtlQW5jaG9yOiBtYWtlQW5jaG9yLFxuICAgIG1ha2VGcmFnbWVudDogbWFrZUZyYWdtZW50LFxuICAgIG1ha2VWTGlzdDogbWFrZVZMaXN0LFxuICAgIG1ha2VPcmQ6IG1ha2VPcmQsXG4gICAgbWFrZVZlcmI6IG1ha2VWZXJiLFxuICAgIG1ha2VHbHVlOiBtYWtlR2x1ZSxcbiAgICBzdGF0aWNTdmc6IHN0YXRpY1N2ZyxcbiAgICBzdmdEYXRhOiBzdmdEYXRhLFxuICAgIHRyeUNvbWJpbmVDaGFyczogdHJ5Q29tYmluZUNoYXJzLFxuICAgIHNwYWNpbmdGdW5jdGlvbnM6IHNwYWNpbmdGdW5jdGlvbnNcbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuXG5cblxuXG4vKipcbiAqIFRoZXNlIG9iamVjdHMgc3RvcmUgZGF0YSBhYm91dCBNYXRoTUwgbm9kZXMuIFRoaXMgaXMgdGhlIE1hdGhNTCBlcXVpdmFsZW50XG4gKiBvZiB0aGUgdHlwZXMgaW4gZG9tVHJlZS5qcy4gU2luY2UgTWF0aE1MIGhhbmRsZXMgaXRzIG93biByZW5kZXJpbmcsIGFuZFxuICogc2luY2Ugd2UncmUgbWFpbmx5IHVzaW5nIE1hdGhNTCB0byBpbXByb3ZlIGFjY2Vzc2liaWxpdHksIHdlIGRvbid0IG1hbmFnZVxuICogYW55IG9mIHRoZSBzdHlsaW5nIHN0YXRlIHRoYXQgdGhlIHBsYWluIERPTSBub2RlcyBkby5cbiAqXG4gKiBUaGUgYHRvTm9kZWAgYW5kIGB0b01hcmt1cGAgZnVuY3Rpb25zIHdvcmsgc2ltbGFybHkgdG8gaG93IHRoZXkgZG8gaW5cbiAqIGRvbVRyZWUuanMsIGNyZWF0aW5nIG5hbWVzcGFjZWQgRE9NIG5vZGVzIGFuZCBIVE1MIHRleHQgbWFya3VwIHJlc3BlY3RpdmVseS5cbiAqL1xuXG5cblxuLyoqXG4gKiBNYXRoTUwgbm9kZSB0eXBlcyB1c2VkIGluIEthVGVYLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIE1hdGhNTCBub2Rlcywgc2VlXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9NYXRoTUwvRWxlbWVudC5cbiAqL1xuXG4vKipcbiAqIFRoaXMgbm9kZSByZXByZXNlbnRzIGEgZ2VuZXJhbCBwdXJwb3NlIE1hdGhNTCBub2RlIG9mIGFueSB0eXBlLiBUaGVcbiAqIGNvbnN0cnVjdG9yIHJlcXVpcmVzIHRoZSB0eXBlIG9mIG5vZGUgdG8gY3JlYXRlIChmb3IgZXhhbXBsZSwgYFwibW9cImAgb3JcbiAqIGBcIm1zcGFjZVwiYCwgY29ycmVzcG9uZGluZyB0byBgPG1vPmAgYW5kIGA8bXNwYWNlPmAgdGFncykuXG4gKi9cbnZhciBNYXRoTm9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBNYXRoTm9kZSh0eXBlLCBjaGlsZHJlbikge1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCgpKHRoaXMsIE1hdGhOb2RlKTtcblxuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuIHx8IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYW4gYXR0cmlidXRlIG9uIGEgTWF0aE1MIG5vZGUuIE1hdGhNTCBkZXBlbmRzIG9uIGF0dHJpYnV0ZXMgdG8gY29udmV5IGFcbiAgICAgKiBzZW1hbnRpYyBjb250ZW50LCBzbyB0aGlzIGlzIHVzZWQgaGVhdmlseS5cbiAgICAgKi9cblxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShNYXRoTm9kZSwgW3tcbiAgICAgICAga2V5OiBcInNldEF0dHJpYnV0ZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0cyB0aGUgbWF0aCBub2RlIGludG8gYSBNYXRoTUwtbmFtZXNwYWNlZCBET00gZWxlbWVudC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b05vZGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTm9kZSgpIHtcbiAgICAgICAgICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLCB0aGlzLnR5cGUpO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBhdHRyIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyLCB0aGlzLmF0dHJpYnV0ZXNbYXR0cl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgdmFyIF9kaWRJdGVyYXRvckVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgX2l0ZXJhdG9yRXJyb3IgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfX19kZWZhdWx0KCkodGhpcy5jaGlsZHJlbiksIF9zdGVwOyAhKF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gPSAoX3N0ZXAgPSBfaXRlcmF0b3IubmV4dCgpKS5kb25lKTsgX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gX3N0ZXAudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hcHBlbmRDaGlsZChjaGlsZC50b05vZGUoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgX2RpZEl0ZXJhdG9yRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgIF9pdGVyYXRvckVycm9yID0gZXJyO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gJiYgX2l0ZXJhdG9yLnJldHVybikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2l0ZXJhdG9yLnJldHVybigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9kaWRJdGVyYXRvckVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBfaXRlcmF0b3JFcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGFuIEhUTUwgbWFya3VwIHN0cmluZy5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b01hcmt1cFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9NYXJrdXAoKSB7XG4gICAgICAgICAgICB2YXIgbWFya3VwID0gXCI8XCIgKyB0aGlzLnR5cGU7XG5cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIFwiICsgYXR0ciArIFwiPVxcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUodGhpcy5hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiXFxcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFya3VwICs9IFwiPlwiO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gdGhpcy5jaGlsZHJlbltpXS50b01hcmt1cCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXJrdXAgKz0gXCI8L1wiICsgdGhpcy50eXBlICsgXCI+XCI7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrdXA7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udmVydHMgdGhlIG1hdGggbm9kZSBpbnRvIGEgc3RyaW5nLCBzaW1pbGFyIHRvIGlubmVyVGV4dC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b1RleHRcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvVGV4dCgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFwibXNwYWNlXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVzLndpZHRoID09PSBcIjAuMTY2NjdlbVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIlxcdTIwMDZcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBVc2Ugb3RoZXIgc3BhY2UgY2hhcmFjdGVycyBmb3IgZGlmZmVyZW50IHdpZHRocy5cbiAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL0toYW4vS2FUZVgvaXNzdWVzLzEwMzZcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiIFwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQudG9UZXh0KCk7XG4gICAgICAgICAgICB9KS5qb2luKFwiXCIpO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIE1hdGhOb2RlO1xufSgpO1xuXG4vKipcbiAqIFRoaXMgbm9kZSByZXByZXNlbnRzIGEgcGllY2Ugb2YgdGV4dC5cbiAqL1xuXG5cbnZhciBUZXh0Tm9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUZXh0Tm9kZSh0ZXh0KSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgVGV4dE5vZGUpO1xuXG4gICAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydHMgdGhlIHRleHQgbm9kZSBpbnRvIGEgRE9NIHRleHQgbm9kZS5cbiAgICAgKi9cblxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShUZXh0Tm9kZSwgW3tcbiAgICAgICAga2V5OiBcInRvTm9kZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ob2RlKCkge1xuICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMudGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ29udmVydHMgdGhlIHRleHQgbm9kZSBpbnRvIEhUTUwgbWFya3VwICh3aGljaCBpcyBqdXN0IHRoZSB0ZXh0IGl0c2VsZikuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9NYXJrdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTWFya3VwKCkge1xuICAgICAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUodGhpcy50ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0cyB0aGUgdGV4dCBub2RlIGludG8gYSBzdHJpbmcgKHdoaWNoIGlzIGp1c3QgdGhlIHRleHQgaXRlc2VsZikuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9UZXh0XCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b1RleHQoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50ZXh0O1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFRleHROb2RlO1xufSgpO1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKHtcbiAgICBNYXRoTm9kZTogTWF0aE5vZGUsXG4gICAgVGV4dE5vZGU6IFRleHROb2RlXG59KTtcblxuLyoqKi8gfSksXG4vKiAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImVcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBtYWtlVGV4dDsgfSk7XG4vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIFwiZFwiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGdyb3VwVHlwZXM7IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImFcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBidWlsZEV4cHJlc3Npb247IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImJcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBidWlsZEdyb3VwOyB9KTtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJjXCJdID0gYnVpbGRNYXRoTUw7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2ZvbnRNZXRyaWNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fU3R5bGVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19zeW1ib2xzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fc3RyZXRjaHlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpO1xuLyoqXG4gKiBXQVJOSU5HOiBOZXcgbWV0aG9kcyBvbiBncm91cFR5cGVzIHNob3VsZCBiZSBhZGRlZCB0byBzcmMvZnVuY3Rpb25zLlxuICpcbiAqIFRoaXMgZmlsZSBjb252ZXJ0cyBhIHBhcnNlIHRyZWUgaW50byBhIGNvb3Jlc3BvbmRpbmcgTWF0aE1MIHRyZWUuIFRoZSBtYWluXG4gKiBlbnRyeSBwb2ludCBpcyB0aGUgYGJ1aWxkTWF0aE1MYCBmdW5jdGlvbiwgd2hpY2ggdGFrZXMgYSBwYXJzZSB0cmVlIGZyb20gdGhlXG4gKiBwYXJzZXIuXG4gKi9cblxuXG5cblxuXG5cblxuXG5cblxuLyoqXG4gKiBUYWtlcyBhIHN5bWJvbCBhbmQgY29udmVydHMgaXQgaW50byBhIE1hdGhNTCB0ZXh0IG5vZGUgYWZ0ZXIgcGVyZm9ybWluZ1xuICogb3B0aW9uYWwgcmVwbGFjZW1lbnQgZnJvbSBzeW1ib2xzLmpzLlxuICovXG52YXIgbWFrZVRleHQgPSBmdW5jdGlvbiBtYWtlVGV4dCh0ZXh0LCBtb2RlKSB7XG4gICAgaWYgKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW21vZGVdW3RleHRdICYmIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW21vZGVdW3RleHRdLnJlcGxhY2UpIHtcbiAgICAgICAgdGV4dCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW21vZGVdW3RleHRdLnJlcGxhY2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5UZXh0Tm9kZSh0ZXh0KTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbWF0aCB2YXJpYW50IGFzIGEgc3RyaW5nIG9yIG51bGwgaWYgbm9uZSBpcyByZXF1aXJlZC5cbiAqL1xudmFyIGdldFZhcmlhbnQgPSBmdW5jdGlvbiBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGZvbnQgPSBvcHRpb25zLmZvbnRGYW1pbHk7XG4gICAgaWYgKCFmb250KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHZhciBtb2RlID0gZ3JvdXAubW9kZTtcbiAgICBpZiAoZm9udCA9PT0gXCJtYXRoaXRcIikge1xuICAgICAgICByZXR1cm4gXCJpdGFsaWNcIjtcbiAgICB9IGVsc2UgaWYgKGZvbnQgPT09IFwiYm9sZHN5bWJvbFwiKSB7XG4gICAgICAgIHJldHVybiBcImJvbGQtaXRhbGljXCI7XG4gICAgfVxuXG4gICAgdmFyIHZhbHVlID0gZ3JvdXAudmFsdWU7XG4gICAgaWYgKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhbXCJcXFxcaW1hdGhcIiwgXCJcXFxcam1hdGhcIl0sIHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bbW9kZV1bdmFsdWVdICYmIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW21vZGVdW3ZhbHVlXS5yZXBsYWNlKSB7XG4gICAgICAgIHZhbHVlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bbW9kZV1bdmFsdWVdLnJlcGxhY2U7XG4gICAgfVxuXG4gICAgdmFyIGZvbnROYW1lID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmZvbnRNYXBbZm9udF0uZm9udE5hbWU7XG4gICAgaWYgKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZm9udE1ldHJpY3NfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5nZXRDaGFyYWN0ZXJNZXRyaWNzKHZhbHVlLCBmb250TmFtZSwgbW9kZSkpIHtcbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5mb250TWFwW2ZvbnRdLnZhcmlhbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIEZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBncm91cHMgZm91bmQgaW4gdGhlIHBhcnNlXG4gKiB0cmVlLiBFYWNoIGZ1bmN0aW9uIHNob3VsZCB0YWtlIGEgcGFyc2UgZ3JvdXAgYW5kIHJldHVybiBhIE1hdGhNTCBub2RlLlxuICovXG52YXIgZ3JvdXBUeXBlcyA9IHt9O1xuXG52YXIgZGVmYXVsdFZhcmlhbnQgPSB7XG4gICAgXCJtaVwiOiBcIml0YWxpY1wiLFxuICAgIFwibW5cIjogXCJub3JtYWxcIixcbiAgICBcIm10ZXh0XCI6IFwibm9ybWFsXCJcbn07XG5cbmdyb3VwVHlwZXMubWF0aG9yZCA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibWlcIiwgW21ha2VUZXh0KGdyb3VwLnZhbHVlLCBncm91cC5tb2RlKV0pO1xuXG4gICAgdmFyIHZhcmlhbnQgPSBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKSB8fCBcIml0YWxpY1wiO1xuICAgIGlmICh2YXJpYW50ICE9PSBkZWZhdWx0VmFyaWFudFtub2RlLnR5cGVdKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aHZhcmlhbnRcIiwgdmFyaWFudCk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcblxuZ3JvdXBUeXBlcy50ZXh0b3JkID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIHRleHQgPSBtYWtlVGV4dChncm91cC52YWx1ZSwgZ3JvdXAubW9kZSk7XG5cbiAgICB2YXIgdmFyaWFudCA9IGdldFZhcmlhbnQoZ3JvdXAsIG9wdGlvbnMpIHx8IFwibm9ybWFsXCI7XG5cbiAgICB2YXIgbm9kZSA9IHZvaWQgMDtcbiAgICBpZiAoZ3JvdXAubW9kZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtdGV4dFwiLCBbdGV4dF0pO1xuICAgIH0gZWxzZSBpZiAoL1swLTldLy50ZXN0KGdyb3VwLnZhbHVlKSkge1xuICAgICAgICAvLyBUT0RPKGtldmluYikgbWVyZ2UgYWRqYWNlbnQgPG1uPiBub2Rlc1xuICAgICAgICAvLyBkbyBpdCBhcyBhIHBvc3QgcHJvY2Vzc2luZyBzdGVwXG4gICAgICAgIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtblwiLCBbdGV4dF0pO1xuICAgIH0gZWxzZSBpZiAoZ3JvdXAudmFsdWUgPT09IFwiXFxcXHByaW1lXCIpIHtcbiAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFt0ZXh0XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1pXCIsIFt0ZXh0XSk7XG4gICAgfVxuICAgIGlmICh2YXJpYW50ICE9PSBkZWZhdWx0VmFyaWFudFtub2RlLnR5cGVdKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aHZhcmlhbnRcIiwgdmFyaWFudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5ncm91cFR5cGVzLmJpbiA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW21ha2VUZXh0KGdyb3VwLnZhbHVlLCBncm91cC5tb2RlKV0pO1xuXG4gICAgdmFyIHZhcmlhbnQgPSBnZXRWYXJpYW50KGdyb3VwLCBvcHRpb25zKTtcbiAgICBpZiAodmFyaWFudCA9PT0gXCJib2xkLWl0YWxpY1wiKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aHZhcmlhbnRcIiwgdmFyaWFudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5ncm91cFR5cGVzLnJlbCA9IGZ1bmN0aW9uIChncm91cCkge1xuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW21ha2VUZXh0KGdyb3VwLnZhbHVlLCBncm91cC5tb2RlKV0pO1xuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5ncm91cFR5cGVzLm9wZW4gPSBmdW5jdGlvbiAoZ3JvdXApIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChncm91cC52YWx1ZSwgZ3JvdXAubW9kZSldKTtcblxuICAgIHJldHVybiBub2RlO1xufTtcblxuZ3JvdXBUeXBlcy5jbG9zZSA9IGZ1bmN0aW9uIChncm91cCkge1xuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW21ha2VUZXh0KGdyb3VwLnZhbHVlLCBncm91cC5tb2RlKV0pO1xuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5ncm91cFR5cGVzLmlubmVyID0gZnVuY3Rpb24gKGdyb3VwKSB7XG4gICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbbWFrZVRleHQoZ3JvdXAudmFsdWUsIGdyb3VwLm1vZGUpXSk7XG5cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbmdyb3VwVHlwZXMucHVuY3QgPSBmdW5jdGlvbiAoZ3JvdXApIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFttYWtlVGV4dChncm91cC52YWx1ZSwgZ3JvdXAubW9kZSldKTtcblxuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwic2VwYXJhdG9yXCIsIFwidHJ1ZVwiKTtcblxuICAgIHJldHVybiBub2RlO1xufTtcblxuZ3JvdXBUeXBlcy5vcmRncm91cCA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBpbm5lciA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC52YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICB2YXIgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1yb3dcIiwgaW5uZXIpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5ncm91cFR5cGVzLnN1cHN1YiA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIC8vIElzIHRoZSBpbm5lciBncm91cCBhIHJlbGV2YW50IGhvcml6b25hbCBicmFjZT9cbiAgICB2YXIgaXNCcmFjZSA9IGZhbHNlO1xuICAgIHZhciBpc092ZXIgPSB2b2lkIDA7XG4gICAgdmFyIGlzU3VwID0gdm9pZCAwO1xuICAgIGlmIChncm91cC52YWx1ZS5iYXNlKSB7XG4gICAgICAgIGlmIChncm91cC52YWx1ZS5iYXNlLnZhbHVlLnR5cGUgPT09IFwiaG9yaXpCcmFjZVwiKSB7XG4gICAgICAgICAgICBpc1N1cCA9IGdyb3VwLnZhbHVlLnN1cCA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgIGlmIChpc1N1cCA9PT0gZ3JvdXAudmFsdWUuYmFzZS52YWx1ZS5pc092ZXIpIHtcbiAgICAgICAgICAgICAgICBpc0JyYWNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc092ZXIgPSBncm91cC52YWx1ZS5iYXNlLnZhbHVlLmlzT3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZW1vdmVVbm5lY2Vzc2FyeVJvdyA9IHRydWU7XG4gICAgdmFyIGNoaWxkcmVuID0gW2J1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYmFzZSwgb3B0aW9ucywgcmVtb3ZlVW5uZWNlc3NhcnlSb3cpXTtcblxuICAgIGlmIChncm91cC52YWx1ZS5zdWIpIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChidWlsZEdyb3VwKGdyb3VwLnZhbHVlLnN1Yiwgb3B0aW9ucywgcmVtb3ZlVW5uZWNlc3NhcnlSb3cpKTtcbiAgICB9XG5cbiAgICBpZiAoZ3JvdXAudmFsdWUuc3VwKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goYnVpbGRHcm91cChncm91cC52YWx1ZS5zdXAsIG9wdGlvbnMsIHJlbW92ZVVubmVjZXNzYXJ5Um93KSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGVUeXBlID0gdm9pZCAwO1xuICAgIGlmIChpc0JyYWNlKSB7XG4gICAgICAgIG5vZGVUeXBlID0gaXNPdmVyID8gXCJtb3ZlclwiIDogXCJtdW5kZXJcIjtcbiAgICB9IGVsc2UgaWYgKCFncm91cC52YWx1ZS5zdWIpIHtcbiAgICAgICAgdmFyIGJhc2UgPSBncm91cC52YWx1ZS5iYXNlO1xuICAgICAgICBpZiAoYmFzZSAmJiBiYXNlLnZhbHVlLmxpbWl0cyAmJiBvcHRpb25zLnN0eWxlID09PSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uRElTUExBWSkge1xuICAgICAgICAgICAgbm9kZVR5cGUgPSBcIm1vdmVyXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub2RlVHlwZSA9IFwibXN1cFwiO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICghZ3JvdXAudmFsdWUuc3VwKSB7XG4gICAgICAgIHZhciBfYmFzZSA9IGdyb3VwLnZhbHVlLmJhc2U7XG4gICAgICAgIGlmIChfYmFzZSAmJiBfYmFzZS52YWx1ZS5saW1pdHMgJiYgb3B0aW9ucy5zdHlsZSA9PT0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkpIHtcbiAgICAgICAgICAgIG5vZGVUeXBlID0gXCJtdW5kZXJcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGVUeXBlID0gXCJtc3ViXCI7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgX2Jhc2UyID0gZ3JvdXAudmFsdWUuYmFzZTtcbiAgICAgICAgaWYgKF9iYXNlMiAmJiBfYmFzZTIudmFsdWUubGltaXRzICYmIG9wdGlvbnMuc3R5bGUgPT09IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5ESVNQTEFZKSB7XG4gICAgICAgICAgICBub2RlVHlwZSA9IFwibXVuZGVyb3ZlclwiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZVR5cGUgPSBcIm1zdWJzdXBcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKG5vZGVUeXBlLCBjaGlsZHJlbik7XG5cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbmdyb3VwVHlwZXMuc3BhY2luZyA9IGZ1bmN0aW9uIChncm91cCkge1xuICAgIHZhciBub2RlID0gdm9pZCAwO1xuXG4gICAgaWYgKGdyb3VwLnZhbHVlID09PSBcIlxcXFwgXCIgfHwgZ3JvdXAudmFsdWUgPT09IFwiXFxcXHNwYWNlXCIgfHwgZ3JvdXAudmFsdWUgPT09IFwiIFwiIHx8IGdyb3VwLnZhbHVlID09PSBcIn5cIikge1xuICAgICAgICBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXRleHRcIiwgW25ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5UZXh0Tm9kZShcIlxceEEwXCIpXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1zcGFjZVwiKTtcblxuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zcGFjaW5nRnVuY3Rpb25zW2dyb3VwLnZhbHVlXS5zaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbmdyb3VwVHlwZXMuaG9yaXpCcmFjZSA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBhY2NlbnROb2RlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19zdHJldGNoeV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhNTG5vZGUoZ3JvdXAudmFsdWUubGFiZWwpO1xuICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoZ3JvdXAudmFsdWUuaXNPdmVyID8gXCJtb3ZlclwiIDogXCJtdW5kZXJcIiwgW2J1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYmFzZSwgb3B0aW9ucyksIGFjY2VudE5vZGVdKTtcbn07XG5cbmdyb3VwVHlwZXMueEFycm93ID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGFycm93Tm9kZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fc3RyZXRjaHlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoTUxub2RlKGdyb3VwLnZhbHVlLmxhYmVsKTtcbiAgICB2YXIgbm9kZSA9IHZvaWQgMDtcbiAgICB2YXIgbG93ZXJOb2RlID0gdm9pZCAwO1xuXG4gICAgaWYgKGdyb3VwLnZhbHVlLmJvZHkpIHtcbiAgICAgICAgdmFyIHVwcGVyTm9kZSA9IGJ1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyk7XG4gICAgICAgIGlmIChncm91cC52YWx1ZS5iZWxvdykge1xuICAgICAgICAgICAgbG93ZXJOb2RlID0gYnVpbGRHcm91cChncm91cC52YWx1ZS5iZWxvdywgb3B0aW9ucyk7XG4gICAgICAgICAgICBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXVuZGVyb3ZlclwiLCBbYXJyb3dOb2RlLCBsb3dlck5vZGUsIHVwcGVyTm9kZV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vdmVyXCIsIFthcnJvd05vZGUsIHVwcGVyTm9kZV0pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChncm91cC52YWx1ZS5iZWxvdykge1xuICAgICAgICBsb3dlck5vZGUgPSBidWlsZEdyb3VwKGdyb3VwLnZhbHVlLmJlbG93LCBvcHRpb25zKTtcbiAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm11bmRlclwiLCBbYXJyb3dOb2RlLCBsb3dlck5vZGVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW92ZXJcIiwgW2Fycm93Tm9kZV0pO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbmdyb3VwVHlwZXMubWNsYXNzID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGlubmVyID0gYnVpbGRFeHByZXNzaW9uKGdyb3VwLnZhbHVlLnZhbHVlLCBvcHRpb25zKTtcbiAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXN0eWxlXCIsIGlubmVyKTtcbn07XG5cbmdyb3VwVHlwZXMucmFpc2Vib3ggPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1wYWRkZWRcIiwgW2J1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyldKTtcbiAgICB2YXIgZHkgPSBncm91cC52YWx1ZS5keS52YWx1ZS5udW1iZXIgKyBncm91cC52YWx1ZS5keS52YWx1ZS51bml0O1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKFwidm9mZnNldFwiLCBkeSk7XG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG4vKipcbiAqIFRha2VzIGEgbGlzdCBvZiBub2RlcywgYnVpbGRzIHRoZW0sIGFuZCByZXR1cm5zIGEgbGlzdCBvZiB0aGUgZ2VuZXJhdGVkXG4gKiBNYXRoTUwgbm9kZXMuIEEgbGl0dGxlIHNpbXBsZXIgdGhhbiB0aGUgSFRNTCB2ZXJzaW9uIGJlY2F1c2Ugd2UgZG9uJ3QgZG8gYW55XG4gKiBwcmV2aW91cy1ub2RlIGhhbmRsaW5nLlxuICovXG52YXIgYnVpbGRFeHByZXNzaW9uID0gZnVuY3Rpb24gYnVpbGRFeHByZXNzaW9uKGV4cHJlc3Npb24sIG9wdGlvbnMpIHtcbiAgICB2YXIgZ3JvdXBzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHByZXNzaW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBncm91cCA9IGV4cHJlc3Npb25baV07XG4gICAgICAgIGdyb3Vwcy5wdXNoKGJ1aWxkR3JvdXAoZ3JvdXAsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKGtldmluYik6IGNvbWJpbmUgXFxcXG5vdCB3aXRoIG1yZWxzIGFuZCBtb3Jkc1xuXG4gICAgcmV0dXJuIGdyb3Vwcztcbn07XG5cbi8qKlxuICogVGFrZXMgYSBncm91cCBmcm9tIHRoZSBwYXJzZXIgYW5kIGNhbGxzIHRoZSBhcHByb3ByaWF0ZSBncm91cFR5cGVzIGZ1bmN0aW9uXG4gKiBvbiBpdCB0byBwcm9kdWNlIGEgTWF0aE1MIG5vZGUuXG4gKi9cbnZhciBidWlsZEdyb3VwID0gZnVuY3Rpb24gYnVpbGRHcm91cChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciByZW1vdmVVbm5lY2Vzc2FyeVJvdyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogZmFsc2U7XG5cbiAgICBpZiAoIWdyb3VwKSB7XG4gICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtcm93XCIpO1xuICAgIH1cblxuICAgIGlmIChncm91cFR5cGVzW2dyb3VwLnR5cGVdKSB7XG4gICAgICAgIC8vIENhbGwgdGhlIGdyb3VwVHlwZXMgZnVuY3Rpb25cbiAgICAgICAgdmFyIHJlc3VsdCA9IGdyb3VwVHlwZXNbZ3JvdXAudHlwZV0oZ3JvdXAsIG9wdGlvbnMpO1xuICAgICAgICBpZiAocmVtb3ZlVW5uZWNlc3NhcnlSb3cpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gXCJtcm93XCIgJiYgcmVzdWx0LmNoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJHb3QgZ3JvdXAgb2YgdW5rbm93biB0eXBlOiAnXCIgKyBncm91cC50eXBlICsgXCInXCIpO1xuICAgIH1cbn07XG5cbi8qKlxuICogVGFrZXMgYSBmdWxsIHBhcnNlIHRyZWUgYW5kIHNldHRpbmdzIGFuZCBidWlsZHMgYSBNYXRoTUwgcmVwcmVzZW50YXRpb24gb2ZcbiAqIGl0LiBJbiBwYXJ0aWN1bGFyLCB3ZSBwdXQgdGhlIGVsZW1lbnRzIGZyb20gYnVpbGRpbmcgdGhlIHBhcnNlIHRyZWUgaW50byBhXG4gKiA8c2VtYW50aWNzPiB0YWcgc28gd2UgY2FuIGFsc28gaW5jbHVkZSB0aGF0IFRlWCBzb3VyY2UgYXMgYW4gYW5ub3RhdGlvbi5cbiAqXG4gKiBOb3RlIHRoYXQgd2UgYWN0dWFsbHkgcmV0dXJuIGEgZG9tVHJlZSBlbGVtZW50IHdpdGggYSBgPG1hdGg+YCBpbnNpZGUgaXQgc29cbiAqIHdlIGNhbiBkbyBhcHByb3ByaWF0ZSBzdHlsaW5nLlxuICovXG5mdW5jdGlvbiBidWlsZE1hdGhNTCh0cmVlLCB0ZXhFeHByZXNzaW9uLCBvcHRpb25zKSB7XG4gICAgdmFyIGV4cHJlc3Npb24gPSBidWlsZEV4cHJlc3Npb24odHJlZSwgb3B0aW9ucyk7XG5cbiAgICAvLyBXcmFwIHVwIHRoZSBleHByZXNzaW9uIGluIGFuIG1yb3cgc28gaXQgaXMgcHJlc2VudGVkIGluIHRoZSBzZW1hbnRpY3NcbiAgICAvLyB0YWcgY29ycmVjdGx5LlxuICAgIHZhciB3cmFwcGVyID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXJvd1wiLCBleHByZXNzaW9uKTtcblxuICAgIC8vIEJ1aWxkIGEgVGVYIGFubm90YXRpb24gb2YgdGhlIHNvdXJjZVxuICAgIHZhciBhbm5vdGF0aW9uID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwiYW5ub3RhdGlvblwiLCBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRleHROb2RlKHRleEV4cHJlc3Npb24pXSk7XG5cbiAgICBhbm5vdGF0aW9uLnNldEF0dHJpYnV0ZShcImVuY29kaW5nXCIsIFwiYXBwbGljYXRpb24veC10ZXhcIik7XG5cbiAgICB2YXIgc2VtYW50aWNzID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwic2VtYW50aWNzXCIsIFt3cmFwcGVyLCBhbm5vdGF0aW9uXSk7XG5cbiAgICB2YXIgbWF0aCA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1hdGhcIiwgW3NlbWFudGljc10pO1xuXG4gICAgLy8gWW91IGNhbid0IHN0eWxlIDxtYXRoPiBub2Rlcywgc28gd2Ugd3JhcCB0aGUgbm9kZSBpbiBhIHNwYW4uXG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJrYXRleC1tYXRobWxcIl0sIFttYXRoXSk7XG59XG5cbi8qKiovIH0pLFxuLyogMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJhXCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2Z1bmN0aW9uczsgfSk7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYlwiXSA9IGRlZmluZUZ1bmN0aW9uO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImNcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBvcmRhcmd1bWVudDsgfSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cbi8qKiBDb250ZXh0IHByb3ZpZGVkIHRvIGZ1bmN0aW9uIGhhbmRsZXJzIGZvciBlcnJvciBtZXNzYWdlcy4gKi9cblxuXG4vLyBUT0RPOiBFbnVtZXJhdGUgYWxsIGFsbG93ZWQgb3V0cHV0IHR5cGVzLlxuXG5cbi8qKlxuICogRmluYWwgZnVuY3Rpb24gc3BlYyBmb3IgdXNlIGF0IHBhcnNlIHRpbWUuXG4gKiBUaGlzIGlzIGFsbW9zdCBpZGVudGljYWwgdG8gYEZ1bmN0aW9uUHJvcFNwZWNgLCBleGNlcHQgaXRcbiAqIDEuIGluY2x1ZGVzIHRoZSBmdW5jdGlvbiBoYW5kbGVyLCBhbmRcbiAqIDIuIHJlcXVpcmVzIGFsbCBhcmd1bWVudHMgZXhjZXB0IGFyZ1R5cGVzLlxuICogSXQgaXMgZ2VuZXJhdGVkIGJ5IGBkZWZpbmVGdW5jdGlvbigpYCBiZWxvdy5cbiAqL1xuXG5cbi8qKlxuICogQWxsIHJlZ2lzdGVyZWQgZnVuY3Rpb25zLlxuICogYGZ1bmN0aW9ucy5qc2AganVzdCBleHBvcnRzIHRoaXMgc2FtZSBkaWN0aW9uYXJ5IGFnYWluIGFuZCBtYWtlcyBpdCBwdWJsaWMuXG4gKiBgUGFyc2VyLmpzYCByZXF1aXJlcyB0aGlzIGRpY3Rpb25hcnkuXG4gKi9cbnZhciBfZnVuY3Rpb25zID0ge307XG5cbmZ1bmN0aW9uIGRlZmluZUZ1bmN0aW9uKF9yZWYpIHtcbiAgICB2YXIgdHlwZSA9IF9yZWYudHlwZSxcbiAgICAgICAgbmFtZXMgPSBfcmVmLm5hbWVzLFxuICAgICAgICBwcm9wcyA9IF9yZWYucHJvcHMsXG4gICAgICAgIGhhbmRsZXIgPSBfcmVmLmhhbmRsZXIsXG4gICAgICAgIGh0bWxCdWlsZGVyID0gX3JlZi5odG1sQnVpbGRlcixcbiAgICAgICAgbWF0aG1sQnVpbGRlciA9IF9yZWYubWF0aG1sQnVpbGRlcjtcblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlcyBvZiBmdW5jdGlvbnNcbiAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgbnVtQXJnczogcHJvcHMubnVtQXJncyxcbiAgICAgICAgYXJnVHlwZXM6IHByb3BzLmFyZ1R5cGVzLFxuICAgICAgICBncmVlZGluZXNzOiBwcm9wcy5ncmVlZGluZXNzID09PSB1bmRlZmluZWQgPyAxIDogcHJvcHMuZ3JlZWRpbmVzcyxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogISFwcm9wcy5hbGxvd2VkSW5UZXh0LFxuICAgICAgICBhbGxvd2VkSW5NYXRoOiBwcm9wcy5hbGxvd2VkSW5NYXRoID09PSB1bmRlZmluZWQgPyB0cnVlIDogcHJvcHMuYWxsb3dlZEluTWF0aCxcbiAgICAgICAgbnVtT3B0aW9uYWxBcmdzOiBwcm9wcy5udW1PcHRpb25hbEFyZ3MgfHwgMCxcbiAgICAgICAgaW5maXg6ICEhcHJvcHMuaW5maXgsXG4gICAgICAgIGhhbmRsZXI6IGhhbmRsZXJcbiAgICB9O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgX2Z1bmN0aW9uc1tuYW1lc1tpXV0gPSBkYXRhO1xuICAgIH1cbiAgICBpZiAodHlwZSkge1xuICAgICAgICBpZiAoaHRtbEJ1aWxkZXIpIHtcbiAgICAgICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRIVE1MX19bXCJkXCIgLyogZ3JvdXBUeXBlcyAqL11bdHlwZV0gPSBodG1sQnVpbGRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0aG1sQnVpbGRlcikge1xuICAgICAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZE1hdGhNTF9fW1wiZFwiIC8qIGdyb3VwVHlwZXMgKi9dW3R5cGVdID0gbWF0aG1sQnVpbGRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU2luY2UgdGhlIGNvcnJlc3BvbmRpbmcgYnVpbGRIVE1ML2J1aWxkTWF0aE1MIGZ1bmN0aW9uIGV4cGVjdHMgYVxuLy8gbGlzdCBvZiBlbGVtZW50cywgd2Ugbm9ybWFsaXplIGZvciBkaWZmZXJlbnQga2luZHMgb2YgYXJndW1lbnRzXG52YXIgb3JkYXJndW1lbnQgPSBmdW5jdGlvbiBvcmRhcmd1bWVudChhcmcpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwib3JkZ3JvdXBcIikge1xuICAgICAgICByZXR1cm4gYXJnLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbYXJnXTtcbiAgICB9XG59O1xuXG4vKioqLyB9KSxcbi8qIDQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIFwiYVwiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGJ1aWxkRXhwcmVzc2lvbjsgfSk7XG4vKiB1bnVzZWQgaGFybW9ueSBleHBvcnQgZ2V0VHlwZU9mRG9tVHJlZSAqL1xuLyogdW51c2VkIGhhcm1vbnkgZXhwb3J0IGlzTGVmdFRpZ2h0ICovXG4vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIFwiZVwiLCBmdW5jdGlvbigpIHsgcmV0dXJuIG1ha2VOdWxsRGVsaW1pdGVyOyB9KTtcbi8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJkXCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZ3JvdXBUeXBlczsgfSk7XG4vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIFwiYlwiLCBmdW5jdGlvbigpIHsgcmV0dXJuIGJ1aWxkR3JvdXA7IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGltbXV0YWJsZSkgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImNcIl0gPSBidWlsZEhUTUw7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19qc29uX3N0cmluZ2lmeV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3Nyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19qc29uX3N0cmluZ2lmeV9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19qc29uX3N0cmluZ2lmeV9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fUGFyc2VFcnJvcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3VuaXRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fc3RyZXRjaHlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fc3BhY2luZ0RhdGFfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTEyKTtcblxuXG4vKipcbiAqIFdBUk5JTkc6IE5ldyBtZXRob2RzIG9uIGdyb3VwVHlwZXMgc2hvdWxkIGJlIGFkZGVkIHRvIHNyYy9mdW5jdGlvbnMuXG4gKlxuICogVGhpcyBmaWxlIGRvZXMgdGhlIG1haW4gd29yayBvZiBidWlsZGluZyBhIGRvbVRyZWUgc3RydWN0dXJlIGZyb20gYSBwYXJzZVxuICogdHJlZS4gVGhlIGVudHJ5IHBvaW50IGlzIHRoZSBgYnVpbGRIVE1MYCBmdW5jdGlvbiwgd2hpY2ggdGFrZXMgYSBwYXJzZSB0cmVlLlxuICogVGhlbiwgdGhlIGJ1aWxkRXhwcmVzc2lvbiwgYnVpbGRHcm91cCwgYW5kIHZhcmlvdXMgZ3JvdXBUeXBlcyBmdW5jdGlvbnMgYXJlXG4gKiBjYWxsZWQsIHRvIHByb2R1Y2UgYSBmaW5hbCBIVE1MIHRyZWUuXG4gKi9cblxuXG5cblxuXG5cblxuXG5cblxuXG52YXIgbWFrZVNwYW4gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW47XG5cbi8vIEJpbmFyeSBhdG9tcyAoZmlyc3QgY2xhc3MgYG1iaW5gKSBjaGFuZ2UgaW50byBvcmRpbmFyeSBhdG9tcyAoYG1vcmRgKVxuLy8gZGVwZW5kaW5nIG9uIHRoZWlyIHN1cnJvdW5kaW5ncy4gU2VlIFRlWGJvb2sgcGcuIDQ0Mi00NDYsIFJ1bGVzIDUgYW5kIDYsXG4vLyBhbmQgdGhlIHRleHQgYmVmb3JlIFJ1bGUgMTkuXG52YXIgaXNCaW5MZWZ0Q2FuY2VsbGVyID0gZnVuY3Rpb24gaXNCaW5MZWZ0Q2FuY2VsbGVyKG5vZGUsIGlzUmVhbEdyb3VwKSB7XG4gICAgLy8gVE9ETzogVGhpcyBjb2RlIGFzc3VtZXMgdGhhdCBhIG5vZGUncyBtYXRoIGNsYXNzIGlzIHRoZSBmaXJzdCBlbGVtZW50XG4gICAgLy8gb2YgaXRzIGBjbGFzc2VzYCBhcnJheS4gQSBsYXRlciBjbGVhbnVwIHNob3VsZCBlbnN1cmUgdGhpcywgZm9yXG4gICAgLy8gaW5zdGFuY2UgYnkgY2hhbmdpbmcgdGhlIHNpZ25hdHVyZSBvZiBgbWFrZVNwYW5gLlxuICAgIGlmIChub2RlKSB7XG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uY29udGFpbnMoW1wibWJpblwiLCBcIm1vcGVuXCIsIFwibXJlbFwiLCBcIm1vcFwiLCBcIm1wdW5jdFwiXSwgZ2V0VHlwZU9mRG9tVHJlZShub2RlLCBcInJpZ2h0XCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gaXNSZWFsR3JvdXA7XG4gICAgfVxufTtcblxudmFyIGlzQmluUmlnaHRDYW5jZWxsZXIgPSBmdW5jdGlvbiBpc0JpblJpZ2h0Q2FuY2VsbGVyKG5vZGUsIGlzUmVhbEdyb3VwKSB7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhbXCJtcmVsXCIsIFwibWNsb3NlXCIsIFwibXB1bmN0XCJdLCBnZXRUeXBlT2ZEb21UcmVlKG5vZGUsIFwibGVmdFwiKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzUmVhbEdyb3VwO1xuICAgIH1cbn07XG5cbnZhciBzdHlsZU1hcCA9IHtcbiAgICBcImRpc3BsYXlcIjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVksXG4gICAgXCJ0ZXh0XCI6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5URVhULFxuICAgIFwic2NyaXB0XCI6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5TQ1JJUFQsXG4gICAgXCJzY3JpcHRzY3JpcHRcIjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVFNDUklQVFxufTtcblxuLyoqXG4gKiBUYWtlIGEgbGlzdCBvZiBub2RlcywgYnVpbGQgdGhlbSBpbiBvcmRlciwgYW5kIHJldHVybiBhIGxpc3Qgb2YgdGhlIGJ1aWx0XG4gKiBub2Rlcy4gZG9jdW1lbnRGcmFnbWVudHMgYXJlIGZsYXR0ZW5lZCBpbnRvIHRoZWlyIGNvbnRlbnRzLCBzbyB0aGVcbiAqIHJldHVybmVkIGxpc3QgY29udGFpbnMgbm8gZnJhZ21lbnRzLiBgaXNSZWFsR3JvdXBgIGlzIHRydWUgaWYgYGV4cHJlc3Npb25gXG4gKiBpcyBhIHJlYWwgZ3JvdXAgKG5vIGF0b21zIHdpbGwgYmUgYWRkZWQgb24gZWl0aGVyIHNpZGUpLCBhcyBvcHBvc2VkIHRvXG4gKiBhIHBhcnRpYWwgZ3JvdXAgKGUuZy4gb25lIGNyZWF0ZWQgYnkgXFxjb2xvcikuIGBzdXJyb3VuZGluZ2AgaXMgYW4gYXJyYXlcbiAqIGNvbnNpc3RpbmcgdHlwZSBvZiBub2RlcyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0LlxuICovXG52YXIgYnVpbGRFeHByZXNzaW9uID0gZnVuY3Rpb24gYnVpbGRFeHByZXNzaW9uKGV4cHJlc3Npb24sIG9wdGlvbnMsIGlzUmVhbEdyb3VwKSB7XG4gICAgdmFyIHN1cnJvdW5kaW5nID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBbbnVsbCwgbnVsbF07XG5cbiAgICAvLyBQYXJzZSBleHByZXNzaW9ucyBpbnRvIGBncm91cHNgLlxuICAgIHZhciByYXdHcm91cHMgPSBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cHJlc3Npb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGdyb3VwID0gZXhwcmVzc2lvbltpXTtcbiAgICAgICAgdmFyIG91dHB1dCA9IGJ1aWxkR3JvdXAoZ3JvdXAsIG9wdGlvbnMpO1xuICAgICAgICBpZiAob3V0cHV0IGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZG9jdW1lbnRGcmFnbWVudCkge1xuICAgICAgICAgICAgcmF3R3JvdXBzLnB1c2guYXBwbHkocmF3R3JvdXBzLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCgpKG91dHB1dC5jaGlsZHJlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmF3R3JvdXBzLnB1c2gob3V0cHV0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBdCB0aGlzIHBvaW50IGByYXdHcm91cHNgIGNvbnNpc3RzIGVudGlyZWx5IG9mIGBzeW1ib2xOb2RlYHMgYW5kIGBzcGFuYHMuXG5cbiAgICAvLyBJZ25vcmUgZXhwbGljaXQgc3BhY2VzIChlLmcuLCBcXDssIFxcLCkgd2hlbiBkZXRlcm1pbmluZyB3aGF0IGltcGxpY2l0XG4gICAgLy8gc3BhY2luZyBzaG91bGQgZ28gYmV0d2VlbiBhdG9tcyBvZiBkaWZmZXJlbnQgY2xhc3NlcywgYW5kIGFkZCBkdW1teVxuICAgIC8vIHNwYW5zIGZvciBkZXRlcm1pbmluZyBzcGFjaW5ncyBiZXR3ZWVuIHN1cnJvdW5kaW5nIGF0b21zXG4gICAgdmFyIG5vblNwYWNlcyA9IFtzdXJyb3VuZGluZ1swXSAmJiBtYWtlU3Bhbihbc3Vycm91bmRpbmdbMF1dLCBbXSwgb3B0aW9ucyldLmNvbmNhdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCgpKHJhd0dyb3Vwcy5maWx0ZXIoZnVuY3Rpb24gKGdyb3VwKSB7XG4gICAgICAgIHJldHVybiBncm91cCAmJiBncm91cC5jbGFzc2VzWzBdICE9PSBcIm1zcGFjZVwiO1xuICAgIH0pKSwgW3N1cnJvdW5kaW5nWzFdICYmIG1ha2VTcGFuKFtzdXJyb3VuZGluZ1sxXV0sIFtdLCBvcHRpb25zKV0pO1xuXG4gICAgLy8gQmVmb3JlIGRldGVybWluaW5nIHdoYXQgc3BhY2VzIHRvIGluc2VydCwgcGVyZm9ybSBiaW4gY2FuY2VsbGF0aW9uLlxuICAgIC8vIEJpbmFyeSBvcGVyYXRvcnMgY2hhbmdlIHRvIG9yZGluYXJ5IHN5bWJvbHMgaW4gc29tZSBjb250ZXh0cy5cbiAgICBmb3IgKHZhciBfaSA9IDE7IF9pIDwgbm9uU3BhY2VzLmxlbmd0aCAtIDE7IF9pKyspIHtcbiAgICAgICAgdmFyIGxlZnQgPSBnZXRPdXRlcm1vc3ROb2RlKG5vblNwYWNlc1tfaV0sIFwibGVmdFwiKTtcbiAgICAgICAgaWYgKGxlZnQuY2xhc3Nlc1swXSA9PT0gXCJtYmluXCIgJiYgaXNCaW5MZWZ0Q2FuY2VsbGVyKG5vblNwYWNlc1tfaSAtIDFdLCBpc1JlYWxHcm91cCkpIHtcbiAgICAgICAgICAgIGxlZnQuY2xhc3Nlc1swXSA9IFwibW9yZFwiO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJpZ2h0ID0gZ2V0T3V0ZXJtb3N0Tm9kZShub25TcGFjZXNbX2ldLCBcInJpZ2h0XCIpO1xuICAgICAgICBpZiAocmlnaHQuY2xhc3Nlc1swXSA9PT0gXCJtYmluXCIgJiYgaXNCaW5SaWdodENhbmNlbGxlcihub25TcGFjZXNbX2kgKyAxXSwgaXNSZWFsR3JvdXApKSB7XG4gICAgICAgICAgICByaWdodC5jbGFzc2VzWzBdID0gXCJtb3JkXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZ3JvdXBzID0gW107XG4gICAgdmFyIGogPSAwO1xuICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IHJhd0dyb3Vwcy5sZW5ndGg7IF9pMisrKSB7XG4gICAgICAgIGdyb3Vwcy5wdXNoKHJhd0dyb3Vwc1tfaTJdKTtcblxuICAgICAgICAvLyBGb3IgYW55IGdyb3VwIHRoYXQgaXMgbm90IGEgc3BhY2UsIGdldCB0aGUgbmV4dCBub24tc3BhY2UuICBUaGVuXG4gICAgICAgIC8vIGxvb2t1cCB3aGF0IGltcGxpY2l0IHNwYWNlIHNob3VsZCBiZSBwbGFjZWQgYmV0d2VlbiB0aG9zZSBhdG9tcyBhbmRcbiAgICAgICAgLy8gYWRkIGl0IHRvIGdyb3Vwcy5cbiAgICAgICAgaWYgKHJhd0dyb3Vwc1tfaTJdLmNsYXNzZXNbMF0gIT09IFwibXNwYWNlXCIgJiYgaiA8IG5vblNwYWNlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAvLyBpZiBjdXJyZW50IG5vbi1zcGFjZSBub2RlIGlzIGxlZnQgZHVtbXkgc3BhbiwgYWRkIGEgZ2x1ZSBiZWZvcmVcbiAgICAgICAgICAgIC8vIGZpcnN0IHJlYWwgbm9uLXNwYWNlIG5vZGVcbiAgICAgICAgICAgIGlmIChqID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLnBvcCgpO1xuICAgICAgICAgICAgICAgIF9pMi0tO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgbm9uLXNwYWNlIG5vZGUuICBJZiBpdCdzIGEgZG9jdW1lbnRcbiAgICAgICAgICAgIC8vIGZyYWdtZW50LCBnZXQgdGhlIHR5cGUgb2YgdGhlIHJpZ2h0bW9zdCBub2RlIGluIHRoZSBmcmFnbWVudC5cbiAgICAgICAgICAgIHZhciBfbGVmdCA9IGdldFR5cGVPZkRvbVRyZWUobm9uU3BhY2VzW2pdLCBcInJpZ2h0XCIpO1xuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIHR5cGUgb2YgdGhlIG5leHQgbm9uLXNwYWNlIG5vZGUuICBJZiBpdCdzIGEgZG9jdW1lbnRcbiAgICAgICAgICAgIC8vIGZyYWdtZW50LCBnZXQgdGhlIHR5cGUgb2YgdGhlIGxlZnRtb3N0IG5vZGUgaW4gdGhlIGZyYWdtZW50LlxuICAgICAgICAgICAgdmFyIF9yaWdodCA9IGdldFR5cGVPZkRvbVRyZWUobm9uU3BhY2VzW2ogKyAxXSwgXCJsZWZ0XCIpO1xuXG4gICAgICAgICAgICAvLyBXZSB1c2UgYnVpbGRFeHByZXNzaW9uIGluc2lkZSBvZiBzaXppbmdHcm91cCwgYnV0IGl0IHJldHVybnMgYVxuICAgICAgICAgICAgLy8gZG9jdW1lbnQgZnJhZ21lbnQgb2YgZWxlbWVudHMuICBzaXppbmdHcm91cCBzZXRzIGBpc1JlYWxHcm91cGBcbiAgICAgICAgICAgIC8vIHRvIGZhbHNlIHRvIGF2b2lkIHByb2Nlc3Npbmcgc3BhbnMgbXVsdGlwbGUgdGltZXMuXG4gICAgICAgICAgICBpZiAoX2xlZnQgJiYgX3JpZ2h0ICYmIGlzUmVhbEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNwYWNlID0gaXNMZWZ0VGlnaHQobm9uU3BhY2VzW2ogKyAxXSkgPyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX3NwYWNpbmdEYXRhX19bXCJiXCIgLyogdGlnaHRTcGFjaW5ncyAqL11bX2xlZnRdW19yaWdodF0gOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX3NwYWNpbmdEYXRhX19bXCJhXCIgLyogc3BhY2luZ3MgKi9dW19sZWZ0XVtfcmlnaHRdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBnbHVlT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb24ubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwcmVzc2lvblswXS50eXBlID09PSBcInNpemluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2x1ZU9wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1NpemUoZXhwcmVzc2lvblswXS52YWx1ZS5zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhwcmVzc2lvblswXS50eXBlID09PSBcInN0eWxpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsdWVPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZU1hcFtleHByZXNzaW9uWzBdLnZhbHVlLnN0eWxlXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBncm91cHMucHVzaChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZUdsdWUoc3BhY2UsIGdsdWVPcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBcXFxcbm90IGNvbW1hbmRzIHdpdGhpbiB0aGUgZ3JvdXAuXG4gICAgZm9yICh2YXIgX2kzID0gMDsgX2kzIDwgZ3JvdXBzLmxlbmd0aDsgX2kzKyspIHtcbiAgICAgICAgaWYgKGdyb3Vwc1tfaTNdLnZhbHVlID09PSBcIlxcdTAzMzhcIikge1xuICAgICAgICAgICAgZ3JvdXBzW19pM10uc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG4gICAgICAgICAgICAvLyBUT0RPKGtldmluYikgZml4IHRoaXMgZm9yIFNhZmFyaSBieSBzd2l0Y2hpbmcgdG8gYSBub24tY29tYmluaW5nXG4gICAgICAgICAgICAvLyBjaGFyYWN0ZXIgZm9yIFxcbm90LlxuICAgICAgICAgICAgLy8gVGhpcyB2YWx1ZSB3YXMgZGV0ZXJtaW5lZCBlbXBpcmljYWxseS5cbiAgICAgICAgICAgIC8vIFRPRE8oa2V2aW5iKSBmaWd1cmUgb3V0IHRoZSByZWFsIG1hdGggZm9yIHRoaXMgdmFsdWUuXG4gICAgICAgICAgICBncm91cHNbX2kzXS5zdHlsZS5wYWRkaW5nTGVmdCA9IFwiMC44ZW1cIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncm91cHM7XG59O1xuXG4vLyBSZXR1cm4gdGhlIG91dGVybW9zdCBub2RlIG9mIGEgZG9tVHJlZS5cbnZhciBnZXRPdXRlcm1vc3ROb2RlID0gZnVuY3Rpb24gZ2V0T3V0ZXJtb3N0Tm9kZShub2RlKSB7XG4gICAgdmFyIHNpZGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFwicmlnaHRcIjtcblxuICAgIGlmIChub2RlIGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZG9jdW1lbnRGcmFnbWVudCB8fCBub2RlIGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uYW5jaG9yKSB7XG4gICAgICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKHNpZGUgPT09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRPdXRlcm1vc3ROb2RlKG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNpZGUgPT09IFwibGVmdFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldE91dGVybW9zdE5vZGUobm9kZS5jaGlsZHJlblswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG4vLyBSZXR1cm4gbWF0aCBhdG9tIGNsYXNzIChtY2xhc3MpIG9mIGEgZG9tVHJlZS5cbnZhciBnZXRUeXBlT2ZEb21UcmVlID0gZnVuY3Rpb24gZ2V0VHlwZU9mRG9tVHJlZShub2RlKSB7XG4gICAgdmFyIHNpZGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFwicmlnaHRcIjtcblxuICAgIGlmICghbm9kZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBub2RlID0gZ2V0T3V0ZXJtb3N0Tm9kZShub2RlLCBzaWRlKTtcbiAgICAvLyBUaGlzIG1ha2VzIGEgbG90IG9mIGFzc3VtcHRpb25zIGFzIHRvIHdoZXJlIHRoZSB0eXBlIG9mIGF0b21cbiAgICAvLyBhcHBlYXJzLiAgV2Ugc2hvdWxkIGRvIGEgYmV0dGVyIGpvYiBvZiBlbmZvcmNpbmcgdGhpcy5cbiAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKFtcIm1vcmRcIiwgXCJtb3BcIiwgXCJtYmluXCIsIFwibXJlbFwiLCBcIm1vcGVuXCIsIFwibWNsb3NlXCIsIFwibXB1bmN0XCIsIFwibWlubmVyXCJdLCBub2RlLmNsYXNzZXNbMF0pKSB7XG4gICAgICAgIHJldHVybiBub2RlLmNsYXNzZXNbMF07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufTtcblxuLy8gSWYgYG5vZGVgIGlzIGFuIGF0b20gcmV0dXJuIHdoZXRoZXIgaXQncyBiZWVuIGFzc2lnbmVkIHRoZSBtdGlnaHQgY2xhc3MuXG4vLyBJZiBgbm9kZWAgaXMgYSBkb2N1bWVudCBmcmFnbWVudCwgcmV0dXJuIHRoZSB2YWx1ZSBvZiBpc0xlZnRUaWdodCgpIGZvciB0aGVcbi8vIGxlZnRtb3N0IG5vZGUgaW4gdGhlIGZyYWdtZW50LlxuLy8gJ210aWdodCcgaW5kaWNhdGVzIHRoYXQgdGhlIG5vZGUgaXMgc2NyaXB0IG9yIHNjcmlwdHNjcmlwdCBzdHlsZS5cbnZhciBpc0xlZnRUaWdodCA9IGZ1bmN0aW9uIGlzTGVmdFRpZ2h0KG5vZGUpIHtcbiAgICBub2RlID0gZ2V0T3V0ZXJtb3N0Tm9kZShub2RlLCBcImxlZnRcIik7XG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhub2RlLmNsYXNzZXMsIFwibXRpZ2h0XCIpO1xufTtcblxuLyoqXG4gKiBTb21ldGltZXMsIGdyb3VwcyBwZXJmb3JtIHNwZWNpYWwgcnVsZXMgd2hlbiB0aGV5IGhhdmUgc3VwZXJzY3JpcHRzIG9yXG4gKiBzdWJzY3JpcHRzIGF0dGFjaGVkIHRvIHRoZW0uIFRoaXMgZnVuY3Rpb24gbGV0cyB0aGUgYHN1cHN1YmAgZ3JvdXAga25vdyB0aGF0XG4gKiBpdHMgaW5uZXIgZWxlbWVudCBzaG91bGQgaGFuZGxlIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgaW5zdGVhZCBvZlxuICogaGFuZGxpbmcgdGhlbSBpdHNlbGYuXG4gKi9cbnZhciBzaG91bGRIYW5kbGVTdXBTdWIgPSBmdW5jdGlvbiBzaG91bGRIYW5kbGVTdXBTdWIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICBpZiAoIWdyb3VwLnZhbHVlLmJhc2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBiYXNlID0gZ3JvdXAudmFsdWUuYmFzZTtcbiAgICAgICAgaWYgKGJhc2UudHlwZSA9PT0gXCJvcFwiKSB7XG4gICAgICAgICAgICAvLyBPcGVyYXRvcnMgaGFuZGxlIHN1cHN1YnMgZGlmZmVyZW50bHkgd2hlbiB0aGV5IGhhdmUgbGltaXRzXG4gICAgICAgICAgICAvLyAoZS5nLiBgXFxkaXNwbGF5c3R5bGVcXHN1bV8yXjNgKVxuICAgICAgICAgICAgcmV0dXJuIGJhc2UudmFsdWUubGltaXRzICYmIChvcHRpb25zLnN0eWxlLnNpemUgPT09IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5ESVNQTEFZLnNpemUgfHwgYmFzZS52YWx1ZS5hbHdheXNIYW5kbGVTdXBTdWIpO1xuICAgICAgICB9IGVsc2UgaWYgKGJhc2UudHlwZSA9PT0gXCJhY2NlbnRcIikge1xuICAgICAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pc0NoYXJhY3RlckJveChiYXNlLnZhbHVlLmJhc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKGJhc2UudHlwZSA9PT0gXCJob3JpekJyYWNlXCIpIHtcbiAgICAgICAgICAgIHZhciBpc1N1cCA9IGdyb3VwLnZhbHVlLnN1YiA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBpc1N1cCA9PT0gYmFzZS52YWx1ZS5pc092ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbnZhciBtYWtlTnVsbERlbGltaXRlciA9IGZ1bmN0aW9uIG1ha2VOdWxsRGVsaW1pdGVyKG9wdGlvbnMsIGNsYXNzZXMpIHtcbiAgICB2YXIgbW9yZUNsYXNzZXMgPSBbXCJudWxsZGVsaW1pdGVyXCJdLmNvbmNhdChvcHRpb25zLmJhc2VTaXppbmdDbGFzc2VzKCkpO1xuICAgIHJldHVybiBtYWtlU3BhbihjbGFzc2VzLmNvbmNhdChtb3JlQ2xhc3NlcykpO1xufTtcblxuLyoqXG4gKiBUaGlzIGlzIGEgbWFwIG9mIGdyb3VwIHR5cGVzIHRvIHRoZSBmdW5jdGlvbiB1c2VkIHRvIGhhbmRsZSB0aGF0IHR5cGUuXG4gKiBTaW1wbGVyIHR5cGVzIGNvbWUgYXQgdGhlIGJlZ2lubmluZywgd2hpbGUgY29tcGxpY2F0ZWQgdHlwZXMgY29tZSBhZnRlcndhcmRzLlxuICovXG52YXIgZ3JvdXBUeXBlcyA9IHt9O1xuXG5ncm91cFR5cGVzLm1hdGhvcmQgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VPcmQoZ3JvdXAsIG9wdGlvbnMsIFwibWF0aG9yZFwiKTtcbn07XG5cbmdyb3VwVHlwZXMudGV4dG9yZCA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZU9yZChncm91cCwgb3B0aW9ucywgXCJ0ZXh0b3JkXCIpO1xufTtcblxuZ3JvdXBUeXBlcy5iaW4gPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhzeW0oZ3JvdXAudmFsdWUsIGdyb3VwLm1vZGUsIG9wdGlvbnMsIFtcIm1iaW5cIl0pO1xufTtcblxuZ3JvdXBUeXBlcy5yZWwgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhzeW0oZ3JvdXAudmFsdWUsIGdyb3VwLm1vZGUsIG9wdGlvbnMsIFtcIm1yZWxcIl0pO1xufTtcblxuZ3JvdXBUeXBlcy5vcGVuID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKGdyb3VwLnZhbHVlLCBncm91cC5tb2RlLCBvcHRpb25zLCBbXCJtb3BlblwiXSk7XG59O1xuXG5ncm91cFR5cGVzLmNsb3NlID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKGdyb3VwLnZhbHVlLCBncm91cC5tb2RlLCBvcHRpb25zLCBbXCJtY2xvc2VcIl0pO1xufTtcblxuZ3JvdXBUeXBlcy5pbm5lciA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aHN5bShncm91cC52YWx1ZSwgZ3JvdXAubW9kZSwgb3B0aW9ucywgW1wibWlubmVyXCJdKTtcbn07XG5cbmdyb3VwVHlwZXMucHVuY3QgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhzeW0oZ3JvdXAudmFsdWUsIGdyb3VwLm1vZGUsIG9wdGlvbnMsIFtcIm1wdW5jdFwiXSk7XG59O1xuXG5ncm91cFR5cGVzLm9yZGdyb3VwID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG1ha2VTcGFuKFtcIm1vcmRcIl0sIGJ1aWxkRXhwcmVzc2lvbihncm91cC52YWx1ZSwgb3B0aW9ucywgdHJ1ZSksIG9wdGlvbnMpO1xufTtcblxuZ3JvdXBUeXBlcy5zdXBzdWIgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBTdXBlcnNjcmlwdCBhbmQgc3Vic2NyaXB0cyBhcmUgaGFuZGxlZCBpbiB0aGUgVGVYYm9vayBvbiBwYWdlXG4gICAgLy8gNDQ1LTQ0NiwgcnVsZXMgMTgoYS1mKS5cblxuICAgIC8vIEhlcmUgaXMgd2hlcmUgd2UgZGVmZXIgdG8gdGhlIGlubmVyIGdyb3VwIGlmIGl0IHNob3VsZCBoYW5kbGVcbiAgICAvLyBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgaXRzZWxmLlxuICAgIGlmIChzaG91bGRIYW5kbGVTdXBTdWIoZ3JvdXAsIG9wdGlvbnMpKSB7XG4gICAgICAgIHJldHVybiBncm91cFR5cGVzW2dyb3VwLnZhbHVlLmJhc2UudHlwZV0oZ3JvdXAsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHZhciBiYXNlID0gYnVpbGRHcm91cChncm91cC52YWx1ZS5iYXNlLCBvcHRpb25zKTtcbiAgICB2YXIgc3VwbSA9IHZvaWQgMDtcbiAgICB2YXIgc3VibSA9IHZvaWQgMDtcblxuICAgIHZhciBtZXRyaWNzID0gb3B0aW9ucy5mb250TWV0cmljcygpO1xuICAgIHZhciBuZXdPcHRpb25zID0gdm9pZCAwO1xuXG4gICAgLy8gUnVsZSAxOGFcbiAgICB2YXIgc3VwU2hpZnQgPSAwO1xuICAgIHZhciBzdWJTaGlmdCA9IDA7XG5cbiAgICBpZiAoZ3JvdXAudmFsdWUuc3VwKSB7XG4gICAgICAgIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG9wdGlvbnMuc3R5bGUuc3VwKCkpO1xuICAgICAgICBzdXBtID0gYnVpbGRHcm91cChncm91cC52YWx1ZS5zdXAsIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pc0NoYXJhY3RlckJveChncm91cC52YWx1ZS5iYXNlKSkge1xuICAgICAgICAgICAgc3VwU2hpZnQgPSBiYXNlLmhlaWdodCAtIG5ld09wdGlvbnMuZm9udE1ldHJpY3MoKS5zdXBEcm9wICogbmV3T3B0aW9ucy5zaXplTXVsdGlwbGllciAvIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZ3JvdXAudmFsdWUuc3ViKSB7XG4gICAgICAgIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG9wdGlvbnMuc3R5bGUuc3ViKCkpO1xuICAgICAgICBzdWJtID0gYnVpbGRHcm91cChncm91cC52YWx1ZS5zdWIsIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pc0NoYXJhY3RlckJveChncm91cC52YWx1ZS5iYXNlKSkge1xuICAgICAgICAgICAgc3ViU2hpZnQgPSBiYXNlLmRlcHRoICsgbmV3T3B0aW9ucy5mb250TWV0cmljcygpLnN1YkRyb3AgKiBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJ1bGUgMThjXG4gICAgdmFyIG1pblN1cFNoaWZ0ID0gdm9pZCAwO1xuICAgIGlmIChvcHRpb25zLnN0eWxlID09PSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uRElTUExBWSkge1xuICAgICAgICBtaW5TdXBTaGlmdCA9IG1ldHJpY3Muc3VwMTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc3R5bGUuY3JhbXBlZCkge1xuICAgICAgICBtaW5TdXBTaGlmdCA9IG1ldHJpY3Muc3VwMztcbiAgICB9IGVsc2Uge1xuICAgICAgICBtaW5TdXBTaGlmdCA9IG1ldHJpY3Muc3VwMjtcbiAgICB9XG5cbiAgICAvLyBzY3JpcHRzcGFjZSBpcyBhIGZvbnQtc2l6ZS1pbmRlcGVuZGVudCBzaXplLCBzbyBzY2FsZSBpdFxuICAgIC8vIGFwcHJvcHJpYXRlbHlcbiAgICB2YXIgbXVsdGlwbGllciA9IG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgdmFyIHNjcmlwdHNwYWNlID0gMC41IC8gbWV0cmljcy5wdFBlckVtIC8gbXVsdGlwbGllciArIFwiZW1cIjtcblxuICAgIHZhciBzdXBzdWIgPSB2b2lkIDA7XG4gICAgaWYgKCFncm91cC52YWx1ZS5zdXApIHtcbiAgICAgICAgLy8gUnVsZSAxOGJcbiAgICAgICAgc3ViU2hpZnQgPSBNYXRoLm1heChzdWJTaGlmdCwgbWV0cmljcy5zdWIxLCBzdWJtLmhlaWdodCAtIDAuOCAqIG1ldHJpY3MueEhlaWdodCk7XG5cbiAgICAgICAgdmFyIHZsaXN0RWxlbSA9IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBzdWJtLCBtYXJnaW5SaWdodDogc2NyaXB0c3BhY2UgfV07XG4gICAgICAgIC8vIFN1YnNjcmlwdHMgc2hvdWxkbid0IGJlIHNoaWZ0ZWQgYnkgdGhlIGJhc2UncyBpdGFsaWMgY29ycmVjdGlvbi5cbiAgICAgICAgLy8gQWNjb3VudCBmb3IgdGhhdCBieSBzaGlmdGluZyB0aGUgc3Vic2NyaXB0IGJhY2sgdGhlIGFwcHJvcHJpYXRlXG4gICAgICAgIC8vIGFtb3VudC4gTm90ZSB3ZSBvbmx5IGRvIHRoaXMgd2hlbiB0aGUgYmFzZSBpcyBhIHNpbmdsZSBzeW1ib2wuXG4gICAgICAgIGlmIChiYXNlIGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ltYm9sTm9kZSkge1xuICAgICAgICAgICAgdmxpc3RFbGVtWzBdLm1hcmdpbkxlZnQgPSAtYmFzZS5pdGFsaWMgKyBcImVtXCI7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBzdWIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJzaGlmdFwiLFxuICAgICAgICAgICAgcG9zaXRpb25EYXRhOiBzdWJTaGlmdCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB2bGlzdEVsZW1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIGlmICghZ3JvdXAudmFsdWUuc3ViKSB7XG4gICAgICAgIC8vIFJ1bGUgMThjLCBkXG4gICAgICAgIHN1cFNoaWZ0ID0gTWF0aC5tYXgoc3VwU2hpZnQsIG1pblN1cFNoaWZ0LCBzdXBtLmRlcHRoICsgMC4yNSAqIG1ldHJpY3MueEhlaWdodCk7XG5cbiAgICAgICAgc3Vwc3ViID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwic2hpZnRcIixcbiAgICAgICAgICAgIHBvc2l0aW9uRGF0YTogLXN1cFNoaWZ0LFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBzdXBtLCBtYXJnaW5SaWdodDogc2NyaXB0c3BhY2UgfV1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc3VwU2hpZnQgPSBNYXRoLm1heChzdXBTaGlmdCwgbWluU3VwU2hpZnQsIHN1cG0uZGVwdGggKyAwLjI1ICogbWV0cmljcy54SGVpZ2h0KTtcbiAgICAgICAgc3ViU2hpZnQgPSBNYXRoLm1heChzdWJTaGlmdCwgbWV0cmljcy5zdWIyKTtcblxuICAgICAgICB2YXIgcnVsZVdpZHRoID0gbWV0cmljcy5kZWZhdWx0UnVsZVRoaWNrbmVzcztcblxuICAgICAgICAvLyBSdWxlIDE4ZVxuICAgICAgICBpZiAoc3VwU2hpZnQgLSBzdXBtLmRlcHRoIC0gKHN1Ym0uaGVpZ2h0IC0gc3ViU2hpZnQpIDwgNCAqIHJ1bGVXaWR0aCkge1xuICAgICAgICAgICAgc3ViU2hpZnQgPSA0ICogcnVsZVdpZHRoIC0gKHN1cFNoaWZ0IC0gc3VwbS5kZXB0aCkgKyBzdWJtLmhlaWdodDtcbiAgICAgICAgICAgIHZhciBwc2kgPSAwLjggKiBtZXRyaWNzLnhIZWlnaHQgLSAoc3VwU2hpZnQgLSBzdXBtLmRlcHRoKTtcbiAgICAgICAgICAgIGlmIChwc2kgPiAwKSB7XG4gICAgICAgICAgICAgICAgc3VwU2hpZnQgKz0gcHNpO1xuICAgICAgICAgICAgICAgIHN1YlNoaWZ0IC09IHBzaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBfdmxpc3RFbGVtID0gW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IHN1Ym0sIHNoaWZ0OiBzdWJTaGlmdCwgbWFyZ2luUmlnaHQ6IHNjcmlwdHNwYWNlIH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IHN1cG0sIHNoaWZ0OiAtc3VwU2hpZnQsIG1hcmdpblJpZ2h0OiBzY3JpcHRzcGFjZSB9XTtcbiAgICAgICAgLy8gU2VlIGNvbW1lbnQgYWJvdmUgYWJvdXQgc3Vic2NyaXB0cyBub3QgYmVpbmcgc2hpZnRlZFxuICAgICAgICBpZiAoYmFzZSBpbnN0YW5jZW9mIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN5bWJvbE5vZGUpIHtcbiAgICAgICAgICAgIF92bGlzdEVsZW1bMF0ubWFyZ2luTGVmdCA9IC1iYXNlLml0YWxpYyArIFwiZW1cIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cHN1YiA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IF92bGlzdEVsZW1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gV2UgZW5zdXJlIHRvIHdyYXAgdGhlIHN1cHN1YiB2bGlzdCBpbiBhIHNwYW4ubXN1cHN1YiB0byByZXNldCB0ZXh0LWFsaWduXG4gICAgdmFyIG1jbGFzcyA9IGdldFR5cGVPZkRvbVRyZWUoYmFzZSkgfHwgXCJtb3JkXCI7XG4gICAgcmV0dXJuIG1ha2VTcGFuKFttY2xhc3NdLCBbYmFzZSwgbWFrZVNwYW4oW1wibXN1cHN1YlwiXSwgW3N1cHN1Yl0pXSwgb3B0aW9ucyk7XG59O1xuXG5ncm91cFR5cGVzLnNwYWNpbmcgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICBpZiAoZ3JvdXAudmFsdWUgPT09IFwiXFxcXCBcIiB8fCBncm91cC52YWx1ZSA9PT0gXCJcXFxcc3BhY2VcIiB8fCBncm91cC52YWx1ZSA9PT0gXCIgXCIgfHwgZ3JvdXAudmFsdWUgPT09IFwiflwiKSB7XG4gICAgICAgIC8vIFNwYWNlcyBhcmUgZ2VuZXJhdGVkIGJ5IGFkZGluZyBhbiBhY3R1YWwgc3BhY2UuIEVhY2ggb2YgdGhlc2VcbiAgICAgICAgLy8gdGhpbmdzIGhhcyBhbiBlbnRyeSBpbiB0aGUgc3ltYm9scyB0YWJsZSwgc28gdGhlc2Ugd2lsbCBiZSB0dXJuZWRcbiAgICAgICAgLy8gaW50byBhcHByb3ByaWF0ZSBvdXRwdXRzLlxuICAgICAgICBpZiAoZ3JvdXAubW9kZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZU9yZChncm91cCwgb3B0aW9ucywgXCJ0ZXh0b3JkXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG1ha2VTcGFuKFtcIm1zcGFjZVwiXSwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKGdyb3VwLnZhbHVlLCBncm91cC5tb2RlLCBvcHRpb25zKV0sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXIga2luZHMgb2Ygc3BhY2VzIGFyZSBvZiBhcmJpdHJhcnkgd2lkdGguIFdlIHVzZSBDU1MgdG9cbiAgICAgICAgLy8gZ2VuZXJhdGUgdGhlc2UuXG4gICAgICAgIHJldHVybiBtYWtlU3BhbihbXCJtc3BhY2VcIiwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnNwYWNpbmdGdW5jdGlvbnNbZ3JvdXAudmFsdWVdLmNsYXNzTmFtZV0sIFtdLCBvcHRpb25zKTtcbiAgICB9XG59O1xuXG5ncm91cFR5cGVzLmhvcml6QnJhY2UgPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgc3R5bGUgPSBvcHRpb25zLnN0eWxlO1xuXG4gICAgdmFyIGhhc1N1cFN1YiA9IGdyb3VwLnR5cGUgPT09IFwic3Vwc3ViXCI7XG4gICAgdmFyIHN1cFN1Ykdyb3VwID0gdm9pZCAwO1xuICAgIHZhciBuZXdPcHRpb25zID0gdm9pZCAwO1xuICAgIGlmIChoYXNTdXBTdWIpIHtcbiAgICAgICAgLy8gUmVmOiBMYVRlWCBzb3VyY2UyZTogfX19fVxcbGltaXRzfVxuICAgICAgICAvLyBpLmUuIExhVGVYIHRyZWF0cyB0aGUgYnJhY2Ugc2ltaWxhciB0byBhbiBvcCBhbmQgcGFzc2VzIGl0XG4gICAgICAgIC8vIHdpdGggXFxsaW1pdHMsIHNvIHdlIG5lZWQgdG8gYXNzaWduIHN1cHN1YiBzdHlsZS5cbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLnN1cCkge1xuICAgICAgICAgICAgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoc3R5bGUuc3VwKCkpO1xuICAgICAgICAgICAgc3VwU3ViR3JvdXAgPSBidWlsZEdyb3VwKGdyb3VwLnZhbHVlLnN1cCwgbmV3T3B0aW9ucywgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdWIoKSk7XG4gICAgICAgICAgICBzdXBTdWJHcm91cCA9IGJ1aWxkR3JvdXAoZ3JvdXAudmFsdWUuc3ViLCBuZXdPcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICBncm91cCA9IGdyb3VwLnZhbHVlLmJhc2U7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgdGhlIGJhc2UgZ3JvdXBcbiAgICB2YXIgYm9keSA9IGJ1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYmFzZSwgb3B0aW9ucy5oYXZpbmdCYXNlU3R5bGUoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkpKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgc3RyZXRjaHkgZWxlbWVudFxuICAgIHZhciBicmFjZUJvZHkgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3N0cmV0Y2h5X19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ZnU3Bhbihncm91cCwgb3B0aW9ucyk7XG5cbiAgICAvLyBHZW5lcmF0ZSB0aGUgdmxpc3QsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGtlcm5zICAgICAgICAgICAgICAg4pSP4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSTXG4gICAgLy8gVGhpcyBmaXJzdCB2bGlzdCBjb250YWlucyB0aGUgc3ViamVjdCBtYXR0ZXIgYW5kIHRoZSBicmFjZTogICBlcXVhdGlvblxuICAgIHZhciB2bGlzdCA9IHZvaWQgMDtcbiAgICBpZiAoZ3JvdXAudmFsdWUuaXNPdmVyKSB7XG4gICAgICAgIHZsaXN0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBib2R5IH0sIHsgdHlwZTogXCJrZXJuXCIsIHNpemU6IDAuMSB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBicmFjZUJvZHkgfV1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIHZsaXN0LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNsYXNzZXMucHVzaChcInN2Zy1hbGlnblwiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2bGlzdCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgcG9zaXRpb25EYXRhOiBib2R5LmRlcHRoICsgMC4xICsgYnJhY2VCb2R5LmhlaWdodCxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYnJhY2VCb2R5IH0sIHsgdHlwZTogXCJrZXJuXCIsIHNpemU6IDAuMSB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBib2R5IH1dXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICB2bGlzdC5jaGlsZHJlblswXS5jaGlsZHJlblswXS5jaGlsZHJlblswXS5jbGFzc2VzLnB1c2goXCJzdmctYWxpZ25cIik7XG4gICAgfVxuXG4gICAgaWYgKGhhc1N1cFN1Yikge1xuICAgICAgICAvLyBJbiBvcmRlciB0byB3cml0ZSB0aGUgc3Vwc3ViLCB3cmFwIHRoZSBmaXJzdCB2bGlzdCBpbiBhbm90aGVyIHZsaXN0OlxuICAgICAgICAvLyBUaGV5IGNhbid0IGFsbCBnbyBpbiB0aGUgc2FtZSB2bGlzdCwgYmVjYXVzZSB0aGUgbm90ZSBtaWdodCBiZSB3aWRlclxuICAgICAgICAvLyB0aGFuIHRoZSBlcXVhdGlvbi4gV2Ugd2FudCB0aGUgZXF1YXRpb24gdG8gY29udHJvbCB0aGUgYnJhY2Ugd2lkdGguXG5cbiAgICAgICAgLy8gICAgICBub3RlICAgICAgICAgIGxvbmcgbm90ZSAgICAgICAgICAgbG9uZyBub3RlXG4gICAgICAgIC8vICAg4pSP4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSTICAgb3IgICAg4pSP4pSB4pSB4pSB4pSTICAgICBub3QgICAg4pSP4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSB4pSTXG4gICAgICAgIC8vICAgIGVxdWF0aW9uICAgICAgICAgICBlcW4gICAgICAgICAgICAgICAgIGVxblxuXG4gICAgICAgIHZhciB2U3BhbiA9IG1ha2VTcGFuKFtcIm1vcmRcIiwgZ3JvdXAudmFsdWUuaXNPdmVyID8gXCJtb3ZlclwiIDogXCJtdW5kZXJcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuXG4gICAgICAgIGlmIChncm91cC52YWx1ZS5pc092ZXIpIHtcbiAgICAgICAgICAgIHZsaXN0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImZpcnN0QmFzZWxpbmVcIixcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IHZTcGFuIH0sIHsgdHlwZTogXCJrZXJuXCIsIHNpemU6IDAuMiB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBzdXBTdWJHcm91cCB9XVxuICAgICAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2bGlzdCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbkRhdGE6IHZTcGFuLmRlcHRoICsgMC4yICsgc3VwU3ViR3JvdXAuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogc3VwU3ViR3JvdXAgfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogMC4yIH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IHZTcGFuIH1dXG4gICAgICAgICAgICB9LCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYWtlU3BhbihbXCJtb3JkXCIsIGdyb3VwLnZhbHVlLmlzT3ZlciA/IFwibW92ZXJcIiA6IFwibXVuZGVyXCJdLCBbdmxpc3RdLCBvcHRpb25zKTtcbn07XG5cbmdyb3VwVHlwZXMueEFycm93ID0gZnVuY3Rpb24gKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIHN0eWxlID0gb3B0aW9ucy5zdHlsZTtcblxuICAgIC8vIEJ1aWxkIHRoZSBhcmd1bWVudCBncm91cHMgaW4gdGhlIGFwcHJvcHJpYXRlIHN0eWxlLlxuICAgIC8vIFJlZjogYW1zbWF0aC5kdHg6ICAgXFxoYm94eyRcXHNjcmlwdHN0eWxlXFxta2VybiMzbXV7IzZ9XFxta2VybiM0bXUkfSVcblxuICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdXAoKSk7XG4gICAgdmFyIHVwcGVyR3JvdXAgPSBidWlsZEdyb3VwKGdyb3VwLnZhbHVlLmJvZHksIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICAgIHVwcGVyR3JvdXAuY2xhc3Nlcy5wdXNoKFwieC1hcnJvdy1wYWRcIik7XG5cbiAgICB2YXIgbG93ZXJHcm91cCA9IHZvaWQgMDtcbiAgICBpZiAoZ3JvdXAudmFsdWUuYmVsb3cpIHtcbiAgICAgICAgLy8gQnVpbGQgdGhlIGxvd2VyIGdyb3VwXG4gICAgICAgIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKHN0eWxlLnN1YigpKTtcbiAgICAgICAgbG93ZXJHcm91cCA9IGJ1aWxkR3JvdXAoZ3JvdXAudmFsdWUuYmVsb3csIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICAgICAgICBsb3dlckdyb3VwLmNsYXNzZXMucHVzaChcIngtYXJyb3ctcGFkXCIpO1xuICAgIH1cblxuICAgIHZhciBhcnJvd0JvZHkgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3N0cmV0Y2h5X19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ZnU3Bhbihncm91cCwgb3B0aW9ucyk7XG5cbiAgICAvLyBSZSBzaGlmdDogTm90ZSB0aGF0IHN0cmV0Y2h5LnN2Z1NwYW4gcmV0dXJuZWQgYXJyb3dCb2R5LmRlcHRoID0gMC5cbiAgICAvLyBUaGUgcG9pbnQgd2Ugd2FudCBvbiB0aGUgbWF0aCBheGlzIGlzIGF0IDAuNSAqIGFycm93Qm9keS5oZWlnaHQuXG4gICAgdmFyIGFycm93U2hpZnQgPSAtb3B0aW9ucy5mb250TWV0cmljcygpLmF4aXNIZWlnaHQgKyAwLjUgKiBhcnJvd0JvZHkuaGVpZ2h0O1xuICAgIC8vIDIgbXUga2Vybi4gUmVmOiBhbXNtYXRoLmR0eDogIzdcXGlmMCMyXFxlbHNlXFxta2VybiMybXVcXGZpXG4gICAgdmFyIHVwcGVyU2hpZnQgPSAtb3B0aW9ucy5mb250TWV0cmljcygpLmF4aXNIZWlnaHQgLSAwLjUgKiBhcnJvd0JvZHkuaGVpZ2h0IC0gMC4xMTE7XG4gICAgaWYgKGdyb3VwLnZhbHVlLmxhYmVsID09PSBcIlxcXFx4bGVmdGVxdWlsaWJyaXVtXCIpIHtcbiAgICAgICAgdXBwZXJTaGlmdCAtPSB1cHBlckdyb3VwLmRlcHRoO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIHRoZSB2bGlzdFxuICAgIHZhciB2bGlzdCA9IHZvaWQgMDtcbiAgICBpZiAoZ3JvdXAudmFsdWUuYmVsb3cpIHtcbiAgICAgICAgdmFyIGxvd2VyU2hpZnQgPSAtb3B0aW9ucy5mb250TWV0cmljcygpLmF4aXNIZWlnaHQgKyBsb3dlckdyb3VwLmhlaWdodCArIDAuNSAqIGFycm93Qm9keS5oZWlnaHQgKyAwLjExMTtcbiAgICAgICAgdmxpc3QgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogdXBwZXJHcm91cCwgc2hpZnQ6IHVwcGVyU2hpZnQgfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYXJyb3dCb2R5LCBzaGlmdDogYXJyb3dTaGlmdCB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBsb3dlckdyb3VwLCBzaGlmdDogbG93ZXJTaGlmdCB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2bGlzdCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiB1cHBlckdyb3VwLCBzaGlmdDogdXBwZXJTaGlmdCB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBhcnJvd0JvZHksIHNoaWZ0OiBhcnJvd1NoaWZ0IH1dXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHZsaXN0LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLmNsYXNzZXMucHVzaChcInN2Zy1hbGlnblwiKTtcblxuICAgIHJldHVybiBtYWtlU3BhbihbXCJtcmVsXCIsIFwieC1hcnJvd1wiXSwgW3ZsaXN0XSwgb3B0aW9ucyk7XG59O1xuXG5ncm91cFR5cGVzLm1jbGFzcyA9IGZ1bmN0aW9uIChncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBlbGVtZW50cyA9IGJ1aWxkRXhwcmVzc2lvbihncm91cC52YWx1ZS52YWx1ZSwgb3B0aW9ucywgdHJ1ZSk7XG5cbiAgICByZXR1cm4gbWFrZVNwYW4oW2dyb3VwLnZhbHVlLm1jbGFzc10sIGVsZW1lbnRzLCBvcHRpb25zKTtcbn07XG5cbmdyb3VwVHlwZXMucmFpc2Vib3ggPSBmdW5jdGlvbiAoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgYm9keSA9IGdyb3VwVHlwZXMuc2l6aW5nKHsgdmFsdWU6IHtcbiAgICAgICAgICAgIHZhbHVlOiBbe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGdyb3VwLnZhbHVlLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBmb250OiBcIm1hdGhybVwiIC8vIHNpbXVsYXRlIFxcdGV4dHJtXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICBzaXplOiA2IC8vIHNpbXVsYXRlIFxcbm9ybWFsc2l6ZVxuICAgICAgICB9IH0sIG9wdGlvbnMpO1xuICAgIHZhciBkeSA9IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3VuaXRzX19bXCJhXCIgLyogY2FsY3VsYXRlU2l6ZSAqL10pKGdyb3VwLnZhbHVlLmR5LnZhbHVlLCBvcHRpb25zKTtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogXCJzaGlmdFwiLFxuICAgICAgICBwb3NpdGlvbkRhdGE6IC1keSxcbiAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBib2R5IH1dXG4gICAgfSwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIGJ1aWxkR3JvdXAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBncm91cCBhbmQgY2FsbHMgdGhlIGNvcnJlY3QgZ3JvdXBUeXBlXG4gKiBmdW5jdGlvbiBmb3IgaXQuIEl0IGFsc28gaGFuZGxlcyB0aGUgaW50ZXJhY3Rpb24gb2Ygc2l6ZSBhbmQgc3R5bGUgY2hhbmdlc1xuICogYmV0d2VlbiBwYXJlbnRzIGFuZCBjaGlsZHJlbi5cbiAqL1xudmFyIGJ1aWxkR3JvdXAgPSBmdW5jdGlvbiBidWlsZEdyb3VwKGdyb3VwLCBvcHRpb25zLCBiYXNlT3B0aW9ucykge1xuICAgIGlmICghZ3JvdXApIHtcbiAgICAgICAgcmV0dXJuIG1ha2VTcGFuKCk7XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwVHlwZXNbZ3JvdXAudHlwZV0pIHtcbiAgICAgICAgLy8gQ2FsbCB0aGUgZ3JvdXBUeXBlcyBmdW5jdGlvblxuICAgICAgICB2YXIgZ3JvdXBOb2RlID0gZ3JvdXBUeXBlc1tncm91cC50eXBlXShncm91cCwgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHNpemUgY2hhbmdlZCBiZXR3ZWVuIHRoZSBwYXJlbnQgYW5kIHRoZSBjdXJyZW50IGdyb3VwLCBhY2NvdW50XG4gICAgICAgIC8vIGZvciB0aGF0IHNpemUgZGlmZmVyZW5jZS5cbiAgICAgICAgaWYgKGJhc2VPcHRpb25zICYmIG9wdGlvbnMuc2l6ZSAhPT0gYmFzZU9wdGlvbnMuc2l6ZSkge1xuICAgICAgICAgICAgZ3JvdXBOb2RlID0gbWFrZVNwYW4ob3B0aW9ucy5zaXppbmdDbGFzc2VzKGJhc2VPcHRpb25zKSwgW2dyb3VwTm9kZV0sIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICB2YXIgbXVsdGlwbGllciA9IG9wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBiYXNlT3B0aW9ucy5zaXplTXVsdGlwbGllcjtcblxuICAgICAgICAgICAgZ3JvdXBOb2RlLmhlaWdodCAqPSBtdWx0aXBsaWVyO1xuICAgICAgICAgICAgZ3JvdXBOb2RlLmRlcHRoICo9IG11bHRpcGxpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ3JvdXBOb2RlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkdvdCBncm91cCBvZiB1bmtub3duIHR5cGU6ICdcIiArIGdyb3VwLnR5cGUgKyBcIidcIik7XG4gICAgfVxufTtcblxuLyoqXG4gKiBUYWtlIGFuIGVudGlyZSBwYXJzZSB0cmVlLCBhbmQgYnVpbGQgaXQgaW50byBhbiBhcHByb3ByaWF0ZSBzZXQgb2YgSFRNTFxuICogbm9kZXMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkSFRNTCh0cmVlLCBvcHRpb25zKSB7XG4gICAgLy8gYnVpbGRFeHByZXNzaW9uIGlzIGRlc3RydWN0aXZlLCBzbyB3ZSBuZWVkIHRvIG1ha2UgYSBjbG9uZVxuICAgIC8vIG9mIHRoZSBpbmNvbWluZyB0cmVlIHNvIHRoYXQgaXQgaXNuJ3QgYWNjaWRlbnRhbGx5IGNoYW5nZWRcbiAgICB0cmVlID0gSlNPTi5wYXJzZShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2pzb25fc3RyaW5naWZ5X19fZGVmYXVsdCgpKHRyZWUpKTtcblxuICAgIC8vIEJ1aWxkIHRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBpbiB0aGUgdHJlZVxuICAgIHZhciBleHByZXNzaW9uID0gYnVpbGRFeHByZXNzaW9uKHRyZWUsIG9wdGlvbnMsIHRydWUpO1xuICAgIHZhciBib2R5ID0gbWFrZVNwYW4oW1wiYmFzZVwiXSwgZXhwcmVzc2lvbiwgb3B0aW9ucyk7XG5cbiAgICAvLyBBZGQgc3RydXRzLCB3aGljaCBlbnN1cmUgdGhhdCB0aGUgdG9wIG9mIHRoZSBIVE1MIGVsZW1lbnQgZmFsbHMgYXQgdGhlXG4gICAgLy8gaGVpZ2h0IG9mIHRoZSBleHByZXNzaW9uLCBhbmQgdGhlIGJvdHRvbSBvZiB0aGUgSFRNTCBlbGVtZW50IGZhbGxzIGF0IHRoZVxuICAgIC8vIGRlcHRoIG9mIHRoZSBleHByZXNzaW9uLlxuICAgIHZhciB0b3BTdHJ1dCA9IG1ha2VTcGFuKFtcInN0cnV0XCJdKTtcbiAgICB2YXIgYm90dG9tU3RydXQgPSBtYWtlU3BhbihbXCJzdHJ1dFwiLCBcImJvdHRvbVwiXSk7XG5cbiAgICB0b3BTdHJ1dC5zdHlsZS5oZWlnaHQgPSBib2R5LmhlaWdodCArIFwiZW1cIjtcbiAgICBib3R0b21TdHJ1dC5zdHlsZS5oZWlnaHQgPSBib2R5LmhlaWdodCArIGJvZHkuZGVwdGggKyBcImVtXCI7XG4gICAgLy8gV2UnZCBsaWtlIHRvIHVzZSBgdmVydGljYWwtYWxpZ246IHRvcGAgYnV0IGluIElFIDkgdGhpcyBsb3dlcnMgdGhlXG4gICAgLy8gYmFzZWxpbmUgb2YgdGhlIGJveCB0byB0aGUgYm90dG9tIG9mIHRoaXMgc3RydXQgKGluc3RlYWQgc3RheWluZyBpbiB0aGVcbiAgICAvLyBub3JtYWwgcGxhY2UpIHNvIHdlIHVzZSBhbiBhYnNvbHV0ZSB2YWx1ZSBmb3IgdmVydGljYWwtYWxpZ24gaW5zdGVhZFxuICAgIGJvdHRvbVN0cnV0LnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAtYm9keS5kZXB0aCArIFwiZW1cIjtcblxuICAgIC8vIFdyYXAgdGhlIHN0cnV0cyBhbmQgYm9keSB0b2dldGhlclxuICAgIHZhciBodG1sTm9kZSA9IG1ha2VTcGFuKFtcImthdGV4LWh0bWxcIl0sIFt0b3BTdHJ1dCwgYm90dG9tU3RydXQsIGJvZHldKTtcblxuICAgIGh0bWxOb2RlLnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsIFwidHJ1ZVwiKTtcblxuICAgIHJldHVybiBodG1sTm9kZTtcbn1cblxuLyoqKi8gfSksXG4vKiA1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG4vKipcbiAqIFRoaXMgZmlsZSBjb250YWlucyBhIGxpc3Qgb2YgdXRpbGl0eSBmdW5jdGlvbnMgd2hpY2ggYXJlIHVzZWZ1bCBpbiBvdGhlclxuICogZmlsZXMuXG4gKi9cblxuLyoqXG4gKiBQcm92aWRlIGFuIGBpbmRleE9mYCBmdW5jdGlvbiB3aGljaCB3b3JrcyBpbiBJRTgsIGJ1dCBkZWZlcnMgdG8gbmF0aXZlIGlmXG4gKiBwb3NzaWJsZS5cbiAqL1xudmFyIG5hdGl2ZUluZGV4T2YgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjtcbnZhciBpbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZihsaXN0LCBlbGVtKSB7XG4gICAgaWYgKGxpc3QgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmIChuYXRpdmVJbmRleE9mICYmIGxpc3QuaW5kZXhPZiA9PT0gbmF0aXZlSW5kZXhPZikge1xuICAgICAgICByZXR1cm4gbGlzdC5pbmRleE9mKGVsZW0pO1xuICAgIH1cbiAgICB2YXIgbCA9IGxpc3QubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGlmIChsaXN0W2ldID09PSBlbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG59O1xuXG4vKipcbiAqIFJldHVybiB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgY29udGFpbmVkIGluIGEgbGlzdFxuICovXG52YXIgY29udGFpbnMgPSBmdW5jdGlvbiBjb250YWlucyhsaXN0LCBlbGVtKSB7XG4gICAgcmV0dXJuIGluZGV4T2YobGlzdCwgZWxlbSkgIT09IC0xO1xufTtcblxuLyoqXG4gKiBQcm92aWRlIGEgZGVmYXVsdCB2YWx1ZSBpZiBhIHNldHRpbmcgaXMgdW5kZWZpbmVkXG4gKiBOT1RFOiBDb3VsZG4ndCB1c2UgYFRgIGFzIHRoZSBvdXRwdXQgdHlwZSBkdWUgdG8gZmFjZWJvb2svZmxvdyM1MDIyLlxuICovXG52YXIgZGVmbHQgPSBmdW5jdGlvbiBkZWZsdChzZXR0aW5nLCBkZWZhdWx0SWZVbmRlZmluZWQpIHtcbiAgICByZXR1cm4gc2V0dGluZyA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdElmVW5kZWZpbmVkIDogc2V0dGluZztcbn07XG5cbi8vIGh5cGhlbmF0ZSBhbmQgZXNjYXBlIGFkYXB0ZWQgZnJvbSBGYWNlYm9vaydzIFJlYWN0IHVuZGVyIEFwYWNoZSAyIGxpY2Vuc2VcblxudmFyIHVwcGVyY2FzZSA9IC8oW0EtWl0pL2c7XG52YXIgaHlwaGVuYXRlID0gZnVuY3Rpb24gaHlwaGVuYXRlKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSh1cHBlcmNhc2UsIFwiLSQxXCIpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgRVNDQVBFX0xPT0tVUCA9IHtcbiAgICBcIiZcIjogXCImYW1wO1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgICBcIjxcIjogXCImbHQ7XCIsXG4gICAgXCJcXFwiXCI6IFwiJnF1b3Q7XCIsXG4gICAgXCInXCI6IFwiJiN4Mjc7XCJcbn07XG5cbnZhciBFU0NBUEVfUkVHRVggPSAvWyY+PFwiJ10vZztcblxuLyoqXG4gKiBFc2NhcGVzIHRleHQgdG8gcHJldmVudCBzY3JpcHRpbmcgYXR0YWNrcy5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlKHRleHQpIHtcbiAgICByZXR1cm4gU3RyaW5nKHRleHQpLnJlcGxhY2UoRVNDQVBFX1JFR0VYLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIEVTQ0FQRV9MT09LVVBbbWF0Y2hdO1xuICAgIH0pO1xufVxuXG4vKipcbiAqIEEgZnVuY3Rpb24gdG8gc2V0IHRoZSB0ZXh0IGNvbnRlbnQgb2YgYSBET00gZWxlbWVudCBpbiBhbGwgc3VwcG9ydGVkXG4gKiBicm93c2Vycy4gTm90ZSB0aGF0IHdlIGRvbid0IGRlZmluZSB0aGlzIGlmIHRoZXJlIGlzIG5vIGRvY3VtZW50LlxuICovXG52YXIgc2V0VGV4dENvbnRlbnQgPSB2b2lkIDA7XG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHRlc3ROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgaWYgKFwidGV4dENvbnRlbnRcIiBpbiB0ZXN0Tm9kZSkge1xuICAgICAgICBzZXRUZXh0Q29udGVudCA9IGZ1bmN0aW9uIHNldFRleHRDb250ZW50KG5vZGUsIHRleHQpIHtcbiAgICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0O1xuICAgICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRleHRDb250ZW50ID0gZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQobm9kZSwgdGV4dCkge1xuICAgICAgICAgICAgbm9kZS5pbm5lclRleHQgPSB0ZXh0O1xuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRvIGNsZWFyIGEgbm9kZS5cbiAqL1xuZnVuY3Rpb24gY2xlYXJOb2RlKG5vZGUpIHtcbiAgICBzZXRUZXh0Q29udGVudChub2RlLCBcIlwiKTtcbn1cblxuLyoqXG4gKiBTb21ldGltZXMgd2Ugd2FudCB0byBwdWxsIG91dCB0aGUgaW5uZXJtb3N0IGVsZW1lbnQgb2YgYSBncm91cC4gSW4gbW9zdFxuICogY2FzZXMsIHRoaXMgd2lsbCBqdXN0IGJlIHRoZSBncm91cCBpdHNlbGYsIGJ1dCB3aGVuIG9yZGdyb3VwcyBhbmQgY29sb3JzIGhhdmVcbiAqIGEgc2luZ2xlIGVsZW1lbnQsIHdlIHdhbnQgdG8gcHVsbCB0aGF0IG91dC5cbiAqL1xudmFyIGdldEJhc2VFbGVtID0gZnVuY3Rpb24gZ2V0QmFzZUVsZW0oZ3JvdXApIHtcbiAgICBpZiAoIWdyb3VwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGdyb3VwLnR5cGUgPT09IFwib3JkZ3JvdXBcIikge1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0QmFzZUVsZW0oZ3JvdXAudmFsdWVbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmIChncm91cC50eXBlID09PSBcImNvbG9yXCIpIHtcbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLnZhbHVlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGdldEJhc2VFbGVtKGdyb3VwLnZhbHVlLnZhbHVlWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBncm91cDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZ3JvdXAudHlwZSA9PT0gXCJmb250XCIpIHtcbiAgICAgICAgcmV0dXJuIGdldEJhc2VFbGVtKGdyb3VwLnZhbHVlLmJvZHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBncm91cDtcbiAgICB9XG59O1xuXG4vKipcbiAqIFRlWGJvb2sgYWxnb3JpdGhtcyBvZnRlbiByZWZlcmVuY2UgXCJjaGFyYWN0ZXIgYm94ZXNcIiwgd2hpY2ggYXJlIHNpbXBseSBncm91cHNcbiAqIHdpdGggYSBzaW5nbGUgY2hhcmFjdGVyIGluIHRoZW0uIFRvIGRlY2lkZSBpZiBzb21ldGhpbmcgaXMgYSBjaGFyYWN0ZXIgYm94LFxuICogd2UgZmluZCBpdHMgaW5uZXJtb3N0IGdyb3VwLCBhbmQgc2VlIGlmIGl0IGlzIGEgc2luZ2xlIGNoYXJhY3Rlci5cbiAqL1xudmFyIGlzQ2hhcmFjdGVyQm94ID0gZnVuY3Rpb24gaXNDaGFyYWN0ZXJCb3goZ3JvdXApIHtcbiAgICB2YXIgYmFzZUVsZW0gPSBnZXRCYXNlRWxlbShncm91cCk7XG5cbiAgICAvLyBUaGVzZSBhcmUgYWxsIHRoZXkgdHlwZXMgb2YgZ3JvdXBzIHdoaWNoIGhvbGQgc2luZ2xlIGNoYXJhY3RlcnNcbiAgICByZXR1cm4gYmFzZUVsZW0udHlwZSA9PT0gXCJtYXRob3JkXCIgfHwgYmFzZUVsZW0udHlwZSA9PT0gXCJ0ZXh0b3JkXCIgfHwgYmFzZUVsZW0udHlwZSA9PT0gXCJiaW5cIiB8fCBiYXNlRWxlbS50eXBlID09PSBcInJlbFwiIHx8IGJhc2VFbGVtLnR5cGUgPT09IFwiaW5uZXJcIiB8fCBiYXNlRWxlbS50eXBlID09PSBcIm9wZW5cIiB8fCBiYXNlRWxlbS50eXBlID09PSBcImNsb3NlXCIgfHwgYmFzZUVsZW0udHlwZSA9PT0gXCJwdW5jdFwiO1xufTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgY29udGFpbnM6IGNvbnRhaW5zLFxuICAgIGRlZmx0OiBkZWZsdCxcbiAgICBlc2NhcGU6IGVzY2FwZSxcbiAgICBoeXBoZW5hdGU6IGh5cGhlbmF0ZSxcbiAgICBpbmRleE9mOiBpbmRleE9mLFxuICAgIHNldFRleHRDb250ZW50OiBzZXRUZXh0Q29udGVudCxcbiAgICBjbGVhck5vZGU6IGNsZWFyTm9kZSxcbiAgICBnZXRCYXNlRWxlbTogZ2V0QmFzZUVsZW0sXG4gICAgaXNDaGFyYWN0ZXJCb3g6IGlzQ2hhcmFjdGVyQm94XG59KTtcblxuLyoqKi8gfSksXG4vKiA2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1BhcnNlTm9kZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19Ub2tlbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cblxuXG5cbi8qKlxuICogVGhpcyBpcyB0aGUgUGFyc2VFcnJvciBjbGFzcywgd2hpY2ggaXMgdGhlIG1haW4gZXJyb3IgdGhyb3duIGJ5IEthVGVYXG4gKiBmdW5jdGlvbnMgd2hlbiBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcuIFRoaXMgaXMgdXNlZCB0byBkaXN0aW5ndWlzaCBpbnRlcm5hbFxuICogZXJyb3JzIGZyb20gZXJyb3JzIGluIHRoZSBleHByZXNzaW9uIHRoYXQgdGhlIHVzZXIgcHJvdmlkZWQuXG4gKlxuICogSWYgcG9zc2libGUsIGEgY2FsbGVyIHNob3VsZCBwcm92aWRlIGEgVG9rZW4gb3IgUGFyc2VOb2RlIHdpdGggaW5mb3JtYXRpb25cbiAqIGFib3V0IHdoZXJlIGluIHRoZSBzb3VyY2Ugc3RyaW5nIHRoZSBwcm9ibGVtIG9jY3VycmVkLlxuICovXG5cbnZhciBQYXJzZUVycm9yID1cbi8vIEVycm9yIHBvc2l0aW9uIGJhc2VkIG9uIHBhc3NlZC1pbiBUb2tlbiBvciBQYXJzZU5vZGUuXG5cbmZ1bmN0aW9uIFBhcnNlRXJyb3IobWVzc2FnZSwgLy8gVGhlIGVycm9yIG1lc3NhZ2VcbnRva2VuKSAvLyBBbiBvYmplY3QgcHJvdmlkaW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uXG57XG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBQYXJzZUVycm9yKTtcblxuICAgIHZhciBlcnJvciA9IFwiS2FUZVggcGFyc2UgZXJyb3I6IFwiICsgbWVzc2FnZTtcbiAgICB2YXIgc3RhcnQgPSB2b2lkIDA7XG5cbiAgICB2YXIgbG9jID0gdG9rZW4gJiYgdG9rZW4ubG9jO1xuICAgIGlmIChsb2MgJiYgbG9jLnN0YXJ0IDw9IGxvYy5lbmQpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSB0aGUgaW5wdXQgYW5kIGEgcG9zaXRpb24sIG1ha2UgdGhlIGVycm9yIGEgYml0IGZhbmNpZXJcblxuICAgICAgICAvLyBHZXQgdGhlIGlucHV0XG4gICAgICAgIHZhciBpbnB1dCA9IGxvYy5sZXhlci5pbnB1dDtcblxuICAgICAgICAvLyBQcmVwZW5kIHNvbWUgaW5mb3JtYXRpb25cbiAgICAgICAgc3RhcnQgPSBsb2Muc3RhcnQ7XG4gICAgICAgIHZhciBlbmQgPSBsb2MuZW5kO1xuICAgICAgICBpZiAoc3RhcnQgPT09IGlucHV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgZXJyb3IgKz0gXCIgYXQgZW5kIG9mIGlucHV0OiBcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yICs9IFwiIGF0IHBvc2l0aW9uIFwiICsgKHN0YXJ0ICsgMSkgKyBcIjogXCI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVbmRlcmxpbmUgdG9rZW4gaW4gcXVlc3Rpb24gdXNpbmcgY29tYmluaW5nIHVuZGVyc2NvcmVzXG4gICAgICAgIHZhciB1bmRlcmxpbmVkID0gaW5wdXQuc2xpY2Uoc3RhcnQsIGVuZCkucmVwbGFjZSgvW15dL2csIFwiJCZcXHUwMzMyXCIpO1xuXG4gICAgICAgIC8vIEV4dHJhY3Qgc29tZSBjb250ZXh0IGZyb20gdGhlIGlucHV0IGFuZCBhZGQgaXQgdG8gdGhlIGVycm9yXG4gICAgICAgIHZhciBsZWZ0ID0gdm9pZCAwO1xuICAgICAgICBpZiAoc3RhcnQgPiAxNSkge1xuICAgICAgICAgICAgbGVmdCA9IFwi4oCmXCIgKyBpbnB1dC5zbGljZShzdGFydCAtIDE1LCBzdGFydCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZWZ0ID0gaW5wdXQuc2xpY2UoMCwgc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByaWdodCA9IHZvaWQgMDtcbiAgICAgICAgaWYgKGVuZCArIDE1IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgICAgICByaWdodCA9IGlucHV0LnNsaWNlKGVuZCwgZW5kICsgMTUpICsgXCLigKZcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJpZ2h0ID0gaW5wdXQuc2xpY2UoZW5kKTtcbiAgICAgICAgfVxuICAgICAgICBlcnJvciArPSBsZWZ0ICsgdW5kZXJsaW5lZCArIHJpZ2h0O1xuICAgIH1cblxuICAgIC8vIFNvbWUgaGFja2VyeSB0byBtYWtlIFBhcnNlRXJyb3IgYSBwcm90b3R5cGUgb2YgRXJyb3JcbiAgICAvLyBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODQ2MDc1M1xuICAgIHZhciBzZWxmID0gbmV3IEVycm9yKGVycm9yKTtcbiAgICBzZWxmLm5hbWUgPSBcIlBhcnNlRXJyb3JcIjtcbiAgICAvLyAkRmxvd0ZpeE1lXG4gICAgc2VsZi5fX3Byb3RvX18gPSBQYXJzZUVycm9yLnByb3RvdHlwZTtcbiAgICAvLyAkRmxvd0ZpeE1lXG4gICAgc2VsZi5wb3NpdGlvbiA9IHN0YXJ0O1xuICAgIHJldHVybiBzZWxmO1xufTtcblxuLy8gJEZsb3dGaXhNZSBNb3JlIGhhY2tlcnlcblxuXG5QYXJzZUVycm9yLnByb3RvdHlwZS5fX3Byb3RvX18gPSBFcnJvci5wcm90b3R5cGU7XG5cbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoUGFyc2VFcnJvcik7XG5cbi8qKiovIH0pLFxuLyogNyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufTtcblxuLyoqKi8gfSksXG4vKiA4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbnZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7dmVyc2lvbjogJzIuNC4wJ307XG5pZih0eXBlb2YgX19lID09ICdudW1iZXInKV9fZSA9IGNvcmU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWZcblxuLyoqKi8gfSksXG4vKiA5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18pO1xuXG5cblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYW5kIGNsYXNzZXMgZm9yIHRoZSB2YXJpb3VzIGtpbmRzIG9mIHN0eWxlc1xuICogdXNlZCBpbiBUZVguIEl0IHByb3ZpZGVzIGEgZ2VuZXJpYyBgU3R5bGVgIGNsYXNzLCB3aGljaCBob2xkcyBpbmZvcm1hdGlvblxuICogYWJvdXQgYSBzcGVjaWZpYyBzdHlsZS4gSXQgdGhlbiBwcm92aWRlcyBpbnN0YW5jZXMgb2YgYWxsIHRoZSBkaWZmZXJlbnQga2luZHNcbiAqIG9mIHN0eWxlcyBwb3NzaWJsZSwgYW5kIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBtb3ZlIGJldHdlZW4gdGhlbSBhbmQgZ2V0XG4gKiBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLlxuICovXG5cbi8qKlxuICogVGhlIG1haW4gc3R5bGUgY2xhc3MuIENvbnRhaW5zIGEgdW5pcXVlIGlkIGZvciB0aGUgc3R5bGUsIGEgc2l6ZSAod2hpY2ggaXNcbiAqIHRoZSBzYW1lIGZvciBjcmFtcGVkIGFuZCB1bmNyYW1wZWQgdmVyc2lvbiBvZiBhIHN0eWxlKSwgYW5kIGEgY3JhbXBlZCBmbGFnLlxuICovXG52YXIgU3R5bGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU3R5bGUoaWQsIHNpemUsIGNyYW1wZWQpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBTdHlsZSk7XG5cbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLnNpemUgPSBzaXplO1xuICAgICAgICB0aGlzLmNyYW1wZWQgPSBjcmFtcGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgc3R5bGUgb2YgYSBzdXBlcnNjcmlwdCBnaXZlbiBhIGJhc2UgaW4gdGhlIGN1cnJlbnQgc3R5bGUuXG4gICAgICovXG5cblxuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0KCkoU3R5bGUsIFt7XG4gICAgICAgIGtleTogXCJzdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHN1cCgpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXNbX3N1cFt0aGlzLmlkXV07XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogR2V0IHRoZSBzdHlsZSBvZiBhIHN1YnNjcmlwdCBnaXZlbiBhIGJhc2UgaW4gdGhlIGN1cnJlbnQgc3R5bGUuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwic3ViXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzdWIoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzW19zdWJbdGhpcy5pZF1dO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldCB0aGUgc3R5bGUgb2YgYSBmcmFjdGlvbiBudW1lcmF0b3IgZ2l2ZW4gdGhlIGZyYWN0aW9uIGluIHRoZSBjdXJyZW50XG4gICAgICAgICAqIHN0eWxlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImZyYWNOdW1cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGZyYWNOdW0oKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzW19mcmFjTnVtW3RoaXMuaWRdXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXQgdGhlIHN0eWxlIG9mIGEgZnJhY3Rpb24gZGVub21pbmF0b3IgZ2l2ZW4gdGhlIGZyYWN0aW9uIGluIHRoZSBjdXJyZW50XG4gICAgICAgICAqIHN0eWxlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImZyYWNEZW5cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGZyYWNEZW4oKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzW19mcmFjRGVuW3RoaXMuaWRdXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXQgdGhlIGNyYW1wZWQgdmVyc2lvbiBvZiBhIHN0eWxlIChpbiBwYXJ0aWN1bGFyLCBjcmFtcGluZyBhIGNyYW1wZWQgc3R5bGVcbiAgICAgICAgICogZG9lc24ndCBjaGFuZ2UgdGhlIHN0eWxlKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJjcmFtcFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gY3JhbXAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3R5bGVzW19jcmFtcFt0aGlzLmlkXV07XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogR2V0IGEgdGV4dCBvciBkaXNwbGF5IHZlcnNpb24gb2YgdGhpcyBzdHlsZS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0ZXh0XCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0ZXh0KCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlc1tfdGV4dFt0aGlzLmlkXV07XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJuIHRydWUgaWYgdGhpcyBzdHlsZSBpcyB0aWdodGx5IHNwYWNlZCAoc2NyaXB0c3R5bGUvc2NyaXB0c2NyaXB0c3R5bGUpXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiaXNUaWdodFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaXNUaWdodCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNpemUgPj0gMjtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTdHlsZTtcbn0oKTtcblxuLy8gRXhwb3J0IGFuIGludGVyZmFjZSBmb3IgdHlwZSBjaGVja2luZywgYnV0IGRvbid0IGV4cG9zZSB0aGUgaW1wbGVtZW50YXRpb24uXG4vLyBUaGlzIHdheSwgbm8gbW9yZSBzdHlsZXMgY2FuIGJlIGdlbmVyYXRlZC5cblxuXG4vLyBJRHMgb2YgdGhlIGRpZmZlcmVudCBzdHlsZXNcbnZhciBEID0gMDtcbnZhciBEYyA9IDE7XG52YXIgVCA9IDI7XG52YXIgVGMgPSAzO1xudmFyIFMgPSA0O1xudmFyIFNjID0gNTtcbnZhciBTUyA9IDY7XG52YXIgU1NjID0gNztcblxuLy8gSW5zdGFuY2VzIG9mIHRoZSBkaWZmZXJlbnQgc3R5bGVzXG52YXIgc3R5bGVzID0gW25ldyBTdHlsZShELCAwLCBmYWxzZSksIG5ldyBTdHlsZShEYywgMCwgdHJ1ZSksIG5ldyBTdHlsZShULCAxLCBmYWxzZSksIG5ldyBTdHlsZShUYywgMSwgdHJ1ZSksIG5ldyBTdHlsZShTLCAyLCBmYWxzZSksIG5ldyBTdHlsZShTYywgMiwgdHJ1ZSksIG5ldyBTdHlsZShTUywgMywgZmFsc2UpLCBuZXcgU3R5bGUoU1NjLCAzLCB0cnVlKV07XG5cbi8vIExvb2t1cCB0YWJsZXMgZm9yIHN3aXRjaGluZyBmcm9tIG9uZSBzdHlsZSB0byBhbm90aGVyXG52YXIgX3N1cCA9IFtTLCBTYywgUywgU2MsIFNTLCBTU2MsIFNTLCBTU2NdO1xudmFyIF9zdWIgPSBbU2MsIFNjLCBTYywgU2MsIFNTYywgU1NjLCBTU2MsIFNTY107XG52YXIgX2ZyYWNOdW0gPSBbVCwgVGMsIFMsIFNjLCBTUywgU1NjLCBTUywgU1NjXTtcbnZhciBfZnJhY0RlbiA9IFtUYywgVGMsIFNjLCBTYywgU1NjLCBTU2MsIFNTYywgU1NjXTtcbnZhciBfY3JhbXAgPSBbRGMsIERjLCBUYywgVGMsIFNjLCBTYywgU1NjLCBTU2NdO1xudmFyIF90ZXh0ID0gW0QsIERjLCBULCBUYywgVCwgVGMsIFQsIFRjXTtcblxuLy8gV2Ugb25seSBleHBvcnQgc29tZSBvZiB0aGUgc3R5bGVzLlxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgRElTUExBWTogc3R5bGVzW0RdLFxuICAgIFRFWFQ6IHN0eWxlc1tUXSxcbiAgICBTQ1JJUFQ6IHN0eWxlc1tTXSxcbiAgICBTQ1JJUFRTQ1JJUFQ6IHN0eWxlc1tTU11cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDczKTtcblxudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kZWZpbmVQcm9wZXJ0eSk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTtcbiAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICAgIGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7XG4gICAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICB9O1xufSgpO1xuXG4vKioqLyB9KSxcbi8qIDExICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBzdG9yZSAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1MikoJ3drcycpXG4gICwgdWlkICAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMzIpXG4gICwgU3ltYm9sICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTYpLlN5bWJvbFxuICAsIFVTRV9TWU1CT0wgPSB0eXBlb2YgU3ltYm9sID09ICdmdW5jdGlvbic7XG5cbnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuXG4vKioqLyB9KSxcbi8qIDEyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfYXNzaWduX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfYXNzaWduX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX29iamVjdF9hc3NpZ25fXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X191bmljb2RlU2NyaXB0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0Mik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3N2Z0dlb21ldHJ5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExMSk7XG5cblxuXG5cblxuLyoqXG4gKiBUaGVzZSBvYmplY3RzIHN0b3JlIHRoZSBkYXRhIGFib3V0IHRoZSBET00gbm9kZXMgd2UgY3JlYXRlLCBhcyB3ZWxsIGFzIHNvbWVcbiAqIGV4dHJhIGRhdGEuIFRoZXkgY2FuIHRoZW4gYmUgdHJhbnNmb3JtZWQgaW50byByZWFsIERPTSBub2RlcyB3aXRoIHRoZVxuICogYHRvTm9kZWAgZnVuY3Rpb24gb3IgSFRNTCBtYXJrdXAgdXNpbmcgYHRvTWFya3VwYC4gVGhleSBhcmUgdXNlZnVsIGZvciBib3RoXG4gKiBzdG9yaW5nIGV4dHJhIHByb3BlcnRpZXMgb24gdGhlIG5vZGVzLCBhcyB3ZWxsIGFzIHByb3ZpZGluZyBhIHdheSB0byBlYXNpbHlcbiAqIHdvcmsgd2l0aCB0aGUgRE9NLlxuICpcbiAqIFNpbWlsYXIgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggTWF0aE1MIG5vZGVzIGV4aXN0IGluIG1hdGhNTFRyZWUuanMuXG4gKi9cblxuXG5cblxuXG4vKipcbiAqIENyZWF0ZSBhbiBIVE1MIGNsYXNzTmFtZSBiYXNlZCBvbiBhIGxpc3Qgb2YgY2xhc3Nlcy4gSW4gYWRkaXRpb24gdG8gam9pbmluZ1xuICogd2l0aCBzcGFjZXMsIHdlIGFsc28gcmVtb3ZlIG51bGwgb3IgZW1wdHkgY2xhc3Nlcy5cbiAqL1xudmFyIGNyZWF0ZUNsYXNzID0gZnVuY3Rpb24gY3JlYXRlQ2xhc3MoY2xhc3Nlcykge1xuICAgIGNsYXNzZXMgPSBjbGFzc2VzLnNsaWNlKCk7XG4gICAgZm9yICh2YXIgaSA9IGNsYXNzZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgaWYgKCFjbGFzc2VzW2ldKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbGFzc2VzLmpvaW4oXCIgXCIpO1xufTtcblxuLy8gVG8gZW5zdXJlIHRoYXQgYWxsIG5vZGVzIGhhdmUgY29tcGF0aWJsZSBzaWduYXR1cmVzIGZvciB0aGVzZSBtZXRob2RzLlxuXG5cbi8qKlxuICogQWxsIGBEb21DaGlsZE5vZGVgcyBNVVNUIGhhdmUgYGhlaWdodGAsIGBkZXB0aGAsIGFuZCBgbWF4Rm9udFNpemVgIG51bWVyaWNcbiAqIGZpZWxkcy5cbiAqXG4gKiBgRG9tQ2hpbGROb2RlYCBpcyBub3QgZGVmaW5lZCBhcyBhbiBpbnRlcmZhY2Ugc2luY2UgYGRvY3VtZW50RnJhZ21lbnRgIGFsc29cbiAqIGhhcyB0aGVzZSBmaWVsZHMgYnV0IHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBhIGBEb21DaGlsZE5vZGVgLlxuICovXG5cbi8qKlxuICogVGhpcyBub2RlIHJlcHJlc2VudHMgYSBzcGFuIG5vZGUsIHdpdGggYSBjbGFzc05hbWUsIGEgbGlzdCBvZiBjaGlsZHJlbiwgYW5kXG4gKiBhbiBpbmxpbmUgc3R5bGUuIEl0IGFsc28gY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgaXRzIGhlaWdodCwgZGVwdGgsIGFuZFxuICogbWF4Rm9udFNpemUuXG4gKi9cbnZhciBzcGFuID0gZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIHNwYW4oY2xhc3NlcywgY2hpbGRyZW4sIG9wdGlvbnMsIHN0eWxlKSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgc3Bhbik7XG5cbiAgICAgICAgdGhpcy5jbGFzc2VzID0gY2xhc3NlcyB8fCBbXTtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuIHx8IFtdO1xuICAgICAgICB0aGlzLmhlaWdodCA9IDA7XG4gICAgICAgIHRoaXMuZGVwdGggPSAwO1xuICAgICAgICB0aGlzLm1heEZvbnRTaXplID0gMDtcbiAgICAgICAgdGhpcy5zdHlsZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2Fzc2lnbl9fX2RlZmF1bHQoKSh7fSwgc3R5bGUpO1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnN0eWxlLmlzVGlnaHQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xhc3Nlcy5wdXNoKFwibXRpZ2h0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNvbG9yID0gb3B0aW9ucy5nZXRDb2xvcigpO1xuICAgICAgICAgICAgaWYgKGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZS5jb2xvciA9IGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBhbiBhcmJpdHJhcnkgYXR0cmlidXRlIG9uIHRoZSBzcGFuLiBXYXJuaW5nOiB1c2UgdGhpcyB3aXNlbHkuIE5vdCBhbGxcbiAgICAgKiBicm93c2VycyBzdXBwb3J0IGF0dHJpYnV0ZXMgdGhlIHNhbWUsIGFuZCBoYXZpbmcgdG9vIG1hbnkgY3VzdG9tIGF0dHJpYnV0ZXNcbiAgICAgKiBpcyBwcm9iYWJseSBiYWQuXG4gICAgICovXG5cblxuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0KCkoc3BhbiwgW3tcbiAgICAgICAga2V5OiBcInNldEF0dHJpYnV0ZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0cnlDb21iaW5lXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0cnlDb21iaW5lKHNpYmxpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IHRoZSBzcGFuIGludG8gYW4gSFRNTCBub2RlXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9Ob2RlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b05vZGUoKSB7XG4gICAgICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgY2xhc3NcbiAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gY3JlYXRlQ2xhc3ModGhpcy5jbGFzc2VzKTtcblxuICAgICAgICAgICAgLy8gQXBwbHkgaW5saW5lIHN0eWxlc1xuICAgICAgICAgICAgZm9yICh2YXIgc3R5bGUgaW4gdGhpcy5zdHlsZSkge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5zdHlsZSwgc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICRGbG93Rml4TWUgRmxvdyBkb2Vzbid0IHNlZW0gdG8gdW5kZXJzdGFuZCBzcGFuLnN0eWxlJ3MgdHlwZS5cbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5zdHlsZVtzdHlsZV0gPSB0aGlzLnN0eWxlW3N0eWxlXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IGF0dHJpYnV0ZXNcbiAgICAgICAgICAgIGZvciAodmFyIGF0dHIgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmF0dHJpYnV0ZXMsIGF0dHIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKGF0dHIsIHRoaXMuYXR0cmlidXRlc1thdHRyXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGNoaWxkcmVuLCBhbHNvIGFzIEhUTUwgbm9kZXNcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQodGhpcy5jaGlsZHJlbltpXS50b05vZGUoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzcGFuO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnZlcnQgdGhlIHNwYW4gaW50byBhbiBIVE1MIG1hcmt1cCBzdHJpbmdcbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b01hcmt1cFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9NYXJrdXAoKSB7XG4gICAgICAgICAgICB2YXIgbWFya3VwID0gXCI8c3BhblwiO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNsYXNzXG4gICAgICAgICAgICBpZiAodGhpcy5jbGFzc2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG1hcmt1cCArPSBcIiBjbGFzcz1cXFwiXCI7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUoY3JlYXRlQ2xhc3ModGhpcy5jbGFzc2VzKSk7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IFwiXFxcIlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3R5bGVzID0gXCJcIjtcblxuICAgICAgICAgICAgLy8gQWRkIHRoZSBzdHlsZXMsIGFmdGVyIGh5cGhlbmF0aW9uXG4gICAgICAgICAgICBmb3IgKHZhciBzdHlsZSBpbiB0aGlzLnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcyArPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uaHlwaGVuYXRlKHN0eWxlKSArIFwiOlwiICsgdGhpcy5zdHlsZVtzdHlsZV0gKyBcIjtcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdHlsZXMpIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gXCIgc3R5bGU9XFxcIlwiICsgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmVzY2FwZShzdHlsZXMpICsgXCJcXFwiXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIFwiICsgYXR0ciArIFwiPVxcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUodGhpcy5hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiXFxcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFya3VwICs9IFwiPlwiO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIG1hcmt1cCBvZiB0aGUgY2hpbGRyZW4sIGFsc28gYXMgbWFya3VwXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gdGhpcy5jaGlsZHJlbltpXS50b01hcmt1cCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXJrdXAgKz0gXCI8L3NwYW4+XCI7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrdXA7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gc3Bhbjtcbn0oKTtcblxuLyoqXG4gKiBUaGlzIG5vZGUgcmVwcmVzZW50cyBhbiBhbmNob3IgKDxhPikgZWxlbWVudCB3aXRoIGEgaHlwZXJsaW5rLCBhIGxpc3Qgb2YgY2xhc3NlcyxcbiAqIGEgbGlzdCBvZiBjaGlsZHJlbiwgYW5kIGFuIGlubGluZSBzdHlsZS4gSXQgYWxzbyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBpdHNcbiAqIGhlaWdodCwgZGVwdGgsIGFuZCBtYXhGb250U2l6ZS5cbiAqL1xuXG5cbnZhciBhbmNob3IgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gYW5jaG9yKGhyZWYsIGNsYXNzZXMsIGNoaWxkcmVuLCBvcHRpb25zKSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgYW5jaG9yKTtcblxuICAgICAgICB0aGlzLmhyZWYgPSBocmVmO1xuICAgICAgICB0aGlzLmNsYXNzZXMgPSBjbGFzc2VzO1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gMDtcbiAgICAgICAgdGhpcy5kZXB0aCA9IDA7XG4gICAgICAgIHRoaXMubWF4Rm9udFNpemUgPSAwO1xuICAgICAgICB0aGlzLnN0eWxlID0ge307XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICBpZiAob3B0aW9ucy5zdHlsZS5pc1RpZ2h0KCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xhc3Nlcy5wdXNoKFwibXRpZ2h0XCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjb2xvciA9IG9wdGlvbnMuZ2V0Q29sb3IoKTtcbiAgICAgICAgaWYgKGNvbG9yKSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlLmNvbG9yID0gY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGFuIGFyYml0cmFyeSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvci4gV2FybmluZzogdXNlIHRoaXMgd2lzZWx5LiBOb3QgYWxsXG4gICAgICogYnJvd3NlcnMgc3VwcG9ydCBhdHRyaWJ1dGVzIHRoZSBzYW1lLCBhbmQgaGF2aW5nIHRvbyBtYW55IGN1c3RvbSBhdHRyaWJ1dGVzXG4gICAgICogaXMgcHJvYmFibHkgYmFkLlxuICAgICAqL1xuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKGFuY2hvciwgW3tcbiAgICAgICAga2V5OiBcInNldEF0dHJpYnV0ZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0cnlDb21iaW5lXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0cnlDb21iaW5lKHNpYmxpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IHRoZSBhbmNob3IgaW50byBhbiBIVE1MIG5vZGVcbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b05vZGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTm9kZSgpIHtcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBocmVmXG4gICAgICAgICAgICBhLnNldEF0dHJpYnV0ZSgnaHJlZicsIHRoaXMuaHJlZik7XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBjbGFzc1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBhLmNsYXNzTmFtZSA9IGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3Nlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IGlubGluZSBzdHlsZXNcbiAgICAgICAgICAgIGZvciAodmFyIHN0eWxlIGluIHRoaXMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuc3R5bGUsIHN0eWxlKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyAkRmxvd0ZpeE1lIEZsb3cgZG9lc24ndCBzZWVtIHRvIHVuZGVyc3RhbmQgYS5zdHlsZSdzIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgIGEuc3R5bGVbc3R5bGVdID0gdGhpcy5zdHlsZVtzdHlsZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBhdHRyaWJ1dGVzXG4gICAgICAgICAgICBmb3IgKHZhciBhdHRyIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hdHRyaWJ1dGVzLCBhdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBhLnNldEF0dHJpYnV0ZShhdHRyLCB0aGlzLmF0dHJpYnV0ZXNbYXR0cl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBjaGlsZHJlbiwgYWxzbyBhcyBIVE1MIG5vZGVzXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKHRoaXMuY2hpbGRyZW5baV0udG9Ob2RlKCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IHRoZSBhIGludG8gYW4gSFRNTCBtYXJrdXAgc3RyaW5nXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9NYXJrdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTWFya3VwKCkge1xuICAgICAgICAgICAgdmFyIG1hcmt1cCA9IFwiPGFcIjtcblxuICAgICAgICAgICAgLy8gQWRkIHRoZSBocmVmXG4gICAgICAgICAgICBtYXJrdXAgKz0gXCJocmVmPVxcXCJcIiArIChtYXJrdXAgKz0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmVzY2FwZSh0aGlzLmhyZWYpKSArIFwiXFxcIlwiO1xuICAgICAgICAgICAgLy8gQWRkIHRoZSBjbGFzc1xuICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gXCIgY2xhc3M9XFxcIlwiICsgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmVzY2FwZShjcmVhdGVDbGFzcyh0aGlzLmNsYXNzZXMpKSArIFwiXFxcIlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3R5bGVzID0gXCJcIjtcblxuICAgICAgICAgICAgLy8gQWRkIHRoZSBzdHlsZXMsIGFmdGVyIGh5cGhlbmF0aW9uXG4gICAgICAgICAgICBmb3IgKHZhciBzdHlsZSBpbiB0aGlzLnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcyArPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uaHlwaGVuYXRlKHN0eWxlKSArIFwiOlwiICsgdGhpcy5zdHlsZVtzdHlsZV0gKyBcIjtcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdHlsZXMpIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gXCIgc3R5bGU9XFxcIlwiICsgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmVzY2FwZShzdHlsZXMpICsgXCJcXFwiXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXR0ciAhPT0gXCJocmVmXCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIFwiICsgYXR0ciArIFwiPVxcXCJcIiArIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUodGhpcy5hdHRyaWJ1dGVzW2F0dHJdKSArIFwiXFxcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFya3VwICs9IFwiPlwiO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIG1hcmt1cCBvZiB0aGUgY2hpbGRyZW4sIGFsc28gYXMgbWFya3VwXG4gICAgICAgICAgICB2YXIgX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IHRydWU7XG4gICAgICAgICAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBfaXRlcmF0b3JFcnJvciA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQoKSh0aGlzLmNoaWxkcmVuKSwgX3N0ZXA7ICEoX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IChfc3RlcCA9IF9pdGVyYXRvci5uZXh0KCkpLmRvbmUpOyBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBfc3RlcC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICBtYXJrdXAgKz0gY2hpbGQudG9NYXJrdXAoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBfZGlkSXRlcmF0b3JFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgX2l0ZXJhdG9yRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiAmJiBfaXRlcmF0b3IucmV0dXJuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfaXRlcmF0b3IucmV0dXJuKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoX2RpZEl0ZXJhdG9yRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXJrdXAgKz0gXCI8L2E+XCI7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrdXA7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gYW5jaG9yO1xufSgpO1xuXG4vKipcbiAqIFRoaXMgbm9kZSByZXByZXNlbnRzIGEgZG9jdW1lbnQgZnJhZ21lbnQsIHdoaWNoIGNvbnRhaW5zIGVsZW1lbnRzLCBidXQgd2hlblxuICogcGxhY2VkIGludG8gdGhlIERPTSBkb2Vzbid0IGhhdmUgYW55IHJlcHJlc2VudGF0aW9uIGl0c2VsZi4gVGh1cywgaXQgb25seVxuICogY29udGFpbnMgY2hpbGRyZW4gYW5kIGRvZXNuJ3QgaGF2ZSBhbnkgSFRNTCBwcm9wZXJ0aWVzLiBJdCBhbHNvIGtlZXBzIHRyYWNrXG4gKiBvZiBhIGhlaWdodCwgZGVwdGgsIGFuZCBtYXhGb250U2l6ZS5cbiAqL1xuXG5cbnZhciBkb2N1bWVudEZyYWdtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIGRvY3VtZW50RnJhZ21lbnQoY2hpbGRyZW4pIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBkb2N1bWVudEZyYWdtZW50KTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gMDtcbiAgICAgICAgdGhpcy5kZXB0aCA9IDA7XG4gICAgICAgIHRoaXMubWF4Rm9udFNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgdGhlIGZyYWdtZW50IGludG8gYSBub2RlXG4gICAgICovXG5cblxuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0KCkoZG9jdW1lbnRGcmFnbWVudCwgW3tcbiAgICAgICAga2V5OiBcInRvTm9kZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ob2RlKCkge1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgZnJhZ21lbnRcbiAgICAgICAgICAgIHZhciBmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGNoaWxkcmVuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBmcmFnLmFwcGVuZENoaWxkKHRoaXMuY2hpbGRyZW5baV0udG9Ob2RlKCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZnJhZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb252ZXJ0IHRoZSBmcmFnbWVudCBpbnRvIEhUTUwgbWFya3VwXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9NYXJrdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTWFya3VwKCkge1xuICAgICAgICAgICAgdmFyIG1hcmt1cCA9IFwiXCI7XG5cbiAgICAgICAgICAgIC8vIFNpbXBseSBjb25jYXRlbmF0ZSB0aGUgbWFya3VwIGZvciB0aGUgY2hpbGRyZW4gdG9nZXRoZXJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG1hcmt1cCArPSB0aGlzLmNoaWxkcmVuW2ldLnRvTWFya3VwKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBtYXJrdXA7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gZG9jdW1lbnRGcmFnbWVudDtcbn0oKTtcblxudmFyIGlDb21iaW5hdGlvbnMgPSB7XG4gICAgJ8OuJzogXCJcXHUwMTMxXFx1MDMwMlwiLFxuICAgICfDryc6IFwiXFx1MDEzMVxcdTAzMDhcIixcbiAgICAnw60nOiBcIlxcdTAxMzFcXHUwMzAxXCIsXG4gICAgLy8gJ8SrJzogJ1xcdTAxMzFcXHUwMzA0JywgLy8gZW5hYmxlIHdoZW4gd2UgYWRkIEV4dGVuZGVkIExhdGluXG4gICAgJ8OsJzogXCJcXHUwMTMxXFx1MDMwMFwiXG59O1xuXG4vKipcbiAqIEEgc3ltYm9sIG5vZGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUgc3ltYm9sLiBJdCBlaXRoZXIgcmVuZGVyc1xuICogdG8gYSBzaW5nbGUgdGV4dCBub2RlLCBvciBhIHNwYW4gd2l0aCBhIHNpbmdsZSB0ZXh0IG5vZGUgaW4gaXQsIGRlcGVuZGluZyBvblxuICogd2hldGhlciBpdCBoYXMgQ1NTIGNsYXNzZXMsIHN0eWxlcywgb3IgbmVlZHMgaXRhbGljIGNvcnJlY3Rpb24uXG4gKi9cblxudmFyIHN5bWJvbE5vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gc3ltYm9sTm9kZSh2YWx1ZSwgaGVpZ2h0LCBkZXB0aCwgaXRhbGljLCBza2V3LCB3aWR0aCwgY2xhc3Nlcywgc3R5bGUpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBzeW1ib2xOb2RlKTtcblxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0IHx8IDA7XG4gICAgICAgIHRoaXMuZGVwdGggPSBkZXB0aCB8fCAwO1xuICAgICAgICB0aGlzLml0YWxpYyA9IGl0YWxpYyB8fCAwO1xuICAgICAgICB0aGlzLnNrZXcgPSBza2V3IHx8IDA7XG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aCB8fCAwO1xuICAgICAgICB0aGlzLmNsYXNzZXMgPSBjbGFzc2VzIHx8IFtdO1xuICAgICAgICB0aGlzLnN0eWxlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfYXNzaWduX19fZGVmYXVsdCgpKHt9LCBzdHlsZSk7XG4gICAgICAgIHRoaXMubWF4Rm9udFNpemUgPSAwO1xuXG4gICAgICAgIC8vIE1hcmsgdGV4dCBmcm9tIG5vbi1MYXRpbiBzY3JpcHRzIHdpdGggc3BlY2lmaWMgY2xhc3NlcyBzbyB0aGF0IHdlXG4gICAgICAgIC8vIGNhbiBzcGVjaWZ5IHdoaWNoIGZvbnRzIHRvIHVzZS4gIFRoaXMgYWxsb3dzIHVzIHRvIHJlbmRlciB0aGVzZVxuICAgICAgICAvLyBjaGFyYWN0ZXJzIHdpdGggYSBzZXJpZiBmb250IGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIGJyb3dzZXIgd291bGRcbiAgICAgICAgLy8gZWl0aGVyIGRlZmF1bHQgdG8gYSBzYW5zIHNlcmlmIG9yIHJlbmRlciBhIHBsYWNlaG9sZGVyIGNoYXJhY3Rlci5cbiAgICAgICAgLy8gV2UgdXNlIENTUyBjbGFzcyBuYW1lcyBsaWtlIGNqa19mYWxsYmFjaywgaGFuZ3VsX2ZhbGxiYWNrIGFuZFxuICAgICAgICAvLyBicmFobWljX2ZhbGxiYWNrLiBTZWUgLi91bmljb2RlU2NyaXB0cy5qcyBmb3IgdGhlIHNldCBvZiBwb3NzaWJsZVxuICAgICAgICAvLyBzY3JpcHQgbmFtZXNcbiAgICAgICAgdmFyIHNjcmlwdCA9IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3VuaWNvZGVTY3JpcHRzX19bXCJhXCIgLyogc2NyaXB0RnJvbUNvZGVwb2ludCAqL10pKHRoaXMudmFsdWUuY2hhckNvZGVBdCgwKSk7XG4gICAgICAgIGlmIChzY3JpcHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xhc3Nlcy5wdXNoKHNjcmlwdCArIFwiX2ZhbGxiYWNrXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKC9bw67Dr8Otw6xdLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBhZGQgxKsgd2hlbiB3ZSBhZGQgRXh0ZW5kZWQgTGF0aW5cbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBpQ29tYmluYXRpb25zW3RoaXMudmFsdWVdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShzeW1ib2xOb2RlLCBbe1xuICAgICAgICBrZXk6IFwidHJ5Q29tYmluZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdHJ5Q29tYmluZShzaWJsaW5nKSB7XG4gICAgICAgICAgICBpZiAoIXNpYmxpbmcgfHwgIShzaWJsaW5nIGluc3RhbmNlb2Ygc3ltYm9sTm9kZSkgfHwgdGhpcy5pdGFsaWMgPiAwIHx8IGNyZWF0ZUNsYXNzKHRoaXMuY2xhc3NlcykgIT09IGNyZWF0ZUNsYXNzKHNpYmxpbmcuY2xhc3NlcykgfHwgdGhpcy5za2V3ICE9PSBzaWJsaW5nLnNrZXcgfHwgdGhpcy5tYXhGb250U2l6ZSAhPT0gc2libGluZy5tYXhGb250U2l6ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIHN0eWxlIGluIHRoaXMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHlsZS5oYXNPd25Qcm9wZXJ0eShzdHlsZSkgJiYgdGhpcy5zdHlsZVtzdHlsZV0gIT09IHNpYmxpbmcuc3R5bGVbc3R5bGVdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKHZhciBfc3R5bGUgaW4gc2libGluZy5zdHlsZSkge1xuICAgICAgICAgICAgICAgIGlmIChzaWJsaW5nLnN0eWxlLmhhc093blByb3BlcnR5KF9zdHlsZSkgJiYgdGhpcy5zdHlsZVtfc3R5bGVdICE9PSBzaWJsaW5nLnN0eWxlW19zdHlsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudmFsdWUgKz0gc2libGluZy52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gTWF0aC5tYXgodGhpcy5oZWlnaHQsIHNpYmxpbmcuaGVpZ2h0KTtcbiAgICAgICAgICAgIHRoaXMuZGVwdGggPSBNYXRoLm1heCh0aGlzLmRlcHRoLCBzaWJsaW5nLmRlcHRoKTtcbiAgICAgICAgICAgIHRoaXMuaXRhbGljID0gc2libGluZy5pdGFsaWM7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgdGV4dCBub2RlIG9yIHNwYW4gZnJvbSBhIHN5bWJvbCBub2RlLiBOb3RlIHRoYXQgYSBzcGFuIGlzIG9ubHlcbiAgICAgICAgICogY3JlYXRlZCBpZiBpdCBpcyBuZWVkZWQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9Ob2RlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b05vZGUoKSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdmFyIHNwYW4gPSBudWxsO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pdGFsaWMgPiAwKSB7XG4gICAgICAgICAgICAgICAgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICAgICAgICAgIHNwYW4uc3R5bGUubWFyZ2luUmlnaHQgPSB0aGlzLml0YWxpYyArIFwiZW1cIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgc3BhbiA9IHNwYW4gfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICAgICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSBjcmVhdGVDbGFzcyh0aGlzLmNsYXNzZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBzdHlsZSBpbiB0aGlzLnN0eWxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4gPSBzcGFuIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICAgICAgICAgICAgICAvLyAkRmxvd0ZpeE1lIEZsb3cgZG9lc24ndCBzZWVtIHRvIHVuZGVyc3RhbmQgc3Bhbi5zdHlsZSdzIHR5cGUuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc3R5bGVbc3R5bGVdID0gdGhpcy5zdHlsZVtzdHlsZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3Bhbikge1xuICAgICAgICAgICAgICAgIHNwYW4uYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNwYW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZXMgbWFya3VwIGZvciBhIHN5bWJvbCBub2RlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInRvTWFya3VwXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b01hcmt1cCgpIHtcbiAgICAgICAgICAgIC8vIFRPRE8oYWxwZXJ0KTogTW9yZSBkdXBsaWNhdGlvbiB0aGFuIEknZCBsaWtlIGZyb21cbiAgICAgICAgICAgIC8vIHNwYW4ucHJvdG90eXBlLnRvTWFya3VwIGFuZCBzeW1ib2xOb2RlLnByb3RvdHlwZS50b05vZGUuLi5cbiAgICAgICAgICAgIHZhciBuZWVkc1NwYW4gPSBmYWxzZTtcblxuICAgICAgICAgICAgdmFyIG1hcmt1cCA9IFwiPHNwYW5cIjtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBuZWVkc1NwYW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIG1hcmt1cCArPSBcIiBjbGFzcz1cXFwiXCI7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUoY3JlYXRlQ2xhc3ModGhpcy5jbGFzc2VzKSk7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IFwiXFxcIlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3R5bGVzID0gXCJcIjtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXRhbGljID4gMCkge1xuICAgICAgICAgICAgICAgIHN0eWxlcyArPSBcIm1hcmdpbi1yaWdodDpcIiArIHRoaXMuaXRhbGljICsgXCJlbTtcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAodmFyIHN0eWxlIGluIHRoaXMuc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHlsZS5oYXNPd25Qcm9wZXJ0eShzdHlsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzICs9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5oeXBoZW5hdGUoc3R5bGUpICsgXCI6XCIgKyB0aGlzLnN0eWxlW3N0eWxlXSArIFwiO1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHN0eWxlcykge1xuICAgICAgICAgICAgICAgIG5lZWRzU3BhbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIHN0eWxlPVxcXCJcIiArIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUoc3R5bGVzKSArIFwiXFxcIlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgZXNjYXBlZCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lc2NhcGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICBpZiAobmVlZHNTcGFuKSB7XG4gICAgICAgICAgICAgICAgbWFya3VwICs9IFwiPlwiO1xuICAgICAgICAgICAgICAgIG1hcmt1cCArPSBlc2NhcGVkO1xuICAgICAgICAgICAgICAgIG1hcmt1cCArPSBcIjwvc3Bhbj5cIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFya3VwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXNjYXBlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBzeW1ib2xOb2RlO1xufSgpO1xuXG4vKipcbiAqIFNWRyBub2RlcyBhcmUgdXNlZCB0byByZW5kZXIgc3RyZXRjaHkgd2lkZSBlbGVtZW50cy5cbiAqL1xuXG5cbnZhciBzdmdOb2RlID0gZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIHN2Z05vZGUoY2hpbGRyZW4sIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBzdmdOb2RlKTtcblxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW4gfHwgW107XG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gMDtcbiAgICAgICAgdGhpcy5kZXB0aCA9IDA7XG4gICAgICAgIHRoaXMubWF4Rm9udFNpemUgPSAwO1xuICAgIH1cbiAgICAvLyBSZXF1aXJlZCBmb3IgYWxsIGBEb21DaGlsZE5vZGVgcy4gQXJlIGFsd2F5cyAwIGZvciBzdmdOb2RlLlxuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKHN2Z05vZGUsIFt7XG4gICAgICAgIGtleTogXCJ0b05vZGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTm9kZSgpIHtcbiAgICAgICAgICAgIHZhciBzdmdOUyA9IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjtcbiAgICAgICAgICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2Z05TLCBcInN2Z1wiKTtcblxuICAgICAgICAgICAgLy8gQXBwbHkgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0ciwgdGhpcy5hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQodGhpcy5jaGlsZHJlbltpXS50b05vZGUoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInRvTWFya3VwXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b01hcmt1cCgpIHtcbiAgICAgICAgICAgIHZhciBtYXJrdXAgPSBcIjxzdmdcIjtcblxuICAgICAgICAgICAgLy8gQXBwbHkgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIFwiICsgYXR0ciArIFwiPSdcIiArIHRoaXMuYXR0cmlidXRlc1thdHRyXSArIFwiJ1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFya3VwICs9IFwiPlwiO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXJrdXAgKz0gdGhpcy5jaGlsZHJlbltpXS50b01hcmt1cCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXJrdXAgKz0gXCI8L3N2Zz5cIjtcblxuICAgICAgICAgICAgcmV0dXJuIG1hcmt1cDtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBzdmdOb2RlO1xufSgpO1xuXG52YXIgcGF0aE5vZGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gcGF0aE5vZGUocGF0aE5hbWUsIGFsdGVybmF0ZSkge1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCgpKHRoaXMsIHBhdGhOb2RlKTtcblxuICAgICAgICB0aGlzLnBhdGhOYW1lID0gcGF0aE5hbWU7XG4gICAgICAgIHRoaXMuYWx0ZXJuYXRlID0gYWx0ZXJuYXRlOyAvLyBVc2VkIG9ubHkgZm9yIHRhbGwgXFxzcXJ0XG4gICAgfVxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShwYXRoTm9kZSwgW3tcbiAgICAgICAga2V5OiBcInRvTm9kZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ob2RlKCkge1xuICAgICAgICAgICAgdmFyIHN2Z05TID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIFwicGF0aFwiKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYWx0ZXJuYXRlKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkXCIsIHRoaXMuYWx0ZXJuYXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkXCIsIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fc3ZnR2VvbWV0cnlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5wYXRoW3RoaXMucGF0aE5hbWVdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ0b01hcmt1cFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9NYXJrdXAoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hbHRlcm5hdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gXCI8cGF0aCBkPSdcIiArIHRoaXMuYWx0ZXJuYXRlICsgXCInLz5cIjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiPHBhdGggZD0nXCIgKyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3N2Z0dlb21ldHJ5X19bXCJhXCIgLyogZGVmYXVsdCAqL10ucGF0aFt0aGlzLnBhdGhOYW1lXSArIFwiJy8+XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gcGF0aE5vZGU7XG59KCk7XG5cbnZhciBsaW5lTm9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBsaW5lTm9kZShhdHRyaWJ1dGVzKSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgbGluZU5vZGUpO1xuXG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgfHwge307XG4gICAgfVxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShsaW5lTm9kZSwgW3tcbiAgICAgICAga2V5OiBcInRvTm9kZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gdG9Ob2RlKCkge1xuICAgICAgICAgICAgdmFyIHN2Z05TID0gXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiO1xuICAgICAgICAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnTlMsIFwibGluZVwiKTtcblxuICAgICAgICAgICAgLy8gQXBwbHkgYXR0cmlidXRlc1xuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoYXR0ciwgdGhpcy5hdHRyaWJ1dGVzW2F0dHJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6IFwidG9NYXJrdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHRvTWFya3VwKCkge1xuICAgICAgICAgICAgdmFyIG1hcmt1cCA9IFwiPGxpbmVcIjtcblxuICAgICAgICAgICAgZm9yICh2YXIgYXR0ciBpbiB0aGlzLmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXR0cmlidXRlcywgYXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFya3VwICs9IFwiIFwiICsgYXR0ciArIFwiPSdcIiArIHRoaXMuYXR0cmlidXRlc1thdHRyXSArIFwiJ1wiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWFya3VwICs9IFwiLz5cIjtcblxuICAgICAgICAgICAgcmV0dXJuIG1hcmt1cDtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBsaW5lTm9kZTtcbn0oKTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgc3Bhbjogc3BhbixcbiAgICBhbmNob3I6IGFuY2hvcixcbiAgICBkb2N1bWVudEZyYWdtZW50OiBkb2N1bWVudEZyYWdtZW50LFxuICAgIHN5bWJvbE5vZGU6IHN5bWJvbE5vZGUsXG4gICAgc3ZnTm9kZTogc3ZnTm9kZSxcbiAgICBwYXRoTm9kZTogcGF0aE5vZGUsXG4gICAgbGluZU5vZGU6IGxpbmVOb2RlXG59KTtcblxuLyoqKi8gfSksXG4vKiAxMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3NsaWNlZFRvQXJyYXlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNTcpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfc2xpY2VkVG9BcnJheV9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19zbGljZWRUb0FycmF5X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X191dGlsc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcblxuXG4vKipcbiAqIFRoaXMgZmlsZSBwcm92aWRlcyBzdXBwb3J0IHRvIGJ1aWxkTWF0aE1MLmpzIGFuZCBidWlsZEhUTUwuanNcbiAqIGZvciBzdHJldGNoeSB3aWRlIGVsZW1lbnRzIHJlbmRlcmVkIGZyb20gU1ZHIGZpbGVzXG4gKiBhbmQgb3RoZXIgQ1NTIHRyaWNrZXJ5LlxuICovXG5cblxuXG5cblxuXG52YXIgc3RyZXRjaHlDb2RlUG9pbnQgPSB7XG4gICAgd2lkZWhhdDogXCJeXCIsXG4gICAgd2lkZXRpbGRlOiBcIn5cIixcbiAgICB1dGlsZGU6IFwiflwiLFxuICAgIG92ZXJsZWZ0YXJyb3c6IFwiXFx1MjE5MFwiLFxuICAgIHVuZGVybGVmdGFycm93OiBcIlxcdTIxOTBcIixcbiAgICB4bGVmdGFycm93OiBcIlxcdTIxOTBcIixcbiAgICBvdmVycmlnaHRhcnJvdzogXCJcXHUyMTkyXCIsXG4gICAgdW5kZXJyaWdodGFycm93OiBcIlxcdTIxOTJcIixcbiAgICB4cmlnaHRhcnJvdzogXCJcXHUyMTkyXCIsXG4gICAgdW5kZXJicmFjZTogXCJcXHUyM0I1XCIsXG4gICAgb3ZlcmJyYWNlOiBcIlxcdTIzREVcIixcbiAgICBvdmVybGVmdHJpZ2h0YXJyb3c6IFwiXFx1MjE5NFwiLFxuICAgIHVuZGVybGVmdHJpZ2h0YXJyb3c6IFwiXFx1MjE5NFwiLFxuICAgIHhsZWZ0cmlnaHRhcnJvdzogXCJcXHUyMTk0XCIsXG4gICAgT3ZlcnJpZ2h0YXJyb3c6IFwiXFx1MjFEMlwiLFxuICAgIHhSaWdodGFycm93OiBcIlxcdTIxRDJcIixcbiAgICBvdmVybGVmdGhhcnBvb246IFwiXFx1MjFCQ1wiLFxuICAgIHhsZWZ0aGFycG9vbnVwOiBcIlxcdTIxQkNcIixcbiAgICBvdmVycmlnaHRoYXJwb29uOiBcIlxcdTIxQzBcIixcbiAgICB4cmlnaHRoYXJwb29udXA6IFwiXFx1MjFDMFwiLFxuICAgIHhMZWZ0YXJyb3c6IFwiXFx1MjFEMFwiLFxuICAgIHhMZWZ0cmlnaHRhcnJvdzogXCJcXHUyMUQ0XCIsXG4gICAgeGhvb2tsZWZ0YXJyb3c6IFwiXFx1MjFBOVwiLFxuICAgIHhob29rcmlnaHRhcnJvdzogXCJcXHUyMUFBXCIsXG4gICAgeG1hcHN0bzogXCJcXHUyMUE2XCIsXG4gICAgeHJpZ2h0aGFycG9vbmRvd246IFwiXFx1MjFDMVwiLFxuICAgIHhsZWZ0aGFycG9vbmRvd246IFwiXFx1MjFCRFwiLFxuICAgIHhyaWdodGxlZnRoYXJwb29uczogXCJcXHUyMUNDXCIsXG4gICAgeGxlZnRyaWdodGhhcnBvb25zOiBcIlxcdTIxQ0JcIixcbiAgICB4dHdvaGVhZGxlZnRhcnJvdzogXCJcXHUyMTlFXCIsXG4gICAgeHR3b2hlYWRyaWdodGFycm93OiBcIlxcdTIxQTBcIixcbiAgICB4bG9uZ2VxdWFsOiBcIj1cIixcbiAgICB4dG9mcm9tOiBcIlxcdTIxQzRcIixcbiAgICB4cmlnaHRsZWZ0YXJyb3dzOiBcIlxcdTIxQzRcIixcbiAgICB4cmlnaHRlcXVpbGlicml1bTogXCJcXHUyMUNDXCIsIC8vIE5vdCBhIHBlcmZlY3QgbWF0Y2guXG4gICAgeGxlZnRlcXVpbGlicml1bTogXCJcXHUyMUNCXCIgLy8gTm9uZSBiZXR0ZXIgYXZhaWxhYmxlLlxufTtcblxudmFyIG1hdGhNTG5vZGUgPSBmdW5jdGlvbiBtYXRoTUxub2RlKGxhYmVsKSB7XG4gICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRleHROb2RlKHN0cmV0Y2h5Q29kZVBvaW50W2xhYmVsLnN1YnN0cigxKV0pXSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJzdHJldGNoeVwiLCBcInRydWVcIik7XG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG4vLyBNYW55IG9mIHRoZSBLYVRlWCBTVkcgaW1hZ2VzIGhhdmUgYmVlbiBhZGFwdGVkIGZyb20gZ2x5cGhzIGluIEthVGVYIGZvbnRzLlxuLy8gQ29weXJpZ2h0IChjKSAyMDA5LTIwMTAsIERlc2lnbiBTY2llbmNlLCBJbmMuICg8d3d3Lm1hdGhqYXgub3JnPilcbi8vIENvcHlyaWdodCAoYykgMjAxNC0yMDE3IEtoYW4gQWNhZGVteSAoPHd3dy5raGFuYWNhZGVteS5vcmc+KVxuLy8gTGljZW5zZWQgdW5kZXIgdGhlIFNJTCBPcGVuIEZvbnQgTGljZW5zZSwgVmVyc2lvbiAxLjEuXG4vLyBTZWUgXFxuaHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkxcblxuLy8gVmVyeSBMb25nIFNWR3Ncbi8vICAgIE1hbnkgb2YgdGhlIEthVGVYIHN0cmV0Y2h5IHdpZGUgZWxlbWVudHMgdXNlIGEgbG9uZyBTVkcgaW1hZ2UgYW5kIGFuXG4vLyAgICBvdmVyZmxvdzogaGlkZGVuIHRhY3RpYyB0byBhY2hpZXZlIGEgc3RyZXRjaHkgaW1hZ2Ugd2hpbGUgYXZvaWRpbmdcbi8vICAgIGRpc3RvcnRpb24gb2YgYXJyb3doZWFkcyBvciBicmFjZSBjb3JuZXJzLlxuXG4vLyAgICBUaGUgU1ZHIHR5cGljYWxseSBjb250YWlucyBhIHZlcnkgbG9uZyAoNDAwIGVtKSBhcnJvdy5cblxuLy8gICAgVGhlIFNWRyBpcyBpbiBhIGNvbnRhaW5lciBzcGFuIHRoYXQgaGFzIG92ZXJmbG93OiBoaWRkZW4sIHNvIHRoZSBzcGFuXG4vLyAgICBhY3RzIGxpa2UgYSB3aW5kb3cgdGhhdCBleHBvc2VzIG9ubHkgcGFydCBvZiB0aGUgIFNWRy5cblxuLy8gICAgVGhlIFNWRyBhbHdheXMgaGFzIGEgbG9uZ2VyLCB0aGlubmVyIGFzcGVjdCByYXRpbyB0aGFuIHRoZSBjb250YWluZXIgc3Bhbi5cbi8vICAgIEFmdGVyIHRoZSBTVkcgZmlsbHMgMTAwJSBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBjb250YWluZXIgc3Bhbixcbi8vICAgIHRoZXJlIGlzIGEgbG9uZyBhcnJvdyBzaGFmdCBsZWZ0IG92ZXIuIFRoYXQgbGVmdC1vdmVyIHNoYWZ0IGlzIG5vdCBzaG93bi5cbi8vICAgIEluc3RlYWQsIGl0IGlzIHNsaWNlZCBvZmYgYmVjYXVzZSB0aGUgc3BhbidzIENTUyBoYXMgb3ZlcmZsb3c6IGhpZGRlbi5cblxuLy8gICAgVGh1cywgdGhlIHJlYWRlciBzZWVzIGFuIGFycm93IHRoYXQgbWF0Y2hlcyB0aGUgc3ViamVjdCBtYXR0ZXIgd2lkdGhcbi8vICAgIHdpdGhvdXQgZGlzdG9ydGlvbi5cblxuLy8gICAgU29tZSBmdW5jdGlvbnMsIHN1Y2ggYXMgXFxjYW5jZWwsIG5lZWQgdG8gdmFyeSB0aGVpciBhc3BlY3QgcmF0aW8uIFRoZXNlXG4vLyAgICBmdW5jdGlvbnMgZG8gbm90IGdldCB0aGUgb3ZlcmZsb3cgU1ZHIHRyZWF0bWVudC5cblxuLy8gU2Vjb25kIEJydXNoIFN0cm9rZVxuLy8gICAgTG93IHJlc29sdXRpb24gbW9uaXRvcnMgc3RydWdnbGUgdG8gZGlzcGxheSBpbWFnZXMgaW4gZmluZSBkZXRhaWwuXG4vLyAgICBTbyBicm93c2VycyBhcHBseSBhbnRpLWFsaWFzaW5nLiBBIGxvbmcgc3RyYWlnaHQgYXJyb3cgc2hhZnQgdGhlcmVmb3JlXG4vLyAgICB3aWxsIHNvbWV0aW1lcyBhcHBlYXIgYXMgaWYgaXQgaGFzIGEgYmx1cnJlZCBlZGdlLlxuXG4vLyAgICBUbyBtaXRpZ2F0ZSB0aGlzLCB0aGVzZSBTVkcgZmlsZXMgY29udGFpbiBhIHNlY29uZCBcImJydXNoLXN0cm9rZVwiIG9uIHRoZVxuLy8gICAgYXJyb3cgc2hhZnRzLiBUaGF0IGlzLCBhIHNlY29uZCBsb25nIHRoaW4gcmVjdGFuZ3VsYXIgU1ZHIHBhdGggaGFzIGJlZW5cbi8vICAgIHdyaXR0ZW4gZGlyZWN0bHkgb24gdG9wIG9mIGVhY2ggYXJyb3cgc2hhZnQuIFRoaXMgcmVpbmZvcmNlbWVudCBjYXVzZXNcbi8vICAgIHNvbWUgb2YgdGhlIHNjcmVlbiBwaXhlbHMgdG8gZGlzcGxheSBhcyBibGFjayBpbnN0ZWFkIG9mIHRoZSBhbnRpLWFsaWFzZWRcbi8vICAgIGdyYXkgcGl4ZWwgdGhhdCBhICBzaW5nbGUgcGF0aCB3b3VsZCBnZW5lcmF0ZS4gU28gd2UgZ2V0IGFycm93IHNoYWZ0c1xuLy8gICAgd2hvc2UgZWRnZXMgYXBwZWFyIHRvIGJlIHNoYXJwZXIuXG5cbi8vIEluIHRoZSBrYXRleEltYWdlc0RhdGEgb2JqZWN0IGp1c3QgYmVsb3csIHRoZSBkaW1lbnNpb25zIGFsbFxuLy8gY29ycmVzcG9uZCB0byBwYXRoIGdlb21ldHJ5IGluc2lkZSB0aGUgcmVsZXZhbnQgU1ZHLlxuLy8gRm9yIGV4YW1wbGUsIFxcb3ZlcnJpZ2h0YXJyb3cgdXNlcyB0aGUgc2FtZSBhcnJvd2hlYWQgYXMgZ2x5cGggVSsyMTkyXG4vLyBmcm9tIHRoZSBLYVRlWCBNYWluIGZvbnQuIFRoZSBzY2FsaW5nIGZhY3RvciBpcyAxMDAwLlxuLy8gVGhhdCBpcywgaW5zaWRlIHRoZSBmb250LCB0aGF0IGFycm93aGVhZCBpcyA1MjIgdW5pdHMgdGFsbCwgd2hpY2hcbi8vIGNvcnJlc3BvbmRzIHRvIDAuNTIyIGVtIGluc2lkZSB0aGUgZG9jdW1lbnQuXG5cbnZhciBrYXRleEltYWdlc0RhdGEgPSB7XG4gICAgLy8gICBwYXRoKHMpLCBtaW5XaWR0aCwgaGVpZ2h0LCBhbGlnblxuICAgIG92ZXJyaWdodGFycm93OiBbW1wicmlnaHRhcnJvd1wiXSwgMC44ODgsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgICBvdmVybGVmdGFycm93OiBbW1wibGVmdGFycm93XCJdLCAwLjg4OCwgNTIyLCBcInhNaW5ZTWluXCJdLFxuICAgIHVuZGVycmlnaHRhcnJvdzogW1tcInJpZ2h0YXJyb3dcIl0sIDAuODg4LCA1MjIsIFwieE1heFlNaW5cIl0sXG4gICAgdW5kZXJsZWZ0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIl0sIDAuODg4LCA1MjIsIFwieE1pbllNaW5cIl0sXG4gICAgeHJpZ2h0YXJyb3c6IFtbXCJyaWdodGFycm93XCJdLCAxLjQ2OSwgNTIyLCBcInhNYXhZTWluXCJdLFxuICAgIHhsZWZ0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIl0sIDEuNDY5LCA1MjIsIFwieE1pbllNaW5cIl0sXG4gICAgT3ZlcnJpZ2h0YXJyb3c6IFtbXCJkb3VibGVyaWdodGFycm93XCJdLCAwLjg4OCwgNTYwLCBcInhNYXhZTWluXCJdLFxuICAgIHhSaWdodGFycm93OiBbW1wiZG91YmxlcmlnaHRhcnJvd1wiXSwgMS41MjYsIDU2MCwgXCJ4TWF4WU1pblwiXSxcbiAgICB4TGVmdGFycm93OiBbW1wiZG91YmxlbGVmdGFycm93XCJdLCAxLjUyNiwgNTYwLCBcInhNaW5ZTWluXCJdLFxuICAgIG92ZXJsZWZ0aGFycG9vbjogW1tcImxlZnRoYXJwb29uXCJdLCAwLjg4OCwgNTIyLCBcInhNaW5ZTWluXCJdLFxuICAgIHhsZWZ0aGFycG9vbnVwOiBbW1wibGVmdGhhcnBvb25cIl0sIDAuODg4LCA1MjIsIFwieE1pbllNaW5cIl0sXG4gICAgeGxlZnRoYXJwb29uZG93bjogW1tcImxlZnRoYXJwb29uZG93blwiXSwgMC44ODgsIDUyMiwgXCJ4TWluWU1pblwiXSxcbiAgICBvdmVycmlnaHRoYXJwb29uOiBbW1wicmlnaHRoYXJwb29uXCJdLCAwLjg4OCwgNTIyLCBcInhNYXhZTWluXCJdLFxuICAgIHhyaWdodGhhcnBvb251cDogW1tcInJpZ2h0aGFycG9vblwiXSwgMC44ODgsIDUyMiwgXCJ4TWF4WU1pblwiXSxcbiAgICB4cmlnaHRoYXJwb29uZG93bjogW1tcInJpZ2h0aGFycG9vbmRvd25cIl0sIDAuODg4LCA1MjIsIFwieE1heFlNaW5cIl0sXG4gICAgeGxvbmdlcXVhbDogW1tcImxvbmdlcXVhbFwiXSwgMC44ODgsIDMzNCwgXCJ4TWluWU1pblwiXSxcbiAgICB4dHdvaGVhZGxlZnRhcnJvdzogW1tcInR3b2hlYWRsZWZ0YXJyb3dcIl0sIDAuODg4LCAzMzQsIFwieE1pbllNaW5cIl0sXG4gICAgeHR3b2hlYWRyaWdodGFycm93OiBbW1widHdvaGVhZHJpZ2h0YXJyb3dcIl0sIDAuODg4LCAzMzQsIFwieE1heFlNaW5cIl0sXG5cbiAgICBvdmVybGVmdHJpZ2h0YXJyb3c6IFtbXCJsZWZ0YXJyb3dcIiwgXCJyaWdodGFycm93XCJdLCAwLjg4OCwgNTIyXSxcbiAgICBvdmVyYnJhY2U6IFtbXCJsZWZ0YnJhY2VcIiwgXCJtaWRicmFjZVwiLCBcInJpZ2h0YnJhY2VcIl0sIDEuNiwgNTQ4XSxcbiAgICB1bmRlcmJyYWNlOiBbW1wibGVmdGJyYWNldW5kZXJcIiwgXCJtaWRicmFjZXVuZGVyXCIsIFwicmlnaHRicmFjZXVuZGVyXCJdLCAxLjYsIDU0OF0sXG4gICAgdW5kZXJsZWZ0cmlnaHRhcnJvdzogW1tcImxlZnRhcnJvd1wiLCBcInJpZ2h0YXJyb3dcIl0sIDAuODg4LCA1MjJdLFxuICAgIHhsZWZ0cmlnaHRhcnJvdzogW1tcImxlZnRhcnJvd1wiLCBcInJpZ2h0YXJyb3dcIl0sIDEuNzUsIDUyMl0sXG4gICAgeExlZnRyaWdodGFycm93OiBbW1wiZG91YmxlbGVmdGFycm93XCIsIFwiZG91YmxlcmlnaHRhcnJvd1wiXSwgMS43NSwgNTYwXSxcbiAgICB4cmlnaHRsZWZ0aGFycG9vbnM6IFtbXCJsZWZ0aGFycG9vbmRvd25wbHVzXCIsIFwicmlnaHRoYXJwb29ucGx1c1wiXSwgMS43NSwgNzE2XSxcbiAgICB4bGVmdHJpZ2h0aGFycG9vbnM6IFtbXCJsZWZ0aGFycG9vbnBsdXNcIiwgXCJyaWdodGhhcnBvb25kb3ducGx1c1wiXSwgMS43NSwgNzE2XSxcbiAgICB4aG9va2xlZnRhcnJvdzogW1tcImxlZnRhcnJvd1wiLCBcInJpZ2h0aG9va1wiXSwgMS4wOCwgNTIyXSxcbiAgICB4aG9va3JpZ2h0YXJyb3c6IFtbXCJsZWZ0aG9va1wiLCBcInJpZ2h0YXJyb3dcIl0sIDEuMDgsIDUyMl0sXG4gICAgb3ZlcmxpbmVzZWdtZW50OiBbW1wibGVmdGxpbmVzZWdtZW50XCIsIFwicmlnaHRsaW5lc2VnbWVudFwiXSwgMC44ODgsIDUyMl0sXG4gICAgdW5kZXJsaW5lc2VnbWVudDogW1tcImxlZnRsaW5lc2VnbWVudFwiLCBcInJpZ2h0bGluZXNlZ21lbnRcIl0sIDAuODg4LCA1MjJdLFxuICAgIG92ZXJncm91cDogW1tcImxlZnRncm91cFwiLCBcInJpZ2h0Z3JvdXBcIl0sIDAuODg4LCAzNDJdLFxuICAgIHVuZGVyZ3JvdXA6IFtbXCJsZWZ0Z3JvdXB1bmRlclwiLCBcInJpZ2h0Z3JvdXB1bmRlclwiXSwgMC44ODgsIDM0Ml0sXG4gICAgeG1hcHN0bzogW1tcImxlZnRtYXBzdG9cIiwgXCJyaWdodGFycm93XCJdLCAxLjUsIDUyMl0sXG4gICAgeHRvZnJvbTogW1tcImxlZnRUb0Zyb21cIiwgXCJyaWdodFRvRnJvbVwiXSwgMS43NSwgNTI4XSxcblxuICAgIC8vIFRoZSBuZXh0IHRocmVlIGFycm93cyBhcmUgZnJvbSB0aGUgbWhjaGVtIHBhY2thZ2UuXG4gICAgLy8gSW4gbWhjaGVtLnN0eSwgbWluLWxlbmd0aCBpcyAyLjBlbS4gQnV0IHRoZXNlIGFycm93cyBtaWdodCBhcHBlYXIgaW4gdGhlXG4gICAgLy8gZG9jdW1lbnQgYXMgXFx4cmlnaHRhcnJvdyBvciBcXHhyaWdodGxlZnRoYXJwb29ucy4gVGhvc2UgaGF2ZVxuICAgIC8vIG1pbi1sZW5ndGggPSAxLjc1ZW0sIHNvIHdlIHNldCBtaW4tbGVuZ3RoIG9uIHRoZXNlIG5leHQgdGhyZWUgdG8gbWF0Y2guXG4gICAgeHJpZ2h0bGVmdGFycm93czogW1tcImJhcmFib3ZlbGVmdGFycm93XCIsIFwicmlnaHRhcnJvd2Fib3ZlYmFyXCJdLCAxLjc1LCA2NjddLFxuICAgIHhyaWdodGVxdWlsaWJyaXVtOiBbW1wiYmFyYWJvdmVzaG9ydGxlZnRoYXJwb29uXCIsIFwicmlnaHRoYXJwb29uYWJvdmVzaG9ydGJhclwiXSwgMS43NSwgNzE2XSxcbiAgICB4bGVmdGVxdWlsaWJyaXVtOiBbW1wic2hvcnRiYXJhYm92ZWxlZnRoYXJwb29uXCIsIFwic2hvcnRyaWdodGhhcnBvb25hYm92ZWJhclwiXSwgMS43NSwgNzE2XVxufTtcblxudmFyIGdyb3VwTGVuZ3RoID0gZnVuY3Rpb24gZ3JvdXBMZW5ndGgoYXJnKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgICAgcmV0dXJuIGFyZy52YWx1ZS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxufTtcblxudmFyIHN2Z1NwYW4gPSBmdW5jdGlvbiBzdmdTcGFuKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgLy8gQ3JlYXRlIGEgc3BhbiB3aXRoIGlubGluZSBTVkcgZm9yIHRoZSBlbGVtZW50LlxuICAgIGZ1bmN0aW9uIGJ1aWxkU3ZnU3Bhbl8oKSB7XG4gICAgICAgIHZhciB2aWV3Qm94V2lkdGggPSA0MDAwMDA7IC8vIGRlZmF1bHRcbiAgICAgICAgdmFyIGxhYmVsID0gZ3JvdXAudmFsdWUubGFiZWwuc3Vic3RyKDEpO1xuICAgICAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKFtcIndpZGVoYXRcIiwgXCJ3aWRldGlsZGVcIiwgXCJ1dGlsZGVcIl0sIGxhYmVsKSkge1xuICAgICAgICAgICAgLy8gVGhlcmUgYXJlIGZvdXIgU1ZHIGltYWdlcyBhdmFpbGFibGUgZm9yIGVhY2ggZnVuY3Rpb24uXG4gICAgICAgICAgICAvLyBDaG9vc2UgYSB0YWxsZXIgaW1hZ2Ugd2hlbiB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0ZXJzLlxuICAgICAgICAgICAgdmFyIG51bUNoYXJzID0gZ3JvdXBMZW5ndGgoZ3JvdXAudmFsdWUuYmFzZSk7XG4gICAgICAgICAgICB2YXIgdmlld0JveEhlaWdodCA9IHZvaWQgMDtcbiAgICAgICAgICAgIHZhciBwYXRoTmFtZSA9IHZvaWQgMDtcbiAgICAgICAgICAgIHZhciBfaGVpZ2h0ID0gdm9pZCAwO1xuXG4gICAgICAgICAgICBpZiAobnVtQ2hhcnMgPiA1KSB7XG4gICAgICAgICAgICAgICAgdmlld0JveEhlaWdodCA9IGxhYmVsID09PSBcIndpZGVoYXRcIiA/IDQyMCA6IDMxMjtcbiAgICAgICAgICAgICAgICB2aWV3Qm94V2lkdGggPSBsYWJlbCA9PT0gXCJ3aWRlaGF0XCIgPyAyMzY0IDogMjM0MDtcbiAgICAgICAgICAgICAgICAvLyBOZXh0IGdldCB0aGUgc3BhbiBoZWlnaHQsIGluIDEwMDAgZW1zXG4gICAgICAgICAgICAgICAgX2hlaWdodCA9IGxhYmVsID09PSBcIndpZGVoYXRcIiA/IDAuNDIgOiAwLjM0O1xuICAgICAgICAgICAgICAgIHBhdGhOYW1lID0gKGxhYmVsID09PSBcIndpZGVoYXRcIiA/IFwid2lkZWhhdFwiIDogXCJ0aWxkZVwiKSArIFwiNFwiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgaW1nSW5kZXggPSBbMSwgMSwgMiwgMiwgMywgM11bbnVtQ2hhcnNdO1xuICAgICAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gXCJ3aWRlaGF0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveFdpZHRoID0gWzAsIDEwNjIsIDIzNjQsIDIzNjQsIDIzNjRdW2ltZ0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveEhlaWdodCA9IFswLCAyMzksIDMwMCwgMzYwLCA0MjBdW2ltZ0luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgX2hlaWdodCA9IFswLCAwLjI0LCAwLjMsIDAuMywgMC4zNiwgMC40Ml1baW1nSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBwYXRoTmFtZSA9IFwid2lkZWhhdFwiICsgaW1nSW5kZXg7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveFdpZHRoID0gWzAsIDYwMCwgMTAzMywgMjMzOSwgMjM0MF1baW1nSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94SGVpZ2h0ID0gWzAsIDI2MCwgMjg2LCAzMDYsIDMxMl1baW1nSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICBfaGVpZ2h0ID0gWzAsIDAuMjYsIDAuMjg2LCAwLjMsIDAuMzA2LCAwLjM0XVtpbWdJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHBhdGhOYW1lID0gXCJ0aWxkZVwiICsgaW1nSW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHBhdGggPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10ucGF0aE5vZGUocGF0aE5hbWUpO1xuICAgICAgICAgICAgdmFyIHN2Z05vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ZnTm9kZShbcGF0aF0sIHtcbiAgICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCI6IF9oZWlnaHQgKyBcImVtXCIsXG4gICAgICAgICAgICAgICAgXCJ2aWV3Qm94XCI6IFwiMCAwIFwiICsgdmlld0JveFdpZHRoICsgXCIgXCIgKyB2aWV3Qm94SGVpZ2h0LFxuICAgICAgICAgICAgICAgIFwicHJlc2VydmVBc3BlY3RSYXRpb1wiOiBcIm5vbmVcIlxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHNwYW46IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW3N2Z05vZGVdLCBvcHRpb25zKSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IF9oZWlnaHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgc3BhbnMgPSBbXTtcblxuICAgICAgICAgICAgdmFyIF9rYXRleEltYWdlc0RhdGEkbGFiZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfc2xpY2VkVG9BcnJheV9fX2RlZmF1bHQoKShrYXRleEltYWdlc0RhdGFbbGFiZWxdLCA0KSxcbiAgICAgICAgICAgICAgICBwYXRocyA9IF9rYXRleEltYWdlc0RhdGEkbGFiZVswXSxcbiAgICAgICAgICAgICAgICBfbWluV2lkdGggPSBfa2F0ZXhJbWFnZXNEYXRhJGxhYmVbMV0sXG4gICAgICAgICAgICAgICAgX3ZpZXdCb3hIZWlnaHQgPSBfa2F0ZXhJbWFnZXNEYXRhJGxhYmVbMl0sXG4gICAgICAgICAgICAgICAgYWxpZ24xID0gX2thdGV4SW1hZ2VzRGF0YSRsYWJlWzNdO1xuXG4gICAgICAgICAgICB2YXIgX2hlaWdodDIgPSBfdmlld0JveEhlaWdodCAvIDEwMDA7XG5cbiAgICAgICAgICAgIHZhciBudW1TdmdDaGlsZHJlbiA9IHBhdGhzLmxlbmd0aDtcbiAgICAgICAgICAgIHZhciB3aWR0aENsYXNzZXMgPSB2b2lkIDA7XG4gICAgICAgICAgICB2YXIgYWxpZ25zID0gdm9pZCAwO1xuICAgICAgICAgICAgaWYgKG51bVN2Z0NoaWxkcmVuID09PSAxKSB7XG4gICAgICAgICAgICAgICAgd2lkdGhDbGFzc2VzID0gW1wiaGlkZS10YWlsXCJdO1xuICAgICAgICAgICAgICAgIGFsaWducyA9IFthbGlnbjFdO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChudW1TdmdDaGlsZHJlbiA9PT0gMikge1xuICAgICAgICAgICAgICAgIHdpZHRoQ2xhc3NlcyA9IFtcImhhbGZhcnJvdy1sZWZ0XCIsIFwiaGFsZmFycm93LXJpZ2h0XCJdO1xuICAgICAgICAgICAgICAgIGFsaWducyA9IFtcInhNaW5ZTWluXCIsIFwieE1heFlNaW5cIl07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG51bVN2Z0NoaWxkcmVuID09PSAzKSB7XG4gICAgICAgICAgICAgICAgd2lkdGhDbGFzc2VzID0gW1wiYnJhY2UtbGVmdFwiLCBcImJyYWNlLWNlbnRlclwiLCBcImJyYWNlLXJpZ2h0XCJdO1xuICAgICAgICAgICAgICAgIGFsaWducyA9IFtcInhNaW5ZTWluXCIsIFwieE1pZFlNaW5cIiwgXCJ4TWF4WU1pblwiXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ29ycmVjdCBrYXRleEltYWdlc0RhdGEgb3IgdXBkYXRlIGNvZGUgaGVyZSB0byBzdXBwb3J0XFxuICAgICAgICAgICAgICAgICAgICBcIiArIG51bVN2Z0NoaWxkcmVuICsgXCIgY2hpbGRyZW4uXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bVN2Z0NoaWxkcmVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgX3BhdGggPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10ucGF0aE5vZGUocGF0aHNbaV0pO1xuXG4gICAgICAgICAgICAgICAgdmFyIF9zdmdOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN2Z05vZGUoW19wYXRoXSwge1xuICAgICAgICAgICAgICAgICAgICBcIndpZHRoXCI6IFwiNDAwZW1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIjogX2hlaWdodDIgKyBcImVtXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidmlld0JveFwiOiBcIjAgMCBcIiArIHZpZXdCb3hXaWR0aCArIFwiIFwiICsgX3ZpZXdCb3hIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIFwicHJlc2VydmVBc3BlY3RSYXRpb1wiOiBhbGlnbnNbaV0gKyBcIiBzbGljZVwiXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB2YXIgX3NwYW4gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW3dpZHRoQ2xhc3Nlc1tpXV0sIFtfc3ZnTm9kZV0sIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGlmIChudW1TdmdDaGlsZHJlbiA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBzcGFuOiBfc3BhbiwgbWluV2lkdGg6IF9taW5XaWR0aCwgaGVpZ2h0OiBfaGVpZ2h0MiB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9zcGFuLnN0eWxlLmhlaWdodCA9IF9oZWlnaHQyICsgXCJlbVwiO1xuICAgICAgICAgICAgICAgICAgICBzcGFucy5wdXNoKF9zcGFuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3BhbjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcInN0cmV0Y2h5XCJdLCBzcGFucywgb3B0aW9ucyksXG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IF9taW5XaWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IF9oZWlnaHQyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSAvLyBidWlsZFN2Z1NwYW5fKClcblxuICAgIHZhciBfYnVpbGRTdmdTcGFuXyA9IGJ1aWxkU3ZnU3Bhbl8oKSxcbiAgICAgICAgc3BhbiA9IF9idWlsZFN2Z1NwYW5fLnNwYW4sXG4gICAgICAgIG1pbldpZHRoID0gX2J1aWxkU3ZnU3Bhbl8ubWluV2lkdGgsXG4gICAgICAgIGhlaWdodCA9IF9idWlsZFN2Z1NwYW5fLmhlaWdodDtcblxuICAgIC8vIE5vdGUgdGhhdCB3ZSBhcmUgcmV0dXJuaW5nIHNwYW4uZGVwdGggPSAwLlxuICAgIC8vIEFueSBhZGp1c3RtZW50cyByZWxhdGl2ZSB0byB0aGUgYmFzZWxpbmUgbXVzdCBiZSBkb25lIGluIGJ1aWxkSFRNTC5cblxuXG4gICAgc3Bhbi5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgc3Bhbi5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyBcImVtXCI7XG4gICAgaWYgKG1pbldpZHRoID4gMCkge1xuICAgICAgICBzcGFuLnN0eWxlLm1pbldpZHRoID0gbWluV2lkdGggKyBcImVtXCI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNwYW47XG59O1xuXG52YXIgZW5jbG9zZVNwYW4gPSBmdW5jdGlvbiBlbmNsb3NlU3Bhbihpbm5lciwgbGFiZWwsIHBhZCwgb3B0aW9ucykge1xuICAgIC8vIFJldHVybiBhbiBpbWFnZSBzcGFuIGZvciBcXGNhbmNlbCwgXFxiY2FuY2VsLCBcXHhjYW5jZWwsIG9yIFxcZmJveFxuICAgIHZhciBpbWcgPSB2b2lkIDA7XG4gICAgdmFyIHRvdGFsSGVpZ2h0ID0gaW5uZXIuaGVpZ2h0ICsgaW5uZXIuZGVwdGggKyAyICogcGFkO1xuXG4gICAgaWYgKC9mYm94fGNvbG9yLy50ZXN0KGxhYmVsKSkge1xuICAgICAgICBpbWcgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wic3RyZXRjaHlcIiwgbGFiZWxdLCBbXSwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKGxhYmVsID09PSBcImZib3hcIikge1xuICAgICAgICAgICAgdmFyIGNvbG9yID0gb3B0aW9ucy5jb2xvciAmJiBvcHRpb25zLmdldENvbG9yKCk7XG4gICAgICAgICAgICBpZiAoY29sb3IpIHtcbiAgICAgICAgICAgICAgICBpbWcuc3R5bGUuYm9yZGVyQ29sb3IgPSBjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFxcY2FuY2VsLCBcXGJjYW5jZWwsIG9yIFxceGNhbmNlbFxuICAgICAgICAvLyBTaW5jZSBcXGNhbmNlbCdzIFNWRyBpcyBpbmxpbmUgYW5kIGl0IG9taXRzIHRoZSB2aWV3Qm94IGF0dHJpYnV0ZSxcbiAgICAgICAgLy8gaXRzIHN0cm9rZS13aWR0aCB3aWxsIG5vdCB2YXJ5IHdpdGggc3BhbiBhcmVhLlxuXG4gICAgICAgIHZhciBsaW5lcyA9IFtdO1xuICAgICAgICBpZiAoL15bYnhdY2FuY2VsJC8udGVzdChsYWJlbCkpIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2gobmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmxpbmVOb2RlKHtcbiAgICAgICAgICAgICAgICBcIngxXCI6IFwiMFwiLFxuICAgICAgICAgICAgICAgIFwieTFcIjogXCIwXCIsXG4gICAgICAgICAgICAgICAgXCJ4MlwiOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICBcInkyXCI6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFwiMC4wNDZlbVwiXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoL154P2NhbmNlbCQvLnRlc3QobGFiZWwpKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5saW5lTm9kZSh7XG4gICAgICAgICAgICAgICAgXCJ4MVwiOiBcIjBcIixcbiAgICAgICAgICAgICAgICBcInkxXCI6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgIFwieDJcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgXCJ5MlwiOiBcIjBcIixcbiAgICAgICAgICAgICAgICBcInN0cm9rZS13aWR0aFwiOiBcIjAuMDQ2ZW1cIlxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN2Z05vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ZnTm9kZShsaW5lcywge1xuICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjEwMCVcIixcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IHRvdGFsSGVpZ2h0ICsgXCJlbVwiXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGltZyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW3N2Z05vZGVdLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBpbWcuaGVpZ2h0ID0gdG90YWxIZWlnaHQ7XG4gICAgaW1nLnN0eWxlLmhlaWdodCA9IHRvdGFsSGVpZ2h0ICsgXCJlbVwiO1xuXG4gICAgcmV0dXJuIGltZztcbn07XG5cbnZhciBydWxlU3BhbiA9IGZ1bmN0aW9uIHJ1bGVTcGFuKGNsYXNzTmFtZSwgbGluZVRoaWNrbmVzcywgb3B0aW9ucykge1xuXG4gICAgLy8gR2V0IGEgc3BhbiB3aXRoIGFuIFNWRyBwYXRoIHRoYXQgZmlsbHMgdGhlIG1pZGRsZSBmaWZ0aCBvZiB0aGUgc3Bhbi5cbiAgICAvLyBXZSdyZSB1c2luZyBhbiBleHRyYSB3aWRlIHNwYW4gc28gQ2hyb21lIHdvbid0IHJvdW5kIGl0IGRvd24gdG8gemVyby5cblxuICAgIHZhciBwYXRoID0gdm9pZCAwO1xuICAgIHZhciBzdmdOb2RlID0gdm9pZCAwO1xuICAgIHZhciBwYXJlbnRDbGFzcyA9IFwic3RyZXRjaHlcIjsgLy8gZGVmYXVsdFxuXG4gICAgaWYgKGNsYXNzTmFtZSA9PT0gXCJ2ZXJ0aWNhbC1zZXBhcmF0b3JcIikge1xuICAgICAgICBwYXRoID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnBhdGhOb2RlKFwidmVydFNlcGFyYXRvclwiKTtcbiAgICAgICAgc3ZnTm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zdmdOb2RlKFtwYXRoXSwge1xuICAgICAgICAgICAgXCJ3aWR0aFwiOiBcIjAuMjVlbVwiLCAvLyBjb250YWlucyBhIHBhdGggdGhhdCBpcyAwLjA1IGVtcyB3aWRlLlxuICAgICAgICAgICAgXCJoZWlnaHRcIjogXCI0MDBlbVwiLFxuICAgICAgICAgICAgXCJ2aWV3Qm94XCI6IFwiMCAwIDI1MCA0MDAwMDBcIixcbiAgICAgICAgICAgIFwicHJlc2VydmVBc3BlY3RSYXRpb1wiOiBcInhNaW5ZTWluIHNsaWNlXCJcbiAgICAgICAgfSk7XG4gICAgICAgIHBhcmVudENsYXNzID0gXCJ2ZXJ0aWNhbC1zZXBhcmF0b3JcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgbmV4dCB0d28gbGluZXMgYXJlIHRoZSBvbmx5IHBsYWNlIGluIEthVGVYIHdoZXJlIFNWRyBwYXRocyBhcmVcbiAgICAgICAgLy8gcHV0IGludG8gYSB2aWV3Qm94IHRoYXQgaXMgbm90IGFsd2F5cyBleGFjdGx5IGEgMTAwMDoxIHNjYWxlIHRvIHRoZVxuICAgICAgICAvLyBkb2N1bWVudCBlbSBzaXplLiBJbnN0ZWFkLCB0aGUgcGF0aCBpcyBhIGhvcml6b250YWwgbGluZSBzZXQgdG9cbiAgICAgICAgLy8gdGFrZSB1cCB0aGUgbWlkZGxlIGZpZnRoIG9mIHRoZSB2aWV3Qm94IGFuZCBzcGFuLiBJZiB0aGUgY29udGV4dCBpc1xuICAgICAgICAvLyBub3JtYWxzaXplL3RleHRzdHlsZSB0aGVuIHRoZSBsaW5lIHdpbGwgYmUgMC4wNGVtIGFuZCB0aGUgdXN1YWxcbiAgICAgICAgLy8gMTAwMDoxIHJhdGlvIGhvbGRzLiBCdXQgaWYgdGhlIGNvbnRleHQgaXMgc2NyaXB0c3R5bGUsIHRoZW5cbiAgICAgICAgLy8gbGluZVRoaWNrbmVzcyA+IDAuMDRlbSBhbmQgd2UgaGF2ZSBhIHJhdGlvIHNvbWV3aGF0IGRpZmZlcmVudCB0aGFuXG4gICAgICAgIC8vIDEwMDA6MS5cblxuICAgICAgICBwYXRoID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnBhdGhOb2RlKFwic3RkSG9yaXpSdWxlXCIpO1xuICAgICAgICBzdmdOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN2Z05vZGUoW3BhdGhdLCB7XG4gICAgICAgICAgICBcIndpZHRoXCI6IFwiNDAwZW1cIixcbiAgICAgICAgICAgIFwiaGVpZ2h0XCI6IDUgKiBsaW5lVGhpY2tuZXNzICsgXCJlbVwiLFxuICAgICAgICAgICAgXCJ2aWV3Qm94XCI6IFwiMCAwIDQwMDAwMCAyMDBcIixcbiAgICAgICAgICAgIFwicHJlc2VydmVBc3BlY3RSYXRpb1wiOiBcInhNaW5ZTWluIHNsaWNlXCJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbcGFyZW50Q2xhc3NdLCBbc3ZnTm9kZV0sIG9wdGlvbnMpO1xufTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgZW5jbG9zZVNwYW46IGVuY2xvc2VTcGFuLFxuICAgIG1hdGhNTG5vZGU6IG1hdGhNTG5vZGUsXG4gICAgcnVsZVNwYW46IHJ1bGVTcGFuLFxuICAgIHN2Z1NwYW46IHN2Z1NwYW5cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDE0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1NvdXJjZUxvY2F0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMxKTtcblxuXG5cbi8qKlxuICogVGhlIHJlc3VsdGluZyBwYXJzZSB0cmVlIG5vZGVzIG9mIHRoZSBwYXJzZSB0cmVlLlxuICpcbiAqIEl0IGlzIHBvc3NpYmxlIHRvIHByb3ZpZGUgcG9zaXRpb24gaW5mb3JtYXRpb24sIHNvIHRoYXQgYSBgUGFyc2VOb2RlYCBjYW5cbiAqIGZ1bGZpbGwgYSByb2xlIHNpbWlsYXIgdG8gYSBgVG9rZW5gIGluIGVycm9yIHJlcG9ydGluZy5cbiAqIEZvciBkZXRhaWxzIG9uIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnRpZXMgc2VlIGBUb2tlbmAgY29uc3RydWN0b3IuXG4gKiBQcm92aWRpbmcgc3VjaCBpbmZvcm1hdGlvbiBjYW4gbGVhZCB0byBiZXR0ZXIgZXJyb3IgcmVwb3J0aW5nLlxuICovXG52YXIgUGFyc2VOb2RlID0gZnVuY3Rpb24gUGFyc2VOb2RlKHR5cGUsIC8vIHR5cGUgb2Ygbm9kZSwgbGlrZSBlLmcuIFwib3JkZ3JvdXBcIlxudmFsdWUsIC8vIHR5cGUtc3BlY2lmaWMgcmVwcmVzZW50YXRpb24gb2YgdGhlIG5vZGVcbm1vZGUsIC8vIHBhcnNlIG1vZGUgaW4gYWN0aW9uIGZvciB0aGlzIG5vZGUsIFwibWF0aFwiIG9yIFwidGV4dFwiXG5maXJzdCwgLy8gZmlyc3QgdG9rZW4gb3Igbm9kZSBvZiB0aGUgaW5wdXQgZm9yXG5sYXN0KSAvLyBsYXN0IHRva2VuIG9yIG5vZGUgb2YgdGhlIGlucHV0IGZvciB0aGlzXG4vLyBub2RlLCB3aWxsIGRlZmF1bHQgdG8gZmlyc3RUb2tlbiBpZiB1bnNldFxue1xuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgUGFyc2VOb2RlKTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgdGhpcy5sb2MgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1NvdXJjZUxvY2F0aW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ucmFuZ2UoZmlyc3QsIGxhc3QpO1xufTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IChQYXJzZU5vZGUpO1xuXG4vKioqLyB9KSxcbi8qIDE1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBhbk9iamVjdCAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpXG4gICwgSUU4X0RPTV9ERUZJTkUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcwKVxuICAsIHRvUHJpbWl0aXZlICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3MSlcbiAgLCBkUCAgICAgICAgICAgICA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuZXhwb3J0cy5mID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKXtcbiAgYW5PYmplY3QoTyk7XG4gIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmKElFOF9ET01fREVGSU5FKXRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoKGUpeyAvKiBlbXB0eSAqLyB9XG4gIGlmKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcyl0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkIScpO1xuICBpZigndmFsdWUnIGluIEF0dHJpYnV0ZXMpT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcblxuLyoqKi8gfSksXG4vKiAxNiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTExNTc1OTAyOFxudmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoXG4gID8gd2luZG93IDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgJiYgc2VsZi5NYXRoID09IE1hdGggPyBzZWxmIDogRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcbmlmKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpX19nID0gZ2xvYmFsOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVmXG5cbi8qKiovIH0pLFxuLyogMTcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLyoqKi8gfSksXG4vKiAxOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IF9fd2VicGFja19yZXF1aXJlX18oMTAzKSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG4vKioqLyB9KSxcbi8qIDE5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImJcIiwgZnVuY3Rpb24oKSB7IHJldHVybiB2YWxpZFVuaXQ7IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImFcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjYWxjdWxhdGVTaXplOyB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19PcHRpb25zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQzKTtcblxuXG4vKipcbiAqIFRoaXMgZmlsZSBkb2VzIGNvbnZlcnNpb24gYmV0d2VlbiB1bml0cy4gIEluIHBhcnRpY3VsYXIsIGl0IHByb3ZpZGVzXG4gKiBjYWxjdWxhdGVTaXplIHRvIGNvbnZlcnQgb3RoZXIgdW5pdHMgaW50byBlbXMuXG4gKi9cblxuXG5cblxuLy8gVGhpcyB0YWJsZSBnaXZlcyB0aGUgbnVtYmVyIG9mIFRlWCBwdHMgaW4gb25lIG9mIGVhY2ggKmFic29sdXRlKiBUZVggdW5pdC5cbi8vIFRodXMsIG11bHRpcGx5aW5nIGEgbGVuZ3RoIGJ5IHRoaXMgbnVtYmVyIGNvbnZlcnRzIHRoZSBsZW5ndGggZnJvbSB1bml0c1xuLy8gaW50byBwdHMuICBEaXZpZGluZyB0aGUgcmVzdWx0IGJ5IHB0UGVyRW0gZ2l2ZXMgdGhlIG51bWJlciBvZiBlbXNcbi8vICphc3N1bWluZyogYSBmb250IHNpemUgb2YgcHRQZXJFbSAobm9ybWFsIHNpemUsIG5vcm1hbCBzdHlsZSkuXG52YXIgcHRQZXJVbml0ID0ge1xuICAgIC8vIGh0dHBzOi8vZW4ud2lraWJvb2tzLm9yZy93aWtpL0xhVGVYL0xlbmd0aHMgYW5kXG4gICAgLy8gaHR0cHM6Ly90ZXguc3RhY2tleGNoYW5nZS5jb20vYS84MjYzXG4gICAgXCJwdFwiOiAxLCAvLyBUZVggcG9pbnRcbiAgICBcIm1tXCI6IDcyMjcgLyAyNTQwLCAvLyBtaWxsaW1ldGVyXG4gICAgXCJjbVwiOiA3MjI3IC8gMjU0LCAvLyBjZW50aW1ldGVyXG4gICAgXCJpblwiOiA3Mi4yNywgLy8gaW5jaFxuICAgIFwiYnBcIjogODAzIC8gODAwLCAvLyBiaWcgKFBvc3RTY3JpcHQpIHBvaW50c1xuICAgIFwicGNcIjogMTIsIC8vIHBpY2FcbiAgICBcImRkXCI6IDEyMzggLyAxMTU3LCAvLyBkaWRvdFxuICAgIFwiY2NcIjogMTQ4NTYgLyAxMTU3LCAvLyBjaWNlcm8gKDEyIGRpZG90KVxuICAgIFwibmRcIjogNjg1IC8gNjQyLCAvLyBuZXcgZGlkb3RcbiAgICBcIm5jXCI6IDEzNzAgLyAxMDcsIC8vIG5ldyBjaWNlcm8gKDEyIG5ldyBkaWRvdClcbiAgICBcInNwXCI6IDEgLyA2NTUzNiwgLy8gc2NhbGVkIHBvaW50IChUZVgncyBpbnRlcm5hbCBzbWFsbGVzdCB1bml0KVxuICAgIC8vIGh0dHBzOi8vdGV4LnN0YWNrZXhjaGFuZ2UuY29tL2EvNDEzNzFcbiAgICBcInB4XCI6IDgwMyAvIDgwMCAvLyBcXHBkZnB4ZGltZW4gZGVmYXVsdHMgdG8gMSBicCBpbiBwZGZUZVggYW5kIEx1YVRlWFxufTtcblxuLy8gRGljdGlvbmFyeSBvZiByZWxhdGl2ZSB1bml0cywgZm9yIGZhc3QgdmFsaWRpdHkgdGVzdGluZy5cbnZhciByZWxhdGl2ZVVuaXQgPSB7XG4gICAgXCJleFwiOiB0cnVlLFxuICAgIFwiZW1cIjogdHJ1ZSxcbiAgICBcIm11XCI6IHRydWVcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNwZWNpZmllZCB1bml0IChlaXRoZXIgYSBzdHJpbmcgZGVmaW5pbmcgdGhlIHVuaXRcbiAqIG9yIGEgXCJzaXplXCIgcGFyc2Ugbm9kZSBjb250YWluaW5nIGEgdW5pdCBmaWVsZCkgaXMgdmFsaWQuXG4gKi9cbnZhciB2YWxpZFVuaXQgPSBmdW5jdGlvbiB2YWxpZFVuaXQodW5pdCkge1xuICAgIGlmICh0eXBlb2YgdW5pdCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB1bml0ID0gdW5pdC51bml0O1xuICAgIH1cbiAgICByZXR1cm4gdW5pdCBpbiBwdFBlclVuaXQgfHwgdW5pdCBpbiByZWxhdGl2ZVVuaXQgfHwgdW5pdCA9PT0gXCJleFwiO1xufTtcblxuLypcbiAqIENvbnZlcnQgYSBcInNpemVcIiBwYXJzZSBub2RlICh3aXRoIG51bWVyaWMgXCJudW1iZXJcIiBhbmQgc3RyaW5nIFwidW5pdFwiIGZpZWxkcyxcbiAqIGFzIHBhcnNlZCBieSBmdW5jdGlvbnMuanMgYXJnVHlwZSBcInNpemVcIikgaW50byBhIENTUyBlbSB2YWx1ZSBmb3IgdGhlXG4gKiBjdXJyZW50IHN0eWxlL3NjYWxlLiAgYG9wdGlvbnNgIGdpdmVzIHRoZSBjdXJyZW50IG9wdGlvbnMuXG4gKi9cbnZhciBjYWxjdWxhdGVTaXplID0gZnVuY3Rpb24gY2FsY3VsYXRlU2l6ZShzaXplVmFsdWUsIG9wdGlvbnMpIHtcbiAgICB2YXIgc2NhbGUgPSB2b2lkIDA7XG4gICAgaWYgKHNpemVWYWx1ZS51bml0IGluIHB0UGVyVW5pdCkge1xuICAgICAgICAvLyBBYnNvbHV0ZSB1bml0c1xuICAgICAgICBzY2FsZSA9IHB0UGVyVW5pdFtzaXplVmFsdWUudW5pdF0gLy8gQ29udmVydCB1bml0IHRvIHB0XG4gICAgICAgIC8gb3B0aW9ucy5mb250TWV0cmljcygpLnB0UGVyRW0gLy8gQ29udmVydCBwdCB0byBDU1MgZW1cbiAgICAgICAgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyOyAvLyBVbnNjYWxlIHRvIG1ha2UgYWJzb2x1dGUgdW5pdHNcbiAgICB9IGVsc2UgaWYgKHNpemVWYWx1ZS51bml0ID09PSBcIm11XCIpIHtcbiAgICAgICAgLy8gYG11YCB1bml0cyBzY2FsZSB3aXRoIHNjcmlwdHN0eWxlL3NjcmlwdHNjcmlwdHN0eWxlLlxuICAgICAgICBzY2FsZSA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5jc3NFbVBlck11O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE90aGVyIHJlbGF0aXZlIHVuaXRzIGFsd2F5cyByZWZlciB0byB0aGUgKnRleHRzdHlsZSogZm9udFxuICAgICAgICAvLyBpbiB0aGUgY3VycmVudCBzaXplLlxuICAgICAgICB2YXIgdW5pdE9wdGlvbnMgPSB2b2lkIDA7XG4gICAgICAgIGlmIChvcHRpb25zLnN0eWxlLmlzVGlnaHQoKSkge1xuICAgICAgICAgICAgLy8gaXNUaWdodCgpIG1lYW5zIGN1cnJlbnQgc3R5bGUgaXMgc2NyaXB0L3NjcmlwdHNjcmlwdC5cbiAgICAgICAgICAgIHVuaXRPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShvcHRpb25zLnN0eWxlLnRleHQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bml0T3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETzogSW4gVGVYIHRoZXNlIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgcXVhZCBvZiB0aGUgY3VycmVudFxuICAgICAgICAvLyAqdGV4dCogZm9udCwgZS5nLiBjbXIxMC4gS2FUZVggaW5zdGVhZCB1c2VzIHZhbHVlcyBmcm9tIHRoZVxuICAgICAgICAvLyBjb21wYXJhYmx5LXNpemVkICpDb21wdXRlciBNb2Rlcm4gc3ltYm9sKiBmb250LiBBdCAxMHB0LCB0aGVzZVxuICAgICAgICAvLyBtYXRjaC4gQXQgN3B0IGFuZCA1cHQsIHRoZXkgZGlmZmVyOiBjbXI3PTEuMTM4ODk0LCBjbXN5Nz0xLjE3MDY0MTtcbiAgICAgICAgLy8gY21yNT0xLjM2MTEzMywgY21zeTU9MS40NzIyNDEuIENvbnNpZGVyICRcXHNjcmlwdHNpemUgYVxca2VybjFlbWIkLlxuICAgICAgICAvLyBUZVggXFxzaG93bGlzdHMgc2hvd3MgYSBrZXJuIG9mIDEuMTM4ODkgKiBmb250c2l6ZTtcbiAgICAgICAgLy8gS2FUZVggc2hvd3MgYSBrZXJuIG9mIDEuMTcxICogZm9udHNpemUuXG4gICAgICAgIGlmIChzaXplVmFsdWUudW5pdCA9PT0gXCJleFwiKSB7XG4gICAgICAgICAgICBzY2FsZSA9IHVuaXRPcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgICAgICAgfSBlbHNlIGlmIChzaXplVmFsdWUudW5pdCA9PT0gXCJlbVwiKSB7XG4gICAgICAgICAgICBzY2FsZSA9IHVuaXRPcHRpb25zLmZvbnRNZXRyaWNzKCkucXVhZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkludmFsaWQgdW5pdDogJ1wiICsgc2l6ZVZhbHVlLnVuaXQgKyBcIidcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVuaXRPcHRpb25zICE9PSBvcHRpb25zKSB7XG4gICAgICAgICAgICBzY2FsZSAqPSB1bml0T3B0aW9ucy5zaXplTXVsdGlwbGllciAvIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE1hdGgubWluKHNpemVWYWx1ZS5udW1iZXIgKiBzY2FsZSwgb3B0aW9ucy5tYXhTaXplKTtcbn07XG5cbi8qKiovIH0pLFxuLyogMjAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIHJldHVybiB0eXBlb2YgaXQgPT09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiB0eXBlb2YgaXQgPT09ICdmdW5jdGlvbic7XG59O1xuXG4vKioqLyB9KSxcbi8qIDIxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHt9Lmhhc093blByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCwga2V5KXtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDIyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjApO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIGlmKCFpc09iamVjdChpdCkpdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgYW4gb2JqZWN0IScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG4vKioqLyB9KSxcbi8qIDIzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIV9fd2VicGFja19yZXF1aXJlX18oMjQpKGZ1bmN0aW9uKCl7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywge2dldDogZnVuY3Rpb24oKXsgcmV0dXJuIDc7IH19KS5hICE9IDc7XG59KTtcblxuLyoqKi8gfSksXG4vKiAyNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGV4ZWMpe1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaChlKXtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufTtcblxuLyoqKi8gfSksXG4vKiAyNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG52YXIgZ2xvYmFsICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNilcbiAgLCBjb3JlICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpXG4gICwgY3R4ICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NylcbiAgLCBoaWRlICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2KVxuICAsIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xuXG52YXIgJGV4cG9ydCA9IGZ1bmN0aW9uKHR5cGUsIG5hbWUsIHNvdXJjZSl7XG4gIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GXG4gICAgLCBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HXG4gICAgLCBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TXG4gICAgLCBJU19QUk9UTyAgPSB0eXBlICYgJGV4cG9ydC5QXG4gICAgLCBJU19CSU5EICAgPSB0eXBlICYgJGV4cG9ydC5CXG4gICAgLCBJU19XUkFQICAgPSB0eXBlICYgJGV4cG9ydC5XXG4gICAgLCBleHBvcnRzICAgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KVxuICAgICwgZXhwUHJvdG8gID0gZXhwb3J0c1tQUk9UT1RZUEVdXG4gICAgLCB0YXJnZXQgICAgPSBJU19HTE9CQUwgPyBnbG9iYWwgOiBJU19TVEFUSUMgPyBnbG9iYWxbbmFtZV0gOiAoZ2xvYmFsW25hbWVdIHx8IHt9KVtQUk9UT1RZUEVdXG4gICAgLCBrZXksIG93biwgb3V0O1xuICBpZihJU19HTE9CQUwpc291cmNlID0gbmFtZTtcbiAgZm9yKGtleSBpbiBzb3VyY2Upe1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgaWYob3duICYmIGtleSBpbiBleHBvcnRzKWNvbnRpbnVlO1xuICAgIC8vIGV4cG9ydCBuYXRpdmUgb3IgcGFzc2VkXG4gICAgb3V0ID0gb3duID8gdGFyZ2V0W2tleV0gOiBzb3VyY2Vba2V5XTtcbiAgICAvLyBwcmV2ZW50IGdsb2JhbCBwb2xsdXRpb24gZm9yIG5hbWVzcGFjZXNcbiAgICBleHBvcnRzW2tleV0gPSBJU19HTE9CQUwgJiYgdHlwZW9mIHRhcmdldFtrZXldICE9ICdmdW5jdGlvbicgPyBzb3VyY2Vba2V5XVxuICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0XG4gICAgOiBJU19CSU5EICYmIG93biA/IGN0eChvdXQsIGdsb2JhbClcbiAgICAvLyB3cmFwIGdsb2JhbCBjb25zdHJ1Y3RvcnMgZm9yIHByZXZlbnQgY2hhbmdlIHRoZW0gaW4gbGlicmFyeVxuICAgIDogSVNfV1JBUCAmJiB0YXJnZXRba2V5XSA9PSBvdXQgPyAoZnVuY3Rpb24oQyl7XG4gICAgICB2YXIgRiA9IGZ1bmN0aW9uKGEsIGIsIGMpe1xuICAgICAgICBpZih0aGlzIGluc3RhbmNlb2YgQyl7XG4gICAgICAgICAgc3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe1xuICAgICAgICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEM7XG4gICAgICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgQyhhKTtcbiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDKGEsIGIpO1xuICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpO1xuICAgICAgICB9IHJldHVybiBDLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdO1xuICAgICAgcmV0dXJuIEY7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5tZXRob2RzLiVOQU1FJVxuICAgIGlmKElTX1BST1RPKXtcbiAgICAgIChleHBvcnRzLnZpcnR1YWwgfHwgKGV4cG9ydHMudmlydHVhbCA9IHt9KSlba2V5XSA9IG91dDtcbiAgICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5wcm90b3R5cGUuJU5BTUUlXG4gICAgICBpZih0eXBlICYgJGV4cG9ydC5SICYmIGV4cFByb3RvICYmICFleHBQcm90b1trZXldKWhpZGUoZXhwUHJvdG8sIGtleSwgb3V0KTtcbiAgICB9XG4gIH1cbn07XG4vLyB0eXBlIGJpdG1hcFxuJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWRcbiRleHBvcnQuRyA9IDI7ICAgLy8gZ2xvYmFsXG4kZXhwb3J0LlMgPSA0OyAgIC8vIHN0YXRpY1xuJGV4cG9ydC5QID0gODsgICAvLyBwcm90b1xuJGV4cG9ydC5CID0gMTY7ICAvLyBiaW5kXG4kZXhwb3J0LlcgPSAzMjsgIC8vIHdyYXBcbiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZVxuJGV4cG9ydC5SID0gMTI4OyAvLyByZWFsIHByb3RvIG1ldGhvZCBmb3IgYGxpYnJhcnlgIFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuXG4vKioqLyB9KSxcbi8qIDI2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBkUCAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSlcbiAgLCBjcmVhdGVEZXNjID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMyk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpID8gZnVuY3Rpb24ob2JqZWN0LCBrZXksIHZhbHVlKXtcbiAgcmV0dXJuIGRQLmYob2JqZWN0LCBrZXksIGNyZWF0ZURlc2MoMSwgdmFsdWUpKTtcbn0gOiBmdW5jdGlvbihvYmplY3QsIGtleSwgdmFsdWUpe1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcblxuLyoqKi8gfSksXG4vKiAyNyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJhXCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gVG9rZW47IH0pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fU291cmNlTG9jYXRpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpO1xuXG5cblxuXG4vKipcbiAqIEludGVyZmFjZSByZXF1aXJlZCB0byBicmVhayBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW4gVG9rZW4sIExleGVyLCBhbmRcbiAqIFBhcnNlRXJyb3IuXG4gKi9cblxuXG4vKipcbiAqIFRoZSByZXN1bHRpbmcgdG9rZW4gcmV0dXJuZWQgZnJvbSBgbGV4YC5cbiAqXG4gKiBJdCBjb25zaXN0cyBvZiB0aGUgdG9rZW4gdGV4dCBwbHVzIHNvbWUgcG9zaXRpb24gaW5mb3JtYXRpb24uXG4gKiBUaGUgcG9zaXRpb24gaW5mb3JtYXRpb24gaXMgZXNzZW50aWFsbHkgYSByYW5nZSBpbiBhbiBpbnB1dCBzdHJpbmcsXG4gKiBidXQgaW5zdGVhZCBvZiByZWZlcmVuY2luZyB0aGUgYmFyZSBpbnB1dCBzdHJpbmcsIHdlIHJlZmVyIHRvIHRoZSBsZXhlci5cbiAqIFRoYXQgd2F5IGl0IGlzIHBvc3NpYmxlIHRvIGF0dGFjaCBleHRyYSBtZXRhZGF0YSB0byB0aGUgaW5wdXQgc3RyaW5nLFxuICogbGlrZSBmb3IgZXhhbXBsZSBhIGZpbGUgbmFtZSBvciBzaW1pbGFyLlxuICpcbiAqIFRoZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBpcyBvcHRpb25hbCwgc28gaXQgaXMgT0sgdG8gY29uc3RydWN0IHN5bnRoZXRpY1xuICogdG9rZW5zIGlmIGFwcHJvcHJpYXRlLiBOb3QgcHJvdmlkaW5nIGF2YWlsYWJsZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiBtYXlcbiAqIGxlYWQgdG8gZGVncmFkZWQgZXJyb3IgcmVwb3J0aW5nLCB0aG91Z2guXG4gKi9cbnZhciBUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUb2tlbih0ZXh0LCAvLyB0aGUgdGV4dCBvZiB0aGlzIHRva2VuXG4gICAgbG9jKSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0KCkodGhpcywgVG9rZW4pO1xuXG4gICAgICAgIHRoaXMudGV4dCA9IHRleHQ7XG4gICAgICAgIHRoaXMubG9jID0gbG9jO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdpdmVuIGEgcGFpciBvZiB0b2tlbnMgKHRoaXMgYW5kIGVuZFRva2VuKSwgY29tcHV0ZSBhIGBUb2tlbmAgZW5jb21wYXNzaW5nXG4gICAgICogdGhlIHdob2xlIGlucHV0IHJhbmdlIGVuY2xvc2VkIGJ5IHRoZXNlIHR3by5cbiAgICAgKi9cblxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShUb2tlbiwgW3tcbiAgICAgICAga2V5OiBcInJhbmdlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByYW5nZShlbmRUb2tlbiwgLy8gbGFzdCB0b2tlbiBvZiB0aGUgcmFuZ2UsIGluY2x1c2l2ZVxuICAgICAgICB0ZXh0KSAvLyB0aGUgdGV4dCBvZiB0aGUgbmV3bHkgY29uc3RydWN0ZWQgdG9rZW5cbiAgICAgICAge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUb2tlbih0ZXh0LCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1NvdXJjZUxvY2F0aW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ucmFuZ2UodGhpcywgZW5kVG9rZW4pKTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBUb2tlbjtcbn0oKTtcblxuLyoqKi8gfSksXG4vKiAyOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuLyoqXG4gKiBUaGlzIGZpbGUgaG9sZHMgYSBsaXN0IG9mIGFsbCBuby1hcmd1bWVudCBmdW5jdGlvbnMgYW5kIHNpbmdsZS1jaGFyYWN0ZXJcbiAqIHN5bWJvbHMgKGxpa2UgJ2EnIG9yICc7JykuXG4gKlxuICogRm9yIGVhY2ggb2YgdGhlIHN5bWJvbHMsIHRoZXJlIGFyZSB0aHJlZSBwcm9wZXJ0aWVzIHRoZXkgY2FuIGhhdmU6XG4gKiAtIGZvbnQgKHJlcXVpcmVkKTogdGhlIGZvbnQgdG8gYmUgdXNlZCBmb3IgdGhpcyBzeW1ib2wuIEVpdGhlciBcIm1haW5cIiAodGhlXG4gICAgIG5vcm1hbCBmb250KSwgb3IgXCJhbXNcIiAodGhlIGFtcyBmb250cykuXG4gKiAtIGdyb3VwIChyZXF1aXJlZCk6IHRoZSBQYXJzZU5vZGUgZ3JvdXAgdHlwZSB0aGUgc3ltYm9sIHNob3VsZCBoYXZlIChpLmUuXG4gICAgIFwidGV4dG9yZFwiLCBcIm1hdGhvcmRcIiwgZXRjKS5cbiAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9LaGFuL0thVGVYL3dpa2kvRXhhbWluaW5nLVRlWCNncm91cC10eXBlc1xuICogLSByZXBsYWNlOiB0aGUgY2hhcmFjdGVyIHRoYXQgdGhpcyBzeW1ib2wgb3IgZnVuY3Rpb24gc2hvdWxkIGJlXG4gKiAgIHJlcGxhY2VkIHdpdGggKGkuZS4gXCJcXHBoaVwiIGhhcyBhIHJlcGxhY2UgdmFsdWUgb2YgXCJcXHUwM2Q1XCIsIHRoZSBwaGlcbiAqICAgY2hhcmFjdGVyIGluIHRoZSBtYWluIGZvbnQpLlxuICpcbiAqIFRoZSBvdXRlcm1vc3QgbWFwIGluIHRoZSB0YWJsZSBpbmRpY2F0ZXMgd2hhdCBtb2RlIHRoZSBzeW1ib2xzIHNob3VsZCBiZVxuICogYWNjZXB0ZWQgaW4gKGUuZy4gXCJtYXRoXCIgb3IgXCJ0ZXh0XCIpLlxuICovXG5cbnZhciBzeW1ib2xzID0ge1xuICAgIFwibWF0aFwiOiB7fSxcbiAgICBcInRleHRcIjoge31cbn07XG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKHN5bWJvbHMpO1xuXG4vKiogYGFjY2VwdFVuaWNvZGVDaGFyID0gdHJ1ZWAgaXMgb25seSBhcHBsaWNhYmxlIGlmIGByZXBsYWNlYCBpcyBzZXQuICovXG5mdW5jdGlvbiBkZWZpbmVTeW1ib2wobW9kZSwgZm9udCwgZ3JvdXAsIHJlcGxhY2UsIG5hbWUsIGFjY2VwdFVuaWNvZGVDaGFyKSB7XG4gICAgc3ltYm9sc1ttb2RlXVtuYW1lXSA9IHsgZm9udDogZm9udCwgZ3JvdXA6IGdyb3VwLCByZXBsYWNlOiByZXBsYWNlIH07XG5cbiAgICBpZiAoYWNjZXB0VW5pY29kZUNoYXIgJiYgcmVwbGFjZSkge1xuICAgICAgICBzeW1ib2xzW21vZGVdW3JlcGxhY2VdID0gc3ltYm9sc1ttb2RlXVtuYW1lXTtcbiAgICB9XG59XG5cbi8vIFNvbWUgYWJicmV2aWF0aW9ucyBmb3IgY29tbW9ubHkgdXNlZCBzdHJpbmdzLlxuLy8gVGhpcyBoZWxwcyBtaW5pZnkgdGhlIGNvZGUsIGFuZCBhbHNvIHNwb3R0aW5nIHR5cG9zIHVzaW5nIGpzaGludC5cblxuLy8gbW9kZXM6XG52YXIgbWF0aCA9IFwibWF0aFwiO1xudmFyIHRleHQgPSBcInRleHRcIjtcblxuLy8gZm9udHM6XG52YXIgbWFpbiA9IFwibWFpblwiO1xudmFyIGFtcyA9IFwiYW1zXCI7XG5cbi8vIGdyb3VwczpcbnZhciBhY2NlbnQgPSBcImFjY2VudFwiO1xudmFyIGJpbiA9IFwiYmluXCI7XG52YXIgY2xvc2UgPSBcImNsb3NlXCI7XG52YXIgaW5uZXIgPSBcImlubmVyXCI7XG52YXIgbWF0aG9yZCA9IFwibWF0aG9yZFwiO1xudmFyIG9wID0gXCJvcFwiO1xudmFyIG9wZW4gPSBcIm9wZW5cIjtcbnZhciBwdW5jdCA9IFwicHVuY3RcIjtcbnZhciByZWwgPSBcInJlbFwiO1xudmFyIHNwYWNpbmcgPSBcInNwYWNpbmdcIjtcbnZhciB0ZXh0b3JkID0gXCJ0ZXh0b3JkXCI7XG5cbi8vIE5vdyBjb21lcyB0aGUgc3ltYm9sIHRhYmxlXG5cbi8vIFJlbGF0aW9uIFN5bWJvbHNcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI2MVwiLCBcIlxcXFxlcXVpdlwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI3QVwiLCBcIlxcXFxwcmVjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjdCXCIsIFwiXFxcXHN1Y2NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyM0NcIiwgXCJcXFxcc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMkE1XCIsIFwiXFxcXHBlcnBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTJBQUZcIiwgXCJcXFxccHJlY2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyQUIwXCIsIFwiXFxcXHN1Y2NlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI0M1wiLCBcIlxcXFxzaW1lcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjIyM1wiLCBcIlxcXFxtaWRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNkFcIiwgXCJcXFxcbGxcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNkJcIiwgXCJcXFxcZ2dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNERcIiwgXCJcXFxcYXN5bXBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMjVcIiwgXCJcXFxccGFyYWxsZWxcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyQzhcIiwgXCJcXFxcYm93dGllXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMzIzXCIsIFwiXFxcXHNtaWxlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjkxXCIsIFwiXFxcXHNxc3Vic2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyOTJcIiwgXCJcXFxcc3FzdXBzZXRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI1MFwiLCBcIlxcXFxkb3RlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjMyMlwiLCBcIlxcXFxmcm93blwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjIwQlwiLCBcIlxcXFxuaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjIxRFwiLCBcIlxcXFxwcm9wdG9cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyQTJcIiwgXCJcXFxcdmRhc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyQTNcIiwgXCJcXFxcZGFzaHZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMEJcIiwgXCJcXFxcb3duc1wiKTtcblxuLy8gUHVuY3R1YXRpb25cbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBwdW5jdCwgXCIuXCIsIFwiXFxcXGxkb3RwXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHB1bmN0LCBcIlxcdTIyQzVcIiwgXCJcXFxcY2RvdHBcIik7XG5cbi8vIE1pc2MgU3ltYm9sc1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiI1wiLCBcIlxcXFwjXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiI1wiLCBcIlxcXFwjXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiJlwiLCBcIlxcXFwmXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiJlwiLCBcIlxcXFwmXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjEzNVwiLCBcIlxcXFxhbGVwaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMDBcIiwgXCJcXFxcZm9yYWxsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjEwRlwiLCBcIlxcXFxoYmFyXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIwM1wiLCBcIlxcXFxleGlzdHNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMjA3XCIsIFwiXFxcXG5hYmxhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjY2RFwiLCBcIlxcXFxmbGF0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjExM1wiLCBcIlxcXFxlbGxcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyNjZFXCIsIFwiXFxcXG5hdHVyYWxcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyNjYzXCIsIFwiXFxcXGNsdWJzdWl0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjExOFwiLCBcIlxcXFx3cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NkZcIiwgXCJcXFxcc2hhcnBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyNjYyXCIsIFwiXFxcXGRpYW1vbmRzdWl0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjExQ1wiLCBcIlxcXFxSZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NjFcIiwgXCJcXFxcaGVhcnRzdWl0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjExMVwiLCBcIlxcXFxJbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTI2NjBcIiwgXCJcXFxcc3BhZGVzdWl0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx4QTdcIiwgXCJcXFxcU1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxceEI2XCIsIFwiXFxcXFBcIiwgdHJ1ZSk7XG5cbi8vIE1hdGggYW5kIFRleHRcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMjBcIiwgXCJcXFxcZGFnXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAyMFwiLCBcIlxcXFxkYWdcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDIwXCIsIFwiXFxcXHRleHRkYWdnZXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDIxXCIsIFwiXFxcXGRkYWdcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDIxXCIsIFwiXFxcXGRkYWdcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDIwXCIsIFwiXFxcXHRleHRkYWdnZXJkYmxcIik7XG5cbi8vIExhcmdlIERlbGltaXRlcnNcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBjbG9zZSwgXCJcXHUyM0IxXCIsIFwiXFxcXHJtb3VzdGFjaGVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyM0IwXCIsIFwiXFxcXGxtb3VzdGFjaGVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjdFRlwiLCBcIlxcXFxyZ3JvdXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyN0VFXCIsIFwiXFxcXGxncm91cFwiKTtcblxuLy8gQmluYXJ5IE9wZXJhdG9yc1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjEzXCIsIFwiXFxcXG1wXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk2XCIsIFwiXFxcXG9taW51c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI4RVwiLCBcIlxcXFx1cGx1c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI5M1wiLCBcIlxcXFxzcWNhcFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxN1wiLCBcIlxcXFxhc3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTRcIiwgXCJcXFxcc3FjdXBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1RUZcIiwgXCJcXFxcYmlnY2lyY1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxOVwiLCBcIlxcXFxidWxsZXRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIwMjFcIiwgXCJcXFxcZGRhZ2dlclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjI0MFwiLCBcIlxcXFx3clwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MkEzRlwiLCBcIlxcXFxhbWFsZ1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiJlwiLCBcIlxcXFxBbmRcIik7IC8vIGZyb20gYW1zbWF0aFxuXG4vLyBBcnJvdyBTeW1ib2xzXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTI3RjVcIiwgXCJcXFxcbG9uZ2xlZnRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFEMFwiLCBcIlxcXFxMZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTI3RjhcIiwgXCJcXFxcTG9uZ2xlZnRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjdGNlwiLCBcIlxcXFxsb25ncmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFEMlwiLCBcIlxcXFxSaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN0Y5XCIsIFwiXFxcXExvbmdyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk0XCIsIFwiXFxcXGxlZnRyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN0Y3XCIsIFwiXFxcXGxvbmdsZWZ0cmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFENFwiLCBcIlxcXFxMZWZ0cmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjdGQVwiLCBcIlxcXFxMb25nbGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxQTZcIiwgXCJcXFxcbWFwc3RvXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyN0ZDXCIsIFwiXFxcXGxvbmdtYXBzdG9cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTdcIiwgXCJcXFxcbmVhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFBOVwiLCBcIlxcXFxob29rbGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMUFBXCIsIFwiXFxcXGhvb2tyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk4XCIsIFwiXFxcXHNlYXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxQkNcIiwgXCJcXFxcbGVmdGhhcnBvb251cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFDMFwiLCBcIlxcXFxyaWdodGhhcnBvb251cFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5OVwiLCBcIlxcXFxzd2Fycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMUJEXCIsIFwiXFxcXGxlZnRoYXJwb29uZG93blwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFDMVwiLCBcIlxcXFxyaWdodGhhcnBvb25kb3duXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTk2XCIsIFwiXFxcXG53YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxQ0NcIiwgXCJcXFxccmlnaHRsZWZ0aGFycG9vbnNcIiwgdHJ1ZSk7XG5cbi8vIEFNUyBOZWdhdGVkIEJpbmFyeSBSZWxhdGlvbnNcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjZFXCIsIFwiXFxcXG5sZXNzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdUUwMTBcIiwgXCJcXFxcbmxlcXNsYW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdUUwMTFcIiwgXCJcXFxcbmxlcXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkE4N1wiLCBcIlxcXFxsbmVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNjhcIiwgXCJcXFxcbG5lcXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAwQ1wiLCBcIlxcXFxsdmVydG5lcXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJFNlwiLCBcIlxcXFxsbnNpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQTg5XCIsIFwiXFxcXGxuYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyODBcIiwgXCJcXFxcbnByZWNcIiwgdHJ1ZSk7XG4vLyB1bmljb2RlLW1hdGggbWFwcyBcXHUyMmUwIHRvIFxcbnByZWNjdXJseWVxLiBXZSdsbCB1c2UgdGhlIEFNUyBzeW5vbnltLlxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyRTBcIiwgXCJcXFxcbnByZWNlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkU4XCIsIFwiXFxcXHByZWNuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBQjlcIiwgXCJcXFxccHJlY25hcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0MVwiLCBcIlxcXFxuc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdUUwMDZcIiwgXCJcXFxcbnNob3J0bWlkXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyMjRcIiwgXCJcXFxcbm1pZFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkFDXCIsIFwiXFxcXG52ZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkFEXCIsIFwiXFxcXG52RGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkVBXCIsIFwiXFxcXG50cmlhbmdsZWxlZnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJFQ1wiLCBcIlxcXFxudHJpYW5nbGVsZWZ0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4QVwiLCBcIlxcXFxzdWJzZXRuZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAxQVwiLCBcIlxcXFx2YXJzdWJzZXRuZXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkFDQlwiLCBcIlxcXFxzdWJzZXRuZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdUUwMTdcIiwgXCJcXFxcdmFyc3Vic2V0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjZGXCIsIFwiXFxcXG5ndHJcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAwRlwiLCBcIlxcXFxuZ2Vxc2xhbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAwRVwiLCBcIlxcXFxuZ2VxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQTg4XCIsIFwiXFxcXGduZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI2OVwiLCBcIlxcXFxnbmVxcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHVFMDBEXCIsIFwiXFxcXGd2ZXJ0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkU3XCIsIFwiXFxcXGduc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBOEFcIiwgXCJcXFxcZ25hcHByb3hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4MVwiLCBcIlxcXFxuc3VjY1wiLCB0cnVlKTtcbi8vIHVuaWNvZGUtbWF0aCBtYXBzIFxcdTIyZTEgdG8gXFxuc3VjY2N1cmx5ZXEuIFdlJ2xsIHVzZSB0aGUgQU1TIHN5bm9ueW0uXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJFMVwiLCBcIlxcXFxuc3VjY2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyRTlcIiwgXCJcXFxcc3VjY25zaW1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkFCQVwiLCBcIlxcXFxzdWNjbmFwcHJveFwiLCB0cnVlKTtcbi8vIHVuaWNvZGUtbWF0aCBtYXBzIFxcdTIyNDYgdG8gXFxzaW1uZXFxLiBXZSdsbCB1c2UgdGhlIEFNUyBzeW5vbnltLlxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNDZcIiwgXCJcXFxcbmNvbmdcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAwN1wiLCBcIlxcXFxuc2hvcnRwYXJhbGxlbFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjI2XCIsIFwiXFxcXG5wYXJhbGxlbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkFGXCIsIFwiXFxcXG5WRGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkVCXCIsIFwiXFxcXG50cmlhbmdsZXJpZ2h0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyRURcIiwgXCJcXFxcbnRyaWFuZ2xlcmlnaHRlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHVFMDE4XCIsIFwiXFxcXG5zdXBzZXRlcXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4QlwiLCBcIlxcXFxzdXBzZXRuZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAxQlwiLCBcIlxcXFx2YXJzdXBzZXRuZXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkFDQ1wiLCBcIlxcXFxzdXBzZXRuZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdUUwMTlcIiwgXCJcXFxcdmFyc3Vwc2V0bmVxcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkFFXCIsIFwiXFxcXG5WZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQUI1XCIsIFwiXFxcXHByZWNuZXFxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBQjZcIiwgXCJcXFxcc3VjY25lcXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1RTAxNlwiLCBcIlxcXFxuc3Vic2V0ZXFxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQjRcIiwgXCJcXFxcdW5saGRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJCNVwiLCBcIlxcXFx1bnJoZFwiKTtcblxuLy8gQU1TIE5lZ2F0ZWQgQXJyb3dzXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjE5QVwiLCBcIlxcXFxubGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxOUJcIiwgXCJcXFxcbnJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFDRFwiLCBcIlxcXFxuTGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQ0ZcIiwgXCJcXFxcblJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFBRVwiLCBcIlxcXFxubGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFDRVwiLCBcIlxcXFxuTGVmdHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5cbi8vIEFNUyBNaXNjXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjVCM1wiLCBcIlxcXFx2YXJ0cmlhbmdsZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjEwRlwiLCBcIlxcXFxoc2xhc2hcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1QkRcIiwgXCJcXFxcdHJpYW5nbGVkb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNUNBXCIsIFwiXFxcXGxvemVuZ2VcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI0QzhcIiwgXCJcXFxcY2lyY2xlZFNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxceEFFXCIsIFwiXFxcXGNpcmNsZWRSXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIGFtcywgdGV4dG9yZCwgXCJcXHhBRVwiLCBcIlxcXFxjaXJjbGVkUlwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjIyMVwiLCBcIlxcXFxtZWFzdXJlZGFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMjA0XCIsIFwiXFxcXG5leGlzdHNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxMjdcIiwgXCJcXFxcbWhvXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMTMyXCIsIFwiXFxcXEZpbnZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTIxNDFcIiwgXCJcXFxcR2FtZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwia1wiLCBcIlxcXFxCYmJrXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMDM1XCIsIFwiXFxcXGJhY2twcmltZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjVCMlwiLCBcIlxcXFxibGFja3RyaWFuZ2xlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNUJDXCIsIFwiXFxcXGJsYWNrdHJpYW5nbGVkb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNUEwXCIsIFwiXFxcXGJsYWNrc3F1YXJlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyOUVCXCIsIFwiXFxcXGJsYWNrbG96ZW5nZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjYwNVwiLCBcIlxcXFxiaWdzdGFyXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMjIyXCIsIFwiXFxcXHNwaGVyaWNhbGFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMjAxXCIsIFwiXFxcXGNvbXBsZW1lbnRcIiwgdHJ1ZSk7XG4vLyB1bmljb2RlLW1hdGggbWFwcyBVK0YwICjDsCkgdG8gXFxtYXRoZXRoLiBXZSBtYXAgdG8gQU1TIGZ1bmN0aW9uIFxcZXRoXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxceEYwXCIsIFwiXFxcXGV0aFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjU3MVwiLCBcIlxcXFxkaWFndXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1NzJcIiwgXCJcXFxcZGlhZ2Rvd25cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI1QTFcIiwgXCJcXFxcc3F1YXJlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNUExXCIsIFwiXFxcXEJveFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjVDQVwiLCBcIlxcXFxEaWFtb25kXCIpO1xuLy8gdW5pY29kZS1tYXRoIG1hcHMgVStBNSB0byBcXG1hdGh5ZW4uIFdlIG1hcCB0byBBTVMgZnVuY3Rpb24gXFx5ZW5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx4QTVcIiwgXCJcXFxceWVuXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNzEzXCIsIFwiXFxcXGNoZWNrbWFya1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBhbXMsIHRleHRvcmQsIFwiXFx1MjcxM1wiLCBcIlxcXFxjaGVja21hcmtcIik7XG5cbi8vIEFNUyBIZWJyZXdcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjEzNlwiLCBcIlxcXFxiZXRoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyMTM4XCIsIFwiXFxcXGRhbGV0aFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjEzN1wiLCBcIlxcXFxnaW1lbFwiLCB0cnVlKTtcblxuLy8gQU1TIEdyZWVrXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTAzRERcIiwgXCJcXFxcZGlnYW1tYVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MDNGMFwiLCBcIlxcXFx2YXJrYXBwYVwiKTtcblxuLy8gQU1TIERlbGltaXRlcnNcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIG9wZW4sIFwiXFx1MjUwQ1wiLCBcIlxcXFx1bGNvcm5lclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGNsb3NlLCBcIlxcdTI1MTBcIiwgXCJcXFxcdXJjb3JuZXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBvcGVuLCBcIlxcdTI1MTRcIiwgXCJcXFxcbGxjb3JuZXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBjbG9zZSwgXCJcXHUyNTE4XCIsIFwiXFxcXGxyY29ybmVyXCIpO1xuXG4vLyBBTVMgQmluYXJ5IFJlbGF0aW9uc1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNjZcIiwgXCJcXFxcbGVxcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQTdEXCIsIFwiXFxcXGxlcXNsYW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBOTVcIiwgXCJcXFxcZXFzbGFudGxlc3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI3MlwiLCBcIlxcXFxsZXNzc2ltXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBODVcIiwgXCJcXFxcbGVzc2FwcHJveFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjRBXCIsIFwiXFxcXGFwcHJveGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyRDZcIiwgXCJcXFxcbGVzc2RvdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkQ4XCIsIFwiXFxcXGxsbFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjc2XCIsIFwiXFxcXGxlc3NndHJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJEQVwiLCBcIlxcXFxsZXNzZXFndHJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkE4QlwiLCBcIlxcXFxsZXNzZXFxZ3RyXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNTFcIiwgXCJcXFxcZG90ZXFkb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1M1wiLCBcIlxcXFxyaXNpbmdkb3RzZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1MlwiLCBcIlxcXFxmYWxsaW5nZG90c2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyM0RcIiwgXCJcXFxcYmFja3NpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkNEXCIsIFwiXFxcXGJhY2tzaW1lcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQUM1XCIsIFwiXFxcXHN1YnNldGVxcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkQwXCIsIFwiXFxcXFN1YnNldFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjhGXCIsIFwiXFxcXHNxc3Vic2V0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyN0NcIiwgXCJcXFxccHJlY2N1cmx5ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJERVwiLCBcIlxcXFxjdXJseWVxcHJlY1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjdFXCIsIFwiXFxcXHByZWNzaW1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkFCN1wiLCBcIlxcXFxwcmVjYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyQjJcIiwgXCJcXFxcdmFydHJpYW5nbGVsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyQjRcIiwgXCJcXFxcdHJpYW5nbGVsZWZ0ZXFcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJBOFwiLCBcIlxcXFx2RGFzaFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkFBXCIsIFwiXFxcXFZ2ZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMzIzXCIsIFwiXFxcXHNtYWxsc21pbGVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjMyMlwiLCBcIlxcXFxzbWFsbGZyb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNEZcIiwgXCJcXFxcYnVtcGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNEVcIiwgXCJcXFxcQnVtcGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNjdcIiwgXCJcXFxcZ2VxcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQTdFXCIsIFwiXFxcXGdlcXNsYW50XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTJBOTZcIiwgXCJcXFxcZXFzbGFudGd0clwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjczXCIsIFwiXFxcXGd0cnNpbVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQTg2XCIsIFwiXFxcXGd0cmFwcHJveFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkQ3XCIsIFwiXFxcXGd0cmRvdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkQ5XCIsIFwiXFxcXGdnZ1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjc3XCIsIFwiXFxcXGd0cmxlc3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJEQlwiLCBcIlxcXFxndHJlcWxlc3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkE4Q1wiLCBcIlxcXFxndHJlcXFsZXNzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNTZcIiwgXCJcXFxcZXFjaXJjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNTdcIiwgXCJcXFxcY2lyY2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNUNcIiwgXCJcXFxcdHJpYW5nbGVxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyM0NcIiwgXCJcXFxcdGhpY2tzaW1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI0OFwiLCBcIlxcXFx0aGlja2FwcHJveFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyQUM2XCIsIFwiXFxcXHN1cHNldGVxcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkQxXCIsIFwiXFxcXFN1cHNldFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjkwXCIsIFwiXFxcXHNxc3Vwc2V0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyN0RcIiwgXCJcXFxcc3VjY2N1cmx5ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJERlwiLCBcIlxcXFxjdXJseWVxc3VjY1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjdGXCIsIFwiXFxcXHN1Y2NzaW1cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MkFCOFwiLCBcIlxcXFxzdWNjYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyQjNcIiwgXCJcXFxcdmFydHJpYW5nbGVyaWdodFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkI1XCIsIFwiXFxcXHRyaWFuZ2xlcmlnaHRlcVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkE5XCIsIFwiXFxcXFZkYXNoXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyMjNcIiwgXCJcXFxcc2hvcnRtaWRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIyNVwiLCBcIlxcXFxzaG9ydHBhcmFsbGVsXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNkNcIiwgXCJcXFxcYmV0d2VlblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMkQ0XCIsIFwiXFxcXHBpdGNoZm9ya1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjFEXCIsIFwiXFxcXHZhcnByb3B0b1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyNUMwXCIsIFwiXFxcXGJsYWNrdHJpYW5nbGVsZWZ0XCIpO1xuLy8gdW5pY29kZS1tYXRoIHNheXMgdGhhdCBcXHRoZXJlZm9yZSBpcyBhIG1hdGhvcmQgYXRvbS5cbi8vIFdlIGtlcHQgdGhlIGFtc3N5bWIgYXRvbSB0eXBlLCB3aGljaCBpcyByZWwuXG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIzNFwiLCBcIlxcXFx0aGVyZWZvcmVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjIwRFwiLCBcIlxcXFxiYWNrZXBzaWxvblwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyNUI2XCIsIFwiXFxcXGJsYWNrdHJpYW5nbGVyaWdodFwiKTtcbi8vIHVuaWNvZGUtbWF0aCBzYXlzIHRoYXQgXFxiZWNhdXNlIGlzIGEgbWF0aG9yZCBhdG9tLlxuLy8gV2Uga2VwdCB0aGUgYW1zc3ltYiBhdG9tIHR5cGUsIHdoaWNoIGlzIHJlbC5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjM1XCIsIFwiXFxcXGJlY2F1c2VcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJEOFwiLCBcIlxcXFxsbGxlc3NcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjJEOVwiLCBcIlxcXFxnZ2d0clwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkIyXCIsIFwiXFxcXGxoZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkIzXCIsIFwiXFxcXHJoZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMjQyXCIsIFwiXFxcXGVxc2ltXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMkM4XCIsIFwiXFxcXEpvaW5cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI1MVwiLCBcIlxcXFxEb3RlcVwiLCB0cnVlKTtcblxuLy8gQU1TIEJpbmFyeSBPcGVyYXRvcnNcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjE0XCIsIFwiXFxcXGRvdHBsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjIxNlwiLCBcIlxcXFxzbWFsbHNldG1pbnVzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyRDJcIiwgXCJcXFxcQ2FwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyRDNcIiwgXCJcXFxcQ3VwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTJBNUVcIiwgXCJcXFxcZG91YmxlYmFyd2VkZ2VcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjI5RlwiLCBcIlxcXFxib3htaW51c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjlFXCIsIFwiXFxcXGJveHBsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJDN1wiLCBcIlxcXFxkaXZpZGVvbnRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQzlcIiwgXCJcXFxcbHRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQ0FcIiwgXCJcXFxccnRpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQ0JcIiwgXCJcXFxcbGVmdHRocmVldGltZXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJDQ1wiLCBcIlxcXFxyaWdodHRocmVldGltZXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJDRlwiLCBcIlxcXFxjdXJseXdlZGdlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQ0VcIiwgXCJcXFxcY3VybHl2ZWVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjI5RFwiLCBcIlxcXFxjaXJjbGVkZGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjlCXCIsIFwiXFxcXGNpcmNsZWRhc3RcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJDNVwiLCBcIlxcXFxjZW50ZXJkb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCBiaW4sIFwiXFx1MjJCQVwiLCBcIlxcXFxpbnRlcmNhbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkQyXCIsIFwiXFxcXGRvdWJsZWNhcFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkQzXCIsIFwiXFxcXGRvdWJsZWN1cFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkEwXCIsIFwiXFxcXGJveHRpbWVzXCIsIHRydWUpO1xuXG4vLyBBTVMgQXJyb3dzXG4vLyBOb3RlOiB1bmljb2RlLW1hdGggbWFwcyBcXHUyMWUyIHRvIHRoZWlyIG93biBmdW5jdGlvbiBcXHJpZ2h0ZGFzaGFycm93LlxuLy8gV2UnbGwgbWFwIGl0IHRvIEFNUyBmdW5jdGlvbiBcXGRhc2hyaWdodGFycm93LiBJdCBwcm9kdWNlcyB0aGUgc2FtZSBhdG9tLlxuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxRTJcIiwgXCJcXFxcZGFzaHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG4vLyB1bmljb2RlLW1hdGggbWFwcyBcXHUyMWUwIHRvIFxcbGVmdGRhc2hhcnJvdy4gV2UnbGwgdXNlIHRoZSBBTVMgc3lub255bS5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUUwXCIsIFwiXFxcXGRhc2hsZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFDN1wiLCBcIlxcXFxsZWZ0bGVmdGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUM2XCIsIFwiXFxcXGxlZnRyaWdodGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMURBXCIsIFwiXFxcXExsZWZ0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjE5RVwiLCBcIlxcXFx0d29oZWFkbGVmdGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQTJcIiwgXCJcXFxcbGVmdGFycm93dGFpbFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUFCXCIsIFwiXFxcXGxvb3BhcnJvd2xlZnRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFDQlwiLCBcIlxcXFxsZWZ0cmlnaHRoYXJwb29uc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUI2XCIsIFwiXFxcXGN1cnZlYXJyb3dsZWZ0XCIsIHRydWUpO1xuLy8gdW5pY29kZS1tYXRoIG1hcHMgXFx1MjFiYSB0byBcXGFjd29wZW5jaXJjbGVhcnJvdy4gV2UnbGwgdXNlIHRoZSBBTVMgc3lub255bS5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUJBXCIsIFwiXFxcXGNpcmNsZWFycm93bGVmdFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUIwXCIsIFwiXFxcXExzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUM4XCIsIFwiXFxcXHVwdXBhcnJvd3NcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFCRlwiLCBcIlxcXFx1cGhhcnBvb25sZWZ0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQzNcIiwgXCJcXFxcZG93bmhhcnBvb25sZWZ0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyQjhcIiwgXCJcXFxcbXVsdGltYXBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFBRFwiLCBcIlxcXFxsZWZ0cmlnaHRzcXVpZ2Fycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQzlcIiwgXCJcXFxccmlnaHRyaWdodGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUM0XCIsIFwiXFxcXHJpZ2h0bGVmdGFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUEwXCIsIFwiXFxcXHR3b2hlYWRyaWdodGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQTNcIiwgXCJcXFxccmlnaHRhcnJvd3RhaWxcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFBQ1wiLCBcIlxcXFxsb29wYXJyb3dyaWdodFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUI3XCIsIFwiXFxcXGN1cnZlYXJyb3dyaWdodFwiLCB0cnVlKTtcbi8vIHVuaWNvZGUtbWF0aCBtYXBzIFxcdTIxYmIgdG8gXFxjd29wZW5jaXJjbGVhcnJvdy4gV2UnbGwgdXNlIHRoZSBBTVMgc3lub255bS5cbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUJCXCIsIFwiXFxcXGNpcmNsZWFycm93cmlnaHRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFCMVwiLCBcIlxcXFxSc2hcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFDQVwiLCBcIlxcXFxkb3duZG93bmFycm93c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUJFXCIsIFwiXFxcXHVwaGFycG9vbnJpZ2h0XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIxQzJcIiwgXCJcXFxcZG93bmhhcnBvb25yaWdodFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUREXCIsIFwiXFxcXHJpZ2h0c3F1aWdhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUREXCIsIFwiXFxcXGxlYWRzdG9cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjFEQlwiLCBcIlxcXFxScmlnaHRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHJlbCwgXCJcXHUyMUJFXCIsIFwiXFxcXHJlc3RyaWN0aW9uXCIpO1xuXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE4XCIsIFwiYFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIiRcIiwgXCJcXFxcJFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIiRcIiwgXCJcXFxcJFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIiRcIiwgXCJcXFxcdGV4dGRvbGxhclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIiVcIiwgXCJcXFxcJVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIiVcIiwgXCJcXFxcJVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIl9cIiwgXCJcXFxcX1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIl9cIiwgXCJcXFxcX1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIl9cIiwgXCJcXFxcdGV4dHVuZGVyc2NvcmVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMjIwXCIsIFwiXFxcXGFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIxRVwiLCBcIlxcXFxpbmZ0eVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMzJcIiwgXCJcXFxccHJpbWVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyNUIzXCIsIFwiXFxcXHRyaWFuZ2xlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDM5M1wiLCBcIlxcXFxHYW1tYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzOTRcIiwgXCJcXFxcRGVsdGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMzk4XCIsIFwiXFxcXFRoZXRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDM5QlwiLCBcIlxcXFxMYW1iZGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMzlFXCIsIFwiXFxcXFhpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDNBMFwiLCBcIlxcXFxQaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzQTNcIiwgXCJcXFxcU2lnbWFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwM0E1XCIsIFwiXFxcXFVwc2lsb25cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwM0E2XCIsIFwiXFxcXFBoaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTAzQThcIiwgXCJcXFxcUHNpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MDNBOVwiLCBcIlxcXFxPbWVnYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxceEFDXCIsIFwiXFxcXG5lZ1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxceEFDXCIsIFwiXFxcXGxub3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMkE0XCIsIFwiXFxcXHRvcFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyQTVcIiwgXCJcXFxcYm90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIwNVwiLCBcIlxcXFxlbXB0eXNldFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIHRleHRvcmQsIFwiXFx1MjIwNVwiLCBcIlxcXFx2YXJub3RoaW5nXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCMVwiLCBcIlxcXFxhbHBoYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQjJcIiwgXCJcXFxcYmV0YVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQjNcIiwgXCJcXFxcZ2FtbWFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0I0XCIsIFwiXFxcXGRlbHRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNGNVwiLCBcIlxcXFxlcHNpbG9uXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCNlwiLCBcIlxcXFx6ZXRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCN1wiLCBcIlxcXFxldGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0I4XCIsIFwiXFxcXHRoZXRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCOVwiLCBcIlxcXFxpb3RhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCQVwiLCBcIlxcXFxrYXBwYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQkJcIiwgXCJcXFxcbGFtYmRhXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCQ1wiLCBcIlxcXFxtdVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQkRcIiwgXCJcXFxcbnVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0JFXCIsIFwiXFxcXHhpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNCRlwiLCBcIlxcXFxvbWljcm9uXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNDMFwiLCBcIlxcXFxwaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQzFcIiwgXCJcXFxccmhvXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNDM1wiLCBcIlxcXFxzaWdtYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQzRcIiwgXCJcXFxcdGF1XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNDNVwiLCBcIlxcXFx1cHNpbG9uXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNENVwiLCBcIlxcXFxwaGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0M3XCIsIFwiXFxcXGNoaVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQzhcIiwgXCJcXFxccHNpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNDOVwiLCBcIlxcXFxvbWVnYVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzQjVcIiwgXCJcXFxcdmFyZXBzaWxvblwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAzRDFcIiwgXCJcXFxcdmFydGhldGFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0Q2XCIsIFwiXFxcXHZhcnBpXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNGMVwiLCBcIlxcXFx2YXJyaG9cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgXCJcXHUwM0MyXCIsIFwiXFxcXHZhcnNpZ21hXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDNDNlwiLCBcIlxcXFx2YXJwaGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMTdcIiwgXCIqXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCIrXCIsIFwiK1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxMlwiLCBcIi1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyQzVcIiwgXCJcXFxcY2RvdFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIxOFwiLCBcIlxcXFxjaXJjXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHhGN1wiLCBcIlxcXFxkaXZcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxceEIxXCIsIFwiXFxcXHBtXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHhEN1wiLCBcIlxcXFx0aW1lc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjIyOVwiLCBcIlxcXFxjYXBcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMkFcIiwgXCJcXFxcY3VwXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjE2XCIsIFwiXFxcXHNldG1pbnVzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjI3XCIsIFwiXFxcXGxhbmRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyMjhcIiwgXCJcXFxcbG9yXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjI3XCIsIFwiXFxcXHdlZGdlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjI4XCIsIFwiXFxcXHZlZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMUFcIiwgXCJcXFxcc3VyZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIihcIiwgXCIoXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiW1wiLCBcIltcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyN0U4XCIsIFwiXFxcXGxhbmdsZVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIlxcdTIyMjNcIiwgXCJcXFxcbHZlcnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyMjI1XCIsIFwiXFxcXGxWZXJ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIilcIiwgXCIpXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIl1cIiwgXCJdXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIj9cIiwgXCI/XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIiFcIiwgXCIhXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTI3RTlcIiwgXCJcXFxccmFuZ2xlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIlxcdTIyMjNcIiwgXCJcXFxccnZlcnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjIyNVwiLCBcIlxcXFxyVmVydFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiPVwiLCBcIj1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIjxcIiwgXCI8XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCI+XCIsIFwiPlwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiOlwiLCBcIjpcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNDhcIiwgXCJcXFxcYXBwcm94XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjQ1XCIsIFwiXFxcXGNvbmdcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNjVcIiwgXCJcXFxcZ2VcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNjVcIiwgXCJcXFxcZ2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTkwXCIsIFwiXFxcXGdldHNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIj5cIiwgXCJcXFxcZ3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMDhcIiwgXCJcXFxcaW5cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyMDlcIiwgXCJcXFxcbm90aW5cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTAzMzhcIiwgXCJcXFxcbm90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMjgyXCIsIFwiXFxcXHN1YnNldFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI4M1wiLCBcIlxcXFxzdXBzZXRcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyODZcIiwgXCJcXFxcc3Vic2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyODdcIiwgXCJcXFxcc3Vwc2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4OFwiLCBcIlxcXFxuc3Vic2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI4OVwiLCBcIlxcXFxuc3Vwc2V0ZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyQThcIiwgXCJcXFxcbW9kZWxzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTkwXCIsIFwiXFxcXGxlZnRhcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI2NFwiLCBcIlxcXFxsZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjI2NFwiLCBcIlxcXFxsZXFcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIjxcIiwgXCJcXFxcbHRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNjBcIiwgXCJcXFxcbmVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIyNjBcIiwgXCJcXFxcbmVxXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMTkyXCIsIFwiXFxcXHJpZ2h0YXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTJcIiwgXCJcXFxcdG9cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgYW1zLCByZWwsIFwiXFx1MjI3MVwiLCBcIlxcXFxuZ2VxXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgcmVsLCBcIlxcdTIyNzBcIiwgXCJcXFxcbmxlcVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFwhXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHNwYWNpbmcsIFwiXFx4QTBcIiwgXCJcXFxcIFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBzcGFjaW5nLCBcIlxceEEwXCIsIFwiflwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFwsXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHNwYWNpbmcsIG51bGwsIFwiXFxcXDpcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgbnVsbCwgXCJcXFxcO1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFxlbnNwYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHNwYWNpbmcsIG51bGwsIFwiXFxcXHFxdWFkXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHNwYWNpbmcsIG51bGwsIFwiXFxcXHF1YWRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgXCJcXHhBMFwiLCBcIlxcXFxzcGFjZVwiKTtcbi8vIFJlZjogTGFUZVggU291cmNlIDJlOiBcXERlY2xhcmVSb2J1c3RDb21tYW5ke1xcbm9icmVha3NwYWNlfXslXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgc3BhY2luZywgXCJcXHhBMFwiLCBcIlxcXFxub2JyZWFrc3BhY2VcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgc3BhY2luZywgbnVsbCwgXCJcXFxcIVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxceEEwXCIsIFwiXFxcXCBcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgc3BhY2luZywgXCJcXHhBMFwiLCBcIn5cIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgc3BhY2luZywgbnVsbCwgXCJcXFxcLFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFw6XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHNwYWNpbmcsIG51bGwsIFwiXFxcXDtcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgc3BhY2luZywgbnVsbCwgXCJcXFxcZW5zcGFjZVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFxxcXVhZFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBudWxsLCBcIlxcXFxxdWFkXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHNwYWNpbmcsIFwiXFx4QTBcIiwgXCJcXFxcc3BhY2VcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgc3BhY2luZywgXCJcXHhBMFwiLCBcIlxcXFxub2JyZWFrc3BhY2VcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcHVuY3QsIFwiLFwiLCBcIixcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcHVuY3QsIFwiO1wiLCBcIjtcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcHVuY3QsIFwiOlwiLCBcIlxcXFxjb2xvblwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMkJDXCIsIFwiXFxcXGJhcndlZGdlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQkJcIiwgXCJcXFxcdmVlYmFyXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk5XCIsIFwiXFxcXG9kb3RcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTVcIiwgXCJcXFxcb3BsdXNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTIyOTdcIiwgXCJcXFxcb3RpbWVzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIwMlwiLCBcIlxcXFxwYXJ0aWFsXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMjk4XCIsIFwiXFxcXG9zbGFzaFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBhbXMsIGJpbiwgXCJcXHUyMjlBXCIsIFwiXFxcXGNpcmNsZWRjaXJjXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgYmluLCBcIlxcdTIyQTFcIiwgXCJcXFxcYm94ZG90XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyNUIzXCIsIFwiXFxcXGJpZ3RyaWFuZ2xldXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1QkRcIiwgXCJcXFxcYmlndHJpYW5nbGVkb3duXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMDIwXCIsIFwiXFxcXGRhZ2dlclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBiaW4sIFwiXFx1MjJDNFwiLCBcIlxcXFxkaWFtb25kXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyMkM2XCIsIFwiXFxcXHN0YXJcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYmluLCBcIlxcdTI1QzNcIiwgXCJcXFxcdHJpYW5nbGVsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGJpbiwgXCJcXHUyNUI5XCIsIFwiXFxcXHRyaWFuZ2xlcmlnaHRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJ7XCIsIFwiXFxcXHtcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJ7XCIsIFwiXFxcXHtcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJ7XCIsIFwiXFxcXHRleHRicmFjZWxlZnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwifVwiLCBcIlxcXFx9XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwifVwiLCBcIlxcXFx9XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwifVwiLCBcIlxcXFx0ZXh0YnJhY2VyaWdodFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIntcIiwgXCJcXFxcbGJyYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGNsb3NlLCBcIn1cIiwgXCJcXFxccmJyYWNlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wZW4sIFwiW1wiLCBcIlxcXFxsYnJhY2tcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXVwiLCBcIlxcXFxyYnJhY2tcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCI8XCIsIFwiXFxcXHRleHRsZXNzXCIpOyAvLyBpbiBUMSBmb250ZW5jXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCI+XCIsIFwiXFxcXHRleHRncmVhdGVyXCIpOyAvLyBpbiBUMSBmb250ZW5jXG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3BlbiwgXCJcXHUyMzBBXCIsIFwiXFxcXGxmbG9vclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBjbG9zZSwgXCJcXHUyMzBCXCIsIFwiXFxcXHJmbG9vclwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcGVuLCBcIlxcdTIzMDhcIiwgXCJcXFxcbGNlaWxcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgY2xvc2UsIFwiXFx1MjMwOVwiLCBcIlxcXFxyY2VpbFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcXFxcIiwgXCJcXFxcYmFja3NsYXNoXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHRleHRvcmQsIFwiXFx1MjIyM1wiLCBcInxcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMjIzXCIsIFwiXFxcXHZlcnRcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJ8XCIsIFwiXFxcXHRleHRiYXJcIik7IC8vIGluIFQxIGZvbnRlbmNcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcfFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcVmVydFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyMjVcIiwgXCJcXFxcdGV4dGJhcmRibFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5MVwiLCBcIlxcXFx1cGFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMUQxXCIsIFwiXFxcXFVwYXJyb3dcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgcmVsLCBcIlxcdTIxOTNcIiwgXCJcXFxcZG93bmFycm93XCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIHJlbCwgXCJcXHUyMUQzXCIsIFwiXFxcXERvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjE5NVwiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCByZWwsIFwiXFx1MjFENVwiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjEwXCIsIFwiXFxcXGNvcHJvZFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMkMxXCIsIFwiXFxcXGJpZ3ZlZVwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMkMwXCIsIFwiXFxcXGJpZ3dlZGdlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wLCBcIlxcdTJBMDRcIiwgXCJcXFxcYmlndXBsdXNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjJDMlwiLCBcIlxcXFxiaWdjYXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjJDM1wiLCBcIlxcXFxiaWdjdXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyQlwiLCBcIlxcXFxpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyQlwiLCBcIlxcXFxpbnRvcFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjJDXCIsIFwiXFxcXGlpbnRcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyRFwiLCBcIlxcXFxpaWludFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyMjBGXCIsIFwiXFxcXHByb2RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIxMVwiLCBcIlxcXFxzdW1cIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MkEwMlwiLCBcIlxcXFxiaWdvdGltZXNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MkEwMVwiLCBcIlxcXFxiaWdvcGx1c1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBvcCwgXCJcXHUyQTAwXCIsIFwiXFxcXGJpZ29kb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyRVwiLCBcIlxcXFxvaW50XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG9wLCBcIlxcdTJBMDZcIiwgXCJcXFxcYmlnc3FjdXBcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgb3AsIFwiXFx1MjIyQlwiLCBcIlxcXFxzbWFsbGludFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBpbm5lciwgXCJcXHUyMDI2XCIsIFwiXFxcXHRleHRlbGxpcHNpc1wiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBpbm5lciwgXCJcXHUyMDI2XCIsIFwiXFxcXG1hdGhlbGxpcHNpc1wiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBpbm5lciwgXCJcXHUyMDI2XCIsIFwiXFxcXGxkb3RzXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGlubmVyLCBcIlxcdTIwMjZcIiwgXCJcXFxcbGRvdHNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgaW5uZXIsIFwiXFx1MjJFRlwiLCBcIlxcXFxAY2RvdHNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgaW5uZXIsIFwiXFx1MjJGMVwiLCBcIlxcXFxkZG90c1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIyRUVcIiwgXCJcXFxcdmRvdHNcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyQ0FcIiwgXCJcXFxcYWN1dGVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyQ0JcIiwgXCJcXFxcZ3JhdmVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxceEE4XCIsIFwiXFxcXGRkb3RcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIn5cIiwgXCJcXFxcdGlsZGVcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyQzlcIiwgXCJcXFxcYmFyXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMkQ4XCIsIFwiXFxcXGJyZXZlXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMkM3XCIsIFwiXFxcXGNoZWNrXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJeXCIsIFwiXFxcXGhhdFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBhY2NlbnQsIFwiXFx1MjBEN1wiLCBcIlxcXFx2ZWNcIik7XG5kZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyRDlcIiwgXCJcXFxcZG90XCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIGFjY2VudCwgXCJcXHUwMkRBXCIsIFwiXFxcXG1hdGhyaW5nXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx1MDEzMVwiLCBcIlxcXFxpbWF0aFwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCBtYXRob3JkLCBcIlxcdTAyMzdcIiwgXCJcXFxcam1hdGhcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMTMxXCIsIFwiXFxcXGlcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMjM3XCIsIFwiXFxcXGpcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHhERlwiLCBcIlxcXFxzc1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxceEU2XCIsIFwiXFxcXGFlXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx4RTZcIiwgXCJcXFxcYWVcIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUwMTUzXCIsIFwiXFxcXG9lXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx4RjhcIiwgXCJcXFxcb1wiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxceEM2XCIsIFwiXFxcXEFFXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MDE1MlwiLCBcIlxcXFxPRVwiLCB0cnVlKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxceEQ4XCIsIFwiXFxcXE9cIiwgdHJ1ZSk7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyQ0FcIiwgXCJcXFxcJ1wiKTsgLy8gYWN1dGVcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBhY2NlbnQsIFwiXFx1MDJDQlwiLCBcIlxcXFxgXCIpOyAvLyBncmF2ZVxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMkM2XCIsIFwiXFxcXF5cIik7IC8vIGNpcmN1bWZsZXhcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBhY2NlbnQsIFwiXFx1MDJEQ1wiLCBcIlxcXFx+XCIpOyAvLyB0aWxkZVxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMkM5XCIsIFwiXFxcXD1cIik7IC8vIG1hY3JvblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMkQ4XCIsIFwiXFxcXHVcIik7IC8vIGJyZXZlXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyRDlcIiwgXCJcXFxcLlwiKTsgLy8gZG90IGFib3ZlXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxcdTAyREFcIiwgXCJcXFxcclwiKTsgLy8gcmluZyBhYm92ZVxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIGFjY2VudCwgXCJcXHUwMkM3XCIsIFwiXFxcXHZcIik7IC8vIGNhcm9uXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgYWNjZW50LCBcIlxceEE4XCIsICdcXFxcXCInKTsgLy8gZGlhcmVzaXNcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBhY2NlbnQsIFwiXFx1MDJERFwiLCBcIlxcXFxIXCIpOyAvLyBkb3VibGUgYWN1dGVcblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxM1wiLCBcIi0tXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxM1wiLCBcIlxcXFx0ZXh0ZW5kYXNoXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxNFwiLCBcIi0tLVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMTRcIiwgXCJcXFxcdGV4dGVtZGFzaFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMThcIiwgXCJgXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxOFwiLCBcIlxcXFx0ZXh0cXVvdGVsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxOVwiLCBcIidcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE5XCIsIFwiXFxcXHRleHRxdW90ZXJpZ2h0XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxQ1wiLCBcImBgXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxQ1wiLCBcIlxcXFx0ZXh0cXVvdGVkYmxsZWZ0XCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxRFwiLCBcIicnXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxRFwiLCBcIlxcXFx0ZXh0cXVvdGVkYmxyaWdodFwiKTtcbmRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBcIlxceEIwXCIsIFwiXFxcXGRlZ3JlZVwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxceEIwXCIsIFwiXFxcXGRlZ3JlZVwiKTtcbi8vIFRPRE86IEluIExhVGVYLCBcXHBvdW5kcyBjYW4gZ2VuZXJhdGUgYSBkaWZmZXJlbnQgY2hhcmFjdGVyIGluIHRleHQgYW5kIG1hdGhcbi8vIG1vZGUsIGJ1dCBhbW9uZyBvdXIgZm9udHMsIG9ubHkgTWFpbi1JdGFsaWMgZGVmaW5lcyB0aGlzIGNoYXJhY3RlciBcIjE2M1wiLlxuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx4QTNcIiwgXCJcXFxccG91bmRzXCIpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIG1haW4sIG1hdGhvcmQsIFwiXFx4QTNcIiwgXCJcXFxcbWF0aHN0ZXJsaW5nXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIG1hdGhvcmQsIFwiXFx4QTNcIiwgXCJcXFxccG91bmRzXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIG1hdGhvcmQsIFwiXFx4QTNcIiwgXCJcXFxcdGV4dHN0ZXJsaW5nXCIsIHRydWUpO1xuZGVmaW5lU3ltYm9sKG1hdGgsIGFtcywgdGV4dG9yZCwgXCJcXHUyNzIwXCIsIFwiXFxcXG1hbHRlc2VcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgYW1zLCB0ZXh0b3JkLCBcIlxcdTI3MjBcIiwgXCJcXFxcbWFsdGVzZVwiKTtcblxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHNwYWNpbmcsIFwiXFx4QTBcIiwgXCJcXFxcIFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxceEEwXCIsIFwiIFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCBzcGFjaW5nLCBcIlxceEEwXCIsIFwiflwiKTtcblxuLy8gVGhlcmUgYXJlIGxvdHMgb2Ygc3ltYm9scyB3aGljaCBhcmUgdGhlIHNhbWUsIHNvIHdlIGFkZCB0aGVtIGluIGFmdGVyd2FyZHMuXG5cbi8vIEFsbCBvZiB0aGVzZSBhcmUgdGV4dG9yZHMgaW4gbWF0aCBtb2RlXG52YXIgbWF0aFRleHRTeW1ib2xzID0gXCIwMTIzNDU2Nzg5L0AuXFxcIlwiO1xuZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRoVGV4dFN5bWJvbHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgY2ggPSBtYXRoVGV4dFN5bWJvbHMuY2hhckF0KGkpO1xuICAgIGRlZmluZVN5bWJvbChtYXRoLCBtYWluLCB0ZXh0b3JkLCBjaCwgY2gpO1xufVxuXG4vLyBBbGwgb2YgdGhlc2UgYXJlIHRleHRvcmRzIGluIHRleHQgbW9kZVxudmFyIHRleHRTeW1ib2xzID0gXCIwMTIzNDU2Nzg5IUAqKCktPStbXTw+fFxcXCI7Oj8vLixcIjtcbmZvciAodmFyIF9pID0gMDsgX2kgPCB0ZXh0U3ltYm9scy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgX2NoID0gdGV4dFN5bWJvbHMuY2hhckF0KF9pKTtcbiAgICBkZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgX2NoLCBfY2gpO1xufVxuXG4vLyBBbGwgb2YgdGhlc2UgYXJlIHRleHRvcmRzIGluIHRleHQgbW9kZSwgYW5kIG1hdGhvcmRzIGluIG1hdGggbW9kZVxudmFyIGxldHRlcnMgPSBcImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIjtcbmZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGxldHRlcnMubGVuZ3RoOyBfaTIrKykge1xuICAgIHZhciBfY2gyID0gbGV0dGVycy5jaGFyQXQoX2kyKTtcbiAgICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMiwgX2NoMik7XG4gICAgZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIF9jaDIsIF9jaDIpO1xufVxuXG4vLyBXZSBhZGQgdGhlc2UgTGF0aW4tMSBsZXR0ZXJzIGFzIHN5bWJvbHMgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LFxuLy8gYnV0IHRoZXkgYXJlIG5vdCBhY3R1YWxseSBpbiB0aGUgZm9udCwgbm9yIGFyZSB0aGV5IHN1cHBvcnRlZCBieSB0aGVcbi8vIFVuaWNvZGUgYWNjZW50IG1lY2hhbmlzbSwgc28gdGhleSBmYWxsIGJhY2sgdG8gVGltZXMgZm9udCBhbmQgbG9vayB1Z2x5LlxuLy8gVE9ETyhlZGVtYWluZSk6IEZpeCB0aGlzLlxudmFyIGV4dHJhTGF0aW4gPSBcIsOHw5DDnsOnw75cIjtcbmZvciAodmFyIF9pMyA9IDA7IF9pMyA8IGV4dHJhTGF0aW4ubGVuZ3RoOyBfaTMrKykge1xuICAgIHZhciBfY2gzID0gZXh0cmFMYXRpbi5jaGFyQXQoX2kzKTtcbiAgICBkZWZpbmVTeW1ib2wobWF0aCwgbWFpbiwgbWF0aG9yZCwgX2NoMywgX2NoMyk7XG4gICAgZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIF9jaDMsIF9jaDMpO1xufVxuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiw7BcIiwgXCLDsFwiKTtcblxuLy8gVW5pY29kZSB2ZXJzaW9ucyBvZiBleGlzdGluZyBjaGFyYWN0ZXJzXG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDEzXCIsIFwi4oCTXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxNFwiLCBcIuKAlFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMThcIiwgXCLigJhcIik7XG5kZWZpbmVTeW1ib2wodGV4dCwgbWFpbiwgdGV4dG9yZCwgXCJcXHUyMDE5XCIsIFwi4oCZXCIpO1xuZGVmaW5lU3ltYm9sKHRleHQsIG1haW4sIHRleHRvcmQsIFwiXFx1MjAxQ1wiLCBcIuKAnFwiKTtcbmRlZmluZVN5bWJvbCh0ZXh0LCBtYWluLCB0ZXh0b3JkLCBcIlxcdTIwMURcIiwgXCLigJ1cIik7XG5cbi8qKiovIH0pLFxuLyogMjkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gNy4xLjEzIFRvT2JqZWN0KGFyZ3VtZW50KVxudmFyIGRlZmluZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM4KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQpe1xuICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cbi8qKiovIH0pLFxuLyogMzAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX191bmljb2RlU2NyaXB0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0Mik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zdWJtb2R1bGVzX2thdGV4X2ZvbnRzX2ZvbnRNZXRyaWNzRGF0YV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1OSk7XG5cblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgbWV0cmljcyByZWdhcmRpbmcgZm9udHMgYW5kIGluZGl2aWR1YWwgc3ltYm9scy4gVGhlIHNpZ21hXG4gKiBhbmQgeGkgdmFyaWFibGVzLCBhcyB3ZWxsIGFzIHRoZSBtZXRyaWNNYXAgbWFwIGNvbnRhaW4gZGF0YSBleHRyYWN0ZWQgZnJvbVxuICogVGVYLCBUZVggZm9udCBtZXRyaWNzLCBhbmQgdGhlIFRURiBmaWxlcy4gVGhlc2UgZGF0YSBhcmUgdGhlbiBleHBvc2VkIHZpYSB0aGVcbiAqIGBtZXRyaWNzYCB2YXJpYWJsZSBhbmQgdGhlIGdldENoYXJhY3Rlck1ldHJpY3MgZnVuY3Rpb24uXG4gKi9cblxuLy8gSW4gVGVYLCB0aGVyZSBhcmUgYWN0dWFsbHkgdGhyZWUgc2V0cyBvZiBkaW1lbnNpb25zLCBvbmUgZm9yIGVhY2ggb2Zcbi8vIHRleHRzdHlsZSAoc2l6ZSBpbmRleCA1IGFuZCBoaWdoZXI6ID49OXB0KSwgc2NyaXB0c3R5bGUgKHNpemUgaW5kZXggMyBhbmQgNDpcbi8vIDctOHB0KSwgYW5kIHNjcmlwdHNjcmlwdHN0eWxlIChzaXplIGluZGV4IDEgYW5kIDI6IDUtNnB0KS4gIFRoZXNlIGFyZVxuLy8gcHJvdmlkZWQgaW4gdGhlIHRoZSBhcnJheXMgYmVsb3csIGluIHRoYXQgb3JkZXIuXG4vL1xuLy8gVGhlIGZvbnQgbWV0cmljcyBhcmUgc3RvcmVkIGluIGZvbnRzIGNtc3kxMCwgY21zeTcsIGFuZCBjbXN5NSByZXNwc2VjdGl2ZWx5LlxuLy8gVGhpcyB3YXMgZGV0ZXJtaW5lZCBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgc2NyaXB0OlxuLy9cbi8vICAgICBsYXRleCAtaW50ZXJhY3Rpb249bm9uc3RvcG1vZGUgXFxcbi8vICAgICAnXFxkb2N1bWVudGNsYXNze2FydGljbGV9XFx1c2VwYWNrYWdle2Ftc21hdGh9XFxiZWdpbntkb2N1bWVudH0nIFxcXG4vLyAgICAgJyRhJCBcXGV4cGFuZGFmdGVyXFxzaG93XFx0aGVcXHRleHRmb250MicgXFxcbi8vICAgICAnXFxleHBhbmRhZnRlclxcc2hvd1xcdGhlXFxzY3JpcHRmb250MicgXFxcbi8vICAgICAnXFxleHBhbmRhZnRlclxcc2hvd1xcdGhlXFxzY3JpcHRzY3JpcHRmb250MicgXFxcbi8vICAgICAnXFxzdG9wJ1xuLy9cbi8vIFRoZSBtZXRyaWNzIHRoZW1zZWx2ZXMgd2VyZSByZXRyZWl2ZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kczpcbi8vXG4vLyAgICAgdGZ0b3BsIGNtc3kxMFxuLy8gICAgIHRmdG9wbCBjbXN5N1xuLy8gICAgIHRmdG9wbCBjbXN5NVxuLy9cbi8vIFRoZSBvdXRwdXQgb2YgZWFjaCBvZiB0aGVzZSBjb21tYW5kcyBpcyBxdWl0ZSBsZW5ndGh5LiAgVGhlIG9ubHkgcGFydCB3ZVxuLy8gY2FyZSBhYm91dCBpcyB0aGUgRk9OVERJTUVOIHNlY3Rpb24uIEVhY2ggdmFsdWUgaXMgbWVhc3VyZWQgaW4gRU1zLlxudmFyIHNpZ21hc0FuZFhpcyA9IHtcbiAgICBzbGFudDogWzAuMjUwLCAwLjI1MCwgMC4yNTBdLCAvLyBzaWdtYTFcbiAgICBzcGFjZTogWzAuMDAwLCAwLjAwMCwgMC4wMDBdLCAvLyBzaWdtYTJcbiAgICBzdHJldGNoOiBbMC4wMDAsIDAuMDAwLCAwLjAwMF0sIC8vIHNpZ21hM1xuICAgIHNocmluazogWzAuMDAwLCAwLjAwMCwgMC4wMDBdLCAvLyBzaWdtYTRcbiAgICB4SGVpZ2h0OiBbMC40MzEsIDAuNDMxLCAwLjQzMV0sIC8vIHNpZ21hNVxuICAgIHF1YWQ6IFsxLjAwMCwgMS4xNzEsIDEuNDcyXSwgLy8gc2lnbWE2XG4gICAgZXh0cmFTcGFjZTogWzAuMDAwLCAwLjAwMCwgMC4wMDBdLCAvLyBzaWdtYTdcbiAgICBudW0xOiBbMC42NzcsIDAuNzMyLCAwLjkyNV0sIC8vIHNpZ21hOFxuICAgIG51bTI6IFswLjM5NCwgMC4zODQsIDAuMzg3XSwgLy8gc2lnbWE5XG4gICAgbnVtMzogWzAuNDQ0LCAwLjQ3MSwgMC41MDRdLCAvLyBzaWdtYTEwXG4gICAgZGVub20xOiBbMC42ODYsIDAuNzUyLCAxLjAyNV0sIC8vIHNpZ21hMTFcbiAgICBkZW5vbTI6IFswLjM0NSwgMC4zNDQsIDAuNTMyXSwgLy8gc2lnbWExMlxuICAgIHN1cDE6IFswLjQxMywgMC41MDMsIDAuNTA0XSwgLy8gc2lnbWExM1xuICAgIHN1cDI6IFswLjM2MywgMC40MzEsIDAuNDA0XSwgLy8gc2lnbWExNFxuICAgIHN1cDM6IFswLjI4OSwgMC4yODYsIDAuMjk0XSwgLy8gc2lnbWExNVxuICAgIHN1YjE6IFswLjE1MCwgMC4xNDMsIDAuMjAwXSwgLy8gc2lnbWExNlxuICAgIHN1YjI6IFswLjI0NywgMC4yODYsIDAuNDAwXSwgLy8gc2lnbWExN1xuICAgIHN1cERyb3A6IFswLjM4NiwgMC4zNTMsIDAuNDk0XSwgLy8gc2lnbWExOFxuICAgIHN1YkRyb3A6IFswLjA1MCwgMC4wNzEsIDAuMTAwXSwgLy8gc2lnbWExOVxuICAgIGRlbGltMTogWzIuMzkwLCAxLjcwMCwgMS45ODBdLCAvLyBzaWdtYTIwXG4gICAgZGVsaW0yOiBbMS4wMTAsIDEuMTU3LCAxLjQyMF0sIC8vIHNpZ21hMjFcbiAgICBheGlzSGVpZ2h0OiBbMC4yNTAsIDAuMjUwLCAwLjI1MF0sIC8vIHNpZ21hMjJcblxuICAgIC8vIFRoZXNlIGZvbnQgbWV0cmljcyBhcmUgZXh0cmFjdGVkIGZyb20gVGVYIGJ5IHVzaW5nIHRmdG9wbCBvbiBjbWV4MTAudGZtO1xuICAgIC8vIHRoZXkgY29ycmVzcG9uZCB0byB0aGUgZm9udCBwYXJhbWV0ZXJzIG9mIHRoZSBleHRlbnNpb24gZm9udHMgKGZhbWlseSAzKS5cbiAgICAvLyBTZWUgdGhlIFRlWGJvb2ssIHBhZ2UgNDQxLiBJbiBBTVNUZVgsIHRoZSBleHRlbnNpb24gZm9udHMgc2NhbGU7IHRvXG4gICAgLy8gbWF0Y2ggY21leDcsIHdlJ2QgdXNlIGNtZXg3LnRmbSB2YWx1ZXMgZm9yIHNjcmlwdCBhbmQgc2NyaXB0c2NyaXB0XG4gICAgLy8gdmFsdWVzLlxuICAgIGRlZmF1bHRSdWxlVGhpY2tuZXNzOiBbMC4wNCwgMC4wNDksIDAuMDQ5XSwgLy8geGk4OyBjbWV4NzogMC4wNDlcbiAgICBiaWdPcFNwYWNpbmcxOiBbMC4xMTEsIDAuMTExLCAwLjExMV0sIC8vIHhpOVxuICAgIGJpZ09wU3BhY2luZzI6IFswLjE2NiwgMC4xNjYsIDAuMTY2XSwgLy8geGkxMFxuICAgIGJpZ09wU3BhY2luZzM6IFswLjIsIDAuMiwgMC4yXSwgLy8geGkxMVxuICAgIGJpZ09wU3BhY2luZzQ6IFswLjYsIDAuNjExLCAwLjYxMV0sIC8vIHhpMTI7IGNtZXg3OiAwLjYxMVxuICAgIGJpZ09wU3BhY2luZzU6IFswLjEsIDAuMTQzLCAwLjE0M10sIC8vIHhpMTM7IGNtZXg3OiAwLjE0M1xuXG4gICAgLy8gVGhlIFxcc3FydCBydWxlIHdpZHRoIGlzIHRha2VuIGZyb20gdGhlIGhlaWdodCBvZiB0aGUgc3VyZCBjaGFyYWN0ZXIuXG4gICAgLy8gU2luY2Ugd2UgdXNlIHRoZSBzYW1lIGZvbnQgYXQgYWxsIHNpemVzLCB0aGlzIHRoaWNrbmVzcyBkb2Vzbid0IHNjYWxlLlxuICAgIHNxcnRSdWxlVGhpY2tuZXNzOiBbMC4wNCwgMC4wNCwgMC4wNF0sXG5cbiAgICAvLyBUaGlzIHZhbHVlIGRldGVybWluZXMgaG93IGxhcmdlIGEgcHQgaXMsIGZvciBtZXRyaWNzIHdoaWNoIGFyZSBkZWZpbmVkXG4gICAgLy8gaW4gdGVybXMgb2YgcHRzLlxuICAgIC8vIFRoaXMgdmFsdWUgaXMgYWxzbyB1c2VkIGluIGthdGV4Lmxlc3M7IGlmIHlvdSBjaGFuZ2UgaXQgbWFrZSBzdXJlIHRoZVxuICAgIC8vIHZhbHVlcyBtYXRjaC5cbiAgICBwdFBlckVtOiBbMTAuMCwgMTAuMCwgMTAuMF0sXG5cbiAgICAvLyBUaGUgc3BhY2UgYmV0d2VlbiBhZGphY2VudCBgfGAgY29sdW1ucyBpbiBhbiBhcnJheSBkZWZpbml0aW9uLiBGcm9tXG4gICAgLy8gYFxcc2hvd3RoZVxcZG91YmxlcnVsZXNlcGAgaW4gTGFUZVguIEVxdWFscyAyLjAgLyBwdFBlckVtLlxuICAgIGRvdWJsZVJ1bGVTZXA6IFswLjIsIDAuMiwgMC4yXVxufTtcblxuLy8gVGhpcyBtYXAgY29udGFpbnMgYSBtYXBwaW5nIGZyb20gZm9udCBuYW1lIGFuZCBjaGFyYWN0ZXIgY29kZSB0byBjaGFyYWN0ZXJcbi8vIG1ldHJpY3MsIGluY2x1ZGluZyBoZWlnaHQsIGRlcHRoLCBpdGFsaWMgY29ycmVjdGlvbiwgYW5kIHNrZXcgKGtlcm4gZnJvbSB0aGVcbi8vIGNoYXJhY3RlciB0byB0aGUgY29ycmVzcG9uZGluZyBcXHNrZXdjaGFyKVxuLy8gVGhpcyBtYXAgaXMgZ2VuZXJhdGVkIHZpYSBgbWFrZSBtZXRyaWNzYC4gSXQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIG1hbnVhbGx5LlxuXG5cbi8vIFRoZXNlIGFyZSB2ZXJ5IHJvdWdoIGFwcHJveGltYXRpb25zLiAgV2UgZGVmYXVsdCB0byBUaW1lcyBOZXcgUm9tYW4gd2hpY2hcbi8vIHNob3VsZCBoYXZlIExhdGluLTEgYW5kIEN5cmlsbGljIGNoYXJhY3RlcnMsIGJ1dCBtYXkgbm90IGRlcGVuZGluZyBvbiB0aGVcbi8vIG9wZXJhdGluZyBzeXN0ZW0uICBUaGUgbWV0cmljcyBkbyBub3QgYWNjb3VudCBmb3IgZXh0cmEgaGVpZ2h0IGZyb20gdGhlXG4vLyBhY2NlbnRzLiAgSW4gdGhlIGNhc2Ugb2YgQ3lyaWxsaWMgY2hhcmFjdGVycyB3aGljaCBoYXZlIGJvdGggYXNjZW5kZXJzIGFuZFxuLy8gZGVzY2VuZGVycyB3ZSBwcmVmZXIgYXBwcm94aW1hdGlvbnMgd2l0aCBhc2NlbmRlcnMsIHByaW1hcmlseSB0byBwcmV2ZW50XG4vLyB0aGUgZnJhY3Rpb24gYmFyIG9yIHJvb3QgbGluZSBmcm9tIGludGVyc2VjdGluZyB0aGUgZ2x5cGguXG4vLyBUT0RPKGtldmluYikgYWxsb3cgdW5pb24gb2YgbXVsdGlwbGUgZ2x5cGggbWV0cmljcyBmb3IgYmV0dGVyIGFjY3VyYWN5LlxudmFyIGV4dHJhQ2hhcmFjdGVyTWFwID0ge1xuICAgIC8vIExhdGluLTFcbiAgICAnw4UnOiAnQScsXG4gICAgJ8OHJzogJ0MnLFxuICAgICfDkCc6ICdEJyxcbiAgICAnw54nOiAnbycsXG4gICAgJ8OlJzogJ2EnLFxuICAgICfDpyc6ICdjJyxcbiAgICAnw7AnOiAnZCcsXG4gICAgJ8O+JzogJ28nLFxuXG4gICAgLy8gQ3lyaWxsaWNcbiAgICAn0JAnOiAnQScsXG4gICAgJ9CRJzogJ0InLFxuICAgICfQkic6ICdCJyxcbiAgICAn0JMnOiAnRicsXG4gICAgJ9CUJzogJ0EnLFxuICAgICfQlSc6ICdFJyxcbiAgICAn0JYnOiAnSycsXG4gICAgJ9CXJzogJzMnLFxuICAgICfQmCc6ICdOJyxcbiAgICAn0JknOiAnTicsXG4gICAgJ9CaJzogJ0snLFxuICAgICfQmyc6ICdOJyxcbiAgICAn0JwnOiAnTScsXG4gICAgJ9CdJzogJ0gnLFxuICAgICfQnic6ICdPJyxcbiAgICAn0J8nOiAnTicsXG4gICAgJ9CgJzogJ1AnLFxuICAgICfQoSc6ICdDJyxcbiAgICAn0KInOiAnVCcsXG4gICAgJ9CjJzogJ3knLFxuICAgICfQpCc6ICdPJyxcbiAgICAn0KUnOiAnWCcsXG4gICAgJ9CmJzogJ1UnLFxuICAgICfQpyc6ICdoJyxcbiAgICAn0KgnOiAnVycsXG4gICAgJ9CpJzogJ1cnLFxuICAgICfQqic6ICdCJyxcbiAgICAn0KsnOiAnWCcsXG4gICAgJ9CsJzogJ0InLFxuICAgICfQrSc6ICczJyxcbiAgICAn0K4nOiAnWCcsXG4gICAgJ9CvJzogJ1InLFxuICAgICfQsCc6ICdhJyxcbiAgICAn0LEnOiAnYicsXG4gICAgJ9CyJzogJ2EnLFxuICAgICfQsyc6ICdyJyxcbiAgICAn0LQnOiAneScsXG4gICAgJ9C1JzogJ2UnLFxuICAgICfQtic6ICdtJyxcbiAgICAn0LcnOiAnZScsXG4gICAgJ9C4JzogJ24nLFxuICAgICfQuSc6ICduJyxcbiAgICAn0LonOiAnbicsXG4gICAgJ9C7JzogJ24nLFxuICAgICfQvCc6ICdtJyxcbiAgICAn0L0nOiAnbicsXG4gICAgJ9C+JzogJ28nLFxuICAgICfQvyc6ICduJyxcbiAgICAn0YAnOiAncCcsXG4gICAgJ9GBJzogJ2MnLFxuICAgICfRgic6ICdvJyxcbiAgICAn0YMnOiAneScsXG4gICAgJ9GEJzogJ2InLFxuICAgICfRhSc6ICd4JyxcbiAgICAn0YYnOiAnbicsXG4gICAgJ9GHJzogJ24nLFxuICAgICfRiCc6ICd3JyxcbiAgICAn0YknOiAndycsXG4gICAgJ9GKJzogJ2EnLFxuICAgICfRiyc6ICdtJyxcbiAgICAn0YwnOiAnYScsXG4gICAgJ9GNJzogJ2UnLFxuICAgICfRjic6ICdtJyxcbiAgICAn0Y8nOiAncidcbn07XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBsb29raW5nIHVwIGluZm9ybWF0aW9uIGluIHRoZVxuICogbWV0cmljTWFwIHRhYmxlLiBJdCB0YWtlcyBhIGNoYXJhY3RlciBhcyBhIHN0cmluZywgYW5kIGEgZm9udC5cbiAqXG4gKiBOb3RlOiB0aGUgYHdpZHRoYCBwcm9wZXJ0eSBtYXkgYmUgdW5kZWZpbmVkIGlmIGZvbnRNZXRyaWNzRGF0YS5qcyB3YXNuJ3RcbiAqIGJ1aWx0IHVzaW5nIGBNYWtlIGV4dGVuZGVkX21ldHJpY3NgLlxuICovXG52YXIgZ2V0Q2hhcmFjdGVyTWV0cmljcyA9IGZ1bmN0aW9uIGdldENoYXJhY3Rlck1ldHJpY3MoY2hhcmFjdGVyLCBmb250LCBtb2RlKSB7XG4gICAgaWYgKCFfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3N1Ym1vZHVsZXNfa2F0ZXhfZm9udHNfZm9udE1ldHJpY3NEYXRhX19bXCJhXCIgLyogZGVmYXVsdCAqL11bZm9udF0pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRm9udCBtZXRyaWNzIG5vdCBmb3VuZCBmb3IgZm9udDogXCIgKyBmb250ICsgXCIuXCIpO1xuICAgIH1cbiAgICB2YXIgY2ggPSBjaGFyYWN0ZXIuY2hhckNvZGVBdCgwKTtcbiAgICBpZiAoY2hhcmFjdGVyWzBdIGluIGV4dHJhQ2hhcmFjdGVyTWFwKSB7XG4gICAgICAgIGNoID0gZXh0cmFDaGFyYWN0ZXJNYXBbY2hhcmFjdGVyWzBdXS5jaGFyQ29kZUF0KDApO1xuICAgIH1cbiAgICB2YXIgbWV0cmljcyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fc3VibW9kdWxlc19rYXRleF9mb250c19mb250TWV0cmljc0RhdGFfX1tcImFcIiAvKiBkZWZhdWx0ICovXVtmb250XVtjaF07XG5cbiAgICBpZiAoIW1ldHJpY3MgJiYgbW9kZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIC8vIFdlIGRvbid0IHR5cGljYWxseSBoYXZlIGZvbnQgbWV0cmljcyBmb3IgQXNpYW4gc2NyaXB0cy5cbiAgICAgICAgLy8gQnV0IHNpbmNlIHdlIHN1cHBvcnQgdGhlbSBpbiB0ZXh0IG1vZGUsIHdlIG5lZWQgdG8gcmV0dXJuXG4gICAgICAgIC8vIHNvbWUgc29ydCBvZiBtZXRyaWNzLlxuICAgICAgICAvLyBTbyBpZiB0aGUgY2hhcmFjdGVyIGlzIGluIGEgc2NyaXB0IHdlIHN1cHBvcnQgYnV0IHdlXG4gICAgICAgIC8vIGRvbid0IGhhdmUgbWV0cmljcyBmb3IgaXQsIGp1c3QgdXNlIHRoZSBtZXRyaWNzIGZvclxuICAgICAgICAvLyB0aGUgTGF0aW4gY2FwaXRhbCBsZXR0ZXIgTS4gVGhpcyBpcyBjbG9zZSBlbm91Z2ggYmVjYXVzZVxuICAgICAgICAvLyB3ZSAoY3VycmVudGx5KSBvbmx5IGNhcmUgYWJvdXQgdGhlIGhlaWdodCBvZiB0aGUgZ2xweWhcbiAgICAgICAgLy8gbm90IGl0cyB3aWR0aC5cbiAgICAgICAgaWYgKE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3VuaWNvZGVTY3JpcHRzX19bXCJiXCIgLyogc3VwcG9ydGVkQ29kZXBvaW50ICovXSkoY2gpKSB7XG4gICAgICAgICAgICBtZXRyaWNzID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zdWJtb2R1bGVzX2thdGV4X2ZvbnRzX2ZvbnRNZXRyaWNzRGF0YV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW2ZvbnRdWzc3XTsgLy8gNzcgaXMgdGhlIGNoYXJjb2RlIGZvciAnTSdcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXRyaWNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZXB0aDogbWV0cmljc1swXSxcbiAgICAgICAgICAgIGhlaWdodDogbWV0cmljc1sxXSxcbiAgICAgICAgICAgIGl0YWxpYzogbWV0cmljc1syXSxcbiAgICAgICAgICAgIHNrZXc6IG1ldHJpY3NbM10sXG4gICAgICAgICAgICB3aWR0aDogbWV0cmljc1s0XVxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbnZhciBmb250TWV0cmljc0J5U2l6ZUluZGV4ID0ge307XG5cbi8qKlxuICogR2V0IHRoZSBmb250IG1ldHJpY3MgZm9yIGEgZ2l2ZW4gc2l6ZS5cbiAqL1xudmFyIGdldEZvbnRNZXRyaWNzID0gZnVuY3Rpb24gZ2V0Rm9udE1ldHJpY3Moc2l6ZSkge1xuICAgIHZhciBzaXplSW5kZXggPSB2b2lkIDA7XG4gICAgaWYgKHNpemUgPj0gNSkge1xuICAgICAgICBzaXplSW5kZXggPSAwO1xuICAgIH0gZWxzZSBpZiAoc2l6ZSA+PSAzKSB7XG4gICAgICAgIHNpemVJbmRleCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc2l6ZUluZGV4ID0gMjtcbiAgICB9XG4gICAgaWYgKCFmb250TWV0cmljc0J5U2l6ZUluZGV4W3NpemVJbmRleF0pIHtcbiAgICAgICAgdmFyIG1ldHJpY3MgPSBmb250TWV0cmljc0J5U2l6ZUluZGV4W3NpemVJbmRleF0gPSB7XG4gICAgICAgICAgICBjc3NFbVBlck11OiBzaWdtYXNBbmRYaXMucXVhZFtzaXplSW5kZXhdIC8gMThcbiAgICAgICAgfTtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHNpZ21hc0FuZFhpcykge1xuICAgICAgICAgICAgaWYgKHNpZ21hc0FuZFhpcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgbWV0cmljc1trZXldID0gc2lnbWFzQW5kWGlzW2tleV1bc2l6ZUluZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZm9udE1ldHJpY3NCeVNpemVJbmRleFtzaXplSW5kZXhdO1xufTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgZ2V0Rm9udE1ldHJpY3M6IGdldEZvbnRNZXRyaWNzLFxuICAgIGdldENoYXJhY3Rlck1ldHJpY3M6IGdldENoYXJhY3Rlck1ldHJpY3Ncbn0pO1xuXG4vKioqLyB9KSxcbi8qIDMxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2ZyZWV6ZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2Nik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfZnJlZXplX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX29iamVjdF9mcmVlemVfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyk7XG5cblxuXG5cbi8qKlxuICogTGV4aW5nIG9yIHBhcnNpbmcgcG9zaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZXJyb3IgcmVwb3J0aW5nLlxuICogVGhpcyBvYmplY3QgaXMgaW1tdXRhYmxlLlxuICovXG52YXIgU291cmNlTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gRW5kIG9mZnNldCwgemVyby1iYXNlZCBleGNsdXNpdmUuXG5cbiAgICAvLyBMZXhlciBob2xkaW5nIHRoZSBpbnB1dCBzdHJpbmcuXG4gICAgZnVuY3Rpb24gU291cmNlTG9jYXRpb24obGV4ZXIsIHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBTb3VyY2VMb2NhdGlvbik7XG5cbiAgICAgICAgdGhpcy5sZXhlciA9IGxleGVyO1xuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgICAgIHRoaXMuZW5kID0gZW5kO1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX29iamVjdF9mcmVlemVfX19kZWZhdWx0KCkodGhpcyk7IC8vIEltbXV0YWJsZSB0byBhbGxvdyBzaGFyaW5nIGluIHJhbmdlKCkuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2VzIHR3byBgU291cmNlTG9jYXRpb25gcyBmcm9tIGxvY2F0aW9uIHByb3ZpZGVycywgZ2l2ZW4gdGhleSBhcmVcbiAgICAgKiBwcm92aWRlZCBpbiBvcmRlciBvZiBhcHBlYXJhbmNlLlxuICAgICAqIC0gUmV0dXJucyB0aGUgZmlyc3Qgb25lJ3MgbG9jYXRpb24gaWYgb25seSB0aGUgZmlyc3QgaXMgcHJvdmlkZWQuXG4gICAgICogLSBSZXR1cm5zIGEgbWVyZ2VkIHJhbmdlIG9mIHRoZSBmaXJzdCBhbmQgdGhlIGxhc3QgaWYgYm90aCBhcmUgcHJvdmlkZWRcbiAgICAgKiAgIGFuZCB0aGVpciBsZXhlcnMgbWF0Y2guXG4gICAgICogLSBPdGhlcndpc2UsIHJldHVybnMgbnVsbC5cbiAgICAgKi9cbiAgICAvLyBTdGFydCBvZmZzZXQsIHplcm8tYmFzZWQgaW5jbHVzaXZlLlxuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKFNvdXJjZUxvY2F0aW9uLCBudWxsLCBbe1xuICAgICAgICBrZXk6IFwicmFuZ2VcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJhbmdlKGZpcnN0LCBzZWNvbmQpIHtcbiAgICAgICAgICAgIGlmICghc2Vjb25kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0ICYmIGZpcnN0LmxvYztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWZpcnN0IHx8ICFmaXJzdC5sb2MgfHwgIXNlY29uZC5sb2MgfHwgZmlyc3QubG9jLmxleGVyICE9PSBzZWNvbmQubG9jLmxleGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU291cmNlTG9jYXRpb24oZmlyc3QubG9jLmxleGVyLCBmaXJzdC5sb2Muc3RhcnQsIHNlY29uZC5sb2MuZW5kKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTb3VyY2VMb2NhdGlvbjtcbn0oKTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IChTb3VyY2VMb2NhdGlvbik7XG5cbi8qKiovIH0pLFxuLyogMzIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxudmFyIGlkID0gMFxuICAsIHB4ID0gTWF0aC5yYW5kb20oKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oa2V5KXtcbiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTtcbn07XG5cbi8qKiovIH0pLFxuLyogMzMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihiaXRtYXAsIHZhbHVlKXtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlICA6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlICAgIDogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZSAgICAgICA6IHZhbHVlXG4gIH07XG59O1xuXG4vKioqLyB9KSxcbi8qIDM0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuXG5cbi8qKlxuICogVGhpcyBpcyBhIG1vZHVsZSBmb3Igc3RvcmluZyBzZXR0aW5ncyBwYXNzZWQgaW50byBLYVRlWC4gSXQgY29ycmVjdGx5IGhhbmRsZXNcbiAqIGRlZmF1bHQgc2V0dGluZ3MuXG4gKi9cblxuXG5cbi8qKlxuICogVGhlIG1haW4gU2V0dGluZ3Mgb2JqZWN0XG4gKlxuICogVGhlIGN1cnJlbnQgb3B0aW9ucyBzdG9yZWQgYXJlOlxuICogIC0gZGlzcGxheU1vZGU6IFdoZXRoZXIgdGhlIGV4cHJlc3Npb24gc2hvdWxkIGJlIHR5cGVzZXQgYXMgaW5saW5lIG1hdGhcbiAqICAgICAgICAgICAgICAgICAoZmFsc2UsIHRoZSBkZWZhdWx0KSwgbWVhbmluZyB0aGF0IHRoZSBtYXRoIHN0YXJ0cyBpblxuICogICAgICAgICAgICAgICAgIFxcdGV4dHN0eWxlIGFuZCBpcyBwbGFjZWQgaW4gYW4gaW5saW5lLWJsb2NrKTsgb3IgYXMgZGlzcGxheVxuICogICAgICAgICAgICAgICAgIG1hdGggKHRydWUpLCBtZWFuaW5nIHRoYXQgdGhlIG1hdGggc3RhcnRzIGluIFxcZGlzcGxheXN0eWxlXG4gKiAgICAgICAgICAgICAgICAgYW5kIGlzIHBsYWNlZCBpbiBhIGJsb2NrIHdpdGggdmVydGljYWwgbWFyZ2luLlxuICovXG52YXIgU2V0dGluZ3MgPSBmdW5jdGlvbiBTZXR0aW5ncyhvcHRpb25zKSB7XG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBTZXR0aW5ncyk7XG5cbiAgICAvLyBhbGxvdyBudWxsIG9wdGlvbnNcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICB0aGlzLmRpc3BsYXlNb2RlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmRlZmx0KG9wdGlvbnMuZGlzcGxheU1vZGUsIGZhbHNlKTtcbiAgICB0aGlzLnRocm93T25FcnJvciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kZWZsdChvcHRpb25zLnRocm93T25FcnJvciwgdHJ1ZSk7XG4gICAgdGhpcy5lcnJvckNvbG9yID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmRlZmx0KG9wdGlvbnMuZXJyb3JDb2xvciwgXCIjY2MwMDAwXCIpO1xuICAgIHRoaXMubWFjcm9zID0gb3B0aW9ucy5tYWNyb3MgfHwge307XG4gICAgdGhpcy5jb2xvcklzVGV4dENvbG9yID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmRlZmx0KG9wdGlvbnMuY29sb3JJc1RleHRDb2xvciwgZmFsc2UpO1xuICAgIHRoaXMubWF4U2l6ZSA9IE1hdGgubWF4KDAsIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kZWZsdChvcHRpb25zLm1heFNpemUsIEluZmluaXR5KSk7XG59O1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKFNldHRpbmdzKTtcblxuLyoqKi8gfSksXG4vKiAzNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuXG52YXIgX2Zyb20gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDc5KTtcblxudmFyIF9mcm9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Zyb20pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgYXJyMiA9IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhcnIyW2ldID0gYXJyW2ldO1xuICAgIH1cblxuICAgIHJldHVybiBhcnIyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoMCwgX2Zyb20yLmRlZmF1bHQpKGFycik7XG4gIH1cbn07XG5cbi8qKiovIH0pLFxuLyogMzYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciAkYXQgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4MSkodHJ1ZSk7XG5cbi8vIDIxLjEuMy4yNyBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdKClcbl9fd2VicGFja19yZXF1aXJlX18oNDgpKFN0cmluZywgJ1N0cmluZycsIGZ1bmN0aW9uKGl0ZXJhdGVkKXtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24oKXtcbiAgdmFyIE8gICAgID0gdGhpcy5fdFxuICAgICwgaW5kZXggPSB0aGlzLl9pXG4gICAgLCBwb2ludDtcbiAgaWYoaW5kZXggPj0gTy5sZW5ndGgpcmV0dXJuIHt2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlfTtcbiAgcG9pbnQgPSAkYXQoTywgaW5kZXgpO1xuICB0aGlzLl9pICs9IHBvaW50Lmxlbmd0aDtcbiAgcmV0dXJuIHt2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlfTtcbn0pO1xuXG4vKioqLyB9KSxcbi8qIDM3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbi8vIDcuMS40IFRvSW50ZWdlclxudmFyIGNlaWwgID0gTWF0aC5jZWlsXG4gICwgZmxvb3IgPSBNYXRoLmZsb29yO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIHJldHVybiBpc05hTihpdCA9ICtpdCkgPyAwIDogKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xufTtcblxuLyoqKi8gfSksXG4vKiAzOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG4vLyA3LjIuMSBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIGlmKGl0ID09IHVuZGVmaW5lZCl0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgXCIgKyBpdCk7XG4gIHJldHVybiBpdDtcbn07XG5cbi8qKiovIH0pLFxuLyogMzkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgJGtleXMgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg3KVxuICAsIGVudW1CdWdLZXlzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1Myk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKXtcbiAgcmV0dXJuICRrZXlzKE8sIGVudW1CdWdLZXlzKTtcbn07XG5cbi8qKiovIH0pLFxuLyogNDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gdG8gaW5kZXhlZCBvYmplY3QsIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oNDkpXG4gICwgZGVmaW5lZCA9IF9fd2VicGFja19yZXF1aXJlX18oMzgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIHJldHVybiBJT2JqZWN0KGRlZmluZWQoaXQpKTtcbn07XG5cbi8qKiovIH0pLFxuLyogNDEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIHNoYXJlZCA9IF9fd2VicGFja19yZXF1aXJlX18oNTIpKCdrZXlzJylcbiAgLCB1aWQgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMyKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oa2V5KXtcbiAgcmV0dXJuIHNoYXJlZFtrZXldIHx8IChzaGFyZWRba2V5XSA9IHVpZChrZXkpKTtcbn07XG5cbi8qKiovIH0pLFxuLyogNDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IHNjcmlwdEZyb21Db2RlcG9pbnQ7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYlwiXSA9IHN1cHBvcnRlZENvZGVwb2ludDtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyk7XG5cblxuXG5cbi8qKlxuICogVW5pY29kZSBibG9jayBkYXRhIGZvciB0aGUgZmFtaWxpZXMgb2Ygc2NyaXB0cyB3ZSBzdXBwb3J0IGluIFxcdGV4dHt9LlxuICogU2NyaXB0cyBvbmx5IG5lZWQgdG8gYXBwZWFyIGhlcmUgaWYgdGhleSBkbyBub3QgaGF2ZSBmb250IG1ldHJpY3MuXG4gKi9cbnZhciBzY3JpcHREYXRhID0gW3tcbiAgICAvLyBMYXRpbiBjaGFyYWN0ZXJzIGJleW9uZCB0aGUgTGF0aW4tMSBjaGFyYWN0ZXJzIHdlIGhhdmUgbWV0cmljcyBmb3IuXG4gICAgLy8gTmVlZGVkIGZvciBDemVjaCwgSHVuZ2FyaWFuIGFuZCBUdXJraXNoIHRleHQsIGZvciBleGFtcGxlLlxuICAgIG5hbWU6ICdsYXRpbicsXG4gICAgYmxvY2tzOiBbWzB4MDEwMCwgMHgwMjRmXSwgLy8gTGF0aW4gRXh0ZW5kZWQtQSBhbmQgTGF0aW4gRXh0ZW5kZWQtQlxuICAgIFsweDAzMDAsIDB4MDM2Zl1dXG59LCB7XG4gICAgLy8gVGhlIEN5cmlsbGljIHNjcmlwdCB1c2VkIGJ5IFJ1c3NpYW4gYW5kIHJlbGF0ZWQgbGFuZ3VhZ2VzLlxuICAgIC8vIEEgQ3lyaWxsaWMgc3Vic2V0IHVzZWQgdG8gYmUgc3VwcG9ydGVkIGFzIGV4cGxpY2l0bHkgZGVmaW5lZFxuICAgIC8vIHN5bWJvbHMgaW4gc3ltYm9scy5qc1xuICAgIG5hbWU6ICdjeXJpbGxpYycsXG4gICAgYmxvY2tzOiBbWzB4MDQwMCwgMHgwNGZmXV1cbn0sIHtcbiAgICAvLyBUaGUgQnJhaG1pYyBzY3JpcHRzIG9mIFNvdXRoIGFuZCBTb3V0aGVhc3QgQXNpYVxuICAgIC8vIERldmFuYWdhcmkgKDA5MDDigJMwOTdGKVxuICAgIC8vIEJlbmdhbGkgKDA5ODDigJMwOUZGKVxuICAgIC8vIEd1cm11a2hpICgwQTAw4oCTMEE3RilcbiAgICAvLyBHdWphcmF0aSAoMEE4MOKAkzBBRkYpXG4gICAgLy8gT3JpeWEgKDBCMDDigJMwQjdGKVxuICAgIC8vIFRhbWlsICgwQjgw4oCTMEJGRilcbiAgICAvLyBUZWx1Z3UgKDBDMDDigJMwQzdGKVxuICAgIC8vIEthbm5hZGEgKDBDODDigJMwQ0ZGKVxuICAgIC8vIE1hbGF5YWxhbSAoMEQwMOKAkzBEN0YpXG4gICAgLy8gU2luaGFsYSAoMEQ4MOKAkzBERkYpXG4gICAgLy8gVGhhaSAoMEUwMOKAkzBFN0YpXG4gICAgLy8gTGFvICgwRTgw4oCTMEVGRilcbiAgICAvLyBUaWJldGFuICgwRjAw4oCTMEZGRilcbiAgICAvLyBNeWFubWFyICgxMDAw4oCTMTA5RilcbiAgICBuYW1lOiAnYnJhaG1pYycsXG4gICAgYmxvY2tzOiBbWzB4MDkwMCwgMHgxMDlGXV1cbn0sIHtcbiAgICBuYW1lOiAnZ2VvcmdpYW4nLFxuICAgIGJsb2NrczogW1sweDEwQTAsIDB4MTBmZl1dXG59LCB7XG4gICAgLy8gQ2hpbmVzZSBhbmQgSmFwYW5lc2UuXG4gICAgLy8gVGhlIFwia1wiIGluIGNqayBpcyBmb3IgS29yZWFuLCBidXQgd2UndmUgc2VwYXJhdGVkIEtvcmVhbiBvdXRcbiAgICBuYW1lOiBcImNqa1wiLFxuICAgIGJsb2NrczogW1sweDMwMDAsIDB4MzBGRl0sIC8vIENKSyBzeW1ib2xzIGFuZCBwdW5jdHVhdGlvbiwgSGlyYWdhbmEsIEthdGFrYW5hXG4gICAgWzB4NEUwMCwgMHg5RkFGXSwgLy8gQ0pLIGlkZW9ncmFtc1xuICAgIFsweEZGMDAsIDB4RkY2MF1dXG59LCB7XG4gICAgLy8gS29yZWFuXG4gICAgbmFtZTogJ2hhbmd1bCcsXG4gICAgYmxvY2tzOiBbWzB4QUMwMCwgMHhEN0FGXV1cbn1dO1xuXG4vKipcbiAqIEdpdmVuIGEgY29kZXBvaW50LCByZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHNjcmlwdCBvciBzY3JpcHQgZmFtaWx5XG4gKiBpdCBpcyBmcm9tLCBvciBudWxsIGlmIGl0IGlzIG5vdCBwYXJ0IG9mIGEga25vd24gYmxvY2tcbiAqL1xuXG5cbi8qXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgVW5pY29kZSBzY3JpcHRzIGFuZCBzY3JpcHQgZmFtaWxpZXMgdGhhdCB3ZVxuICogc3VwcG9ydC4gVG8gYWRkIG5ldyBzY3JpcHRzIG9yIGZhbWlsaWVzLCBqdXN0IGFkZCBhIG5ldyBlbnRyeSB0byB0aGVcbiAqIHNjcmlwdERhdGEgYXJyYXkgYmVsb3cuIEFkZGluZyBzY3JpcHRzIHRvIHRoZSBzY3JpcHREYXRhIGFycmF5IGFsbG93c1xuICogY2hhcmFjdGVycyBmcm9tIHRoYXQgc2NyaXB0IHRvIGFwcGVhciBpbiBcXHRleHR7fSBlbnZpcm9ubWVudHMuXG4gKi9cblxuLyoqXG4gKiBFYWNoIHNjcmlwdCBvciBzY3JpcHQgZmFtaWx5IGhhcyBhIG5hbWUgYW5kIGFuIGFycmF5IG9mIGJsb2Nrcy5cbiAqIEVhY2ggYmxvY2sgaXMgYW4gYXJyYXkgb2YgdHdvIG51bWJlcnMgd2hpY2ggc3BlY2lmeSB0aGUgc3RhcnQgYW5kXG4gKiBlbmQgcG9pbnRzIChpbmNsdXNpdmUpIG9mIGEgYmxvY2sgb2YgVW5pY29kZSBjb2RlcG9pbnRzLlxuICovXG5mdW5jdGlvbiBzY3JpcHRGcm9tQ29kZXBvaW50KGNvZGVwb2ludCkge1xuICAgIHZhciBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZTtcbiAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IgPSBmYWxzZTtcbiAgICB2YXIgX2l0ZXJhdG9yRXJyb3IgPSB1bmRlZmluZWQ7XG5cbiAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQoKShzY3JpcHREYXRhKSwgX3N0ZXA7ICEoX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IChfc3RlcCA9IF9pdGVyYXRvci5uZXh0KCkpLmRvbmUpOyBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZSkge1xuICAgICAgICAgICAgdmFyIHNjcmlwdCA9IF9zdGVwLnZhbHVlO1xuICAgICAgICAgICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBfZGlkSXRlcmF0b3JFcnJvcjIgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBfaXRlcmF0b3JFcnJvcjIgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCgpKHNjcmlwdC5ibG9ja3MpLCBfc3RlcDI7ICEoX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbjIgPSAoX3N0ZXAyID0gX2l0ZXJhdG9yMi5uZXh0KCkpLmRvbmUpOyBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMiA9IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJsb2NrID0gX3N0ZXAyLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2RlcG9pbnQgPj0gYmxvY2tbMF0gJiYgY29kZXBvaW50IDw9IGJsb2NrWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBfZGlkSXRlcmF0b3JFcnJvcjIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIF9pdGVyYXRvckVycm9yMiA9IGVycjtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMiAmJiBfaXRlcmF0b3IyLnJldHVybikge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2l0ZXJhdG9yMi5yZXR1cm4oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfZGlkSXRlcmF0b3JFcnJvcjIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yMjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfZGlkSXRlcmF0b3JFcnJvciA9IHRydWU7XG4gICAgICAgIF9pdGVyYXRvckVycm9yID0gZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gJiYgX2l0ZXJhdG9yLnJldHVybikge1xuICAgICAgICAgICAgICAgIF9pdGVyYXRvci5yZXR1cm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGlmIChfZGlkSXRlcmF0b3JFcnJvcikge1xuICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQSBmbGF0dGVuZWQgdmVyc2lvbiBvZiBhbGwgdGhlIHN1cHBvcnRlZCBibG9ja3MgaW4gYSBzaW5nbGUgYXJyYXkuXG4gKiBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiB0byBtYWtlIHN1cHBvcnRlZENvZGVwb2ludCgpIGZhc3QuXG4gKi9cbnZhciBhbGxCbG9ja3MgPSBbXTtcbnNjcmlwdERhdGEuZm9yRWFjaChmdW5jdGlvbiAocykge1xuICAgIHJldHVybiBzLmJsb2Nrcy5mb3JFYWNoKGZ1bmN0aW9uIChiKSB7XG4gICAgICAgIHJldHVybiBhbGxCbG9ja3MucHVzaC5hcHBseShhbGxCbG9ja3MsIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfX19kZWZhdWx0KCkoYikpO1xuICAgIH0pO1xufSk7XG5cbi8qKlxuICogR2l2ZW4gYSBjb2RlcG9pbnQsIHJldHVybiB0cnVlIGlmIGl0IGZhbGxzIHdpdGhpbiBvbmUgb2YgdGhlXG4gKiBzY3JpcHRzIG9yIHNjcmlwdCBmYW1pbGllcyBkZWZpbmVkIGFib3ZlIGFuZCBmYWxzZSBvdGhlcndpc2UuXG4gKlxuICogTWljcm8gYmVuY2htYXJrcyBzaG93cyB0aGF0IHRoaXMgaXMgZmFzdGVyIHRoYW5cbiAqIC9bXFx1MzAwMC1cXHUzMEZGXFx1NEUwMC1cXHU5RkFGXFx1RkYwMC1cXHVGRjYwXFx1QUMwMC1cXHVEN0FGXFx1MDkwMC1cXHUxMDlGXS8udGVzdCgpXG4gKiBpbiBGaXJlZm94LCBDaHJvbWUgYW5kIE5vZGUuXG4gKi9cbmZ1bmN0aW9uIHN1cHBvcnRlZENvZGVwb2ludChjb2RlcG9pbnQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbEJsb2Nrcy5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgICBpZiAoY29kZXBvaW50ID49IGFsbEJsb2Nrc1tpXSAmJiBjb2RlcG9pbnQgPD0gYWxsQmxvY2tzW2kgKyAxXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKioqLyB9KSxcbi8qIDQzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZm9udE1ldHJpY3NfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzApO1xuXG5cblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9wdGlvbnMgdGhhdCB0aGUgUGFyc2VyIGNhcnJpZXNcbiAqIGFyb3VuZCB3aXRoIGl0IHdoaWxlIHBhcnNpbmcuIERhdGEgaXMgaGVsZCBpbiBhbiBgT3B0aW9uc2Agb2JqZWN0LCBhbmQgd2hlblxuICogcmVjdXJzaW5nLCBhIG5ldyBgT3B0aW9uc2Agb2JqZWN0IGNhbiBiZSBjcmVhdGVkIHdpdGggdGhlIGAud2l0aCpgIGFuZFxuICogYC5yZXNldGAgZnVuY3Rpb25zLlxuICovXG5cblxuXG5cbnZhciBzaXplU3R5bGVNYXAgPSBbXG4vLyBFYWNoIGVsZW1lbnQgY29udGFpbnMgW3RleHRzaXplLCBzY3JpcHRzaXplLCBzY3JpcHRzY3JpcHRzaXplXS5cbi8vIFRoZSBzaXplIG1hcHBpbmdzIGFyZSB0YWtlbiBmcm9tIFRlWCB3aXRoIFxcbm9ybWFsc2l6ZT0xMHB0LlxuWzEsIDEsIDFdLCAvLyBzaXplMTogWzUsIDUsIDVdICAgICAgICAgICAgICBcXHRpbnlcblsyLCAxLCAxXSwgLy8gc2l6ZTI6IFs2LCA1LCA1XVxuWzMsIDEsIDFdLCAvLyBzaXplMzogWzcsIDUsIDVdICAgICAgICAgICAgICBcXHNjcmlwdHNpemVcbls0LCAyLCAxXSwgLy8gc2l6ZTQ6IFs4LCA2LCA1XSAgICAgICAgICAgICAgXFxmb290bm90ZXNpemVcbls1LCAyLCAxXSwgLy8gc2l6ZTU6IFs5LCA2LCA1XSAgICAgICAgICAgICAgXFxzbWFsbFxuWzYsIDMsIDFdLCAvLyBzaXplNjogWzEwLCA3LCA1XSAgICAgICAgICAgICBcXG5vcm1hbHNpemVcbls3LCA0LCAyXSwgLy8gc2l6ZTc6IFsxMiwgOCwgNl0gICAgICAgICAgICAgXFxsYXJnZVxuWzgsIDYsIDNdLCAvLyBzaXplODogWzE0LjQsIDEwLCA3XSAgICAgICAgICBcXExhcmdlXG5bOSwgNywgNl0sIC8vIHNpemU5OiBbMTcuMjgsIDEyLCAxMF0gICAgICAgIFxcTEFSR0VcblsxMCwgOCwgN10sIC8vIHNpemUxMDogWzIwLjc0LCAxNC40LCAxMl0gICAgIFxcaHVnZVxuWzExLCAxMCwgOV1dO1xuXG52YXIgc2l6ZU11bHRpcGxpZXJzID0gW1xuLy8gZm9udE1ldHJpY3MuanM6Z2V0Rm9udE1ldHJpY3MgYWxzbyB1c2VzIHNpemUgaW5kZXhlcywgc28gaWZcbi8vIHlvdSBjaGFuZ2Ugc2l6ZSBpbmRleGVzLCBjaGFuZ2UgdGhhdCBmdW5jdGlvbi5cbjAuNSwgMC42LCAwLjcsIDAuOCwgMC45LCAxLjAsIDEuMiwgMS40NCwgMS43MjgsIDIuMDc0LCAyLjQ4OF07XG5cbnZhciBzaXplQXRTdHlsZSA9IGZ1bmN0aW9uIHNpemVBdFN0eWxlKHNpemUsIHN0eWxlKSB7XG4gICAgcmV0dXJuIHN0eWxlLnNpemUgPCAyID8gc2l6ZSA6IHNpemVTdHlsZU1hcFtzaXplIC0gMV1bc3R5bGUuc2l6ZSAtIDFdO1xufTtcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBtYWluIG9wdGlvbnMgY2xhc3MuIEl0IGNvbnRhaW5zIHRoZSBjdXJyZW50IHN0eWxlLCBzaXplLCBjb2xvcixcbiAqIGFuZCBmb250LlxuICpcbiAqIE9wdGlvbnMgb2JqZWN0cyBzaG91bGQgbm90IGJlIG1vZGlmaWVkLiBUbyBjcmVhdGUgYSBuZXcgT3B0aW9ucyB3aXRoXG4gKiBkaWZmZXJlbnQgcHJvcGVydGllcywgY2FsbCBhIGAuaGF2aW5nKmAgbWV0aG9kLlxuICovXG52YXIgT3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBPcHRpb25zKGRhdGEpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBPcHRpb25zKTtcblxuICAgICAgICB0aGlzLnN0eWxlID0gZGF0YS5zdHlsZTtcbiAgICAgICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgICAgIHRoaXMuc2l6ZSA9IGRhdGEuc2l6ZSB8fCBPcHRpb25zLkJBU0VTSVpFO1xuICAgICAgICB0aGlzLnRleHRTaXplID0gZGF0YS50ZXh0U2l6ZSB8fCB0aGlzLnNpemU7XG4gICAgICAgIHRoaXMucGhhbnRvbSA9ICEhZGF0YS5waGFudG9tO1xuICAgICAgICB0aGlzLmZvbnRGYW1pbHkgPSBkYXRhLmZvbnRGYW1pbHk7XG4gICAgICAgIHRoaXMuZm9udFdlaWdodCA9IGRhdGEuZm9udFdlaWdodCB8fCAnJztcbiAgICAgICAgdGhpcy5mb250U2hhcGUgPSBkYXRhLmZvbnRTaGFwZSB8fCAnJztcbiAgICAgICAgdGhpcy5zaXplTXVsdGlwbGllciA9IHNpemVNdWx0aXBsaWVyc1t0aGlzLnNpemUgLSAxXTtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gZGF0YS5tYXhTaXplO1xuICAgICAgICB0aGlzLl9mb250TWV0cmljcyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbmV3IG9wdGlvbnMgb2JqZWN0IHdpdGggdGhlIHNhbWUgcHJvcGVydGllcyBhcyBcInRoaXNcIi4gIFByb3BlcnRpZXNcbiAgICAgKiBmcm9tIFwiZXh0ZW5zaW9uXCIgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIG5ldyBvcHRpb25zIG9iamVjdC5cbiAgICAgKi9cblxuXG4gICAgLyoqXG4gICAgICogVGhlIGJhc2Ugc2l6ZSBpbmRleC5cbiAgICAgKi9cblxuXG4gICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQoKShPcHRpb25zLCBbe1xuICAgICAgICBrZXk6IFwiZXh0ZW5kXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBleHRlbmQoZXh0ZW5zaW9uKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICBzdHlsZTogdGhpcy5zdHlsZSxcbiAgICAgICAgICAgICAgICBzaXplOiB0aGlzLnNpemUsXG4gICAgICAgICAgICAgICAgdGV4dFNpemU6IHRoaXMudGV4dFNpemUsXG4gICAgICAgICAgICAgICAgY29sb3I6IHRoaXMuY29sb3IsXG4gICAgICAgICAgICAgICAgcGhhbnRvbTogdGhpcy5waGFudG9tLFxuICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IHRoaXMuZm9udEZhbWlseSxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnRXZWlnaHQsXG4gICAgICAgICAgICAgICAgZm9udFNoYXBlOiB0aGlzLmZvbnRTaGFwZSxcbiAgICAgICAgICAgICAgICBtYXhTaXplOiB0aGlzLm1heFNpemVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBleHRlbnNpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9uLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gZXh0ZW5zaW9uW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9wdGlvbnMoZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJuIGFuIG9wdGlvbnMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHN0eWxlLiBJZiBgdGhpcy5zdHlsZSA9PT0gc3R5bGVgLFxuICAgICAgICAgKiByZXR1cm5zIGB0aGlzYC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJoYXZpbmdTdHlsZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaGF2aW5nU3R5bGUoc3R5bGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0eWxlID09PSBzdHlsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IHNpemVBdFN0eWxlKHRoaXMudGV4dFNpemUsIHN0eWxlKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiBhbiBvcHRpb25zIG9iamVjdCB3aXRoIGEgY3JhbXBlZCB2ZXJzaW9uIG9mIHRoZSBjdXJyZW50IHN0eWxlLiBJZlxuICAgICAgICAgKiB0aGUgY3VycmVudCBzdHlsZSBpcyBjcmFtcGVkLCByZXR1cm5zIGB0aGlzYC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJoYXZpbmdDcmFtcGVkU3R5bGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGhhdmluZ0NyYW1wZWRTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhdmluZ1N0eWxlKHRoaXMuc3R5bGUuY3JhbXAoKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJuIGFuIG9wdGlvbnMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIHNpemUgYW5kIGluIGF0IGxlYXN0IGBcXHRleHRzdHlsZWAuXG4gICAgICAgICAqIFJldHVybnMgYHRoaXNgIGlmIGFwcHJvcHJpYXRlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImhhdmluZ1NpemVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGhhdmluZ1NpemUoc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2l6ZSA9PT0gc2l6ZSAmJiB0aGlzLnRleHRTaXplID09PSBzaXplKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB0aGlzLnN0eWxlLnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dFNpemU6IHNpemUsXG4gICAgICAgICAgICAgICAgICAgIHNpemVNdWx0aXBsaWVyOiBzaXplTXVsdGlwbGllcnNbc2l6ZSAtIDFdXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTGlrZSBgdGhpcy5oYXZpbmdTaXplKEJBU0VTSVpFKS5oYXZpbmdTdHlsZShzdHlsZSlgLiBJZiBgc3R5bGVgIGlzIG9taXR0ZWQsXG4gICAgICAgICAqIGNoYW5nZXMgdG8gYXQgbGVhc3QgYFxcdGV4dHN0eWxlYC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJoYXZpbmdCYXNlU3R5bGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGhhdmluZ0Jhc2VTdHlsZShzdHlsZSkge1xuICAgICAgICAgICAgc3R5bGUgPSBzdHlsZSB8fCB0aGlzLnN0eWxlLnRleHQoKTtcbiAgICAgICAgICAgIHZhciB3YW50U2l6ZSA9IHNpemVBdFN0eWxlKE9wdGlvbnMuQkFTRVNJWkUsIHN0eWxlKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpemUgPT09IHdhbnRTaXplICYmIHRoaXMudGV4dFNpemUgPT09IE9wdGlvbnMuQkFTRVNJWkUgJiYgdGhpcy5zdHlsZSA9PT0gc3R5bGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiB3YW50U2l6ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZSBhIG5ldyBvcHRpb25zIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBjb2xvci5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ3aXRoQ29sb3JcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHdpdGhDb2xvcihjb2xvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogY29sb3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZSBhIG5ldyBvcHRpb25zIG9iamVjdCB3aXRoIFwicGhhbnRvbVwiIHNldCB0byB0cnVlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcIndpdGhQaGFudG9tXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB3aXRoUGhhbnRvbSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgcGhhbnRvbTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlIGEgbmV3IG9wdGlvbnMgb2JqZWN0cyB3aXRoIHRoZSBnaXZlIGZvbnQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwid2l0aEZvbnRGYW1pbHlcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHdpdGhGb250RmFtaWx5KGZvbnRGYW1pbHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgZm9udEZhbWlseTogZm9udEZhbWlseSB8fCB0aGlzLmZvbnRGYW1pbHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENyZWF0ZXMgYSBuZXcgb3B0aW9ucyBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gZm9udCB3ZWlnaHRcbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJ3aXRoRm9udFdlaWdodFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gd2l0aEZvbnRXZWlnaHQoZm9udFdlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiBmb250V2VpZ2h0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcmVhdGVzIGEgbmV3IG9wdGlvbnMgb2JqZWN0IHdpdGggdGhlIGdpdmVuIGZvbnQgd2VpZ2h0XG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwid2l0aEZvbnRTaGFwZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gd2l0aEZvbnRTaGFwZShmb250U2hhcGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICAgICAgICAgICAgZm9udFNoYXBlOiBmb250U2hhcGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgQ1NTIHNpemluZyBjbGFzc2VzIHJlcXVpcmVkIHRvIHN3aXRjaCBmcm9tIGVuY2xvc2luZyBvcHRpb25zXG4gICAgICAgICAqIGBvbGRPcHRpb25zYCB0byBgdGhpc2AuIFJldHVybnMgYW4gYXJyYXkgb2YgY2xhc3Nlcy5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJzaXppbmdDbGFzc2VzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzaXppbmdDbGFzc2VzKG9sZE9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvbGRPcHRpb25zLnNpemUgIT09IHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJzaXppbmdcIiwgXCJyZXNldC1zaXplXCIgKyBvbGRPcHRpb25zLnNpemUsIFwic2l6ZVwiICsgdGhpcy5zaXplXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybiB0aGUgQ1NTIHNpemluZyBjbGFzc2VzIHJlcXVpcmVkIHRvIHN3aXRjaCB0byB0aGUgYmFzZSBzaXplLiBMaWtlXG4gICAgICAgICAqIGB0aGlzLmhhdmluZ1NpemUoQkFTRVNJWkUpLnNpemluZ0NsYXNzZXModGhpcylgLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImJhc2VTaXppbmdDbGFzc2VzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBiYXNlU2l6aW5nQ2xhc3NlcygpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpemUgIT09IE9wdGlvbnMuQkFTRVNJWkUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1wic2l6aW5nXCIsIFwicmVzZXQtc2l6ZVwiICsgdGhpcy5zaXplLCBcInNpemVcIiArIE9wdGlvbnMuQkFTRVNJWkVdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJuIHRoZSBmb250IG1ldHJpY3MgZm9yIHRoaXMgc2l6ZS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJmb250TWV0cmljc1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZm9udE1ldHJpY3MoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2ZvbnRNZXRyaWNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9udE1ldHJpY3MgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2ZvbnRNZXRyaWNzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZ2V0Rm9udE1ldHJpY3ModGhpcy5zaXplKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9mb250TWV0cmljcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIG1hcCBvZiBjb2xvciBuYW1lcyB0byBDU1MgY29sb3JzLlxuICAgICAgICAgKiBUT0RPKGVtaWx5KTogUmVtb3ZlIHRoaXMgd2hlbiB3ZSBoYXZlIHJlYWwgbWFjcm9zXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZ2V0Q29sb3JcIixcblxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBDU1MgY29sb3Igb2YgdGhlIGN1cnJlbnQgb3B0aW9ucyBvYmplY3QsIGFjY291bnRpbmcgZm9yIHRoZVxuICAgICAgICAgKiBgY29sb3JNYXBgLlxuICAgICAgICAgKi9cbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldENvbG9yKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGhhbnRvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcInRyYW5zcGFyZW50XCI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29sb3IgIT0gbnVsbCAmJiBPcHRpb25zLmNvbG9yTWFwLmhhc093blByb3BlcnR5KHRoaXMuY29sb3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9wdGlvbnMuY29sb3JNYXBbdGhpcy5jb2xvcl07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIE9wdGlvbnM7XG59KCk7XG5cbk9wdGlvbnMuQkFTRVNJWkUgPSA2O1xuT3B0aW9ucy5jb2xvck1hcCA9IHtcbiAgICBcImthdGV4LWJsdWVcIjogXCIjNjQ5NWVkXCIsXG4gICAgXCJrYXRleC1vcmFuZ2VcIjogXCIjZmZhNTAwXCIsXG4gICAgXCJrYXRleC1waW5rXCI6IFwiI2ZmMDBhZlwiLFxuICAgIFwia2F0ZXgtcmVkXCI6IFwiI2RmMDAzMFwiLFxuICAgIFwia2F0ZXgtZ3JlZW5cIjogXCIjMjhhZTdiXCIsXG4gICAgXCJrYXRleC1ncmF5XCI6IFwiZ3JheVwiLFxuICAgIFwia2F0ZXgtcHVycGxlXCI6IFwiIzlkMzhiZFwiLFxuICAgIFwia2F0ZXgtYmx1ZUFcIjogXCIjY2NmYWZmXCIsXG4gICAgXCJrYXRleC1ibHVlQlwiOiBcIiM4MGY2ZmZcIixcbiAgICBcImthdGV4LWJsdWVDXCI6IFwiIzYzZDllYVwiLFxuICAgIFwia2F0ZXgtYmx1ZURcIjogXCIjMTFhY2NkXCIsXG4gICAgXCJrYXRleC1ibHVlRVwiOiBcIiMwYzdmOTlcIixcbiAgICBcImthdGV4LXRlYWxBXCI6IFwiIzk0ZmZmNVwiLFxuICAgIFwia2F0ZXgtdGVhbEJcIjogXCIjMjZlZGQ1XCIsXG4gICAgXCJrYXRleC10ZWFsQ1wiOiBcIiMwMWQxYzFcIixcbiAgICBcImthdGV4LXRlYWxEXCI6IFwiIzAxYTk5NVwiLFxuICAgIFwia2F0ZXgtdGVhbEVcIjogXCIjMjA4MTcwXCIsXG4gICAgXCJrYXRleC1ncmVlbkFcIjogXCIjYjZmZmIwXCIsXG4gICAgXCJrYXRleC1ncmVlbkJcIjogXCIjOGFmMjgxXCIsXG4gICAgXCJrYXRleC1ncmVlbkNcIjogXCIjNzRjZjcwXCIsXG4gICAgXCJrYXRleC1ncmVlbkRcIjogXCIjMWZhYjU0XCIsXG4gICAgXCJrYXRleC1ncmVlbkVcIjogXCIjMGQ5MjNmXCIsXG4gICAgXCJrYXRleC1nb2xkQVwiOiBcIiNmZmQwYTlcIixcbiAgICBcImthdGV4LWdvbGRCXCI6IFwiI2ZmYmI3MVwiLFxuICAgIFwia2F0ZXgtZ29sZENcIjogXCIjZmY5YzM5XCIsXG4gICAgXCJrYXRleC1nb2xkRFwiOiBcIiNlMDdkMTBcIixcbiAgICBcImthdGV4LWdvbGRFXCI6IFwiI2E3NWEwNVwiLFxuICAgIFwia2F0ZXgtcmVkQVwiOiBcIiNmY2E5YTlcIixcbiAgICBcImthdGV4LXJlZEJcIjogXCIjZmY4NDgyXCIsXG4gICAgXCJrYXRleC1yZWRDXCI6IFwiI2Y5Njg1ZFwiLFxuICAgIFwia2F0ZXgtcmVkRFwiOiBcIiNlODRkMzlcIixcbiAgICBcImthdGV4LXJlZEVcIjogXCIjYmMyNjEyXCIsXG4gICAgXCJrYXRleC1tYXJvb25BXCI6IFwiI2ZmYmRlMFwiLFxuICAgIFwia2F0ZXgtbWFyb29uQlwiOiBcIiNmZjkyYzZcIixcbiAgICBcImthdGV4LW1hcm9vbkNcIjogXCIjZWQ1ZmE2XCIsXG4gICAgXCJrYXRleC1tYXJvb25EXCI6IFwiI2NhMzM3Y1wiLFxuICAgIFwia2F0ZXgtbWFyb29uRVwiOiBcIiM5ZTAzNGVcIixcbiAgICBcImthdGV4LXB1cnBsZUFcIjogXCIjZGRkN2ZmXCIsXG4gICAgXCJrYXRleC1wdXJwbGVCXCI6IFwiI2M2YjlmY1wiLFxuICAgIFwia2F0ZXgtcHVycGxlQ1wiOiBcIiNhYTg3ZmZcIixcbiAgICBcImthdGV4LXB1cnBsZURcIjogXCIjNzg1NGFiXCIsXG4gICAgXCJrYXRleC1wdXJwbGVFXCI6IFwiIzU0M2I3OFwiLFxuICAgIFwia2F0ZXgtbWludEFcIjogXCIjZjVmOWU4XCIsXG4gICAgXCJrYXRleC1taW50QlwiOiBcIiNlZGYyZGZcIixcbiAgICBcImthdGV4LW1pbnRDXCI6IFwiI2UwZTVjY1wiLFxuICAgIFwia2F0ZXgtZ3JheUFcIjogXCIjZjZmN2Y3XCIsXG4gICAgXCJrYXRleC1ncmF5QlwiOiBcIiNmMGYxZjJcIixcbiAgICBcImthdGV4LWdyYXlDXCI6IFwiI2UzZTVlNlwiLFxuICAgIFwia2F0ZXgtZ3JheURcIjogXCIjZDZkOGRhXCIsXG4gICAgXCJrYXRleC1ncmF5RVwiOiBcIiNiYWJlYzJcIixcbiAgICBcImthdGV4LWdyYXlGXCI6IFwiIzg4OGQ5M1wiLFxuICAgIFwia2F0ZXgtZ3JheUdcIjogXCIjNjI2NTY5XCIsXG4gICAgXCJrYXRleC1ncmF5SFwiOiBcIiMzYjNlNDBcIixcbiAgICBcImthdGV4LWdyYXlJXCI6IFwiIzIxMjQyY1wiLFxuICAgIFwia2F0ZXgta2FCbHVlXCI6IFwiIzMxNDQ1M1wiLFxuICAgIFwia2F0ZXgta2FHcmVlblwiOiBcIiM3MUIzMDdcIlxufTtcblxuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKE9wdGlvbnMpO1xuXG4vKioqLyB9KSxcbi8qIDQ0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fUGFyc2VFcnJvcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZG9tVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2ZvbnRNZXRyaWNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3N5bWJvbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdXRpbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7XG4vKipcbiAqIFRoaXMgZmlsZSBkZWFscyB3aXRoIGNyZWF0aW5nIGRlbGltaXRlcnMgb2YgdmFyaW91cyBzaXplcy4gVGhlIFRlWGJvb2tcbiAqIGRpc2N1c3NlcyB0aGVzZSByb3V0aW5lcyBvbiBwYWdlIDQ0MS00NDIsIGluIHRoZSBcIkFub3RoZXIgc3Vicm91dGluZSBzZXRzIGJveFxuICogeCB0byBhIHNwZWNpZmllZCB2YXJpYWJsZSBkZWxpbWl0ZXJcIiBwYXJhZ3JhcGguXG4gKlxuICogVGhlcmUgYXJlIHRocmVlIG1haW4gcm91dGluZXMgaGVyZS4gYG1ha2VTbWFsbERlbGltYCBtYWtlcyBhIGRlbGltaXRlciBpbiB0aGVcbiAqIG5vcm1hbCBmb250LCBidXQgaW4gZWl0aGVyIHRleHQsIHNjcmlwdCwgb3Igc2NyaXB0c2NyaXB0IHN0eWxlLlxuICogYG1ha2VMYXJnZURlbGltYCBtYWtlcyBhIGRlbGltaXRlciBpbiB0ZXh0c3R5bGUsIGJ1dCBpbiBvbmUgb2YgdGhlIFNpemUxLFxuICogU2l6ZTIsIFNpemUzLCBvciBTaXplNCBmb250cy4gYG1ha2VTdGFja2VkRGVsaW1gIG1ha2VzIGEgZGVsaW1pdGVyIG91dCBvZlxuICogc21hbGxlciBwaWVjZXMgdGhhdCBhcmUgc3RhY2tlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyB0YWtlIGEgcGFyYW1ldGVyIGBjZW50ZXJgLCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSBkZWxpbWl0ZXJcbiAqIHNob3VsZCBiZSBjZW50ZXJlZCBhcm91bmQgdGhlIGF4aXMuXG4gKlxuICogVGhlbiwgdGhlcmUgYXJlIHRocmVlIGV4cG9zZWQgZnVuY3Rpb25zLiBgc2l6ZWREZWxpbWAgbWFrZXMgYSBkZWxpbWl0ZXIgaW5cbiAqIG9uZSBvZiB0aGUgZ2l2ZW4gc2l6ZXMuIFRoaXMgaXMgdXNlZCBmb3IgdGhpbmdzIGxpa2UgYFxcYmlnbGAuXG4gKiBgY3VzdG9tU2l6ZWREZWxpbWAgbWFrZXMgYSBkZWxpbWl0ZXIgd2l0aCBhIGdpdmVuIHRvdGFsIGhlaWdodCtkZXB0aC4gSXQgaXNcbiAqIGNhbGxlZCBpbiBwbGFjZXMgbGlrZSBgXFxzcXJ0YC4gYGxlZnRSaWdodERlbGltYCBtYWtlcyBhbiBhcHByb3ByaWF0ZVxuICogZGVsaW1pdGVyIHdoaWNoIHN1cnJvdW5kcyBhbiBleHByZXNzaW9uIG9mIGEgZ2l2ZW4gaGVpZ2h0IGFuIGRlcHRoLiBJdCBpc1xuICogdXNlZCBpbiBgXFxsZWZ0YCBhbmQgYFxccmlnaHRgLlxuICovXG5cblxuXG5cblxuXG5cblxuXG5cbi8qKlxuICogR2V0IHRoZSBtZXRyaWNzIGZvciBhIGdpdmVuIHN5bWJvbCBhbmQgZm9udCwgYWZ0ZXIgdHJhbnNmb3JtYXRpb24gKGkuZS5cbiAqIGFmdGVyIGZvbGxvd2luZyByZXBsYWNlbWVudCBmcm9tIHN5bWJvbHMuanMpXG4gKi9cbnZhciBnZXRNZXRyaWNzID0gZnVuY3Rpb24gZ2V0TWV0cmljcyhzeW1ib2wsIGZvbnQsIG1vZGUpIHtcbiAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aFtzeW1ib2xdICYmIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhbc3ltYm9sXS5yZXBsYWNlKSB7XG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2ZvbnRNZXRyaWNzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZ2V0Q2hhcmFjdGVyTWV0cmljcyhfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoW3N5bWJvbF0ucmVwbGFjZSwgZm9udCwgbW9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fZm9udE1ldHJpY3NfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5nZXRDaGFyYWN0ZXJNZXRyaWNzKHN5bWJvbCwgZm9udCwgbW9kZSk7XG4gICAgfVxufTtcblxuLyoqXG4gKiBQdXRzIGEgZGVsaW1pdGVyIHNwYW4gaW4gYSBnaXZlbiBzdHlsZSwgYW5kIGFkZHMgYXBwcm9wcmlhdGUgaGVpZ2h0LCBkZXB0aCxcbiAqIGFuZCBtYXhGb250U2l6ZXMuXG4gKi9cbnZhciBzdHlsZVdyYXAgPSBmdW5jdGlvbiBzdHlsZVdyYXAoZGVsaW0sIHRvU3R5bGUsIG9wdGlvbnMsIGNsYXNzZXMpIHtcbiAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nQmFzZVN0eWxlKHRvU3R5bGUpO1xuXG4gICAgdmFyIHNwYW4gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oKGNsYXNzZXMgfHwgW10pLmNvbmNhdChuZXdPcHRpb25zLnNpemluZ0NsYXNzZXMob3B0aW9ucykpLCBbZGVsaW1dLCBvcHRpb25zKTtcblxuICAgIHNwYW4uZGVsaW1TaXplTXVsdGlwbGllciA9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgIHNwYW4uaGVpZ2h0ICo9IHNwYW4uZGVsaW1TaXplTXVsdGlwbGllcjtcbiAgICBzcGFuLmRlcHRoICo9IHNwYW4uZGVsaW1TaXplTXVsdGlwbGllcjtcbiAgICBzcGFuLm1heEZvbnRTaXplID0gbmV3T3B0aW9ucy5zaXplTXVsdGlwbGllcjtcblxuICAgIHJldHVybiBzcGFuO1xufTtcblxudmFyIGNlbnRlclNwYW4gPSBmdW5jdGlvbiBjZW50ZXJTcGFuKHNwYW4sIG9wdGlvbnMsIHN0eWxlKSB7XG4gICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ0Jhc2VTdHlsZShzdHlsZSk7XG4gICAgdmFyIHNoaWZ0ID0gKDEgLSBvcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gbmV3T3B0aW9ucy5zaXplTXVsdGlwbGllcikgKiBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodDtcblxuICAgIHNwYW4uY2xhc3Nlcy5wdXNoKFwiZGVsaW1jZW50ZXJcIik7XG4gICAgc3Bhbi5zdHlsZS50b3AgPSBzaGlmdCArIFwiZW1cIjtcbiAgICBzcGFuLmhlaWdodCAtPSBzaGlmdDtcbiAgICBzcGFuLmRlcHRoICs9IHNoaWZ0O1xufTtcblxuLyoqXG4gKiBNYWtlcyBhIHNtYWxsIGRlbGltaXRlci4gVGhpcyBpcyBhIGRlbGltaXRlciB0aGF0IGNvbWVzIGluIHRoZSBNYWluLVJlZ3VsYXJcbiAqIGZvbnQsIGJ1dCBpcyByZXN0eWxlZCB0byBlaXRoZXIgYmUgaW4gdGV4dHN0eWxlLCBzY3JpcHRzdHlsZSwgb3JcbiAqIHNjcmlwdHNjcmlwdHN0eWxlLlxuICovXG52YXIgbWFrZVNtYWxsRGVsaW0gPSBmdW5jdGlvbiBtYWtlU21hbGxEZWxpbShkZWxpbSwgc3R5bGUsIGNlbnRlciwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcykge1xuICAgIHZhciB0ZXh0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTeW1ib2woZGVsaW0sIFwiTWFpbi1SZWd1bGFyXCIsIG1vZGUsIG9wdGlvbnMpO1xuICAgIHZhciBzcGFuID0gc3R5bGVXcmFwKHRleHQsIHN0eWxlLCBvcHRpb25zLCBjbGFzc2VzKTtcbiAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNlbnRlclNwYW4oc3Bhbiwgb3B0aW9ucywgc3R5bGUpO1xuICAgIH1cbiAgICByZXR1cm4gc3Bhbjtcbn07XG5cbi8qKlxuICogQnVpbGRzIGEgc3ltYm9sIGluIHRoZSBnaXZlbiBmb250IHNpemUgKG5vdGUgc2l6ZSBpcyBhbiBpbnRlZ2VyKVxuICovXG52YXIgbWF0aHJtU2l6ZSA9IGZ1bmN0aW9uIG1hdGhybVNpemUodmFsdWUsIHNpemUsIG1vZGUsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTeW1ib2wodmFsdWUsIFwiU2l6ZVwiICsgc2l6ZSArIFwiLVJlZ3VsYXJcIiwgbW9kZSwgb3B0aW9ucyk7XG59O1xuXG4vKipcbiAqIE1ha2VzIGEgbGFyZ2UgZGVsaW1pdGVyLiBUaGlzIGlzIGEgZGVsaW1pdGVyIHRoYXQgY29tZXMgaW4gdGhlIFNpemUxLCBTaXplMixcbiAqIFNpemUzLCBvciBTaXplNCBmb250cy4gSXQgaXMgYWx3YXlzIHJlbmRlcmVkIGluIHRleHRzdHlsZS5cbiAqL1xudmFyIG1ha2VMYXJnZURlbGltID0gZnVuY3Rpb24gbWFrZUxhcmdlRGVsaW0oZGVsaW0sIHNpemUsIGNlbnRlciwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcykge1xuICAgIHZhciBpbm5lciA9IG1hdGhybVNpemUoZGVsaW0sIHNpemUsIG1vZGUsIG9wdGlvbnMpO1xuICAgIHZhciBzcGFuID0gc3R5bGVXcmFwKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJkZWxpbXNpemluZ1wiLCBcInNpemVcIiArIHNpemVdLCBbaW5uZXJdLCBvcHRpb25zKSwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRFWFQsIG9wdGlvbnMsIGNsYXNzZXMpO1xuICAgIGlmIChjZW50ZXIpIHtcbiAgICAgICAgY2VudGVyU3BhbihzcGFuLCBvcHRpb25zLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCk7XG4gICAgfVxuICAgIHJldHVybiBzcGFuO1xufTtcblxuLyoqXG4gKiBNYWtlIGFuIGlubmVyIHNwYW4gd2l0aCB0aGUgZ2l2ZW4gb2Zmc2V0IGFuZCBpbiB0aGUgZ2l2ZW4gZm9udC4gVGhpcyBpcyB1c2VkXG4gKiBpbiBgbWFrZVN0YWNrZWREZWxpbWAgdG8gbWFrZSB0aGUgc3RhY2tpbmcgcGllY2VzIGZvciB0aGUgZGVsaW1pdGVyLlxuICovXG52YXIgbWFrZUlubmVyID0gZnVuY3Rpb24gbWFrZUlubmVyKHN5bWJvbCwgZm9udCwgbW9kZSkge1xuICAgIHZhciBzaXplQ2xhc3MgPSB2b2lkIDA7XG4gICAgLy8gQXBwbHkgdGhlIGNvcnJlY3QgQ1NTIGNsYXNzIHRvIGNob29zZSB0aGUgcmlnaHQgZm9udC5cbiAgICBpZiAoZm9udCA9PT0gXCJTaXplMS1SZWd1bGFyXCIpIHtcbiAgICAgICAgc2l6ZUNsYXNzID0gXCJkZWxpbS1zaXplMVwiO1xuICAgIH0gZWxzZSBpZiAoZm9udCA9PT0gXCJTaXplNC1SZWd1bGFyXCIpIHtcbiAgICAgICAgc2l6ZUNsYXNzID0gXCJkZWxpbS1zaXplNFwiO1xuICAgIH1cblxuICAgIHZhciBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJkZWxpbXNpemluZ2lubmVyXCIsIHNpemVDbGFzc10sIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW10sIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVN5bWJvbChzeW1ib2wsIGZvbnQsIG1vZGUpXSldKTtcblxuICAgIC8vIFNpbmNlIHRoaXMgd2lsbCBiZSBwYXNzZWQgaW50byBgbWFrZVZMaXN0YCBpbiB0aGUgZW5kLCB3cmFwIHRoZSBlbGVtZW50XG4gICAgLy8gaW4gdGhlIGFwcHJvcHJpYXRlIHRhZyB0aGF0IFZMaXN0IHVzZXMuXG4gICAgcmV0dXJuIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IGlubmVyIH07XG59O1xuXG4vKipcbiAqIE1ha2UgYSBzdGFja2VkIGRlbGltaXRlciBvdXQgb2YgYSBnaXZlbiBkZWxpbWl0ZXIsIHdpdGggdGhlIHRvdGFsIGhlaWdodCBhdFxuICogbGVhc3QgYGhlaWdodFRvdGFsYC4gVGhpcyByb3V0aW5lIGlzIG1lbnRpb25lZCBvbiBwYWdlIDQ0MiBvZiB0aGUgVGVYYm9vay5cbiAqL1xudmFyIG1ha2VTdGFja2VkRGVsaW0gPSBmdW5jdGlvbiBtYWtlU3RhY2tlZERlbGltKGRlbGltLCBoZWlnaHRUb3RhbCwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKSB7XG4gICAgLy8gVGhlcmUgYXJlIGZvdXIgcGFydHMsIHRoZSB0b3AsIGFuIG9wdGlvbmFsIG1pZGRsZSwgYSByZXBlYXRlZCBwYXJ0LCBhbmQgYVxuICAgIC8vIGJvdHRvbS5cbiAgICB2YXIgdG9wID0gdm9pZCAwO1xuICAgIHZhciBtaWRkbGUgPSB2b2lkIDA7XG4gICAgdmFyIHJlcGVhdCA9IHZvaWQgMDtcbiAgICB2YXIgYm90dG9tID0gdm9pZCAwO1xuICAgIHRvcCA9IHJlcGVhdCA9IGJvdHRvbSA9IGRlbGltO1xuICAgIG1pZGRsZSA9IG51bGw7XG4gICAgLy8gQWxzbyBrZWVwIHRyYWNrIG9mIHdoYXQgZm9udCB0aGUgZGVsaW1pdGVycyBhcmUgaW5cbiAgICB2YXIgZm9udCA9IFwiU2l6ZTEtUmVndWxhclwiO1xuXG4gICAgLy8gV2Ugc2V0IHRoZSBwYXJ0cyBhbmQgZm9udCBiYXNlZCBvbiB0aGUgc3ltYm9sLiBOb3RlIHRoYXQgd2UgdXNlXG4gICAgLy8gJ1xcdTIzZDAnIGluc3RlYWQgb2YgJ3wnIGFuZCAnXFx1MjAxNicgaW5zdGVhZCBvZiAnXFxcXHwnIGZvciB0aGVcbiAgICAvLyByZXBlYXRzIG9mIHRoZSBhcnJvd3NcbiAgICBpZiAoZGVsaW0gPT09IFwiXFxcXHVwYXJyb3dcIikge1xuICAgICAgICByZXBlYXQgPSBib3R0b20gPSBcIlxcdTIzRDBcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxVcGFycm93XCIpIHtcbiAgICAgICAgcmVwZWF0ID0gYm90dG9tID0gXCJcXHUyMDE2XCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcZG93bmFycm93XCIpIHtcbiAgICAgICAgdG9wID0gcmVwZWF0ID0gXCJcXHUyM0QwXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcRG93bmFycm93XCIpIHtcbiAgICAgICAgdG9wID0gcmVwZWF0ID0gXCJcXHUyMDE2XCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcdXBkb3duYXJyb3dcIikge1xuICAgICAgICB0b3AgPSBcIlxcXFx1cGFycm93XCI7XG4gICAgICAgIHJlcGVhdCA9IFwiXFx1MjNEMFwiO1xuICAgICAgICBib3R0b20gPSBcIlxcXFxkb3duYXJyb3dcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxVcGRvd25hcnJvd1wiKSB7XG4gICAgICAgIHRvcCA9IFwiXFxcXFVwYXJyb3dcIjtcbiAgICAgICAgcmVwZWF0ID0gXCJcXHUyMDE2XCI7XG4gICAgICAgIGJvdHRvbSA9IFwiXFxcXERvd25hcnJvd1wiO1xuICAgIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiW1wiIHx8IGRlbGltID09PSBcIlxcXFxsYnJhY2tcIikge1xuICAgICAgICB0b3AgPSBcIlxcdTIzQTFcIjtcbiAgICAgICAgcmVwZWF0ID0gXCJcXHUyM0EyXCI7XG4gICAgICAgIGJvdHRvbSA9IFwiXFx1MjNBM1wiO1xuICAgICAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJdXCIgfHwgZGVsaW0gPT09IFwiXFxcXHJicmFja1wiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjNBNFwiO1xuICAgICAgICByZXBlYXQgPSBcIlxcdTIzQTVcIjtcbiAgICAgICAgYm90dG9tID0gXCJcXHUyM0E2XCI7XG4gICAgICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxsZmxvb3JcIikge1xuICAgICAgICByZXBlYXQgPSB0b3AgPSBcIlxcdTIzQTJcIjtcbiAgICAgICAgYm90dG9tID0gXCJcXHUyM0EzXCI7XG4gICAgICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxsY2VpbFwiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjNBMVwiO1xuICAgICAgICByZXBlYXQgPSBib3R0b20gPSBcIlxcdTIzQTJcIjtcbiAgICAgICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXHJmbG9vclwiKSB7XG4gICAgICAgIHJlcGVhdCA9IHRvcCA9IFwiXFx1MjNBNVwiO1xuICAgICAgICBib3R0b20gPSBcIlxcdTIzQTZcIjtcbiAgICAgICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXHJjZWlsXCIpIHtcbiAgICAgICAgdG9wID0gXCJcXHUyM0E0XCI7XG4gICAgICAgIHJlcGVhdCA9IGJvdHRvbSA9IFwiXFx1MjNBNVwiO1xuICAgICAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCIoXCIpIHtcbiAgICAgICAgdG9wID0gXCJcXHUyMzlCXCI7XG4gICAgICAgIHJlcGVhdCA9IFwiXFx1MjM5Q1wiO1xuICAgICAgICBib3R0b20gPSBcIlxcdTIzOURcIjtcbiAgICAgICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiKVwiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjM5RVwiO1xuICAgICAgICByZXBlYXQgPSBcIlxcdTIzOUZcIjtcbiAgICAgICAgYm90dG9tID0gXCJcXHUyM0EwXCI7XG4gICAgICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFx7XCIgfHwgZGVsaW0gPT09IFwiXFxcXGxicmFjZVwiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjNBN1wiO1xuICAgICAgICBtaWRkbGUgPSBcIlxcdTIzQThcIjtcbiAgICAgICAgYm90dG9tID0gXCJcXHUyM0E5XCI7XG4gICAgICAgIHJlcGVhdCA9IFwiXFx1MjNBQVwiO1xuICAgICAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcfVwiIHx8IGRlbGltID09PSBcIlxcXFxyYnJhY2VcIikge1xuICAgICAgICB0b3AgPSBcIlxcdTIzQUJcIjtcbiAgICAgICAgbWlkZGxlID0gXCJcXHUyM0FDXCI7XG4gICAgICAgIGJvdHRvbSA9IFwiXFx1MjNBRFwiO1xuICAgICAgICByZXBlYXQgPSBcIlxcdTIzQUFcIjtcbiAgICAgICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIH0gZWxzZSBpZiAoZGVsaW0gPT09IFwiXFxcXGxncm91cFwiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjNBN1wiO1xuICAgICAgICBib3R0b20gPSBcIlxcdTIzQTlcIjtcbiAgICAgICAgcmVwZWF0ID0gXCJcXHUyM0FBXCI7XG4gICAgICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxyZ3JvdXBcIikge1xuICAgICAgICB0b3AgPSBcIlxcdTIzQUJcIjtcbiAgICAgICAgYm90dG9tID0gXCJcXHUyM0FEXCI7XG4gICAgICAgIHJlcGVhdCA9IFwiXFx1MjNBQVwiO1xuICAgICAgICBmb250ID0gXCJTaXplNC1SZWd1bGFyXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCJcXFxcbG1vdXN0YWNoZVwiKSB7XG4gICAgICAgIHRvcCA9IFwiXFx1MjNBN1wiO1xuICAgICAgICBib3R0b20gPSBcIlxcdTIzQURcIjtcbiAgICAgICAgcmVwZWF0ID0gXCJcXHUyM0FBXCI7XG4gICAgICAgIGZvbnQgPSBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIlxcXFxybW91c3RhY2hlXCIpIHtcbiAgICAgICAgdG9wID0gXCJcXHUyM0FCXCI7XG4gICAgICAgIGJvdHRvbSA9IFwiXFx1MjNBOVwiO1xuICAgICAgICByZXBlYXQgPSBcIlxcdTIzQUFcIjtcbiAgICAgICAgZm9udCA9IFwiU2l6ZTQtUmVndWxhclwiO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgbWV0cmljcyBvZiB0aGUgZm91ciBzZWN0aW9uc1xuICAgIHZhciB0b3BNZXRyaWNzID0gZ2V0TWV0cmljcyh0b3AsIGZvbnQsIG1vZGUpO1xuICAgIHZhciB0b3BIZWlnaHRUb3RhbCA9IHRvcE1ldHJpY3MuaGVpZ2h0ICsgdG9wTWV0cmljcy5kZXB0aDtcbiAgICB2YXIgcmVwZWF0TWV0cmljcyA9IGdldE1ldHJpY3MocmVwZWF0LCBmb250LCBtb2RlKTtcbiAgICB2YXIgcmVwZWF0SGVpZ2h0VG90YWwgPSByZXBlYXRNZXRyaWNzLmhlaWdodCArIHJlcGVhdE1ldHJpY3MuZGVwdGg7XG4gICAgdmFyIGJvdHRvbU1ldHJpY3MgPSBnZXRNZXRyaWNzKGJvdHRvbSwgZm9udCwgbW9kZSk7XG4gICAgdmFyIGJvdHRvbUhlaWdodFRvdGFsID0gYm90dG9tTWV0cmljcy5oZWlnaHQgKyBib3R0b21NZXRyaWNzLmRlcHRoO1xuICAgIHZhciBtaWRkbGVIZWlnaHRUb3RhbCA9IDA7XG4gICAgdmFyIG1pZGRsZUZhY3RvciA9IDE7XG4gICAgaWYgKG1pZGRsZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgbWlkZGxlTWV0cmljcyA9IGdldE1ldHJpY3MobWlkZGxlLCBmb250LCBtb2RlKTtcbiAgICAgICAgbWlkZGxlSGVpZ2h0VG90YWwgPSBtaWRkbGVNZXRyaWNzLmhlaWdodCArIG1pZGRsZU1ldHJpY3MuZGVwdGg7XG4gICAgICAgIG1pZGRsZUZhY3RvciA9IDI7IC8vIHJlcGVhdCBzeW1tZXRyaWNhbGx5IGFib3ZlIGFuZCBiZWxvdyBtaWRkbGVcbiAgICB9XG5cbiAgICAvLyBDYWxjdWF0ZSB0aGUgbWluaW1hbCBoZWlnaHQgdGhhdCB0aGUgZGVsaW1pdGVyIGNhbiBoYXZlLlxuICAgIC8vIEl0IGlzIGF0IGxlYXN0IHRoZSBzaXplIG9mIHRoZSB0b3AsIGJvdHRvbSwgYW5kIG9wdGlvbmFsIG1pZGRsZSBjb21iaW5lZC5cbiAgICB2YXIgbWluSGVpZ2h0ID0gdG9wSGVpZ2h0VG90YWwgKyBib3R0b21IZWlnaHRUb3RhbCArIG1pZGRsZUhlaWdodFRvdGFsO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIGNvcGllcyBvZiB0aGUgcmVwZWF0IHN5bWJvbCB3ZSB3aWxsIG5lZWRcbiAgICB2YXIgcmVwZWF0Q291bnQgPSBNYXRoLmNlaWwoKGhlaWdodFRvdGFsIC0gbWluSGVpZ2h0KSAvIChtaWRkbGVGYWN0b3IgKiByZXBlYXRIZWlnaHRUb3RhbCkpO1xuXG4gICAgLy8gQ29tcHV0ZSB0aGUgdG90YWwgaGVpZ2h0IG9mIHRoZSBkZWxpbWl0ZXIgaW5jbHVkaW5nIGFsbCB0aGUgc3ltYm9sc1xuICAgIHZhciByZWFsSGVpZ2h0VG90YWwgPSBtaW5IZWlnaHQgKyByZXBlYXRDb3VudCAqIG1pZGRsZUZhY3RvciAqIHJlcGVhdEhlaWdodFRvdGFsO1xuXG4gICAgLy8gVGhlIGNlbnRlciBvZiB0aGUgZGVsaW1pdGVyIGlzIHBsYWNlZCBhdCB0aGUgY2VudGVyIG9mIHRoZSBheGlzLiBOb3RlXG4gICAgLy8gdGhhdCBpbiB0aGlzIGNvbnRleHQsIFwiY2VudGVyXCIgbWVhbnMgdGhhdCB0aGUgZGVsaW1pdGVyIHNob3VsZCBiZVxuICAgIC8vIGNlbnRlcmVkIGFyb3VuZCB0aGUgYXhpcyBpbiB0aGUgY3VycmVudCBzdHlsZSwgd2hpbGUgbm9ybWFsbHkgaXQgaXNcbiAgICAvLyBjZW50ZXJlZCBhcm91bmQgdGhlIGF4aXMgaW4gdGV4dHN0eWxlLlxuICAgIHZhciBheGlzSGVpZ2h0ID0gb3B0aW9ucy5mb250TWV0cmljcygpLmF4aXNIZWlnaHQ7XG4gICAgaWYgKGNlbnRlcikge1xuICAgICAgICBheGlzSGVpZ2h0ICo9IG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgfVxuICAgIC8vIENhbGN1bGF0ZSB0aGUgZGVwdGhcbiAgICB2YXIgZGVwdGggPSByZWFsSGVpZ2h0VG90YWwgLyAyIC0gYXhpc0hlaWdodDtcblxuICAgIC8vIE5vdywgd2Ugc3RhcnQgYnVpbGRpbmcgdGhlIHBpZWNlcyB0aGF0IHdpbGwgZ28gaW50byB0aGUgdmxpc3RcblxuICAgIC8vIEtlZXAgYSBsaXN0IG9mIHRoZSBpbm5lciBwaWVjZXNcbiAgICB2YXIgaW5uZXJzID0gW107XG5cbiAgICAvLyBBZGQgdGhlIGJvdHRvbSBzeW1ib2xcbiAgICBpbm5lcnMucHVzaChtYWtlSW5uZXIoYm90dG9tLCBmb250LCBtb2RlKSk7XG5cbiAgICBpZiAobWlkZGxlID09PSBudWxsKSB7XG4gICAgICAgIC8vIEFkZCB0aGF0IG1hbnkgc3ltYm9sc1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlcGVhdENvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGlubmVycy5wdXNoKG1ha2VJbm5lcihyZXBlYXQsIGZvbnQsIG1vZGUpKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBtaWRkbGUgYml0LCB3ZSBuZWVkIHRoZSBtaWRkbGUgcGFydCBhbmQgdHdvIHJlcGVhdGVkXG4gICAgICAgIC8vIHNlY3Rpb25zXG4gICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCByZXBlYXRDb3VudDsgX2krKykge1xuICAgICAgICAgICAgaW5uZXJzLnB1c2gobWFrZUlubmVyKHJlcGVhdCwgZm9udCwgbW9kZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlubmVycy5wdXNoKG1ha2VJbm5lcihtaWRkbGUsIGZvbnQsIG1vZGUpKTtcbiAgICAgICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgcmVwZWF0Q291bnQ7IF9pMisrKSB7XG4gICAgICAgICAgICBpbm5lcnMucHVzaChtYWtlSW5uZXIocmVwZWF0LCBmb250LCBtb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIHRvcCBzeW1ib2xcbiAgICBpbm5lcnMucHVzaChtYWtlSW5uZXIodG9wLCBmb250LCBtb2RlKSk7XG5cbiAgICAvLyBGaW5hbGx5LCBidWlsZCB0aGUgdmxpc3RcbiAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nQmFzZVN0eWxlKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5URVhUKTtcbiAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgcG9zaXRpb25UeXBlOiBcImJvdHRvbVwiLFxuICAgICAgICBwb3NpdGlvbkRhdGE6IGRlcHRoLFxuICAgICAgICBjaGlsZHJlbjogaW5uZXJzXG4gICAgfSwgbmV3T3B0aW9ucyk7XG5cbiAgICByZXR1cm4gc3R5bGVXcmFwKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJkZWxpbXNpemluZ1wiLCBcIm11bHRcIl0sIFtpbm5lcl0sIG5ld09wdGlvbnMpLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCwgb3B0aW9ucywgY2xhc3Nlcyk7XG59O1xuXG4vLyBBbGwgc3VyZHMgaGF2ZSAwLjA4ZW0gcGFkZGluZyBhYm92ZSB0aGUgdmluaWN1bHVtIGluc2lkZSB0aGUgU1ZHLlxuLy8gVGhhdCBrZWVwcyBicm93c2VyIHNwYW4gaGVpZ2h0IHJvdW5kaW5nIGVycm9yIGZyb20gcGluY2hpbmcgdGhlIGxpbmUuXG52YXIgdmJQYWQgPSA4MDsgLy8gcGFkZGluZyBhYm92ZSB0aGUgc3VyZCwgbWVhc3VyZWQgaW5zaWRlIHRoZSB2aWV3Qm94LlxudmFyIGVtUGFkID0gMC4wODsgLy8gcGFkZGluZywgaW4gZW1zLCBtZWFzdXJlZCBpbiB0aGUgZG9jdW1lbnQuXG5cbnZhciBzcXJ0U3ZnID0gZnVuY3Rpb24gc3FydFN2ZyhzcXJ0TmFtZSwgaGVpZ2h0LCB2aWV3Qm94SGVpZ2h0LCBvcHRpb25zKSB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IHZvaWQgMDtcbiAgICBpZiAoc3FydE5hbWUgPT09IFwic3FydFRhbGxcIikge1xuICAgICAgICAvLyBzcXJ0VGFsbCBpcyBmcm9tIGdseXBoIFUyM0I3IGluIHRoZSBmb250IEthVGVYX1NpemU0LVJlZ3VsYXJcbiAgICAgICAgLy8gT25lIHBhdGggZWRnZSBoYXMgYSB2YXJpYWJsZSBsZW5ndGguIEl0IHJ1bnMgZnJvbSB0aGUgdmluaWN1bHVtblxuICAgICAgICAvLyB0byBhIHBvaW50IG5lYXIgKDE0IHVuaXRzKSB0aGUgYm90dG9tIG9mIHRoZSBzdXJkLiBUaGUgdmluaWN1bHVtXG4gICAgICAgIC8vIGlzIDQwIHVuaXRzIHRoaWNrLiBTbyB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIGluIHF1ZXN0aW9uIGlzOlxuICAgICAgICB2YXIgdmVydFNlZ21lbnQgPSB2aWV3Qm94SGVpZ2h0IC0gNTQgLSB2YlBhZDtcbiAgICAgICAgYWx0ZXJuYXRlID0gXCJNNzAyIFwiICsgdmJQYWQgKyBcIkg0MDAwMDB2NDBINzQydlwiICsgdmVydFNlZ21lbnQgKyBcImwtNCA0LTQgNGMtLjY2Ny43XFxuLTIgMS41LTQgMi41cy00LjE2NyAxLjgzMy02LjUgMi41LTUuNSAxLTkuNSAxaC0xMmwtMjgtODRjLTE2LjY2Ny01Mi05Ni42NjdcXG4tMjk0LjMzMy0yNDAtNzI3bC0yMTIgLTY0MyAtODUgMTcwYy00LTMuMzMzLTguMzMzLTcuNjY3LTEzIC0xM2wtMTMtMTNsNzctMTU1XFxuIDc3LTE1NmM2NiAxOTkuMzMzIDEzOSA0MTkuNjY3IDIxOSA2NjEgbDIxOCA2NjF6TTcwMiBcIiArIHZiUGFkICsgXCJINDAwMDAwdjQwSDc0MnpcIjtcbiAgICB9XG4gICAgdmFyIHBhdGhOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnBhdGhOb2RlKHNxcnROYW1lLCBhbHRlcm5hdGUpO1xuXG4gICAgdmFyIHN2ZyA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zdmdOb2RlKFtwYXRoTm9kZV0sIHtcbiAgICAgICAgLy8gTm90ZTogMTAwMDoxIHJhdGlvIG9mIHZpZXdCb3ggdG8gZG9jdW1lbnQgZW0gd2lkdGguXG4gICAgICAgIFwid2lkdGhcIjogXCI0MDBlbVwiLFxuICAgICAgICBcImhlaWdodFwiOiBoZWlnaHQgKyBcImVtXCIsXG4gICAgICAgIFwidmlld0JveFwiOiBcIjAgMCA0MDAwMDAgXCIgKyB2aWV3Qm94SGVpZ2h0LFxuICAgICAgICBcInByZXNlcnZlQXNwZWN0UmF0aW9cIjogXCJ4TWluWU1pbiBzbGljZVwiXG4gICAgfSk7XG5cbiAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcImhpZGUtdGFpbFwiXSwgW3N2Z10sIG9wdGlvbnMpO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgc3FydCBpbWFnZSBvZiB0aGUgZ2l2ZW4gaGVpZ2h0LFxuICovXG52YXIgbWFrZVNxcnRJbWFnZSA9IGZ1bmN0aW9uIG1ha2VTcXJ0SW1hZ2UoaGVpZ2h0LCBvcHRpb25zKSB7XG4gICAgdmFyIGRlbGltID0gdHJhdmVyc2VTZXF1ZW5jZShcIlxcXFxzdXJkXCIsIGhlaWdodCwgc3RhY2tMYXJnZURlbGltaXRlclNlcXVlbmNlLCBvcHRpb25zKTtcblxuICAgIC8vIENyZWF0ZSBhIHNwYW4gY29udGFpbmluZyBhbiBTVkcgaW1hZ2Ugb2YgYSBzcXJ0IHN5bWJvbC5cbiAgICB2YXIgc3BhbiA9IHZvaWQgMDtcbiAgICB2YXIgc2l6ZU11bHRpcGxpZXIgPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyOyAvLyBkZWZhdWx0XG4gICAgdmFyIHNwYW5IZWlnaHQgPSAwO1xuICAgIHZhciB0ZXhIZWlnaHQgPSAwO1xuICAgIHZhciB2aWV3Qm94SGVpZ2h0ID0gMDtcblxuICAgIC8vIFdlIGNyZWF0ZSB2aWV3Qm94ZXMgd2l0aCA4MCB1bml0cyBvZiBcInBhZGRpbmdcIiBhYm92ZSBlYWNoIHN1cmQuXG4gICAgLy8gVGhlbiBicm93c2VyIHJvdW5kaW5nIGVycm9yIG9uIHRoZSBwYXJlbnQgc3BhbiBoZWlnaHQgd2lsbCBub3RcbiAgICAvLyBlbmNyb2FjaCBvbiB0aGUgaW5rIG9mIHRoZSB2aW5pY3VsdW0uIEJ1dCB0aGF0IHBhZGRpbmcgaXMgbm90XG4gICAgLy8gaW5jbHVkZWQgaW4gdGhlIFRlWC1saWtlIGBoZWlnaHRgIHVzZWQgZm9yIGNhbGN1bGF0aW9uIG9mXG4gICAgLy8gdmVydGljYWwgYWxpZ25tZW50LiBTbyB0ZXhIZWlnaHQgPSBzcGFuLmhlaWdodCA8IHNwYW4uc3R5bGUuaGVpZ2h0LlxuXG4gICAgaWYgKGRlbGltLnR5cGUgPT09IFwic21hbGxcIikge1xuICAgICAgICAvLyBHZXQgYW4gU1ZHIHRoYXQgaXMgZGVyaXZlZCBmcm9tIGdseXBoIFUrMjIxQSBpbiBmb250IEthVGVYLU1haW4uXG4gICAgICAgIHZpZXdCb3hIZWlnaHQgPSAxMDAwICsgdmJQYWQ7IC8vIDEwMDAgdW5pdCBnbHlwaCBoZWlnaHQuXG4gICAgICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdCYXNlU3R5bGUoZGVsaW0uc3R5bGUpO1xuICAgICAgICBzaXplTXVsdGlwbGllciA9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgICAgICBzcGFuSGVpZ2h0ID0gKDEuMCArIGVtUGFkKSAqIHNpemVNdWx0aXBsaWVyO1xuICAgICAgICB0ZXhIZWlnaHQgPSAxLjAwICogc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIHNwYW4gPSBzcXJ0U3ZnKFwic3FydE1haW5cIiwgc3BhbkhlaWdodCwgdmlld0JveEhlaWdodCwgb3B0aW9ucyk7XG4gICAgICAgIHNwYW4uc3R5bGUubWluV2lkdGggPSBcIjAuODUzZW1cIjtcbiAgICAgICAgc3Bhbi5hZHZhbmNlV2lkdGggPSAwLjgzMyAqIHNpemVNdWx0aXBsaWVyOyAvLyBmcm9tIHRoZSBmb250LlxuICAgIH0gZWxzZSBpZiAoZGVsaW0udHlwZSA9PT0gXCJsYXJnZVwiKSB7XG4gICAgICAgIC8vIFRoZXNlIFNWR3MgY29tZSBmcm9tIGZvbnRzOiBLYVRlWF9TaXplMSwgX1NpemUyLCBldGMuXG4gICAgICAgIHZpZXdCb3hIZWlnaHQgPSAoMTAwMCArIHZiUGFkKSAqIHNpemVUb01heEhlaWdodFtkZWxpbS5zaXplXTtcbiAgICAgICAgdGV4SGVpZ2h0ID0gc2l6ZVRvTWF4SGVpZ2h0W2RlbGltLnNpemVdIC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIHNwYW5IZWlnaHQgPSAoc2l6ZVRvTWF4SGVpZ2h0W2RlbGltLnNpemVdICsgZW1QYWQpIC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIHNwYW4gPSBzcXJ0U3ZnKFwic3FydFNpemVcIiArIGRlbGltLnNpemUsIHNwYW5IZWlnaHQsIHZpZXdCb3hIZWlnaHQsIG9wdGlvbnMpO1xuICAgICAgICBzcGFuLnN0eWxlLm1pbldpZHRoID0gXCIxLjAyZW1cIjtcbiAgICAgICAgc3Bhbi5hZHZhbmNlV2lkdGggPSAxLjAgLyBzaXplTXVsdGlwbGllcjsgLy8gZnJvbSB0aGUgZm9udFxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRhbGwgc3FydC4gSW4gVGVYLCB0aGlzIHdvdWxkIGJlIHN0YWNrZWQgdXNpbmcgbXVsdGlwbGUgZ2x5cGhzLlxuICAgICAgICAvLyBXZSdsbCB1c2UgYSBzaW5nbGUgU1ZHIHRvIGFjY29tcGxpc2ggdGhlIHNhbWUgdGhpbmcuXG4gICAgICAgIHNwYW5IZWlnaHQgPSBoZWlnaHQgLyBzaXplTXVsdGlwbGllciArIGVtUGFkO1xuICAgICAgICB0ZXhIZWlnaHQgPSBoZWlnaHQgLyBzaXplTXVsdGlwbGllcjtcbiAgICAgICAgdmlld0JveEhlaWdodCA9IE1hdGguZmxvb3IoMTAwMCAqIGhlaWdodCkgKyB2YlBhZDtcbiAgICAgICAgc3BhbiA9IHNxcnRTdmcoXCJzcXJ0VGFsbFwiLCBzcGFuSGVpZ2h0LCB2aWV3Qm94SGVpZ2h0LCBvcHRpb25zKTtcbiAgICAgICAgc3Bhbi5zdHlsZS5taW5XaWR0aCA9IFwiMC43NDJlbVwiO1xuICAgICAgICBzcGFuLmFkdmFuY2VXaWR0aCA9IDEuMDU2IC8gc2l6ZU11bHRpcGxpZXI7XG4gICAgfVxuXG4gICAgc3Bhbi5oZWlnaHQgPSB0ZXhIZWlnaHQ7XG4gICAgc3Bhbi5zdHlsZS5oZWlnaHQgPSBzcGFuSGVpZ2h0ICsgXCJlbVwiO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3Bhbjogc3BhbixcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBhY3R1YWwgbGluZSB3aWR0aC5cbiAgICAgICAgLy8gVGhpcyBhY3R1YWxseSBzaG91bGQgZGVwZW5kIG9uIHRoZSBjaG9zZW4gZm9udCAtLSBlLmcuIFxcYm9sZG1hdGhcbiAgICAgICAgLy8gc2hvdWxkIHVzZSB0aGUgdGhpY2tlciBzdXJkIHN5bWJvbHMgZnJvbSBlLmcuIEthVGVYX01haW4tQm9sZCwgYW5kXG4gICAgICAgIC8vIGhhdmUgdGhpY2tlciBydWxlcy5cbiAgICAgICAgcnVsZVdpZHRoOiBvcHRpb25zLmZvbnRNZXRyaWNzKCkuc3FydFJ1bGVUaGlja25lc3MgKiBzaXplTXVsdGlwbGllclxuICAgIH07XG59O1xuXG4vLyBUaGVyZSBhcmUgdGhyZWUga2luZHMgb2YgZGVsaW1pdGVycywgZGVsaW1pdGVycyB0aGF0IHN0YWNrIHdoZW4gdGhleSBiZWNvbWVcbi8vIHRvbyBsYXJnZVxudmFyIHN0YWNrTGFyZ2VEZWxpbWl0ZXJzID0gW1wiKFwiLCBcIilcIiwgXCJbXCIsIFwiXFxcXGxicmFja1wiLCBcIl1cIiwgXCJcXFxccmJyYWNrXCIsIFwiXFxcXHtcIiwgXCJcXFxcbGJyYWNlXCIsIFwiXFxcXH1cIiwgXCJcXFxccmJyYWNlXCIsIFwiXFxcXGxmbG9vclwiLCBcIlxcXFxyZmxvb3JcIiwgXCJcXFxcbGNlaWxcIiwgXCJcXFxccmNlaWxcIiwgXCJcXFxcc3VyZFwiXTtcblxuLy8gZGVsaW1pdGVycyB0aGF0IGFsd2F5cyBzdGFja1xudmFyIHN0YWNrQWx3YXlzRGVsaW1pdGVycyA9IFtcIlxcXFx1cGFycm93XCIsIFwiXFxcXGRvd25hcnJvd1wiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCBcIlxcXFxVcGFycm93XCIsIFwiXFxcXERvd25hcnJvd1wiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCBcInxcIiwgXCJcXFxcfFwiLCBcIlxcXFx2ZXJ0XCIsIFwiXFxcXFZlcnRcIiwgXCJcXFxcbHZlcnRcIiwgXCJcXFxccnZlcnRcIiwgXCJcXFxcbFZlcnRcIiwgXCJcXFxcclZlcnRcIiwgXCJcXFxcbGdyb3VwXCIsIFwiXFxcXHJncm91cFwiLCBcIlxcXFxsbW91c3RhY2hlXCIsIFwiXFxcXHJtb3VzdGFjaGVcIl07XG5cbi8vIGFuZCBkZWxpbWl0ZXJzIHRoYXQgbmV2ZXIgc3RhY2tcbnZhciBzdGFja05ldmVyRGVsaW1pdGVycyA9IFtcIjxcIiwgXCI+XCIsIFwiXFxcXGxhbmdsZVwiLCBcIlxcXFxyYW5nbGVcIiwgXCIvXCIsIFwiXFxcXGJhY2tzbGFzaFwiLCBcIlxcXFxsdFwiLCBcIlxcXFxndFwiXTtcblxuLy8gTWV0cmljcyBvZiB0aGUgZGlmZmVyZW50IHNpemVzLiBGb3VuZCBieSBsb29raW5nIGF0IFRlWCdzIG91dHB1dCBvZlxuLy8gJFxcYmlnbHwgLy8gXFxCaWdsfCBcXGJpZ2dsfCBcXEJpZ2dsfCBcXHNob3dsaXN0cyRcbi8vIFVzZWQgdG8gY3JlYXRlIHN0YWNrZWQgZGVsaW1pdGVycyBvZiBhcHByb3ByaWF0ZSBzaXplcyBpbiBtYWtlU2l6ZWREZWxpbS5cbnZhciBzaXplVG9NYXhIZWlnaHQgPSBbMCwgMS4yLCAxLjgsIDIuNCwgMy4wXTtcblxuLyoqXG4gKiBVc2VkIHRvIGNyZWF0ZSBhIGRlbGltaXRlciBvZiBhIHNwZWNpZmljIHNpemUsIHdoZXJlIGBzaXplYCBpcyAxLCAyLCAzLCBvciA0LlxuICovXG52YXIgbWFrZVNpemVkRGVsaW0gPSBmdW5jdGlvbiBtYWtlU2l6ZWREZWxpbShkZWxpbSwgc2l6ZSwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcykge1xuICAgIC8vIDwgYW5kID4gdHVybiBpbnRvIFxcbGFuZ2xlIGFuZCBcXHJhbmdsZSBpbiBkZWxpbWl0ZXJzXG4gICAgaWYgKGRlbGltID09PSBcIjxcIiB8fCBkZWxpbSA9PT0gXCJcXFxcbHRcIiB8fCBkZWxpbSA9PT0gXCJcXHUyN0U4XCIpIHtcbiAgICAgICAgZGVsaW0gPSBcIlxcXFxsYW5nbGVcIjtcbiAgICB9IGVsc2UgaWYgKGRlbGltID09PSBcIj5cIiB8fCBkZWxpbSA9PT0gXCJcXFxcZ3RcIiB8fCBkZWxpbSA9PT0gXCJcXHUyN0U5XCIpIHtcbiAgICAgICAgZGVsaW0gPSBcIlxcXFxyYW5nbGVcIjtcbiAgICB9XG5cbiAgICAvLyBTaXplZCBkZWxpbWl0ZXJzIGFyZSBuZXZlciBjZW50ZXJlZC5cbiAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKHN0YWNrTGFyZ2VEZWxpbWl0ZXJzLCBkZWxpbSkgfHwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKHN0YWNrTmV2ZXJEZWxpbWl0ZXJzLCBkZWxpbSkpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VMYXJnZURlbGltKGRlbGltLCBzaXplLCBmYWxzZSwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcyk7XG4gICAgfSBlbHNlIGlmIChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uY29udGFpbnMoc3RhY2tBbHdheXNEZWxpbWl0ZXJzLCBkZWxpbSkpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VTdGFja2VkRGVsaW0oZGVsaW0sIHNpemVUb01heEhlaWdodFtzaXplXSwgZmFsc2UsIG9wdGlvbnMsIG1vZGUsIGNsYXNzZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIklsbGVnYWwgZGVsaW1pdGVyOiAnXCIgKyBkZWxpbSArIFwiJ1wiKTtcbiAgICB9XG59O1xuXG4vKipcbiAqIFRoZXJlIGFyZSB0aHJlZSBkaWZmZXJlbnQgc2VxdWVuY2VzIG9mIGRlbGltaXRlciBzaXplcyB0aGF0IHRoZSBkZWxpbWl0ZXJzXG4gKiBmb2xsb3cgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIGRlbGltaXRlci4gVGhpcyBpcyB1c2VkIHdoZW4gY3JlYXRpbmcgY3VzdG9tXG4gKiBzaXplZCBkZWxpbWl0ZXJzIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGNyZWF0ZSBhIHNtYWxsLCBsYXJnZSwgb3Igc3RhY2tlZFxuICogZGVsaW1pdGVyLlxuICpcbiAqIEluIHJlYWwgVGVYLCB0aGVzZSBzZXF1ZW5jZXMgYXJlbid0IGV4cGxpY2l0bHkgZGVmaW5lZCwgYnV0IGFyZSBpbnN0ZWFkXG4gKiBkZWZpbmVkIGluc2lkZSB0aGUgZm9udCBtZXRyaWNzLiBTaW5jZSB0aGVyZSBhcmUgb25seSB0aHJlZSBzZXF1ZW5jZXMgdGhhdFxuICogYXJlIHBvc3NpYmxlIGZvciB0aGUgZGVsaW1pdGVycyB0aGF0IFRlWCBkZWZpbmVzLCBpdCBpcyBlYXNpZXIgdG8ganVzdCBlbmNvZGVcbiAqIHRoZW0gZXhwbGljaXRseSBoZXJlLlxuICovXG5cbi8vIERlbGltaXRlcnMgdGhhdCBuZXZlciBzdGFjayB0cnkgc21hbGwgZGVsaW1pdGVycyBhbmQgbGFyZ2UgZGVsaW1pdGVycyBvbmx5XG52YXIgc3RhY2tOZXZlckRlbGltaXRlclNlcXVlbmNlID0gW3sgdHlwZTogXCJzbWFsbFwiLCBzdHlsZTogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVFNDUklQVCB9LCB7IHR5cGU6IFwic21hbGxcIiwgc3R5bGU6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5TQ1JJUFQgfSwgeyB0eXBlOiBcInNtYWxsXCIsIHN0eWxlOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCB9LCB7IHR5cGU6IFwibGFyZ2VcIiwgc2l6ZTogMSB9LCB7IHR5cGU6IFwibGFyZ2VcIiwgc2l6ZTogMiB9LCB7IHR5cGU6IFwibGFyZ2VcIiwgc2l6ZTogMyB9LCB7IHR5cGU6IFwibGFyZ2VcIiwgc2l6ZTogNCB9XTtcblxuLy8gRGVsaW1pdGVycyB0aGF0IGFsd2F5cyBzdGFjayB0cnkgdGhlIHNtYWxsIGRlbGltaXRlcnMgZmlyc3QsIHRoZW4gc3RhY2tcbnZhciBzdGFja0Fsd2F5c0RlbGltaXRlclNlcXVlbmNlID0gW3sgdHlwZTogXCJzbWFsbFwiLCBzdHlsZTogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVFNDUklQVCB9LCB7IHR5cGU6IFwic21hbGxcIiwgc3R5bGU6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5TQ1JJUFQgfSwgeyB0eXBlOiBcInNtYWxsXCIsIHN0eWxlOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCB9LCB7IHR5cGU6IFwic3RhY2tcIiB9XTtcblxuLy8gRGVsaW1pdGVycyB0aGF0IHN0YWNrIHdoZW4gbGFyZ2UgdHJ5IHRoZSBzbWFsbCBhbmQgdGhlbiBsYXJnZSBkZWxpbWl0ZXJzLCBhbmRcbi8vIHN0YWNrIGFmdGVyd2FyZHNcbnZhciBzdGFja0xhcmdlRGVsaW1pdGVyU2VxdWVuY2UgPSBbeyB0eXBlOiBcInNtYWxsXCIsIHN0eWxlOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uU0NSSVBUU0NSSVBUIH0sIHsgdHlwZTogXCJzbWFsbFwiLCBzdHlsZTogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVCB9LCB7IHR5cGU6IFwic21hbGxcIiwgc3R5bGU6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5URVhUIH0sIHsgdHlwZTogXCJsYXJnZVwiLCBzaXplOiAxIH0sIHsgdHlwZTogXCJsYXJnZVwiLCBzaXplOiAyIH0sIHsgdHlwZTogXCJsYXJnZVwiLCBzaXplOiAzIH0sIHsgdHlwZTogXCJsYXJnZVwiLCBzaXplOiA0IH0sIHsgdHlwZTogXCJzdGFja1wiIH1dO1xuXG4vKipcbiAqIEdldCB0aGUgZm9udCB1c2VkIGluIGEgZGVsaW1pdGVyIGJhc2VkIG9uIHdoYXQga2luZCBvZiBkZWxpbWl0ZXIgaXQgaXMuXG4gKi9cbnZhciBkZWxpbVR5cGVUb0ZvbnQgPSBmdW5jdGlvbiBkZWxpbVR5cGVUb0ZvbnQodHlwZSkge1xuICAgIGlmICh0eXBlLnR5cGUgPT09IFwic21hbGxcIikge1xuICAgICAgICByZXR1cm4gXCJNYWluLVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKHR5cGUudHlwZSA9PT0gXCJsYXJnZVwiKSB7XG4gICAgICAgIHJldHVybiBcIlNpemVcIiArIHR5cGUuc2l6ZSArIFwiLVJlZ3VsYXJcIjtcbiAgICB9IGVsc2UgaWYgKHR5cGUudHlwZSA9PT0gXCJzdGFja1wiKSB7XG4gICAgICAgIHJldHVybiBcIlNpemU0LVJlZ3VsYXJcIjtcbiAgICB9XG59O1xuXG4vKipcbiAqIFRyYXZlcnNlIGEgc2VxdWVuY2Ugb2YgdHlwZXMgb2YgZGVsaW1pdGVycyB0byBkZWNpZGUgd2hhdCBraW5kIG9mIGRlbGltaXRlclxuICogc2hvdWxkIGJlIHVzZWQgdG8gY3JlYXRlIGEgZGVsaW1pdGVyIG9mIHRoZSBnaXZlbiBoZWlnaHQrZGVwdGguXG4gKi9cbnZhciB0cmF2ZXJzZVNlcXVlbmNlID0gZnVuY3Rpb24gdHJhdmVyc2VTZXF1ZW5jZShkZWxpbSwgaGVpZ2h0LCBzZXF1ZW5jZSwgb3B0aW9ucykge1xuICAgIC8vIEhlcmUsIHdlIGNob29zZSB0aGUgaW5kZXggd2Ugc2hvdWxkIHN0YXJ0IGF0IGluIHRoZSBzZXF1ZW5jZXMuIEluIHNtYWxsZXJcbiAgICAvLyBzaXplcyAod2hpY2ggY29ycmVzcG9uZCB0byBsYXJnZXIgbnVtYmVycyBpbiBzdHlsZS5zaXplKSB3ZSBzdGFydCBlYXJsaWVyXG4gICAgLy8gaW4gdGhlIHNlcXVlbmNlLiBUaHVzLCBzY3JpcHRzY3JpcHQgc3RhcnRzIGF0IGluZGV4IDMtMz0wLCBzY3JpcHQgc3RhcnRzXG4gICAgLy8gYXQgaW5kZXggMy0yPTEsIHRleHQgc3RhcnRzIGF0IDMtMT0yLCBhbmQgZGlzcGxheSBzdGFydHMgYXQgbWluKDIsMy0wKT0yXG4gICAgdmFyIHN0YXJ0ID0gTWF0aC5taW4oMiwgMyAtIG9wdGlvbnMuc3R5bGUuc2l6ZSk7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgc2VxdWVuY2UubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHNlcXVlbmNlW2ldLnR5cGUgPT09IFwic3RhY2tcIikge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBhbHdheXMgdGhlIGxhc3QgZGVsaW1pdGVyLCBzbyB3ZSBqdXN0IGJyZWFrIHRoZSBsb29wIG5vdy5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1ldHJpY3MgPSBnZXRNZXRyaWNzKGRlbGltLCBkZWxpbVR5cGVUb0ZvbnQoc2VxdWVuY2VbaV0pLCBcIm1hdGhcIik7XG4gICAgICAgIHZhciBoZWlnaHREZXB0aCA9IG1ldHJpY3MuaGVpZ2h0ICsgbWV0cmljcy5kZXB0aDtcblxuICAgICAgICAvLyBTbWFsbCBkZWxpbWl0ZXJzIGFyZSBzY2FsZWQgZG93biB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBmb250LCBzbyB3ZVxuICAgICAgICAvLyBhY2NvdW50IGZvciB0aGUgc3R5bGUgY2hhbmdlIHNpemUuXG5cbiAgICAgICAgaWYgKHNlcXVlbmNlW2ldLnR5cGUgPT09IFwic21hbGxcIikge1xuICAgICAgICAgICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ0Jhc2VTdHlsZShzZXF1ZW5jZVtpXS5zdHlsZSk7XG4gICAgICAgICAgICBoZWlnaHREZXB0aCAqPSBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGRlbGltaXRlciBhdCB0aGlzIHNpemUgd29ya3MgZm9yIHRoZSBnaXZlbiBoZWlnaHQuXG4gICAgICAgIGlmIChoZWlnaHREZXB0aCA+IGhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHNlcXVlbmNlW2ldO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzZXF1ZW5jZSwgcmV0dXJuIHRoZSBsYXN0IHNlcXVlbmNlIGVsZW1lbnQuXG4gICAgcmV0dXJuIHNlcXVlbmNlW3NlcXVlbmNlLmxlbmd0aCAtIDFdO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgZGVsaW1pdGVyIG9mIGEgZ2l2ZW4gaGVpZ2h0K2RlcHRoLCB3aXRoIG9wdGlvbmFsIGNlbnRlcmluZy4gSGVyZSwgd2VcbiAqIHRyYXZlcnNlIHRoZSBzZXF1ZW5jZXMsIGFuZCBjcmVhdGUgYSBkZWxpbWl0ZXIgdGhhdCB0aGUgc2VxdWVuY2UgdGVsbHMgdXMgdG8uXG4gKi9cbnZhciBtYWtlQ3VzdG9tU2l6ZWREZWxpbSA9IGZ1bmN0aW9uIG1ha2VDdXN0b21TaXplZERlbGltKGRlbGltLCBoZWlnaHQsIGNlbnRlciwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcykge1xuICAgIGlmIChkZWxpbSA9PT0gXCI8XCIgfHwgZGVsaW0gPT09IFwiXFxcXGx0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdFOFwiKSB7XG4gICAgICAgIGRlbGltID0gXCJcXFxcbGFuZ2xlXCI7XG4gICAgfSBlbHNlIGlmIChkZWxpbSA9PT0gXCI+XCIgfHwgZGVsaW0gPT09IFwiXFxcXGd0XCIgfHwgZGVsaW0gPT09IFwiXFx1MjdFOVwiKSB7XG4gICAgICAgIGRlbGltID0gXCJcXFxccmFuZ2xlXCI7XG4gICAgfVxuXG4gICAgLy8gRGVjaWRlIHdoYXQgc2VxdWVuY2UgdG8gdXNlXG4gICAgdmFyIHNlcXVlbmNlID0gdm9pZCAwO1xuICAgIGlmIChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uY29udGFpbnMoc3RhY2tOZXZlckRlbGltaXRlcnMsIGRlbGltKSkge1xuICAgICAgICBzZXF1ZW5jZSA9IHN0YWNrTmV2ZXJEZWxpbWl0ZXJTZXF1ZW5jZTtcbiAgICB9IGVsc2UgaWYgKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhzdGFja0xhcmdlRGVsaW1pdGVycywgZGVsaW0pKSB7XG4gICAgICAgIHNlcXVlbmNlID0gc3RhY2tMYXJnZURlbGltaXRlclNlcXVlbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNlcXVlbmNlID0gc3RhY2tBbHdheXNEZWxpbWl0ZXJTZXF1ZW5jZTtcbiAgICB9XG5cbiAgICAvLyBMb29rIHRocm91Z2ggdGhlIHNlcXVlbmNlXG4gICAgdmFyIGRlbGltVHlwZSA9IHRyYXZlcnNlU2VxdWVuY2UoZGVsaW0sIGhlaWdodCwgc2VxdWVuY2UsIG9wdGlvbnMpO1xuXG4gICAgLy8gR2V0IHRoZSBkZWxpbWl0ZXIgZnJvbSBmb250IGdseXBocy5cbiAgICAvLyBEZXBlbmRpbmcgb24gdGhlIHNlcXVlbmNlIGVsZW1lbnQgd2UgZGVjaWRlZCBvbiwgY2FsbCB0aGVcbiAgICAvLyBhcHByb3ByaWF0ZSBmdW5jdGlvbi5cbiAgICBpZiAoZGVsaW1UeXBlLnR5cGUgPT09IFwic21hbGxcIikge1xuICAgICAgICByZXR1cm4gbWFrZVNtYWxsRGVsaW0oZGVsaW0sIGRlbGltVHlwZS5zdHlsZSwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgICB9IGVsc2UgaWYgKGRlbGltVHlwZS50eXBlID09PSBcImxhcmdlXCIpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VMYXJnZURlbGltKGRlbGltLCBkZWxpbVR5cGUuc2l6ZSwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgICB9IGVsc2UgLyogaWYgKGRlbGltVHlwZS50eXBlID09PSBcInN0YWNrXCIpICove1xuICAgICAgICAgICAgcmV0dXJuIG1ha2VTdGFja2VkRGVsaW0oZGVsaW0sIGhlaWdodCwgY2VudGVyLCBvcHRpb25zLCBtb2RlLCBjbGFzc2VzKTtcbiAgICAgICAgfVxufTtcblxuLyoqXG4gKiBNYWtlIGEgZGVsaW1pdGVyIGZvciB1c2Ugd2l0aCBgXFxsZWZ0YCBhbmQgYFxccmlnaHRgLCBnaXZlbiBhIGhlaWdodCBhbmQgZGVwdGhcbiAqIG9mIGFuIGV4cHJlc3Npb24gdGhhdCB0aGUgZGVsaW1pdGVycyBzdXJyb3VuZC5cbiAqL1xudmFyIG1ha2VMZWZ0UmlnaHREZWxpbSA9IGZ1bmN0aW9uIG1ha2VMZWZ0UmlnaHREZWxpbShkZWxpbSwgaGVpZ2h0LCBkZXB0aCwgb3B0aW9ucywgbW9kZSwgY2xhc3Nlcykge1xuICAgIC8vIFdlIGFsd2F5cyBjZW50ZXIgXFxsZWZ0L1xccmlnaHQgZGVsaW1pdGVycywgc28gdGhlIGF4aXMgaXMgYWx3YXlzIHNoaWZ0ZWRcbiAgICB2YXIgYXhpc0hlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0ICogb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcblxuICAgIC8vIFRha2VuIGZyb20gVGVYIHNvdXJjZSwgdGV4LndlYiwgZnVuY3Rpb24gbWFrZV9sZWZ0X3JpZ2h0XG4gICAgdmFyIGRlbGltaXRlckZhY3RvciA9IDkwMTtcbiAgICB2YXIgZGVsaW1pdGVyRXh0ZW5kID0gNS4wIC8gb3B0aW9ucy5mb250TWV0cmljcygpLnB0UGVyRW07XG5cbiAgICB2YXIgbWF4RGlzdEZyb21BeGlzID0gTWF0aC5tYXgoaGVpZ2h0IC0gYXhpc0hlaWdodCwgZGVwdGggKyBheGlzSGVpZ2h0KTtcblxuICAgIHZhciB0b3RhbEhlaWdodCA9IE1hdGgubWF4KFxuICAgIC8vIEluIHJlYWwgVGVYLCBjYWxjdWxhdGlvbnMgYXJlIGRvbmUgdXNpbmcgaW50ZWdyYWwgdmFsdWVzIHdoaWNoIGFyZVxuICAgIC8vIDY1NTM2IHBlciBwdCwgb3IgNjU1MzYwIHBlciBlbS4gU28sIHRoZSBkaXZpc2lvbiBoZXJlIHRydW5jYXRlcyBpblxuICAgIC8vIFRlWCBidXQgZG9lc24ndCBoZXJlLCBwcm9kdWNpbmcgZGlmZmVyZW50IHJlc3VsdHMuIElmIHdlIHdhbnRlZCB0b1xuICAgIC8vIGV4YWN0bHkgbWF0Y2ggVGVYJ3MgY2FsY3VsYXRpb24sIHdlIGNvdWxkIGRvXG4gICAgLy8gICBNYXRoLmZsb29yKDY1NTM2MCAqIG1heERpc3RGcm9tQXhpcyAvIDUwMCkgKlxuICAgIC8vICAgIGRlbGltaXRlckZhY3RvciAvIDY1NTM2MFxuICAgIC8vIChUbyBzZWUgdGhlIGRpZmZlcmVuY2UsIGNvbXBhcmVcbiAgICAvLyAgICB4Xnt4XntcXGxlZnQoXFxydWxlezAuMWVtfXswLjY4ZW19XFxyaWdodCl9fVxuICAgIC8vIGluIFRlWCBhbmQgS2FUZVgpXG4gICAgbWF4RGlzdEZyb21BeGlzIC8gNTAwICogZGVsaW1pdGVyRmFjdG9yLCAyICogbWF4RGlzdEZyb21BeGlzIC0gZGVsaW1pdGVyRXh0ZW5kKTtcblxuICAgIC8vIEZpbmFsbHksIHdlIGRlZmVyIHRvIGBtYWtlQ3VzdG9tU2l6ZWREZWxpbWAgd2l0aCBvdXIgY2FsY3VsYXRlZCB0b3RhbFxuICAgIC8vIGhlaWdodFxuICAgIHJldHVybiBtYWtlQ3VzdG9tU2l6ZWREZWxpbShkZWxpbSwgdG90YWxIZWlnaHQsIHRydWUsIG9wdGlvbnMsIG1vZGUsIGNsYXNzZXMpO1xufTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgc3FydEltYWdlOiBtYWtlU3FydEltYWdlLFxuICAgIHNpemVkRGVsaW06IG1ha2VTaXplZERlbGltLFxuICAgIGN1c3RvbVNpemVkRGVsaW06IG1ha2VDdXN0b21TaXplZERlbGltLFxuICAgIGxlZnRSaWdodERlbGltOiBtYWtlTGVmdFJpZ2h0RGVsaW1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDQ1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjApXG4gICwgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KS5kb2N1bWVudFxuICAvLyBpbiBvbGQgSUUgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCdcbiAgLCBpcyA9IGlzT2JqZWN0KGRvY3VtZW50KSAmJiBpc09iamVjdChkb2N1bWVudC5jcmVhdGVFbGVtZW50KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQpe1xuICByZXR1cm4gaXMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcblxuLyoqKi8gfSksXG4vKiA0NiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG4vLyBtb3N0IE9iamVjdCBtZXRob2RzIGJ5IEVTNiBzaG91bGQgYWNjZXB0IHByaW1pdGl2ZXNcbnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNSlcbiAgLCBjb3JlICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KVxuICAsIGZhaWxzICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oS0VZLCBleGVjKXtcbiAgdmFyIGZuICA9IChjb3JlLk9iamVjdCB8fCB7fSlbS0VZXSB8fCBPYmplY3RbS0VZXVxuICAgICwgZXhwID0ge307XG4gIGV4cFtLRVldID0gZXhlYyhmbik7XG4gICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24oKXsgZm4oMSk7IH0pLCAnT2JqZWN0JywgZXhwKTtcbn07XG5cbi8qKiovIH0pLFxuLyogNDcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3Mik7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGZuLCB0aGF0LCBsZW5ndGgpe1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZih0aGF0ID09PSB1bmRlZmluZWQpcmV0dXJuIGZuO1xuICBzd2l0Y2gobGVuZ3RoKXtcbiAgICBjYXNlIDE6IHJldHVybiBmdW5jdGlvbihhKXtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24oYSwgYil7XG4gICAgICByZXR1cm4gZm4uY2FsbCh0aGF0LCBhLCBiKTtcbiAgICB9O1xuICAgIGNhc2UgMzogcmV0dXJuIGZ1bmN0aW9uKGEsIGIsIGMpe1xuICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oLyogLi4uYXJncyAqLyl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuXG4vKioqLyB9KSxcbi8qIDQ4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgTElCUkFSWSAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgyKVxuICAsICRleHBvcnQgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNSlcbiAgLCByZWRlZmluZSAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oODMpXG4gICwgaGlkZSAgICAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2KVxuICAsIGhhcyAgICAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSlcbiAgLCBJdGVyYXRvcnMgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpXG4gICwgJGl0ZXJDcmVhdGUgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg0KVxuICAsIHNldFRvU3RyaW5nVGFnID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NClcbiAgLCBnZXRQcm90b3R5cGVPZiA9IF9fd2VicGFja19yZXF1aXJlX18oOTEpXG4gICwgSVRFUkFUT1IgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSgnaXRlcmF0b3InKVxuICAsIEJVR0dZICAgICAgICAgID0gIShbXS5rZXlzICYmICduZXh0JyBpbiBbXS5rZXlzKCkpIC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgLCBGRl9JVEVSQVRPUiAgICA9ICdAQGl0ZXJhdG9yJ1xuICAsIEtFWVMgICAgICAgICAgID0gJ2tleXMnXG4gICwgVkFMVUVTICAgICAgICAgPSAndmFsdWVzJztcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbigpeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihCYXNlLCBOQU1FLCBDb25zdHJ1Y3RvciwgbmV4dCwgREVGQVVMVCwgSVNfU0VULCBGT1JDRUQpe1xuICAkaXRlckNyZWF0ZShDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG4gIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbihraW5kKXtcbiAgICBpZighQlVHR1kgJiYga2luZCBpbiBwcm90bylyZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoKGtpbmQpe1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKXsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCl7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gIH07XG4gIHZhciBUQUcgICAgICAgID0gTkFNRSArICcgSXRlcmF0b3InXG4gICAgLCBERUZfVkFMVUVTID0gREVGQVVMVCA9PSBWQUxVRVNcbiAgICAsIFZBTFVFU19CVUcgPSBmYWxzZVxuICAgICwgcHJvdG8gICAgICA9IEJhc2UucHJvdG90eXBlXG4gICAgLCAkbmF0aXZlICAgID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdXG4gICAgLCAkZGVmYXVsdCAgID0gJG5hdGl2ZSB8fCBnZXRNZXRob2QoREVGQVVMVClcbiAgICAsICRlbnRyaWVzICAgPSBERUZBVUxUID8gIURFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZCgnZW50cmllcycpIDogdW5kZWZpbmVkXG4gICAgLCAkYW55TmF0aXZlID0gTkFNRSA9PSAnQXJyYXknID8gcHJvdG8uZW50cmllcyB8fCAkbmF0aXZlIDogJG5hdGl2ZVxuICAgICwgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZigkYW55TmF0aXZlKXtcbiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSkpO1xuICAgIGlmKEl0ZXJhdG9yUHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlKXtcbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpO1xuICAgICAgLy8gZml4IGZvciBzb21lIG9sZCBlbmdpbmVzXG4gICAgICBpZighTElCUkFSWSAmJiAhaGFzKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUikpaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgIH1cbiAgfVxuICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUyl7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKXsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTtcbiAgfVxuICAvLyBEZWZpbmUgaXRlcmF0b3JcbiAgaWYoKCFMSUJSQVJZIHx8IEZPUkNFRCkgJiYgKEJVR0dZIHx8IFZBTFVFU19CVUcgfHwgIXByb3RvW0lURVJBVE9SXSkpe1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gID0gcmV0dXJuVGhpcztcbiAgaWYoREVGQVVMVCl7XG4gICAgbWV0aG9kcyA9IHtcbiAgICAgIHZhbHVlczogIERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogICAgSVNfU0VUICAgICA/ICRkZWZhdWx0IDogZ2V0TWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogJGVudHJpZXNcbiAgICB9O1xuICAgIGlmKEZPUkNFRClmb3Ioa2V5IGluIG1ldGhvZHMpe1xuICAgICAgaWYoIShrZXkgaW4gcHJvdG8pKXJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7XG4gICAgfSBlbHNlICRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5GICogKEJVR0dZIHx8IFZBTFVFU19CVUcpLCBOQU1FLCBtZXRob2RzKTtcbiAgfVxuICByZXR1cm4gbWV0aG9kcztcbn07XG5cbi8qKiovIH0pLFxuLyogNDkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3NcbnZhciBjb2YgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUwKTtcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCkgPyBPYmplY3QgOiBmdW5jdGlvbihpdCl7XG4gIHJldHVybiBjb2YoaXQpID09ICdTdHJpbmcnID8gaXQuc3BsaXQoJycpIDogT2JqZWN0KGl0KTtcbn07XG5cbi8qKiovIH0pLFxuLyogNTAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxudmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQpe1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcblxuLyoqKi8gfSksXG4vKiA1MSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG4vLyA3LjEuMTUgVG9MZW5ndGhcbnZhciB0b0ludGVnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM3KVxuICAsIG1pbiAgICAgICA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdCl7XG4gIHJldHVybiBpdCA+IDAgPyBtaW4odG9JbnRlZ2VyKGl0KSwgMHgxZmZmZmZmZmZmZmZmZikgOiAwOyAvLyBwb3coMiwgNTMpIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuXG4vKioqLyB9KSxcbi8qIDUyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBnbG9iYWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KVxuICAsIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nXG4gICwgc3RvcmUgID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihrZXkpe1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHt9KTtcbn07XG5cbi8qKiovIH0pLFxuLyogNTMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuLy8gSUUgOC0gZG9uJ3QgZW51bSBidWcga2V5c1xubW9kdWxlLmV4cG9ydHMgPSAoXG4gICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnXG4pLnNwbGl0KCcsJyk7XG5cbi8qKiovIH0pLFxuLyogNTQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIGRlZiA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpLmZcbiAgLCBoYXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKVxuICAsIFRBRyA9IF9fd2VicGFja19yZXF1aXJlX18oMTEpKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGl0LCB0YWcsIHN0YXQpe1xuICBpZihpdCAmJiAhaGFzKGl0ID0gc3RhdCA/IGl0IDogaXQucHJvdG90eXBlLCBUQUcpKWRlZihpdCwgVEFHLCB7Y29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdGFnfSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDU1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBjbGFzc29mICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU2KVxuICAsIElURVJBVE9SICA9IF9fd2VicGFja19yZXF1aXJlX18oMTEpKCdpdGVyYXRvcicpXG4gICwgSXRlcmF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oOCkuZ2V0SXRlcmF0b3JNZXRob2QgPSBmdW5jdGlvbihpdCl7XG4gIGlmKGl0ICE9IHVuZGVmaW5lZClyZXR1cm4gaXRbSVRFUkFUT1JdXG4gICAgfHwgaXRbJ0BAaXRlcmF0b3InXVxuICAgIHx8IEl0ZXJhdG9yc1tjbGFzc29mKGl0KV07XG59O1xuXG4vKioqLyB9KSxcbi8qIDU2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY29mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1MClcbiAgLCBUQUcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSgndG9TdHJpbmdUYWcnKVxuICAvLyBFUzMgd3JvbmcgaGVyZVxuICAsIEFSRyA9IGNvZihmdW5jdGlvbigpeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uKGl0LCBrZXkpe1xuICB0cnkge1xuICAgIHJldHVybiBpdFtrZXldO1xuICB9IGNhdGNoKGUpeyAvKiBlbXB0eSAqLyB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGl0KXtcbiAgdmFyIE8sIFQsIEI7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mIChUID0gdHJ5R2V0KE8gPSBPYmplY3QoaXQpLCBUQUcpKSA9PSAnc3RyaW5nJyA/IFRcbiAgICAvLyBidWlsdGluVGFnIGNhc2VcbiAgICA6IEFSRyA/IGNvZihPKVxuICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2tcbiAgICA6IChCID0gY29mKE8pKSA9PSAnT2JqZWN0JyAmJiB0eXBlb2YgTy5jYWxsZWUgPT0gJ2Z1bmN0aW9uJyA/ICdBcmd1bWVudHMnIDogQjtcbn07XG5cbi8qKiovIH0pLFxuLyogNTcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxudmFyIF9pc0l0ZXJhYmxlMiA9IF9fd2VicGFja19yZXF1aXJlX18oOTcpO1xuXG52YXIgX2lzSXRlcmFibGUzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaXNJdGVyYWJsZTIpO1xuXG52YXIgX2dldEl0ZXJhdG9yMiA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpO1xuXG52YXIgX2dldEl0ZXJhdG9yMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dldEl0ZXJhdG9yMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gc2xpY2VJdGVyYXRvcihhcnIsIGkpIHtcbiAgICB2YXIgX2FyciA9IFtdO1xuICAgIHZhciBfbiA9IHRydWU7XG4gICAgdmFyIF9kID0gZmFsc2U7XG4gICAgdmFyIF9lID0gdW5kZWZpbmVkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGZvciAodmFyIF9pID0gKDAsIF9nZXRJdGVyYXRvcjMuZGVmYXVsdCkoYXJyKSwgX3M7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHtcbiAgICAgICAgX2Fyci5wdXNoKF9zLnZhbHVlKTtcblxuICAgICAgICBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBfZCA9IHRydWU7XG4gICAgICBfZSA9IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSkgX2lbXCJyZXR1cm5cIl0oKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChfZCkgdGhyb3cgX2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIF9hcnI7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKGFyciwgaSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICAgIHJldHVybiBhcnI7XG4gICAgfSBlbHNlIGlmICgoMCwgX2lzSXRlcmFibGUzLmRlZmF1bHQpKE9iamVjdChhcnIpKSkge1xuICAgICAgcmV0dXJuIHNsaWNlSXRlcmF0b3IoYXJyLCBpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2VcIik7XG4gICAgfVxuICB9O1xufSgpO1xuXG4vKioqLyB9KSxcbi8qIDU4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbl9fd2VicGFja19yZXF1aXJlX18oOTkpO1xudmFyIGdsb2JhbCAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KVxuICAsIGhpZGUgICAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2KVxuICAsIEl0ZXJhdG9ycyAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3KVxuICAsIFRPX1NUUklOR19UQUcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSgndG9TdHJpbmdUYWcnKTtcblxuZm9yKHZhciBjb2xsZWN0aW9ucyA9IFsnTm9kZUxpc3QnLCAnRE9NVG9rZW5MaXN0JywgJ01lZGlhTGlzdCcsICdTdHlsZVNoZWV0TGlzdCcsICdDU1NSdWxlTGlzdCddLCBpID0gMDsgaSA8IDU7IGkrKyl7XG4gIHZhciBOQU1FICAgICAgID0gY29sbGVjdGlvbnNbaV1cbiAgICAsIENvbGxlY3Rpb24gPSBnbG9iYWxbTkFNRV1cbiAgICAsIHByb3RvICAgICAgPSBDb2xsZWN0aW9uICYmIENvbGxlY3Rpb24ucHJvdG90eXBlO1xuICBpZihwcm90byAmJiAhcHJvdG9bVE9fU1RSSU5HX1RBR10paGlkZShwcm90bywgVE9fU1RSSU5HX1RBRywgTkFNRSk7XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IEl0ZXJhdG9ycy5BcnJheTtcbn1cblxuLyoqKi8gfSksXG4vKiA1OSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoe1xuICAgIFwiQU1TLVJlZ3VsYXJcIjoge1xuICAgICAgICBcIjY1XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNjdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjY4XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI2OVwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNzBcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI3MlwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjc0XCI6IFswLjE2NjY3LCAwLjY4ODg5LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjc1XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI3NlwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNzdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuOTQ0NDVdLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI3OVwiOiBbMC4xNjY2NywgMC42ODg4OSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODBcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjgxXCI6IFswLjE2NjY3LCAwLjY4ODg5LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODNcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjg0XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjg3XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg4XCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI4OVwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiOTBcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiMTY1XCI6IFswLCAwLjY3NSwgMC4wMjUsIDAsIDAuNzVdLFxuICAgICAgICBcIjE3NFwiOiBbMC4xNTU1OSwgMC42OTIyNCwgMCwgMCwgMC45NDY2Nl0sXG4gICAgICAgIFwiMjQwXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCIyOTVcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNTQwMjhdLFxuICAgICAgICBcIjcxMFwiOiBbMCwgMC44MjUsIDAsIDAsIDIuMzMzMzRdLFxuICAgICAgICBcIjczMlwiOiBbMCwgMC45LCAwLCAwLCAyLjMzMzM0XSxcbiAgICAgICAgXCI3NzBcIjogWzAsIDAuODI1LCAwLCAwLCAyLjMzMzM0XSxcbiAgICAgICAgXCI3NzFcIjogWzAsIDAuOSwgMCwgMCwgMi4zMzMzNF0sXG4gICAgICAgIFwiOTg5XCI6IFswLjA4MTY3LCAwLjU4MTY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDA4XCI6IFswLCAwLjQzMDU2LCAwLjA0MDI4LCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4MjQ1XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjI3NV0sXG4gICAgICAgIFwiODQ2M1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NDAyOF0sXG4gICAgICAgIFwiODQ4N1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODQ5OFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiODUwMlwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiODUwM1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiODUwNFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiODUxM1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODU5MlwiOiBbLTAuMDM1OTgsIDAuNDY0MDIsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODU5NFwiOiBbLTAuMDM1OTgsIDAuNDY0MDIsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODYwMlwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYwM1wiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYwNlwiOiBbMC4wMTM1NCwgMC41MjIzOSwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjA4XCI6IFswLjAxMzU0LCAwLjUyMjM5LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2MTBcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMTExMTFdLFxuICAgICAgICBcIjg2MTFcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMTExMTFdLFxuICAgICAgICBcIjg2MTlcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYyMFwiOiBbMCwgMC41NDk4NiwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjIxXCI6IFstMC4xMzMxMywgMC4zNzc4OCwgMCwgMCwgMS4zODg4OV0sXG4gICAgICAgIFwiODYyMlwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYyNFwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NjI1XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjg2MzBcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYzMVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjM0XCI6IFswLjA4MTk4LCAwLjU4MTk4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NjM1XCI6IFswLjA4MTk4LCAwLjU4MTk4LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NjM4XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjQxNjY3XSxcbiAgICAgICAgXCI4NjM5XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjQxNjY3XSxcbiAgICAgICAgXCI4NjQyXCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjQxNjY3XSxcbiAgICAgICAgXCI4NjQzXCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjQxNjY3XSxcbiAgICAgICAgXCI4NjQ0XCI6IFswLjE4MDgsIDAuNjc1LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NDZcIjogWzAuMTgwOCwgMC42NzUsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY0N1wiOiBbMC4xODA4LCAwLjY3NSwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjQ4XCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4NjQ5XCI6IFswLjE4MDgsIDAuNjc1LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NTBcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuODMzMzRdLFxuICAgICAgICBcIjg2NTFcIjogWzAuMDEzNTQsIDAuNTIyMzksIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY1MlwiOiBbMC4wMTM1NCwgMC41MjIzOSwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjUzXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjU0XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjU1XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjY2XCI6IFswLjEzNjY3LCAwLjYzNjY3LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NjdcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY2OVwiOiBbLTAuMTMzMTMsIDAuMzc3ODgsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY3MlwiOiBbLTAuMDY0LCAwLjQzNywgMCwgMCwgMTE4N10sXG4gICAgICAgIFwiODY3NFwiOiBbLTAuMDY0LCAwLjQzNywgMCwgMCwgMTE2N10sXG4gICAgICAgIFwiODcwNVwiOiBbMCwgMC44MjUsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODcwOFwiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiODcwOVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODcxN1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC40MjkxN10sXG4gICAgICAgIFwiODcyMlwiOiBbLTAuMDM1OTgsIDAuNDY0MDIsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODcyNFwiOiBbMC4wODE5OCwgMC42OTIyNCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODcyNlwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODczM1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODczNlwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODczN1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODczOFwiOiBbMC4wMzUxNywgMC41MjIzOSwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODczOVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4yMjIyMl0sXG4gICAgICAgIFwiODc0MFwiOiBbMC4yNTE0MiwgMC43NDExMSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiODc0MVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4zODg4OV0sXG4gICAgICAgIFwiODc0MlwiOiBbMC4yNTE0MiwgMC43NDExMSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzU2XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4NzU3XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4NzY0XCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODc2NVwiOiBbLTAuMTMzMTMsIDAuMzc3ODgsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3NjlcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NzcwXCI6IFstMC4wMzYyNSwgMC40NjM3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODc3NFwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODc3NlwiOiBbLTAuMDE2ODgsIDAuNDgzMTIsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3NzhcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODJcIjogWzAuMDYwNjIsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODNcIjogWzAuMDYwNjIsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODVcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODZcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODdcIjogWzAuMDgxOTgsIDAuNTgxOTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3OTBcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3OTFcIjogWzAuMjI5NTgsIDAuNzI5NTgsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3OTZcIjogWzAuMDgxOTgsIDAuOTE2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDZcIjogWzAuMjU1ODMsIDAuNzU1ODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDdcIjogWzAuMjU1ODMsIDAuNzU1ODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDhcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDlcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MTJcIjogWzAuMjU1ODMsIDAuNzU1ODMsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODgxNFwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgxNVwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgxNlwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgxN1wiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgxOFwiOiBbMC4yMjk1OCwgMC43Mjk1OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgxOVwiOiBbMC4yMjk1OCwgMC43Mjk1OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgyMlwiOiBbMC4xODA4LCAwLjY3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgyM1wiOiBbMC4xODA4LCAwLjY3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgyOFwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgyOVwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgzMFwiOiBbMC4yMjk1OCwgMC43Mjk1OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgzMVwiOiBbMC4yMjk1OCwgMC43Mjk1OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgzMlwiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgzM1wiOiBbMC4yMDU3NiwgMC43MDU3NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0MFwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0MVwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0MlwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0M1wiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0N1wiOiBbMC4wMzUxNywgMC41NDk4NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg0OFwiOiBbMC4wMzUxNywgMC41NDk4NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg1OFwiOiBbMC4wODE5OCwgMC41ODE5OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg1OVwiOiBbMC4wODE5OCwgMC41ODE5OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg2MVwiOiBbMC4wODE5OCwgMC41ODE5OCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg2MlwiOiBbMCwgMC42NzUsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4NjNcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODY0XCI6IFswLCAwLjY3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODg2NVwiOiBbMCwgMC42NzUsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4NzJcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg4NzNcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjg4NzRcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuODg4ODldLFxuICAgICAgICBcIjg4NzZcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg4NzdcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg4NzhcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjg4NzlcIjogWzAsIDAuNjg4ODksIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjg4ODJcIjogWzAuMDM1MTcsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4ODNcIjogWzAuMDM1MTcsIDAuNTQ5ODYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4ODRcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4ODVcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4ODhcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDEuMTExMTFdLFxuICAgICAgICBcIjg4OTBcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjg4OTFcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg4OTJcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg5MDFcIjogWzAsIDAuNTQ5ODYsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjg5MDNcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MDVcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MDZcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MDdcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MDhcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MDlcIjogWy0wLjAzNTk4LCAwLjQ2NDAyLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4OTEwXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjc2MDQyXSxcbiAgICAgICAgXCI4OTExXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjc2MDQyXSxcbiAgICAgICAgXCI4OTEyXCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4OTEzXCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4OTE0XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4OTE1XCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4OTE2XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4OTE4XCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODkxOVwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjBcIjogWzAuMDM1MTcsIDAuNTQ5ODYsIDAsIDAsIDEuMzMzMzRdLFxuICAgICAgICBcIjg5MjFcIjogWzAuMDM1MTcsIDAuNTQ5ODYsIDAsIDAsIDEuMzMzMzRdLFxuICAgICAgICBcIjg5MjJcIjogWzAuMzg1NjksIDAuODg1NjksIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjNcIjogWzAuMzg1NjksIDAuODg1NjksIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjZcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjdcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjhcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MjlcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzRcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzVcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzZcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzdcIjogWzAuMjMyMjIsIDAuNzQxMTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzhcIjogWzAuMjA1NzYsIDAuNzA1NzYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5MzlcIjogWzAuMjA1NzYsIDAuNzA1NzYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5NDBcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5NDFcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5OTRcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg5OTVcIjogWzAuMTk0NDQsIDAuNjkyMjQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk0MTZcIjogWzAuMTU1NTksIDAuNjkyMjQsIDAsIDAsIDAuOTAyMjJdLFxuICAgICAgICBcIjk0ODRcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiOTQ4OFwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI5NDkyXCI6IFswLCAwLjM3Nzg4LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjk0OTZcIjogWzAsIDAuMzc3ODgsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiOTU4NVwiOiBbMC4xOTQ0NCwgMC42ODg4OSwgMCwgMCwgMC44ODg4OV0sXG4gICAgICAgIFwiOTU4NlwiOiBbMC4xOTQ0NCwgMC43NDExMSwgMCwgMCwgMC44ODg4OV0sXG4gICAgICAgIFwiOTYzMlwiOiBbMCwgMC42NzUsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk2MzNcIjogWzAsIDAuNjc1LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5NjUwXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5NjUxXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5NjU0XCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5NjYwXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5NjYxXCI6IFswLCAwLjU0OTg2LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5NjY0XCI6IFswLjAzNTE3LCAwLjU0OTg2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5Njc0XCI6IFswLjExMTExLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5NzMzXCI6IFswLjE5NDQ0LCAwLjY5MjI0LCAwLCAwLCAwLjk0NDQ1XSxcbiAgICAgICAgXCIxMDAwM1wiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiMTAwMTZcIjogWzAsIDAuNjkyMjQsIDAsIDAsIDAuODMzMzRdLFxuICAgICAgICBcIjEwNzMxXCI6IFswLjExMTExLCAwLjY5MjI0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCIxMDg0NlwiOiBbMC4xOTQ0NCwgMC43NTU4MywgMCwgMCwgMC42MTExMV0sXG4gICAgICAgIFwiMTA4NzdcIjogWzAuMTM2NjcsIDAuNjM2NjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwODc4XCI6IFswLjEzNjY3LCAwLjYzNjY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDg4NVwiOiBbMC4yNTU4MywgMC43NTU4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA4ODZcIjogWzAuMjU1ODMsIDAuNzU1ODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwODg3XCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDg4OFwiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA4ODlcIjogWzAuMjYxNjcsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwODkwXCI6IFswLjI2MTY3LCAwLjc1NzI2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDg5MVwiOiBbMC40ODI1NiwgMC45ODI1NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA4OTJcIjogWzAuNDgyNTYsIDAuOTgyNTYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwOTAxXCI6IFswLjEzNjY3LCAwLjYzNjY3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDkwMlwiOiBbMC4xMzY2NywgMC42MzY2NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA5MzNcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwOTM0XCI6IFswLjI1MTQyLCAwLjc1NzI2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDkzNVwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA5MzZcIjogWzAuMjYxNjcsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwOTM3XCI6IFswLjI2MTY3LCAwLjc1NzI2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDkzOFwiOiBbMC4yNjE2NywgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA5NDlcIjogWzAuMjU1ODMsIDAuNzU1ODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjEwOTUwXCI6IFswLjI1NTgzLCAwLjc1NTgzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIxMDk1NVwiOiBbMC4yODQ4MSwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA5NTZcIjogWzAuMjg0ODEsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzUwXCI6IFswLjA4MTY3LCAwLjU4MTY3LCAwLCAwLCAwLjIyMjIyXSxcbiAgICAgICAgXCI1NzM1MVwiOiBbMC4wODE2NywgMC41ODE2NywgMCwgMCwgMC4zODg4OV0sXG4gICAgICAgIFwiNTczNTJcIjogWzAuMDgxNjcsIDAuNTgxNjcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzUzXCI6IFswLCAwLjQzMDU2LCAwLjA0MDI4LCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI1NzM1NlwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNTczNTdcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzU4XCI6IFswLjQxOTUxLCAwLjkxOTUxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI1NzM1OVwiOiBbMC4zMDI3NCwgMC43OTM4MywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNTczNjBcIjogWzAuMzAyNzQsIDAuNzkzODMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzYxXCI6IFswLjQxOTUxLCAwLjkxOTUxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI1NzM2NlwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNTczNjdcIjogWzAuMjUxNDIsIDAuNzU3MjYsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzY4XCI6IFswLjI1MTQyLCAwLjc1NzI2LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI1NzM2OVwiOiBbMC4yNTE0MiwgMC43NTcyNiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNTczNzBcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjU3MzcxXCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XVxuICAgIH0sXG4gICAgXCJDYWxpZ3JhcGhpYy1SZWd1bGFyXCI6IHtcbiAgICAgICAgXCI0OFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI0OVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MlwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1M1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1N1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI2NVwiOiBbMCwgMC42ODMzMywgMCwgMC4xOTQ0NSwgMC43OTg0N10sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjgzMzMsIDAuMDMwNDEsIDAuMTM4ODksIDAuNjU2ODFdLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY4MzMzLCAwLjA1ODM0LCAwLjEzODg5LCAwLjUyNjUzXSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4wODMzNCwgMC43NzEzOV0sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjgzMzMsIDAuMDg5NDQsIDAuMTExMTEsIDAuNTI3NzhdLFxuICAgICAgICBcIjcwXCI6IFswLCAwLjY4MzMzLCAwLjA5OTMxLCAwLjExMTExLCAwLjcxODc1XSxcbiAgICAgICAgXCI3MVwiOiBbMC4wOTcyMiwgMC42ODMzMywgMC4wNTkzLCAwLjExMTExLCAwLjU5NDg3XSxcbiAgICAgICAgXCI3MlwiOiBbMCwgMC42ODMzMywgMC4wMDk2NSwgMC4xMTExMSwgMC44NDQ1Ml0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjgzMzMsIDAuMDczODIsIDAsIDAuNTQ0NTJdLFxuICAgICAgICBcIjc0XCI6IFswLjA5NzIyLCAwLjY4MzMzLCAwLjE4NDcyLCAwLjE2NjY3LCAwLjY3Nzc4XSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42ODMzMywgMC4wMTQ0NSwgMC4wNTU1NiwgMC43NjE5NV0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTM4ODksIDAuNjg5NzJdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLCAwLjEzODg5LCAxLjIwMDldLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjY4MzMzLCAwLjE0NzM2LCAwLjA4MzM0LCAwLjgyMDQ5XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4xMTExMSwgMC43OTYxMV0sXG4gICAgICAgIFwiODBcIjogWzAsIDAuNjgzMzMsIDAuMDgyMjIsIDAuMDgzMzQsIDAuNjk1NTZdLFxuICAgICAgICBcIjgxXCI6IFswLjA5NzIyLCAwLjY4MzMzLCAwLCAwLjExMTExLCAwLjgxNjY3XSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC44NDc1XSxcbiAgICAgICAgXCI4M1wiOiBbMCwgMC42ODMzMywgMC4wNzUsIDAuMTM4ODksIDAuNjA1NTZdLFxuICAgICAgICBcIjg0XCI6IFswLCAwLjY4MzMzLCAwLjI1NDE3LCAwLCAwLjU0NDY0XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42ODMzMywgMC4wOTkzMSwgMC4wODMzNCwgMC42MjU4M10sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjgzMzMsIDAuMDgyMjIsIDAsIDAuNjEyNzhdLFxuICAgICAgICBcIjg3XCI6IFswLCAwLjY4MzMzLCAwLjA4MjIyLCAwLjA4MzM0LCAwLjk4Nzc4XSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC42ODMzMywgMC4xNDY0MywgMC4xMzg4OSwgMC43MTMzXSxcbiAgICAgICAgXCI4OVwiOiBbMC4wOTcyMiwgMC42ODMzMywgMC4wODIyMiwgMC4wODMzNCwgMC42NjgzNF0sXG4gICAgICAgIFwiOTBcIjogWzAsIDAuNjgzMzMsIDAuMDc5NDQsIDAuMTM4ODksIDAuNzI0NzNdXG4gICAgfSxcbiAgICBcIkZyYWt0dXItUmVndWxhclwiOiB7XG4gICAgICAgIFwiMzNcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjk1NzRdLFxuICAgICAgICBcIjM0XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjIxNDcxXSxcbiAgICAgICAgXCIzOFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC43Mzc4Nl0sXG4gICAgICAgIFwiMzlcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjEyMDFdLFxuICAgICAgICBcIjQwXCI6IFswLjI0OTgyLCAwLjc0OTQ3LCAwLCAwLCAwLjM4ODY1XSxcbiAgICAgICAgXCI0MVwiOiBbMC4yNDk4MiwgMC43NDk0NywgMCwgMCwgMC4zODg2NV0sXG4gICAgICAgIFwiNDJcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuMjc3NjRdLFxuICAgICAgICBcIjQzXCI6IFswLjA4MzE5LCAwLjU4MjgzLCAwLCAwLCAwLjc1NjIzXSxcbiAgICAgICAgXCI0NFwiOiBbMCwgMC4xMDgwMywgMCwgMCwgMC4yNzc2NF0sXG4gICAgICAgIFwiNDVcIjogWzAuMDgzMTksIDAuNTgyODMsIDAsIDAsIDAuNzU2MjNdLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjEwODAzLCAwLCAwLCAwLjI3NzY0XSxcbiAgICAgICAgXCI0N1wiOiBbMC4yNDk4MiwgMC43NDk0NywgMCwgMCwgMC41MDE4MV0sXG4gICAgICAgIFwiNDhcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgICAgICBcIjQ5XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjUwMTgxXSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC41MDE4MV0sXG4gICAgICAgIFwiNTFcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgICAgICBcIjUyXCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjUwMTgxXSxcbiAgICAgICAgXCI1M1wiOiBbMC4xODkwNiwgMC40NzUzNCwgMCwgMCwgMC41MDE4MV0sXG4gICAgICAgIFwiNTRcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNTAxODFdLFxuICAgICAgICBcIjU1XCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjUwMTgxXSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC41MDE4MV0sXG4gICAgICAgIFwiNTdcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuNTAxODFdLFxuICAgICAgICBcIjU4XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjIxNjA2XSxcbiAgICAgICAgXCI1OVwiOiBbMC4xMjYwNCwgMC40NzUzNCwgMCwgMCwgMC4yMTYwNl0sXG4gICAgICAgIFwiNjFcIjogWy0wLjEzMDk5LCAwLjM2ODY2LCAwLCAwLCAwLjc1NjIzXSxcbiAgICAgICAgXCI2M1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC4zNjI0NV0sXG4gICAgICAgIFwiNjVcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNzE3Nl0sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuODgzOTddLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjYxMjU0XSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MzE1OF0sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNjYyNzhdLFxuICAgICAgICBcIjcwXCI6IFswLjEyNjA0LCAwLjY5MTQxLCAwLCAwLCAwLjYxMTE5XSxcbiAgICAgICAgXCI3MVwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC43ODUzOV0sXG4gICAgICAgIFwiNzJcIjogWzAuMDYzMDIsIDAuNjkxNDEsIDAsIDAsIDAuNzIwM10sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNTU0NDhdLFxuICAgICAgICBcIjc0XCI6IFswLjEyNjA0LCAwLjY5MTQxLCAwLCAwLCAwLjU1MjMxXSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42Njg0NV0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNjY2MDJdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAxLjA0OTUzXSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC44MzIxMl0sXG4gICAgICAgIFwiNzlcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuODI2OTldLFxuICAgICAgICBcIjgwXCI6IFswLjE4OTA2LCAwLjY5MTQxLCAwLCAwLCAwLjgyNzUzXSxcbiAgICAgICAgXCI4MVwiOiBbMC4wMzc4MSwgMC42OTE0MSwgMCwgMCwgMC44MjY5OV0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuODI4MDddLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjgyODYxXSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC42Njg5OV0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNjQ1NzZdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjgzMTMxXSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMS4wNDYwMl0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuNzE5MjJdLFxuICAgICAgICBcIjg5XCI6IFswLjE4OTA2LCAwLjY5MTQxLCAwLCAwLCAwLjgzMjkzXSxcbiAgICAgICAgXCI5MFwiOiBbMC4xMjYwNCwgMC42OTE0MSwgMCwgMCwgMC42MDIwMV0sXG4gICAgICAgIFwiOTFcIjogWzAuMjQ5ODIsIDAuNzQ5NDcsIDAsIDAsIDAuMjc3NjRdLFxuICAgICAgICBcIjkzXCI6IFswLjI0OTgyLCAwLjc0OTQ3LCAwLCAwLCAwLjI3NzY0XSxcbiAgICAgICAgXCI5NFwiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC40OTk2NV0sXG4gICAgICAgIFwiOTdcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNTAwNDZdLFxuICAgICAgICBcIjk4XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjUxMzE1XSxcbiAgICAgICAgXCI5OVwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC4zODk0Nl0sXG4gICAgICAgIFwiMTAwXCI6IFswLCAwLjYyMTE5LCAwLCAwLCAwLjQ5ODU3XSxcbiAgICAgICAgXCIxMDFcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNDAwNTNdLFxuICAgICAgICBcIjEwMlwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC4zMjYyNl0sXG4gICAgICAgIFwiMTAzXCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjUwMzddLFxuICAgICAgICBcIjEwNFwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC41MjEyNl0sXG4gICAgICAgIFwiMTA1XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjI3ODk5XSxcbiAgICAgICAgXCIxMDZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjgwODhdLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC4zODk0Nl0sXG4gICAgICAgIFwiMTA4XCI6IFswLCAwLjY5MTQxLCAwLCAwLCAwLjI3OTUzXSxcbiAgICAgICAgXCIxMDlcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNzY2NzZdLFxuICAgICAgICBcIjExMFwiOiBbMCwgMC40NzUzNCwgMCwgMCwgMC41MjY2Nl0sXG4gICAgICAgIFwiMTExXCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjQ4ODg1XSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTg5MDYsIDAuNTIzOTYsIDAsIDAsIDAuNTAwNDZdLFxuICAgICAgICBcIjExM1wiOiBbMC4xODkwNiwgMC40NzUzNCwgMCwgMCwgMC40ODkxMl0sXG4gICAgICAgIFwiMTE0XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjM4OTE5XSxcbiAgICAgICAgXCIxMTVcIjogWzAsIDAuNDc1MzQsIDAsIDAsIDAuNDQyNjZdLFxuICAgICAgICBcIjExNlwiOiBbMCwgMC42MjExOSwgMCwgMCwgMC4zMzMwMV0sXG4gICAgICAgIFwiMTE3XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjUxNzJdLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC41MjM5NiwgMCwgMCwgMC41MTE4XSxcbiAgICAgICAgXCIxMTlcIjogWzAsIDAuNTIzOTYsIDAsIDAsIDAuNzczNTFdLFxuICAgICAgICBcIjEyMFwiOiBbMC4xODkwNiwgMC40NzUzNCwgMCwgMCwgMC4zODg2NV0sXG4gICAgICAgIFwiMTIxXCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjQ5ODg0XSxcbiAgICAgICAgXCIxMjJcIjogWzAuMTg5MDYsIDAuNDc1MzQsIDAsIDAsIDAuMzkwNTRdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjE0NzFdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjkxNDEsIDAsIDAsIDAuMjE0NzFdLFxuICAgICAgICBcIjU4MTEyXCI6IFswLCAwLjYyMTE5LCAwLCAwLCAwLjQ5NzQ5XSxcbiAgICAgICAgXCI1ODExM1wiOiBbMCwgMC42MjExOSwgMCwgMCwgMC40OTgzXSxcbiAgICAgICAgXCI1ODExNFwiOiBbMC4xODkwNiwgMC42OTE0MSwgMCwgMCwgMC4zMzMyOF0sXG4gICAgICAgIFwiNTgxMTVcIjogWzAuMTg5MDYsIDAuNjkxNDEsIDAsIDAsIDAuMzI5MjNdLFxuICAgICAgICBcIjU4MTE2XCI6IFswLjE4OTA2LCAwLjQ3NTM0LCAwLCAwLCAwLjUwMzQzXSxcbiAgICAgICAgXCI1ODExN1wiOiBbMCwgMC42OTE0MSwgMCwgMCwgMC4zMzMwMV0sXG4gICAgICAgIFwiNTgxMThcIjogWzAsIDAuNjIxMTksIDAsIDAsIDAuMzM0MDldLFxuICAgICAgICBcIjU4MTE5XCI6IFswLCAwLjQ3NTM0LCAwLCAwLCAwLjUwMDczXVxuICAgIH0sXG4gICAgXCJNYWluLUJvbGRcIjoge1xuICAgICAgICBcIjMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjM1XSxcbiAgICAgICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42MDI3OF0sXG4gICAgICAgIFwiMzVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuOTU4MzNdLFxuICAgICAgICBcIjM2XCI6IFswLjA1NTU2LCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiMzdcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuOTU4MzNdLFxuICAgICAgICBcIjM4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCIzOVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiNDBcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNDQ3MjJdLFxuICAgICAgICBcIjQxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NzIyXSxcbiAgICAgICAgXCI0MlwiOiBbMCwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjQzXCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xNTU1NiwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiNDVcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMzgzMzNdLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjE1NTU2LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICAgICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjQ4XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNDlcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjUxXCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNTJcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjU0XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNTVcIjogWzAsIDAuNjQ0NDQsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjU3XCI6IFswLCAwLjY0NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNThcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjU5XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICAgICAgXCI2MFwiOiBbMC4wODU1NiwgMC41ODU1NiwgMCwgMCwgMC44OTQ0NF0sXG4gICAgICAgIFwiNjFcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI2MlwiOiBbMC4wODU1NiwgMC41ODU1NiwgMCwgMCwgMC44OTQ0NF0sXG4gICAgICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTQzMDVdLFxuICAgICAgICBcIjY0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI2NVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44Njk0NF0sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODE4MDVdLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44ODE5NF0sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNzU1NTVdLFxuICAgICAgICBcIjcwXCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjcyMzYxXSxcbiAgICAgICAgXCI3MVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45MDQxNl0sXG4gICAgICAgIFwiNzJcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOV0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNDM2MTFdLFxuICAgICAgICBcIjc0XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjU5NDQ0XSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45MDEzOF0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNjkxNjZdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY4NjExLCAwLCAwLCAxLjA5MTY2XSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44NjM4OF0sXG4gICAgICAgIFwiODBcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNzg2MTFdLFxuICAgICAgICBcIjgxXCI6IFswLjE5NDQ0LCAwLjY4NjExLCAwLCAwLCAwLjg2Mzg4XSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44NjI1XSxcbiAgICAgICAgXCI4M1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODRcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOF0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODg0NzJdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY4NjExLCAwLjAxNTk3LCAwLCAwLjg2OTQ0XSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42ODYxMSwgMC4wMTU5NywgMCwgMS4xODg4OF0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODY5NDRdLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY4NjExLCAwLjAyODc1LCAwLCAwLjg2OTQ0XSxcbiAgICAgICAgXCI5MFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC43MDI3N10sXG4gICAgICAgIFwiOTFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjkyXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiOTVcIjogWzAuMzEsIDAuMTM0NDQsIDAuMDMxOTQsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI5N1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NTkwMl0sXG4gICAgICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjk5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjEwMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41MjcwOF0sXG4gICAgICAgIFwiMTAyXCI6IFswLCAwLjY5NDQ0LCAwLjEwOTAzLCAwLCAwLjM1MTM5XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDE1OTcsIDAsIDAuNTc1XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjM1MTM5XSxcbiAgICAgICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjA2OTRdLFxuICAgICAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiMTA5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjk1ODMzXSxcbiAgICAgICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjExMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjExMlwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjYwNjk0XSxcbiAgICAgICAgXCIxMTRcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNDczNjFdLFxuICAgICAgICBcIjExNVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40NTM2MV0sXG4gICAgICAgIFwiMTE2XCI6IFswLCAwLjYzNDkyLCAwLCAwLCAwLjQ0NzIyXSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC40NDQ0NCwgMC4wMTU5NywgMCwgMC42MDY5NF0sXG4gICAgICAgIFwiMTE5XCI6IFswLCAwLjQ0NDQ0LCAwLjAxNTk3LCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjA2OTRdLFxuICAgICAgICBcIjEyMVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMTU5NywgMCwgMC42MDY5NF0sXG4gICAgICAgIFwiMTIyXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxMjNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCIxMjRcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjEyNVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjEyNlwiOiBbMC4zNSwgMC4zNDQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjE2OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjE3MlwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC43NjY2Nl0sXG4gICAgICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg2OTQ0XSxcbiAgICAgICAgXCIxNzdcIjogWzAuMTMzMzMsIDAuNjMzMzMsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjE5OFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMS4wNDE2Nl0sXG4gICAgICAgIFwiMjE1XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCIyMTZcIjogWzAuMDQ4NjEsIDAuNzM0NzIsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjIyM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41OTcyMl0sXG4gICAgICAgIFwiMjMwXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCIyNDdcIjogWzAuMTMzMzMsIDAuNjMzMzMsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjI0OFwiOiBbMC4wOTcyMiwgMC41NDE2NywgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjMwNVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiMzM4XCI6IFswLCAwLjY4NjExLCAwLCAwLCAxLjE2OTQ0XSxcbiAgICAgICAgXCIzMzlcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC4zNTEzOV0sXG4gICAgICAgIFwiNzEwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzExXCI6IFswLCAwLjYzMTk0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzEzXCI6IFswLCAwLjU5NjExLCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzE0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzE1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzI4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiNzI5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICAgICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODY5NDRdLFxuICAgICAgICBcIjczMlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjgyNFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMF0sXG4gICAgICAgIFwiOTE1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjY5MTY2XSxcbiAgICAgICAgXCI5MTZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOTU4MzNdLFxuICAgICAgICBcIjkyMFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44OTQ0NF0sXG4gICAgICAgIFwiOTIzXCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjgwNTU1XSxcbiAgICAgICAgXCI5MjZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjkyOFwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODMwNTVdLFxuICAgICAgICBcIjkzM1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44OTQ0NF0sXG4gICAgICAgIFwiOTM0XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjkzN1wiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC44MzA1NV0sXG4gICAgICAgIFwiODIxMVwiOiBbMCwgMC40NDQ0NCwgMC4wMzE5NCwgMCwgMC41NzVdLFxuICAgICAgICBcIjgyMTJcIjogWzAsIDAuNDQ0NDQsIDAuMDMxOTQsIDAsIDEuMTQ5OTldLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzE5NDRdLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjAyNzhdLFxuICAgICAgICBcIjgyMjFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjAyNzhdLFxuICAgICAgICBcIjgyMjRcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjgyMjVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjgyNDJcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuMzQ0NDRdLFxuICAgICAgICBcIjg0MDdcIjogWzAsIDAuNzI0NDQsIDAuMTU0ODYsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI4NDYzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NzU5XSxcbiAgICAgICAgXCI4NDY1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCI4NDY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQ3MzYxXSxcbiAgICAgICAgXCI4NDcyXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLCAwLCAwLjc0MDI3XSxcbiAgICAgICAgXCI4NDc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjgzMDU1XSxcbiAgICAgICAgXCI4NTAxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICAgICAgXCI4NTkyXCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiODU5M1wiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg1OTRcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NTk1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiODU5NlwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgICAgICBcIjg1OTdcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI4NTk4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NTk5XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NjAwXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NjAxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NjM2XCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiODYzN1wiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgICAgICBcIjg2NDBcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NjQxXCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiODY1NlwiOiBbLTAuMTA4ODksIDAuMzkxMTEsIDAsIDAsIDEuMTQ5OTldLFxuICAgICAgICBcIjg2NTdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNzAyNzddLFxuICAgICAgICBcIjg2NThcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4NjU5XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICAgICAgXCI4NjYwXCI6IFstMC4xMDg4OSwgMC4zOTExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiODY2MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC43MDI3N10sXG4gICAgICAgIFwiODcwNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODcwNlwiOiBbMCwgMC42OTQ0NCwgMC4wNjM4OSwgMCwgMC42Mjg0N10sXG4gICAgICAgIFwiODcwN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODcwOVwiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg3MTFcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOTU4MzNdLFxuICAgICAgICBcIjg3MTJcIjogWzAuMDg1NTYsIDAuNTg1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3MTVcIjogWzAuMDg1NTYsIDAuNTg1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3MjJcIjogWzAuMTMzMzMsIDAuNjMzMzMsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjg3MjNcIjogWzAuMTMzMzMsIDAuNjMzMzMsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjg3MjVcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI4NzI2XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiODcyN1wiOiBbLTAuMDI3NzgsIDAuNDcyMjIsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI4NzI4XCI6IFstMC4wMjYzOSwgMC40NzM2MSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg3MjlcIjogWy0wLjAyNjM5LCAwLjQ3MzYxLCAwLCAwLCAwLjU3NV0sXG4gICAgICAgIFwiODczMFwiOiBbMC4xOCwgMC44MiwgMCwgMCwgMC45NTgzM10sXG4gICAgICAgIFwiODczM1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC44OTQ0NF0sXG4gICAgICAgIFwiODczNFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiODczNlwiOiBbMCwgMC42OTIyNCwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODczOVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zMTk0NF0sXG4gICAgICAgIFwiODc0MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg3NDNcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3NDRcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3NDVcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3NDZcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjg3NDdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMTI3NzgsIDAsIDAuNTY4NzVdLFxuICAgICAgICBcIjg3NjRcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4NzY4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjMxOTQ0XSxcbiAgICAgICAgXCI4NzcxXCI6IFswLjAwMjIyLCAwLjUwMjIyLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4Nzc2XCI6IFswLjAyNDQ0LCAwLjUyNDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4NzgxXCI6IFswLjAwMjIyLCAwLjUwMjIyLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODAxXCI6IFswLjAwMjIyLCAwLjUwMjIyLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODA0XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODA1XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODEwXCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4ODExXCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4ODI2XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODI3XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODM0XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODM1XCI6IFswLjA4NTU2LCAwLjU4NTU2LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODM4XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODM5XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODQ2XCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI4ODQ5XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODUwXCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODUxXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI4ODUyXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI4ODUzXCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODU0XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODU1XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODU2XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODU3XCI6IFswLjEzMzMzLCAwLjYzMzMzLCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODY2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICAgICAgXCI4ODY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc3XSxcbiAgICAgICAgXCI4ODY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4ODY5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg5NDQ0XSxcbiAgICAgICAgXCI4OTAwXCI6IFstMC4wMjYzOSwgMC40NzM2MSwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg5MDFcIjogWy0wLjAyNjM5LCAwLjQ3MzYxLCAwLCAwLCAwLjMxOTQ0XSxcbiAgICAgICAgXCI4OTAyXCI6IFstMC4wMjc3OCwgMC40NzIyMiwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjg5NjhcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjg5NjlcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjg5NzBcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjg5NzFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjg5OTRcIjogWy0wLjEzODg5LCAwLjM2MTExLCAwLCAwLCAxLjE0OTk5XSxcbiAgICAgICAgXCI4OTk1XCI6IFstMC4xMzg4OSwgMC4zNjExMSwgMCwgMCwgMS4xNDk5OV0sXG4gICAgICAgIFwiOTY1MVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMS4wMjIyMl0sXG4gICAgICAgIFwiOTY1N1wiOiBbLTAuMDI3NzgsIDAuNDcyMjIsIDAsIDAsIDAuNTc1XSxcbiAgICAgICAgXCI5NjYxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjAyMjIyXSxcbiAgICAgICAgXCI5NjY3XCI6IFstMC4wMjc3OCwgMC40NzIyMiwgMCwgMCwgMC41NzVdLFxuICAgICAgICBcIjk3MTFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMTQ5OTldLFxuICAgICAgICBcIjk4MjRcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjk4MjVcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjk4MjZcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjk4MjdcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjk4MzdcIjogWzAsIDAuNzUsIDAsIDAsIDAuNDQ3MjJdLFxuICAgICAgICBcIjk4MzhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNDQ3MjJdLFxuICAgICAgICBcIjk4MzlcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNDQ3MjJdLFxuICAgICAgICBcIjEwMjE2XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQ0NzIyXSxcbiAgICAgICAgXCIxMDIxN1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDcyMl0sXG4gICAgICAgIFwiMTA4MTVcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuOV0sXG4gICAgICAgIFwiMTA5MjdcIjogWzAuMTk2NjcsIDAuNjk2NjcsIDAsIDAsIDAuODk0NDRdLFxuICAgICAgICBcIjEwOTI4XCI6IFswLjE5NjY3LCAwLjY5NjY3LCAwLCAwLCAwLjg5NDQ0XVxuICAgIH0sXG4gICAgXCJNYWluLUJvbGRJdGFsaWNcIjoge1xuICAgICAgICBcIjMzXCI6IFswLCAwLjY5NDQ0LCAwLjExNDE3LCAwLCAwLjM4NjExXSxcbiAgICAgICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMC4wNzkzOSwgMCwgMC42MjA1NV0sXG4gICAgICAgIFwiMzVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDY4MzMsIDAsIDAuOTQ0NDRdLFxuICAgICAgICBcIjM3XCI6IFswLjA1NTU2LCAwLjc1LCAwLjEyODYxLCAwLCAwLjk0NDQ0XSxcbiAgICAgICAgXCIzOFwiOiBbMCwgMC42OTQ0NCwgMC4wODUyOCwgMCwgMC44ODU1NV0sXG4gICAgICAgIFwiMzlcIjogWzAsIDAuNjk0NDQsIDAuMTI5NDUsIDAsIDAuMzU1NTVdLFxuICAgICAgICBcIjQwXCI6IFswLjI1LCAwLjc1LCAwLjE1ODA2LCAwLCAwLjQ3MzMzXSxcbiAgICAgICAgXCI0MVwiOiBbMC4yNSwgMC43NSwgMC4wMzMwNiwgMCwgMC40NzMzM10sXG4gICAgICAgIFwiNDJcIjogWzAsIDAuNzUsIDAuMTQzMzMsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjQzXCI6IFswLjEwMzMzLCAwLjYwMzMzLCAwLjAzMzA2LCAwLCAwLjg4NTU1XSxcbiAgICAgICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xNDcyMiwgMCwgMCwgMC4zNTU1NV0sXG4gICAgICAgIFwiNDVcIjogWzAsIDAuNDQ0NDQsIDAuMDI2MTEsIDAsIDAuNDE0NDRdLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjE0NzIyLCAwLCAwLCAwLjM1NTU1XSxcbiAgICAgICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMC4xNTgwNiwgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNDhcIjogWzAsIDAuNjQ0NDQsIDAuMTMxNjcsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjQ5XCI6IFswLCAwLjY0NDQ0LCAwLjEzMTY3LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNTFcIjogWzAsIDAuNjQ0NDQsIDAuMTMxNjcsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjUyXCI6IFswLjE5NDQ0LCAwLjY0NDQ0LCAwLjEzMTY3LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNTRcIjogWzAsIDAuNjQ0NDQsIDAuMTMxNjcsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjU1XCI6IFswLjE5NDQ0LCAwLjY0NDQ0LCAwLjEzMTY3LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMC4xMzE2NywgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNTdcIjogWzAsIDAuNjQ0NDQsIDAuMTMxNjcsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjU4XCI6IFswLCAwLjQ0NDQ0LCAwLjA2Njk1LCAwLCAwLjM1NTU1XSxcbiAgICAgICAgXCI1OVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNjY5NSwgMCwgMC4zNTU1NV0sXG4gICAgICAgIFwiNjFcIjogWy0wLjEwODg5LCAwLjM5MTExLCAwLjA2ODMzLCAwLCAwLjg4NTU1XSxcbiAgICAgICAgXCI2M1wiOiBbMCwgMC42OTQ0NCwgMC4xMTQ3MiwgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAuMDkyMDgsIDAsIDAuODg1NTVdLFxuICAgICAgICBcIjY1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjg2NTU1XSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC42ODYxMSwgMC4wOTkyLCAwLCAwLjgxNjY2XSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC42ODYxMSwgMC4xNDIwOCwgMCwgMC44MjY2Nl0sXG4gICAgICAgIFwiNjhcIjogWzAsIDAuNjg2MTEsIDAuMDkwNjIsIDAsIDAuODc1NTVdLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjY4NjExLCAwLjExNDMxLCAwLCAwLjc1NjY2XSxcbiAgICAgICAgXCI3MFwiOiBbMCwgMC42ODYxMSwgMC4xMjkwMywgMCwgMC43MjcyMl0sXG4gICAgICAgIFwiNzFcIjogWzAsIDAuNjg2MTEsIDAuMDczNDcsIDAsIDAuODk1MjddLFxuICAgICAgICBcIjcyXCI6IFswLCAwLjY4NjExLCAwLjE3MjA4LCAwLCAwLjg5NjFdLFxuICAgICAgICBcIjczXCI6IFswLCAwLjY4NjExLCAwLjE1NjgxLCAwLCAwLjQ3MTY2XSxcbiAgICAgICAgXCI3NFwiOiBbMCwgMC42ODYxMSwgMC4xNDUsIDAsIDAuNjEwNTVdLFxuICAgICAgICBcIjc1XCI6IFswLCAwLjY4NjExLCAwLjE0MjA4LCAwLCAwLjg5NDk5XSxcbiAgICAgICAgXCI3NlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC42OTc3N10sXG4gICAgICAgIFwiNzdcIjogWzAsIDAuNjg2MTEsIDAuMTcyMDgsIDAsIDEuMDcyNzddLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjY4NjExLCAwLjE3MjA4LCAwLCAwLjg5NjFdLFxuICAgICAgICBcIjc5XCI6IFswLCAwLjY4NjExLCAwLjA5MDYyLCAwLCAwLjg1NDk5XSxcbiAgICAgICAgXCI4MFwiOiBbMCwgMC42ODYxMSwgMC4wOTkyLCAwLCAwLjc4NzIxXSxcbiAgICAgICAgXCI4MVwiOiBbMC4xOTQ0NCwgMC42ODYxMSwgMC4wOTA2MiwgMCwgMC44NTQ5OV0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjg2MTEsIDAuMDI1NTksIDAsIDAuODU5NDRdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY4NjExLCAwLjExMjY0LCAwLCAwLjY0OTk5XSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42ODYxMSwgMC4xMjkwMywgMCwgMC43OTYxXSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42ODYxMSwgMC4xNzIwOCwgMCwgMC44ODA4M10sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjg2MTEsIDAuMTg2MjUsIDAsIDAuODY1NTVdLFxuICAgICAgICBcIjg3XCI6IFswLCAwLjY4NjExLCAwLjE4NjI1LCAwLCAxLjE1OTk5XSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC42ODYxMSwgMC4xNTY4MSwgMCwgMC44NjU1NV0sXG4gICAgICAgIFwiODlcIjogWzAsIDAuNjg2MTEsIDAuMTk4MDMsIDAsIDAuODY1NTVdLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjY4NjExLCAwLjE0MjA4LCAwLCAwLjcwODg4XSxcbiAgICAgICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMC4xODc1LCAwLCAwLjM1NjExXSxcbiAgICAgICAgXCI5M1wiOiBbMC4yNSwgMC43NSwgMC4wOTk3MiwgMCwgMC4zNTYxMV0sXG4gICAgICAgIFwiOTRcIjogWzAsIDAuNjk0NDQsIDAuMDY3MDksIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjk1XCI6IFswLjMxLCAwLjEzNDQ0LCAwLjA5ODExLCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI5N1wiOiBbMCwgMC40NDQ0NCwgMC4wOTQyNiwgMCwgMC41OTExMV0sXG4gICAgICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAuMDc4NjEsIDAsIDAuNTMyMjJdLFxuICAgICAgICBcIjk5XCI6IFswLCAwLjQ0NDQ0LCAwLjA1MjIyLCAwLCAwLjUzMjIyXSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAuMTA4NjEsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjEwMVwiOiBbMCwgMC40NDQ0NCwgMC4wODUsIDAsIDAuNTMyMjJdLFxuICAgICAgICBcIjEwMlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4yMTc3OCwgMCwgMC40XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMTA1LCAwLCAwLjUzMjIyXSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAuMDk0MjYsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42OTMyNiwgMC4xMTM4NywgMCwgMC4zNTU1NV0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY5MzI2LCAwLjE2NzIsIDAsIDAuMzU1NTVdLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMC4xMTExMSwgMCwgMC41MzIyMl0sXG4gICAgICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLjEwODYxLCAwLCAwLjI5NjY2XSxcbiAgICAgICAgXCIxMDlcIjogWzAsIDAuNDQ0NDQsIDAuMDk0MjYsIDAsIDAuOTQ0NDRdLFxuICAgICAgICBcIjExMFwiOiBbMCwgMC40NDQ0NCwgMC4wOTQyNiwgMCwgMC42NDk5OV0sXG4gICAgICAgIFwiMTExXCI6IFswLCAwLjQ0NDQ0LCAwLjA3ODYxLCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDc4NjEsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4xMDUsIDAsIDAuNTMyMjJdLFxuICAgICAgICBcIjExNFwiOiBbMCwgMC40NDQ0NCwgMC4xMTExMSwgMCwgMC41MDE2N10sXG4gICAgICAgIFwiMTE1XCI6IFswLCAwLjQ0NDQ0LCAwLjA4MTY3LCAwLCAwLjQ4Njk0XSxcbiAgICAgICAgXCIxMTZcIjogWzAsIDAuNjM0OTIsIDAuMDk2MzksIDAsIDAuMzg1XSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAuMDk0MjYsIDAsIDAuNjIwNTVdLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC40NDQ0NCwgMC4xMTExMSwgMCwgMC41MzIyMl0sXG4gICAgICAgIFwiMTE5XCI6IFswLCAwLjQ0NDQ0LCAwLjExMTExLCAwLCAwLjc2Nzc3XSxcbiAgICAgICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAuMTI1ODMsIDAsIDAuNTYwNTVdLFxuICAgICAgICBcIjEyMVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4xMDUsIDAsIDAuNTYxNjZdLFxuICAgICAgICBcIjEyMlwiOiBbMCwgMC40NDQ0NCwgMC4xMzg4OSwgMCwgMC40OTA1NV0sXG4gICAgICAgIFwiMTI2XCI6IFswLjM1LCAwLjM0NDQ0LCAwLjExNDcyLCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCIxNjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODY4NTNdLFxuICAgICAgICBcIjE2OFwiOiBbMCwgMC42OTQ0NCwgMC4xMTQ3MywgMCwgMC41OTExMV0sXG4gICAgICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjk0ODg4XSxcbiAgICAgICAgXCIxOThcIjogWzAsIDAuNjg2MTEsIDAuMTE0MzEsIDAsIDEuMDIyNzddLFxuICAgICAgICBcIjIxNlwiOiBbMC4wNDg2MSwgMC43MzQ3MiwgMC4wOTA2MiwgMCwgMC44ODU1NV0sXG4gICAgICAgIFwiMjIzXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA5NzM2LCAwLCAwLjY2NV0sXG4gICAgICAgIFwiMjMwXCI6IFswLCAwLjQ0NDQ0LCAwLjA4NSwgMCwgMC44MjY2Nl0sXG4gICAgICAgIFwiMjQ4XCI6IFswLjA5NzIyLCAwLjU0MTY3LCAwLjA5NDU4LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCIzMDVcIjogWzAsIDAuNDQ0NDQsIDAuMDk0MjYsIDAsIDAuMzU1NTVdLFxuICAgICAgICBcIjMzOFwiOiBbMCwgMC42ODYxMSwgMC4xMTQzMSwgMCwgMS4xNDA1NF0sXG4gICAgICAgIFwiMzM5XCI6IFswLCAwLjQ0NDQ0LCAwLjA4NSwgMCwgMC44MjY2Nl0sXG4gICAgICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjA0NjExLCAwLCAwLjM4NV0sXG4gICAgICAgIFwiNzEwXCI6IFswLCAwLjY5NDQ0LCAwLjA2NzA5LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI3MTFcIjogWzAsIDAuNjMxOTQsIDAuMDgyNzEsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjcxM1wiOiBbMCwgMC41OTQ0NCwgMC4xMDQ0NCwgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNzE0XCI6IFswLCAwLjY5NDQ0LCAwLjA4NTI4LCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI3MTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMC4xMDMzMywgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNzI5XCI6IFswLCAwLjY5NDQ0LCAwLjEyOTQ1LCAwLCAwLjM1NTU1XSxcbiAgICAgICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuOTQ4ODhdLFxuICAgICAgICBcIjczMlwiOiBbMCwgMC42OTQ0NCwgMC4xMTQ3MiwgMCwgMC41OTExMV0sXG4gICAgICAgIFwiNzMzXCI6IFswLCAwLjY5NDQ0LCAwLjExNDcyLCAwLCAwLjU5MTExXSxcbiAgICAgICAgXCI5MTVcIjogWzAsIDAuNjg2MTEsIDAuMTI5MDMsIDAsIDAuNjk3NzddLFxuICAgICAgICBcIjkxNlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45NDQ0NF0sXG4gICAgICAgIFwiOTIwXCI6IFswLCAwLjY4NjExLCAwLjA5MDYyLCAwLCAwLjg4NTU1XSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODA2NjZdLFxuICAgICAgICBcIjkyNlwiOiBbMCwgMC42ODYxMSwgMC4xNTA5MiwgMCwgMC43Njc3N10sXG4gICAgICAgIFwiOTI4XCI6IFswLCAwLjY4NjExLCAwLjE3MjA4LCAwLCAwLjg5NjFdLFxuICAgICAgICBcIjkzMVwiOiBbMCwgMC42ODYxMSwgMC4xMTQzMSwgMCwgMC44MjY2Nl0sXG4gICAgICAgIFwiOTMzXCI6IFswLCAwLjY4NjExLCAwLjEwNzc4LCAwLCAwLjg4NTU1XSxcbiAgICAgICAgXCI5MzRcIjogWzAsIDAuNjg2MTEsIDAuMDU2MzIsIDAsIDAuODI2NjZdLFxuICAgICAgICBcIjkzNlwiOiBbMCwgMC42ODYxMSwgMC4xMDc3OCwgMCwgMC44ODU1NV0sXG4gICAgICAgIFwiOTM3XCI6IFswLCAwLjY4NjExLCAwLjA5OTIsIDAsIDAuODI2NjZdLFxuICAgICAgICBcIjgyMTFcIjogWzAsIDAuNDQ0NDQsIDAuMDk4MTEsIDAsIDAuNTkxMTFdLFxuICAgICAgICBcIjgyMTJcIjogWzAsIDAuNDQ0NDQsIDAuMDk4MTEsIDAsIDEuMTgyMjFdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAuMTI5NDUsIDAsIDAuMzU1NTVdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAuMTI5NDUsIDAsIDAuMzU1NTVdLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAuMTY3NzIsIDAsIDAuNjIwNTVdLFxuICAgICAgICBcIjgyMjFcIjogWzAsIDAuNjk0NDQsIDAuMDc5MzksIDAsIDAuNjIwNTVdXG4gICAgfSxcbiAgICBcIk1haW4tSXRhbGljXCI6IHtcbiAgICAgICAgXCIzM1wiOiBbMCwgMC42OTQ0NCwgMC4xMjQxNywgMCwgMC4zMDY2N10sXG4gICAgICAgIFwiMzRcIjogWzAsIDAuNjk0NDQsIDAuMDY5NjEsIDAsIDAuNTE0NDRdLFxuICAgICAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA2NjE2LCAwLCAwLjgxNzc3XSxcbiAgICAgICAgXCIzN1wiOiBbMC4wNTU1NiwgMC43NSwgMC4xMzYzOSwgMCwgMC44MTc3N10sXG4gICAgICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAuMDk2OTQsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjM5XCI6IFswLCAwLjY5NDQ0LCAwLjEyNDE3LCAwLCAwLjMwNjY3XSxcbiAgICAgICAgXCI0MFwiOiBbMC4yNSwgMC43NSwgMC4xNjE5NCwgMCwgMC40MDg4OV0sXG4gICAgICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAuMDM2OTQsIDAsIDAuNDA4ODldLFxuICAgICAgICBcIjQyXCI6IFswLCAwLjc1LCAwLjE0OTE3LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI0M1wiOiBbMC4wNTY2NywgMC41NjE2NywgMC4wMzY5NCwgMCwgMC43NjY2Nl0sXG4gICAgICAgIFwiNDRcIjogWzAuMTk0NDQsIDAuMTA1NTYsIDAsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjQ1XCI6IFswLCAwLjQzMDU2LCAwLjAyODI2LCAwLCAwLjM1Nzc4XSxcbiAgICAgICAgXCI0NlwiOiBbMCwgMC4xMDU1NiwgMCwgMCwgMC4zMDY2N10sXG4gICAgICAgIFwiNDdcIjogWzAuMjUsIDAuNzUsIDAuMTYxOTQsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjQ4XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI0OVwiOiBbMCwgMC42NDQ0NCwgMC4xMzU1NiwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNTBcIjogWzAsIDAuNjQ0NDQsIDAuMTM1NTYsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjUxXCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI1MlwiOiBbMC4xOTQ0NCwgMC42NDQ0NCwgMC4xMzU1NiwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNTNcIjogWzAsIDAuNjQ0NDQsIDAuMTM1NTYsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjU0XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI1NVwiOiBbMC4xOTQ0NCwgMC42NDQ0NCwgMC4xMzU1NiwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNTZcIjogWzAsIDAuNjQ0NDQsIDAuMTM1NTYsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjU3XCI6IFswLCAwLjY0NDQ0LCAwLjEzNTU2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI1OFwiOiBbMCwgMC40MzA1NiwgMC4wNTgyLCAwLCAwLjMwNjY3XSxcbiAgICAgICAgXCI1OVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wNTgyLCAwLCAwLjMwNjY3XSxcbiAgICAgICAgXCI2MVwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAuMDY2MTYsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjYzXCI6IFswLCAwLjY5NDQ0LCAwLjEyMjUsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjY0XCI6IFswLCAwLjY5NDQ0LCAwLjA5NTk3LCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI2NVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43NDMzM10sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjgzMzMsIDAuMTAyNTcsIDAsIDAuNzAzODldLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY4MzMzLCAwLjE0NTI4LCAwLCAwLjcxNTU1XSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42ODMzMywgMC4wOTQwMywgMCwgMC43NTVdLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjY4MzMzLCAwLjEyMDI4LCAwLCAwLjY3ODMzXSxcbiAgICAgICAgXCI3MFwiOiBbMCwgMC42ODMzMywgMC4xMzMwNSwgMCwgMC42NTI3N10sXG4gICAgICAgIFwiNzFcIjogWzAsIDAuNjgzMzMsIDAuMDg3MjIsIDAsIDAuNzczNjFdLFxuICAgICAgICBcIjcyXCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjc0MzMzXSxcbiAgICAgICAgXCI3M1wiOiBbMCwgMC42ODMzMywgMC4xNTgwNiwgMCwgMC4zODU1NV0sXG4gICAgICAgIFwiNzRcIjogWzAsIDAuNjgzMzMsIDAuMTQwMjgsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42ODMzMywgMC4xNDUyOCwgMCwgMC43Njg4OF0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjI3MjJdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLjE2Mzg5LCAwLCAwLjg5NjY2XSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42ODMzMywgMC4xNjM4OSwgMCwgMC43NDMzM10sXG4gICAgICAgIFwiNzlcIjogWzAsIDAuNjgzMzMsIDAuMDk0MDMsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjgwXCI6IFswLCAwLjY4MzMzLCAwLjEwMjU3LCAwLCAwLjY3ODMzXSxcbiAgICAgICAgXCI4MVwiOiBbMC4xOTQ0NCwgMC42ODMzMywgMC4wOTQwMywgMCwgMC43NjY2Nl0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjgzMzMsIDAuMDM4NjgsIDAsIDAuNzI5NDRdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLjExOTcyLCAwLCAwLjU2MjIyXSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42ODMzMywgMC4xMzMwNSwgMCwgMC43MTU1NV0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjgzMzMsIDAuMTYzODksIDAsIDAuNzQzMzNdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjE4MzYxLCAwLCAwLjc0MzMzXSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42ODMzMywgMC4xODM2MSwgMCwgMC45OTg4OF0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjgzMzMsIDAuMTU4MDYsIDAsIDAuNzQzMzNdLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjE5MzgzLCAwLCAwLjc0MzMzXSxcbiAgICAgICAgXCI5MFwiOiBbMCwgMC42ODMzMywgMC4xNDUyOCwgMCwgMC42MTMzM10sXG4gICAgICAgIFwiOTFcIjogWzAuMjUsIDAuNzUsIDAuMTg3NSwgMCwgMC4zMDY2N10sXG4gICAgICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAuMTA1MjgsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLjA2NjQ2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI5NVwiOiBbMC4zMSwgMC4xMjA1NiwgMC4wOTIwOCwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiOTdcIjogWzAsIDAuNDMwNTYsIDAuMDc2NzEsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLjA2MzEyLCAwLCAwLjQ2XSxcbiAgICAgICAgXCI5OVwiOiBbMCwgMC40MzA1NiwgMC4wNTY1MywgMCwgMC40Nl0sXG4gICAgICAgIFwiMTAwXCI6IFswLCAwLjY5NDQ0LCAwLjEwMzMzLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxMDFcIjogWzAsIDAuNDMwNTYsIDAuMDc1MTQsIDAsIDAuNDZdLFxuICAgICAgICBcIjEwMlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4yMTE5NCwgMCwgMC4zMDY2N10sXG4gICAgICAgIFwiMTAzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjA4ODQ3LCAwLCAwLjQ2XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAuMDc2NzEsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42NTUzNiwgMC4xMDE5LCAwLCAwLjMwNjY3XSxcbiAgICAgICAgXCIxMDZcIjogWzAuMTk0NDQsIDAuNjU1MzYsIDAuMTQ0NjcsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMC4xMDc2NCwgMCwgMC40Nl0sXG4gICAgICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLjEwMzMzLCAwLCAwLjI1NTU1XSxcbiAgICAgICAgXCIxMDlcIjogWzAsIDAuNDMwNTYsIDAuMDc2NzEsIDAsIDAuODE3NzddLFxuICAgICAgICBcIjExMFwiOiBbMCwgMC40MzA1NiwgMC4wNzY3MSwgMCwgMC41NjIyMl0sXG4gICAgICAgIFwiMTExXCI6IFswLCAwLjQzMDU2LCAwLjA2MzEyLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDYzMTIsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wODg0NywgMCwgMC40Nl0sXG4gICAgICAgIFwiMTE0XCI6IFswLCAwLjQzMDU2LCAwLjEwNzY0LCAwLCAwLjQyMTY2XSxcbiAgICAgICAgXCIxMTVcIjogWzAsIDAuNDMwNTYsIDAuMDgyMDgsIDAsIDAuNDA4ODldLFxuICAgICAgICBcIjExNlwiOiBbMCwgMC42MTUwOCwgMC4wOTQ4NiwgMCwgMC4zMzIyMl0sXG4gICAgICAgIFwiMTE3XCI6IFswLCAwLjQzMDU2LCAwLjA3NjcxLCAwLCAwLjUzNjY2XSxcbiAgICAgICAgXCIxMThcIjogWzAsIDAuNDMwNTYsIDAuMTA3NjQsIDAsIDAuNDZdLFxuICAgICAgICBcIjExOVwiOiBbMCwgMC40MzA1NiwgMC4xMDc2NCwgMCwgMC42NjQ0NF0sXG4gICAgICAgIFwiMTIwXCI6IFswLCAwLjQzMDU2LCAwLjEyMDQyLCAwLCAwLjQ2Mzg5XSxcbiAgICAgICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDg4NDcsIDAsIDAuNDg1NTVdLFxuICAgICAgICBcIjEyMlwiOiBbMCwgMC40MzA1NiwgMC4xMjI5MiwgMCwgMC40MDg4OV0sXG4gICAgICAgIFwiMTI2XCI6IFswLjM1LCAwLjMxNzg2LCAwLjExNTg1LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxNjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzY5MDldLFxuICAgICAgICBcIjE2OFwiOiBbMCwgMC42Njc4NiwgMC4xMDQ3NCwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjgzMTI5XSxcbiAgICAgICAgXCIxOThcIjogWzAsIDAuNjgzMzMsIDAuMTIwMjgsIDAsIDAuODgyNzddLFxuICAgICAgICBcIjIxNlwiOiBbMC4wNDg2MSwgMC43MzE5NCwgMC4wOTQwMywgMCwgMC43NjY2Nl0sXG4gICAgICAgIFwiMjIzXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjEwNTE0LCAwLCAwLjUzNjY2XSxcbiAgICAgICAgXCIyMzBcIjogWzAsIDAuNDMwNTYsIDAuMDc1MTQsIDAsIDAuNzE1NTVdLFxuICAgICAgICBcIjI0OFwiOiBbMC4wOTcyMiwgMC41Mjc3OCwgMC4wOTE5NCwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiMzA1XCI6IFswLCAwLjQzMDU2LCAwLCAwLjAyNzc4LCAwLjMyMjQ2XSxcbiAgICAgICAgXCIzMzhcIjogWzAsIDAuNjgzMzMsIDAuMTIwMjgsIDAsIDAuOTg0OTldLFxuICAgICAgICBcIjMzOVwiOiBbMCwgMC40MzA1NiwgMC4wNzUxNCwgMCwgMC43MTU1NV0sXG4gICAgICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjM4NDAzXSxcbiAgICAgICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAuMDY2NDYsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjcxMVwiOiBbMCwgMC42Mjg0NywgMC4wODI5NSwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNzEzXCI6IFswLCAwLjU2MTY3LCAwLjEwMzMzLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI3MTRcIjogWzAsIDAuNjk0NDQsIDAuMDk2OTQsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjcxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNzI4XCI6IFswLCAwLjY5NDQ0LCAwLjEwODA2LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI3MjlcIjogWzAsIDAuNjY3ODYsIDAuMTE3NTIsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjczMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzEyOV0sXG4gICAgICAgIFwiNzMyXCI6IFswLCAwLjY2Nzg2LCAwLjExNTg1LCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCI3MzNcIjogWzAsIDAuNjk0NDQsIDAuMTIyNSwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiOTE1XCI6IFswLCAwLjY4MzMzLCAwLjEzMzA1LCAwLCAwLjYyNzIyXSxcbiAgICAgICAgXCI5MTZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuODE3NzddLFxuICAgICAgICBcIjkyMFwiOiBbMCwgMC42ODMzMywgMC4wOTQwMywgMCwgMC43NjY2Nl0sXG4gICAgICAgIFwiOTIzXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjY5MjIyXSxcbiAgICAgICAgXCI5MjZcIjogWzAsIDAuNjgzMzMsIDAuMTUyOTQsIDAsIDAuNjY0NDRdLFxuICAgICAgICBcIjkyOFwiOiBbMCwgMC42ODMzMywgMC4xNjM4OSwgMCwgMC43NDMzM10sXG4gICAgICAgIFwiOTMxXCI6IFswLCAwLjY4MzMzLCAwLjEyMDI4LCAwLCAwLjcxNTU1XSxcbiAgICAgICAgXCI5MzNcIjogWzAsIDAuNjgzMzMsIDAuMTExMTEsIDAsIDAuNzY2NjZdLFxuICAgICAgICBcIjkzNFwiOiBbMCwgMC42ODMzMywgMC4wNTk4NiwgMCwgMC43MTU1NV0sXG4gICAgICAgIFwiOTM2XCI6IFswLCAwLjY4MzMzLCAwLjExMTExLCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI5MzdcIjogWzAsIDAuNjgzMzMsIDAuMTAyNTcsIDAsIDAuNzE1NTVdLFxuICAgICAgICBcIjgyMTFcIjogWzAsIDAuNDMwNTYsIDAuMDkyMDgsIDAsIDAuNTExMTFdLFxuICAgICAgICBcIjgyMTJcIjogWzAsIDAuNDMwNTYsIDAuMDkyMDgsIDAsIDEuMDIyMjJdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAuMTI0MTcsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAuMTI0MTcsIDAsIDAuMzA2NjddLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAuMTY4NSwgMCwgMC41MTQ0NF0sXG4gICAgICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMC4wNjk2MSwgMCwgMC41MTQ0NF0sXG4gICAgICAgIFwiODQ2M1wiOiBbMCwgMC42ODg4OSwgMCwgMCwgMC41NDAyOF1cbiAgICB9LFxuICAgIFwiTWFpbi1SZWd1bGFyXCI6IHtcbiAgICAgICAgXCIzMlwiOiBbMCwgMCwgMCwgMCwgMF0sXG4gICAgICAgIFwiMzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjM0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCIzNlwiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCIzN1wiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjM5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI0MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjQyXCI6IFswLCAwLjc1LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjQzXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI0NFwiOiBbMC4xOTQ0NCwgMC4xMDU1NiwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiNDVcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuMzMzMzNdLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjEwNTU2LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI0OFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI0OVwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MVwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1MlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1M1wiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NFwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NVwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1N1wiOiBbMCwgMC42NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI1OFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiNTlcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjYwXCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNjFcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI2MlwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjYzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI2NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNjVcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzVdLFxuICAgICAgICBcIjY2XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjcwODM0XSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiNjhcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzYzODldLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjY4MDU2XSxcbiAgICAgICAgXCI3MFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42NTI3OF0sXG4gICAgICAgIFwiNzFcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzg0NzJdLFxuICAgICAgICBcIjcyXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICAgICAgXCI3M1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC4zNjExMV0sXG4gICAgICAgIFwiNzRcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNTEzODldLFxuICAgICAgICBcIjc1XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI3NlwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42MjVdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjkxNjY3XSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43NV0sXG4gICAgICAgIFwiNzlcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjgwXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjY4MDU2XSxcbiAgICAgICAgXCI4MVwiOiBbMC4xOTQ0NCwgMC42ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzM2MTFdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzVdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjAxMzg5LCAwLCAwLjc1XSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42ODMzMywgMC4wMTM4OSwgMCwgMS4wMjc3OF0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzVdLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjAyNSwgMCwgMC43NV0sXG4gICAgICAgIFwiOTBcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjkxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI5MlwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI5M1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiOTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiOTVcIjogWzAuMzEsIDAuMTIwNTYsIDAuMDI3NzgsIDAsIDAuNV0sXG4gICAgICAgIFwiOTdcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjk5XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjEwMVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiMTAyXCI6IFswLCAwLjY5NDQ0LCAwLjA3Nzc4LCAwLCAwLjMwNTU2XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDEzODksIDAsIDAuNV0sXG4gICAgICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCIxMDVcIjogWzAsIDAuNjY3ODYsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42Njc4NiwgMCwgMCwgMC4zMDU1Nl0sXG4gICAgICAgIFwiMTA3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjEwOVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiMTEwXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiMTEyXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCIxMTNcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAsIDAuNTI3NzhdLFxuICAgICAgICBcIjExNFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC4zOTE2N10sXG4gICAgICAgIFwiMTE1XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjM5NDQ1XSxcbiAgICAgICAgXCIxMTZcIjogWzAsIDAuNjE1MDgsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjExN1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiMTE4XCI6IFswLCAwLjQzMDU2LCAwLjAxMzg5LCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCIxMTlcIjogWzAsIDAuNDMwNTYsIDAuMDEzODksIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjEyMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41Mjc3OF0sXG4gICAgICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjAxMzg5LCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCIxMjJcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNDQ0NDVdLFxuICAgICAgICBcIjEyM1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCIxMjRcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjEyNVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCIxMjZcIjogWzAuMzUsIDAuMzE3ODYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiMTYwXCI6IFswLCAwLCAwLCAwLCAwXSxcbiAgICAgICAgXCIxNjhcIjogWzAsIDAuNjY3ODYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiMTcyXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCIxNzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzVdLFxuICAgICAgICBcIjE3N1wiOiBbMC4wODMzMywgMC41ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTk4XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjkwMjc4XSxcbiAgICAgICAgXCIyMTVcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjIxNlwiOiBbMC4wNDg2MSwgMC43MzE5NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMjIzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjIzMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiMjQ3XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCIyNDhcIjogWzAuMDk3MjIsIDAuNTI3NzgsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiMzA1XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCIzMzhcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDEuMDEzODldLFxuICAgICAgICBcIjMzOVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLCAwLjMwNTU2XSxcbiAgICAgICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNzExXCI6IFswLCAwLjYyODQ3LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjcxM1wiOiBbMCwgMC41Njc3OCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI3MTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNzE1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI3MjlcIjogWzAsIDAuNjY3ODYsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjczMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43NV0sXG4gICAgICAgIFwiNzMyXCI6IFswLCAwLjY2Nzg2LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4MjRcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDBdLFxuICAgICAgICBcIjkxNVwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42MjVdLFxuICAgICAgICBcIjkxNlwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiOTIwXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNjk0NDVdLFxuICAgICAgICBcIjkyNlwiOiBbMCwgMC42ODMzMywgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiOTI4XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjkzM1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiOTM0XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjkzN1wiOiBbMCwgMC42ODMzMywgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODIxMVwiOiBbMCwgMC40MzA1NiwgMC4wMjc3OCwgMCwgMC41XSxcbiAgICAgICAgXCI4MjEyXCI6IFswLCAwLjQzMDU2LCAwLjAyNzc4LCAwLCAxLjBdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4MjI0XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICAgICAgXCI4MjI1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICAgICAgXCI4MjMwXCI6IFswLCAwLjEyLCAwLCAwLCAxMDE1XSxcbiAgICAgICAgXCI4MjQyXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjI3NV0sXG4gICAgICAgIFwiODQwN1wiOiBbMCwgMC43MTQ0NCwgMC4xNTM4MiwgMCwgMC41XSxcbiAgICAgICAgXCI4NDYzXCI6IFswLCAwLjY4ODg5LCAwLCAwLCAwLjU0MDI4XSxcbiAgICAgICAgXCI4NDY1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI4NDY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLjExMTExLCAwLjQxNjY3XSxcbiAgICAgICAgXCI4NDcyXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjExMTExLCAwLjYzNjQ2XSxcbiAgICAgICAgXCI4NDc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI4NTAxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICAgICAgXCI4NTkyXCI6IFstMC4xMzMxMywgMC4zNjY4NywgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NTkzXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjg1OTRcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg1OTVcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODU5NlwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODU5N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NTk4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg1OTlcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYwMFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NjAxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2MTRcIjogWzAuMDExLCAwLjUxMSwgMCwgMCwgODg5XSxcbiAgICAgICAgXCI4NjE3XCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDEwMTVdLFxuICAgICAgICBcIjg2MThcIjogWzAuMDExLCAwLjUxMSwgMCwgMCwgMTAxNV0sXG4gICAgICAgIFwiODYzNlwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODYzN1wiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY0MFwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY0MVwiOiBbLTAuMTMzMTMsIDAuMzY2ODcsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODY1MlwiOiBbMC4wMTEsIDAuNjcxLCAwLCAwLCA4ODldLFxuICAgICAgICBcIjg2NTZcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NTdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg2NThcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NTlcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg2NjBcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg2NjFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjg3MDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjg3MDZcIjogWzAsIDAuNjk0NDQsIDAuMDU1NTYsIDAuMDgzMzQsIDAuNTMwOV0sXG4gICAgICAgIFwiODcwN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiODcwOVwiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzExXCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4NzEyXCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiODcxNVwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg3MjJcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3MjNcIjogWzAuMDgzMzMsIDAuNTgzMzMsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3MjVcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODcyNlwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzI3XCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzI4XCI6IFstMC4wNTU1NSwgMC40NDQ0NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzI5XCI6IFstMC4wNTU1NSwgMC40NDQ0NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4NzMwXCI6IFswLjIsIDAuOCwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiODczM1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODczNFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4NzM2XCI6IFswLCAwLjY5MjI0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI4NzM5XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI4NzQxXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjg3NDNcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg3NDRcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg3NDVcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg3NDZcIjogWzAsIDAuNTU1NTYsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg3NDdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMTExMTEsIDAsIDAuNDE2NjddLFxuICAgICAgICBcIjg3NjRcIjogWy0wLjEzMzEzLCAwLjM2Njg3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NzY4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI4NzcxXCI6IFstMC4wMzYyNSwgMC40NjM3NSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODc3M1wiOiBbLTAuMDIyLCAwLjU4OSwgMCwgMCwgNjY3XSxcbiAgICAgICAgXCI4Nzc2XCI6IFstMC4wMTY4OCwgMC40ODMxMiwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODc4MVwiOiBbLTAuMDM2MjUsIDAuNDYzNzUsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg3ODRcIjogWy0wLjEzMywgMC42NywgMCwgMCwgNjY2XSxcbiAgICAgICAgXCI4ODAwXCI6IFswLjIxNSwgMC43MTYsIDAsIDAsIDY2Nl0sXG4gICAgICAgIFwiODgwMVwiOiBbLTAuMDM2MjUsIDAuNDYzNzUsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDRcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MDVcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MTBcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg4MTFcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg4MjZcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODI3XCI6IFswLjAzOTEsIDAuNTM5MSwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiODgzNFwiOiBbMC4wMzkxLCAwLjUzOTEsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjg4MzVcIjogWzAuMDM5MSwgMC41MzkxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODM4XCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODM5XCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODQ2XCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4ODQ5XCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODUwXCI6IFswLjEzNTk3LCAwLjYzNTk3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODUxXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4ODUyXCI6IFswLCAwLjU1NTU2LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4ODUzXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODU0XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODU1XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODU2XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODU3XCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODY2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICAgICAgXCI4ODY3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICAgICAgXCI4ODY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODY5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4ODcyXCI6IFswLjI0OSwgMC43NSwgMCwgMCwgNjkyXSxcbiAgICAgICAgXCI4OTAwXCI6IFstMC4wNTU1NSwgMC40NDQ0NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4OTAxXCI6IFstMC4wNTU1NSwgMC40NDQ0NSwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiODkwMlwiOiBbLTAuMDM0NzIsIDAuNDY1MjgsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiODkwNFwiOiBbMC4wMDUsIDAuNTA1LCAwLCAwLCA4NDddLFxuICAgICAgICBcIjg5NDJcIjogWzAuMDMsIDAuOSwgMCwgMCwgMTIxXSxcbiAgICAgICAgXCI4OTQzXCI6IFstMC4xOSwgMC4zMSwgMCwgMCwgMTAxNV0sXG4gICAgICAgIFwiODk0NVwiOiBbLTAuMSwgMC44MiwgMCwgMCwgMTAxNV0sXG4gICAgICAgIFwiODk2OFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiODk2OVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiODk3MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiODk3MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40NDQ0NV0sXG4gICAgICAgIFwiODk5NFwiOiBbLTAuMTQyMzYsIDAuMzU3NjQsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODk5NVwiOiBbLTAuMTQyMzYsIDAuMzU3NjQsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiOTEzNlwiOiBbMC4yNDQsIDAuNzQ0LCAwLCAwLCAzMDFdLFxuICAgICAgICBcIjkxMzdcIjogWzAuMjQ0LCAwLjc0NCwgMCwgMCwgMzAxXSxcbiAgICAgICAgXCI5NjUxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5NjU3XCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI5NjYxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5NjY3XCI6IFstMC4wMzQ3MiwgMC40NjUyOCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI5NzExXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjk4MjRcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk4MjVcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk4MjZcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk4MjdcIjogWzAuMTI5NjMsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjk4MzdcIjogWzAsIDAuNzUsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjk4MzhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjk4MzlcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjEwMjE2XCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjM4ODg5XSxcbiAgICAgICAgXCIxMDIxN1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgICAgIFwiMTAyMjJcIjogWzAuMjQ0LCAwLjc0NCwgMCwgMCwgMTg0XSxcbiAgICAgICAgXCIxMDIyM1wiOiBbMC4yNDQsIDAuNzQ0LCAwLCAwLCAxODRdLFxuICAgICAgICBcIjEwMjI5XCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDE0NzBdLFxuICAgICAgICBcIjEwMjMwXCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDE0NjldLFxuICAgICAgICBcIjEwMjMxXCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDE3NDhdLFxuICAgICAgICBcIjEwMjMyXCI6IFswLjAyNCwgMC41MjUsIDAsIDAsIDE0OTddLFxuICAgICAgICBcIjEwMjMzXCI6IFswLjAyNCwgMC41MjUsIDAsIDAsIDE1MjZdLFxuICAgICAgICBcIjEwMjM0XCI6IFswLjAyNCwgMC41MjUsIDAsIDAsIDE3NDZdLFxuICAgICAgICBcIjEwMjM2XCI6IFswLjAxMSwgMC41MTEsIDAsIDAsIDE0OThdLFxuICAgICAgICBcIjEwODE1XCI6IFswLCAwLjY4MzMzLCAwLCAwLCAwLjc1XSxcbiAgICAgICAgXCIxMDkyN1wiOiBbMC4xMzU5NywgMC42MzU5NywgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiMTA5MjhcIjogWzAuMTM1OTcsIDAuNjM1OTcsIDAsIDAsIDAuNzc3NzhdXG4gICAgfSxcbiAgICBcIk1hdGgtQm9sZEl0YWxpY1wiOiB7XG4gICAgICAgIFwiNDdcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAsIDBdLFxuICAgICAgICBcIjY1XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjg2OTQ0XSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC42ODYxMSwgMC4wNDgzNSwgMCwgMC44NjY0XSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC42ODYxMSwgMC4wNjk3OSwgMCwgMC44MTY5NF0sXG4gICAgICAgIFwiNjhcIjogWzAsIDAuNjg2MTEsIDAuMDMxOTQsIDAsIDAuOTM4MTJdLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjY4NjExLCAwLjA1NDUxLCAwLCAwLjgxMDA3XSxcbiAgICAgICAgXCI3MFwiOiBbMCwgMC42ODYxMSwgMC4xNTk3MiwgMCwgMC42ODg4OV0sXG4gICAgICAgIFwiNzFcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODg2NzNdLFxuICAgICAgICBcIjcyXCI6IFswLCAwLjY4NjExLCAwLjA4MjI5LCAwLCAwLjk4MjI5XSxcbiAgICAgICAgXCI3M1wiOiBbMCwgMC42ODYxMSwgMC4wNzc3OCwgMCwgMC41MTExMV0sXG4gICAgICAgIFwiNzRcIjogWzAsIDAuNjg2MTEsIDAuMTAwNjksIDAsIDAuNjMxMjVdLFxuICAgICAgICBcIjc1XCI6IFswLCAwLjY4NjExLCAwLjA2OTc5LCAwLCAwLjk3MTE4XSxcbiAgICAgICAgXCI3NlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC43NTU1NV0sXG4gICAgICAgIFwiNzdcIjogWzAsIDAuNjg2MTEsIDAuMTE0MjQsIDAsIDEuMTQyMDFdLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjY4NjExLCAwLjExNDI0LCAwLCAwLjk1MDM0XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC42ODYxMSwgMC4wMzE5NCwgMCwgMC44MzY2Nl0sXG4gICAgICAgIFwiODBcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNzIzMDldLFxuICAgICAgICBcIjgxXCI6IFswLjE5NDQ0LCAwLjY4NjExLCAwLCAwLCAwLjg2ODYxXSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42ODYxMSwgMC4wMDQyMSwgMCwgMC44NzIzNV0sXG4gICAgICAgIFwiODNcIjogWzAsIDAuNjg2MTEsIDAuMDUzODIsIDAsIDAuNjkyNzFdLFxuICAgICAgICBcIjg0XCI6IFswLCAwLjY4NjExLCAwLjE1OTcyLCAwLCAwLjYzNjYzXSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42ODYxMSwgMC4xMTQyNCwgMCwgMC44MDAyN10sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjg2MTEsIDAuMjU1NTUsIDAsIDAuNjc3NzhdLFxuICAgICAgICBcIjg3XCI6IFswLCAwLjY4NjExLCAwLjE1OTcyLCAwLCAxLjA5MzA1XSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC42ODYxMSwgMC4wNzc3OCwgMCwgMC45NDcyMl0sXG4gICAgICAgIFwiODlcIjogWzAsIDAuNjg2MTEsIDAuMjU1NTUsIDAsIDAuNjc0NThdLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjY4NjExLCAwLjA2OTc5LCAwLCAwLjc3MjU3XSxcbiAgICAgICAgXCI5N1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC42MzI4N10sXG4gICAgICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTIwODNdLFxuICAgICAgICBcIjk5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjUxMzQyXSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjA5NzJdLFxuICAgICAgICBcIjEwMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41NTM2MV0sXG4gICAgICAgIFwiMTAyXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjExMDQyLCAwLCAwLjU2ODA2XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNTQ0OV0sXG4gICAgICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NzU5XSxcbiAgICAgICAgXCIxMDVcIjogWzAsIDAuNjkzMjYsIDAsIDAsIDAuNDA0OF0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY5MzI2LCAwLjA2MjIsIDAsIDAuNDcwODNdLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMC4wMTg1MiwgMCwgMC42MDM3XSxcbiAgICAgICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAuMDA4OCwgMCwgMC4zNDgxNV0sXG4gICAgICAgIFwiMTA5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAxLjAzMjRdLFxuICAgICAgICBcIjExMFwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC43MTI5Nl0sXG4gICAgICAgIFwiMTExXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjU4NDcyXSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNjAwOTJdLFxuICAgICAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMzcwNCwgMCwgMC41NDIxM10sXG4gICAgICAgIFwiMTE0XCI6IFswLCAwLjQ0NDQ0LCAwLjAzMTk0LCAwLCAwLjUyODddLFxuICAgICAgICBcIjExNVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41MzEyNV0sXG4gICAgICAgIFwiMTE2XCI6IFswLCAwLjYzNDkyLCAwLCAwLCAwLjQxNTI4XSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjgxMDJdLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC40NDQ0NCwgMC4wMzcwNCwgMCwgMC41NjY2Nl0sXG4gICAgICAgIFwiMTE5XCI6IFswLCAwLjQ0NDQ0LCAwLjAyNzc4LCAwLCAwLjgzMTQ4XSxcbiAgICAgICAgXCIxMjBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNjU5MDNdLFxuICAgICAgICBcIjEyMVwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMzcwNCwgMCwgMC41OTAyOF0sXG4gICAgICAgIFwiMTIyXCI6IFswLCAwLjQ0NDQ0LCAwLjA0MjEzLCAwLCAwLjU1NTA5XSxcbiAgICAgICAgXCI5MTVcIjogWzAsIDAuNjg2MTEsIDAuMTU5NzIsIDAsIDAuNjU2OTRdLFxuICAgICAgICBcIjkxNlwiOiBbMCwgMC42ODYxMSwgMCwgMCwgMC45NTgzM10sXG4gICAgICAgIFwiOTIwXCI6IFswLCAwLjY4NjExLCAwLjAzMTk0LCAwLCAwLjg2NzIyXSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjg2MTEsIDAsIDAsIDAuODA1NTVdLFxuICAgICAgICBcIjkyNlwiOiBbMCwgMC42ODYxMSwgMC4wNzQ1OCwgMCwgMC44NDEyNV0sXG4gICAgICAgIFwiOTI4XCI6IFswLCAwLjY4NjExLCAwLjA4MjI5LCAwLCAwLjk4MjI5XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjg2MTEsIDAuMDU0NTEsIDAsIDAuODg1MDddLFxuICAgICAgICBcIjkzM1wiOiBbMCwgMC42ODYxMSwgMC4xNTk3MiwgMCwgMC42NzA4M10sXG4gICAgICAgIFwiOTM0XCI6IFswLCAwLjY4NjExLCAwLCAwLCAwLjc2NjY2XSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjg2MTEsIDAuMTE2NTMsIDAsIDAuNzE0MDJdLFxuICAgICAgICBcIjkzN1wiOiBbMCwgMC42ODYxMSwgMC4wNDgzNSwgMCwgMC44Nzg5XSxcbiAgICAgICAgXCI5NDVcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNzYwNjRdLFxuICAgICAgICBcIjk0NlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wMzQwMywgMCwgMC42NTk3Ml0sXG4gICAgICAgIFwiOTQ3XCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjA2Mzg5LCAwLCAwLjU5MDAzXSxcbiAgICAgICAgXCI5NDhcIjogWzAsIDAuNjk0NDQsIDAuMDM4MTksIDAsIDAuNTIyMjJdLFxuICAgICAgICBcIjk0OVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41Mjg4Ml0sXG4gICAgICAgIFwiOTUwXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA2MjE1LCAwLCAwLjUwODMzXSxcbiAgICAgICAgXCI5NTFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNl0sXG4gICAgICAgIFwiOTUyXCI6IFswLCAwLjY5NDQ0LCAwLjAzMTk0LCAwLCAwLjU2MThdLFxuICAgICAgICBcIjk1M1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40MTIwNF0sXG4gICAgICAgIFwiOTU0XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjY2NzU5XSxcbiAgICAgICAgXCI5NTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjcwODNdLFxuICAgICAgICBcIjk1NlwiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC43MDc4N10sXG4gICAgICAgIFwiOTU3XCI6IFswLCAwLjQ0NDQ0LCAwLjA2ODk4LCAwLCAwLjU3Njg1XSxcbiAgICAgICAgXCI5NThcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDMwMjEsIDAsIDAuNTA4MzNdLFxuICAgICAgICBcIjk1OVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41ODQ3Ml0sXG4gICAgICAgIFwiOTYwXCI6IFswLCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjY4MjQxXSxcbiAgICAgICAgXCI5NjFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNjExOF0sXG4gICAgICAgIFwiOTYyXCI6IFswLjA5NzIyLCAwLjQ0NDQ0LCAwLjA3OTE3LCAwLCAwLjQyMzYxXSxcbiAgICAgICAgXCI5NjNcIjogWzAsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNjg1ODhdLFxuICAgICAgICBcIjk2NFwiOiBbMCwgMC40NDQ0NCwgMC4xMzQ3MiwgMCwgMC41MjA4M10sXG4gICAgICAgIFwiOTY1XCI6IFswLCAwLjQ0NDQ0LCAwLjAzNzA0LCAwLCAwLjYzMDU1XSxcbiAgICAgICAgXCI5NjZcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNzQ3MjJdLFxuICAgICAgICBcIjk2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC43MTgwNV0sXG4gICAgICAgIFwiOTY4XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjAzNzA0LCAwLCAwLjc1ODMzXSxcbiAgICAgICAgXCI5NjlcIjogWzAsIDAuNDQ0NDQsIDAuMDM3MDQsIDAsIDAuNzE3ODJdLFxuICAgICAgICBcIjk3N1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42OTE1NV0sXG4gICAgICAgIFwiOTgxXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjcxMjVdLFxuICAgICAgICBcIjk4MlwiOiBbMCwgMC40NDQ0NCwgMC4wMzE5NCwgMCwgMC45NzVdLFxuICAgICAgICBcIjEwMDlcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNjExOF0sXG4gICAgICAgIFwiMTAxM1wiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40ODMzM11cbiAgICB9LFxuICAgIFwiTWF0aC1JdGFsaWNcIjoge1xuICAgICAgICBcIjQ3XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwXSxcbiAgICAgICAgXCI2NVwiOiBbMCwgMC42ODMzMywgMCwgMC4xMzg4OSwgMC43NV0sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjgzMzMsIDAuMDUwMTcsIDAuMDgzMzQsIDAuNzU4NTFdLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY4MzMzLCAwLjA3MTUzLCAwLjA4MzM0LCAwLjcxNDcyXSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4wNTU1NiwgMC44Mjc5Ml0sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjgzMzMsIDAuMDU3NjQsIDAuMDgzMzQsIDAuNzM4Ml0sXG4gICAgICAgIFwiNzBcIjogWzAsIDAuNjgzMzMsIDAuMTM4ODksIDAuMDgzMzQsIDAuNjQzMDZdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjY4MzMzLCAwLCAwLjA4MzM0LCAwLjc4NjI1XSxcbiAgICAgICAgXCI3MlwiOiBbMCwgMC42ODMzMywgMC4wODEyNSwgMC4wNTU1NiwgMC44MzEyNV0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjgzMzMsIDAuMDc4NDcsIDAuMTExMTEsIDAuNDM5NThdLFxuICAgICAgICBcIjc0XCI6IFswLCAwLjY4MzMzLCAwLjA5NjE4LCAwLjE2NjY3LCAwLjU1NDUxXSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42ODMzMywgMC4wNzE1MywgMC4wNTU1NiwgMC44NDkzMV0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjgzMzMsIDAsIDAuMDI3NzgsIDAuNjgwNTZdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY4MzMzLCAwLjEwOTAzLCAwLjA4MzM0LCAwLjk3MDE0XSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42ODMzMywgMC4xMDkwMywgMC4wODMzNCwgMC44MDM0N10sXG4gICAgICAgIFwiNzlcIjogWzAsIDAuNjgzMzMsIDAuMDI3NzgsIDAuMDgzMzQsIDAuNzYyNzhdLFxuICAgICAgICBcIjgwXCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjY0MjAxXSxcbiAgICAgICAgXCI4MVwiOiBbMC4xOTQ0NCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC43OTA1Nl0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjgzMzMsIDAuMDA3NzMsIDAuMDgzMzQsIDAuNzU5MjldLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY4MzMzLCAwLjA1NzY0LCAwLjA4MzM0LCAwLjYxMzJdLFxuICAgICAgICBcIjg0XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjU4NDM4XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42ODMzMywgMC4xMDkwMywgMC4wMjc3OCwgMC42ODI3OF0sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjgzMzMsIDAuMjIyMjIsIDAsIDAuNTgzMzNdLFxuICAgICAgICBcIjg3XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLCAwLjk0NDQ1XSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC42ODMzMywgMC4wNzg0NywgMC4wODMzNCwgMC44Mjg0N10sXG4gICAgICAgIFwiODlcIjogWzAsIDAuNjgzMzMsIDAuMjIyMjIsIDAsIDAuNTgwNTZdLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjY4MzMzLCAwLjA3MTUzLCAwLjA4MzM0LCAwLjY4MjY0XSxcbiAgICAgICAgXCI5N1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41Mjg1OV0sXG4gICAgICAgIFwiOThcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNDI5MTddLFxuICAgICAgICBcIjk5XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQzMjc2XSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjk0NDQsIDAsIDAuMTY2NjcsIDAuNTIwNDldLFxuICAgICAgICBcIjEwMVwiOiBbMCwgMC40MzA1NiwgMCwgMC4wNTU1NiwgMC40NjU2M10sXG4gICAgICAgIFwiMTAyXCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjEwNzY0LCAwLjE2NjY3LCAwLjQ4OTU5XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDM1ODgsIDAuMDI3NzgsIDAuNDc2OTddLFxuICAgICAgICBcIjEwNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NzYxNl0sXG4gICAgICAgIFwiMTA1XCI6IFswLCAwLjY1OTUyLCAwLCAwLCAwLjM0NDUxXSxcbiAgICAgICAgXCIxMDZcIjogWzAuMTk0NDQsIDAuNjU5NTIsIDAuMDU3MjQsIDAsIDAuNDExODFdLFxuICAgICAgICBcIjEwN1wiOiBbMCwgMC42OTQ0NCwgMC4wMzE0OCwgMCwgMC41MjA2XSxcbiAgICAgICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAuMDE5NjgsIDAuMDgzMzQsIDAuMjk4MzhdLFxuICAgICAgICBcIjEwOVwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC44NzgwMV0sXG4gICAgICAgIFwiMTEwXCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjYwMDIzXSxcbiAgICAgICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDg0NzJdLFxuICAgICAgICBcIjExMlwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC41MDMxM10sXG4gICAgICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjAzNTg4LCAwLjA4MzM0LCAwLjQ0NjQxXSxcbiAgICAgICAgXCIxMTRcIjogWzAsIDAuNDMwNTYsIDAuMDI3NzgsIDAuMDU1NTYsIDAuNDUxMTZdLFxuICAgICAgICBcIjExNVwiOiBbMCwgMC40MzA1NiwgMCwgMC4wNTU1NiwgMC40Njg3NV0sXG4gICAgICAgIFwiMTE2XCI6IFswLCAwLjYxNTA4LCAwLCAwLjA4MzM0LCAwLjM2MTExXSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDI3NzgsIDAuNTcyNDZdLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wMjc3OCwgMC40ODQ3Ml0sXG4gICAgICAgIFwiMTE5XCI6IFswLCAwLjQzMDU2LCAwLjAyNjkxLCAwLjA4MzM0LCAwLjcxNTkyXSxcbiAgICAgICAgXCIxMjBcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDI3NzgsIDAuNTcxNTNdLFxuICAgICAgICBcIjEyMVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wNTU1NiwgMC40OTAyOF0sXG4gICAgICAgIFwiMTIyXCI6IFswLCAwLjQzMDU2LCAwLjA0Mzk4LCAwLjA1NTU2LCAwLjQ2NTA1XSxcbiAgICAgICAgXCI5MTVcIjogWzAsIDAuNjgzMzMsIDAuMTM4ODksIDAuMDgzMzQsIDAuNjE1MjhdLFxuICAgICAgICBcIjkxNlwiOiBbMCwgMC42ODMzMywgMCwgMC4xNjY2NywgMC44MzMzNF0sXG4gICAgICAgIFwiOTIwXCI6IFswLCAwLjY4MzMzLCAwLjAyNzc4LCAwLjA4MzM0LCAwLjc2Mjc4XSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTY2NjcsIDAuNjk0NDVdLFxuICAgICAgICBcIjkyNlwiOiBbMCwgMC42ODMzMywgMC4wNzU2OSwgMC4wODMzNCwgMC43NDIzNl0sXG4gICAgICAgIFwiOTI4XCI6IFswLCAwLjY4MzMzLCAwLjA4MTI1LCAwLjA1NTU2LCAwLjgzMTI1XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjgzMzMsIDAuMDU3NjQsIDAuMDgzMzQsIDAuNzc5ODZdLFxuICAgICAgICBcIjkzM1wiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wNTU1NiwgMC41ODMzM10sXG4gICAgICAgIFwiOTM0XCI6IFswLCAwLjY4MzMzLCAwLCAwLjA4MzM0LCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjgzMzMsIDAuMTEsIDAuMDU1NTYsIDAuNjEyMjJdLFxuICAgICAgICBcIjkzN1wiOiBbMCwgMC42ODMzMywgMC4wNTAxNywgMC4wODMzNCwgMC43NzI0XSxcbiAgICAgICAgXCI5NDVcIjogWzAsIDAuNDMwNTYsIDAuMDAzNywgMC4wMjc3OCwgMC42Mzk3XSxcbiAgICAgICAgXCI5NDZcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDUyNzgsIDAuMDgzMzQsIDAuNTY1NjNdLFxuICAgICAgICBcIjk0N1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wNTU1NiwgMCwgMC41MTc3M10sXG4gICAgICAgIFwiOTQ4XCI6IFswLCAwLjY5NDQ0LCAwLjAzNzg1LCAwLjA1NTU2LCAwLjQ0NDQ0XSxcbiAgICAgICAgXCI5NDlcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDgzMzQsIDAuNDY2MzJdLFxuICAgICAgICBcIjk1MFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wNzM3OCwgMC4wODMzNCwgMC40Mzc1XSxcbiAgICAgICAgXCI5NTFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDM1ODgsIDAuMDU1NTYsIDAuNDk2NTNdLFxuICAgICAgICBcIjk1MlwiOiBbMCwgMC42OTQ0NCwgMC4wMjc3OCwgMC4wODMzNCwgMC40Njk0NF0sXG4gICAgICAgIFwiOTUzXCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjM1Mzk0XSxcbiAgICAgICAgXCI5NTRcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTc2MTZdLFxuICAgICAgICBcIjk1NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41ODMzNF0sXG4gICAgICAgIFwiOTU2XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjAyNzc4LCAwLjYwMjU1XSxcbiAgICAgICAgXCI5NTdcIjogWzAsIDAuNDMwNTYsIDAuMDYzNjYsIDAuMDI3NzgsIDAuNDkzOThdLFxuICAgICAgICBcIjk1OFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wNDYwMSwgMC4xMTExMSwgMC40Mzc1XSxcbiAgICAgICAgXCI5NTlcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDg0NzJdLFxuICAgICAgICBcIjk2MFwiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMCwgMC41NzAwM10sXG4gICAgICAgIFwiOTYxXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjUxNzAyXSxcbiAgICAgICAgXCI5NjJcIjogWzAuMDk3MjIsIDAuNDMwNTYsIDAuMDc5ODYsIDAuMDgzMzQsIDAuMzYyODVdLFxuICAgICAgICBcIjk2M1wiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMCwgMC41NzE0MV0sXG4gICAgICAgIFwiOTY0XCI6IFswLCAwLjQzMDU2LCAwLjExMzIsIDAuMDI3NzgsIDAuNDM3MTVdLFxuICAgICAgICBcIjk2NVwiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wMjc3OCwgMC41NDAyOF0sXG4gICAgICAgIFwiOTY2XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjY1NDE3XSxcbiAgICAgICAgXCI5NjdcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNjI1NjldLFxuICAgICAgICBcIjk2OFwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wMzU4OCwgMC4xMTExMSwgMC42NTEzOV0sXG4gICAgICAgIFwiOTY5XCI6IFswLCAwLjQzMDU2LCAwLjAzNTg4LCAwLCAwLjYyMjQ1XSxcbiAgICAgICAgXCI5NzdcIjogWzAsIDAuNjk0NDQsIDAsIDAuMDgzMzQsIDAuNTkxNDRdLFxuICAgICAgICBcIjk4MVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMC4wODMzNCwgMC41OTU4M10sXG4gICAgICAgIFwiOTgyXCI6IFswLCAwLjQzMDU2LCAwLjAyNzc4LCAwLCAwLjgyODEzXSxcbiAgICAgICAgXCIxMDA5XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjUxNzAyXSxcbiAgICAgICAgXCIxMDEzXCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQwNTldXG4gICAgfSxcbiAgICBcIk1hdGgtUmVndWxhclwiOiB7XG4gICAgICAgIFwiNjVcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTM4ODksIDAuNzVdLFxuICAgICAgICBcIjY2XCI6IFswLCAwLjY4MzMzLCAwLjA1MDE3LCAwLjA4MzM0LCAwLjc1ODUxXSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC42ODMzMywgMC4wNzE1MywgMC4wODMzNCwgMC43MTQ3Ml0sXG4gICAgICAgIFwiNjhcIjogWzAsIDAuNjgzMzMsIDAuMDI3NzgsIDAuMDU1NTYsIDAuODI3OTJdLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjY4MzMzLCAwLjA1NzY0LCAwLjA4MzM0LCAwLjczODJdLFxuICAgICAgICBcIjcwXCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjY0MzA2XSxcbiAgICAgICAgXCI3MVwiOiBbMCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC43ODYyNV0sXG4gICAgICAgIFwiNzJcIjogWzAsIDAuNjgzMzMsIDAuMDgxMjUsIDAuMDU1NTYsIDAuODMxMjVdLFxuICAgICAgICBcIjczXCI6IFswLCAwLjY4MzMzLCAwLjA3ODQ3LCAwLjExMTExLCAwLjQzOTU4XSxcbiAgICAgICAgXCI3NFwiOiBbMCwgMC42ODMzMywgMC4wOTYxOCwgMC4xNjY2NywgMC41NTQ1MV0sXG4gICAgICAgIFwiNzVcIjogWzAsIDAuNjgzMzMsIDAuMDcxNTMsIDAuMDU1NTYsIDAuODQ5MzFdLFxuICAgICAgICBcIjc2XCI6IFswLCAwLjY4MzMzLCAwLCAwLjAyNzc4LCAwLjY4MDU2XSxcbiAgICAgICAgXCI3N1wiOiBbMCwgMC42ODMzMywgMC4xMDkwMywgMC4wODMzNCwgMC45NzAxNF0sXG4gICAgICAgIFwiNzhcIjogWzAsIDAuNjgzMzMsIDAuMTA5MDMsIDAuMDgzMzQsIDAuODAzNDddLFxuICAgICAgICBcIjc5XCI6IFswLCAwLjY4MzMzLCAwLjAyNzc4LCAwLjA4MzM0LCAwLjc2Mjc4XSxcbiAgICAgICAgXCI4MFwiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wODMzNCwgMC42NDIwMV0sXG4gICAgICAgIFwiODFcIjogWzAuMTk0NDQsIDAuNjgzMzMsIDAsIDAuMDgzMzQsIDAuNzkwNTZdLFxuICAgICAgICBcIjgyXCI6IFswLCAwLjY4MzMzLCAwLjAwNzczLCAwLjA4MzM0LCAwLjc1OTI5XSxcbiAgICAgICAgXCI4M1wiOiBbMCwgMC42ODMzMywgMC4wNTc2NCwgMC4wODMzNCwgMC42MTMyXSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMC4wODMzNCwgMC41ODQzOF0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjgzMzMsIDAuMTA5MDMsIDAuMDI3NzgsIDAuNjgyNzhdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY4MzMzLCAwLjIyMjIyLCAwLCAwLjU4MzMzXSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42ODMzMywgMC4xMzg4OSwgMCwgMC45NDQ0NV0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjgzMzMsIDAuMDc4NDcsIDAuMDgzMzQsIDAuODI4NDddLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY4MzMzLCAwLjIyMjIyLCAwLCAwLjU4MDU2XSxcbiAgICAgICAgXCI5MFwiOiBbMCwgMC42ODMzMywgMC4wNzE1MywgMC4wODMzNCwgMC42ODI2NF0sXG4gICAgICAgIFwiOTdcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI4NTldLFxuICAgICAgICBcIjk4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQyOTE3XSxcbiAgICAgICAgXCI5OVwiOiBbMCwgMC40MzA1NiwgMCwgMC4wNTU1NiwgMC40MzI3Nl0sXG4gICAgICAgIFwiMTAwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLjE2NjY3LCAwLjUyMDQ5XSxcbiAgICAgICAgXCIxMDFcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDY1NjNdLFxuICAgICAgICBcIjEwMlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4xMDc2NCwgMC4xNjY2NywgMC40ODk1OV0sXG4gICAgICAgIFwiMTAzXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjAzNTg4LCAwLjAyNzc4LCAwLjQ3Njk3XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTc2MTZdLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42NTk1MiwgMCwgMCwgMC4zNDQ1MV0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY1OTUyLCAwLjA1NzI0LCAwLCAwLjQxMTgxXSxcbiAgICAgICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAuMDMxNDgsIDAsIDAuNTIwNl0sXG4gICAgICAgIFwiMTA4XCI6IFswLCAwLjY5NDQ0LCAwLjAxOTY4LCAwLjA4MzM0LCAwLjI5ODM4XSxcbiAgICAgICAgXCIxMDlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuODc4MDFdLFxuICAgICAgICBcIjExMFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC42MDAyM10sXG4gICAgICAgIFwiMTExXCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQ4NDcyXSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAsIDAuMDgzMzQsIDAuNTAzMTNdLFxuICAgICAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMC4wMzU4OCwgMC4wODMzNCwgMC40NDY0MV0sXG4gICAgICAgIFwiMTE0XCI6IFswLCAwLjQzMDU2LCAwLjAyNzc4LCAwLjA1NTU2LCAwLjQ1MTE2XSxcbiAgICAgICAgXCIxMTVcIjogWzAsIDAuNDMwNTYsIDAsIDAuMDU1NTYsIDAuNDY4NzVdLFxuICAgICAgICBcIjExNlwiOiBbMCwgMC42MTUwOCwgMCwgMC4wODMzNCwgMC4zNjExMV0sXG4gICAgICAgIFwiMTE3XCI6IFswLCAwLjQzMDU2LCAwLCAwLjAyNzc4LCAwLjU3MjQ2XSxcbiAgICAgICAgXCIxMThcIjogWzAsIDAuNDMwNTYsIDAuMDM1ODgsIDAuMDI3NzgsIDAuNDg0NzJdLFxuICAgICAgICBcIjExOVwiOiBbMCwgMC40MzA1NiwgMC4wMjY5MSwgMC4wODMzNCwgMC43MTU5Ml0sXG4gICAgICAgIFwiMTIwXCI6IFswLCAwLjQzMDU2LCAwLCAwLjAyNzc4LCAwLjU3MTUzXSxcbiAgICAgICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDM1ODgsIDAuMDU1NTYsIDAuNDkwMjhdLFxuICAgICAgICBcIjEyMlwiOiBbMCwgMC40MzA1NiwgMC4wNDM5OCwgMC4wNTU1NiwgMC40NjUwNV0sXG4gICAgICAgIFwiOTE1XCI6IFswLCAwLjY4MzMzLCAwLjEzODg5LCAwLjA4MzM0LCAwLjYxNTI4XSxcbiAgICAgICAgXCI5MTZcIjogWzAsIDAuNjgzMzMsIDAsIDAuMTY2NjcsIDAuODMzMzRdLFxuICAgICAgICBcIjkyMFwiOiBbMCwgMC42ODMzMywgMC4wMjc3OCwgMC4wODMzNCwgMC43NjI3OF0sXG4gICAgICAgIFwiOTIzXCI6IFswLCAwLjY4MzMzLCAwLCAwLjE2NjY3LCAwLjY5NDQ1XSxcbiAgICAgICAgXCI5MjZcIjogWzAsIDAuNjgzMzMsIDAuMDc1NjksIDAuMDgzMzQsIDAuNzQyMzZdLFxuICAgICAgICBcIjkyOFwiOiBbMCwgMC42ODMzMywgMC4wODEyNSwgMC4wNTU1NiwgMC44MzEyNV0sXG4gICAgICAgIFwiOTMxXCI6IFswLCAwLjY4MzMzLCAwLjA1NzY0LCAwLjA4MzM0LCAwLjc3OTg2XSxcbiAgICAgICAgXCI5MzNcIjogWzAsIDAuNjgzMzMsIDAuMTM4ODksIDAuMDU1NTYsIDAuNTgzMzNdLFxuICAgICAgICBcIjkzNFwiOiBbMCwgMC42ODMzMywgMCwgMC4wODMzNCwgMC42NjY2N10sXG4gICAgICAgIFwiOTM2XCI6IFswLCAwLjY4MzMzLCAwLjExLCAwLjA1NTU2LCAwLjYxMjIyXSxcbiAgICAgICAgXCI5MzdcIjogWzAsIDAuNjgzMzMsIDAuMDUwMTcsIDAuMDgzMzQsIDAuNzcyNF0sXG4gICAgICAgIFwiOTQ1XCI6IFswLCAwLjQzMDU2LCAwLjAwMzcsIDAuMDI3NzgsIDAuNjM5N10sXG4gICAgICAgIFwiOTQ2XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLjA1Mjc4LCAwLjA4MzM0LCAwLjU2NTYzXSxcbiAgICAgICAgXCI5NDdcIjogWzAuMTk0NDQsIDAuNDMwNTYsIDAuMDU1NTYsIDAsIDAuNTE3NzNdLFxuICAgICAgICBcIjk0OFwiOiBbMCwgMC42OTQ0NCwgMC4wMzc4NSwgMC4wNTU1NiwgMC40NDQ0NF0sXG4gICAgICAgIFwiOTQ5XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA4MzM0LCAwLjQ2NjMyXSxcbiAgICAgICAgXCI5NTBcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDczNzgsIDAuMDgzMzQsIDAuNDM3NV0sXG4gICAgICAgIFwiOTUxXCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLjAzNTg4LCAwLjA1NTU2LCAwLjQ5NjUzXSxcbiAgICAgICAgXCI5NTJcIjogWzAsIDAuNjk0NDQsIDAuMDI3NzgsIDAuMDgzMzQsIDAuNDY5NDRdLFxuICAgICAgICBcIjk1M1wiOiBbMCwgMC40MzA1NiwgMCwgMC4wNTU1NiwgMC4zNTM5NF0sXG4gICAgICAgIFwiOTU0XCI6IFswLCAwLjQzMDU2LCAwLCAwLCAwLjU3NjE2XSxcbiAgICAgICAgXCI5NTVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTgzMzRdLFxuICAgICAgICBcIjk1NlwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wMjc3OCwgMC42MDI1NV0sXG4gICAgICAgIFwiOTU3XCI6IFswLCAwLjQzMDU2LCAwLjA2MzY2LCAwLjAyNzc4LCAwLjQ5Mzk4XSxcbiAgICAgICAgXCI5NThcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDQ2MDEsIDAuMTExMTEsIDAuNDM3NV0sXG4gICAgICAgIFwiOTU5XCI6IFswLCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjQ4NDcyXSxcbiAgICAgICAgXCI5NjBcIjogWzAsIDAuNDMwNTYsIDAuMDM1ODgsIDAsIDAuNTcwMDNdLFxuICAgICAgICBcIjk2MVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC41MTcwMl0sXG4gICAgICAgIFwiOTYyXCI6IFswLjA5NzIyLCAwLjQzMDU2LCAwLjA3OTg2LCAwLjA4MzM0LCAwLjM2Mjg1XSxcbiAgICAgICAgXCI5NjNcIjogWzAsIDAuNDMwNTYsIDAuMDM1ODgsIDAsIDAuNTcxNDFdLFxuICAgICAgICBcIjk2NFwiOiBbMCwgMC40MzA1NiwgMC4xMTMyLCAwLjAyNzc4LCAwLjQzNzE1XSxcbiAgICAgICAgXCI5NjVcIjogWzAsIDAuNDMwNTYsIDAuMDM1ODgsIDAuMDI3NzgsIDAuNTQwMjhdLFxuICAgICAgICBcIjk2NlwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC42NTQxN10sXG4gICAgICAgIFwiOTY3XCI6IFswLjE5NDQ0LCAwLjQzMDU2LCAwLCAwLjA1NTU2LCAwLjYyNTY5XSxcbiAgICAgICAgXCI5NjhcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAuMDM1ODgsIDAuMTExMTEsIDAuNjUxMzldLFxuICAgICAgICBcIjk2OVwiOiBbMCwgMC40MzA1NiwgMC4wMzU4OCwgMCwgMC42MjI0NV0sXG4gICAgICAgIFwiOTc3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLjA4MzM0LCAwLjU5MTQ0XSxcbiAgICAgICAgXCI5ODFcIjogWzAuMTk0NDQsIDAuNjk0NDQsIDAsIDAuMDgzMzQsIDAuNTk1ODNdLFxuICAgICAgICBcIjk4MlwiOiBbMCwgMC40MzA1NiwgMC4wMjc3OCwgMCwgMC44MjgxM10sXG4gICAgICAgIFwiMTAwOVwiOiBbMC4xOTQ0NCwgMC40MzA1NiwgMCwgMC4wODMzNCwgMC41MTcwMl0sXG4gICAgICAgIFwiMTAxM1wiOiBbMCwgMC40MzA1NiwgMCwgMC4wNTU1NiwgMC40MDU5XVxuICAgIH0sXG4gICAgXCJTYW5zU2VyaWYtQm9sZFwiOiB7XG4gICAgICAgIFwiMzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzY2NjddLFxuICAgICAgICBcIjM0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1ODM0XSxcbiAgICAgICAgXCIzNVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC45MTY2N10sXG4gICAgICAgIFwiMzZcIjogWzAuMDU1NTYsIDAuNzUsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjM3XCI6IFswLjA1NTU2LCAwLjc1LCAwLCAwLCAxLjAyOTEyXSxcbiAgICAgICAgXCIzOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzA1Nl0sXG4gICAgICAgIFwiMzlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzA1NTZdLFxuICAgICAgICBcIjQwXCI6IFswLjI1LCAwLjc1LCAwLCAwLCAwLjQyNzc4XSxcbiAgICAgICAgXCI0MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC40Mjc3OF0sXG4gICAgICAgIFwiNDJcIjogWzAsIDAuNzUsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjQzXCI6IFswLjExNjY3LCAwLjYxNjY3LCAwLCAwLCAwLjg1NTU2XSxcbiAgICAgICAgXCI0NFwiOiBbMC4xMDU1NiwgMC4xMzA1NiwgMCwgMCwgMC4zMDU1Nl0sXG4gICAgICAgIFwiNDVcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuMzY2NjddLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjEzMDU2LCAwLCAwLCAwLjMwNTU2XSxcbiAgICAgICAgXCI0N1wiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiNDhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjQ5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICAgICAgXCI1MFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiNTFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjUyXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICAgICAgXCI1M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiNTRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjU1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICAgICAgXCI1NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiNTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjU4XCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjMwNTU2XSxcbiAgICAgICAgXCI1OVwiOiBbMC4xMDU1NiwgMC40NTgzMywgMCwgMCwgMC4zMDU1Nl0sXG4gICAgICAgIFwiNjFcIjogWy0wLjA5Mzc1LCAwLjQwNjI1LCAwLCAwLCAwLjg1NTU2XSxcbiAgICAgICAgXCI2M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41MTk0NV0sXG4gICAgICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzMzMzRdLFxuICAgICAgICBcIjY1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MzMzNF0sXG4gICAgICAgIFwiNjdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzAyNzhdLFxuICAgICAgICBcIjY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICAgICAgXCI2OVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NDE2N10sXG4gICAgICAgIFwiNzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICAgICAgXCI3MlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzMwNTZdLFxuICAgICAgICBcIjc0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjUxOTQ1XSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43NjM4OV0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTgwNTZdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjk3Nzc4XSxcbiAgICAgICAgXCI3OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgICAgIFwiNzlcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzk0NDVdLFxuICAgICAgICBcIjgwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcwMjc4XSxcbiAgICAgICAgXCI4MVwiOiBbMC4xMDU1NiwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzAyNzhdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MzMzNF0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzYzODldLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjY5NDQ0LCAwLjAxNTI4LCAwLCAwLjczMzM0XSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC42OTQ0NCwgMC4wMTUyOCwgMCwgMS4wMzg4OV0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzMzMzRdLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY5NDQ0LCAwLjAyNzUsIDAsIDAuNzMzMzRdLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY3MjIzXSxcbiAgICAgICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zNDMwNl0sXG4gICAgICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzQzMDZdLFxuICAgICAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU1XSxcbiAgICAgICAgXCI5NVwiOiBbMC4zNSwgMC4xMDgzMywgMC4wMzA1NiwgMCwgMC41NV0sXG4gICAgICAgIFwiOTdcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NjExMV0sXG4gICAgICAgIFwiOTlcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNDg4ODldLFxuICAgICAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NjExMV0sXG4gICAgICAgIFwiMTAxXCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjUxMTExXSxcbiAgICAgICAgXCIxMDJcIjogWzAsIDAuNjk0NDQsIDAuMDc2MzksIDAsIDAuMzM2MTFdLFxuICAgICAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NTgzMywgMC4wMTUyOCwgMCwgMC41NV0sXG4gICAgICAgIFwiMTA0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU2MTExXSxcbiAgICAgICAgXCIxMDVcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjU1NTZdLFxuICAgICAgICBcIjEwNlwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMCwgMCwgMC4yODYxMV0sXG4gICAgICAgIFwiMTA3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjUzMDU2XSxcbiAgICAgICAgXCIxMDhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjU1NTZdLFxuICAgICAgICBcIjEwOVwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC44NjY2N10sXG4gICAgICAgIFwiMTEwXCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjU2MTExXSxcbiAgICAgICAgXCIxMTFcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjExMlwiOiBbMC4xOTQ0NCwgMC40NTgzMywgMCwgMCwgMC41NjExMV0sXG4gICAgICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQ1ODMzLCAwLCAwLCAwLjU2MTExXSxcbiAgICAgICAgXCIxMTRcIjogWzAsIDAuNDU4MzMsIDAuMDE1MjgsIDAsIDAuMzcyMjJdLFxuICAgICAgICBcIjExNVwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC40MjE2N10sXG4gICAgICAgIFwiMTE2XCI6IFswLCAwLjU4OTI5LCAwLCAwLCAwLjQwNDE3XSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDU4MzMsIDAsIDAsIDAuNTYxMTFdLFxuICAgICAgICBcIjExOFwiOiBbMCwgMC40NTgzMywgMC4wMTUyOCwgMCwgMC41XSxcbiAgICAgICAgXCIxMTlcIjogWzAsIDAuNDU4MzMsIDAuMDE1MjgsIDAsIDAuNzQ0NDVdLFxuICAgICAgICBcIjEyMFwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC41XSxcbiAgICAgICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDU4MzMsIDAuMDE1MjgsIDAsIDAuNV0sXG4gICAgICAgIFwiMTIyXCI6IFswLCAwLjQ1ODMzLCAwLCAwLCAwLjQ3NjM5XSxcbiAgICAgICAgXCIxMjZcIjogWzAuMzUsIDAuMzQ0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjE2OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICAgICAgXCIxODBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjMwNVwiOiBbMCwgMC40NTgzMywgMCwgMCwgMC4yNTU1Nl0sXG4gICAgICAgIFwiNTY3XCI6IFswLjE5NDQ0LCAwLjQ1ODMzLCAwLCAwLCAwLjI4NjExXSxcbiAgICAgICAgXCI3MTBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjcxMVwiOiBbMCwgMC42MzU0MiwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiNzEzXCI6IFswLCAwLjYzNzc4LCAwLCAwLCAwLjU1XSxcbiAgICAgICAgXCI3MjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjcyOVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4zMDU1Nl0sXG4gICAgICAgIFwiNzMwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczMzM0XSxcbiAgICAgICAgXCI3MzJcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTVdLFxuICAgICAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NV0sXG4gICAgICAgIFwiOTE1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU4MDU2XSxcbiAgICAgICAgXCI5MTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuOTE2NjddLFxuICAgICAgICBcIjkyMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44NTU1Nl0sXG4gICAgICAgIFwiOTIzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY3MjIzXSxcbiAgICAgICAgXCI5MjZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzMzMzRdLFxuICAgICAgICBcIjkyOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgICAgIFwiOTMxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICAgICAgXCI5MzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuODU1NTZdLFxuICAgICAgICBcIjkzNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43OTQ0NV0sXG4gICAgICAgIFwiOTM2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg1NTU2XSxcbiAgICAgICAgXCI5MzdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzk0NDVdLFxuICAgICAgICBcIjgyMTFcIjogWzAsIDAuNDU4MzMsIDAuMDMwNTYsIDAsIDAuNTVdLFxuICAgICAgICBcIjgyMTJcIjogWzAsIDAuNDU4MzMsIDAuMDMwNTYsIDAsIDEuMTAwMDFdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzA1NTZdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzA1NTZdLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU4MzRdLFxuICAgICAgICBcIjgyMjFcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU4MzRdXG4gICAgfSxcbiAgICBcIlNhbnNTZXJpZi1JdGFsaWNcIjoge1xuICAgICAgICBcIjMzXCI6IFswLCAwLjY5NDQ0LCAwLjA1NzMzLCAwLCAwLjMxOTQ1XSxcbiAgICAgICAgXCIzNFwiOiBbMCwgMC42OTQ0NCwgMC4wMDMxNiwgMCwgMC41XSxcbiAgICAgICAgXCIzNVwiOiBbMC4xOTQ0NCwgMC42OTQ0NCwgMC4wNTA4NywgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiMzZcIjogWzAuMDU1NTYsIDAuNzUsIDAuMTExNTYsIDAsIDAuNV0sXG4gICAgICAgIFwiMzdcIjogWzAuMDU1NTYsIDAuNzUsIDAuMDMxMjYsIDAsIDAuODMzMzRdLFxuICAgICAgICBcIjM4XCI6IFswLCAwLjY5NDQ0LCAwLjAzMDU4LCAwLCAwLjc1ODM0XSxcbiAgICAgICAgXCIzOVwiOiBbMCwgMC42OTQ0NCwgMC4wNzgxNiwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiNDBcIjogWzAuMjUsIDAuNzUsIDAuMTMxNjQsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjQxXCI6IFswLjI1LCAwLjc1LCAwLjAyNTM2LCAwLCAwLjM4ODg5XSxcbiAgICAgICAgXCI0MlwiOiBbMCwgMC43NSwgMC4xMTc3NSwgMCwgMC41XSxcbiAgICAgICAgXCI0M1wiOiBbMC4wODMzMywgMC41ODMzMywgMC4wMjUzNiwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNDRcIjogWzAuMTI1LCAwLjA4MzMzLCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI0NVwiOiBbMCwgMC40NDQ0NCwgMC4wMTk0NiwgMCwgMC4zMzMzM10sXG4gICAgICAgIFwiNDZcIjogWzAsIDAuMDgzMzMsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjQ3XCI6IFswLjI1LCAwLjc1LCAwLjEzMTY0LCAwLCAwLjVdLFxuICAgICAgICBcIjQ4XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjQ5XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjUwXCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjUxXCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjUyXCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjUzXCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjU0XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjU1XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjU2XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjU3XCI6IFswLCAwLjY1NTU2LCAwLjExMTU2LCAwLCAwLjVdLFxuICAgICAgICBcIjU4XCI6IFswLCAwLjQ0NDQ0LCAwLjAyNTAyLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI1OVwiOiBbMC4xMjUsIDAuNDQ0NDQsIDAuMDI1MDIsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjYxXCI6IFstMC4xMywgMC4zNywgMC4wNTA4NywgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiNjNcIjogWzAsIDAuNjk0NDQsIDAuMTE4MDksIDAsIDAuNDcyMjJdLFxuICAgICAgICBcIjY0XCI6IFswLCAwLjY5NDQ0LCAwLjA3NTU1LCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI2NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjk0NDQsIDAuMDgyOTMsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjY3XCI6IFswLCAwLjY5NDQ0LCAwLjExOTgzLCAwLCAwLjYzODg5XSxcbiAgICAgICAgXCI2OFwiOiBbMCwgMC42OTQ0NCwgMC4wNzU1NSwgMCwgMC43MjIyM10sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNTk3MjJdLFxuICAgICAgICBcIjcwXCI6IFswLCAwLjY5NDQ0LCAwLjEzMzcyLCAwLCAwLjU2OTQ1XSxcbiAgICAgICAgXCI3MVwiOiBbMCwgMC42OTQ0NCwgMC4xMTk4MywgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNzJcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuNzA4MzRdLFxuICAgICAgICBcIjczXCI6IFswLCAwLjY5NDQ0LCAwLjEzMzcyLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI3NFwiOiBbMCwgMC42OTQ0NCwgMC4wODA5NCwgMCwgMC40NzIyMl0sXG4gICAgICAgIFwiNzVcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNjk0NDVdLFxuICAgICAgICBcIjc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjU0MTY3XSxcbiAgICAgICAgXCI3N1wiOiBbMCwgMC42OTQ0NCwgMC4wODA5NCwgMCwgMC44NzVdLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjY5NDQ0LCAwLjA4MDk0LCAwLCAwLjcwODM0XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC42OTQ0NCwgMC4wNzU1NSwgMCwgMC43MzYxMV0sXG4gICAgICAgIFwiODBcIjogWzAsIDAuNjk0NDQsIDAuMDgyOTMsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjgxXCI6IFswLjEyNSwgMC42OTQ0NCwgMC4wNzU1NSwgMCwgMC43MzYxMV0sXG4gICAgICAgIFwiODJcIjogWzAsIDAuNjk0NDQsIDAuMDgyOTMsIDAsIDAuNjQ1ODRdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjY5NDQ0LCAwLjA5MjA1LCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC42OTQ0NCwgMC4xMzM3MiwgMCwgMC42ODA1Nl0sXG4gICAgICAgIFwiODVcIjogWzAsIDAuNjk0NDQsIDAuMDgwOTQsIDAsIDAuNjg3NV0sXG4gICAgICAgIFwiODZcIjogWzAsIDAuNjk0NDQsIDAuMTYxNSwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiODdcIjogWzAsIDAuNjk0NDQsIDAuMTYxNSwgMCwgMC45NDQ0NV0sXG4gICAgICAgIFwiODhcIjogWzAsIDAuNjk0NDQsIDAuMTMzNzIsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjY5NDQ0LCAwLjE3MjYxLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MFwiOiBbMCwgMC42OTQ0NCwgMC4xMTk4MywgMCwgMC42MTExMV0sXG4gICAgICAgIFwiOTFcIjogWzAuMjUsIDAuNzUsIDAuMTU5NDIsIDAsIDAuMjg4ODldLFxuICAgICAgICBcIjkzXCI6IFswLjI1LCAwLjc1LCAwLjA4NzE5LCAwLCAwLjI4ODg5XSxcbiAgICAgICAgXCI5NFwiOiBbMCwgMC42OTQ0NCwgMC4wNzk5LCAwLCAwLjVdLFxuICAgICAgICBcIjk1XCI6IFswLjM1LCAwLjA5NDQ0LCAwLjA4NjE2LCAwLCAwLjVdLFxuICAgICAgICBcIjk3XCI6IFswLCAwLjQ0NDQ0LCAwLjAwOTgxLCAwLCAwLjQ4MDU2XSxcbiAgICAgICAgXCI5OFwiOiBbMCwgMC42OTQ0NCwgMC4wMzA1NywgMCwgMC41MTY2N10sXG4gICAgICAgIFwiOTlcIjogWzAsIDAuNDQ0NDQsIDAuMDgzMzYsIDAsIDAuNDQ0NDVdLFxuICAgICAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMC4wOTQ4MywgMCwgMC41MTY2N10sXG4gICAgICAgIFwiMTAxXCI6IFswLCAwLjQ0NDQ0LCAwLjA2Nzc4LCAwLCAwLjQ0NDQ1XSxcbiAgICAgICAgXCIxMDJcIjogWzAsIDAuNjk0NDQsIDAuMjE3MDUsIDAsIDAuMzA1NTZdLFxuICAgICAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4xMDgzNiwgMCwgMC41XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAuMDE3NzgsIDAsIDAuNTE2NjddLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42NzkzNywgMC4wOTcxOCwgMCwgMC4yMzg4OV0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY3OTM3LCAwLjA5MTYyLCAwLCAwLjI2NjY3XSxcbiAgICAgICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAuMDgzMzYsIDAsIDAuNDg4ODldLFxuICAgICAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMC4wOTQ4MywgMCwgMC4yMzg4OV0sXG4gICAgICAgIFwiMTA5XCI6IFswLCAwLjQ0NDQ0LCAwLjAxNzc4LCAwLCAwLjc5NDQ1XSxcbiAgICAgICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAuMDE3NzgsIDAsIDAuNTE2NjddLFxuICAgICAgICBcIjExMVwiOiBbMCwgMC40NDQ0NCwgMC4wNjYxMywgMCwgMC41XSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDM4OSwgMCwgMC41MTY2N10sXG4gICAgICAgIFwiMTEzXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjA0MTY5LCAwLCAwLjUxNjY3XSxcbiAgICAgICAgXCIxMTRcIjogWzAsIDAuNDQ0NDQsIDAuMTA4MzYsIDAsIDAuMzQxNjddLFxuICAgICAgICBcIjExNVwiOiBbMCwgMC40NDQ0NCwgMC4wNzc4LCAwLCAwLjM4MzMzXSxcbiAgICAgICAgXCIxMTZcIjogWzAsIDAuNTcxNDMsIDAuMDcyMjUsIDAsIDAuMzYxMTFdLFxuICAgICAgICBcIjExN1wiOiBbMCwgMC40NDQ0NCwgMC4wNDE2OSwgMCwgMC41MTY2N10sXG4gICAgICAgIFwiMTE4XCI6IFswLCAwLjQ0NDQ0LCAwLjEwODM2LCAwLCAwLjQ2MTExXSxcbiAgICAgICAgXCIxMTlcIjogWzAsIDAuNDQ0NDQsIDAuMTA4MzYsIDAsIDAuNjgzMzRdLFxuICAgICAgICBcIjEyMFwiOiBbMCwgMC40NDQ0NCwgMC4wOTE2OSwgMCwgMC40NjExMV0sXG4gICAgICAgIFwiMTIxXCI6IFswLjE5NDQ0LCAwLjQ0NDQ0LCAwLjEwODM2LCAwLCAwLjQ2MTExXSxcbiAgICAgICAgXCIxMjJcIjogWzAsIDAuNDQ0NDQsIDAuMDg3NTIsIDAsIDAuNDM0NzJdLFxuICAgICAgICBcIjEyNlwiOiBbMC4zNSwgMC4zMjY1OSwgMC4wODgyNiwgMCwgMC41XSxcbiAgICAgICAgXCIxNjhcIjogWzAsIDAuNjc5MzcsIDAuMDYzODUsIDAsIDAuNV0sXG4gICAgICAgIFwiMTc2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczNzUyXSxcbiAgICAgICAgXCIzMDVcIjogWzAsIDAuNDQ0NDQsIDAuMDQxNjksIDAsIDAuMjM4ODldLFxuICAgICAgICBcIjU2N1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wNDE2OSwgMCwgMC4yNjY2N10sXG4gICAgICAgIFwiNzEwXCI6IFswLCAwLjY5NDQ0LCAwLjA3OTksIDAsIDAuNV0sXG4gICAgICAgIFwiNzExXCI6IFswLCAwLjYzMTk0LCAwLjA4NDMyLCAwLCAwLjVdLFxuICAgICAgICBcIjcxM1wiOiBbMCwgMC42MDg4OSwgMC4wODc3NiwgMCwgMC41XSxcbiAgICAgICAgXCI3MTRcIjogWzAsIDAuNjk0NDQsIDAuMDkyMDUsIDAsIDAuNV0sXG4gICAgICAgIFwiNzE1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjcyOFwiOiBbMCwgMC42OTQ0NCwgMC4wOTQ4MywgMCwgMC41XSxcbiAgICAgICAgXCI3MjlcIjogWzAsIDAuNjc5MzcsIDAuMDc3NzQsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjczMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Mzc1Ml0sXG4gICAgICAgIFwiNzMyXCI6IFswLCAwLjY3NjU5LCAwLjA4ODI2LCAwLCAwLjVdLFxuICAgICAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMC4wOTIwNSwgMCwgMC41XSxcbiAgICAgICAgXCI5MTVcIjogWzAsIDAuNjk0NDQsIDAuMTMzNzIsIDAsIDAuNTQxNjddLFxuICAgICAgICBcIjkxNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiOTIwXCI6IFswLCAwLjY5NDQ0LCAwLjA3NTU1LCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjkyNlwiOiBbMCwgMC42OTQ0NCwgMC4xMjgxNiwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiOTI4XCI6IFswLCAwLjY5NDQ0LCAwLjA4MDk0LCAwLCAwLjcwODM0XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjk0NDQsIDAuMTE5ODMsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjkzM1wiOiBbMCwgMC42OTQ0NCwgMC4wOTAzMSwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiOTM0XCI6IFswLCAwLjY5NDQ0LCAwLjA0NjAzLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjk0NDQsIDAuMDkwMzEsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjkzN1wiOiBbMCwgMC42OTQ0NCwgMC4wODI5MywgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiODIxMVwiOiBbMCwgMC40NDQ0NCwgMC4wODYxNiwgMCwgMC41XSxcbiAgICAgICAgXCI4MjEyXCI6IFswLCAwLjQ0NDQ0LCAwLjA4NjE2LCAwLCAxLjBdLFxuICAgICAgICBcIjgyMTZcIjogWzAsIDAuNjk0NDQsIDAuMDc4MTYsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjgyMTdcIjogWzAsIDAuNjk0NDQsIDAuMDc4MTYsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjgyMjBcIjogWzAsIDAuNjk0NDQsIDAuMTQyMDUsIDAsIDAuNV0sXG4gICAgICAgIFwiODIyMVwiOiBbMCwgMC42OTQ0NCwgMC4wMDMxNiwgMCwgMC41XVxuICAgIH0sXG4gICAgXCJTYW5zU2VyaWYtUmVndWxhclwiOiB7XG4gICAgICAgIFwiMzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMzE5NDVdLFxuICAgICAgICBcIjM0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjM1XCI6IFswLjE5NDQ0LCAwLjY5NDQ0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCIzNlwiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC41XSxcbiAgICAgICAgXCIzN1wiOiBbMC4wNTU1NiwgMC43NSwgMCwgMCwgMC44MzMzNF0sXG4gICAgICAgIFwiMzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzU4MzRdLFxuICAgICAgICBcIjM5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI0MFwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4zODg4OV0sXG4gICAgICAgIFwiNDFcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMzg4ODldLFxuICAgICAgICBcIjQyXCI6IFswLCAwLjc1LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjQzXCI6IFswLjA4MzMzLCAwLjU4MzMzLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI0NFwiOiBbMC4xMjUsIDAuMDgzMzMsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjQ1XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjMzMzMzXSxcbiAgICAgICAgXCI0NlwiOiBbMCwgMC4wODMzMywgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiNDdcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNDhcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNDlcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTBcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTFcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTJcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTNcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTRcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTVcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTZcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNTdcIjogWzAsIDAuNjU1NTYsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNThcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjU5XCI6IFswLjEyNSwgMC40NDQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiNjFcIjogWy0wLjEzLCAwLjM3LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI2M1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC40NzIyMl0sXG4gICAgICAgIFwiNjRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjY1XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNjdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjM4ODldLFxuICAgICAgICBcIjY4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcyMjIzXSxcbiAgICAgICAgXCI2OVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41OTcyMl0sXG4gICAgICAgIFwiNzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTY5NDVdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI3MlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MDgzNF0sXG4gICAgICAgIFwiNzNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuMjc3NzhdLFxuICAgICAgICBcIjc0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI3NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42OTQ0NV0sXG4gICAgICAgIFwiNzZcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTQxNjddLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjg3NV0sXG4gICAgICAgIFwiNzhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzA4MzRdLFxuICAgICAgICBcIjc5XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjczNjExXSxcbiAgICAgICAgXCI4MFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODFcIjogWzAuMTI1LCAwLjY5NDQ0LCAwLCAwLCAwLjczNjExXSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NDU4NF0sXG4gICAgICAgIFwiODNcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjg0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY4MDU2XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42ODc1XSxcbiAgICAgICAgXCI4NlwiOiBbMCwgMC42OTQ0NCwgMC4wMTM4OSwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiODdcIjogWzAsIDAuNjk0NDQsIDAuMDEzODksIDAsIDAuOTQ0NDVdLFxuICAgICAgICBcIjg4XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4OVwiOiBbMCwgMC42OTQ0NCwgMC4wMjUsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjYxMTExXSxcbiAgICAgICAgXCI5MVwiOiBbMC4yNSwgMC43NSwgMCwgMCwgMC4yODg4OV0sXG4gICAgICAgIFwiOTNcIjogWzAuMjUsIDAuNzUsIDAsIDAsIDAuMjg4ODldLFxuICAgICAgICBcIjk0XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjk1XCI6IFswLjM1LCAwLjA5NDQ0LCAwLjAyNzc4LCAwLCAwLjVdLFxuICAgICAgICBcIjk3XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ4MDU2XSxcbiAgICAgICAgXCI5OFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41MTY2N10sXG4gICAgICAgIFwiOTlcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNDQ0NDVdLFxuICAgICAgICBcIjEwMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41MTY2N10sXG4gICAgICAgIFwiMTAxXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ0NDQ1XSxcbiAgICAgICAgXCIxMDJcIjogWzAsIDAuNjk0NDQsIDAuMDY5NDQsIDAsIDAuMzA1NTZdLFxuICAgICAgICBcIjEwM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMC4wMTM4OSwgMCwgMC41XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgICAgICBcIjEwNVwiOiBbMCwgMC42NzkzNywgMCwgMCwgMC4yMzg4OV0sXG4gICAgICAgIFwiMTA2XCI6IFswLjE5NDQ0LCAwLjY3OTM3LCAwLCAwLCAwLjI2NjY3XSxcbiAgICAgICAgXCIxMDdcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNDg4ODldLFxuICAgICAgICBcIjEwOFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yMzg4OV0sXG4gICAgICAgIFwiMTA5XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjc5NDQ1XSxcbiAgICAgICAgXCIxMTBcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgICAgICBcIjExMVwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCIxMTJcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuNTE2NjddLFxuICAgICAgICBcIjExM1wiOiBbMC4xOTQ0NCwgMC40NDQ0NCwgMCwgMCwgMC41MTY2N10sXG4gICAgICAgIFwiMTE0XCI6IFswLCAwLjQ0NDQ0LCAwLjAxMzg5LCAwLCAwLjM0MTY3XSxcbiAgICAgICAgXCIxMTVcIjogWzAsIDAuNDQ0NDQsIDAsIDAsIDAuMzgzMzNdLFxuICAgICAgICBcIjExNlwiOiBbMCwgMC41NzE0MywgMCwgMCwgMC4zNjExMV0sXG4gICAgICAgIFwiMTE3XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjUxNjY3XSxcbiAgICAgICAgXCIxMThcIjogWzAsIDAuNDQ0NDQsIDAuMDEzODksIDAsIDAuNDYxMTFdLFxuICAgICAgICBcIjExOVwiOiBbMCwgMC40NDQ0NCwgMC4wMTM4OSwgMCwgMC42ODMzNF0sXG4gICAgICAgIFwiMTIwXCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjQ2MTExXSxcbiAgICAgICAgXCIxMjFcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAuMDEzODksIDAsIDAuNDYxMTFdLFxuICAgICAgICBcIjEyMlwiOiBbMCwgMC40NDQ0NCwgMCwgMCwgMC40MzQ3Ml0sXG4gICAgICAgIFwiMTI2XCI6IFswLjM1LCAwLjMyNjU5LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjE3NlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiMzA1XCI6IFswLCAwLjQ0NDQ0LCAwLCAwLCAwLjIzODg5XSxcbiAgICAgICAgXCI1NjdcIjogWzAuMTk0NDQsIDAuNDQ0NDQsIDAsIDAsIDAuMjY2NjddLFxuICAgICAgICBcIjcxMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI3MTFcIjogWzAsIDAuNjMxOTQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNzEzXCI6IFswLCAwLjYwODg5LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjcxNFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI3MjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNzI5XCI6IFswLCAwLjY3OTM3LCAwLCAwLCAwLjI3Nzc4XSxcbiAgICAgICAgXCI3MzBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjczM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI3NzFcIjogWzAsIDAuNjc2NTksIDAsIDAsIDAuNV0sXG4gICAgICAgIFwiNzc2XCI6IFswLCAwLjY3OTM3LCAwLCAwLCAwLjVdLFxuICAgICAgICBcIjkxNVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41NDE2N10sXG4gICAgICAgIFwiOTE2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI5MjBcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzc3NzhdLFxuICAgICAgICBcIjkyM1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC42MTExMV0sXG4gICAgICAgIFwiOTI2XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MjhcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzA4MzRdLFxuICAgICAgICBcIjkzMVwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43MjIyMl0sXG4gICAgICAgIFwiOTMzXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI5MzRcIjogWzAsIDAuNjk0NDQsIDAsIDAsIDAuNzIyMjJdLFxuICAgICAgICBcIjkzNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC43Nzc3OF0sXG4gICAgICAgIFwiOTM3XCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjcyMjIyXSxcbiAgICAgICAgXCI4MjExXCI6IFswLCAwLjQ0NDQ0LCAwLjAyNzc4LCAwLCAwLjVdLFxuICAgICAgICBcIjgyMTJcIjogWzAsIDAuNDQ0NDQsIDAuMDI3NzgsIDAsIDEuMF0sXG4gICAgICAgIFwiODIxNlwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiODIxN1wiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC4yNzc3OF0sXG4gICAgICAgIFwiODIyMFwiOiBbMCwgMC42OTQ0NCwgMCwgMCwgMC41XSxcbiAgICAgICAgXCI4MjIxXCI6IFswLCAwLjY5NDQ0LCAwLCAwLCAwLjVdXG4gICAgfSxcbiAgICBcIlNjcmlwdC1SZWd1bGFyXCI6IHtcbiAgICAgICAgXCI2NVwiOiBbMCwgMC43LCAwLjIyOTI1LCAwLCAwLjgwMjUzXSxcbiAgICAgICAgXCI2NlwiOiBbMCwgMC43LCAwLjA0MDg3LCAwLCAwLjkwNzU3XSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC43LCAwLjE2ODksIDAsIDAuNjY2MTldLFxuICAgICAgICBcIjY4XCI6IFswLCAwLjcsIDAuMDkzNzEsIDAsIDAuNzc0NDNdLFxuICAgICAgICBcIjY5XCI6IFswLCAwLjcsIDAuMTg1ODMsIDAsIDAuNTYxNjJdLFxuICAgICAgICBcIjcwXCI6IFswLCAwLjcsIDAuMTM2MzQsIDAsIDAuODk1NDRdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjcsIDAuMTczMjIsIDAsIDAuNjA5NjFdLFxuICAgICAgICBcIjcyXCI6IFswLCAwLjcsIDAuMjk2OTQsIDAsIDAuOTY5MTldLFxuICAgICAgICBcIjczXCI6IFswLCAwLjcsIDAuMTkxODksIDAsIDAuODA5MDddLFxuICAgICAgICBcIjc0XCI6IFswLjI3Nzc4LCAwLjcsIDAuMTkxODksIDAsIDEuMDUxNTldLFxuICAgICAgICBcIjc1XCI6IFswLCAwLjcsIDAuMzEyNTksIDAsIDAuOTEzNjRdLFxuICAgICAgICBcIjc2XCI6IFswLCAwLjcsIDAuMTkxODksIDAsIDAuODczNzNdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjcsIDAuMTU5ODEsIDAsIDEuMDgwMzFdLFxuICAgICAgICBcIjc4XCI6IFswLCAwLjcsIDAuMzUyNSwgMCwgMC45MDE1XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC43LCAwLjA4MDc4LCAwLCAwLjczNzg3XSxcbiAgICAgICAgXCI4MFwiOiBbMCwgMC43LCAwLjA4MDc4LCAwLCAxLjAxMjYyXSxcbiAgICAgICAgXCI4MVwiOiBbMCwgMC43LCAwLjAzMzA1LCAwLCAwLjg4MjgyXSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC43LCAwLjA2MjU5LCAwLCAwLjg1XSxcbiAgICAgICAgXCI4M1wiOiBbMCwgMC43LCAwLjE5MTg5LCAwLCAwLjg2NzY3XSxcbiAgICAgICAgXCI4NFwiOiBbMCwgMC43LCAwLjI5MDg3LCAwLCAwLjc0Njk3XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC43LCAwLjI1ODE1LCAwLCAwLjc5OTk2XSxcbiAgICAgICAgXCI4NlwiOiBbMCwgMC43LCAwLjI3NTIzLCAwLCAwLjYyMjA0XSxcbiAgICAgICAgXCI4N1wiOiBbMCwgMC43LCAwLjI3NTIzLCAwLCAwLjgwNTMyXSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC43LCAwLjI2MDA2LCAwLCAwLjk0NDQ1XSxcbiAgICAgICAgXCI4OVwiOiBbMCwgMC43LCAwLjI5MzksIDAsIDAuNzA5NjFdLFxuICAgICAgICBcIjkwXCI6IFswLCAwLjcsIDAuMjQwMzcsIDAsIDAuODIxMl1cbiAgICB9LFxuICAgIFwiU2l6ZTEtUmVndWxhclwiOiB7XG4gICAgICAgIFwiNDBcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDU4MzRdLFxuICAgICAgICBcIjQxXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ1ODM0XSxcbiAgICAgICAgXCI0N1wiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC41Nzc3OF0sXG4gICAgICAgIFwiOTFcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNDE2NjddLFxuICAgICAgICBcIjkyXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjU3Nzc4XSxcbiAgICAgICAgXCI5M1wiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC40MTY2N10sXG4gICAgICAgIFwiMTIzXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCIxMjVcIjogWzAuMzUwMDEsIDAuODUsIDAsIDAsIDAuNTgzMzRdLFxuICAgICAgICBcIjcxMFwiOiBbMCwgMC43MjIyMiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiNzMyXCI6IFswLCAwLjcyMjIyLCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI3NzBcIjogWzAsIDAuNzIyMjIsIDAsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjc3MVwiOiBbMCwgMC43MjIyMiwgMCwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiODIxNFwiOiBbLTAuMDAwOTksIDAuNjAxLCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NTkzXCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4NTk1XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI4NjU3XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NjU5XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjc3Nzc4XSxcbiAgICAgICAgXCI4NzE5XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjk0NDQ1XSxcbiAgICAgICAgXCI4NzIwXCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjk0NDQ1XSxcbiAgICAgICAgXCI4NzIxXCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAxLjA1NTU2XSxcbiAgICAgICAgXCI4NzMwXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg3MzlcIjogWy0wLjAwNTk5LCAwLjYwNiwgMCwgMCwgMC4zMzMzM10sXG4gICAgICAgIFwiODc0MVwiOiBbLTAuMDA1OTksIDAuNjA2LCAwLCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI4NzQ3XCI6IFswLjMwNjEyLCAwLjgwNSwgMC4xOTQ0NSwgMCwgMC40NzIyMl0sXG4gICAgICAgIFwiODc0OFwiOiBbMC4zMDYsIDAuODA1LCAwLjE5NDQ1LCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI4NzQ5XCI6IFswLjMwNiwgMC44MDUsIDAuMTk0NDUsIDAsIDAuNDcyMjJdLFxuICAgICAgICBcIjg3NTBcIjogWzAuMzA2MTIsIDAuODA1LCAwLjE5NDQ1LCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI4ODk2XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4ODk3XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4ODk4XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4ODk5XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XSxcbiAgICAgICAgXCI4OTY4XCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI4OTY5XCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI4OTcwXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI4OTcxXCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCI5MTY4XCI6IFstMC4wMDA5OSwgMC42MDEsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjEwMjE2XCI6IFswLjM1MDAxLCAwLjg1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCIxMDIxN1wiOiBbMC4zNTAwMSwgMC44NSwgMCwgMCwgMC40NzIyMl0sXG4gICAgICAgIFwiMTA3NTJcIjogWzAuMjUwMDEsIDAuNzUsIDAsIDAsIDEuMTExMTFdLFxuICAgICAgICBcIjEwNzUzXCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCIxMDc1NFwiOiBbMC4yNTAwMSwgMC43NSwgMCwgMCwgMS4xMTExMV0sXG4gICAgICAgIFwiMTA3NTZcIjogWzAuMjUwMDEsIDAuNzUsIDAsIDAsIDAuODMzMzRdLFxuICAgICAgICBcIjEwNzU4XCI6IFswLjI1MDAxLCAwLjc1LCAwLCAwLCAwLjgzMzM0XVxuICAgIH0sXG4gICAgXCJTaXplMi1SZWd1bGFyXCI6IHtcbiAgICAgICAgXCI0MFwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC41OTcyMl0sXG4gICAgICAgIFwiNDFcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuNTk3MjJdLFxuICAgICAgICBcIjQ3XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjgxMTExXSxcbiAgICAgICAgXCI5MVwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC40NzIyMl0sXG4gICAgICAgIFwiOTJcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuODExMTFdLFxuICAgICAgICBcIjkzXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjQ3MjIyXSxcbiAgICAgICAgXCIxMjNcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjEyNVwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiNzEwXCI6IFswLCAwLjc1LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjczMlwiOiBbMCwgMC43NSwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI3NzBcIjogWzAsIDAuNzUsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiNzcxXCI6IFswLCAwLjc1LCAwLCAwLCAxLjBdLFxuICAgICAgICBcIjg3MTlcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuMjc3NzhdLFxuICAgICAgICBcIjg3MjBcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuMjc3NzhdLFxuICAgICAgICBcIjg3MjFcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuNDQ0NDVdLFxuICAgICAgICBcIjg3MzBcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODc0N1wiOiBbMC44NjIyNSwgMS4zNiwgMC40NDQ0NSwgMCwgMC41NTU1Nl0sXG4gICAgICAgIFwiODc0OFwiOiBbMC44NjIsIDEuMzYsIDAuNDQ0NDUsIDAsIDAuNTU1NTZdLFxuICAgICAgICBcIjg3NDlcIjogWzAuODYyLCAxLjM2LCAwLjQ0NDQ1LCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI4NzUwXCI6IFswLjg2MjI1LCAxLjM2LCAwLjQ0NDQ1LCAwLCAwLjU1NTU2XSxcbiAgICAgICAgXCI4ODk2XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCI4ODk3XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCI4ODk4XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCI4ODk5XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCI4OTY4XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCI4OTY5XCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCI4OTcwXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCI4OTcxXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjUyNzc4XSxcbiAgICAgICAgXCIxMDIxNlwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC42MTExMV0sXG4gICAgICAgIFwiMTAyMTdcIjogWzAuNjUwMDIsIDEuMTUsIDAsIDAsIDAuNjExMTFdLFxuICAgICAgICBcIjEwNzUyXCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjUxMTEyXSxcbiAgICAgICAgXCIxMDc1M1wiOiBbMC41NTAwMSwgMS4wNSwgMCwgMCwgMS41MTExMl0sXG4gICAgICAgIFwiMTA3NTRcIjogWzAuNTUwMDEsIDEuMDUsIDAsIDAsIDEuNTExMTJdLFxuICAgICAgICBcIjEwNzU2XCI6IFswLjU1MDAxLCAxLjA1LCAwLCAwLCAxLjExMTExXSxcbiAgICAgICAgXCIxMDc1OFwiOiBbMC41NTAwMSwgMS4wNSwgMCwgMCwgMS4xMTExMV1cbiAgICB9LFxuICAgIFwiU2l6ZTMtUmVndWxhclwiOiB7XG4gICAgICAgIFwiNDBcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNzM2MTFdLFxuICAgICAgICBcIjQxXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjczNjExXSxcbiAgICAgICAgXCI0N1wiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMS4wNDQ0NV0sXG4gICAgICAgIFwiOTFcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNTI3NzhdLFxuICAgICAgICBcIjkyXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAxLjA0NDQ1XSxcbiAgICAgICAgXCI5M1wiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMC41Mjc3OF0sXG4gICAgICAgIFwiMTIzXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjc1XSxcbiAgICAgICAgXCIxMjVcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNzVdLFxuICAgICAgICBcIjcxMFwiOiBbMCwgMC43NSwgMCwgMCwgMS40NDQ0NV0sXG4gICAgICAgIFwiNzMyXCI6IFswLCAwLjc1LCAwLCAwLCAxLjQ0NDQ1XSxcbiAgICAgICAgXCI3NzBcIjogWzAsIDAuNzUsIDAsIDAsIDEuNDQ0NDVdLFxuICAgICAgICBcIjc3MVwiOiBbMCwgMC43NSwgMCwgMCwgMS40NDQ0NV0sXG4gICAgICAgIFwiODczMFwiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMS4wXSxcbiAgICAgICAgXCI4OTY4XCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCI4OTY5XCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCI4OTcwXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCI4OTcxXCI6IFswLjk1MDAzLCAxLjQ1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCIxMDIxNlwiOiBbMC45NTAwMywgMS40NSwgMCwgMCwgMC43NV0sXG4gICAgICAgIFwiMTAyMTdcIjogWzAuOTUwMDMsIDEuNDUsIDAsIDAsIDAuNzVdXG4gICAgfSxcbiAgICBcIlNpemU0LVJlZ3VsYXJcIjoge1xuICAgICAgICBcIjQwXCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjc5MTY3XSxcbiAgICAgICAgXCI0MVwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC43OTE2N10sXG4gICAgICAgIFwiNDdcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDEuMjc3NzhdLFxuICAgICAgICBcIjkxXCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjU4MzM0XSxcbiAgICAgICAgXCI5MlwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMS4yNzc3OF0sXG4gICAgICAgIFwiOTNcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuNTgzMzRdLFxuICAgICAgICBcIjEyM1wiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC44MDU1Nl0sXG4gICAgICAgIFwiMTI1XCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjgwNTU2XSxcbiAgICAgICAgXCI3MTBcIjogWzAsIDAuODI1LCAwLCAwLCAxLjg4ODldLFxuICAgICAgICBcIjczMlwiOiBbMCwgMC44MjUsIDAsIDAsIDEuODg4OV0sXG4gICAgICAgIFwiNzcwXCI6IFswLCAwLjgyNSwgMCwgMCwgMS44ODg5XSxcbiAgICAgICAgXCI3NzFcIjogWzAsIDAuODI1LCAwLCAwLCAxLjg4ODldLFxuICAgICAgICBcIjg3MzBcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDEuMF0sXG4gICAgICAgIFwiODk2OFwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODk2OVwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODk3MFwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiODk3MVwiOiBbMS4yNTAwMywgMS43NSwgMCwgMCwgMC42Mzg4OV0sXG4gICAgICAgIFwiOTExNVwiOiBbMC42NDUwMiwgMS4xNTUsIDAsIDAsIDAuODc1XSxcbiAgICAgICAgXCI5MTE2XCI6IFsxZS0wNSwgMC42LCAwLCAwLCAwLjg3NV0sXG4gICAgICAgIFwiOTExN1wiOiBbMC42NDUwMiwgMS4xNTUsIDAsIDAsIDAuODc1XSxcbiAgICAgICAgXCI5MTE4XCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC44NzVdLFxuICAgICAgICBcIjkxMTlcIjogWzFlLTA1LCAwLjYsIDAsIDAsIDAuODc1XSxcbiAgICAgICAgXCI5MTIwXCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC44NzVdLFxuICAgICAgICBcIjkxMjFcIjogWzAuNjQ1MDIsIDEuMTU1LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MTIyXCI6IFstMC4wMDA5OSwgMC42MDEsIDAsIDAsIDAuNjY2NjddLFxuICAgICAgICBcIjkxMjNcIjogWzAuNjQ1MDIsIDEuMTU1LCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MTI0XCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiOTEyNVwiOiBbLTAuMDAwOTksIDAuNjAxLCAwLCAwLCAwLjY2NjY3XSxcbiAgICAgICAgXCI5MTI2XCI6IFswLjY0NTAyLCAxLjE1NSwgMCwgMCwgMC42NjY2N10sXG4gICAgICAgIFwiOTEyN1wiOiBbMWUtMDUsIDAuOSwgMCwgMCwgMC44ODg4OV0sXG4gICAgICAgIFwiOTEyOFwiOiBbMC42NTAwMiwgMS4xNSwgMCwgMCwgMC44ODg4OV0sXG4gICAgICAgIFwiOTEyOVwiOiBbMC45MDAwMSwgMCwgMCwgMCwgMC44ODg4OV0sXG4gICAgICAgIFwiOTEzMFwiOiBbMCwgMC4zLCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5MTMxXCI6IFsxZS0wNSwgMC45LCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5MTMyXCI6IFswLjY1MDAyLCAxLjE1LCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5MTMzXCI6IFswLjkwMDAxLCAwLCAwLCAwLCAwLjg4ODg5XSxcbiAgICAgICAgXCI5MTQzXCI6IFswLjg4NTAyLCAwLjkxNSwgMCwgMCwgMS4wNTU1Nl0sXG4gICAgICAgIFwiMTAyMTZcIjogWzEuMjUwMDMsIDEuNzUsIDAsIDAsIDAuODA1NTZdLFxuICAgICAgICBcIjEwMjE3XCI6IFsxLjI1MDAzLCAxLjc1LCAwLCAwLCAwLjgwNTU2XSxcbiAgICAgICAgXCI1NzM0NFwiOiBbLTAuMDA0OTksIDAuNjA1LCAwLCAwLCAxLjA1NTU2XSxcbiAgICAgICAgXCI1NzM0NVwiOiBbLTAuMDA0OTksIDAuNjA1LCAwLCAwLCAxLjA1NTU2XSxcbiAgICAgICAgXCI1NzY4MFwiOiBbMCwgMC4xMiwgMCwgMCwgMC40NV0sXG4gICAgICAgIFwiNTc2ODFcIjogWzAsIDAuMTIsIDAsIDAsIDAuNDVdLFxuICAgICAgICBcIjU3NjgyXCI6IFswLCAwLjEyLCAwLCAwLCAwLjQ1XSxcbiAgICAgICAgXCI1NzY4M1wiOiBbMCwgMC4xMiwgMCwgMCwgMC40NV1cbiAgICB9LFxuICAgIFwiVHlwZXdyaXRlci1SZWd1bGFyXCI6IHtcbiAgICAgICAgXCIzM1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjM0XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiMzVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIzNlwiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjM3XCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiMzhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIzOVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQwXCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNDFcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI0MlwiOiBbMCwgMC41MjA4MywgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQzXCI6IFstMC4wODA1NiwgMC41MzA1NSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQ0XCI6IFswLjEzODg5LCAwLjEyNSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQ1XCI6IFstMC4wODA1NiwgMC41MzA1NSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQ2XCI6IFswLCAwLjEyNSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjQ3XCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNDhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI0OVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjUwXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNTFcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI1MlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjUzXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNTRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI1NVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjU2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNTdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI1OFwiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjU5XCI6IFswLjEzODg5LCAwLjQzMDU2LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjBcIjogWy0wLjA1NTU2LCAwLjU1NTU2LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjFcIjogWy0wLjE5NTQ5LCAwLjQxNTYyLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjJcIjogWy0wLjA1NTU2LCAwLjU1NTU2LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjNcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI2NFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjY1XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI2N1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjY4XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNjlcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjcxXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNzJcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3M1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjc0XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNzVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3NlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjc3XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiNzhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3OVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjgwXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiODFcIjogWzAuMTM4ODksIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI4MlwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjgzXCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiODRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI4NVwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjg2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiODdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI4OFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjg5XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiOTBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MVwiOiBbMC4wODMzMywgMC42OTQ0NCwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjkyXCI6IFswLjA4MzMzLCAwLjY5NDQ0LCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiOTNcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5NFwiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjk1XCI6IFswLjA5NTE0LCAwLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiOTZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5N1wiOiBbMCwgMC40MzA1NiwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjk4XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiOTlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDJcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDNcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDZcIjogWzAuMjIyMjIsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMDlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTBcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTFcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTJcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTNcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTRcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTVcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTZcIjogWzAsIDAuNTUzNTgsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTdcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMThcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMTlcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjBcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjFcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjJcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjNcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjRcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjVcIjogWzAuMDgzMzMsIDAuNjk0NDQsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxMjdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIxNzZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCIzMDVcIjogWzAsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI1NjdcIjogWzAuMjIyMjIsIDAuNDMwNTYsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MTFcIjogWzAsIDAuNTY1OTcsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MTNcIjogWzAsIDAuNTY1NTUsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MTRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MTVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MjhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3MzBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3NzBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3NzFcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI3NzZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MTVcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MTZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MjBcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MjNcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MjZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MjhcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MzFcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MzNcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MzRcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MzZcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MzdcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI4MjE2XCI6IFswLCAwLjYxMTExLCAwLCAwLCAwLjUyNV0sXG4gICAgICAgIFwiODIxN1wiOiBbMCwgMC42MTExMSwgMCwgMCwgMC41MjVdLFxuICAgICAgICBcIjgyNDJcIjogWzAsIDAuNjExMTEsIDAsIDAsIDAuNTI1XSxcbiAgICAgICAgXCI5MjUxXCI6IFswLjExMTExLCAwLjIxOTQ0LCAwLCAwLCAwLjUyNV1cbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiA2MCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChpbW11dGFibGUpICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gc2l6aW5nR3JvdXA7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cblxuXG5cblxuXG5cblxuZnVuY3Rpb24gc2l6aW5nR3JvdXAodmFsdWUsIG9wdGlvbnMsIGJhc2VPcHRpb25zKSB7XG4gICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZEhUTUxfX1tcImFcIiAvKiBidWlsZEV4cHJlc3Npb24gKi9dKHZhbHVlLCBvcHRpb25zLCBmYWxzZSk7XG4gICAgdmFyIG11bHRpcGxpZXIgPSBvcHRpb25zLnNpemVNdWx0aXBsaWVyIC8gYmFzZU9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG5cbiAgICAvLyBBZGQgc2l6ZS1yZXNldHRpbmcgY2xhc3NlcyB0byB0aGUgaW5uZXIgbGlzdCBhbmQgc2V0IG1heEZvbnRTaXplXG4gICAgLy8gbWFudWFsbHkuIEhhbmRsZSBuZXN0ZWQgc2l6ZSBjaGFuZ2VzLlxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5uZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHBvcyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pbmRleE9mKGlubmVyW2ldLmNsYXNzZXMsIFwic2l6aW5nXCIpO1xuICAgICAgICBpZiAocG9zIDwgMCkge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaW5uZXJbaV0uY2xhc3Nlcywgb3B0aW9ucy5zaXppbmdDbGFzc2VzKGJhc2VPcHRpb25zKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaW5uZXJbaV0uY2xhc3Nlc1twb3MgKyAxXSA9PT0gXCJyZXNldC1zaXplXCIgKyBvcHRpb25zLnNpemUpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBuZXN0ZWQgc2l6ZSBjaGFuZ2U6IGUuZy4sIGlubmVyW2ldIGlzIHRoZSBcImJcIiBpblxuICAgICAgICAgICAgLy8gYFxcSHVnZSBhIFxcc21hbGwgYmAuIE92ZXJyaWRlIHRoZSBvbGQgc2l6ZSAodGhlIGByZXNldC1gIGNsYXNzKVxuICAgICAgICAgICAgLy8gYnV0IG5vdCB0aGUgbmV3IHNpemUuXG4gICAgICAgICAgICBpbm5lcltpXS5jbGFzc2VzW3BvcyArIDFdID0gXCJyZXNldC1zaXplXCIgKyBiYXNlT3B0aW9ucy5zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5uZXJbaV0uaGVpZ2h0ICo9IG11bHRpcGxpZXI7XG4gICAgICAgIGlubmVyW2ldLmRlcHRoICo9IG11bHRpcGxpZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlRnJhZ21lbnQoaW5uZXIpO1xufVxuXG52YXIgc2l6ZUZ1bmNzID0gW1wiXFxcXHRpbnlcIiwgXCJcXFxcc2l4cHRzaXplXCIsIFwiXFxcXHNjcmlwdHNpemVcIiwgXCJcXFxcZm9vdG5vdGVzaXplXCIsIFwiXFxcXHNtYWxsXCIsIFwiXFxcXG5vcm1hbHNpemVcIiwgXCJcXFxcbGFyZ2VcIiwgXCJcXFxcTGFyZ2VcIiwgXCJcXFxcTEFSR0VcIiwgXCJcXFxcaHVnZVwiLCBcIlxcXFxIdWdlXCJdO1xuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJzaXppbmdcIixcbiAgICBuYW1lczogc2l6ZUZ1bmNzLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDAsXG4gICAgICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYnJlYWtPblRva2VuVGV4dCA9IGNvbnRleHQuYnJlYWtPblRva2VuVGV4dCxcbiAgICAgICAgICAgIGZ1bmNOYW1lID0gY29udGV4dC5mdW5jTmFtZSxcbiAgICAgICAgICAgIHBhcnNlciA9IGNvbnRleHQucGFyc2VyO1xuXG5cbiAgICAgICAgcGFyc2VyLmNvbnN1bWVTcGFjZXMoKTtcbiAgICAgICAgdmFyIGJvZHkgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKGZhbHNlLCBicmVha09uVG9rZW5UZXh0KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJzaXppbmdcIixcbiAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hhdCBzaXplIHRvIHVzZSBiYXNlZCBvbiB0aGUgbGlzdCBvZiBmdW5jdGlvbnMgYWJvdmVcbiAgICAgICAgICAgIHNpemU6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pbmRleE9mKHNpemVGdW5jcywgZnVuY05hbWUpICsgMSxcbiAgICAgICAgICAgIHZhbHVlOiBib2R5XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gSGFuZGxlIHNpemluZyBvcGVyYXRvcnMgbGlrZSBcXEh1Z2UuIFJlYWwgVGVYIGRvZXNuJ3QgYWN0dWFsbHkgYWxsb3dcbiAgICAgICAgLy8gdGhlc2UgZnVuY3Rpb25zIGluc2lkZSBvZiBtYXRoIGV4cHJlc3Npb25zLCBzbyB3ZSBkbyBzb21lIHNwZWNpYWxcbiAgICAgICAgLy8gaGFuZGxpbmcuXG4gICAgICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTaXplKGdyb3VwLnZhbHVlLnNpemUpO1xuICAgICAgICByZXR1cm4gc2l6aW5nR3JvdXAoZ3JvdXAudmFsdWUudmFsdWUsIG5ld09wdGlvbnMsIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU2l6ZShncm91cC52YWx1ZS5zaXplKTtcbiAgICAgICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG5ld09wdGlvbnMpO1xuXG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXN0eWxlXCIsIGlubmVyKTtcblxuICAgICAgICAvLyBUT0RPKGVtaWx5KTogVGhpcyBkb2Vzbid0IHByb2R1Y2UgdGhlIGNvcnJlY3Qgc2l6ZSBmb3IgbmVzdGVkIHNpemVcbiAgICAgICAgLy8gY2hhbmdlcywgYmVjYXVzZSB3ZSBkb24ndCBrZWVwIHN0YXRlIG9mIHdoYXQgc3R5bGUgd2UncmUgY3VycmVudGx5XG4gICAgICAgIC8vIGluLCBzbyB3ZSBjYW4ndCByZXNldCB0aGUgc2l6ZSB0byBub3JtYWwgYmVmb3JlIGNoYW5naW5nIGl0LiAgTm93XG4gICAgICAgIC8vIHRoYXQgd2UncmUgcGFzc2luZyBhbiBvcHRpb25zIHBhcmFtZXRlciB3ZSBzaG91bGQgYmUgYWJsZSB0byBmaXhcbiAgICAgICAgLy8gdGhpcy5cbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJtYXRoc2l6ZVwiLCBuZXdPcHRpb25zLnNpemVNdWx0aXBsaWVyICsgXCJlbVwiKTtcblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiA2MSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJhXCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gX2Vudmlyb25tZW50czsgfSk7XG4vKiBoYXJtb255IGV4cG9ydCAoaW1tdXRhYmxlKSAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYlwiXSA9IGRlZmluZUVudmlyb25tZW50O1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19PcHRpb25zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlTm9kZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNCk7XG5cblxuXG5cblxuXG4vKipcbiAqIFRoZSBjb250ZXh0IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqICAtIG1vZGU6IGN1cnJlbnQgcGFyc2luZyBtb2RlLlxuICogIC0gZW52TmFtZTogdGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50LCBvbmUgb2YgdGhlIGxpc3RlZCBuYW1lcy5cbiAqICAtIHBhcnNlcjogdGhlIHBhcnNlciBvYmplY3QuXG4gKi9cblxuXG4vKipcbiAqICAtIGNvbnRleHQ6IGluZm9ybWF0aW9uIGFuZCByZWZlcmVuY2VzIHByb3ZpZGVkIGJ5IHRoZSBwYXJzZXJcbiAqICAtIGFyZ3M6IGFuIGFycmF5IG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gXFxiZWdpbntuYW1lfVxuICogIC0gb3B0QXJnczogYW4gYXJyYXkgb2Ygb3B0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBcXGJlZ2lue25hbWV9XG4gKi9cblxuXG4vKipcbiAqICAtIG51bUFyZ3M6IChkZWZhdWx0IDApIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGFmdGVyIHRoZSBcXGJlZ2lue25hbWV9IGZ1bmN0aW9uLlxuICogIC0gYXJnVHlwZXM6IChvcHRpb25hbCkgSnVzdCBsaWtlIGZvciBhIGZ1bmN0aW9uXG4gKiAgLSBhbGxvd2VkSW5UZXh0OiAoZGVmYXVsdCBmYWxzZSkgV2hldGhlciBvciBub3QgdGhlIGVudmlyb25tZW50IGlzIGFsbG93ZWRcbiAqICAgICAgICAgICAgICAgICAgIGluc2lkZSB0ZXh0IG1vZGUgKG5vdCBlbmZvcmNlZCB5ZXQpLlxuICogIC0gbnVtT3B0aW9uYWxBcmdzOiAoZGVmYXVsdCAwKSBKdXN0IGxpa2UgZm9yIGEgZnVuY3Rpb25cbiAqL1xuXG5cbi8qKlxuICogRmluYWwgZW52aW9ybm1lbnQgc3BlYyBmb3IgdXNlIGF0IHBhcnNlIHRpbWUuXG4gKiBUaGlzIGlzIGFsbW9zdCBpZGVudGljYWwgdG8gYEVudkRlZlNwZWNgLCBleGNlcHQgaXRcbiAqIDEuIGluY2x1ZGVzIHRoZSBmdW5jdGlvbiBoYW5kbGVyXG4gKiAyLiByZXF1aXJlcyBhbGwgYXJndW1lbnRzIGV4Y2VwdCBhcmdUeXBlXG4gKiBJdCBpcyBnZW5lcmF0ZWQgYnkgYGRlZmluZUVudmlyb25tZW50KClgIGJlbG93LlxuICovXG5cblxuLyoqXG4gKiBBbGwgcmVnaXN0ZXJlZCBlbnZpcm9ubWVudHMuXG4gKiBgZW52aXJvbm1lbnRzLmpzYCBleHBvcnRzIHRoaXMgc2FtZSBkaWN0aW9uYXJ5IGFnYWluIGFuZCBtYWtlcyBpdCBwdWJsaWMuXG4gKiBgUGFyc2VyLmpzYCByZXF1aXJlcyB0aGlzIGRpY3Rpb25hcnkgdmlhIGBlbnZpcm9ubWVudHMuanNgLlxuICovXG52YXIgX2Vudmlyb25tZW50cyA9IHt9O1xuXG5mdW5jdGlvbiBkZWZpbmVFbnZpcm9ubWVudChfcmVmKSB7XG4gICAgdmFyIHR5cGUgPSBfcmVmLnR5cGUsXG4gICAgICAgIG5hbWVzID0gX3JlZi5uYW1lcyxcbiAgICAgICAgcHJvcHMgPSBfcmVmLnByb3BzLFxuICAgICAgICBoYW5kbGVyID0gX3JlZi5oYW5kbGVyLFxuICAgICAgICBodG1sQnVpbGRlciA9IF9yZWYuaHRtbEJ1aWxkZXIsXG4gICAgICAgIG1hdGhtbEJ1aWxkZXIgPSBfcmVmLm1hdGhtbEJ1aWxkZXI7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWx1ZXMgb2YgZW52aXJvbm1lbnRzXG4gICAgdmFyIGRhdGEgPSB7XG4gICAgICAgIG51bUFyZ3M6IHByb3BzLm51bUFyZ3MgfHwgMCxcbiAgICAgICAgZ3JlZWRpbmVzczogMSxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogZmFsc2UsXG4gICAgICAgIG51bU9wdGlvbmFsQXJnczogMCxcbiAgICAgICAgaGFuZGxlcjogaGFuZGxlclxuICAgIH07XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBfZW52aXJvbm1lbnRzW25hbWVzW2ldXSA9IGRhdGE7XG4gICAgfVxuICAgIGlmIChodG1sQnVpbGRlcikge1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkSFRNTF9fW1wiZFwiIC8qIGdyb3VwVHlwZXMgKi9dW3R5cGVdID0gaHRtbEJ1aWxkZXI7XG4gICAgfVxuICAgIGlmIChtYXRobWxCdWlsZGVyKSB7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRNYXRoTUxfX1tcImRcIiAvKiBncm91cFR5cGVzICovXVt0eXBlXSA9IG1hdGhtbEJ1aWxkZXI7XG4gICAgfVxufVxuXG4vKioqLyB9KSxcbi8qIDYyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImFcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzRW5kUmVnZXg7IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImJcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBjb250cm9sV29yZFJlZ2V4OyB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfbWF0Y2hfYXRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfbWF0Y2hfYXRfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9tYXRjaF9hdF9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19Tb3VyY2VMb2NhdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19Ub2tlbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cblxuXG4vKipcbiAqIFRoZSBMZXhlciBjbGFzcyBoYW5kbGVzIHRva2VuaXppbmcgdGhlIGlucHV0IGluIHZhcmlvdXMgd2F5cy4gU2luY2Ugb3VyXG4gKiBwYXJzZXIgZXhwZWN0cyB1cyB0byBiZSBhYmxlIHRvIGJhY2t0cmFjaywgdGhlIGxleGVyIGFsbG93cyBsZXhpbmcgZnJvbSBhbnlcbiAqIGdpdmVuIHN0YXJ0aW5nIHBvaW50LlxuICpcbiAqIEl0cyBtYWluIGV4cG9zZWQgZnVuY3Rpb24gaXMgdGhlIGBsZXhgIGZ1bmN0aW9uLCB3aGljaCB0YWtlcyBhIHBvc2l0aW9uIHRvXG4gKiBsZXggZnJvbSBhbmQgYSB0eXBlIG9mIHRva2VuIHRvIGxleC4gSXQgZGVmZXJzIHRvIHRoZSBhcHByb3ByaWF0ZSBgX2lubmVyTGV4YFxuICogZnVuY3Rpb24uXG4gKlxuICogVGhlIHZhcmlvdXMgYF9pbm5lckxleGAgZnVuY3Rpb25zIHBlcmZvcm0gdGhlIGFjdHVhbCBsZXhpbmcgb2YgZGlmZmVyZW50XG4gKiBraW5kcy5cbiAqL1xuXG5cblxuXG5cblxuLyogVGhlIGZvbGxvd2luZyB0b2tlblJlZ2V4XG4gKiAtIG1hdGNoZXMgdHlwaWNhbCB3aGl0ZXNwYWNlIChidXQgbm90IE5CU1AgZXRjLikgdXNpbmcgaXRzIGZpcnN0IGdyb3VwXG4gKiAtIG1hdGNoZXMgY29tbWVudHMgKG11c3QgaGF2ZSB0cmFpbGluZyBuZXdsaW5lcylcbiAqIC0gZG9lcyBub3QgbWF0Y2ggYW55IGNvbnRyb2wgY2hhcmFjdGVyIFxceDAwLVxceDFmIGV4Y2VwdCB3aGl0ZXNwYWNlXG4gKiAtIGRvZXMgbm90IG1hdGNoIGEgYmFyZSBiYWNrc2xhc2hcbiAqIC0gbWF0Y2hlcyBhbnkgQVNDSUkgY2hhcmFjdGVyIGV4Y2VwdCB0aG9zZSBqdXN0IG1lbnRpb25lZFxuICogLSBkb2VzIG5vdCBtYXRjaCB0aGUgQk1QIHByaXZhdGUgdXNlIGFyZWEgXFx1RTAwMC1cXHVGOEZGXG4gKiAtIGRvZXMgbm90IG1hdGNoIGJhcmUgc3Vycm9nYXRlIGNvZGUgdW5pdHNcbiAqIC0gbWF0Y2hlcyBhbnkgQk1QIGNoYXJhY3RlciBleGNlcHQgZm9yIHRob3NlIGp1c3QgZGVzY3JpYmVkXG4gKiAtIG1hdGNoZXMgYW55IHZhbGlkIFVuaWNvZGUgc3Vycm9nYXRlIHBhaXJcbiAqIC0gbWF0Y2hlcyBhIGJhY2tzbGFzaCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBsZXR0ZXJzXG4gKiAtIG1hdGNoZXMgYSBiYWNrc2xhc2ggZm9sbG93ZWQgYnkgYW55IEJNUCBjaGFyYWN0ZXIsIGluY2x1ZGluZyBuZXdsaW5lXG4gKiBKdXN0IGJlY2F1c2UgdGhlIExleGVyIG1hdGNoZXMgc29tZXRoaW5nIGRvZXNuJ3QgbWVhbiBpdCdzIHZhbGlkIGlucHV0OlxuICogSWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgZnVuY3Rpb24gb3Igc3ltYm9sIGRlZmluaXRpb24sIHRoZSBQYXJzZXIgd2lsbFxuICogc3RpbGwgcmVqZWN0IHRoZSBpbnB1dC5cbiAqL1xudmFyIGNvbW1lbnRSZWdleFN0cmluZyA9IFwiJVteXFxuXSpbXFxuXVwiO1xudmFyIGNvbnRyb2xXb3JkUmVnZXhTdHJpbmcgPSBcIlxcXFxcXFxcW2EtekEtWkBdK1wiO1xudmFyIGNvbnRyb2xTeW1ib2xSZWdleFN0cmluZyA9IFwiXFxcXFxcXFxbXlxcdUQ4MDAtXFx1REZGRl1cIjtcbnZhciBjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgPSBcIltcXHUwMzAwLVxcdTAzNkZdXCI7XG52YXIgY29tYmluaW5nRGlhY3JpdGljYWxNYXJrc0VuZFJlZ2V4ID0gbmV3IFJlZ0V4cChjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgKyBcIiskXCIpO1xudmFyIHRva2VuUmVnZXggPSBuZXcgUmVnRXhwKFwiKFsgXFxyXFxuXFx0XSspfFwiICsgKCAvLyB3aGl0ZXNwYWNlXG5cIihcIiArIGNvbW1lbnRSZWdleFN0cmluZykgKyAvLyBjb21tZW50c1xuXCJ8WyEtXFxcXFtcXFxcXS1cXHUyMDI3XFx1MjAyQS1cXHVEN0ZGXFx1RjkwMC1cXHVGRkZGXVwiICsgKCAvLyBzaW5nbGUgY29kZXBvaW50XG5jb21iaW5pbmdEaWFjcml0aWNhbE1hcmtTdHJpbmcgKyBcIipcIikgKyAvLyAuLi5wbHVzIGFjY2VudHNcblwifFtcXHVEODAwLVxcdURCRkZdW1xcdURDMDAtXFx1REZGRl1cIiArICggLy8gc3Vycm9nYXRlIHBhaXJcbmNvbWJpbmluZ0RpYWNyaXRpY2FsTWFya1N0cmluZyArIFwiKlwiKSArIC8vIC4uLnBsdXMgYWNjZW50c1xuXCJ8XFxcXFxcXFx2ZXJiXFxcXCooW15dKS4qP1xcXFwzXCIgKyAvLyBcXHZlcmIqXG5cInxcXFxcXFxcXHZlcmIoW14qYS16QS1aXSkuKj9cXFxcNFwiICsgKCAvLyBcXHZlcmIgdW5zdGFycmVkXG5cInxcIiArIGNvbnRyb2xXb3JkUmVnZXhTdHJpbmcpICsgKCAvLyBcXG1hY3JvTmFtZVxuXCJ8XCIgKyBjb250cm9sU3ltYm9sUmVnZXhTdHJpbmcpICsgLy8gXFxcXCwgXFwnLCBldGMuXG5cIilcIik7XG5cbi8vIHRva2VuUmVnZXggaGFzIG5vIF4gbWFya2VyLCBhcyByZXF1aXJlZCBieSBtYXRjaEF0LlxuLy8gVGhlc2UgcmVnZXhzIGFyZSBmb3IgbWF0Y2hpbmcgcmVzdWx0cyBmcm9tIHRva2VuUmVnZXgsXG4vLyBzbyB0aGV5IGRvIGhhdmUgXiBtYXJrZXJzLlxudmFyIGNvbnRyb2xXb3JkUmVnZXggPSBuZXcgUmVnRXhwKFwiXlwiICsgY29udHJvbFdvcmRSZWdleFN0cmluZyk7XG52YXIgY29tbWVudFJlZ2V4ID0gbmV3IFJlZ0V4cChcIl5cIiArIGNvbW1lbnRSZWdleFN0cmluZyk7XG5cbi8qKiBNYWluIExleGVyIGNsYXNzICovXG5cbnZhciBMZXhlciA9IGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBMZXhlcihpbnB1dCkge1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCgpKHRoaXMsIExleGVyKTtcblxuICAgICAgICAvLyBTZXBhcmF0ZSBhY2NlbnRzIGZyb20gY2hhcmFjdGVyc1xuICAgICAgICB0aGlzLmlucHV0ID0gaW5wdXQ7XG4gICAgICAgIHRoaXMucG9zID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGxleGVzIGEgc2luZ2xlIHRva2VuLlxuICAgICAqL1xuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKExleGVyLCBbe1xuICAgICAgICBrZXk6IFwibGV4XCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBsZXgoKSB7XG4gICAgICAgICAgICB2YXIgaW5wdXQgPSB0aGlzLmlucHV0O1xuICAgICAgICAgICAgdmFyIHBvcyA9IHRoaXMucG9zO1xuICAgICAgICAgICAgaWYgKHBvcyA9PT0gaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1Rva2VuX19bXCJhXCIgLyogVG9rZW4gKi9dKFwiRU9GXCIsIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1NvdXJjZUxvY2F0aW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10odGhpcywgcG9zLCBwb3MpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBtYXRjaCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9tYXRjaF9hdF9fX2RlZmF1bHQoKSh0b2tlblJlZ2V4LCBpbnB1dCwgcG9zKTtcbiAgICAgICAgICAgIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIlVuZXhwZWN0ZWQgY2hhcmFjdGVyOiAnXCIgKyBpbnB1dFtwb3NdICsgXCInXCIsIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1Rva2VuX19bXCJhXCIgLyogVG9rZW4gKi9dKGlucHV0W3Bvc10sIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1NvdXJjZUxvY2F0aW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10odGhpcywgcG9zLCBwb3MgKyAxKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHRleHQgPSBtYXRjaFsyXSB8fCBcIiBcIjtcbiAgICAgICAgICAgIHZhciBzdGFydCA9IHRoaXMucG9zO1xuICAgICAgICAgICAgdGhpcy5wb3MgKz0gbWF0Y2hbMF0ubGVuZ3RoO1xuICAgICAgICAgICAgdmFyIGVuZCA9IHRoaXMucG9zO1xuXG4gICAgICAgICAgICBpZiAoY29tbWVudFJlZ2V4LnRlc3QodGV4dCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1Rva2VuX19bXCJhXCIgLyogVG9rZW4gKi9dKHRleHQsIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1NvdXJjZUxvY2F0aW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10odGhpcywgc3RhcnQsIGVuZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIExleGVyO1xufSgpO1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJjXCJdID0gKExleGVyKTtcblxuLyoqKi8gfSksXG4vKiA2MyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfZXhwb3J0c19fLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3NyY19rYXRleF9sZXNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3NyY19rYXRleF9sZXNzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3NyY19rYXRleF9sZXNzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fa2F0ZXhfanNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNjUpO1xuLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWJwYWNrIGVudHJ5IHBvaW50IGZvciBLYVRlWC4gQXMgZmxvd1sxXSBhbmQgamVzdFsyXSBkb2Vzbid0IHN1cHBvcnRcbiAqIENTUyBtb2R1bGVzIG5hdGl2ZWx5LCBhIHNlcGFyYXRlIGVudHJ5IHBvaW50IGlzIHVzZWQgYW5kIGl0IGlzIG5vdCBmbG93dHlwZWQuXG4gKlxuICogWzFdIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2xhbWJkYWhhbmRzL2QxOWUwZGE5NjI4NWI3NDlmMGVmXG4gKiBbMl0gaHR0cHM6Ly9mYWNlYm9vay5naXRodWIuaW8vamVzdC9kb2NzL2VuL3dlYnBhY2suaHRtbFxuICovXG5cblxuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJkZWZhdWx0XCJdID0gKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fa2F0ZXhfanNfX1tcImFcIiAvKiBkZWZhdWx0ICovXSk7XG5cbi8qKiovIH0pLFxuLyogNjQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW5cblxuLyoqKi8gfSksXG4vKiA2NSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3NyY19QYXJzZUVycm9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fc3JjX1NldHRpbmdzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX3NyY19idWlsZFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNzYpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fc3JjX3BhcnNlVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3JjX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuXG4vKiBlc2xpbnQgbm8tY29uc29sZTowICovXG4vKipcbiAqIFRoaXMgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIEthVGVYLiBIZXJlLCB3ZSBleHBvc2UgZnVuY3Rpb25zIGZvclxuICogcmVuZGVyaW5nIGV4cHJlc3Npb25zIGVpdGhlciB0byBET00gbm9kZXMgb3IgdG8gbWFya3VwIHN0cmluZ3MuXG4gKlxuICogV2UgYWxzbyBleHBvc2UgdGhlIFBhcnNlRXJyb3IgY2xhc3MgdG8gY2hlY2sgaWYgZXJyb3JzIHRocm93biBmcm9tIEthVGVYIGFyZVxuICogZXJyb3JzIGluIHRoZSBleHByZXNzaW9uLCBvciBlcnJvcnMgaW4gamF2YXNjcmlwdCBoYW5kbGluZy5cbiAqL1xuXG5cblxuXG5cblxuXG5cbi8qKlxuICogUGFyc2UgYW5kIGJ1aWxkIGFuIGV4cHJlc3Npb24sIGFuZCBwbGFjZSB0aGF0IGV4cHJlc3Npb24gaW4gdGhlIERPTSBub2RlXG4gKiBnaXZlbi5cbiAqL1xudmFyIHJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihleHByZXNzaW9uLCBiYXNlTm9kZSwgb3B0aW9ucykge1xuICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3JjX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uY2xlYXJOb2RlKGJhc2VOb2RlKTtcbiAgICB2YXIgbm9kZSA9IHJlbmRlclRvRG9tVHJlZShleHByZXNzaW9uLCBvcHRpb25zKS50b05vZGUoKTtcbiAgICBiYXNlTm9kZS5hcHBlbmRDaGlsZChub2RlKTtcbn07XG5cbi8vIEthVGVYJ3Mgc3R5bGVzIGRvbid0IHdvcmsgcHJvcGVybHkgaW4gcXVpcmtzIG1vZGUuIFByaW50IG91dCBhbiBlcnJvciwgYW5kXG4vLyBkaXNhYmxlIHJlbmRlcmluZy5cbmlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBpZiAoZG9jdW1lbnQuY29tcGF0TW9kZSAhPT0gXCJDU1MxQ29tcGF0XCIpIHtcbiAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09IFwidW5kZWZpbmVkXCIgJiYgY29uc29sZS53YXJuKFwiV2FybmluZzogS2FUZVggZG9lc24ndCB3b3JrIGluIHF1aXJrcyBtb2RlLiBNYWtlIHN1cmUgeW91ciBcIiArIFwid2Vic2l0ZSBoYXMgYSBzdWl0YWJsZSBkb2N0eXBlLlwiKTtcblxuICAgICAgICByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19zcmNfUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiS2FUZVggZG9lc24ndCB3b3JrIGluIHF1aXJrcyBtb2RlLlwiKTtcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogUGFyc2UgYW5kIGJ1aWxkIGFuIGV4cHJlc3Npb24sIGFuZCByZXR1cm4gdGhlIG1hcmt1cCBmb3IgdGhhdC5cbiAqL1xudmFyIHJlbmRlclRvU3RyaW5nID0gZnVuY3Rpb24gcmVuZGVyVG9TdHJpbmcoZXhwcmVzc2lvbiwgb3B0aW9ucykge1xuICAgIHZhciBtYXJrdXAgPSByZW5kZXJUb0RvbVRyZWUoZXhwcmVzc2lvbiwgb3B0aW9ucykudG9NYXJrdXAoKTtcbiAgICByZXR1cm4gbWFya3VwO1xufTtcblxuLyoqXG4gKiBQYXJzZSBhbiBleHByZXNzaW9uIGFuZCByZXR1cm4gdGhlIHBhcnNlIHRyZWUuXG4gKi9cbnZhciBnZW5lcmF0ZVBhcnNlVHJlZSA9IGZ1bmN0aW9uIGdlbmVyYXRlUGFyc2VUcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpIHtcbiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zcmNfU2V0dGluZ3NfX1tcImFcIiAvKiBkZWZhdWx0ICovXShvcHRpb25zKTtcbiAgICByZXR1cm4gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fc3JjX3BhcnNlVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKShleHByZXNzaW9uLCBzZXR0aW5ncyk7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhbmQgcmV0dXJucyB0aGUga2F0ZXggYnVpbGQgdHJlZS4gVGhpcyBpcyB1c2VkIGZvciBhZHZhbmNlZFxuICogdXNlIGNhc2VzIChsaWtlIHJlbmRlcmluZyB0byBjdXN0b20gb3V0cHV0KS5cbiAqL1xudmFyIHJlbmRlclRvRG9tVHJlZSA9IGZ1bmN0aW9uIHJlbmRlclRvRG9tVHJlZShleHByZXNzaW9uLCBvcHRpb25zKSB7XG4gICAgdmFyIHNldHRpbmdzID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fc3JjX1NldHRpbmdzX19bXCJhXCIgLyogZGVmYXVsdCAqL10ob3B0aW9ucyk7XG4gICAgdmFyIHRyZWUgPSBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19zcmNfcGFyc2VUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10pKGV4cHJlc3Npb24sIHNldHRpbmdzKTtcbiAgICByZXR1cm4gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fc3JjX2J1aWxkVHJlZV9fW1wiYlwiIC8qIGJ1aWxkVHJlZSAqL10pKHRyZWUsIGV4cHJlc3Npb24sIHNldHRpbmdzKTtcbn07XG5cbi8qKlxuICogR2VuZXJhdGVzIGFuZCByZXR1cm5zIHRoZSBrYXRleCBidWlsZCB0cmVlLCB3aXRoIGp1c3QgSFRNTCAobm8gTWF0aE1MKS5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzIChsaWtlIHJlbmRlcmluZyB0byBjdXN0b20gb3V0cHV0KS5cbiAqL1xudmFyIHJlbmRlclRvSFRNTFRyZWUgPSBmdW5jdGlvbiByZW5kZXJUb0hUTUxUcmVlKGV4cHJlc3Npb24sIG9wdGlvbnMpIHtcbiAgICB2YXIgc2V0dGluZ3MgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zcmNfU2V0dGluZ3NfX1tcImFcIiAvKiBkZWZhdWx0ICovXShvcHRpb25zKTtcbiAgICB2YXIgdHJlZSA9IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3NyY19wYXJzZVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXSkoZXhwcmVzc2lvbiwgc2V0dGluZ3MpO1xuICAgIHJldHVybiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19zcmNfYnVpbGRUcmVlX19bXCJhXCIgLyogYnVpbGRIVE1MVHJlZSAqL10pKHRyZWUsIGV4cHJlc3Npb24sIHNldHRpbmdzKTtcbn07XG5cbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoe1xuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIGdpdmVuIExhVGVYIGludG8gYW4gSFRNTCtNYXRoTUwgY29tYmluYXRpb24sIGFuZCBhZGRzXG4gICAgICogaXQgYXMgYSBjaGlsZCB0byB0aGUgc3BlY2lmaWVkIERPTSBub2RlLlxuICAgICAqL1xuICAgIHJlbmRlcjogcmVuZGVyLFxuICAgIC8qKlxuICAgICAqIFJlbmRlcnMgdGhlIGdpdmVuIExhVGVYIGludG8gYW4gSFRNTCtNYXRoTUwgY29tYmluYXRpb24gc3RyaW5nLFxuICAgICAqIGZvciBzZW5kaW5nIHRvIHRoZSBjbGllbnQuXG4gICAgICovXG4gICAgcmVuZGVyVG9TdHJpbmc6IHJlbmRlclRvU3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEthVGVYIGVycm9yLCB1c3VhbGx5IGR1cmluZyBwYXJzaW5nLlxuICAgICAqL1xuICAgIFBhcnNlRXJyb3I6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fc3JjX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXSxcbiAgICAvKipcbiAgICAgKiBQYXJzZXMgdGhlIGdpdmVuIExhVGVYIGludG8gS2FUZVgncyBpbnRlcm5hbCBwYXJzZSB0cmVlIHN0cnVjdHVyZSxcbiAgICAgKiB3aXRob3V0IHJlbmRlcmluZyB0byBIVE1MIG9yIE1hdGhNTC5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoaXMgbWV0aG9kIGlzIG5vdCBjdXJyZW50bHkgcmVjb21tZW5kZWQgZm9yIHB1YmxpYyB1c2UuXG4gICAgICogVGhlIGludGVybmFsIHRyZWUgcmVwcmVzZW50YXRpb24gaXMgdW5zdGFibGUgYW5kIGlzIHZlcnkgbGlrZWx5XG4gICAgICogdG8gY2hhbmdlLiBVc2UgYXQgeW91ciBvd24gcmlzay5cbiAgICAgKi9cbiAgICBfX3BhcnNlOiBnZW5lcmF0ZVBhcnNlVHJlZSxcbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIHRoZSBnaXZlbiBMYVRlWCBpbnRvIGFuIEhUTUwrTWF0aE1MIGludGVybmFsIERPTSB0cmVlXG4gICAgICogcmVwcmVzZW50YXRpb24sIHdpdGhvdXQgZmxhdHRlbmluZyB0aGF0IHJlcHJlc2VudGF0aW9uIHRvIGEgc3RyaW5nLlxuICAgICAqXG4gICAgICogTk9URTogVGhpcyBtZXRob2QgaXMgbm90IGN1cnJlbnRseSByZWNvbW1lbmRlZCBmb3IgcHVibGljIHVzZS5cbiAgICAgKiBUaGUgaW50ZXJuYWwgdHJlZSByZXByZXNlbnRhdGlvbiBpcyB1bnN0YWJsZSBhbmQgaXMgdmVyeSBsaWtlbHlcbiAgICAgKiB0byBjaGFuZ2UuIFVzZSBhdCB5b3VyIG93biByaXNrLlxuICAgICAqL1xuICAgIF9fcmVuZGVyVG9Eb21UcmVlOiByZW5kZXJUb0RvbVRyZWUsXG4gICAgLyoqXG4gICAgICogUmVuZGVycyB0aGUgZ2l2ZW4gTGFUZVggaW50byBhbiBIVE1MIGludGVybmFsIERPTSB0cmVlIHJlcHJlc2VudGF0aW9uLFxuICAgICAqIHdpdGhvdXQgTWF0aE1MIGFuZCB3aXRob3V0IGZsYXR0ZW5pbmcgdGhhdCByZXByZXNlbnRhdGlvbiB0byBhIHN0cmluZy5cbiAgICAgKlxuICAgICAqIE5PVEU6IFRoaXMgbWV0aG9kIGlzIG5vdCBjdXJyZW50bHkgcmVjb21tZW5kZWQgZm9yIHB1YmxpYyB1c2UuXG4gICAgICogVGhlIGludGVybmFsIHRyZWUgcmVwcmVzZW50YXRpb24gaXMgdW5zdGFibGUgYW5kIGlzIHZlcnkgbGlrZWx5XG4gICAgICogdG8gY2hhbmdlLiBVc2UgYXQgeW91ciBvd24gcmlzay5cbiAgICAgKi9cbiAgICBfX3JlbmRlclRvSFRNTFRyZWU6IHJlbmRlclRvSFRNTFRyZWVcbn0pO1xuXG4vKioqLyB9KSxcbi8qIDY2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogX193ZWJwYWNrX3JlcXVpcmVfXyg2NyksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuLyoqKi8gfSksXG4vKiA2NyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5fX3dlYnBhY2tfcmVxdWlyZV9fKDY4KTtcbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KS5PYmplY3QuZnJlZXplO1xuXG4vKioqLyB9KSxcbi8qIDY4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIDE5LjEuMi41IE9iamVjdC5mcmVlemUoTylcbnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjApXG4gICwgbWV0YSAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY5KS5vbkZyZWV6ZTtcblxuX193ZWJwYWNrX3JlcXVpcmVfXyg0NikoJ2ZyZWV6ZScsIGZ1bmN0aW9uKCRmcmVlemUpe1xuICByZXR1cm4gZnVuY3Rpb24gZnJlZXplKGl0KXtcbiAgICByZXR1cm4gJGZyZWV6ZSAmJiBpc09iamVjdChpdCkgPyAkZnJlZXplKG1ldGEoaXQpKSA6IGl0O1xuICB9O1xufSk7XG5cbi8qKiovIH0pLFxuLyogNjkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIE1FVEEgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMikoJ21ldGEnKVxuICAsIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMClcbiAgLCBoYXMgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpXG4gICwgc2V0RGVzYyAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KS5mXG4gICwgaWQgICAgICAgPSAwO1xudmFyIGlzRXh0ZW5zaWJsZSA9IE9iamVjdC5pc0V4dGVuc2libGUgfHwgZnVuY3Rpb24oKXtcbiAgcmV0dXJuIHRydWU7XG59O1xudmFyIEZSRUVaRSA9ICFfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KShmdW5jdGlvbigpe1xuICByZXR1cm4gaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpO1xufSk7XG52YXIgc2V0TWV0YSA9IGZ1bmN0aW9uKGl0KXtcbiAgc2V0RGVzYyhpdCwgTUVUQSwge3ZhbHVlOiB7XG4gICAgaTogJ08nICsgKytpZCwgLy8gb2JqZWN0IElEXG4gICAgdzoge30gICAgICAgICAgLy8gd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfX0pO1xufTtcbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24oaXQsIGNyZWF0ZSl7XG4gIC8vIHJldHVybiBwcmltaXRpdmUgd2l0aCBwcmVmaXhcbiAgaWYoIWlzT2JqZWN0KGl0KSlyZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnID8gaXQgOiAodHlwZW9mIGl0ID09ICdzdHJpbmcnID8gJ1MnIDogJ1AnKSArIGl0O1xuICBpZighaGFzKGl0LCBNRVRBKSl7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZighaXNFeHRlbnNpYmxlKGl0KSlyZXR1cm4gJ0YnO1xuICAgIC8vIG5vdCBuZWNlc3NhcnkgdG8gYWRkIG1ldGFkYXRhXG4gICAgaWYoIWNyZWF0ZSlyZXR1cm4gJ0UnO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBvYmplY3QgSURcbiAgfSByZXR1cm4gaXRbTUVUQV0uaTtcbn07XG52YXIgZ2V0V2VhayA9IGZ1bmN0aW9uKGl0LCBjcmVhdGUpe1xuICBpZighaGFzKGl0LCBNRVRBKSl7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZighaXNFeHRlbnNpYmxlKGl0KSlyZXR1cm4gdHJ1ZTtcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmKCFjcmVhdGUpcmV0dXJuIGZhbHNlO1xuICAgIC8vIGFkZCBtaXNzaW5nIG1ldGFkYXRhXG4gICAgc2V0TWV0YShpdCk7XG4gIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gcmV0dXJuIGl0W01FVEFdLnc7XG59O1xuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbihpdCl7XG4gIGlmKEZSRUVaRSAmJiBtZXRhLk5FRUQgJiYgaXNFeHRlbnNpYmxlKGl0KSAmJiAhaGFzKGl0LCBNRVRBKSlzZXRNZXRhKGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbnZhciBtZXRhID0gbW9kdWxlLmV4cG9ydHMgPSB7XG4gIEtFWTogICAgICBNRVRBLFxuICBORUVEOiAgICAgZmFsc2UsXG4gIGZhc3RLZXk6ICBmYXN0S2V5LFxuICBnZXRXZWFrOiAgZ2V0V2VhayxcbiAgb25GcmVlemU6IG9uRnJlZXplXG59O1xuXG4vKioqLyB9KSxcbi8qIDcwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gIV9fd2VicGFja19yZXF1aXJlX18oMjMpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KShmdW5jdGlvbigpe1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fd2VicGFja19yZXF1aXJlX18oNDUpKCdkaXYnKSwgJ2EnLCB7Z2V0OiBmdW5jdGlvbigpeyByZXR1cm4gNzsgfX0pLmEgIT0gNztcbn0pO1xuXG4vKioqLyB9KSxcbi8qIDcxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQsIFMpe1xuICBpZighaXNPYmplY3QoaXQpKXJldHVybiBpdDtcbiAgdmFyIGZuLCB2YWw7XG4gIGlmKFMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpcmV0dXJuIHZhbDtcbiAgaWYodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSlyZXR1cm4gdmFsO1xuICBpZighUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSlyZXR1cm4gdmFsO1xuICB0aHJvdyBUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuXG4vKioqLyB9KSxcbi8qIDcyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaXQpe1xuICBpZih0eXBlb2YgaXQgIT0gJ2Z1bmN0aW9uJyl0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uIScpO1xuICByZXR1cm4gaXQ7XG59O1xuXG4vKioqLyB9KSxcbi8qIDczICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogX193ZWJwYWNrX3JlcXVpcmVfXyg3NCksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuLyoqKi8gfSksXG4vKiA3NCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5fX3dlYnBhY2tfcmVxdWlyZV9fKDc1KTtcbnZhciAkT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KS5PYmplY3Q7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2Mpe1xuICByZXR1cm4gJE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKTtcbn07XG5cbi8qKiovIH0pLFxuLyogNzUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI1KTtcbi8vIDE5LjEuMi40IC8gMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKSwgJ09iamVjdCcsIHtkZWZpbmVQcm9wZXJ0eTogX193ZWJwYWNrX3JlcXVpcmVfXygxNSkuZn0pO1xuXG4vKioqLyB9KSxcbi8qIDc2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImJcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBidWlsZFRyZWU7IH0pO1xuLyogaGFybW9ueSBleHBvcnQgKGJpbmRpbmcpICovIF9fd2VicGFja19yZXF1aXJlX18uZChfX3dlYnBhY2tfZXhwb3J0c19fLCBcImFcIiwgZnVuY3Rpb24oKSB7IHJldHVybiBidWlsZEhUTUxUcmVlOyB9KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19PcHRpb25zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1NldHRpbmdzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuXG5cblxuXG5cblxuXG52YXIgb3B0aW9uc0Zyb21TZXR0aW5ncyA9IGZ1bmN0aW9uIG9wdGlvbnNGcm9tU2V0dGluZ3Moc2V0dGluZ3MpIHtcbiAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fT3B0aW9uc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKHtcbiAgICAgICAgc3R5bGU6IHNldHRpbmdzLmRpc3BsYXlNb2RlID8gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkgOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCxcbiAgICAgICAgbWF4U2l6ZTogc2V0dGluZ3MubWF4U2l6ZVxuICAgIH0pO1xufTtcblxudmFyIGJ1aWxkVHJlZSA9IGZ1bmN0aW9uIGJ1aWxkVHJlZSh0cmVlLCBleHByZXNzaW9uLCBzZXR0aW5ncykge1xuICAgIHZhciBvcHRpb25zID0gb3B0aW9uc0Zyb21TZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgLy8gYGJ1aWxkSFRNTGAgc29tZXRpbWVzIG1lc3NlcyB3aXRoIHRoZSBwYXJzZSB0cmVlIChsaWtlIHR1cm5pbmcgYmlucyAtPlxuICAgIC8vIG9yZHMpLCBzbyB3ZSBidWlsZCB0aGUgTWF0aE1MIHZlcnNpb24gZmlyc3QuXG4gICAgdmFyIG1hdGhNTE5vZGUgPSBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZE1hdGhNTF9fW1wiY1wiIC8qIGRlZmF1bHQgKi9dKSh0cmVlLCBleHByZXNzaW9uLCBvcHRpb25zKTtcbiAgICB2YXIgaHRtbE5vZGUgPSBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZEhUTUxfX1tcImNcIiAvKiBkZWZhdWx0ICovXSkodHJlZSwgb3B0aW9ucyk7XG5cbiAgICB2YXIga2F0ZXhOb2RlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcImthdGV4XCJdLCBbbWF0aE1MTm9kZSwgaHRtbE5vZGVdKTtcblxuICAgIGlmIChzZXR0aW5ncy5kaXNwbGF5TW9kZSkge1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcImthdGV4LWRpc3BsYXlcIl0sIFtrYXRleE5vZGVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ga2F0ZXhOb2RlO1xuICAgIH1cbn07XG5cbnZhciBidWlsZEhUTUxUcmVlID0gZnVuY3Rpb24gYnVpbGRIVE1MVHJlZSh0cmVlLCBleHByZXNzaW9uLCBzZXR0aW5ncykge1xuICAgIHZhciBvcHRpb25zID0gb3B0aW9uc0Zyb21TZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgdmFyIGh0bWxOb2RlID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRIVE1MX19bXCJjXCIgLyogZGVmYXVsdCAqL10pKHRyZWUsIG9wdGlvbnMpO1xuICAgIHZhciBrYXRleE5vZGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wia2F0ZXhcIl0sIFtodG1sTm9kZV0pO1xuICAgIGlmIChzZXR0aW5ncy5kaXNwbGF5TW9kZSkge1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcImthdGV4LWRpc3BsYXlcIl0sIFtrYXRleE5vZGVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ga2F0ZXhOb2RlO1xuICAgIH1cbn07XG5cbi8qIHVudXNlZCBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIHZhciBfdW51c2VkX3dlYnBhY2tfZGVmYXVsdF9leHBvcnQgPSAoYnVpbGRUcmVlKTtcblxuLyoqKi8gfSksXG4vKiA3NyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IHsgXCJkZWZhdWx0XCI6IF9fd2VicGFja19yZXF1aXJlX18oNzgpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cbi8qKiovIH0pLFxuLyogNzggKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIGNvcmUgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KVxuICAsICRKU09OID0gY29yZS5KU09OIHx8IChjb3JlLkpTT04gPSB7c3RyaW5naWZ5OiBKU09OLnN0cmluZ2lmeX0pO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBzdHJpbmdpZnkoaXQpeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHJldHVybiAkSlNPTi5zdHJpbmdpZnkuYXBwbHkoJEpTT04sIGFyZ3VtZW50cyk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDc5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogX193ZWJwYWNrX3JlcXVpcmVfXyg4MCksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuLyoqKi8gfSksXG4vKiA4MCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5fX3dlYnBhY2tfcmVxdWlyZV9fKDM2KTtcbl9fd2VicGFja19yZXF1aXJlX18oOTIpO1xubW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpLkFycmF5LmZyb207XG5cbi8qKiovIH0pLFxuLyogODEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIHRvSW50ZWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oMzcpXG4gICwgZGVmaW5lZCAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOCk7XG4vLyB0cnVlICAtPiBTdHJpbmcjYXRcbi8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihUT19TVFJJTkcpe1xuICByZXR1cm4gZnVuY3Rpb24odGhhdCwgcG9zKXtcbiAgICB2YXIgcyA9IFN0cmluZyhkZWZpbmVkKHRoYXQpKVxuICAgICAgLCBpID0gdG9JbnRlZ2VyKHBvcylcbiAgICAgICwgbCA9IHMubGVuZ3RoXG4gICAgICAsIGEsIGI7XG4gICAgaWYoaSA8IDAgfHwgaSA+PSBsKXJldHVybiBUT19TVFJJTkcgPyAnJyA6IHVuZGVmaW5lZDtcbiAgICBhID0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmXG4gICAgICA/IFRPX1NUUklORyA/IHMuY2hhckF0KGkpIDogYVxuICAgICAgOiBUT19TVFJJTkcgPyBzLnNsaWNlKGksIGkgKyAyKSA6IChhIC0gMHhkODAwIDw8IDEwKSArIChiIC0gMHhkYzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuXG4vKioqLyB9KSxcbi8qIDgyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gdHJ1ZTtcblxuLyoqKi8gfSksXG4vKiA4MyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpO1xuXG4vKioqLyB9KSxcbi8qIDg0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgY3JlYXRlICAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg1KVxuICAsIGRlc2NyaXB0b3IgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMylcbiAgLCBzZXRUb1N0cmluZ1RhZyA9IF9fd2VicGFja19yZXF1aXJlX18oNTQpXG4gICwgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbl9fd2VicGFja19yZXF1aXJlX18oMjYpKEl0ZXJhdG9yUHJvdG90eXBlLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSgnaXRlcmF0b3InKSwgZnVuY3Rpb24oKXsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KXtcbiAgQ29uc3RydWN0b3IucHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlLCB7bmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KX0pO1xuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTtcbn07XG5cbi8qKiovIH0pLFxuLyogODUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKVxuICAsIGRQcyAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4NilcbiAgLCBlbnVtQnVnS2V5cyA9IF9fd2VicGFja19yZXF1aXJlX18oNTMpXG4gICwgSUVfUFJPVE8gICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQxKSgnSUVfUFJPVE8nKVxuICAsIEVtcHR5ICAgICAgID0gZnVuY3Rpb24oKXsgLyogZW1wdHkgKi8gfVxuICAsIFBST1RPVFlQRSAgID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24oKXtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IF9fd2VicGFja19yZXF1aXJlX18oNDUpKCdpZnJhbWUnKVxuICAgICwgaSAgICAgID0gZW51bUJ1Z0tleXMubGVuZ3RoXG4gICAgLCBsdCAgICAgPSAnPCdcbiAgICAsIGd0ICAgICA9ICc+J1xuICAgICwgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBfX3dlYnBhY2tfcmVxdWlyZV9fKDkwKS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6JzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zY3JpcHQtdXJsXG4gIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7XG4gIC8vIGh0bWwucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICBpZnJhbWVEb2N1bWVudC53cml0ZShsdCArICdzY3JpcHQnICsgZ3QgKyAnZG9jdW1lbnQuRj1PYmplY3QnICsgbHQgKyAnL3NjcmlwdCcgKyBndCk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GO1xuICB3aGlsZShpLS0pZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpe1xuICB2YXIgcmVzdWx0O1xuICBpZihPICE9PSBudWxsKXtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5O1xuICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsO1xuICAgIC8vIGFkZCBcIl9fcHJvdG9fX1wiIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGxcbiAgICByZXN1bHRbSUVfUFJPVE9dID0gTztcbiAgfSBlbHNlIHJlc3VsdCA9IGNyZWF0ZURpY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRQcyhyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcblxuXG4vKioqLyB9KSxcbi8qIDg2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBkUCAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpXG4gICwgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKVxuICAsIGdldEtleXMgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOSk7XG5cbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMykgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcyl7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyAgID0gZ2V0S2V5cyhQcm9wZXJ0aWVzKVxuICAgICwgbGVuZ3RoID0ga2V5cy5sZW5ndGhcbiAgICAsIGkgPSAwXG4gICAgLCBQO1xuICB3aGlsZShsZW5ndGggPiBpKWRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcblxuLyoqKi8gfSksXG4vKiA4NyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG52YXIgaGFzICAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSlcbiAgLCB0b0lPYmplY3QgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQwKVxuICAsIGFycmF5SW5kZXhPZiA9IF9fd2VicGFja19yZXF1aXJlX18oODgpKGZhbHNlKVxuICAsIElFX1BST1RPICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oNDEpKCdJRV9QUk9UTycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iamVjdCwgbmFtZXMpe1xuICB2YXIgTyAgICAgID0gdG9JT2JqZWN0KG9iamVjdClcbiAgICAsIGkgICAgICA9IDBcbiAgICAsIHJlc3VsdCA9IFtdXG4gICAgLCBrZXk7XG4gIGZvcihrZXkgaW4gTylpZihrZXkgIT0gSUVfUFJPVE8paGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZShuYW1lcy5sZW5ndGggPiBpKWlmKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSl7XG4gICAgfmFycmF5SW5kZXhPZihyZXN1bHQsIGtleSkgfHwgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqKi8gfSksXG4vKiA4OCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG4vLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oNDApXG4gICwgdG9MZW5ndGggID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1MSlcbiAgLCB0b0luZGV4ICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg5KTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oSVNfSU5DTFVERVMpe1xuICByZXR1cm4gZnVuY3Rpb24oJHRoaXMsIGVsLCBmcm9tSW5kZXgpe1xuICAgIHZhciBPICAgICAgPSB0b0lPYmplY3QoJHRoaXMpXG4gICAgICAsIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKVxuICAgICAgLCBpbmRleCAgPSB0b0luZGV4KGZyb21JbmRleCwgbGVuZ3RoKVxuICAgICAgLCB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgaWYoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpd2hpbGUobGVuZ3RoID4gaW5kZXgpe1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgaWYodmFsdWUgIT0gdmFsdWUpcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjdG9JbmRleCBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKWlmKElTX0lOQ0xVREVTIHx8IGluZGV4IGluIE8pe1xuICAgICAgaWYoT1tpbmRleF0gPT09IGVsKXJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbi8qKiovIH0pLFxuLyogODkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxudmFyIHRvSW50ZWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oMzcpXG4gICwgbWF4ICAgICAgID0gTWF0aC5tYXhcbiAgLCBtaW4gICAgICAgPSBNYXRoLm1pbjtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oaW5kZXgsIGxlbmd0aCl7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDkwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNikuZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4vKioqLyB9KSxcbi8qIDkxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzICAgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKVxuICAsIHRvT2JqZWN0ICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOSlcbiAgLCBJRV9QUk9UTyAgICA9IF9fd2VicGFja19yZXF1aXJlX18oNDEpKCdJRV9QUk9UTycpXG4gICwgT2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbihPKXtcbiAgTyA9IHRvT2JqZWN0KE8pO1xuICBpZihoYXMoTywgSUVfUFJPVE8pKXJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYodHlwZW9mIE8uY29uc3RydWN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBPIGluc3RhbmNlb2YgTy5jb25zdHJ1Y3Rvcil7XG4gICAgcmV0dXJuIE8uY29uc3RydWN0b3IucHJvdG90eXBlO1xuICB9IHJldHVybiBPIGluc3RhbmNlb2YgT2JqZWN0ID8gT2JqZWN0UHJvdG8gOiBudWxsO1xufTtcblxuLyoqKi8gfSksXG4vKiA5MiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxudmFyIGN0eCAgICAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NylcbiAgLCAkZXhwb3J0ICAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpXG4gICwgdG9PYmplY3QgICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KVxuICAsIGNhbGwgICAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5MylcbiAgLCBpc0FycmF5SXRlciAgICA9IF9fd2VicGFja19yZXF1aXJlX18oOTQpXG4gICwgdG9MZW5ndGggICAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUxKVxuICAsIGNyZWF0ZVByb3BlcnR5ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5NSlcbiAgLCBnZXRJdGVyRm4gICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oNTUpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFfX3dlYnBhY2tfcmVxdWlyZV9fKDk2KShmdW5jdGlvbihpdGVyKXsgQXJyYXkuZnJvbShpdGVyKTsgfSksICdBcnJheScsIHtcbiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICBmcm9tOiBmdW5jdGlvbiBmcm9tKGFycmF5TGlrZS8qLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZCovKXtcbiAgICB2YXIgTyAgICAgICA9IHRvT2JqZWN0KGFycmF5TGlrZSlcbiAgICAgICwgQyAgICAgICA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXlcbiAgICAgICwgYUxlbiAgICA9IGFyZ3VtZW50cy5sZW5ndGhcbiAgICAgICwgbWFwZm4gICA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkXG4gICAgICAsIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkXG4gICAgICAsIGluZGV4ICAgPSAwXG4gICAgICAsIGl0ZXJGbiAgPSBnZXRJdGVyRm4oTylcbiAgICAgICwgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yO1xuICAgIGlmKG1hcHBpbmcpbWFwZm4gPSBjdHgobWFwZm4sIGFMZW4gPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2VcbiAgICBpZihpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSl7XG4gICAgICBmb3IoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgcmVzdWx0ID0gbmV3IEM7ICEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZTsgaW5kZXgrKyl7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgICAgZm9yKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKXtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc3VsdC5sZW5ndGggPSBpbmRleDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcblxuXG4vKioqLyB9KSxcbi8qIDkzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIGNhbGwgc29tZXRoaW5nIG9uIGl0ZXJhdG9yIHN0ZXAgd2l0aCBzYWZlIGNsb3Npbmcgb24gZXJyb3JcbnZhciBhbk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpdGVyYXRvciwgZm4sIHZhbHVlLCBlbnRyaWVzKXtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZW50cmllcyA/IGZuKGFuT2JqZWN0KHZhbHVlKVswXSwgdmFsdWVbMV0pIDogZm4odmFsdWUpO1xuICAvLyA3LjQuNiBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yLCBjb21wbGV0aW9uKVxuICB9IGNhdGNoKGUpe1xuICAgIHZhciByZXQgPSBpdGVyYXRvclsncmV0dXJuJ107XG4gICAgaWYocmV0ICE9PSB1bmRlZmluZWQpYW5PYmplY3QocmV0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlO1xuICB9XG59O1xuXG4vKioqLyB9KSxcbi8qIDk0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIGNoZWNrIG9uIGRlZmF1bHQgQXJyYXkgaXRlcmF0b3JcbnZhciBJdGVyYXRvcnMgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNylcbiAgLCBJVEVSQVRPUiAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMSkoJ2l0ZXJhdG9yJylcbiAgLCBBcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGl0KXtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b1tJVEVSQVRPUl0gPT09IGl0KTtcbn07XG5cbi8qKiovIH0pLFxuLyogOTUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KVxuICAsIGNyZWF0ZURlc2MgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMzMpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG9iamVjdCwgaW5kZXgsIHZhbHVlKXtcbiAgaWYoaW5kZXggaW4gb2JqZWN0KSRkZWZpbmVQcm9wZXJ0eS5mKG9iamVjdCwgaW5kZXgsIGNyZWF0ZURlc2MoMCwgdmFsdWUpKTtcbiAgZWxzZSBvYmplY3RbaW5kZXhdID0gdmFsdWU7XG59O1xuXG4vKioqLyB9KSxcbi8qIDk2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBJVEVSQVRPUiAgICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSgnaXRlcmF0b3InKVxuICAsIFNBRkVfQ0xPU0lORyA9IGZhbHNlO1xuXG50cnkge1xuICB2YXIgcml0ZXIgPSBbN11bSVRFUkFUT1JdKCk7XG4gIHJpdGVyWydyZXR1cm4nXSA9IGZ1bmN0aW9uKCl7IFNBRkVfQ0xPU0lORyA9IHRydWU7IH07XG4gIEFycmF5LmZyb20ocml0ZXIsIGZ1bmN0aW9uKCl7IHRocm93IDI7IH0pO1xufSBjYXRjaChlKXsgLyogZW1wdHkgKi8gfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGV4ZWMsIHNraXBDbG9zaW5nKXtcbiAgaWYoIXNraXBDbG9zaW5nICYmICFTQUZFX0NMT1NJTkcpcmV0dXJuIGZhbHNlO1xuICB2YXIgc2FmZSA9IGZhbHNlO1xuICB0cnkge1xuICAgIHZhciBhcnIgID0gWzddXG4gICAgICAsIGl0ZXIgPSBhcnJbSVRFUkFUT1JdKCk7XG4gICAgaXRlci5uZXh0ID0gZnVuY3Rpb24oKXsgcmV0dXJuIHtkb25lOiBzYWZlID0gdHJ1ZX07IH07XG4gICAgYXJyW0lURVJBVE9SXSA9IGZ1bmN0aW9uKCl7IHJldHVybiBpdGVyOyB9O1xuICAgIGV4ZWMoYXJyKTtcbiAgfSBjYXRjaChlKXsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gc2FmZTtcbn07XG5cbi8qKiovIH0pLFxuLyogOTcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxubW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDk4KSwgX19lc01vZHVsZTogdHJ1ZSB9O1xuXG4vKioqLyB9KSxcbi8qIDk4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbl9fd2VicGFja19yZXF1aXJlX18oNTgpO1xuX193ZWJwYWNrX3JlcXVpcmVfXygzNik7XG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTAyKTtcblxuLyoqKi8gfSksXG4vKiA5OSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxudmFyIGFkZFRvVW5zY29wYWJsZXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwMClcbiAgLCBzdGVwICAgICAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDEpXG4gICwgSXRlcmF0b3JzICAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpXG4gICwgdG9JT2JqZWN0ICAgICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oNDApO1xuXG4vLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpXG4vLyAyMi4xLjMuMTMgQXJyYXkucHJvdG90eXBlLmtleXMoKVxuLy8gMjIuMS4zLjI5IEFycmF5LnByb3RvdHlwZS52YWx1ZXMoKVxuLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpXG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oNDgpKEFycmF5LCAnQXJyYXknLCBmdW5jdGlvbihpdGVyYXRlZCwga2luZCl7XG4gIHRoaXMuX3QgPSB0b0lPYmplY3QoaXRlcmF0ZWQpOyAvLyB0YXJnZXRcbiAgdGhpcy5faSA9IDA7ICAgICAgICAgICAgICAgICAgIC8vIG5leHQgaW5kZXhcbiAgdGhpcy5fayA9IGtpbmQ7ICAgICAgICAgICAgICAgIC8vIGtpbmRcbi8vIDIyLjEuNS4yLjEgJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24oKXtcbiAgdmFyIE8gICAgID0gdGhpcy5fdFxuICAgICwga2luZCAgPSB0aGlzLl9rXG4gICAgLCBpbmRleCA9IHRoaXMuX2krKztcbiAgaWYoIU8gfHwgaW5kZXggPj0gTy5sZW5ndGgpe1xuICAgIHRoaXMuX3QgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHN0ZXAoMSk7XG4gIH1cbiAgaWYoa2luZCA9PSAna2V5cycgIClyZXR1cm4gc3RlcCgwLCBpbmRleCk7XG4gIGlmKGtpbmQgPT0gJ3ZhbHVlcycpcmV0dXJuIHN0ZXAoMCwgT1tpbmRleF0pO1xuICByZXR1cm4gc3RlcCgwLCBbaW5kZXgsIE9baW5kZXhdXSk7XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJSAoOS40LjQuNiwgOS40LjQuNylcbkl0ZXJhdG9ycy5Bcmd1bWVudHMgPSBJdGVyYXRvcnMuQXJyYXk7XG5cbmFkZFRvVW5zY29wYWJsZXMoJ2tleXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ3ZhbHVlcycpO1xuYWRkVG9VbnNjb3BhYmxlcygnZW50cmllcycpO1xuXG4vKioqLyB9KSxcbi8qIDEwMCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCl7IC8qIGVtcHR5ICovIH07XG5cbi8qKiovIH0pLFxuLyogMTAxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oZG9uZSwgdmFsdWUpe1xuICByZXR1cm4ge3ZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lfTtcbn07XG5cbi8qKiovIH0pLFxuLyogMTAyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbnZhciBjbGFzc29mICAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU2KVxuICAsIElURVJBVE9SICA9IF9fd2VicGFja19yZXF1aXJlX18oMTEpKCdpdGVyYXRvcicpXG4gICwgSXRlcmF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oOCkuaXNJdGVyYWJsZSA9IGZ1bmN0aW9uKGl0KXtcbiAgdmFyIE8gPSBPYmplY3QoaXQpO1xuICByZXR1cm4gT1tJVEVSQVRPUl0gIT09IHVuZGVmaW5lZFxuICAgIHx8ICdAQGl0ZXJhdG9yJyBpbiBPXG4gICAgfHwgSXRlcmF0b3JzLmhhc093blByb3BlcnR5KGNsYXNzb2YoTykpO1xufTtcblxuLyoqKi8gfSksXG4vKiAxMDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuX193ZWJwYWNrX3JlcXVpcmVfXyg1OCk7XG5fX3dlYnBhY2tfcmVxdWlyZV9fKDM2KTtcbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDQpO1xuXG4vKioqLyB9KSxcbi8qIDEwNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG52YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKVxuICAsIGdldCAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NSk7XG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oOCkuZ2V0SXRlcmF0b3IgPSBmdW5jdGlvbihpdCl7XG4gIHZhciBpdGVyRm4gPSBnZXQoaXQpO1xuICBpZih0eXBlb2YgaXRlckZuICE9ICdmdW5jdGlvbicpdGhyb3cgVHlwZUVycm9yKGl0ICsgJyBpcyBub3QgaXRlcmFibGUhJyk7XG4gIHJldHVybiBhbk9iamVjdChpdGVyRm4uY2FsbChpdCkpO1xufTtcblxuLyoqKi8gfSksXG4vKiAxMDUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxubW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNiksIF9fZXNNb2R1bGU6IHRydWUgfTtcblxuLyoqKi8gfSksXG4vKiAxMDYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuX193ZWJwYWNrX3JlcXVpcmVfXygxMDcpO1xubW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpLk9iamVjdC5hc3NpZ247XG5cbi8qKiovIH0pLFxuLyogMTA3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbi8vIDE5LjEuMy4xIE9iamVjdC5hc3NpZ24odGFyZ2V0LCBzb3VyY2UpXG52YXIgJGV4cG9ydCA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiwgJ09iamVjdCcsIHthc3NpZ246IF9fd2VicGFja19yZXF1aXJlX18oMTA4KX0pO1xuXG4vKioqLyB9KSxcbi8qIDEwOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuLy8gMTkuMS4yLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSwgLi4uKVxudmFyIGdldEtleXMgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOSlcbiAgLCBnT1BTICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTA5KVxuICAsIHBJRSAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTApXG4gICwgdG9PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KVxuICAsIElPYmplY3QgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0OSlcbiAgLCAkYXNzaWduICA9IE9iamVjdC5hc3NpZ247XG5cbi8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxubW9kdWxlLmV4cG9ydHMgPSAhJGFzc2lnbiB8fCBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KShmdW5jdGlvbigpe1xuICB2YXIgQSA9IHt9XG4gICAgLCBCID0ge31cbiAgICAsIFMgPSBTeW1ib2woKVxuICAgICwgSyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbU10gPSA3O1xuICBLLnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uKGspeyBCW2tdID0gazsgfSk7XG4gIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLO1xufSkgPyBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCBzb3VyY2UpeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHZhciBUICAgICA9IHRvT2JqZWN0KHRhcmdldClcbiAgICAsIGFMZW4gID0gYXJndW1lbnRzLmxlbmd0aFxuICAgICwgaW5kZXggPSAxXG4gICAgLCBnZXRTeW1ib2xzID0gZ09QUy5mXG4gICAgLCBpc0VudW0gICAgID0gcElFLmY7XG4gIHdoaWxlKGFMZW4gPiBpbmRleCl7XG4gICAgdmFyIFMgICAgICA9IElPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKVxuICAgICAgLCBrZXlzICAgPSBnZXRTeW1ib2xzID8gZ2V0S2V5cyhTKS5jb25jYXQoZ2V0U3ltYm9scyhTKSkgOiBnZXRLZXlzKFMpXG4gICAgICAsIGxlbmd0aCA9IGtleXMubGVuZ3RoXG4gICAgICAsIGogICAgICA9IDBcbiAgICAgICwga2V5O1xuICAgIHdoaWxlKGxlbmd0aCA+IGopaWYoaXNFbnVtLmNhbGwoUywga2V5ID0ga2V5c1tqKytdKSlUW2tleV0gPSBTW2tleV07XG4gIH0gcmV0dXJuIFQ7XG59IDogJGFzc2lnbjtcblxuLyoqKi8gfSksXG4vKiAxMDkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcblxuLyoqKi8gfSksXG4vKiAxMTAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuZXhwb3J0cy5mID0ge30ucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbi8qKiovIH0pLFxuLyogMTExICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG4vKipcbiAqIFRoaXMgZmlsZSBwcm92aWRlcyBzdXBwb3J0IHRvIGRvbVRyZWUuanNcbiAqIEl0J3MgYSBzdG9yZWhvdXNlIG9mIHBhdGggZ2VvbWV0cnkgZm9yIFNWRyBpbWFnZXMuXG4gKi9cblxuLy8gV2UgZG8gZnJhYy1saW5lcywgdW5kZXJsaW5lcywgYW5kIG92ZXJsaW5lcyB3aXRoIGFuIFNWRyBwYXRoIGFuZCB3ZSBwdXQgdGhhdFxuLy8gcGF0aCBpcyBpbnRvIGEgdmlld0JveCB0aGF0IGlzIDUgdGltZXMgYXMgdGhpY2sgYXMgdGhlIGxpbmUuIFRoYXQgd2F5LFxuLy8gYW55IGJyb3dzZXIgcm91bmRpbmcgZXJyb3Igb24gdGhlIHNpemUgb2YgdGhlIHN1cnJvdW5kaW5nIHNwYW4gd2lsbFxuLy8gbm90IHBpbmNoIHRoZSBpbmsgb2YgdGhlIGxpbmUuICBUaGluayBvZiBpdCBhcyBwYWRkaW5nIGZvciB0aGUgbGluZS5cbi8vIEFzIHVzdWFsLCB0aGUgdmlld0JveC10by1lbSBzY2FsZSBpcyAxMDAwLlxuXG52YXIgaExpbmVQYWQgPSA4MDsgLy8gcGFkZGluZyBhYm92ZSBhbmQgYmVsb3cgYSBzdGQgMC4wNGVtIGhvcml6IHJ1bGUuXG52YXIgdkxpbmVQYWQgPSAxMDA7IC8vIHBhZGRpbmcgb24gZWl0aGVyIHNpZGUgb2YgYSBzdGQgdmVydCAwLjA1ZW0gcnVsZS5cblxudmFyIHBhdGggPSB7XG4gICAgLy8gc3RkSG9yaXpSdWxlIGlzIHVzZWQgZm9yIGZyYWMtbGluZXMsIHVuZGVybGluZXMsIGFuZCBvdmVybGluZXMuXG4gICAgLy8gSXQgaXMgMC4wNGVtIHRoaWNrIGlmIHRoZSBsaW5lIGNvbWVzIGZyb20gbm9ybWFsc2l6ZS90ZXh0c3R5bGUuXG4gICAgc3RkSG9yaXpSdWxlOiBcIk0wIFwiICsgaExpbmVQYWQgKyBcIkg0MDAwMDAgdjQwSDB6IE0wIFwiICsgaExpbmVQYWQgKyBcIkg0MDAwMDAgdjQwSDB6XCIsXG5cbiAgICAvLyB2ZXJ0U2VwYXJhdG9yIGlzIHVzZWQgaW4gYXJyYXlzLiBJdCBpcyAwLjA1ZW0gd2lkZSBpbiBhIDAuMjVlbSB2aWV3Qm94LlxuICAgIHZlcnRTZXBhcmF0b3I6IFwiTVwiICsgdkxpbmVQYWQgKyBcIiAwaDUwVjQwMDAwMGgtNTB6TVwiICsgdkxpbmVQYWQgKyBcIiAwaDUwVjQwMDAwMGgtNTB6XCIsXG5cbiAgICAvLyBzcXJ0TWFpbiBwYXRoIGdlb21ldHJ5IGlzIGZyb20gZ2x5cGggVTIyMUEgaW4gdGhlIGZvbnQgS2FUZVggTWFpblxuICAgIC8vIEFsbCBzdXJkcyBoYXZlIDgwIHVuaXRzIHBhZGRpbmcgYWJvdmUgdGhlIHZpbmljdWx1bW4uXG4gICAgc3FydE1haW46IFwiTTk1LFwiICsgKDYyMiArIGhMaW5lUGFkKSArIFwiYy0yLjcsMCwtNy4xNywtMi43LC0xMy41LC04Yy01LjgsLTUuMywtOS41LFxcbi0xMCwtOS41LC0xNGMwLC0yLDAuMywtMy4zLDEsLTRjMS4zLC0yLjcsMjMuODMsLTIwLjcsNjcuNSwtNTRjNDQuMiwtMzMuMyw2NS44LFxcbi01MC4zLDY2LjUsLTUxYzEuMywtMS4zLDMsLTIsNSwtMmM0LjcsMCw4LjcsMy4zLDEyLDEwczE3MywzNzgsMTczLDM3OGMwLjcsMCxcXG4zNS4zLC03MSwxMDQsLTIxM2M2OC43LC0xNDIsMTM3LjUsLTI4NSwyMDYuNSwtNDI5YzY5LC0xNDQsMTA0LjUsLTIxNy43LDEwNi41LFxcbi0yMjFjNS4zLC05LjMsMTIsLTE0LDIwLC0xNEg0MDAwMDB2NDBIODQ1LjI3MjRzLTIyNS4yNzIsNDY3LC0yMjUuMjcyLDQ2N1xcbnMtMjM1LDQ4NiwtMjM1LDQ4NmMtMi43LDQuNywtOSw3LC0xOSw3Yy02LDAsLTEwLC0xLC0xMiwtM3MtMTk0LC00MjIsLTE5NCwtNDIyXFxucy02NSw0NywtNjUsNDd6IE04MzQgXCIgKyBoTGluZVBhZCArIFwiSDQwMDAwMHY0MEg4NDV6XCIsXG5cbiAgICAvLyBzaXplMSBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemUxLVJlZ3VsYXJcbiAgICBzcXJ0U2l6ZTE6IFwiTTI2MyxcIiArICg2MDEgKyBoTGluZVBhZCkgKyBcImMwLjcsMCwxOCwzOS43LDUyLDExOWMzNCw3OS4zLDY4LjE2NyxcXG4xNTguNywxMDIuNSwyMzhjMzQuMyw3OS4zLDUxLjgsMTE5LjMsNTIuNSwxMjBjMzQwLC03MDQuNyw1MTAuNywtMTA2MC4zLDUxMiwtMTA2N1xcbmM0LjcsLTcuMywxMSwtMTEsMTksLTExSDQwMDAwdjQwSDEwMTIuM3MtMjcxLjMsNTY3LC0yNzEuMyw1NjdjLTM4LjcsODAuNywtODQsXFxuMTc1LC0xMzYsMjgzYy01MiwxMDgsLTg5LjE2NywxODUuMywtMTExLjUsMjMyYy0yMi4zLDQ2LjcsLTMzLjgsNzAuMywtMzQuNSw3MVxcbmMtNC43LDQuNywtMTIuMyw3LC0yMyw3cy0xMiwtMSwtMTIsLTFzLTEwOSwtMjUzLC0xMDksLTI1M2MtNzIuNywtMTY4LC0xMDkuMyxcXG4tMjUyLC0xMTAsLTI1MmMtMTAuNyw4LC0yMiwxNi43LC0zNCwyNmMtMjIsMTcuMywtMzMuMywyNiwtMzQsMjZzLTI2LC0yNiwtMjYsLTI2XFxuczc2LC01OSw3NiwtNTlzNzYsLTYwLDc2LC02MHogTTEwMDEgXCIgKyBoTGluZVBhZCArIFwiSDQwMDAwdjQwSDEwMTJ6XCIsXG5cbiAgICAvLyBzaXplMiBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemUyLVJlZ3VsYXJcbiAgICAvLyBUaGUgODAgdW5pdHMgcGFkZGluZyBpcyBtb3N0IG9idmlvdXMgaGVyZS4gTm90ZSBzdGFydCBub2RlIGF0IE0xMDAxIDgwLlxuICAgIHNxcnRTaXplMjogXCJNMTAwMSxcIiArIGhMaW5lUGFkICsgXCJINDAwMDAwdjQwSDEwMTMuMXMtODMuNCwyNjgsLTI2NC4xLDg0MGMtMTgwLjcsXFxuNTcyLC0yNzcsODc2LjMsLTI4OSw5MTNjLTQuNyw0LjcsLTEyLjcsNywtMjQsN3MtMTIsMCwtMTIsMGMtMS4zLC0zLjMsLTMuNywtMTEuNyxcXG4tNywtMjVjLTM1LjMsLTEyNS4zLC0xMDYuNywtMzczLjMsLTIxNCwtNzQ0Yy0xMCwxMiwtMjEsMjUsLTMzLDM5cy0zMiwzOSwtMzIsMzlcXG5jLTYsLTUuMywtMTUsLTE0LC0yNywtMjZzMjUsLTMwLDI1LC0zMGMyNi43LC0zMi43LDUyLC02Myw3NiwtOTFzNTIsLTYwLDUyLC02MFxcbnMyMDgsNzIyLDIwOCw3MjJjNTYsLTE3NS4zLDEyNi4zLC0zOTcuMywyMTEsLTY2NmM4NC43LC0yNjguNywxNTMuOCwtNDg4LjIsMjA3LjUsXFxuLTY1OC41YzUzLjcsLTE3MC4zLDg0LjUsLTI2Ni44LDkyLjUsLTI4OS41YzQsLTYuNywxMCwtMTAsMTgsLTEwelxcbk0xMDAxIFwiICsgaExpbmVQYWQgKyBcIkg0MDAwMDB2NDBIMTAxM3pcIixcblxuICAgIC8vIHNpemUzIGlzIGZyb20gZ2x5cGggVTIyMUEgaW4gdGhlIGZvbnQgS2FUZVhfU2l6ZTMtUmVndWxhclxuICAgIHNxcnRTaXplMzogXCJNNDI0LFwiICsgKDIzOTggKyBoTGluZVBhZCkgKyBcImMtMS4zLC0wLjcsLTM4LjUsLTE3MiwtMTExLjUsLTUxNGMtNzMsXFxuLTM0MiwtMTA5LjgsLTUxMy4zLC0xMTAuNSwtNTE0YzAsLTIsLTEwLjcsMTQuMywtMzIsNDljLTQuNyw3LjMsLTkuOCwxNS43LC0xNS41LFxcbjI1Yy01LjcsOS4zLC05LjgsMTYsLTEyLjUsMjBzLTUsNywtNSw3Yy00LC0zLjMsLTguMywtNy43LC0xMywtMTNzLTEzLC0xMywtMTMsXFxuLTEzczc2LC0xMjIsNzYsLTEyMnM3NywtMTIxLDc3LC0xMjFzMjA5LDk2OCwyMDksOTY4YzAsLTIsODQuNywtMzYxLjcsMjU0LC0xMDc5XFxuYzE2OS4zLC03MTcuMywyNTQuNywtMTA3Ny43LDI1NiwtMTA4MWM0LC02LjcsMTAsLTEwLDE4LC0xMEg0MDAwMDB2NDBIMTAxNC42XFxucy04Ny4zLDM3OC43LC0yNzIuNiwxMTY2Yy0xODUuMyw3ODcuMywtMjc5LjMsMTE4Mi4zLC0yODIsMTE4NWMtMiw2LC0xMCw5LC0yNCw5XFxuYy04LDAsLTEyLC0wLjcsLTEyLC0yeiBNMTAwMSBcIiArIGhMaW5lUGFkICsgXCJINDAwMDAwdjQwSDEwMTR6XCIsXG5cbiAgICAvLyBzaXplNCBpcyBmcm9tIGdseXBoIFUyMjFBIGluIHRoZSBmb250IEthVGVYX1NpemU0LVJlZ3VsYXJcbiAgICBzcXJ0U2l6ZTQ6IFwiTTQ3MyxcIiArICgyNzEzICsgaExpbmVQYWQpICsgXCJjMzM5LjMsLTE3OTkuMyw1MDkuMywtMjcwMCw1MTAsLTI3MDJcXG5jMy4zLC03LjMsOS4zLC0xMSwxOCwtMTFINDAwMDAwdjQwSDEwMTcuN3MtOTAuNSw0NzgsLTI3Ni4yLDE0NjZjLTE4NS43LDk4OCxcXG4tMjc5LjUsMTQ4MywtMjgxLjUsMTQ4NWMtMiw2LC0xMCw5LC0yNCw5Yy04LDAsLTEyLC0wLjcsLTEyLC0yYzAsLTEuMywtNS4zLC0zMixcXG4tMTYsLTkyYy01MC43LC0yOTMuMywtMTE5LjcsLTY5My4zLC0yMDcsLTEyMDBjMCwtMS4zLC01LjMsOC43LC0xNiwzMGMtMTAuNyxcXG4yMS4zLC0yMS4zLDQyLjcsLTMyLDY0cy0xNiwzMywtMTYsMzNzLTI2LC0yNiwtMjYsLTI2czc2LC0xNTMsNzYsLTE1M3M3NywtMTUxLFxcbjc3LC0xNTFjMC43LDAuNywzNS43LDIwMiwxMDUsNjA0YzY3LjMsNDAwLjcsMTAyLDYwMi43LDEwNCw2MDZ6XFxuTTEwMDEgXCIgKyBoTGluZVBhZCArIFwiSDQwMDAwMHY0MEgxMDE3elwiLFxuXG4gICAgLy8gVGhlIGRvdWJsZWxlZnRhcnJvdyBnZW9tZXRyeSBpcyBmcm9tIGdseXBoIFUrMjFEMCBpbiB0aGUgZm9udCBLYVRlWCBNYWluXG4gICAgZG91YmxlbGVmdGFycm93OiBcIk0yNjIgMTU3XFxubDEwLTEwYzM0LTM2IDYyLjctNzcgODYtMTIzIDMuMy04IDUtMTMuMyA1LTE2IDAtNS4zLTYuNy04LTIwLTgtNy4zXFxuIDAtMTIuMi41LTE0LjUgMS41LTIuMyAxLTQuOCA0LjUtNy41IDEwLjUtNDkuMyA5Ny4zLTEyMS43IDE2OS4zLTIxNyAyMTYtMjhcXG4gMTQtNTcuMyAyNS04OCAzMy02LjcgMi0xMSAzLjgtMTMgNS41LTIgMS43LTMgNC4yLTMgNy41czEgNS44IDMgNy41XFxuYzIgMS43IDYuMyAzLjUgMTMgNS41IDY4IDE3LjMgMTI4LjIgNDcuOCAxODAuNSA5MS41IDUyLjMgNDMuNyA5My44IDk2LjIgMTI0LjVcXG4gMTU3LjUgOS4zIDggMTUuMyAxMi4zIDE4IDEzaDZjMTItLjcgMTgtNCAxOC0xMCAwLTItMS43LTctNS0xNS0yMy4zLTQ2LTUyLTg3XFxuLTg2LTEyM2wtMTAtMTBoMzk5NzM4di00MEgyMThjMzI4IDAgMCAwIDAgMGwtMTAtOGMtMjYuNy0yMC02NS43LTQzLTExNy02OSAyLjdcXG4tMiA2LTMuNyAxMC01IDM2LjctMTYgNzIuMy0zNy4zIDEwNy02NGwxMC04aDM5OTc4MnYtNDB6XFxubTggMHY0MGgzOTk3MzB2LTQwem0wIDE5NHY0MGgzOTk3MzB2LTQwelwiLFxuXG4gICAgLy8gZG91YmxlcmlnaHRhcnJvdyBpcyBmcm9tIGdseXBoIFUrMjFEMiBpbiBmb250IEthVGVYIE1haW5cbiAgICBkb3VibGVyaWdodGFycm93OiBcIk0zOTk3MzggMzkybFxcbi0xMCAxMGMtMzQgMzYtNjIuNyA3Ny04NiAxMjMtMy4zIDgtNSAxMy4zLTUgMTYgMCA1LjMgNi43IDggMjAgOCA3LjMgMCAxMi4yLS41XFxuIDE0LjUtMS41IDIuMy0xIDQuOC00LjUgNy41LTEwLjUgNDkuMy05Ny4zIDEyMS43LTE2OS4zIDIxNy0yMTYgMjgtMTQgNTcuMy0yNSA4OFxcbi0zMyA2LjctMiAxMS0zLjggMTMtNS41IDItMS43IDMtNC4yIDMtNy41cy0xLTUuOC0zLTcuNWMtMi0xLjctNi4zLTMuNS0xMy01LjUtNjhcXG4tMTcuMy0xMjguMi00Ny44LTE4MC41LTkxLjUtNTIuMy00My43LTkzLjgtOTYuMi0xMjQuNS0xNTcuNS05LjMtOC0xNS4zLTEyLjMtMThcXG4tMTNoLTZjLTEyIC43LTE4IDQtMTggMTAgMCAyIDEuNyA3IDUgMTUgMjMuMyA0NiA1MiA4NyA4NiAxMjNsMTAgMTBIMHY0MGgzOTk3ODJcXG5jLTMyOCAwIDAgMCAwIDBsMTAgOGMyNi43IDIwIDY1LjcgNDMgMTE3IDY5LTIuNyAyLTYgMy43LTEwIDUtMzYuNyAxNi03Mi4zIDM3LjNcXG4tMTA3IDY0bC0xMCA4SDB2NDB6TTAgMTU3djQwaDM5OTczMHYtNDB6bTAgMTk0djQwaDM5OTczMHYtNDB6XCIsXG5cbiAgICAvLyBsZWZ0YXJyb3cgaXMgZnJvbSBnbHlwaCBVKzIxOTAgaW4gZm9udCBLYVRlWCBNYWluXG4gICAgbGVmdGFycm93OiBcIk00MDAwMDAgMjQxSDExMGwzLTNjNjguNy01Mi43IDExMy43LTEyMFxcbiAxMzUtMjAyIDQtMTQuNyA2LTIzIDYtMjUgMC03LjMtNy0xMS0yMS0xMS04IDAtMTMuMi44LTE1LjUgMi41LTIuMyAxLjctNC4yIDUuOFxcbi01LjUgMTIuNS0xLjMgNC43LTIuNyAxMC4zLTQgMTctMTIgNDguNy0zNC44IDkyLTY4LjUgMTMwUzY1LjMgMjI4LjMgMTggMjQ3XFxuYy0xMCA0LTE2IDcuNy0xOCAxMSAwIDguNyA2IDE0LjMgMTggMTcgNDcuMyAxOC43IDg3LjggNDcgMTIxLjUgODVTMTk2IDQ0MS4zIDIwOFxcbiA0OTBjLjcgMiAxLjMgNSAyIDlzMS4yIDYuNyAxLjUgOGMuMyAxLjMgMSAzLjMgMiA2czIuMiA0LjUgMy41IDUuNWMxLjMgMSAzLjNcXG4gMS44IDYgMi41czYgMSAxMCAxYzE0IDAgMjEtMy43IDIxLTExIDAtMi0yLTEwLjMtNi0yNS0yMC03OS4zLTY1LTE0Ni43LTEzNS0yMDJcXG4gbC0zLTNoMzk5ODkwek0xMDAgMjQxdjQwaDM5OTkwMHYtNDB6XCIsXG5cbiAgICAvLyBvdmVyYnJhY2UgaXMgZnJvbSBnbHlwaHMgVSsyM0E5LzIzQTgvMjNBNyBpbiBmb250IEthVGVYX1NpemU0LVJlZ3VsYXJcbiAgICBsZWZ0YnJhY2U6IFwiTTYgNTQ4bC02LTZ2LTM1bDYtMTFjNTYtMTA0IDEzNS4zLTE4MS4zIDIzOC0yMzIgNTcuMy0yOC43IDExN1xcbi00NSAxNzktNTBoMzk5NTc3djEyMEg0MDNjLTQzLjMgNy04MSAxNS0xMTMgMjYtMTAwLjcgMzMtMTc5LjcgOTEtMjM3IDE3NC0yLjdcXG4gNS02IDktMTAgMTMtLjcgMS03LjMgMS0yMCAxSDZ6XCIsXG5cbiAgICBsZWZ0YnJhY2V1bmRlcjogXCJNMCA2bDYtNmgxN2MxMi42ODggMCAxOS4zMTMuMyAyMCAxIDQgNCA3LjMxMyA4LjMgMTAgMTNcXG4gMzUuMzEzIDUxLjMgODAuODEzIDkzLjggMTM2LjUgMTI3LjUgNTUuNjg4IDMzLjcgMTE3LjE4OCA1NS44IDE4NC41IDY2LjUuNjg4XFxuIDAgMiAuMyA0IDEgMTguNjg4IDIuNyA3NiA0LjMgMTcyIDVoMzk5NDUwdjEyMEg0MjlsLTYtMWMtMTI0LjY4OC04LTIzNS02MS43XFxuLTMzMS0xNjFDNjAuNjg3IDEzOC43IDMyLjMxMiA5OS4zIDcgNTRMMCA0MVY2elwiLFxuXG4gICAgLy8gb3Zlcmdyb3VwIGlzIGZyb20gdGhlIE1uU3ltYm9sIHBhY2thZ2UgKHB1YmxpYyBkb21haW4pXG4gICAgbGVmdGdyb3VwOiBcIk00MDAwMDAgODBcXG5INDM1QzY0IDgwIDE2OC4zIDIyOS40IDIxIDI2MGMtNS45IDEuMi0xOCAwLTE4IDAtMiAwLTMtMS0zLTN2LTM4Qzc2IDYxIDI1NyAwXFxuIDQzNSAwaDM5OTU2NXpcIixcblxuICAgIGxlZnRncm91cHVuZGVyOiBcIk00MDAwMDAgMjYyXFxuSDQzNUM2NCAyNjIgMTY4LjMgMTEyLjYgMjEgODJjLTUuOS0xLjItMTggMC0xOCAwLTIgMC0zIDEtMyAzdjM4Yzc2IDE1OCAyNTcgMjE5XFxuIDQzNSAyMTloMzk5NTY1elwiLFxuXG4gICAgLy8gSGFycG9vbnMgYXJlIGZyb20gZ2x5cGggVSsyMUJEIGluIGZvbnQgS2FUZVggTWFpblxuICAgIGxlZnRoYXJwb29uOiBcIk0wIDI2N2MuNyA1LjMgMyAxMCA3IDE0aDM5OTk5M3YtNDBIOTNjMy4zXFxuLTMuMyAxMC4yLTkuNSAyMC41LTE4LjVzMTcuOC0xNS44IDIyLjUtMjAuNWM1MC43LTUyIDg4LTExMC4zIDExMi0xNzUgNC0xMS4zIDVcXG4tMTguMyAzLTIxLTEuMy00LTcuMy02LTE4LTYtOCAwLTEzIC43LTE1IDJzLTQuNyA2LjctOCAxNmMtNDIgOTguNy0xMDcuMyAxNzQuN1xcbi0xOTYgMjI4LTYuNyA0LjctMTAuNyA4LTEyIDEwLTEuMyAyLTIgNS43LTIgMTF6bTEwMC0yNnY0MGgzOTk5MDB2LTQwelwiLFxuXG4gICAgbGVmdGhhcnBvb25wbHVzOiBcIk0wIDI2N2MuNyA1LjMgMyAxMCA3IDE0aDM5OTk5M3YtNDBIOTNjMy4zLTMuMyAxMC4yLTkuNVxcbiAyMC41LTE4LjVzMTcuOC0xNS44IDIyLjUtMjAuNWM1MC43LTUyIDg4LTExMC4zIDExMi0xNzUgNC0xMS4zIDUtMTguMyAzLTIxLTEuM1xcbi00LTcuMy02LTE4LTYtOCAwLTEzIC43LTE1IDJzLTQuNyA2LjctOCAxNmMtNDIgOTguNy0xMDcuMyAxNzQuNy0xOTYgMjI4LTYuNyA0LjdcXG4tMTAuNyA4LTEyIDEwLTEuMyAyLTIgNS43LTIgMTF6bTEwMC0yNnY0MGgzOTk5MDB2LTQwek0wIDQzNXY0MGg0MDAwMDB2LTQwelxcbm0wIDB2NDBoNDAwMDAwdi00MHpcIixcblxuICAgIGxlZnRoYXJwb29uZG93bjogXCJNNyAyNDFjLTQgNC02LjMzMyA4LjY2Ny03IDE0IDAgNS4zMzMuNjY3IDkgMiAxMXM1LjMzM1xcbiA1LjMzMyAxMiAxMGM5MC42NjcgNTQgMTU2IDEzMCAxOTYgMjI4IDMuMzMzIDEwLjY2NyA2LjMzMyAxNi4zMzMgOSAxNyAyIC42NjcgNVxcbiAxIDkgMWg1YzEwLjY2NyAwIDE2LjY2Ny0yIDE4LTYgMi0yLjY2NyAxLTkuNjY3LTMtMjEtMzItODcuMzMzLTgyLjY2Ny0xNTcuNjY3XFxuLTE1Mi0yMTFsLTMtM2gzOTk5MDd2LTQwek05MyAyODEgSDQwMDAwMCB2LTQwTDcgMjQxelwiLFxuXG4gICAgbGVmdGhhcnBvb25kb3ducGx1czogXCJNNyA0MzVjLTQgNC02LjMgOC43LTcgMTQgMCA1LjMuNyA5IDIgMTFzNS4zIDUuMyAxMlxcbiAxMGM5MC43IDU0IDE1NiAxMzAgMTk2IDIyOCAzLjMgMTAuNyA2LjMgMTYuMyA5IDE3IDIgLjcgNSAxIDkgMWg1YzEwLjcgMCAxNi43XFxuLTIgMTgtNiAyLTIuNyAxLTkuNy0zLTIxLTMyLTg3LjMtODIuNy0xNTcuNy0xNTItMjExbC0zLTNoMzk5OTA3di00MEg3em05MyAwXFxudjQwaDM5OTkwMHYtNDB6TTAgMjQxdjQwaDM5OTkwMHYtNDB6bTAgMHY0MGgzOTk5MDB2LTQwelwiLFxuXG4gICAgLy8gaG9vayBpcyBmcm9tIGdseXBoIFUrMjFBOSBpbiBmb250IEthVGVYIE1haW5cbiAgICBsZWZ0aG9vazogXCJNNDAwMDAwIDI4MSBIMTAzcy0zMy0xMS4yLTYxLTMzLjVTMCAxOTcuMyAwIDE2NHMxNC4yLTYxLjIgNDIuNVxcbi04My41QzcwLjggNTguMiAxMDQgNDcgMTQyIDQ3IGMxNi43IDAgMjUgNi43IDI1IDIwIDAgMTItOC43IDE4LjctMjYgMjAtNDAgMy4zXFxuLTY4LjcgMTUuNy04NiAzNy0xMCAxMi0xNSAyNS4zLTE1IDQwIDAgMjIuNyA5LjggNDAuNyAyOS41IDU0IDE5LjcgMTMuMyA0My41IDIxXFxuIDcxLjUgMjNoMzk5ODU5ek0xMDMgMjgxdi00MGgzOTk4OTd2NDB6XCIsXG5cbiAgICBsZWZ0bGluZXNlZ21lbnQ6IFwiTTQwIDI4MSBWNDI4IEgwIFY5NCBINDAgVjI0MSBINDAwMDAwIHY0MHpcXG5NNDAgMjgxIFY0MjggSDAgVjk0IEg0MCBWMjQxIEg0MDAwMDAgdjQwelwiLFxuXG4gICAgbGVmdG1hcHN0bzogXCJNNDAgMjgxIFY0NDhIMFY3NEg0MFYyNDFINDAwMDAwdjQwelxcbk00MCAyODEgVjQ0OEgwVjc0SDQwVjI0MUg0MDAwMDB2NDB6XCIsXG5cbiAgICAvLyB0b2Zyb20gaXMgZnJvbSBnbHlwaCBVKzIxQzQgaW4gZm9udCBLYVRlWCBBTVMgUmVndWxhclxuICAgIGxlZnRUb0Zyb206IFwiTTAgMTQ3aDQwMDAwMHY0MEgwem0wIDIxNGM2OCA0MCAxMTUuNyA5NS43IDE0MyAxNjdoMjJjMTUuMyAwIDIzXFxuLS4zIDIzLTEgMC0xLjMtNS4zLTEzLjctMTYtMzctMTgtMzUuMy00MS4zLTY5LTcwLTEwMWwtNy04aDM5OTkwNXYtNDBIOTVsNy04XFxuYzI4LjctMzIgNTItNjUuNyA3MC0xMDEgMTAuNy0yMy4zIDE2LTM1LjcgMTYtMzcgMC0uNy03LjctMS0yMy0xaC0yMkMxMTUuNyAyNjUuM1xcbiA2OCAzMjEgMCAzNjF6bTAtMTc0di00MGgzOTk5MDB2NDB6bTEwMCAxNTR2NDBoMzk5OTAwdi00MHpcIixcblxuICAgIGxvbmdlcXVhbDogXCJNMCA1MCBoNDAwMDAwIHY0MEgweiBtMCAxOTRoNDAwMDB2NDBIMHpcXG5NMCA1MCBoNDAwMDAwIHY0MEgweiBtMCAxOTRoNDAwMDB2NDBIMHpcIixcblxuICAgIG1pZGJyYWNlOiBcIk0yMDA0MjggMzM0XFxuYy0xMDAuNy04LjMtMTk1LjMtNDQtMjgwLTEwOC01NS4zLTQyLTEwMS43LTkzLTEzOS0xNTNsLTktMTRjLTIuNyA0LTUuNyA4LjctOSAxNFxcbi01My4zIDg2LjctMTIzLjcgMTUzLTIxMSAxOTktNjYuNyAzNi0xMzcuMyA1Ni4zLTIxMiA2MkgwVjIxNGgxOTk1NjhjMTc4LjMtMTEuN1xcbiAzMTEuNy03OC4zIDQwMy0yMDEgNi04IDkuNy0xMiAxMS0xMiAuNy0uNyA2LjctMSAxOC0xczE3LjMuMyAxOCAxYzEuMyAwIDUgNCAxMVxcbiAxMiA0NC43IDU5LjMgMTAxLjMgMTA2LjMgMTcwIDE0MXMxNDUuMyA1NC4zIDIyOSA2MGgxOTk1NzJ2MTIwelwiLFxuXG4gICAgbWlkYnJhY2V1bmRlcjogXCJNMTk5NTcyIDIxNFxcbmMxMDAuNyA4LjMgMTk1LjMgNDQgMjgwIDEwOCA1NS4zIDQyIDEwMS43IDkzIDEzOSAxNTNsOSAxNGMyLjctNCA1LjctOC43IDktMTRcXG4gNTMuMy04Ni43IDEyMy43LTE1MyAyMTEtMTk5IDY2LjctMzYgMTM3LjMtNTYuMyAyMTItNjJoMTk5NTY4djEyMEgyMDA0MzJjLTE3OC4zXFxuIDExLjctMzExLjcgNzguMy00MDMgMjAxLTYgOC05LjcgMTItMTEgMTItLjcuNy02LjcgMS0xOCAxcy0xNy4zLS4zLTE4LTFjLTEuMyAwXFxuLTUtNC0xMS0xMi00NC43LTU5LjMtMTAxLjMtMTA2LjMtMTcwLTE0MXMtMTQ1LjMtNTQuMy0yMjktNjBIMFYyMTR6XCIsXG5cbiAgICByaWdodGFycm93OiBcIk0wIDI0MXY0MGgzOTk4OTFjLTQ3LjMgMzUuMy04NCA3OC0xMTAgMTI4XFxuLTE2LjcgMzItMjcuNyA2My43LTMzIDk1IDAgMS4zLS4yIDIuNy0uNSA0LS4zIDEuMy0uNSAyLjMtLjUgMyAwIDcuMyA2LjcgMTEgMjBcXG4gMTEgOCAwIDEzLjItLjggMTUuNS0yLjUgMi4zLTEuNyA0LjItNS41IDUuNS0xMS41IDItMTMuMyA1LjctMjcgMTEtNDEgMTQuNy00NC43XFxuIDM5LTg0LjUgNzMtMTE5LjVzNzMuNy02MC4yIDExOS03NS41YzYtMiA5LTUuNyA5LTExcy0zLTktOS0xMWMtNDUuMy0xNS4zLTg1XFxuLTQwLjUtMTE5LTc1LjVzLTU4LjMtNzQuOC03My0xMTkuNWMtNC43LTE0LTguMy0yNy4zLTExLTQwLTEuMy02LjctMy4yLTEwLjgtNS41XFxuLTEyLjUtMi4zLTEuNy03LjUtMi41LTE1LjUtMi41LTE0IDAtMjEgMy43LTIxIDExIDAgMiAyIDEwLjMgNiAyNSAyMC43IDgzLjMgNjdcXG4gMTUxLjcgMTM5IDIwNXptMCAwdjQwaDM5OTkwMHYtNDB6XCIsXG5cbiAgICByaWdodGJyYWNlOiBcIk00MDAwMDAgNTQybFxcbi02IDZoLTE3Yy0xMi43IDAtMTkuMy0uMy0yMC0xLTQtNC03LjMtOC4zLTEwLTEzLTM1LjMtNTEuMy04MC44LTkzLjgtMTM2LjUtMTI3LjVcXG5zLTExNy4yLTU1LjgtMTg0LjUtNjYuNWMtLjcgMC0yLS4zLTQtMS0xOC43LTIuNy03Ni00LjMtMTcyLTVIMFYyMTRoMzk5NTcxbDYgMVxcbmMxMjQuNyA4IDIzNSA2MS43IDMzMSAxNjEgMzEuMyAzMy4zIDU5LjcgNzIuNyA4NSAxMThsNyAxM3YzNXpcIixcblxuICAgIHJpZ2h0YnJhY2V1bmRlcjogXCJNMzk5OTk0IDBsNiA2djM1bC02IDExYy01NiAxMDQtMTM1LjMgMTgxLjMtMjM4IDIzMi01Ny4zXFxuIDI4LjctMTE3IDQ1LTE3OSA1MEgtMzAwVjIxNGgzOTk4OTdjNDMuMy03IDgxLTE1IDExMy0yNiAxMDAuNy0zMyAxNzkuNy05MSAyMzdcXG4tMTc0IDIuNy01IDYtOSAxMC0xMyAuNy0xIDcuMy0xIDIwLTFoMTd6XCIsXG5cbiAgICByaWdodGdyb3VwOiBcIk0wIDgwaDM5OTU2NWMzNzEgMCAyNjYuNyAxNDkuNCA0MTQgMTgwIDUuOSAxLjIgMTggMCAxOCAwIDIgMFxcbiAzLTEgMy0zdi0zOGMtNzYtMTU4LTI1Ny0yMTktNDM1LTIxOUgwelwiLFxuXG4gICAgcmlnaHRncm91cHVuZGVyOiBcIk0wIDI2MmgzOTk1NjVjMzcxIDAgMjY2LjctMTQ5LjQgNDE0LTE4MCA1LjktMS4yIDE4IDAgMThcXG4gMCAyIDAgMyAxIDMgM3YzOGMtNzYgMTU4LTI1NyAyMTktNDM1IDIxOUgwelwiLFxuXG4gICAgcmlnaHRoYXJwb29uOiBcIk0wIDI0MXY0MGgzOTk5OTNjNC43LTQuNyA3LTkuMyA3LTE0IDAtOS4zXFxuLTMuNy0xNS4zLTExLTE4LTkyLjctNTYuNy0xNTktMTMzLjctMTk5LTIzMS0zLjMtOS4zLTYtMTQuNy04LTE2LTItMS4zLTctMi0xNS0yXFxuLTEwLjcgMC0xNi43IDItMTggNi0yIDIuNy0xIDkuNyAzIDIxIDE1LjMgNDIgMzYuNyA4MS44IDY0IDExOS41IDI3LjMgMzcuNyA1OFxcbiA2OS4yIDkyIDk0LjV6bTAgMHY0MGgzOTk5MDB2LTQwelwiLFxuXG4gICAgcmlnaHRoYXJwb29ucGx1czogXCJNMCAyNDF2NDBoMzk5OTkzYzQuNy00LjcgNy05LjMgNy0xNCAwLTkuMy0zLjctMTUuMy0xMVxcbi0xOC05Mi43LTU2LjctMTU5LTEzMy43LTE5OS0yMzEtMy4zLTkuMy02LTE0LjctOC0xNi0yLTEuMy03LTItMTUtMi0xMC43IDAtMTYuN1xcbiAyLTE4IDYtMiAyLjctMSA5LjcgMyAyMSAxNS4zIDQyIDM2LjcgODEuOCA2NCAxMTkuNSAyNy4zIDM3LjcgNTggNjkuMiA5MiA5NC41elxcbm0wIDB2NDBoMzk5OTAwdi00MHogbTEwMCAxOTR2NDBoMzk5OTAwdi00MHptMCAwdjQwaDM5OTkwMHYtNDB6XCIsXG5cbiAgICByaWdodGhhcnBvb25kb3duOiBcIk0zOTk3NDcgNTExYzAgNy4zIDYuNyAxMSAyMCAxMSA4IDAgMTMtLjggMTUtMi41czQuNy02LjhcXG4gOC0xNS41YzQwLTk0IDk5LjMtMTY2LjMgMTc4LTIxNyAxMy4zLTggMjAuMy0xMi4zIDIxLTEzIDUuMy0zLjMgOC41LTUuOCA5LjVcXG4tNy41IDEtMS43IDEuNS01LjIgMS41LTEwLjVzLTIuMy0xMC4zLTctMTVIMHY0MGgzOTk5MDhjLTM0IDI1LjMtNjQuNyA1Ny05MiA5NVxcbi0yNy4zIDM4LTQ4LjcgNzcuNy02NCAxMTktMy4zIDguNy01IDE0LTUgMTZ6TTAgMjQxdjQwaDM5OTkwMHYtNDB6XCIsXG5cbiAgICByaWdodGhhcnBvb25kb3ducGx1czogXCJNMzk5NzQ3IDcwNWMwIDcuMyA2LjcgMTEgMjAgMTEgOCAwIDEzLS44XFxuIDE1LTIuNXM0LjctNi44IDgtMTUuNWM0MC05NCA5OS4zLTE2Ni4zIDE3OC0yMTcgMTMuMy04IDIwLjMtMTIuMyAyMS0xMyA1LjMtMy4zXFxuIDguNS01LjggOS41LTcuNSAxLTEuNyAxLjUtNS4yIDEuNS0xMC41cy0yLjMtMTAuMy03LTE1SDB2NDBoMzk5OTA4Yy0zNCAyNS4zXFxuLTY0LjcgNTctOTIgOTUtMjcuMyAzOC00OC43IDc3LjctNjQgMTE5LTMuMyA4LjctNSAxNC01IDE2ek0wIDQzNXY0MGgzOTk5MDB2LTQwelxcbm0wLTE5NHY0MGg0MDAwMDB2LTQwem0wIDB2NDBoNDAwMDAwdi00MHpcIixcblxuICAgIHJpZ2h0aG9vazogXCJNMzk5ODU5IDI0MWMtNzY0IDAgMCAwIDAgMCA0MC0zLjMgNjguNy0xNS43IDg2LTM3IDEwLTEyIDE1LTI1LjNcXG4gMTUtNDAgMC0yMi43LTkuOC00MC43LTI5LjUtNTQtMTkuNy0xMy4zLTQzLjUtMjEtNzEuNS0yMy0xNy4zLTEuMy0yNi04LTI2LTIwIDBcXG4tMTMuMyA4LjctMjAgMjYtMjAgMzggMCA3MSAxMS4yIDk5IDMzLjUgMCAwIDcgNS42IDIxIDE2LjcgMTQgMTEuMiAyMSAzMy41IDIxXFxuIDY2LjhzLTE0IDYxLjItNDIgODMuNWMtMjggMjIuMy02MSAzMy41LTk5IDMzLjVMMCAyNDF6IE0wIDI4MXYtNDBoMzk5ODU5djQwelwiLFxuXG4gICAgcmlnaHRsaW5lc2VnbWVudDogXCJNMzk5OTYwIDI0MSBWOTQgaDQwIFY0MjggaC00MCBWMjgxIEgwIHYtNDB6XFxuTTM5OTk2MCAyNDEgVjk0IGg0MCBWNDI4IGgtNDAgVjI4MSBIMCB2LTQwelwiLFxuXG4gICAgcmlnaHRUb0Zyb206IFwiTTQwMDAwMCAxNjdjLTcwLjctNDItMTE4LTk3LjctMTQyLTE2N2gtMjNjLTE1LjMgMC0yMyAuMy0yM1xcbiAxIDAgMS4zIDUuMyAxMy43IDE2IDM3IDE4IDM1LjMgNDEuMyA2OSA3MCAxMDFsNyA4SDB2NDBoMzk5OTA1bC03IDhjLTI4LjcgMzJcXG4tNTIgNjUuNy03MCAxMDEtMTAuNyAyMy4zLTE2IDM1LjctMTYgMzcgMCAuNyA3LjcgMSAyMyAxaDIzYzI0LTY5LjMgNzEuMy0xMjUgMTQyXFxuLTE2N3ogTTEwMCAxNDd2NDBoMzk5OTAwdi00MHpNMCAzNDF2NDBoMzk5OTAwdi00MHpcIixcblxuICAgIC8vIHR3b2hlYWRsZWZ0YXJyb3cgaXMgZnJvbSBnbHlwaCBVKzIxOUUgaW4gZm9udCBLYVRlWCBBTVMgUmVndWxhclxuICAgIHR3b2hlYWRsZWZ0YXJyb3c6IFwiTTAgMTY3YzY4IDQwXFxuIDExNS43IDk1LjcgMTQzIDE2N2gyMmMxNS4zIDAgMjMtLjMgMjMtMSAwLTEuMy01LjMtMTMuNy0xNi0zNy0xOC0zNS4zLTQxLjMtNjlcXG4tNzAtMTAxbC03LThoMTI1bDkgN2M1MC43IDM5LjMgODUgODYgMTAzIDE0MGg0NmMwLTQuNy02LjMtMTguNy0xOS00Mi0xOC0zNS4zXFxuLTQwLTY3LjMtNjYtOTZsLTktOWgzOTk3MTZ2LTQwSDI4NGw5LTljMjYtMjguNyA0OC02MC43IDY2LTk2IDEyLjctMjMuMzMzIDE5XFxuLTM3LjMzMyAxOS00MmgtNDZjLTE4IDU0LTUyLjMgMTAwLjctMTAzIDE0MGwtOSA3SDk1bDctOGMyOC43LTMyIDUyLTY1LjcgNzAtMTAxXFxuIDEwLjctMjMuMzMzIDE2LTM1LjcgMTYtMzcgMC0uNy03LjctMS0yMy0xaC0yMkMxMTUuNyA3MS4zIDY4IDEyNyAwIDE2N3pcIixcblxuICAgIHR3b2hlYWRyaWdodGFycm93OiBcIk00MDAwMDAgMTY3XFxuYy02OC00MC0xMTUuNy05NS43LTE0My0xNjdoLTIyYy0xNS4zIDAtMjMgLjMtMjMgMSAwIDEuMyA1LjMgMTMuNyAxNiAzNyAxOCAzNS4zXFxuIDQxLjMgNjkgNzAgMTAxbDcgOGgtMTI1bC05LTdjLTUwLjctMzkuMy04NS04Ni0xMDMtMTQwaC00NmMwIDQuNyA2LjMgMTguNyAxOSA0MlxcbiAxOCAzNS4zIDQwIDY3LjMgNjYgOTZsOSA5SDB2NDBoMzk5NzE2bC05IDljLTI2IDI4LjctNDggNjAuNy02NiA5Ni0xMi43IDIzLjMzM1xcbi0xOSAzNy4zMzMtMTkgNDJoNDZjMTgtNTQgNTIuMy0xMDAuNyAxMDMtMTQwbDktN2gxMjVsLTcgOGMtMjguNyAzMi01MiA2NS43LTcwXFxuIDEwMS0xMC43IDIzLjMzMy0xNiAzNS43LTE2IDM3IDAgLjcgNy43IDEgMjMgMWgyMmMyNy4zLTcxLjMgNzUtMTI3IDE0My0xNjd6XCIsXG5cbiAgICAvLyB0aWxkZTEgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGEgZ2x5cGggZnJvbSB0aGUgTW5TeW1ib2wgcGFja2FnZVxuICAgIHRpbGRlMTogXCJNMjAwIDU1LjUzOGMtNzcgMC0xNjggNzMuOTUzLTE3NyA3My45NTMtMyAwLTdcXG4tMi4xNzUtOS01LjQzN0wyIDk3Yy0xLTItMi00LTItNiAwLTQgMi03IDUtOWwyMC0xMkMxMTYgMTIgMTcxIDAgMjA3IDBjODYgMFxcbiAxMTQgNjggMTkxIDY4IDc4IDAgMTY4LTY4IDE3Ny02OCA0IDAgNyAyIDkgNWwxMiAxOWMxIDIuMTc1IDIgNC4zNSAyIDYuNTI1IDBcXG4gNC4zNS0yIDcuNjEzLTUgOS43ODhsLTE5IDEzLjA1Yy05MiA2My4wNzctMTE2LjkzNyA3NS4zMDgtMTgzIDc2LjEyOFxcbi02OC4yNjcuODQ3LTExMy03My45NTItMTkxLTczLjk1MnpcIixcblxuICAgIC8vIGRpdHRvIHRpbGRlMiwgdGlsZGUzLCAmIHRpbGRlNFxuICAgIHRpbGRlMjogXCJNMzQ0IDU1LjI2NmMtMTQyIDAtMzAwLjYzOCA4MS4zMTYtMzExLjUgODYuNDE4XFxuLTguMDEgMy43NjItMjIuNSAxMC45MS0yMy41IDUuNTYyTDEgMTIwYy0xLTItMS0zLTEtNCAwLTUgMy05IDgtMTBsMTguNC05QzE2MC45XFxuIDMxLjkgMjgzIDAgMzU4IDBjMTQ4IDAgMTg4IDEyMiAzMzEgMTIyczMxNC05NyAzMjYtOTdjNCAwIDggMiAxMCA3bDcgMjEuMTE0XFxuYzEgMi4xNCAxIDMuMjEgMSA0LjI4IDAgNS4zNDctMyA5LjYyNi03IDEwLjY5NmwtMjIuMyAxMi42MjJDODUyLjYgMTU4LjM3MiA3NTFcXG4gMTgxLjQ3NiA2NzYgMTgxLjQ3NmMtMTQ5IDAtMTg5LTEyNi4yMS0zMzItMTI2LjIxelwiLFxuXG4gICAgdGlsZGUzOiBcIk03ODYgNTlDNDU3IDU5IDMyIDE3NS4yNDIgMTMgMTc1LjI0MmMtNiAwLTEwLTMuNDU3XFxuLTExLTEwLjM3TC4xNSAxMzhjLTEtNyAzLTEyIDEwLTEzbDE5LjItNi40QzM3OC40IDQwLjcgNjM0LjMgMCA4MDQuMyAwYzMzNyAwXFxuIDQxMS44IDE1NyA3NDYuOCAxNTcgMzI4IDAgNzU0LTExMiA3NzMtMTEyIDUgMCAxMCAzIDExIDlsMSAxNC4wNzVjMSA4LjA2Ni0uNjk3XFxuIDE2LjU5NS02LjY5NyAxNy40OTJsLTIxLjA1MiA3LjMxYy0zNjcuOSA5OC4xNDYtNjA5LjE1IDEyMi42OTYtNzc4LjE1IDEyMi42OTZcXG4gLTMzOCAwLTQwOS0xNTYuNTczLTc0NC0xNTYuNTczelwiLFxuXG4gICAgdGlsZGU0OiBcIk03ODYgNThDNDU3IDU4IDMyIDE3Ny40ODcgMTMgMTc3LjQ4N2MtNiAwLTEwLTMuMzQ1XFxuLTExLTEwLjAzNUwuMTUgMTQzYy0xLTcgMy0xMiAxMC0xM2wyMi02LjdDMzgxLjIgMzUgNjM3LjE1IDAgODA3LjE1IDBjMzM3IDAgNDA5XFxuIDE3NyA3NDQgMTc3IDMyOCAwIDc1NC0xMjcgNzczLTEyNyA1IDAgMTAgMyAxMSA5bDEgMTQuNzk0YzEgNy44MDUtMyAxMy4zOC05XFxuIDE0LjQ5NWwtMjAuNyA1LjU3NGMtMzY2Ljg1IDk5Ljc5LTYwNy4zIDEzOS4zNzItNzc2LjMgMTM5LjM3Mi0zMzggMC00MDlcXG4gLTE3NS4yMzYtNzQ0LTE3NS4yMzZ6XCIsXG5cbiAgICAvLyB2ZWMgaXMgZnJvbSBnbHlwaCBVKzIwRDcgaW4gZm9udCBLYVRlWCBNYWluXG4gICAgdmVjOiBcIk0zNzcgMjBjMC01LjMzMyAxLjgzMy0xMCA1LjUtMTRTMzkxIDAgMzk3IDBjNC42NjcgMCA4LjY2NyAxLjY2NyAxMiA1XFxuMy4zMzMgMi42NjcgNi42NjcgOSAxMCAxOSA2LjY2NyAyNC42NjcgMjAuMzMzIDQzLjY2NyA0MSA1NyA3LjMzMyA0LjY2NyAxMVxcbjEwLjY2NyAxMSAxOCAwIDYtMSAxMC0zIDEycy02LjY2NyA1LTE0IDljLTI4LjY2NyAxNC42NjctNTMuNjY3IDM1LjY2Ny03NSA2M1xcbi0xLjMzMyAxLjMzMy0zLjE2NyAzLjUtNS41IDYuNXMtNCA0LjgzMy01IDUuNWMtMSAuNjY3LTIuNSAxLjMzMy00LjUgMnMtNC4zMzMgMVxcbi03IDFjLTQuNjY3IDAtOS4xNjctMS44MzMtMTMuNS01LjVTMzM3IDE4NCAzMzcgMTc4YzAtMTIuNjY3IDE1LjY2Ny0zMi4zMzMgNDctNTlcXG5IMjEzbC0xNzEtMWMtOC42NjctNi0xMy0xMi4zMzMtMTMtMTkgMC00LjY2NyA0LjMzMy0xMS4zMzMgMTMtMjBoMzU5XFxuYy0xNi0yNS4zMzMtMjQtNDUtMjQtNTl6XCIsXG5cbiAgICAvLyB3aWRlaGF0MSBpcyBhIG1vZGlmaWVkIHZlcnNpb24gb2YgYSBnbHlwaCBmcm9tIHRoZSBNblN5bWJvbCBwYWNrYWdlXG4gICAgd2lkZWhhdDE6IFwiTTUyOSAwaDVsNTE5IDExNWM1IDEgOSA1IDkgMTAgMCAxLTEgMi0xIDNsLTQgMjJcXG5jLTEgNS01IDktMTEgOWgtMkw1MzIgNjcgMTkgMTU5aC0yYy01IDAtOS00LTExLTlsLTUtMjJjLTEtNiAyLTEyIDgtMTN6XCIsXG5cbiAgICAvLyBkaXR0byB3aWRlaGF0Miwgd2lkZWhhdDMsICYgd2lkZWhhdDRcbiAgICB3aWRlaGF0MjogXCJNMTE4MSAwaDJsMTE3MSAxNzZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXFxuLTExIDEwaC0xTDExODIgNjcgMTUgMjIwaC0xYy02IDAtMTAtNC0xMS0xMGwtMi0yM2MtMS02IDQtMTEgMTAtMTF6XCIsXG5cbiAgICB3aWRlaGF0MzogXCJNMTE4MSAwaDJsMTE3MSAyMzZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXFxuLTExIDEwaC0xTDExODIgNjcgMTUgMjgwaC0xYy02IDAtMTAtNC0xMS0xMGwtMi0yM2MtMS02IDQtMTEgMTAtMTF6XCIsXG5cbiAgICB3aWRlaGF0NDogXCJNMTE4MSAwaDJsMTE3MSAyOTZjNiAwIDEwIDUgMTAgMTFsLTIgMjNjLTEgNi01IDEwXFxuLTExIDEwaC0xTDExODIgNjcgMTUgMzQwaC0xYy02IDAtMTAtNC0xMS0xMGwtMi0yM2MtMS02IDQtMTEgMTAtMTF6XCIsXG5cbiAgICAvLyBiYXJhYm92ZWxlZnRhcnJvdyBpcyBmcm9tIGdseXBoIFUrMjFDNCBpbiBmb250IEthVGVYIEFNUyBSZWd1bGFyXG4gICAgYmFyYWJvdmVsZWZ0YXJyb3c6IFwiTTEgNTAwYzMwLjY3LTE4IDU5LTQxLjgzMyA4NS03MS41czQ1LTYxLjE3IDU3LTk0LjVoMjNcXG5jMTUuMzMgMCAyMyAuMzMgMjMgMSAwIC42Ny01LjMzIDEyLjY3LTE2IDM2LTE2LjY3IDM0LjY3LTM5IDY3LjMzLTY3IDk4bC0xMCAxMVxcbmgzOTkwNHY0MEg5Nmw5IDEwYzI3LjMzIDMwLjY3IDUwLjY3IDY1IDcwIDEwM2wxNCAzM2MwIC42Ny03LjY3IDEtMjMgMWgtMjJcXG5DMTE2LjY3IDU5Ni4zMyA2OSA1NDAuNjcgMSA1MDB6IE05NiA0ODAgSDQwMDAwMCB2NDAgSDk2elxcbk0xIDE0NyBIMzk5OTA1IHY0MCAgSDF6IE0wIDE0NyBIMzk5OTA1IHY0MCAgSDB6XCIsXG5cbiAgICAvLyBkaXR0byByaWdodGFycm93YWJvdmViYXJcbiAgICByaWdodGFycm93YWJvdmViYXI6IFwiTTQwMDAwMCAxNjdjLTcwLjY3IDQyLTExOCA5Ny42Ny0xNDIgMTY3aC0yM2MtMTUuMzMgMFxcbi0yMy0uMzMtMjMtMSAwLTEuMzMgNS4zMy0xMy42NyAxNi0zNyAxOC0zNS4zMyA0MS4zMy02OSA3MC0xMDFsNy04aC0zOTkwNVxcbnYtNDBoMzk5MDVjLTM4OSAwIDAgMCAwIDBsLTctOGMtMjguNjctMzItNTItNjUuNjctNzAtMTAxLTEwLjY3LTIzLjMzLTE2LTM1LjY3XFxuLTE2LTM3IDAtLjY3IDcuNjctMSAyMy0xaDIzYzExLjMzIDMzLjMzIDMwIDY0LjgzMyA1NiA5NC41czU0LjY3IDUzLjgzIDg2IDcyLjV6XFxuTTAgMTQ3IEgzOTk5MDUgdjQwICBIMHogTTk2IDQ4MCBINDAwMDAwIHY0MCBIMHogTTk2IDQ4MCBINDAwMDAwIHY0MCBIMHpcIixcblxuICAgIC8vIFRoZSBuZXh0IGVpZ2h0IHBhdGhzIHN1cHBvcnQgcmVhY3Rpb24gYXJyb3dzIGZyb20gdGhlIG1oY2hlbSBwYWNrYWdlLlxuXG4gICAgLy8gVGhlIHNob3J0IGxlZnQgaGFycG9vbiBoYXMgMC41ZW0gKGkuZS4gNTAwIHVuaXRzKSBrZXJuIG9uIHRoZSBsZWZ0IGVuZC5cbiAgICAvLyBSZWYgZnJvbSBtaGNoZW0uc3R5OiBcXHJsYXB7XFxyYWlzZWJveHstLjIyZXh9eyRcXGtlcm4wLjVlbVxuICAgIGJhcmFib3Zlc2hvcnRsZWZ0aGFycG9vbjogXCJNNTA3LDQzNWMtNCw0LC02LjMsOC43LC03LDE0YzAsNS4zLDAuNyw5LDIsMTFcXG5jMS4zLDIsNS4zLDUuMywxMiwxMGM5MC43LDU0LDE1NiwxMzAsMTk2LDIyOGMzLjMsMTAuNyw2LjMsMTYuMyw5LDE3XFxuYzIsMC43LDUsMSw5LDFjMCwwLDUsMCw1LDBjMTAuNywwLDE2LjcsLTIsMTgsLTZjMiwtMi43LDEsLTkuNywtMywtMjFcXG5jLTMyLC04Ny4zLC04Mi43LC0xNTcuNywtMTUyLC0yMTFjMCwwLC0zLC0zLC0zLC0zbDM5OTM1MSwwbDAsLTQwXFxuYy0zOTg1NzAsMCwtMzk5NDM3LDAsLTM5OTQzNywweiBNNTkzIDQzNSB2NDAgSDM5OTUwMCB2LTQwelxcbk0wIDI4MSB2LTQwIEgzOTk5MDggdjQweiBNMCAyODEgdi00MCBIMzk5OTA4IHY0MHpcIixcblxuICAgIHJpZ2h0aGFycG9vbmFib3Zlc2hvcnRiYXI6IFwiTTAsMjQxIGwwLDQwYzM5OTEyNiwwLDM5OTk5MywwLDM5OTk5MywwXFxuYzQuNywtNC43LDcsLTkuMyw3LC0xNGMwLC05LjMsLTMuNywtMTUuMywtMTEsLTE4Yy05Mi43LC01Ni43LC0xNTksLTEzMy43LC0xOTksXFxuLTIzMWMtMy4zLC05LjMsLTYsLTE0LjcsLTgsLTE2Yy0yLC0xLjMsLTcsLTIsLTE1LC0yYy0xMC43LDAsLTE2LjcsMiwtMTgsNlxcbmMtMiwyLjcsLTEsOS43LDMsMjFjMTUuMyw0MiwzNi43LDgxLjgsNjQsMTE5LjVjMjcuMywzNy43LDU4LDY5LjIsOTIsOTQuNXpcXG5NMCAyNDEgdjQwIEgzOTk5MDggdi00MHogTTAgNDc1IHYtNDAgSDM5OTUwMCB2NDB6IE0wIDQ3NSB2LTQwIEgzOTk1MDAgdjQwelwiLFxuXG4gICAgc2hvcnRiYXJhYm92ZWxlZnRoYXJwb29uOiBcIk03LDQzNWMtNCw0LC02LjMsOC43LC03LDE0YzAsNS4zLDAuNyw5LDIsMTFcXG5jMS4zLDIsNS4zLDUuMywxMiwxMGM5MC43LDU0LDE1NiwxMzAsMTk2LDIyOGMzLjMsMTAuNyw2LjMsMTYuMyw5LDE3YzIsMC43LDUsMSw5LFxcbjFjMCwwLDUsMCw1LDBjMTAuNywwLDE2LjcsLTIsMTgsLTZjMiwtMi43LDEsLTkuNywtMywtMjFjLTMyLC04Ny4zLC04Mi43LC0xNTcuNyxcXG4tMTUyLC0yMTFjMCwwLC0zLC0zLC0zLC0zbDM5OTkwNywwbDAsLTQwYy0zOTkxMjYsMCwtMzk5OTkzLDAsLTM5OTk5Mywwelxcbk05MyA0MzUgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHogTTUwMCAyNDEgdjQwIEg0MDAwMDAgdi00MHpcIixcblxuICAgIHNob3J0cmlnaHRoYXJwb29uYWJvdmViYXI6IFwiTTUzLDI0MWwwLDQwYzM5ODU3MCwwLDM5OTQzNywwLDM5OTQzNywwXFxuYzQuNywtNC43LDcsLTkuMyw3LC0xNGMwLC05LjMsLTMuNywtMTUuMywtMTEsLTE4Yy05Mi43LC01Ni43LC0xNTksLTEzMy43LC0xOTksXFxuLTIzMWMtMy4zLC05LjMsLTYsLTE0LjcsLTgsLTE2Yy0yLC0xLjMsLTcsLTIsLTE1LC0yYy0xMC43LDAsLTE2LjcsMiwtMTgsNlxcbmMtMiwyLjcsLTEsOS43LDMsMjFjMTUuMyw0MiwzNi43LDgxLjgsNjQsMTE5LjVjMjcuMywzNy43LDU4LDY5LjIsOTIsOTQuNXpcXG5NNTAwIDI0MSB2NDAgSDM5OTQwOCB2LTQweiBNNTAwIDQzNSB2NDAgSDQwMDAwMCB2LTQwelwiXG59O1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKHsgcGF0aDogcGF0aCB9KTtcblxuLyoqKi8gfSksXG4vKiAxMTIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGV4cG9ydCAoYmluZGluZykgKi8gX193ZWJwYWNrX3JlcXVpcmVfXy5kKF9fd2VicGFja19leHBvcnRzX18sIFwiYVwiLCBmdW5jdGlvbigpIHsgcmV0dXJuIHNwYWNpbmdzOyB9KTtcbi8qIGhhcm1vbnkgZXhwb3J0IChiaW5kaW5nKSAqLyBfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXywgXCJiXCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gdGlnaHRTcGFjaW5nczsgfSk7XG4vKipcbiAqIERlc2NyaWJlcyBzcGFjZXMgYmV0d2VlbiBkaWZmZXJlbnQgY2xhc3NlcyBvZiBhdG9tcy5cbiAqL1xuXG52YXIgdGhpbnNwYWNlID0ge1xuICAgIG51bWJlcjogMyxcbiAgICB1bml0OiBcIm11XCJcbn07XG52YXIgbWVkaXVtc3BhY2UgPSB7XG4gICAgbnVtYmVyOiA0LFxuICAgIHVuaXQ6IFwibXVcIlxufTtcbnZhciB0aGlja3NwYWNlID0ge1xuICAgIG51bWJlcjogNSxcbiAgICB1bml0OiBcIm11XCJcbn07XG5cbi8vIFNwYWNpbmcgcmVsYXRpb25zaGlwcyBmb3IgZGlzcGxheSBhbmQgdGV4dCBzdHlsZXNcbnZhciBzcGFjaW5ncyA9IHtcbiAgICBtb3JkOiB7XG4gICAgICAgIG1vcDogdGhpbnNwYWNlLFxuICAgICAgICBtYmluOiBtZWRpdW1zcGFjZSxcbiAgICAgICAgbXJlbDogdGhpY2tzcGFjZSxcbiAgICAgICAgbWlubmVyOiB0aGluc3BhY2VcbiAgICB9LFxuICAgIG1vcDoge1xuICAgICAgICBtb3JkOiB0aGluc3BhY2UsXG4gICAgICAgIG1vcDogdGhpbnNwYWNlLFxuICAgICAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgICAgICBtaW5uZXI6IHRoaW5zcGFjZVxuICAgIH0sXG4gICAgbWJpbjoge1xuICAgICAgICBtb3JkOiBtZWRpdW1zcGFjZSxcbiAgICAgICAgbW9wOiBtZWRpdW1zcGFjZSxcbiAgICAgICAgbW9wZW46IG1lZGl1bXNwYWNlLFxuICAgICAgICBtaW5uZXI6IG1lZGl1bXNwYWNlXG4gICAgfSxcbiAgICBtcmVsOiB7XG4gICAgICAgIG1vcmQ6IHRoaWNrc3BhY2UsXG4gICAgICAgIG1vcDogdGhpY2tzcGFjZSxcbiAgICAgICAgbW9wZW46IHRoaWNrc3BhY2UsXG4gICAgICAgIG1pbm5lcjogdGhpY2tzcGFjZVxuICAgIH0sXG4gICAgbW9wZW46IHt9LFxuICAgIG1jbG9zZToge1xuICAgICAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICAgICAgbWJpbjogbWVkaXVtc3BhY2UsXG4gICAgICAgIG1yZWw6IHRoaWNrc3BhY2UsXG4gICAgICAgIG1pbm5lcjogdGhpbnNwYWNlXG4gICAgfSxcbiAgICBtcHVuY3Q6IHtcbiAgICAgICAgbW9yZDogdGhpbnNwYWNlLFxuICAgICAgICBtb3A6IHRoaW5zcGFjZSxcbiAgICAgICAgbXJlbDogdGhpY2tzcGFjZSxcbiAgICAgICAgbW9wZW46IHRoaW5zcGFjZSxcbiAgICAgICAgbWNsb3NlOiB0aGluc3BhY2UsXG4gICAgICAgIG1wdW5jdDogdGhpbnNwYWNlLFxuICAgICAgICBtaW5uZXI6IHRoaW5zcGFjZVxuICAgIH0sXG4gICAgbWlubmVyOiB7XG4gICAgICAgIG1vcmQ6IHRoaW5zcGFjZSxcbiAgICAgICAgbW9wOiB0aGluc3BhY2UsXG4gICAgICAgIG1iaW46IG1lZGl1bXNwYWNlLFxuICAgICAgICBtcmVsOiB0aGlja3NwYWNlLFxuICAgICAgICBtb3BlbjogdGhpbnNwYWNlLFxuICAgICAgICBtcHVuY3Q6IHRoaW5zcGFjZSxcbiAgICAgICAgbWlubmVyOiB0aGluc3BhY2VcbiAgICB9XG59O1xuXG4vLyBTcGFjaW5nIHJlbGF0aW9uc2hpcHMgZm9yIHNjcmlwdCBhbmQgc2NyaXB0c2NyaXB0IHN0eWxlc1xudmFyIHRpZ2h0U3BhY2luZ3MgPSB7XG4gICAgbW9yZDoge1xuICAgICAgICBtb3A6IHRoaW5zcGFjZVxuICAgIH0sXG4gICAgbW9wOiB7XG4gICAgICAgIG1vcmQ6IHRoaW5zcGFjZSxcbiAgICAgICAgbW9wOiB0aGluc3BhY2VcbiAgICB9LFxuICAgIG1iaW46IHt9LFxuICAgIG1yZWw6IHt9LFxuICAgIG1vcGVuOiB7fSxcbiAgICBtY2xvc2U6IHtcbiAgICAgICAgbW9wOiB0aGluc3BhY2VcbiAgICB9LFxuICAgIG1wdW5jdDoge30sXG4gICAgbWlubmVyOiB7XG4gICAgICAgIG1vcDogdGhpbnNwYWNlXG4gICAgfVxufTtcblxuLyoqKi8gfSksXG4vKiAxMTMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19QYXJzZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTE0KTtcblxuLyoqXG4gKiBQcm92aWRlcyBhIHNpbmdsZSBmdW5jdGlvbiBmb3IgcGFyc2luZyBhbiBleHByZXNzaW9uIHVzaW5nIGEgUGFyc2VyXG4gKiBUT0RPKGVtaWx5KTogUmVtb3ZlIHRoaXNcbiAqL1xuXG5cblxuLyoqXG4gKiBQYXJzZXMgYW4gZXhwcmVzc2lvbiB1c2luZyBhIFBhcnNlciwgdGhlbiByZXR1cm5zIHRoZSBwYXJzZWQgcmVzdWx0LlxuICovXG52YXIgcGFyc2VUcmVlID0gZnVuY3Rpb24gcGFyc2VUcmVlKHRvUGFyc2UsIHNldHRpbmdzKSB7XG4gIGlmICghKHR5cGVvZiB0b1BhcnNlID09PSAnc3RyaW5nJyB8fCB0b1BhcnNlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0thVGVYIGNhbiBvbmx5IHBhcnNlIHN0cmluZyB0eXBlZCBleHByZXNzaW9uJyk7XG4gIH1cbiAgdmFyIHBhcnNlciA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1BhcnNlcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKHRvUGFyc2UsIHNldHRpbmdzKTtcblxuICByZXR1cm4gcGFyc2VyLnBhcnNlKCk7XG59O1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKHBhcnNlVHJlZSk7XG5cbi8qKiovIH0pLFxuLyogMTE0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZnVuY3Rpb25zX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExNSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19lbnZpcm9ubWVudHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX01hY3JvRXhwYW5kZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3N5bWJvbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdW5pdHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fdW5pY29kZVNjcmlwdHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fdW5pY29kZUFjY2VudHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3VuaWNvZGVBY2NlbnRzX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3VuaWNvZGVBY2NlbnRzX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fdW5pY29kZVN5bWJvbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMl9fTGV4ZXJfanNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNjIpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTNfX1NldHRpbmdzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X19Ub2tlbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cblxuXG4vKiBlc2xpbnQgbm8tY29uc3RhbnQtY29uZGl0aW9uOjAgKi9cbi8qIGVzbGludCBuby1jb25zb2xlOjAgKi9cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vKipcbiAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgcGFyc2VyIHVzZWQgdG8gcGFyc2Ugb3V0IGEgVGVYIGV4cHJlc3Npb24gZnJvbSB0aGVcbiAqIGlucHV0LiBTaW5jZSBUZVggaXNuJ3QgY29udGV4dC1mcmVlLCBzdGFuZGFyZCBwYXJzZXJzIGRvbid0IHdvcmsgcGFydGljdWxhcmx5XG4gKiB3ZWxsLlxuICpcbiAqIFRoZSBzdHJhdGVneSBvZiB0aGlzIHBhcnNlciBpcyBhcyBzdWNoOlxuICpcbiAqIFRoZSBtYWluIGZ1bmN0aW9ucyAodGhlIGAucGFyc2UuLi5gIG9uZXMpIHRha2UgYSBwb3NpdGlvbiBpbiB0aGUgY3VycmVudFxuICogcGFyc2Ugc3RyaW5nIHRvIHBhcnNlIHRva2VucyBmcm9tLiBUaGUgbGV4ZXIgKGZvdW5kIGluIExleGVyLmpzLCBzdG9yZWQgYXRcbiAqIHRoaXMubGV4ZXIpIGFsc28gc3VwcG9ydHMgcHVsbGluZyBvdXQgdG9rZW5zIGF0IGFyYml0cmFyeSBwbGFjZXMuIFdoZW5cbiAqIGluZGl2aWR1YWwgdG9rZW5zIGFyZSBuZWVkZWQgYXQgYSBwb3NpdGlvbiwgdGhlIGxleGVyIGlzIGNhbGxlZCB0byBwdWxsIG91dCBhXG4gKiB0b2tlbiwgd2hpY2ggaXMgdGhlbiB1c2VkLlxuICpcbiAqIFRoZSBwYXJzZXIgaGFzIGEgcHJvcGVydHkgY2FsbGVkIFwibW9kZVwiIGluZGljYXRpbmcgdGhlIG1vZGUgdGhhdFxuICogdGhlIHBhcnNlciBpcyBjdXJyZW50bHkgaW4uIEN1cnJlbnRseSBpdCBoYXMgdG8gYmUgb25lIG9mIFwibWF0aFwiIG9yXG4gKiBcInRleHRcIiwgd2hpY2ggZGVub3RlcyB3aGV0aGVyIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIGEgbWF0aC15XG4gKiBvbmUgb3IgYSB0ZXh0LXkgb25lIChlLmcuIGluc2lkZSBcXHRleHQpLiBDdXJyZW50bHksIHRoaXMgc2VydmVzIHRvXG4gKiBsaW1pdCB0aGUgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRleHQgbW9kZS5cbiAqXG4gKiBUaGUgbWFpbiBmdW5jdGlvbnMgdGhlbiByZXR1cm4gYW4gb2JqZWN0IHdoaWNoIGNvbnRhaW5zIHRoZSB1c2VmdWwgZGF0YSB0aGF0XG4gKiB3YXMgcGFyc2VkIGF0IGl0cyBnaXZlbiBwb2ludCwgYW5kIGEgbmV3IHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIHBhcnNlZFxuICogZGF0YS4gVGhlIG1haW4gZnVuY3Rpb25zIGNhbiBjYWxsIGVhY2ggb3RoZXIgYW5kIGNvbnRpbnVlIHRoZSBwYXJzaW5nIGJ5XG4gKiB1c2luZyB0aGUgcmV0dXJuZWQgcG9zaXRpb24gYXMgYSBuZXcgc3RhcnRpbmcgcG9pbnQuXG4gKlxuICogVGhlcmUgYXJlIGFsc28gZXh0cmEgYC5oYW5kbGUuLi5gIGZ1bmN0aW9ucywgd2hpY2ggcHVsbCBvdXQgc29tZSByZXVzZWRcbiAqIGZ1bmN0aW9uYWxpdHkgaW50byBzZWxmLWNvbnRhaW5lZCBmdW5jdGlvbnMuXG4gKlxuICogVGhlIGVhcmxpZXIgZnVuY3Rpb25zIHJldHVybiBQYXJzZU5vZGVzLlxuICogVGhlIGxhdGVyIGZ1bmN0aW9ucyAod2hpY2ggYXJlIGNhbGxlZCBkZWVwZXIgaW4gdGhlIHBhcnNlKSBzb21ldGltZXMgcmV0dXJuXG4gKiBQYXJzZWRGdW5jT3JBcmdPckRvbGxhciwgd2hpY2ggY29udGFpbiBhIFBhcnNlTm9kZSBhcyB3ZWxsIGFzIHNvbWUgZGF0YSBhYm91dFxuICogd2hldGhlciB0aGUgcGFyc2VkIG9iamVjdCBpcyBhIGZ1bmN0aW9uIHdoaWNoIGlzIG1pc3Npbmcgc29tZSBhcmd1bWVudHMsIG9yIGFcbiAqIHN0YW5kYWxvbmUgb2JqZWN0IHdoaWNoIGNhbiBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIGFub3RoZXIgZnVuY3Rpb24uXG4gKi9cblxuZnVuY3Rpb24gbmV3QXJndW1lbnQocmVzdWx0LCB0b2tlbikge1xuICAgIHJldHVybiB7IHR5cGU6IFwiYXJnXCIsIHJlc3VsdDogcmVzdWx0LCB0b2tlbjogdG9rZW4gfTtcbn1cblxuZnVuY3Rpb24gbmV3RnVuY3Rpb24odG9rZW4pIHtcbiAgICByZXR1cm4geyB0eXBlOiBcImZuXCIsIHJlc3VsdDogdG9rZW4udGV4dCwgdG9rZW46IHRva2VuIH07XG59XG5cbmZ1bmN0aW9uIG5ld0RvbGxhcih0b2tlbikge1xuICAgIHJldHVybiB7IHR5cGU6IFwiJFwiLCByZXN1bHQ6IFwiJFwiLCB0b2tlbjogdG9rZW4gfTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0RnVuY09yQXJnKHBhcnNlZCkge1xuICAgIGlmIChwYXJzZWQudHlwZSA9PT0gXCIkXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIlVuZXhwZWN0ZWQgJFwiLCBwYXJzZWQudG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkO1xufVxuXG52YXIgUGFyc2VyID0gZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFBhcnNlcihpbnB1dCwgc2V0dGluZ3MpIHtcbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQoKSh0aGlzLCBQYXJzZXIpO1xuXG4gICAgICAgIC8vIFN0YXJ0IGluIG1hdGggbW9kZVxuICAgICAgICB0aGlzLm1vZGUgPSBcIm1hdGhcIjtcbiAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IG1hY3JvIGV4cGFuZGVyIChndWxsZXQpIGFuZCAoaW5kaXJlY3RseSB2aWEgdGhhdCkgYWxzbyBhXG4gICAgICAgIC8vIG5ldyBsZXhlciAobW91dGgpIGZvciB0aGlzIHBhcnNlciAoc3RvbWFjaCwgaW4gdGhlIGxhbmd1YWdlIG9mIFRlWClcbiAgICAgICAgdGhpcy5ndWxsZXQgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19NYWNyb0V4cGFuZGVyX19bXCJhXCIgLyogZGVmYXVsdCAqL10oaW5wdXQsIHNldHRpbmdzLm1hY3JvcywgdGhpcy5tb2RlKTtcbiAgICAgICAgLy8gVXNlIG9sZCBcXGNvbG9yIGJlaGF2aW9yIChzYW1lIGFzIExhVGVYJ3MgXFx0ZXh0Y29sb3IpIGlmIHJlcXVlc3RlZC5cbiAgICAgICAgLy8gV2UgZG8gdGhpcyBhZnRlciB0aGUgbWFjcm9zIG9iamVjdCBoYXMgYmVlbiBjb3BpZWQgYnkgTWFjcm9FeHBhbmRlci5cbiAgICAgICAgaWYgKHNldHRpbmdzLmNvbG9ySXNUZXh0Q29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMuZ3VsbGV0Lm1hY3Jvc1tcIlxcXFxjb2xvclwiXSA9IFwiXFxcXHRleHRjb2xvclwiO1xuICAgICAgICB9XG4gICAgICAgIC8vIFN0b3JlIHRoZSBzZXR0aW5ncyBmb3IgdXNlIGluIHBhcnNpbmdcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICAvLyBDb3VudCBsZWZ0cmlnaHQgZGVwdGggKGZvciBcXG1pZGRsZSBlcnJvcnMpXG4gICAgICAgIHRoaXMubGVmdHJpZ2h0RGVwdGggPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBhIHJlc3VsdCB0byBtYWtlIHN1cmUgaXQgaGFzIHRoZSByaWdodCB0eXBlLCBhbmQgdGhyb3dzIGFuXG4gICAgICogYXBwcm9wcmlhdGUgZXJyb3Igb3RoZXJ3aXNlLlxuICAgICAqL1xuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKFBhcnNlciwgW3tcbiAgICAgICAga2V5OiBcImV4cGVjdFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXhwZWN0KHRleHQpIHtcbiAgICAgICAgICAgIHZhciBjb25zdW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5uZXh0VG9rZW4udGV4dCAhPT0gdGV4dCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJFeHBlY3RlZCAnXCIgKyB0ZXh0ICsgXCInLCBnb3QgJ1wiICsgdGhpcy5uZXh0VG9rZW4udGV4dCArIFwiJ1wiLCB0aGlzLm5leHRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29uc3VtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnNpZGVycyB0aGUgY3VycmVudCBsb29rIGFoZWFkIHRva2VuIGFzIGNvbnN1bWVkLFxuICAgICAgICAgKiBhbmQgZmV0Y2hlcyB0aGUgb25lIGFmdGVyIHRoYXQgYXMgdGhlIG5ldyBsb29rIGFoZWFkLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcImNvbnN1bWVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGNvbnN1bWUoKSB7XG4gICAgICAgICAgICB0aGlzLm5leHRUb2tlbiA9IHRoaXMuZ3VsbGV0LmV4cGFuZE5leHRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN3aXRjaGVzIGJldHdlZW4gXCJ0ZXh0XCIgYW5kIFwibWF0aFwiIG1vZGVzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInN3aXRjaE1vZGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHN3aXRjaE1vZGUobmV3TW9kZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gbmV3TW9kZTtcbiAgICAgICAgICAgIHRoaXMuZ3VsbGV0LnN3aXRjaE1vZGUobmV3TW9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTWFpbiBwYXJzaW5nIGZ1bmN0aW9uLCB3aGljaCBwYXJzZXMgYW4gZW50aXJlIGlucHV0LlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZSgpIHtcbiAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSB0aGUgaW5wdXRcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgdmFyIHBhcnNlID0gdGhpcy5wYXJzZUlucHV0KCk7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGFuIGVudGlyZSBpbnB1dCB0cmVlLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlSW5wdXRcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlSW5wdXQoKSB7XG4gICAgICAgICAgICAvLyBQYXJzZSBhbiBleHByZXNzaW9uXG4gICAgICAgICAgICB2YXIgZXhwcmVzc2lvbiA9IHRoaXMucGFyc2VFeHByZXNzaW9uKGZhbHNlKTtcbiAgICAgICAgICAgIC8vIElmIHdlIHN1Y2NlZWRlZCwgbWFrZSBzdXJlIHRoZXJlJ3MgYW4gRU9GIGF0IHRoZSBlbmRcbiAgICAgICAgICAgIHRoaXMuZXhwZWN0KFwiRU9GXCIsIGZhbHNlKTtcbiAgICAgICAgICAgIHJldHVybiBleHByZXNzaW9uO1xuICAgICAgICB9XG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicGFyc2VFeHByZXNzaW9uXCIsXG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGFuIFwiZXhwcmVzc2lvblwiLCB3aGljaCBpcyBhIGxpc3Qgb2YgYXRvbXMuXG4gICAgICAgICAqXG4gICAgICAgICAqIGBicmVha09uSW5maXhgOiBTaG91bGQgdGhlIHBhcnNpbmcgc3RvcCB3aGVuIHdlIGhpdCBpbmZpeCBub2Rlcz8gVGhpc1xuICAgICAgICAgKiAgICAgICAgICAgICAgICAgaGFwcGVucyB3aGVuIGZ1bmN0aW9ucyBoYXZlIGhpZ2hlciBwcmVjZW5kZW5jZSBoYW4gaW5maXhcbiAgICAgICAgICogICAgICAgICAgICAgICAgIG5vZGVzIGluIGltcGxpY2l0IHBhcnNlcy5cbiAgICAgICAgICpcbiAgICAgICAgICogYGJyZWFrT25Ub2tlblRleHRgOiBUaGUgdGV4dCBvZiB0aGUgdG9rZW4gdGhhdCB0aGUgZXhwcmVzc2lvbiBzaG91bGQgZW5kXG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgd2l0aCwgb3IgYG51bGxgIGlmIHNvbWV0aGluZyBlbHNlIHNob3VsZCBlbmQgdGhlXG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbi5cbiAgICAgICAgICovXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24oYnJlYWtPbkluZml4LCBicmVha09uVG9rZW5UZXh0KSB7XG4gICAgICAgICAgICB2YXIgYm9keSA9IFtdO1xuICAgICAgICAgICAgLy8gS2VlcCBhZGRpbmcgYXRvbXMgdG8gdGhlIGJvZHkgdW50aWwgd2UgY2FuJ3QgcGFyc2UgYW55IG1vcmUgYXRvbXMgKGVpdGhlclxuICAgICAgICAgICAgLy8gd2UgcmVhY2hlZCB0aGUgZW5kLCBhIH0sIG9yIGEgXFxyaWdodClcbiAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICAgICAgLy8gSWdub3JlIHNwYWNlcyBpbiBtYXRoIG1vZGVcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSBcIm1hdGhcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGxleCA9IHRoaXMubmV4dFRva2VuO1xuICAgICAgICAgICAgICAgIGlmIChQYXJzZXIuZW5kT2ZFeHByZXNzaW9uLmluZGV4T2YobGV4LnRleHQpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGJyZWFrT25Ub2tlblRleHQgJiYgbGV4LnRleHQgPT09IGJyZWFrT25Ub2tlblRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChicmVha09uSW5maXggJiYgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVtsZXgudGV4dF0gJiYgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVtsZXgudGV4dF0uaW5maXgpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBhdG9tID0gdGhpcy5wYXJzZUF0b20oYnJlYWtPblRva2VuVGV4dCk7XG4gICAgICAgICAgICAgICAgaWYgKCFhdG9tKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZXR0aW5ncy50aHJvd09uRXJyb3IgJiYgbGV4LnRleHRbMF0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3JOb2RlID0gdGhpcy5oYW5kbGVVbnN1cHBvcnRlZENtZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keS5wdXNoKGVycm9yTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBib2R5LnB1c2goYXRvbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVJbmZpeE5vZGVzKGJvZHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJld3JpdGVzIGluZml4IG9wZXJhdG9ycyBzdWNoIGFzIFxcb3ZlciB3aXRoIGNvcnJlc3BvbmRpbmcgY29tbWFuZHMgc3VjaFxuICAgICAgICAgKiBhcyBcXGZyYWMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSBpbmZpeCBvcGVyYXRvciBwZXIgZ3JvdXAuICBJZiB0aGVyZSdzIG1vcmUgdGhhbiBvbmVcbiAgICAgICAgICogdGhlbiB0aGUgZXhwcmVzc2lvbiBpcyBhbWJpZ3VvdXMuICBUaGlzIGNhbiBiZSByZXNvbHZlZCBieSBhZGRpbmcge30uXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiaGFuZGxlSW5maXhOb2Rlc1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlSW5maXhOb2Rlcyhib2R5KSB7XG4gICAgICAgICAgICB2YXIgb3ZlckluZGV4ID0gLTE7XG4gICAgICAgICAgICB2YXIgZnVuY05hbWUgPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBub2RlID0gYm9keVtpXTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlID09PSBcImluZml4XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG92ZXJJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJvbmx5IG9uZSBpbmZpeCBvcGVyYXRvciBwZXIgZ3JvdXBcIiwgbm9kZS52YWx1ZS50b2tlbik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3ZlckluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgZnVuY05hbWUgPSBub2RlLnZhbHVlLnJlcGxhY2VXaXRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG92ZXJJbmRleCAhPT0gLTEgJiYgZnVuY05hbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgbnVtZXJOb2RlID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIHZhciBkZW5vbU5vZGUgPSB2b2lkIDA7XG5cbiAgICAgICAgICAgICAgICB2YXIgbnVtZXJCb2R5ID0gYm9keS5zbGljZSgwLCBvdmVySW5kZXgpO1xuICAgICAgICAgICAgICAgIHZhciBkZW5vbUJvZHkgPSBib2R5LnNsaWNlKG92ZXJJbmRleCArIDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG51bWVyQm9keS5sZW5ndGggPT09IDEgJiYgbnVtZXJCb2R5WzBdLnR5cGUgPT09IFwib3JkZ3JvdXBcIikge1xuICAgICAgICAgICAgICAgICAgICBudW1lck5vZGUgPSBudW1lckJvZHlbMF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbnVtZXJOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwib3JkZ3JvdXBcIiwgbnVtZXJCb2R5LCB0aGlzLm1vZGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChkZW5vbUJvZHkubGVuZ3RoID09PSAxICYmIGRlbm9tQm9keVswXS50eXBlID09PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVub21Ob2RlID0gZGVub21Cb2R5WzBdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbm9tTm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIm9yZGdyb3VwXCIsIGRlbm9tQm9keSwgdGhpcy5tb2RlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmNhbGxGdW5jdGlvbihmdW5jTmFtZSwgW251bWVyTm9kZSwgZGVub21Ob2RlXSwgW10pO1xuICAgICAgICAgICAgICAgIHJldHVybiBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKHZhbHVlLnR5cGUsIHZhbHVlLCB0aGlzLm1vZGUpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJvZHk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZ3JlZWRpbmVzcyBvZiBhIHN1cGVyc2NyaXB0IG9yIHN1YnNjcmlwdFxuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiaGFuZGxlU3VwU3Vic2NyaXB0XCIsXG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogSGFuZGxlIGEgc3Vic2NyaXB0IG9yIHN1cGVyc2NyaXB0IHdpdGggbmljZSBlcnJvcnMuXG4gICAgICAgICAqL1xuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlU3VwU3Vic2NyaXB0KG5hbWUpIHtcbiAgICAgICAgICAgIHZhciBzeW1ib2xUb2tlbiA9IHRoaXMubmV4dFRva2VuO1xuICAgICAgICAgICAgdmFyIHN5bWJvbCA9IHN5bWJvbFRva2VuLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZVNwYWNlcygpOyAvLyBpZ25vcmUgc3BhY2VzIGJlZm9yZSBzdXAvc3Vic2NyaXB0IGFyZ3VtZW50XG4gICAgICAgICAgICB2YXIgZ3JvdXAgPSB0aGlzLnBhcnNlR3JvdXAoKTtcblxuICAgICAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zZXR0aW5ncy50aHJvd09uRXJyb3IgJiYgdGhpcy5uZXh0VG9rZW4udGV4dFswXSA9PT0gXCJcXFxcXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVW5zdXBwb3J0ZWRDbWQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiRXhwZWN0ZWQgZ3JvdXAgYWZ0ZXIgJ1wiICsgc3ltYm9sICsgXCInXCIsIHN5bWJvbFRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBhcmcgPSBhc3NlcnRGdW5jT3JBcmcoZ3JvdXApO1xuICAgICAgICAgICAgaWYgKGFyZy50eXBlID09PSBcImZuXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBeIGFuZCBfIGhhdmUgYSBncmVlZGluZXNzLCBzbyBoYW5kbGUgaW50ZXJhY3Rpb25zIHdpdGggZnVuY3Rpb25zJ1xuICAgICAgICAgICAgICAgIC8vIGdyZWVkaW5lc3NcbiAgICAgICAgICAgICAgICB2YXIgZnVuY0dyZWVkaW5lc3MgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2Z1bmN0aW9uc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW2FyZy5yZXN1bHRdLmdyZWVkaW5lc3M7XG4gICAgICAgICAgICAgICAgaWYgKGZ1bmNHcmVlZGluZXNzID4gUGFyc2VyLlNVUFNVQl9HUkVFRElORVNTKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlR2l2ZW5GdW5jdGlvbihncm91cCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkdvdCBmdW5jdGlvbiAnXCIgKyBhcmcucmVzdWx0ICsgXCInIHdpdGggbm8gYXJndW1lbnRzIFwiICsgXCJhcyBcIiArIG5hbWUsIHN5bWJvbFRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcmcucmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnZlcnRzIHRoZSB0ZXh0dWFsIGlucHV0IG9mIGFuIHVuc3VwcG9ydGVkIGNvbW1hbmQgaW50byBhIHRleHQgbm9kZVxuICAgICAgICAgKiBjb250YWluZWQgd2l0aGluIGEgY29sb3Igbm9kZSB3aG9zZSBjb2xvciBpcyBkZXRlcm1pbmVkIGJ5IGVycm9yQ29sb3JcbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJoYW5kbGVVbnN1cHBvcnRlZENtZFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlVW5zdXBwb3J0ZWRDbWQoKSB7XG4gICAgICAgICAgICB2YXIgdGV4dCA9IHRoaXMubmV4dFRva2VuLnRleHQ7XG4gICAgICAgICAgICB2YXIgdGV4dG9yZEFycmF5ID0gW107XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRleHRvcmRBcnJheS5wdXNoKG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInRleHRvcmRcIiwgdGV4dFtpXSwgXCJ0ZXh0XCIpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHRleHROb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwidGV4dFwiLCB7XG4gICAgICAgICAgICAgICAgYm9keTogdGV4dG9yZEFycmF5LFxuICAgICAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiXG4gICAgICAgICAgICB9LCB0aGlzLm1vZGUpO1xuXG4gICAgICAgICAgICB2YXIgY29sb3JOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiY29sb3JcIiwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0aGlzLnNldHRpbmdzLmVycm9yQ29sb3IsXG4gICAgICAgICAgICAgICAgdmFsdWU6IFt0ZXh0Tm9kZV0sXG4gICAgICAgICAgICAgICAgdHlwZTogXCJjb2xvclwiXG4gICAgICAgICAgICB9LCB0aGlzLm1vZGUpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIHJldHVybiBjb2xvck5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGEgZ3JvdXAgd2l0aCBvcHRpb25hbCBzdXBlci9zdWJzY3JpcHRzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlQXRvbVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcGFyc2VBdG9tKGJyZWFrT25Ub2tlblRleHQpIHtcbiAgICAgICAgICAgIC8vIFRoZSBib2R5IG9mIGFuIGF0b20gaXMgYW4gaW1wbGljaXQgZ3JvdXAsIHNvIHRoYXQgdGhpbmdzIGxpa2VcbiAgICAgICAgICAgIC8vIFxcbGVmdCh4XFxyaWdodCleMiB3b3JrIGNvcnJlY3RseS5cbiAgICAgICAgICAgIHZhciBiYXNlID0gdGhpcy5wYXJzZUltcGxpY2l0R3JvdXAoYnJlYWtPblRva2VuVGV4dCk7XG5cbiAgICAgICAgICAgIC8vIEluIHRleHQgbW9kZSwgd2UgZG9uJ3QgaGF2ZSBzdXBlcnNjcmlwdHMgb3Igc3Vic2NyaXB0c1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGJhc2UgbWF5IGJlIGVtcHR5IChpLmUuIG51bGwpIGF0IHRoaXMgcG9pbnQuXG5cbiAgICAgICAgICAgIHZhciBzdXBlcnNjcmlwdCA9IHZvaWQgMDtcbiAgICAgICAgICAgIHZhciBzdWJzY3JpcHQgPSB2b2lkIDA7XG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIC8vIEd1YXJhbnRlZWQgaW4gbWF0aCBtb2RlLCBzbyBlYXQgYW55IHNwYWNlcyBmaXJzdC5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVTcGFjZXMoKTtcblxuICAgICAgICAgICAgICAgIC8vIExleCB0aGUgZmlyc3QgdG9rZW5cbiAgICAgICAgICAgICAgICB2YXIgbGV4ID0gdGhpcy5uZXh0VG9rZW47XG5cbiAgICAgICAgICAgICAgICBpZiAobGV4LnRleHQgPT09IFwiXFxcXGxpbWl0c1wiIHx8IGxleC50ZXh0ID09PSBcIlxcXFxub2xpbWl0c1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGdvdCBhIGxpbWl0IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFiYXNlIHx8IGJhc2UudHlwZSAhPT0gXCJvcFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiTGltaXQgY29udHJvbHMgbXVzdCBmb2xsb3cgYSBtYXRoIG9wZXJhdG9yXCIsIGxleCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGltaXRzID0gbGV4LnRleHQgPT09IFwiXFxcXGxpbWl0c1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZS5saW1pdHMgPSBsaW1pdHM7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlLmFsd2F5c0hhbmRsZVN1cFN1YiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZXgudGV4dCA9PT0gXCJeXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgZ290IGEgc3VwZXJzY3JpcHQgc3RhcnRcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1cGVyc2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiRG91YmxlIHN1cGVyc2NyaXB0XCIsIGxleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3VwZXJzY3JpcHQgPSB0aGlzLmhhbmRsZVN1cFN1YnNjcmlwdChcInN1cGVyc2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGV4LnRleHQgPT09IFwiX1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGdvdCBhIHN1YnNjcmlwdCBzdGFydFxuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiRG91YmxlIHN1YnNjcmlwdFwiLCBsZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdCA9IHRoaXMuaGFuZGxlU3VwU3Vic2NyaXB0KFwic3Vic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGV4LnRleHQgPT09IFwiJ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIGdvdCBhIHByaW1lXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdXBlcnNjcmlwdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkRvdWJsZSBzdXBlcnNjcmlwdFwiLCBsZXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBwcmltZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInRleHRvcmRcIiwgXCJcXFxccHJpbWVcIiwgdGhpcy5tb2RlKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBNYW55IHByaW1lcyBjYW4gYmUgZ3JvdXBlZCB0b2dldGhlciwgc28gd2UgaGFuZGxlIHRoaXMgaGVyZVxuICAgICAgICAgICAgICAgICAgICB2YXIgcHJpbWVzID0gW3ByaW1lXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIEtlZXAgbGV4aW5nIHRva2VucyB1bnRpbCB3ZSBnZXQgc29tZXRoaW5nIHRoYXQncyBub3QgYSBwcmltZVxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5uZXh0VG9rZW4udGV4dCA9PT0gXCInXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBlYWNoIG9uZSwgYWRkIGFub3RoZXIgcHJpbWUgdG8gdGhlIGxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW1lcy5wdXNoKHByaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgYSBzdXBlcnNjcmlwdCBmb2xsb3dpbmcgdGhlIHByaW1lcywgY29tYmluZSB0aGF0XG4gICAgICAgICAgICAgICAgICAgIC8vIHN1cGVyc2NyaXB0IGluIHdpdGggdGhlIHByaW1lcy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubmV4dFRva2VuLnRleHQgPT09IFwiXlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmltZXMucHVzaCh0aGlzLmhhbmRsZVN1cFN1YnNjcmlwdChcInN1cGVyc2NyaXB0XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBQdXQgZXZlcnl0aGluZyBpbnRvIGFuIG9yZGdyb3VwIGFzIHRoZSBzdXBlcnNjcmlwdFxuICAgICAgICAgICAgICAgICAgICBzdXBlcnNjcmlwdCA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIm9yZGdyb3VwXCIsIHByaW1lcywgdGhpcy5tb2RlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBpdCB3YXNuJ3QgXiwgXywgb3IgJywgc3RvcCBwYXJzaW5nIHN1cGVyL3N1YnNjcmlwdHNcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc3VwZXJzY3JpcHQgfHwgc3Vic2NyaXB0KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZ290IGVpdGhlciBhIHN1cGVyc2NyaXB0IG9yIHN1YnNjcmlwdCwgY3JlYXRlIGEgc3Vwc3ViXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInN1cHN1YlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2U6IGJhc2UsXG4gICAgICAgICAgICAgICAgICAgIHN1cDogc3VwZXJzY3JpcHQsXG4gICAgICAgICAgICAgICAgICAgIHN1Yjogc3Vic2NyaXB0XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5tb2RlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHJldHVybiB0aGUgb3JpZ2luYWwgYm9keVxuICAgICAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhcnNlcyBhbiBpbXBsaWNpdCBncm91cCwgd2hpY2ggaXMgYSBncm91cCB0aGF0IHN0YXJ0cyBhdCB0aGUgZW5kIG9mIGFcbiAgICAgICAgICogc3BlY2lmaWVkLCBhbmQgZW5kcyByaWdodCBiZWZvcmUgYSBoaWdoZXIgZXhwbGljaXQgZ3JvdXAgZW5kcywgb3IgYXQgRU9MLiBJdFxuICAgICAgICAgKiBpcyB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCBhcHBlYXIgdG8gYWZmZWN0IHRoZSBjdXJyZW50IHN0eWxlLCBsaWtlIFxcTGFyZ2Ugb3JcbiAgICAgICAgICogXFx0ZXh0cm0sIHdoZXJlIGluc3RlYWQgb2Yga2VlcGluZyBhIHN0eWxlIHdlIGp1c3QgcHJldGVuZCB0aGF0IHRoZXJlIGlzIGFuXG4gICAgICAgICAqIGltcGxpY2l0IGdyb3VwaW5nIGFmdGVyIGl0IHVudGlsIHRoZSBlbmQgb2YgdGhlIGdyb3VwLiBFLmcuXG4gICAgICAgICAqICAgc21hbGwgdGV4dCB7XFxMYXJnZSBsYXJnZSB0ZXh0fSBzbWFsbCB0ZXh0IGFnYWluXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicGFyc2VJbXBsaWNpdEdyb3VwXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZUltcGxpY2l0R3JvdXAoYnJlYWtPblRva2VuVGV4dCkge1xuICAgICAgICAgICAgdmFyIHN0YXJ0ID0gdGhpcy5wYXJzZVN5bWJvbCgpO1xuXG4gICAgICAgICAgICBpZiAoc3RhcnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRpZG4ndCBnZXQgYW55dGhpbmcgd2UgaGFuZGxlLCBmYWxsIGJhY2sgdG8gcGFyc2VGdW5jdGlvblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQudHlwZSA9PT0gXCJhcmdcIikge1xuICAgICAgICAgICAgICAgIC8vIERlZmVyIHRvIHBhcnNlR2l2ZW5GdW5jdGlvbiBpZiBpdCdzIG5vdCBhIGZ1bmN0aW9uIHdlIGhhbmRsZVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlR2l2ZW5GdW5jdGlvbihzdGFydCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBmdW5jID0gc3RhcnQucmVzdWx0O1xuXG4gICAgICAgICAgICBpZiAoZnVuYyA9PT0gXCIkXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSBcIm1hdGhcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiJCB3aXRoaW4gbWF0aCBtb2RlXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgb3V0ZXJNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3dpdGNoTW9kZShcIm1hdGhcIik7XG4gICAgICAgICAgICAgICAgLy8gRXhwYW5kIG5leHQgc3ltYm9sIG5vdyB0aGF0IHdlJ3JlIGluIG1hdGggbW9kZS5cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgICAgICB2YXIgYm9keSA9IHRoaXMucGFyc2VFeHByZXNzaW9uKGZhbHNlLCBcIiRcIik7XG4gICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgZXhwYW5kIHRoZSBuZXh0IHN5bWJvbCBhZnRlciB0aGUgJCB1bnRpbCBhZnRlclxuICAgICAgICAgICAgICAgIC8vIHN3aXRjaGluZyBtb2RlcyBiYWNrLiAgU28gZG9uJ3QgY29uc3VtZSB3aXRoaW4gZXhwZWN0LlxuICAgICAgICAgICAgICAgIHRoaXMuZXhwZWN0KFwiJFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hNb2RlKG91dGVyTW9kZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInN0eWxpbmdcIiwge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBib2R5XG4gICAgICAgICAgICAgICAgfSwgXCJtYXRoXCIpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmdW5jID09PSBcIlxcXFxiZWdpblwiKSB7XG4gICAgICAgICAgICAgICAgLy8gYmVnaW4uLi5lbmQgaXMgc2ltaWxhciB0byBsZWZ0Li4ucmlnaHRcbiAgICAgICAgICAgICAgICB2YXIgYmVnaW4gPSB0aGlzLnBhcnNlR2l2ZW5GdW5jdGlvbihzdGFydCk7XG4gICAgICAgICAgICAgICAgdmFyIGVudk5hbWUgPSBiZWdpbi52YWx1ZS5uYW1lO1xuICAgICAgICAgICAgICAgIGlmICghX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19lbnZpcm9ubWVudHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5oYXNPd25Qcm9wZXJ0eShlbnZOYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiTm8gc3VjaCBlbnZpcm9ubWVudDogXCIgKyBlbnZOYW1lLCBiZWdpbi52YWx1ZS5uYW1lR3JvdXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBCdWlsZCB0aGUgZW52aXJvbm1lbnQgb2JqZWN0LiBBcmd1bWVudHMgYW5kIG90aGVyIGluZm9ybWF0aW9uIHdpbGxcbiAgICAgICAgICAgICAgICAvLyBiZSBtYWRlIGF2YWlsYWJsZSB0byB0aGUgYmVnaW4gYW5kIGVuZCBtZXRob2RzIHVzaW5nIHByb3BlcnRpZXMuXG4gICAgICAgICAgICAgICAgdmFyIGVudiA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fZW52aXJvbm1lbnRzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bZW52TmFtZV07XG5cbiAgICAgICAgICAgICAgICB2YXIgX3BhcnNlQXJndW1lbnRzID0gdGhpcy5wYXJzZUFyZ3VtZW50cyhcIlxcXFxiZWdpbntcIiArIGVudk5hbWUgKyBcIn1cIiwgZW52KSxcbiAgICAgICAgICAgICAgICAgICAgYXJncyA9IF9wYXJzZUFyZ3VtZW50cy5hcmdzLFxuICAgICAgICAgICAgICAgICAgICBvcHRBcmdzID0gX3BhcnNlQXJndW1lbnRzLm9wdEFyZ3M7XG5cbiAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbnZOYW1lOiBlbnZOYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYXJzZXI6IHRoaXNcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0ID0gZW52LmhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncyk7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBlY3QoXCJcXFxcZW5kXCIsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB2YXIgZW5kTmFtZVRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgICAgICAgICAgICAgdmFyIGVuZCA9IHRoaXMucGFyc2VGdW5jdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmICghZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJmYWlsZWQgdG8gcGFyc2UgZnVuY3Rpb24gYWZ0ZXIgXFxcXGVuZFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVuZC52YWx1ZS5uYW1lICE9PSBlbnZOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJNaXNtYXRjaDogXFxcXGJlZ2lue1wiICsgZW52TmFtZSArIFwifSBtYXRjaGVkIFwiICsgXCJieSBcXFxcZW5ke1wiICsgZW5kLnZhbHVlLm5hbWUgKyBcIn1cIiwgZW5kTmFtZVRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZXN1bHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIERlZmVyIHRvIHBhcnNlR2l2ZW5GdW5jdGlvbiBpZiBpdCdzIG5vdCBhIGZ1bmN0aW9uIHdlIGhhbmRsZVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlR2l2ZW5GdW5jdGlvbihzdGFydCwgYnJlYWtPblRva2VuVGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGFuIGVudGlyZSBmdW5jdGlvbiwgaW5jbHVkaW5nIGl0cyBiYXNlIGFuZCBhbGwgb2YgaXRzIGFyZ3VtZW50cy5cbiAgICAgICAgICogSXQgYWxzbyBoYW5kbGVzIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXJzZWQgbm9kZSBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwYXJzZUZ1bmN0aW9uXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGJhc2VHcm91cCA9IHRoaXMucGFyc2VHcm91cCgpO1xuICAgICAgICAgICAgcmV0dXJuIGJhc2VHcm91cCA/IHRoaXMucGFyc2VHaXZlbkZ1bmN0aW9uKGJhc2VHcm91cCkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNhbWUgYXMgcGFyc2VGdW5jdGlvbigpLCBleGNlcHQgdGhhdCB0aGUgYmFzZSBpcyBwcm92aWRlZCwgZ3VhcmFudGVlaW5nIGFcbiAgICAgICAgICogbm9uLW51bGxhYmxlIHJlc3VsdC5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwYXJzZUdpdmVuRnVuY3Rpb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlR2l2ZW5GdW5jdGlvbihiYXNlR3JvdXAsIGJyZWFrT25Ub2tlblRleHQpIHtcbiAgICAgICAgICAgIGJhc2VHcm91cCA9IGFzc2VydEZ1bmNPckFyZyhiYXNlR3JvdXApO1xuICAgICAgICAgICAgaWYgKGJhc2VHcm91cC50eXBlID09PSBcImZuXCIpIHtcbiAgICAgICAgICAgICAgICB2YXIgZnVuYyA9IGJhc2VHcm91cC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgdmFyIGZ1bmNEYXRhID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVtmdW5jXTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlID09PSBcInRleHRcIiAmJiAhZnVuY0RhdGEuYWxsb3dlZEluVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiQ2FuJ3QgdXNlIGZ1bmN0aW9uICdcIiArIGZ1bmMgKyBcIicgaW4gdGV4dCBtb2RlXCIsIGJhc2VHcm91cC50b2tlbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IFwibWF0aFwiICYmIGZ1bmNEYXRhLmFsbG93ZWRJbk1hdGggPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJDYW4ndCB1c2UgZnVuY3Rpb24gJ1wiICsgZnVuYyArIFwiJyBpbiBtYXRoIG1vZGVcIiwgYmFzZUdyb3VwLnRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgX3BhcnNlQXJndW1lbnRzMiA9IHRoaXMucGFyc2VBcmd1bWVudHMoZnVuYywgZnVuY0RhdGEpLFxuICAgICAgICAgICAgICAgICAgICBhcmdzID0gX3BhcnNlQXJndW1lbnRzMi5hcmdzLFxuICAgICAgICAgICAgICAgICAgICBvcHRBcmdzID0gX3BhcnNlQXJndW1lbnRzMi5vcHRBcmdzO1xuXG4gICAgICAgICAgICAgICAgdmFyIF90b2tlbiA9IGJhc2VHcm91cC50b2tlbjtcbiAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdDIgPSB0aGlzLmNhbGxGdW5jdGlvbihmdW5jLCBhcmdzLCBvcHRBcmdzLCBfdG9rZW4sIGJyZWFrT25Ub2tlblRleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oX3Jlc3VsdDIudHlwZSwgX3Jlc3VsdDIsIHRoaXMubW9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBiYXNlR3JvdXAucmVzdWx0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENhbGwgYSBmdW5jdGlvbiBoYW5kbGVyIHdpdGggYSBzdWl0YWJsZSBjb250ZXh0IGFuZCBhcmd1bWVudHMuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiY2FsbEZ1bmN0aW9uXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjYWxsRnVuY3Rpb24obmFtZSwgYXJncywgb3B0QXJncywgdG9rZW4sIGJyZWFrT25Ub2tlblRleHQpIHtcbiAgICAgICAgICAgIHZhciBjb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIGZ1bmNOYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgIHBhcnNlcjogdGhpcyxcbiAgICAgICAgICAgICAgICB0b2tlbjogdG9rZW4sXG4gICAgICAgICAgICAgICAgYnJlYWtPblRva2VuVGV4dDogYnJlYWtPblRva2VuVGV4dFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBmdW5jID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVtuYW1lXTtcbiAgICAgICAgICAgIGlmIChmdW5jICYmIGZ1bmMuaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmdW5jLmhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJObyBmdW5jdGlvbiBoYW5kbGVyIGZvciBcIiArIG5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhcnNlcyB0aGUgYXJndW1lbnRzIG9mIGEgZnVuY3Rpb24gb3IgZW52aXJvbm1lbnRcbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwYXJzZUFyZ3VtZW50c1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMoZnVuYywgLy8gU2hvdWxkIGxvb2sgbGlrZSBcIlxcbmFtZVwiIG9yIFwiXFxiZWdpbntuYW1lfVwiLlxuICAgICAgICBmdW5jRGF0YSkge1xuICAgICAgICAgICAgdmFyIHRvdGFsQXJncyA9IGZ1bmNEYXRhLm51bUFyZ3MgKyBmdW5jRGF0YS5udW1PcHRpb25hbEFyZ3M7XG4gICAgICAgICAgICBpZiAodG90YWxBcmdzID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgYXJnczogW10sIG9wdEFyZ3M6IFtdIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBiYXNlR3JlZWRpbmVzcyA9IGZ1bmNEYXRhLmdyZWVkaW5lc3M7XG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgdmFyIG9wdEFyZ3MgPSBbXTtcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbEFyZ3M7IGkrKykge1xuICAgICAgICAgICAgICAgIHZhciBhcmdUeXBlID0gZnVuY0RhdGEuYXJnVHlwZXMgJiYgZnVuY0RhdGEuYXJnVHlwZXNbaV07XG4gICAgICAgICAgICAgICAgdmFyIGlzT3B0aW9uYWwgPSBpIDwgZnVuY0RhdGEubnVtT3B0aW9uYWxBcmdzO1xuICAgICAgICAgICAgICAgIC8vIElnbm9yZSBzcGFjZXMgYmV0d2VlbiBhcmd1bWVudHMuICBBcyB0aGUgVGVYYm9vayBzYXlzOlxuICAgICAgICAgICAgICAgIC8vIFwiQWZ0ZXIgeW91IGhhdmUgc2FpZCDigJhcXGRlZlxccm93IzEjMnsuLi594oCZLCB5b3UgYXJlIGFsbG93ZWQgdG9cbiAgICAgICAgICAgICAgICAvLyAgcHV0IHNwYWNlcyBiZXR3ZWVuIHRoZSBhcmd1bWVudHMgKGUuZy4sIOKAmFxccm93IHggbuKAmSksIGJlY2F1c2VcbiAgICAgICAgICAgICAgICAvLyAgVGVYIGRvZXNu4oCZdCB1c2Ugc2luZ2xlIHNwYWNlcyBhcyB1bmRlbGltaXRlZCBhcmd1bWVudHMuXCJcbiAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgIWlzT3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lU3BhY2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEFsc28gY29uc3VtZSBsZWFkaW5nIHNwYWNlcyBpbiBtYXRoIG1vZGUsIGFzIHBhcnNlU3ltYm9sXG4gICAgICAgICAgICAgICAgLy8gd29uJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlbS4gIFRoaXMgY2FuIG9ubHkgaGFwcGVuIHdpdGhcbiAgICAgICAgICAgICAgICAvLyBtYWNyb3MsIGUuZy4gXFxmcmFjXFxmb29cXGZvbyB3aGVyZSBcXGZvbyBleHBhbmRzIHRvIGEgc3BhY2Ugc3ltYm9sLlxuICAgICAgICAgICAgICAgIC8vIEluIExhVGVYLCB0aGUgXFxmb28ncyBnZXQgdHJlYXRlZCBhcyAoYmxhbmspIGFyZ3VtZW50cykuXG4gICAgICAgICAgICAgICAgLy8gSW4gS2FUZVgsIGZvciBub3csIGJvdGggc3BhY2VzIHdpbGwgZ2V0IGNvbnN1bWVkLlxuICAgICAgICAgICAgICAgIC8vIFRPRE8oZWRlbWFpbmUpXG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IDAgJiYgIWlzT3B0aW9uYWwgJiYgdGhpcy5tb2RlID09PSBcIm1hdGhcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWVTcGFjZXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIG5leHRUb2tlbiA9IHRoaXMubmV4dFRva2VuO1xuICAgICAgICAgICAgICAgIHZhciBhcmcgPSBhcmdUeXBlID8gdGhpcy5wYXJzZUdyb3VwT2ZUeXBlKGFyZ1R5cGUsIGlzT3B0aW9uYWwpIDogdGhpcy5wYXJzZUdyb3VwKGlzT3B0aW9uYWwpO1xuICAgICAgICAgICAgICAgIGlmICghYXJnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRBcmdzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2V0dGluZ3MudGhyb3dPbkVycm9yICYmIHRoaXMubmV4dFRva2VuLnRleHRbMF0gPT09IFwiXFxcXFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBuZXdBcmd1bWVudCh0aGlzLmhhbmRsZVVuc3VwcG9ydGVkQ21kKCksIG5leHRUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiRXhwZWN0ZWQgZ3JvdXAgYWZ0ZXIgJ1wiICsgZnVuYyArIFwiJ1wiLCBuZXh0VG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBhcmdOb2RlID0gdm9pZCAwO1xuICAgICAgICAgICAgICAgIGFyZyA9IGFzc2VydEZ1bmNPckFyZyhhcmcpO1xuICAgICAgICAgICAgICAgIGlmIChhcmcudHlwZSA9PT0gXCJmblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmdHcmVlZGluZXNzID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVthcmcucmVzdWx0XS5ncmVlZGluZXNzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXJnR3JlZWRpbmVzcyA+IGJhc2VHcmVlZGluZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdOb2RlID0gdGhpcy5wYXJzZUdpdmVuRnVuY3Rpb24oYXJnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJHb3QgZnVuY3Rpb24gJ1wiICsgYXJnLnJlc3VsdCArIFwiJyBhcyBcIiArIFwiYXJndW1lbnQgdG8gJ1wiICsgZnVuYyArIFwiJ1wiLCBuZXh0VG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnTm9kZSA9IGFyZy5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIChpc09wdGlvbmFsID8gb3B0QXJncyA6IGFyZ3MpLnB1c2goYXJnTm9kZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IGFyZ3M6IGFyZ3MsIG9wdEFyZ3M6IG9wdEFyZ3MgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYXJzZXMgYSBncm91cCB3aGVuIHRoZSBtb2RlIGlzIGNoYW5naW5nLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlR3JvdXBPZlR5cGVcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlR3JvdXBPZlR5cGUodHlwZSwgLy8gVXNlZCB0byBkZXNjcmliZSB0aGUgbW9kZSBpbiBlcnJvciBtZXNzYWdlcy5cbiAgICAgICAgb3B0aW9uYWwpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBgb3JpZ2luYWxgIGFyZ1R5cGVzXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJvcmlnaW5hbFwiKSB7XG4gICAgICAgICAgICAgICAgdHlwZSA9IHRoaXMubW9kZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiY29sb3JcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlQ29sb3JHcm91cChvcHRpb25hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJzaXplXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVNpemVHcm91cChvcHRpb25hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gXCJ1cmxcIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlVXJsR3JvdXAob3B0aW9uYWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSwgdHlwZSBpcyBvbmUgb2YgXCJ0ZXh0XCIgb3IgXCJtYXRoXCIuXG4gICAgICAgICAgICAvLyBTcGVjaWZ5IHRoaXMgYXMgbW9kZSB0byBwYXJzZUdyb3VwLlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VHcm91cChvcHRpb25hbCwgdHlwZSk7XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJjb25zdW1lU3BhY2VzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb25zdW1lU3BhY2VzKCkge1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMubmV4dFRva2VuLnRleHQgPT09IFwiIFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGEgZ3JvdXAsIGVzc2VudGlhbGx5IHJldHVybmluZyB0aGUgc3RyaW5nIGZvcm1lZCBieSB0aGVcbiAgICAgICAgICogYnJhY2UtZW5jbG9zZWQgdG9rZW5zIHBsdXMgc29tZSBwb3NpdGlvbiBpbmZvcm1hdGlvbi5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwYXJzZVN0cmluZ0dyb3VwXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZVN0cmluZ0dyb3VwKG1vZGVOYW1lLCAvLyBVc2VkIHRvIGRlc2NyaWJlIHRoZSBtb2RlIGluIGVycm9yIG1lc3NhZ2VzLlxuICAgICAgICBvcHRpb25hbCkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbmFsICYmIHRoaXMubmV4dFRva2VuLnRleHQgIT09IFwiW1wiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgb3V0ZXJNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gXCJ0ZXh0XCI7XG4gICAgICAgICAgICB0aGlzLmV4cGVjdChvcHRpb25hbCA/IFwiW1wiIDogXCJ7XCIpO1xuICAgICAgICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgZmlyc3RUb2tlbiA9IHRoaXMubmV4dFRva2VuO1xuICAgICAgICAgICAgdmFyIGxhc3RUb2tlbiA9IGZpcnN0VG9rZW47XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5uZXh0VG9rZW4udGV4dCAhPT0gKG9wdGlvbmFsID8gXCJdXCIgOiBcIn1cIikpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uZXh0VG9rZW4udGV4dCA9PT0gXCJFT0ZcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQgaW4gXCIgKyBtb2RlTmFtZSwgZmlyc3RUb2tlbi5yYW5nZSh0aGlzLm5leHRUb2tlbiwgc3RyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxhc3RUb2tlbiA9IHRoaXMubmV4dFRva2VuO1xuICAgICAgICAgICAgICAgIHN0ciArPSBsYXN0VG9rZW4udGV4dDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN1bWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubW9kZSA9IG91dGVyTW9kZTtcbiAgICAgICAgICAgIHRoaXMuZXhwZWN0KG9wdGlvbmFsID8gXCJdXCIgOiBcIn1cIik7XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RUb2tlbi5yYW5nZShsYXN0VG9rZW4sIHN0cik7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2VzIGEgZ3JvdXAsIGVzc2VudGlhbGx5IHJldHVybmluZyB0aGUgc3RyaW5nIGZvcm1lZCBieSB0aGVcbiAgICAgICAgICogYnJhY2UtZW5jbG9zZWQgdG9rZW5zIHBsdXMgc29tZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiwgcG9zc2libHlcbiAgICAgICAgICogd2l0aCBuZXN0ZWQgYnJhY2VzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlU3RyaW5nR3JvdXBXaXRoQmFsYW5jZWRCcmFjZXNcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlU3RyaW5nR3JvdXBXaXRoQmFsYW5jZWRCcmFjZXMobW9kZU5hbWUsIC8vIFVzZWQgdG8gZGVzY3JpYmUgdGhlIG1vZGUgaW4gZXJyb3IgbWVzc2FnZXMuXG4gICAgICAgIG9wdGlvbmFsKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uYWwgJiYgdGhpcy5uZXh0VG9rZW4udGV4dCAhPT0gXCJbXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBvdXRlck1vZGUgPSB0aGlzLm1vZGU7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBcInRleHRcIjtcbiAgICAgICAgICAgIHRoaXMuZXhwZWN0KG9wdGlvbmFsID8gXCJbXCIgOiBcIntcIik7XG4gICAgICAgICAgICB2YXIgc3RyID0gXCJcIjtcbiAgICAgICAgICAgIHZhciBuZXN0ID0gMDtcbiAgICAgICAgICAgIHZhciBmaXJzdFRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgICAgICAgICB2YXIgbGFzdFRva2VuID0gZmlyc3RUb2tlbjtcbiAgICAgICAgICAgIHdoaWxlIChuZXN0ID4gMCB8fCB0aGlzLm5leHRUb2tlbi50ZXh0ICE9PSAob3B0aW9uYWwgPyBcIl1cIiA6IFwifVwiKSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm5leHRUb2tlbi50ZXh0ID09PSBcIkVPRlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCBpbiBcIiArIG1vZGVOYW1lLCBmaXJzdFRva2VuLnJhbmdlKHRoaXMubmV4dFRva2VuLCBzdHIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGFzdFRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgICAgICAgICAgICAgc3RyICs9IGxhc3RUb2tlbi50ZXh0O1xuICAgICAgICAgICAgICAgIGlmIChsYXN0VG9rZW4udGV4dCA9PT0gXCJ7XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmVzdCArPSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdFRva2VuLnRleHQgPT09IFwifVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXN0IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJVbmJhbGFuY2VkIGJyYWNlIG9mIGlucHV0IGluIFwiICsgbW9kZU5hbWUsIGZpcnN0VG9rZW4ucmFuZ2UodGhpcy5uZXh0VG9rZW4sIHN0cikpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVzdCAtPSAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tb2RlID0gb3V0ZXJNb2RlO1xuICAgICAgICAgICAgdGhpcy5leHBlY3Qob3B0aW9uYWwgPyBcIl1cIiA6IFwifVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmaXJzdFRva2VuLnJhbmdlKGxhc3RUb2tlbiwgc3RyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYXJzZXMgYSByZWdleC1kZWxpbWl0ZWQgZ3JvdXA6IHRoZSBsYXJnZXN0IHNlcXVlbmNlIG9mIHRva2Vuc1xuICAgICAgICAgKiB3aG9zZSBjb25jYXRlbmF0ZWQgc3RyaW5ncyBtYXRjaCBgcmVnZXhgLiBSZXR1cm5zIHRoZSBzdHJpbmdcbiAgICAgICAgICogZm9ybWVkIGJ5IHRoZSB0b2tlbnMgcGx1cyBzb21lIHBvc2l0aW9uIGluZm9ybWF0aW9uLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlUmVnZXhHcm91cFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcGFyc2VSZWdleEdyb3VwKHJlZ2V4LCBtb2RlTmFtZSkge1xuICAgICAgICAgICAgdmFyIG91dGVyTW9kZSA9IHRoaXMubW9kZTtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IFwidGV4dFwiO1xuICAgICAgICAgICAgdmFyIGZpcnN0VG9rZW4gPSB0aGlzLm5leHRUb2tlbjtcbiAgICAgICAgICAgIHZhciBsYXN0VG9rZW4gPSBmaXJzdFRva2VuO1xuICAgICAgICAgICAgdmFyIHN0ciA9IFwiXCI7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5uZXh0VG9rZW4udGV4dCAhPT0gXCJFT0ZcIiAmJiByZWdleC50ZXN0KHN0ciArIHRoaXMubmV4dFRva2VuLnRleHQpKSB7XG4gICAgICAgICAgICAgICAgbGFzdFRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgICAgICAgICAgICAgc3RyICs9IGxhc3RUb2tlbi50ZXh0O1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0ciA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJJbnZhbGlkIFwiICsgbW9kZU5hbWUgKyBcIjogJ1wiICsgZmlyc3RUb2tlbi50ZXh0ICsgXCInXCIsIGZpcnN0VG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5tb2RlID0gb3V0ZXJNb2RlO1xuICAgICAgICAgICAgcmV0dXJuIGZpcnN0VG9rZW4ucmFuZ2UobGFzdFRva2VuLCBzdHIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhcnNlcyBhIGNvbG9yIGRlc2NyaXB0aW9uLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlQ29sb3JHcm91cFwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcGFyc2VDb2xvckdyb3VwKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICB2YXIgcmVzID0gdGhpcy5wYXJzZVN0cmluZ0dyb3VwKFwiY29sb3JcIiwgb3B0aW9uYWwpO1xuICAgICAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBtYXRjaCA9IC9eKCNbYS1mMC05XXszfXwjW2EtZjAtOV17Nn18W2Etel0rKSQvaS5leGVjKHJlcy50ZXh0KTtcbiAgICAgICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiSW52YWxpZCBjb2xvcjogJ1wiICsgcmVzLnRleHQgKyBcIidcIiwgcmVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdBcmd1bWVudChuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJjb2xvclwiLCBtYXRjaFswXSwgdGhpcy5tb2RlKSwgcmVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQYXJzZXMgYSB1cmwgc3RyaW5nLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcInBhcnNlVXJsR3JvdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlVXJsR3JvdXAob3B0aW9uYWwpIHtcbiAgICAgICAgICAgIHZhciByZXMgPSB0aGlzLnBhcnNlU3RyaW5nR3JvdXBXaXRoQmFsYW5jZWRCcmFjZXMoXCJ1cmxcIiwgb3B0aW9uYWwpO1xuICAgICAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciByYXcgPSByZXMudGV4dDtcbiAgICAgICAgICAgIC8vIGh5cGVycmVmIHBhY2thZ2UgYWxsb3dzIGJhY2tzbGFzaGVzIGFsb25lIGluIGhyZWYsIGJ1dCBkb2Vzbid0IGdlbmVyYXRlXG4gICAgICAgICAgICAvLyB2YWxpZCBsaW5rcyBpbiBzdWNoIGNhc2VzOyB3ZSBpbnRlcnByZXQgdGhpcyBhcyBcInVuZGVmaWVuZFwiIGJlaGF2aW91cixcbiAgICAgICAgICAgIC8vIGFuZCBrZWVwIHRoZW0gYXMtaXMuIFNvbWUgYnJvd3NlciB3aWxsIHJlcGxhY2UgYmFja3NsYXNoZXMgd2l0aFxuICAgICAgICAgICAgLy8gZm9yd2FyZCBzbGFzaGVzLlxuICAgICAgICAgICAgdmFyIHVybCA9IHJhdy5yZXBsYWNlKC9cXFxcKFsjJCUmfl9ee31dKS9nLCAnJDEnKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdBcmd1bWVudChuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJ1cmxcIiwgdXJsLCB0aGlzLm1vZGUpLCByZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBhcnNlcyBhIHNpemUgc3BlY2lmaWNhdGlvbiwgY29uc2lzdGluZyBvZiBtYWduaXR1ZGUgYW5kIHVuaXQuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicGFyc2VTaXplR3JvdXBcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlU2l6ZUdyb3VwKG9wdGlvbmFsKSB7XG4gICAgICAgICAgICB2YXIgcmVzID0gdm9pZCAwO1xuICAgICAgICAgICAgaWYgKCFvcHRpb25hbCAmJiB0aGlzLm5leHRUb2tlbi50ZXh0ICE9PSBcIntcIikge1xuICAgICAgICAgICAgICAgIHJlcyA9IHRoaXMucGFyc2VSZWdleEdyb3VwKC9eWy0rXT8gKig/OiR8XFxkK3xcXGQrXFwuXFxkKnxcXC5cXGQqKSAqW2Etel17MCwyfSAqJC8sIFwic2l6ZVwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzID0gdGhpcy5wYXJzZVN0cmluZ0dyb3VwKFwic2l6ZVwiLCBvcHRpb25hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIG1hdGNoID0gLyhbLStdPykgKihcXGQrKD86XFwuXFxkKik/fFxcLlxcZCspICooW2Etel17Mn0pLy5leGVjKHJlcy50ZXh0KTtcbiAgICAgICAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiSW52YWxpZCBzaXplOiAnXCIgKyByZXMudGV4dCArIFwiJ1wiLCByZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyOiArKG1hdGNoWzFdICsgbWF0Y2hbMl0pLCAvLyBzaWduICsgbWFnbml0dWRlLCBjYXN0IHRvIG51bWJlclxuICAgICAgICAgICAgICAgIHVuaXQ6IG1hdGNoWzNdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCFPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X191bml0c19fW1wiYlwiIC8qIHZhbGlkVW5pdCAqL10pKGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkludmFsaWQgdW5pdDogJ1wiICsgZGF0YS51bml0ICsgXCInXCIsIHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3QXJndW1lbnQobmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwic2l6ZVwiLCBkYXRhLCB0aGlzLm1vZGUpLCByZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGBvcHRpb25hbGAgaXMgZmFsc2Ugb3IgYWJzZW50LCB0aGlzIHBhcnNlcyBhbiBvcmRpbmFyeSBncm91cCxcbiAgICAgICAgICogd2hpY2ggaXMgZWl0aGVyIGEgc2luZ2xlIG51Y2xldXMgKGxpa2UgXCJ4XCIpIG9yIGFuIGV4cHJlc3Npb25cbiAgICAgICAgICogaW4gYnJhY2VzIChsaWtlIFwie3greX1cIikuXG4gICAgICAgICAqIElmIGBvcHRpb25hbGAgaXMgdHJ1ZSwgaXQgcGFyc2VzIGVpdGhlciBhIGJyYWNrZXQtZGVsaW1pdGVkIGV4cHJlc3Npb25cbiAgICAgICAgICogKGxpa2UgXCJbeCt5XVwiKSBvciByZXR1cm5zIG51bGwgdG8gaW5kaWNhdGUgdGhlIGFic2VuY2Ugb2YgYVxuICAgICAgICAgKiBicmFja2V0LWVuY2xvc2VkIGdyb3VwLlxuICAgICAgICAgKiBJZiBgbW9kZWAgaXMgcHJlc2VudCwgc3dpdGNoZXMgdG8gdGhhdCBtb2RlIHdoaWxlIHBhcnNpbmcgdGhlIGdyb3VwLFxuICAgICAgICAgKiBhbmQgc3dpdGNoZXMgYmFjayBhZnRlci5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwYXJzZUdyb3VwXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwYXJzZUdyb3VwKG9wdGlvbmFsLCBtb2RlKSB7XG4gICAgICAgICAgICB2YXIgb3V0ZXJNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgICAgICAgdmFyIGZpcnN0VG9rZW4gPSB0aGlzLm5leHRUb2tlbjtcbiAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSBhbiBvcGVuIGJyYWNlXG4gICAgICAgICAgICBpZiAodGhpcy5uZXh0VG9rZW4udGV4dCA9PT0gKG9wdGlvbmFsID8gXCJbXCIgOiBcIntcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBTd2l0Y2ggdG8gc3BlY2lmaWVkIG1vZGUgYmVmb3JlIHdlIGV4cGFuZCBzeW1ib2wgYWZ0ZXIgYnJhY2VcbiAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN3aXRjaE1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHdlIGdldCBhIGJyYWNlLCBwYXJzZSBhbiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgdmFyIGV4cHJlc3Npb24gPSB0aGlzLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgb3B0aW9uYWwgPyBcIl1cIiA6IFwifVwiKTtcbiAgICAgICAgICAgICAgICB2YXIgbGFzdFRva2VuID0gdGhpcy5uZXh0VG9rZW47XG4gICAgICAgICAgICAgICAgLy8gU3dpdGNoIG1vZGUgYmFjayBiZWZvcmUgY29uc3VtaW5nIHN5bWJvbCBhZnRlciBjbG9zZSBicmFjZVxuICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3dpdGNoTW9kZShvdXRlck1vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZ2V0IGEgY2xvc2UgYnJhY2VcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGVjdChvcHRpb25hbCA/IFwiXVwiIDogXCJ9XCIpO1xuICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSBcInRleHRcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1MaWdhdHVyZXMoZXhwcmVzc2lvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBuZXdBcmd1bWVudChuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJvcmRncm91cFwiLCBleHByZXNzaW9uLCB0aGlzLm1vZGUsIGZpcnN0VG9rZW4sIGxhc3RUb2tlbiksIGZpcnN0VG9rZW4ucmFuZ2UobGFzdFRva2VuLCBmaXJzdFRva2VuLnRleHQpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBqdXN0IHJldHVybiBhIG51Y2xldXMsIG9yIG5vdGhpbmcgZm9yIGFuIG9wdGlvbmFsIGdyb3VwXG4gICAgICAgICAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdDMgPSBvcHRpb25hbCA/IG51bGwgOiB0aGlzLnBhcnNlU3ltYm9sKCk7XG4gICAgICAgICAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hNb2RlKG91dGVyTW9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVzdWx0MztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb3JtIGxpZ2F0dXJlLWxpa2UgY29tYmluYXRpb25zIG9mIGNoYXJhY3RlcnMgZm9yIHRleHQgbW9kZS5cbiAgICAgICAgICogVGhpcyBpbmNsdWRlcyBpbnB1dHMgbGlrZSBcIi0tXCIsIFwiLS0tXCIsIFwiYGBcIiBhbmQgXCInJ1wiLlxuICAgICAgICAgKiBUaGUgcmVzdWx0IHdpbGwgc2ltcGx5IHJlcGxhY2UgbXVsdGlwbGUgdGV4dG9yZCBub2RlcyB3aXRoIGEgc2luZ2xlXG4gICAgICAgICAqIGNoYXJhY3RlciBpbiBlYWNoIHZhbHVlIGJ5IGEgc2luZ2xlIHRleHRvcmQgbm9kZSBoYXZpbmcgbXVsdGlwbGVcbiAgICAgICAgICogY2hhcmFjdGVycyBpbiBpdHMgdmFsdWUuICBUaGUgcmVwcmVzZW50YXRpb24gaXMgc3RpbGwgQVNDSUkgc291cmNlLlxuICAgICAgICAgKiBUaGUgZ3JvdXAgd2lsbCBiZSBtb2RpZmllZCBpbiBwbGFjZS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJmb3JtTGlnYXR1cmVzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBmb3JtTGlnYXR1cmVzKGdyb3VwKSB7XG4gICAgICAgICAgICB2YXIgbiA9IGdyb3VwLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47ICsraSkge1xuICAgICAgICAgICAgICAgIHZhciBhID0gZ3JvdXBbaV07XG4gICAgICAgICAgICAgICAgdmFyIHYgPSBhLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh2ID09PSBcIi1cIiAmJiBncm91cFtpICsgMV0udmFsdWUgPT09IFwiLVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpICsgMSA8IG4gJiYgZ3JvdXBbaSArIDJdLnZhbHVlID09PSBcIi1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuc3BsaWNlKGksIDMsIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInRleHRvcmRcIiwgXCItLS1cIiwgXCJ0ZXh0XCIsIGEsIGdyb3VwW2kgKyAyXSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbiAtPSAyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuc3BsaWNlKGksIDIsIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInRleHRvcmRcIiwgXCItLVwiLCBcInRleHRcIiwgYSwgZ3JvdXBbaSArIDFdKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuIC09IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCh2ID09PSBcIidcIiB8fCB2ID09PSBcImBcIikgJiYgZ3JvdXBbaSArIDFdLnZhbHVlID09PSB2KSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLnNwbGljZShpLCAyLCBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJ0ZXh0b3JkXCIsIHYgKyB2LCBcInRleHRcIiwgYSwgZ3JvdXBbaSArIDFdKSk7XG4gICAgICAgICAgICAgICAgICAgIG4gLT0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUGFyc2UgYSBzaW5nbGUgc3ltYm9sIG91dCBvZiB0aGUgc3RyaW5nLiBIZXJlLCB3ZSBoYW5kbGUgYm90aCB0aGUgZnVuY3Rpb25zXG4gICAgICAgICAqIHdlIGhhdmUgZGVmaW5lZCwgYXMgd2VsbCBhcyB0aGUgc2luZ2xlIGNoYXJhY3RlciBzeW1ib2xzXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicGFyc2VTeW1ib2xcIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHBhcnNlU3ltYm9sKCkge1xuICAgICAgICAgICAgdmFyIG51Y2xldXMgPSB0aGlzLm5leHRUb2tlbjtcbiAgICAgICAgICAgIHZhciB0ZXh0ID0gbnVjbGV1cy50ZXh0O1xuXG4gICAgICAgICAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mdW5jdGlvbnNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVt0ZXh0XSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZSgpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGV4aXN0cyBhIGZ1bmN0aW9uIHdpdGggdGhpcyBuYW1lLCB3ZSByZXR1cm4gdGhlIGZ1bmN0aW9uIGFuZFxuICAgICAgICAgICAgICAgIC8vIHNheSB0aGF0IGl0IGlzIGEgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0Z1bmN0aW9uKG51Y2xldXMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvXlxcXFx2ZXJiW15hLXpBLVpdLy50ZXN0KHRleHQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAgICAgdmFyIGFyZyA9IHRleHQuc2xpY2UoNSk7XG4gICAgICAgICAgICAgICAgdmFyIHN0YXIgPSBhcmcuY2hhckF0KDApID09PSBcIipcIjtcbiAgICAgICAgICAgICAgICBpZiAoc3Rhcikge1xuICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIExleGVyJ3MgdG9rZW5SZWdleCBpcyBjb25zdHJ1Y3RlZCB0byBhbHdheXMgaGF2ZSBtYXRjaGluZ1xuICAgICAgICAgICAgICAgIC8vIGZpcnN0L2xhc3QgY2hhcmFjdGVycy5cbiAgICAgICAgICAgICAgICBpZiAoYXJnLmxlbmd0aCA8IDIgfHwgYXJnLmNoYXJBdCgwKSAhPT0gYXJnLnNsaWNlKC0xKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMV9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiXFxcXHZlcmIgYXNzZXJ0aW9uIGZhaWxlZCAtLVxcbiAgICAgICAgICAgICAgICAgICAgcGxlYXNlIHJlcG9ydCB3aGF0IGlucHV0IGNhdXNlZCB0aGlzIGJ1Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXJnID0gYXJnLnNsaWNlKDEsIC0xKTsgLy8gcmVtb3ZlIGZpcnN0IGFuZCBsYXN0IGNoYXJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3QXJndW1lbnQobmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTBfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwidmVyYlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGFyZyxcbiAgICAgICAgICAgICAgICAgICAgc3Rhcjogc3RhclxuICAgICAgICAgICAgICAgIH0sIFwidGV4dFwiKSwgbnVjbGV1cyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRleHQgPT09IFwiJFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld0RvbGxhcihudWNsZXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlIHNob3VsZCBoYXZlIGEgc3ltYm9sLCBwb3NzaWJseSB3aXRoIGFjY2VudHMuXG4gICAgICAgICAgICAvLyBGaXJzdCBleHBhbmQgYW55IGFjY2VudGVkIGJhc2Ugc3ltYm9sIGFjY29yZGluZyB0byB1bmljb2RlU3ltYm9scy5cbiAgICAgICAgICAgIGlmIChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX3VuaWNvZGVTeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uaGFzT3duUHJvcGVydHkodGV4dFswXSkgJiYgIV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW3RoaXMubW9kZV1bdGV4dFswXV0pIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X191bmljb2RlU3ltYm9sc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dW3RleHRbMF1dICsgdGV4dC5zdWJzdHIoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTdHJpcCBvZmYgYW55IGNvbWJpbmluZyBjaGFyYWN0ZXJzXG4gICAgICAgICAgICB2YXIgbWF0Y2ggPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEyX19MZXhlcl9qc19fW1wiYVwiIC8qIGNvbWJpbmluZ0RpYWNyaXRpY2FsTWFya3NFbmRSZWdleCAqL10uZXhlYyh0ZXh0KTtcbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCk7XG4gICAgICAgICAgICAgICAgaWYgKHRleHQgPT09ICdpJykge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gXCJcXHUwMTMxXCI7IC8vIGRvdGxlc3MgaSwgaW4gbWF0aCBhbmQgdGV4dCBtb2RlXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXh0ID09PSAnaicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IFwiXFx1MDIzN1wiOyAvLyBkb3RsZXNzIGosIGluIG1hdGggYW5kIHRleHQgbW9kZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFJlY29nbml6ZSBiYXNlIHN5bWJvbFxuICAgICAgICAgICAgdmFyIHN5bWJvbCA9IG51bGw7XG4gICAgICAgICAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL11bdGhpcy5tb2RlXVt0ZXh0XSkge1xuICAgICAgICAgICAgICAgIHN5bWJvbCA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXVt0aGlzLm1vZGVdW3RleHRdLmdyb3VwLCB0ZXh0LCB0aGlzLm1vZGUsIG51Y2xldXMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09IFwidGV4dFwiICYmIE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX3VuaWNvZGVTY3JpcHRzX19bXCJiXCIgLyogc3VwcG9ydGVkQ29kZXBvaW50ICovXSkodGV4dC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIHN5bWJvbCA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInRleHRvcmRcIiwgdGV4dCwgdGhpcy5tb2RlLCBudWNsZXVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7IC8vIEVPRiwgXiwgXywgeywgfSwgZXRjLlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb25zdW1lKCk7XG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gY29tYmluaW5nIGNoYXJhY3RlcnMgaW50byBhY2NlbnRzXG4gICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoWzBdLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhY2NlbnQgPSBtYXRjaFswXVtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3VuaWNvZGVBY2NlbnRzX19fZGVmYXVsdC5hW2FjY2VudF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJVbmtub3duIGFjY2VudCAnIFwiICsgYWNjZW50ICsgXCInXCIsIG51Y2xldXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb21tYW5kID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X191bmljb2RlQWNjZW50c19fX2RlZmF1bHQuYVthY2NlbnRdW3RoaXMubW9kZV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29tbWFuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkFjY2VudCBcIiArIGFjY2VudCArIFwiIHVuc3VwcG9ydGVkIGluIFwiICsgdGhpcy5tb2RlICsgXCIgbW9kZVwiLCBudWNsZXVzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJhY2NlbnRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhY2NlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb21tYW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdHJldGNoeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1NoaWZ0eTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U6IHN5bWJvbFxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLm1vZGUsIG51Y2xldXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXdBcmd1bWVudChzeW1ib2wsIG51Y2xldXMpO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFBhcnNlcjtcbn0oKTtcblxuUGFyc2VyLmVuZE9mRXhwcmVzc2lvbiA9IFtcIn1cIiwgXCJcXFxcZW5kXCIsIFwiXFxcXHJpZ2h0XCIsIFwiJlwiLCBcIlxcXFxcXFxcXCIsIFwiXFxcXGNyXCJdO1xuUGFyc2VyLlNVUFNVQl9HUkVFRElORVNTID0gMTtcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoUGFyc2VyKTtcblxuLyoqKi8gfSksXG4vKiAxMTUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19QYXJzZUVycm9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fUGFyc2VOb2RlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fZnVuY3Rpb25zX3NxcnRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTE2KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2Z1bmN0aW9uc19jb2xvcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTcpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fZnVuY3Rpb25zX3RleHRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTE4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2Z1bmN0aW9uc19lbmNsb3NlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExOSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19mdW5jdGlvbnNfb3ZlcmxpbmVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTIwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX2Z1bmN0aW9uc191bmRlcmxpbmVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTIxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX2Z1bmN0aW9uc19ydWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xMF9fZnVuY3Rpb25zX2tlcm5fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTIzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzExX19mdW5jdGlvbnNfcGhhbnRvbV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMjQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfX2Z1bmN0aW9uc19tb2RfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTI1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEzX19mdW5jdGlvbnNfb3BfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTI2KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE0X19mdW5jdGlvbnNfb3BlcmF0b3JuYW1lX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xNV9fZnVuY3Rpb25zX2dlbmZyYWNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTI4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzE2X19mdW5jdGlvbnNfbGFwX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyOSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xN19fZnVuY3Rpb25zX3NtYXNoX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOF9fZnVuY3Rpb25zX2RlbGltc2l6aW5nX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xOV9fZnVuY3Rpb25zX3NpemluZ19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2MCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yMF9fZnVuY3Rpb25zX3N0eWxpbmdfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIxX19mdW5jdGlvbnNfZm9udF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjJfX2Z1bmN0aW9uc19hY2NlbnRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTM3KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzIzX19mdW5jdGlvbnNfYWNjZW50dW5kZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTM4KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzI0X19mdW5jdGlvbnNfdmVyYl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMjVfX2Z1bmN0aW9uc19ocmVmX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0MCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yNl9fZnVuY3Rpb25zX21hdGhjaG9pY2VfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQxKTtcblxuLyoqIEluY2x1ZGUgdGhpcyB0byBlbnN1cmUgdGhhdCBhbGwgZnVuY3Rpb25zIGFyZSBkZWZpbmVkLiAqL1xuXG5cblxuXG4vLyBXQVJOSU5HOiBOZXcgZnVuY3Rpb25zIHNob3VsZCBiZSBhZGRlZCB0byBzcmMvZnVuY3Rpb25zIGFuZCBpbXBvcnRlZCBoZXJlLlxuXG52YXIgZnVuY3Rpb25zID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWZpbmVGdW5jdGlvbl9fW1wiYVwiIC8qIF9mdW5jdGlvbnMgKi9dO1xuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IChmdW5jdGlvbnMpO1xuXG4vLyBEZWZpbmUgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IG1pbWNzIHRoZSBvbGQgc2VtYW50aWNzIG9mIGRlZmluZUZ1bmN0aW9uXG4vLyB0byBzdXBwb3J0IGV4aXN0aW5nIGNvZGUgc28gdGhhdCB3ZSBjYW4gbWlncmF0ZSBpdCBhIGxpdHRsZSBiaXQgYXQgYSB0aW1lLlxudmFyIGRlZmluZUZ1bmN0aW9uID0gZnVuY3Rpb24gZGVmaW5lRnVuY3Rpb24obmFtZXMsIHByb3BzLCBoYW5kbGVyKSAvLyBudWxsIG9ubHkgaWYgaGFuZGxlZCBpbiBwYXJzZXJcbntcbiAgICBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7IG5hbWVzOiBuYW1lcywgcHJvcHM6IHByb3BzLCBoYW5kbGVyOiBoYW5kbGVyIH0pO1xufTtcblxuLy8gVE9ETyhrZXZpbmIpOiBoYXZlIGZ1bmN0aW9ucyByZXR1cm4gYW4gb2JqZWN0IGFuZCBjYWxsIGRlZmluZUZ1bmN0aW9uIHdpdGhcbi8vIHRoYXQgb2JqZWN0IGluIHRoaXMgZmlsZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gc2lkZS1lZmZlY3RzLlxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gTWF0aCBjbGFzcyBjb21tYW5kcyBleGNlcHQgXFxtYXRob3BcbmRlZmluZUZ1bmN0aW9uKFtcIlxcXFxtYXRob3JkXCIsIFwiXFxcXG1hdGhiaW5cIiwgXCJcXFxcbWF0aHJlbFwiLCBcIlxcXFxtYXRob3BlblwiLCBcIlxcXFxtYXRoY2xvc2VcIiwgXCJcXFxcbWF0aHB1bmN0XCIsIFwiXFxcXG1hdGhpbm5lclwiXSwge1xuICAgIG51bUFyZ3M6IDFcbn0sIGZ1bmN0aW9uIChjb250ZXh0LCBhcmdzKSB7XG4gICAgdmFyIGJvZHkgPSBhcmdzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwibWNsYXNzXCIsXG4gICAgICAgIG1jbGFzczogXCJtXCIgKyBjb250ZXh0LmZ1bmNOYW1lLnN1YnN0cig1KSxcbiAgICAgICAgdmFsdWU6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib2R5KVxuICAgIH07XG59KTtcblxuLy8gQnVpbGQgYSByZWxhdGlvbiBieSBwbGFjaW5nIG9uZSBzeW1ib2wgb24gdG9wIG9mIGFub3RoZXJcbmRlZmluZUZ1bmN0aW9uKFtcIlxcXFxzdGFja3JlbFwiXSwge1xuICAgIG51bUFyZ3M6IDJcbn0sIGZ1bmN0aW9uIChjb250ZXh0LCBhcmdzKSB7XG4gICAgdmFyIHRvcCA9IGFyZ3NbMF07XG4gICAgdmFyIGJvdHRvbSA9IGFyZ3NbMV07XG5cbiAgICB2YXIgYm90dG9tb3AgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIm9wXCIsIHtcbiAgICAgICAgdHlwZTogXCJvcFwiLFxuICAgICAgICBsaW1pdHM6IHRydWUsXG4gICAgICAgIGFsd2F5c0hhbmRsZVN1cFN1YjogdHJ1ZSxcbiAgICAgICAgc3ltYm9sOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib3R0b20pXG4gICAgfSwgYm90dG9tLm1vZGUpO1xuXG4gICAgdmFyIHN1cHN1YiA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwic3Vwc3ViXCIsIHtcbiAgICAgICAgYmFzZTogYm90dG9tb3AsXG4gICAgICAgIHN1cDogdG9wLFxuICAgICAgICBzdWI6IG51bGxcbiAgICB9LCB0b3AubW9kZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcIm1jbGFzc1wiLFxuICAgICAgICBtY2xhc3M6IFwibXJlbFwiLFxuICAgICAgICB2YWx1ZTogW3N1cHN1Yl1cbiAgICB9O1xufSk7XG5cblxuXG52YXIgc2luZ2xlQ2hhckludGVncmFscyA9IHtcbiAgICBcIlxcdTIyMkJcIjogXCJcXFxcaW50XCIsXG4gICAgXCJcXHUyMjJDXCI6IFwiXFxcXGlpbnRcIixcbiAgICBcIlxcdTIyMkRcIjogXCJcXFxcaWlpbnRcIixcbiAgICBcIlxcdTIyMkVcIjogXCJcXFxcb2ludFwiXG59O1xuXG4vLyBUaGVyZSBhcmUgMiBmbGFncyBmb3Igb3BlcmF0b3JzOyB3aGV0aGVyIHRoZXkgcHJvZHVjZSBsaW1pdHMgaW5cbi8vIGRpc3BsYXlzdHlsZSwgYW5kIHdoZXRoZXIgdGhleSBhcmUgc3ltYm9scyBhbmQgc2hvdWxkIGdyb3cgaW5cbi8vIGRpc3BsYXlzdHlsZS4gVGhlc2UgZm91ciBncm91cHMgY292ZXIgdGhlIGZvdXIgcG9zc2libGUgY2hvaWNlcy5cblxuLy8gTm8gbGltaXRzLCBub3Qgc3ltYm9sc1xuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXGFyY3NpblwiLCBcIlxcXFxhcmNjb3NcIiwgXCJcXFxcYXJjdGFuXCIsIFwiXFxcXGFyY3RnXCIsIFwiXFxcXGFyY2N0Z1wiLCBcIlxcXFxhcmdcIiwgXCJcXFxcY2hcIiwgXCJcXFxcY29zXCIsIFwiXFxcXGNvc2VjXCIsIFwiXFxcXGNvc2hcIiwgXCJcXFxcY290XCIsIFwiXFxcXGNvdGdcIiwgXCJcXFxcY290aFwiLCBcIlxcXFxjc2NcIiwgXCJcXFxcY3RnXCIsIFwiXFxcXGN0aFwiLCBcIlxcXFxkZWdcIiwgXCJcXFxcZGltXCIsIFwiXFxcXGV4cFwiLCBcIlxcXFxob21cIiwgXCJcXFxca2VyXCIsIFwiXFxcXGxnXCIsIFwiXFxcXGxuXCIsIFwiXFxcXGxvZ1wiLCBcIlxcXFxzZWNcIiwgXCJcXFxcc2luXCIsIFwiXFxcXHNpbmhcIiwgXCJcXFxcc2hcIiwgXCJcXFxcdGFuXCIsIFwiXFxcXHRhbmhcIiwgXCJcXFxcdGdcIiwgXCJcXFxcdGhcIl0sIHtcbiAgICBudW1BcmdzOiAwXG59LCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwib3BcIixcbiAgICAgICAgbGltaXRzOiBmYWxzZSxcbiAgICAgICAgc3ltYm9sOiBmYWxzZSxcbiAgICAgICAgYm9keTogY29udGV4dC5mdW5jTmFtZVxuICAgIH07XG59KTtcblxuLy8gTGltaXRzLCBub3Qgc3ltYm9sc1xuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXGRldFwiLCBcIlxcXFxnY2RcIiwgXCJcXFxcaW5mXCIsIFwiXFxcXGxpbVwiLCBcIlxcXFxtYXhcIiwgXCJcXFxcbWluXCIsIFwiXFxcXFByXCIsIFwiXFxcXHN1cFwiXSwge1xuICAgIG51bUFyZ3M6IDBcbn0sIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJvcFwiLFxuICAgICAgICBsaW1pdHM6IHRydWUsXG4gICAgICAgIHN5bWJvbDogZmFsc2UsXG4gICAgICAgIGJvZHk6IGNvbnRleHQuZnVuY05hbWVcbiAgICB9O1xufSk7XG5cbi8vIE5vIGxpbWl0cywgc3ltYm9sc1xuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXGludFwiLCBcIlxcXFxpaW50XCIsIFwiXFxcXGlpaW50XCIsIFwiXFxcXG9pbnRcIiwgXCJcXHUyMjJCXCIsIFwiXFx1MjIyQ1wiLCBcIlxcdTIyMkRcIiwgXCJcXHUyMjJFXCJdLCB7XG4gICAgbnVtQXJnczogMFxufSwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICB2YXIgZk5hbWUgPSBjb250ZXh0LmZ1bmNOYW1lO1xuICAgIGlmIChmTmFtZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgZk5hbWUgPSBzaW5nbGVDaGFySW50ZWdyYWxzW2ZOYW1lXTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJvcFwiLFxuICAgICAgICBsaW1pdHM6IGZhbHNlLFxuICAgICAgICBzeW1ib2w6IHRydWUsXG4gICAgICAgIGJvZHk6IGZOYW1lXG4gICAgfTtcbn0pO1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLy8gSG9yaXpvbnRhbCBzdHJldGNoeSBicmFjZXNcbmRlZmluZUZ1bmN0aW9uKFtcIlxcXFxvdmVyYnJhY2VcIiwgXCJcXFxcdW5kZXJicmFjZVwiXSwge1xuICAgIG51bUFyZ3M6IDFcbn0sIGZ1bmN0aW9uIChjb250ZXh0LCBhcmdzKSB7XG4gICAgdmFyIGJhc2UgPSBhcmdzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiaG9yaXpCcmFjZVwiLFxuICAgICAgICBsYWJlbDogY29udGV4dC5mdW5jTmFtZSxcbiAgICAgICAgaXNPdmVyOiAvXlxcXFxvdmVyLy50ZXN0KGNvbnRleHQuZnVuY05hbWUpLFxuICAgICAgICBiYXNlOiBiYXNlXG4gICAgfTtcbn0pO1xuXG4vLyBTdHJldGNoeSBhY2NlbnRzIHVuZGVyIHRoZSBib2R5XG5cblxuLy8gU3RyZXRjaHkgYXJyb3dzIHdpdGggYW4gb3B0aW9uYWwgYXJndW1lbnRcbmRlZmluZUZ1bmN0aW9uKFtcIlxcXFx4bGVmdGFycm93XCIsIFwiXFxcXHhyaWdodGFycm93XCIsIFwiXFxcXHhMZWZ0YXJyb3dcIiwgXCJcXFxceFJpZ2h0YXJyb3dcIiwgXCJcXFxceGxlZnRyaWdodGFycm93XCIsIFwiXFxcXHhMZWZ0cmlnaHRhcnJvd1wiLCBcIlxcXFx4aG9va2xlZnRhcnJvd1wiLCBcIlxcXFx4aG9va3JpZ2h0YXJyb3dcIiwgXCJcXFxceG1hcHN0b1wiLCBcIlxcXFx4cmlnaHRoYXJwb29uZG93blwiLCBcIlxcXFx4cmlnaHRoYXJwb29udXBcIiwgXCJcXFxceGxlZnRoYXJwb29uZG93blwiLCBcIlxcXFx4bGVmdGhhcnBvb251cFwiLCBcIlxcXFx4cmlnaHRsZWZ0aGFycG9vbnNcIiwgXCJcXFxceGxlZnRyaWdodGhhcnBvb25zXCIsIFwiXFxcXHhsb25nZXF1YWxcIiwgXCJcXFxceHR3b2hlYWRyaWdodGFycm93XCIsIFwiXFxcXHh0d29oZWFkbGVmdGFycm93XCIsIFwiXFxcXHh0b2Zyb21cIixcbi8vIFRoZSBuZXh0IDMgZnVuY3Rpb25zIGFyZSBoZXJlIHRvIHN1cHBvcnQgdGhlIG1oY2hlbSBleHRlbnNpb24uXG4vLyBEaXJlY3QgdXNlIG9mIHRoZXNlIGZ1bmN0aW9ucyBpcyBkaXNjb3VyYWdlZCBhbmQgbWF5IGJyZWFrIHNvbWVkYXkuXG5cIlxcXFx4cmlnaHRsZWZ0YXJyb3dzXCIsIFwiXFxcXHhyaWdodGVxdWlsaWJyaXVtXCIsIFwiXFxcXHhsZWZ0ZXF1aWxpYnJpdW1cIl0sIHtcbiAgICBudW1BcmdzOiAxLFxuICAgIG51bU9wdGlvbmFsQXJnczogMVxufSwgZnVuY3Rpb24gKGNvbnRleHQsIGFyZ3MsIG9wdEFyZ3MpIHtcbiAgICB2YXIgYmVsb3cgPSBvcHRBcmdzWzBdO1xuICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcInhBcnJvd1wiLCAvLyB4IGZvciBleHRlbnNpYmxlXG4gICAgICAgIGxhYmVsOiBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICBiZWxvdzogYmVsb3dcbiAgICB9O1xufSk7XG5cbi8vIEluZml4IGdlbmVyYWxpemVkIGZyYWN0aW9uc1xuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXG92ZXJcIiwgXCJcXFxcY2hvb3NlXCIsIFwiXFxcXGF0b3BcIl0sIHtcbiAgICBudW1BcmdzOiAwLFxuICAgIGluZml4OiB0cnVlXG59LCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciByZXBsYWNlV2l0aCA9IHZvaWQgMDtcbiAgICBzd2l0Y2ggKGNvbnRleHQuZnVuY05hbWUpIHtcbiAgICAgICAgY2FzZSBcIlxcXFxvdmVyXCI6XG4gICAgICAgICAgICByZXBsYWNlV2l0aCA9IFwiXFxcXGZyYWNcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiXFxcXGNob29zZVwiOlxuICAgICAgICAgICAgcmVwbGFjZVdpdGggPSBcIlxcXFxiaW5vbVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJcXFxcYXRvcFwiOlxuICAgICAgICAgICAgcmVwbGFjZVdpdGggPSBcIlxcXFxcXFxcYXRvcGZyYWNcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5yZWNvZ25pemVkIGluZml4IGdlbmZyYWMgY29tbWFuZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJpbmZpeFwiLFxuICAgICAgICByZXBsYWNlV2l0aDogcmVwbGFjZVdpdGgsXG4gICAgICAgIHRva2VuOiBjb250ZXh0LnRva2VuXG4gICAgfTtcbn0pO1xuXG4vLyBSb3cgYnJlYWtzIGZvciBhbGlnbmVkIGRhdGFcbmRlZmluZUZ1bmN0aW9uKFtcIlxcXFxcXFxcXCIsIFwiXFxcXGNyXCJdLCB7XG4gICAgbnVtQXJnczogMCxcbiAgICBudW1PcHRpb25hbEFyZ3M6IDEsXG4gICAgYXJnVHlwZXM6IFtcInNpemVcIl1cbn0sIGZ1bmN0aW9uIChjb250ZXh0LCBhcmdzLCBvcHRBcmdzKSB7XG4gICAgdmFyIHNpemUgPSBvcHRBcmdzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICAgIHR5cGU6IFwiY3JcIixcbiAgICAgICAgc2l6ZTogc2l6ZVxuICAgIH07XG59KTtcblxuLy8gRW52aXJvbm1lbnQgZGVsaW1pdGVyc1xuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXGJlZ2luXCIsIFwiXFxcXGVuZFwiXSwge1xuICAgIG51bUFyZ3M6IDEsXG4gICAgYXJnVHlwZXM6IFtcInRleHRcIl1cbn0sIGZ1bmN0aW9uIChjb250ZXh0LCBhcmdzKSB7XG4gICAgdmFyIG5hbWVHcm91cCA9IGFyZ3NbMF07XG4gICAgaWYgKG5hbWVHcm91cC50eXBlICE9PSBcIm9yZGdyb3VwXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiSW52YWxpZCBlbnZpcm9ubWVudCBuYW1lXCIsIG5hbWVHcm91cCk7XG4gICAgfVxuICAgIHZhciBuYW1lID0gXCJcIjtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5hbWVHcm91cC52YWx1ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICBuYW1lICs9IG5hbWVHcm91cC52YWx1ZVtpXS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJlbnZpcm9ubWVudFwiLFxuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBuYW1lR3JvdXA6IG5hbWVHcm91cFxuICAgIH07XG59KTtcblxuLy8gQm94IG1hbmlwdWxhdGlvblxuZGVmaW5lRnVuY3Rpb24oW1wiXFxcXHJhaXNlYm94XCJdLCB7XG4gICAgbnVtQXJnczogMixcbiAgICBhcmdUeXBlczogW1wic2l6ZVwiLCBcInRleHRcIl0sXG4gICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxufSwgZnVuY3Rpb24gKGNvbnRleHQsIGFyZ3MpIHtcbiAgICB2YXIgYW1vdW50ID0gYXJnc1swXTtcbiAgICB2YXIgYm9keSA9IGFyZ3NbMV07XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJyYWlzZWJveFwiLFxuICAgICAgICBkeTogYW1vdW50LFxuICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICB2YWx1ZTogT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVmaW5lRnVuY3Rpb25fX1tcImNcIiAvKiBvcmRhcmd1bWVudCAqL10pKGJvZHkpXG4gICAgfTtcbn0pO1xuXG5cblxuLy8gSHlwZXJsaW5rc1xuXG5cbi8vIE1hdGhDaG9pY2VcblxuXG4vKioqLyB9KSxcbi8qIDExNiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19kZWxpbWl0ZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fU3R5bGVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwic3FydFwiLFxuICAgIG5hbWVzOiBbXCJcXFxcc3FydFwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxLFxuICAgICAgICBudW1PcHRpb25hbEFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncykge1xuICAgICAgICB2YXIgaW5kZXggPSBvcHRBcmdzWzBdO1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInNxcnRcIixcbiAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICAvLyBTcXVhcmUgcm9vdHMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgcGcuIDQ0MywgUnVsZSAxMS5cblxuICAgICAgICAvLyBGaXJzdCwgd2UgZG8gdGhlIHNhbWUgc3RlcHMgYXMgaW4gb3ZlcmxpbmUgdG8gYnVpbGQgdGhlIGlubmVyIGdyb3VwXG4gICAgICAgIC8vIGFuZCBsaW5lXG4gICAgICAgIHZhciBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucy5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7XG4gICAgICAgIGlmIChpbm5lci5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgIC8vIFJlbmRlciBhIHNtYWxsIHN1cmQuXG4gICAgICAgICAgICBpbm5lci5oZWlnaHQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNvbWUgZ3JvdXBzIGNhbiByZXR1cm4gZG9jdW1lbnQgZnJhZ21lbnRzLiAgSGFuZGxlIHRob3NlIGJ5IHdyYXBwaW5nXG4gICAgICAgIC8vIHRoZW0gaW4gYSBzcGFuLlxuICAgICAgICBpZiAoaW5uZXIgaW5zdGFuY2VvZiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kb2N1bWVudEZyYWdtZW50KSB7XG4gICAgICAgICAgICBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW2lubmVyXSwgb3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pbmltdW0gc2l6ZSBmb3IgdGhlIFxcc3VyZCBkZWxpbWl0ZXJcbiAgICAgICAgdmFyIG1ldHJpY3MgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCk7XG4gICAgICAgIHZhciB0aGV0YSA9IG1ldHJpY3MuZGVmYXVsdFJ1bGVUaGlja25lc3M7XG5cbiAgICAgICAgdmFyIHBoaSA9IHRoZXRhO1xuICAgICAgICBpZiAob3B0aW9ucy5zdHlsZS5pZCA8IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5URVhULmlkKSB7XG4gICAgICAgICAgICBwaGkgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgY2xlYXJhbmNlIGJldHdlZW4gdGhlIGJvZHkgYW5kIGxpbmVcbiAgICAgICAgdmFyIGxpbmVDbGVhcmFuY2UgPSB0aGV0YSArIHBoaSAvIDQ7XG5cbiAgICAgICAgdmFyIG1pbkRlbGltaXRlckhlaWdodCA9IChpbm5lci5oZWlnaHQgKyBpbm5lci5kZXB0aCArIGxpbmVDbGVhcmFuY2UgKyB0aGV0YSkgKiBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIHNxcnQgU1ZHIG9mIHRoZSByZXF1aXJlZCBtaW5pbXVtIHNpemVcblxuICAgICAgICB2YXIgX2RlbGltaXRlciRzcXJ0SW1hZ2UgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2RlbGltaXRlcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnNxcnRJbWFnZShtaW5EZWxpbWl0ZXJIZWlnaHQsIG9wdGlvbnMpLFxuICAgICAgICAgICAgaW1nID0gX2RlbGltaXRlciRzcXJ0SW1hZ2Uuc3BhbixcbiAgICAgICAgICAgIHJ1bGVXaWR0aCA9IF9kZWxpbWl0ZXIkc3FydEltYWdlLnJ1bGVXaWR0aDtcblxuICAgICAgICB2YXIgZGVsaW1EZXB0aCA9IGltZy5oZWlnaHQgLSBydWxlV2lkdGg7XG5cbiAgICAgICAgLy8gQWRqdXN0IHRoZSBjbGVhcmFuY2UgYmFzZWQgb24gdGhlIGRlbGltaXRlciBzaXplXG4gICAgICAgIGlmIChkZWxpbURlcHRoID4gaW5uZXIuaGVpZ2h0ICsgaW5uZXIuZGVwdGggKyBsaW5lQ2xlYXJhbmNlKSB7XG4gICAgICAgICAgICBsaW5lQ2xlYXJhbmNlID0gKGxpbmVDbGVhcmFuY2UgKyBkZWxpbURlcHRoIC0gaW5uZXIuaGVpZ2h0IC0gaW5uZXIuZGVwdGgpIC8gMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNoaWZ0IHRoZSBzcXJ0IGltYWdlXG4gICAgICAgIHZhciBpbWdTaGlmdCA9IGltZy5oZWlnaHQgLSBpbm5lci5oZWlnaHQgLSBsaW5lQ2xlYXJhbmNlIC0gcnVsZVdpZHRoO1xuXG4gICAgICAgIGlubmVyLnN0eWxlLnBhZGRpbmdMZWZ0ID0gaW1nLmFkdmFuY2VXaWR0aCArIFwiZW1cIjtcblxuICAgICAgICAvLyBPdmVybGF5IHRoZSBpbWFnZSBhbmQgdGhlIGFyZ3VtZW50LlxuICAgICAgICB2YXIgYm9keSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImZpcnN0QmFzZWxpbmVcIixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogaW5uZXIsIHdyYXBwZXJDbGFzc2VzOiBbXCJzdmctYWxpZ25cIl0gfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogLShpbm5lci5oZWlnaHQgKyBpbWdTaGlmdCkgfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogaW1nIH0sIHsgdHlwZTogXCJrZXJuXCIsIHNpemU6IHJ1bGVXaWR0aCB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcblxuICAgICAgICBpZiAoIWdyb3VwLnZhbHVlLmluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJzcXJ0XCJdLCBbYm9keV0sIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBvcHRpb25hbCByb290IGluZGV4XG5cbiAgICAgICAgICAgIC8vIFRoZSBpbmRleCBpcyBhbHdheXMgaW4gc2NyaXB0c2NyaXB0IHN0eWxlXG4gICAgICAgICAgICB2YXIgbmV3T3B0aW9ucyA9IG9wdGlvbnMuaGF2aW5nU3R5bGUoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVFNDUklQVCk7XG4gICAgICAgICAgICB2YXIgcm9vdG0gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmluZGV4LCBuZXdPcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgLy8gVGhlIGFtb3VudCB0aGUgaW5kZXggaXMgc2hpZnRlZCBieS4gVGhpcyBpcyB0YWtlbiBmcm9tIHRoZSBUZVhcbiAgICAgICAgICAgIC8vIHNvdXJjZSwgaW4gdGhlIGRlZmluaXRpb24gb2YgYFxcckBAdGAuXG4gICAgICAgICAgICB2YXIgdG9TaGlmdCA9IDAuNiAqIChib2R5LmhlaWdodCAtIGJvZHkuZGVwdGgpO1xuXG4gICAgICAgICAgICAvLyBCdWlsZCBhIFZMaXN0IHdpdGggdGhlIHN1cGVyc2NyaXB0IHNoaWZ0ZWQgdXAgY29ycmVjdGx5XG4gICAgICAgICAgICB2YXIgcm9vdFZMaXN0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcInNoaWZ0XCIsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25EYXRhOiAtdG9TaGlmdCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IHJvb3RtIH1dXG4gICAgICAgICAgICB9LCBvcHRpb25zKTtcbiAgICAgICAgICAgIC8vIEFkZCBhIGNsYXNzIHN1cnJvdW5kaW5nIGl0IHNvIHdlIGNhbiBhZGQgb24gdGhlIGFwcHJvcHJpYXRlXG4gICAgICAgICAgICAvLyBrZXJuaW5nXG4gICAgICAgICAgICB2YXIgcm9vdFZMaXN0V3JhcCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJyb290XCJdLCBbcm9vdFZMaXN0XSk7XG5cbiAgICAgICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9yZFwiLCBcInNxcnRcIl0sIFtyb290Vkxpc3RXcmFwLCBib2R5XSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG5vZGUgPSB2b2lkIDA7XG4gICAgICAgIGlmIChncm91cC52YWx1ZS5pbmRleCkge1xuICAgICAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1yb290XCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyksIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5pbmRleCwgb3B0aW9ucyldKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtc3FydFwiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMpXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiAxMTcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuXG52YXIgaHRtbEJ1aWxkZXIgPSBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBlbGVtZW50cyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRIVE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS52YWx1ZSwgb3B0aW9ucy53aXRoQ29sb3IoZ3JvdXAudmFsdWUuY29sb3IpLCBmYWxzZSk7XG5cbiAgICAvLyBcXGNvbG9yIGlzbid0IHN1cHBvc2VkIHRvIGFmZmVjdCB0aGUgdHlwZSBvZiB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMuXG4gICAgLy8gVG8gYWNjb21wbGlzaCB0aGlzLCB3ZSB3cmFwIHRoZSByZXN1bHRzIGluIGEgZnJhZ21lbnQsIHNvIHRoZSBpbm5lclxuICAgIC8vIGVsZW1lbnRzIHdpbGwgYmUgYWJsZSB0byBkaXJlY3RseSBpbnRlcmFjdCB3aXRoIHRoZWlyIG5laWdoYm9ycy4gRm9yXG4gICAgLy8gZXhhbXBsZSwgYFxcY29sb3J7cmVkfXsyICt9IDNgIGhhcyB0aGUgc2FtZSBzcGFjaW5nIGFzIGAyICsgM2BcbiAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlRnJhZ21lbnQoZWxlbWVudHMpO1xufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIgPSBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtc3R5bGVcIiwgaW5uZXIpO1xuXG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJtYXRoY29sb3JcIiwgZ3JvdXAudmFsdWUuY29sb3IpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJjb2xvclwiLFxuICAgIG5hbWVzOiBbXCJcXFxcdGV4dGNvbG9yXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDIsXG4gICAgICAgIGFsbG93ZWRJblRleHQ6IHRydWUsXG4gICAgICAgIGdyZWVkaW5lc3M6IDMsXG4gICAgICAgIGFyZ1R5cGVzOiBbXCJjb2xvclwiLCBcIm9yaWdpbmFsXCJdXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGNvbG9yID0gYXJnc1swXTtcbiAgICAgICAgdmFyIGJvZHkgPSBhcmdzWzFdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJjb2xvclwiLFxuICAgICAgICAgICAgY29sb3I6IGNvbG9yLnZhbHVlLFxuICAgICAgICAgICAgdmFsdWU6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib2R5KVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8vIFRPRE8oa2V2aW5iKTogZGVmaW5lIHRoZXNlIHVzaW5nIG1hY3Jvc1xuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiY29sb3JcIixcbiAgICBuYW1lczogW1wiXFxcXGJsdWVcIiwgXCJcXFxcb3JhbmdlXCIsIFwiXFxcXHBpbmtcIiwgXCJcXFxccmVkXCIsIFwiXFxcXGdyZWVuXCIsIFwiXFxcXGdyYXlcIiwgXCJcXFxccHVycGxlXCIsIFwiXFxcXGJsdWVBXCIsIFwiXFxcXGJsdWVCXCIsIFwiXFxcXGJsdWVDXCIsIFwiXFxcXGJsdWVEXCIsIFwiXFxcXGJsdWVFXCIsIFwiXFxcXHRlYWxBXCIsIFwiXFxcXHRlYWxCXCIsIFwiXFxcXHRlYWxDXCIsIFwiXFxcXHRlYWxEXCIsIFwiXFxcXHRlYWxFXCIsIFwiXFxcXGdyZWVuQVwiLCBcIlxcXFxncmVlbkJcIiwgXCJcXFxcZ3JlZW5DXCIsIFwiXFxcXGdyZWVuRFwiLCBcIlxcXFxncmVlbkVcIiwgXCJcXFxcZ29sZEFcIiwgXCJcXFxcZ29sZEJcIiwgXCJcXFxcZ29sZENcIiwgXCJcXFxcZ29sZERcIiwgXCJcXFxcZ29sZEVcIiwgXCJcXFxccmVkQVwiLCBcIlxcXFxyZWRCXCIsIFwiXFxcXHJlZENcIiwgXCJcXFxccmVkRFwiLCBcIlxcXFxyZWRFXCIsIFwiXFxcXG1hcm9vbkFcIiwgXCJcXFxcbWFyb29uQlwiLCBcIlxcXFxtYXJvb25DXCIsIFwiXFxcXG1hcm9vbkRcIiwgXCJcXFxcbWFyb29uRVwiLCBcIlxcXFxwdXJwbGVBXCIsIFwiXFxcXHB1cnBsZUJcIiwgXCJcXFxccHVycGxlQ1wiLCBcIlxcXFxwdXJwbGVEXCIsIFwiXFxcXHB1cnBsZUVcIiwgXCJcXFxcbWludEFcIiwgXCJcXFxcbWludEJcIiwgXCJcXFxcbWludENcIiwgXCJcXFxcZ3JheUFcIiwgXCJcXFxcZ3JheUJcIiwgXCJcXFxcZ3JheUNcIiwgXCJcXFxcZ3JheURcIiwgXCJcXFxcZ3JheUVcIiwgXCJcXFxcZ3JheUZcIiwgXCJcXFxcZ3JheUdcIiwgXCJcXFxcZ3JheUhcIiwgXCJcXFxcZ3JheUlcIiwgXCJcXFxca2FCbHVlXCIsIFwiXFxcXGthR3JlZW5cIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMSxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZSxcbiAgICAgICAgZ3JlZWRpbmVzczogM1xuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiY29sb3JcIixcbiAgICAgICAgICAgIGNvbG9yOiBcImthdGV4LVwiICsgY29udGV4dC5mdW5jTmFtZS5zbGljZSgxKSxcbiAgICAgICAgICAgIHZhbHVlOiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiY1wiIC8qIG9yZGFyZ3VtZW50ICovXSkoYm9keSlcbiAgICAgICAgfTtcbiAgICB9LFxuXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXJcbn0pO1xuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJjb2xvclwiLFxuICAgIG5hbWVzOiBbXCJcXFxcY29sb3JcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMSxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZSxcbiAgICAgICAgZ3JlZWRpbmVzczogMyxcbiAgICAgICAgYXJnVHlwZXM6IFtcImNvbG9yXCJdXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIHBhcnNlciA9IGNvbnRleHQucGFyc2VyLFxuICAgICAgICAgICAgYnJlYWtPblRva2VuVGV4dCA9IGNvbnRleHQuYnJlYWtPblRva2VuVGV4dDtcblxuXG4gICAgICAgIHZhciBjb2xvciA9IGFyZ3NbMF07XG4gICAgICAgIGlmICghY29sb3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIlxcXFxjb2xvciBub3QgZm9sbG93ZWQgYnkgY29sb3JcIik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB3ZSBzZWUgYSBzdHlsaW5nIGZ1bmN0aW9uLCBwYXJzZSBvdXQgdGhlIGltcGxpY2l0IGJvZHlcbiAgICAgICAgdmFyIGJvZHkgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKHRydWUsIGJyZWFrT25Ub2tlblRleHQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcImNvbG9yXCIsXG4gICAgICAgICAgICBjb2xvcjogY29sb3IudmFsdWUsXG4gICAgICAgICAgICB2YWx1ZTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8qKiovIH0pLFxuLyogMTE4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuLy8gTm9uLW1hdGh5IHRleHQsIHBvc3NpYmx5IGluIGEgZm9udFxudmFyIHRleHRGb250RmFtaWxpZXMgPSB7XG4gICAgXCJcXFxcdGV4dFwiOiB1bmRlZmluZWQsIFwiXFxcXHRleHRybVwiOiBcInRleHRybVwiLCBcIlxcXFx0ZXh0c2ZcIjogXCJ0ZXh0c2ZcIixcbiAgICBcIlxcXFx0ZXh0dHRcIjogXCJ0ZXh0dHRcIiwgXCJcXFxcdGV4dG5vcm1hbFwiOiBcInRleHRybVwiXG59O1xuXG52YXIgdGV4dEZvbnRXZWlnaHRzID0ge1xuICAgIFwiXFxcXHRleHRiZlwiOiBcInRleHRiZlwiXG59O1xuXG52YXIgdGV4dEZvbnRTaGFwZXMgPSB7XG4gICAgXCJcXFxcdGV4dGl0XCI6IFwidGV4dGl0XCJcbn07XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcInRleHRcIixcbiAgICBuYW1lczogW1xuICAgIC8vIEZvbnQgZmFtaWxpZXNcbiAgICBcIlxcXFx0ZXh0XCIsIFwiXFxcXHRleHRybVwiLCBcIlxcXFx0ZXh0c2ZcIiwgXCJcXFxcdGV4dHR0XCIsIFwiXFxcXHRleHRub3JtYWxcIixcbiAgICAvLyBGb250IHdlaWdodHNcbiAgICBcIlxcXFx0ZXh0YmZcIixcbiAgICAvLyBGb250IFNoYXBlc1xuICAgIFwiXFxcXHRleHRpdFwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxLFxuICAgICAgICBhcmdUeXBlczogW1widGV4dFwiXSxcbiAgICAgICAgZ3JlZWRpbmVzczogMixcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgYm9keTogT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImNcIiAvKiBvcmRhcmd1bWVudCAqL10pKGJvZHkpLFxuICAgICAgICAgICAgZm9udDogY29udGV4dC5mdW5jTmFtZVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBmb250ID0gZ3JvdXAudmFsdWUuZm9udDtcbiAgICAgICAgLy8gQ2hlY2tzIGlmIHRoZSBhcmd1bWVudCBpcyBhIGZvbnQgZmFtaWx5IG9yIGEgZm9udCBzdHlsZS5cbiAgICAgICAgdmFyIG5ld09wdGlvbnMgPSB2b2lkIDA7XG4gICAgICAgIGlmICh0ZXh0Rm9udEZhbWlsaWVzW2ZvbnRdKSB7XG4gICAgICAgICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy53aXRoRm9udEZhbWlseSh0ZXh0Rm9udEZhbWlsaWVzW2ZvbnRdKTtcbiAgICAgICAgfSBlbHNlIGlmICh0ZXh0Rm9udFdlaWdodHNbZm9udF0pIHtcbiAgICAgICAgICAgIG5ld09wdGlvbnMgPSBvcHRpb25zLndpdGhGb250V2VpZ2h0KHRleHRGb250V2VpZ2h0c1tmb250XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy53aXRoRm9udFNoYXBlKHRleHRGb250U2hhcGVzW2ZvbnRdKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUuYm9keSwgbmV3T3B0aW9ucywgdHJ1ZSk7XG4gICAgICAgIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS50cnlDb21iaW5lQ2hhcnMoaW5uZXIpO1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJ0ZXh0XCJdLCBpbm5lciwgbmV3T3B0aW9ucyk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBib2R5ID0gZ3JvdXAudmFsdWUuYm9keTtcblxuICAgICAgICAvLyBDb252ZXJ0IGVhY2ggZWxlbWVudCBvZiB0aGUgYm9keSBpbnRvIE1hdGhNTCwgYW5kIGNvbWJpbmUgY29uc2VjdXRpdmVcbiAgICAgICAgLy8gPG10ZXh0PiBvdXRwdXRzIGludG8gYSBzaW5nbGUgPG10ZXh0PiB0YWcuICBJbiB0aGlzIHdheSwgd2UgZG9uJ3RcbiAgICAgICAgLy8gbmVzdCBub24tdGV4dCBpdGVtcyAoZS5nLiwgJG5lc3RlZC1tYXRoJCkgd2l0aGluIGFuIDxtdGV4dD4uXG4gICAgICAgIHZhciBpbm5lciA9IFtdO1xuICAgICAgICB2YXIgY3VycmVudFRleHQgPSBudWxsO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJvZHkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBfZ3JvdXAgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oYm9keVtpXSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoX2dyb3VwLnR5cGUgPT09ICdtdGV4dCcgJiYgY3VycmVudFRleHQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGN1cnJlbnRUZXh0LmNoaWxkcmVuLCBfZ3JvdXAuY2hpbGRyZW4pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbm5lci5wdXNoKF9ncm91cCk7XG4gICAgICAgICAgICAgICAgaWYgKF9ncm91cC50eXBlID09PSAnbXRleHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUZXh0ID0gX2dyb3VwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc2luZ2xlIHRhZyBpbiB0aGUgZW5kIChwcmVzdW1hYmx5IDxtdGV4dD4pLFxuICAgICAgICAvLyBqdXN0IHJldHVybiBpdC4gIE90aGVyd2lzZSwgd3JhcCB0aGVtIGluIGFuIDxtcm93Pi5cbiAgICAgICAgaWYgKGlubmVyLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGlubmVyWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1yb3dcIiwgaW5uZXIpO1xuICAgICAgICB9XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTE5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191dGlsc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N0cmV0Y2h5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cblxuXG5cblxuXG5cblxudmFyIGh0bWxCdWlsZGVyID0gZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBcXGNhbmNlbCwgXFxiY2FuY2VsLCBcXHhjYW5jZWwsIFxcc291dCwgXFxmYm94LCBcXGNvbG9yYm94LCBcXGZjb2xvcmJveFxuICAgIHZhciBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyk7XG5cbiAgICB2YXIgbGFiZWwgPSBncm91cC52YWx1ZS5sYWJlbC5zdWJzdHIoMSk7XG4gICAgdmFyIHNjYWxlID0gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcbiAgICB2YXIgaW1nID0gdm9pZCAwO1xuICAgIHZhciBpbWdTaGlmdCA9IDA7XG4gICAgdmFyIGlzQ29sb3Jib3ggPSAvY29sb3IvLnRlc3QobGFiZWwpO1xuXG4gICAgaWYgKGxhYmVsID09PSBcInNvdXRcIikge1xuICAgICAgICBpbWcgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wic3RyZXRjaHlcIiwgXCJzb3V0XCJdKTtcbiAgICAgICAgaW1nLmhlaWdodCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kZWZhdWx0UnVsZVRoaWNrbmVzcyAvIHNjYWxlO1xuICAgICAgICBpbWdTaGlmdCA9IC0wLjUgKiBvcHRpb25zLmZvbnRNZXRyaWNzKCkueEhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgaG9yaXpvbnRhbCBwYWRkaW5nXG4gICAgICAgIGlubmVyLmNsYXNzZXMucHVzaCgvY2FuY2VsLy50ZXN0KGxhYmVsKSA/IFwiY2FuY2VsLXBhZFwiIDogXCJib3hwYWRcIik7XG5cbiAgICAgICAgLy8gQWRkIHZlcnRpY2FsIHBhZGRpbmdcbiAgICAgICAgdmFyIHZlcnRQYWQgPSAwO1xuICAgICAgICAvLyByZWY6IExhVGVYIHNvdXJjZTJlOiBcXGZib3hzZXAgPSAzcHQ7ICBcXGZib3hydWxlID0gLjRwdFxuICAgICAgICAvLyByZWY6IGNhbmNlbCBwYWNrYWdlOiBcXGFkdmFuY2VcXHRvdGFsaGVpZ2h0MlxccEAgJSBcIisyXCJcbiAgICAgICAgaWYgKC9ib3gvLnRlc3QobGFiZWwpKSB7XG4gICAgICAgICAgICB2ZXJ0UGFkID0gbGFiZWwgPT09IFwiY29sb3Jib3hcIiA/IDAuMyA6IDAuMzQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJ0UGFkID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmlzQ2hhcmFjdGVyQm94KGdyb3VwLnZhbHVlLmJvZHkpID8gMC4yIDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3RyZXRjaHlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5lbmNsb3NlU3Bhbihpbm5lciwgbGFiZWwsIHZlcnRQYWQsIG9wdGlvbnMpO1xuICAgICAgICBpbWdTaGlmdCA9IGlubmVyLmRlcHRoICsgdmVydFBhZDtcblxuICAgICAgICBpZiAoaXNDb2xvcmJveCkge1xuICAgICAgICAgICAgaW1nLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGdyb3VwLnZhbHVlLmJhY2tncm91bmRDb2xvci52YWx1ZTtcbiAgICAgICAgICAgIGlmIChsYWJlbCA9PT0gXCJmY29sb3Jib3hcIikge1xuICAgICAgICAgICAgICAgIGltZy5zdHlsZS5ib3JkZXJDb2xvciA9IGdyb3VwLnZhbHVlLmJvcmRlckNvbG9yLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHZsaXN0ID0gdm9pZCAwO1xuICAgIGlmIChpc0NvbG9yYm94KSB7XG4gICAgICAgIHZsaXN0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLy8gUHV0IHRoZSBjb2xvciBiYWNrZ3JvdW5kIGJlaGluZCBpbm5lcjtcbiAgICAgICAgICAgIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IGltZywgc2hpZnQ6IGltZ1NoaWZ0IH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IGlubmVyLCBzaGlmdDogMCB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB2bGlzdCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgIC8vIFdyaXRlIHRoZSBcXGNhbmNlbCBzdHJva2Ugb24gdG9wIG9mIGlubmVyLlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgICAgICAgIGVsZW06IGlubmVyLFxuICAgICAgICAgICAgICAgIHNoaWZ0OiAwXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJlbGVtXCIsXG4gICAgICAgICAgICAgICAgZWxlbTogaW1nLFxuICAgICAgICAgICAgICAgIHNoaWZ0OiBpbWdTaGlmdCxcbiAgICAgICAgICAgICAgICB3cmFwcGVyQ2xhc3NlczogL2NhbmNlbC8udGVzdChsYWJlbCkgPyBbXCJzdmctYWxpZ25cIl0gOiBbXVxuICAgICAgICAgICAgfV1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKC9jYW5jZWwvLnRlc3QobGFiZWwpKSB7XG4gICAgICAgIC8vIGNhbmNlbCBkb2VzIG5vdCBjcmVhdGUgaG9yaXogc3BhY2UgZm9yIGl0cyBsaW5lIGV4dGVuc2lvbi5cbiAgICAgICAgLy8gVGhhdCBpcywgbm90IHdoZW4gYWRqYWNlbnQgdG8gYSBtb3JkLlxuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJjYW5jZWwtbGFwXCJdLCBbdmxpc3RdLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuICAgIH1cbn07XG5cbnZhciBtYXRobWxCdWlsZGVyID0gZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibWVuY2xvc2VcIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zKV0pO1xuICAgIHN3aXRjaCAoZ3JvdXAudmFsdWUubGFiZWwpIHtcbiAgICAgICAgY2FzZSBcIlxcXFxjYW5jZWxcIjpcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibm90YXRpb25cIiwgXCJ1cGRpYWdvbmFsc3RyaWtlXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJcXFxcYmNhbmNlbFwiOlxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcImRvd25kaWFnb25hbHN0cmlrZVwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiXFxcXHNvdXRcIjpcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibm90YXRpb25cIiwgXCJob3Jpem9udGFsc3RyaWtlXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJcXFxcZmJveFwiOlxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJub3RhdGlvblwiLCBcImJveFwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiXFxcXGNvbG9yYm94XCI6XG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm1hdGhiYWNrZ3JvdW5kXCIsIGdyb3VwLnZhbHVlLmJhY2tncm91bmRDb2xvci52YWx1ZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIlxcXFxmY29sb3Jib3hcIjpcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibWF0aGJhY2tncm91bmRcIiwgZ3JvdXAudmFsdWUuYmFja2dyb3VuZENvbG9yLnZhbHVlKTtcbiAgICAgICAgICAgIC8vIFRPRE8ocm9uKTogSSBkb24ndCBrbm93IGFueSB3YXkgdG8gc2V0IHRoZSBib3JkZXIgY29sb3IuXG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm5vdGF0aW9uXCIsIFwiYm94XCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyB4Y2FuY2VsXG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIm5vdGF0aW9uXCIsIFwidXBkaWFnb25hbHN0cmlrZSBkb3duZGlhZ29uYWxzdHJpa2VcIik7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiZW5jbG9zZVwiLFxuICAgIG5hbWVzOiBbXCJcXFxcY29sb3Jib3hcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMixcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZSxcbiAgICAgICAgZ3JlZWRpbmVzczogMyxcbiAgICAgICAgYXJnVHlwZXM6IFtcImNvbG9yXCIsIFwidGV4dFwiXVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzLCBvcHRBcmdzKSB7XG4gICAgICAgIHZhciBjb2xvciA9IGFyZ3NbMF07XG4gICAgICAgIHZhciBib2R5ID0gYXJnc1sxXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZW5jbG9zZVwiLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRleHQuZnVuY05hbWUsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICBuYW1lczogW1wiXFxcXGZjb2xvcmJveFwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAzLFxuICAgICAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgICAgICBncmVlZGluZXNzOiAzLFxuICAgICAgICBhcmdUeXBlczogW1wiY29sb3JcIiwgXCJjb2xvclwiLCBcInRleHRcIl1cbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncykge1xuICAgICAgICB2YXIgYm9yZGVyQ29sb3IgPSBhcmdzWzBdO1xuICAgICAgICB2YXIgYmFja2dyb3VuZENvbG9yID0gYXJnc1sxXTtcbiAgICAgICAgdmFyIGJvZHkgPSBhcmdzWzJdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJlbmNsb3NlXCIsXG4gICAgICAgICAgICBsYWJlbDogY29udGV4dC5mdW5jTmFtZSxcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogYmFja2dyb3VuZENvbG9yLFxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGJvcmRlckNvbG9yLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICBuYW1lczogW1wiXFxcXGNhbmNlbFwiLCBcIlxcXFxiY2FuY2VsXCIsIFwiXFxcXHhjYW5jZWxcIiwgXCJcXFxcc291dFwiLCBcIlxcXFxmYm94XCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcImVuY2xvc2VcIixcbiAgICAgICAgICAgIGxhYmVsOiBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8qKiovIH0pLFxuLyogMTIwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwib3ZlcmxpbmVcIixcbiAgICBuYW1lczogW1wiXFxcXG92ZXJsaW5lXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm92ZXJsaW5lXCIsXG4gICAgICAgICAgICBib2R5OiBib2R5XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gT3ZlcmxpbmVzIGFyZSBoYW5kbGVkIGluIHRoZSBUZVhib29rIHBnIDQ0MywgUnVsZSA5LlxuXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBpbm5lciBncm91cCBpbiB0aGUgY3JhbXBlZCBzdHlsZS5cbiAgICAgICAgdmFyIGlubmVyR3JvdXAgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMuaGF2aW5nQ3JhbXBlZFN0eWxlKCkpO1xuXG4gICAgICAgIC8vIENyZWF0ZSB0aGUgbGluZSBhYm92ZSB0aGUgYm9keVxuICAgICAgICB2YXIgbGluZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlTGluZVNwYW4oXCJvdmVybGluZS1saW5lXCIsIG9wdGlvbnMpO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSB2bGlzdCwgd2l0aCB0aGUgYXBwcm9wcmlhdGUga2VybnNcbiAgICAgICAgdmFyIHZsaXN0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBpbm5lckdyb3VwIH0sXG4gICAgICAgICAgICAvLyBUaGUga2VybiBvbiB0aGUgbmV4dCBsaW5lIHdvdWxkIG9yZGluYXJpbHkgYmUgMyAqIGxpbmUuaGVpZ2h0XG4gICAgICAgICAgICAvLyBCdXQgd2UgcHV0IHRoZSBsaW5lIGludG8gYSBzcGFuIHRoYXQgaXMgNSBsaW5lcyB0YWxsLCB0b1xuICAgICAgICAgICAgLy8gb3ZlcmNvbWUgYSBDaHJvbWUgcmVuZGVyaW5nIGlzc3VlLiBUaGUgU1ZHIGhhcyBhIHNwYWNlIGluXG4gICAgICAgICAgICAvLyB0aGUgYm90dG9tIHRoYXQgaXMgMiBsaW5lcyBoaWdoLiBUaGF0IGFuZCB0aGUgMS1saW5lLWhpZ2hcbiAgICAgICAgICAgIC8vIGtlcm4gc3VtIHVwIHRvIHRoZSBzYW1lIGRpc3RhbmNlIGFzIHRoZSBvbGQgMyBsaW5lIGtlcm4uXG4gICAgICAgICAgICB7IHR5cGU6IFwia2VyblwiLCBzaXplOiBsaW5lLmhlaWdodCB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBsaW5lIH1dXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9yZFwiLCBcIm92ZXJsaW5lXCJdLCBbdmxpc3RdLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG9wZXJhdG9yID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW25ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5UZXh0Tm9kZShcIlxcdTIwM0VcIildKTtcbiAgICAgICAgb3BlcmF0b3Iuc2V0QXR0cmlidXRlKFwic3RyZXRjaHlcIiwgXCJ0cnVlXCIpO1xuXG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW92ZXJcIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zKSwgb3BlcmF0b3JdKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhY2NlbnRcIiwgXCJ0cnVlXCIpO1xuXG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEyMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cblxuXG5cblxuXG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcInVuZGVybGluZVwiLFxuICAgIG5hbWVzOiBbXCJcXFxcdW5kZXJsaW5lXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDEsXG4gICAgICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInVuZGVybGluZVwiLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFVuZGVybGluZXMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgcGcgNDQzLCBSdWxlIDEwLlxuICAgICAgICAvLyBCdWlsZCB0aGUgaW5uZXIgZ3JvdXAuXG4gICAgICAgIHZhciBpbm5lckdyb3VwID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zKTtcblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGxpbmUgdG8gZ28gYmVsb3cgdGhlIGJvZHlcbiAgICAgICAgdmFyIGxpbmUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZUxpbmVTcGFuKFwidW5kZXJsaW5lLWxpbmVcIiwgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgdGhlIHZsaXN0LCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBrZXJuc1xuICAgICAgICB2YXIgdmxpc3QgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJ0b3BcIixcbiAgICAgICAgICAgIHBvc2l0aW9uRGF0YTogaW5uZXJHcm91cC5oZWlnaHQsXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgLy8gVGhlIFNWRyBpbWFnZSBpcyA1eCBhcyB0YWxsIGFzIHRoZSBsaW5lLlxuICAgICAgICAgICAgLy8gVGhlIGJvdHRvbSAyLzUgb2YgdGhlIGltYWdlIGlzIGJsYW5rIGFuZCBhY3RzIGxpa2UgYSBrZXJuLlxuICAgICAgICAgICAgLy8gU28gd2Ugb21pdCB0aGUga2VybiB0aGF0IHdvdWxkIG90aGVyd2lzZSBnbyBhdCB0aGUgYm90dG9tLlxuICAgICAgICAgICAgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogbGluZSB9LCB7IHR5cGU6IFwia2VyblwiLCBzaXplOiA1ICogbGluZS5oZWlnaHQgfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogaW5uZXJHcm91cCB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJ1bmRlcmxpbmVcIl0sIFt2bGlzdF0sIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgb3BlcmF0b3IgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRleHROb2RlKFwiXFx1MjAzRVwiKV0pO1xuICAgICAgICBvcGVyYXRvci5zZXRBdHRyaWJ1dGUoXCJzdHJldGNoeVwiLCBcInRydWVcIik7XG5cbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtdW5kZXJcIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zKSwgb3BlcmF0b3JdKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhY2NlbnR1bmRlclwiLCBcInRydWVcIik7XG5cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTIyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191bml0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7XG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwicnVsZVwiLFxuICAgIG5hbWVzOiBbXCJcXFxccnVsZVwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAyLFxuICAgICAgICBudW1PcHRpb25hbEFyZ3M6IDEsXG4gICAgICAgIGFyZ1R5cGVzOiBbXCJzaXplXCIsIFwic2l6ZVwiLCBcInNpemVcIl1cbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncykge1xuICAgICAgICB2YXIgc2hpZnQgPSBvcHRBcmdzWzBdO1xuICAgICAgICB2YXIgd2lkdGggPSBhcmdzWzBdO1xuICAgICAgICB2YXIgaGVpZ2h0ID0gYXJnc1sxXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwicnVsZVwiLFxuICAgICAgICAgICAgc2hpZnQ6IHNoaWZ0ICYmIHNoaWZ0LnZhbHVlLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoLnZhbHVlLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQudmFsdWVcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICAvLyBNYWtlIGFuIGVtcHR5IHNwYW4gZm9yIHRoZSBydWxlXG4gICAgICAgIHZhciBydWxlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJydWxlXCJdLCBbXSwgb3B0aW9ucyk7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBzaGlmdCwgd2lkdGgsIGFuZCBoZWlnaHQgb2YgdGhlIHJ1bGUsIGFuZCBhY2NvdW50IGZvciB1bml0c1xuICAgICAgICB2YXIgc2hpZnQgPSAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUuc2hpZnQpIHtcbiAgICAgICAgICAgIHNoaWZ0ID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdW5pdHNfX1tcImFcIiAvKiBjYWxjdWxhdGVTaXplICovXSkoZ3JvdXAudmFsdWUuc2hpZnQsIG9wdGlvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHdpZHRoID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdW5pdHNfX1tcImFcIiAvKiBjYWxjdWxhdGVTaXplICovXSkoZ3JvdXAudmFsdWUud2lkdGgsIG9wdGlvbnMpO1xuICAgICAgICB2YXIgaGVpZ2h0ID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdW5pdHNfX1tcImFcIiAvKiBjYWxjdWxhdGVTaXplICovXSkoZ3JvdXAudmFsdWUuaGVpZ2h0LCBvcHRpb25zKTtcblxuICAgICAgICAvLyBTdHlsZSB0aGUgcnVsZSB0byB0aGUgcmlnaHQgc2l6ZVxuICAgICAgICBydWxlLnN0eWxlLmJvcmRlclJpZ2h0V2lkdGggPSB3aWR0aCArIFwiZW1cIjtcbiAgICAgICAgcnVsZS5zdHlsZS5ib3JkZXJUb3BXaWR0aCA9IGhlaWdodCArIFwiZW1cIjtcbiAgICAgICAgcnVsZS5zdHlsZS5ib3R0b20gPSBzaGlmdCArIFwiZW1cIjtcblxuICAgICAgICAvLyBSZWNvcmQgdGhlIGhlaWdodCBhbmQgd2lkdGhcbiAgICAgICAgcnVsZS53aWR0aCA9IHdpZHRoO1xuICAgICAgICBydWxlLmhlaWdodCA9IGhlaWdodCArIHNoaWZ0O1xuICAgICAgICBydWxlLmRlcHRoID0gLXNoaWZ0O1xuICAgICAgICAvLyBGb250IHNpemUgaXMgdGhlIG51bWJlciBsYXJnZSBlbm91Z2ggdGhhdCB0aGUgYnJvd3NlciB3aWxsXG4gICAgICAgIC8vIHJlc2VydmUgYXQgbGVhc3QgYGFic0hlaWdodGAgc3BhY2UgYWJvdmUgdGhlIGJhc2VsaW5lLlxuICAgICAgICAvLyBUaGUgMS4xMjUgZmFjdG9yIHdhcyBlbXBpcmljYWxseSBkZXRlcm1pbmVkXG4gICAgICAgIHJ1bGUubWF4Rm9udFNpemUgPSBoZWlnaHQgKiAxLjEyNSAqIG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG5cbiAgICAgICAgcmV0dXJuIHJ1bGU7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFRPRE8oZW1pbHkpOiBGaWd1cmUgb3V0IGlmIHRoZXJlJ3MgYW4gYWN0dWFsIHdheSB0byBkcmF3IGJsYWNrIGJveGVzXG4gICAgICAgIC8vIGluIE1hdGhNTC5cbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtcm93XCIpO1xuXG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEyMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdW5pdHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fUGFyc2VFcnJvcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcblxuLyogZXNsaW50IG5vLWNvbnNvbGU6MCAqL1xuLy8gSG9yaXpvbnRhbCBzcGFjaW5nIGNvbW1hbmRzXG5cblxuXG5cblxuXG5cbi8vIFRPRE86IFxcaHNraXAgYW5kIFxcbXNraXAgc2hvdWxkIHN1cHBvcnQgcGx1cyBhbmQgbWludXMgaW4gbGVuZ3Roc1xuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJrZXJuXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxrZXJuXCIsIFwiXFxcXG1rZXJuXCIsIFwiXFxcXGhza2lwXCIsIFwiXFxcXG1za2lwXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDEsXG4gICAgICAgIGFyZ1R5cGVzOiBbXCJzaXplXCJdLFxuICAgICAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIG1hdGhGdW5jdGlvbiA9IGNvbnRleHQuZnVuY05hbWVbMV0gPT09ICdtJzsgLy8gXFxta2VybiwgXFxtc2tpcFxuICAgICAgICB2YXIgbXVVbml0ID0gYXJnc1swXS52YWx1ZS51bml0ID09PSAnbXUnO1xuICAgICAgICBpZiAobWF0aEZ1bmN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoIW11VW5pdCkge1xuICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnNvbGUud2FybihcIkluIExhVGVYLCBcIiArIGNvbnRleHQuZnVuY05hbWUgKyBcIiBzdXBwb3J0cyBvbmx5IG11IHVuaXRzLCBcIiArIChcIm5vdCBcIiArIGFyZ3NbMF0udmFsdWUudW5pdCArIFwiIHVuaXRzXCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb250ZXh0LnBhcnNlci5tb2RlICE9PSBcIm1hdGhcIikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkNhbid0IHVzZSBmdW5jdGlvbiAnXCIgKyBjb250ZXh0LmZ1bmNOYW1lICsgXCInIGluIHRleHQgbW9kZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vICFtYXRoRnVuY3Rpb25cbiAgICAgICAgICAgIGlmIChtdVVuaXQpIHtcbiAgICAgICAgICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb25zb2xlLndhcm4oXCJJbiBMYVRlWCwgXCIgKyBjb250ZXh0LmZ1bmNOYW1lICsgXCIgZG9lcyBub3Qgc3VwcG9ydCBtdSB1bml0c1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJrZXJuXCIsXG4gICAgICAgICAgICBkaW1lbnNpb246IGFyZ3NbMF0udmFsdWVcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VHbHVlKGdyb3VwLnZhbHVlLmRpbWVuc2lvbiwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXNwYWNlXCIpO1xuXG4gICAgICAgIHZhciBkaW1lbnNpb24gPSBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191bml0c19fW1wiYVwiIC8qIGNhbGN1bGF0ZVNpemUgKi9dKShncm91cC52YWx1ZS5kaW1lbnNpb24sIG9wdGlvbnMpO1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIGRpbWVuc2lvbiArIFwiZW1cIik7XG5cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTI0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwicGhhbnRvbVwiLFxuICAgIG5hbWVzOiBbXCJcXFxccGhhbnRvbVwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGJvZHkgPSBhcmdzWzBdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJwaGFudG9tXCIsXG4gICAgICAgICAgICB2YWx1ZTogT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImNcIiAvKiBvcmRhcmd1bWVudCAqL10pKGJvZHkpXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfX1tcImFcIiAvKiBidWlsZEV4cHJlc3Npb24gKi9dKGdyb3VwLnZhbHVlLnZhbHVlLCBvcHRpb25zLndpdGhQaGFudG9tKCksIGZhbHNlKTtcblxuICAgICAgICAvLyBcXHBoYW50b20gaXNuJ3Qgc3VwcG9zZWQgdG8gYWZmZWN0IHRoZSBlbGVtZW50cyBpdCBjb250YWlucy5cbiAgICAgICAgLy8gU2VlIFwiY29sb3JcIiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgICAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlRnJhZ21lbnQoZWxlbWVudHMpO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS52YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtcGhhbnRvbVwiLCBpbm5lcik7XG4gICAgfVxufSk7XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImhwaGFudG9tXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxocGhhbnRvbVwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGJvZHkgPSBhcmdzWzBdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJocGhhbnRvbVwiLFxuICAgICAgICAgICAgdmFsdWU6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib2R5KSxcbiAgICAgICAgICAgIGJvZHk6IGJvZHlcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbm9kZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucy53aXRoUGhhbnRvbSgpKV0pO1xuICAgICAgICBub2RlLmhlaWdodCA9IDA7XG4gICAgICAgIG5vZGUuZGVwdGggPSAwO1xuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbm9kZS5jaGlsZHJlbltpXS5oZWlnaHQgPSAwO1xuICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW5baV0uZGVwdGggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2VlIHNtYXNoIGZvciBjb21tZW50IHJlOiB1c2Ugb2YgbWFrZVZMaXN0XG4gICAgICAgIG5vZGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJmaXJzdEJhc2VsaW5lXCIsXG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IG5vZGUgfV1cbiAgICAgICAgfSwgb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRNYXRoTUxfX1tcImFcIiAvKiBidWlsZEV4cHJlc3Npb24gKi9dKGdyb3VwLnZhbHVlLnZhbHVlLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtcGhhbnRvbVwiLCBpbm5lcik7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIFwiMHB4XCIpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwidnBoYW50b21cIixcbiAgICBuYW1lczogW1wiXFxcXHZwaGFudG9tXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInZwaGFudG9tXCIsXG4gICAgICAgICAgICB2YWx1ZTogT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImNcIiAvKiBvcmRhcmd1bWVudCAqL10pKGJvZHkpLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJpbm5lclwiXSwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucy53aXRoUGhhbnRvbSgpKV0pO1xuICAgICAgICB2YXIgZml4ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcImZpeFwiXSwgW10pO1xuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJybGFwXCJdLCBbaW5uZXIsIGZpeF0sIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS52YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXBoYW50b21cIiwgaW5uZXIpO1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIFwiMHB4XCIpO1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiAxMjUgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cbi8vIFxcbW9kLXR5cGUgZnVuY3Rpb25zXG5cblxuXG5cblxuXG5cblxudmFyIGh0bWxNb2RCdWlsZGVyID0gZnVuY3Rpb24gaHRtbE1vZEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICB2YXIgaW5uZXIgPSBbXTtcblxuICAgIGlmIChncm91cC52YWx1ZS5tb2RUeXBlID09PSBcImJtb2RcIikge1xuICAgICAgICAvLyDigJxcXG5vbnNjcmlwdFxcbXNraXAtXFxtZWRtdXNraXBcXG1rZXJuNW114oCdLCB3aGVyZSBcXG1lZG11c2tpcCBpc1xuICAgICAgICAvLyA0bXUgcGx1cyAybXUgbWludXMgMW11LCB0cmFuc2xhdGVzIHRvIDFtdSBzcGFjZSBpblxuICAgICAgICAvLyBkaXNwbGF5L3RleHRzdHlsZSBhbmQgNW11IHNwYWNlIGluIHNjcmlwdC9zY3JpcHRzY3JpcHRzdHlsZS5cbiAgICAgICAgaWYgKCFvcHRpb25zLnN0eWxlLmlzVGlnaHQoKSkge1xuICAgICAgICAgICAgaW5uZXIucHVzaChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibXNwYWNlXCIsIFwibXVzcGFjZVwiXSwgW10sIG9wdGlvbnMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlubmVyLnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1zcGFjZVwiLCBcInRoaWNrc3BhY2VcIl0sIFtdLCBvcHRpb25zKSk7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc3R5bGUuc2l6ZSA9PT0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkuc2l6ZSkge1xuICAgICAgICBpbm5lci5wdXNoKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtc3BhY2VcIiwgXCJxdWFkXCJdLCBbXSwgb3B0aW9ucykpO1xuICAgIH0gZWxzZSBpZiAoZ3JvdXAudmFsdWUubW9kVHlwZSA9PT0gXCJtb2RcIikge1xuICAgICAgICBpbm5lci5wdXNoKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtc3BhY2VcIiwgXCJ0d2VsdmVtdXNwYWNlXCJdLCBbXSwgb3B0aW9ucykpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlubmVyLnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1zcGFjZVwiLCBcImVpZ2h0bXVzcGFjZVwiXSwgW10sIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBpZiAoZ3JvdXAudmFsdWUubW9kVHlwZSA9PT0gXCJwb2RcIiB8fCBncm91cC52YWx1ZS5tb2RUeXBlID09PSBcInBtb2RcIikge1xuICAgICAgICBpbm5lci5wdXNoKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKFwiKFwiLCBncm91cC5tb2RlKSk7XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLnZhbHVlLm1vZFR5cGUgIT09IFwicG9kXCIpIHtcbiAgICAgICAgdmFyIG1vZElubmVyID0gW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKFwibVwiLCBncm91cC5tb2RlKSwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhzeW0oXCJvXCIsIGdyb3VwLm1vZGUpLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aHN5bShcImRcIiwgZ3JvdXAubW9kZSldO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUubW9kVHlwZSA9PT0gXCJibW9kXCIpIHtcbiAgICAgICAgICAgIGlubmVyLnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1iaW5cIl0sIG1vZElubmVyLCBvcHRpb25zKSk7XG4gICAgICAgICAgICAvLyDigJxcXG1rZXJuNW11XFxub25zY3JpcHRcXG1za2lwLVxcbWVkbXVza2lw4oCdIGFzIGFib3ZlXG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuc3R5bGUuaXNUaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgaW5uZXIucHVzaChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibXNwYWNlXCIsIFwibXVzcGFjZVwiXSwgW10sIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5uZXIucHVzaChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibXNwYWNlXCIsIFwidGhpY2tzcGFjZVwiXSwgW10sIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGlubmVyLCBtb2RJbm5lcik7XG4gICAgICAgICAgICBpbm5lci5wdXNoKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtc3BhY2VcIiwgXCJzaXhtdXNwYWNlXCJdLCBbXSwgb3B0aW9ucykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLnZhbHVlLnZhbHVlKSB7XG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGlubmVyLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkSFRNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG9wdGlvbnMsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgaWYgKGdyb3VwLnZhbHVlLm1vZFR5cGUgPT09IFwicG9kXCIgfHwgZ3JvdXAudmFsdWUubW9kVHlwZSA9PT0gXCJwbW9kXCIpIHtcbiAgICAgICAgaW5uZXIucHVzaChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aHN5bShcIilcIiwgZ3JvdXAubW9kZSkpO1xuICAgIH1cblxuICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZUZyYWdtZW50KGlubmVyKTtcbn07XG5cbnZhciBtbWxNb2RCdWlsZGVyID0gZnVuY3Rpb24gbW1sTW9kQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgIHZhciBpbm5lciA9IFtdO1xuXG4gICAgaWYgKGdyb3VwLnZhbHVlLm1vZFR5cGUgPT09IFwicG9kXCIgfHwgZ3JvdXAudmFsdWUubW9kVHlwZSA9PT0gXCJwbW9kXCIpIHtcbiAgICAgICAgaW5uZXIucHVzaChuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fW1wiZVwiIC8qIG1ha2VUZXh0ICovXShcIihcIiwgZ3JvdXAubW9kZSldKSk7XG4gICAgfVxuICAgIGlmIChncm91cC52YWx1ZS5tb2RUeXBlICE9PSBcInBvZFwiKSB7XG4gICAgICAgIGlubmVyLnB1c2gobmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRNYXRoTUxfX1tcImVcIiAvKiBtYWtlVGV4dCAqL10oXCJtb2RcIiwgZ3JvdXAubW9kZSldKSk7XG4gICAgfVxuICAgIGlmIChncm91cC52YWx1ZS52YWx1ZSkge1xuICAgICAgICB2YXIgc3BhY2UgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtc3BhY2VcIik7XG4gICAgICAgIHNwYWNlLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIFwiMC4zMzMzMzNlbVwiKTtcbiAgICAgICAgaW5uZXIucHVzaChzcGFjZSk7XG4gICAgICAgIGlubmVyID0gaW5uZXIuY29uY2F0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRNYXRoTUxfX1tcImFcIiAvKiBidWlsZEV4cHJlc3Npb24gKi9dKGdyb3VwLnZhbHVlLnZhbHVlLCBvcHRpb25zKSk7XG4gICAgfVxuICAgIGlmIChncm91cC52YWx1ZS5tb2RUeXBlID09PSBcInBvZFwiIHx8IGdyb3VwLnZhbHVlLm1vZFR5cGUgPT09IFwicG1vZFwiKSB7XG4gICAgICAgIGlubmVyLnB1c2gobmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRNYXRoTUxfX1tcImVcIiAvKiBtYWtlVGV4dCAqL10oXCIpXCIsIGdyb3VwLm1vZGUpXSkpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBpbm5lcik7XG59O1xuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJtb2RcIixcbiAgICBuYW1lczogW1wiXFxcXGJtb2RcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMFxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm1vZFwiLFxuICAgICAgICAgICAgbW9kVHlwZTogXCJibW9kXCIsXG4gICAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxNb2RCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1tbE1vZEJ1aWxkZXJcbn0pO1xuXG4vLyBOb3RlOiBjYWxsaW5nIGRlZmluZUZ1bmN0aW9uIHdpdGggYSB0eXBlIHRoYXQncyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBvbmx5XG4vLyB3b3JrcyBiZWNhdXNlIHRoZSBzYW1lIGh0bWxCdWlsZGVyIGFuZCBtYXRobWxCdWlsZGVyIGFyZSBiZWluZyB1c2VkLlxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwibW9kXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxwb2RcIiwgXCJcXFxccG1vZFwiLCBcIlxcXFxtb2RcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwibW9kXCIsXG4gICAgICAgICAgICBtb2RUeXBlOiBjb250ZXh0LmZ1bmNOYW1lLnN1YnN0cigxKSxcbiAgICAgICAgICAgIHZhbHVlOiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiY1wiIC8qIG9yZGFyZ3VtZW50ICovXSkoYm9keSlcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBodG1sTW9kQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyOiBtbWxNb2RCdWlsZGVyXG59KTtcblxuLyoqKi8gfSksXG4vKiAxMjYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZG9tVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fdXRpbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19TdHlsZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG4vLyBMaW1pdHMsIHN5bWJvbHNcblxuXG5cblxuXG5cblxuXG5cblxudmFyIGh0bWxCdWlsZGVyID0gZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBPcGVyYXRvcnMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgcGcuIDQ0My00NDQsIHJ1bGUgMTMoYSkuXG4gICAgdmFyIHN1cEdyb3VwID0gdm9pZCAwO1xuICAgIHZhciBzdWJHcm91cCA9IHZvaWQgMDtcbiAgICB2YXIgaGFzTGltaXRzID0gZmFsc2U7XG4gICAgaWYgKGdyb3VwLnR5cGUgPT09IFwic3Vwc3ViXCIpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBsaW1pdHMsIHN1cHN1YiB3aWxsIHBhc3MgdXMgaXRzIGdyb3VwIHRvIGhhbmRsZS4gUHVsbFxuICAgICAgICAvLyBvdXQgdGhlIHN1cGVyc2NyaXB0IGFuZCBzdWJzY3JpcHQgYW5kIHNldCB0aGUgZ3JvdXAgdG8gdGhlIG9wIGluXG4gICAgICAgIC8vIGl0cyBiYXNlLlxuICAgICAgICBzdXBHcm91cCA9IGdyb3VwLnZhbHVlLnN1cDtcbiAgICAgICAgc3ViR3JvdXAgPSBncm91cC52YWx1ZS5zdWI7XG4gICAgICAgIGdyb3VwID0gZ3JvdXAudmFsdWUuYmFzZTtcbiAgICAgICAgaGFzTGltaXRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgc3R5bGUgPSBvcHRpb25zLnN0eWxlO1xuXG4gICAgLy8gTW9zdCBvcGVyYXRvcnMgaGF2ZSBhIGxhcmdlIHN1Y2Nlc3NvciBzeW1ib2wsIGJ1dCB0aGVzZSBkb24ndC5cbiAgICB2YXIgbm9TdWNjZXNzb3IgPSBbXCJcXFxcc21hbGxpbnRcIl07XG5cbiAgICB2YXIgbGFyZ2UgPSBmYWxzZTtcbiAgICBpZiAoc3R5bGUuc2l6ZSA9PT0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkuc2l6ZSAmJiBncm91cC52YWx1ZS5zeW1ib2wgJiYgIV9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhub1N1Y2Nlc3NvciwgZ3JvdXAudmFsdWUuYm9keSkpIHtcblxuICAgICAgICAvLyBNb3N0IHN5bWJvbCBvcGVyYXRvcnMgZ2V0IGxhcmdlciBpbiBkaXNwbGF5c3R5bGUgKHJ1bGUgMTMpXG4gICAgICAgIGxhcmdlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgYmFzZSA9IHZvaWQgMDtcbiAgICBpZiAoZ3JvdXAudmFsdWUuc3ltYm9sKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXMgYSBzeW1ib2wsIGNyZWF0ZSB0aGUgc3ltYm9sLlxuICAgICAgICB2YXIgZm9udE5hbWUgPSBsYXJnZSA/IFwiU2l6ZTItUmVndWxhclwiIDogXCJTaXplMS1SZWd1bGFyXCI7XG4gICAgICAgIGJhc2UgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVN5bWJvbChncm91cC52YWx1ZS5ib2R5LCBmb250TmFtZSwgXCJtYXRoXCIsIG9wdGlvbnMsIFtcIm1vcFwiLCBcIm9wLXN5bWJvbFwiLCBsYXJnZSA/IFwibGFyZ2Utb3BcIiA6IFwic21hbGwtb3BcIl0pO1xuICAgIH0gZWxzZSBpZiAoZ3JvdXAudmFsdWUudmFsdWUpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGxpc3QsIGNvbXBvc2UgdGhhdCBsaXN0LlxuICAgICAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkSFRNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG9wdGlvbnMsIHRydWUpO1xuICAgICAgICBpZiAoaW5uZXIubGVuZ3RoID09PSAxICYmIGlubmVyWzBdIGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kb21UcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ltYm9sTm9kZSkge1xuICAgICAgICAgICAgYmFzZSA9IGlubmVyWzBdO1xuICAgICAgICAgICAgYmFzZS5jbGFzc2VzWzBdID0gXCJtb3BcIjsgLy8gcmVwbGFjZSBvbGQgbWNsYXNzXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiYXNlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcFwiXSwgaW5uZXIsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCB0aGlzIGlzIGEgdGV4dCBvcGVyYXRvci4gQnVpbGQgdGhlIHRleHQgZnJvbSB0aGVcbiAgICAgICAgLy8gb3BlcmF0b3IncyBuYW1lLlxuICAgICAgICAvLyBUT0RPKGVtaWx5KTogQWRkIGEgc3BhY2UgaW4gdGhlIG1pZGRsZSBvZiBzb21lIG9mIHRoZXNlXG4gICAgICAgIC8vIG9wZXJhdG9ycywgbGlrZSBcXGxpbXN1cFxuICAgICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZ3JvdXAudmFsdWUuYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgb3V0cHV0LnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1hdGhzeW0oZ3JvdXAudmFsdWUuYm9keVtpXSwgZ3JvdXAubW9kZSkpO1xuICAgICAgICB9XG4gICAgICAgIGJhc2UgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9wXCJdLCBvdXRwdXQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIElmIGNvbnRlbnQgb2Ygb3AgaXMgYSBzaW5nbGUgc3ltYm9sLCBzaGlmdCBpdCB2ZXJ0aWNhbGx5LlxuICAgIHZhciBiYXNlU2hpZnQgPSAwO1xuICAgIHZhciBzbGFudCA9IDA7XG4gICAgaWYgKGJhc2UgaW5zdGFuY2VvZiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zeW1ib2xOb2RlKSB7XG4gICAgICAgIC8vIFNoaWZ0IHRoZSBzeW1ib2wgc28gaXRzIGNlbnRlciBsaWVzIG9uIHRoZSBheGlzIChydWxlIDEzKS4gSXRcbiAgICAgICAgLy8gYXBwZWFycyB0aGF0IG91ciBmb250cyBoYXZlIHRoZSBjZW50ZXJzIG9mIHRoZSBzeW1ib2xzIGFscmVhZHlcbiAgICAgICAgLy8gYWxtb3N0IG9uIHRoZSBheGlzLCBzbyB0aGVzZSBudW1iZXJzIGFyZSB2ZXJ5IHNtYWxsLiBOb3RlIHdlXG4gICAgICAgIC8vIGRvbid0IGFjdHVhbGx5IGFwcGx5IHRoaXMgaGVyZSwgYnV0IGluc3RlYWQgaXQgaXMgdXNlZCBlaXRoZXIgaW5cbiAgICAgICAgLy8gdGhlIHZsaXN0IGNyZWF0aW9uIG9yIHNlcGFyYXRlbHkgd2hlbiB0aGVyZSBhcmUgbm8gbGltaXRzLlxuICAgICAgICBiYXNlU2hpZnQgPSAoYmFzZS5oZWlnaHQgLSBiYXNlLmRlcHRoKSAvIDIgLSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodDtcblxuICAgICAgICAvLyBUaGUgc2xhbnQgb2YgdGhlIHN5bWJvbCBpcyBqdXN0IGl0cyBpdGFsaWMgY29ycmVjdGlvbi5cbiAgICAgICAgc2xhbnQgPSBiYXNlLml0YWxpYztcbiAgICB9XG5cbiAgICBpZiAoaGFzTGltaXRzKSB7XG4gICAgICAgIC8vIElFIDggY2xpcHMgXFxpbnQgaWYgaXQgaXMgaW4gYSBkaXNwbGF5OiBpbmxpbmUtYmxvY2suIFdlIHdyYXAgaXRcbiAgICAgICAgLy8gaW4gYSBuZXcgc3BhbiBzbyBpdCBpcyBhbiBpbmxpbmUsIGFuZCB3b3Jrcy5cbiAgICAgICAgYmFzZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW2Jhc2VdKTtcblxuICAgICAgICB2YXIgc3ViID0gdm9pZCAwO1xuICAgICAgICB2YXIgc3VwID0gdm9pZCAwO1xuICAgICAgICAvLyBXZSBtYW51YWxseSBoYXZlIHRvIGhhbmRsZSB0aGUgc3VwZXJzY3JpcHRzIGFuZCBzdWJzY3JpcHRzLiBUaGlzLFxuICAgICAgICAvLyBhc2lkZSBmcm9tIHRoZSBrZXJuIGNhbGN1bGF0aW9ucywgaXMgY29waWVkIGZyb20gc3Vwc3ViLlxuICAgICAgICBpZiAoc3VwR3JvdXApIHtcbiAgICAgICAgICAgIHZhciBlbGVtID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShzdXBHcm91cCwgb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdXAoKSksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBzdXAgPSB7XG4gICAgICAgICAgICAgICAgZWxlbTogZWxlbSxcbiAgICAgICAgICAgICAgICBrZXJuOiBNYXRoLm1heChvcHRpb25zLmZvbnRNZXRyaWNzKCkuYmlnT3BTcGFjaW5nMSwgb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzMgLSBlbGVtLmRlcHRoKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJHcm91cCkge1xuICAgICAgICAgICAgdmFyIF9lbGVtID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShzdWJHcm91cCwgb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZS5zdWIoKSksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBzdWIgPSB7XG4gICAgICAgICAgICAgICAgZWxlbTogX2VsZW0sXG4gICAgICAgICAgICAgICAga2VybjogTWF0aC5tYXgob3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzIsIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmc0IC0gX2VsZW0uaGVpZ2h0KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBmaW5hbCBncm91cCBhcyBhIHZsaXN0IG9mIHRoZSBwb3NzaWJsZSBzdWJzY3JpcHQsIGJhc2UsXG4gICAgICAgIC8vIGFuZCBwb3NzaWJsZSBzdXBlcnNjcmlwdC5cbiAgICAgICAgdmFyIGZpbmFsR3JvdXAgPSB2b2lkIDA7XG4gICAgICAgIGlmIChzdXAgJiYgc3ViKSB7XG4gICAgICAgICAgICB2YXIgYm90dG9tID0gb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzUgKyBzdWIuZWxlbS5oZWlnaHQgKyBzdWIuZWxlbS5kZXB0aCArIHN1Yi5rZXJuICsgYmFzZS5kZXB0aCArIGJhc2VTaGlmdDtcblxuICAgICAgICAgICAgZmluYWxHcm91cCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbkRhdGE6IGJvdHRvbSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJrZXJuXCIsIHNpemU6IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmc1IH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IHN1Yi5lbGVtLCBtYXJnaW5MZWZ0OiAtc2xhbnQgKyBcImVtXCIgfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogc3ViLmtlcm4gfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYmFzZSB9LCB7IHR5cGU6IFwia2VyblwiLCBzaXplOiBzdXAua2VybiB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBzdXAuZWxlbSwgbWFyZ2luTGVmdDogc2xhbnQgKyBcImVtXCIgfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzUgfV1cbiAgICAgICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2UgaWYgKHN1Yikge1xuICAgICAgICAgICAgdmFyIHRvcCA9IGJhc2UuaGVpZ2h0IC0gYmFzZVNoaWZ0O1xuXG4gICAgICAgICAgICAvLyBTaGlmdCB0aGUgbGltaXRzIGJ5IHRoZSBzbGFudCBvZiB0aGUgc3ltYm9sLiBOb3RlXG4gICAgICAgICAgICAvLyB0aGF0IHdlIGFyZSBzdXBwb3NlZCB0byBzaGlmdCB0aGUgbGltaXRzIGJ5IDEvMiBvZiB0aGUgc2xhbnQsXG4gICAgICAgICAgICAvLyBidXQgc2luY2Ugd2UgYXJlIGNlbnRlcmluZyB0aGUgbGltaXRzIGFkZGluZyBhIGZ1bGwgc2xhbnQgb2ZcbiAgICAgICAgICAgIC8vIG1hcmdpbiB3aWxsIHNoaWZ0IGJ5IDEvMiB0aGF0LlxuICAgICAgICAgICAgZmluYWxHcm91cCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbkRhdGE6IHRvcCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJrZXJuXCIsIHNpemU6IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5iaWdPcFNwYWNpbmc1IH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IHN1Yi5lbGVtLCBtYXJnaW5MZWZ0OiAtc2xhbnQgKyBcImVtXCIgfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogc3ViLmtlcm4gfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYmFzZSB9XVxuICAgICAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3VwKSB7XG4gICAgICAgICAgICB2YXIgX2JvdHRvbSA9IGJhc2UuZGVwdGggKyBiYXNlU2hpZnQ7XG5cbiAgICAgICAgICAgIGZpbmFsR3JvdXAgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiYm90dG9tXCIsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25EYXRhOiBfYm90dG9tLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYmFzZSB9LCB7IHR5cGU6IFwia2VyblwiLCBzaXplOiBzdXAua2VybiB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBzdXAuZWxlbSwgbWFyZ2luTGVmdDogc2xhbnQgKyBcImVtXCIgfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZTogb3B0aW9ucy5mb250TWV0cmljcygpLmJpZ09wU3BhY2luZzUgfV1cbiAgICAgICAgICAgIH0sIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhpcyBjYXNlIHByb2JhYmx5IHNob3VsZG4ndCBvY2N1ciAodGhpcyB3b3VsZCBtZWFuIHRoZVxuICAgICAgICAgICAgLy8gc3Vwc3ViIHdhcyBzZW5kaW5nIHVzIGEgZ3JvdXAgd2l0aCBubyBzdXBlcnNjcmlwdCBvclxuICAgICAgICAgICAgLy8gc3Vic2NyaXB0KSBidXQgYmUgc2FmZS5cbiAgICAgICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtb3BcIiwgXCJvcC1saW1pdHNcIl0sIFtmaW5hbEdyb3VwXSwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGJhc2VTaGlmdCkge1xuICAgICAgICAgICAgYmFzZS5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgICAgICAgIGJhc2Uuc3R5bGUudG9wID0gYmFzZVNoaWZ0ICsgXCJlbVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIgPSBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIG5vZGUgPSB2b2lkIDA7XG5cbiAgICAvLyBUT0RPKGVtaWx5KTogaGFuZGxlIGJpZyBvcGVyYXRvcnMgdXNpbmcgdGhlIGBsYXJnZW9wYCBhdHRyaWJ1dGVcblxuICAgIGlmIChncm91cC52YWx1ZS5zeW1ib2wpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHN5bWJvbC4gSnVzdCBhZGQgdGhlIHN5bWJvbC5cbiAgICAgICAgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX19bXCJlXCIgLyogbWFrZVRleHQgKi9dKGdyb3VwLnZhbHVlLmJvZHksIGdyb3VwLm1vZGUpXSk7XG4gICAgfSBlbHNlIGlmIChncm91cC52YWx1ZS52YWx1ZSkge1xuICAgICAgICAvLyBUaGlzIGlzIGFuIG9wZXJhdG9yIHdpdGggY2hpbGRyZW4uIEFkZCB0aGVtLlxuICAgICAgICBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG9wdGlvbnMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGlzIGlzIGEgdGV4dCBvcGVyYXRvci4gQWRkIGFsbCBvZiB0aGUgY2hhcmFjdGVycyBmcm9tIHRoZVxuICAgICAgICAvLyBvcGVyYXRvcidzIG5hbWUuXG4gICAgICAgIC8vIFRPRE8oZW1pbHkpOiBBZGQgYSBzcGFjZSBpbiB0aGUgbWlkZGxlIG9mIHNvbWUgb2YgdGhlc2VcbiAgICAgICAgLy8gb3BlcmF0b3JzLCBsaWtlIFxcbGltc3VwLlxuICAgICAgICBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibWlcIiwgW25ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5UZXh0Tm9kZShncm91cC52YWx1ZS5ib2R5LnNsaWNlKDEpKV0pO1xuXG4gICAgICAgIC8vIEFwcGVuZCBhbiA8bW8+JkFwcGx5RnVuY3Rpb247PC9tbz4uXG4gICAgICAgIC8vIHJlZjogaHR0cHM6Ly93d3cudzMub3JnL1RSL1JFQy1NYXRoTUwvY2hhcDNfMi5odG1sI3NlYzMuMi40XG4gICAgICAgIHZhciBvcGVyYXRvciA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX19bXCJlXCIgLyogbWFrZVRleHQgKi9dKFwiXFx1MjA2MVwiLCBcInRleHRcIildKTtcblxuICAgICAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmRvY3VtZW50RnJhZ21lbnQoW25vZGUsIG9wZXJhdG9yXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG59O1xuXG52YXIgc2luZ2xlQ2hhckJpZ09wcyA9IHtcbiAgICBcIlxcdTIyMEZcIjogXCJcXFxccHJvZFwiLFxuICAgIFwiXFx1MjIxMFwiOiBcIlxcXFxjb3Byb2RcIixcbiAgICBcIlxcdTIyMTFcIjogXCJcXFxcc3VtXCIsXG4gICAgXCJcXHUyMkMwXCI6IFwiXFxcXGJpZ3dlZGdlXCIsXG4gICAgXCJcXHUyMkMxXCI6IFwiXFxcXGJpZ3ZlZVwiLFxuICAgIFwiXFx1MjJDMlwiOiBcIlxcXFxiaWdjYXBcIixcbiAgICBcIlxcdTIyQzNcIjogXCJcXFxcYmlnY2FwXCIsXG4gICAgXCJcXHUyQTAwXCI6IFwiXFxcXGJpZ29kb3RcIixcbiAgICBcIlxcdTJBMDFcIjogXCJcXFxcYmlnb3BsdXNcIixcbiAgICBcIlxcdTJBMDJcIjogXCJcXFxcYmlnb3RpbWVzXCIsXG4gICAgXCJcXHUyQTA0XCI6IFwiXFxcXGJpZ3VwbHVzXCIsXG4gICAgXCJcXHUyQTA2XCI6IFwiXFxcXGJpZ3NxY3VwXCJcbn07XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcIm9wXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxjb3Byb2RcIiwgXCJcXFxcYmlndmVlXCIsIFwiXFxcXGJpZ3dlZGdlXCIsIFwiXFxcXGJpZ3VwbHVzXCIsIFwiXFxcXGJpZ2NhcFwiLCBcIlxcXFxiaWdjdXBcIiwgXCJcXFxcaW50b3BcIiwgXCJcXFxccHJvZFwiLCBcIlxcXFxzdW1cIiwgXCJcXFxcYmlnb3RpbWVzXCIsIFwiXFxcXGJpZ29wbHVzXCIsIFwiXFxcXGJpZ29kb3RcIiwgXCJcXFxcYmlnc3FjdXBcIiwgXCJcXFxcc21hbGxpbnRcIiwgXCJcXHUyMjBGXCIsIFwiXFx1MjIxMFwiLCBcIlxcdTIyMTFcIiwgXCJcXHUyMkMwXCIsIFwiXFx1MjJDMVwiLCBcIlxcdTIyQzJcIiwgXCJcXHUyMkMzXCIsIFwiXFx1MkEwMFwiLCBcIlxcdTJBMDFcIiwgXCJcXHUyQTAyXCIsIFwiXFx1MkEwNFwiLCBcIlxcdTJBMDZcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMFxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBmTmFtZSA9IGNvbnRleHQuZnVuY05hbWU7XG4gICAgICAgIGlmIChmTmFtZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGZOYW1lID0gc2luZ2xlQ2hhckJpZ09wc1tmTmFtZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwib3BcIixcbiAgICAgICAgICAgIGxpbWl0czogdHJ1ZSxcbiAgICAgICAgICAgIHN5bWJvbDogdHJ1ZSxcbiAgICAgICAgICAgIGJvZHk6IGZOYW1lXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8vIE5vdGU6IGNhbGxpbmcgZGVmaW5lRnVuY3Rpb24gd2l0aCBhIHR5cGUgdGhhdCdzIGFscmVhZHkgYmVlbiBkZWZpbmVkIG9ubHlcbi8vIHdvcmtzIGJlY2F1c2UgdGhlIHNhbWUgaHRtbEJ1aWxkZXIgYW5kIG1hdGhtbEJ1aWxkZXIgYXJlIGJlaW5nIHVzZWQuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJvcFwiLFxuICAgIG5hbWVzOiBbXCJcXFxcbWF0aG9wXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9wXCIsXG4gICAgICAgICAgICBsaW1pdHM6IGZhbHNlLFxuICAgICAgICAgICAgc3ltYm9sOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiY1wiIC8qIG9yZGFyZ3VtZW50ICovXSkoYm9keSlcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyXG59KTtcblxuLyoqKi8gfSksXG4vKiAxMjcgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fZG9tVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuXG5cbi8vIFxcb3BlcmF0b3JuYW1lXG4vLyBhbXNvcG4uZHR4OiBcXG1hdGhvcHsjMVxca2VyblxcekBcXG9wZXJhdG9yQGZvbnQjM31cXG5ld21jb2Rlc0Bcbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcIm9wZXJhdG9ybmFtZVwiLFxuICAgIG5hbWVzOiBbXCJcXFxcb3BlcmF0b3JuYW1lXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9wZXJhdG9ybmFtZVwiLFxuICAgICAgICAgICAgdmFsdWU6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib2R5KVxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdmFyIGxldHRlciA9IFwiXCI7XG4gICAgICAgICAgICB2YXIgbW9kZSA9IFwiXCI7XG5cbiAgICAgICAgICAgIHZhciBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBfZGlkSXRlcmF0b3JFcnJvciA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIF9pdGVyYXRvckVycm9yID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCgpKGdyb3VwLnZhbHVlLnZhbHVlKSwgX3N0ZXA7ICEoX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IChfc3RlcCA9IF9pdGVyYXRvci5uZXh0KCkpLmRvbmUpOyBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY2hpbGQgPSBfc3RlcC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBJbiB0aGUgYW1zb3BuIHBhY2thZ2UsIFxcbmV3bWNvZGVzQCBjaGFuZ2VzIGZvdXJcbiAgICAgICAgICAgICAgICAgICAgLy8gY2hhcmFjdGVycywgKi0vOuKAmSwgZnJvbSBtYXRoIG9wZXJhdG9ycyBiYWNrIGludG8gdGV4dC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFwiKi0vOlwiLmluZGV4T2YoY2hpbGQudmFsdWUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQudHlwZSA9IFwidGV4dG9yZFwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQ29uc29saWRhdGUgR3JlZWsgbGV0dGVyIGZ1bmN0aW9uIG5hbWVzIGludG8gc3ltYm9sIGNoYXJhY3RlcnMuXG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICBfZGlkSXRlcmF0b3JFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgX2l0ZXJhdG9yRXJyb3IgPSBlcnI7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiAmJiBfaXRlcmF0b3IucmV0dXJuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfaXRlcmF0b3IucmV0dXJuKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoX2RpZEl0ZXJhdG9yRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgdGVtcCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS52YWx1ZSwgb3B0aW9ucy53aXRoRm9udEZhbWlseShcIm1hdGhybVwiKSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIEFsbCB3ZSB3YW50IGZyb20gdGVtcCBhcmUgdGhlIGxldHRlcnMuIFdpdGggdGhlbSwgd2UnbGxcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHRleHQgb3BlcmF0b3Igc2ltaWxhciB0byBcXHRhbiBvciBcXGNvcy5cbiAgICAgICAgICAgIHZhciBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMiA9IHRydWU7XG4gICAgICAgICAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IyID0gZmFsc2U7XG4gICAgICAgICAgICB2YXIgX2l0ZXJhdG9yRXJyb3IyID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQoKSh0ZW1wKSwgX3N0ZXAyOyAhKF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yID0gKF9zdGVwMiA9IF9pdGVyYXRvcjIubmV4dCgpKS5kb25lKTsgX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbjIgPSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfY2hpbGQgPSBfc3RlcDIudmFsdWU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKF9jaGlsZCBpbnN0YW5jZW9mIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fZG9tVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN5bWJvbE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlciA9IF9jaGlsZC52YWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gdGhlIGFtc29wbiBwYWNrYWdlLCBcXG5ld21jb2Rlc0AgY2hhbmdlcyBmb3VyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJzLCAqLS864oCZLCBmcm9tIG1hdGggb3BlcmF0b3JzIGJhY2sgaW50byB0ZXh0LlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gR2l2ZW4gd2hhdCBpcyBpbiB0ZW1wLCB3ZSBoYXZlIHRvIGFkZHJlc3MgdHdvIG9mIHRoZW0uXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXIgPSBsZXR0ZXIucmVwbGFjZSgvXFx1MjIxMi8sIFwiLVwiKTsgLy8gbWludXMgPT4gaHlwaGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXIgPSBsZXR0ZXIucmVwbGFjZSgvXFx1MjIxNy8sIFwiKlwiKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIG1hdGggbW9kZSBmb3IgR3JlZWsgbGV0dGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IC9bXFx1MDM5MS1cXHUwM0Q3XS8udGVzdChsZXR0ZXIpID8gXCJtYXRoXCIgOiBcInRleHRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoc3ltKGxldHRlciwgbW9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnB1c2goX2NoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIF9kaWRJdGVyYXRvckVycm9yMiA9IHRydWU7XG4gICAgICAgICAgICAgICAgX2l0ZXJhdG9yRXJyb3IyID0gZXJyO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yICYmIF9pdGVyYXRvcjIucmV0dXJuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfaXRlcmF0b3IyLnJldHVybigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9kaWRJdGVyYXRvckVycm9yMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgX2l0ZXJhdG9yRXJyb3IyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9wXCJdLCBvdXRwdXQsIG9wdGlvbnMpO1xuICAgIH0sXG5cbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFRoZSBzdGVwcyB0YWtlbiBoZXJlIGFyZSBzaW1pbGFyIHRvIHRoZSBodG1sIHZlcnNpb24uXG4gICAgICAgIHZhciBvdXRwdXQgPSBbXTtcbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHZhciB0ZW1wID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUudmFsdWUsIG9wdGlvbnMud2l0aEZvbnRGYW1pbHkoXCJtYXRocm1cIikpO1xuXG4gICAgICAgICAgICB2YXIgd29yZCA9IHRlbXAubWFwKGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUudG9UZXh0KCk7XG4gICAgICAgICAgICB9KS5qb2luKFwiXCIpO1xuXG4gICAgICAgICAgICB3b3JkID0gd29yZC5yZXBsYWNlKC9cXHUyMjEyL2csIFwiLVwiKTtcbiAgICAgICAgICAgIHdvcmQgPSB3b3JkLnJlcGxhY2UoL1xcdTIyMTcvZywgXCIqXCIpO1xuICAgICAgICAgICAgb3V0cHV0ID0gW25ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5UZXh0Tm9kZSh3b3JkKV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGlkZW50aWZpZXIgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtaVwiLCBvdXRwdXQpO1xuICAgICAgICBpZGVudGlmaWVyLnNldEF0dHJpYnV0ZShcIm1hdGh2YXJpYW50XCIsIFwibm9ybWFsXCIpO1xuXG4gICAgICAgIC8vIFxcdTIwNjEgaXMgdGhlIHNhbWUgYXMgJkFwcGx5RnVuY3Rpb247XG4gICAgICAgIC8vIHJlZjogaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9jaGFyc2V0cy9yZWZfaHRtbF9lbnRpdGllc19hLmFzcFxuICAgICAgICB2YXIgb3BlcmF0b3IgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZE1hdGhNTF9fW1wiZVwiIC8qIG1ha2VUZXh0ICovXShcIlxcdTIwNjFcIiwgXCJ0ZXh0XCIpXSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2RvbVRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kb2N1bWVudEZyYWdtZW50KFtpZGVudGlmaWVyLCBvcGVyYXRvcl0pO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEyOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWxpbWl0ZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cblxuXG5cblxuXG5cblxuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJnZW5mcmFjXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxkZnJhY1wiLCBcIlxcXFxmcmFjXCIsIFwiXFxcXHRmcmFjXCIsIFwiXFxcXGRiaW5vbVwiLCBcIlxcXFxiaW5vbVwiLCBcIlxcXFx0Ymlub21cIiwgXCJcXFxcXFxcXGF0b3BmcmFjXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDIsXG4gICAgICAgIGdyZWVkaW5lc3M6IDJcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgbnVtZXIgPSBhcmdzWzBdO1xuICAgICAgICB2YXIgZGVub20gPSBhcmdzWzFdO1xuICAgICAgICB2YXIgaGFzQmFyTGluZSA9IHZvaWQgMDtcbiAgICAgICAgdmFyIGxlZnREZWxpbSA9IG51bGw7XG4gICAgICAgIHZhciByaWdodERlbGltID0gbnVsbDtcbiAgICAgICAgdmFyIHNpemUgPSBcImF1dG9cIjtcblxuICAgICAgICBzd2l0Y2ggKGNvbnRleHQuZnVuY05hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJcXFxcZGZyYWNcIjpcbiAgICAgICAgICAgIGNhc2UgXCJcXFxcZnJhY1wiOlxuICAgICAgICAgICAgY2FzZSBcIlxcXFx0ZnJhY1wiOlxuICAgICAgICAgICAgICAgIGhhc0JhckxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIlxcXFxcXFxcYXRvcGZyYWNcIjpcbiAgICAgICAgICAgICAgICBoYXNCYXJMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiXFxcXGRiaW5vbVwiOlxuICAgICAgICAgICAgY2FzZSBcIlxcXFxiaW5vbVwiOlxuICAgICAgICAgICAgY2FzZSBcIlxcXFx0Ymlub21cIjpcbiAgICAgICAgICAgICAgICBoYXNCYXJMaW5lID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGVmdERlbGltID0gXCIoXCI7XG4gICAgICAgICAgICAgICAgcmlnaHREZWxpbSA9IFwiKVwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnJlY29nbml6ZWQgZ2VuZnJhYyBjb21tYW5kXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChjb250ZXh0LmZ1bmNOYW1lKSB7XG4gICAgICAgICAgICBjYXNlIFwiXFxcXGRmcmFjXCI6XG4gICAgICAgICAgICBjYXNlIFwiXFxcXGRiaW5vbVwiOlxuICAgICAgICAgICAgICAgIHNpemUgPSBcImRpc3BsYXlcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJcXFxcdGZyYWNcIjpcbiAgICAgICAgICAgIGNhc2UgXCJcXFxcdGJpbm9tXCI6XG4gICAgICAgICAgICAgICAgc2l6ZSA9IFwidGV4dFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZ2VuZnJhY1wiLFxuICAgICAgICAgICAgbnVtZXI6IG51bWVyLFxuICAgICAgICAgICAgZGVub206IGRlbm9tLFxuICAgICAgICAgICAgaGFzQmFyTGluZTogaGFzQmFyTGluZSxcbiAgICAgICAgICAgIGxlZnREZWxpbTogbGVmdERlbGltLFxuICAgICAgICAgICAgcmlnaHREZWxpbTogcmlnaHREZWxpbSxcbiAgICAgICAgICAgIHNpemU6IHNpemVcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICAvLyBGcmFjdGlvbnMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgb24gcGFnZXMgNDQ0LTQ0NSwgcnVsZXMgMTUoYS1lKS5cbiAgICAgICAgLy8gRmlndXJlIG91dCB3aGF0IHN0eWxlIHRoaXMgZnJhY3Rpb24gc2hvdWxkIGJlIGluIGJhc2VkIG9uIHRoZVxuICAgICAgICAvLyBmdW5jdGlvbiB1c2VkXG4gICAgICAgIHZhciBzdHlsZSA9IG9wdGlvbnMuc3R5bGU7XG4gICAgICAgIGlmIChncm91cC52YWx1ZS5zaXplID09PSBcImRpc3BsYXlcIikge1xuICAgICAgICAgICAgc3R5bGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uRElTUExBWTtcbiAgICAgICAgfSBlbHNlIGlmIChncm91cC52YWx1ZS5zaXplID09PSBcInRleHRcIikge1xuICAgICAgICAgICAgc3R5bGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuc3R5bGUgPSBzdHlsZS5mcmFjTnVtKCk7XG4gICAgICAgIHZhciBkc3R5bGUgPSBzdHlsZS5mcmFjRGVuKCk7XG4gICAgICAgIHZhciBuZXdPcHRpb25zID0gdm9pZCAwO1xuXG4gICAgICAgIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG5zdHlsZSk7XG4gICAgICAgIHZhciBudW1lcm0gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLm51bWVyLCBuZXdPcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShkc3R5bGUpO1xuICAgICAgICB2YXIgZGVub21tID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5kZW5vbSwgbmV3T3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIHJ1bGUgPSB2b2lkIDA7XG4gICAgICAgIHZhciBydWxlV2lkdGggPSB2b2lkIDA7XG4gICAgICAgIHZhciBydWxlU3BhY2luZyA9IHZvaWQgMDtcbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLmhhc0JhckxpbmUpIHtcbiAgICAgICAgICAgIHJ1bGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZUxpbmVTcGFuKFwiZnJhYy1saW5lXCIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgcnVsZVdpZHRoID0gcnVsZS5oZWlnaHQ7XG4gICAgICAgICAgICBydWxlU3BhY2luZyA9IHJ1bGUuaGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcnVsZSA9IG51bGw7XG4gICAgICAgICAgICBydWxlV2lkdGggPSAwO1xuICAgICAgICAgICAgcnVsZVNwYWNpbmcgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVmYXVsdFJ1bGVUaGlja25lc3M7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSdWxlIDE1YlxuICAgICAgICB2YXIgbnVtU2hpZnQgPSB2b2lkIDA7XG4gICAgICAgIHZhciBjbGVhcmFuY2UgPSB2b2lkIDA7XG4gICAgICAgIHZhciBkZW5vbVNoaWZ0ID0gdm9pZCAwO1xuICAgICAgICBpZiAoc3R5bGUuc2l6ZSA9PT0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkuc2l6ZSkge1xuICAgICAgICAgICAgbnVtU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkubnVtMTtcbiAgICAgICAgICAgIGlmIChydWxlV2lkdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJhbmNlID0gMyAqIHJ1bGVTcGFjaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjbGVhcmFuY2UgPSA3ICogcnVsZVNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZW5vbVNoaWZ0ID0gb3B0aW9ucy5mb250TWV0cmljcygpLmRlbm9tMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChydWxlV2lkdGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbnVtU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkubnVtMjtcbiAgICAgICAgICAgICAgICBjbGVhcmFuY2UgPSBydWxlU3BhY2luZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbnVtU2hpZnQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkubnVtMztcbiAgICAgICAgICAgICAgICBjbGVhcmFuY2UgPSAzICogcnVsZVNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZW5vbVNoaWZ0ID0gb3B0aW9ucy5mb250TWV0cmljcygpLmRlbm9tMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBmcmFjID0gdm9pZCAwO1xuICAgICAgICBpZiAoIXJ1bGUpIHtcbiAgICAgICAgICAgIC8vIFJ1bGUgMTVjXG4gICAgICAgICAgICB2YXIgY2FuZGlkYXRlQ2xlYXJhbmNlID0gbnVtU2hpZnQgLSBudW1lcm0uZGVwdGggLSAoZGVub21tLmhlaWdodCAtIGRlbm9tU2hpZnQpO1xuICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZUNsZWFyYW5jZSA8IGNsZWFyYW5jZSkge1xuICAgICAgICAgICAgICAgIG51bVNoaWZ0ICs9IDAuNSAqIChjbGVhcmFuY2UgLSBjYW5kaWRhdGVDbGVhcmFuY2UpO1xuICAgICAgICAgICAgICAgIGRlbm9tU2hpZnQgKz0gMC41ICogKGNsZWFyYW5jZSAtIGNhbmRpZGF0ZUNsZWFyYW5jZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZyYWMgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiaW5kaXZpZHVhbFNoaWZ0XCIsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBkZW5vbW0sIHNoaWZ0OiBkZW5vbVNoaWZ0IH0sIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IG51bWVybSwgc2hpZnQ6IC1udW1TaGlmdCB9XVxuICAgICAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBSdWxlIDE1ZFxuICAgICAgICAgICAgdmFyIGF4aXNIZWlnaHQgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuYXhpc0hlaWdodDtcblxuICAgICAgICAgICAgaWYgKG51bVNoaWZ0IC0gbnVtZXJtLmRlcHRoIC0gKGF4aXNIZWlnaHQgKyAwLjUgKiBydWxlV2lkdGgpIDwgY2xlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgbnVtU2hpZnQgKz0gY2xlYXJhbmNlIC0gKG51bVNoaWZ0IC0gbnVtZXJtLmRlcHRoIC0gKGF4aXNIZWlnaHQgKyAwLjUgKiBydWxlV2lkdGgpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGF4aXNIZWlnaHQgLSAwLjUgKiBydWxlV2lkdGggLSAoZGVub21tLmhlaWdodCAtIGRlbm9tU2hpZnQpIDwgY2xlYXJhbmNlKSB7XG4gICAgICAgICAgICAgICAgZGVub21TaGlmdCArPSBjbGVhcmFuY2UgLSAoYXhpc0hlaWdodCAtIDAuNSAqIHJ1bGVXaWR0aCAtIChkZW5vbW0uaGVpZ2h0IC0gZGVub21TaGlmdCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbWlkU2hpZnQgPSAtKGF4aXNIZWlnaHQgLSAwLjUgKiBydWxlV2lkdGgpO1xuXG4gICAgICAgICAgICBmcmFjID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImluZGl2aWR1YWxTaGlmdFwiLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogZGVub21tLCBzaGlmdDogZGVub21TaGlmdCB9LFxuICAgICAgICAgICAgICAgIC8vIFRoZSBuZXh0IGxpbmUgd291bGQgb3JkaW5hcmlseSBjb250YWluIFwic2hpZnQ6IG1pZFNoaWZ0XCIuXG4gICAgICAgICAgICAgICAgLy8gQnV0IHdlIHB1dCB0aGUgcnVsZSBpbnRvIGEgYSBzcGFuIHRoYXQgaXMgNSBydWxlcyB0YWxsLFxuICAgICAgICAgICAgICAgIC8vIHRvIG92ZXJjb21lIGEgQ2hyb21lIHJlbmRlcmluZyBpc3N1ZS4gUHV0IGFub3RoZXIgd2F5LFxuICAgICAgICAgICAgICAgIC8vIHdlJ3ZlIHJlcGxhY2VkIGEga2VybiBvZiB3aWR0aCA9IDIgKiBydWxlV2lkdGggd2l0aCBhXG4gICAgICAgICAgICAgICAgLy8gYm90dG9tIHBhZGRpbmcgaW5zaWRlIHRoZSBTVkcgPSAyICogcnVsZVdpZHRoLlxuICAgICAgICAgICAgICAgIHsgdHlwZTogXCJlbGVtXCIsIGVsZW06IHJ1bGUsIHNoaWZ0OiBtaWRTaGlmdCArIDIgKiBydWxlV2lkdGggfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogbnVtZXJtLCBzaGlmdDogLW51bVNoaWZ0IH1dXG4gICAgICAgICAgICB9LCBvcHRpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpbmNlIHdlIG1hbnVhbGx5IGNoYW5nZSB0aGUgc3R5bGUgc29tZXRpbWVzICh3aXRoIFxcZGZyYWMgb3IgXFx0ZnJhYyksXG4gICAgICAgIC8vIGFjY291bnQgZm9yIHRoZSBwb3NzaWJsZSBzaXplIGNoYW5nZSBoZXJlLlxuICAgICAgICBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZSk7XG4gICAgICAgIGZyYWMuaGVpZ2h0ICo9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuICAgICAgICBmcmFjLmRlcHRoICo9IG5ld09wdGlvbnMuc2l6ZU11bHRpcGxpZXIgLyBvcHRpb25zLnNpemVNdWx0aXBsaWVyO1xuXG4gICAgICAgIC8vIFJ1bGUgMTVlXG4gICAgICAgIHZhciBkZWxpbVNpemUgPSB2b2lkIDA7XG4gICAgICAgIGlmIChzdHlsZS5zaXplID09PSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uRElTUExBWS5zaXplKSB7XG4gICAgICAgICAgICBkZWxpbVNpemUgPSBvcHRpb25zLmZvbnRNZXRyaWNzKCkuZGVsaW0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsaW1TaXplID0gb3B0aW9ucy5mb250TWV0cmljcygpLmRlbGltMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsZWZ0RGVsaW0gPSB2b2lkIDA7XG4gICAgICAgIHZhciByaWdodERlbGltID0gdm9pZCAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUubGVmdERlbGltID09IG51bGwpIHtcbiAgICAgICAgICAgIGxlZnREZWxpbSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX19bXCJlXCIgLyogbWFrZU51bGxEZWxpbWl0ZXIgKi9dKG9wdGlvbnMsIFtcIm1vcGVuXCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxlZnREZWxpbSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVsaW1pdGVyX19bXCJhXCIgLyogZGVmYXVsdCAqL10uY3VzdG9tU2l6ZWREZWxpbShncm91cC52YWx1ZS5sZWZ0RGVsaW0sIGRlbGltU2l6ZSwgdHJ1ZSwgb3B0aW9ucy5oYXZpbmdTdHlsZShzdHlsZSksIGdyb3VwLm1vZGUsIFtcIm1vcGVuXCJdKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ3JvdXAudmFsdWUucmlnaHREZWxpbSA9PSBudWxsKSB7XG4gICAgICAgICAgICByaWdodERlbGltID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZEhUTUxfX1tcImVcIiAvKiBtYWtlTnVsbERlbGltaXRlciAqL10ob3B0aW9ucywgW1wibWNsb3NlXCJdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJpZ2h0RGVsaW0gPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RlbGltaXRlcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmN1c3RvbVNpemVkRGVsaW0oZ3JvdXAudmFsdWUucmlnaHREZWxpbSwgZGVsaW1TaXplLCB0cnVlLCBvcHRpb25zLmhhdmluZ1N0eWxlKHN0eWxlKSwgZ3JvdXAubW9kZSwgW1wibWNsb3NlXCJdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9yZFwiXS5jb25jYXQobmV3T3B0aW9ucy5zaXppbmdDbGFzc2VzKG9wdGlvbnMpKSwgW2xlZnREZWxpbSwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1mcmFjXCJdLCBbZnJhY10pLCByaWdodERlbGltXSwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibWZyYWNcIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5udW1lciwgb3B0aW9ucyksIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5kZW5vbSwgb3B0aW9ucyldKTtcblxuICAgICAgICBpZiAoIWdyb3VwLnZhbHVlLmhhc0JhckxpbmUpIHtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibGluZXRoaWNrbmVzc1wiLCBcIjBweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cC52YWx1ZS5sZWZ0RGVsaW0gIT0gbnVsbCB8fCBncm91cC52YWx1ZS5yaWdodERlbGltICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciB3aXRoRGVsaW1zID0gW107XG5cbiAgICAgICAgICAgIGlmIChncm91cC52YWx1ZS5sZWZ0RGVsaW0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZhciBsZWZ0T3AgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRleHROb2RlKGdyb3VwLnZhbHVlLmxlZnREZWxpbSldKTtcblxuICAgICAgICAgICAgICAgIGxlZnRPcC5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcInRydWVcIik7XG5cbiAgICAgICAgICAgICAgICB3aXRoRGVsaW1zLnB1c2gobGVmdE9wKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2l0aERlbGltcy5wdXNoKG5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoZ3JvdXAudmFsdWUucmlnaHREZWxpbSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJpZ2h0T3AgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRleHROb2RlKGdyb3VwLnZhbHVlLnJpZ2h0RGVsaW0pXSk7XG5cbiAgICAgICAgICAgICAgICByaWdodE9wLnNldEF0dHJpYnV0ZShcImZlbmNlXCIsIFwidHJ1ZVwiKTtcblxuICAgICAgICAgICAgICAgIHdpdGhEZWxpbXMucHVzaChyaWdodE9wKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG91dGVyTm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1yb3dcIiwgd2l0aERlbGltcyk7XG5cbiAgICAgICAgICAgIHJldHVybiBvdXRlck5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiAxMjkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG4vLyBIb3Jpem9udGFsIG92ZXJsYXAgZnVuY3Rpb25zXG5cblxuXG5cblxuXG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImxhcFwiLFxuICAgIG5hbWVzOiBbXCJcXFxcbWF0aGxsYXBcIiwgXCJcXFxcbWF0aHJsYXBcIiwgXCJcXFxcbWF0aGNsYXBcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMSxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBib2R5ID0gYXJnc1swXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwibGFwXCIsXG4gICAgICAgICAgICBhbGlnbm1lbnQ6IGNvbnRleHQuZnVuY05hbWUuc2xpY2UoNSksXG4gICAgICAgICAgICBib2R5OiBib2R5XG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gbWF0aGxsYXAsIG1hdGhybGFwLCBtYXRoY2xhcFxuICAgICAgICB2YXIgaW5uZXIgPSB2b2lkIDA7XG4gICAgICAgIGlmIChncm91cC52YWx1ZS5hbGlnbm1lbnQgPT09IFwiY2xhcFwiKSB7XG4gICAgICAgICAgICAvLyByZWY6IGh0dHBzOi8vd3d3Lm1hdGgubHN1LmVkdS9+YXBlcmxpcy9wdWJsaWNhdGlvbnMvbWF0aGNsYXAvXG4gICAgICAgICAgICBpbm5lciA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXSwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyldKTtcbiAgICAgICAgICAgIC8vIHdyYXAsIHNpbmNlIENTUyB3aWxsIGNlbnRlciBhIC5jbGFwID4gLmlubmVyID4gc3BhblxuICAgICAgICAgICAgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wiaW5uZXJcIl0sIFtpbm5lcl0sIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wiaW5uZXJcIl0sIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMpXSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGZpeCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJmaXhcIl0sIFtdKTtcbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtb3JkXCIsIGdyb3VwLnZhbHVlLmFsaWdubWVudF0sIFtpbm5lciwgZml4XSwgb3B0aW9ucyk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIG1hdGhsbGFwLCBtYXRocmxhcCwgbWF0aGNsYXBcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtcGFkZGVkXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyldKTtcblxuICAgICAgICBpZiAoZ3JvdXAudmFsdWUuYWxpZ25tZW50ICE9PSBcInJsYXBcIikge1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IGdyb3VwLnZhbHVlLmFsaWdubWVudCA9PT0gXCJsbGFwXCIgPyBcIi0xXCIgOiBcIi0wLjVcIjtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwibHNwYWNlXCIsIG9mZnNldCArIFwid2lkdGhcIik7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBcIjBweFwiKTtcblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuLyoqKi8gfSksXG4vKiAxMzAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG4vLyBzbWFzaCwgd2l0aCBvcHRpb25hbCBbdGJdLCBhcyBpbiBBTVNcblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwic21hc2hcIixcbiAgICBuYW1lczogW1wiXFxcXHNtYXNoXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDEsXG4gICAgICAgIG51bU9wdGlvbmFsQXJnczogMSxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzLCBvcHRBcmdzKSB7XG4gICAgICAgIHZhciBzbWFzaEhlaWdodCA9IGZhbHNlO1xuICAgICAgICB2YXIgc21hc2hEZXB0aCA9IGZhbHNlO1xuICAgICAgICB2YXIgdGJBcmcgPSBvcHRBcmdzWzBdO1xuICAgICAgICBpZiAodGJBcmcpIHtcbiAgICAgICAgICAgIC8vIE9wdGlvbmFsIFt0Yl0gYXJndW1lbnQgaXMgZW5nYWdlZC5cbiAgICAgICAgICAgIC8vIHJlZjogYW1zbWF0aDogXFxyZW5ld2NvbW1hbmR7XFxzbWFzaH1bMV1bdGJdeyVcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgZGVmXFxtYkB0e1xcaHR9XFxkZWZcXG1iQGJ7XFxkcH1cXGRlZlxcbWJAdGJ7XFxodFxcekBcXHpAXFxkcH0lXG4gICAgICAgICAgICB2YXIgbGV0dGVyID0gXCJcIjtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGJBcmcudmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBsZXR0ZXIgPSB0YkFyZy52YWx1ZVtpXS52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAobGV0dGVyID09PSBcInRcIikge1xuICAgICAgICAgICAgICAgICAgICBzbWFzaEhlaWdodCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsZXR0ZXIgPT09IFwiYlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHNtYXNoRGVwdGggPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNtYXNoSGVpZ2h0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHNtYXNoRGVwdGggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc21hc2hIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgc21hc2hEZXB0aCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInNtYXNoXCIsXG4gICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgc21hc2hIZWlnaHQ6IHNtYXNoSGVpZ2h0LFxuICAgICAgICAgICAgc21hc2hEZXB0aDogc21hc2hEZXB0aFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBub2RlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIl0sIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMpXSk7XG5cbiAgICAgICAgaWYgKCFncm91cC52YWx1ZS5zbWFzaEhlaWdodCAmJiAhZ3JvdXAudmFsdWUuc21hc2hEZXB0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXAudmFsdWUuc21hc2hIZWlnaHQpIHtcbiAgICAgICAgICAgIG5vZGUuaGVpZ2h0ID0gMDtcbiAgICAgICAgICAgIC8vIEluIG9yZGVyIHRvIGluZmx1ZW5jZSBtYWtlVkxpc3QsIHdlIGhhdmUgdG8gcmVzZXQgdGhlIGNoaWxkcmVuLlxuICAgICAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5jaGlsZHJlbltpXS5oZWlnaHQgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncm91cC52YWx1ZS5zbWFzaERlcHRoKSB7XG4gICAgICAgICAgICBub2RlLmRlcHRoID0gMDtcbiAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuY2hpbGRyZW5bX2ldLmRlcHRoID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSd2ZSByZXNldCB0aGUgVGVYLWxpa2UgaGVpZ2h0IGFuZCBkZXB0aCB2YWx1ZXMuXG4gICAgICAgIC8vIEJ1dCB0aGUgc3BhbiBzdGlsbCBoYXMgYW4gSFRNTCBsaW5lIGhlaWdodC5cbiAgICAgICAgLy8gbWFrZVZMaXN0IGFwcGxpZXMgXCJkaXNwbGF5OiB0YWJsZS1jZWxsXCIsIHdoaWNoIHByZXZlbnRzIHRoZSBicm93c2VyXG4gICAgICAgIC8vIGZyb20gYWN0aW5nIG9uIHRoYXQgbGluZSBoZWlnaHQuIFNvIHdlJ2xsIGNhbGwgbWFrZVZMaXN0IG5vdy5cblxuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBub2RlIH1dXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1wYWRkZWRcIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRNYXRoTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zKV0pO1xuXG4gICAgICAgIGlmIChncm91cC52YWx1ZS5zbWFzaEhlaWdodCkge1xuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgXCIwcHhcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZ3JvdXAudmFsdWUuc21hc2hEZXB0aCkge1xuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJkZXB0aFwiLCBcIjBweFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEzMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWxpbWl0ZXJfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cblxuXG5cblxuXG5cblxuXG4vLyBFeHRyYSBkYXRhIG5lZWRlZCBmb3IgdGhlIGRlbGltaXRlciBoYW5kbGVyIGRvd24gYmVsb3dcbnZhciBkZWxpbWl0ZXJTaXplcyA9IHtcbiAgICBcIlxcXFxiaWdsXCI6IHsgbWNsYXNzOiBcIm1vcGVuXCIsIHNpemU6IDEgfSxcbiAgICBcIlxcXFxCaWdsXCI6IHsgbWNsYXNzOiBcIm1vcGVuXCIsIHNpemU6IDIgfSxcbiAgICBcIlxcXFxiaWdnbFwiOiB7IG1jbGFzczogXCJtb3BlblwiLCBzaXplOiAzIH0sXG4gICAgXCJcXFxcQmlnZ2xcIjogeyBtY2xhc3M6IFwibW9wZW5cIiwgc2l6ZTogNCB9LFxuICAgIFwiXFxcXGJpZ3JcIjogeyBtY2xhc3M6IFwibWNsb3NlXCIsIHNpemU6IDEgfSxcbiAgICBcIlxcXFxCaWdyXCI6IHsgbWNsYXNzOiBcIm1jbG9zZVwiLCBzaXplOiAyIH0sXG4gICAgXCJcXFxcYmlnZ3JcIjogeyBtY2xhc3M6IFwibWNsb3NlXCIsIHNpemU6IDMgfSxcbiAgICBcIlxcXFxCaWdnclwiOiB7IG1jbGFzczogXCJtY2xvc2VcIiwgc2l6ZTogNCB9LFxuICAgIFwiXFxcXGJpZ21cIjogeyBtY2xhc3M6IFwibXJlbFwiLCBzaXplOiAxIH0sXG4gICAgXCJcXFxcQmlnbVwiOiB7IG1jbGFzczogXCJtcmVsXCIsIHNpemU6IDIgfSxcbiAgICBcIlxcXFxiaWdnbVwiOiB7IG1jbGFzczogXCJtcmVsXCIsIHNpemU6IDMgfSxcbiAgICBcIlxcXFxCaWdnbVwiOiB7IG1jbGFzczogXCJtcmVsXCIsIHNpemU6IDQgfSxcbiAgICBcIlxcXFxiaWdcIjogeyBtY2xhc3M6IFwibW9yZFwiLCBzaXplOiAxIH0sXG4gICAgXCJcXFxcQmlnXCI6IHsgbWNsYXNzOiBcIm1vcmRcIiwgc2l6ZTogMiB9LFxuICAgIFwiXFxcXGJpZ2dcIjogeyBtY2xhc3M6IFwibW9yZFwiLCBzaXplOiAzIH0sXG4gICAgXCJcXFxcQmlnZ1wiOiB7IG1jbGFzczogXCJtb3JkXCIsIHNpemU6IDQgfVxufTtcblxudmFyIGRlbGltaXRlcnMgPSBbXCIoXCIsIFwiKVwiLCBcIltcIiwgXCJcXFxcbGJyYWNrXCIsIFwiXVwiLCBcIlxcXFxyYnJhY2tcIiwgXCJcXFxce1wiLCBcIlxcXFxsYnJhY2VcIiwgXCJcXFxcfVwiLCBcIlxcXFxyYnJhY2VcIiwgXCJcXFxcbGZsb29yXCIsIFwiXFxcXHJmbG9vclwiLCBcIlxcXFxsY2VpbFwiLCBcIlxcXFxyY2VpbFwiLCBcIjxcIiwgXCI+XCIsIFwiXFxcXGxhbmdsZVwiLCBcIlxcdTI3RThcIiwgXCJcXFxccmFuZ2xlXCIsIFwiXFx1MjdFOVwiLCBcIlxcXFxsdFwiLCBcIlxcXFxndFwiLCBcIlxcXFxsdmVydFwiLCBcIlxcXFxydmVydFwiLCBcIlxcXFxsVmVydFwiLCBcIlxcXFxyVmVydFwiLCBcIlxcXFxsZ3JvdXBcIiwgXCJcXFxccmdyb3VwXCIsIFwiXFxcXGxtb3VzdGFjaGVcIiwgXCJcXFxccm1vdXN0YWNoZVwiLCBcIi9cIiwgXCJcXFxcYmFja3NsYXNoXCIsIFwifFwiLCBcIlxcXFx2ZXJ0XCIsIFwiXFxcXHxcIiwgXCJcXFxcVmVydFwiLCBcIlxcXFx1cGFycm93XCIsIFwiXFxcXFVwYXJyb3dcIiwgXCJcXFxcZG93bmFycm93XCIsIFwiXFxcXERvd25hcnJvd1wiLCBcIlxcXFx1cGRvd25hcnJvd1wiLCBcIlxcXFxVcGRvd25hcnJvd1wiLCBcIi5cIl07XG5cbi8vIERlbGltaXRlciBmdW5jdGlvbnNcbmZ1bmN0aW9uIGNoZWNrRGVsaW1pdGVyKGRlbGltLCBjb250ZXh0KSB7XG4gICAgaWYgKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5jb250YWlucyhkZWxpbWl0ZXJzLCBkZWxpbS52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIGRlbGltO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkludmFsaWQgZGVsaW1pdGVyOiAnXCIgKyBkZWxpbS52YWx1ZSArIFwiJyBhZnRlciAnXCIgKyBjb250ZXh0LmZ1bmNOYW1lICsgXCInXCIsIGRlbGltKTtcbiAgICB9XG59XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImRlbGltc2l6aW5nXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxiaWdsXCIsIFwiXFxcXEJpZ2xcIiwgXCJcXFxcYmlnZ2xcIiwgXCJcXFxcQmlnZ2xcIiwgXCJcXFxcYmlnclwiLCBcIlxcXFxCaWdyXCIsIFwiXFxcXGJpZ2dyXCIsIFwiXFxcXEJpZ2dyXCIsIFwiXFxcXGJpZ21cIiwgXCJcXFxcQmlnbVwiLCBcIlxcXFxiaWdnbVwiLCBcIlxcXFxCaWdnbVwiLCBcIlxcXFxiaWdcIiwgXCJcXFxcQmlnXCIsIFwiXFxcXGJpZ2dcIiwgXCJcXFxcQmlnZ1wiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGRlbGltID0gY2hlY2tEZWxpbWl0ZXIoYXJnc1swXSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZGVsaW1zaXppbmdcIixcbiAgICAgICAgICAgIHNpemU6IGRlbGltaXRlclNpemVzW2NvbnRleHQuZnVuY05hbWVdLnNpemUsXG4gICAgICAgICAgICBtY2xhc3M6IGRlbGltaXRlclNpemVzW2NvbnRleHQuZnVuY05hbWVdLm1jbGFzcyxcbiAgICAgICAgICAgIHZhbHVlOiBkZWxpbS52YWx1ZVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBkZWxpbSA9IGdyb3VwLnZhbHVlLnZhbHVlO1xuXG4gICAgICAgIGlmIChkZWxpbSA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgIC8vIEVtcHR5IGRlbGltaXRlcnMgc3RpbGwgY291bnQgYXMgZWxlbWVudHMsIGV2ZW4gdGhvdWdoIHRoZXkgZG9uJ3RcbiAgICAgICAgICAgIC8vIHNob3cgYW55dGhpbmcuXG4gICAgICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtncm91cC52YWx1ZS5tY2xhc3NdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZSBkZWxpbWl0ZXIuc2l6ZWREZWxpbSB0byBnZW5lcmF0ZSB0aGUgZGVsaW1pdGVyLlxuICAgICAgICByZXR1cm4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWxpbWl0ZXJfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zaXplZERlbGltKGRlbGltLCBncm91cC52YWx1ZS5zaXplLCBvcHRpb25zLCBncm91cC5tb2RlLCBbZ3JvdXAudmFsdWUubWNsYXNzXSk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwKSB7XG4gICAgICAgIHZhciBjaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgIGlmIChncm91cC52YWx1ZS52YWx1ZSAhPT0gXCIuXCIpIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fW1wiZVwiIC8qIG1ha2VUZXh0ICovXShncm91cC52YWx1ZS52YWx1ZSwgZ3JvdXAubW9kZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBjaGlsZHJlbik7XG5cbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLm1jbGFzcyA9PT0gXCJtb3BlblwiIHx8IGdyb3VwLnZhbHVlLm1jbGFzcyA9PT0gXCJtY2xvc2VcIikge1xuICAgICAgICAgICAgLy8gT25seSBzb21lIG9mIHRoZSBkZWxpbXNpemluZyBmdW5jdGlvbnMgYWN0IGFzIGZlbmNlcywgYW5kIHRoZXlcbiAgICAgICAgICAgIC8vIHJldHVybiBcIm1vcGVuXCIgb3IgXCJtY2xvc2VcIiBtY2xhc3MuXG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcImZlbmNlXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEV4cGxpY2l0bHkgZGlzYWJsZSBmZW5jaW5nIGlmIGl0J3Mgbm90IGEgZmVuY2UsIHRvIG92ZXJyaWRlIHRoZVxuICAgICAgICAgICAgLy8gZGVmYXVsdHMuXG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcImZlbmNlXCIsIFwiZmFsc2VcIik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG59KTtcblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwibGVmdHJpZ2h0XCIsXG4gICAgbmFtZXM6IFtcIlxcXFxsZWZ0XCIsIFwiXFxcXHJpZ2h0XCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDFcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgZGVsaW0gPSBjaGVja0RlbGltaXRlcihhcmdzWzBdLCBjb250ZXh0KTtcblxuICAgICAgICBpZiAoY29udGV4dC5mdW5jTmFtZSA9PT0gXCJcXFxcbGVmdFwiKSB7XG4gICAgICAgICAgICB2YXIgcGFyc2VyID0gY29udGV4dC5wYXJzZXI7XG4gICAgICAgICAgICAvLyBQYXJzZSBvdXQgdGhlIGltcGxpY2l0IGJvZHlcbiAgICAgICAgICAgICsrcGFyc2VyLmxlZnRyaWdodERlcHRoO1xuICAgICAgICAgICAgLy8gcGFyc2VFeHByZXNzaW9uIHN0b3BzIGJlZm9yZSAnXFxcXHJpZ2h0J1xuICAgICAgICAgICAgdmFyIGJvZHkgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKGZhbHNlKTtcbiAgICAgICAgICAgIC0tcGFyc2VyLmxlZnRyaWdodERlcHRoO1xuICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIG5leHQgdG9rZW5cbiAgICAgICAgICAgIHBhcnNlci5leHBlY3QoXCJcXFxccmlnaHRcIiwgZmFsc2UpO1xuICAgICAgICAgICAgdmFyIHJpZ2h0ID0gcGFyc2VyLnBhcnNlRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIGlmICghcmlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oJ2ZhaWxlZCB0byBwYXJzZSBmdW5jdGlvbiBhZnRlciBcXFxccmlnaHQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJsZWZ0cmlnaHRcIixcbiAgICAgICAgICAgICAgICBib2R5OiBib2R5LFxuICAgICAgICAgICAgICAgIGxlZnQ6IGRlbGltLnZhbHVlLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiByaWdodC52YWx1ZS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBsaXR0bGUgd2VpcmQuIFdlIHJldHVybiB0aGlzIG9iamVjdCB3aGljaCBnZXRzIHR1cm5lZFxuICAgICAgICAgICAgLy8gaW50byBhIFBhcnNlTm9kZSB3aGljaCBnZXRzIHJldHVybmVkIGJ5XG4gICAgICAgICAgICAvLyBgY29uc3QgcmlnaHQgPSBwYXJzZXIucGFyc2VGdW5jdGlvbigpO2AgdXAgYWJvdmUuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwibGVmdHJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGRlbGltLnZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gQnVpbGQgdGhlIGlubmVyIGV4cHJlc3Npb25cbiAgICAgICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfX1tcImFcIiAvKiBidWlsZEV4cHJlc3Npb24gKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMsIHRydWUsIFtudWxsLCBcIm1jbG9zZVwiXSk7XG5cbiAgICAgICAgdmFyIGlubmVySGVpZ2h0ID0gMDtcbiAgICAgICAgdmFyIGlubmVyRGVwdGggPSAwO1xuICAgICAgICB2YXIgaGFkTWlkZGxlID0gZmFsc2U7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIGl0cyBoZWlnaHQgYW5kIGRlcHRoXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5uZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpbm5lcltpXS5pc01pZGRsZSkge1xuICAgICAgICAgICAgICAgIGhhZE1pZGRsZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlubmVySGVpZ2h0ID0gTWF0aC5tYXgoaW5uZXJbaV0uaGVpZ2h0LCBpbm5lckhlaWdodCk7XG4gICAgICAgICAgICAgICAgaW5uZXJEZXB0aCA9IE1hdGgubWF4KGlubmVyW2ldLmRlcHRoLCBpbm5lckRlcHRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoZSBzaXplIG9mIGRlbGltaXRlcnMgaXMgdGhlIHNhbWUsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBzdHlsZSB3ZSBhcmVcbiAgICAgICAgLy8gaW4uIFRodXMsIHRvIGNvcnJlY3RseSBjYWxjdWxhdGUgdGhlIHNpemUgb2YgZGVsaW1pdGVyIHdlIG5lZWQgYXJvdW5kXG4gICAgICAgIC8vIGEgZ3JvdXAsIHdlIHNjYWxlIGRvd24gdGhlIGlubmVyIHNpemUgYmFzZWQgb24gdGhlIHNpemUuXG4gICAgICAgIGlubmVySGVpZ2h0ICo9IG9wdGlvbnMuc2l6ZU11bHRpcGxpZXI7XG4gICAgICAgIGlubmVyRGVwdGggKj0gb3B0aW9ucy5zaXplTXVsdGlwbGllcjtcblxuICAgICAgICB2YXIgbGVmdERlbGltID0gdm9pZCAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUubGVmdCA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgIC8vIEVtcHR5IGRlbGltaXRlcnMgaW4gXFxsZWZ0IGFuZCBcXHJpZ2h0IG1ha2UgbnVsbCBkZWxpbWl0ZXIgc3BhY2VzLlxuICAgICAgICAgICAgbGVmdERlbGltID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfX1tcImVcIiAvKiBtYWtlTnVsbERlbGltaXRlciAqL10ob3B0aW9ucywgW1wibW9wZW5cIl0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB1c2UgbGVmdFJpZ2h0RGVsaW0gdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3Qgc2l6ZWRcbiAgICAgICAgICAgIC8vIGRlbGltaXRlci5cbiAgICAgICAgICAgIGxlZnREZWxpbSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVsaW1pdGVyX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubGVmdFJpZ2h0RGVsaW0oZ3JvdXAudmFsdWUubGVmdCwgaW5uZXJIZWlnaHQsIGlubmVyRGVwdGgsIG9wdGlvbnMsIGdyb3VwLm1vZGUsIFtcIm1vcGVuXCJdKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgaXQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZXhwcmVzc2lvblxuICAgICAgICBpbm5lci51bnNoaWZ0KGxlZnREZWxpbSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIG1pZGRsZSBkZWxpbWl0ZXJzXG4gICAgICAgIGlmIChoYWRNaWRkbGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBpbm5lci5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgbWlkZGxlRGVsaW0gPSBpbm5lcltfaV07XG4gICAgICAgICAgICAgICAgaWYgKG1pZGRsZURlbGltLmlzTWlkZGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IHRoZSBvcHRpb25zIHRoYXQgd2VyZSBhY3RpdmUgd2hlbiBcXG1pZGRsZSB3YXMgY2FsbGVkXG4gICAgICAgICAgICAgICAgICAgIGlubmVyW19pXSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVsaW1pdGVyX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubGVmdFJpZ2h0RGVsaW0obWlkZGxlRGVsaW0uaXNNaWRkbGUudmFsdWUsIGlubmVySGVpZ2h0LCBpbm5lckRlcHRoLCBtaWRkbGVEZWxpbS5pc01pZGRsZS5vcHRpb25zLCBncm91cC5tb2RlLCBbXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJpZ2h0RGVsaW0gPSB2b2lkIDA7XG4gICAgICAgIC8vIFNhbWUgZm9yIHRoZSByaWdodCBkZWxpbWl0ZXJcbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLnJpZ2h0ID09PSBcIi5cIikge1xuICAgICAgICAgICAgcmlnaHREZWxpbSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRIVE1MX19bXCJlXCIgLyogbWFrZU51bGxEZWxpbWl0ZXIgKi9dKG9wdGlvbnMsIFtcIm1jbG9zZVwiXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByaWdodERlbGltID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWxpbWl0ZXJfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5sZWZ0UmlnaHREZWxpbShncm91cC52YWx1ZS5yaWdodCwgaW5uZXJIZWlnaHQsIGlubmVyRGVwdGgsIG9wdGlvbnMsIGdyb3VwLm1vZGUsIFtcIm1jbG9zZVwiXSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGV4cHJlc3Npb24uXG4gICAgICAgIGlubmVyLnB1c2gocmlnaHREZWxpbSk7XG5cbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtaW5uZXJcIl0sIGlubmVyLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLmxlZnQgIT09IFwiLlwiKSB7XG4gICAgICAgICAgICB2YXIgbGVmdE5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb1wiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19idWlsZE1hdGhNTF9fW1wiZVwiIC8qIG1ha2VUZXh0ICovXShncm91cC52YWx1ZS5sZWZ0LCBncm91cC5tb2RlKV0pO1xuXG4gICAgICAgICAgICBsZWZ0Tm9kZS5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcInRydWVcIik7XG5cbiAgICAgICAgICAgIGlubmVyLnVuc2hpZnQobGVmdE5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGdyb3VwLnZhbHVlLnJpZ2h0ICE9PSBcIi5cIikge1xuICAgICAgICAgICAgdmFyIHJpZ2h0Tm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX19bXCJlXCIgLyogbWFrZVRleHQgKi9dKGdyb3VwLnZhbHVlLnJpZ2h0LCBncm91cC5tb2RlKV0pO1xuXG4gICAgICAgICAgICByaWdodE5vZGUuc2V0QXR0cmlidXRlKFwiZmVuY2VcIiwgXCJ0cnVlXCIpO1xuXG4gICAgICAgICAgICBpbm5lci5wdXNoKHJpZ2h0Tm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgb3V0ZXJOb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXJvd1wiLCBpbm5lcik7XG5cbiAgICAgICAgcmV0dXJuIG91dGVyTm9kZTtcbiAgICB9XG59KTtcblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwibWlkZGxlXCIsXG4gICAgbmFtZXM6IFtcIlxcXFxtaWRkbGVcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBkZWxpbSA9IGNoZWNrRGVsaW1pdGVyKGFyZ3NbMF0sIGNvbnRleHQpO1xuICAgICAgICBpZiAoIWNvbnRleHQucGFyc2VyLmxlZnRyaWdodERlcHRoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJcXFxcbWlkZGxlIHdpdGhvdXQgcHJlY2VkaW5nIFxcXFxsZWZ0XCIsIGRlbGltKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm1pZGRsZVwiLFxuICAgICAgICAgICAgdmFsdWU6IGRlbGltLnZhbHVlXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIG1pZGRsZURlbGltID0gdm9pZCAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUudmFsdWUgPT09IFwiLlwiKSB7XG4gICAgICAgICAgICBtaWRkbGVEZWxpbSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRIVE1MX19bXCJlXCIgLyogbWFrZU51bGxEZWxpbWl0ZXIgKi9dKG9wdGlvbnMsIFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1pZGRsZURlbGltID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19kZWxpbWl0ZXJfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zaXplZERlbGltKGdyb3VwLnZhbHVlLnZhbHVlLCAxLCBvcHRpb25zLCBncm91cC5tb2RlLCBbXSk7XG4gICAgICAgICAgICBtaWRkbGVEZWxpbS5pc01pZGRsZSA9IHsgdmFsdWU6IGdyb3VwLnZhbHVlLnZhbHVlLCBvcHRpb25zOiBvcHRpb25zIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1pZGRsZURlbGltO1xuICAgIH0sXG4gICAgbWF0aG1sQnVpbGRlcjogZnVuY3Rpb24gbWF0aG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbWlkZGxlTm9kZSA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm1vXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX2J1aWxkTWF0aE1MX19bXCJlXCIgLyogbWFrZVRleHQgKi9dKGdyb3VwLnZhbHVlLm1pZGRsZSwgZ3JvdXAubW9kZSldKTtcbiAgICAgICAgbWlkZGxlTm9kZS5zZXRBdHRyaWJ1dGUoXCJmZW5jZVwiLCBcInRydWVcIik7XG4gICAgICAgIHJldHVybiBtaWRkbGVOb2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEzMiAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1N0eWxlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fc2l6aW5nX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cblxuXG5cblxuXG52YXIgc3R5bGVNYXAgPSB7XG4gICAgXCJkaXNwbGF5XCI6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5ESVNQTEFZLFxuICAgIFwidGV4dFwiOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVEVYVCxcbiAgICBcInNjcmlwdFwiOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uU0NSSVBULFxuICAgIFwic2NyaXB0c2NyaXB0XCI6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5TQ1JJUFRTQ1JJUFRcbn07XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcInN0eWxpbmdcIixcbiAgICBuYW1lczogW1wiXFxcXGRpc3BsYXlzdHlsZVwiLCBcIlxcXFx0ZXh0c3R5bGVcIiwgXCJcXFxcc2NyaXB0c3R5bGVcIiwgXCJcXFxcc2NyaXB0c2NyaXB0c3R5bGVcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMCxcbiAgICAgICAgYWxsb3dlZEluVGV4dDogdHJ1ZVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBicmVha09uVG9rZW5UZXh0ID0gY29udGV4dC5icmVha09uVG9rZW5UZXh0LFxuICAgICAgICAgICAgZnVuY05hbWUgPSBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICAgICAgcGFyc2VyID0gY29udGV4dC5wYXJzZXI7XG5cbiAgICAgICAgLy8gcGFyc2Ugb3V0IHRoZSBpbXBsaWNpdCBib2R5XG5cbiAgICAgICAgcGFyc2VyLmNvbnN1bWVTcGFjZXMoKTtcbiAgICAgICAgdmFyIGJvZHkgPSBwYXJzZXIucGFyc2VFeHByZXNzaW9uKHRydWUsIGJyZWFrT25Ub2tlblRleHQpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0eWxpbmdcIixcbiAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgd2hhdCBzdHlsZSB0byB1c2UgYnkgcHVsbGluZyBvdXQgdGhlIHN0eWxlIGZyb21cbiAgICAgICAgICAgIC8vIHRoZSBmdW5jdGlvbiBuYW1lXG4gICAgICAgICAgICBzdHlsZTogZnVuY05hbWUuc2xpY2UoMSwgZnVuY05hbWUubGVuZ3RoIC0gNSksXG4gICAgICAgICAgICB2YWx1ZTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFN0eWxlIGNoYW5nZXMgYXJlIGhhbmRsZWQgaW4gdGhlIFRlWGJvb2sgb24gcGcuIDQ0MiwgUnVsZSAzLlxuICAgICAgICB2YXIgbmV3U3R5bGUgPSBzdHlsZU1hcFtncm91cC52YWx1ZS5zdHlsZV07XG4gICAgICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShuZXdTdHlsZSk7XG4gICAgICAgIHJldHVybiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19zaXppbmdfX1tcImFcIiAvKiBzaXppbmdHcm91cCAqL10pKGdyb3VwLnZhbHVlLnZhbHVlLCBuZXdPcHRpb25zLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgLy8gRmlndXJlIG91dCB3aGF0IHN0eWxlIHdlJ3JlIGNoYW5naW5nIHRvLlxuICAgICAgICAvLyBUT0RPKGtldmluYik6IGRlZHVwZSB0aGlzIHdpdGggYnVpbGRIVE1MLmpzXG4gICAgICAgIC8vIFRoaXMgd2lsbCBiZSBlYXNpZXIgb2YgaGFuZGxpbmcgb2Ygc3R5bGluZyBub2RlcyBpcyBpbiB0aGUgc2FtZSBmaWxlLlxuICAgICAgICB2YXIgc3R5bGVNYXAgPSB7XG4gICAgICAgICAgICBcImRpc3BsYXlcIjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVksXG4gICAgICAgICAgICBcInRleHRcIjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlRFWFQsXG4gICAgICAgICAgICBcInNjcmlwdFwiOiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uU0NSSVBULFxuICAgICAgICAgICAgXCJzY3JpcHRzY3JpcHRcIjogX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLlNDUklQVFNDUklQVFxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBuZXdTdHlsZSA9IHN0eWxlTWFwW2dyb3VwLnZhbHVlLnN0eWxlXTtcbiAgICAgICAgdmFyIG5ld09wdGlvbnMgPSBvcHRpb25zLmhhdmluZ1N0eWxlKG5ld1N0eWxlKTtcblxuICAgICAgICB2YXIgaW5uZXIgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS52YWx1ZSwgbmV3T3B0aW9ucyk7XG5cbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtc3R5bGVcIiwgaW5uZXIpO1xuXG4gICAgICAgIHZhciBzdHlsZUF0dHJpYnV0ZXMgPSB7XG4gICAgICAgICAgICBcImRpc3BsYXlcIjogW1wiMFwiLCBcInRydWVcIl0sXG4gICAgICAgICAgICBcInRleHRcIjogW1wiMFwiLCBcImZhbHNlXCJdLFxuICAgICAgICAgICAgXCJzY3JpcHRcIjogW1wiMVwiLCBcImZhbHNlXCJdLFxuICAgICAgICAgICAgXCJzY3JpcHRzY3JpcHRcIjogW1wiMlwiLCBcImZhbHNlXCJdXG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGF0dHIgPSBzdHlsZUF0dHJpYnV0ZXNbZ3JvdXAudmFsdWUuc3R5bGVdO1xuXG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwic2NyaXB0bGV2ZWxcIiwgYXR0clswXSk7XG4gICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFwiZGlzcGxheXN0eWxlXCIsIGF0dHJbMV0pO1xuXG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEzMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX29iamVjdF9rZXlzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3Rfa2V5c19fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3Rfa2V5c19fKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fUGFyc2VOb2RlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cbi8vIFRPRE8oa2V2aW5iKTogaW1wbGVtZW50IFxcXFxzbCBhbmQgXFxcXHNjXG5cblxuXG5cblxuXG5cbnZhciBodG1sQnVpbGRlciA9IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGZvbnQgPSBncm91cC52YWx1ZS5mb250O1xuICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJvZHksIG9wdGlvbnMud2l0aEZvbnRGYW1pbHkoZm9udCkpO1xufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIgPSBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGZvbnQgPSBncm91cC52YWx1ZS5mb250O1xuICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucy53aXRoRm9udEZhbWlseShmb250KSk7XG59O1xuXG52YXIgZm9udEFsaWFzZXMgPSB7XG4gICAgXCJcXFxcQmJiXCI6IFwiXFxcXG1hdGhiYlwiLFxuICAgIFwiXFxcXGJvbGRcIjogXCJcXFxcbWF0aGJmXCIsXG4gICAgXCJcXFxcZnJha1wiOiBcIlxcXFxtYXRoZnJha1wiLFxuICAgIFwiXFxcXGJtXCI6IFwiXFxcXGJvbGRzeW1ib2xcIlxufTtcblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiZm9udFwiLFxuICAgIG5hbWVzOiBbXG4gICAgLy8gc3R5bGVzXG4gICAgXCJcXFxcbWF0aHJtXCIsIFwiXFxcXG1hdGhpdFwiLCBcIlxcXFxtYXRoYmZcIiwgXCJcXFxcYm9sZHN5bWJvbFwiLFxuXG4gICAgLy8gZmFtaWxpZXNcbiAgICBcIlxcXFxtYXRoYmJcIiwgXCJcXFxcbWF0aGNhbFwiLCBcIlxcXFxtYXRoZnJha1wiLCBcIlxcXFxtYXRoc2NyXCIsIFwiXFxcXG1hdGhzZlwiLCBcIlxcXFxtYXRodHRcIixcblxuICAgIC8vIGFsaWFzZXNcbiAgICBcIlxcXFxCYmJcIiwgXCJcXFxcYm9sZFwiLCBcIlxcXFxmcmFrXCIsIFwiXFxcXGJtXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDEsXG4gICAgICAgIGdyZWVkaW5lc3M6IDJcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMF07XG4gICAgICAgIHZhciBmdW5jID0gY29udGV4dC5mdW5jTmFtZTtcbiAgICAgICAgaWYgKGZ1bmMgaW4gZm9udEFsaWFzZXMpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmb250QWxpYXNlc1tmdW5jXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJmb250XCIsXG4gICAgICAgICAgICBmb250OiBmdW5jLnNsaWNlKDEpLFxuICAgICAgICAgICAgYm9keTogYm9keVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXJcbn0pO1xuXG52YXIgb2xkRm9udEZ1bmNzTWFwID0ge1xuICAgIFwiXFxcXHJtXCI6IFwibWF0aHJtXCIsXG4gICAgXCJcXFxcc2ZcIjogXCJtYXRoc2ZcIixcbiAgICBcIlxcXFx0dFwiOiBcIm1hdGh0dFwiLFxuICAgIFwiXFxcXGJmXCI6IFwibWF0aGJmXCIsXG4gICAgXCJcXFxcaXRcIjogXCJtYXRoaXRcIlxufTtcblxuLy8gT2xkIGZvbnQgY2hhbmdpbmcgZnVuY3Rpb25zXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJmb250XCIsXG4gICAgbmFtZXM6IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2tleXNfX19kZWZhdWx0KCkob2xkRm9udEZ1bmNzTWFwKSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAwLFxuICAgICAgICBhbGxvd2VkSW5UZXh0OiB0cnVlXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIHBhcnNlciA9IGNvbnRleHQucGFyc2VyLFxuICAgICAgICAgICAgZnVuY05hbWUgPSBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICAgICAgYnJlYWtPblRva2VuVGV4dCA9IGNvbnRleHQuYnJlYWtPblRva2VuVGV4dDtcblxuXG4gICAgICAgIHBhcnNlci5jb25zdW1lU3BhY2VzKCk7XG4gICAgICAgIHZhciBib2R5ID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbih0cnVlLCBicmVha09uVG9rZW5UZXh0KTtcbiAgICAgICAgdmFyIHN0eWxlID0gb2xkRm9udEZ1bmNzTWFwW2Z1bmNOYW1lXTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJmb250XCIsXG4gICAgICAgICAgICBmb250OiBzdHlsZSxcbiAgICAgICAgICAgIGJvZHk6IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwib3JkZ3JvdXBcIiwgYm9keSwgcGFyc2VyLm1vZGUpXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8qKiovIH0pLFxuLyogMTM0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogX193ZWJwYWNrX3JlcXVpcmVfXygxMzUpLCBfX2VzTW9kdWxlOiB0cnVlIH07XG5cbi8qKiovIH0pLFxuLyogMTM1ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cbl9fd2VicGFja19yZXF1aXJlX18oMTM2KTtcbm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KS5PYmplY3Qua2V5cztcblxuLyoqKi8gfSksXG4vKiAxMzYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLy8gMTkuMS4yLjE0IE9iamVjdC5rZXlzKE8pXG52YXIgdG9PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KVxuICAsICRrZXlzICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOSk7XG5cbl9fd2VicGFja19yZXF1aXJlX18oNDYpKCdrZXlzJywgZnVuY3Rpb24oKXtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtleXMoaXQpe1xuICAgIHJldHVybiAka2V5cyh0b09iamVjdChpdCkpO1xuICB9O1xufSk7XG5cbi8qKiovIH0pLFxuLyogMTM3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191dGlsc19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3N0cmV0Y2h5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cblxuXG5cblxuXG5cblxudmFyIGh0bWxCdWlsZGVyID0gZnVuY3Rpb24gaHRtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAvLyBBY2NlbnRzIGFyZSBoYW5kbGVkIGluIHRoZSBUZVhib29rIHBnLiA0NDMsIHJ1bGUgMTIuXG4gICAgdmFyIGJhc2UgPSBncm91cC52YWx1ZS5iYXNlO1xuXG4gICAgdmFyIHN1cHN1Ykdyb3VwID0gdm9pZCAwO1xuICAgIGlmIChncm91cC50eXBlID09PSBcInN1cHN1YlwiKSB7XG4gICAgICAgIC8vIElmIG91ciBiYXNlIGlzIGEgY2hhcmFjdGVyIGJveCwgYW5kIHdlIGhhdmUgc3VwZXJzY3JpcHRzIGFuZFxuICAgICAgICAvLyBzdWJzY3JpcHRzLCB0aGUgc3Vwc3ViIHdpbGwgZGVmZXIgdG8gdXMuIEluIHBhcnRpY3VsYXIsIHdlIHdhbnRcbiAgICAgICAgLy8gdG8gYXR0YWNoIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgdG8gdGhlIGlubmVyIGJvZHkgKHNvXG4gICAgICAgIC8vIHRoYXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdXBlcnNjcmlwdHMgYW5kIHN1YnNjcmlwdHMgd29uJ3QgYmVcbiAgICAgICAgLy8gYWZmZWN0ZWQgYnkgdGhlIGhlaWdodCBvZiB0aGUgYWNjZW50KS4gV2UgYWNjb21wbGlzaCB0aGlzIGJ5XG4gICAgICAgIC8vIHN0aWNraW5nIHRoZSBiYXNlIG9mIHRoZSBhY2NlbnQgaW50byB0aGUgYmFzZSBvZiB0aGUgc3Vwc3ViLCBhbmRcbiAgICAgICAgLy8gcmVuZGVyaW5nIHRoYXQsIHdoaWxlIGtlZXBpbmcgdHJhY2sgb2Ygd2hlcmUgdGhlIGFjY2VudCBpcy5cblxuICAgICAgICAvLyBUaGUgc3Vwc3ViIGdyb3VwIGlzIHRoZSBncm91cCB0aGF0IHdhcyBwYXNzZWQgaW5cbiAgICAgICAgdmFyIHN1cHN1YiA9IGdyb3VwO1xuICAgICAgICAvLyBUaGUgcmVhbCBhY2NlbnQgZ3JvdXAgaXMgdGhlIGJhc2Ugb2YgdGhlIHN1cHN1YiBncm91cFxuICAgICAgICBncm91cCA9IHN1cHN1Yi52YWx1ZS5iYXNlO1xuICAgICAgICAvLyBUaGUgY2hhcmFjdGVyIGJveCBpcyB0aGUgYmFzZSBvZiB0aGUgYWNjZW50IGdyb3VwXG4gICAgICAgIGJhc2UgPSBncm91cC52YWx1ZS5iYXNlO1xuICAgICAgICAvLyBTdGljayB0aGUgY2hhcmFjdGVyIGJveCBpbnRvIHRoZSBiYXNlIG9mIHRoZSBzdXBzdWIgZ3JvdXBcbiAgICAgICAgc3Vwc3ViLnZhbHVlLmJhc2UgPSBiYXNlO1xuXG4gICAgICAgIC8vIFJlcmVuZGVyIHRoZSBzdXBzdWIgZ3JvdXAgd2l0aCBpdHMgbmV3IGJhc2UsIGFuZCBzdG9yZSB0aGF0XG4gICAgICAgIC8vIHJlc3VsdC5cbiAgICAgICAgc3Vwc3ViR3JvdXAgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKHN1cHN1Yiwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgdGhlIGJhc2UgZ3JvdXBcbiAgICB2YXIgYm9keSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oYmFzZSwgb3B0aW9ucy5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7XG5cbiAgICAvLyBEb2VzIHRoZSBhY2NlbnQgbmVlZCB0byBzaGlmdCBmb3IgdGhlIHNrZXcgb2YgYSBjaGFyYWN0ZXI/XG4gICAgdmFyIG11c3RTaGlmdCA9IGdyb3VwLnZhbHVlLmlzU2hpZnR5ICYmIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5pc0NoYXJhY3RlckJveChiYXNlKTtcblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgc2tldyBvZiB0aGUgYWNjZW50LiBUaGlzIGlzIGJhc2VkIG9uIHRoZSBsaW5lIFwiSWYgdGhlXG4gICAgLy8gbnVjbGV1cyBpcyBub3QgYSBzaW5nbGUgY2hhcmFjdGVyLCBsZXQgcyA9IDA7IG90aGVyd2lzZSBzZXQgcyB0byB0aGVcbiAgICAvLyBrZXJuIGFtb3VudCBmb3IgdGhlIG51Y2xldXMgZm9sbG93ZWQgYnkgdGhlIFxcc2tld2NoYXIgb2YgaXRzIGZvbnQuXCJcbiAgICAvLyBOb3RlIHRoYXQgb3VyIHNrZXcgbWV0cmljcyBhcmUganVzdCB0aGUga2VybiBiZXR3ZWVuIGVhY2ggY2hhcmFjdGVyXG4gICAgLy8gYW5kIHRoZSBza2V3Y2hhci5cbiAgICB2YXIgc2tldyA9IDA7XG4gICAgaWYgKG11c3RTaGlmdCkge1xuICAgICAgICAvLyBJZiB0aGUgYmFzZSBpcyBhIGNoYXJhY3RlciBib3gsIHRoZW4gd2Ugd2FudCB0aGUgc2tldyBvZiB0aGVcbiAgICAgICAgLy8gaW5uZXJtb3N0IGNoYXJhY3Rlci4gVG8gZG8gdGhhdCwgd2UgZmluZCB0aGUgaW5uZXJtb3N0IGNoYXJhY3RlcjpcbiAgICAgICAgdmFyIGJhc2VDaGFyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmdldEJhc2VFbGVtKGJhc2UpO1xuICAgICAgICAvLyBUaGVuLCB3ZSByZW5kZXIgaXRzIGdyb3VwIHRvIGdldCB0aGUgc3ltYm9sIGluc2lkZSBpdFxuICAgICAgICB2YXIgYmFzZUdyb3VwID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShiYXNlQ2hhciwgb3B0aW9ucy5oYXZpbmdDcmFtcGVkU3R5bGUoKSk7XG4gICAgICAgIC8vIEZpbmFsbHksIHdlIHB1bGwgdGhlIHNrZXcgb2ZmIG9mIHRoZSBzeW1ib2wuXG4gICAgICAgIHNrZXcgPSBiYXNlR3JvdXAuc2tldztcbiAgICAgICAgLy8gTm90ZSB0aGF0IHdlIG5vdyB0aHJvdyBhd2F5IGJhc2VHcm91cCwgYmVjYXVzZSB0aGUgbGF5ZXJzIHdlXG4gICAgICAgIC8vIHJlbW92ZWQgd2l0aCBnZXRCYXNlRWxlbSBtaWdodCBjb250YWluIHRoaW5ncyBsaWtlIFxcY29sb3Igd2hpY2hcbiAgICAgICAgLy8gd2UgY2FuJ3QgZ2V0IHJpZCBvZi5cbiAgICAgICAgLy8gVE9ETyhlbWlseSk6IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGdldCB0aGUgc2tld1xuICAgIH1cblxuICAgIC8vIGNhbGN1bGF0ZSB0aGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIGJvZHkgYW5kIHRoZSBhY2NlbnRcbiAgICB2YXIgY2xlYXJhbmNlID0gTWF0aC5taW4oYm9keS5oZWlnaHQsIG9wdGlvbnMuZm9udE1ldHJpY3MoKS54SGVpZ2h0KTtcblxuICAgIC8vIEJ1aWxkIHRoZSBhY2NlbnRcbiAgICB2YXIgYWNjZW50Qm9keSA9IHZvaWQgMDtcbiAgICBpZiAoIWdyb3VwLnZhbHVlLmlzU3RyZXRjaHkpIHtcbiAgICAgICAgdmFyIGFjY2VudCA9IHZvaWQgMDtcbiAgICAgICAgdmFyIHdpZHRoID0gdm9pZCAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUubGFiZWwgPT09IFwiXFxcXHZlY1wiKSB7XG4gICAgICAgICAgICAvLyBCZWZvcmUgdmVyc2lvbiAwLjksIFxcdmVjIHVzZWQgdGhlIGNvbWJpbmluZyBmb250IGdseXBoIFUrMjBENy5cbiAgICAgICAgICAgIC8vIEJ1dCBicm93c2VycywgZXNwZWNpYWxseSBTYWZhcmksIGFyZSBub3QgY29uc2lzdGVudCBpbiBob3cgdGhleVxuICAgICAgICAgICAgLy8gcmVuZGVyIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHdoZW4gbm90IHByZWNlZGVkIGJ5IGEgY2hhcmFjdGVyLlxuICAgICAgICAgICAgLy8gU28gbm93IHdlIHVzZSBhbiBTVkcuXG4gICAgICAgICAgICAvLyBJZiBTYWZhcmkgcmVmb3Jtcywgd2Ugc2hvdWxkIGNvbnNpZGVyIHJldmVydGluZyB0byB0aGUgZ2x5cGguXG4gICAgICAgICAgICBhY2NlbnQgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3RhdGljU3ZnKFwidmVjXCIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgd2lkdGggPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10uc3ZnRGF0YS52ZWNbMV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY2NlbnQgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVN5bWJvbChncm91cC52YWx1ZS5sYWJlbCwgXCJNYWluLVJlZ3VsYXJcIiwgZ3JvdXAubW9kZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGl0YWxpYyBjb3JyZWN0aW9uIG9mIHRoZSBhY2NlbnQsIGJlY2F1c2UgaXQgb25seSBzZXJ2ZXMgdG9cbiAgICAgICAgICAgIC8vIHNoaWZ0IHRoZSBhY2NlbnQgb3ZlciB0byBhIHBsYWNlIHdlIGRvbid0IHdhbnQuXG4gICAgICAgICAgICBhY2NlbnQuaXRhbGljID0gMDtcbiAgICAgICAgICAgIHdpZHRoID0gYWNjZW50LndpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgYWNjZW50Qm9keSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJhY2NlbnQtYm9keVwiXSwgW2FjY2VudF0pO1xuXG4gICAgICAgIC8vIENTUyBkZWZpbmVzIGAua2F0ZXggLmFjY2VudCAuYWNjZW50LWJvZHkgeyB3aWR0aDogMCB9YFxuICAgICAgICAvLyBzbyB0aGF0IHRoZSBhY2NlbnQgZG9lc24ndCBjb250cmlidXRlIHRvIHRoZSBib3VuZGluZyBib3guXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gc2hpZnQgdGhlIGNoYXJhY3RlciBieSBpdHMgd2lkdGggKGVmZmVjdGl2ZWx5IGhhbGZcbiAgICAgICAgLy8gaXRzIHdpZHRoKSB0byBjb21wZW5zYXRlLlxuICAgICAgICB2YXIgbGVmdCA9IC13aWR0aCAvIDI7XG5cbiAgICAgICAgLy8gU2hpZnQgdGhlIGFjY2VudCBvdmVyIGJ5IHRoZSBza2V3LlxuICAgICAgICBsZWZ0ICs9IHNrZXc7XG5cbiAgICAgICAgYWNjZW50Qm9keS5zdHlsZS5sZWZ0ID0gbGVmdCArIFwiZW1cIjtcblxuICAgICAgICBhY2NlbnRCb2R5ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWTGlzdCh7XG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiZmlyc3RCYXNlbGluZVwiLFxuICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBib2R5IH0sIHsgdHlwZTogXCJrZXJuXCIsIHNpemU6IC1jbGVhcmFuY2UgfSwgeyB0eXBlOiBcImVsZW1cIiwgZWxlbTogYWNjZW50Qm9keSB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY2NlbnRCb2R5ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19zdHJldGNoeV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnN2Z1NwYW4oZ3JvdXAsIG9wdGlvbnMpO1xuXG4gICAgICAgIGFjY2VudEJvZHkgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJmaXJzdEJhc2VsaW5lXCIsXG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IGJvZHkgfSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZWxlbVwiLFxuICAgICAgICAgICAgICAgIGVsZW06IGFjY2VudEJvZHksXG4gICAgICAgICAgICAgICAgd3JhcHBlckNsYXNzZXM6IFtcInN2Zy1hbGlnblwiXSxcbiAgICAgICAgICAgICAgICB3cmFwcGVyU3R5bGU6IHNrZXcgPiAwID8ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCJjYWxjKDEwMCUgLSBcIiArIDIgKiBza2V3ICsgXCJlbSlcIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogMiAqIHNrZXcgKyBcImVtXCJcbiAgICAgICAgICAgICAgICB9IDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XVxuICAgICAgICB9LCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICB2YXIgYWNjZW50V3JhcCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtb3JkXCIsIFwiYWNjZW50XCJdLCBbYWNjZW50Qm9keV0sIG9wdGlvbnMpO1xuXG4gICAgaWYgKHN1cHN1Ykdyb3VwKSB7XG4gICAgICAgIC8vIEhlcmUsIHdlIHJlcGxhY2UgdGhlIFwiYmFzZVwiIGNoaWxkIG9mIHRoZSBzdXBzdWIgd2l0aCBvdXIgbmV3bHlcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGFjY2VudC5cbiAgICAgICAgc3Vwc3ViR3JvdXAuY2hpbGRyZW5bMF0gPSBhY2NlbnRXcmFwO1xuXG4gICAgICAgIC8vIFNpbmNlIHdlIGRvbid0IHJlcnVuIHRoZSBoZWlnaHQgY2FsY3VsYXRpb24gYWZ0ZXIgcmVwbGFjaW5nIHRoZVxuICAgICAgICAvLyBhY2NlbnQsIHdlIG1hbnVhbGx5IHJlY2FsY3VsYXRlIGhlaWdodC5cbiAgICAgICAgc3Vwc3ViR3JvdXAuaGVpZ2h0ID0gTWF0aC5tYXgoYWNjZW50V3JhcC5oZWlnaHQsIHN1cHN1Ykdyb3VwLmhlaWdodCk7XG5cbiAgICAgICAgLy8gQWNjZW50cyBzaG91bGQgYWx3YXlzIGJlIG9yZHMsIGV2ZW4gd2hlbiB0aGVpciBpbm5hcmRzIGFyZSBub3QuXG4gICAgICAgIHN1cHN1Ykdyb3VwLmNsYXNzZXNbMF0gPSBcIm1vcmRcIjtcblxuICAgICAgICByZXR1cm4gc3Vwc3ViR3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGFjY2VudFdyYXA7XG4gICAgfVxufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIgPSBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIGFjY2VudE5vZGUgPSB2b2lkIDA7XG4gICAgaWYgKGdyb3VwLnZhbHVlLmlzU3RyZXRjaHkpIHtcbiAgICAgICAgYWNjZW50Tm9kZSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3RyZXRjaHlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoTUxub2RlKGdyb3VwLnZhbHVlLmxhYmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY2NlbnROb2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibW9cIiwgW19fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fYnVpbGRNYXRoTUxfX1tcImVcIiAvKiBtYWtlVGV4dCAqL10oZ3JvdXAudmFsdWUubGFiZWwsIGdyb3VwLm1vZGUpXSk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtb3ZlclwiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZE1hdGhNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGdyb3VwLnZhbHVlLmJhc2UsIG9wdGlvbnMpLCBhY2NlbnROb2RlXSk7XG5cbiAgICBub2RlLnNldEF0dHJpYnV0ZShcImFjY2VudFwiLCBcInRydWVcIik7XG5cbiAgICByZXR1cm4gbm9kZTtcbn07XG5cbnZhciBOT05fU1RSRVRDSFlfQUNDRU5UX1JFR0VYID0gbmV3IFJlZ0V4cChbXCJcXFxcYWN1dGVcIiwgXCJcXFxcZ3JhdmVcIiwgXCJcXFxcZGRvdFwiLCBcIlxcXFx0aWxkZVwiLCBcIlxcXFxiYXJcIiwgXCJcXFxcYnJldmVcIiwgXCJcXFxcY2hlY2tcIiwgXCJcXFxcaGF0XCIsIFwiXFxcXHZlY1wiLCBcIlxcXFxkb3RcIiwgXCJcXFxcbWF0aHJpbmdcIl0ubWFwKGZ1bmN0aW9uIChhY2NlbnQpIHtcbiAgICByZXR1cm4gXCJcXFxcXCIgKyBhY2NlbnQ7XG59KS5qb2luKFwifFwiKSk7XG5cbi8vIEFjY2VudHNcbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcImFjY2VudFwiLFxuICAgIG5hbWVzOiBbXCJcXFxcYWN1dGVcIiwgXCJcXFxcZ3JhdmVcIiwgXCJcXFxcZGRvdFwiLCBcIlxcXFx0aWxkZVwiLCBcIlxcXFxiYXJcIiwgXCJcXFxcYnJldmVcIiwgXCJcXFxcY2hlY2tcIiwgXCJcXFxcaGF0XCIsIFwiXFxcXHZlY1wiLCBcIlxcXFxkb3RcIiwgXCJcXFxcbWF0aHJpbmdcIiwgXCJcXFxcd2lkZWhhdFwiLCBcIlxcXFx3aWRldGlsZGVcIiwgXCJcXFxcb3ZlcnJpZ2h0YXJyb3dcIiwgXCJcXFxcb3ZlcmxlZnRhcnJvd1wiLCBcIlxcXFxPdmVycmlnaHRhcnJvd1wiLCBcIlxcXFxvdmVybGVmdHJpZ2h0YXJyb3dcIiwgXCJcXFxcb3Zlcmdyb3VwXCIsIFwiXFxcXG92ZXJsaW5lc2VnbWVudFwiLCBcIlxcXFxvdmVybGVmdGhhcnBvb25cIiwgXCJcXFxcb3ZlcnJpZ2h0aGFycG9vblwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQsIGFyZ3MpIHtcbiAgICAgICAgdmFyIGJhc2UgPSBhcmdzWzBdO1xuXG4gICAgICAgIHZhciBpc1N0cmV0Y2h5ID0gIU5PTl9TVFJFVENIWV9BQ0NFTlRfUkVHRVgudGVzdChjb250ZXh0LmZ1bmNOYW1lKTtcbiAgICAgICAgdmFyIGlzU2hpZnR5ID0gIWlzU3RyZXRjaHkgfHwgY29udGV4dC5mdW5jTmFtZSA9PT0gXCJcXFxcd2lkZWhhdFwiIHx8IGNvbnRleHQuZnVuY05hbWUgPT09IFwiXFxcXHdpZGV0aWxkZVwiO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcImFjY2VudFwiLFxuICAgICAgICAgICAgbGFiZWw6IGNvbnRleHQuZnVuY05hbWUsXG4gICAgICAgICAgICBpc1N0cmV0Y2h5OiBpc1N0cmV0Y2h5LFxuICAgICAgICAgICAgaXNTaGlmdHk6IGlzU2hpZnR5LFxuICAgICAgICAgICAgYmFzZTogYmFzZVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXJcbn0pO1xuXG4vLyBUZXh0LW1vZGUgYWNjZW50c1xuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYWNjZW50XCIsXG4gICAgbmFtZXM6IFtcIlxcXFwnXCIsIFwiXFxcXGBcIiwgXCJcXFxcXlwiLCBcIlxcXFx+XCIsIFwiXFxcXD1cIiwgXCJcXFxcdVwiLCBcIlxcXFwuXCIsICdcXFxcXCInLCBcIlxcXFxyXCIsIFwiXFxcXEhcIiwgXCJcXFxcdlwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxLFxuICAgICAgICBhbGxvd2VkSW5UZXh0OiB0cnVlLFxuICAgICAgICBhbGxvd2VkSW5NYXRoOiBmYWxzZVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBiYXNlID0gYXJnc1swXTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogXCJhY2NlbnRcIixcbiAgICAgICAgICAgIGxhYmVsOiBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICAgICAgaXNTdHJldGNoeTogZmFsc2UsXG4gICAgICAgICAgICBpc1NoaWZ0eTogdHJ1ZSxcbiAgICAgICAgICAgIGJhc2U6IGJhc2VcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyXG59KTtcblxuLyoqKi8gfSksXG4vKiAxMzggKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3N0cmV0Y2h5X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG4vLyBIb3Jpem9udGFsIG92ZXJsYXAgZnVuY3Rpb25zXG5cblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYWNjZW50VW5kZXJcIixcbiAgICBuYW1lczogW1wiXFxcXHVuZGVybGVmdGFycm93XCIsIFwiXFxcXHVuZGVycmlnaHRhcnJvd1wiLCBcIlxcXFx1bmRlcmxlZnRyaWdodGFycm93XCIsIFwiXFxcXHVuZGVyZ3JvdXBcIiwgXCJcXFxcdW5kZXJsaW5lc2VnbWVudFwiLCBcIlxcXFx1dGlsZGVcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBiYXNlID0gYXJnc1swXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYWNjZW50VW5kZXJcIixcbiAgICAgICAgICAgIGxhYmVsOiBjb250ZXh0LmZ1bmNOYW1lLFxuICAgICAgICAgICAgYmFzZTogYmFzZVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIC8vIFRyZWF0IHVuZGVyIGFjY2VudHMgbXVjaCBsaWtlIHVuZGVybGluZXMuXG4gICAgICAgIHZhciBpbm5lckdyb3VwID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZEhUTUxfX1tcImJcIiAvKiBidWlsZEdyb3VwICovXShncm91cC52YWx1ZS5iYXNlLCBvcHRpb25zKTtcblxuICAgICAgICB2YXIgYWNjZW50Qm9keSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fc3RyZXRjaHlfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5zdmdTcGFuKGdyb3VwLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIGtlcm4gPSBncm91cC52YWx1ZS5sYWJlbCA9PT0gXCJcXFxcdXRpbGRlXCIgPyAwLjEyIDogMDtcblxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgdmxpc3QsIHdpdGggdGhlIGFwcHJvcHJpYXRlIGtlcm5zXG4gICAgICAgIHZhciB2bGlzdCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlVkxpc3Qoe1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgcG9zaXRpb25EYXRhOiBhY2NlbnRCb2R5LmhlaWdodCArIGtlcm4sXG4gICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogXCJlbGVtXCIsIGVsZW06IGFjY2VudEJvZHksIHdyYXBwZXJDbGFzc2VzOiBbXCJzdmctYWxpZ25cIl0gfSwgeyB0eXBlOiBcImtlcm5cIiwgc2l6ZToga2VybiB9LCB7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBpbm5lckdyb3VwIH1dXG4gICAgICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wibW9yZFwiLCBcImFjY2VudHVuZGVyXCJdLCBbdmxpc3RdLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGFjY2VudE5vZGUgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3N0cmV0Y2h5X19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aE1Mbm9kZShncm91cC52YWx1ZS5sYWJlbCk7XG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXVuZGVyXCIsIFtfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkTWF0aE1MX19bXCJiXCIgLyogYnVpbGRHcm91cCAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyksIGFjY2VudE5vZGVdKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJhY2NlbnR1bmRlclwiLCBcInRydWVcIik7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbn0pO1xuXG4vKioqLyB9KSxcbi8qIDEzOSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgX193ZWJwYWNrX2V4cG9ydHNfXywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fUGFyc2VFcnJvcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcblxuXG5cblxuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJ2ZXJiXCIsXG4gICAgbmFtZXM6IFtcIlxcXFx2ZXJiXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDAsXG4gICAgICAgIGFsbG93ZWRJblRleHQ6IHRydWVcbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncywgb3B0QXJncykge1xuICAgICAgICAvLyBcXHZlcmIgYW5kIFxcdmVyYiogYXJlIGRlYWx0IHdpdGggZGlyZWN0bHkgaW4gUGFyc2VyLmpzLlxuICAgICAgICAvLyBJZiB3ZSBlbmQgdXAgaGVyZSwgaXQncyBiZWNhdXNlIG9mIGEgZmFpbHVyZSB0byBtYXRjaCB0aGUgdHdvIGRlbGltaXRlcnNcbiAgICAgICAgLy8gaW4gdGhlIHJlZ2V4IGluIExleGVyLmpzLiAgTGFUZVggcmFpc2VzIHRoZSBmb2xsb3dpbmcgZXJyb3Igd2hlbiBcXHZlcmIgaXNcbiAgICAgICAgLy8gdGVybWluYXRlZCBieSBlbmQgb2YgbGluZSAob3IgZmlsZSkuXG4gICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIlxcXFx2ZXJiIGVuZGVkIGJ5IGVuZCBvZiBsaW5lIGluc3RlYWQgb2YgbWF0Y2hpbmcgZGVsaW1pdGVyXCIpO1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciB0ZXh0ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWZXJiKGdyb3VwLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIGJvZHkgPSBbXTtcbiAgICAgICAgLy8gXFx2ZXJiIGVudGVycyB0ZXh0IG1vZGUgYW5kIHRoZXJlZm9yZSBpcyBzaXplZCBsaWtlIFxcdGV4dHN0eWxlXG4gICAgICAgIHZhciBuZXdPcHRpb25zID0gb3B0aW9ucy5oYXZpbmdTdHlsZShvcHRpb25zLnN0eWxlLnRleHQoKSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRleHRbaV0gPT09ICdcXHhBMCcpIHtcbiAgICAgICAgICAgICAgICAvLyBzcGFjZXMgYXBwZWFyIGFzIG5vbmJyZWFraW5nIHNwYWNlXG4gICAgICAgICAgICAgICAgLy8gVGhlIHNwYWNlIGNoYXJhY3RlciBpc24ndCBpbiB0aGUgVHlwZXdyaXRlci1SZWd1bGFyIGZvbnQsXG4gICAgICAgICAgICAgICAgLy8gc28gd2UgaW1wbGVtZW50IGl0IGFzIGEga2VybiBvZiB0aGUgc2FtZSBzaXplIGFzIGEgY2hhcmFjdGVyLlxuICAgICAgICAgICAgICAgIC8vIDAuNTI1IGlzIHRoZSB3aWR0aCBvZiBhIHRleHR0dCBjaGFyYWN0ZXIgaW4gTGFUZVguXG4gICAgICAgICAgICAgICAgLy8gSXQgYXV0b21hdGljYWxseSBnZXRzIHNjYWxlZCBieSB0aGUgZm9udCBzaXplLlxuICAgICAgICAgICAgICAgIHZhciBydWxlID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm1vcmRcIiwgXCJydWxlXCJdLCBbXSwgbmV3T3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgcnVsZS5zdHlsZS5tYXJnaW5MZWZ0ID0gXCIwLjUyNWVtXCI7XG4gICAgICAgICAgICAgICAgYm9keS5wdXNoKHJ1bGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBib2R5LnB1c2goX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTeW1ib2wodGV4dFtpXSwgXCJUeXBld3JpdGVyLVJlZ3VsYXJcIiwgZ3JvdXAubW9kZSwgbmV3T3B0aW9ucywgW1wibWF0aHR0XCJdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnRyeUNvbWJpbmVDaGFycyhib2R5KTtcbiAgICAgICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtb3JkXCIsIFwidGV4dFwiXS5jb25jYXQobmV3T3B0aW9ucy5zaXppbmdDbGFzc2VzKG9wdGlvbnMpKSxcbiAgICAgICAgLy8gdHJ5Q29tYmluQ2hhcnMgZXhwZWN0cyBDb21iaW5hYmxlRG9tTm9kZVtdIHdoaWxlIG1ha2VTcGFuIGV4cGVjdHNcbiAgICAgICAgLy8gRG9tQ2hpbGROb2RlW10uXG4gICAgICAgIC8vICRGbG93Rml4TWU6IENvbWJpbmFibGVEb21Ob2RlW10gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBEb21DaGlsZE5vZGVbXVxuICAgICAgICBib2R5LCBuZXdPcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHRleHQgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uVGV4dE5vZGUoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VWZXJiKGdyb3VwLCBvcHRpb25zKSk7XG4gICAgICAgIHZhciBub2RlID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXRleHRcIiwgW3RleHRdKTtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoXCJtYXRodmFyaWFudFwiLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZm9udE1hcFtcIm1hdGh0dFwiXS52YXJpYW50KTtcbiAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTQwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZEhUTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZE1hdGhNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTtcblxuXG5cblxuXG5cblxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiaHJlZlwiLFxuICAgIG5hbWVzOiBbXCJcXFxcaHJlZlwiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAyLFxuICAgICAgICBhcmdUeXBlczogW1widXJsXCIsIFwib3JpZ2luYWxcIl1cbiAgICB9LFxuICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgICAgICB2YXIgYm9keSA9IGFyZ3NbMV07XG4gICAgICAgIHZhciBocmVmID0gYXJnc1swXS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFwiaHJlZlwiLFxuICAgICAgICAgICAgaHJlZjogaHJlZixcbiAgICAgICAgICAgIGJvZHk6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShib2R5KVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShncm91cC52YWx1ZS5ib2R5LCBvcHRpb25zLCBmYWxzZSk7XG5cbiAgICAgICAgdmFyIGhyZWYgPSBncm91cC52YWx1ZS5ocmVmO1xuXG4gICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VBbmNob3IoaHJlZiwgW10sIGVsZW1lbnRzLCBvcHRpb25zKTtcbiAgICB9LFxuICAgIG1hdGhtbEJ1aWxkZXI6IGZ1bmN0aW9uIG1hdGhtbEJ1aWxkZXIoZ3JvdXAsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGlubmVyID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oZ3JvdXAudmFsdWUuYm9keSwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBtYXRoID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXJvd1wiLCBpbm5lcik7XG4gICAgICAgIG1hdGguc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBncm91cC52YWx1ZS5ocmVmKTtcbiAgICAgICAgcmV0dXJuIG1hdGg7XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTQxICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkSFRNTF9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX2J1aWxkTWF0aE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpO1xuXG5cblxuXG5cblxuXG52YXIgY2hvb3NlTWF0aFN0eWxlID0gZnVuY3Rpb24gY2hvb3NlTWF0aFN0eWxlKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIHN0eWxlID0gb3B0aW9ucy5zdHlsZTtcbiAgICBpZiAoc3R5bGUuc2l6ZSA9PT0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLkRJU1BMQVkuc2l6ZSkge1xuICAgICAgICByZXR1cm4gZ3JvdXAudmFsdWUuZGlzcGxheTtcbiAgICB9IGVsc2UgaWYgKHN0eWxlLnNpemUgPT09IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5URVhULnNpemUpIHtcbiAgICAgICAgcmV0dXJuIGdyb3VwLnZhbHVlLnRleHQ7XG4gICAgfSBlbHNlIGlmIChzdHlsZS5zaXplID09PSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1N0eWxlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uU0NSSVBULnNpemUpIHtcbiAgICAgICAgcmV0dXJuIGdyb3VwLnZhbHVlLnNjcmlwdDtcbiAgICB9IGVsc2UgaWYgKHN0eWxlLnNpemUgPT09IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fU3R5bGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5TQ1JJUFRTQ1JJUFQuc2l6ZSkge1xuICAgICAgICByZXR1cm4gZ3JvdXAudmFsdWUuc2NyaXB0c2NyaXB0O1xuICAgIH1cbiAgICByZXR1cm4gZ3JvdXAudmFsdWUudGV4dDtcbn07XG5cbk9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJiXCIgLyogZGVmYXVsdCAqL10pKHtcbiAgICB0eXBlOiBcIm1hdGhjaG9pY2VcIixcbiAgICBuYW1lczogW1wiXFxcXG1hdGhjaG9pY2VcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogNFxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBcIm1hdGhjaG9pY2VcIixcbiAgICAgICAgICAgIGRpc3BsYXk6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShhcmdzWzBdKSxcbiAgICAgICAgICAgIHRleHQ6IE9iamVjdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX19bXCJjXCIgLyogb3JkYXJndW1lbnQgKi9dKShhcmdzWzFdKSxcbiAgICAgICAgICAgIHNjcmlwdDogT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRnVuY3Rpb25fX1tcImNcIiAvKiBvcmRhcmd1bWVudCAqL10pKGFyZ3NbMl0pLFxuICAgICAgICAgICAgc2NyaXB0c2NyaXB0OiBPYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVGdW5jdGlvbl9fW1wiY1wiIC8qIG9yZGFyZ3VtZW50ICovXSkoYXJnc1szXSlcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBmdW5jdGlvbiBodG1sQnVpbGRlcihncm91cCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgYm9keSA9IGNob29zZU1hdGhTdHlsZShncm91cCwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fYnVpbGRIVE1MX19bXCJhXCIgLyogYnVpbGRFeHByZXNzaW9uICovXShib2R5LCBvcHRpb25zLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VGcmFnbWVudChlbGVtZW50cyk7XG4gICAgfSxcbiAgICBtYXRobWxCdWlsZGVyOiBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBib2R5ID0gY2hvb3NlTWF0aFN0eWxlKGdyb3VwLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fW1wiYVwiIC8qIGJ1aWxkRXhwcmVzc2lvbiAqL10oYm9keSwgb3B0aW9ucywgZmFsc2UpO1xuICAgICAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fbWF0aE1MVHJlZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLk1hdGhOb2RlKFwibXJvd1wiLCBlbGVtZW50cyk7XG4gICAgfVxufSk7XG5cbi8qKiovIH0pLFxuLyogMTQyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRW52aXJvbm1lbnRfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNjEpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZW52aXJvbm1lbnRzX2FycmF5X2pzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0Myk7XG5cblxudmFyIGVudmlyb25tZW50cyA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fZGVmaW5lRW52aXJvbm1lbnRfX1tcImFcIiAvKiBfZW52aXJvbm1lbnRzICovXTtcblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9IChlbnZpcm9ubWVudHMpO1xuXG4vLyBBbGwgZW52aXJvbm1lbnQgZGVmaW5pdGlvbnMgc2hvdWxkIGJlIGltcG9ydGVkIGJlbG93XG5cblxuLyoqKi8gfSksXG4vKiAxNDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUVudmlyb25tZW50X18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYxKTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fUGFyc2VOb2RlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzVfX3VuaXRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3V0aWxzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fc3RyZXRjaHlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fYnVpbGRIVE1MX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOV9fYnVpbGRNYXRoTUxfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMik7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBEYXRhIHN0b3JlZCBpbiB0aGUgUGFyc2VOb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZW52aXJvbm1lbnQuXG5cblxuLyoqXG4gKiBQYXJzZSB0aGUgYm9keSBvZiB0aGUgZW52aXJvbm1lbnQsIHdpdGggcm93cyBkZWxpbWl0ZWQgYnkgXFxcXCBhbmRcbiAqIGNvbHVtbnMgZGVsaW1pdGVkIGJ5ICYsIGFuZCBjcmVhdGUgYSBuZXN0ZWQgbGlzdCBpbiByb3ctbWFqb3Igb3JkZXJcbiAqIHdpdGggb25lIGdyb3VwIHBlciBjZWxsLiAgSWYgZ2l2ZW4gYW4gb3B0aW9uYWwgYXJndW1lbnQgc3R5bGVcbiAqIChcInRleHRcIiwgXCJkaXNwbGF5XCIsIGV0Yy4pLCB0aGVuIGVhY2ggY2VsbCBpcyBjYXN0IGludG8gdGhhdCBzdHlsZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VBcnJheShwYXJzZXIsIHJlc3VsdCwgc3R5bGUpIHtcbiAgICB2YXIgcm93ID0gW107XG4gICAgdmFyIGJvZHkgPSBbcm93XTtcbiAgICB2YXIgcm93R2FwcyA9IFtdO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgICAgIHZhciBjZWxsID0gcGFyc2VyLnBhcnNlRXhwcmVzc2lvbihmYWxzZSwgdW5kZWZpbmVkKTtcbiAgICAgICAgY2VsbCA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwib3JkZ3JvdXBcIiwgY2VsbCwgcGFyc2VyLm1vZGUpO1xuICAgICAgICBpZiAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNlbGwgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcInN0eWxpbmdcIiwge1xuICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogW2NlbGxdXG4gICAgICAgICAgICB9LCBwYXJzZXIubW9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcm93LnB1c2goY2VsbCk7XG4gICAgICAgIHZhciBuZXh0ID0gcGFyc2VyLm5leHRUb2tlbi50ZXh0O1xuICAgICAgICBpZiAobmV4dCA9PT0gXCImXCIpIHtcbiAgICAgICAgICAgIHBhcnNlci5jb25zdW1lKCk7XG4gICAgICAgIH0gZWxzZSBpZiAobmV4dCA9PT0gXCJcXFxcZW5kXCIpIHtcbiAgICAgICAgICAgIC8vIEFycmF5cyB0ZXJtaW5hdGUgbmV3bGluZXMgd2l0aCBgXFxjcmNyYCB3aGljaCBjb25zdW1lcyBhIGBcXGNyYCBpZlxuICAgICAgICAgICAgLy8gdGhlIGxhc3QgbGluZSBpcyBlbXB0eS5cbiAgICAgICAgICAgIHZhciBsYXN0Um93ID0gYm9keVtib2R5Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKGJvZHkubGVuZ3RoID4gMSAmJiBsYXN0Um93Lmxlbmd0aCA9PT0gMSAmJiBsYXN0Um93WzBdLnZhbHVlLnZhbHVlWzBdLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJvZHkucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09PSBcIlxcXFxcXFxcXCIgfHwgbmV4dCA9PT0gXCJcXFxcY3JcIikge1xuICAgICAgICAgICAgdmFyIGNyID0gcGFyc2VyLnBhcnNlRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIGlmICghY3IpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJGYWlsZWQgdG8gcGFyc2UgZnVuY3Rpb24gYWZ0ZXIgXCIgKyBuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvd0dhcHMucHVzaChjci52YWx1ZS5zaXplKTtcbiAgICAgICAgICAgIHJvdyA9IFtdO1xuICAgICAgICAgICAgYm9keS5wdXNoKHJvdyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJFeHBlY3RlZCAmIG9yIFxcXFxcXFxcIG9yIFxcXFxlbmRcIiwgcGFyc2VyLm5leHRUb2tlbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0LmJvZHkgPSBib2R5O1xuICAgIHJlc3VsdC5yb3dHYXBzID0gcm93R2FwcztcbiAgICByZXR1cm4gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10ocmVzdWx0LnR5cGUsIHJlc3VsdCwgcGFyc2VyLm1vZGUpO1xufVxuXG4vLyBEZWNpZGVzIG9uIGEgc3R5bGUgZm9yIGNlbGxzIGluIGFuIGFycmF5IGFjY29yZGluZyB0byB3aGV0aGVyIHRoZSBnaXZlblxuLy8gZW52aXJvbm1lbnQgbmFtZSBzdGFydHMgd2l0aCB0aGUgbGV0dGVyICdkJy5cbmZ1bmN0aW9uIGRDZWxsU3R5bGUoZW52TmFtZSkge1xuICAgIGlmIChlbnZOYW1lLnN1YnN0cigwLCAxKSA9PT0gXCJkXCIpIHtcbiAgICAgICAgcmV0dXJuIFwiZGlzcGxheVwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcInRleHRcIjtcbiAgICB9XG59XG5cbnZhciBodG1sQnVpbGRlciA9IGZ1bmN0aW9uIGh0bWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgdmFyIHIgPSB2b2lkIDA7XG4gICAgdmFyIGMgPSB2b2lkIDA7XG4gICAgdmFyIG5yID0gZ3JvdXAudmFsdWUuYm9keS5sZW5ndGg7XG4gICAgdmFyIG5jID0gMDtcbiAgICB2YXIgYm9keSA9IG5ldyBBcnJheShucik7XG5cbiAgICAvLyBIb3Jpem9udGFsIHNwYWNpbmdcbiAgICB2YXIgcHQgPSAxIC8gb3B0aW9ucy5mb250TWV0cmljcygpLnB0UGVyRW07XG4gICAgdmFyIGFycmF5Y29sc2VwID0gNSAqIHB0OyAvLyBcXGFycmF5Y29sc2VwIGluIGFydGljbGUuY2xzXG5cbiAgICAvLyBWZXJ0aWNhbCBzcGFjaW5nXG4gICAgdmFyIGJhc2VsaW5lc2tpcCA9IDEyICogcHQ7IC8vIHNlZSBzaXplMTAuY2xvXG4gICAgLy8gRGVmYXVsdCBcXGpvdCBmcm9tIGx0bWF0aC5kdHhcbiAgICAvLyBUT0RPKGVkZW1haW5lKTogYWxsb3cgb3ZlcnJpZGluZyBcXGpvdCB2aWEgXFxzZXRsZW5ndGggKCM2ODcpXG4gICAgdmFyIGpvdCA9IDMgKiBwdDtcbiAgICAvLyBEZWZhdWx0IFxcYXJyYXlzdHJldGNoIGZyb20gbHR0YWIuZHR4XG4gICAgLy8gVE9ETyhnYWdlcm4pOiBtYXkgZ2V0IHJlZGVmaW5lZCBvbmNlIHdlIGhhdmUgdXNlci1kZWZpbmVkIG1hY3Jvc1xuICAgIHZhciBhcnJheXN0cmV0Y2ggPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3V0aWxzX19bXCJhXCIgLyogZGVmYXVsdCAqL10uZGVmbHQoZ3JvdXAudmFsdWUuYXJyYXlzdHJldGNoLCAxKTtcbiAgICB2YXIgYXJyYXlza2lwID0gYXJyYXlzdHJldGNoICogYmFzZWxpbmVza2lwO1xuICAgIHZhciBhcnN0cnV0SGVpZ2h0ID0gMC43ICogYXJyYXlza2lwOyAvLyBcXHN0cnV0Ym94IGluIGx0ZnNzdHJjLmR0eCBhbmRcbiAgICB2YXIgYXJzdHJ1dERlcHRoID0gMC4zICogYXJyYXlza2lwOyAvLyBcXEBhcnN0cnV0Ym94IGluIGx0dGFiLmR0eFxuXG4gICAgdmFyIHRvdGFsSGVpZ2h0ID0gMDtcbiAgICBmb3IgKHIgPSAwOyByIDwgZ3JvdXAudmFsdWUuYm9keS5sZW5ndGg7ICsrcikge1xuICAgICAgICB2YXIgaW5yb3cgPSBncm91cC52YWx1ZS5ib2R5W3JdO1xuICAgICAgICB2YXIgX2hlaWdodCA9IGFyc3RydXRIZWlnaHQ7IC8vIFxcQGFycmF5IGFkZHMgYW4gXFxAYXJzdHJ1dFxuICAgICAgICB2YXIgX2RlcHRoID0gYXJzdHJ1dERlcHRoOyAvLyB0byBlYWNoIHRvdyAodmlhIHRoZSB0ZW1wbGF0ZSlcblxuICAgICAgICBpZiAobmMgPCBpbnJvdy5sZW5ndGgpIHtcbiAgICAgICAgICAgIG5jID0gaW5yb3cubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG91dHJvdyA9IG5ldyBBcnJheShpbnJvdy5sZW5ndGgpO1xuICAgICAgICBmb3IgKGMgPSAwOyBjIDwgaW5yb3cubGVuZ3RoOyArK2MpIHtcbiAgICAgICAgICAgIHZhciBlbHQgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX2J1aWxkSFRNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGlucm93W2NdLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChfZGVwdGggPCBlbHQuZGVwdGgpIHtcbiAgICAgICAgICAgICAgICBfZGVwdGggPSBlbHQuZGVwdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoX2hlaWdodCA8IGVsdC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBfaGVpZ2h0ID0gZWx0LmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dHJvd1tjXSA9IGVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBnYXAgPSAwO1xuICAgICAgICBpZiAoZ3JvdXAudmFsdWUucm93R2Fwc1tyXSkge1xuICAgICAgICAgICAgZ2FwID0gT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdW5pdHNfX1tcImFcIiAvKiBjYWxjdWxhdGVTaXplICovXSkoZ3JvdXAudmFsdWUucm93R2Fwc1tyXS52YWx1ZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICBpZiAoZ2FwID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIFxcQGFyZ2FycmF5Y3JcbiAgICAgICAgICAgICAgICBnYXAgKz0gYXJzdHJ1dERlcHRoO1xuICAgICAgICAgICAgICAgIGlmIChfZGVwdGggPCBnYXApIHtcbiAgICAgICAgICAgICAgICAgICAgX2RlcHRoID0gZ2FwOyAvLyBcXEB4YXJnYXJyYXljclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBnYXAgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEluIEFNUyBtdWx0aWxpbmUgZW52aXJvbm1lbnRzIHN1Y2ggYXMgYWxpZ25lZCBhbmQgZ2F0aGVyZWQsIHJvd3NcbiAgICAgICAgLy8gY29ycmVzcG9uZCB0byBsaW5lcyB0aGF0IGhhdmUgYWRkaXRpb25hbCBcXGpvdCBhZGRlZCB0byB0aGVcbiAgICAgICAgLy8gXFxiYXNlbGluZXNraXAgdmlhIFxcb3BlbnVwLlxuICAgICAgICBpZiAoZ3JvdXAudmFsdWUuYWRkSm90KSB7XG4gICAgICAgICAgICBfZGVwdGggKz0gam90O1xuICAgICAgICB9XG5cbiAgICAgICAgb3V0cm93LmhlaWdodCA9IF9oZWlnaHQ7XG4gICAgICAgIG91dHJvdy5kZXB0aCA9IF9kZXB0aDtcbiAgICAgICAgdG90YWxIZWlnaHQgKz0gX2hlaWdodDtcbiAgICAgICAgb3V0cm93LnBvcyA9IHRvdGFsSGVpZ2h0O1xuICAgICAgICB0b3RhbEhlaWdodCArPSBfZGVwdGggKyBnYXA7IC8vIFxcQHlhcmdhcnJheWNyXG4gICAgICAgIGJvZHlbcl0gPSBvdXRyb3c7XG4gICAgfVxuXG4gICAgdmFyIG9mZnNldCA9IHRvdGFsSGVpZ2h0IC8gMiArIG9wdGlvbnMuZm9udE1ldHJpY3MoKS5heGlzSGVpZ2h0O1xuICAgIHZhciBjb2xEZXNjcmlwdGlvbnMgPSBncm91cC52YWx1ZS5jb2xzIHx8IFtdO1xuICAgIHZhciBjb2xzID0gW107XG4gICAgdmFyIGNvbFNlcCA9IHZvaWQgMDtcbiAgICB2YXIgY29sRGVzY3JOdW0gPSB2b2lkIDA7XG4gICAgZm9yIChjID0gMCwgY29sRGVzY3JOdW0gPSAwO1xuICAgIC8vIENvbnRpbnVlIHdoaWxlIGVpdGhlciB0aGVyZSBhcmUgbW9yZSBjb2x1bW5zIG9yIG1vcmUgY29sdW1uXG4gICAgLy8gZGVzY3JpcHRpb25zLCBzbyB0cmFpbGluZyBzZXBhcmF0b3JzIGRvbid0IGdldCBsb3N0LlxuICAgIGMgPCBuYyB8fCBjb2xEZXNjck51bSA8IGNvbERlc2NyaXB0aW9ucy5sZW5ndGg7ICsrYywgKytjb2xEZXNjck51bSkge1xuXG4gICAgICAgIHZhciBjb2xEZXNjciA9IGNvbERlc2NyaXB0aW9uc1tjb2xEZXNjck51bV0gfHwge307XG5cbiAgICAgICAgdmFyIGZpcnN0U2VwYXJhdG9yID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKGNvbERlc2NyLnR5cGUgPT09IFwic2VwYXJhdG9yXCIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc2VwYXJhdG9yIGluIGEgcm93LCBhZGQgYSBzcGFjZVxuICAgICAgICAgICAgLy8gYmV0d2VlbiB0aGVtLlxuICAgICAgICAgICAgaWYgKCFmaXJzdFNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgIGNvbFNlcCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJhcnJheWNvbHNlcFwiXSwgW10pO1xuICAgICAgICAgICAgICAgIGNvbFNlcC5zdHlsZS53aWR0aCA9IG9wdGlvbnMuZm9udE1ldHJpY3MoKS5kb3VibGVSdWxlU2VwICsgXCJlbVwiO1xuICAgICAgICAgICAgICAgIGNvbHMucHVzaChjb2xTZXApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY29sRGVzY3Iuc2VwYXJhdG9yID09PSBcInxcIikge1xuICAgICAgICAgICAgICAgIHZhciBfc2VwYXJhdG9yID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19zdHJldGNoeV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLnJ1bGVTcGFuKFwidmVydGljYWwtc2VwYXJhdG9yXCIsIDAuMDUsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIF9zZXBhcmF0b3Iuc3R5bGUuaGVpZ2h0ID0gdG90YWxIZWlnaHQgKyBcImVtXCI7XG4gICAgICAgICAgICAgICAgX3NlcGFyYXRvci5zdHlsZS52ZXJ0aWNhbEFsaWduID0gLSh0b3RhbEhlaWdodCAtIG9mZnNldCkgKyBcImVtXCI7XG5cbiAgICAgICAgICAgICAgICBjb2xzLnB1c2goX3NlcGFyYXRvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIkludmFsaWQgc2VwYXJhdG9yIHR5cGU6IFwiICsgY29sRGVzY3Iuc2VwYXJhdG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29sRGVzY3JOdW0rKztcbiAgICAgICAgICAgIGNvbERlc2NyID0gY29sRGVzY3JpcHRpb25zW2NvbERlc2NyTnVtXSB8fCB7fTtcbiAgICAgICAgICAgIGZpcnN0U2VwYXJhdG9yID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYyA+PSBuYykge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2Vwd2lkdGggPSB2b2lkIDA7XG4gICAgICAgIGlmIChjID4gMCB8fCBncm91cC52YWx1ZS5oc2tpcEJlZm9yZUFuZEFmdGVyKSB7XG4gICAgICAgICAgICBzZXB3aWR0aCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kZWZsdChjb2xEZXNjci5wcmVnYXAsIGFycmF5Y29sc2VwKTtcbiAgICAgICAgICAgIGlmIChzZXB3aWR0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbFNlcCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJhcnJheWNvbHNlcFwiXSwgW10pO1xuICAgICAgICAgICAgICAgIGNvbFNlcC5zdHlsZS53aWR0aCA9IHNlcHdpZHRoICsgXCJlbVwiO1xuICAgICAgICAgICAgICAgIGNvbHMucHVzaChjb2xTZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbCA9IFtdO1xuICAgICAgICBmb3IgKHIgPSAwOyByIDwgbnI7ICsrcikge1xuICAgICAgICAgICAgdmFyIHJvdyA9IGJvZHlbcl07XG4gICAgICAgICAgICB2YXIgZWxlbSA9IHJvd1tjXTtcbiAgICAgICAgICAgIGlmICghZWxlbSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHNoaWZ0ID0gcm93LnBvcyAtIG9mZnNldDtcbiAgICAgICAgICAgIGVsZW0uZGVwdGggPSByb3cuZGVwdGg7XG4gICAgICAgICAgICBlbGVtLmhlaWdodCA9IHJvdy5oZWlnaHQ7XG4gICAgICAgICAgICBjb2wucHVzaCh7IHR5cGU6IFwiZWxlbVwiLCBlbGVtOiBlbGVtLCBzaGlmdDogc2hpZnQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb2wgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVZMaXN0KHtcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJpbmRpdmlkdWFsU2hpZnRcIixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjb2xcbiAgICAgICAgfSwgb3B0aW9ucyk7XG4gICAgICAgIGNvbCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJjb2wtYWxpZ24tXCIgKyAoY29sRGVzY3IuYWxpZ24gfHwgXCJjXCIpXSwgW2NvbF0pO1xuICAgICAgICBjb2xzLnB1c2goY29sKTtcblxuICAgICAgICBpZiAoYyA8IG5jIC0gMSB8fCBncm91cC52YWx1ZS5oc2tpcEJlZm9yZUFuZEFmdGVyKSB7XG4gICAgICAgICAgICBzZXB3aWR0aCA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fdXRpbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5kZWZsdChjb2xEZXNjci5wb3N0Z2FwLCBhcnJheWNvbHNlcCk7XG4gICAgICAgICAgICBpZiAoc2Vwd2lkdGggIT09IDApIHtcbiAgICAgICAgICAgICAgICBjb2xTZXAgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkQ29tbW9uX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWFrZVNwYW4oW1wiYXJyYXljb2xzZXBcIl0sIFtdKTtcbiAgICAgICAgICAgICAgICBjb2xTZXAuc3R5bGUud2lkdGggPSBzZXB3aWR0aCArIFwiZW1cIjtcbiAgICAgICAgICAgICAgICBjb2xzLnB1c2goY29sU2VwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBib2R5ID0gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19idWlsZENvbW1vbl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLm1ha2VTcGFuKFtcIm10YWJsZVwiXSwgY29scyk7XG4gICAgcmV0dXJuIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fYnVpbGRDb21tb25fX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYWtlU3BhbihbXCJtb3JkXCJdLCBbYm9keV0sIG9wdGlvbnMpO1xufTtcblxudmFyIG1hdGhtbEJ1aWxkZXIgPSBmdW5jdGlvbiBtYXRobWxCdWlsZGVyKGdyb3VwLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm10YWJsZVwiLCBncm91cC52YWx1ZS5ib2R5Lm1hcChmdW5jdGlvbiAocm93KSB7XG4gICAgICAgIHJldHVybiBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19tYXRoTUxUcmVlX19bXCJhXCIgLyogZGVmYXVsdCAqL10uTWF0aE5vZGUoXCJtdHJcIiwgcm93Lm1hcChmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5NYXRoTm9kZShcIm10ZFwiLCBbX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV85X19idWlsZE1hdGhNTF9fW1wiYlwiIC8qIGJ1aWxkR3JvdXAgKi9dKGNlbGwsIG9wdGlvbnMpXSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSk7XG59O1xuXG4vLyBDb252aW5pZW50IGZ1bmN0aW9uIGZvciBhbGlnbmVkIGFuZCBhbGlnbmVkYXQgZW52aXJvbm1lbnRzLlxudmFyIGFsaWduZWRIYW5kbGVyID0gZnVuY3Rpb24gYWxpZ25lZEhhbmRsZXIoY29udGV4dCwgYXJncykge1xuICAgIHZhciByZXMgPSB7XG4gICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgY29sczogW10sXG4gICAgICAgIGFkZEpvdDogdHJ1ZVxuICAgIH07XG4gICAgcmVzID0gcGFyc2VBcnJheShjb250ZXh0LnBhcnNlciwgcmVzLCBcImRpc3BsYXlcIik7XG5cbiAgICAvLyBEZXRlcm1pbmluZyBudW1iZXIgb2YgY29sdW1ucy5cbiAgICAvLyAxLiBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgZ2l2ZW4sIHdlIHVzZSBpdCBhcyBhIG51bWJlciBvZiBjb2x1bW5zLFxuICAgIC8vICAgIGFuZCBtYWtlcyBzdXJlIHRoYXQgZWFjaCByb3cgZG9lc24ndCBleGNlZWQgdGhhdCBudW1iZXIuXG4gICAgLy8gMi4gT3RoZXJ3aXNlLCBqdXN0IGNvdW50IG51bWJlciBvZiBjb2x1bW5zID0gbWF4aW11bSBudW1iZXJcbiAgICAvLyAgICBvZiBjZWxscyBpbiBlYWNoIHJvdyAoXCJhbGlnbmVkXCIgbW9kZSAtLSBpc0FsaWduZWQgd2lsbCBiZSB0cnVlKS5cbiAgICAvL1xuICAgIC8vIEF0IHRoZSBzYW1lIHRpbWUsIHByZXBlbmQgZW1wdHkgZ3JvdXAge30gYXQgYmVnaW5uaW5nIG9mIGV2ZXJ5IHNlY29uZFxuICAgIC8vIGNlbGwgaW4gZWFjaCByb3cgKHN0YXJ0aW5nIHdpdGggc2Vjb25kIGNlbGwpIHNvIHRoYXQgb3BlcmF0b3JzIGJlY29tZVxuICAgIC8vIGJpbmFyeS4gIFRoaXMgYmVoYXZpb3IgaXMgaW1wbGVtZW50ZWQgaW4gYW1zbWF0aCdzIFxcc3RhcnRAYWxpZ25lZC5cbiAgICB2YXIgbnVtTWF0aHMgPSB2b2lkIDA7XG4gICAgdmFyIG51bUNvbHMgPSAwO1xuICAgIHZhciBlbXB0eUdyb3VwID0gbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fUGFyc2VOb2RlX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJvcmRncm91cFwiLCBbXSwgY29udGV4dC5tb2RlKTtcbiAgICBpZiAoYXJnc1swXSAmJiBhcmdzWzBdLnZhbHVlKSB7XG4gICAgICAgIHZhciBhcmcwID0gXCJcIjtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzWzBdLnZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmcwICs9IGFyZ3NbMF0udmFsdWVbaV0udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbnVtTWF0aHMgPSBOdW1iZXIoYXJnMCk7XG4gICAgICAgIG51bUNvbHMgPSBudW1NYXRocyAqIDI7XG4gICAgfVxuICAgIHZhciBpc0FsaWduZWQgPSAhbnVtQ29scztcbiAgICByZXMudmFsdWUuYm9keS5mb3JFYWNoKGZ1bmN0aW9uIChyb3cpIHtcbiAgICAgICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IHJvdy5sZW5ndGg7IF9pICs9IDIpIHtcbiAgICAgICAgICAgIC8vIE1vZGlmeSBvcmRncm91cCBub2RlIHdpdGhpbiBzdHlsaW5nIG5vZGVcbiAgICAgICAgICAgIHZhciBvcmRncm91cCA9IHJvd1tfaV0udmFsdWUudmFsdWVbMF07XG4gICAgICAgICAgICBvcmRncm91cC52YWx1ZS51bnNoaWZ0KGVtcHR5R3JvdXApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNBbGlnbmVkKSB7XG4gICAgICAgICAgICAvLyBDYXNlIDFcbiAgICAgICAgICAgIHZhciBjdXJNYXRocyA9IHJvdy5sZW5ndGggLyAyO1xuICAgICAgICAgICAgaWYgKG51bU1hdGhzIDwgY3VyTWF0aHMpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJUb28gbWFueSBtYXRoIGluIGEgcm93OiBcIiArIChcImV4cGVjdGVkIFwiICsgbnVtTWF0aHMgKyBcIiwgYnV0IGdvdCBcIiArIGN1ck1hdGhzKSwgcm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChudW1Db2xzIDwgcm93Lmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gQ2FzZSAyXG4gICAgICAgICAgICBudW1Db2xzID0gcm93Lmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQWRqdXN0aW5nIGFsaWdubWVudC5cbiAgICAvLyBJbiBhbGlnbmVkIG1vZGUsIHdlIGFkZCBvbmUgXFxxcXVhZCBiZXR3ZWVuIGNvbHVtbnM7XG4gICAgLy8gb3RoZXJ3aXNlIHdlIGFkZCBub3RoaW5nLlxuICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IG51bUNvbHM7ICsrX2kyKSB7XG4gICAgICAgIHZhciBfYWxpZ24gPSBcInJcIjtcbiAgICAgICAgdmFyIF9wcmVnYXAgPSAwO1xuICAgICAgICBpZiAoX2kyICUgMiA9PT0gMSkge1xuICAgICAgICAgICAgX2FsaWduID0gXCJsXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoX2kyID4gMCAmJiBpc0FsaWduZWQpIHtcbiAgICAgICAgICAgIC8vIFwiYWxpZ25lZFwiIG1vZGUuXG4gICAgICAgICAgICBfcHJlZ2FwID0gMTsgLy8gYWRkIG9uZSBcXHF1YWRcbiAgICAgICAgfVxuICAgICAgICByZXMudmFsdWUuY29sc1tfaTJdID0ge1xuICAgICAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICAgICAgYWxpZ246IF9hbGlnbixcbiAgICAgICAgICAgIHByZWdhcDogX3ByZWdhcCxcbiAgICAgICAgICAgIHBvc3RnYXA6IDBcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbn07XG5cbi8vIEFycmF5cyBhcmUgcGFydCBvZiBMYVRlWCwgZGVmaW5lZCBpbiBsdHRhYi5kdHggc28gaXRzIGRvY3VtZW50YXRpb25cbi8vIGlzIHBhcnQgb2YgdGhlIHNvdXJjZTJlLnBkZiBmaWxlIG9mIExhVGVYMmUgc291cmNlIGRvY3VtZW50YXRpb24uXG4vLyB7ZGFycmF5fSBpcyBhbiB7YXJyYXl9IGVudmlyb25tZW50IHdoZXJlIGNlbGxzIGFyZSBzZXQgaW4gXFxkaXNwbGF5c3R5bGUsXG4vLyBhcyBkZWZpbmVkIGluIG5jY21hdGguc3R5LlxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRW52aXJvbm1lbnRfX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICBuYW1lczogW1wiYXJyYXlcIiwgXCJkYXJyYXlcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMVxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0LCBhcmdzKSB7XG4gICAgICAgIHZhciBjb2xhbGlnbiA9IGFyZ3NbMF07XG4gICAgICAgIGNvbGFsaWduID0gY29sYWxpZ24udmFsdWUubWFwID8gY29sYWxpZ24udmFsdWUgOiBbY29sYWxpZ25dO1xuICAgICAgICB2YXIgY29scyA9IGNvbGFsaWduLm1hcChmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICAgICAgdmFyIGNhID0gbm9kZS52YWx1ZTtcbiAgICAgICAgICAgIGlmIChcImxjclwiLmluZGV4T2YoY2EpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYWxpZ25cIixcbiAgICAgICAgICAgICAgICAgICAgYWxpZ246IGNhXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2EgPT09IFwifFwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzZXBhcmF0b3JcIixcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiBcInxcIlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJVbmtub3duIGNvbHVtbiBhbGlnbm1lbnQ6IFwiICsgbm9kZS52YWx1ZSwgbm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcmVzID0ge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgY29sczogY29scyxcbiAgICAgICAgICAgIGhza2lwQmVmb3JlQW5kQWZ0ZXI6IHRydWUgLy8gXFxAcHJlYW1ibGUgaW4gbHR0YWIuZHR4XG4gICAgICAgIH07XG4gICAgICAgIHJlcyA9IHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHJlcywgZENlbGxTdHlsZShjb250ZXh0LmVudk5hbWUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9LFxuICAgIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyXG59KTtcblxuLy8gVGhlIG1hdHJpeCBlbnZpcm9ubWVudHMgb2YgYW1zbWF0aCBidWlsZHMgb24gdGhlIGFycmF5IGVudmlyb25tZW50XG4vLyBvZiBMYVRlWCwgd2hpY2ggaXMgZGlzY3Vzc2VkIGFib3ZlLlxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRW52aXJvbm1lbnRfX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICBuYW1lczogW1wibWF0cml4XCIsIFwicG1hdHJpeFwiLCBcImJtYXRyaXhcIiwgXCJCbWF0cml4XCIsIFwidm1hdHJpeFwiLCBcIlZtYXRyaXhcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMFxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0KSB7XG4gICAgICAgIHZhciBkZWxpbWl0ZXJzID0ge1xuICAgICAgICAgICAgXCJtYXRyaXhcIjogbnVsbCxcbiAgICAgICAgICAgIFwicG1hdHJpeFwiOiBbXCIoXCIsIFwiKVwiXSxcbiAgICAgICAgICAgIFwiYm1hdHJpeFwiOiBbXCJbXCIsIFwiXVwiXSxcbiAgICAgICAgICAgIFwiQm1hdHJpeFwiOiBbXCJcXFxce1wiLCBcIlxcXFx9XCJdLFxuICAgICAgICAgICAgXCJ2bWF0cml4XCI6IFtcInxcIiwgXCJ8XCJdLFxuICAgICAgICAgICAgXCJWbWF0cml4XCI6IFtcIlxcXFxWZXJ0XCIsIFwiXFxcXFZlcnRcIl1cbiAgICAgICAgfVtjb250ZXh0LmVudk5hbWVdO1xuICAgICAgICB2YXIgcmVzID0ge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgaHNraXBCZWZvcmVBbmRBZnRlcjogZmFsc2UgLy8gXFxoc2tpcCAtXFxhcnJheWNvbHNlcCBpbiBhbXNtYXRoXG4gICAgICAgIH07XG4gICAgICAgIHJlcyA9IHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHJlcywgZENlbGxTdHlsZShjb250ZXh0LmVudk5hbWUpKTtcbiAgICAgICAgaWYgKGRlbGltaXRlcnMpIHtcbiAgICAgICAgICAgIHJlcyA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX1BhcnNlTm9kZV9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwibGVmdHJpZ2h0XCIsIHtcbiAgICAgICAgICAgICAgICBib2R5OiBbcmVzXSxcbiAgICAgICAgICAgICAgICBsZWZ0OiBkZWxpbWl0ZXJzWzBdLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBkZWxpbWl0ZXJzWzFdXG4gICAgICAgICAgICB9LCBjb250ZXh0Lm1vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfSxcbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8vIEEgY2FzZXMgZW52aXJvbm1lbnQgKGluIGFtc21hdGguc3R5KSBpcyBhbG1vc3QgZXF1aXZhbGVudCB0b1xuLy8gXFxkZWZcXGFycmF5c3RyZXRjaHsxLjJ9JVxuLy8gXFxsZWZ0XFx7XFxiZWdpbnthcnJheX17QHt9bEB7XFxxdWFkfWxAe319IOKApiBcXGVuZHthcnJheX1cXHJpZ2h0LlxuLy8ge2RjYXNlc30gaXMgYSB7Y2FzZXN9IGVudmlyb25tZW50IHdoZXJlIGNlbGxzIGFyZSBzZXQgaW4gXFxkaXNwbGF5c3R5bGUsXG4vLyBhcyBkZWZpbmVkIGluIG1hdGh0b29scy5zdHkuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVFbnZpcm9ubWVudF9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJhcnJheVwiLFxuICAgIG5hbWVzOiBbXCJjYXNlc1wiLCBcImRjYXNlc1wiXSxcbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAwXG4gICAgfSxcbiAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKGNvbnRleHQpIHtcbiAgICAgICAgdmFyIHJlcyA9IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGFycmF5c3RyZXRjaDogMS4yLFxuICAgICAgICAgICAgY29sczogW3tcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFsaWduXCIsXG4gICAgICAgICAgICAgICAgYWxpZ246IFwibFwiLFxuICAgICAgICAgICAgICAgIHByZWdhcDogMCxcbiAgICAgICAgICAgICAgICAvLyBUT0RPKGtldmluYikgZ2V0IHRoZSBjdXJyZW50IHN0eWxlLlxuICAgICAgICAgICAgICAgIC8vIEZvciBub3cgd2UgdXNlIHRoZSBtZXRyaWNzIGZvciBURVhUIHN0eWxlIHdoaWNoIGlzIHdoYXQgd2Ugd2VyZVxuICAgICAgICAgICAgICAgIC8vIGRvaW5nIGJlZm9yZS4gIEJlZm9yZSBhdHRlbXB0aW5nIHRvIGdldCB0aGUgY3VycmVudCBzdHlsZSB3ZVxuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBsb29rIGF0IFRlWCdzIGJlaGF2aW9yIGVzcGVjaWFsbHkgZm9yIFxcb3ZlciBhbmQgbWF0cmljZXMuXG4gICAgICAgICAgICAgICAgcG9zdGdhcDogMS4wIC8qIDFlbSBxdWFkICovXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJhbGlnblwiLFxuICAgICAgICAgICAgICAgIGFsaWduOiBcImxcIixcbiAgICAgICAgICAgICAgICBwcmVnYXA6IDAsXG4gICAgICAgICAgICAgICAgcG9zdGdhcDogMFxuICAgICAgICAgICAgfV1cbiAgICAgICAgfTtcbiAgICAgICAgcmVzID0gcGFyc2VBcnJheShjb250ZXh0LnBhcnNlciwgcmVzLCBkQ2VsbFN0eWxlKGNvbnRleHQuZW52TmFtZSkpO1xuICAgICAgICByZXMgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19QYXJzZU5vZGVfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcImxlZnRyaWdodFwiLCB7XG4gICAgICAgICAgICBib2R5OiBbcmVzXSxcbiAgICAgICAgICAgIGxlZnQ6IFwiXFxcXHtcIixcbiAgICAgICAgICAgIHJpZ2h0OiBcIi5cIlxuICAgICAgICB9LCBjb250ZXh0Lm1vZGUpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXJcbn0pO1xuXG4vLyBBbiBhbGlnbmVkIGVudmlyb25tZW50IGlzIGxpa2UgdGhlIGFsaWduKiBlbnZpcm9ubWVudFxuLy8gZXhjZXB0IGl0IG9wZXJhdGVzIHdpdGhpbiBtYXRoIG1vZGUuXG4vLyBOb3RlIHRoYXQgd2UgYXNzdW1lIFxcbm9tYWxsaW5lc2tpcGxpbWl0IHRvIGJlIHplcm8sXG4vLyBzbyB0aGF0IFxcc3RydXRAIGlzIHRoZSBzYW1lIGFzIFxcc3RydXQuXG5PYmplY3QoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVFbnZpcm9ubWVudF9fW1wiYlwiIC8qIGRlZmF1bHQgKi9dKSh7XG4gICAgdHlwZTogXCJhcnJheVwiLFxuICAgIG5hbWVzOiBbXCJhbGlnbmVkXCJdLFxuICAgIHByb3BzOiB7XG4gICAgICAgIG51bUFyZ3M6IDBcbiAgICB9LFxuICAgIGhhbmRsZXI6IGFsaWduZWRIYW5kbGVyLFxuICAgIGh0bWxCdWlsZGVyOiBodG1sQnVpbGRlcixcbiAgICBtYXRobWxCdWlsZGVyOiBtYXRobWxCdWlsZGVyXG59KTtcblxuLy8gQSBnYXRoZXJlZCBlbnZpcm9ubWVudCBpcyBsaWtlIGFuIGFycmF5IGVudmlyb25tZW50IHdpdGggb25lIGNlbnRlcmVkXG4vLyBjb2x1bW4sIGJ1dCB3aGVyZSByb3dzIGFyZSBjb25zaWRlcmVkIGxpbmVzIHNvIGdldCBcXGpvdCBsaW5lIHNwYWNpbmdcbi8vIGFuZCBjb250ZW50cyBhcmUgc2V0IGluIFxcZGlzcGxheXN0eWxlLlxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRW52aXJvbm1lbnRfX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICBuYW1lczogW1wiZ2F0aGVyZWRcIl0sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgbnVtQXJnczogMFxuICAgIH0sXG4gICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihjb250ZXh0KSB7XG4gICAgICAgIHZhciByZXMgPSB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBjb2xzOiBbe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYWxpZ25cIixcbiAgICAgICAgICAgICAgICBhbGlnbjogXCJjXCJcbiAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgYWRkSm90OiB0cnVlXG4gICAgICAgIH07XG4gICAgICAgIHJlcyA9IHBhcnNlQXJyYXkoY29udGV4dC5wYXJzZXIsIHJlcywgXCJkaXNwbGF5XCIpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH0sXG4gICAgaHRtbEJ1aWxkZXI6IGh0bWxCdWlsZGVyLFxuICAgIG1hdGhtbEJ1aWxkZXI6IG1hdGhtbEJ1aWxkZXJcbn0pO1xuXG4vLyBhbGlnbmF0IGVudmlyb25tZW50IGlzIGxpa2UgYW4gYWxpZ24gZW52aXJvbm1lbnQsIGJ1dCBvbmUgbXVzdCBleHBsaWNpdGx5XG4vLyBzcGVjaWZ5IG1heGltdW0gbnVtYmVyIG9mIGNvbHVtbnMgaW4gZWFjaCByb3csIGFuZCBjYW4gYWRqdXN0IHNwYWNpbmcgYmV0d2VlblxuLy8gZWFjaCBjb2x1bW5zLlxuT2JqZWN0KF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9fZGVmaW5lRW52aXJvbm1lbnRfX1tcImJcIiAvKiBkZWZhdWx0ICovXSkoe1xuICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICBuYW1lczogW1wiYWxpZ25lZGF0XCJdLFxuICAgIC8vIE9uZSBmb3IgbnVtYmVyZWQgYW5kIGZvciB1bm51bWJlcmVkO1xuICAgIC8vIGJ1dCwgS2FUZVggZG9lc24ndCBzdXBwb3J0cyBtYXRoIG51bWJlcmluZyB5ZXQsXG4gICAgLy8gdGhleSBtYWtlIG5vIGRpZmZlcmVuY2UgZm9yIG5vdy5cbiAgICBwcm9wczoge1xuICAgICAgICBudW1BcmdzOiAxXG4gICAgfSxcbiAgICBoYW5kbGVyOiBhbGlnbmVkSGFuZGxlcixcbiAgICBodG1sQnVpbGRlcjogaHRtbEJ1aWxkZXIsXG4gICAgbWF0aG1sQnVpbGRlcjogbWF0aG1sQnVpbGRlclxufSk7XG5cbi8qKiovIH0pLFxuLyogMTQ0ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMzUpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCA9IF9fd2VicGFja19yZXF1aXJlX18ubihfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18pO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTApO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5uKF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19MZXhlcl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2Mik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19Ub2tlbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19tYWNyb3NfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ2KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1BhcnNlRXJyb3JfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X29iamVjdF9hc3NpZ25fXyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ3KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfb2JqZWN0X2Fzc2lnbl9fX2RlZmF1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm4oX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X29iamVjdF9hc3NpZ25fXyk7XG5cblxuXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSDigJxndWxsZXTigJ0gd2hlcmUgbWFjcm9zIGFyZSBleHBhbmRlZFxuICogdW50aWwgb25seSBub24tbWFjcm8gdG9rZW5zIHJlbWFpbi5cbiAqL1xuXG5cblxuXG5cblxuXG5cbnZhciBNYWNyb0V4cGFuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE1hY3JvRXhwYW5kZXIoaW5wdXQsIG1hY3JvcywgbW9kZSkge1xuICAgICAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCgpKHRoaXMsIE1hY3JvRXhwYW5kZXIpO1xuXG4gICAgICAgIHRoaXMubGV4ZXIgPSBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19MZXhlcl9fW1wiY1wiIC8qIGRlZmF1bHQgKi9dKGlucHV0KTtcbiAgICAgICAgdGhpcy5tYWNyb3MgPSBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfb2JqZWN0X2Fzc2lnbl9fX2RlZmF1bHQoKSh7fSwgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19tYWNyb3NfX1tcImFcIiAvKiBkZWZhdWx0ICovXSwgbWFjcm9zKTtcbiAgICAgICAgdGhpcy5tb2RlID0gbW9kZTtcbiAgICAgICAgdGhpcy5zdGFjayA9IFtdOyAvLyBjb250YWlucyB0b2tlbnMgaW4gUkVWRVJTRSBvcmRlclxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN3aXRjaGVzIGJldHdlZW4gXCJ0ZXh0XCIgYW5kIFwibWF0aFwiIG1vZGVzLlxuICAgICAqL1xuXG5cbiAgICBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCgpKE1hY3JvRXhwYW5kZXIsIFt7XG4gICAgICAgIGtleTogXCJzd2l0Y2hNb2RlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBzd2l0Y2hNb2RlKG5ld01vZGUpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9IG5ld01vZGU7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgdG9wbW9zdCB0b2tlbiBvbiB0aGUgc3RhY2ssIHdpdGhvdXQgZXhwYW5kaW5nIGl0LlxuICAgICAgICAgKiBTaW1pbGFyIGluIGJlaGF2aW9yIHRvIFRlWCdzIGBcXGZ1dHVyZWxldGAuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZnV0dXJlXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBmdXR1cmUoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGFjay5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnB1c2hUb2tlbih0aGlzLmxleGVyLmxleCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVtb3ZlIGFuZCByZXR1cm4gdGhlIG5leHQgdW5leHBhbmRlZCB0b2tlbi5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJwb3BUb2tlblwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcG9wVG9rZW4oKSB7XG4gICAgICAgICAgICB0aGlzLmZ1dHVyZSgpOyAvLyBlbnN1cmUgbm9uLWVtcHR5IHN0YWNrXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFjay5wb3AoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGQgYSBnaXZlbiB0b2tlbiB0byB0aGUgdG9rZW4gc3RhY2suICBJbiBwYXJ0aWN1bGFyLCB0aGlzIGdldCBiZSB1c2VkXG4gICAgICAgICAqIHRvIHB1dCBiYWNrIGEgdG9rZW4gcmV0dXJuZWQgZnJvbSBvbmUgb2YgdGhlIG90aGVyIG1ldGhvZHMuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicHVzaFRva2VuXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBwdXNoVG9rZW4odG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc3RhY2sucHVzaCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogQXBwZW5kIGFuIGFycmF5IG9mIHRva2VucyB0byB0aGUgdG9rZW4gc3RhY2suXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwicHVzaFRva2Vuc1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcHVzaFRva2Vucyh0b2tlbnMpIHtcbiAgICAgICAgICAgIHZhciBfc3RhY2s7XG5cbiAgICAgICAgICAgIChfc3RhY2sgPSB0aGlzLnN0YWNrKS5wdXNoLmFwcGx5KF9zdGFjaywgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc190b0NvbnN1bWFibGVBcnJheV9fX2RlZmF1bHQoKSh0b2tlbnMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDb25zdW1lIGFsbCBmb2xsb3dpbmcgc3BhY2UgdG9rZW5zLCB3aXRob3V0IGV4cGFuc2lvbi5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJjb25zdW1lU3BhY2VzXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb25zdW1lU3BhY2VzKCkge1xuICAgICAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgICAgICAgIHZhciB0b2tlbiA9IHRoaXMuZnV0dXJlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT09IFwiIFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sucG9wKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbnN1bWUgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYXJndW1lbnRzIGZyb20gdGhlIHRva2VuIHN0cmVhbSxcbiAgICAgICAgICogYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nIGFycmF5IG9mIGFyZ3VtZW50cy5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJjb25zdW1lQXJnc1wiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gY29uc3VtZUFyZ3MobnVtQXJncykge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIC8vIG9idGFpbiBhcmd1bWVudHMsIGVpdGhlciBzaW5nbGUgdG9rZW4gb3IgYmFsYW5jZWQge+KApn0gZ3JvdXBcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtQXJnczsgKytpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lU3BhY2VzKCk7IC8vIGlnbm9yZSBzcGFjZXMgYmVmb3JlIGVhY2ggYXJndW1lbnRcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnRPZkFyZyA9IHRoaXMucG9wVG9rZW4oKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRPZkFyZy50ZXh0ID09PSBcIntcIikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXJnID0gW107XG4gICAgICAgICAgICAgICAgICAgIHZhciBkZXB0aCA9IDE7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChkZXB0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvayA9IHRoaXMucG9wVG9rZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZy5wdXNoKHRvayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9rLnRleHQgPT09IFwie1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKytkZXB0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rLnRleHQgPT09IFwifVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1kZXB0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodG9rLnRleHQgPT09IFwiRU9GXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJFbmQgb2YgaW5wdXQgaW4gbWFjcm8gYXJndW1lbnRcIiwgc3RhcnRPZkFyZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXJnLnBvcCgpOyAvLyByZW1vdmUgbGFzdCB9XG4gICAgICAgICAgICAgICAgICAgIGFyZy5yZXZlcnNlKCk7IC8vIGxpa2UgYWJvdmUsIHRvIGZpdCBpbiB3aXRoIHN0YWNrIG9yZGVyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbaV0gPSBhcmc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydE9mQXJnLnRleHQgPT09IFwiRU9GXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fUGFyc2VFcnJvcl9fW1wiYVwiIC8qIGRlZmF1bHQgKi9dKFwiRW5kIG9mIGlucHV0IGV4cGVjdGluZyBtYWNybyBhcmd1bWVudFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhcmdzW2ldID0gW3N0YXJ0T2ZBcmddO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhcmdzO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEV4cGFuZCB0aGUgbmV4dCB0b2tlbiBvbmx5IG9uY2UgaWYgcG9zc2libGUuXG4gICAgICAgICAqXG4gICAgICAgICAqIElmIHRoZSB0b2tlbiBpcyBleHBhbmRlZCwgdGhlIHJlc3VsdGluZyB0b2tlbnMgd2lsbCBiZSBwdXNoZWQgb250b1xuICAgICAgICAgKiB0aGUgc3RhY2sgaW4gcmV2ZXJzZSBvcmRlciBhbmQgd2lsbCBiZSByZXR1cm5lZCBhcyBhbiBhcnJheSxcbiAgICAgICAgICogYWxzbyBpbiByZXZlcnNlIG9yZGVyLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJZiBub3QsIHRoZSBuZXh0IHRva2VuIHdpbGwgYmUgcmV0dXJuZWQgd2l0aG91dCByZW1vdmluZyBpdFxuICAgICAgICAgKiBmcm9tIHRoZSBzdGFjay4gIFRoaXMgY2FzZSBjYW4gYmUgZGV0ZWN0ZWQgYnkgYSBgVG9rZW5gIHJldHVybiB2YWx1ZVxuICAgICAgICAgKiBpbnN0ZWFkIG9mIGFuIGBBcnJheWAgcmV0dXJuIHZhbHVlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBJbiBlaXRoZXIgY2FzZSwgdGhlIG5leHQgdG9rZW4gd2lsbCBiZSBvbiB0aGUgdG9wIG9mIHRoZSBzdGFjayxcbiAgICAgICAgICogb3IgdGhlIHN0YWNrIHdpbGwgYmUgZW1wdHkuXG4gICAgICAgICAqXG4gICAgICAgICAqIFVzZWQgdG8gaW1wbGVtZW50IGBleHBhbmRBZnRlckZ1dHVyZWAgYW5kIGBleHBhbmROZXh0VG9rZW5gLlxuICAgICAgICAgKlxuICAgICAgICAgKiBBdCB0aGUgbW9tZW50LCBtYWNybyBleHBhbnNpb24gZG9lc24ndCBoYW5kbGUgZGVsaW1pdGVkIG1hY3JvcyxcbiAgICAgICAgICogaS5lLiB0aGluZ3MgbGlrZSB0aG9zZSBkZWZpbmVkIGJ5IFxcZGVmXFxmb28jMVxcZW5ke+KApn0uXG4gICAgICAgICAqIFNlZSB0aGUgVGVYIGJvb2sgcGFnZSAyMDJmZi4gZm9yIGRldGFpbHMgb24gaG93IHRob3NlIHNob3VsZCBiZWhhdmUuXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZXhwYW5kT25jZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXhwYW5kT25jZSgpIHtcbiAgICAgICAgICAgIHZhciB0b3BUb2tlbiA9IHRoaXMucG9wVG9rZW4oKTtcbiAgICAgICAgICAgIHZhciBuYW1lID0gdG9wVG9rZW4udGV4dDtcbiAgICAgICAgICAgIHZhciBpc01hY3JvID0gbmFtZS5jaGFyQXQoMCkgPT09IFwiXFxcXFwiO1xuICAgICAgICAgICAgaWYgKGlzTWFjcm8gJiYgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19MZXhlcl9fW1wiYlwiIC8qIGNvbnRyb2xXb3JkUmVnZXggKi9dLnRlc3QobmFtZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBDb25zdW1lIGFsbCBzcGFjZXMgYWZ0ZXIgXFxtYWNybyAoYnV0IG5vdCBcXFxcLCBcXCcsIGV0Yy4pXG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdW1lU3BhY2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMubWFjcm9zLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gRnVsbHkgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICB0aGlzLnB1c2hUb2tlbih0b3BUb2tlbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvcFRva2VuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgX2dldEV4cGFuc2lvbjIgPSB0aGlzLl9nZXRFeHBhbnNpb24obmFtZSksXG4gICAgICAgICAgICAgICAgdG9rZW5zID0gX2dldEV4cGFuc2lvbjIudG9rZW5zLFxuICAgICAgICAgICAgICAgIG51bUFyZ3MgPSBfZ2V0RXhwYW5zaW9uMi5udW1BcmdzO1xuXG4gICAgICAgICAgICB2YXIgZXhwYW5zaW9uID0gdG9rZW5zO1xuICAgICAgICAgICAgaWYgKG51bUFyZ3MpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXJncyA9IHRoaXMuY29uc3VtZUFyZ3MobnVtQXJncyk7XG4gICAgICAgICAgICAgICAgLy8gcGFzdGUgYXJndW1lbnRzIGluIHBsYWNlIG9mIHRoZSBwbGFjZWhvbGRlcnNcbiAgICAgICAgICAgICAgICBleHBhbnNpb24gPSBleHBhbnNpb24uc2xpY2UoKTsgLy8gbWFrZSBhIHNoYWxsb3cgY29weVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSBleHBhbnNpb24ubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRvayA9IGV4cGFuc2lvbltpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvay50ZXh0ID09PSBcIiNcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19QYXJzZUVycm9yX19bXCJhXCIgLyogZGVmYXVsdCAqL10oXCJJbmNvbXBsZXRlIHBsYWNlaG9sZGVyIGF0IGVuZCBvZiBtYWNybyBib2R5XCIsIHRvayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2sgPSBleHBhbnNpb25bLS1pXTsgLy8gbmV4dCB0b2tlbiBvbiBzdGFja1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRvay50ZXh0ID09PSBcIiNcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICMjIOKGkiAjXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uLnNwbGljZShpICsgMSwgMSk7IC8vIGRyb3AgZmlyc3QgI1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXlsxLTldJC8udGVzdCh0b2sudGV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2V4cGFuc2lvbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgdGhlIHBsYWNlaG9sZGVyIHdpdGggdGhlIGluZGljYXRlZCBhcmd1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfZXhwYW5zaW9uID0gZXhwYW5zaW9uKS5zcGxpY2UuYXBwbHkoX2V4cGFuc2lvbiwgW2ksIDJdLmNvbmNhdChfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCgpKGFyZ3NbK3Rvay50ZXh0IC0gMV0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX1BhcnNlRXJyb3JfX1tcImFcIiAvKiBkZWZhdWx0ICovXShcIk5vdCBhIHZhbGlkIGFyZ3VtZW50IG51bWJlclwiLCB0b2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ29uY2F0ZW5hdGUgZXhwYW5zaW9uIG9udG8gdG9wIG9mIHN0YWNrLlxuICAgICAgICAgICAgdGhpcy5wdXNoVG9rZW5zKGV4cGFuc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gZXhwYW5zaW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEV4cGFuZCB0aGUgbmV4dCB0b2tlbiBvbmx5IG9uY2UgKGlmIHBvc3NpYmxlKSwgYW5kIHJldHVybiB0aGUgcmVzdWx0aW5nXG4gICAgICAgICAqIHRvcCB0b2tlbiBvbiB0aGUgc3RhY2sgKHdpdGhvdXQgcmVtb3ZpbmcgYW55dGhpbmcgZnJvbSB0aGUgc3RhY2spLlxuICAgICAgICAgKiBTaW1pbGFyIGluIGJlaGF2aW9yIHRvIFRlWCdzIGBcXGV4cGFuZGFmdGVyXFxmdXR1cmVsZXRgLlxuICAgICAgICAgKiBFcXVpdmFsZW50IHRvIGV4cGFuZE9uY2UoKSBmb2xsb3dlZCBieSBmdXR1cmUoKS5cbiAgICAgICAgICovXG5cbiAgICB9LCB7XG4gICAgICAgIGtleTogXCJleHBhbmRBZnRlckZ1dHVyZVwiLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gZXhwYW5kQWZ0ZXJGdXR1cmUoKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZE9uY2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZ1dHVyZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlY3Vyc2l2ZWx5IGV4cGFuZCBmaXJzdCB0b2tlbiwgdGhlbiByZXR1cm4gZmlyc3Qgbm9uLWV4cGFuZGFibGUgdG9rZW4uXG4gICAgICAgICAqL1xuXG4gICAgfSwge1xuICAgICAgICBrZXk6IFwiZXhwYW5kTmV4dFRva2VuXCIsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBleHBhbmROZXh0VG9rZW4oKSB7XG4gICAgICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgICAgICAgdmFyIGV4cGFuZGVkID0gdGhpcy5leHBhbmRPbmNlKCk7XG4gICAgICAgICAgICAgICAgLy8gZXhwYW5kT25jZSByZXR1cm5zIFRva2VuIGlmIGFuZCBvbmx5IGlmIGl0J3MgZnVsbHkgZXhwYW5kZWQuXG4gICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkIGluc3RhbmNlb2YgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19Ub2tlbl9fW1wiYVwiIC8qIFRva2VuICovXSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBcXHJlbGF4IHN0b3BzIHRoZSBleHBhbnNpb24sIGJ1dCBzaG91bGRuJ3QgZ2V0IHJldHVybmVkIChhXG4gICAgICAgICAgICAgICAgICAgIC8vIG51bGwgcmV0dXJuIHZhbHVlIGNvdWxkbid0IGdldCBpbXBsZW1lbnRlZCBhcyBhIGZ1bmN0aW9uKS5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4cGFuZGVkLnRleHQgPT09IFwiXFxcXHJlbGF4XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sucG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFjay5wb3AoKTsgLy8gPT09IGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEZsb3cgdW5hYmxlIHRvIGZpZ3VyZSBvdXQgdGhhdCB0aGlzIHBhdGh3YXkgaXMgaW1wb3NzaWJsZS5cbiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy80ODA4XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnJlYWNoYWJsZVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGV4cGFuZGVkIG1hY3JvIGFzIGEgcmV2ZXJzZWQgYXJyYXkgb2YgdG9rZW5zIGFuZCBhIG1hY3JvXG4gICAgICAgICAqIGFyZ3VtZW50IGNvdW50LlxuICAgICAgICAgKiBDYWNoZXMgbWFjcm8gZXhwYW5zaW9ucyBmb3IgdGhvc2UgdGhhdCB3ZXJlIGRlZmluZWQgc2ltcGxlIFRlWCBzdHJpbmdzLlxuICAgICAgICAgKi9cblxuICAgIH0sIHtcbiAgICAgICAga2V5OiBcIl9nZXRFeHBhbnNpb25cIixcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9nZXRFeHBhbnNpb24obmFtZSkge1xuICAgICAgICAgICAgdmFyIGRlZmluaXRpb24gPSB0aGlzLm1hY3Jvc1tuYW1lXTtcbiAgICAgICAgICAgIHZhciBleHBhbnNpb24gPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiID8gZGVmaW5pdGlvbih0aGlzKSA6IGRlZmluaXRpb247XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4cGFuc2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHZhciBudW1BcmdzID0gMDtcbiAgICAgICAgICAgICAgICBpZiAoZXhwYW5zaW9uLmluZGV4T2YoXCIjXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RyaXBwZWQgPSBleHBhbnNpb24ucmVwbGFjZSgvIyMvZywgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdHJpcHBlZC5pbmRleE9mKFwiI1wiICsgKG51bUFyZ3MgKyAxKSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICArK251bUFyZ3M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGJvZHlMZXhlciA9IG5ldyBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX0xleGVyX19bXCJjXCIgLyogZGVmYXVsdCAqL10oZXhwYW5zaW9uKTtcbiAgICAgICAgICAgICAgICB2YXIgdG9rZW5zID0gW107XG4gICAgICAgICAgICAgICAgdmFyIHRvayA9IGJvZHlMZXhlci5sZXgoKTtcbiAgICAgICAgICAgICAgICB3aGlsZSAodG9rLnRleHQgIT09IFwiRU9GXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2godG9rKTtcbiAgICAgICAgICAgICAgICAgICAgdG9rID0gYm9keUxleGVyLmxleCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b2tlbnMucmV2ZXJzZSgpOyAvLyB0byBmaXQgaW4gd2l0aCBzdGFjayB1c2luZyBwdXNoIGFuZCBwb3BcbiAgICAgICAgICAgICAgICB2YXIgZXhwYW5kZWQgPSB7IHRva2VuczogdG9rZW5zLCBudW1BcmdzOiBudW1BcmdzIH07XG4gICAgICAgICAgICAgICAgLy8gQ2Fubm90IGNhY2hlIGEgbWFjcm8gZGVmaW5lZCB1c2luZyBhIGZ1bmN0aW9uIHNpbmNlIGl0IHJlbGllcyBvblxuICAgICAgICAgICAgICAgIC8vIHBhcnNlciBjb250ZXh0LlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFjcm9zW25hbWVdID0gZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBleHBhbmRlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGV4cGFuc2lvbjtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBNYWNyb0V4cGFuZGVyO1xufSgpO1xuXG4vKiBoYXJtb255IGRlZmF1bHQgZXhwb3J0ICovIF9fd2VicGFja19leHBvcnRzX19bXCJhXCJdID0gKE1hY3JvRXhwYW5kZXIpO1xuXG4vKioqLyB9KSxcbi8qIDE0NSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5mdW5jdGlvbiBnZXRSZWxvY2F0YWJsZShyZSkge1xuICAvLyBJbiB0aGUgZnV0dXJlLCB0aGlzIGNvdWxkIHVzZSBhIFdlYWtNYXAgaW5zdGVhZCBvZiBhbiBleHBhbmRvLlxuICBpZiAoIXJlLl9fbWF0Y2hBdFJlbG9jYXRhYmxlKSB7XG4gICAgLy8gRGlzanVuY3Rpb25zIGFyZSB0aGUgbG93ZXN0LXByZWNlZGVuY2Ugb3BlcmF0b3IsIHNvIHdlIGNhbiBtYWtlIGFueVxuICAgIC8vIHBhdHRlcm4gbWF0Y2ggdGhlIGVtcHR5IHN0cmluZyBieSBhcHBlbmRpbmcgYHwoKWAgdG8gaXQ6XG4gICAgLy8gaHR0cHM6Ly9wZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWwjc2VjLXBhdHRlcm5zXG4gICAgdmFyIHNvdXJjZSA9IHJlLnNvdXJjZSArICd8KCknO1xuXG4gICAgLy8gV2UgYWx3YXlzIG1ha2UgdGhlIG5ldyByZWdleCBnbG9iYWwuXG4gICAgdmFyIGZsYWdzID0gJ2cnICsgKHJlLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgKyAocmUubXVsdGlsaW5lID8gJ20nIDogJycpICsgKHJlLnVuaWNvZGUgPyAndScgOiAnJylcbiAgICAvLyBzdGlja3kgKC8uLi4veSkgZG9lc24ndCBtYWtlIHNlbnNlIGluIGNvbmp1bmN0aW9uIHdpdGggb3VyIHJlbG9jYXRpb25cbiAgICAvLyBsb2dpYywgc28gd2UgaWdub3JlIGl0IGhlcmUuXG4gICAgO1xuXG4gICAgcmUuX19tYXRjaEF0UmVsb2NhdGFibGUgPSBuZXcgUmVnRXhwKHNvdXJjZSwgZmxhZ3MpO1xuICB9XG4gIHJldHVybiByZS5fX21hdGNoQXRSZWxvY2F0YWJsZTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hBdChyZSwgc3RyLCBwb3MpIHtcbiAgaWYgKHJlLmdsb2JhbCB8fCByZS5zdGlja3kpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21hdGNoQXQoLi4uKTogT25seSBub24tZ2xvYmFsIHJlZ2V4ZXMgYXJlIHN1cHBvcnRlZCcpO1xuICB9XG4gIHZhciByZWxvYyA9IGdldFJlbG9jYXRhYmxlKHJlKTtcbiAgcmVsb2MubGFzdEluZGV4ID0gcG9zO1xuICB2YXIgbWF0Y2ggPSByZWxvYy5leGVjKHN0cik7XG4gIC8vIExhc3QgY2FwdHVyaW5nIGdyb3VwIGlzIG91ciBzZW50aW5lbCB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSByZWdleFxuICAvLyBtYXRjaGVkIGF0IHRoZSBnaXZlbiBsb2NhdGlvbi5cbiAgaWYgKG1hdGNoW21hdGNoLmxlbmd0aCAtIDFdID09IG51bGwpIHtcbiAgICAvLyBPcmlnaW5hbCByZWdleCBtYXRjaGVkLlxuICAgIG1hdGNoLmxlbmd0aCA9IG1hdGNoLmxlbmd0aCAtIDE7XG4gICAgcmV0dXJuIG1hdGNoO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWF0Y2hBdDtcblxuLyoqKi8gfSksXG4vKiAxNDYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIF9fd2VicGFja19leHBvcnRzX18sIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiB1bnVzZWQgaGFybW9ueSBleHBvcnQgZGVmaW5lTWFjcm8gKi9cbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3N1Ym1vZHVsZXNfa2F0ZXhfZm9udHNfZm9udE1ldHJpY3NEYXRhX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU5KTtcbi8qIGhhcm1vbnkgaW1wb3J0ICovIHZhciBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3N5bWJvbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuLyogaGFybW9ueSBpbXBvcnQgKi8gdmFyIF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fdXRpbHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7XG4vKiBoYXJtb255IGltcG9ydCAqLyB2YXIgX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19Ub2tlbl9fID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cbi8qKlxuICogUHJlZGVmaW5lZCBtYWNyb3MgZm9yIEthVGVYLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBkZWZpbmUgc29tZSBjb21tYW5kcyBpbiB0ZXJtcyBvZiBvdGhlcnMuXG4gKi9cblxuXG5cblxuXG5cbi8qKlxuICogUHJvdmlkZXMgY29udGV4dCB0byBtYWNyb3MgZGVmaW5lZCBieSBmdW5jdGlvbnMuIEltcGxlbWVudGVkIGJ5XG4gKiBNYWNyb0V4cGFuZGVyLlxuICovXG5cblxuLyoqIE1hY3JvIHRva2VucyAoaW4gcmV2ZXJzZSBvcmRlcikuICovXG5cblxudmFyIGJ1aWx0aW5NYWNyb3MgPSB7fTtcbi8qIGhhcm1vbnkgZGVmYXVsdCBleHBvcnQgKi8gX193ZWJwYWNrX2V4cG9ydHNfX1tcImFcIl0gPSAoYnVpbHRpbk1hY3Jvcyk7XG5cbi8vIFRoaXMgZnVuY3Rpb24gbWlnaHQgb25lIGRheSBhY2NlcHQgYW4gYWRkaXRpb25hbCBhcmd1bWVudCBhbmQgZG8gbW9yZSB0aGluZ3MuXG5mdW5jdGlvbiBkZWZpbmVNYWNybyhuYW1lLCBib2R5KSB7XG4gICAgYnVpbHRpbk1hY3Jvc1tuYW1lXSA9IGJvZHk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG1hY3JvIHRvb2xzXG5cbi8vIExhVGVYJ3MgXFxAZmlyc3RvZnR3b3sjMX17IzJ9IGV4cGFuZHMgdG8gIzEsIHNraXBwaW5nICMyXG4vLyBUZVggc291cmNlOiBcXGxvbmdcXGRlZlxcQGZpcnN0b2Z0d28jMSMyeyMxfVxuZGVmaW5lTWFjcm8oXCJcXFxcQGZpcnN0b2Z0d29cIiwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICB2YXIgYXJncyA9IGNvbnRleHQuY29uc3VtZUFyZ3MoMik7XG4gICAgcmV0dXJuIHsgdG9rZW5zOiBhcmdzWzBdLCBudW1BcmdzOiAwIH07XG59KTtcblxuLy8gTGFUZVgncyBcXEBzZWNvbmRvZnR3b3sjMX17IzJ9IGV4cGFuZHMgdG8gIzIsIHNraXBwaW5nICMxXG4vLyBUZVggc291cmNlOiBcXGxvbmdcXGRlZlxcQHNlY29uZG9mdHdvIzEjMnsjMn1cbmRlZmluZU1hY3JvKFwiXFxcXEBzZWNvbmRvZnR3b1wiLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBhcmdzID0gY29udGV4dC5jb25zdW1lQXJncygyKTtcbiAgICByZXR1cm4geyB0b2tlbnM6IGFyZ3NbMV0sIG51bUFyZ3M6IDAgfTtcbn0pO1xuXG4vLyBMYVRlWCdzIFxcQGlmbmV4dGNoYXJ7IzF9eyMyfXsjM30gbG9va3MgYWhlYWQgdG8gdGhlIG5leHQgKHVuZXhwYW5kZWQpXG4vLyBzeW1ib2wuICBJZiBpdCBtYXRjaGVzICMxLCB0aGVuIHRoZSBtYWNybyBleHBhbmRzIHRvICMyOyBvdGhlcndpc2UsICMzLlxuLy8gTm90ZSwgaG93ZXZlciwgdGhhdCBpdCBkb2VzIG5vdCBjb25zdW1lIHRoZSBuZXh0IHN5bWJvbCBpbiBlaXRoZXIgY2FzZS5cbmRlZmluZU1hY3JvKFwiXFxcXEBpZm5leHRjaGFyXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgdmFyIGFyZ3MgPSBjb250ZXh0LmNvbnN1bWVBcmdzKDMpOyAvLyBzeW1ib2wsIGlmLCBlbHNlXG4gICAgdmFyIG5leHRUb2tlbiA9IGNvbnRleHQuZnV0dXJlKCk7XG4gICAgaWYgKGFyZ3NbMF0ubGVuZ3RoID09PSAxICYmIGFyZ3NbMF1bMF0udGV4dCA9PT0gbmV4dFRva2VuLnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHsgdG9rZW5zOiBhcmdzWzFdLCBudW1BcmdzOiAwIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgdG9rZW5zOiBhcmdzWzJdLCBudW1BcmdzOiAwIH07XG4gICAgfVxufSk7XG5cbi8vIExhVGVYJ3MgXFxAaWZzdGFyeyMxfXsjMn0gbG9va3MgYWhlYWQgdG8gdGhlIG5leHQgKHVuZXhwYW5kZWQpIHN5bWJvbC5cbi8vIElmIGl0IGlzIGAqYCwgdGhlbiBpdCBjb25zdW1lcyB0aGUgc3ltYm9sLCBhbmQgdGhlIG1hY3JvIGV4cGFuZHMgdG8gIzE7XG4vLyBvdGhlcndpc2UsIHRoZSBtYWNybyBleHBhbmRzIHRvICMyICh3aXRob3V0IGNvbnN1bWluZyB0aGUgc3ltYm9sKS5cbi8vIFRlWCBzb3VyY2U6IFxcZGVmXFxAaWZzdGFyIzF7XFxAaWZuZXh0Y2hhciAqe1xcQGZpcnN0b2Z0d297IzF9fX1cbmRlZmluZU1hY3JvKFwiXFxcXEBpZnN0YXJcIiwgXCJcXFxcQGlmbmV4dGNoYXIgKntcXFxcQGZpcnN0b2Z0d297IzF9fVwiKTtcblxuLy8gTGFUZVgncyBcXFRleHRPck1hdGh7IzF9eyMyfSBleHBhbmRzIHRvICMxIGluIHRleHQgbW9kZSwgIzIgaW4gbWF0aCBtb2RlXG5kZWZpbmVNYWNybyhcIlxcXFxUZXh0T3JNYXRoXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgdmFyIGFyZ3MgPSBjb250ZXh0LmNvbnN1bWVBcmdzKDIpO1xuICAgIGlmIChjb250ZXh0Lm1vZGUgPT09ICd0ZXh0Jykge1xuICAgICAgICByZXR1cm4geyB0b2tlbnM6IGFyZ3NbMF0sIG51bUFyZ3M6IDAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4geyB0b2tlbnM6IGFyZ3NbMV0sIG51bUFyZ3M6IDAgfTtcbiAgICB9XG59KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gR3JvdXBpbmdcbi8vIFxcbGV0XFxiZ3JvdXA9eyBcXGxldFxcZWdyb3VwPX1cbmRlZmluZU1hY3JvKFwiXFxcXGJncm91cFwiLCBcIntcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxlZ3JvdXBcIiwgXCJ9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYmVnaW5ncm91cFwiLCBcIntcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxlbmRncm91cFwiLCBcIn1cIik7XG5cbi8vIFN5bWJvbHMgZnJvbSBsYXRleC5sdHg6XG4vLyBcXGRlZlxcbHF7YH1cbi8vIFxcZGVmXFxycXsnfVxuLy8gXFxkZWZcXGxicmFja3tbfVxuLy8gXFxkZWZcXHJicmFja3tdfVxuLy8gXFxkZWYgXFxhYSB7XFxyIGF9XG4vLyBcXGRlZiBcXEFBIHtcXHIgQX1cbmRlZmluZU1hY3JvKFwiXFxcXGxxXCIsIFwiYFwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHJxXCIsIFwiJ1wiKTtcbmRlZmluZU1hY3JvKFwiXFxcXGxicmFja1wiLCBcIltcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxyYnJhY2tcIiwgXCJdXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYWFcIiwgXCJcXFxcciBhXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcQUFcIiwgXCJcXFxcciBBXCIpO1xuXG4vLyBVbmljb2RlIGRvdWJsZS1zdHJ1Y2sgbGV0dGVyc1xuZGVmaW5lTWFjcm8oXCJcXHUyMTAyXCIsIFwiXFxcXG1hdGhiYntDfVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjEwRFwiLCBcIlxcXFxtYXRoYmJ7SH1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIxMTVcIiwgXCJcXFxcbWF0aGJie059XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMTE5XCIsIFwiXFxcXG1hdGhiYntQfVwiKTtcbmRlZmluZU1hY3JvKFwiXFx1MjExQVwiLCBcIlxcXFxtYXRoYmJ7UX1cIik7XG5kZWZpbmVNYWNybyhcIlxcdTIxMURcIiwgXCJcXFxcbWF0aGJie1J9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXHUyMTI0XCIsIFwiXFxcXG1hdGhiYntafVwiKTtcblxuLy8gVW5pY29kZSBtaWRkbGUgZG90XG4vLyBUaGUgS2FUZVggZm9udHMgZG8gbm90IGNvbnRhaW4gVSswMEI3LiBJbnN0ZWFkLCBcXGNkb3RwIGRpc3BsYXlzXG4vLyB0aGUgZG90IGF0IFUrMjJDNSBhbmQgZ2l2ZXMgaXQgcHVuY3Qgc3BhY2luZy5cbmRlZmluZU1hY3JvKFwiXFx4QjdcIiwgXCJcXFxcY2RvdHBcIik7XG5cbi8vIFxcbGxhcCBhbmQgXFxybGFwIHJlbmRlciB0aGVpciBjb250ZW50cyBpbiB0ZXh0IG1vZGVcbmRlZmluZU1hY3JvKFwiXFxcXGxsYXBcIiwgXCJcXFxcbWF0aGxsYXB7XFxcXHRleHRybXsjMX19XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxccmxhcFwiLCBcIlxcXFxtYXRocmxhcHtcXFxcdGV4dHJteyMxfX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjbGFwXCIsIFwiXFxcXG1hdGhjbGFwe1xcXFx0ZXh0cm17IzF9fVwiKTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYW1zbWF0aC5zdHlcbi8vIGh0dHA6Ly9taXJyb3JzLmNvbmNlcnRwYXNzLmNvbS90ZXgtYXJjaGl2ZS9tYWNyb3MvbGF0ZXgvcmVxdWlyZWQvYW1zbWF0aC9hbXNtYXRoLnBkZlxuXG4vLyBJdGFsaWMgR3JlZWsgY2FwaXRhbCBsZXR0ZXJzLiAgQU1TIGRlZmluZXMgdGhlc2Ugd2l0aCBcXERlY2xhcmVNYXRoU3ltYm9sLFxuLy8gYnV0IHRoZXkgYXJlIGVxdWl2YWxlbnQgdG8gXFxtYXRoaXR7XFxMZXR0ZXJ9LlxuZGVmaW5lTWFjcm8oXCJcXFxcdmFyR2FtbWFcIiwgXCJcXFxcbWF0aGl0e1xcXFxHYW1tYX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJEZWx0YVwiLCBcIlxcXFxtYXRoaXR7XFxcXERlbHRhfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhclRoZXRhXCIsIFwiXFxcXG1hdGhpdHtcXFxcVGhldGF9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyTGFtYmRhXCIsIFwiXFxcXG1hdGhpdHtcXFxcTGFtYmRhfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhclhpXCIsIFwiXFxcXG1hdGhpdHtcXFxcWGl9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyUGlcIiwgXCJcXFxcbWF0aGl0e1xcXFxQaX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJTaWdtYVwiLCBcIlxcXFxtYXRoaXR7XFxcXFNpZ21hfVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhclVwc2lsb25cIiwgXCJcXFxcbWF0aGl0e1xcXFxVcHNpbG9ufVwiKTtcbmRlZmluZU1hY3JvKFwiXFxcXHZhclBoaVwiLCBcIlxcXFxtYXRoaXR7XFxcXFBoaX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx2YXJQc2lcIiwgXCJcXFxcbWF0aGl0e1xcXFxQc2l9XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcdmFyT21lZ2FcIiwgXCJcXFxcbWF0aGl0e1xcXFxPbWVnYX1cIik7XG5cbi8vIFxcZGVmXFxvdmVyc2V0IzEjMntcXGJpbnJlbEB7IzJ9XFxiaW5yZWxAQHtcXG1hdGhvcHtcXGtlcm5cXHpAIzJ9XFxsaW1pdHNeeyMxfX19XG5kZWZpbmVNYWNybyhcIlxcXFxvdmVyc2V0XCIsIFwiXFxcXG1hdGhvcHsjMn1cXFxcbGltaXRzXnsjMX1cIik7XG5kZWZpbmVNYWNybyhcIlxcXFx1bmRlcnNldFwiLCBcIlxcXFxtYXRob3B7IzJ9XFxcXGxpbWl0c197IzF9XCIpO1xuXG4vLyBcXG5ld2NvbW1hbmR7XFxib3hlZH1bMV17XFxmYm94e1xcbUB0aCRcXGRpc3BsYXlzdHlsZSMxJH19XG5kZWZpbmVNYWNybyhcIlxcXFxib3hlZFwiLCBcIlxcXFxmYm94e1xcXFxkaXNwbGF5c3R5bGV7IzF9fVwiKTtcblxuLy8gXFxkZWZcXGlmZntcXERPVFNCXFw7XFxMb25nbGVmdHJpZ2h0YXJyb3dcXDt9XG4vLyBcXGRlZlxcaW1wbGllc3tcXERPVFNCXFw7XFxMb25ncmlnaHRhcnJvd1xcO31cbi8vIFxcZGVmXFxpbXBsaWVkYnl7XFxET1RTQlxcO1xcTG9uZ2xlZnRhcnJvd1xcO31cbmRlZmluZU1hY3JvKFwiXFxcXGlmZlwiLCBcIlxcXFxET1RTQlxcXFw7XFxcXExvbmdsZWZ0cmlnaHRhcnJvd1xcXFw7XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcaW1wbGllc1wiLCBcIlxcXFxET1RTQlxcXFw7XFxcXExvbmdyaWdodGFycm93XFxcXDtcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxpbXBsaWVkYnlcIiwgXCJcXFxcRE9UU0JcXFxcO1xcXFxMb25nbGVmdGFycm93XFxcXDtcIik7XG5cbi8vIEFNU01hdGgncyBhdXRvbWF0aWMgXFxkb3RzLCBiYXNlZCBvbiBcXG1kb3RzQEAgbWFjcm8uXG52YXIgZG90c0J5VG9rZW4gPSB7XG4gICAgJywnOiAnXFxcXGRvdHNjJyxcbiAgICAnXFxcXG5vdCc6ICdcXFxcZG90c2InLFxuICAgIC8vIFxca2V5YmluQCBjaGVja3MgZm9yIHRoZSBmb2xsb3dpbmc6XG4gICAgJysnOiAnXFxcXGRvdHNiJyxcbiAgICAnPSc6ICdcXFxcZG90c2InLFxuICAgICc8JzogJ1xcXFxkb3RzYicsXG4gICAgJz4nOiAnXFxcXGRvdHNiJyxcbiAgICAnLSc6ICdcXFxcZG90c2InLFxuICAgICcqJzogJ1xcXFxkb3RzYicsXG4gICAgJzonOiAnXFxcXGRvdHNiJyxcbiAgICAvLyBTeW1ib2xzIHdob3NlIGRlZmluaXRpb24gc3RhcnRzIHdpdGggXFxET1RTQjpcbiAgICAnXFxcXERPVFNCJzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxjb3Byb2QnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGJpZ3ZlZSc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcYmlnd2VkZ2UnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGJpZ3VwbHVzJzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxiaWdjYXAnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGJpZ2N1cCc6ICdcXFxcZG90c2InLFxuICAgICdcXFxccHJvZCc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcc3VtJzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxiaWdvdGltZXMnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGJpZ29wbHVzJzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxiaWdvZG90JzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxiaWdzcWN1cCc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcaW1wbGllcyc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcaW1wbGllZGJ5JzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxBbmQnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGxvbmdyaWdodGFycm93JzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxMb25ncmlnaHRhcnJvdyc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcbG9uZ2xlZnRhcnJvdyc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcTG9uZ2xlZnRhcnJvdyc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcbG9uZ2xlZnRyaWdodGFycm93JzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxMb25nbGVmdHJpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXG1hcHN0byc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcbG9uZ21hcHN0byc6ICdcXFxcZG90c2InLFxuICAgICdcXFxcaG9va3JpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXGlmZic6ICdcXFxcZG90c2InLFxuICAgICdcXFxcZG90ZXEnOiAnXFxcXGRvdHNiJyxcbiAgICAvLyBTeW1ib2xzIHdob3NlIGRlZmluaXRpb24gc3RhcnRzIHdpdGggXFxtYXRoYmluOlxuICAgICdcXFxcbWF0aGJpbic6ICdcXFxcZG90c2InLFxuICAgICdcXFxcYm1vZCc6ICdcXFxcZG90c2InLFxuICAgIC8vIFN5bWJvbHMgd2hvc2UgZGVmaW5pdGlvbiBzdGFydHMgd2l0aCBcXG1hdGhyZWw6XG4gICAgJ1xcXFxtYXRocmVsJzogJ1xcXFxkb3RzYicsXG4gICAgJ1xcXFxyZWxiYXInOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXFJlbGJhcic6ICdcXFxcZG90c2InLFxuICAgICdcXFxceHJpZ2h0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgICAnXFxcXHhsZWZ0YXJyb3cnOiAnXFxcXGRvdHNiJyxcbiAgICAvLyBTeW1ib2xzIHdob3NlIGRlZmluaXRpb24gc3RhcnRzIHdpdGggXFxET1RTSTpcbiAgICAnXFxcXERPVFNJJzogJ1xcXFxkb3RzaScsXG4gICAgJ1xcXFxpbnQnOiAnXFxcXGRvdHNpJyxcbiAgICAnXFxcXG9pbnQnOiAnXFxcXGRvdHNpJyxcbiAgICAnXFxcXGlpbnQnOiAnXFxcXGRvdHNpJyxcbiAgICAnXFxcXGlpaW50JzogJ1xcXFxkb3RzaScsXG4gICAgJ1xcXFxpaWlpbnQnOiAnXFxcXGRvdHNpJyxcbiAgICAnXFxcXGlkb3RzaW50JzogJ1xcXFxkb3RzaScsXG4gICAgLy8gU3ltYm9scyB3aG9zZSBkZWZpbml0aW9uIHN0YXJ0cyB3aXRoIFxcRE9UU1g6XG4gICAgJ1xcXFxET1RTWCc6ICdcXFxcZG90c3gnXG59O1xuXG5kZWZpbmVNYWNybyhcIlxcXFxkb3RzXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgLy8gVE9ETzogSWYgdXNlZCBpbiB0ZXh0IG1vZGUsIHNob3VsZCBleHBhbmQgdG8gXFx0ZXh0ZWxsaXBzaXMuXG4gICAgLy8gSG93ZXZlciwgaW4gS2FUZVgsIFxcdGV4dGVsbGlwc2lzIGFuZCBcXGxkb3RzIGJlaGF2ZSB0aGUgc2FtZVxuICAgIC8vIChpbiB0ZXh0IG1vZGUpLCBhbmQgaXQncyB1bmxpa2VseSB3ZSdkIHNlZSBhbnkgb2YgdGhlIG1hdGggY29tbWFuZHNcbiAgICAvLyB0aGF0IGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgXFxkb3RzIHdoZW4gaW4gdGV4dCBtb2RlLiAgU28gZmluZSBmb3Igbm93XG4gICAgLy8gKHVudGlsIHdlIHN1cHBvcnQgXFxpZm1tb2RlIC4uLiBcXGVsc2UgLi4uIFxcZmkpLlxuICAgIHZhciB0aGVkb3RzID0gJ1xcXFxkb3Rzbyc7XG4gICAgdmFyIG5leHQgPSBjb250ZXh0LmV4cGFuZEFmdGVyRnV0dXJlKCkudGV4dDtcbiAgICBpZiAobmV4dCBpbiBkb3RzQnlUb2tlbikge1xuICAgICAgICB0aGVkb3RzID0gZG90c0J5VG9rZW5bbmV4dF07XG4gICAgfSBlbHNlIGlmIChuZXh0LnN1YnN0cigwLCA0KSA9PT0gJ1xcXFxub3QnKSB7XG4gICAgICAgIHRoZWRvdHMgPSAnXFxcXGRvdHNiJztcbiAgICB9IGVsc2UgaWYgKG5leHQgaW4gX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zeW1ib2xzX19bXCJhXCIgLyogZGVmYXVsdCAqL10ubWF0aCkge1xuICAgICAgICBpZiAoX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX191dGlsc19fW1wiYVwiIC8qIGRlZmF1bHQgKi9dLmNvbnRhaW5zKFsnYmluJywgJ3JlbCddLCBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3N5bWJvbHNfX1tcImFcIiAvKiBkZWZhdWx0ICovXS5tYXRoW25leHRdLmdyb3VwKSkge1xuICAgICAgICAgICAgdGhlZG90cyA9ICdcXFxcZG90c2InO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGVkb3RzO1xufSk7XG5cbnZhciBzcGFjZUFmdGVyRG90cyA9IHtcbiAgICAvLyBcXHJpZ2h0ZGVsaW1AIGNoZWNrcyBmb3IgdGhlIGZvbGxvd2luZzpcbiAgICAnKSc6IHRydWUsXG4gICAgJ10nOiB0cnVlLFxuICAgICdcXFxccmJyYWNrJzogdHJ1ZSxcbiAgICAnXFxcXH0nOiB0cnVlLFxuICAgICdcXFxccmJyYWNlJzogdHJ1ZSxcbiAgICAnXFxcXHJhbmdsZSc6IHRydWUsXG4gICAgJ1xcXFxyY2VpbCc6IHRydWUsXG4gICAgJ1xcXFxyZmxvb3InOiB0cnVlLFxuICAgICdcXFxccmdyb3VwJzogdHJ1ZSxcbiAgICAnXFxcXHJtb3VzdGFjaGUnOiB0cnVlLFxuICAgICdcXFxccmlnaHQnOiB0cnVlLFxuICAgICdcXFxcYmlncic6IHRydWUsXG4gICAgJ1xcXFxiaWdncic6IHRydWUsXG4gICAgJ1xcXFxCaWdyJzogdHJ1ZSxcbiAgICAnXFxcXEJpZ2dyJzogdHJ1ZSxcbiAgICAvLyBcXGV4dHJhQCBhbHNvIHRlc3RzIGZvciB0aGUgZm9sbG93aW5nOlxuICAgICckJzogdHJ1ZSxcbiAgICAvLyBcXGV4dHJhcEAgY2hlY2tzIGZvciB0aGUgZm9sbG93aW5nOlxuICAgICc7JzogdHJ1ZSxcbiAgICAnLic6IHRydWUsXG4gICAgJywnOiB0cnVlXG59O1xuXG5kZWZpbmVNYWNybyhcIlxcXFxkb3Rzb1wiLCBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgIHZhciBuZXh0ID0gY29udGV4dC5mdXR1cmUoKS50ZXh0O1xuICAgIGlmIChuZXh0IGluIHNwYWNlQWZ0ZXJEb3RzKSB7XG4gICAgICAgIHJldHVybiBcIlxcXFxsZG90c1xcXFwsXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFwiXFxcXGxkb3RzXCI7XG4gICAgfVxufSk7XG5cbmRlZmluZU1hY3JvKFwiXFxcXGRvdHNjXCIsIGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgdmFyIG5leHQgPSBjb250ZXh0LmZ1dHVyZSgpLnRleHQ7XG4gICAgLy8gXFxkb3RzYyB1c2VzIFxcZXh0cmFAIGJ1dCBub3QgXFxleHRyYXBALCBpbnN0ZWFkIHNwZWNpYWxseSBjaGVja2luZyBmb3JcbiAgICAvLyAnOycgYW5kICcuJywgYnV0IGRvZXNuJ3QgY2hlY2sgZm9yICcsJy5cbiAgICBpZiAobmV4dCBpbiBzcGFjZUFmdGVyRG90cyAmJiBuZXh0ICE9PSAnLCcpIHtcbiAgICAgICAgcmV0dXJuIFwiXFxcXGxkb3RzXFxcXCxcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJcXFxcbGRvdHNcIjtcbiAgICB9XG59KTtcblxuZGVmaW5lTWFjcm8oXCJcXFxcY2RvdHNcIiwgZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICB2YXIgbmV4dCA9IGNvbnRleHQuZnV0dXJlKCkudGV4dDtcbiAgICBpZiAobmV4dCBpbiBzcGFjZUFmdGVyRG90cykge1xuICAgICAgICByZXR1cm4gXCJcXFxcQGNkb3RzXFxcXCxcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCJcXFxcQGNkb3RzXCI7XG4gICAgfVxufSk7XG5cbmRlZmluZU1hY3JvKFwiXFxcXGRvdHNiXCIsIFwiXFxcXGNkb3RzXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZG90c21cIiwgXCJcXFxcY2RvdHNcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxkb3RzaVwiLCBcIlxcXFwhXFxcXGNkb3RzXCIpO1xuLy8gYW1zbWF0aCBkb2Vzbid0IGFjdHVhbGx5IGRlZmluZSBcXGRvdHN4LCBidXQgXFxkb3RzIGZvbGxvd2VkIGJ5IGEgbWFjcm9cbi8vIHN0YXJ0aW5nIHdpdGggXFxET1RTWCBpbXBsaWVzIFxcZG90c28sIGFuZCB0aGVuIFxcZXh0cmFAIGRldGVjdHMgdGhpcyBjYXNlXG4vLyBhbmQgZm9yY2VzIHRoZSBhZGRlZCBgXFwsYC5cbmRlZmluZU1hY3JvKFwiXFxcXGRvdHN4XCIsIFwiXFxcXGxkb3RzXFxcXCxcIik7XG5cbi8vIFxcbGV0XFxET1RTSVxccmVsYXhcbi8vIFxcbGV0XFxET1RTQlxccmVsYXhcbi8vIFxcbGV0XFxET1RTWFxccmVsYXhcbmRlZmluZU1hY3JvKFwiXFxcXERPVFNJXCIsIFwiXFxcXHJlbGF4XCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcRE9UU0JcIiwgXCJcXFxccmVsYXhcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxET1RTWFwiLCBcIlxcXFxyZWxheFwiKTtcblxuLy8gaHR0cDovL3RleGRvYy5uZXQvdGV4bWYtZGlzdC9kb2MvbGF0ZXgvYW1zbWF0aC9hbXNtYXRoLnBkZlxuZGVmaW5lTWFjcm8oXCJcXFxcdGhpbnNwYWNlXCIsIFwiXFxcXCxcIik7IC8vICAgXFxsZXRcXHRoaW5zcGFjZVxcLFxuZGVmaW5lTWFjcm8oXCJcXFxcbWVkc3BhY2VcIiwgXCJcXFxcOlwiKTsgLy8gICBcXGxldFxcbWVkc3BhY2VcXDpcbmRlZmluZU1hY3JvKFwiXFxcXHRoaWNrc3BhY2VcIiwgXCJcXFxcO1wiKTsgLy8gICBcXGxldFxcdGhpY2tzcGFjZVxcO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBMYVRlWCBzb3VyY2UyZVxuXG4vLyBcXGRlZlxcVGVYe1RcXGtlcm4tLjE2NjdlbVxcbG93ZXIuNWV4XFxoYm94e0V9XFxrZXJuLS4xMjVlbVhcXEB9XG4vLyBUT0RPOiBEb2Vzbid0IG5vcm1hbGx5IHdvcmsgaW4gbWF0aCBtb2RlIGJlY2F1c2UgXFxAIGZhaWxzLiAgS2FUZVggZG9lc24ndFxuLy8gc3VwcG9ydCBcXEAgeWV0LCBzbyB0aGF0J3Mgb21pdHRlZCwgYW5kIHdlIGFkZCBcXHRleHQgc28gdGhhdCB0aGUgcmVzdWx0XG4vLyBkb2Vzbid0IGxvb2sgZnVubnkgaW4gbWF0aCBtb2RlLlxuZGVmaW5lTWFjcm8oXCJcXFxcVGVYXCIsIFwiXFxcXHRleHRybXtUXFxcXGtlcm4tLjE2NjdlbVxcXFxyYWlzZWJveHstLjVleH17RX1cXFxca2Vybi0uMTI1ZW1YfVwiKTtcblxuLy8gXFxEZWNsYXJlUm9idXN0Q29tbWFuZHtcXExhVGVYfXtMXFxrZXJuLS4zNmVtJVxuLy8gICAgICAgICB7XFxzYm94XFx6QCBUJVxuLy8gICAgICAgICAgXFx2Ym94IHRvXFxodFxcekB7XFxoYm94e1xcY2hlY2tAbWF0aGZvbnRzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXGZvbnRzaXplXFxzZkBzaXplXFx6QFxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxtYXRoQGZvbnRzZmFsc2VcXHNlbGVjdGZvbnRcbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF9JVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgXFx2c3N9JVxuLy8gICAgICAgICB9JVxuLy8gICAgICAgICBcXGtlcm4tLjE1ZW0lXG4vLyAgICAgICAgIFxcVGVYfVxuLy8gVGhpcyBjb2RlIGFsaWducyB0aGUgdG9wIG9mIHRoZSBBIHdpdGggdGhlIFQgKGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIFRlWCdzXG4vLyBib3hlcywgdGhvdWdoIHZpc3VhbGx5IHRoZSBBIGFwcGVhcnMgdG8gZXh0ZW5kIGFib3ZlIHNsaWdodGx5KS5cbi8vIFdlIGNvbXB1dGUgdGhlIGNvcnJlc3BvbmRpbmcgXFxyYWlzZWJveCB3aGVuIEEgaXMgcmVuZGVyZWQgYXQgXFxzY3JpcHRzaXplLFxuLy8gd2hpY2ggaXMgc2l6ZTMsIHdoaWNoIGhhcyBhIHNjYWxlIGZhY3RvciBvZiAwLjcgKHNlZSBPcHRpb25zLmpzKS5cbnZhciBsYXRleFJhaXNlQSA9IF9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9fc3VibW9kdWxlc19rYXRleF9mb250c19mb250TWV0cmljc0RhdGFfX1tcImFcIiAvKiBkZWZhdWx0ICovXVsnTWFpbi1SZWd1bGFyJ11bXCJUXCIuY2hhckNvZGVBdCgwKV1bMV0gLSAwLjcgKiBfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3N1Ym1vZHVsZXNfa2F0ZXhfZm9udHNfZm9udE1ldHJpY3NEYXRhX19bXCJhXCIgLyogZGVmYXVsdCAqL11bJ01haW4tUmVndWxhciddW1wiQVwiLmNoYXJDb2RlQXQoMCldWzFdICsgXCJlbVwiO1xuZGVmaW5lTWFjcm8oXCJcXFxcTGFUZVhcIiwgXCJcXFxcdGV4dHJte0xcXFxca2Vybi0uMzZlbVxcXFxyYWlzZWJveHtcIiArIGxhdGV4UmFpc2VBICsgXCJ9e1xcXFxzY3JpcHRzaXplIEF9XCIgKyBcIlxcXFxrZXJuLS4xNWVtXFxcXFRlWH1cIik7XG5cbi8vIE5ldyBLYVRlWCBsb2dvIGJhc2VkIG9uIHR3ZWFraW5nIExhVGVYIGxvZ29cbmRlZmluZU1hY3JvKFwiXFxcXEthVGVYXCIsIFwiXFxcXHRleHRybXtLXFxcXGtlcm4tLjE3ZW1cXFxccmFpc2Vib3h7XCIgKyBsYXRleFJhaXNlQSArIFwifXtcXFxcc2NyaXB0c2l6ZSBBfVwiICsgXCJcXFxca2Vybi0uMTVlbVxcXFxUZVh9XCIpO1xuXG4vLyBcXERlY2xhcmVSb2J1c3RDb21tYW5kXFxoc3BhY2V7XFxAaWZzdGFyXFxAaHNwYWNlclxcQGhzcGFjZX1cbi8vIFxcZGVmXFxAaHNwYWNlIzF7XFxoc2tpcCAgIzFcXHJlbGF4fVxuLy8gS2FUZVggZG9lc24ndCBkbyBsaW5lIGJyZWFrcywgc28gXFxoc3BhY2UgYW5kIFxcaHNwYWNlKiBhcmUgdGhlIHNhbWUgYXMgXFxrZXJuXG5kZWZpbmVNYWNybyhcIlxcXFxoc3BhY2VcIiwgXCJcXFxcQGlmc3RhclxcXFxrZXJuXFxcXGtlcm5cIik7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG1hdGh0b29scy5zdHlcblxuLy9cXHByb3ZpZGVjb21tYW5kXFxvcmRpbmFyeWNvbG9uezp9XG5kZWZpbmVNYWNybyhcIlxcXFxvcmRpbmFyeWNvbG9uXCIsIFwiOlwiKTtcbi8vXFxkZWZcXHZjZW50Y29sb257XFxtYXRocmVse1xcbWF0aG9wXFxvcmRpbmFyeWNvbG9ufX1cbi8vVE9ETyhlZGVtYWluZSk6IE5vdCB5ZXQgY2VudGVyZWQuIEZpeCB2aWEgXFxyYWlzZWJveCBvciAjNzI2XG5kZWZpbmVNYWNybyhcIlxcXFx2Y2VudGNvbG9uXCIsIFwiXFxcXG1hdGhyZWx7XFxcXG1hdGhvcFxcXFxvcmRpbmFyeWNvbG9ufVwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxkYmxjb2xvbntcXHZjZW50Y29sb25cXG1hdGhyZWx7XFxta2Vybi0uOW11fVxcdmNlbnRjb2xvbn1cbmRlZmluZU1hY3JvKFwiXFxcXGRibGNvbG9uXCIsIFwiXFxcXHZjZW50Y29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tLjltdX1cXFxcdmNlbnRjb2xvblwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxjb2xvbmVxcXtcXHZjZW50Y29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX09fVxuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25lcXFcIiwgXCJcXFxcdmNlbnRjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX09XCIpO1xuLy8gXFxwcm92aWRlY29tbWFuZCpcXENvbG9uZXFxe1xcZGJsY29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX09fVxuZGVmaW5lTWFjcm8oXCJcXFxcQ29sb25lcXFcIiwgXCJcXFxcZGJsY29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9PVwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxjb2xvbmVxe1xcdmNlbnRjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcbWF0aHJlbHstfX1cbmRlZmluZU1hY3JvKFwiXFxcXGNvbG9uZXFcIiwgXCJcXFxcdmNlbnRjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcbWF0aHJlbHstfVwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxDb2xvbmVxe1xcZGJsY29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXG1hdGhyZWx7LX19XG5kZWZpbmVNYWNybyhcIlxcXFxDb2xvbmVxXCIsIFwiXFxcXGRibGNvbG9uXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFxtYXRocmVsey19XCIpO1xuLy8gXFxwcm92aWRlY29tbWFuZCpcXGVxcWNvbG9uez1cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHZjZW50Y29sb259XG5kZWZpbmVNYWNybyhcIlxcXFxlcXFjb2xvblwiLCBcIj1cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXHZjZW50Y29sb25cIik7XG4vLyBcXHByb3ZpZGVjb21tYW5kKlxcRXFxY29sb257PVxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcZGJsY29sb259XG5kZWZpbmVNYWNybyhcIlxcXFxFcXFjb2xvblwiLCBcIj1cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGRibGNvbG9uXCIpO1xuLy8gXFxwcm92aWRlY29tbWFuZCpcXGVxY29sb257XFxtYXRocmVsey19XFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFx2Y2VudGNvbG9ufVxuZGVmaW5lTWFjcm8oXCJcXFxcZXFjb2xvblwiLCBcIlxcXFxtYXRocmVsey19XFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFx2Y2VudGNvbG9uXCIpO1xuLy8gXFxwcm92aWRlY29tbWFuZCpcXEVxY29sb257XFxtYXRocmVsey19XFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxkYmxjb2xvbn1cbmRlZmluZU1hY3JvKFwiXFxcXEVxY29sb25cIiwgXCJcXFxcbWF0aHJlbHstfVxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcZGJsY29sb25cIik7XG4vLyBcXHByb3ZpZGVjb21tYW5kKlxcY29sb25hcHByb3h7XFx2Y2VudGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxhcHByb3h9XG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmFwcHJveFwiLCBcIlxcXFx2Y2VudGNvbG9uXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFxhcHByb3hcIik7XG4vLyBcXHByb3ZpZGVjb21tYW5kKlxcQ29sb25hcHByb3h7XFxkYmxjb2xvblxcbWF0aHJlbHtcXG1rZXJuLTEuMm11fVxcYXBwcm94fVxuZGVmaW5lTWFjcm8oXCJcXFxcQ29sb25hcHByb3hcIiwgXCJcXFxcZGJsY29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGFwcHJveFwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxjb2xvbnNpbXtcXHZjZW50Y29sb25cXG1hdGhyZWx7XFxta2Vybi0xLjJtdX1cXHNpbX1cbmRlZmluZU1hY3JvKFwiXFxcXGNvbG9uc2ltXCIsIFwiXFxcXHZjZW50Y29sb25cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXHNpbVwiKTtcbi8vIFxccHJvdmlkZWNvbW1hbmQqXFxDb2xvbnNpbXtcXGRibGNvbG9uXFxtYXRocmVse1xcbWtlcm4tMS4ybXV9XFxzaW19XG5kZWZpbmVNYWNybyhcIlxcXFxDb2xvbnNpbVwiLCBcIlxcXFxkYmxjb2xvblxcXFxtYXRocmVse1xcXFxta2Vybi0xLjJtdX1cXFxcc2ltXCIpO1xuXG4vLyBTb21lIFVuaWNvZGUgY2hhcmFjdGVycyBhcmUgaW1wbGVtZW50ZWQgd2l0aCBtYWNyb3MgdG8gbWF0aHRvb2xzIGZ1bmN0aW9ucy5cbmRlZmluZU1hY3JvKFwiXFx1MjI1NFwiLCBcIlxcXFxjb2xvbmVxcVwiKTsgLy8gOj1cbmRlZmluZU1hY3JvKFwiXFx1MjI1NVwiLCBcIlxcXFxlcXFjb2xvblwiKTsgLy8gPTpcbmRlZmluZU1hY3JvKFwiXFx1MkE3NFwiLCBcIlxcXFxDb2xvbmVxcVwiKTsgLy8gOjo9XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGNvbG9uZXF1YWxzLnN0eVxuXG4vLyBBbHRlcm5hdGUgbmFtZXMgZm9yIG1hdGh0b29scydzIG1hY3JvczpcbmRlZmluZU1hY3JvKFwiXFxcXHJhdGlvXCIsIFwiXFxcXHZjZW50Y29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmNvbG9uXCIsIFwiXFxcXGRibGNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25lcXVhbHNcIiwgXCJcXFxcY29sb25lcXFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmNvbG9uZXF1YWxzXCIsIFwiXFxcXENvbG9uZXFxXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcZXF1YWxzY29sb25cIiwgXCJcXFxcZXFxY29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxlcXVhbHNjb2xvbmNvbG9uXCIsIFwiXFxcXEVxcWNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25taW51c1wiLCBcIlxcXFxjb2xvbmVxXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcY29sb25jb2xvbm1pbnVzXCIsIFwiXFxcXENvbG9uZXFcIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtaW51c2NvbG9uXCIsIFwiXFxcXGVxY29sb25cIik7XG5kZWZpbmVNYWNybyhcIlxcXFxtaW51c2NvbG9uY29sb25cIiwgXCJcXFxcRXFjb2xvblwiKTtcbi8vIFxcY29sb25hcHByb3ggbmFtZSBpcyBzYW1lIGluIG1hdGh0b29scyBhbmQgY29sb25lcXVhbHMuXG5kZWZpbmVNYWNybyhcIlxcXFxjb2xvbmNvbG9uYXBwcm94XCIsIFwiXFxcXENvbG9uYXBwcm94XCIpO1xuLy8gXFxjb2xvbnNpbSBuYW1lIGlzIHNhbWUgaW4gbWF0aHRvb2xzIGFuZCBjb2xvbmVxdWFscy5cbmRlZmluZU1hY3JvKFwiXFxcXGNvbG9uY29sb25zaW1cIiwgXCJcXFxcQ29sb25zaW1cIik7XG5cbi8vIEFkZGl0aW9uYWwgbWFjcm9zLCBpbXBsZW1lbnRlZCBieSBhbmFsb2d5IHdpdGggbWF0aHRvb2xzIGRlZmluaXRpb25zOlxuZGVmaW5lTWFjcm8oXCJcXFxcc2ltY29sb25cIiwgXCJcXFxcc2ltXFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFx2Y2VudGNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcc2ltY29sb25jb2xvblwiLCBcIlxcXFxzaW1cXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGRibGNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYXBwcm94Y29sb25cIiwgXCJcXFxcYXBwcm94XFxcXG1hdGhyZWx7XFxcXG1rZXJuLTEuMm11fVxcXFx2Y2VudGNvbG9uXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcYXBwcm94Y29sb25jb2xvblwiLCBcIlxcXFxhcHByb3hcXFxcbWF0aHJlbHtcXFxcbWtlcm4tMS4ybXV9XFxcXGRibGNvbG9uXCIpO1xuXG4vLyBQcmVzZW50IGluIG5ld3R4bWF0aCwgcHhmb250cyBhbmQgdHhmb250c1xuLy8gVE9ETzogVGhlIHVuaWNvZGUgY2hhcmFjdGVyIFUrMjIwQyDiiIwgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmb250LCBhbmQgdGhpc1xuLy8gICAgICAgbWFjcm8gdHVybmVkIGludG8gYSBwcm9wcGVyIGRlZmluZVN5bWJvbCBpbiBzeW1ib2xzLmpzLiBUaGF0IHdheSwgdGhlXG4vLyAgICAgICBNYXRoTUwgcmVzdWx0IHdpbGwgYmUgbXVjaCBjbGVhbmVyLlxuZGVmaW5lTWFjcm8oXCJcXFxcbm90bmlcIiwgXCJcXFxcbm90XFxcXG5pXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbGltc3VwXCIsIFwiXFxcXERPVFNCXFxcXG1hdGhvcHtcXFxcb3BlcmF0b3JuYW1le2xpbVxcXFwsc3VwfX1cXFxcbGltaXRzXCIpO1xuZGVmaW5lTWFjcm8oXCJcXFxcbGltaW5mXCIsIFwiXFxcXERPVFNCXFxcXG1hdGhvcHtcXFxcb3BlcmF0b3JuYW1le2xpbVxcXFwsaW5mfX1cXFxcbGltaXRzXCIpO1xuXG4vKioqLyB9KSxcbi8qIDE0NyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgcHJvcElzRW51bWVyYWJsZSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG5cbmZ1bmN0aW9uIHRvT2JqZWN0KHZhbCkge1xuXHRpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcignT2JqZWN0LmFzc2lnbiBjYW5ub3QgYmUgY2FsbGVkIHdpdGggbnVsbCBvciB1bmRlZmluZWQnKTtcblx0fVxuXG5cdHJldHVybiBPYmplY3QodmFsKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkVXNlTmF0aXZlKCkge1xuXHR0cnkge1xuXHRcdGlmICghT2JqZWN0LmFzc2lnbikge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIERldGVjdCBidWdneSBwcm9wZXJ0eSBlbnVtZXJhdGlvbiBvcmRlciBpbiBvbGRlciBWOCB2ZXJzaW9ucy5cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTQxMThcblx0XHR2YXIgdGVzdDEgPSBuZXcgU3RyaW5nKCdhYmMnKTsgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tbmV3LXdyYXBwZXJzXG5cdFx0dGVzdDFbNV0gPSAnZGUnO1xuXHRcdGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MSlbMF0gPT09ICc1Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC92OC9pc3N1ZXMvZGV0YWlsP2lkPTMwNTZcblx0XHR2YXIgdGVzdDIgPSB7fTtcblx0XHRmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHtcblx0XHRcdHRlc3QyWydfJyArIFN0cmluZy5mcm9tQ2hhckNvZGUoaSldID0gaTtcblx0XHR9XG5cdFx0dmFyIG9yZGVyMiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QyKS5tYXAoZnVuY3Rpb24gKG4pIHtcblx0XHRcdHJldHVybiB0ZXN0MltuXTtcblx0XHR9KTtcblx0XHRpZiAob3JkZXIyLmpvaW4oJycpICE9PSAnMDEyMzQ1Njc4OScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QzID0ge307XG5cdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jy5zcGxpdCgnJykuZm9yRWFjaChmdW5jdGlvbiAobGV0dGVyKSB7XG5cdFx0XHR0ZXN0M1tsZXR0ZXJdID0gbGV0dGVyO1xuXHRcdH0pO1xuXHRcdGlmIChPYmplY3Qua2V5cyhPYmplY3QuYXNzaWduKHt9LCB0ZXN0MykpLmpvaW4oJycpICE9PVxuXHRcdFx0XHQnYWJjZGVmZ2hpamtsbW5vcHFyc3QnKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH0gY2F0Y2ggKGVycikge1xuXHRcdC8vIFdlIGRvbid0IGV4cGVjdCBhbnkgb2YgdGhlIGFib3ZlIHRvIHRocm93LCBidXQgYmV0dGVyIHRvIGJlIHNhZmUuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2hvdWxkVXNlTmF0aXZlKCkgPyBPYmplY3QuYXNzaWduIDogZnVuY3Rpb24gKHRhcmdldCwgc291cmNlKSB7XG5cdHZhciBmcm9tO1xuXHR2YXIgdG8gPSB0b09iamVjdCh0YXJnZXQpO1xuXHR2YXIgc3ltYm9scztcblxuXHRmb3IgKHZhciBzID0gMTsgcyA8IGFyZ3VtZW50cy5sZW5ndGg7IHMrKykge1xuXHRcdGZyb20gPSBPYmplY3QoYXJndW1lbnRzW3NdKTtcblxuXHRcdGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG5cdFx0XHRpZiAoaGFzT3duUHJvcGVydHkuY2FsbChmcm9tLCBrZXkpKSB7XG5cdFx0XHRcdHRvW2tleV0gPSBmcm9tW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKGdldE93blByb3BlcnR5U3ltYm9scykge1xuXHRcdFx0c3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9scyhmcm9tKTtcblx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgc3ltYm9scy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAocHJvcElzRW51bWVyYWJsZS5jYWxsKGZyb20sIHN5bWJvbHNbaV0pKSB7XG5cdFx0XHRcdFx0dG9bc3ltYm9sc1tpXV0gPSBmcm9tW3N5bWJvbHNbaV1dO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHRvO1xufTtcblxuXG4vKioqLyB9KSxcbi8qIDE0OCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG4vLyBNYXBwaW5nIG9mIFVuaWNvZGUgYWNjZW50IGNoYXJhY3RlcnMgdG8gdGhlaXIgTGFUZVggZXF1aXZhbGVudCBpbiB0ZXh0IGFuZFxuLy8gbWF0aCBtb2RlICh3aGVuIHRoZXkgZXhpc3QpLlxuXG4vLyBOT1RFOiBUaGlzIG1vZHVsZSBuZWVkcyB0byBiZSB3cml0dGVuIHdpdGggTm9kZS1zdHlsZSBtb2R1bGVzIChub3Rcbi8vIEVTNiBtb2R1bGVzKSBzbyB0aGF0IHVuaWNvZGVNYWtlLmpzIChhIE5vZGUgYXBwbGljYXRpb24pIGNhbiBpbXBvcnQgaXQuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAnXFx1MDMwMSc6IHsgdGV4dDogXCJcXFxcJ1wiLCBtYXRoOiAnXFxcXGFjdXRlJyB9LFxuICAgICdcXHUwMzAwJzogeyB0ZXh0OiAnXFxcXGAnLCBtYXRoOiAnXFxcXGdyYXZlJyB9LFxuICAgICdcXHUwMzA4JzogeyB0ZXh0OiAnXFxcXFwiJywgbWF0aDogJ1xcXFxkZG90JyB9LFxuICAgICdcXHUwMzAzJzogeyB0ZXh0OiAnXFxcXH4nLCBtYXRoOiAnXFxcXHRpbGRlJyB9LFxuICAgICdcXHUwMzA0JzogeyB0ZXh0OiAnXFxcXD0nLCBtYXRoOiAnXFxcXGJhcicgfSxcbiAgICAnXFx1MDMwNic6IHsgdGV4dDogJ1xcXFx1JywgbWF0aDogJ1xcXFxicmV2ZScgfSxcbiAgICAnXFx1MDMwQyc6IHsgdGV4dDogJ1xcXFx2JywgbWF0aDogJ1xcXFxjaGVjaycgfSxcbiAgICAnXFx1MDMwMic6IHsgdGV4dDogJ1xcXFxeJywgbWF0aDogJ1xcXFxoYXQnIH0sXG4gICAgJ1xcdTAzMDcnOiB7IHRleHQ6ICdcXFxcLicsIG1hdGg6ICdcXFxcZG90JyB9LFxuICAgICdcXHUwMzBBJzogeyB0ZXh0OiAnXFxcXHInLCBtYXRoOiAnXFxcXG1hdGhyaW5nJyB9LFxuICAgICdcXHUwMzBCJzogeyB0ZXh0OiAnXFxcXEgnIH1cbn07XG5cbi8qKiovIH0pLFxuLyogMTQ5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBfX3dlYnBhY2tfZXhwb3J0c19fLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLy8gVGhpcyBmaWxlIGlzIEdFTkVSQVRFRCBieSB1bmljb2RlTWFrZS5qcy4gRE8gTk9UIE1PRElGWS5cblxuLyogaGFybW9ueSBkZWZhdWx0IGV4cG9ydCAqLyBfX3dlYnBhY2tfZXhwb3J0c19fW1wiYVwiXSA9ICh7XG4gICAgXCJcXHhFMVwiOiBcImFcXHUwMzAxXCIsIC8vIMOhID0gXFwne2F9XG4gICAgXCJcXHhFMFwiOiBcImFcXHUwMzAwXCIsIC8vIMOgID0gXFxge2F9XG4gICAgXCJcXHhFNFwiOiBcImFcXHUwMzA4XCIsIC8vIMOkID0gXFxcInthfVxuICAgIFwiXFx1MDFERlwiOiBcImFcXHUwMzA4XFx1MDMwNFwiLCAvLyDHnyA9IFxcXCJcXD17YX1cbiAgICBcIlxceEUzXCI6IFwiYVxcdTAzMDNcIiwgLy8gw6MgPSBcXH57YX1cbiAgICBcIlxcdTAxMDFcIjogXCJhXFx1MDMwNFwiLCAvLyDEgSA9IFxcPXthfVxuICAgIFwiXFx1MDEwM1wiOiBcImFcXHUwMzA2XCIsIC8vIMSDID0gXFx1e2F9XG4gICAgXCJcXHUxRUFGXCI6IFwiYVxcdTAzMDZcXHUwMzAxXCIsIC8vIOG6ryA9IFxcdVxcJ3thfVxuICAgIFwiXFx1MUVCMVwiOiBcImFcXHUwMzA2XFx1MDMwMFwiLCAvLyDhurEgPSBcXHVcXGB7YX1cbiAgICBcIlxcdTFFQjVcIjogXCJhXFx1MDMwNlxcdTAzMDNcIiwgLy8g4bq1ID0gXFx1XFx+e2F9XG4gICAgXCJcXHUwMUNFXCI6IFwiYVxcdTAzMENcIiwgLy8gx44gPSBcXHZ7YX1cbiAgICBcIlxceEUyXCI6IFwiYVxcdTAzMDJcIiwgLy8gw6IgPSBcXF57YX1cbiAgICBcIlxcdTFFQTVcIjogXCJhXFx1MDMwMlxcdTAzMDFcIiwgLy8g4bqlID0gXFxeXFwne2F9XG4gICAgXCJcXHUxRUE3XCI6IFwiYVxcdTAzMDJcXHUwMzAwXCIsIC8vIOG6pyA9IFxcXlxcYHthfVxuICAgIFwiXFx1MUVBQlwiOiBcImFcXHUwMzAyXFx1MDMwM1wiLCAvLyDhuqsgPSBcXF5cXH57YX1cbiAgICBcIlxcdTAyMjdcIjogXCJhXFx1MDMwN1wiLCAvLyDIpyA9IFxcLnthfVxuICAgIFwiXFx1MDFFMVwiOiBcImFcXHUwMzA3XFx1MDMwNFwiLCAvLyDHoSA9IFxcLlxcPXthfVxuICAgIFwiXFx4RTVcIjogXCJhXFx1MDMwQVwiLCAvLyDDpSA9IFxccnthfVxuICAgIFwiXFx1MDFGQlwiOiBcImFcXHUwMzBBXFx1MDMwMVwiLCAvLyDHuyA9IFxcclxcJ3thfVxuICAgIFwiXFx1MUUwM1wiOiBcImJcXHUwMzA3XCIsIC8vIOG4gyA9IFxcLntifVxuICAgIFwiXFx1MDEwN1wiOiBcImNcXHUwMzAxXCIsIC8vIMSHID0gXFwne2N9XG4gICAgXCJcXHUwMTBEXCI6IFwiY1xcdTAzMENcIiwgLy8gxI0gPSBcXHZ7Y31cbiAgICBcIlxcdTAxMDlcIjogXCJjXFx1MDMwMlwiLCAvLyDEiSA9IFxcXntjfVxuICAgIFwiXFx1MDEwQlwiOiBcImNcXHUwMzA3XCIsIC8vIMSLID0gXFwue2N9XG4gICAgXCJcXHUwMTBGXCI6IFwiZFxcdTAzMENcIiwgLy8gxI8gPSBcXHZ7ZH1cbiAgICBcIlxcdTFFMEJcIjogXCJkXFx1MDMwN1wiLCAvLyDhuIsgPSBcXC57ZH1cbiAgICBcIlxceEU5XCI6IFwiZVxcdTAzMDFcIiwgLy8gw6kgPSBcXCd7ZX1cbiAgICBcIlxceEU4XCI6IFwiZVxcdTAzMDBcIiwgLy8gw6ggPSBcXGB7ZX1cbiAgICBcIlxceEVCXCI6IFwiZVxcdTAzMDhcIiwgLy8gw6sgPSBcXFwie2V9XG4gICAgXCJcXHUxRUJEXCI6IFwiZVxcdTAzMDNcIiwgLy8g4bq9ID0gXFx+e2V9XG4gICAgXCJcXHUwMTEzXCI6IFwiZVxcdTAzMDRcIiwgLy8gxJMgPSBcXD17ZX1cbiAgICBcIlxcdTFFMTdcIjogXCJlXFx1MDMwNFxcdTAzMDFcIiwgLy8g4biXID0gXFw9XFwne2V9XG4gICAgXCJcXHUxRTE1XCI6IFwiZVxcdTAzMDRcXHUwMzAwXCIsIC8vIOG4lSA9IFxcPVxcYHtlfVxuICAgIFwiXFx1MDExNVwiOiBcImVcXHUwMzA2XCIsIC8vIMSVID0gXFx1e2V9XG4gICAgXCJcXHUwMTFCXCI6IFwiZVxcdTAzMENcIiwgLy8gxJsgPSBcXHZ7ZX1cbiAgICBcIlxceEVBXCI6IFwiZVxcdTAzMDJcIiwgLy8gw6ogPSBcXF57ZX1cbiAgICBcIlxcdTFFQkZcIjogXCJlXFx1MDMwMlxcdTAzMDFcIiwgLy8g4bq/ID0gXFxeXFwne2V9XG4gICAgXCJcXHUxRUMxXCI6IFwiZVxcdTAzMDJcXHUwMzAwXCIsIC8vIOG7gSA9IFxcXlxcYHtlfVxuICAgIFwiXFx1MUVDNVwiOiBcImVcXHUwMzAyXFx1MDMwM1wiLCAvLyDhu4UgPSBcXF5cXH57ZX1cbiAgICBcIlxcdTAxMTdcIjogXCJlXFx1MDMwN1wiLCAvLyDElyA9IFxcLntlfVxuICAgIFwiXFx1MUUxRlwiOiBcImZcXHUwMzA3XCIsIC8vIOG4nyA9IFxcLntmfVxuICAgIFwiXFx1MDFGNVwiOiBcImdcXHUwMzAxXCIsIC8vIMe1ID0gXFwne2d9XG4gICAgXCJcXHUxRTIxXCI6IFwiZ1xcdTAzMDRcIiwgLy8g4bihID0gXFw9e2d9XG4gICAgXCJcXHUwMTFGXCI6IFwiZ1xcdTAzMDZcIiwgLy8gxJ8gPSBcXHV7Z31cbiAgICBcIlxcdTAxRTdcIjogXCJnXFx1MDMwQ1wiLCAvLyDHpyA9IFxcdntnfVxuICAgIFwiXFx1MDExRFwiOiBcImdcXHUwMzAyXCIsIC8vIMSdID0gXFxee2d9XG4gICAgXCJcXHUwMTIxXCI6IFwiZ1xcdTAzMDdcIiwgLy8gxKEgPSBcXC57Z31cbiAgICBcIlxcdTFFMjdcIjogXCJoXFx1MDMwOFwiLCAvLyDhuKcgPSBcXFwie2h9XG4gICAgXCJcXHUwMjFGXCI6IFwiaFxcdTAzMENcIiwgLy8gyJ8gPSBcXHZ7aH1cbiAgICBcIlxcdTAxMjVcIjogXCJoXFx1MDMwMlwiLCAvLyDEpSA9IFxcXntofVxuICAgIFwiXFx1MUUyM1wiOiBcImhcXHUwMzA3XCIsIC8vIOG4oyA9IFxcLntofVxuICAgIFwiXFx4RURcIjogXCJpXFx1MDMwMVwiLCAvLyDDrSA9IFxcJ3tpfVxuICAgIFwiXFx4RUNcIjogXCJpXFx1MDMwMFwiLCAvLyDDrCA9IFxcYHtpfVxuICAgIFwiXFx4RUZcIjogXCJpXFx1MDMwOFwiLCAvLyDDryA9IFxcXCJ7aX1cbiAgICBcIlxcdTFFMkZcIjogXCJpXFx1MDMwOFxcdTAzMDFcIiwgLy8g4bivID0gXFxcIlxcJ3tpfVxuICAgIFwiXFx1MDEyOVwiOiBcImlcXHUwMzAzXCIsIC8vIMSpID0gXFx+e2l9XG4gICAgXCJcXHUwMTJCXCI6IFwiaVxcdTAzMDRcIiwgLy8gxKsgPSBcXD17aX1cbiAgICBcIlxcdTAxMkRcIjogXCJpXFx1MDMwNlwiLCAvLyDErSA9IFxcdXtpfVxuICAgIFwiXFx1MDFEMFwiOiBcImlcXHUwMzBDXCIsIC8vIMeQID0gXFx2e2l9XG4gICAgXCJcXHhFRVwiOiBcImlcXHUwMzAyXCIsIC8vIMOuID0gXFxee2l9XG4gICAgXCJcXHUwMUYwXCI6IFwialxcdTAzMENcIiwgLy8gx7AgPSBcXHZ7an1cbiAgICBcIlxcdTAxMzVcIjogXCJqXFx1MDMwMlwiLCAvLyDEtSA9IFxcXntqfVxuICAgIFwiXFx1MUUzMVwiOiBcImtcXHUwMzAxXCIsIC8vIOG4sSA9IFxcJ3trfVxuICAgIFwiXFx1MDFFOVwiOiBcImtcXHUwMzBDXCIsIC8vIMepID0gXFx2e2t9XG4gICAgXCJcXHUwMTNBXCI6IFwibFxcdTAzMDFcIiwgLy8gxLogPSBcXCd7bH1cbiAgICBcIlxcdTAxM0VcIjogXCJsXFx1MDMwQ1wiLCAvLyDEviA9IFxcdntsfVxuICAgIFwiXFx1MUUzRlwiOiBcIm1cXHUwMzAxXCIsIC8vIOG4vyA9IFxcJ3ttfVxuICAgIFwiXFx1MUU0MVwiOiBcIm1cXHUwMzA3XCIsIC8vIOG5gSA9IFxcLnttfVxuICAgIFwiXFx1MDE0NFwiOiBcIm5cXHUwMzAxXCIsIC8vIMWEID0gXFwne259XG4gICAgXCJcXHUwMUY5XCI6IFwiblxcdTAzMDBcIiwgLy8gx7kgPSBcXGB7bn1cbiAgICBcIlxceEYxXCI6IFwiblxcdTAzMDNcIiwgLy8gw7EgPSBcXH57bn1cbiAgICBcIlxcdTAxNDhcIjogXCJuXFx1MDMwQ1wiLCAvLyDFiCA9IFxcdntufVxuICAgIFwiXFx1MUU0NVwiOiBcIm5cXHUwMzA3XCIsIC8vIOG5hSA9IFxcLntufVxuICAgIFwiXFx4RjNcIjogXCJvXFx1MDMwMVwiLCAvLyDDsyA9IFxcJ3tvfVxuICAgIFwiXFx4RjJcIjogXCJvXFx1MDMwMFwiLCAvLyDDsiA9IFxcYHtvfVxuICAgIFwiXFx4RjZcIjogXCJvXFx1MDMwOFwiLCAvLyDDtiA9IFxcXCJ7b31cbiAgICBcIlxcdTAyMkJcIjogXCJvXFx1MDMwOFxcdTAzMDRcIiwgLy8gyKsgPSBcXFwiXFw9e299XG4gICAgXCJcXHhGNVwiOiBcIm9cXHUwMzAzXCIsIC8vIMO1ID0gXFx+e299XG4gICAgXCJcXHUxRTREXCI6IFwib1xcdTAzMDNcXHUwMzAxXCIsIC8vIOG5jSA9IFxcflxcJ3tvfVxuICAgIFwiXFx1MUU0RlwiOiBcIm9cXHUwMzAzXFx1MDMwOFwiLCAvLyDhuY8gPSBcXH5cXFwie299XG4gICAgXCJcXHUwMjJEXCI6IFwib1xcdTAzMDNcXHUwMzA0XCIsIC8vIMitID0gXFx+XFw9e299XG4gICAgXCJcXHUwMTREXCI6IFwib1xcdTAzMDRcIiwgLy8gxY0gPSBcXD17b31cbiAgICBcIlxcdTFFNTNcIjogXCJvXFx1MDMwNFxcdTAzMDFcIiwgLy8g4bmTID0gXFw9XFwne299XG4gICAgXCJcXHUxRTUxXCI6IFwib1xcdTAzMDRcXHUwMzAwXCIsIC8vIOG5kSA9IFxcPVxcYHtvfVxuICAgIFwiXFx1MDE0RlwiOiBcIm9cXHUwMzA2XCIsIC8vIMWPID0gXFx1e299XG4gICAgXCJcXHUwMUQyXCI6IFwib1xcdTAzMENcIiwgLy8gx5IgPSBcXHZ7b31cbiAgICBcIlxceEY0XCI6IFwib1xcdTAzMDJcIiwgLy8gw7QgPSBcXF57b31cbiAgICBcIlxcdTFFRDFcIjogXCJvXFx1MDMwMlxcdTAzMDFcIiwgLy8g4buRID0gXFxeXFwne299XG4gICAgXCJcXHUxRUQzXCI6IFwib1xcdTAzMDJcXHUwMzAwXCIsIC8vIOG7kyA9IFxcXlxcYHtvfVxuICAgIFwiXFx1MUVEN1wiOiBcIm9cXHUwMzAyXFx1MDMwM1wiLCAvLyDhu5cgPSBcXF5cXH57b31cbiAgICBcIlxcdTAyMkZcIjogXCJvXFx1MDMwN1wiLCAvLyDIryA9IFxcLntvfVxuICAgIFwiXFx1MDIzMVwiOiBcIm9cXHUwMzA3XFx1MDMwNFwiLCAvLyDIsSA9IFxcLlxcPXtvfVxuICAgIFwiXFx1MDE1MVwiOiBcIm9cXHUwMzBCXCIsIC8vIMWRID0gXFxIe299XG4gICAgXCJcXHUxRTU1XCI6IFwicFxcdTAzMDFcIiwgLy8g4bmVID0gXFwne3B9XG4gICAgXCJcXHUxRTU3XCI6IFwicFxcdTAzMDdcIiwgLy8g4bmXID0gXFwue3B9XG4gICAgXCJcXHUwMTU1XCI6IFwiclxcdTAzMDFcIiwgLy8gxZUgPSBcXCd7cn1cbiAgICBcIlxcdTAxNTlcIjogXCJyXFx1MDMwQ1wiLCAvLyDFmSA9IFxcdntyfVxuICAgIFwiXFx1MUU1OVwiOiBcInJcXHUwMzA3XCIsIC8vIOG5mSA9IFxcLntyfVxuICAgIFwiXFx1MDE1QlwiOiBcInNcXHUwMzAxXCIsIC8vIMWbID0gXFwne3N9XG4gICAgXCJcXHUxRTY1XCI6IFwic1xcdTAzMDFcXHUwMzA3XCIsIC8vIOG5pSA9IFxcJ1xcLntzfVxuICAgIFwiXFx1MDE2MVwiOiBcInNcXHUwMzBDXCIsIC8vIMWhID0gXFx2e3N9XG4gICAgXCJcXHUxRTY3XCI6IFwic1xcdTAzMENcXHUwMzA3XCIsIC8vIOG5pyA9IFxcdlxcLntzfVxuICAgIFwiXFx1MDE1RFwiOiBcInNcXHUwMzAyXCIsIC8vIMWdID0gXFxee3N9XG4gICAgXCJcXHUxRTYxXCI6IFwic1xcdTAzMDdcIiwgLy8g4bmhID0gXFwue3N9XG4gICAgXCJcXHUxRTk3XCI6IFwidFxcdTAzMDhcIiwgLy8g4bqXID0gXFxcInt0fVxuICAgIFwiXFx1MDE2NVwiOiBcInRcXHUwMzBDXCIsIC8vIMWlID0gXFx2e3R9XG4gICAgXCJcXHUxRTZCXCI6IFwidFxcdTAzMDdcIiwgLy8g4bmrID0gXFwue3R9XG4gICAgXCJcXHhGQVwiOiBcInVcXHUwMzAxXCIsIC8vIMO6ID0gXFwne3V9XG4gICAgXCJcXHhGOVwiOiBcInVcXHUwMzAwXCIsIC8vIMO5ID0gXFxge3V9XG4gICAgXCJcXHhGQ1wiOiBcInVcXHUwMzA4XCIsIC8vIMO8ID0gXFxcInt1fVxuICAgIFwiXFx1MDFEOFwiOiBcInVcXHUwMzA4XFx1MDMwMVwiLCAvLyDHmCA9IFxcXCJcXCd7dX1cbiAgICBcIlxcdTAxRENcIjogXCJ1XFx1MDMwOFxcdTAzMDBcIiwgLy8gx5wgPSBcXFwiXFxge3V9XG4gICAgXCJcXHUwMUQ2XCI6IFwidVxcdTAzMDhcXHUwMzA0XCIsIC8vIMeWID0gXFxcIlxcPXt1fVxuICAgIFwiXFx1MDFEQVwiOiBcInVcXHUwMzA4XFx1MDMwQ1wiLCAvLyDHmiA9IFxcXCJcXHZ7dX1cbiAgICBcIlxcdTAxNjlcIjogXCJ1XFx1MDMwM1wiLCAvLyDFqSA9IFxcfnt1fVxuICAgIFwiXFx1MUU3OVwiOiBcInVcXHUwMzAzXFx1MDMwMVwiLCAvLyDhubkgPSBcXH5cXCd7dX1cbiAgICBcIlxcdTAxNkJcIjogXCJ1XFx1MDMwNFwiLCAvLyDFqyA9IFxcPXt1fVxuICAgIFwiXFx1MUU3QlwiOiBcInVcXHUwMzA0XFx1MDMwOFwiLCAvLyDhubsgPSBcXD1cXFwie3V9XG4gICAgXCJcXHUwMTZEXCI6IFwidVxcdTAzMDZcIiwgLy8gxa0gPSBcXHV7dX1cbiAgICBcIlxcdTAxRDRcIjogXCJ1XFx1MDMwQ1wiLCAvLyDHlCA9IFxcdnt1fVxuICAgIFwiXFx4RkJcIjogXCJ1XFx1MDMwMlwiLCAvLyDDuyA9IFxcXnt1fVxuICAgIFwiXFx1MDE2RlwiOiBcInVcXHUwMzBBXCIsIC8vIMWvID0gXFxye3V9XG4gICAgXCJcXHUwMTcxXCI6IFwidVxcdTAzMEJcIiwgLy8gxbEgPSBcXEh7dX1cbiAgICBcIlxcdTFFN0RcIjogXCJ2XFx1MDMwM1wiLCAvLyDhub0gPSBcXH57dn1cbiAgICBcIlxcdTFFODNcIjogXCJ3XFx1MDMwMVwiLCAvLyDhuoMgPSBcXCd7d31cbiAgICBcIlxcdTFFODFcIjogXCJ3XFx1MDMwMFwiLCAvLyDhuoEgPSBcXGB7d31cbiAgICBcIlxcdTFFODVcIjogXCJ3XFx1MDMwOFwiLCAvLyDhuoUgPSBcXFwie3d9XG4gICAgXCJcXHUwMTc1XCI6IFwid1xcdTAzMDJcIiwgLy8gxbUgPSBcXF57d31cbiAgICBcIlxcdTFFODdcIjogXCJ3XFx1MDMwN1wiLCAvLyDhuocgPSBcXC57d31cbiAgICBcIlxcdTFFOThcIjogXCJ3XFx1MDMwQVwiLCAvLyDhupggPSBcXHJ7d31cbiAgICBcIlxcdTFFOERcIjogXCJ4XFx1MDMwOFwiLCAvLyDhuo0gPSBcXFwie3h9XG4gICAgXCJcXHUxRThCXCI6IFwieFxcdTAzMDdcIiwgLy8g4bqLID0gXFwue3h9XG4gICAgXCJcXHhGRFwiOiBcInlcXHUwMzAxXCIsIC8vIMO9ID0gXFwne3l9XG4gICAgXCJcXHUxRUYzXCI6IFwieVxcdTAzMDBcIiwgLy8g4buzID0gXFxge3l9XG4gICAgXCJcXHhGRlwiOiBcInlcXHUwMzA4XCIsIC8vIMO/ID0gXFxcInt5fVxuICAgIFwiXFx1MUVGOVwiOiBcInlcXHUwMzAzXCIsIC8vIOG7uSA9IFxcfnt5fVxuICAgIFwiXFx1MDIzM1wiOiBcInlcXHUwMzA0XCIsIC8vIMizID0gXFw9e3l9XG4gICAgXCJcXHUwMTc3XCI6IFwieVxcdTAzMDJcIiwgLy8gxbcgPSBcXF57eX1cbiAgICBcIlxcdTFFOEZcIjogXCJ5XFx1MDMwN1wiLCAvLyDhuo8gPSBcXC57eX1cbiAgICBcIlxcdTFFOTlcIjogXCJ5XFx1MDMwQVwiLCAvLyDhupkgPSBcXHJ7eX1cbiAgICBcIlxcdTAxN0FcIjogXCJ6XFx1MDMwMVwiLCAvLyDFuiA9IFxcJ3t6fVxuICAgIFwiXFx1MDE3RVwiOiBcInpcXHUwMzBDXCIsIC8vIMW+ID0gXFx2e3p9XG4gICAgXCJcXHUxRTkxXCI6IFwielxcdTAzMDJcIiwgLy8g4bqRID0gXFxee3p9XG4gICAgXCJcXHUwMTdDXCI6IFwielxcdTAzMDdcIiwgLy8gxbwgPSBcXC57en1cbiAgICBcIlxceEMxXCI6IFwiQVxcdTAzMDFcIiwgLy8gw4EgPSBcXCd7QX1cbiAgICBcIlxceEMwXCI6IFwiQVxcdTAzMDBcIiwgLy8gw4AgPSBcXGB7QX1cbiAgICBcIlxceEM0XCI6IFwiQVxcdTAzMDhcIiwgLy8gw4QgPSBcXFwie0F9XG4gICAgXCJcXHUwMURFXCI6IFwiQVxcdTAzMDhcXHUwMzA0XCIsIC8vIMeeID0gXFxcIlxcPXtBfVxuICAgIFwiXFx4QzNcIjogXCJBXFx1MDMwM1wiLCAvLyDDgyA9IFxcfntBfVxuICAgIFwiXFx1MDEwMFwiOiBcIkFcXHUwMzA0XCIsIC8vIMSAID0gXFw9e0F9XG4gICAgXCJcXHUwMTAyXCI6IFwiQVxcdTAzMDZcIiwgLy8gxIIgPSBcXHV7QX1cbiAgICBcIlxcdTFFQUVcIjogXCJBXFx1MDMwNlxcdTAzMDFcIiwgLy8g4bquID0gXFx1XFwne0F9XG4gICAgXCJcXHUxRUIwXCI6IFwiQVxcdTAzMDZcXHUwMzAwXCIsIC8vIOG6sCA9IFxcdVxcYHtBfVxuICAgIFwiXFx1MUVCNFwiOiBcIkFcXHUwMzA2XFx1MDMwM1wiLCAvLyDhurQgPSBcXHVcXH57QX1cbiAgICBcIlxcdTAxQ0RcIjogXCJBXFx1MDMwQ1wiLCAvLyDHjSA9IFxcdntBfVxuICAgIFwiXFx4QzJcIjogXCJBXFx1MDMwMlwiLCAvLyDDgiA9IFxcXntBfVxuICAgIFwiXFx1MUVBNFwiOiBcIkFcXHUwMzAyXFx1MDMwMVwiLCAvLyDhuqQgPSBcXF5cXCd7QX1cbiAgICBcIlxcdTFFQTZcIjogXCJBXFx1MDMwMlxcdTAzMDBcIiwgLy8g4bqmID0gXFxeXFxge0F9XG4gICAgXCJcXHUxRUFBXCI6IFwiQVxcdTAzMDJcXHUwMzAzXCIsIC8vIOG6qiA9IFxcXlxcfntBfVxuICAgIFwiXFx1MDIyNlwiOiBcIkFcXHUwMzA3XCIsIC8vIMimID0gXFwue0F9XG4gICAgXCJcXHUwMUUwXCI6IFwiQVxcdTAzMDdcXHUwMzA0XCIsIC8vIMegID0gXFwuXFw9e0F9XG4gICAgXCJcXHhDNVwiOiBcIkFcXHUwMzBBXCIsIC8vIMOFID0gXFxye0F9XG4gICAgXCJcXHUwMUZBXCI6IFwiQVxcdTAzMEFcXHUwMzAxXCIsIC8vIMe6ID0gXFxyXFwne0F9XG4gICAgXCJcXHUxRTAyXCI6IFwiQlxcdTAzMDdcIiwgLy8g4biCID0gXFwue0J9XG4gICAgXCJcXHUwMTA2XCI6IFwiQ1xcdTAzMDFcIiwgLy8gxIYgPSBcXCd7Q31cbiAgICBcIlxcdTAxMENcIjogXCJDXFx1MDMwQ1wiLCAvLyDEjCA9IFxcdntDfVxuICAgIFwiXFx1MDEwOFwiOiBcIkNcXHUwMzAyXCIsIC8vIMSIID0gXFxee0N9XG4gICAgXCJcXHUwMTBBXCI6IFwiQ1xcdTAzMDdcIiwgLy8gxIogPSBcXC57Q31cbiAgICBcIlxcdTAxMEVcIjogXCJEXFx1MDMwQ1wiLCAvLyDEjiA9IFxcdntEfVxuICAgIFwiXFx1MUUwQVwiOiBcIkRcXHUwMzA3XCIsIC8vIOG4iiA9IFxcLntEfVxuICAgIFwiXFx4QzlcIjogXCJFXFx1MDMwMVwiLCAvLyDDiSA9IFxcJ3tFfVxuICAgIFwiXFx4QzhcIjogXCJFXFx1MDMwMFwiLCAvLyDDiCA9IFxcYHtFfVxuICAgIFwiXFx4Q0JcIjogXCJFXFx1MDMwOFwiLCAvLyDDiyA9IFxcXCJ7RX1cbiAgICBcIlxcdTFFQkNcIjogXCJFXFx1MDMwM1wiLCAvLyDhurwgPSBcXH57RX1cbiAgICBcIlxcdTAxMTJcIjogXCJFXFx1MDMwNFwiLCAvLyDEkiA9IFxcPXtFfVxuICAgIFwiXFx1MUUxNlwiOiBcIkVcXHUwMzA0XFx1MDMwMVwiLCAvLyDhuJYgPSBcXD1cXCd7RX1cbiAgICBcIlxcdTFFMTRcIjogXCJFXFx1MDMwNFxcdTAzMDBcIiwgLy8g4biUID0gXFw9XFxge0V9XG4gICAgXCJcXHUwMTE0XCI6IFwiRVxcdTAzMDZcIiwgLy8gxJQgPSBcXHV7RX1cbiAgICBcIlxcdTAxMUFcIjogXCJFXFx1MDMwQ1wiLCAvLyDEmiA9IFxcdntFfVxuICAgIFwiXFx4Q0FcIjogXCJFXFx1MDMwMlwiLCAvLyDDiiA9IFxcXntFfVxuICAgIFwiXFx1MUVCRVwiOiBcIkVcXHUwMzAyXFx1MDMwMVwiLCAvLyDhur4gPSBcXF5cXCd7RX1cbiAgICBcIlxcdTFFQzBcIjogXCJFXFx1MDMwMlxcdTAzMDBcIiwgLy8g4buAID0gXFxeXFxge0V9XG4gICAgXCJcXHUxRUM0XCI6IFwiRVxcdTAzMDJcXHUwMzAzXCIsIC8vIOG7hCA9IFxcXlxcfntFfVxuICAgIFwiXFx1MDExNlwiOiBcIkVcXHUwMzA3XCIsIC8vIMSWID0gXFwue0V9XG4gICAgXCJcXHUxRTFFXCI6IFwiRlxcdTAzMDdcIiwgLy8g4bieID0gXFwue0Z9XG4gICAgXCJcXHUwMUY0XCI6IFwiR1xcdTAzMDFcIiwgLy8gx7QgPSBcXCd7R31cbiAgICBcIlxcdTFFMjBcIjogXCJHXFx1MDMwNFwiLCAvLyDhuKAgPSBcXD17R31cbiAgICBcIlxcdTAxMUVcIjogXCJHXFx1MDMwNlwiLCAvLyDEniA9IFxcdXtHfVxuICAgIFwiXFx1MDFFNlwiOiBcIkdcXHUwMzBDXCIsIC8vIMemID0gXFx2e0d9XG4gICAgXCJcXHUwMTFDXCI6IFwiR1xcdTAzMDJcIiwgLy8gxJwgPSBcXF57R31cbiAgICBcIlxcdTAxMjBcIjogXCJHXFx1MDMwN1wiLCAvLyDEoCA9IFxcLntHfVxuICAgIFwiXFx1MUUyNlwiOiBcIkhcXHUwMzA4XCIsIC8vIOG4piA9IFxcXCJ7SH1cbiAgICBcIlxcdTAyMUVcIjogXCJIXFx1MDMwQ1wiLCAvLyDIniA9IFxcdntIfVxuICAgIFwiXFx1MDEyNFwiOiBcIkhcXHUwMzAyXCIsIC8vIMSkID0gXFxee0h9XG4gICAgXCJcXHUxRTIyXCI6IFwiSFxcdTAzMDdcIiwgLy8g4biiID0gXFwue0h9XG4gICAgXCJcXHhDRFwiOiBcIklcXHUwMzAxXCIsIC8vIMONID0gXFwne0l9XG4gICAgXCJcXHhDQ1wiOiBcIklcXHUwMzAwXCIsIC8vIMOMID0gXFxge0l9XG4gICAgXCJcXHhDRlwiOiBcIklcXHUwMzA4XCIsIC8vIMOPID0gXFxcIntJfVxuICAgIFwiXFx1MUUyRVwiOiBcIklcXHUwMzA4XFx1MDMwMVwiLCAvLyDhuK4gPSBcXFwiXFwne0l9XG4gICAgXCJcXHUwMTI4XCI6IFwiSVxcdTAzMDNcIiwgLy8gxKggPSBcXH57SX1cbiAgICBcIlxcdTAxMkFcIjogXCJJXFx1MDMwNFwiLCAvLyDEqiA9IFxcPXtJfVxuICAgIFwiXFx1MDEyQ1wiOiBcIklcXHUwMzA2XCIsIC8vIMSsID0gXFx1e0l9XG4gICAgXCJcXHUwMUNGXCI6IFwiSVxcdTAzMENcIiwgLy8gx48gPSBcXHZ7SX1cbiAgICBcIlxceENFXCI6IFwiSVxcdTAzMDJcIiwgLy8gw44gPSBcXF57SX1cbiAgICBcIlxcdTAxMzBcIjogXCJJXFx1MDMwN1wiLCAvLyDEsCA9IFxcLntJfVxuICAgIFwiXFx1MDEzNFwiOiBcIkpcXHUwMzAyXCIsIC8vIMS0ID0gXFxee0p9XG4gICAgXCJcXHUxRTMwXCI6IFwiS1xcdTAzMDFcIiwgLy8g4biwID0gXFwne0t9XG4gICAgXCJcXHUwMUU4XCI6IFwiS1xcdTAzMENcIiwgLy8gx6ggPSBcXHZ7S31cbiAgICBcIlxcdTAxMzlcIjogXCJMXFx1MDMwMVwiLCAvLyDEuSA9IFxcJ3tMfVxuICAgIFwiXFx1MDEzRFwiOiBcIkxcXHUwMzBDXCIsIC8vIMS9ID0gXFx2e0x9XG4gICAgXCJcXHUxRTNFXCI6IFwiTVxcdTAzMDFcIiwgLy8g4bi+ID0gXFwne019XG4gICAgXCJcXHUxRTQwXCI6IFwiTVxcdTAzMDdcIiwgLy8g4bmAID0gXFwue019XG4gICAgXCJcXHUwMTQzXCI6IFwiTlxcdTAzMDFcIiwgLy8gxYMgPSBcXCd7Tn1cbiAgICBcIlxcdTAxRjhcIjogXCJOXFx1MDMwMFwiLCAvLyDHuCA9IFxcYHtOfVxuICAgIFwiXFx4RDFcIjogXCJOXFx1MDMwM1wiLCAvLyDDkSA9IFxcfntOfVxuICAgIFwiXFx1MDE0N1wiOiBcIk5cXHUwMzBDXCIsIC8vIMWHID0gXFx2e059XG4gICAgXCJcXHUxRTQ0XCI6IFwiTlxcdTAzMDdcIiwgLy8g4bmEID0gXFwue059XG4gICAgXCJcXHhEM1wiOiBcIk9cXHUwMzAxXCIsIC8vIMOTID0gXFwne099XG4gICAgXCJcXHhEMlwiOiBcIk9cXHUwMzAwXCIsIC8vIMOSID0gXFxge099XG4gICAgXCJcXHhENlwiOiBcIk9cXHUwMzA4XCIsIC8vIMOWID0gXFxcIntPfVxuICAgIFwiXFx1MDIyQVwiOiBcIk9cXHUwMzA4XFx1MDMwNFwiLCAvLyDIqiA9IFxcXCJcXD17T31cbiAgICBcIlxceEQ1XCI6IFwiT1xcdTAzMDNcIiwgLy8gw5UgPSBcXH57T31cbiAgICBcIlxcdTFFNENcIjogXCJPXFx1MDMwM1xcdTAzMDFcIiwgLy8g4bmMID0gXFx+XFwne099XG4gICAgXCJcXHUxRTRFXCI6IFwiT1xcdTAzMDNcXHUwMzA4XCIsIC8vIOG5jiA9IFxcflxcXCJ7T31cbiAgICBcIlxcdTAyMkNcIjogXCJPXFx1MDMwM1xcdTAzMDRcIiwgLy8gyKwgPSBcXH5cXD17T31cbiAgICBcIlxcdTAxNENcIjogXCJPXFx1MDMwNFwiLCAvLyDFjCA9IFxcPXtPfVxuICAgIFwiXFx1MUU1MlwiOiBcIk9cXHUwMzA0XFx1MDMwMVwiLCAvLyDhuZIgPSBcXD1cXCd7T31cbiAgICBcIlxcdTFFNTBcIjogXCJPXFx1MDMwNFxcdTAzMDBcIiwgLy8g4bmQID0gXFw9XFxge099XG4gICAgXCJcXHUwMTRFXCI6IFwiT1xcdTAzMDZcIiwgLy8gxY4gPSBcXHV7T31cbiAgICBcIlxcdTAxRDFcIjogXCJPXFx1MDMwQ1wiLCAvLyDHkSA9IFxcdntPfVxuICAgIFwiXFx4RDRcIjogXCJPXFx1MDMwMlwiLCAvLyDDlCA9IFxcXntPfVxuICAgIFwiXFx1MUVEMFwiOiBcIk9cXHUwMzAyXFx1MDMwMVwiLCAvLyDhu5AgPSBcXF5cXCd7T31cbiAgICBcIlxcdTFFRDJcIjogXCJPXFx1MDMwMlxcdTAzMDBcIiwgLy8g4buSID0gXFxeXFxge099XG4gICAgXCJcXHUxRUQ2XCI6IFwiT1xcdTAzMDJcXHUwMzAzXCIsIC8vIOG7liA9IFxcXlxcfntPfVxuICAgIFwiXFx1MDIyRVwiOiBcIk9cXHUwMzA3XCIsIC8vIMiuID0gXFwue099XG4gICAgXCJcXHUwMjMwXCI6IFwiT1xcdTAzMDdcXHUwMzA0XCIsIC8vIMiwID0gXFwuXFw9e099XG4gICAgXCJcXHUwMTUwXCI6IFwiT1xcdTAzMEJcIiwgLy8gxZAgPSBcXEh7T31cbiAgICBcIlxcdTFFNTRcIjogXCJQXFx1MDMwMVwiLCAvLyDhuZQgPSBcXCd7UH1cbiAgICBcIlxcdTFFNTZcIjogXCJQXFx1MDMwN1wiLCAvLyDhuZYgPSBcXC57UH1cbiAgICBcIlxcdTAxNTRcIjogXCJSXFx1MDMwMVwiLCAvLyDFlCA9IFxcJ3tSfVxuICAgIFwiXFx1MDE1OFwiOiBcIlJcXHUwMzBDXCIsIC8vIMWYID0gXFx2e1J9XG4gICAgXCJcXHUxRTU4XCI6IFwiUlxcdTAzMDdcIiwgLy8g4bmYID0gXFwue1J9XG4gICAgXCJcXHUwMTVBXCI6IFwiU1xcdTAzMDFcIiwgLy8gxZogPSBcXCd7U31cbiAgICBcIlxcdTFFNjRcIjogXCJTXFx1MDMwMVxcdTAzMDdcIiwgLy8g4bmkID0gXFwnXFwue1N9XG4gICAgXCJcXHUwMTYwXCI6IFwiU1xcdTAzMENcIiwgLy8gxaAgPSBcXHZ7U31cbiAgICBcIlxcdTFFNjZcIjogXCJTXFx1MDMwQ1xcdTAzMDdcIiwgLy8g4bmmID0gXFx2XFwue1N9XG4gICAgXCJcXHUwMTVDXCI6IFwiU1xcdTAzMDJcIiwgLy8gxZwgPSBcXF57U31cbiAgICBcIlxcdTFFNjBcIjogXCJTXFx1MDMwN1wiLCAvLyDhuaAgPSBcXC57U31cbiAgICBcIlxcdTAxNjRcIjogXCJUXFx1MDMwQ1wiLCAvLyDFpCA9IFxcdntUfVxuICAgIFwiXFx1MUU2QVwiOiBcIlRcXHUwMzA3XCIsIC8vIOG5qiA9IFxcLntUfVxuICAgIFwiXFx4REFcIjogXCJVXFx1MDMwMVwiLCAvLyDDmiA9IFxcJ3tVfVxuICAgIFwiXFx4RDlcIjogXCJVXFx1MDMwMFwiLCAvLyDDmSA9IFxcYHtVfVxuICAgIFwiXFx4RENcIjogXCJVXFx1MDMwOFwiLCAvLyDDnCA9IFxcXCJ7VX1cbiAgICBcIlxcdTAxRDdcIjogXCJVXFx1MDMwOFxcdTAzMDFcIiwgLy8gx5cgPSBcXFwiXFwne1V9XG4gICAgXCJcXHUwMURCXCI6IFwiVVxcdTAzMDhcXHUwMzAwXCIsIC8vIMebID0gXFxcIlxcYHtVfVxuICAgIFwiXFx1MDFENVwiOiBcIlVcXHUwMzA4XFx1MDMwNFwiLCAvLyDHlSA9IFxcXCJcXD17VX1cbiAgICBcIlxcdTAxRDlcIjogXCJVXFx1MDMwOFxcdTAzMENcIiwgLy8gx5kgPSBcXFwiXFx2e1V9XG4gICAgXCJcXHUwMTY4XCI6IFwiVVxcdTAzMDNcIiwgLy8gxaggPSBcXH57VX1cbiAgICBcIlxcdTFFNzhcIjogXCJVXFx1MDMwM1xcdTAzMDFcIiwgLy8g4bm4ID0gXFx+XFwne1V9XG4gICAgXCJcXHUwMTZBXCI6IFwiVVxcdTAzMDRcIiwgLy8gxaogPSBcXD17VX1cbiAgICBcIlxcdTFFN0FcIjogXCJVXFx1MDMwNFxcdTAzMDhcIiwgLy8g4bm6ID0gXFw9XFxcIntVfVxuICAgIFwiXFx1MDE2Q1wiOiBcIlVcXHUwMzA2XCIsIC8vIMWsID0gXFx1e1V9XG4gICAgXCJcXHUwMUQzXCI6IFwiVVxcdTAzMENcIiwgLy8gx5MgPSBcXHZ7VX1cbiAgICBcIlxceERCXCI6IFwiVVxcdTAzMDJcIiwgLy8gw5sgPSBcXF57VX1cbiAgICBcIlxcdTAxNkVcIjogXCJVXFx1MDMwQVwiLCAvLyDFriA9IFxccntVfVxuICAgIFwiXFx1MDE3MFwiOiBcIlVcXHUwMzBCXCIsIC8vIMWwID0gXFxIe1V9XG4gICAgXCJcXHUxRTdDXCI6IFwiVlxcdTAzMDNcIiwgLy8g4bm8ID0gXFx+e1Z9XG4gICAgXCJcXHUxRTgyXCI6IFwiV1xcdTAzMDFcIiwgLy8g4bqCID0gXFwne1d9XG4gICAgXCJcXHUxRTgwXCI6IFwiV1xcdTAzMDBcIiwgLy8g4bqAID0gXFxge1d9XG4gICAgXCJcXHUxRTg0XCI6IFwiV1xcdTAzMDhcIiwgLy8g4bqEID0gXFxcIntXfVxuICAgIFwiXFx1MDE3NFwiOiBcIldcXHUwMzAyXCIsIC8vIMW0ID0gXFxee1d9XG4gICAgXCJcXHUxRTg2XCI6IFwiV1xcdTAzMDdcIiwgLy8g4bqGID0gXFwue1d9XG4gICAgXCJcXHUxRThDXCI6IFwiWFxcdTAzMDhcIiwgLy8g4bqMID0gXFxcIntYfVxuICAgIFwiXFx1MUU4QVwiOiBcIlhcXHUwMzA3XCIsIC8vIOG6iiA9IFxcLntYfVxuICAgIFwiXFx4RERcIjogXCJZXFx1MDMwMVwiLCAvLyDDnSA9IFxcJ3tZfVxuICAgIFwiXFx1MUVGMlwiOiBcIllcXHUwMzAwXCIsIC8vIOG7siA9IFxcYHtZfVxuICAgIFwiXFx1MDE3OFwiOiBcIllcXHUwMzA4XCIsIC8vIMW4ID0gXFxcIntZfVxuICAgIFwiXFx1MUVGOFwiOiBcIllcXHUwMzAzXCIsIC8vIOG7uCA9IFxcfntZfVxuICAgIFwiXFx1MDIzMlwiOiBcIllcXHUwMzA0XCIsIC8vIMiyID0gXFw9e1l9XG4gICAgXCJcXHUwMTc2XCI6IFwiWVxcdTAzMDJcIiwgLy8gxbYgPSBcXF57WX1cbiAgICBcIlxcdTFFOEVcIjogXCJZXFx1MDMwN1wiLCAvLyDhuo4gPSBcXC57WX1cbiAgICBcIlxcdTAxNzlcIjogXCJaXFx1MDMwMVwiLCAvLyDFuSA9IFxcJ3tafVxuICAgIFwiXFx1MDE3RFwiOiBcIlpcXHUwMzBDXCIsIC8vIMW9ID0gXFx2e1p9XG4gICAgXCJcXHUxRTkwXCI6IFwiWlxcdTAzMDJcIiwgLy8g4bqQID0gXFxee1p9XG4gICAgXCJcXHUwMTdCXCI6IFwiWlxcdTAzMDdcIiwgLy8gxbsgPSBcXC57Wn1cbiAgICBcIlxcdTAzQUNcIjogXCJcXHUwM0IxXFx1MDMwMVwiLCAvLyDOrCA9IFxcJ3vOsX1cbiAgICBcIlxcdTFGNzBcIjogXCJcXHUwM0IxXFx1MDMwMFwiLCAvLyDhvbAgPSBcXGB7zrF9XG4gICAgXCJcXHUxRkIxXCI6IFwiXFx1MDNCMVxcdTAzMDRcIiwgLy8g4b6xID0gXFw9e86xfVxuICAgIFwiXFx1MUZCMFwiOiBcIlxcdTAzQjFcXHUwMzA2XCIsIC8vIOG+sCA9IFxcdXvOsX1cbiAgICBcIlxcdTAzQURcIjogXCJcXHUwM0I1XFx1MDMwMVwiLCAvLyDOrSA9IFxcJ3vOtX1cbiAgICBcIlxcdTFGNzJcIjogXCJcXHUwM0I1XFx1MDMwMFwiLCAvLyDhvbIgPSBcXGB7zrV9XG4gICAgXCJcXHUwM0FFXCI6IFwiXFx1MDNCN1xcdTAzMDFcIiwgLy8gzq4gPSBcXCd7zrd9XG4gICAgXCJcXHUxRjc0XCI6IFwiXFx1MDNCN1xcdTAzMDBcIiwgLy8g4b20ID0gXFxge863fVxuICAgIFwiXFx1MDNBRlwiOiBcIlxcdTAzQjlcXHUwMzAxXCIsIC8vIM6vID0gXFwne865fVxuICAgIFwiXFx1MUY3NlwiOiBcIlxcdTAzQjlcXHUwMzAwXCIsIC8vIOG9tiA9IFxcYHvOuX1cbiAgICBcIlxcdTAzQ0FcIjogXCJcXHUwM0I5XFx1MDMwOFwiLCAvLyDPiiA9IFxcXCJ7zrl9XG4gICAgXCJcXHUwMzkwXCI6IFwiXFx1MDNCOVxcdTAzMDhcXHUwMzAxXCIsIC8vIM6QID0gXFxcIlxcJ3vOuX1cbiAgICBcIlxcdTFGRDJcIjogXCJcXHUwM0I5XFx1MDMwOFxcdTAzMDBcIiwgLy8g4b+SID0gXFxcIlxcYHvOuX1cbiAgICBcIlxcdTFGRDFcIjogXCJcXHUwM0I5XFx1MDMwNFwiLCAvLyDhv5EgPSBcXD17zrl9XG4gICAgXCJcXHUxRkQwXCI6IFwiXFx1MDNCOVxcdTAzMDZcIiwgLy8g4b+QID0gXFx1e865fVxuICAgIFwiXFx1MDNDQ1wiOiBcIlxcdTAzQkZcXHUwMzAxXCIsIC8vIM+MID0gXFwne86/fVxuICAgIFwiXFx1MUY3OFwiOiBcIlxcdTAzQkZcXHUwMzAwXCIsIC8vIOG9uCA9IFxcYHvOv31cbiAgICBcIlxcdTAzQ0RcIjogXCJcXHUwM0M1XFx1MDMwMVwiLCAvLyDPjSA9IFxcJ3vPhX1cbiAgICBcIlxcdTFGN0FcIjogXCJcXHUwM0M1XFx1MDMwMFwiLCAvLyDhvbogPSBcXGB7z4V9XG4gICAgXCJcXHUwM0NCXCI6IFwiXFx1MDNDNVxcdTAzMDhcIiwgLy8gz4sgPSBcXFwie8+FfVxuICAgIFwiXFx1MDNCMFwiOiBcIlxcdTAzQzVcXHUwMzA4XFx1MDMwMVwiLCAvLyDOsCA9IFxcXCJcXCd7z4V9XG4gICAgXCJcXHUxRkUyXCI6IFwiXFx1MDNDNVxcdTAzMDhcXHUwMzAwXCIsIC8vIOG/oiA9IFxcXCJcXGB7z4V9XG4gICAgXCJcXHUxRkUxXCI6IFwiXFx1MDNDNVxcdTAzMDRcIiwgLy8g4b+hID0gXFw9e8+FfVxuICAgIFwiXFx1MUZFMFwiOiBcIlxcdTAzQzVcXHUwMzA2XCIsIC8vIOG/oCA9IFxcdXvPhX1cbiAgICBcIlxcdTAzQ0VcIjogXCJcXHUwM0M5XFx1MDMwMVwiLCAvLyDPjiA9IFxcJ3vPiX1cbiAgICBcIlxcdTFGN0NcIjogXCJcXHUwM0M5XFx1MDMwMFwiLCAvLyDhvbwgPSBcXGB7z4l9XG4gICAgXCJcXHUwMzhFXCI6IFwiXFx1MDNBNVxcdTAzMDFcIiwgLy8gzo4gPSBcXCd7zqV9XG4gICAgXCJcXHUxRkVBXCI6IFwiXFx1MDNBNVxcdTAzMDBcIiwgLy8g4b+qID0gXFxge86lfVxuICAgIFwiXFx1MDNBQlwiOiBcIlxcdTAzQTVcXHUwMzA4XCIsIC8vIM6rID0gXFxcInvOpX1cbiAgICBcIlxcdTFGRTlcIjogXCJcXHUwM0E1XFx1MDMwNFwiLCAvLyDhv6kgPSBcXD17zqV9XG4gICAgXCJcXHUxRkU4XCI6IFwiXFx1MDNBNVxcdTAzMDZcIiwgLy8g4b+oID0gXFx1e86lfVxuICAgIFwiXFx1MDM4RlwiOiBcIlxcdTAzQTlcXHUwMzAxXCIsIC8vIM6PID0gXFwne86pfVxuICAgIFwiXFx1MUZGQVwiOiBcIlxcdTAzQTlcXHUwMzAwXCIgLy8g4b+6ID0gXFxge86pfVxufSk7XG5cbi8qKiovIH0pXG4vKioqKioqLyBdKVtcImRlZmF1bHRcIl07XG59KTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHRvU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxudmFyIGlzQXJyYXkgPSBmdW5jdGlvbiBpc0FycmF5KGFycikge1xuXHRpZiAodHlwZW9mIEFycmF5LmlzQXJyYXkgPT09ICdmdW5jdGlvbicpIHtcblx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheShhcnIpO1xuXHR9XG5cblx0cmV0dXJuIHRvU3RyLmNhbGwoYXJyKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG5cbnZhciBpc1BsYWluT2JqZWN0ID0gZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHtcblx0aWYgKCFvYmogfHwgdG9TdHIuY2FsbChvYmopICE9PSAnW29iamVjdCBPYmplY3RdJykge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHZhciBoYXNPd25Db25zdHJ1Y3RvciA9IGhhc093bi5jYWxsKG9iaiwgJ2NvbnN0cnVjdG9yJyk7XG5cdHZhciBoYXNJc1Byb3RvdHlwZU9mID0gb2JqLmNvbnN0cnVjdG9yICYmIG9iai5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgJiYgaGFzT3duLmNhbGwob2JqLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwgJ2lzUHJvdG90eXBlT2YnKTtcblx0Ly8gTm90IG93biBjb25zdHJ1Y3RvciBwcm9wZXJ0eSBtdXN0IGJlIE9iamVjdFxuXHRpZiAob2JqLmNvbnN0cnVjdG9yICYmICFoYXNPd25Db25zdHJ1Y3RvciAmJiAhaGFzSXNQcm90b3R5cGVPZikge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIE93biBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhdGVkIGZpcnN0bHksIHNvIHRvIHNwZWVkIHVwLFxuXHQvLyBpZiBsYXN0IG9uZSBpcyBvd24sIHRoZW4gYWxsIHByb3BlcnRpZXMgYXJlIG93bi5cblx0dmFyIGtleTtcblx0Zm9yIChrZXkgaW4gb2JqKSB7IC8qKi8gfVxuXG5cdHJldHVybiB0eXBlb2Yga2V5ID09PSAndW5kZWZpbmVkJyB8fCBoYXNPd24uY2FsbChvYmosIGtleSk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGV4dGVuZCgpIHtcblx0dmFyIG9wdGlvbnMsIG5hbWUsIHNyYywgY29weSwgY29weUlzQXJyYXksIGNsb25lO1xuXHR2YXIgdGFyZ2V0ID0gYXJndW1lbnRzWzBdO1xuXHR2YXIgaSA9IDE7XG5cdHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuXHR2YXIgZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKHR5cGVvZiB0YXJnZXQgPT09ICdib29sZWFuJykge1xuXHRcdGRlZXAgPSB0YXJnZXQ7XG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWzFdIHx8IHt9O1xuXHRcdC8vIHNraXAgdGhlIGJvb2xlYW4gYW5kIHRoZSB0YXJnZXRcblx0XHRpID0gMjtcblx0fVxuXHRpZiAodGFyZ2V0ID09IG51bGwgfHwgKHR5cGVvZiB0YXJnZXQgIT09ICdvYmplY3QnICYmIHR5cGVvZiB0YXJnZXQgIT09ICdmdW5jdGlvbicpKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHRmb3IgKDsgaSA8IGxlbmd0aDsgKytpKSB7XG5cdFx0b3B0aW9ucyA9IGFyZ3VtZW50c1tpXTtcblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKG9wdGlvbnMgIT0gbnVsbCkge1xuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yIChuYW1lIGluIG9wdGlvbnMpIHtcblx0XHRcdFx0c3JjID0gdGFyZ2V0W25hbWVdO1xuXHRcdFx0XHRjb3B5ID0gb3B0aW9uc1tuYW1lXTtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG5ldmVyLWVuZGluZyBsb29wXG5cdFx0XHRcdGlmICh0YXJnZXQgIT09IGNvcHkpIHtcblx0XHRcdFx0XHQvLyBSZWN1cnNlIGlmIHdlJ3JlIG1lcmdpbmcgcGxhaW4gb2JqZWN0cyBvciBhcnJheXNcblx0XHRcdFx0XHRpZiAoZGVlcCAmJiBjb3B5ICYmIChpc1BsYWluT2JqZWN0KGNvcHkpIHx8IChjb3B5SXNBcnJheSA9IGlzQXJyYXkoY29weSkpKSkge1xuXHRcdFx0XHRcdFx0aWYgKGNvcHlJc0FycmF5KSB7XG5cdFx0XHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdGNsb25lID0gc3JjICYmIGlzQXJyYXkoc3JjKSA/IHNyYyA6IFtdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgaXNQbGFpbk9iamVjdChzcmMpID8gc3JjIDoge307XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbVxuXHRcdFx0XHRcdFx0dGFyZ2V0W25hbWVdID0gZXh0ZW5kKGRlZXAsIGNsb25lLCBjb3B5KTtcblxuXHRcdFx0XHRcdC8vIERvbid0IGJyaW5nIGluIHVuZGVmaW5lZCB2YWx1ZXNcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjb3B5ICE9PSAndW5kZWZpbmVkJykge1xuXHRcdFx0XHRcdFx0dGFyZ2V0W25hbWVdID0gY29weTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iamVjdFxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBiYWlsO1xuXG5mdW5jdGlvbiBiYWlsKGVycikge1xuICBpZiAoZXJyKSB7XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpbmdpZnk7XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZSkge1xuICAvKiBOb3RoaW5nLiAqL1xuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qIE5vZGUuICovXG4gIGlmIChvd24uY2FsbCh2YWx1ZSwgJ3Bvc2l0aW9uJykgfHwgb3duLmNhbGwodmFsdWUsICd0eXBlJykpIHtcbiAgICByZXR1cm4gbG9jYXRpb24odmFsdWUucG9zaXRpb24pO1xuICB9XG5cbiAgLyogTG9jYXRpb24uICovXG4gIGlmIChvd24uY2FsbCh2YWx1ZSwgJ3N0YXJ0JykgfHwgb3duLmNhbGwodmFsdWUsICdlbmQnKSkge1xuICAgIHJldHVybiBsb2NhdGlvbih2YWx1ZSk7XG4gIH1cblxuICAvKiBQb3NpdGlvbi4gKi9cbiAgaWYgKG93bi5jYWxsKHZhbHVlLCAnbGluZScpIHx8IG93bi5jYWxsKHZhbHVlLCAnY29sdW1uJykpIHtcbiAgICByZXR1cm4gcG9zaXRpb24odmFsdWUpO1xuICB9XG5cbiAgLyogPyAqL1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcG9zaXRpb24ocG9zKSB7XG4gIGlmICghcG9zIHx8IHR5cGVvZiBwb3MgIT09ICdvYmplY3QnKSB7XG4gICAgcG9zID0ge307XG4gIH1cblxuICByZXR1cm4gaW5kZXgocG9zLmxpbmUpICsgJzonICsgaW5kZXgocG9zLmNvbHVtbik7XG59XG5cbmZ1bmN0aW9uIGxvY2F0aW9uKGxvYykge1xuICBpZiAoIWxvYyB8fCB0eXBlb2YgbG9jICE9PSAnb2JqZWN0Jykge1xuICAgIGxvYyA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIHBvc2l0aW9uKGxvYy5zdGFydCkgKyAnLScgKyBwb3NpdGlvbihsb2MuZW5kKTtcbn1cblxuZnVuY3Rpb24gaW5kZXgodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IDE7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBzdHJpbmdpZnkgPSByZXF1aXJlKCd1bmlzdC11dGlsLXN0cmluZ2lmeS1wb3NpdGlvbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFZNZXNzYWdlO1xuXG4vKiBJbmhlcml0IGZyb20gYEVycm9yI2AuICovXG5mdW5jdGlvbiBWTWVzc2FnZVByb3RvdHlwZSgpIHt9XG5WTWVzc2FnZVByb3RvdHlwZS5wcm90b3R5cGUgPSBFcnJvci5wcm90b3R5cGU7XG5WTWVzc2FnZS5wcm90b3R5cGUgPSBuZXcgVk1lc3NhZ2VQcm90b3R5cGUoKTtcblxuLyogTWVzc2FnZSBwcm9wZXJ0aWVzLiAqL1xudmFyIHByb3RvID0gVk1lc3NhZ2UucHJvdG90eXBlO1xuXG5wcm90by5maWxlID0gJyc7XG5wcm90by5uYW1lID0gJyc7XG5wcm90by5yZWFzb24gPSAnJztcbnByb3RvLm1lc3NhZ2UgPSAnJztcbnByb3RvLnN0YWNrID0gJyc7XG5wcm90by5mYXRhbCA9IG51bGw7XG5wcm90by5jb2x1bW4gPSBudWxsO1xucHJvdG8ubGluZSA9IG51bGw7XG5cbi8qIENvbnN0cnVjdCBhIG5ldyBWTWVzc2FnZS5cbiAqXG4gKiBOb3RlOiBXZSBjYW5ub3QgaW52b2tlIGBFcnJvcmAgb24gdGhlIGNyZWF0ZWQgY29udGV4dCxcbiAqIGFzIHRoYXQgYWRkcyByZWFkb25seSBgbGluZWAgYW5kIGBjb2x1bW5gIGF0dHJpYnV0ZXMgb25cbiAqIFNhZmFyaSA5LCB0aHVzIHRocm93aW5nIGFuZCBmYWlsaW5nIHRoZSBkYXRhLiAqL1xuZnVuY3Rpb24gVk1lc3NhZ2UocmVhc29uLCBwb3NpdGlvbiwgb3JpZ2luKSB7XG4gIHZhciBwYXJ0cztcbiAgdmFyIHJhbmdlO1xuICB2YXIgbG9jYXRpb247XG5cbiAgaWYgKHR5cGVvZiBwb3NpdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICBvcmlnaW4gPSBwb3NpdGlvbjtcbiAgICBwb3NpdGlvbiA9IG51bGw7XG4gIH1cblxuICBwYXJ0cyA9IHBhcnNlT3JpZ2luKG9yaWdpbik7XG4gIHJhbmdlID0gc3RyaW5naWZ5KHBvc2l0aW9uKSB8fCAnMToxJztcblxuICBsb2NhdGlvbiA9IHtcbiAgICBzdGFydDoge2xpbmU6IG51bGwsIGNvbHVtbjogbnVsbH0sXG4gICAgZW5kOiB7bGluZTogbnVsbCwgY29sdW1uOiBudWxsfVxuICB9O1xuXG4gIC8qIE5vZGUuICovXG4gIGlmIChwb3NpdGlvbiAmJiBwb3NpdGlvbi5wb3NpdGlvbikge1xuICAgIHBvc2l0aW9uID0gcG9zaXRpb24ucG9zaXRpb247XG4gIH1cblxuICBpZiAocG9zaXRpb24pIHtcbiAgICAvKiBQb3NpdGlvbi4gKi9cbiAgICBpZiAocG9zaXRpb24uc3RhcnQpIHtcbiAgICAgIGxvY2F0aW9uID0gcG9zaXRpb247XG4gICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uLnN0YXJ0O1xuICAgIH0gZWxzZSB7XG4gICAgICAvKiBQb2ludC4gKi9cbiAgICAgIGxvY2F0aW9uLnN0YXJ0ID0gcG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgaWYgKHJlYXNvbi5zdGFjaykge1xuICAgIHRoaXMuc3RhY2sgPSByZWFzb24uc3RhY2s7XG4gICAgcmVhc29uID0gcmVhc29uLm1lc3NhZ2U7XG4gIH1cblxuICB0aGlzLm1lc3NhZ2UgPSByZWFzb247XG4gIHRoaXMubmFtZSA9IHJhbmdlO1xuICB0aGlzLnJlYXNvbiA9IHJlYXNvbjtcbiAgdGhpcy5saW5lID0gcG9zaXRpb24gPyBwb3NpdGlvbi5saW5lIDogbnVsbDtcbiAgdGhpcy5jb2x1bW4gPSBwb3NpdGlvbiA/IHBvc2l0aW9uLmNvbHVtbiA6IG51bGw7XG4gIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjtcbiAgdGhpcy5zb3VyY2UgPSBwYXJ0c1swXTtcbiAgdGhpcy5ydWxlSWQgPSBwYXJ0c1sxXTtcbn1cblxuZnVuY3Rpb24gcGFyc2VPcmlnaW4ob3JpZ2luKSB7XG4gIHZhciByZXN1bHQgPSBbbnVsbCwgbnVsbF07XG4gIHZhciBpbmRleDtcblxuICBpZiAodHlwZW9mIG9yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICBpbmRleCA9IG9yaWdpbi5pbmRleE9mKCc6Jyk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXN1bHRbMV0gPSBvcmlnaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFswXSA9IG9yaWdpbi5zbGljZSgwLCBpbmRleCk7XG4gICAgICByZXN1bHRbMV0gPSBvcmlnaW4uc2xpY2UoaW5kZXggKyAxKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbi8vIHJlc29sdmVzIC4gYW5kIC4uIGVsZW1lbnRzIGluIGEgcGF0aCBhcnJheSB3aXRoIGRpcmVjdG9yeSBuYW1lcyB0aGVyZVxuLy8gbXVzdCBiZSBubyBzbGFzaGVzLCBlbXB0eSBlbGVtZW50cywgb3IgZGV2aWNlIG5hbWVzIChjOlxcKSBpbiB0aGUgYXJyYXlcbi8vIChzbyBhbHNvIG5vIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNsYXNoZXMgLSBpdCBkb2VzIG5vdCBkaXN0aW5ndWlzaFxuLy8gcmVsYXRpdmUgYW5kIGFic29sdXRlIHBhdGhzKVxuZnVuY3Rpb24gbm9ybWFsaXplQXJyYXkocGFydHMsIGFsbG93QWJvdmVSb290KSB7XG4gIC8vIGlmIHRoZSBwYXRoIHRyaWVzIHRvIGdvIGFib3ZlIHRoZSByb290LCBgdXBgIGVuZHMgdXAgPiAwXG4gIHZhciB1cCA9IDA7XG4gIGZvciAodmFyIGkgPSBwYXJ0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgIHZhciBsYXN0ID0gcGFydHNbaV07XG4gICAgaWYgKGxhc3QgPT09ICcuJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAobGFzdCA9PT0gJy4uJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgICAgdXArKztcbiAgICB9IGVsc2UgaWYgKHVwKSB7XG4gICAgICBwYXJ0cy5zcGxpY2UoaSwgMSk7XG4gICAgICB1cC0tO1xuICAgIH1cbiAgfVxuXG4gIC8vIGlmIHRoZSBwYXRoIGlzIGFsbG93ZWQgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVhZGluZyAuLnNcbiAgaWYgKGFsbG93QWJvdmVSb290KSB7XG4gICAgZm9yICg7IHVwLS07IHVwKSB7XG4gICAgICBwYXJ0cy51bnNoaWZ0KCcuLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cztcbn1cblxuLy8gU3BsaXQgYSBmaWxlbmFtZSBpbnRvIFtyb290LCBkaXIsIGJhc2VuYW1lLCBleHRdLCB1bml4IHZlcnNpb25cbi8vICdyb290JyBpcyBqdXN0IGEgc2xhc2gsIG9yIG5vdGhpbmcuXG52YXIgc3BsaXRQYXRoUmUgPVxuICAgIC9eKFxcLz98KShbXFxzXFxTXSo/KSgoPzpcXC57MSwyfXxbXlxcL10rP3wpKFxcLlteLlxcL10qfCkpKD86W1xcL10qKSQvO1xudmFyIHNwbGl0UGF0aCA9IGZ1bmN0aW9uKGZpbGVuYW1lKSB7XG4gIHJldHVybiBzcGxpdFBhdGhSZS5leGVjKGZpbGVuYW1lKS5zbGljZSgxKTtcbn07XG5cbi8vIHBhdGgucmVzb2x2ZShbZnJvbSAuLi5dLCB0bylcbi8vIHBvc2l4IHZlcnNpb25cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKCkge1xuICB2YXIgcmVzb2x2ZWRQYXRoID0gJycsXG4gICAgICByZXNvbHZlZEFic29sdXRlID0gZmFsc2U7XG5cbiAgZm9yICh2YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGggLSAxOyBpID49IC0xICYmICFyZXNvbHZlZEFic29sdXRlOyBpLS0pIHtcbiAgICB2YXIgcGF0aCA9IChpID49IDApID8gYXJndW1lbnRzW2ldIDogJy8nO1xuXG4gICAgLy8gU2tpcCBlbXB0eSBhbmQgaW52YWxpZCBlbnRyaWVzXG4gICAgaWYgKHR5cGVvZiBwYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MnKTtcbiAgICB9IGVsc2UgaWYgKCFwYXRoKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXNvbHZlZFBhdGggPSBwYXRoICsgJy8nICsgcmVzb2x2ZWRQYXRoO1xuICAgIHJlc29sdmVkQWJzb2x1dGUgPSBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nO1xuICB9XG5cbiAgLy8gQXQgdGhpcyBwb2ludCB0aGUgcGF0aCBzaG91bGQgYmUgcmVzb2x2ZWQgdG8gYSBmdWxsIGFic29sdXRlIHBhdGgsIGJ1dFxuICAvLyBoYW5kbGUgcmVsYXRpdmUgcGF0aHMgdG8gYmUgc2FmZSAobWlnaHQgaGFwcGVuIHdoZW4gcHJvY2Vzcy5jd2QoKSBmYWlscylcblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGhcbiAgcmVzb2x2ZWRQYXRoID0gbm9ybWFsaXplQXJyYXkoZmlsdGVyKHJlc29sdmVkUGF0aC5zcGxpdCgnLycpLCBmdW5jdGlvbihwKSB7XG4gICAgcmV0dXJuICEhcDtcbiAgfSksICFyZXNvbHZlZEFic29sdXRlKS5qb2luKCcvJyk7XG5cbiAgcmV0dXJuICgocmVzb2x2ZWRBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHJlc29sdmVkUGF0aCkgfHwgJy4nO1xufTtcblxuLy8gcGF0aC5ub3JtYWxpemUocGF0aClcbi8vIHBvc2l4IHZlcnNpb25cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUocGF0aCkge1xuICB2YXIgaXNQYXRoQWJzb2x1dGUgPSBpc0Fic29sdXRlKHBhdGgpLFxuICAgICAgdHJhaWxpbmdTbGFzaCA9IHN1YnN0cihwYXRoLCAtMSkgPT09ICcvJztcblxuICAvLyBOb3JtYWxpemUgdGhlIHBhdGhcbiAgcGF0aCA9IG5vcm1hbGl6ZUFycmF5KGZpbHRlcihwYXRoLnNwbGl0KCcvJyksIGZ1bmN0aW9uKHApIHtcbiAgICByZXR1cm4gISFwO1xuICB9KSwgIWlzUGF0aEFic29sdXRlKS5qb2luKCcvJyk7XG5cbiAgaWYgKCFwYXRoICYmICFpc1BhdGhBYnNvbHV0ZSkge1xuICAgIHBhdGggPSAnLic7XG4gIH1cbiAgaWYgKHBhdGggJiYgdHJhaWxpbmdTbGFzaCkge1xuICAgIHBhdGggKz0gJy8nO1xuICB9XG5cbiAgcmV0dXJuIChpc1BhdGhBYnNvbHV0ZSA/ICcvJyA6ICcnKSArIHBhdGg7XG59O1xuXG4vLyBwb3NpeCB2ZXJzaW9uXG5leHBvcnQgZnVuY3Rpb24gaXNBYnNvbHV0ZShwYXRoKSB7XG4gIHJldHVybiBwYXRoLmNoYXJBdCgwKSA9PT0gJy8nO1xufVxuXG4vLyBwb3NpeCB2ZXJzaW9uXG5leHBvcnQgZnVuY3Rpb24gam9pbigpIHtcbiAgdmFyIHBhdGhzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZShmaWx0ZXIocGF0aHMsIGZ1bmN0aW9uKHAsIGluZGV4KSB7XG4gICAgaWYgKHR5cGVvZiBwICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG4gIH0pLmpvaW4oJy8nKSk7XG59XG5cblxuLy8gcGF0aC5yZWxhdGl2ZShmcm9tLCB0bylcbi8vIHBvc2l4IHZlcnNpb25cbmV4cG9ydCBmdW5jdGlvbiByZWxhdGl2ZShmcm9tLCB0bykge1xuICBmcm9tID0gcmVzb2x2ZShmcm9tKS5zdWJzdHIoMSk7XG4gIHRvID0gcmVzb2x2ZSh0bykuc3Vic3RyKDEpO1xuXG4gIGZ1bmN0aW9uIHRyaW0oYXJyKSB7XG4gICAgdmFyIHN0YXJ0ID0gMDtcbiAgICBmb3IgKDsgc3RhcnQgPCBhcnIubGVuZ3RoOyBzdGFydCsrKSB7XG4gICAgICBpZiAoYXJyW3N0YXJ0XSAhPT0gJycpIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBlbmQgPSBhcnIubGVuZ3RoIC0gMTtcbiAgICBmb3IgKDsgZW5kID49IDA7IGVuZC0tKSB7XG4gICAgICBpZiAoYXJyW2VuZF0gIT09ICcnKSBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoc3RhcnQgPiBlbmQpIHJldHVybiBbXTtcbiAgICByZXR1cm4gYXJyLnNsaWNlKHN0YXJ0LCBlbmQgLSBzdGFydCArIDEpO1xuICB9XG5cbiAgdmFyIGZyb21QYXJ0cyA9IHRyaW0oZnJvbS5zcGxpdCgnLycpKTtcbiAgdmFyIHRvUGFydHMgPSB0cmltKHRvLnNwbGl0KCcvJykpO1xuXG4gIHZhciBsZW5ndGggPSBNYXRoLm1pbihmcm9tUGFydHMubGVuZ3RoLCB0b1BhcnRzLmxlbmd0aCk7XG4gIHZhciBzYW1lUGFydHNMZW5ndGggPSBsZW5ndGg7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoZnJvbVBhcnRzW2ldICE9PSB0b1BhcnRzW2ldKSB7XG4gICAgICBzYW1lUGFydHNMZW5ndGggPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdmFyIG91dHB1dFBhcnRzID0gW107XG4gIGZvciAodmFyIGkgPSBzYW1lUGFydHNMZW5ndGg7IGkgPCBmcm9tUGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICBvdXRwdXRQYXJ0cy5wdXNoKCcuLicpO1xuICB9XG5cbiAgb3V0cHV0UGFydHMgPSBvdXRwdXRQYXJ0cy5jb25jYXQodG9QYXJ0cy5zbGljZShzYW1lUGFydHNMZW5ndGgpKTtcblxuICByZXR1cm4gb3V0cHV0UGFydHMuam9pbignLycpO1xufVxuXG5leHBvcnQgdmFyIHNlcCA9ICcvJztcbmV4cG9ydCB2YXIgZGVsaW1pdGVyID0gJzonO1xuXG5leHBvcnQgZnVuY3Rpb24gZGlybmFtZShwYXRoKSB7XG4gIHZhciByZXN1bHQgPSBzcGxpdFBhdGgocGF0aCksXG4gICAgICByb290ID0gcmVzdWx0WzBdLFxuICAgICAgZGlyID0gcmVzdWx0WzFdO1xuXG4gIGlmICghcm9vdCAmJiAhZGlyKSB7XG4gICAgLy8gTm8gZGlybmFtZSB3aGF0c29ldmVyXG4gICAgcmV0dXJuICcuJztcbiAgfVxuXG4gIGlmIChkaXIpIHtcbiAgICAvLyBJdCBoYXMgYSBkaXJuYW1lLCBzdHJpcCB0cmFpbGluZyBzbGFzaFxuICAgIGRpciA9IGRpci5zdWJzdHIoMCwgZGlyLmxlbmd0aCAtIDEpO1xuICB9XG5cbiAgcmV0dXJuIHJvb3QgKyBkaXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYXNlbmFtZShwYXRoLCBleHQpIHtcbiAgdmFyIGYgPSBzcGxpdFBhdGgocGF0aClbMl07XG4gIC8vIFRPRE86IG1ha2UgdGhpcyBjb21wYXJpc29uIGNhc2UtaW5zZW5zaXRpdmUgb24gd2luZG93cz9cbiAgaWYgKGV4dCAmJiBmLnN1YnN0cigtMSAqIGV4dC5sZW5ndGgpID09PSBleHQpIHtcbiAgICBmID0gZi5zdWJzdHIoMCwgZi5sZW5ndGggLSBleHQubGVuZ3RoKTtcbiAgfVxuICByZXR1cm4gZjtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZXh0bmFtZShwYXRoKSB7XG4gIHJldHVybiBzcGxpdFBhdGgocGF0aClbM107XG59XG5leHBvcnQgZGVmYXVsdCB7XG4gIGV4dG5hbWU6IGV4dG5hbWUsXG4gIGJhc2VuYW1lOiBiYXNlbmFtZSxcbiAgZGlybmFtZTogZGlybmFtZSxcbiAgc2VwOiBzZXAsXG4gIGRlbGltaXRlcjogZGVsaW1pdGVyLFxuICByZWxhdGl2ZTogcmVsYXRpdmUsXG4gIGpvaW46IGpvaW4sXG4gIGlzQWJzb2x1dGU6IGlzQWJzb2x1dGUsXG4gIG5vcm1hbGl6ZTogbm9ybWFsaXplLFxuICByZXNvbHZlOiByZXNvbHZlXG59O1xuZnVuY3Rpb24gZmlsdGVyICh4cywgZikge1xuICAgIGlmICh4cy5maWx0ZXIpIHJldHVybiB4cy5maWx0ZXIoZik7XG4gICAgdmFyIHJlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGYoeHNbaV0sIGksIHhzKSkgcmVzLnB1c2goeHNbaV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG4vLyBTdHJpbmcucHJvdG90eXBlLnN1YnN0ciAtIG5lZ2F0aXZlIGluZGV4IGRvbid0IHdvcmsgaW4gSUU4XG52YXIgc3Vic3RyID0gJ2FiJy5zdWJzdHIoLTEpID09PSAnYicgP1xuICAgIGZ1bmN0aW9uIChzdHIsIHN0YXJ0LCBsZW4pIHsgcmV0dXJuIHN0ci5zdWJzdHIoc3RhcnQsIGxlbikgfSA6XG4gICAgZnVuY3Rpb24gKHN0ciwgc3RhcnQsIGxlbikge1xuICAgICAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IHN0ci5sZW5ndGggKyBzdGFydDtcbiAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoc3RhcnQsIGxlbik7XG4gICAgfVxuO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuZnVuY3Rpb24gcmVwbGFjZUV4dChucGF0aCwgZXh0KSB7XG4gIGlmICh0eXBlb2YgbnBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG5wYXRoO1xuICB9XG5cbiAgaWYgKG5wYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBucGF0aDtcbiAgfVxuXG4gIHZhciBuRmlsZU5hbWUgPSBwYXRoLmJhc2VuYW1lKG5wYXRoLCBwYXRoLmV4dG5hbWUobnBhdGgpKSArIGV4dDtcbiAgcmV0dXJuIHBhdGguam9pbihwYXRoLmRpcm5hbWUobnBhdGgpLCBuRmlsZU5hbWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcGxhY2VFeHQ7XG4iLCIvKiFcbiAqIERldGVybWluZSBpZiBhbiBvYmplY3QgaXMgYSBCdWZmZXJcbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG5cbi8vIFRoZSBfaXNCdWZmZXIgY2hlY2sgaXMgZm9yIFNhZmFyaSA1LTcgc3VwcG9ydCwgYmVjYXVzZSBpdCdzIG1pc3Npbmdcbi8vIE9iamVjdC5wcm90b3R5cGUuY29uc3RydWN0b3IuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gb2JqICE9IG51bGwgJiYgKGlzQnVmZmVyKG9iaikgfHwgaXNTbG93QnVmZmVyKG9iaikgfHwgISFvYmouX2lzQnVmZmVyKVxufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAob2JqKSB7XG4gIHJldHVybiAhIW9iai5jb25zdHJ1Y3RvciAmJiB0eXBlb2Ygb2JqLmNvbnN0cnVjdG9yLmlzQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIG9iai5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvYmopXG59XG5cbi8vIEZvciBOb2RlIHYwLjEwIHN1cHBvcnQuIFJlbW92ZSB0aGlzIGV2ZW50dWFsbHkuXG5mdW5jdGlvbiBpc1Nsb3dCdWZmZXIgKG9iaikge1xuICByZXR1cm4gdHlwZW9mIG9iai5yZWFkRmxvYXRMRSA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2Ygb2JqLnNsaWNlID09PSAnZnVuY3Rpb24nICYmIGlzQnVmZmVyKG9iai5zbGljZSgwLCAwKSlcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG52YXIgcmVwbGFjZSA9IHJlcXVpcmUoJ3JlcGxhY2UtZXh0Jyk7XG52YXIgYnVmZmVyID0gcmVxdWlyZSgnaXMtYnVmZmVyJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gVkZpbGU7XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBwcm90byA9IFZGaWxlLnByb3RvdHlwZTtcblxucHJvdG8udG9TdHJpbmcgPSB0b1N0cmluZztcblxuLyogT3JkZXIgb2Ygc2V0dGluZyAobGVhc3Qgc3BlY2lmaWMgdG8gbW9zdCksIHdlIG5lZWQgdGhpcyBiZWNhdXNlXG4gKiBvdGhlcndpc2UgYHtzdGVtOiAnYScsIHBhdGg6ICd+L2IuanMnfWAgd291bGQgdGhyb3csIGFzIGEgcGF0aFxuICogaXMgbmVlZGVkIGJlZm9yZSBhIHN0ZW0gY2FuIGJlIHNldC4gKi9cbnZhciBvcmRlciA9IFtcbiAgJ2hpc3RvcnknLFxuICAncGF0aCcsXG4gICdiYXNlbmFtZScsXG4gICdzdGVtJyxcbiAgJ2V4dG5hbWUnLFxuICAnZGlybmFtZSdcbl07XG5cbi8qIENvbnN0cnVjdCBhIG5ldyBmaWxlLiAqL1xuZnVuY3Rpb24gVkZpbGUob3B0aW9ucykge1xuICB2YXIgcHJvcDtcbiAgdmFyIGluZGV4O1xuICB2YXIgbGVuZ3RoO1xuXG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgYnVmZmVyKG9wdGlvbnMpKSB7XG4gICAgb3B0aW9ucyA9IHtjb250ZW50czogb3B0aW9uc307XG4gIH0gZWxzZSBpZiAoJ21lc3NhZ2UnIGluIG9wdGlvbnMgJiYgJ21lc3NhZ2VzJyBpbiBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgVkZpbGUpKSB7XG4gICAgcmV0dXJuIG5ldyBWRmlsZShvcHRpb25zKTtcbiAgfVxuXG4gIHRoaXMuZGF0YSA9IHt9O1xuICB0aGlzLm1lc3NhZ2VzID0gW107XG4gIHRoaXMuaGlzdG9yeSA9IFtdO1xuICB0aGlzLmN3ZCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLyogU2V0IHBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyLiAqL1xuICBpbmRleCA9IC0xO1xuICBsZW5ndGggPSBvcmRlci5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBwcm9wID0gb3JkZXJbaW5kZXhdO1xuXG4gICAgaWYgKG93bi5jYWxsKG9wdGlvbnMsIHByb3ApKSB7XG4gICAgICB0aGlzW3Byb3BdID0gb3B0aW9uc1twcm9wXTtcbiAgICB9XG4gIH1cblxuICAvKiBTZXQgbm9uLXBhdGggcmVsYXRlZCBwcm9wZXJ0aWVzLiAqL1xuICBmb3IgKHByb3AgaW4gb3B0aW9ucykge1xuICAgIGlmIChvcmRlci5pbmRleE9mKHByb3ApID09PSAtMSkge1xuICAgICAgdGhpc1twcm9wXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgfVxuICB9XG59XG5cbi8qIEFjY2VzcyBmdWxsIHBhdGggKGB+L2luZGV4Lm1pbi5qc2ApLiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAncGF0aCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9yeVt0aGlzLmhpc3RvcnkubGVuZ3RoIC0gMV07XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKHBhdGgpIHtcbiAgICBhc3NlcnROb25FbXB0eShwYXRoLCAncGF0aCcpO1xuXG4gICAgaWYgKHBhdGggIT09IHRoaXMucGF0aCkge1xuICAgICAgdGhpcy5oaXN0b3J5LnB1c2gocGF0aCk7XG4gICAgfVxuICB9XG59KTtcblxuLyogQWNjZXNzIHBhcmVudCBwYXRoIChgfmApLiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCAnZGlybmFtZScsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLnBhdGggPT09ICdzdHJpbmcnID8gcGF0aC5kaXJuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWQ7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKGRpcm5hbWUpIHtcbiAgICBhc3NlcnRQYXRoKHRoaXMucGF0aCwgJ2Rpcm5hbWUnKTtcbiAgICB0aGlzLnBhdGggPSBwYXRoLmpvaW4oZGlybmFtZSB8fCAnJywgdGhpcy5iYXNlbmFtZSk7XG4gIH1cbn0pO1xuXG4vKiBBY2Nlc3MgYmFzZW5hbWUgKGBpbmRleC5taW4uanNgKS4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90bywgJ2Jhc2VuYW1lJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCkgOiB1bmRlZmluZWQ7XG4gIH0sXG4gIHNldDogZnVuY3Rpb24gKGJhc2VuYW1lKSB7XG4gICAgYXNzZXJ0Tm9uRW1wdHkoYmFzZW5hbWUsICdiYXNlbmFtZScpO1xuICAgIGFzc2VydFBhcnQoYmFzZW5hbWUsICdiYXNlbmFtZScpO1xuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIGJhc2VuYW1lKTtcbiAgfVxufSk7XG5cbi8qIEFjY2VzcyBleHRuYW1lIChgLmpzYCkuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICdleHRuYW1lJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmV4dG5hbWUodGhpcy5wYXRoKSA6IHVuZGVmaW5lZDtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAoZXh0bmFtZSkge1xuICAgIHZhciBleHQgPSBleHRuYW1lIHx8ICcnO1xuXG4gICAgYXNzZXJ0UGFydChleHQsICdleHRuYW1lJyk7XG4gICAgYXNzZXJ0UGF0aCh0aGlzLnBhdGgsICdleHRuYW1lJyk7XG5cbiAgICBpZiAoZXh0KSB7XG4gICAgICBpZiAoZXh0LmNoYXJBdCgwKSAhPT0gJy4nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4dG5hbWVgIG11c3Qgc3RhcnQgd2l0aCBgLmAnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGV4dC5pbmRleE9mKCcuJywgMSkgIT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4dG5hbWVgIGNhbm5vdCBjb250YWluIG11bHRpcGxlIGRvdHMnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnBhdGggPSByZXBsYWNlKHRoaXMucGF0aCwgZXh0KTtcbiAgfVxufSk7XG5cbi8qIEFjY2VzcyBzdGVtIChgaW5kZXgubWluYCkuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sICdzdGVtJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMucGF0aCA9PT0gJ3N0cmluZycgPyBwYXRoLmJhc2VuYW1lKHRoaXMucGF0aCwgdGhpcy5leHRuYW1lKSA6IHVuZGVmaW5lZDtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAoc3RlbSkge1xuICAgIGFzc2VydE5vbkVtcHR5KHN0ZW0sICdzdGVtJyk7XG4gICAgYXNzZXJ0UGFydChzdGVtLCAnc3RlbScpO1xuICAgIHRoaXMucGF0aCA9IHBhdGguam9pbih0aGlzLmRpcm5hbWUgfHwgJycsIHN0ZW0gKyAodGhpcy5leHRuYW1lIHx8ICcnKSk7XG4gIH1cbn0pO1xuXG4vKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBmaWxlLiAqL1xuZnVuY3Rpb24gdG9TdHJpbmcoZW5jb2RpbmcpIHtcbiAgdmFyIHZhbHVlID0gdGhpcy5jb250ZW50cyB8fCAnJztcbiAgcmV0dXJuIGJ1ZmZlcih2YWx1ZSkgPyB2YWx1ZS50b1N0cmluZyhlbmNvZGluZykgOiBTdHJpbmcodmFsdWUpO1xufVxuXG4vKiBBc3NlcnQgdGhhdCBgcGFydGAgaXMgbm90IGEgcGF0aCAoaS5lLiwgZG9lc1xuICogbm90IGNvbnRhaW4gYHBhdGguc2VwYCkuICovXG5mdW5jdGlvbiBhc3NlcnRQYXJ0KHBhcnQsIG5hbWUpIHtcbiAgaWYgKHBhcnQuaW5kZXhPZihwYXRoLnNlcCkgIT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgJyArIG5hbWUgKyAnYCBjYW5ub3QgYmUgYSBwYXRoOiBkaWQgbm90IGV4cGVjdCBgJyArIHBhdGguc2VwICsgJ2AnKTtcbiAgfVxufVxuXG4vKiBBc3NlcnQgdGhhdCBgcGFydGAgaXMgbm90IGVtcHR5LiAqL1xuZnVuY3Rpb24gYXNzZXJ0Tm9uRW1wdHkocGFydCwgbmFtZSkge1xuICBpZiAoIXBhcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2AnICsgbmFtZSArICdgIGNhbm5vdCBiZSBlbXB0eScpO1xuICB9XG59XG5cbi8qIEFzc2VydCBgcGF0aGAgZXhpc3RzLiAqL1xuZnVuY3Rpb24gYXNzZXJ0UGF0aChwYXRoLCBuYW1lKSB7XG4gIGlmICghcGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZyBgJyArIG5hbWUgKyAnYCByZXF1aXJlcyBgcGF0aGAgdG8gYmUgc2V0IHRvbycpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBWTWVzc2FnZSA9IHJlcXVpcmUoJ3ZmaWxlLW1lc3NhZ2UnKTtcbnZhciBWRmlsZSA9IHJlcXVpcmUoJy4vY29yZS5qcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFZGaWxlO1xuXG52YXIgcHJvdG8gPSBWRmlsZS5wcm90b3R5cGU7XG5cbnByb3RvLm1lc3NhZ2UgPSBtZXNzYWdlO1xucHJvdG8uaW5mbyA9IGluZm87XG5wcm90by5mYWlsID0gZmFpbDtcblxuLyogU2xpZ2h0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiAgUmVtb3ZlIGluIHRoZSBmdXR1cmUuICovXG5wcm90by53YXJuID0gbWVzc2FnZTtcblxuLyogQ3JlYXRlIGEgbWVzc2FnZSB3aXRoIGByZWFzb25gIGF0IGBwb3NpdGlvbmAuXG4gKiBXaGVuIGFuIGVycm9yIGlzIHBhc3NlZCBpbiBhcyBgcmVhc29uYCwgY29waWVzIHRoZSBzdGFjay4gKi9cbmZ1bmN0aW9uIG1lc3NhZ2UocmVhc29uLCBwb3NpdGlvbiwgb3JpZ2luKSB7XG4gIHZhciBmaWxlUGF0aCA9IHRoaXMucGF0aDtcbiAgdmFyIG1lc3NhZ2UgPSBuZXcgVk1lc3NhZ2UocmVhc29uLCBwb3NpdGlvbiwgb3JpZ2luKTtcblxuICBpZiAoZmlsZVBhdGgpIHtcbiAgICBtZXNzYWdlLm5hbWUgPSBmaWxlUGF0aCArICc6JyArIG1lc3NhZ2UubmFtZTtcbiAgICBtZXNzYWdlLmZpbGUgPSBmaWxlUGF0aDtcbiAgfVxuXG4gIG1lc3NhZ2UuZmF0YWwgPSBmYWxzZTtcblxuICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XG5cbiAgcmV0dXJuIG1lc3NhZ2U7XG59XG5cbi8qIEZhaWwuIENyZWF0ZXMgYSB2bWVzc2FnZSwgYXNzb2NpYXRlcyBpdCB3aXRoIHRoZSBmaWxlLFxuICogYW5kIHRocm93cyBpdC4gKi9cbmZ1bmN0aW9uIGZhaWwoKSB7XG4gIHZhciBtZXNzYWdlID0gdGhpcy5tZXNzYWdlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgbWVzc2FnZS5mYXRhbCA9IHRydWU7XG5cbiAgdGhyb3cgbWVzc2FnZTtcbn1cblxuLyogSW5mby4gQ3JlYXRlcyBhIHZtZXNzYWdlLCBhc3NvY2lhdGVzIGl0IHdpdGggdGhlIGZpbGUsXG4gKiBhbmQgbWFya3MgdGhlIGZhdGFsaXR5IGFzIG51bGwuICovXG5mdW5jdGlvbiBpbmZvKCkge1xuICB2YXIgbWVzc2FnZSA9IHRoaXMubWVzc2FnZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gIG1lc3NhZ2UuZmF0YWwgPSBudWxsO1xuXG4gIHJldHVybiBtZXNzYWdlO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBFeHBvc2UuICovXG5tb2R1bGUuZXhwb3J0cyA9IHRyb3VnaDtcblxuLyogTWV0aG9kcy4gKi9cbnZhciBzbGljZSA9IFtdLnNsaWNlO1xuXG4vKiBDcmVhdGUgbmV3IG1pZGRsZXdhcmUuICovXG5mdW5jdGlvbiB0cm91Z2goKSB7XG4gIHZhciBmbnMgPSBbXTtcbiAgdmFyIG1pZGRsZXdhcmUgPSB7fTtcblxuICBtaWRkbGV3YXJlLnJ1biA9IHJ1bjtcbiAgbWlkZGxld2FyZS51c2UgPSB1c2U7XG5cbiAgcmV0dXJuIG1pZGRsZXdhcmU7XG5cbiAgLyogUnVuIGBmbnNgLiAgTGFzdCBhcmd1bWVudCBtdXN0IGJlXG4gICAqIGEgY29tcGxldGlvbiBoYW5kbGVyLiAqL1xuICBmdW5jdGlvbiBydW4oKSB7XG4gICAgdmFyIGluZGV4ID0gLTE7XG4gICAgdmFyIGlucHV0ID0gc2xpY2UuY2FsbChhcmd1bWVudHMsIDAsIC0xKTtcbiAgICB2YXIgZG9uZSA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICBpZiAodHlwZW9mIGRvbmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgZnVuY3Rpb24gYXMgbGFzdCBhcmd1bWVudCwgbm90ICcgKyBkb25lKTtcbiAgICB9XG5cbiAgICBuZXh0LmFwcGx5KG51bGwsIFtudWxsXS5jb25jYXQoaW5wdXQpKTtcblxuICAgIC8qIFJ1biB0aGUgbmV4dCBgZm5gLCBpZiBhbnkuICovXG4gICAgZnVuY3Rpb24gbmV4dChlcnIpIHtcbiAgICAgIHZhciBmbiA9IGZuc1srK2luZGV4XTtcbiAgICAgIHZhciBwYXJhbXMgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG4gICAgICB2YXIgdmFsdWVzID0gcGFyYW1zLnNsaWNlKDEpO1xuICAgICAgdmFyIGxlbmd0aCA9IGlucHV0Lmxlbmd0aDtcbiAgICAgIHZhciBwb3MgPSAtMTtcblxuICAgICAgaWYgKGVycikge1xuICAgICAgICBkb25lKGVycik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLyogQ29weSBub24tbnVsbHkgaW5wdXQgaW50byB2YWx1ZXMuICovXG4gICAgICB3aGlsZSAoKytwb3MgPCBsZW5ndGgpIHtcbiAgICAgICAgaWYgKHZhbHVlc1twb3NdID09PSBudWxsIHx8IHZhbHVlc1twb3NdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB2YWx1ZXNbcG9zXSA9IGlucHV0W3Bvc107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaW5wdXQgPSB2YWx1ZXM7XG5cbiAgICAgIC8qIE5leHQgb3IgZG9uZS4gKi9cbiAgICAgIGlmIChmbikge1xuICAgICAgICB3cmFwKGZuLCBuZXh0KS5hcHBseShudWxsLCBpbnB1dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb25lLmFwcGx5KG51bGwsIFtudWxsXS5jb25jYXQoaW5wdXQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBBZGQgYGZuYCB0byB0aGUgbGlzdC4gKi9cbiAgZnVuY3Rpb24gdXNlKGZuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBgZm5gIHRvIGJlIGEgZnVuY3Rpb24sIG5vdCAnICsgZm4pO1xuICAgIH1cblxuICAgIGZucy5wdXNoKGZuKTtcblxuICAgIHJldHVybiBtaWRkbGV3YXJlO1xuICB9XG59XG5cbi8qIFdyYXAgYGZuYC4gIENhbiBiZSBzeW5jIG9yIGFzeW5jOyByZXR1cm4gYSBwcm9taXNlLFxuICogcmVjZWl2ZSBhIGNvbXBsZXRpb24gaGFuZGxlciwgcmV0dXJuIG5ldyB2YWx1ZXMgYW5kXG4gKiBlcnJvcnMuICovXG5mdW5jdGlvbiB3cmFwKGZuLCBuZXh0KSB7XG4gIHZhciBpbnZva2VkO1xuXG4gIHJldHVybiB3cmFwcGVkO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZWQoKSB7XG4gICAgdmFyIHBhcmFtcyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcbiAgICB2YXIgY2FsbGJhY2sgPSBmbi5sZW5ndGggPiBwYXJhbXMubGVuZ3RoO1xuICAgIHZhciByZXN1bHQ7XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIHBhcmFtcy5wdXNoKGRvbmUpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBmbi5hcHBseShudWxsLCBwYXJhbXMpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLyogV2VsbCwgdGhpcyBpcyBxdWl0ZSB0aGUgcGlja2xlLiAgYGZuYCByZWNlaXZlZFxuICAgICAgICogYSBjYWxsYmFjayBhbmQgaW52b2tlZCBpdCAodGh1cyBjb250aW51aW5nIHRoZVxuICAgICAgICogcGlwZWxpbmUpLCBidXQgbGF0ZXIgYWxzbyB0aHJldyBhbiBlcnJvci5cbiAgICAgICAqIFdl4oCZcmUgbm90IGFib3V0IHRvIHJlc3RhcnQgdGhlIHBpcGVsaW5lIGFnYWluLFxuICAgICAgICogc28gdGhlIG9ubHkgdGhpbmcgbGVmdCB0byBkbyBpcyB0byB0aHJvdyB0aGVcbiAgICAgICAqIHRoaW5nIGluc3RlYS4gKi9cbiAgICAgIGlmIChjYWxsYmFjayAmJiBpbnZva2VkKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRvbmUoZXJyKTtcbiAgICB9XG5cbiAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICBpZiAocmVzdWx0ICYmIHR5cGVvZiByZXN1bHQudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXN1bHQudGhlbih0aGVuLCBkb25lKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgZG9uZShyZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhlbihyZXN1bHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIEludm9rZSBgbmV4dGAsIG9ubHkgb25jZS4gKi9cbiAgZnVuY3Rpb24gZG9uZSgpIHtcbiAgICBpZiAoIWludm9rZWQpIHtcbiAgICAgIGludm9rZWQgPSB0cnVlO1xuXG4gICAgICBuZXh0LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgfVxuICB9XG5cbiAgLyogSW52b2tlIGBkb25lYCB3aXRoIG9uZSB2YWx1ZS5cbiAgICogVHJhY2tzIGlmIGFuIGVycm9yIGlzIHBhc3NlZCwgdG9vLiAqL1xuICBmdW5jdGlvbiB0aGVuKHZhbHVlKSB7XG4gICAgZG9uZShudWxsLCB2YWx1ZSk7XG4gIH1cbn1cbiIsInZhciB0b1N0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmdcblxubW9kdWxlLmV4cG9ydHMgPSBpc1N0cmluZ1xuXG5mdW5jdGlvbiBpc1N0cmluZyhvYmopIHtcbiAgICByZXR1cm4gdG9TdHJpbmcuY2FsbChvYmopID09PSBcIltvYmplY3QgU3RyaW5nXVwiXG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzRnVuY3Rpb24gKGZuKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZm4pID09PSAnW29iamVjdCBGdW5jdGlvbl0nXG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh4KSB7XG5cdHZhciBwcm90b3R5cGU7XG5cdHJldHVybiB0b1N0cmluZy5jYWxsKHgpID09PSAnW29iamVjdCBPYmplY3RdJyAmJiAocHJvdG90eXBlID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHgpLCBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qIERlcGVuZGVuY2llcy4gKi9cbnZhciBleHRlbmQgPSByZXF1aXJlKCdleHRlbmQnKTtcbnZhciBiYWlsID0gcmVxdWlyZSgnYmFpbCcpO1xudmFyIHZmaWxlID0gcmVxdWlyZSgndmZpbGUnKTtcbnZhciB0cm91Z2ggPSByZXF1aXJlKCd0cm91Z2gnKTtcbnZhciBzdHJpbmcgPSByZXF1aXJlKCd4LWlzLXN0cmluZycpO1xudmFyIGZ1bmMgPSByZXF1aXJlKCd4LWlzLWZ1bmN0aW9uJyk7XG52YXIgcGxhaW4gPSByZXF1aXJlKCdpcy1wbGFpbi1vYmonKTtcblxuLyogRXhwb3NlIGEgZnJvemVuIHByb2Nlc3Nvci4gKi9cbm1vZHVsZS5leHBvcnRzID0gdW5pZmllZCgpLmZyZWV6ZSgpO1xuXG52YXIgc2xpY2UgPSBbXS5zbGljZTtcbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuLyogUHJvY2VzcyBwaXBlbGluZS4gKi9cbnZhciBwaXBlbGluZSA9IHRyb3VnaCgpLnVzZShwaXBlbGluZVBhcnNlKS51c2UocGlwZWxpbmVSdW4pLnVzZShwaXBlbGluZVN0cmluZ2lmeSk7XG5cbmZ1bmN0aW9uIHBpcGVsaW5lUGFyc2UocCwgY3R4KSB7XG4gIGN0eC50cmVlID0gcC5wYXJzZShjdHguZmlsZSk7XG59XG5cbmZ1bmN0aW9uIHBpcGVsaW5lUnVuKHAsIGN0eCwgbmV4dCkge1xuICBwLnJ1bihjdHgudHJlZSwgY3R4LmZpbGUsIGRvbmUpO1xuXG4gIGZ1bmN0aW9uIGRvbmUoZXJyLCB0cmVlLCBmaWxlKSB7XG4gICAgaWYgKGVycikge1xuICAgICAgbmV4dChlcnIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdHgudHJlZSA9IHRyZWU7XG4gICAgICBjdHguZmlsZSA9IGZpbGU7XG4gICAgICBuZXh0KCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBpcGVsaW5lU3RyaW5naWZ5KHAsIGN0eCkge1xuICBjdHguZmlsZS5jb250ZW50cyA9IHAuc3RyaW5naWZ5KGN0eC50cmVlLCBjdHguZmlsZSk7XG59XG5cbi8qIEZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGUgZmlyc3QgcHJvY2Vzc29yLiAqL1xuZnVuY3Rpb24gdW5pZmllZCgpIHtcbiAgdmFyIGF0dGFjaGVycyA9IFtdO1xuICB2YXIgdHJhbnNmb3JtZXJzID0gdHJvdWdoKCk7XG4gIHZhciBuYW1lc3BhY2UgPSB7fTtcbiAgdmFyIGZyb3plbiA9IGZhbHNlO1xuICB2YXIgZnJlZXplSW5kZXggPSAtMTtcblxuICAvKiBEYXRhIG1hbmFnZW1lbnQuICovXG4gIHByb2Nlc3Nvci5kYXRhID0gZGF0YTtcblxuICAvKiBMb2NrLiAqL1xuICBwcm9jZXNzb3IuZnJlZXplID0gZnJlZXplO1xuXG4gIC8qIFBsdWctaW5zLiAqL1xuICBwcm9jZXNzb3IuYXR0YWNoZXJzID0gYXR0YWNoZXJzO1xuICBwcm9jZXNzb3IudXNlID0gdXNlO1xuXG4gIC8qIEFQSS4gKi9cbiAgcHJvY2Vzc29yLnBhcnNlID0gcGFyc2U7XG4gIHByb2Nlc3Nvci5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7XG4gIHByb2Nlc3Nvci5ydW4gPSBydW47XG4gIHByb2Nlc3Nvci5ydW5TeW5jID0gcnVuU3luYztcbiAgcHJvY2Vzc29yLnByb2Nlc3MgPSBwcm9jZXNzO1xuICBwcm9jZXNzb3IucHJvY2Vzc1N5bmMgPSBwcm9jZXNzU3luYztcblxuICAvKiBFeHBvc2UuICovXG4gIHJldHVybiBwcm9jZXNzb3I7XG5cbiAgLyogQ3JlYXRlIGEgbmV3IHByb2Nlc3NvciBiYXNlZCBvbiB0aGUgcHJvY2Vzc29yXG4gICAqIGluIHRoZSBjdXJyZW50IHNjb3BlLiAqL1xuICBmdW5jdGlvbiBwcm9jZXNzb3IoKSB7XG4gICAgdmFyIGRlc3RpbmF0aW9uID0gdW5pZmllZCgpO1xuICAgIHZhciBsZW5ndGggPSBhdHRhY2hlcnMubGVuZ3RoO1xuICAgIHZhciBpbmRleCA9IC0xO1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGRlc3RpbmF0aW9uLnVzZS5hcHBseShudWxsLCBhdHRhY2hlcnNbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBkZXN0aW5hdGlvbi5kYXRhKGV4dGVuZCh0cnVlLCB7fSwgbmFtZXNwYWNlKSk7XG5cbiAgICByZXR1cm4gZGVzdGluYXRpb247XG4gIH1cblxuICAvKiBGcmVlemU6IHVzZWQgdG8gc2lnbmFsIGEgcHJvY2Vzc29yIHRoYXQgaGFzIGZpbmlzaGVkXG4gICAqIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCB0YWtlIHVuaWZpZWQgaXRzZWxmLiAgSXTigJlzIGZyb3plbi5cbiAgICogUGx1Zy1pbnMgc2hvdWxkIG5vdCBiZSBhZGRlZCB0byBpdC4gIFJhdGhlciwgaXQgc2hvdWxkXG4gICAqIGJlIGV4dGVuZGVkLCBieSBpbnZva2luZyBpdCwgYmVmb3JlIG1vZGlmeWluZyBpdC5cbiAgICpcbiAgICogSW4gZXNzZW5jZSwgYWx3YXlzIGludm9rZSB0aGlzIHdoZW4gZXhwb3J0aW5nIGFcbiAgICogcHJvY2Vzc29yLiAqL1xuICBmdW5jdGlvbiBmcmVlemUoKSB7XG4gICAgdmFyIHZhbHVlcztcbiAgICB2YXIgcGx1Z2luO1xuICAgIHZhciBvcHRpb25zO1xuICAgIHZhciB0cmFuc2Zvcm1lcjtcblxuICAgIGlmIChmcm96ZW4pIHtcbiAgICAgIHJldHVybiBwcm9jZXNzb3I7XG4gICAgfVxuXG4gICAgd2hpbGUgKCsrZnJlZXplSW5kZXggPCBhdHRhY2hlcnMubGVuZ3RoKSB7XG4gICAgICB2YWx1ZXMgPSBhdHRhY2hlcnNbZnJlZXplSW5kZXhdO1xuICAgICAgcGx1Z2luID0gdmFsdWVzWzBdO1xuICAgICAgb3B0aW9ucyA9IHZhbHVlc1sxXTtcbiAgICAgIHRyYW5zZm9ybWVyID0gbnVsbDtcblxuICAgICAgaWYgKG9wdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucyA9PT0gdHJ1ZSkge1xuICAgICAgICB2YWx1ZXNbMV0gPSB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zZm9ybWVyID0gcGx1Z2luLmFwcGx5KHByb2Nlc3NvciwgdmFsdWVzLnNsaWNlKDEpKTtcblxuICAgICAgaWYgKGZ1bmModHJhbnNmb3JtZXIpKSB7XG4gICAgICAgIHRyYW5zZm9ybWVycy51c2UodHJhbnNmb3JtZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZyb3plbiA9IHRydWU7XG4gICAgZnJlZXplSW5kZXggPSBJbmZpbml0eTtcblxuICAgIHJldHVybiBwcm9jZXNzb3I7XG4gIH1cblxuICAvKiBEYXRhIG1hbmFnZW1lbnQuXG4gICAqIEdldHRlciAvIHNldHRlciBmb3IgcHJvY2Vzc29yLXNwZWNpZmljIGluZm9ybXRpb24uICovXG4gIGZ1bmN0aW9uIGRhdGEoa2V5LCB2YWx1ZSkge1xuICAgIGlmIChzdHJpbmcoa2V5KSkge1xuICAgICAgLyogU2V0IGBrZXlgLiAqL1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgYXNzZXJ0VW5mcm96ZW4oJ2RhdGEnLCBmcm96ZW4pO1xuXG4gICAgICAgIG5hbWVzcGFjZVtrZXldID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHByb2Nlc3NvcjtcbiAgICAgIH1cblxuICAgICAgLyogR2V0IGBrZXlgLiAqL1xuICAgICAgcmV0dXJuIChvd24uY2FsbChuYW1lc3BhY2UsIGtleSkgJiYgbmFtZXNwYWNlW2tleV0pIHx8IG51bGw7XG4gICAgfVxuXG4gICAgLyogU2V0IHNwYWNlLiAqL1xuICAgIGlmIChrZXkpIHtcbiAgICAgIGFzc2VydFVuZnJvemVuKCdkYXRhJywgZnJvemVuKTtcbiAgICAgIG5hbWVzcGFjZSA9IGtleTtcbiAgICAgIHJldHVybiBwcm9jZXNzb3I7XG4gICAgfVxuXG4gICAgLyogR2V0IHNwYWNlLiAqL1xuICAgIHJldHVybiBuYW1lc3BhY2U7XG4gIH1cblxuICAvKiBQbHVnLWluIG1hbmFnZW1lbnQuXG4gICAqXG4gICAqIFBhc3MgaXQ6XG4gICAqICogICBhbiBhdHRhY2hlciBhbmQgb3B0aW9ucyxcbiAgICogKiAgIGEgcHJlc2V0LFxuICAgKiAqICAgYSBsaXN0IG9mIHByZXNldHMsIGF0dGFjaGVycywgYW5kIGFyZ3VtZW50cyAobGlzdFxuICAgKiAgICAgb2YgYXR0YWNoZXJzIGFuZCBvcHRpb25zKS4gKi9cbiAgZnVuY3Rpb24gdXNlKHZhbHVlKSB7XG4gICAgdmFyIHNldHRpbmdzO1xuXG4gICAgYXNzZXJ0VW5mcm96ZW4oJ3VzZScsIGZyb3plbik7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLyogRW1wdHkgKi9cbiAgICB9IGVsc2UgaWYgKGZ1bmModmFsdWUpKSB7XG4gICAgICBhZGRQbHVnaW4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmICgnbGVuZ3RoJyBpbiB2YWx1ZSkge1xuICAgICAgICBhZGRMaXN0KHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZFByZXNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdXNhYmxlIHZhbHVlLCBub3QgYCcgKyB2YWx1ZSArICdgJyk7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzKSB7XG4gICAgICBuYW1lc3BhY2Uuc2V0dGluZ3MgPSBleHRlbmQobmFtZXNwYWNlLnNldHRpbmdzIHx8IHt9LCBzZXR0aW5ncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2Nlc3NvcjtcblxuICAgIGZ1bmN0aW9uIGFkZFByZXNldChyZXN1bHQpIHtcbiAgICAgIGFkZExpc3QocmVzdWx0LnBsdWdpbnMpO1xuXG4gICAgICBpZiAocmVzdWx0LnNldHRpbmdzKSB7XG4gICAgICAgIHNldHRpbmdzID0gZXh0ZW5kKHNldHRpbmdzIHx8IHt9LCByZXN1bHQuc2V0dGluZ3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZCh2YWx1ZSkge1xuICAgICAgaWYgKGZ1bmModmFsdWUpKSB7XG4gICAgICAgIGFkZFBsdWdpbih2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaWYgKCdsZW5ndGgnIGluIHZhbHVlKSB7XG4gICAgICAgICAgYWRkUGx1Z2luLmFwcGx5KG51bGwsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhZGRQcmVzZXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHVzYWJsZSB2YWx1ZSwgbm90IGAnICsgdmFsdWUgKyAnYCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZExpc3QocGx1Z2lucykge1xuICAgICAgdmFyIGxlbmd0aDtcbiAgICAgIHZhciBpbmRleDtcblxuICAgICAgaWYgKHBsdWdpbnMgPT09IG51bGwgfHwgcGx1Z2lucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIC8qIEVtcHR5ICovXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwbHVnaW5zID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiBwbHVnaW5zKSB7XG4gICAgICAgIGxlbmd0aCA9IHBsdWdpbnMubGVuZ3RoO1xuICAgICAgICBpbmRleCA9IC0xO1xuXG4gICAgICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYWRkKHBsdWdpbnNbaW5kZXhdKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIGxpc3Qgb2YgcGx1Z2lucywgbm90IGAnICsgcGx1Z2lucyArICdgJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkUGx1Z2luKHBsdWdpbiwgdmFsdWUpIHtcbiAgICAgIHZhciBlbnRyeSA9IGZpbmQocGx1Z2luKTtcblxuICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgIGlmIChwbGFpbihlbnRyeVsxXSkgJiYgcGxhaW4odmFsdWUpKSB7XG4gICAgICAgICAgdmFsdWUgPSBleHRlbmQoZW50cnlbMV0sIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJ5WzFdID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdHRhY2hlcnMucHVzaChzbGljZS5jYWxsKGFyZ3VtZW50cykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbmQocGx1Z2luKSB7XG4gICAgdmFyIGxlbmd0aCA9IGF0dGFjaGVycy5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gLTE7XG4gICAgdmFyIGVudHJ5O1xuXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGVudHJ5ID0gYXR0YWNoZXJzW2luZGV4XTtcblxuICAgICAgaWYgKGVudHJ5WzBdID09PSBwbHVnaW4pIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFBhcnNlIGEgZmlsZSAoaW4gc3RyaW5nIG9yIFZGaWxlIHJlcHJlc2VudGF0aW9uKVxuICAgKiBpbnRvIGEgVW5pc3Qgbm9kZSB1c2luZyB0aGUgYFBhcnNlcmAgb24gdGhlXG4gICAqIHByb2Nlc3Nvci4gKi9cbiAgZnVuY3Rpb24gcGFyc2UoZG9jKSB7XG4gICAgdmFyIGZpbGUgPSB2ZmlsZShkb2MpO1xuICAgIHZhciBQYXJzZXI7XG5cbiAgICBmcmVlemUoKTtcbiAgICBQYXJzZXIgPSBwcm9jZXNzb3IuUGFyc2VyO1xuICAgIGFzc2VydFBhcnNlcigncGFyc2UnLCBQYXJzZXIpO1xuXG4gICAgaWYgKG5ld2FibGUoUGFyc2VyKSkge1xuICAgICAgcmV0dXJuIG5ldyBQYXJzZXIoU3RyaW5nKGZpbGUpLCBmaWxlKS5wYXJzZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBQYXJzZXIoU3RyaW5nKGZpbGUpLCBmaWxlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuZXctY2FwXG4gIH1cblxuICAvKiBSdW4gdHJhbnNmb3JtcyBvbiBhIFVuaXN0IG5vZGUgcmVwcmVzZW50YXRpb24gb2YgYSBmaWxlXG4gICAqIChpbiBzdHJpbmcgb3IgVkZpbGUgcmVwcmVzZW50YXRpb24pLCBhc3luYy4gKi9cbiAgZnVuY3Rpb24gcnVuKG5vZGUsIGZpbGUsIGNiKSB7XG4gICAgYXNzZXJ0Tm9kZShub2RlKTtcbiAgICBmcmVlemUoKTtcblxuICAgIGlmICghY2IgJiYgZnVuYyhmaWxlKSkge1xuICAgICAgY2IgPSBmaWxlO1xuICAgICAgZmlsZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFjYikge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGV4ZWN1dG9yKTtcbiAgICB9XG5cbiAgICBleGVjdXRvcihudWxsLCBjYik7XG5cbiAgICBmdW5jdGlvbiBleGVjdXRvcihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHRyYW5zZm9ybWVycy5ydW4obm9kZSwgdmZpbGUoZmlsZSksIGRvbmUpO1xuXG4gICAgICBmdW5jdGlvbiBkb25lKGVyciwgdHJlZSwgZmlsZSkge1xuICAgICAgICB0cmVlID0gdHJlZSB8fCBub2RlO1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZSkge1xuICAgICAgICAgIHJlc29sdmUodHJlZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2IobnVsbCwgdHJlZSwgZmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBSdW4gdHJhbnNmb3JtcyBvbiBhIFVuaXN0IG5vZGUgcmVwcmVzZW50YXRpb24gb2YgYSBmaWxlXG4gICAqIChpbiBzdHJpbmcgb3IgVkZpbGUgcmVwcmVzZW50YXRpb24pLCBzeW5jLiAqL1xuICBmdW5jdGlvbiBydW5TeW5jKG5vZGUsIGZpbGUpIHtcbiAgICB2YXIgY29tcGxldGUgPSBmYWxzZTtcbiAgICB2YXIgcmVzdWx0O1xuXG4gICAgcnVuKG5vZGUsIGZpbGUsIGRvbmUpO1xuXG4gICAgYXNzZXJ0RG9uZSgncnVuU3luYycsICdydW4nLCBjb21wbGV0ZSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuXG4gICAgZnVuY3Rpb24gZG9uZShlcnIsIHRyZWUpIHtcbiAgICAgIGNvbXBsZXRlID0gdHJ1ZTtcbiAgICAgIGJhaWwoZXJyKTtcbiAgICAgIHJlc3VsdCA9IHRyZWU7XG4gICAgfVxuICB9XG5cbiAgLyogU3RyaW5naWZ5IGEgVW5pc3Qgbm9kZSByZXByZXNlbnRhdGlvbiBvZiBhIGZpbGVcbiAgICogKGluIHN0cmluZyBvciBWRmlsZSByZXByZXNlbnRhdGlvbikgaW50byBhIHN0cmluZ1xuICAgKiB1c2luZyB0aGUgYENvbXBpbGVyYCBvbiB0aGUgcHJvY2Vzc29yLiAqL1xuICBmdW5jdGlvbiBzdHJpbmdpZnkobm9kZSwgZG9jKSB7XG4gICAgdmFyIGZpbGUgPSB2ZmlsZShkb2MpO1xuICAgIHZhciBDb21waWxlcjtcblxuICAgIGZyZWV6ZSgpO1xuICAgIENvbXBpbGVyID0gcHJvY2Vzc29yLkNvbXBpbGVyO1xuICAgIGFzc2VydENvbXBpbGVyKCdzdHJpbmdpZnknLCBDb21waWxlcik7XG4gICAgYXNzZXJ0Tm9kZShub2RlKTtcblxuICAgIGlmIChuZXdhYmxlKENvbXBpbGVyKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb21waWxlcihub2RlLCBmaWxlKS5jb21waWxlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENvbXBpbGVyKG5vZGUsIGZpbGUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5ldy1jYXBcbiAgfVxuXG4gIC8qIFBhcnNlIGEgZmlsZSAoaW4gc3RyaW5nIG9yIFZGaWxlIHJlcHJlc2VudGF0aW9uKVxuICAgKiBpbnRvIGEgVW5pc3Qgbm9kZSB1c2luZyB0aGUgYFBhcnNlcmAgb24gdGhlIHByb2Nlc3NvcixcbiAgICogdGhlbiBydW4gdHJhbnNmb3JtcyBvbiB0aGF0IG5vZGUsIGFuZCBjb21waWxlIHRoZVxuICAgKiByZXN1bHRpbmcgbm9kZSB1c2luZyB0aGUgYENvbXBpbGVyYCBvbiB0aGUgcHJvY2Vzc29yLFxuICAgKiBhbmQgc3RvcmUgdGhhdCByZXN1bHQgb24gdGhlIFZGaWxlLiAqL1xuICBmdW5jdGlvbiBwcm9jZXNzKGRvYywgY2IpIHtcbiAgICBmcmVlemUoKTtcbiAgICBhc3NlcnRQYXJzZXIoJ3Byb2Nlc3MnLCBwcm9jZXNzb3IuUGFyc2VyKTtcbiAgICBhc3NlcnRDb21waWxlcigncHJvY2VzcycsIHByb2Nlc3Nvci5Db21waWxlcik7XG5cbiAgICBpZiAoIWNiKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoZXhlY3V0b3IpO1xuICAgIH1cblxuICAgIGV4ZWN1dG9yKG51bGwsIGNiKTtcblxuICAgIGZ1bmN0aW9uIGV4ZWN1dG9yKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGZpbGUgPSB2ZmlsZShkb2MpO1xuXG4gICAgICBwaXBlbGluZS5ydW4ocHJvY2Vzc29yLCB7ZmlsZTogZmlsZX0sIGRvbmUpO1xuXG4gICAgICBmdW5jdGlvbiBkb25lKGVycikge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzb2x2ZSkge1xuICAgICAgICAgIHJlc29sdmUoZmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2IobnVsbCwgZmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiBQcm9jZXNzIHRoZSBnaXZlbiBkb2N1bWVudCAoaW4gc3RyaW5nIG9yIFZGaWxlXG4gICAqIHJlcHJlc2VudGF0aW9uKSwgc3luYy4gKi9cbiAgZnVuY3Rpb24gcHJvY2Vzc1N5bmMoZG9jKSB7XG4gICAgdmFyIGNvbXBsZXRlID0gZmFsc2U7XG4gICAgdmFyIGZpbGU7XG5cbiAgICBmcmVlemUoKTtcbiAgICBhc3NlcnRQYXJzZXIoJ3Byb2Nlc3NTeW5jJywgcHJvY2Vzc29yLlBhcnNlcik7XG4gICAgYXNzZXJ0Q29tcGlsZXIoJ3Byb2Nlc3NTeW5jJywgcHJvY2Vzc29yLkNvbXBpbGVyKTtcbiAgICBmaWxlID0gdmZpbGUoZG9jKTtcblxuICAgIHByb2Nlc3MoZmlsZSwgZG9uZSk7XG5cbiAgICBhc3NlcnREb25lKCdwcm9jZXNzU3luYycsICdwcm9jZXNzJywgY29tcGxldGUpO1xuXG4gICAgcmV0dXJuIGZpbGU7XG5cbiAgICBmdW5jdGlvbiBkb25lKGVycikge1xuICAgICAgY29tcGxldGUgPSB0cnVlO1xuICAgICAgYmFpbChlcnIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBDaGVjayBpZiBgZnVuY2AgaXMgYSBjb25zdHJ1Y3Rvci4gKi9cbmZ1bmN0aW9uIG5ld2FibGUodmFsdWUpIHtcbiAgcmV0dXJuIGZ1bmModmFsdWUpICYmIGtleXModmFsdWUucHJvdG90eXBlKTtcbn1cblxuLyogQ2hlY2sgaWYgYHZhbHVlYCBpcyBhbiBvYmplY3Qgd2l0aCBrZXlzLiAqL1xuZnVuY3Rpb24ga2V5cyh2YWx1ZSkge1xuICB2YXIga2V5O1xuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyogQXNzZXJ0IGEgcGFyc2VyIGlzIGF2YWlsYWJsZS4gKi9cbmZ1bmN0aW9uIGFzc2VydFBhcnNlcihuYW1lLCBQYXJzZXIpIHtcbiAgaWYgKCFmdW5jKFBhcnNlcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBgJyArIG5hbWUgKyAnYCB3aXRob3V0IGBQYXJzZXJgJyk7XG4gIH1cbn1cblxuLyogQXNzZXJ0IGEgY29tcGlsZXIgaXMgYXZhaWxhYmxlLiAqL1xuZnVuY3Rpb24gYXNzZXJ0Q29tcGlsZXIobmFtZSwgQ29tcGlsZXIpIHtcbiAgaWYgKCFmdW5jKENvbXBpbGVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGAnICsgbmFtZSArICdgIHdpdGhvdXQgYENvbXBpbGVyYCcpO1xuICB9XG59XG5cbi8qIEFzc2VydCB0aGUgcHJvY2Vzc29yIGlzIG5vdCBmcm96ZW4uICovXG5mdW5jdGlvbiBhc3NlcnRVbmZyb3plbihuYW1lLCBmcm96ZW4pIHtcbiAgaWYgKGZyb3plbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3QgaW52b2tlIGAnICsgbmFtZSArICdgIG9uIGEgZnJvemVuIHByb2Nlc3Nvci5cXG4nICtcbiAgICAgICdDcmVhdGUgYSBuZXcgcHJvY2Vzc29yIGZpcnN0LCBieSBpbnZva2luZyBpdDogJyArXG4gICAgICAndXNlIGBwcm9jZXNzb3IoKWAgaW5zdGVhZCBvZiBgcHJvY2Vzc29yYC4nXG4gICAgKTtcbiAgfVxufVxuXG4vKiBBc3NlcnQgYG5vZGVgIGlzIGEgVW5pc3Qgbm9kZS4gKi9cbmZ1bmN0aW9uIGFzc2VydE5vZGUobm9kZSkge1xuICBpZiAoIW5vZGUgfHwgIXN0cmluZyhub2RlLnR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBnb3QgYCcgKyBub2RlICsgJ2AnKTtcbiAgfVxufVxuXG4vKiBBc3NlcnQgdGhhdCBgY29tcGxldGVgIGlzIGB0cnVlYC4gKi9cbmZ1bmN0aW9uIGFzc2VydERvbmUobmFtZSwgYXN5bmNOYW1lLCBjb21wbGV0ZSkge1xuICBpZiAoIWNvbXBsZXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgJyArIG5hbWUgKyAnYCBmaW5pc2hlZCBhc3luYy4gVXNlIGAnICsgYXN5bmNOYW1lICsgJ2AgaW5zdGVhZCcpO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qIGVzbGludCBuby1pbnZhbGlkLXRoaXM6IDEgKi9cblxudmFyIEVSUk9SX01FU1NBR0UgPSAnRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgY2FsbGVkIG9uIGluY29tcGF0aWJsZSAnO1xudmFyIHNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlO1xudmFyIHRvU3RyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBmdW5jVHlwZSA9ICdbb2JqZWN0IEZ1bmN0aW9uXSc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gYmluZCh0aGF0KSB7XG4gICAgdmFyIHRhcmdldCA9IHRoaXM7XG4gICAgaWYgKHR5cGVvZiB0YXJnZXQgIT09ICdmdW5jdGlvbicgfHwgdG9TdHIuY2FsbCh0YXJnZXQpICE9PSBmdW5jVHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKEVSUk9SX01FU1NBR0UgKyB0YXJnZXQpO1xuICAgIH1cbiAgICB2YXIgYXJncyA9IHNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTtcblxuICAgIHZhciBib3VuZDtcbiAgICB2YXIgYmluZGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIGJvdW5kKSB7XG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGFyZ2V0LmFwcGx5KFxuICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgYXJncy5jb25jYXQoc2xpY2UuY2FsbChhcmd1bWVudHMpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChPYmplY3QocmVzdWx0KSA9PT0gcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5hcHBseShcbiAgICAgICAgICAgICAgICB0aGF0LFxuICAgICAgICAgICAgICAgIGFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIGJvdW5kTGVuZ3RoID0gTWF0aC5tYXgoMCwgdGFyZ2V0Lmxlbmd0aCAtIGFyZ3MubGVuZ3RoKTtcbiAgICB2YXIgYm91bmRBcmdzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3VuZExlbmd0aDsgaSsrKSB7XG4gICAgICAgIGJvdW5kQXJncy5wdXNoKCckJyArIGkpO1xuICAgIH1cblxuICAgIGJvdW5kID0gRnVuY3Rpb24oJ2JpbmRlcicsICdyZXR1cm4gZnVuY3Rpb24gKCcgKyBib3VuZEFyZ3Muam9pbignLCcpICsgJyl7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9JykoYmluZGVyKTtcblxuICAgIGlmICh0YXJnZXQucHJvdG90eXBlKSB7XG4gICAgICAgIHZhciBFbXB0eSA9IGZ1bmN0aW9uIEVtcHR5KCkge307XG4gICAgICAgIEVtcHR5LnByb3RvdHlwZSA9IHRhcmdldC5wcm90b3R5cGU7XG4gICAgICAgIGJvdW5kLnByb3RvdHlwZSA9IG5ldyBFbXB0eSgpO1xuICAgICAgICBFbXB0eS5wcm90b3R5cGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBib3VuZDtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpbXBsZW1lbnRhdGlvbiA9IHJlcXVpcmUoJy4vaW1wbGVtZW50YXRpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCB8fCBpbXBsZW1lbnRhdGlvbjtcbiIsInZhciBiaW5kID0gcmVxdWlyZSgnZnVuY3Rpb24tYmluZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmQuY2FsbChGdW5jdGlvbi5jYWxsLCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KTtcbiIsIi8qKlxuICogQGF1dGhvciBUaXR1cyBXb3JtZXJcbiAqIEBjb3B5cmlnaHQgMjAxNiBUaXR1cyBXb3JtZXJcbiAqIEBsaWNlbnNlIE1JVFxuICogQG1vZHVsZSBoYXN0LXV0aWwtZnJvbS1wYXJzZTVcbiAqIEBmaWxlb3ZlcnZpZXcgVHJhbnNmb3JtIFBhcnNlNeKAmXMgQVNUIHRvIEhBU1QuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKiBEZXBlbmRlbmNpZXMuICovXG52YXIgaW5mb3JtYXRpb24gPSByZXF1aXJlKCdwcm9wZXJ0eS1pbmZvcm1hdGlvbicpO1xudmFyIGNhbWVsY2FzZSA9IHJlcXVpcmUoJ2NhbWVsY2FzZScpO1xudmFyIHZmaWxlTG9jYXRpb24gPSByZXF1aXJlKCd2ZmlsZS1sb2NhdGlvbicpO1xudmFyIGhhcyA9IHJlcXVpcmUoJ2hhcycpO1xudmFyIGggPSByZXF1aXJlKCdoYXN0c2NyaXB0Jyk7XG5cbi8qIEV4cG9zZS4gKi9cbm1vZHVsZS5leHBvcnRzID0gd3JhcHBlcjtcblxuLyogSGFuZGxlcnMuICovXG52YXIgbWFwID0ge1xuICAnI2RvY3VtZW50Jzogcm9vdCxcbiAgJyNkb2N1bWVudC1mcmFnbWVudCc6IHJvb3QsXG4gICcjdGV4dCc6IHRleHQsXG4gICcjY29tbWVudCc6IGNvbW1lbnQsXG4gICcjZG9jdW1lbnRUeXBlJzogZG9jdHlwZVxufTtcblxuLyoqXG4gKiBXcmFwcGVyIHRvIG5vcm1hbGlzZSBvcHRpb25zLlxuICpcbiAqIEBwYXJhbSB7QVNUTm9kZX0gYXN0IC0gUGFyc2U1IG5vZGUuXG4gKiBAcGFyYW0ge1ZGaWxlfE9iamVjdD99IFtvcHRpb25zXSAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJuIHtIQVNUTm9kZX0gLSBIQVNUIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIHdyYXBwZXIoYXN0LCBvcHRpb25zKSB7XG4gIHZhciBzZXR0aW5ncyA9IG9wdGlvbnMgfHwge307XG4gIHZhciBmaWxlO1xuXG4gIGlmIChzZXR0aW5ncy5tZXNzYWdlcykge1xuICAgIGZpbGUgPSBzZXR0aW5ncztcbiAgICBzZXR0aW5ncyA9IHt9O1xuICB9IGVsc2Uge1xuICAgIGZpbGUgPSBzZXR0aW5ncy5maWxlO1xuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybShhc3QsIHtcbiAgICBmaWxlOiBmaWxlLFxuICAgIHRvUG9zaXRpb246IGZpbGUgPyB2ZmlsZUxvY2F0aW9uKGZpbGUpLnRvUG9zaXRpb24gOiBudWxsLFxuICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2UsXG4gICAgbG9jYXRpb246IGZhbHNlXG4gIH0pO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtBU1ROb2RlfSBhc3QgLSBQYXJzZTUgbm9kZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBjb25maWcgLSBDb25maWd1cmF0aW9uLlxuICogQHJldHVybiB7SEFTVE5vZGV9IC0gSEFTVCBub2RlLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm0oYXN0LCBjb25maWcpIHtcbiAgdmFyIGZuID0gaGFzKG1hcCwgYXN0Lm5vZGVOYW1lKSA/IG1hcFthc3Qubm9kZU5hbWVdIDogZWxlbWVudDtcbiAgdmFyIGNoaWxkcmVuO1xuICB2YXIgbm9kZTtcbiAgdmFyIHBvc2l0aW9uO1xuXG4gIGlmIChhc3QuY2hpbGROb2Rlcykge1xuICAgIGNoaWxkcmVuID0gbm9kZXMoYXN0LmNoaWxkTm9kZXMsIGNvbmZpZyk7XG4gIH1cblxuICBub2RlID0gZm4oYXN0LCBjaGlsZHJlbiwgY29uZmlnKTtcblxuICBpZiAoYXN0Ll9fbG9jYXRpb24gJiYgY29uZmlnLnRvUG9zaXRpb24pIHtcbiAgICBjb25maWcubG9jYXRpb24gPSB0cnVlO1xuICAgIHBvc2l0aW9uID0gbG9jYXRpb24oYXN0Ll9fbG9jYXRpb24sIGFzdCwgbm9kZSwgY29uZmlnKTtcblxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgbm9kZS5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBjaGlsZHJlbi5cbiAqXG4gKiBAcGFyYW0ge0FycmF5LjxBU1ROb2RlPn0gY2hpbGRyZW4gLSBQYXJzZTUgbm9kZXMuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm4ge0FycmF5LjxIQVNUTm9kZT59IC0gSEFTVCBub2Rlcy5cbiAqL1xuZnVuY3Rpb24gbm9kZXMoY2hpbGRyZW4sIGNvbmZpZykge1xuICB2YXIgbGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IHRyYW5zZm9ybShjaGlsZHJlbltpbmRleF0sIGNvbmZpZyk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIGRvY3VtZW50LlxuICpcbiAqIFN0b3JlcyBgYXN0LnF1aXJrc01vZGVgIGluIGBub2RlLmRhdGEucXVpcmtzTW9kZWAuXG4gKlxuICogQHBhcmFtIHtBU1ROb2RlLjxEb2N1bWVudD59IGFzdCAtIFBhcnNlNSBkb2N1bWVudC5cbiAqIEBwYXJhbSB7QXJyYXkuPEFTVE5vZGU+fSBjaGlsZHJlbiAtIENoaWxkcmVuIG9mIGBhc3RgLlxuICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJuIHtIQVNUUm9vdH0gLSBSb290IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIHJvb3QoYXN0LCBjaGlsZHJlbiwgY29uZmlnKSB7XG4gIHZhciBub2RlID0ge1xuICAgIHR5cGU6ICdyb290JyxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgZGF0YToge1xuICAgICAgcXVpcmtzTW9kZTogYXN0LnF1aXJrc01vZGVcbiAgICB9XG4gIH07XG5cbiAgaWYgKGNvbmZpZy5maWxlICYmIGNvbmZpZy5sb2NhdGlvbikge1xuICAgIG5vZGUucG9zaXRpb24gPSBsb2NhdGlvbih7XG4gICAgICBzdGFydE9mZnNldDogMCxcbiAgICAgIGVuZE9mZnNldDogU3RyaW5nKGNvbmZpZy5maWxlKS5sZW5ndGhcbiAgICB9LCBhc3QsIG5vZGUsIGNvbmZpZyk7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBkb2N0eXBlLlxuICpcbiAqIEBwYXJhbSB7QVNUTm9kZS48RG9jdW1lbnRUeXBlPn0gYXN0IC0gUGFyc2U1IGRvY3R5cGUuXG4gKiBAcmV0dXJuIHtIQVNURG9jdHlwZX0gLSBEb2N0eXBlIG5vZGUuXG4gKi9cbmZ1bmN0aW9uIGRvY3R5cGUoYXN0KSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2RvY3R5cGUnLFxuICAgIG5hbWU6IGFzdC5uYW1lIHx8ICcnLFxuICAgIHB1YmxpYzogYXN0LnB1YmxpY0lkIHx8IG51bGwsXG4gICAgc3lzdGVtOiBhc3Quc3lzdGVtSWQgfHwgbnVsbFxuICB9O1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSBhIHRleHQuXG4gKlxuICogQHBhcmFtIHtBU1ROb2RlLjxUZXh0Pn0gYXN0IC0gUGFyc2U1IHRleHQuXG4gKiBAcmV0dXJuIHtIQVNUVGV4dH0gLSBUZXh0IG5vZGUuXG4gKi9cbmZ1bmN0aW9uIHRleHQoYXN0KSB7XG4gIHJldHVybiB7dHlwZTogJ3RleHQnLCB2YWx1ZTogYXN0LnZhbHVlfTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBjb21tZW50LlxuICpcbiAqIEBwYXJhbSB7QVNUTm9kZS48Q29tbWVudD59IGFzdCAtIFBhcnNlNSBjb21tZW50LlxuICogQHJldHVybiB7SEFTVENvbW1lbnR9IC0gQ29tbWVudCBub2RlLlxuICovXG5mdW5jdGlvbiBjb21tZW50KGFzdCkge1xuICByZXR1cm4ge3R5cGU6ICdjb21tZW50JywgdmFsdWU6IGFzdC5kYXRhfTtcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYW4gZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0ge0FTVE5vZGUuPEVsZW1lbnQ+fSBhc3QgLSBQYXJzZTUgZWxlbWVudC5cbiAqIEBwYXJhbSB7QXJyYXkuPEFTVE5vZGU+fSBjaGlsZHJlbiAtIENoaWxkcmVuIG9mIGBhc3RgLlxuICogQHJldHVybiB7SEFTVEVsZW1lbnR9IC0gRWxlbWVudCBub2RlLlxuICovXG5mdW5jdGlvbiBlbGVtZW50KGFzdCwgY2hpbGRyZW4pIHtcbiAgdmFyIHByb3BzID0ge307XG4gIHZhciB2YWx1ZXMgPSBhc3QuYXR0cnM7XG4gIHZhciBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIGF0dHI7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBhdHRyID0gdmFsdWVzW2luZGV4XTtcbiAgICBwcm9wc1soYXR0ci5wcmVmaXggPyBhdHRyLnByZWZpeCArICc6JyA6ICcnKSArIGF0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIGgoYXN0LnRhZ05hbWUsIHByb3BzLCBjaGlsZHJlbik7XG59XG5cbi8qKlxuICogQ3JlYXRlIGNsZWFuIHBvc2l0aW9uYWwgaW5mb3JtYXRpb24uXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gdG9Qb3NpdGlvbiAtIE9mZnNldCB0byBwb3NpdGlvbi5cbiAqIEBwYXJhbSB7T2JqZWN0P30gW2RpcnR5XSAtIFBhcnNlNSBsb2NhdGlvbiBpbmZvcm1hdGlvbi5cbiAqIEByZXR1cm4ge0xvY2F0aW9ufSAtIFN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zLlxuICovXG5mdW5jdGlvbiBsb2ModG9Qb3NpdGlvbiwgZGlydHkpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogdG9Qb3NpdGlvbihkaXJ0eS5zdGFydE9mZnNldCksXG4gICAgZW5kOiB0b1Bvc2l0aW9uKGRpcnR5LmVuZE9mZnNldClcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgY2xlYW4gcG9zaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaW5mbyAtIFBhcnNlNSBsb2NhdGlvbiBpbmZvcm1hdGlvbi5cbiAqIEBwYXJhbSB7SEFTVE5vZGV9IG5vZGUgLSBIQVNUIG5vZGUuXG4gKiBAcGFyYW0ge09iamVjdH0gYXN0IC0gUGFyc2U1IG5vZGUuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnIC0gT3B0aW9ucy5cbiAqIEByZXR1cm4ge0xvY2F0aW9ufSAtIFN0YXJ0IGFuZCBlbmQgcG9zaXRpb25zLlxuICovXG5mdW5jdGlvbiBsb2NhdGlvbihpbmZvLCBhc3QsIG5vZGUsIGNvbmZpZykge1xuICB2YXIgc3RhcnQgPSBpbmZvLnN0YXJ0T2Zmc2V0O1xuICB2YXIgZW5kID0gaW5mby5lbmRPZmZzZXQ7XG4gIHZhciB2YWx1ZXMgPSBpbmZvLmF0dHJzIHx8IHt9O1xuICB2YXIgcHJvcFBvc2l0aW9ucyA9IHt9O1xuICB2YXIgcHJvcDtcbiAgdmFyIG5hbWU7XG4gIHZhciByZWZlcmVuY2U7XG5cbiAgZm9yIChwcm9wIGluIHZhbHVlcykge1xuICAgIG5hbWUgPSAoaW5mb3JtYXRpb24ocHJvcCkgfHwge30pLnByb3BlcnR5TmFtZSB8fCBjYW1lbGNhc2UocHJvcCk7XG4gICAgcHJvcFBvc2l0aW9uc1tuYW1lXSA9IGxvYyhjb25maWcudG9Qb3NpdGlvbiwgdmFsdWVzW3Byb3BdKTtcbiAgfVxuXG4gIC8qIFVwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2lzc3Vlcy8xMDkgKi9cbiAgaWYgKG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnICYmICFpbmZvLmVuZFRhZykge1xuICAgIHJlZmVyZW5jZSA9IG5vZGUuY2hpbGRyZW5bbm9kZS5jaGlsZHJlbi5sZW5ndGggLSAxXTtcblxuICAgIC8qIFVuY2xvc2VkIHdpdGggY2hpbGRyZW46ICovXG4gICAgaWYgKHJlZmVyZW5jZSAmJiByZWZlcmVuY2UucG9zaXRpb24pIHtcbiAgICAgIGlmIChyZWZlcmVuY2UucG9zaXRpb24uZW5kKSB7XG4gICAgICAgIGVuZCA9IHJlZmVyZW5jZS5wb3NpdGlvbi5lbmQub2Zmc2V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gbnVsbDtcbiAgICAgIH1cbiAgICAvKiBVbmNsb3NlZCB3aXRob3V0IGNoaWxkcmVuOiAqL1xuICAgIH0gZWxzZSBpZiAoaW5mby5zdGFydFRhZykge1xuICAgICAgZW5kID0gaW5mby5zdGFydFRhZy5lbmRPZmZzZXQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbmZpZy52ZXJib3NlICYmIG5vZGUudHlwZSA9PT0gJ2VsZW1lbnQnKSB7XG4gICAgbm9kZS5kYXRhID0ge1xuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgb3BlbmluZzogbG9jKGNvbmZpZy50b1Bvc2l0aW9uLCBpbmZvLnN0YXJ0VGFnIHx8IGluZm8pLFxuICAgICAgICBjbG9zaW5nOiBpbmZvLmVuZFRhZyA/IGxvYyhjb25maWcudG9Qb3NpdGlvbiwgaW5mby5lbmRUYWcpIDogbnVsbCxcbiAgICAgICAgcHJvcGVydGllczogcHJvcFBvc2l0aW9uc1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzdGFydCA9IHR5cGVvZiBzdGFydCA9PT0gJ251bWJlcicgPyBjb25maWcudG9Qb3NpdGlvbihzdGFydCkgOiBudWxsO1xuICBlbmQgPSB0eXBlb2YgZW5kID09PSAnbnVtYmVyJyA/IGNvbmZpZy50b1Bvc2l0aW9uKGVuZCkgOiBudWxsO1xuXG4gIGlmICghc3RhcnQgJiYgIWVuZCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ge3N0YXJ0OiBzdGFydCwgZW5kOiBlbmR9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xyXG5cclxuZXhwb3J0cy5SRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAnXFx1RkZGRCc7XHJcblxyXG5leHBvcnRzLkNPREVfUE9JTlRTID0ge1xyXG4gICAgRU9GOiAtMSxcclxuICAgIE5VTEw6IDB4MDAsXHJcbiAgICBUQUJVTEFUSU9OOiAweDA5LFxyXG4gICAgQ0FSUklBR0VfUkVUVVJOOiAweDBELFxyXG4gICAgTElORV9GRUVEOiAweDBBLFxyXG4gICAgRk9STV9GRUVEOiAweDBDLFxyXG4gICAgU1BBQ0U6IDB4MjAsXHJcbiAgICBFWENMQU1BVElPTl9NQVJLOiAweDIxLFxyXG4gICAgUVVPVEFUSU9OX01BUks6IDB4MjIsXHJcbiAgICBOVU1CRVJfU0lHTjogMHgyMyxcclxuICAgIEFNUEVSU0FORDogMHgyNixcclxuICAgIEFQT1NUUk9QSEU6IDB4MjcsXHJcbiAgICBIWVBIRU5fTUlOVVM6IDB4MkQsXHJcbiAgICBTT0xJRFVTOiAweDJGLFxyXG4gICAgRElHSVRfMDogMHgzMCxcclxuICAgIERJR0lUXzk6IDB4MzksXHJcbiAgICBTRU1JQ09MT046IDB4M0IsXHJcbiAgICBMRVNTX1RIQU5fU0lHTjogMHgzQyxcclxuICAgIEVRVUFMU19TSUdOOiAweDNELFxyXG4gICAgR1JFQVRFUl9USEFOX1NJR046IDB4M0UsXHJcbiAgICBRVUVTVElPTl9NQVJLOiAweDNGLFxyXG4gICAgTEFUSU5fQ0FQSVRBTF9BOiAweDQxLFxyXG4gICAgTEFUSU5fQ0FQSVRBTF9GOiAweDQ2LFxyXG4gICAgTEFUSU5fQ0FQSVRBTF9YOiAweDU4LFxyXG4gICAgTEFUSU5fQ0FQSVRBTF9aOiAweDVBLFxyXG4gICAgR1JBVkVfQUNDRU5UOiAweDYwLFxyXG4gICAgTEFUSU5fU01BTExfQTogMHg2MSxcclxuICAgIExBVElOX1NNQUxMX0Y6IDB4NjYsXHJcbiAgICBMQVRJTl9TTUFMTF9YOiAweDc4LFxyXG4gICAgTEFUSU5fU01BTExfWjogMHg3QSxcclxuICAgIFJFUExBQ0VNRU5UX0NIQVJBQ1RFUjogMHhGRkZEXHJcbn07XHJcblxyXG5leHBvcnRzLkNPREVfUE9JTlRfU0VRVUVOQ0VTID0ge1xyXG4gICAgREFTSF9EQVNIX1NUUklORzogWzB4MkQsIDB4MkRdLCAvLy0tXHJcbiAgICBET0NUWVBFX1NUUklORzogWzB4NDQsIDB4NEYsIDB4NDMsIDB4NTQsIDB4NTksIDB4NTAsIDB4NDVdLCAvL0RPQ1RZUEVcclxuICAgIENEQVRBX1NUQVJUX1NUUklORzogWzB4NUIsIDB4NDMsIDB4NDQsIDB4NDEsIDB4NTQsIDB4NDEsIDB4NUJdLCAvL1tDREFUQVtcclxuICAgIENEQVRBX0VORF9TVFJJTkc6IFsweDVELCAweDVELCAweDNFXSwgLy9dXT5cclxuICAgIFNDUklQVF9TVFJJTkc6IFsweDczLCAweDYzLCAweDcyLCAweDY5LCAweDcwLCAweDc0XSwgLy9zY3JpcHRcclxuICAgIFBVQkxJQ19TVFJJTkc6IFsweDUwLCAweDU1LCAweDQyLCAweDRDLCAweDQ5LCAweDQzXSwgLy9QVUJMSUNcclxuICAgIFNZU1RFTV9TVFJJTkc6IFsweDUzLCAweDU5LCAweDUzLCAweDU0LCAweDQ1LCAweDREXSAvL1NZU1RFTVxyXG59O1xyXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBVTklDT0RFID0gcmVxdWlyZSgnLi4vY29tbW9uL3VuaWNvZGUnKTtcblxuLy9BbGlhc2VzXG52YXIgJCA9IFVOSUNPREUuQ09ERV9QT0lOVFM7XG5cbi8vVXRpbHNcblxuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc1N1cnJvZ2F0ZVBhaXIoY3AxLCBjcDIpIHtcbiAgICByZXR1cm4gY3AxID49IDB4RDgwMCAmJiBjcDEgPD0gMHhEQkZGICYmIGNwMiA+PSAweERDMDAgJiYgY3AyIDw9IDB4REZGRjtcbn1cblxuZnVuY3Rpb24gZ2V0U3Vycm9nYXRlUGFpckNvZGVQb2ludChjcDEsIGNwMikge1xuICAgIHJldHVybiAoY3AxIC0gMHhEODAwKSAqIDB4NDAwICsgMHgyNDAwICsgY3AyO1xufVxuXG5cbi8vQ29uc3RcbnZhciBERUZBVUxUX0JVRkZFUl9XQVRFUkxJTkUgPSAxIDw8IDE2O1xuXG5cbi8vUHJlcHJvY2Vzc29yXG4vL05PVEU6IEhUTUwgaW5wdXQgcHJlcHJvY2Vzc2luZ1xuLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtKVxudmFyIFByZXByb2Nlc3NvciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuaHRtbCA9IG51bGw7XG5cbiAgICB0aGlzLnBvcyA9IC0xO1xuICAgIHRoaXMubGFzdEdhcFBvcyA9IC0xO1xuICAgIHRoaXMubGFzdENoYXJQb3MgPSAtMTtcbiAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplID0gMDtcblxuICAgIHRoaXMuZ2FwU3RhY2sgPSBbXTtcblxuICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XG5cbiAgICB0aGlzLmxhc3RDaHVua1dyaXR0ZW4gPSBmYWxzZTtcbiAgICB0aGlzLmVuZE9mQ2h1bmtIaXQgPSBmYWxzZTtcbiAgICB0aGlzLmJ1ZmZlcldhdGVybGluZSA9IERFRkFVTFRfQlVGRkVSX1dBVEVSTElORTtcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShQcmVwcm9jZXNzb3IucHJvdG90eXBlLCAnc291cmNlUG9zJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kcm9wcGVkQnVmZmVyU2l6ZSArIHRoaXMucG9zO1xuICAgIH1cbn0pO1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLmRyb3BQYXJzZWRDaHVuayA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5wb3MgPiB0aGlzLmJ1ZmZlcldhdGVybGluZSkge1xuICAgICAgICB0aGlzLmxhc3RDaGFyUG9zIC09IHRoaXMucG9zO1xuICAgICAgICB0aGlzLmRyb3BwZWRCdWZmZXJTaXplICs9IHRoaXMucG9zO1xuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zKTtcbiAgICAgICAgdGhpcy5wb3MgPSAwO1xuICAgICAgICB0aGlzLmxhc3RHYXBQb3MgPSAtMTtcbiAgICAgICAgdGhpcy5nYXBTdGFjayA9IFtdO1xuICAgIH1cbn07XG5cblByZXByb2Nlc3Nvci5wcm90b3R5cGUuX2FkZEdhcCA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmdhcFN0YWNrLnB1c2godGhpcy5sYXN0R2FwUG9zKTtcbiAgICB0aGlzLmxhc3RHYXBQb3MgPSB0aGlzLnBvcztcbn07XG5cblByZXByb2Nlc3Nvci5wcm90b3R5cGUuX3Byb2Nlc3NIaWdoUmFuZ2VDb2RlUG9pbnQgPSBmdW5jdGlvbiAoY3ApIHtcbiAgICAvL05PVEU6IHRyeSB0byBwZWVrIGEgc3Vycm9nYXRlIHBhaXJcbiAgICBpZiAodGhpcy5wb3MgIT09IHRoaXMubGFzdENoYXJQb3MpIHtcbiAgICAgICAgdmFyIG5leHRDcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zICsgMSk7XG5cbiAgICAgICAgaWYgKGlzU3Vycm9nYXRlUGFpcihjcCwgbmV4dENwKSkge1xuICAgICAgICAgICAgLy9OT1RFOiB3ZSBoYXZlIGEgc3Vycm9nYXRlIHBhaXIuIFBlZWsgcGFpciBjaGFyYWN0ZXIgYW5kIHJlY2FsY3VsYXRlIGNvZGUgcG9pbnQuXG4gICAgICAgICAgICB0aGlzLnBvcysrO1xuICAgICAgICAgICAgY3AgPSBnZXRTdXJyb2dhdGVQYWlyQ29kZVBvaW50KGNwLCBuZXh0Q3ApO1xuXG4gICAgICAgICAgICAvL05PVEU6IGFkZCBnYXAgdGhhdCBzaG91bGQgYmUgYXZvaWRlZCBkdXJpbmcgcmV0cmVhdFxuICAgICAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOT1RFOiB3ZSd2ZSBoaXQgdGhlIGVuZCBvZiBjaHVuaywgc3RvcCBwcm9jZXNzaW5nIGF0IHRoaXMgcG9pbnRcbiAgICBlbHNlIGlmICghdGhpcy5sYXN0Q2h1bmtXcml0dGVuKSB7XG4gICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG4gICAgICAgIHJldHVybiAkLkVPRjtcbiAgICB9XG5cbiAgICByZXR1cm4gY3A7XG59O1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gKGNodW5rLCBpc0xhc3RDaHVuaykge1xuICAgIGlmICh0aGlzLmh0bWwpXG4gICAgICAgIHRoaXMuaHRtbCArPSBjaHVuaztcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5odG1sID0gY2h1bms7XG5cbiAgICB0aGlzLmxhc3RDaGFyUG9zID0gdGhpcy5odG1sLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG4gICAgdGhpcy5sYXN0Q2h1bmtXcml0dGVuID0gaXNMYXN0Q2h1bms7XG59O1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLmluc2VydEh0bWxBdEN1cnJlbnRQb3MgPSBmdW5jdGlvbiAoY2h1bmspIHtcbiAgICB0aGlzLmh0bWwgPSB0aGlzLmh0bWwuc3Vic3RyaW5nKDAsIHRoaXMucG9zICsgMSkgK1xuICAgICAgICAgICAgICAgIGNodW5rICtcbiAgICAgICAgICAgICAgICB0aGlzLmh0bWwuc3Vic3RyaW5nKHRoaXMucG9zICsgMSwgdGhpcy5odG1sLmxlbmd0aCk7XG5cbiAgICB0aGlzLmxhc3RDaGFyUG9zID0gdGhpcy5odG1sLmxlbmd0aCAtIDE7XG4gICAgdGhpcy5lbmRPZkNodW5rSGl0ID0gZmFsc2U7XG59O1xuXG5cblByZXByb2Nlc3Nvci5wcm90b3R5cGUuYWR2YW5jZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnBvcysrO1xuXG4gICAgaWYgKHRoaXMucG9zID4gdGhpcy5sYXN0Q2hhclBvcykge1xuICAgICAgICBpZiAoIXRoaXMubGFzdENodW5rV3JpdHRlbilcbiAgICAgICAgICAgIHRoaXMuZW5kT2ZDaHVua0hpdCA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuICQuRU9GO1xuICAgIH1cblxuICAgIHZhciBjcCA9IHRoaXMuaHRtbC5jaGFyQ29kZUF0KHRoaXMucG9zKTtcblxuICAgIC8vTk9URTogYW55IFUrMDAwQSBMSU5FIEZFRUQgKExGKSBjaGFyYWN0ZXJzIHRoYXQgaW1tZWRpYXRlbHkgZm9sbG93IGEgVSswMDBEIENBUlJJQUdFIFJFVFVSTiAoQ1IpIGNoYXJhY3RlclxuICAgIC8vbXVzdCBiZSBpZ25vcmVkLlxuICAgIGlmICh0aGlzLnNraXBOZXh0TmV3TGluZSAmJiBjcCA9PT0gJC5MSU5FX0ZFRUQpIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fYWRkR2FwKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoKTtcbiAgICB9XG5cbiAgICAvL05PVEU6IGFsbCBVKzAwMEQgQ0FSUklBR0UgUkVUVVJOIChDUikgY2hhcmFjdGVycyBtdXN0IGJlIGNvbnZlcnRlZCB0byBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyc1xuICAgIGlmIChjcCA9PT0gJC5DQVJSSUFHRV9SRVRVUk4pIHtcbiAgICAgICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4gJC5MSU5FX0ZFRUQ7XG4gICAgfVxuXG4gICAgdGhpcy5za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTtcblxuICAgIC8vT1BUSU1JWkFUSU9OOiBmaXJzdCBwZXJmb3JtIGNoZWNrIGlmIHRoZSBjb2RlIHBvaW50IGluIHRoZSBhbGxvd2VkIHJhbmdlIHRoYXQgY292ZXJzIG1vc3QgY29tbW9uXG4gICAgLy9IVE1MIGlucHV0IChlLmcuIEFTQ0lJIGNvZGVzKSB0byBhdm9pZCBwZXJmb3JtYW5jZS1jb3N0IG9wZXJhdGlvbnMgZm9yIGhpZ2gtcmFuZ2UgY29kZSBwb2ludHMuXG4gICAgcmV0dXJuIGNwID49IDB4RDgwMCA/IHRoaXMuX3Byb2Nlc3NIaWdoUmFuZ2VDb2RlUG9pbnQoY3ApIDogY3A7XG59O1xuXG5QcmVwcm9jZXNzb3IucHJvdG90eXBlLnJldHJlYXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMucG9zID09PSB0aGlzLmxhc3RHYXBQb3MpIHtcbiAgICAgICAgdGhpcy5sYXN0R2FwUG9zID0gdGhpcy5nYXBTdGFjay5wb3AoKTtcbiAgICAgICAgdGhpcy5wb3MtLTtcbiAgICB9XG5cbiAgICB0aGlzLnBvcy0tO1xufTtcblxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVU5JQ09ERSA9IHJlcXVpcmUoJy4uL2NvbW1vbi91bmljb2RlJyk7XG5cbi8vQWxpYXNlc1xudmFyICQgPSBVTklDT0RFLkNPREVfUE9JTlRTO1xuXG5cbmV4cG9ydHMuYXNzaWduID0gZnVuY3Rpb24gKHRva2VuaXplcikge1xuICAgIC8vTk9URTogb2J0YWluIFRva2VuaXplciBwcm90byB0aGlzIHdheSB0byBhdm9pZCBtb2R1bGUgY2lyY3VsYXIgcmVmZXJlbmNlc1xuICAgIHZhciB0b2tlbml6ZXJQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0b2tlbml6ZXIpLFxuICAgICAgICB0b2tlblN0YXJ0T2Zmc2V0ID0gLTEsXG4gICAgICAgIHRva2VuQ29sID0gLTEsXG4gICAgICAgIHRva2VuTGluZSA9IDEsXG4gICAgICAgIGlzRW9sID0gZmFsc2UsXG4gICAgICAgIGxpbmVTdGFydFBvc1N0YWNrID0gWzBdLFxuICAgICAgICBsaW5lU3RhcnRQb3MgPSAwLFxuICAgICAgICBjb2wgPSAtMSxcbiAgICAgICAgbGluZSA9IDE7XG5cbiAgICBmdW5jdGlvbiBhdHRhY2hMb2NhdGlvbkluZm8odG9rZW4pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEB0eXBlZGVmIHtPYmplY3R9IExvY2F0aW9uSW5mb1xuICAgICAgICAgKlxuICAgICAgICAgKiBAcHJvcGVydHkge051bWJlcn0gbGluZSAtIE9uZS1iYXNlZCBsaW5lIGluZGV4XG4gICAgICAgICAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBjb2wgLSBPbmUtYmFzZWQgY29sdW1uIGluZGV4XG4gICAgICAgICAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBzdGFydE9mZnNldCAtIFplcm8tYmFzZWQgZmlyc3QgY2hhcmFjdGVyIGluZGV4XG4gICAgICAgICAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBlbmRPZmZzZXQgLSBaZXJvLWJhc2VkIGxhc3QgY2hhcmFjdGVyIGluZGV4XG4gICAgICAgICAqL1xuICAgICAgICB0b2tlbi5sb2NhdGlvbiA9IHtcbiAgICAgICAgICAgIGxpbmU6IHRva2VuTGluZSxcbiAgICAgICAgICAgIGNvbDogdG9rZW5Db2wsXG4gICAgICAgICAgICBzdGFydE9mZnNldDogdG9rZW5TdGFydE9mZnNldCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvL05PVEU6IHBhdGNoIGNvbnN1bXB0aW9uIG1ldGhvZCB0byB0cmFjayBsaW5lL2NvbCBpbmZvcm1hdGlvblxuICAgIHRva2VuaXplci5fY29uc3VtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGNwID0gdG9rZW5pemVyUHJvdG8uX2NvbnN1bWUuY2FsbCh0aGlzKTtcblxuICAgICAgICAvL05PVEU6IExGIHNob3VsZCBiZSBpbiB0aGUgbGFzdCBjb2x1bW4gb2YgdGhlIGxpbmVcbiAgICAgICAgaWYgKGlzRW9sKSB7XG4gICAgICAgICAgICBpc0VvbCA9IGZhbHNlO1xuICAgICAgICAgICAgbGluZSsrO1xuICAgICAgICAgICAgbGluZVN0YXJ0UG9zU3RhY2sucHVzaCh0aGlzLnByZXByb2Nlc3Nvci5zb3VyY2VQb3MpO1xuICAgICAgICAgICAgbGluZVN0YXJ0UG9zID0gdGhpcy5wcmVwcm9jZXNzb3Iuc291cmNlUG9zO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNwID09PSAkLkxJTkVfRkVFRClcbiAgICAgICAgICAgIGlzRW9sID0gdHJ1ZTtcblxuICAgICAgICBjb2wgPSB0aGlzLnByZXByb2Nlc3Nvci5zb3VyY2VQb3MgLSBsaW5lU3RhcnRQb3MgKyAxO1xuXG4gICAgICAgIHJldHVybiBjcDtcbiAgICB9O1xuXG4gICAgdG9rZW5pemVyLl91bmNvbnN1bWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRva2VuaXplclByb3RvLl91bmNvbnN1bWUuY2FsbCh0aGlzKTtcbiAgICAgICAgaXNFb2wgPSBmYWxzZTtcblxuICAgICAgICB3aGlsZSAobGluZVN0YXJ0UG9zID4gdGhpcy5wcmVwcm9jZXNzb3Iuc291cmNlUG9zICYmIGxpbmVTdGFydFBvc1N0YWNrLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGxpbmVTdGFydFBvcyA9IGxpbmVTdGFydFBvc1N0YWNrLnBvcCgpO1xuICAgICAgICAgICAgbGluZS0tO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sID0gdGhpcy5wcmVwcm9jZXNzb3Iuc291cmNlUG9zIC0gbGluZVN0YXJ0UG9zICsgMTtcbiAgICB9O1xuXG4gICAgLy9OT1RFOiBwYXRjaCB0b2tlbiBjcmVhdGlvbiBtZXRob2RzIGFuZCBhdHRhY2ggbG9jYXRpb24gb2JqZWN0c1xuICAgIHRva2VuaXplci5fY3JlYXRlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdG9rZW5pemVyUHJvdG8uX2NyZWF0ZVN0YXJ0VGFnVG9rZW4uY2FsbCh0aGlzKTtcbiAgICAgICAgYXR0YWNoTG9jYXRpb25JbmZvKHRoaXMuY3VycmVudFRva2VuKTtcbiAgICB9O1xuXG4gICAgdG9rZW5pemVyLl9jcmVhdGVFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdG9rZW5pemVyUHJvdG8uX2NyZWF0ZUVuZFRhZ1Rva2VuLmNhbGwodGhpcyk7XG4gICAgICAgIGF0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRUb2tlbik7XG4gICAgfTtcblxuICAgIHRva2VuaXplci5fY3JlYXRlQ29tbWVudFRva2VuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0b2tlbml6ZXJQcm90by5fY3JlYXRlQ29tbWVudFRva2VuLmNhbGwodGhpcyk7XG4gICAgICAgIGF0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRUb2tlbik7XG4gICAgfTtcblxuICAgIHRva2VuaXplci5fY3JlYXRlRG9jdHlwZVRva2VuID0gZnVuY3Rpb24gKGluaXRpYWxOYW1lKSB7XG4gICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVEb2N0eXBlVG9rZW4uY2FsbCh0aGlzLCBpbml0aWFsTmFtZSk7XG4gICAgICAgIGF0dGFjaExvY2F0aW9uSW5mbyh0aGlzLmN1cnJlbnRUb2tlbik7XG4gICAgfTtcblxuICAgIHRva2VuaXplci5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAodHlwZSwgY2gpIHtcbiAgICAgICAgdG9rZW5pemVyUHJvdG8uX2NyZWF0ZUNoYXJhY3RlclRva2VuLmNhbGwodGhpcywgdHlwZSwgY2gpO1xuICAgICAgICBhdHRhY2hMb2NhdGlvbkluZm8odGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgIH07XG5cbiAgICB0b2tlbml6ZXIuX2NyZWF0ZUF0dHIgPSBmdW5jdGlvbiAoYXR0ck5hbWVGaXJzdENoKSB7XG4gICAgICAgIHRva2VuaXplclByb3RvLl9jcmVhdGVBdHRyLmNhbGwodGhpcywgYXR0ck5hbWVGaXJzdENoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ckxvY2F0aW9uID0ge1xuICAgICAgICAgICAgbGluZTogbGluZSxcbiAgICAgICAgICAgIGNvbDogY29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IHRoaXMucHJlcHJvY2Vzc29yLnNvdXJjZVBvcyxcbiAgICAgICAgICAgIGVuZE9mZnNldDogLTFcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgdG9rZW5pemVyLl9sZWF2ZUF0dHJOYW1lID0gZnVuY3Rpb24gKHRvU3RhdGUpIHtcbiAgICAgICAgdG9rZW5pemVyUHJvdG8uX2xlYXZlQXR0ck5hbWUuY2FsbCh0aGlzLCB0b1N0YXRlKTtcbiAgICAgICAgdGhpcy5fYXR0YWNoQ3VycmVudEF0dHJMb2NhdGlvbkluZm8oKTtcbiAgICB9O1xuXG4gICAgdG9rZW5pemVyLl9sZWF2ZUF0dHJWYWx1ZSA9IGZ1bmN0aW9uICh0b1N0YXRlKSB7XG4gICAgICAgIHRva2VuaXplclByb3RvLl9sZWF2ZUF0dHJWYWx1ZS5jYWxsKHRoaXMsIHRvU3RhdGUpO1xuICAgICAgICB0aGlzLl9hdHRhY2hDdXJyZW50QXR0ckxvY2F0aW9uSW5mbygpO1xuICAgIH07XG5cbiAgICB0b2tlbml6ZXIuX2F0dGFjaEN1cnJlbnRBdHRyTG9jYXRpb25JbmZvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyTG9jYXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iuc291cmNlUG9zO1xuXG4gICAgICAgIGlmICghdGhpcy5jdXJyZW50VG9rZW4ubG9jYXRpb24uYXR0cnMpXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5sb2NhdGlvbi5hdHRycyA9IHt9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFRhZ0xvY2F0aW9uSW5mb1xuICAgICAgICAgKiBAZXh0ZW5kcyBMb2NhdGlvbkluZm9cbiAgICAgICAgICpcbiAgICAgICAgICogQHByb3BlcnR5IHtEaWN0aW9uYXJ5PFN0cmluZywgTG9jYXRpb25JbmZvPn0gYXR0cnMgLSBTdGFydCB0YWcgYXR0cmlidXRlcycgbG9jYXRpb24gaW5mby5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLmF0dHJzW3RoaXMuY3VycmVudEF0dHIubmFtZV0gPSB0aGlzLmN1cnJlbnRBdHRyTG9jYXRpb247XG4gICAgfTtcblxuICAgIC8vTk9URTogcGF0Y2ggdG9rZW4gZW1pc3Npb24gbWV0aG9kcyB0byBkZXRlcm1pbmUgZW5kIGxvY2F0aW9uXG4gICAgdG9rZW5pemVyLl9lbWl0Q3VycmVudFRva2VuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgcGVuZGluZyBjaGFyYWN0ZXIgdG9rZW4gbWFrZSBpdCdzIGVuZCBsb2NhdGlvbiBlcXVhbCB0byB0aGVcbiAgICAgICAgLy9jdXJyZW50IHRva2VuJ3Mgc3RhcnQgbG9jYXRpb24uXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbilcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLnN0YXJ0T2Zmc2V0O1xuXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9IHRoaXMucHJlcHJvY2Vzc29yLnNvdXJjZVBvcyArIDE7XG4gICAgICAgIHRva2VuaXplclByb3RvLl9lbWl0Q3VycmVudFRva2VuLmNhbGwodGhpcyk7XG4gICAgfTtcblxuICAgIHRva2VuaXplci5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy9OT1RFOiBpZiB3ZSBoYXZlIGNoYXJhY3RlciB0b2tlbiBhbmQgaXQncyBsb2NhdGlvbiB3YXNuJ3Qgc2V0IGluIHRoZSBfZW1pdEN1cnJlbnRUb2tlbigpLFxuICAgICAgICAvL3RoZW4gc2V0IGl0J3MgbG9jYXRpb24gYXQgdGhlIGN1cnJlbnQgcHJlcHJvY2Vzc29yIHBvc2l0aW9uLlxuICAgICAgICAvL1dlIGRvbid0IG5lZWQgdG8gaW5jcmVtZW50IHByZXByb2Nlc3NvciBwb3NpdGlvbiwgc2luY2UgY2hhcmFjdGVyIHRva2VuXG4gICAgICAgIC8vZW1pc3Npb24gaXMgYWx3YXlzIGZvcmNlZCBieSB0aGUgc3RhcnQgb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRva2VuIGhlcmUuXG4gICAgICAgIC8vU28sIHdlIGFscmVhZHkgaGF2ZSBhZHZhbmNlZCBwb3NpdGlvbi5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuICYmIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuLmxvY2F0aW9uLmVuZE9mZnNldCA9PT0gLTEpXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5sb2NhdGlvbi5lbmRPZmZzZXQgPSB0aGlzLnByZXByb2Nlc3Nvci5zb3VyY2VQb3M7XG5cbiAgICAgICAgdG9rZW5pemVyUHJvdG8uX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4uY2FsbCh0aGlzKTtcbiAgICB9O1xuXG4gICAgLy9OT1RFOiBwYXRjaCBpbml0aWFsIHN0YXRlcyBmb3IgZWFjaCBtb2RlIHRvIG9idGFpbiB0b2tlbiBzdGFydCBwb3NpdGlvblxuICAgIE9iamVjdC5rZXlzKHRva2VuaXplclByb3RvLk1PREUpXG5cbiAgICAgICAgLm1hcChmdW5jdGlvbiAobW9kZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlbml6ZXJQcm90by5NT0RFW21vZGVOYW1lXTtcbiAgICAgICAgfSlcblxuICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHRva2VuaXplcltzdGF0ZV0gPSBmdW5jdGlvbiAoY3ApIHtcbiAgICAgICAgICAgICAgICB0b2tlblN0YXJ0T2Zmc2V0ID0gdGhpcy5wcmVwcm9jZXNzb3Iuc291cmNlUG9zO1xuICAgICAgICAgICAgICAgIHRva2VuTGluZSA9IGxpbmU7XG4gICAgICAgICAgICAgICAgdG9rZW5Db2wgPSBjb2w7XG4gICAgICAgICAgICAgICAgdG9rZW5pemVyUHJvdG9bc3RhdGVdLmNhbGwodGhpcywgY3ApO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xyXG5cclxuLy9OT1RFOiB0aGlzIGZpbGUgY29udGFpbnMgYXV0by1nZW5lcmF0ZWQgdHJpZSBzdHJ1Y3R1cmUgdGhhdCBpcyB1c2VkIGZvciBuYW1lZCBlbnRpdHkgcmVmZXJlbmNlcyBjb25zdW1wdGlvblxyXG4vLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI3Rva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXMgYW5kXHJcbi8vaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvbmFtZWQtY2hhcmFjdGVyLXJlZmVyZW5jZXMuaHRtbCNuYW1lZC1jaGFyYWN0ZXItcmVmZXJlbmNlcylcclxubW9kdWxlLmV4cG9ydHMgPSB7NjU6e2w6ezY5OntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMTk4XX19LGM6WzE5OF19fX19fX19LDc3OntsOns4MDp7bDp7NTk6e2M6WzM4XX19LGM6WzM4XX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsxOTNdfX0sYzpbMTkzXX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjU4XX19fX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsxOTRdfX0sYzpbMTk0XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDBdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNjhdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzE5Ml19fSxjOlsxOTJdfX19fX19fX19LDEwODp7bDp7MTEyOntsOnsxMDQ6e2w6ezk3OntsOns1OTp7YzpbOTEzXX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjU2XX19fX19fX19fSwxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODM1XX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI2MF19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIwXX19fX19fX0sMTEyOntsOnsxMTI6e2w6ezEwODp7bDp7MTIxOntsOns3MDp7bDp7MTE3OntsOnsxMTA6e2w6ezk5OntsOnsxMTY6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Mjg5XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMTk3XX19LGM6WzE5N119fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2NF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTAzOntsOnsxMTA6e2w6ezU5OntjOls4Nzg4XX19fX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMTk1XX19LGM6WzE5NV19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzE5Nl19fSxjOlsxOTZdfX19fX19fSw2Njp7bDp7OTc6e2w6ezk5OntsOnsxMDc6e2w6ezExNTp7bDp7MTA4OntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4NzI2XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezExODp7bDp7NTk6e2M6WzEwOTgzXX19fSwxMTk6e2w6ezEwMTp7bDp7MTAwOntsOns1OTp7YzpbODk2Nl19fX19fX19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA0MV19fX19fSwxMDE6e2w6ezk5OntsOns5Nzp7bDp7MTE3OntsOnsxMTU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NTddfX19fX19fX19fX0sMTE0OntsOnsxMTA6e2w6ezExMTp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls4NDkyXX19fX19fX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MTRdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA2OV19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIxXX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzI4XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDkyXX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezExMjp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4NzgyXX19fX19fX19fX19fX0sNjc6e2w6ezcyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA2M119fX19fX19LDc5OntsOns4MDp7bDp7ODk6e2w6ezU5OntjOlsxNjldfX0sYzpbMTY5XX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzI2Ml19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODkxNF19LDEwNTp7bDp7MTE2OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7MTA1OntsOnsxMDI6e2w6ezEwMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwNTp7bDp7OTc6e2w6ezEwODp7bDp7Njg6e2w6ezU5OntjOls4NTE3XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTIxOntsOnsxMDg6e2w6ezEwMTp7bDp7MTIxOntsOnsxMTU6e2w6ezU5OntjOls4NDkzXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjY4XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlsxOTldfX0sYzpbMTk5XX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjY0XX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzUyXX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI2Nl19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7MTA4OntsOns5Nzp7bDp7NTk6e2M6WzE4NF19fX19fX19fX19fSwxMTA6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzE4M119fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0OTNdfX19fX0sMTA0OntsOnsxMDU6e2w6ezU5OntjOls5MzVdfX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOnsxMDg6e2w6ezEwMTp7bDp7Njg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODg1N119fX19fX19LDc3OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODU0XX19fX19fX19fX19LDgwOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1M119fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NTVdfX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTExOntsOns5OTp7bDp7MTA3OntsOnsxMTk6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzU0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTc6e2w6ezExNDp7bDp7MTA4OntsOnsxMjE6e2w6ezY4OntsOnsxMTE6e2w6ezExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIyMV19fX19fX19fX19fX19fX19fX19fX19fSw4MTp7bDp7MTE3OntsOnsxMTE6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbODIxN119fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4NzU5XX0sMTAxOntsOns1OTp7YzpbMTA4NjhdfX19fX19fX19LDExMDp7bDp7MTAzOntsOnsxMTQ6e2w6ezExNzp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MDFdfX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1MV19fX19fX19LDExNjp7bDp7MTExOntsOnsxMTc6e2w6ezExNDp7bDp7NzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODc1MF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOls4NDUwXX19fSwxMTQ6e2w6ezExMTp7bDp7MTAwOntsOnsxMTc6e2w6ezk5OntsOnsxMTY6e2w6ezU5OntjOls4NzIwXX19fX19fX19fX19fX19fSwxMTc6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7Njc6e2w6ezEwODp7bDp7MTExOntsOns5OTp7bDp7MTA3OntsOnsxMTk6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzU1XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMTE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA3OTldfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2Nl19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODkxNV19LDY3OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODc4MV19fX19fX19fX19fX19LDY4OntsOns2ODp7bDp7NTk6e2M6Wzg1MTddfSwxMTE6e2w6ezExNjp7bDp7MTE0OntsOns5Nzp7bDp7MTA0OntsOnsxMDA6e2w6ezU5OntjOlsxMDUxM119fX19fX19fX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDI2XX19fX19fX0sODM6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDI5XX19fX19fX0sOTA6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM5XX19fX19fX0sOTc6e2w6ezEwMzp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzgyMjVdfX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwOV19fX19fSwxMTU6e2w6ezEwNDp7bDp7MTE4OntsOns1OTp7YzpbMTA5ODBdfX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI3MF19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0NF19fX19fSwxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MTFdfSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTE2XX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3MV19fX19fSwxMDU6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOnsxMDU6e2w6ezExNjp7bDp7MTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjU6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMTgwXX19fX19fX19fX19LDY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzcyOV19fX0sMTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY1OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzczM119fX19fX19fX19fX19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOls5Nl19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbNzMyXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMDk6e2w6ezExMTp7bDp7MTEwOntsOnsxMDA6e2w6ezU5OntjOls4OTAwXX19fX19fX19fX19LDEwMjp7bDp7MTAyOntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7NTk6e2M6Wzg1MThdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTIzXX19fX19LDExNjp7bDp7NTk6e2M6WzE2OF19LDY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg0MTJdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4Nzg0XX19fX19fX19fX19fX0sMTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMTE6e2w6ezExNzp7bDp7MTE0OntsOns3Mzp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzUxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTY4XX19fSwxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTldfX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTZdfX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjBdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6WzEwOTgwXX19fX19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMl19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMzXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU4XX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NzJdfX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTddfX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYxXX19fX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezk5OntsOns5Nzp7bDp7MTA4OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTVdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTE1XX19fX19fX0sODU6e2w6ezExMjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2OTNdfX19fX19fX19fX19fX19fX19fX19fX19fSw2Njp7bDp7MTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzg1XX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc2XX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5MF19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODYzN119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODJdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5MV19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODY0MV19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODNdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg2OF19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE1XX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU5XX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk2N119fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlsyNzJdfX19fX19fX19fX19fSw2OTp7bDp7Nzg6e2w6ezcxOntsOns1OTp7YzpbMzMwXX19fX19LDg0OntsOns3Mjp7bDp7NTk6e2M6WzIwOF19fSxjOlsyMDhdfX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIwMV19fSxjOlsyMDFdfX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI4Ml19fX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjAyXX19LGM6WzIwMl19fX19fSwxMjE6e2w6ezU5OntjOlsxMDY5XX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNzhdfX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3Ml19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjAwXX19LGM6WzIwMF19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTJdfX19fX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjc0XX19fX19fX0sMTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7ODM6e2w6ezEwOTp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOns4Mzp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk3MjNdfX19fX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMjE6e2w6ezgzOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7ODM6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjQzXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODBdfX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyNF19fX19fX19LDExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5MTddfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODY5XX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzBdfX19fX19fX19fX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezk4OntsOnsxMTQ6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezU5OntjOls4NjUyXX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDk2XX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA4NjddfX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTE5XX19fX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMDNdfX0sYzpbMjAzXX19fX19LDEyMDp7bDp7MTA1OntsOnsxMTU6e2w6ezExNjp7bDp7MTE1OntsOns1OTp7YzpbODcwN119fX19fX19fX0sMTEyOntsOnsxMTE6e2w6ezExMDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2OTp7bDp7NTk6e2M6Wzg1MTldfX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjBdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzNdfX19fX0sMTA1OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDA6e2w6ezgzOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7ODM6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NzI0XX19fX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTIxOntsOns4Mzp7bDp7MTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns1OTp7YzpbOTY0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTI1XX19fX19LDExNDp7bDp7NjU6e2w6ezEwODp7bDp7MTA4OntsOns1OTp7YzpbODcwNF19fX19fX19fX0sMTE3OntsOnsxMTQ6e2w6ezEwNTp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4NDk3XX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5N119fX19fX19fX0sNzE6e2w6ezc0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyN119fX19fX19LDg0OntsOns1OTp7YzpbNjJdfX0sYzpbNjJdfSw5Nzp7bDp7MTA5OntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTE1XX0sMTAwOntsOns1OTp7YzpbOTg4XX19fX19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyODZdfX19fX19fX19fX0sOTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzI5MF19fX19fX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjg0XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0M119fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMjg4XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwNzRdfX19fX0sMTAzOntsOns1OTp7YzpbODkyMV19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDEyNl19fX19fX19LDExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgwNV19LDc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODkyM119fX19fX19fX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODA3XX19fX19fX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTE0XX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjNdfX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA4NzhdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODE5XX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3MF19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTFdfX19fX0sNzI6e2w6ezY1OntsOns4Mjp7bDp7Njg6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY2XX19fX19fX19fX19LDk3OntsOns5OTp7bDp7MTAxOntsOnsxMDc6e2w6ezU5OntjOls3MTFdfX19fX19fSwxMTY6e2w6ezU5OntjOls5NF19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjkyXX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjBdfX19fX0sMTA1OntsOnsxMDg6e2w6ezk4OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0NTldfX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NjFdfX19fX0sMTE0OntsOnsxMDU6e2w6ezEyMjp7bDp7MTExOntsOnsxMTA6e2w6ezExNjp7bDp7OTc6e2w6ezEwODp7bDp7NzY6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls5NDcyXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDU5XX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzI5NF19fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NzI6e2w6ezExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyXX19fX19fX19fX19fX19fX19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg3ODNdfX19fX19fX19fX19fX19fX19fSw3Mzp7bDp7Njk6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQ1XX19fX19fX0sNzQ6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlszMDZdfX19fX19fX19LDc5OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyNV19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIwNV19fSxjOlsyMDVdfX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyMDZdfX0sYzpbMjA2XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNDhdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMwNF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ2NV19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjA0XX19LGM6WzIwNF19fX19fX19fX0sMTA5OntsOns1OTp7YzpbODQ2NV19LDk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjk4XX19fX19LDEwMzp7bDp7MTA1OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezEyMTp7bDp7NzM6e2w6ezU5OntjOls4NTIwXX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODY1OF19fX19fX19fX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OF19LDEwMTp7bDp7MTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzQ3XX19fX19fX19fSwxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODg5OF19fX19fX19fX19fX19fX19fX19fX0sMTE4OntsOnsxMDU6e2w6ezExNTp7bDp7MTA1OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY3OntsOnsxMTE6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzgyOTFdfX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzgyOTBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMwMl19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTI4XX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5MjFdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NDY0XX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyOTZdfX19fX19fX19fX0sMTE3OntsOnsxMDc6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMwXX19fX19fX0sMTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMDddfX0sYzpbMjA3XX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszMDhdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDQ5XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDc3XX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxMjldfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzNdfX19fX0sMTAxOntsOnsxMTQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMyXX19fX19fX19fX19LDExNzp7bDp7MTA3OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAyOF19fX19fX19fX19fSw3NTp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDYxXX19fX19fX0sNzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM2XX19fX19fX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOns5Nzp7bDp7NTk6e2M6WzkyMl19fX19fX19fX0sOTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxMF19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA1MF19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3OF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMwXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTc0XX19fX19fX19fSw3Njp7bDp7NzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDMzXX19fX19fX0sODQ6e2w6ezU5OntjOls2MF19fSxjOls2MF19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMxM119fX19fX19fX0sMTA5OntsOns5ODp7bDp7MTAwOntsOns5Nzp7bDp7NTk6e2M6WzkyM119fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlsxMDIxOF19fX19fSwxMTI6e2w6ezEwODp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezExNjp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4NDY2XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwNl19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMxN119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzE1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDUxXX19fX19LDEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE2XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTJdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NzZdfX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY0Nl19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDY3OntsOnsxMDE6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbODk2OF19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE0XX19fX19fX19fX19fX19fX19fX19fX19LDExOTp7bDp7MTEwOntsOns4NDp7bDp7MTAxOntsOnsxMDE6e2w6ezg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTNdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDNdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg1XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MF19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5Nl19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc0XX19fX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjddfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxMl19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg2XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODg4Ml19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDNdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODg0XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4NTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3N119fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTkyXX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjM5XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4NF19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MzZdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc4XX19fX19fX19fX19fX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTZdfX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjYwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTU6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5MjJdfX19fX19fX19fX19fX19fX19fX19fX19fSw3MDp7bDp7MTE3OntsOnsxMDg6e2w6ezEwODp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgwNl19fX19fX19fX19fX19fX19fX19LDcxOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTc6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4ODIyXX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTEzXX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwODc3XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgxOF19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA3OV19fX19fSwxMDg6e2w6ezU5OntjOls4OTIwXX0sMTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjZdfX19fX19fX19fX19fX19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMxOV19fX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAzOntsOns3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjI5XX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzBdfX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMyXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDIzM119fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMxXX19fX19LDExOTp7bDp7MTAxOntsOnsxMTQ6e2w6ezc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYwMV19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjZdfX19fX0sMTA0OntsOns1OTp7YzpbODYyNF19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMzIxXX19fX19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTBdfX19fX0sNzc6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDUwMV19fX19fSw5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA1Ml19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4Mjg3XX19fX19fX19fX19fX19fX19fX0sMTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ5OV19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4MF19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezgwOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyM119fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTMyXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5OV19fX19fX19LDExNzp7bDp7NTk6e2M6WzkyNF19fX19fSw3ODp7bDp7NzQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM0XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzIzXX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzMyN119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzI1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDUzXX19fX19LDEwMTp7bDp7MTAzOntsOns5Nzp7bDp7MTE2OntsOnsxMDU6e2w6ezExODp7bDp7MTAxOntsOns3Nzp7bDp7MTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTE3OntsOnsxMDk6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA0OntsOnsxMDU6e2w6ezk5OntsOnsxMDc6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX0sMTEwOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDNdfX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOnsxMTQ6e2w6ezEyMTp7bDp7ODQ6e2w6ezEwNDp7bDp7MTA1OntsOnsxMTA6e2w6ezgzOntsOnsxMTI6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbODIwM119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTY6e2w6ezEwMTp7bDp7MTAwOntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgxMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODEwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOns3Njp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzEwXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODFdfX19fX0sMTExOntsOns2Njp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMDc6e2w6ezU5OntjOls4Mjg4XX19fX19fX19fX19LDExMDp7bDp7NjY6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTA3OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzE2MF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NjldfX19fX0sMTE2OntsOns1OTp7YzpbMTA5ODhdfSw2Nzp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7MTE0OntsOnsxMTc6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4ODAyXX19fX19fX19fX19fX19fX19LDExNzp7bDp7MTEyOntsOns2Nzp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4MTNdfX19fX19fX19fX19fSw2ODp7bDp7MTExOntsOnsxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTY6e2w6ezEwNTp7bDp7OTk6e2w6ezk3OntsOnsxMDg6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTNdfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDBdfSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODc3MCw4MjRdfX19fX19fX19fX19fX19fX19fSwxMjA6e2w6ezEwNTp7bDp7MTE1OntsOnsxMTY6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MDhdfX19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgxNV19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MTddfX19fX19fX19fX0sNzA6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MDcsODI0XX19fX19fX19fX19fX19fX19fX0sNzE6e2w6ezExNDp7bDp7MTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg4MTEsODI0XX19fX19fX19fX19fX19fSw3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjVdfX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA4NzgsODI0XX19fX19fX19fX19fX19fX19fX19fSw4NDp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODgyMV19fX19fX19fX19fX19fX19fX19fX19fX19LDcyOntsOnsxMTc6e2w6ezEwOTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NzI6e2w6ezExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyLDgyNF19fX19fX19fX19fX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzgzLDgyNF19fX19fX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns4NDp7bDp7MTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4OTM4XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDcwMyw4MjRdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4OTQwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODE0XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgxNl19fX19fX19fX19fSw3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbODgyNF19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOls4ODEwLDgyNF19fX19fX19fX0sODM6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDg3Nyw4MjRdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODIwXX19fX19fX19fX19fX19fX19fX0sNzg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezEwMTp7bDp7MTAwOntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns3MTp7bDp7MTE0OntsOnsxMDE6e2w6ezk3OntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOns1OTp7YzpbMTA5MTQsODI0XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDc2OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns3Njp7bDp7MTAxOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTEzLDgyNF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4MDp7bDp7MTE0OntsOnsxMDE6e2w6ezk5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4ODMyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbMTA5MjcsODI0XX19fX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODkyOF19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgyOntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTZdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7ODQ6e2w6ezExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODkzOV19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDQsODI0XX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODk0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDgzOntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOns4Mzp7bDp7MTE3OntsOns5ODp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDcsODI0XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODkzMF19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ4LDgyNF19LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MzFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezk4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNCw4NDAyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0MF19fX19fX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7MTAxOntsOnsxMDE6e2w6ezEwMDp7bDp7MTE1OntsOns1OTp7YzpbODgzM119LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwOTI4LDgyNF19fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg5MjldfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODMxLDgyNF19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNSw4NDAyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NjldfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzcyXX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4Nzc1XX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzddfX19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezk5OntsOns5Nzp7bDp7MTA4OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg3NDBdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk3N119fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjA5XX19LGM6WzIwOV19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTI1XX19fX19LDc5OntsOns2OTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzMzOF19fX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMjExXX19LGM6WzIxMV19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzIxMl19fSxjOlsyMTJdfX19fX0sMTIxOntsOns1OTp7YzpbMTA1NF19fX19fSwxMDA6e2w6ezk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzMzNl19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4Ml19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjEwXX19LGM6WzIxMF19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzMzMl19fX19fX19LDEwMTp7bDp7MTAzOntsOns5Nzp7bDp7NTk6e2M6WzkzN119fX19fX19LDEwNTp7bDp7OTk6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls5MjddfX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM0XX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezExMDp7bDp7Njc6e2w6ezExNzp7bDp7MTE0OntsOnsxMDg6e2w6ezEyMTp7bDp7Njg6e2w6ezExMTp7bDp7MTE3OntsOns5ODp7bDp7MTA4OntsOnsxMDE6e2w6ezgxOntsOnsxMTc6e2w6ezExMTp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOls4MjIwXX19fX19fX19fX19fX19fX19fX19fX19LDgxOntsOnsxMTc6e2w6ezExMTp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOls4MjE2XX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMDgzNl19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTc4XX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbMjE2XX19LGM6WzIxNl19fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyMTNdfX0sYzpbMjEzXX19fX19LDEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDgwN119fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjE0XX19LGM6WzIxNF19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTE0OntsOns2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyNTRdfX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzkxODJdfX19LDEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls5MTQwXX19fX19fX19fX19fX19fSw4MDp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA0OntsOnsxMDE6e2w6ezExNTp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls5MTgwXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOns2ODp7bDp7NTk6e2M6Wzg3MDZdfX19fX19fX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDU1XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDgzXX19fX19LDEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTM0XX19fX19LDEwNTp7bDp7NTk6e2M6WzkyOF19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7Nzc6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzE3N119fX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwNTp7bDp7MTEwOntsOns5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTI6e2w6ezEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbODQ2MF19fX19fX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6Wzg0NzNdfX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMDkzOV19LDEwMTp7bDp7OTk6e2w6ezEwMTp7bDp7MTAwOntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg4MjZdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOlsxMDkyN119fX19fX19fX19fSw4Mzp7bDp7MTA4OntsOns5Nzp7bDp7MTEwOntsOnsxMTY6e2w6ezY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MjhdfX19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4ODMwXX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4MjQzXX19fX19fX0sMTExOntsOnsxMDA6e2w6ezExNzp7bDp7OTk6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTldfX19fX19fX19LDExMjp7bDp7MTExOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg3NTldfSw5Nzp7bDp7MTA4OntsOns1OTp7YzpbODczM119fX19fX19fX19fX19fX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5NzldfX19fX0sMTA1OntsOns1OTp7YzpbOTM2XX19fX19fX0sODE6e2w6ezg1OntsOns3OTp7bDp7ODQ6e2w6ezU5OntjOlszNF19fSxjOlszNF19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4NF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ3NF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4MF19fX19fX19fX0sODI6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxMl19fX19fX19fX0sNjk6e2w6ezcxOntsOns1OTp7YzpbMTc0XX19LGM6WzE3NF19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzQwXX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjE5XX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwOF19LDExNjp7bDp7MTA4OntsOns1OTp7YzpbMTA1MThdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzQ0XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNDJdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNTZdfX19fX0sMTAxOntsOns1OTp7YzpbODQ3Nl19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOns2OTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTVdfX19fX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7OTg6e2w6ezExNDp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6Wzg2NTFdfX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOns5ODp7bDp7MTE0OntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns1OTp7YzpbMTA2MDddfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ3Nl19fX19fSwxMDQ6e2w6ezExMTp7bDp7NTk6e2M6WzkyOV19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezY1OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezY2OntsOnsxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTA3OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzEwMjE3XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTRdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NzddfX19fX19fSw3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NDRdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjc6e2w6ezEwMTp7bDp7MTA1OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOls4OTY5XX19fX19fX19fX19fX19fSw2ODp7bDp7MTExOntsOnsxMTc6e2w6ezk4OntsOnsxMDg6e2w6ezEwMTp7bDp7NjY6e2w6ezExNDp7bDp7OTc6e2w6ezk5OntsOnsxMDc6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbMTAyMTVdfX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOnsxMTA6e2w6ezg0OntsOnsxMDE6e2w6ezEwMTp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4OV19fX19fX19fX19fX19fX19fX19LDg2OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODY0Ml19LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1ODFdfX19fX19fX19fX19fX19fX19fX19fX19fX19LDcwOntsOnsxMDg6e2w6ezExMTp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4OTcxXX19fX19fX19fX19LDg0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjZdfSw2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYxNF19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg3XX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODg4M119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA3MDRdfX19fX19fSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4ODg1XX19fX19fX19fX19fX19fX19fX19fX19fX19fSw4NTp7bDp7MTEyOntsOns2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7ODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDU3NV19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTg4XX19fX19fX19fX19fX19fX19fX0sODY6e2w6ezEwMTp7bDp7OTk6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4NjM4XX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU4MF19fX19fX19fX19fX19fX19fX19fX19fSw4Njp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOnsxMTE6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDBdfSw2Njp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTc5XX19fX19fX19fX19fX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NThdfX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ3N119fX19fSwxMTc6e2w6ezExMDp7bDp7MTAwOntsOns3Mzp7bDp7MTA5OntsOnsxMTI6e2w6ezEwODp7bDp7MTA1OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwNjA4XX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY2N119fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ3NV19fX19fSwxMDQ6e2w6ezU5OntjOls4NjI1XX19fX19LDExNzp7bDp7MTA4OntsOnsxMDE6e2w6ezY4OntsOnsxMDE6e2w6ezEwODp7bDp7OTc6e2w6ezEyMTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOlsxMDc0MF19fX19fX19fX19fX19fX19fX19fX19fSw4Mzp7bDp7NzI6e2w6ezY3OntsOns3Mjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjVdfX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDY0XX19fX19fX0sNzk6e2w6ezcwOntsOns4NDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjhdfX19fX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzQ2XX19fX19fX19fX19LDk5OntsOns1OTp7YzpbMTA5NDBdfSw5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM1Ml19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzUwXX19fX19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNDhdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU3XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDg2XX19fX19LDEwNDp7bDp7MTExOntsOnsxMTQ6e2w6ezExNjp7bDp7Njg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk1XX19fX19fX19fX19fX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkyXX19fX19fX19fX19fX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTRdfX19fX19fX19fX19fX19fX19fX19LDg1OntsOnsxMTI6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkzXX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTMxXX19fX19fX19fSwxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7Njc6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NzI4XX19fX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM4XX19fX19fX0sMTEzOntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MzBdfX19fX0sMTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls5NjMzXX0sNzM6e2w6ezExMDp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOnsxMDE6e2w6ezk5OntsOnsxMTY6e2w6ezEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODUxXX19fX19fX19fX19fX19fX19fX19fX19fX0sODM6e2w6ezExNzp7bDp7OTg6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ3XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg0OV19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODQ4XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg1MF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sODU6e2w6ezExMDp7bDp7MTA1OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg4NTJdfX19fX19fX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4Ml19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg5MDJdfX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbODkxMl19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4OTEyXX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgzOF19fX19fX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7MTAxOntsOnsxMDE6e2w6ezEwMDp7bDp7MTE1OntsOns1OTp7YzpbODgyN119LDY5OntsOnsxMTM6e2w6ezExNzp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6WzEwOTI4XX19fX19fX19fX19LDgzOntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7Njk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgyOV19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MzFdfX19fX19fX19fX19fX19fX19fX19LDEwNDp7bDp7ODQ6e2w6ezEwNDp7bDp7OTc6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MTVdfX19fX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4NzIxXX19fSwxMTI6e2w6ezU5OntjOls4OTEzXX0sMTAxOntsOnsxMTQ6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM1XX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODgzOV19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTNdfX19fX19fX19fX19fSw4NDp7bDp7NzI6e2w6ezc5OntsOns4Mjp7bDp7Nzg6e2w6ezU5OntjOlsyMjJdfX0sYzpbMjIyXX19fX19fX0sODI6e2w6ezY1OntsOns2ODp7bDp7Njk6e2w6ezU5OntjOls4NDgyXX19fX19fX19fSw4Mzp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDM1XX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNjJdfX19fX19fSw5Nzp7bDp7OTg6e2w6ezU5OntjOls5XX19fSwxMTc6e2w6ezU5OntjOls5MzJdfX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzU2XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNTRdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNThdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwODddfX19fX0sMTA0OntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOnsxMDI6e2w6ezExMTp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4NzU2XX19fX19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkyMF19fX19fX19LDEwNTp7bDp7OTk6e2w6ezEwNzp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4Mjg3LDgyMDJdfX19fX19fX19fX19fX19LDExMDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAxXX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NjRdfSw2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzcxXX19fX19fX19fX19LDcwOntsOnsxMTc6e2w6ezEwODp7bDp7MTA4OntsOns2OTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NzczXX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NzZdfX19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTM5XX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMjp7bDp7MTA4OntsOnsxMDE6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg0MTFdfX19fX19fX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTgzXX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzM1OF19fX19fX19fX19fX19LDg1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMThdfX0sYzpbMjE4XX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjA3XX0sMTExOntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU2OV19fX19fX19fX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwMzhdfX19fX0sMTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzM2NF19fX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjE5XX19LGM6WzIxOV19fX19fSwxMjE6e2w6ezU5OntjOlsxMDU5XX19fX19LDEwMDp7bDp7OTg6e2w6ezEwODp7bDp7OTc6e2w6ezk5OntsOns1OTp7YzpbMzY4XX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDg4XX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMTddfX0sYzpbMjE3XX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzYyXX19fX19fX19fSwxMTA6e2w6ezEwMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTVdfX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzkxODNdfX19LDEwNzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls5MTQxXX19fX19fX19fX19fX19fSw4MDp7bDp7OTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA0OntsOnsxMDE6e2w6ezExNTp7bDp7MTA1OntsOnsxMTU6e2w6ezU5OntjOls5MTgxXX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDEwNTp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4ODk5XX0sODA6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODQ2XX19fX19fX19fX19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM3MF19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQwXX19fX19fX0sMTEyOntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5M119LDY2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1MTRdfX19fX19fSw2ODp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NDVdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sNjg6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk3XX19fX19fX19fX19fX19fX19fX0sNjk6e2w6ezExMzp7bDp7MTE3OntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOns5ODp7bDp7MTE0OntsOnsxMDU6e2w6ezExNzp7bDp7MTA5OntsOns1OTp7YzpbMTA2MDZdfX19fX19fX19fX19fX19fX19fX19fX0sODQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg2OV19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjEzXX19fX19fX19fX19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjU3XX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NjFdfX19fX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwMTp7bDp7MTE0OntsOns3Njp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OThdfX19fX19fX19fX19fX19fX19fSw4Mjp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODU5OV19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezU5OntjOls5NzhdfSwxMDg6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbOTMzXX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMzY2XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODRdfX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzM2MF19fX19fX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjIwXX19LGM6WzIyMF19fX19fX19LDg2OntsOns2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3NV19fX19fX19fX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk4N119fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQyXX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3M119LDEwODp7bDp7NTk6e2M6WzEwOTgyXX19fX19fX19fX19LDEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5N119fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyMTRdfX19fX19fSwxMTY6e2w6ezU5OntjOls4MjE0XX0sMTA1OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzM5XX19fX19fX0sNzY6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOlsxMjRdfX19fX19fX19LDgzOntsOnsxMDE6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7OTc6e2w6ezExNjp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOlsxMDA3Ml19fX19fX19fX19fX19fX19fX19LDg0OntsOnsxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOls4NzY4XX19fX19fX19fX19fX19fX19fX19fSwxMjE6e2w6ezg0OntsOnsxMDQ6e2w6ezEwNTp7bDp7MTEwOntsOns4Mzp7bDp7MTEyOntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyMDJdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDI6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDA4OV19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTQxXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTg1XX19fX19fX0sMTE4OntsOnsxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzRdfX19fX19fX19fX19fSw4Nzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM3Ml19fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbODg5Nl19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTBdfX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0Ml19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4Nl19fX19fX19fX0sODg6e2w6ezEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDkxXX19fX19LDEwNTp7bDp7NTk6e2M6WzkyNl19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0M119fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4N119fX19fX19fX0sODk6e2w6ezY1OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3MV19fX19fX19LDczOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTAzMV19fX19fX19LDg1OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3MF19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIyMV19fSxjOlsyMjFdfX19fX19fX19LDk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszNzRdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDY3XX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDkyXX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDRdfX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5ODhdfX19fX19fSwxMTc6e2w6ezEwOTp7bDp7MTA4OntsOns1OTp7YzpbMzc2XX19fX19fX19fSw5MDp7bDp7NzI6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDQ2XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMzc3XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM4MV19fX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA0N119fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMzc5XX19fX19fX0sMTAxOntsOnsxMTQ6e2w6ezExMTp7bDp7ODc6e2w6ezEwNTp7bDp7MTAwOntsOnsxMTY6e2w6ezEwNDp7bDp7ODM6e2w6ezExMjp7bDp7OTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4MjAzXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6WzkxOF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbODQ4OF19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbODQ4NF19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk4OV19fX19fX19fX0sOTc6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIyNV19fSxjOlsyMjVdfX19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyNTldfX19fX19fX19fX0sOTk6e2w6ezU5OntjOls4NzY2XX0sNjk6e2w6ezU5OntjOls4NzY2LDgxOV19fX0sMTAwOntsOns1OTp7YzpbODc2N119fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjI2XX19LGM6WzIyNl19fX19fSwxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbMTgwXX19LGM6WzE4MF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDcyXX19fX19LDEwMTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzIzMF19fSxjOlsyMzBdfX19fX19fSwxMDI6e2w6ezU5OntjOls4Mjg5XX0sMTE0OntsOns1OTp7YzpbMTIwMDk0XX19fX19LDEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyMjRdfX0sYzpbMjI0XX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTU6e2w6ezEyMTp7bDp7MTA5OntsOns1OTp7YzpbODUwMV19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezU5OntjOls4NTAxXX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezk3OntsOns1OTp7YzpbOTQ1XX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMjU3XX19fX19LDEwODp7bDp7MTAzOntsOns1OTp7YzpbMTA4MTVdfX19fX19fSwxMTI6e2w6ezU5OntjOlszOF19fSxjOlszOF19fX0sMTEwOntsOnsxMDA6e2w6ezU5OntjOls4NzQzXX0sOTc6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbMTA4MzddfX19fX19fSwxMDA6e2w6ezU5OntjOlsxMDg0NF19fX0sMTE1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEyOntsOnsxMDE6e2w6ezU5OntjOlsxMDg0MF19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOlsxMDg0Ml19fX19fSwxMDM6e2w6ezU5OntjOls4NzM2XX0sMTAxOntsOns1OTp7YzpbMTA2NjBdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbODczNl19fX19fSwxMDk6e2w6ezExNTp7bDp7MTAwOntsOns1OTp7YzpbODczN119LDk3OntsOns5Nzp7bDp7NTk6e2M6WzEwNjY0XX19fSw5ODp7bDp7NTk6e2M6WzEwNjY1XX19fSw5OTp7bDp7NTk6e2M6WzEwNjY2XX19fSwxMDA6e2w6ezU5OntjOlsxMDY2N119fX0sMTAxOntsOns1OTp7YzpbMTA2NjhdfX19LDEwMjp7bDp7NTk6e2M6WzEwNjY5XX19fSwxMDM6e2w6ezU5OntjOlsxMDY3MF19fX0sMTA0OntsOns1OTp7YzpbMTA2NzFdfX19fX19fX19fX0sMTE0OntsOnsxMTY6e2w6ezU5OntjOls4NzM1XX0sMTE4OntsOns5ODp7bDp7NTk6e2M6Wzg4OTRdfSwxMDA6e2w6ezU5OntjOlsxMDY1M119fX19fX19fX19fSwxMTU6e2w6ezExMjp7bDp7MTA0OntsOns1OTp7YzpbODczOF19fX19fSwxMTY6e2w6ezU5OntjOlsxOTddfX19fX0sMTIyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls5MDg0XX19fX19fX19fX19fX0sMTExOntsOnsxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMjYxXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDZdfX19fX19fSwxMTI6e2w6ezU5OntjOls4Nzc2XX0sNjk6e2w6ezU5OntjOlsxMDg2NF19fX0sOTc6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwODYzXX19fX19fX19fSwxMDE6e2w6ezU5OntjOls4Nzc4XX19fSwxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NzldfX19fX0sMTExOntsOnsxMTU6e2w6ezU5OntjOlszOV19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOls4Nzc2XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzc4XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezU5OntjOlsyMjldfX0sYzpbMjI5XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTkwXX19fX19LDExNjp7bDp7NTk6e2M6WzQyXX19fSwxMjE6e2w6ezEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc3Nl19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc4MV19fX19fX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjI3XX19LGM6WzIyN119fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIyOF19fSxjOlsyMjhdfX19fX0sMTE5OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzU1XX19fX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzY5XX19fX19fX19fX19LDk4OntsOns3ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk4OV19fX19fX19LDk3OntsOns5OTp7bDp7MTA3OntsOns5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3ODBdfX19fX19fX19LDEwMTp7bDp7MTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzEwMTRdfX19fX19fX19fX19fX19LDExMjp7bDp7MTE0OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0NV19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODkwOV19fX19fX19fX19fX19fX0sMTE0OntsOnsxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODg5M119fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOls4OTY1XX0sMTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTY1XX19fX19fX19fX19fX19fSw5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls5MTQxXX0sMTE2OntsOns5ODp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls5MTQyXX19fX19fX19fX19fX19fSw5OTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3ODBdfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDczXX19fX19LDEwMDp7bDp7MTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMjJdfX19fX19fX19LDEwMTp7bDp7OTk6e2w6ezk3OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3NTddfSwxMDE6e2w6ezU5OntjOls4NzU3XX19fX19fX19fX19LDEwOTp7bDp7MTEyOntsOnsxMTY6e2w6ezEyMTp7bDp7MTE4OntsOns1OTp7YzpbMTA2NzJdfX19fX19fX19fX0sMTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7NTk6e2M6WzEwMTRdfX19fX19fSwxMTQ6e2w6ezExMDp7bDp7MTExOntsOnsxMTc6e2w6ezU5OntjOls4NDkyXX19fX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTQ2XX19fSwxMDQ6e2w6ezU5OntjOls4NTAyXX19fSwxMTk6e2w6ezEwMTp7bDp7MTAxOntsOnsxMTA6e2w6ezU5OntjOls4ODEyXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTVdfX19fX0sMTA1OntsOnsxMDM6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg5OF19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOls5NzExXX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls4ODk5XX19fX19fX0sMTExOntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA3NTJdfX19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc1M119fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDc1NF19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOns5OTp7bDp7MTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDc1OF19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTczM119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAwOntsOnsxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbOTY2MV19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOls5NjUxXX19fX19fX19fX19fX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzU2XX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODk3XX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4ODk2XX19fX19fX19fX19fX19fSwxMDc6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MDldfX19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7OTk6e2w6ezEwNzp7bDp7MTA4OntsOnsxMTE6e2w6ezEyMjp7bDp7MTAxOntsOnsxMTA6e2w6ezEwMzp7bDp7MTAxOntsOns1OTp7YzpbMTA3MzFdfX19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NDJdfX19fX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns5Nzp7bDp7MTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbOTY1Ml19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzk2NjJdfX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzk2NjZdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbOTY1Nl19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExMDp7bDp7MTA3OntsOns1OTp7YzpbOTI1MV19fX19fX19LDEwNzp7bDp7NDk6e2w6ezUwOntsOns1OTp7YzpbOTYxOF19fX0sNTI6e2w6ezU5OntjOls5NjE3XX19fX19LDUxOntsOns1Mjp7bDp7NTk6e2M6Wzk2MTldfX19fX19fSwxMTE6e2w6ezk5OntsOnsxMDc6e2w6ezU5OntjOls5NjA4XX19fX19fX19fSwxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzYxLDg0MjFdfSwxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMTg6e2w6ezU5OntjOls4ODAxLDg0MjFdfX19fX19fX19fX0sMTExOntsOnsxMTY6e2w6ezU5OntjOls4OTc2XX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE0N119fX19fSwxMTY6e2w6ezU5OntjOls4ODY5XX0sMTE2OntsOnsxMTE6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4NjldfX19fX19fX19LDExOTp7bDp7MTE2OntsOnsxMDU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MDRdfX19fX19fX19LDEyMDp7bDp7Njg6e2w6ezc2OntsOns1OTp7YzpbOTU1OV19fX0sODI6e2w6ezU5OntjOls5NTU2XX19fSwxMDg6e2w6ezU5OntjOls5NTU4XX19fSwxMTQ6e2w6ezU5OntjOls5NTU1XX19fX19LDcyOntsOns1OTp7YzpbOTU1Ml19LDY4OntsOns1OTp7YzpbOTU3NF19fX0sODU6e2w6ezU5OntjOls5NTc3XX19fSwxMDA6e2w6ezU5OntjOls5NTcyXX19fSwxMTc6e2w6ezU5OntjOls5NTc1XX19fX19LDg1OntsOns3Njp7bDp7NTk6e2M6Wzk1NjVdfX19LDgyOntsOns1OTp7YzpbOTU2Ml19fX0sMTA4OntsOns1OTp7YzpbOTU2NF19fX0sMTE0OntsOns1OTp7YzpbOTU2MV19fX19fSw4Njp7bDp7NTk6e2M6Wzk1NTNdfSw3Mjp7bDp7NTk6e2M6Wzk1ODBdfX19LDc2OntsOns1OTp7YzpbOTU3MV19fX0sODI6e2w6ezU5OntjOls5NTY4XX19fSwxMDQ6e2w6ezU5OntjOls5NTc5XX19fSwxMDg6e2w6ezU5OntjOls5NTcwXX19fSwxMTQ6e2w6ezU5OntjOls5NTY3XX19fX19LDk4OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwNjk3XX19fX19fX0sMTAwOntsOns3Njp7bDp7NTk6e2M6Wzk1NTddfX19LDgyOntsOns1OTp7YzpbOTU1NF19fX0sMTA4OntsOns1OTp7YzpbOTQ4OF19fX0sMTE0OntsOns1OTp7YzpbOTQ4NF19fX19fSwxMDQ6e2w6ezU5OntjOls5NDcyXX0sNjg6e2w6ezU5OntjOls5NTczXX19fSw4NTp7bDp7NTk6e2M6Wzk1NzZdfX19LDEwMDp7bDp7NTk6e2M6Wzk1MTZdfX19LDExNzp7bDp7NTk6e2M6Wzk1MjRdfX19fX0sMTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODYzXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NjJdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODg2NF19fX19fX19fX19fSwxMTc6e2w6ezc2OntsOns1OTp7YzpbOTU2M119fX0sODI6e2w6ezU5OntjOls5NTYwXX19fSwxMDg6e2w6ezU5OntjOls5NDk2XX19fSwxMTQ6e2w6ezU5OntjOls5NDkyXX19fX19LDExODp7bDp7NTk6e2M6Wzk0NzRdfSw3Mjp7bDp7NTk6e2M6Wzk1NzhdfX19LDc2OntsOns1OTp7YzpbOTU2OV19fX0sODI6e2w6ezU5OntjOls5NTY2XX19fSwxMDQ6e2w6ezU5OntjOls5NTMyXX19fSwxMDg6e2w6ezU5OntjOls5NTA4XX19fSwxMTQ6e2w6ezU5OntjOls5NTAwXX19fX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNDVdfX19fX19fX19fX0sMTE0OntsOnsxMDE6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbNzI4XX19fX19fX0sMTE4OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzE2Nl19fSxjOlsxNjZdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5MV19fX19fSwxMDE6e2w6ezEwOTp7bDp7MTA1OntsOns1OTp7YzpbODI3MV19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NV19LDEwMTp7bDp7NTk6e2M6Wzg5MDldfX19fX19fSwxMTE6e2w6ezEwODp7bDp7NTk6e2M6WzkyXX0sOTg6e2w6ezU5OntjOlsxMDY5M119fX0sMTA0OntsOnsxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDE4NF19fX19fX19fX19fX19fX0sMTE3OntsOnsxMDg6e2w6ezEwODp7bDp7NTk6e2M6WzgyMjZdfSwxMDE6e2w6ezExNjp7bDp7NTk6e2M6WzgyMjZdfX19fX19fX19LDEwOTp7bDp7MTEyOntsOns1OTp7YzpbODc4Ml19LDY5OntsOns1OTp7YzpbMTA5MjZdfX19LDEwMTp7bDp7NTk6e2M6Wzg3ODNdfSwxMTM6e2w6ezU5OntjOls4NzgzXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzI2M119fX19fX19fX0sMTEyOntsOns1OTp7YzpbODc0NV19LDk3OntsOnsxMTA6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODIwXX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjVdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyN119fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODIzXX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODE2XX19fX19fX0sMTE1OntsOns1OTp7YzpbODc0NSw2NTAyNF19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODI1N119fX19fSwxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzcxMV19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezExNTp7bDp7NTk6e2M6WzEwODI5XX19fX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNjldfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzIzMV19fSxjOlsyMzFdfX19fX19fSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyNjVdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7MTE1OntsOns1OTp7YzpbMTA4MjhdfSwxMTU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwODMyXX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI2N119fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzE4NF19fSxjOlsxODRdfX19fX0sMTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3NF19fX19fX19fX19fSwxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzE2Ml19LDEwMTp7bDp7MTE0OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTgzXX19fX19fX19fX19fSxjOlsxNjJdfX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwOTZdfX19fX0sMTA0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA5NV19fX19fSwxMDE6e2w6ezk5OntsOnsxMDc6e2w6ezU5OntjOlsxMDAwM119LDEwOTp7bDp7OTc6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAwMDNdfX19fX19fX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzk2N119fX19fSwxMDU6e2w6ezExNDp7bDp7NTk6e2M6Wzk2NzVdfSw2OTp7bDp7NTk6e2M6WzEwNjkxXX19fSw5OTp7bDp7NTk6e2M6WzcxMF19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODc5MV19fX19fSwxMDg6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzNF19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjM1XX19fX19fX19fX19fX19fX19fX19fSwxMDA6e2w6ezgyOntsOns1OTp7YzpbMTc0XX19fSw4Mzp7bDp7NTk6e2M6Wzk0MTZdfX19LDk3OntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NTldfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbODg1OF19fX19fX19fX0sMTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODYxXX19fX19fX19fX19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg3OTFdfX19LDEwMjp7bDp7MTEwOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjhdfX19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6WzEwOTkxXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY5MF19fX19fX19fX19fX19LDEwODp7bDp7MTE3OntsOns5ODp7bDp7MTE1OntsOns1OTp7YzpbOTgyN119LDExNzp7bDp7MTA1OntsOnsxMTY6e2w6ezU5OntjOls5ODI3XX19fX19fX19fX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls1OF19LDEwMTp7bDp7NTk6e2M6Wzg3ODhdfSwxMTM6e2w6ezU5OntjOls4Nzg4XX19fX19fX19fX19LDEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzQ0XX0sMTE2OntsOns1OTp7YzpbNjRdfX19fX19fSwxMTI6e2w6ezU5OntjOls4NzA1XX0sMTAyOntsOnsxMTA6e2w6ezU5OntjOls4NzI4XX19fX19LDEwODp7bDp7MTAxOntsOnsxMDk6e2w6ezEwMTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzA1XX19fX19fX19fSwxMjA6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODQ1MF19fX19fX19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzczXX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzEwODYxXX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1MF19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDhdfX19LDExNDp7bDp7MTExOntsOnsxMDA6e2w6ezU5OntjOls4NzIwXX19fX19fX0sMTIxOntsOns1OTp7YzpbMTY5XX0sMTE1OntsOnsxMTQ6e2w6ezU5OntjOls4NDcxXX19fX19fSxjOlsxNjldfX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjI5XX19fX19fX0sMTExOntsOnsxMTU6e2w6ezExNTp7bDp7NTk6e2M6WzEwMDA3XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTJdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTU5XX0sMTAxOntsOns1OTp7YzpbMTA5NjFdfX19fX0sMTEyOntsOns1OTp7YzpbMTA5NjBdfSwxMDE6e2w6ezU5OntjOlsxMDk2Ml19fX19fX19fX0sMTE2OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0M119fX19fX19fX0sMTE3OntsOnsxMDA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTA4OntsOns1OTp7YzpbMTA1NTJdfX19LDExNDp7bDp7NTk6e2M6WzEwNTQ5XX19fX19fX19fX19LDEwMTp7bDp7MTEyOntsOnsxMTQ6e2w6ezU5OntjOls4OTI2XX19fX19LDExNTp7bDp7OTk6e2w6ezU5OntjOls4OTI3XX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjMwXX0sMTEyOntsOns1OTp7YzpbMTA1NTddfX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODc0Nl19LDk4OntsOnsxMTQ6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MjRdfX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgyMl19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODI2XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDVdfX19fX19fSwxMTE6e2w6ezExNDp7bDp7NTk6e2M6WzEwODIxXX19fX19LDExNTp7bDp7NTk6e2M6Wzg3NDYsNjUwMjRdfX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjMxXX0sMTA5OntsOns1OTp7YzpbMTA1NTZdfX19fX19fX19LDEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7MTEyOntsOnsxMTQ6e2w6ezEwMTp7bDp7OTk6e2w6ezU5OntjOls4OTI2XX19fX19fX19fSwxMTU6e2w6ezExNzp7bDp7OTk6e2w6ezk5OntsOns1OTp7YzpbODkyN119fX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4OTEwXX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTExXX19fX19fX19fX19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbMTY0XX19LGM6WzE2NF19fX19fSwxMTg6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzMF19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjMxXX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTg6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODkxMF19fX19fX19LDExOTp7bDp7MTAxOntsOnsxMDA6e2w6ezU5OntjOls4OTExXX19fX19fX19fSwxMTk6e2w6ezk5OntsOnsxMTE6e2w6ezExMDp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NTRdfX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbODc1M119fX19fX19fX0sMTIxOntsOnsxMDg6e2w6ezk5OntsOnsxMTY6e2w6ezEyMTp7bDp7NTk6e2M6WzkwMDVdfX19fX19fX19fX19fSwxMDA6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTldfX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk3XX19fX19fX0sOTc6e2w6ezEwMzp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7NTk6e2M6WzgyMjRdfX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMTY6e2w6ezEwNDp7bDp7NTk6e2M6Wzg1MDRdfX19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5NV19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6WzgyMDhdfSwxMTg6e2w6ezU5OntjOls4ODY3XX19fX19fX19fSw5ODp7bDp7MTA3OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwNTExXX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezk5OntsOns1OTp7YzpbNzMzXX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyNzFdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzZdfX19fX0sMTAwOntsOns1OTp7YzpbODUxOF19LDk3OntsOnsxMDM6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4MjI1XX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTBdfX19fX19fSwxMTE6e2w6ezExNjp7bDp7MTE1OntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwODcxXX19fX19fX19fX19fX0sMTAxOntsOnsxMDM6e2w6ezU5OntjOlsxNzZdfX0sYzpbMTc2XX0sMTA4OntsOnsxMTY6e2w6ezk3OntsOns1OTp7YzpbOTQ4XX19fX19fX0sMTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3M119fX19fX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbMTA2MjNdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDA5N119fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezEwODp7bDp7NTk6e2M6Wzg2NDNdfX19LDExNDp7bDp7NTk6e2M6Wzg2NDJdfX19fX19fX19LDEwNTp7bDp7OTc6e2w6ezEwOTp7bDp7NTk6e2M6Wzg5MDBdfSwxMTE6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbODkwMF19LDExNTp7bDp7MTE3OntsOnsxMDU6e2w6ezExNjp7bDp7NTk6e2M6Wzk4MzBdfX19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6Wzk4MzBdfX19fX19fSwxMDE6e2w6ezU5OntjOlsxNjhdfX19LDEwMzp7bDp7OTc6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6Wzk4OV19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbODk0Nl19fX19fX19LDExODp7bDp7NTk6e2M6WzI0N119LDEwNTp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlsyNDddfSwxMTE6e2w6ezExMDp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTAzXX19fX19fX19fX19fX19fX0sYzpbMjQ3XX19fX19LDExMTp7bDp7MTEwOntsOnsxMjA6e2w6ezU5OntjOls4OTAzXX19fX19fX19fX19LDEwNjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDZdfX19fX19fSwxMDg6e2w6ezk5OntsOnsxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbODk5MF19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTczXX19fX19fX19fX19LDExMTp7bDp7MTA4OntsOnsxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlszNl19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNDldfX19fX0sMTE2OntsOns1OTp7YzpbNzI5XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg0XX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODVdfX19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4NzYwXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjRdfX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4NjVdfX19fX19fX19fX19fX19LDExNzp7bDp7OTg6e2w6ezEwODp7bDp7MTAxOntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7MTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4OTY2XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE5OntsOnsxMTA6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk1XX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY1MF19fX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2NDNdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODY0Ml19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7OTg6e2w6ezEwNzp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDUxMl19fX19fX19fX19fX19LDk5OntsOnsxMTE6e2w6ezExNDp7bDp7MTEwOntsOns1OTp7YzpbODk5MV19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTcyXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5M119fX0sMTIxOntsOns1OTp7YzpbMTEwOV19fX19fSwxMTE6e2w6ezEwODp7bDp7NTk6e2M6WzEwNzQyXX19fX19LDExNjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwNzp7bDp7NTk6e2M6WzI3M119fX19fX19fX19fSwxMTY6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTQ1XX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezU5OntjOls5NjYzXX0sMTAyOntsOns1OTp7YzpbOTY2Ml19fX19fX19fX0sMTE3OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjkzXX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDddfX19fX19fX19LDExOTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNjYyXX19fX19fX19fX19fX0sMTIyOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExOV19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzOV19fX19fX19fX19fX19fX19fSwxMDE6e2w6ezY4OntsOns2ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDg3MV19fX19fX19LDExMTp7bDp7MTE2OntsOns1OTp7YzpbODc4NV19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzIzM119fSxjOlsyMzNdfX19fX19fSwxMTU6e2w6ezExNjp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOlsxMDg2Ml19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsyODNdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns1OTp7YzpbODc5MF19LDk5OntsOns1OTp7YzpbMjM0XX19LGM6WzIzNF19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Nzg5XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMTAxXX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsyNzldfX19fX19fSwxMDE6e2w6ezU5OntjOls4NTE5XX19fSwxMDI6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODZdfX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAwOThdfX19fX0sMTAzOntsOns1OTp7YzpbMTA5MDZdfSwxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIzMl19fSxjOlsyMzJdfX19fX19fSwxMTU6e2w6ezU5OntjOlsxMDkwMl19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDkwNF19fX19fX19fX19fSwxMDg6e2w6ezU5OntjOlsxMDkwNV19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTU6e2w6ezU5OntjOls5MTkxXX19fX19fX19fX19fX0sMTA4OntsOns1OTp7YzpbODQ2N119fX0sMTE1OntsOns1OTp7YzpbMTA5MDFdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5MDNdfX19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzI3NV19fX19fX19LDExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezU5OntjOls4NzA5XX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3MDldfX19fX19fSwxMTg6e2w6ezU5OntjOls4NzA5XX19fX19fX19fSwxMTU6e2w6ezExMjp7bDp7NDk6e2w6ezUxOntsOns1OTp7YzpbODE5Nl19fX0sNTI6e2w6ezU5OntjOls4MTk3XX19fX19LDU5OntjOls4MTk1XX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOlszMzFdfX19LDExNTp7bDp7MTEyOntsOns1OTp7YzpbODE5NF19fX19fX19LDExMTp7bDp7MTAzOntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzI4MV19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTUwXX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODkxN119LDExNTp7bDp7MTA4OntsOns1OTp7YzpbMTA3MjNdfX19fX19fX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDg2NV19fX19fX19LDExNTp7bDp7MTA1OntsOns1OTp7YzpbOTQ5XX0sMTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk0OV19fX19fX19LDExODp7bDp7NTk6e2M6WzEwMTNdfX19fX19fX19LDExMzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6Wzg3OTBdfX19fX19fSwxMTE6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls4Nzg5XX19fX19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4NzcwXX19fX19LDEwODp7bDp7OTc6e2w6ezExMDp7bDp7MTE2OntsOnsxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbMTA5MDJdfX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDkwMV19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7OTc6e2w6ezEwODp7bDp7MTE1OntsOns1OTp7YzpbNjFdfX19fX19fSwxMDE6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODc5OV19fX19fX19LDEwNTp7bDp7MTE4OntsOns1OTp7YzpbODgwMV19LDY4OntsOns2ODp7bDp7NTk6e2M6WzEwODcyXX19fX19fX19fX19LDExODp7bDp7MTEyOntsOns5Nzp7bDp7MTE0OntsOnsxMTU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNzI1XX19fX19fX19fX19fX19fSwxMTQ6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODddfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYwOV19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbODQ5NV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODc4NF19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc3MF19fX19fX19LDExNjp7bDp7OTc6e2w6ezU5OntjOls5NTFdfX19LDEwNDp7bDp7NTk6e2M6WzI0MF19fSxjOlsyNDBdfX19LDExNzp7bDp7MTA5OntsOnsxMDg6e2w6ezU5OntjOlsyMzVdfX0sYzpbMjM1XX19fSwxMTQ6e2w6ezExMTp7bDp7NTk6e2M6WzgzNjRdfX19fX19fSwxMjA6e2w6ezk5OntsOnsxMDg6e2w6ezU5OntjOlszM119fX19fSwxMDU6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODcwN119fX19fX19LDExMjp7bDp7MTAxOntsOns5OTp7bDp7MTE2OntsOns5Nzp7bDp7MTE2OntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbODQ5Nl19fX19fX19fX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAxOntsOnsxMTA6e2w6ezExNjp7bDp7MTA1OntsOns5Nzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NTE5XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAyOntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezExNTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg2XX19fX19fX19fX19fX19fX19fX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTJdfX19fX0sMTAxOntsOnsxMDk6e2w6ezk3OntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk3OTJdfX19fX19fX19fX0sMTAyOntsOnsxMDU6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1OV19fX19fX19fX0sMTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzY0MjU2XX19fX19LDEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI2MF19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMDk5XX19fX19LDEwNTp7bDp7MTA4OntsOnsxMDU6e2w6ezEwMzp7bDp7NTk6e2M6WzY0MjU3XX19fX19fX19fSwxMDY6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlsxMDIsMTA2XX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTY6e2w6ezU5OntjOls5ODM3XX19fX19LDEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOls2NDI1OF19fX19fX19LDExNjp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls5NjQ5XX19fX19fX19fSwxMTA6e2w6ezExMTp7bDp7MTAyOntsOns1OTp7YzpbNDAyXX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1MV19fX19fSwxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7NTk6e2M6Wzg3MDRdfX19fX19fSwxMDc6e2w6ezU5OntjOls4OTE2XX0sMTE4OntsOns1OTp7YzpbMTA5NjldfX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE2OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NjVdfX19fX19fX19fX19fX19LDExNDp7bDp7OTc6e2w6ezk5OntsOns0OTp7bDp7NTA6e2w6ezU5OntjOlsxODldfX0sYzpbMTg5XX0sNTE6e2w6ezU5OntjOls4NTMxXX19fSw1Mjp7bDp7NTk6e2M6WzE4OF19fSxjOlsxODhdfSw1Mzp7bDp7NTk6e2M6Wzg1MzNdfX19LDU0OntsOns1OTp7YzpbODUzN119fX0sNTY6e2w6ezU5OntjOls4NTM5XX19fX19LDUwOntsOns1MTp7bDp7NTk6e2M6Wzg1MzJdfX19LDUzOntsOns1OTp7YzpbODUzNF19fX19fSw1MTp7bDp7NTI6e2w6ezU5OntjOlsxOTBdfX0sYzpbMTkwXX0sNTM6e2w6ezU5OntjOls4NTM1XX19fSw1Njp7bDp7NTk6e2M6Wzg1NDBdfX19fX0sNTI6e2w6ezUzOntsOns1OTp7YzpbODUzNl19fX19fSw1Mzp7bDp7NTQ6e2w6ezU5OntjOls4NTM4XX19fSw1Njp7bDp7NTk6e2M6Wzg1NDFdfX19fX0sNTU6e2w6ezU2OntsOns1OTp7YzpbODU0Ml19fX19fX19LDExNTp7bDp7MTA4OntsOns1OTp7YzpbODI2MF19fX19fX19LDExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4OTk0XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMTk5OTVdfX19fX19fX19LDEwMzp7bDp7Njk6e2w6ezU5OntjOls4ODA3XX0sMTA4OntsOns1OTp7YzpbMTA4OTJdfX19fX0sOTc6e2w6ezk5OntsOnsxMTc6e2w6ezExNjp7bDp7MTAxOntsOns1OTp7YzpbNTAxXX19fX19fX19fSwxMDk6e2w6ezEwOTp7bDp7OTc6e2w6ezU5OntjOls5NDddfSwxMDA6e2w6ezU5OntjOls5ODldfX19fX19fX19LDExMjp7bDp7NTk6e2M6WzEwODg2XX19fX19LDk4OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyODddfX19fX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzI4NV19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzVdfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzI4OV19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MDVdfSwxMDg6e2w6ezU5OntjOls4OTIzXX19fSwxMTM6e2w6ezU5OntjOls4ODA1XX0sMTEzOntsOns1OTp7YzpbODgwN119fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc4XX19fX19fX19fX19fX0sMTE1OntsOns1OTp7YzpbMTA4NzhdfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkyMV19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4ODBdfSwxMTE6e2w6ezU5OntjOlsxMDg4Ml19LDEwODp7bDp7NTk6e2M6WzEwODg0XX19fX19fX19fX19LDEwODp7bDp7NTk6e2M6Wzg5MjMsNjUwMjRdfSwxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTAwXX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTAwXX19fX19LDEwMzp7bDp7NTk6e2M6Wzg4MTFdfSwxMDM6e2w6ezU5OntjOls4OTIxXX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg1MDNdfX19fX19fX19LDEwNjp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDddfX19fX19fSwxMDg6e2w6ezU5OntjOls4ODIzXX0sNjk6e2w6ezU5OntjOlsxMDg5OF19fX0sOTc6e2w6ezU5OntjOlsxMDkxN119fX0sMTA2OntsOns1OTp7YzpbMTA5MTZdfX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDldfX19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDg5MF19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6WzEwODkwXX19fX19fX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA4ODhdfSwxMTM6e2w6ezU5OntjOlsxMDg4OF19LDExMzp7bDp7NTk6e2M6Wzg4MDldfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODkzNV19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1Ml19fX19fX19LDExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbOTZdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NThdfX19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE5XX0sMTAxOntsOns1OTp7YzpbMTA4OTRdfX19LDEwODp7bDp7NTk6e2M6WzEwODk2XX19fX19fX19fSwxMTY6e2w6ezU5OntjOls2Ml19LDk5OntsOns5OTp7bDp7NTk6e2M6WzEwOTE5XX19fSwxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwODc0XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTldfX19fX19fSwxMDg6e2w6ezgwOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2NDVdfX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMDE6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzZdfX19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDg4Nl19fX19fX19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjE2XX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MTldfX19fX19fSwxMDE6e2w6ezExMzp7bDp7MTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODkyM119fX19fX19fX0sMTEzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTU6e2w6ezU5OntjOlsxMDg5Ml19fX19fX19fX19fX19fX0sMTA4OntsOnsxMDE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbODgyM119fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MTldfX19fX19fX19fSxjOls2Ml19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbODgwOSw2NTAyNF19fX19fX19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDksNjUwMjRdfX19fX19fX19LDEwNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2MF19fX19fX19LDk3OntsOnsxMDU6e2w6ezExNDp7bDp7MTE1OntsOnsxMTI6e2w6ezU5OntjOls4MjAyXX19fX19fX19fSwxMDg6e2w6ezEwMjp7bDp7NTk6e2M6WzE4OV19fX19fSwxMDk6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTY6e2w6ezU5OntjOls4NDU5XX19fX19fX19fSwxMTQ6e2w6ezEwMDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOThdfX19fX19fSwxMTQ6e2w6ezU5OntjOls4NTk2XX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA1NjhdfX19fX19fSwxMTk6e2w6ezU5OntjOls4NjIxXX19fX19fX19fSw5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg0NjNdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjkzXX19fX19fX19fSwxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7MTE1OntsOns1OTp7YzpbOTgyOV19LDExNzp7bDp7MTA1OntsOnsxMTY6e2w6ezU5OntjOls5ODI5XX19fX19fX19fX19fX19fSwxMDg6e2w6ezEwODp7bDp7MTA1OntsOnsxMTI6e2w6ezU5OntjOls4MjMwXX19fX19fX19fSwxMTQ6e2w6ezk5OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzg4ODldfX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDFdfX19fX0sMTA3OntsOnsxMTU6e2w6ezEwMTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOlsxMDUzM119fX19fX19fX19fSwxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTA1MzRdfX19fX19fX19fX19fX19LDExMTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODcwM119fX19fX19LDEwOTp7bDp7MTE2OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NjNdfX19fX19fX19LDExMTp7bDp7MTA3OntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE3XX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjE4XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTNdfX19fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzgyMTNdfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTk3XX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODQ2M119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMjk1XX19fX19fX19fX19LDEyMTp7bDp7OTg6e2w6ezExNzp7bDp7MTA4OntsOnsxMDg6e2w6ezU5OntjOls4MjU5XX19fX19fX19fSwxMTI6e2w6ezEwNDp7bDp7MTAxOntsOnsxMTA6e2w6ezU5OntjOls4MjA4XX19fX19fX19fX19fX0sMTA1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyMzddfX0sYzpbMjM3XX19fX19fX19fSw5OTp7bDp7NTk6e2M6WzgyOTFdfSwxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlsyMzhdfX0sYzpbMjM4XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODBdfX19fX0sMTAxOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA3N119fX19fSwxMjA6e2w6ezk5OntsOnsxMDg6e2w6ezU5OntjOlsxNjFdfX0sYzpbMTYxXX19fX19fX0sMTAyOntsOnsxMDI6e2w6ezU5OntjOls4NjYwXX19fSwxMTQ6e2w6ezU5OntjOlsxMjAxMDJdfX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzIzNl19fSxjOlsyMzZdfX19fX19fX19LDEwNTp7bDp7NTk6e2M6Wzg1MjBdfSwxMDU6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc2NF19fX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OV19fX19fX19LDExMDp7bDp7MTAyOntsOnsxMDU6e2w6ezExMDp7bDp7NTk6e2M6WzEwNzE2XX19fX19fX19fSwxMTE6e2w6ezExNjp7bDp7OTc6e2w6ezU5OntjOls4NDg5XX19fX19fX19fSwxMDY6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlszMDddfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsyOTldfX19fX0sMTAzOntsOnsxMDE6e2w6ezU5OntjOls4NDY1XX19fSwxMDg6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDE6e2w6ezU5OntjOls4NDY0XX19fX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg0NjVdfX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezU5OntjOlszMDVdfX19fX19fSwxMTE6e2w6ezEwMjp7bDp7NTk6e2M6Wzg4ODddfX19fX0sMTEyOntsOnsxMDE6e2w6ezEwMDp7bDp7NTk6e2M6WzQzN119fX19fX19fX0sMTEwOntsOns1OTp7YzpbODcxMl19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMDE6e2w6ezU5OntjOls4NDUzXX19fX19fX19fSwxMDI6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbODczNF19LDExNjp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOlsxMDcxN119fX19fX19fX19fX19LDExMTp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzMwNV19fX19fX19fX0sMTE2OntsOns1OTp7YzpbODc0N119LDk5OntsOns5Nzp7bDp7MTA4OntsOns1OTp7YzpbODg5MF19fX19fX19LDEwMTp7bDp7MTAzOntsOnsxMDE6e2w6ezExNDp7bDp7MTE1OntsOns1OTp7YzpbODQ4NF19fX19fX19fX0sMTE0OntsOns5OTp7bDp7OTc6e2w6ezEwODp7bDp7NTk6e2M6Wzg4OTBdfX19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNzc1XX19fX19fX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODEyXX19fX19fX19fX19fX0sMTExOntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwNV19fX19fSwxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzAzXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNTRdfX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk1M119fX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzEwODEyXX19fX19fX19fSwxMTM6e2w6ezExNzp7bDp7MTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzE5MV19fSxjOlsxOTFdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzExOTk5OF19fX19fSwxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MTJdfSw2OTp7bDp7NTk6e2M6Wzg5NTNdfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTQ5XX19fX19fX0sMTE1OntsOns1OTp7YzpbODk0OF19LDExODp7bDp7NTk6e2M6Wzg5NDddfX19fX0sMTE4OntsOns1OTp7YzpbODcxMl19fX19fX19fX0sMTE2OntsOns1OTp7YzpbODI5MF19LDEwNTp7bDp7MTA4OntsOnsxMDA6e2w6ezEwMTp7bDp7NTk6e2M6WzI5N119fX19fX19fX19fSwxMTc6e2w6ezEwNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTBdfX19fX19fSwxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzIzOV19fSxjOlsyMzldfX19fX19fSwxMDY6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7OTk6e2w6ezU5OntjOlszMDldfX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDgxXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTAzXX19fX19LDEwOTp7bDp7OTc6e2w6ezExNjp7bDp7MTA0OntsOns1OTp7YzpbNTY3XX19fX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTU1XX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTE5OTk5XX19fX19LDEwMTp7bDp7MTE0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTExMl19fX19fX19fX19fSwxMTc6e2w6ezEwNzp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMDhdfX19fX19fX19fX0sMTA3OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezk3OntsOns1OTp7YzpbOTU0XX0sMTE4OntsOns1OTp7YzpbMTAwOF19fX19fX19fX19fSw5OTp7bDp7MTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzExXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDgyXX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA0XX19fX19LDEwMzp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7MTEwOntsOns1OTp7YzpbMzEyXX19fX19fX19fX19LDEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwOTNdfX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE2XX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1Nl19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwMF19fX19fX19fX0sMTA4OntsOns2NTp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY2Nl19fX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1Nl19fX19fSwxMTY6e2w6ezk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIzXX19fX19fX19fX19LDY2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUxMF19fX19fX19fX0sNjk6e2w6ezU5OntjOls4ODA2XX0sMTAzOntsOns1OTp7YzpbMTA4OTFdfX19fX0sNzI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5NF19fX19fX19LDk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMxNF19fX19fX19fX0sMTAxOntsOnsxMDk6e2w6ezExMjp7bDp7MTE2OntsOnsxMjE6e2w6ezExODp7bDp7NTk6e2M6WzEwNjc2XX19fX19fX19fX19fX0sMTAzOntsOnsxMTQ6e2w6ezk3OntsOnsxMTA6e2w6ezU5OntjOls4NDY2XX19fX19fX19fSwxMDk6e2w6ezk4OntsOnsxMDA6e2w6ezk3OntsOns1OTp7YzpbOTU1XX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjE2XX0sMTAwOntsOns1OTp7YzpbMTA2NDFdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbMTAyMTZdfX19fX19fX19LDExMjp7bDp7NTk6e2M6WzEwODg1XX19fSwxMTM6e2w6ezExNzp7bDp7MTExOntsOns1OTp7YzpbMTcxXX19LGM6WzE3MV19fX19fSwxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg1OTJdfSw5ODp7bDp7NTk6e2M6Wzg2NzZdfSwxMDI6e2w6ezExNTp7bDp7NTk6e2M6WzEwNTI3XX19fX19fX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyNV19fX19fSwxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6Wzg2MTddfX19fX0sMTA4OntsOnsxMTI6e2w6ezU5OntjOls4NjE5XX19fX19LDExMjp7bDp7MTA4OntsOns1OTp7YzpbMTA1NTNdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjExXX19fX19fX0sMTE2OntsOnsxMDg6e2w6ezU5OntjOls4NjEwXX19fX19fX19fSwxMTY6e2w6ezU5OntjOlsxMDkyM119LDk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIxXX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjVdfSwxMTU6e2w6ezU5OntjOlsxMDkyNSw2NTAyNF19fX19fX19fX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTA4XX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAwOThdfX19fX19fSwxMTQ6e2w6ezk3OntsOns5OTp7bDp7MTAxOntsOns1OTp7YzpbMTIzXX19fSwxMDc6e2w6ezU5OntjOls5MV19fX19fX19LDEwNzp7bDp7MTAxOntsOns1OTp7YzpbMTA2MzVdfX19LDExNTp7bDp7MTA4OntsOnsxMDA6e2w6ezU5OntjOlsxMDYzOV19fX0sMTE3OntsOns1OTp7YzpbMTA2MzddfX19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMThdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMxNl19fX19fX19LDEwNTp7bDp7MTA4OntsOns1OTp7YzpbODk2OF19fX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOlsxMjNdfX19fX0sMTIxOntsOns1OTp7YzpbMTA4M119fX19fSwxMDA6e2w6ezk5OntsOns5Nzp7bDp7NTk6e2M6WzEwNTUwXX19fX19LDExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjIwXX0sMTE0OntsOns1OTp7YzpbODIyMl19fX19fX19fX0sMTE0OntsOnsxMDA6e2w6ezEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk5XX19fX19fX19fSwxMTc6e2w6ezExNTp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzFdfX19fX19fX19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg2MjZdfX19fX19fSwxMDE6e2w6ezU5OntjOls4ODA0XX0sMTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkyXX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOls4NjEwXX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzg2MzddfX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODYzNl19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0N119fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk2XX0sMTE1OntsOns1OTp7YzpbODY0Nl19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NjUxXX19fX19fX19fX19fX19fX19LDExNTp7bDp7MTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTAzOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYyMV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNjp7bDp7MTA0OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAxOntsOnsxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MDddfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDM6e2w6ezU5OntjOls4OTIyXX19fSwxMTM6e2w6ezU5OntjOls4ODA0XX0sMTEzOntsOns1OTp7YzpbODgwNl19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc3XX19fX19fX19fX19fX0sMTE1OntsOns1OTp7YzpbMTA4NzddfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkyMF19fX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NzldfSwxMTE6e2w6ezU5OntjOlsxMDg4MV19LDExNDp7bDp7NTk6e2M6WzEwODgzXX19fX19fX19fX19LDEwMzp7bDp7NTk6e2M6Wzg5MjIsNjUwMjRdfSwxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwODk5XX19fX19fX0sMTE1OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDg4NV19fX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE4XX19fX19fX0sMTAxOntsOnsxMTM6e2w6ezEwMzp7bDp7MTE2OntsOnsxMTQ6e2w6ezU5OntjOls4OTIyXX19fX19fX0sMTEzOntsOnsxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbMTA4OTFdfX19fX19fX19fX19fSwxMDM6e2w6ezExNjp7bDp7MTE0OntsOns1OTp7YzpbODgyMl19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE4XX19fX19fX19fX19fX0sMTAyOntsOnsxMDU6e2w6ezExNTp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOlsxMDYyMF19fX19fX19fX0sMTA4OntsOnsxMTE6e2w6ezExMTp7bDp7MTE0OntsOns1OTp7YzpbODk3MF19fX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMTA1XX19fX19LDEwMzp7bDp7NTk6e2M6Wzg4MjJdfSw2OTp7bDp7NTk6e2M6WzEwODk3XX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTAwOntsOns1OTp7YzpbODYzN119fX0sMTE3OntsOns1OTp7YzpbODYzNl19LDEwODp7bDp7NTk6e2M6WzEwNjAyXX19fX19fX19fSw5ODp7bDp7MTA4OntsOnsxMDc6e2w6ezU5OntjOls5NjA0XX19fX19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTEzXX19fX19fX0sMTA4OntsOns1OTp7YzpbODgxMF19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDddfX19fX19fSw5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTkwXX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDA6e2w6ezU5OntjOlsxMDYwM119fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk3MjJdfX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMzIwXX19fX19fX19fSwxMTE6e2w6ezExNzp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls5MTM2XX0sOTc6e2w6ezk5OntsOnsxMDQ6e2w6ezEwMTp7bDp7NTk6e2M6WzkxMzZdfX19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbODgwOF19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwODg5XX0sMTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA4ODldfX19fX19fX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDg4N119LDExMzp7bDp7NTk6e2M6WzEwODg3XX0sMTEzOntsOns1OTp7YzpbODgwOF19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM0XX19fX19fX19fSwxMTE6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzEwMjIwXX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODcwMV19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMjE0XX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjI5XX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbMTAyMzFdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7MTEyOntsOnsxMTU6e2w6ezExNjp7bDp7MTExOntsOns1OTp7YzpbMTAyMzZdfX19fX19fX19fX19fSwxMTQ6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6WzEwMjMwXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg2MTldfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODYyMF19fX19fX19fX19fX19fX19fX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjI5XX19fX19LDEwMjp7bDp7NTk6e2M6WzEyMDE1N119fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwNzk3XX19fX19fX19fSwxMTY6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzEwODA0XX19fX19fX19fX19LDExOTp7bDp7OTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbODcyN119fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbOTVdfX19fX19fX19LDEyMjp7bDp7NTk6e2M6Wzk2NzRdfSwxMDE6e2w6ezExMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls5Njc0XX19fX19fX19fSwxMDI6e2w6ezU5OntjOlsxMDczMV19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzQwXX0sMTA4OntsOnsxMTY6e2w6ezU5OntjOlsxMDY0M119fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDZdfX19fX19fSw5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTkxXX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODY1MV19LDEwMDp7bDp7NTk6e2M6WzEwNjA1XX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4MjA2XX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbODg5NV19fX19fX19fX0sMTE1OntsOns5Nzp7bDp7MTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyNDldfX19fX19fX19LDk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDFdfX19fX0sMTA0OntsOns1OTp7YzpbODYyNF19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOls4ODE4XX0sMTAxOntsOns1OTp7YzpbMTA4OTNdfX19LDEwMzp7bDp7NTk6e2M6WzEwODk1XX19fX19fX0sMTEzOntsOns5ODp7bDp7NTk6e2M6WzkxXX19fSwxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMTZdfSwxMTQ6e2w6ezU5OntjOls4MjE4XX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTExOntsOnsxMDc6e2w6ezU5OntjOlszMjJdfX19fX19fX19fX0sMTE2OntsOns1OTp7YzpbNjBdfSw5OTp7bDp7OTk6e2w6ezU5OntjOlsxMDkxOF19fX0sMTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDg3M119fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4OTE4XX19fX19fX0sMTA0OntsOnsxMTQ6e2w6ezEwMTp7bDp7MTAxOntsOns1OTp7YzpbODkwN119fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODkwNV19fX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxNF19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwMTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOlsxMDg3NV19fX19fX19fX19fSwxMTQ6e2w6ezgwOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2NDZdfX19fX19fSwxMDU6e2w6ezU5OntjOls5NjY3XX0sMTAxOntsOns1OTp7YzpbODg4NF19fX0sMTAyOntsOns1OTp7YzpbOTY2Nl19fX19fX19fSxjOls2MF19LDExNzp7bDp7MTE0OntsOnsxMDA6e2w6ezExNTp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1NzBdfX19fX19fX19fX0sMTE3OntsOnsxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDU5OF19fX19fX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMTQ6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7MTEzOntsOns1OTp7YzpbODgwOCw2NTAyNF19fX19fX19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6Wzg4MDgsNjUwMjRdfX19fX19fX19LDEwOTp7bDp7Njg6e2w6ezY4OntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3NjJdfX19fX19fX19LDk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTc1XX19LGM6WzE3NV19fX0sMTA4OntsOnsxMDE6e2w6ezU5OntjOls5Nzk0XX19fSwxMTY6e2w6ezU5OntjOlsxMDAxNl19LDEwMTp7bDp7MTE1OntsOnsxMDE6e2w6ezU5OntjOlsxMDAxNl19fX19fX19fX19fSwxMTI6e2w6ezU5OntjOls4NjE0XX0sMTE1OntsOnsxMTY6e2w6ezExMTp7bDp7NTk6e2M6Wzg2MTRdfSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls4NjE1XX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls4NjEyXX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg2MTNdfX19fX19fX19fX19fSwxMTQ6e2w6ezEwNzp7bDp7MTAxOntsOnsxMTQ6e2w6ezU5OntjOls5NjQ2XX19fX19fX19fX19LDk5OntsOnsxMTE6e2w6ezEwOTp7bDp7MTA5OntsOns5Nzp7bDp7NTk6e2M6WzEwNzkzXX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg0XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODIxMl19fX19fX19fX0sMTAxOntsOns5Nzp7bDp7MTE1OntsOnsxMTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMDA6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOls4NzM3XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDZdfX19fX0sMTA0OntsOnsxMTE6e2w6ezU5OntjOls4NDg3XX19fX19LDEwNTp7bDp7OTk6e2w6ezExNDp7bDp7MTExOntsOns1OTp7YzpbMTgxXX19LGM6WzE4MV19fX19fSwxMDA6e2w6ezU5OntjOls4NzM5XX0sOTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbNDJdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk5Ml19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxODNdfX0sYzpbMTgzXX19fX19fX0sMTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjJdfSw5ODp7bDp7NTk6e2M6Wzg4NjNdfX19LDEwMDp7bDp7NTk6e2M6Wzg3NjBdfSwxMTc6e2w6ezU5OntjOlsxMDc5NF19fX19fX19fX19fX19LDEwODp7bDp7OTk6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTcxXX19fX19LDEwMDp7bDp7MTE0OntsOns1OTp7YzpbODIzMF19fX19fX19LDExMDp7bDp7MTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyM119fX19fX19fX19fSwxMTE6e2w6ezEwMDp7bDp7MTAxOntsOnsxMDg6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NzFdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTU4XX19fX19fX0sMTEyOntsOns1OTp7YzpbODcyM119fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDAyXX19fX19LDExNjp7bDp7MTEyOntsOnsxMTE6e2w6ezExNTp7bDp7NTk6e2M6Wzg3NjZdfX19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTU2XX0sMTA4OntsOnsxMTY6e2w6ezEwNTp7bDp7MTA5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg4OF19fX19fX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4ODhdfX19fX19fX19fX0sMTEwOntsOns3MTp7bDp7MTAzOntsOns1OTp7YzpbODkyMSw4MjRdfX19LDExNjp7bDp7NTk6e2M6Wzg4MTEsODQwMl19LDExODp7bDp7NTk6e2M6Wzg4MTEsODI0XX19fX19fX0sNzY6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjUzXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODY1NF19fX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA4OntsOns1OTp7YzpbODkyMCw4MjRdfX19LDExNjp7bDp7NTk6e2M6Wzg4MTAsODQwMl19LDExODp7bDp7NTk6e2M6Wzg4MTAsODI0XX19fX19fX0sODI6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2NTVdfX19fX19fX19fX19fX19fX19fX19LDg2OntsOns2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3OV19fX19fX19fX0sMTAwOntsOns5Nzp7bDp7MTE1OntsOnsxMDQ6e2w6ezU5OntjOls4ODc4XX19fX19fX19fX19LDk3OntsOns5ODp7bDp7MTA4OntsOns5Nzp7bDp7NTk6e2M6Wzg3MTFdfX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzMyNF19fX19fX19fX0sMTEwOntsOnsxMDM6e2w6ezU5OntjOls4NzM2LDg0MDJdfX19fX0sMTEyOntsOns1OTp7YzpbODc3N119LDY5OntsOns1OTp7YzpbMTA4NjQsODI0XX19fSwxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NzksODI0XX19fX19LDExMTp7bDp7MTE1OntsOns1OTp7YzpbMzI5XX19fX19LDExMjp7bDp7MTE0OntsOnsxMTE6e2w6ezEyMDp7bDp7NTk6e2M6Wzg3NzddfX19fX19fX19fX0sMTE2OntsOnsxMTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk4MzhdfSw5Nzp7bDp7MTA4OntsOns1OTp7YzpbOTgzOF19LDExNTp7bDp7NTk6e2M6Wzg0NjldfX19fX19fX19fX19fX19LDk4OntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzE2MF19fSxjOlsxNjBdfX19LDExNzp7bDp7MTA5OntsOnsxMTI6e2w6ezU5OntjOls4NzgyLDgyNF19LDEwMTp7bDp7NTk6e2M6Wzg3ODMsODI0XX19fX19fX19fX19LDk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA4MTldfX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszMjhdfX19fX19fX19LDEwMTp7bDp7MTAwOntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzMyNl19fX19fX19fX0sMTExOntsOnsxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzg3NzVdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NjEsODI0XX19fX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezU5OntjOlsxMDgxOF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg1XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODIxMV19fX19fX19fX0sMTAxOntsOns1OTp7YzpbODgwMF19LDY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjNdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMyXX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OTldfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTldfX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg3ODQsODI0XX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezEwNTp7bDp7MTE4OntsOns1OTp7YzpbODgwMl19fX19fX19fX0sMTE1OntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzNl19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc3MCw4MjRdfX19fX19fSwxMjA6e2w6ezEwNTp7bDp7MTE1OntsOnsxMTY6e2w6ezU5OntjOls4NzA4XX0sMTE1OntsOns1OTp7YzpbODcwOF19fX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTA3XX19fX19LDEwMzp7bDp7Njk6e2w6ezU5OntjOls4ODA3LDgyNF19fX0sMTAxOntsOns1OTp7YzpbODgxN119LDExMzp7bDp7NTk6e2M6Wzg4MTddfSwxMTM6e2w6ezU5OntjOls4ODA3LDgyNF19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc4LDgyNF19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc4LDgyNF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgyMV19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTVdfSwxMTQ6e2w6ezU5OntjOls4ODE1XX19fX19fX0sMTA0OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjU0XX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYyMl19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwOTk0XX19fX19fX19fSwxMDU6e2w6ezU5OntjOls4NzE1XX0sMTE1OntsOns1OTp7YzpbODk1Nl19LDEwMDp7bDp7NTk6e2M6Wzg5NTRdfX19fX0sMTE4OntsOns1OTp7YzpbODcxNV19fX19fSwxMDY6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE0XX19fX19fX0sMTA4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjUzXX19fX19fX0sNjk6e2w6ezU5OntjOls4ODA2LDgyNF19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODYwMl19fX19fX19LDEwMDp7bDp7MTE0OntsOns1OTp7YzpbODIyOV19fX19fSwxMDE6e2w6ezU5OntjOls4ODE2XX0sMTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjAyXX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezExMTp7bDp7MTE5OntsOns1OTp7YzpbODYyMl19fX19fX19fX19fX19fX19fX19fX19fX19LDExMzp7bDp7NTk6e2M6Wzg4MTZdfSwxMTM6e2w6ezU5OntjOls4ODA2LDgyNF19fX0sMTE1OntsOnsxMDg6e2w6ezk3OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwODc3LDgyNF19fX19fX19fX19fX19LDExNTp7bDp7NTk6e2M6WzEwODc3LDgyNF19LDExNTp7bDp7NTk6e2M6Wzg4MTRdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgyMF19fX19fX19LDExNjp7bDp7NTk6e2M6Wzg4MTRdfSwxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg5MzhdfSwxMDE6e2w6ezU5OntjOls4OTQwXX19fX19fX19fX19LDEwOTp7bDp7MTA1OntsOnsxMDA6e2w6ezU5OntjOls4NzQwXX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE1OV19fX19fSwxMTY6e2w6ezU5OntjOlsxNzJdfSwxMDU6e2w6ezExMDp7bDp7NTk6e2M6Wzg3MTNdfSw2OTp7bDp7NTk6e2M6Wzg5NTMsODI0XX19fSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbODk0OSw4MjRdfX19fX19fSwxMTg6e2w6ezk3OntsOns1OTp7YzpbODcxM119fX0sOTg6e2w6ezU5OntjOls4OTUxXX19fSw5OTp7bDp7NTk6e2M6Wzg5NTBdfX19fX19fX19LDExMDp7bDp7MTA1OntsOns1OTp7YzpbODcxNl19LDExODp7bDp7OTc6e2w6ezU5OntjOls4NzE2XX19fSw5ODp7bDp7NTk6e2M6Wzg5NThdfX19LDk5OntsOns1OTp7YzpbODk1N119fX19fX19fX19LGM6WzE3Ml19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0Ml19LDk3OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzQyXX19fX19fX19fX19LDExNTp7bDp7MTA4OntsOns1OTp7YzpbMTEwMDUsODQyMV19fX19fSwxMTY6e2w6ezU5OntjOls4NzA2LDgyNF19fX19fX19LDExMTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzJdfX19fX19fX19fX0sMTE0OntsOns1OTp7YzpbODgzMl19LDk5OntsOnsxMTc6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MjhdfX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDkyNyw4MjRdfSw5OTp7bDp7NTk6e2M6Wzg4MzJdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI3LDgyNF19fX19fX19fX19fX19LDExNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1NV19fX19fX19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MDNdfSw5OTp7bDp7NTk6e2M6WzEwNTQ3LDgyNF19fX0sMTE5OntsOns1OTp7YzpbODYwNSw4MjRdfX19fX19fX19LDEwNTp7bDp7MTAzOntsOnsxMDQ6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDNdfX19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezExNDp7bDp7MTA1OntsOns1OTp7YzpbODkzOV19LDEwMTp7bDp7NTk6e2M6Wzg5NDFdfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7NTk6e2M6Wzg4MzNdfSw5OTp7bDp7MTE3OntsOnsxMDE6e2w6ezU5OntjOls4OTI5XX19fX19fX0sMTAxOntsOns1OTp7YzpbMTA5MjgsODI0XX19fSwxMTQ6e2w6ezU5OntjOlsxMjAwMDNdfX19fX0sMTA0OntsOnsxMTE6e2w6ezExNDp7bDp7MTE2OntsOnsxMDk6e2w6ezEwNTp7bDp7MTAwOntsOns1OTp7YzpbODc0MF19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7OTc6e2w6ezEwODp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7NTk6e2M6Wzg3NDJdfX19fX19fX19fX19fX19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjldfSwxMDE6e2w6ezU5OntjOls4NzcyXX0sMTEzOntsOns1OTp7YzpbODc3Ml19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3NDBdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4NzQyXX19fX19fX0sMTEzOntsOnsxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MzBdfX19fX0sMTEyOntsOnsxMDE6e2w6ezU5OntjOls4OTMxXX19fX19fX19fX19LDExNzp7bDp7OTg6e2w6ezU5OntjOls4ODM2XX0sNjk6e2w6ezU5OntjOlsxMDk0OSw4MjRdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDBdfX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM0LDg0MDJdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDBdfSwxMTM6e2w6ezU5OntjOlsxMDk0OSw4MjRdfX19fX19fX19fX19fX19LDk5OntsOns5OTp7bDp7NTk6e2M6Wzg4MzNdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6WzEwOTI4LDgyNF19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODgzN119LDY5OntsOns1OTp7YzpbMTA5NTAsODI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQxXX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNSw4NDAyXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODQxXX0sMTEzOntsOns1OTp7YzpbMTA5NTAsODI0XX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMDM6e2w6ezEwODp7bDp7NTk6e2M6Wzg4MjVdfX19fX0sMTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjQxXX19LGM6WzI0MV19fX19fX19LDEwODp7bDp7MTAzOntsOns1OTp7YzpbODgyNF19fX19fSwxMTQ6e2w6ezEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODkzOF19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODk0MF19fX19fX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODkzOV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODk0MV19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7NTk6e2M6Wzk1N119LDEwOTp7bDp7NTk6e2M6WzM1XX0sMTAxOntsOnsxMTQ6e2w6ezExMTp7bDp7NTk6e2M6Wzg0NzBdfX19fX19fSwxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgxOTldfX19fX19fX19LDExODp7bDp7Njg6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzddfX19fX19fX19LDcyOntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUwMF19fX19fX19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg3ODEsODQwMl19fX19fSwxMDA6e2w6ezk3OntsOnsxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg4NzZdfX19fX19fX19LDEwMzp7bDp7MTAxOntsOns1OTp7YzpbODgwNSw4NDAyXX19fSwxMTY6e2w6ezU5OntjOls2Miw4NDAyXX19fX19LDEwNTp7bDp7MTEwOntsOnsxMDI6e2w6ezEwNTp7bDp7MTEwOntsOns1OTp7YzpbMTA3MThdfX19fX19fX19fX0sMTA4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDQ5OF19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MDQsODQwMl19fX0sMTE2OntsOns1OTp7YzpbNjAsODQwMl19LDExNDp7bDp7MTA1OntsOnsxMDE6e2w6ezU5OntjOls4ODg0LDg0MDJdfX19fX19fX19fX0sMTE0OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDQ5OV19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4ODUsODQwMl19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODc2NCw4NDAyXX19fX19fX19fSwxMTk6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjJdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMxXX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OThdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OThdfX19fX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzNV19fX19fX19fX19fX19LDExMTp7bDp7ODM6e2w6ezU5OntjOls5NDE2XX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNDNdfX0sYzpbMjQzXX19fX19fX0sMTE1OntsOnsxMTY6e2w6ezU5OntjOls4ODU5XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbODg1OF19LDk5OntsOns1OTp7YzpbMjQ0XX19LGM6WzI0NF19fX19fSwxMjE6e2w6ezU5OntjOlsxMDg2XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg2MV19fX19fX19LDk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzMzN119fX19fX19fX0sMTA1OntsOnsxMTg6e2w6ezU5OntjOlsxMDgwOF19fX19fSwxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NTddfX19fX0sMTE1OntsOnsxMTE6e2w6ezEwODp7bDp7MTAwOntsOns1OTp7YzpbMTA2ODRdfX19fX19fX19fX0sMTAxOntsOnsxMDg6e2w6ezEwNTp7bDp7MTAzOntsOns1OTp7YzpbMzM5XX19fX19fX19fSwxMDI6e2w6ezk5OntsOnsxMDU6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjg3XX19fX19fX0sMTE0OntsOns1OTp7YzpbMTIwMTA4XX19fX19LDEwMzp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOls3MzFdfX19fX0sMTE0OntsOns5Nzp7bDp7MTE4OntsOnsxMDE6e2w6ezU5OntjOlsyNDJdfX0sYzpbMjQyXX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA2ODldfX19fX0sMTA0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjc3XX19fX19fX0sMTA5OntsOns1OTp7YzpbOTM3XX19fX19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOls4NzUwXX19fX19fX0sMTA4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjM0XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA2ODZdfX19fX0sMTE0OntsOnsxMTE6e2w6ezExNTp7bDp7MTE1OntsOns1OTp7YzpbMTA2ODNdfX19fX19fX19fX0sMTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNTRdfX19fX19fSwxMTY6e2w6ezU5OntjOlsxMDY4OF19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzMzXX19fX19fX0sMTAxOntsOnsxMDM6e2w6ezk3OntsOns1OTp7YzpbOTY5XX19fX19fX0sMTA1OntsOns5OTp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk1OV19fX19fX19fX0sMTAwOntsOns1OTp7YzpbMTA2NzhdfX19LDExMDp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOls4ODU0XX19fX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjBdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDY3OV19fX19fSwxMDE6e2w6ezExNDp7bDp7MTEyOntsOns1OTp7YzpbMTA2ODFdfX19fX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODg1M119fX19fX19fX0sMTE0OntsOns1OTp7YzpbODc0NF19LDk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2MzVdfX19fX19fSwxMDA6e2w6ezU5OntjOlsxMDg0NV19LDEwMTp7bDp7MTE0OntsOns1OTp7YzpbODUwMF19LDExMTp7bDp7MTAyOntsOns1OTp7YzpbODUwMF19fX19fX19fX0sMTAyOntsOns1OTp7YzpbMTcwXX19LGM6WzE3MF19LDEwOTp7bDp7NTk6e2M6WzE4Nl19fSxjOlsxODZdfX19LDEwNTp7bDp7MTAzOntsOnsxMTE6e2w6ezEwMjp7bDp7NTk6e2M6Wzg4ODZdfX19fX19fX19LDExMTp7bDp7MTE0OntsOns1OTp7YzpbMTA4MzhdfX19fX0sMTE1OntsOnsxMDg6e2w6ezExMTp7bDp7MTEyOntsOnsxMDE6e2w6ezU5OntjOlsxMDgzOV19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOlsxMDg0M119fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOls4NTAwXX19fX19LDEwODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbMjQ4XX19LGM6WzI0OF19fX19fX19LDExMTp7bDp7MTA4OntsOns1OTp7YzpbODg1Nl19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbMjQ1XX19LGM6WzI0NV19fX19fSwxMDk6e2w6ezEwMTp7bDp7MTE1OntsOns1OTp7YzpbODg1NV19LDk3OntsOnsxMTU6e2w6ezU5OntjOlsxMDgwNl19fX19fX19fX19fX19fX0sMTE3OntsOnsxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzI0Nl19fSxjOlsyNDZdfX19fX0sMTE4OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMjFdfX19fX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbODc0MV19LDk3OntsOns1OTp7YzpbMTgyXX0sMTA4OntsOnsxMDg6e2w6ezEwMTp7bDp7MTA4OntsOns1OTp7YzpbODc0MV19fX19fX19fX19LGM6WzE4Ml19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDk5NV19fX19fSwxMDg6e2w6ezU5OntjOlsxMTAwNV19fX19fSwxMTY6e2w6ezU5OntjOls4NzA2XX19fX19fX0sOTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwODddfX19fX0sMTAxOntsOnsxMTQ6e2w6ezk5OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzM3XX19fX19fX0sMTA1OntsOnsxMTE6e2w6ezEwMDp7bDp7NTk6e2M6WzQ2XX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzgyNDBdfX19fX19fSwxMTI6e2w6ezU5OntjOls4ODY5XX19fSwxMTY6e2w6ezEwMTp7bDp7MTEwOntsOnsxMDc6e2w6ezU5OntjOls4MjQxXX19fX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMDldfX19fX0sMTA0OntsOnsxMDU6e2w6ezU5OntjOls5NjZdfSwxMTg6e2w6ezU5OntjOls5ODFdfX19fX0sMTA5OntsOnsxMDk6e2w6ezk3OntsOnsxMTY6e2w6ezU5OntjOls4NDk5XX19fX19fX19fSwxMTE6e2w6ezExMDp7bDp7MTAxOntsOns1OTp7YzpbOTc0Ml19fX19fX19fX0sMTA1OntsOns1OTp7YzpbOTYwXX0sMTE2OntsOns5OTp7bDp7MTA0OntsOnsxMDI6e2w6ezExMTp7bDp7MTE0OntsOnsxMDc6e2w6ezU5OntjOls4OTE2XX19fX19fX19fX19fX19fSwxMTg6e2w6ezU5OntjOls5ODJdfX19fX0sMTA4OntsOns5Nzp7bDp7MTEwOntsOns5OTp7bDp7MTA3OntsOns1OTp7YzpbODQ2M119LDEwNDp7bDp7NTk6e2M6Wzg0NjJdfX19fX19fSwxMDc6e2w6ezExODp7bDp7NTk6e2M6Wzg0NjNdfX19fX19fX19LDExNzp7bDp7MTE1OntsOns1OTp7YzpbNDNdfSw5Nzp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA3ODddfX19fX19fX19LDk4OntsOns1OTp7YzpbODg2Ml19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA3ODZdfX19fX19fSwxMDA6e2w6ezExMTp7bDp7NTk6e2M6Wzg3MjRdfX19LDExNzp7bDp7NTk6e2M6WzEwNzg5XX19fX19LDEwMTp7bDp7NTk6e2M6WzEwODY2XX19fSwxMDk6e2w6ezExMDp7bDp7NTk6e2M6WzE3N119fSxjOlsxNzddfX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDc5MF19fX19fX19LDExNjp7bDp7MTE5OntsOnsxMTE6e2w6ezU5OntjOlsxMDc5MV19fX19fX19fX19fX19LDEwOTp7bDp7NTk6e2M6WzE3N119fX0sMTExOntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzNdfX19fX19fX19fX19fSwxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE2MV19fX19fSwxMTc6e2w6ezExMDp7bDp7MTAwOntsOns1OTp7YzpbMTYzXX19LGM6WzE2M119fX19fX19LDExNDp7bDp7NTk6e2M6Wzg4MjZdfSw2OTp7bDp7NTk6e2M6WzEwOTMxXX19fSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA5MzVdfX19fX0sOTk6e2w6ezExNzp7bDp7MTAxOntsOns1OTp7YzpbODgyOF19fX19fX19LDEwMTp7bDp7NTk6e2M6WzEwOTI3XX0sOTk6e2w6ezU5OntjOls4ODI2XX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzVdfX19fX19fX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MjhdfX19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbMTA5MjddfX19fX0sMTEwOntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDkzN119fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOnsxMTM6e2w6ezU5OntjOlsxMDkzM119fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM2XX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMF19fX19fX19fX19fSwxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbODI0Ml19LDExNTp7bDp7NTk6e2M6Wzg0NzNdfX19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDkzM119fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM3XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM2XX19fX19fX19fSwxMTE6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MTldfX19LDEwMjp7bDp7OTc6e2w6ezEwODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMDZdfX19fX19fX19LDEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5NzhdfX19fX19fX19LDExNTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwMjp7bDp7NTk6e2M6Wzg5NzldfX19fX19fX19fX0sMTEyOntsOns1OTp7YzpbODczM119LDExNjp7bDp7MTExOntsOns1OTp7YzpbODczM119fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg4MzBdfX19fX19fSwxMTc6e2w6ezExNDp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4ODgwXX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwNV19fX19fSwxMDU6e2w6ezU5OntjOls5NjhdfX19fX0sMTE3OntsOnsxMTA6e2w6ezk5OntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgyMDBdfX19fX19fX19fX19fSwxMTM6e2w6ezEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTEwXX19fX19LDEwNTp7bDp7MTEwOntsOnsxMTY6e2w6ezU5OntjOlsxMDc2NF19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjJdfX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzgyNzldfX19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDA2XX19fX19fX0sMTE3OntsOns5Nzp7bDp7MTE2OntsOnsxMDE6e2w6ezExNDp7bDp7MTEwOntsOnsxMDU6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NDYxXX19fX19fX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzRdfX19fX19fX19fX0sMTAxOntsOnsxMTU6e2w6ezExNjp7bDp7NTk6e2M6WzYzXX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzk5XX19fX19fX19fX19LDExMTp7bDp7MTE2OntsOns1OTp7YzpbMzRdfX0sYzpbMzRdfX19fX19fSwxMTQ6e2w6ezY1OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY3XX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjU4XX19fX19LDExNjp7bDp7OTc6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMTA1MjRdfX19fX19fX19fX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTExXX19fX19fX19fSw3Mjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEwNTk2XX19fX19fX0sOTc6e2w6ezk5OntsOnsxMDE6e2w6ezU5OntjOls4NzY1LDgxN119fX0sMTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM0MV19fX19fX19fX0sMTAwOntsOnsxMDU6e2w6ezk5OntsOns1OTp7YzpbODczMF19fX19fX19LDEwMTp7bDp7MTA5OntsOnsxMTI6e2w6ezExNjp7bDp7MTIxOntsOnsxMTg6e2w6ezU5OntjOlsxMDY3NV19fX19fX19fX19fX19LDExMDp7bDp7MTAzOntsOns1OTp7YzpbMTAyMTddfSwxMDA6e2w6ezU5OntjOlsxMDY0Ml19fX0sMTAxOntsOns1OTp7YzpbMTA2NjFdfX19LDEwODp7bDp7MTAxOntsOns1OTp7YzpbMTAyMTddfX19fX19fX19LDExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOlsxODddfX0sYzpbMTg3XX19fX19LDExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5NF19LDk3OntsOnsxMTI6e2w6ezU5OntjOlsxMDYxM119fX19fSw5ODp7bDp7NTk6e2M6Wzg2NzddfSwxMDI6e2w6ezExNTp7bDp7NTk6e2M6WzEwNTI4XX19fX19fX0sOTk6e2w6ezU5OntjOlsxMDU0N119fX0sMTAyOntsOnsxMTU6e2w6ezU5OntjOlsxMDUyNl19fX19fSwxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6Wzg2MThdfX19fX0sMTA4OntsOnsxMTI6e2w6ezU5OntjOls4NjIwXX19fX19LDExMjp7bDp7MTA4OntsOns1OTp7YzpbMTA1NjVdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6WzEwNjEyXX19fX19fX0sMTE2OntsOnsxMDg6e2w6ezU5OntjOls4NjExXX19fX19LDExOTp7bDp7NTk6e2M6Wzg2MDVdfX19fX19fSwxMTY6e2w6ezk3OntsOnsxMDU6e2w6ezEwODp7bDp7NTk6e2M6WzEwNTIyXX19fX19fX0sMTA1OntsOnsxMTE6e2w6ezU5OntjOls4NzU4XX0sMTEwOntsOns5Nzp7bDp7MTA4OntsOnsxMTU6e2w6ezU5OntjOls4NDc0XX19fX19fX19fX19fX19fX19LDk4OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUwOV19fX19fX19LDk4OntsOnsxMTQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwMDk5XX19fX19fX0sMTE0OntsOns5Nzp7bDp7OTk6e2w6ezEwMTp7bDp7NTk6e2M6WzEyNV19fX0sMTA3OntsOns1OTp7YzpbOTNdfX19fX19fSwxMDc6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNjM2XX19fSwxMTU6e2w6ezEwODp7bDp7MTAwOntsOns1OTp7YzpbMTA2MzhdfX19LDExNzp7bDp7NTk6e2M6WzEwNjQwXX19fX19fX19fX19fX0sOTk6e2w6ezk3OntsOnsxMTQ6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzQ1XX19fX19fX19fSwxMDE6e2w6ezEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNDNdfX19fX19fSwxMDU6e2w6ezEwODp7bDp7NTk6e2M6Wzg5NjldfX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbMTI1XX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODhdfX19fX0sMTAwOntsOns5OTp7bDp7OTc6e2w6ezU5OntjOlsxMDU1MV19fX19fSwxMDg6e2w6ezEwMDp7bDp7MTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDFdfX19fX19fX19fX0sMTEzOntsOnsxMTc6e2w6ezExMTp7bDp7NTk6e2M6WzgyMjFdfSwxMTQ6e2w6ezU5OntjOls4MjIxXX19fX19fX19fSwxMTU6e2w6ezEwNDp7bDp7NTk6e2M6Wzg2MjddfX19fX19fSwxMDE6e2w6ezk3OntsOnsxMDg6e2w6ezU5OntjOls4NDc2XX0sMTA1OntsOnsxMTA6e2w6ezEwMTp7bDp7NTk6e2M6Wzg0NzVdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6Wzg0NzZdfX19fX19fX19LDExNTp7bDp7NTk6e2M6Wzg0NzddfX19fX19fSw5OTp7bDp7MTE2OntsOns1OTp7YzpbOTY0NV19fX19fSwxMDM6e2w6ezU5OntjOlsxNzRdfX0sYzpbMTc0XX19fSwxMDI6e2w6ezEwNTp7bDp7MTE1OntsOnsxMDQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjIxXX19fX19fX19fSwxMDg6e2w6ezExMTp7bDp7MTExOntsOnsxMTQ6e2w6ezU5OntjOls4OTcxXX19fX19fX19fSwxMTQ6e2w6ezU5OntjOlsxMjAxMTFdfX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDA6e2w6ezU5OntjOls4NjQxXX19fSwxMTc6e2w6ezU5OntjOls4NjQwXX0sMTA4OntsOns1OTp7YzpbMTA2MDRdfX19fX19fX19LDExMTp7bDp7NTk6e2M6Wzk2MV19LDExODp7bDp7NTk6e2M6WzEwMDldfX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTk0XX0sMTE2OntsOns5Nzp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOls4NjExXX19fX19fX19fX19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMTI6e2w6ezExMTp7bDp7MTExOntsOnsxMTA6e2w6ezEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7NTk6e2M6Wzg2NDFdfX19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODY0MF19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0NF19fX19fX19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7MTEyOntsOnsxMTE6e2w6ezExMTp7bDp7MTEwOntsOnsxMTU6e2w6ezU5OntjOls4NjUyXX19fX19fX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezExNTp7bDp7NTk6e2M6Wzg2NDldfX19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMTM6e2w6ezExNzp7bDp7MTA1OntsOnsxMDM6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA1XX19fX19fX19fX19fX19fX19fX19fSwxMTY6e2w6ezEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7MTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOls4OTA4XX19fX19fX19fX19fX19fX19fX19fX19fX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6WzczMF19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTEwOntsOnsxMDM6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezExNTp7bDp7MTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzg3XX19fX19fX19fX19fX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0NF19fX19fX19LDEwNDp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NTJdfX19fX19fSwxMDk6e2w6ezU5OntjOls4MjA3XX19fX19LDEwOTp7bDp7MTExOntsOnsxMTc6e2w6ezExNTp7bDp7MTE2OntsOns1OTp7YzpbOTEzN119LDk3OntsOns5OTp7bDp7MTA0OntsOnsxMDE6e2w6ezU5OntjOls5MTM3XX19fX19fX19fX19fX19fX19fX0sMTEwOntsOnsxMDk6e2w6ezEwNTp7bDp7MTAwOntsOns1OTp7YzpbMTA5OTBdfX19fX19fX19LDExMTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMTAyMjFdfX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NzAyXX19fX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTAyMTVdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYzMF19fX19fSwxMDI6e2w6ezU5OntjOlsxMjAxNjNdfX19LDEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc5OF19fX19fX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOnsxMTU6e2w6ezU5OntjOlsxMDgwNV19fX19fX19fX19fX19LDExMjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzQxXX0sMTAzOntsOnsxMTY6e2w6ezU5OntjOlsxMDY0NF19fX19fX19fX0sMTEyOntsOnsxMTE6e2w6ezEwODp7bDp7MTA1OntsOnsxMTA6e2w6ezExNjp7bDp7NTk6e2M6WzEwNzcwXX19fX19fX19fX19fX19fSwxMTQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NDldfX19fX19fX19LDExNTp7bDp7OTc6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjUwXX19fX19fX19fSw5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDA3XX19fX19LDEwNDp7bDp7NTk6e2M6Wzg2MjVdfX19LDExMzp7bDp7OTg6e2w6ezU5OntjOls5M119fX0sMTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjE3XX0sMTE0OntsOns1OTp7YzpbODIxN119fX19fX19fX19fSwxMTY6e2w6ezEwNDp7bDp7MTE0OntsOnsxMDE6e2w6ezEwMTp7bDp7NTk6e2M6Wzg5MDhdfX19fX19fX19LDEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzg5MDZdfX19fX19fX19LDExNDp7bDp7MTA1OntsOns1OTp7YzpbOTY1N119LDEwMTp7bDp7NTk6e2M6Wzg4ODVdfX19LDEwMjp7bDp7NTk6e2M6Wzk2NTZdfX19LDEwODp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6WzEwNzAyXX19fX19fX19fX19fX19fSwxMTc6e2w6ezEwODp7bDp7MTE3OntsOnsxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYwMF19fX19fX19fX19fX19LDEyMDp7bDp7NTk6e2M6Wzg0NzhdfX19fX0sMTE1OntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlszNDddfX19fX19fX19fX0sOTg6e2w6ezExMzp7bDp7MTE3OntsOnsxMTE6e2w6ezU5OntjOls4MjE4XX19fX19fX19fSw5OTp7bDp7NTk6e2M6Wzg4MjddfSw2OTp7bDp7NTk6e2M6WzEwOTMyXX19fSw5Nzp7bDp7MTEyOntsOns1OTp7YzpbMTA5MzZdfX19LDExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszNTNdfX19fX19fX19LDk5OntsOnsxMTc6e2w6ezEwMTp7bDp7NTk6e2M6Wzg4MjldfX19fX19fSwxMDE6e2w6ezU5OntjOlsxMDkyOF19LDEwMDp7bDp7MTA1OntsOnsxMDg6e2w6ezU5OntjOlszNTFdfX19fX19fX19LDEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM0OV19fX19fX19LDExMDp7bDp7Njk6e2w6ezU5OntjOlsxMDkzNF19fX0sOTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwOTM4XX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM3XX19fX19fX19fSwxMTI6e2w6ezExMTp7bDp7MTA4OntsOnsxMDU6e2w6ezExMDp7bDp7MTE2OntsOns1OTp7YzpbMTA3NzFdfX19fX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMV19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwODldfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5MDFdfSw5ODp7bDp7NTk6e2M6Wzg4NjVdfX19LDEwMTp7bDp7NTk6e2M6WzEwODU0XX19fX19fX19fSwxMDE6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjRdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTMzXX19fX19LDExNDp7bDp7NTk6e2M6Wzg2MDBdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDBdfX19fX19fX19fX0sOTk6e2w6ezExNjp7bDp7NTk6e2M6WzE2N119fSxjOlsxNjddfX19LDEwOTp7bDp7MTA1OntsOns1OTp7YzpbNTldfX19fX0sMTE1OntsOnsxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzN119fX19fX19fX0sMTE2OntsOnsxMDk6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fX19LDExMDp7bDp7NTk6e2M6Wzg3MjZdfX19fX19fSwxMjA6e2w6ezExNjp7bDp7NTk6e2M6WzEwMDM4XX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMTJdfSwxMTE6e2w6ezExOTp7bDp7MTEwOntsOns1OTp7YzpbODk5NF19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7NTk6e2M6Wzk4MzldfX19fX19fSw5OTp7bDp7MTA0OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTA5N119fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwOTZdfX19fX0sMTExOntsOnsxMTQ6e2w6ezExNjp7bDp7MTA5OntsOnsxMDU6e2w6ezEwMDp7bDp7NTk6e2M6Wzg3MzldfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezk3OntsOnsxMDg6e2w6ezEwODp7bDp7MTAxOntsOnsxMDg6e2w6ezU5OntjOls4NzQxXX19fX19fX19fX19fX19fX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzE3M119fSxjOlsxNzNdfX19LDEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTYzXX0sMTAyOntsOns1OTp7YzpbOTYyXX19fSwxMTg6e2w6ezU5OntjOls5NjJdfX19fX19fX19LDEwOTp7bDp7NTk6e2M6Wzg3NjRdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA4NThdfX19fX19fSwxMDE6e2w6ezU5OntjOls4NzcxXX0sMTEzOntsOns1OTp7YzpbODc3MV19fX19fSwxMDM6e2w6ezU5OntjOlsxMDkxMF19LDY5OntsOns1OTp7YzpbMTA5MTJdfX19fX0sMTA4OntsOns1OTp7YzpbMTA5MDldfSw2OTp7bDp7NTk6e2M6WzEwOTExXX19fX19LDExMDp7bDp7MTAxOntsOns1OTp7YzpbODc3NF19fX19fSwxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc4OF19fX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDYxMF19fX19fX19fX19fX19LDEwODp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODU5Ml19fX19fX19fX0sMTA5OntsOns5Nzp7bDp7MTA4OntsOnsxMDg6e2w6ezExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezEwOTp7bDp7MTA1OntsOnsxMTA6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbODcyNl19fX19fX19fX19fX19fX19fX19fX0sMTE1OntsOnsxMDQ6e2w6ezExMjp7bDp7NTk6e2M6WzEwODAzXX19fX19fX19fSwxMDE6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE1OntsOnsxMDg6e2w6ezU5OntjOlsxMDcyNF19fX19fX19fX19fX19LDEwNTp7bDp7MTAwOntsOns1OTp7YzpbODczOV19fX0sMTA4OntsOnsxMDE6e2w6ezU5OntjOls4OTk1XX19fX19fX0sMTE2OntsOns1OTp7YzpbMTA5MjJdfSwxMDE6e2w6ezU5OntjOlsxMDkyNF19LDExNTp7bDp7NTk6e2M6WzEwOTI0LDY1MDI0XX19fX19fX19fSwxMTE6e2w6ezEwMjp7bDp7MTE2OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwMF19fX19fX19fX0sMTA4OntsOns1OTp7YzpbNDddfSw5ODp7bDp7NTk6e2M6WzEwNjkyXX0sOTc6e2w6ezExNDp7bDp7NTk6e2M6WzkwMjNdfX19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY0XX19fX19fX0sMTEyOntsOns5Nzp7bDp7MTAwOntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6Wzk4MjRdfSwxMTc6e2w6ezEwNTp7bDp7MTE2OntsOns1OTp7YzpbOTgyNF19fX19fX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg3NDFdfX19fX19fSwxMTM6e2w6ezk5OntsOns5Nzp7bDp7MTEyOntsOns1OTp7YzpbODg1MV19LDExNTp7bDp7NTk6e2M6Wzg4NTEsNjUwMjRdfX19fX19fSwxMTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4NTJdfSwxMTU6e2w6ezU5OntjOls4ODUyLDY1MDI0XX19fX19fX19fSwxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOls4ODQ3XX0sMTAxOntsOns1OTp7YzpbODg0OV19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDddfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDldfX19fX19fX19fX19fSwxMTI6e2w6ezU5OntjOls4ODQ4XX0sMTAxOntsOns1OTp7YzpbODg1MF19fX0sMTE1OntsOnsxMDE6e2w6ezExNjp7bDp7NTk6e2M6Wzg4NDhdfSwxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NTBdfX19fX19fX19fX19fX19fX0sMTE3OntsOns1OTp7YzpbOTYzM119LDk3OntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2MzNdfX19LDEwMjp7bDp7NTk6e2M6Wzk2NDJdfX19fX19fSwxMDI6e2w6ezU5OntjOls5NjQyXX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NTk0XX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMDhdfX19fX0sMTAxOntsOnsxMTY6e2w6ezEwOTp7bDp7MTEwOntsOns1OTp7YzpbODcyNl19fX19fX19fX0sMTA5OntsOnsxMDU6e2w6ezEwODp7bDp7MTAxOntsOns1OTp7YzpbODk5NV19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7MTE0OntsOnsxMDI6e2w6ezU5OntjOls4OTAyXX19fX19fX19fX19LDExNjp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6Wzk3MzRdfSwxMDI6e2w6ezU5OntjOls5NzMzXX19fX19fX0sMTE0OntsOns5Nzp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOnsxMDE6e2w6ezExMjp7bDp7MTE1OntsOnsxMDU6e2w6ezEwODp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlsxMDEzXX19fX19fX19fX19fX19fSwxMTI6e2w6ezEwNDp7bDp7MTA1OntsOns1OTp7YzpbOTgxXX19fX19fX19fX19fX19fX19LDExMDp7bDp7MTE1OntsOns1OTp7YzpbMTc1XX19fX19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbODgzNF19LDY5OntsOns1OTp7YzpbMTA5NDldfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0MV19fX19fX19LDEwMTp7bDp7NTk6e2M6Wzg4MzhdfSwxMDA6e2w6ezExMTp7bDp7MTE2OntsOns1OTp7YzpbMTA5NDddfX19fX19fX19LDEwOTp7bDp7MTE3OntsOnsxMDg6e2w6ezExNjp7bDp7NTk6e2M6WzEwOTQ1XX19fX19fX19fSwxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5NTVdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDJdfX19fX0sMTEyOntsOnsxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA5NDNdfX19fX19fX19LDExNDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTA2MTddfX19fX19fX19LDExNTp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4ODM0XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODM4XX0sMTEzOntsOns1OTp7YzpbMTA5NDldfX19fX19fSwxMTA6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg0Ml19LDExMzp7bDp7NTk6e2M6WzEwOTU1XX19fX19fX19fX19fX0sMTA1OntsOnsxMDk6e2w6ezU5OntjOlsxMDk1MV19fX19fSwxMTc6e2w6ezk4OntsOns1OTp7YzpbMTA5NjVdfX19LDExMjp7bDp7NTk6e2M6WzEwOTYzXX19fX19fX19fSw5OTp7bDp7OTk6e2w6ezU5OntjOls4ODI3XX0sOTc6e2w6ezExMjp7bDp7MTEyOntsOnsxMTQ6e2w6ezExMTp7bDp7MTIwOntsOns1OTp7YzpbMTA5MzZdfX19fX19fX19fX19fSw5OTp7bDp7MTE3OntsOnsxMTQ6e2w6ezEwODp7bDp7MTIxOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4MjldfX19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbMTA5MjhdfX19fX0sMTEwOntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOlsxMDkzOF19fX19fX19fX19fX19LDEwMTp7bDp7MTEzOntsOnsxMTM6e2w6ezU5OntjOlsxMDkzNF19fX19fX19LDExNTp7bDp7MTA1OntsOnsxMDk6e2w6ezU5OntjOls4OTM3XX19fX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTA5OntsOns1OTp7YzpbODgzMV19fX19fX19fX19fSwxMDk6e2w6ezU5OntjOls4NzIxXX19fSwxMTA6e2w6ezEwMzp7bDp7NTk6e2M6Wzk4MzRdfX19fX0sMTEyOntsOns0OTp7bDp7NTk6e2M6WzE4NV19fSxjOlsxODVdfSw1MDp7bDp7NTk6e2M6WzE3OF19fSxjOlsxNzhdfSw1MTp7bDp7NTk6e2M6WzE3OV19fSxjOlsxNzldfSw1OTp7YzpbODgzNV19LDY5OntsOns1OTp7YzpbMTA5NTBdfX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0Ml19fX19fSwxMTU6e2w6ezExNzp7bDp7OTg6e2w6ezU5OntjOlsxMDk2OF19fX19fX19fX0sMTAxOntsOns1OTp7YzpbODgzOV19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDk0OF19fX19fX19fX0sMTA0OntsOnsxMTU6e2w6ezExMTp7bDp7MTA4OntsOns1OTp7YzpbMTAxODVdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTY3XX19fX19fX19fSwxMDg6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwNjE5XX19fX19fX19fSwxMDk6e2w6ezExNzp7bDp7MTA4OntsOnsxMTY6e2w6ezU5OntjOlsxMDk0Nl19fX19fX19fX0sMTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU2XX19fSwxMDE6e2w6ezU5OntjOls4ODQzXX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwOTQ0XX19fX19fX19fSwxMTU6e2w6ezEwMTp7bDp7MTE2OntsOns1OTp7YzpbODgzNV19LDEwMTp7bDp7MTEzOntsOns1OTp7YzpbODgzOV19LDExMzp7bDp7NTk6e2M6WzEwOTUwXX19fX19fX0sMTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDNdfSwxMTM6e2w6ezU5OntjOlsxMDk1Nl19fX19fX19fX19fX19LDEwNTp7bDp7MTA5OntsOns1OTp7YzpbMTA5NTJdfX19fX0sMTE3OntsOns5ODp7bDp7NTk6e2M6WzEwOTY0XX19fSwxMTI6e2w6ezU5OntjOlsxMDk2Nl19fX19fX19fX19fSwxMTk6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6Wzg2NjVdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMDQ6e2w6ezEwNzp7bDp7NTk6e2M6WzEwNTM0XX19fX19LDExNDp7bDp7NTk6e2M6Wzg2MDFdfSwxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg2MDFdfX19fX19fX19fX0sMTEwOntsOnsxMTk6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDUzOF19fX19fX19fX19fSwxMjI6e2w6ezEwODp7bDp7MTA1OntsOnsxMDM6e2w6ezU5OntjOlsyMjNdfX0sYzpbMjIzXX19fX19fX19fSwxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezEwMzp7bDp7MTAxOntsOnsxMTY6e2w6ezU5OntjOls4OTgyXX19fX19fX19fSwxMTc6e2w6ezU5OntjOls5NjRdfX19fX0sOTg6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbOTE0MF19fX19fX19LDk5OntsOns5Nzp7bDp7MTE0OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzM1N119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezEwNTp7bDp7MTA4OntsOns1OTp7YzpbMzU1XX19fX19fX19fSwxMjE6e2w6ezU5OntjOlsxMDkwXX19fX19LDEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls4NDExXX19fX19fX0sMTAxOntsOnsxMDg6e2w6ezExNDp7bDp7MTAxOntsOns5OTp7bDp7NTk6e2M6Wzg5ODFdfX19fX19fX19fX0sMTAyOntsOnsxMTQ6e2w6ezU5OntjOlsxMjAxMTNdfX19fX0sMTA0OntsOnsxMDE6e2w6ezExNDp7bDp7MTAxOntsOns1Mjp7bDp7NTk6e2M6Wzg3NTZdfX19LDEwMjp7bDp7MTExOntsOnsxMTQ6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NTZdfX19fX19fX19fX19fSwxMTY6e2w6ezk3OntsOns1OTp7YzpbOTUyXX0sMTE1OntsOnsxMjE6e2w6ezEwOTp7bDp7NTk6e2M6Wzk3N119fX19fX19LDExODp7bDp7NTk6e2M6Wzk3N119fX19fX19fX0sMTA1OntsOns5OTp7bDp7MTA3OntsOns5Nzp7bDp7MTEyOntsOnsxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMjA6e2w6ezU5OntjOls4Nzc2XX19fX19fX19fX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjRdfX19fX19fX19fX0sMTEwOntsOnsxMTU6e2w6ezExMjp7bDp7NTk6e2M6WzgyMDFdfX19fX19fX19LDEwNzp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg3NzZdfX19fX0sMTE1OntsOnsxMDU6e2w6ezEwOTp7bDp7NTk6e2M6Wzg3NjRdfX19fX19fX19LDExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezU5OntjOlsyNTRdfX0sYzpbMjU0XX19fX19fX0sMTA1OntsOnsxMDg6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbNzMyXX19fX19fX0sMTA5OntsOnsxMDE6e2w6ezExNTp7bDp7NTk6e2M6WzIxNV19LDk4OntsOns1OTp7YzpbODg2NF19LDk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDgwMV19fX19fX19LDEwMDp7bDp7NTk6e2M6WzEwODAwXX19fX0sYzpbMjE1XX19fX19LDExMDp7bDp7MTE2OntsOns1OTp7YzpbODc0OV19fX19fX19LDExMTp7bDp7MTAxOntsOns5Nzp7bDp7NTk6e2M6WzEwNTM2XX19fX19LDExMjp7bDp7NTk6e2M6Wzg4NjhdfSw5ODp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOls5MDE0XX19fX19fX0sOTk6e2w6ezEwNTp7bDp7MTE0OntsOns1OTp7YzpbMTA5OTNdfX19fX19fSwxMDI6e2w6ezU5OntjOlsxMjAxNjVdfSwxMTE6e2w6ezExNDp7bDp7MTA3OntsOns1OTp7YzpbMTA5NzBdfX19fX19fX19fX0sMTE1OntsOns5Nzp7bDp7NTk6e2M6WzEwNTM3XX19fX19fX0sMTEyOntsOnsxMTQ6e2w6ezEwNTp7bDp7MTA5OntsOnsxMDE6e2w6ezU5OntjOls4MjQ0XX19fX19fX19fX19LDExNDp7bDp7OTc6e2w6ezEwMDp7bDp7MTAxOntsOns1OTp7YzpbODQ4Ml19fX19fX19LDEwNTp7bDp7OTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMDg6e2w6ezEwMTp7bDp7NTk6e2M6Wzk2NTNdfSwxMDA6e2w6ezExMTp7bDp7MTE5OntsOnsxMTA6e2w6ezU5OntjOls5NjYzXX19fX19fX19fSwxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezU5OntjOls5NjY3XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODg0XX19fX19fX19fX19fX0sMTEzOntsOns1OTp7YzpbODc5Nl19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls5NjU3XX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4ODg1XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzk3MDhdfX19fX19fSwxMDE6e2w6ezU5OntjOls4Nzk2XX19fSwxMDk6e2w6ezEwNTp7bDp7MTEwOntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwODEwXX19fX19fX19fX19LDExMjp7bDp7MTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6WzEwODA5XX19fX19fX19fSwxMTU6e2w6ezk4OntsOns1OTp7YzpbMTA3MDFdfX19fX0sMTE2OntsOnsxMDU6e2w6ezEwOTp7bDp7MTAxOntsOns1OTp7YzpbMTA4MTFdfX19fX19fX19fX0sMTEyOntsOnsxMDE6e2w6ezEyMjp7bDp7MTA1OntsOnsxMTc6e2w6ezEwOTp7bDp7NTk6e2M6WzkxODZdfX19fX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAwOV19fX0sMTIxOntsOns1OTp7YzpbMTA5NF19fX19fSwxMDQ6e2w6ezk5OntsOnsxMjE6e2w6ezU5OntjOlsxMTE1XX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezExMTp7bDp7MTA3OntsOns1OTp7YzpbMzU5XX19fX19fX19fX19LDExOTp7bDp7MTA1OntsOnsxMjA6e2w6ezExNjp7bDp7NTk6e2M6Wzg4MTJdfX19fX19fSwxMTE6e2w6ezEwNDp7bDp7MTAxOntsOns5Nzp7bDp7MTAwOntsOnsxMDg6e2w6ezEwMTp7bDp7MTAyOntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA2XX19fX19fX19fX19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NjA4XX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDExNzp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY1N119fX19fX19LDcyOntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA1OTVdfX19fX19fSw5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNTBdfX0sYzpbMjUwXX19fX19fX0sMTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NTkzXX19fX19fX0sOTg6e2w6ezExNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMThdfX19fX0sMTAxOntsOnsxMTg6e2w6ezEwMTp7bDp7NTk6e2M6WzM2NV19fX19fX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMjUxXX19LGM6WzI1MV19fX19fSwxMjE6e2w6ezU5OntjOlsxMDkxXX19fX19LDEwMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0NV19fX19fX19LDk4OntsOnsxMDg6e2w6ezk3OntsOns5OTp7bDp7NTk6e2M6WzM2OV19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA2MDZdfX19fX19fX19LDEwMjp7bDp7MTA1OntsOnsxMTU6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbMTA2MjJdfX19fX19fX19LDExNDp7bDp7NTk6e2M6WzEyMDExNF19fX19fSwxMDM6e2w6ezExNDp7bDp7OTc6e2w6ezExODp7bDp7MTAxOntsOns1OTp7YzpbMjQ5XX19LGM6WzI0OV19fX19fX19fX0sMTA0OntsOns5Nzp7bDp7MTE0OntsOnsxMDg6e2w6ezU5OntjOls4NjM5XX19fSwxMTQ6e2w6ezU5OntjOls4NjM4XX19fX19fX0sOTg6e2w6ezEwODp7bDp7MTA3OntsOns1OTp7YzpbOTYwMF19fX19fX19fX0sMTA4OntsOns5OTp7bDp7MTExOntsOnsxMTQ6e2w6ezExMDp7bDp7NTk6e2M6Wzg5ODhdfSwxMDE6e2w6ezExNDp7bDp7NTk6e2M6Wzg5ODhdfX19fX19fX19fX0sMTE0OntsOnsxMTE6e2w6ezExMjp7bDp7NTk6e2M6Wzg5NzVdfX19fX19fX19LDExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls5NzIwXX19fX19fX19fSwxMDk6e2w6ezk3OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMzYzXX19fX19fX0sMTA4OntsOns1OTp7YzpbMTY4XX19LGM6WzE2OF19fX0sMTExOntsOnsxMDM6e2w6ezExMTp7bDp7MTEwOntsOns1OTp7YzpbMzcxXX19fX19fX0sMTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjZdfX19fX19fSwxMTI6e2w6ezk3OntsOnsxMTQ6e2w6ezExNDp7bDp7MTExOntsOnsxMTk6e2w6ezU5OntjOls4NTkzXX19fX19fX19fX19LDEwMDp7bDp7MTExOntsOnsxMTk6e2w6ezExMDp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7NTk6e2M6Wzg1OTddfX19fX19fX19fX19fX19fX19fSwxMDQ6e2w6ezk3OntsOnsxMTQ6e2w6ezExMjp7bDp7MTExOntsOnsxMTE6e2w6ezExMDp7bDp7MTA4OntsOnsxMDE6e2w6ezEwMjp7bDp7MTE2OntsOns1OTp7YzpbODYzOV19fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezEwMzp7bDp7MTA0OntsOnsxMTY6e2w6ezU5OntjOls4NjM4XX19fX19fX19fX19fX19fX19fX19fX19fX0sMTA4OntsOnsxMTc6e2w6ezExNTp7bDp7NTk6e2M6Wzg4NDZdfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NV19LDEwNDp7bDp7NTk6e2M6Wzk3OF19fX0sMTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6Wzk2NV19fX19fX19fX19fSwxMTc6e2w6ezExMjp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOnsxMTE6e2w6ezExOTp7bDp7MTE1OntsOns1OTp7YzpbODY0OF19fX19fX19fX19fX19fX19fX19LDExNDp7bDp7OTk6e2w6ezExMTp7bDp7MTE0OntsOnsxMTA6e2w6ezU5OntjOls4OTg5XX0sMTAxOntsOnsxMTQ6e2w6ezU5OntjOls4OTg5XX19fX19fX19fX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4OTc0XX19fX19fX19fSwxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbMzY3XX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk3MjFdfX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxMF19fX19fX19LDExNjp7bDp7MTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6Wzg5NDRdfX19fX19fSwxMDU6e2w6ezEwODp7bDp7MTAwOntsOnsxMDE6e2w6ezU5OntjOlszNjFdfX19fX19fX19LDExNDp7bDp7MTA1OntsOns1OTp7YzpbOTY1M119LDEwMjp7bDp7NTk6e2M6Wzk2NTJdfX19fX19fX19LDExNzp7bDp7OTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbODY0OF19fX19fX19LDEwOTp7bDp7MTA4OntsOns1OTp7YzpbMjUyXX19LGM6WzI1Ml19fX19fSwxMTk6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezU5OntjOlsxMDY2M119fX19fX19fX19fX19fX0sMTE4OntsOns2NTp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjYxXX19fX19fX0sNjY6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOlsxMDk4NF19LDExODp7bDp7NTk6e2M6WzEwOTg1XX19fX19fX19fSw2ODp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg3Ml19fX19fX19fX0sOTc6e2w6ezExMDp7bDp7MTAzOntsOnsxMTQ6e2w6ezExNjp7bDp7NTk6e2M6WzEwNjUyXX19fX19fX19fSwxMTQ6e2w6ezEwMTp7bDp7MTEyOntsOnsxMTU6e2w6ezEwNTp7bDp7MTA4OntsOnsxMTE6e2w6ezExMDp7bDp7NTk6e2M6WzEwMTNdfX19fX19fX19fX19fX19LDEwNzp7bDp7OTc6e2w6ezExMjp7bDp7MTEyOntsOns5Nzp7bDp7NTk6e2M6WzEwMDhdfX19fX19fX19fX0sMTEwOntsOnsxMTE6e2w6ezExNjp7bDp7MTA0OntsOnsxMDU6e2w6ezExMDp7bDp7MTAzOntsOns1OTp7YzpbODcwOV19fX19fX19fX19fX19fX0sMTEyOntsOnsxMDQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk4MV19fX19fSwxMDU6e2w6ezU5OntjOls5ODJdfX19LDExNDp7bDp7MTExOntsOnsxMTI6e2w6ezExNjp7bDp7MTExOntsOns1OTp7YzpbODczM119fX19fX19fX19fX19LDExNDp7bDp7NTk6e2M6Wzg1OTddfSwxMDQ6e2w6ezExMTp7bDp7NTk6e2M6WzEwMDldfX19fX19fSwxMTU6e2w6ezEwNTp7bDp7MTAzOntsOnsxMDk6e2w6ezk3OntsOns1OTp7YzpbOTYyXX19fX19fX19fSwxMTc6e2w6ezk4OntsOnsxMTU6e2w6ezEwMTp7bDp7MTE2OntsOnsxMTA6e2w6ezEwMTp7bDp7MTEzOntsOns1OTp7YzpbODg0Miw2NTAyNF19LDExMzp7bDp7NTk6e2M6WzEwOTU1LDY1MDI0XX19fX19fX19fX19fX19fX19LDExMjp7bDp7MTE1OntsOnsxMDE6e2w6ezExNjp7bDp7MTEwOntsOnsxMDE6e2w6ezExMzp7bDp7NTk6e2M6Wzg4NDMsNjUwMjRdfSwxMTM6e2w6ezU5OntjOlsxMDk1Niw2NTAyNF19fX19fX19fX19fX19fX19fX19fX0sMTE2OntsOnsxMDQ6e2w6ezEwMTp7bDp7MTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk3N119fX19fX19fX0sMTE0OntsOnsxMDU6e2w6ezk3OntsOnsxMTA6e2w6ezEwMzp7bDp7MTA4OntsOnsxMDE6e2w6ezEwODp7bDp7MTAxOntsOnsxMDI6e2w6ezExNjp7bDp7NTk6e2M6Wzg4ODJdfX19fX19fX19LDExNDp7bDp7MTA1OntsOnsxMDM6e2w6ezEwNDp7bDp7MTE2OntsOns1OTp7YzpbODg4M119fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19LDk5OntsOnsxMjE6e2w6ezU5OntjOlsxMDc0XX19fX19LDEwMDp7bDp7OTc6e2w6ezExNTp7bDp7MTA0OntsOns1OTp7YzpbODg2Nl19fX19fX19fX0sMTAxOntsOnsxMDE6e2w6ezU5OntjOls4NzQ0XX0sOTg6e2w6ezk3OntsOnsxMTQ6e2w6ezU5OntjOls4ODkxXX19fX19fX0sMTAxOntsOnsxMTM6e2w6ezU5OntjOls4Nzk0XX19fX19fX0sMTA4OntsOnsxMDg6e2w6ezEwNTp7bDp7MTEyOntsOns1OTp7YzpbODk0Ml19fX19fX19fX0sMTE0OntsOns5ODp7bDp7OTc6e2w6ezExNDp7bDp7NTk6e2M6WzEyNF19fX19fX19LDExNjp7bDp7NTk6e2M6WzEyNF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE1XX19fX19LDEwODp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzg4ODJdfX19fX19fX19LDExMDp7bDp7MTE1OntsOnsxMTc6e2w6ezk4OntsOns1OTp7YzpbODgzNCw4NDAyXX19fSwxMTI6e2w6ezU5OntjOls4ODM1LDg0MDJdfX19fX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjddfX19fX19fSwxMTI6e2w6ezExNDp7bDp7MTExOntsOnsxMTI6e2w6ezU5OntjOls4NzMzXX19fX19fX19fSwxMTQ6e2w6ezExNjp7bDp7MTE0OntsOnsxMDU6e2w6ezU5OntjOls4ODgzXX19fX19fX19fSwxMTU6e2w6ezk5OntsOnsxMTQ6e2w6ezU5OntjOlsxMjAwMTFdfX19fX0sMTE3OntsOns5ODp7bDp7MTEwOntsOns2OTp7bDp7NTk6e2M6WzEwOTU1LDY1MDI0XX19fSwxMDE6e2w6ezU5OntjOls4ODQyLDY1MDI0XX19fX19fX0sMTEyOntsOnsxMTA6e2w6ezY5OntsOns1OTp7YzpbMTA5NTYsNjUwMjRdfX19LDEwMTp7bDp7NTk6e2M6Wzg4NDMsNjUwMjRdfX19fX19fX19fX0sMTIyOntsOnsxMDU6e2w6ezEwMzp7bDp7MTIyOntsOns5Nzp7bDp7MTAzOntsOns1OTp7YzpbMTA2NTBdfX19fX19fX19fX19fX19LDExOTp7bDp7OTk6e2w6ezEwNTp7bDp7MTE0OntsOns5OTp7bDp7NTk6e2M6WzM3M119fX19fX19fX0sMTAxOntsOnsxMDA6e2w6ezk4OntsOns5Nzp7bDp7MTE0OntsOns1OTp7YzpbMTA4NDddfX19fX19fSwxMDM6e2w6ezEwMTp7bDp7NTk6e2M6Wzg3NDNdfSwxMTM6e2w6ezU5OntjOls4NzkzXX19fX19fX19fSwxMDU6e2w6ezEwMTp7bDp7MTE0OntsOnsxMTI6e2w6ezU5OntjOls4NDcyXX19fX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE2XX19fX19LDExMTp7bDp7MTEyOntsOnsxMDI6e2w6ezU5OntjOlsxMjAxNjhdfX19fX19fSwxMTI6e2w6ezU5OntjOls4NDcyXX19fSwxMTQ6e2w6ezU5OntjOls4NzY4XX0sMTAxOntsOns5Nzp7bDp7MTE2OntsOnsxMDQ6e2w6ezU5OntjOls4NzY4XX19fX19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxMl19fX19fX19fX0sMTIwOntsOns5OTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6Wzg4OThdfX19fX0sMTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbOTcxMV19fX19fX19LDExNzp7bDp7MTEyOntsOns1OTp7YzpbODg5OV19fX19fX19LDEwMDp7bDp7MTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NjFdfX19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE3XX19fX19LDEwNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzRdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzMV19fX19fX19fX0sMTA1OntsOns1OTp7YzpbOTU4XX19fSwxMDg6e2w6ezY1OntsOnsxMTQ6e2w6ezExNDp7bDp7NTk6e2M6WzEwMjMyXX19fX19fX0sOTc6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMjldfX19fX19fX19LDEwOTp7bDp7OTc6e2w6ezExMjp7bDp7NTk6e2M6WzEwMjM2XX19fX19fX0sMTEwOntsOnsxMDU6e2w6ezExNTp7bDp7NTk6e2M6Wzg5NTVdfX19fX19fSwxMTE6e2w6ezEwMDp7bDp7MTExOntsOnsxMTY6e2w6ezU5OntjOlsxMDc1Ml19fX19fX19LDExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTY5XX19fSwxMDg6e2w6ezExNzp7bDp7MTE1OntsOns1OTp7YzpbMTA3NTNdfX19fX19fX19LDExNjp7bDp7MTA1OntsOnsxMDk6e2w6ezEwMTp7bDp7NTk6e2M6WzEwNzU0XX19fX19fX19fX19LDExNDp7bDp7NjU6e2w6ezExNDp7bDp7MTE0OntsOns1OTp7YzpbMTAyMzNdfX19fX19fSw5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOlsxMDIzMF19fX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDEzXX19fX19LDExMzp7bDp7OTk6e2w6ezExNzp7bDp7MTEyOntsOns1OTp7YzpbMTA3NThdfX19fX19fX19fX0sMTE3OntsOnsxMTI6e2w6ezEwODp7bDp7MTE3OntsOnsxMTU6e2w6ezU5OntjOlsxMDc1Nl19fX19fX19fX0sMTE2OntsOnsxMTQ6e2w6ezEwNTp7bDp7NTk6e2M6Wzk2NTFdfX19fX19fX19LDExODp7bDp7MTAxOntsOnsxMDE6e2w6ezU5OntjOls4ODk3XX19fX19fX0sMTE5OntsOnsxMDE6e2w6ezEwMDp7bDp7MTAzOntsOnsxMDE6e2w6ezU5OntjOls4ODk2XX19fX19fX19fX19fX0sMTIxOntsOns5Nzp7bDp7OTk6e2w6ezExNzp7bDp7MTE2OntsOnsxMDE6e2w6ezU5OntjOlsyNTNdfX0sYzpbMjUzXX19fX19LDEyMTp7bDp7NTk6e2M6WzExMDNdfX19fX19fSw5OTp7bDp7MTA1OntsOnsxMTQ6e2w6ezk5OntsOns1OTp7YzpbMzc1XX19fX19fX0sMTIxOntsOns1OTp7YzpbMTA5OV19fX19fSwxMDE6e2w6ezExMDp7bDp7NTk6e2M6WzE2NV19fSxjOlsxNjVdfX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE4XX19fX19LDEwNTp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzExMTFdfX19fX19fSwxMTE6e2w6ezExMjp7bDp7MTAyOntsOns1OTp7YzpbMTIwMTcwXX19fX19fX0sMTE1OntsOns5OTp7bDp7MTE0OntsOns1OTp7YzpbMTIwMDE0XX19fX19fX0sMTE3OntsOns5OTp7bDp7MTIxOntsOns1OTp7YzpbMTEwMl19fX19fSwxMDk6e2w6ezEwODp7bDp7NTk6e2M6WzI1NV19fSxjOlsyNTVdfX19fX19fSwxMjI6e2w6ezk3OntsOns5OTp7bDp7MTE3OntsOnsxMTY6e2w6ezEwMTp7bDp7NTk6e2M6WzM3OF19fX19fX19fX19fSw5OTp7bDp7OTc6e2w6ezExNDp7bDp7MTExOntsOnsxMTA6e2w6ezU5OntjOlszODJdfX19fX19fX19LDEyMTp7bDp7NTk6e2M6WzEwNzldfX19fX0sMTAwOntsOnsxMTE6e2w6ezExNjp7bDp7NTk6e2M6WzM4MF19fX19fX19LDEwMTp7bDp7MTAxOntsOnsxMTY6e2w6ezExNDp7bDp7MTAyOntsOns1OTp7YzpbODQ4OF19fX19fX19fX0sMTE2OntsOns5Nzp7bDp7NTk6e2M6Wzk1MF19fX19fX19LDEwMjp7bDp7MTE0OntsOns1OTp7YzpbMTIwMTE5XX19fX19LDEwNDp7bDp7OTk6e2w6ezEyMTp7bDp7NTk6e2M6WzEwNzhdfX19fX19fSwxMDU6e2w6ezEwMzp7bDp7MTE0OntsOns5Nzp7bDp7MTE0OntsOnsxMTQ6e2w6ezU5OntjOls4NjY5XX19fX19fX19fX19fX0sMTExOntsOnsxMTI6e2w6ezEwMjp7bDp7NTk6e2M6WzEyMDE3MV19fX19fX19LDExNTp7bDp7OTk6e2w6ezExNDp7bDp7NTk6e2M6WzEyMDAxNV19fX19fX19LDExOTp7bDp7MTA2OntsOns1OTp7YzpbODIwNV19fX0sMTEwOntsOnsxMDY6e2w6ezU5OntjOls4MjA0XX19fX19fX19fX07XHJcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFByZXByb2Nlc3NvciA9IHJlcXVpcmUoJy4vcHJlcHJvY2Vzc29yJyksXG4gICAgbG9jYXRpb25JbmZvTWl4aW4gPSByZXF1aXJlKCcuLi9sb2NhdGlvbl9pbmZvL3Rva2VuaXplcl9taXhpbicpLFxuICAgIFVOSUNPREUgPSByZXF1aXJlKCcuLi9jb21tb24vdW5pY29kZScpLFxuICAgIE5BTUVEX0VOVElUWV9UUklFID0gcmVxdWlyZSgnLi9uYW1lZF9lbnRpdHlfdHJpZScpO1xuXG4vL0FsaWFzZXNcbnZhciAkID0gVU5JQ09ERS5DT0RFX1BPSU5UUyxcbiAgICAkJCA9IFVOSUNPREUuQ09ERV9QT0lOVF9TRVFVRU5DRVM7XG5cbi8vUmVwbGFjZW1lbnQgY29kZSBwb2ludHMgZm9yIG51bWVyaWMgZW50aXRpZXNcbnZhciBOVU1FUklDX0VOVElUWV9SRVBMQUNFTUVOVFMgPSB7XG4gICAgMHgwMDogMHhGRkZELCAweDBEOiAweDAwMEQsIDB4ODA6IDB4MjBBQywgMHg4MTogMHgwMDgxLCAweDgyOiAweDIwMUEsIDB4ODM6IDB4MDE5MiwgMHg4NDogMHgyMDFFLFxuICAgIDB4ODU6IDB4MjAyNiwgMHg4NjogMHgyMDIwLCAweDg3OiAweDIwMjEsIDB4ODg6IDB4MDJDNiwgMHg4OTogMHgyMDMwLCAweDhBOiAweDAxNjAsIDB4OEI6IDB4MjAzOSxcbiAgICAweDhDOiAweDAxNTIsIDB4OEQ6IDB4MDA4RCwgMHg4RTogMHgwMTdELCAweDhGOiAweDAwOEYsIDB4OTA6IDB4MDA5MCwgMHg5MTogMHgyMDE4LCAweDkyOiAweDIwMTksXG4gICAgMHg5MzogMHgyMDFDLCAweDk0OiAweDIwMUQsIDB4OTU6IDB4MjAyMiwgMHg5NjogMHgyMDEzLCAweDk3OiAweDIwMTQsIDB4OTg6IDB4MDJEQywgMHg5OTogMHgyMTIyLFxuICAgIDB4OUE6IDB4MDE2MSwgMHg5QjogMHgyMDNBLCAweDlDOiAweDAxNTMsIDB4OUQ6IDB4MDA5RCwgMHg5RTogMHgwMTdFLCAweDlGOiAweDAxNzhcbn07XG5cbi8vU3RhdGVzXG52YXIgREFUQV9TVEFURSA9ICdEQVRBX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0RBVEFfU1RBVEUgPSAnQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFJyxcbiAgICBSQ0RBVEFfU1RBVEUgPSAnUkNEQVRBX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURSA9ICdDSEFSQUNURVJfUkVGRVJFTkNFX0lOX1JDREFUQV9TVEFURScsXG4gICAgUkFXVEVYVF9TVEFURSA9ICdSQVdURVhUX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9TVEFURSA9ICdTQ1JJUFRfREFUQV9TVEFURScsXG4gICAgUExBSU5URVhUX1NUQVRFID0gJ1BMQUlOVEVYVF9TVEFURScsXG4gICAgVEFHX09QRU5fU1RBVEUgPSAnVEFHX09QRU5fU1RBVEUnLFxuICAgIEVORF9UQUdfT1BFTl9TVEFURSA9ICdFTkRfVEFHX09QRU5fU1RBVEUnLFxuICAgIFRBR19OQU1FX1NUQVRFID0gJ1RBR19OQU1FX1NUQVRFJyxcbiAgICBSQ0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnUkNEQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBSQ0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFID0gJ1JDREFUQV9FTkRfVEFHX09QRU5fU1RBVEUnLFxuICAgIFJDREFUQV9FTkRfVEFHX05BTUVfU1RBVEUgPSAnUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURScsXG4gICAgUkFXVEVYVF9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdSQVdURVhUX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURSA9ICdSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURScsXG4gICAgUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEUgPSAnUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFID0gJ1NDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRU5EX1RBR19PUEVOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRU5EX1RBR19OQU1FX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9EQVNIX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFJyxcbiAgICBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURSA9ICdTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfU1RBUlRfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURScsXG4gICAgU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUgPSAnU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEUnLFxuICAgIFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFID0gJ1NDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFJyxcbiAgICBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEUgPSAnQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFJyxcbiAgICBBVFRSSUJVVEVfTkFNRV9TVEFURSA9ICdBVFRSSUJVVEVfTkFNRV9TVEFURScsXG4gICAgQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEUgPSAnQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEUnLFxuICAgIEJFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEUgPSAnQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURScsXG4gICAgQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEUgPSAnQVRUUklCVVRFX1ZBTFVFX0RPVUJMRV9RVU9URURfU1RBVEUnLFxuICAgIEFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0FUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEUgPSAnQVRUUklCVVRFX1ZBTFVFX1VOUVVPVEVEX1NUQVRFJyxcbiAgICBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURSA9ICdDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURScsXG4gICAgQUZURVJfQVRUUklCVVRFX1ZBTFVFX1FVT1RFRF9TVEFURSA9ICdBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFJyxcbiAgICBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFID0gJ1NFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEUnLFxuICAgIEJPR1VTX0NPTU1FTlRfU1RBVEUgPSAnQk9HVVNfQ09NTUVOVF9TVEFURScsXG4gICAgQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT04gPSAnQk9HVVNfQ09NTUVOVF9TVEFURV9DT05USU5VQVRJT04nLFxuICAgIE1BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFID0gJ01BUktVUF9ERUNMQVJBVElPTl9PUEVOX1NUQVRFJyxcbiAgICBDT01NRU5UX1NUQVJUX1NUQVRFID0gJ0NPTU1FTlRfU1RBUlRfU1RBVEUnLFxuICAgIENPTU1FTlRfU1RBUlRfREFTSF9TVEFURSA9ICdDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEUnLFxuICAgIENPTU1FTlRfU1RBVEUgPSAnQ09NTUVOVF9TVEFURScsXG4gICAgQ09NTUVOVF9FTkRfREFTSF9TVEFURSA9ICdDT01NRU5UX0VORF9EQVNIX1NUQVRFJyxcbiAgICBDT01NRU5UX0VORF9TVEFURSA9ICdDT01NRU5UX0VORF9TVEFURScsXG4gICAgQ09NTUVOVF9FTkRfQkFOR19TVEFURSA9ICdDT01NRU5UX0VORF9CQU5HX1NUQVRFJyxcbiAgICBET0NUWVBFX1NUQVRFID0gJ0RPQ1RZUEVfU1RBVEUnLFxuICAgIERPQ1RZUEVfTkFNRV9TVEFURSA9ICdET0NUWVBFX05BTUVfU1RBVEUnLFxuICAgIEFGVEVSX0RPQ1RZUEVfTkFNRV9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX05BTUVfU1RBVEUnLFxuICAgIEJFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFID0gJ0JFRk9SRV9ET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NUQVRFJyxcbiAgICBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEUgPSAnRE9DVFlQRV9QVUJMSUNfSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFJyxcbiAgICBCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEUgPSAnQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFJyxcbiAgICBCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURScsXG4gICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURScsXG4gICAgRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TSU5HTEVfUVVPVEVEX1NUQVRFID0gJ0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURScsXG4gICAgQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURSA9ICdBRlRFUl9ET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NUQVRFJyxcbiAgICBCT0dVU19ET0NUWVBFX1NUQVRFID0gJ0JPR1VTX0RPQ1RZUEVfU1RBVEUnLFxuICAgIENEQVRBX1NFQ1RJT05fU1RBVEUgPSAnQ0RBVEFfU0VDVElPTl9TVEFURSc7XG5cbi8vVXRpbHNcblxuLy9PUFRJTUlaQVRJT046IHRoZXNlIHV0aWxpdHkgZnVuY3Rpb25zIHNob3VsZCBub3QgYmUgbW92ZWQgb3V0IG9mIHRoaXMgbW9kdWxlLiBWOCBDcmFua3NoYWZ0IHdpbGwgbm90IGlubGluZVxuLy90aGlzIGZ1bmN0aW9ucyBpZiB0aGV5IHdpbGwgYmUgc2l0dWF0ZWQgaW4gYW5vdGhlciBtb2R1bGUgZHVlIHRvIGNvbnRleHQgc3dpdGNoLlxuLy9BbHdheXMgcGVyZm9ybSBpbmxpbmluZyBjaGVjayBiZWZvcmUgbW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb25zICgnbm9kZSAtLXRyYWNlLWlubGluaW5nJykuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY3ApIHtcbiAgICByZXR1cm4gY3AgPT09ICQuU1BBQ0UgfHwgY3AgPT09ICQuTElORV9GRUVEIHx8IGNwID09PSAkLlRBQlVMQVRJT04gfHwgY3AgPT09ICQuRk9STV9GRUVEO1xufVxuXG5mdW5jdGlvbiBpc0FzY2lpRGlnaXQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5ESUdJVF8wICYmIGNwIDw9ICQuRElHSVRfOTtcbn1cblxuZnVuY3Rpb24gaXNBc2NpaVVwcGVyKGNwKSB7XG4gICAgcmV0dXJuIGNwID49ICQuTEFUSU5fQ0FQSVRBTF9BICYmIGNwIDw9ICQuTEFUSU5fQ0FQSVRBTF9aO1xufVxuXG5mdW5jdGlvbiBpc0FzY2lpTG93ZXIoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfWjtcbn1cblxuZnVuY3Rpb24gaXNBc2NpaUxldHRlcihjcCkge1xuICAgIHJldHVybiBpc0FzY2lpTG93ZXIoY3ApIHx8IGlzQXNjaWlVcHBlcihjcCk7XG59XG5cbmZ1bmN0aW9uIGlzQXNjaWlBbHBoYU51bWVyaWMoY3ApIHtcbiAgICByZXR1cm4gaXNBc2NpaUxldHRlcihjcCkgfHwgaXNBc2NpaURpZ2l0KGNwKTtcbn1cblxuZnVuY3Rpb24gaXNEaWdpdChjcCwgaXNIZXgpIHtcbiAgICByZXR1cm4gaXNBc2NpaURpZ2l0KGNwKSB8fCBpc0hleCAmJiAoY3AgPj0gJC5MQVRJTl9DQVBJVEFMX0EgJiYgY3AgPD0gJC5MQVRJTl9DQVBJVEFMX0YgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3AgPj0gJC5MQVRJTl9TTUFMTF9BICYmIGNwIDw9ICQuTEFUSU5fU01BTExfRik7XG59XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWRDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gY3AgPj0gMHhEODAwICYmIGNwIDw9IDB4REZGRiB8fCBjcCA+IDB4MTBGRkZGO1xufVxuXG5mdW5jdGlvbiB0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApIHtcbiAgICByZXR1cm4gY3AgKyAweDAwMjA7XG59XG5cbi8vTk9URTogU3RyaW5nLmZyb21DaGFyQ29kZSgpIGZ1bmN0aW9uIGNhbiBoYW5kbGUgb25seSBjaGFyYWN0ZXJzIGZyb20gQk1QIHN1YnNldC5cbi8vU28sIHdlIG5lZWQgdG8gd29ya2Fyb3VuZCB0aGlzIG1hbnVhbGx5LlxuLy8oc2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL1N0cmluZy9mcm9tQ2hhckNvZGUjR2V0dGluZ19pdF90b193b3JrX3dpdGhfaGlnaGVyX3ZhbHVlcylcbmZ1bmN0aW9uIHRvQ2hhcihjcCkge1xuICAgIGlmIChjcCA8PSAweEZGRkYpXG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNwKTtcblxuICAgIGNwIC09IDB4MTAwMDA7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoY3AgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweERDMDAgfCBjcCAmIDB4M0ZGKTtcbn1cblxuZnVuY3Rpb24gdG9Bc2NpaUxvd2VyQ2hhcihjcCkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHRvQXNjaWlMb3dlckNvZGVQb2ludChjcCkpO1xufVxuXG4vL1Rva2VuaXplclxudmFyIFRva2VuaXplciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICB0aGlzLnByZXByb2Nlc3NvciA9IG5ldyBQcmVwcm9jZXNzb3IoKTtcblxuICAgIHRoaXMudG9rZW5RdWV1ZSA9IFtdO1xuXG4gICAgdGhpcy5hbGxvd0NEQVRBID0gZmFsc2U7XG5cbiAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB0aGlzLnJldHVyblN0YXRlID0gJyc7XG5cbiAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gdm9pZCAwO1xuICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9ICcnO1xuXG4gICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAtMTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBudWxsO1xuICAgIHRoaXMuY3VycmVudFRva2VuID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRBdHRyID0gbnVsbDtcblxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubG9jYXRpb25JbmZvKVxuICAgICAgICBsb2NhdGlvbkluZm9NaXhpbi5hc3NpZ24odGhpcyk7XG59O1xuXG4vL1Rva2VuIHR5cGVzXG5Ub2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOID0gJ0NIQVJBQ1RFUl9UT0tFTic7XG5Ub2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU4gPSAnTlVMTF9DSEFSQUNURVJfVE9LRU4nO1xuVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOID0gJ1dISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOJztcblRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gPSAnU1RBUlRfVEFHX1RPS0VOJztcblRva2VuaXplci5FTkRfVEFHX1RPS0VOID0gJ0VORF9UQUdfVE9LRU4nO1xuVG9rZW5pemVyLkNPTU1FTlRfVE9LRU4gPSAnQ09NTUVOVF9UT0tFTic7XG5Ub2tlbml6ZXIuRE9DVFlQRV9UT0tFTiA9ICdET0NUWVBFX1RPS0VOJztcblRva2VuaXplci5FT0ZfVE9LRU4gPSAnRU9GX1RPS0VOJztcblRva2VuaXplci5ISUJFUk5BVElPTl9UT0tFTiA9ICdISUJFUk5BVElPTl9UT0tFTic7XG5cbi8vVG9rZW5pemVyIGluaXRpYWwgc3RhdGVzIGZvciBkaWZmZXJlbnQgbW9kZXNcblRva2VuaXplci5NT0RFID0gVG9rZW5pemVyLnByb3RvdHlwZS5NT0RFID0ge1xuICAgIERBVEE6IERBVEFfU1RBVEUsXG4gICAgUkNEQVRBOiBSQ0RBVEFfU1RBVEUsXG4gICAgUkFXVEVYVDogUkFXVEVYVF9TVEFURSxcbiAgICBTQ1JJUFRfREFUQTogU0NSSVBUX0RBVEFfU1RBVEUsXG4gICAgUExBSU5URVhUOiBQTEFJTlRFWFRfU1RBVEVcbn07XG5cbi8vU3RhdGljXG5Ub2tlbml6ZXIuZ2V0VG9rZW5BdHRyID0gZnVuY3Rpb24gKHRva2VuLCBhdHRyTmFtZSkge1xuICAgIGZvciAodmFyIGkgPSB0b2tlbi5hdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAodG9rZW4uYXR0cnNbaV0ubmFtZSA9PT0gYXR0ck5hbWUpXG4gICAgICAgICAgICByZXR1cm4gdG9rZW4uYXR0cnNbaV0udmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vL0FQSVxuVG9rZW5pemVyLnByb3RvdHlwZS5nZXROZXh0VG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgd2hpbGUgKCF0aGlzLnRva2VuUXVldWUubGVuZ3RoICYmIHRoaXMuYWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX2hpYmVybmF0aW9uU25hcHNob3QoKTtcblxuICAgICAgICB2YXIgY3AgPSB0aGlzLl9jb25zdW1lKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKVxuICAgICAgICAgICAgdGhpc1t0aGlzLnN0YXRlXShjcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudG9rZW5RdWV1ZS5zaGlmdCgpO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgaXNMYXN0Q2h1bmspIHtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3Iud3JpdGUoY2h1bmssIGlzTGFzdENodW5rKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuaW5zZXJ0SHRtbEF0Q3VycmVudFBvcyA9IGZ1bmN0aW9uIChjaHVuaykge1xuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnByZXByb2Nlc3Nvci5pbnNlcnRIdG1sQXRDdXJyZW50UG9zKGNodW5rKTtcbn07XG5cbi8vSGliZXJuYXRpb25cblRva2VuaXplci5wcm90b3R5cGUuX2hpYmVybmF0aW9uU25hcHNob3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QgPSAwO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW5zdXJlSGliZXJuYXRpb24gPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMucHJlcHJvY2Vzc29yLmVuZE9mQ2h1bmtIaXQpIHtcbiAgICAgICAgZm9yICg7IHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90ID4gMDsgdGhpcy5jb25zdW1lZEFmdGVyU25hcHNob3QtLSlcbiAgICAgICAgICAgIHRoaXMucHJlcHJvY2Vzc29yLnJldHJlYXQoKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRva2VuUXVldWUucHVzaCh7dHlwZTogVG9rZW5pemVyLkhJQkVSTkFUSU9OX1RPS0VOfSk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuXG4vL0NvbnN1bXB0aW9uXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jb25zdW1lID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY29uc3VtZWRBZnRlclNuYXBzaG90Kys7XG4gICAgcmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yLmFkdmFuY2UoKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX3VuY29uc3VtZSA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmNvbnN1bWVkQWZ0ZXJTbmFwc2hvdC0tO1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLnJldHJlYXQoKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX3VuY29uc3VtZVNldmVyYWwgPSBmdW5jdGlvbiAoY291bnQpIHtcbiAgICB3aGlsZSAoY291bnQtLSlcbiAgICAgICAgdGhpcy5fdW5jb25zdW1lKCk7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9yZWNvbnN1bWVJblN0YXRlID0gZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMuX3VuY29uc3VtZSgpO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoID0gZnVuY3Rpb24gKHBhdHRlcm4sIHN0YXJ0Q3AsIGNhc2VTZW5zaXRpdmUpIHtcbiAgICB2YXIgY29uc3VtZWRDb3VudCA9IDAsXG4gICAgICAgIGlzTWF0Y2ggPSB0cnVlLFxuICAgICAgICBwYXR0ZXJuTGVuZ3RoID0gcGF0dGVybi5sZW5ndGgsXG4gICAgICAgIHBhdHRlcm5Qb3MgPSAwLFxuICAgICAgICBjcCA9IHN0YXJ0Q3AsXG4gICAgICAgIHBhdHRlcm5DcCA9IHZvaWQgMDtcblxuICAgIGZvciAoOyBwYXR0ZXJuUG9zIDwgcGF0dGVybkxlbmd0aDsgcGF0dGVyblBvcysrKSB7XG4gICAgICAgIGlmIChwYXR0ZXJuUG9zID4gMCkge1xuICAgICAgICAgICAgY3AgPSB0aGlzLl9jb25zdW1lKCk7XG4gICAgICAgICAgICBjb25zdW1lZENvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgICAgICBpc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdHRlcm5DcCA9IHBhdHRlcm5bcGF0dGVyblBvc107XG5cbiAgICAgICAgaWYgKGNwICE9PSBwYXR0ZXJuQ3AgJiYgKGNhc2VTZW5zaXRpdmUgfHwgY3AgIT09IHRvQXNjaWlMb3dlckNvZGVQb2ludChwYXR0ZXJuQ3ApKSkge1xuICAgICAgICAgICAgaXNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWlzTWF0Y2gpXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZVNldmVyYWwoY29uc3VtZWRDb3VudCk7XG5cbiAgICByZXR1cm4gaXNNYXRjaDtcbn07XG5cbi8vTG9va2FoZWFkXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9sb29rYWhlYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGNwID0gdGhpcy5fY29uc3VtZSgpO1xuXG4gICAgdGhpcy5fdW5jb25zdW1lKCk7XG5cbiAgICByZXR1cm4gY3A7XG59O1xuXG4vL1RlbXAgYnVmZmVyXG5Ub2tlbml6ZXIucHJvdG90eXBlLmlzVGVtcEJ1ZmZlckVxdWFsVG9TY3JpcHRTdHJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMudGVtcEJ1ZmYubGVuZ3RoICE9PSAkJC5TQ1JJUFRfU1RSSU5HLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlbXBCdWZmLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLnRlbXBCdWZmW2ldICE9PSAkJC5TQ1JJUFRfU1RSSU5HW2ldKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufTtcblxuLy9Ub2tlbiBjcmVhdGlvblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlU3RhcnRUYWdUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgdHlwZTogVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTixcbiAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgIHNlbGZDbG9zaW5nOiBmYWxzZSxcbiAgICAgICAgYXR0cnM6IFtdXG4gICAgfTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2NyZWF0ZUVuZFRhZ1Rva2VuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuY3VycmVudFRva2VuID0ge1xuICAgICAgICB0eXBlOiBUb2tlbml6ZXIuRU5EX1RBR19UT0tFTixcbiAgICAgICAgdGFnTmFtZTogJycsXG4gICAgICAgIGF0dHJzOiBbXVxuICAgIH07XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVDb21tZW50VG9rZW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5jdXJyZW50VG9rZW4gPSB7XG4gICAgICAgIHR5cGU6IFRva2VuaXplci5DT01NRU5UX1RPS0VOLFxuICAgICAgICBkYXRhOiAnJ1xuICAgIH07XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVEb2N0eXBlVG9rZW4gPSBmdW5jdGlvbiAoaW5pdGlhbE5hbWUpIHtcbiAgICB0aGlzLmN1cnJlbnRUb2tlbiA9IHtcbiAgICAgICAgdHlwZTogVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU4sXG4gICAgICAgIG5hbWU6IGluaXRpYWxOYW1lLFxuICAgICAgICBmb3JjZVF1aXJrczogZmFsc2UsXG4gICAgICAgIHB1YmxpY0lkOiBudWxsLFxuICAgICAgICBzeXN0ZW1JZDogbnVsbFxuICAgIH07XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9jcmVhdGVDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICh0eXBlLCBjaCkge1xuICAgIHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuID0ge1xuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBjaGFyczogY2hcbiAgICB9O1xufTtcblxuLy9UYWcgYXR0cmlidXRlc1xuVG9rZW5pemVyLnByb3RvdHlwZS5fY3JlYXRlQXR0ciA9IGZ1bmN0aW9uIChhdHRyTmFtZUZpcnN0Q2gpIHtcbiAgICB0aGlzLmN1cnJlbnRBdHRyID0ge1xuICAgICAgICBuYW1lOiBhdHRyTmFtZUZpcnN0Q2gsXG4gICAgICAgIHZhbHVlOiAnJ1xuICAgIH07XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9pc0R1cGxpY2F0ZUF0dHIgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIFRva2VuaXplci5nZXRUb2tlbkF0dHIodGhpcy5jdXJyZW50VG9rZW4sIHRoaXMuY3VycmVudEF0dHIubmFtZSkgIT09IG51bGw7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9sZWF2ZUF0dHJOYW1lID0gZnVuY3Rpb24gKHRvU3RhdGUpIHtcbiAgICB0aGlzLnN0YXRlID0gdG9TdGF0ZTtcblxuICAgIGlmICghdGhpcy5faXNEdXBsaWNhdGVBdHRyKCkpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmF0dHJzLnB1c2godGhpcy5jdXJyZW50QXR0cik7XG59O1xuXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9sZWF2ZUF0dHJWYWx1ZSA9IGZ1bmN0aW9uICh0b1N0YXRlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHRvU3RhdGU7XG59O1xuXG4vL0FwcHJvcHJpYXRlIGVuZCB0YWcgdG9rZW5cbi8vKHNlZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0bWwjYXBwcm9wcmlhdGUtZW5kLXRhZy10b2tlbilcblRva2VuaXplci5wcm90b3R5cGUuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0U3RhcnRUYWdOYW1lID09PSB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lO1xufTtcblxuLy9Ub2tlbiBlbWlzc2lvblxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdEN1cnJlbnRUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9lbWl0Q3VycmVudENoYXJhY3RlclRva2VuKCk7XG5cbiAgICAvL05PVEU6IHN0b3JlIGVtaXRlZCBzdGFydCB0YWcncyB0YWdOYW1lIHRvIGRldGVybWluZSBpcyB0aGUgZm9sbG93aW5nIGVuZCB0YWcgdG9rZW4gaXMgYXBwcm9wcmlhdGUuXG4gICAgaWYgKHRoaXMuY3VycmVudFRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4pXG4gICAgICAgIHRoaXMubGFzdFN0YXJ0VGFnTmFtZSA9IHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWU7XG5cbiAgICB0aGlzLnRva2VuUXVldWUucHVzaCh0aGlzLmN1cnJlbnRUb2tlbik7XG4gICAgdGhpcy5jdXJyZW50VG9rZW4gPSBudWxsO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pIHtcbiAgICAgICAgdGhpcy50b2tlblF1ZXVlLnB1c2godGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4pO1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbiA9IG51bGw7XG4gICAgfVxufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdEVPRlRva2VuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4oKTtcbiAgICB0aGlzLnRva2VuUXVldWUucHVzaCh7dHlwZTogVG9rZW5pemVyLkVPRl9UT0tFTn0pO1xufTtcblxuLy9DaGFyYWN0ZXJzIGVtaXNzaW9uXG5cbi8vT1BUSU1JWkFUSU9OOiBzcGVjaWZpY2F0aW9uIHVzZXMgb25seSBvbmUgdHlwZSBvZiBjaGFyYWN0ZXIgdG9rZW5zIChvbmUgdG9rZW4gcGVyIGNoYXJhY3RlcikuXG4vL1RoaXMgY2F1c2VzIGEgaHVnZSBtZW1vcnkgb3ZlcmhlYWQgYW5kIGEgbG90IG9mIHVubmVjZXNzYXJ5IHBhcnNlciBsb29wcy4gcGFyc2U1IHVzZXMgMyBncm91cHMgb2YgY2hhcmFjdGVycy5cbi8vSWYgd2UgaGF2ZSBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZ3JvdXAsIHBhcnNlciBjYW4gcHJvY2VzcyBpdFxuLy9hcyBhIHNpbmdsZSBzb2xpZCBjaGFyYWN0ZXIgdG9rZW4uXG4vL1NvLCB0aGVyZSBhcmUgMyB0eXBlcyBvZiBjaGFyYWN0ZXIgdG9rZW5zIGluIHBhcnNlNTpcbi8vMSlOVUxMX0NIQVJBQ1RFUl9UT0tFTiAtIFxcdTAwMDAtY2hhcmFjdGVyIHNlcXVlbmNlcyAoZS5nLiAnXFx1MDAwMFxcdTAwMDBcXHUwMDAwJylcbi8vMilXSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTiAtIGFueSB3aGl0ZXNwYWNlL25ldy1saW5lIGNoYXJhY3RlciBzZXF1ZW5jZXMgKGUuZy4gJ1xcbiAgXFxyXFx0ICAgXFxmJylcbi8vMylDSEFSQUNURVJfVE9LRU4gLSBhbnkgY2hhcmFjdGVyIHNlcXVlbmNlIHdoaWNoIGRvbid0IGJlbG9uZyB0byBncm91cHMgMSBhbmQgMiAoZS5nLiAnYWJjZGVmMTIzNEBAIyQlXicpXG5Ub2tlbml6ZXIucHJvdG90eXBlLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4gPSBmdW5jdGlvbiAodHlwZSwgY2gpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4gJiYgdGhpcy5jdXJyZW50Q2hhcmFjdGVyVG9rZW4udHlwZSAhPT0gdHlwZSlcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRDaGFyYWN0ZXJUb2tlbigpO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudENoYXJhY3RlclRva2VuKVxuICAgICAgICB0aGlzLmN1cnJlbnRDaGFyYWN0ZXJUb2tlbi5jaGFycyArPSBjaDtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2hhcmFjdGVyVG9rZW4odHlwZSwgY2gpO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdENvZGVQb2ludCA9IGZ1bmN0aW9uIChjcCkge1xuICAgIHZhciB0eXBlID0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTjtcblxuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICB0eXBlID0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdHlwZSA9IFRva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTjtcblxuICAgIHRoaXMuX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbih0eXBlLCB0b0NoYXIoY3ApKTtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyA9IGZ1bmN0aW9uIChjb2RlUG9pbnRzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2RlUG9pbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNvZGVQb2ludHNbaV0pO1xufTtcblxuLy9OT1RFOiB1c2VkIHRoZW4gd2UgZW1pdCBjaGFyYWN0ZXIgZXhwbGljaXRseS4gVGhpcyBpcyBhbHdheXMgYSBub24td2hpdGVzcGFjZSBhbmQgYSBub24tbnVsbCBjaGFyYWN0ZXIuXG4vL1NvIHdlIGNhbiBhdm9pZCBhZGRpdGlvbmFsIGNoZWNrcyBoZXJlLlxuVG9rZW5pemVyLnByb3RvdHlwZS5fZW1pdENoYXIgPSBmdW5jdGlvbiAoY2gpIHtcbiAgICB0aGlzLl9hcHBlbmRDaGFyVG9DdXJyZW50Q2hhcmFjdGVyVG9rZW4oVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiwgY2gpO1xufTtcblxuLy9DaGFyYWN0ZXIgcmVmZXJlbmNlIHRva2VuaXphdGlvblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZU51bWVyaWNFbnRpdHkgPSBmdW5jdGlvbiAoaXNIZXgpIHtcbiAgICB2YXIgZGlnaXRzID0gJycsXG4gICAgICAgIG5leHRDcCA9IHZvaWQgMDtcblxuICAgIGRvIHtcbiAgICAgICAgZGlnaXRzICs9IHRvQ2hhcih0aGlzLl9jb25zdW1lKCkpO1xuICAgICAgICBuZXh0Q3AgPSB0aGlzLl9sb29rYWhlYWQoKTtcbiAgICB9IHdoaWxlIChuZXh0Q3AgIT09ICQuRU9GICYmIGlzRGlnaXQobmV4dENwLCBpc0hleCkpO1xuXG4gICAgaWYgKHRoaXMuX2xvb2thaGVhZCgpID09PSAkLlNFTUlDT0xPTilcbiAgICAgICAgdGhpcy5fY29uc3VtZSgpO1xuXG4gICAgdmFyIHJlZmVyZW5jZWRDcCA9IHBhcnNlSW50KGRpZ2l0cywgaXNIZXggPyAxNiA6IDEwKSxcbiAgICAgICAgcmVwbGFjZW1lbnQgPSBOVU1FUklDX0VOVElUWV9SRVBMQUNFTUVOVFNbcmVmZXJlbmNlZENwXTtcblxuICAgIGlmIChyZXBsYWNlbWVudClcbiAgICAgICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuXG4gICAgaWYgKGlzUmVzZXJ2ZWRDb2RlUG9pbnQocmVmZXJlbmNlZENwKSlcbiAgICAgICAgcmV0dXJuICQuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZWRDcDtcbn07XG5cblRva2VuaXplci5wcm90b3R5cGUuX2NvbnN1bWVOYW1lZEVudGl0eSA9IGZ1bmN0aW9uIChzdGFydENwLCBpbkF0dHIpIHtcbiAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSBudWxsLFxuICAgICAgICBlbnRpdHlDb2RlUG9pbnRzQ291bnQgPSAwLFxuICAgICAgICBjcCA9IHN0YXJ0Q3AsXG4gICAgICAgIGxlYWYgPSBOQU1FRF9FTlRJVFlfVFJJRVtjcF0sXG4gICAgICAgIGNvbnN1bWVkQ291bnQgPSAxLFxuICAgICAgICBzZW1pY29sb25UZXJtaW5hdGVkID0gZmFsc2U7XG5cbiAgICBmb3IgKDsgbGVhZiAmJiBjcCAhPT0gJC5FT0Y7IGNwID0gdGhpcy5fY29uc3VtZSgpLCBjb25zdW1lZENvdW50KyssIGxlYWYgPSBsZWFmLmwgJiYgbGVhZi5sW2NwXSkge1xuICAgICAgICBpZiAobGVhZi5jKSB7XG4gICAgICAgICAgICAvL05PVEU6IHdlIGhhdmUgYXQgbGVhc3Qgb25lIG5hbWVkIHJlZmVyZW5jZSBtYXRjaC4gQnV0IHdlIGRvbid0IHN0b3AgbG9va3VwIGF0IHRoaXMgcG9pbnQsXG4gICAgICAgICAgICAvL2JlY2F1c2UgbG9uZ2VyIG1hdGNoZXMgc3RpbGwgY2FuIGJlIGZvdW5kIChlLmcuICcmbm90JyBhbmQgJyZub3RpbjsnKSBleGNlcHQgdGhlIGNhc2VcbiAgICAgICAgICAgIC8vdGhlbiBmb3VuZCBtYXRjaCBpcyB0ZXJtaW5hdGVkIGJ5IHNlbWljb2xvbi5cbiAgICAgICAgICAgIHJlZmVyZW5jZWRDb2RlUG9pbnRzID0gbGVhZi5jO1xuICAgICAgICAgICAgZW50aXR5Q29kZVBvaW50c0NvdW50ID0gY29uc3VtZWRDb3VudDtcblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLlNFTUlDT0xPTikge1xuICAgICAgICAgICAgICAgIHNlbWljb2xvblRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKSB7XG4gICAgICAgIGlmICghc2VtaWNvbG9uVGVybWluYXRlZCkge1xuICAgICAgICAgICAgLy9OT1RFOiB1bmNvbnN1bWUgZXhjZXNzIChlLmcuICdpdCcgaW4gJyZub3RpdCcpXG4gICAgICAgICAgICB0aGlzLl91bmNvbnN1bWVTZXZlcmFsKGNvbnN1bWVkQ291bnQgLSBlbnRpdHlDb2RlUG9pbnRzQ291bnQpO1xuXG4gICAgICAgICAgICAvL05PVEU6IElmIHRoZSBjaGFyYWN0ZXIgcmVmZXJlbmNlIGlzIGJlaW5nIGNvbnN1bWVkIGFzIHBhcnQgb2YgYW4gYXR0cmlidXRlIGFuZCB0aGUgbmV4dCBjaGFyYWN0ZXJcbiAgICAgICAgICAgIC8vaXMgZWl0aGVyIGEgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlciAoPSkgb3IgYW4gYWxwaGFudW1lcmljIEFTQ0lJIGNoYXJhY3RlciwgdGhlbiwgZm9yIGhpc3RvcmljYWxcbiAgICAgICAgICAgIC8vcmVhc29ucywgYWxsIHRoZSBjaGFyYWN0ZXJzIHRoYXQgd2VyZSBtYXRjaGVkIGFmdGVyIHRoZSBVKzAwMjYgQU1QRVJTQU5EIGNoYXJhY3RlciAoJikgbXVzdCBiZVxuICAgICAgICAgICAgLy91bmNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC5cbiAgICAgICAgICAgIC8vSG93ZXZlciwgaWYgdGhpcyBuZXh0IGNoYXJhY3RlciBpcyBpbiBmYWN0IGEgVSswMDNEIEVRVUFMUyBTSUdOIGNoYXJhY3RlciAoPSksIHRoZW4gdGhpcyBpcyBhXG4gICAgICAgICAgICAvL3BhcnNlIGVycm9yLCBiZWNhdXNlIHNvbWUgbGVnYWN5IHVzZXIgYWdlbnRzIHdpbGwgbWlzaW50ZXJwcmV0IHRoZSBtYXJrdXAgaW4gdGhvc2UgY2FzZXMuXG4gICAgICAgICAgICAvLyhzZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI3Rva2VuaXppbmctY2hhcmFjdGVyLXJlZmVyZW5jZXMpXG4gICAgICAgICAgICBpZiAoaW5BdHRyKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG5leHRDcCA9PT0gJC5FUVVBTFNfU0lHTiB8fCBpc0FzY2lpQWxwaGFOdW1lcmljKG5leHRDcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChlbnRpdHlDb2RlUG9pbnRzQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVmZXJlbmNlZENvZGVQb2ludHM7XG4gICAgfVxuXG4gICAgdGhpcy5fdW5jb25zdW1lU2V2ZXJhbChjb25zdW1lZENvdW50KTtcblxuICAgIHJldHVybiBudWxsO1xufTtcblxuVG9rZW5pemVyLnByb3RvdHlwZS5fY29uc3VtZUNoYXJhY3RlclJlZmVyZW5jZSA9IGZ1bmN0aW9uIChzdGFydENwLCBpbkF0dHIpIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKHN0YXJ0Q3ApIHx8IHN0YXJ0Q3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04gfHxcbiAgICAgICAgc3RhcnRDcCA9PT0gJC5BTVBFUlNBTkQgfHwgc3RhcnRDcCA9PT0gdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwIHx8IHN0YXJ0Q3AgPT09ICQuRU9GKSB7XG4gICAgICAgIC8vTk9URTogbm90IGEgY2hhcmFjdGVyIHJlZmVyZW5jZS4gTm8gY2hhcmFjdGVycyBhcmUgY29uc3VtZWQsIGFuZCBub3RoaW5nIGlzIHJldHVybmVkLlxuICAgICAgICB0aGlzLl91bmNvbnN1bWUoKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHN0YXJ0Q3AgPT09ICQuTlVNQkVSX1NJR04pIHtcbiAgICAgICAgLy9OT1RFOiB3ZSBoYXZlIGEgbnVtZXJpYyBlbnRpdHkgY2FuZGlkYXRlLCBub3cgd2Ugc2hvdWxkIGRldGVybWluZSBpZiBpdCdzIGhleCBvciBkZWNpbWFsXG4gICAgICAgIHZhciBpc0hleCA9IGZhbHNlLFxuICAgICAgICAgICAgbmV4dENwID0gdGhpcy5fbG9va2FoZWFkKCk7XG5cbiAgICAgICAgaWYgKG5leHRDcCA9PT0gJC5MQVRJTl9TTUFMTF9YIHx8IG5leHRDcCA9PT0gJC5MQVRJTl9DQVBJVEFMX1gpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnN1bWUoKTtcbiAgICAgICAgICAgIGlzSGV4ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHRDcCA9IHRoaXMuX2xvb2thaGVhZCgpO1xuXG4gICAgICAgIC8vTk9URTogaWYgd2UgaGF2ZSBhdCBsZWFzdCBvbmUgZGlnaXQgdGhpcyBpcyBhIG51bWVyaWMgZW50aXR5IGZvciBzdXJlLCBzbyB3ZSBjb25zdW1lIGl0XG4gICAgICAgIGlmIChuZXh0Q3AgIT09ICQuRU9GICYmIGlzRGlnaXQobmV4dENwLCBpc0hleCkpXG4gICAgICAgICAgICByZXR1cm4gW3RoaXMuX2NvbnN1bWVOdW1lcmljRW50aXR5KGlzSGV4KV07XG5cbiAgICAgICAgLy9OT1RFOiBvdGhlcndpc2UgdGhpcyBpcyBhIGJvZ3VzIG51bWJlciBlbnRpdHkgYW5kIGEgcGFyc2UgZXJyb3IuIFVuY29uc3VtZSB0aGUgbnVtYmVyIHNpZ25cbiAgICAgICAgLy9hbmQgdGhlICd4Jy1jaGFyYWN0ZXIgaWYgYXBwcm9wcmlhdGUuXG4gICAgICAgIHRoaXMuX3VuY29uc3VtZVNldmVyYWwoaXNIZXggPyAyIDogMSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9jb25zdW1lTmFtZWRFbnRpdHkoc3RhcnRDcCwgaW5BdHRyKTtcbn07XG5cbi8vU3RhdGUgbWFjaGluZVxudmFyIF8gPSBUb2tlbml6ZXIucHJvdG90eXBlO1xuXG4vLzEyLjIuNC4xIERhdGEgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gZGF0YVN0YXRlKGNwKSB7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG5cbiAgICBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKVxuICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9EQVRBX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBUQUdfT1BFTl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG59O1xuXG5cbi8vMTIuMi40LjIgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBkYXRhIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gY2hhcmFjdGVyUmVmZXJlbmNlSW5EYXRhU3RhdGUoY3ApIHtcbiAgICB0aGlzLmFkZGl0aW9uYWxBbGxvd2VkQ3AgPSB2b2lkIDA7XG5cbiAgICB2YXIgcmVmZXJlbmNlZENvZGVQb2ludHMgPSB0aGlzLl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlKGNwLCBmYWxzZSk7XG5cbiAgICBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgaWYgKHJlZmVyZW5jZWRDb2RlUG9pbnRzKVxuICAgICAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHJlZmVyZW5jZWRDb2RlUG9pbnRzKTtcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhcignJicpO1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMyBSQ0RBVEEgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JDREFUQV9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFTdGF0ZShjcCkge1xuICAgIHRoaXMucHJlcHJvY2Vzc29yLmRyb3BQYXJzZWRDaHVuaygpO1xuXG4gICAgaWYgKGNwID09PSAkLkFNUEVSU0FORClcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fUkNEQVRBX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBSQ0RBVEFfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNCBDaGFyYWN0ZXIgcmVmZXJlbmNlIGluIFJDREFUQSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9SQ0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gY2hhcmFjdGVyUmVmZXJlbmNlSW5SY2RhdGFTdGF0ZShjcCkge1xuICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9IHZvaWQgMDtcblxuICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IHRoaXMuX2NvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoY3AsIGZhbHNlKTtcblxuICAgIGlmICghdGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSkge1xuICAgICAgICBpZiAocmVmZXJlbmNlZENvZGVQb2ludHMpXG4gICAgICAgICAgICB0aGlzLl9lbWl0U2V2ZXJhbENvZGVQb2ludHMocmVmZXJlbmNlZENvZGVQb2ludHMpO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFyKCcmJyk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFJDREFUQV9TVEFURTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjUgUkFXVEVYVCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bUkFXVEVYVF9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0U3RhdGUoY3ApIHtcbiAgICB0aGlzLnByZXByb2Nlc3Nvci5kcm9wUGFyc2VkQ2h1bmsoKTtcblxuICAgIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFJBV1RFWFRfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX2VtaXRFT0ZUb2tlbigpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNiBTY3JpcHQgZGF0YSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YVN0YXRlKGNwKSB7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG5cbiAgICBpZiAoY3AgPT09ICQuTEVTU19USEFOX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fZW1pdEVPRlRva2VuKCk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xufTtcblxuXG4vLzEyLjIuNC43IFBMQUlOVEVYVCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bUExBSU5URVhUX1NUQVRFXSA9IGZ1bmN0aW9uIHBsYWludGV4dFN0YXRlKGNwKSB7XG4gICAgdGhpcy5wcmVwcm9jZXNzb3IuZHJvcFBhcnNlZENodW5rKCk7XG5cbiAgICBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9lbWl0RU9GVG9rZW4oKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG59O1xuXG5cbi8vMTIuMi40LjggVGFnIG9wZW4gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIHRhZ09wZW5TdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5FWENMQU1BVElPTl9NQVJLKVxuICAgICAgICB0aGlzLnN0YXRlID0gTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKVxuICAgICAgICB0aGlzLnN0YXRlID0gRU5EX1RBR19PUEVOX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlU3RhcnRUYWdUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFRBR19OQU1FX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5RVUVTVElPTl9NQVJLKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJPR1VTX0NPTU1FTlRfU1RBVEUpO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC45IEVuZCB0YWcgb3BlbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRU5EX1RBR19PUEVOX1NUQVRFXSA9IGZ1bmN0aW9uIGVuZFRhZ09wZW5TdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFRBR19OQU1FX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQk9HVVNfQ09NTUVOVF9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjEwIFRhZyBuYW1lIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tUQUdfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiB0YWdOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLlNPTElEVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC4xMSBSQ0RBVEEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JDREFUQV9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiByY2RhdGFMZXNzVGhhblNpZ25TdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFJDREFUQV9FTkRfVEFHX09QRU5fU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjEyIFJDREFUQSBlbmQgdGFnIG9wZW4gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JDREFUQV9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhRW5kVGFnT3BlblN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX0VORF9UQUdfTkFNRV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkNEQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjEzIFJDREFUQSBlbmQgdGFnIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JDREFUQV9FTkRfVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gcmNkYXRhRW5kVGFnTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlVcHBlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0FzY2lpTG93ZXJDaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpTG93ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy50ZW1wQnVmZi5wdXNoKGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbigpKSB7XG4gICAgICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX05BTUVfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX2VtaXRTZXZlcmFsQ29kZVBvaW50cyh0aGlzLnRlbXBCdWZmKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQ0RBVEFfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMTQgUkFXVEVYVCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bUkFXVEVYVF9MRVNTX1RIQU5fU0lHTl9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0TGVzc1RoYW5TaWduU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUgPSBSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShSQVdURVhUX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjE1IFJBV1RFWFQgZW5kIHRhZyBvcGVuIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tSQVdURVhUX0VORF9UQUdfT1BFTl9TVEFURV0gPSBmdW5jdGlvbiByYXd0ZXh0RW5kVGFnT3BlblN0YXRlKGNwKSB7XG4gICAgaWYgKGlzQXNjaWlMZXR0ZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUVuZFRhZ1Rva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoUkFXVEVYVF9FTkRfVEFHX05BTUVfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPCcpO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJBV1RFWFRfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMTYgUkFXVEVYVCBlbmQgdGFnIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1JBV1RFWFRfRU5EX1RBR19OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIHJhd3RleHRFbmRUYWdOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5faXNBcHByb3ByaWF0ZUVuZFRhZ1Rva2VuKCkpIHtcbiAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHRoaXMudGVtcEJ1ZmYpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFJBV1RFWFRfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMTcgU2NyaXB0IGRhdGEgbGVzcy10aGFuIHNpZ24gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFMZXNzVGhhblNpZ25TdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VORF9UQUdfT1BFTl9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FWENMQU1BVElPTl9NQVJLKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVfU1RBUlRfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCchJyk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMTggU2NyaXB0IGRhdGEgZW5kIHRhZyBvcGVuIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVuZFRhZ09wZW5TdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICB0aGlzLl9jcmVhdGVFbmRUYWdUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VORF9UQUdfTkFNRV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMTkgU2NyaXB0IGRhdGEgZW5kIHRhZyBuYW1lIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FTkRfVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVuZFRhZ05hbWVTdGF0ZShjcCkge1xuICAgIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnRhZ05hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQ2hhcihjcCk7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0FwcHJvcHJpYXRlRW5kVGFnVG9rZW4oKSkge1xuICAgICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHRoaXMudGVtcEJ1ZmYpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjIwIFNjcmlwdCBkYXRhIGVzY2FwZSBzdGFydCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVTdGFydFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFX1NUQVJUX0RBU0hfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG4gICAgfVxuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX1NUQVRFKTtcbn07XG5cblxuLy8xMi4yLjQuMjEgU2NyaXB0IGRhdGEgZXNjYXBlIHN0YXJ0IGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRV9TVEFSVF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVTdGFydERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjIyIFNjcmlwdCBkYXRhIGVzY2FwZWQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xufTtcblxuXG4vLzEyLjIuNC4yMyBTY3JpcHQgZGF0YSBlc2NhcGVkIGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRXNjYXBlZERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLScpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkxFU1NfVEhBTl9TSUdOKVxuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9MRVNTX1RIQU5fU0lHTl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMjQgU2NyaXB0IGRhdGEgZXNjYXBlZCBkYXNoIGRhc2ggc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NDUklQVF9EQVRBX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkRGFzaERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc+Jyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4yNSBTY3JpcHQgZGF0YSBlc2NhcGVkIGxlc3MtdGhhbiBzaWduIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9FU0NBUEVEX0xFU1NfVEhBTl9TSUdOX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuU09MSURVUykge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfT1BFTl9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpTGV0dGVyKGNwKSkge1xuICAgICAgICB0aGlzLnRlbXBCdWZmID0gW107XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4yNiBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgb3BlbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdPcGVuU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaUxldHRlcihjcCkpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRW5kVGFnVG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9FU0NBUEVEX0VORF9UQUdfTkFNRV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCcvJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4yNyBTY3JpcHQgZGF0YSBlc2NhcGVkIGVuZCB0YWcgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRVNDQVBFRF9FTkRfVEFHX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YUVzY2FwZWRFbmRUYWdOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNBc2NpaVVwcGVyKGNwKSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi50YWdOYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzQXNjaWlMb3dlcihjcCkpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4udGFnTmFtZSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5faXNBcHByb3ByaWF0ZUVuZFRhZ1Rva2VuKCkpIHtcbiAgICAgICAgICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFNFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJzwnKTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy8nKTtcbiAgICAgICAgdGhpcy5fZW1pdFNldmVyYWxDb2RlUG9pbnRzKHRoaXMudGVtcEJ1ZmYpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMjggU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZSBzdGFydCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRV9TVEFSVF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlU3RhcnRTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApIHx8IGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMuaXNUZW1wQnVmZmVyRXF1YWxUb1NjcmlwdFN0cmluZygpID8gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUgOiBTQ1JJUFRfREFUQV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaCh0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApKTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkge1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRVNDQVBFRF9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjI5IFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUykge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVIpO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbn07XG5cblxuLy8xMi4yLjQuMzAgU2NyaXB0IGRhdGEgZG91YmxlIGVzY2FwZWQgZGFzaCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlZERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX0RBU0hfREFTSF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENoYXIoJy0nKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjMxIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGVkIGRhc2ggZGFzaCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfREFTSF9EQVNIX1NUQVRFXSA9IGZ1bmN0aW9uIHNjcmlwdERhdGFEb3VibGVFc2NhcGVkRGFzaERhc2hTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCctJyk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLnN0YXRlID0gU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFyKCc8Jyk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignPicpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVEX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcihVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUik7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4zMiBTY3JpcHQgZGF0YSBkb3VibGUgZXNjYXBlZCBsZXNzLXRoYW4gc2lnbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfTEVTU19USEFOX1NJR05fU1RBVEVdID0gZnVuY3Rpb24gc2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5TT0xJRFVTKSB7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYgPSBbXTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFNDUklQVF9EQVRBX0RPVUJMRV9FU0NBUEVfRU5EX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q2hhcignLycpO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjMzIFNjcmlwdCBkYXRhIGRvdWJsZSBlc2NhcGUgZW5kIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFX0VORF9TVEFURV0gPSBmdW5jdGlvbiBzY3JpcHREYXRhRG91YmxlRXNjYXBlRW5kU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5TT0xJRFVTIHx8IGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSB0aGlzLmlzVGVtcEJ1ZmZlckVxdWFsVG9TY3JpcHRTdHJpbmcoKSA/IFNDUklQVF9EQVRBX0VTQ0FQRURfU1RBVEUgOiBTQ1JJUFRfREFUQV9ET1VCTEVfRVNDQVBFRF9TVEFURTtcblxuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc0FzY2lpVXBwZXIoY3ApKSB7XG4gICAgICAgIHRoaXMudGVtcEJ1ZmYucHVzaCh0b0FzY2lpTG93ZXJDb2RlUG9pbnQoY3ApKTtcbiAgICAgICAgdGhpcy5fZW1pdENvZGVQb2ludChjcCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoaXNBc2NpaUxvd2VyKGNwKSkge1xuICAgICAgICB0aGlzLnRlbXBCdWZmLnB1c2goY3ApO1xuICAgICAgICB0aGlzLl9lbWl0Q29kZVBvaW50KGNwKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoU0NSSVBUX0RBVEFfRE9VQkxFX0VTQ0FQRURfU1RBVEUpO1xufTtcblxuXG4vLzEyLjIuNC4zNCBCZWZvcmUgYXR0cmlidXRlIG5hbWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0JFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURV0gPSBmdW5jdGlvbiBiZWZvcmVBdHRyaWJ1dGVOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgaWYgKGNwID09PSAkLlNPTElEVVMgfHwgY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04gfHwgY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEFGVEVSX0FUVFJJQlVURV9OQU1FX1NUQVRFKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVRVUFMU19TSUdOKSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUF0dHIoJz0nKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9OQU1FX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLl9jcmVhdGVBdHRyKCcnKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShBVFRSSUJVVEVfTkFNRV9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC4zNSBBdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQVRUUklCVVRFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYXR0cmlidXRlTmFtZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkgfHwgY3AgPT09ICQuU09MSURVUyB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTiB8fCBjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fbGVhdmVBdHRyTmFtZShBRlRFUl9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG4gICAgICAgIHRoaXMuX3VuY29uc3VtZSgpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVRVUFMU19TSUdOKVxuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJOYW1lKEJFRk9SRV9BVFRSSUJVVEVfVkFMVUVfU1RBVEUpO1xuXG4gICAgZWxzZSBpZiAoaXNBc2NpaVVwcGVyKGNwKSlcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IHRvQXNjaWlMb3dlckNoYXIoY3ApO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUksgfHwgY3AgPT09ICQuQVBPU1RST1BIRSB8fCBjcCA9PT0gJC5MRVNTX1RIQU5fU0lHTilcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci5uYW1lICs9IHRvQ2hhcihjcCk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLm5hbWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIubmFtZSArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC4zNiBBZnRlciBhdHRyaWJ1dGUgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQUZURVJfQVRUUklCVVRFX05BTUVfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJBdHRyaWJ1dGVOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSlcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgaWYgKGNwID09PSAkLlNPTElEVVMpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRVFVQUxTX1NJR04pXG4gICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfQVRUUklCVVRFX1ZBTFVFX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlQXR0cignJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQVRUUklCVVRFX05BTUVfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuMzcgQmVmb3JlIGF0dHJpYnV0ZSB2YWx1ZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQkVGT1JFX0FUVFJJQlVURV9WQUxVRV9TVEFURV0gPSBmdW5jdGlvbiBiZWZvcmVBdHRyaWJ1dGVWYWx1ZVN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQVBPU1RST1BIRSlcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEFUVFJJQlVURV9WQUxVRV9TSU5HTEVfUVVPVEVEX1NUQVRFO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEFUVFJJQlVURV9WQUxVRV9VTlFVT1RFRF9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjM4IEF0dHJpYnV0ZSB2YWx1ZSAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FUVFJJQlVURV9WQUxVRV9ET1VCTEVfUVVPVEVEX1NUQVRFXSA9IGZ1bmN0aW9uIGF0dHJpYnV0ZVZhbHVlRG91YmxlUXVvdGVkU3RhdGUoY3ApIHtcbiAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspXG4gICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKSB7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9ICQuUVVPVEFUSU9OX01BUks7XG4gICAgICAgIHRoaXMucmV0dXJuU3RhdGUgPSB0aGlzLnN0YXRlO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ0hBUkFDVEVSX1JFRkVSRU5DRV9JTl9BVFRSSUJVVEVfVkFMVUVfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRilcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSB0b0NoYXIoY3ApO1xufTtcblxuXG4vLzEyLjIuNC4zOSBBdHRyaWJ1dGUgdmFsdWUgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tBVFRSSUJVVEVfVkFMVUVfU0lOR0xFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBhdHRyaWJ1dGVWYWx1ZVNpbmdsZVF1b3RlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpXG4gICAgICAgIHRoaXMuc3RhdGUgPSBBRlRFUl9BVFRSSUJVVEVfVkFMVUVfUVVPVEVEX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuQU1QRVJTQU5EKSB7XG4gICAgICAgIHRoaXMuYWRkaXRpb25hbEFsbG93ZWRDcCA9ICQuQVBPU1RST1BIRTtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjQwIEF0dHJpYnV0ZSB2YWx1ZSAodW5xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tBVFRSSUJVVEVfVkFMVUVfVU5RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gYXR0cmlidXRlVmFsdWVVbnF1b3RlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5BTVBFUlNBTkQpIHtcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsQWxsb3dlZENwID0gJC5HUkVBVEVSX1RIQU5fU0lHTjtcbiAgICAgICAgdGhpcy5yZXR1cm5TdGF0ZSA9IHRoaXMuc3RhdGU7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDSEFSQUNURVJfUkVGRVJFTkNFX0lOX0FUVFJJQlVURV9WQUxVRV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSyB8fCBjcCA9PT0gJC5BUE9TVFJPUEhFIHx8IGNwID09PSAkLkxFU1NfVEhBTl9TSUdOIHx8XG4gICAgICAgICAgICAgY3AgPT09ICQuRVFVQUxTX1NJR04gfHwgY3AgPT09ICQuR1JBVkVfQUNDRU5UKVxuICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihjcCk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudEF0dHIudmFsdWUgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNDEgQ2hhcmFjdGVyIHJlZmVyZW5jZSBpbiBhdHRyaWJ1dGUgdmFsdWUgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NIQVJBQ1RFUl9SRUZFUkVOQ0VfSU5fQVRUUklCVVRFX1ZBTFVFX1NUQVRFXSA9IGZ1bmN0aW9uIGNoYXJhY3RlclJlZmVyZW5jZUluQXR0cmlidXRlVmFsdWVTdGF0ZShjcCkge1xuICAgIHZhciByZWZlcmVuY2VkQ29kZVBvaW50cyA9IHRoaXMuX2NvbnN1bWVDaGFyYWN0ZXJSZWZlcmVuY2UoY3AsIHRydWUpO1xuXG4gICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgIGlmIChyZWZlcmVuY2VkQ29kZVBvaW50cykge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWZlcmVuY2VkQ29kZVBvaW50cy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBdHRyLnZhbHVlICs9IHRvQ2hhcihyZWZlcmVuY2VkQ29kZVBvaW50c1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QXR0ci52YWx1ZSArPSAnJic7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHRoaXMucmV0dXJuU3RhdGU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC40MiBBZnRlciBhdHRyaWJ1dGUgdmFsdWUgKHF1b3RlZCkgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FGVEVSX0FUVFJJQlVURV9WQUxVRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJBdHRyaWJ1dGVWYWx1ZVF1b3RlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5TT0xJRFVTKVxuICAgICAgICB0aGlzLl9sZWF2ZUF0dHJWYWx1ZShTRUxGX0NMT1NJTkdfU1RBUlRfVEFHX1NUQVRFKTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuX2xlYXZlQXR0clZhbHVlKERBVEFfU1RBVEUpO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJFRk9SRV9BVFRSSUJVVEVfTkFNRV9TVEFURSk7XG59O1xuXG5cbi8vMTIuMi40LjQzIFNlbGYtY2xvc2luZyBzdGFydCB0YWcgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW1NFTEZfQ0xPU0lOR19TVEFSVF9UQUdfU1RBVEVdID0gZnVuY3Rpb24gc2VsZkNsb3NpbmdTdGFydFRhZ1N0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnNlbGZDbG9zaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQkVGT1JFX0FUVFJJQlVURV9OQU1FX1NUQVRFKTtcbn07XG5cblxuLy8xMi4yLjQuNDQgQm9ndXMgY29tbWVudCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQk9HVVNfQ09NTUVOVF9TVEFURV0gPSBmdW5jdGlvbiBib2d1c0NvbW1lbnRTdGF0ZSgpIHtcbiAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oKTtcbiAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJPR1VTX0NPTU1FTlRfU1RBVEVfQ09OVElOVUFUSU9OKTtcbn07XG5cbi8vSEFDSzogdG8gc3VwcG9ydCBzdHJlYW1pbmcgYW5kIG1ha2UgQk9HVVNfQ09NTUVOVF9TVEFURSByZWVudHJhbnQgd2UndmVcbi8vaW50cm9kdWNlZCBCT0dVU19DT01NRU5UX1NUQVRFX0NPTlRJTlVBVElPTiBzdGF0ZSB3aGljaCB3aWxsIG5vdCBwcm9kdWNlXG4vL2NvbW1lbnQgdG9rZW4gb24gZWFjaCBjYWxsLlxuX1tCT0dVU19DT01NRU5UX1NUQVRFX0NPTlRJTlVBVElPTl0gPSBmdW5jdGlvbiBib2d1c0NvbW1lbnRTdGF0ZUNvbnRpbnVhdGlvbihjcCkge1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IGNwID09PSAkLk5VTEwgPyBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUiA6IHRvQ2hhcihjcCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2hpYmVybmF0aW9uU25hcHNob3QoKTtcbiAgICAgICAgICAgIGNwID0gdGhpcy5fY29uc3VtZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fZW5zdXJlSGliZXJuYXRpb24oKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG59O1xuXG4vLzEyLjIuNC40NSBNYXJrdXAgZGVjbGFyYXRpb24gb3BlbiBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bTUFSS1VQX0RFQ0xBUkFUSU9OX09QRU5fU1RBVEVdID0gZnVuY3Rpb24gbWFya3VwRGVjbGFyYXRpb25PcGVuU3RhdGUoY3ApIHtcbiAgICB2YXIgZGFzaERhc2hNYXRjaCA9IHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5EQVNIX0RBU0hfU1RSSU5HLCBjcCwgdHJ1ZSksXG4gICAgICAgIGRvY3R5cGVNYXRjaCA9ICFkYXNoRGFzaE1hdGNoICYmIHRoaXMuX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCgkJC5ET0NUWVBFX1NUUklORywgY3AsIGZhbHNlKSxcbiAgICAgICAgY2RhdGFNYXRjaCA9ICFkYXNoRGFzaE1hdGNoICYmICFkb2N0eXBlTWF0Y2ggJiZcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dDREFUQSAmJlxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLkNEQVRBX1NUQVJUX1NUUklORywgY3AsIHRydWUpO1xuXG4gICAgaWYgKCF0aGlzLl9lbnN1cmVIaWJlcm5hdGlvbigpKSB7XG4gICAgICAgIGlmIChkYXNoRGFzaE1hdGNoKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVDb21tZW50VG9rZW4oKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVJUX1NUQVRFO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxzZSBpZiAoZG9jdHlwZU1hdGNoKVxuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1RBVEU7XG5cbiAgICAgICAgZWxzZSBpZiAoY2RhdGFNYXRjaClcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBDREFUQV9TRUNUSU9OX1NUQVRFO1xuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQk9HVVNfQ09NTUVOVF9TVEFURSk7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC40NiBDb21tZW50IHN0YXJ0IHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDT01NRU5UX1NUQVJUX1NUQVRFXSA9IGZ1bmN0aW9uIGNvbW1lbnRTdGFydFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBUlRfREFTSF9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IHRvQ2hhcihjcCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNDcgQ29tbWVudCBzdGFydCBkYXNoIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tDT01NRU5UX1NUQVJUX0RBU0hfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudFN0YXJ0RGFzaFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfRU5EX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjQ4IENvbW1lbnQgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NPTU1FTlRfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfRU5EX0RBU0hfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNDkgQ29tbWVudCBlbmQgZGFzaCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ09NTUVOVF9FTkRfREFTSF9TVEFURV0gPSBmdW5jdGlvbiBjb21tZW50RW5kRGFzaFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkhZUEhFTl9NSU5VUylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfRU5EX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctJztcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41MCBDb21tZW50IGVuZCBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQ09NTUVOVF9FTkRfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudEVuZFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRVhDTEFNQVRJT05fTUFSSylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfRU5EX0JBTkdfU1RBVEU7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0nO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5kYXRhICs9ICctLSc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tJztcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSB0b0NoYXIoY3ApO1xuICAgICAgICB0aGlzLnN0YXRlID0gQ09NTUVOVF9TVEFURTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjUxIENvbW1lbnQgZW5kIGJhbmcgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NPTU1FTlRfRU5EX0JBTkdfU1RBVEVdID0gZnVuY3Rpb24gY29tbWVudEVuZEJhbmdTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5IWVBIRU5fTUlOVVMpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZGF0YSArPSAnLS0hJztcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfRU5EX0RBU0hfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBDT01NRU5UX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoREFUQV9TVEFURSk7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gJy0tISc7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmRhdGEgKz0gdG9DaGFyKGNwKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IENPTU1FTlRfU1RBVEU7XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41MiBET0NUWVBFIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tET0NUWVBFX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9jcmVhdGVEb2N0eXBlVG9rZW4obnVsbCk7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5FT0YpIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlRG9jdHlwZVRva2VuKG51bGwpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZURvY3R5cGVUb2tlbignJyk7XG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoRE9DVFlQRV9OQU1FX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjU0IERPQ1RZUEUgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bRE9DVFlQRV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGRvY3R5cGVOYW1lU3RhdGUoY3ApIHtcbiAgICBpZiAoaXNXaGl0ZXNwYWNlKGNwKSB8fCBjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTiB8fCBjcCA9PT0gJC5FT0YpXG4gICAgICAgIHRoaXMuX3JlY29uc3VtZUluU3RhdGUoQUZURVJfRE9DVFlQRV9OQU1FX1NUQVRFKTtcblxuICAgIGVsc2UgaWYgKGlzQXNjaWlVcHBlcihjcCkpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLm5hbWUgKz0gdG9Bc2NpaUxvd2VyQ2hhcihjcCk7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5uYW1lICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5uYW1lICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjU1IEFmdGVyIERPQ1RZUEUgbmFtZSBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQUZURVJfRE9DVFlQRV9OQU1FX1NUQVRFXSA9IGZ1bmN0aW9uIGFmdGVyRG9jdHlwZU5hbWVTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdmFyIHB1YmxpY01hdGNoID0gdGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLlBVQkxJQ19TVFJJTkcsIGNwLCBmYWxzZSksXG4gICAgICAgICAgICBzeXN0ZW1NYXRjaCA9ICFwdWJsaWNNYXRjaCAmJiB0aGlzLl9jb25zdW1lU3Vic2VxdWVudElmTWF0Y2goJCQuU1lTVEVNX1NUUklORywgY3AsIGZhbHNlKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaWNNYXRjaClcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlID0gQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEU7XG5cbiAgICAgICAgICAgIGVsc2UgaWYgKHN5c3RlbU1hdGNoKVxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURTtcblxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuXG4vLzEyLjIuNC41NyBCZWZvcmUgRE9DVFlQRSBwdWJsaWMgaWRlbnRpZmllciBzdGF0ZVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbl9bQkVGT1JFX0RPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfU1RBVEVdID0gZnVuY3Rpb24gYmVmb3JlRG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTdGF0ZShjcCkge1xuICAgIGlmIChpc1doaXRlc3BhY2UoY3ApKVxuICAgICAgICByZXR1cm47XG5cbiAgICBpZiAoY3AgPT09ICQuUVVPVEFUSU9OX01BUkspIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgPSAnJztcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfUFVCTElDX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkID0gJyc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCT0dVU19ET0NUWVBFX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjU4IERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKGRvdWJsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVB1YmxpY0lkZW50aWZpZXJEb3VibGVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSylcbiAgICAgICAgdGhpcy5zdGF0ZSA9IEJFVFdFRU5fRE9DVFlQRV9QVUJMSUNfQU5EX1NZU1RFTV9JREVOVElGSUVSU19TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLk5VTEwpXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkICs9IFVOSUNPREUuUkVQTEFDRU1FTlRfQ0hBUkFDVEVSO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuR1JFQVRFUl9USEFOX1NJR04pIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnB1YmxpY0lkICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjU5IERPQ1RZUEUgcHVibGljIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tET0NUWVBFX1BVQkxJQ19JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVB1YmxpY0lkZW50aWZpZXJTaW5nbGVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKVxuICAgICAgICB0aGlzLnN0YXRlID0gQkVUV0VFTl9ET0NUWVBFX1BVQkxJQ19BTkRfU1lTVEVNX0lERU5USUZJRVJTX1NUQVRFO1xuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuTlVMTClcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgIH1cblxuICAgIGVsc2VcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4ucHVibGljSWQgKz0gdG9DaGFyKGNwKTtcbn07XG5cblxuLy8xMi4yLjQuNjEgQmV0d2VlbiBET0NUWVBFIHB1YmxpYyBhbmQgc3lzdGVtIGlkZW50aWZpZXJzIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tCRVRXRUVOX0RPQ1RZUEVfUFVCTElDX0FORF9TWVNURU1fSURFTlRJRklFUlNfU1RBVEVdID0gZnVuY3Rpb24gYmV0d2VlbkRvY3R5cGVQdWJsaWNBbmRTeXN0ZW1JZGVudGlmaWVyc1N0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX0RPVUJMRV9RVU9URURfU1RBVEU7XG4gICAgfVxuXG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkID0gJyc7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShCT0dVU19ET0NUWVBFX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjYzIEJlZm9yZSBET0NUWVBFIHN5c3RlbSBpZGVudGlmaWVyIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tCRUZPUkVfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURV0gPSBmdW5jdGlvbiBiZWZvcmVEb2N0eXBlU3lzdGVtSWRlbnRpZmllclN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5RVU9UQVRJT05fTUFSSykge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCA9ICcnO1xuICAgICAgICB0aGlzLnN0YXRlID0gRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9ET1VCTEVfUVVPVEVEX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkFQT1NUUk9QSEUpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uc3lzdGVtSWQgPSAnJztcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU0lOR0xFX1FVT1RFRF9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VG9rZW4uZm9yY2VRdWlya3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKEJPR1VTX0RPQ1RZUEVfU1RBVEUpO1xuICAgIH1cbn07XG5cblxuLy8xMi4yLjQuNjQgRE9DVFlQRSBzeXN0ZW0gaWRlbnRpZmllciAoZG91YmxlLXF1b3RlZCkgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfRE9VQkxFX1FVT1RFRF9TVEFURV0gPSBmdW5jdGlvbiBkb2N0eXBlU3lzdGVtSWRlbnRpZmllckRvdWJsZVF1b3RlZFN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLlFVT1RBVElPTl9NQVJLKVxuICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjY1IERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgKHNpbmdsZS1xdW90ZWQpIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tET0NUWVBFX1NZU1RFTV9JREVOVElGSUVSX1NJTkdMRV9RVU9URURfU1RBVEVdID0gZnVuY3Rpb24gZG9jdHlwZVN5c3RlbUlkZW50aWZpZXJTaW5nbGVRdW90ZWRTdGF0ZShjcCkge1xuICAgIGlmIChjcCA9PT0gJC5BUE9TVFJPUEhFKVxuICAgICAgICB0aGlzLnN0YXRlID0gQUZURVJfRE9DVFlQRV9TWVNURU1fSURFTlRJRklFUl9TVEFURTtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLmZvcmNlUXVpcmtzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdEN1cnJlbnRUb2tlbigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gREFUQV9TVEFURTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChjcCA9PT0gJC5OVUxMKVxuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5zeXN0ZW1JZCArPSBVTklDT0RFLlJFUExBQ0VNRU5UX0NIQVJBQ1RFUjtcblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuY3VycmVudFRva2VuLnN5c3RlbUlkICs9IHRvQ2hhcihjcCk7XG59O1xuXG5cbi8vMTIuMi40LjY2IEFmdGVyIERPQ1RZUEUgc3lzdGVtIGlkZW50aWZpZXIgc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0FGVEVSX0RPQ1RZUEVfU1lTVEVNX0lERU5USUZJRVJfU1RBVEVdID0gZnVuY3Rpb24gYWZ0ZXJEb2N0eXBlU3lzdGVtSWRlbnRpZmllclN0YXRlKGNwKSB7XG4gICAgaWYgKGlzV2hpdGVzcGFjZShjcCkpXG4gICAgICAgIHJldHVybjtcblxuICAgIGlmIChjcCA9PT0gJC5HUkVBVEVSX1RIQU5fU0lHTikge1xuICAgICAgICB0aGlzLl9lbWl0Q3VycmVudFRva2VuKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBEQVRBX1NUQVRFO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGNwID09PSAkLkVPRikge1xuICAgICAgICB0aGlzLmN1cnJlbnRUb2tlbi5mb3JjZVF1aXJrcyA9IHRydWU7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG5cbiAgICBlbHNlXG4gICAgICAgIHRoaXMuc3RhdGUgPSBCT0dVU19ET0NUWVBFX1NUQVRFO1xufTtcblxuXG4vLzEyLjIuNC42NyBCb2d1cyBET0NUWVBFIHN0YXRlXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuX1tCT0dVU19ET0NUWVBFX1NUQVRFXSA9IGZ1bmN0aW9uIGJvZ3VzRG9jdHlwZVN0YXRlKGNwKSB7XG4gICAgaWYgKGNwID09PSAkLkdSRUFURVJfVEhBTl9TSUdOKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgfVxuXG4gICAgZWxzZSBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDdXJyZW50VG9rZW4oKTtcbiAgICAgICAgdGhpcy5fcmVjb25zdW1lSW5TdGF0ZShEQVRBX1NUQVRFKTtcbiAgICB9XG59O1xuXG5cbi8vMTIuMi40LjY4IENEQVRBIHNlY3Rpb24gc3RhdGVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5fW0NEQVRBX1NFQ1RJT05fU1RBVEVdID0gZnVuY3Rpb24gY2RhdGFTZWN0aW9uU3RhdGUoY3ApIHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAoY3AgPT09ICQuRU9GKSB7XG4gICAgICAgICAgICB0aGlzLl9yZWNvbnN1bWVJblN0YXRlKERBVEFfU1RBVEUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBjZGF0YUVuZE1hdGNoID0gdGhpcy5fY29uc3VtZVN1YnNlcXVlbnRJZk1hdGNoKCQkLkNEQVRBX0VORF9TVFJJTkcsIGNwLCB0cnVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGlmIChjZGF0YUVuZE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IERBVEFfU1RBVEU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2VtaXRDb2RlUG9pbnQoY3ApO1xuXG4gICAgICAgICAgICB0aGlzLl9oaWJlcm5hdGlvblNuYXBzaG90KCk7XG4gICAgICAgICAgICBjcCA9IHRoaXMuX2NvbnN1bWUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2Vuc3VyZUhpYmVybmF0aW9uKCkpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xyXG5cclxudmFyIE5TID0gZXhwb3J0cy5OQU1FU1BBQ0VTID0ge1xyXG4gICAgSFRNTDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLFxyXG4gICAgTUFUSE1MOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCcsXHJcbiAgICBTVkc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXHJcbiAgICBYTElOSzogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLFxyXG4gICAgWE1MOiAnaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlJyxcclxuICAgIFhNTE5TOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8nXHJcbn07XHJcblxyXG5leHBvcnRzLkFUVFJTID0ge1xyXG4gICAgVFlQRTogJ3R5cGUnLFxyXG4gICAgQUNUSU9OOiAnYWN0aW9uJyxcclxuICAgIEVOQ09ESU5HOiAnZW5jb2RpbmcnLFxyXG4gICAgUFJPTVBUOiAncHJvbXB0JyxcclxuICAgIE5BTUU6ICduYW1lJyxcclxuICAgIENPTE9SOiAnY29sb3InLFxyXG4gICAgRkFDRTogJ2ZhY2UnLFxyXG4gICAgU0laRTogJ3NpemUnXHJcbn07XHJcblxyXG52YXIgJCA9IGV4cG9ydHMuVEFHX05BTUVTID0ge1xyXG4gICAgQTogJ2EnLFxyXG4gICAgQUREUkVTUzogJ2FkZHJlc3MnLFxyXG4gICAgQU5OT1RBVElPTl9YTUw6ICdhbm5vdGF0aW9uLXhtbCcsXHJcbiAgICBBUFBMRVQ6ICdhcHBsZXQnLFxyXG4gICAgQVJFQTogJ2FyZWEnLFxyXG4gICAgQVJUSUNMRTogJ2FydGljbGUnLFxyXG4gICAgQVNJREU6ICdhc2lkZScsXHJcblxyXG4gICAgQjogJ2InLFxyXG4gICAgQkFTRTogJ2Jhc2UnLFxyXG4gICAgQkFTRUZPTlQ6ICdiYXNlZm9udCcsXHJcbiAgICBCR1NPVU5EOiAnYmdzb3VuZCcsXHJcbiAgICBCSUc6ICdiaWcnLFxyXG4gICAgQkxPQ0tRVU9URTogJ2Jsb2NrcXVvdGUnLFxyXG4gICAgQk9EWTogJ2JvZHknLFxyXG4gICAgQlI6ICdicicsXHJcbiAgICBCVVRUT046ICdidXR0b24nLFxyXG5cclxuICAgIENBUFRJT046ICdjYXB0aW9uJyxcclxuICAgIENFTlRFUjogJ2NlbnRlcicsXHJcbiAgICBDT0RFOiAnY29kZScsXHJcbiAgICBDT0w6ICdjb2wnLFxyXG4gICAgQ09MR1JPVVA6ICdjb2xncm91cCcsXHJcblxyXG4gICAgREQ6ICdkZCcsXHJcbiAgICBERVNDOiAnZGVzYycsXHJcbiAgICBERVRBSUxTOiAnZGV0YWlscycsXHJcbiAgICBESUFMT0c6ICdkaWFsb2cnLFxyXG4gICAgRElSOiAnZGlyJyxcclxuICAgIERJVjogJ2RpdicsXHJcbiAgICBETDogJ2RsJyxcclxuICAgIERUOiAnZHQnLFxyXG5cclxuICAgIEVNOiAnZW0nLFxyXG4gICAgRU1CRUQ6ICdlbWJlZCcsXHJcblxyXG4gICAgRklFTERTRVQ6ICdmaWVsZHNldCcsXHJcbiAgICBGSUdDQVBUSU9OOiAnZmlnY2FwdGlvbicsXHJcbiAgICBGSUdVUkU6ICdmaWd1cmUnLFxyXG4gICAgRk9OVDogJ2ZvbnQnLFxyXG4gICAgRk9PVEVSOiAnZm9vdGVyJyxcclxuICAgIEZPUkVJR05fT0JKRUNUOiAnZm9yZWlnbk9iamVjdCcsXHJcbiAgICBGT1JNOiAnZm9ybScsXHJcbiAgICBGUkFNRTogJ2ZyYW1lJyxcclxuICAgIEZSQU1FU0VUOiAnZnJhbWVzZXQnLFxyXG5cclxuICAgIEgxOiAnaDEnLFxyXG4gICAgSDI6ICdoMicsXHJcbiAgICBIMzogJ2gzJyxcclxuICAgIEg0OiAnaDQnLFxyXG4gICAgSDU6ICdoNScsXHJcbiAgICBINjogJ2g2JyxcclxuICAgIEhFQUQ6ICdoZWFkJyxcclxuICAgIEhFQURFUjogJ2hlYWRlcicsXHJcbiAgICBIR1JPVVA6ICdoZ3JvdXAnLFxyXG4gICAgSFI6ICdocicsXHJcbiAgICBIVE1MOiAnaHRtbCcsXHJcblxyXG4gICAgSTogJ2knLFxyXG4gICAgSU1HOiAnaW1nJyxcclxuICAgIElNQUdFOiAnaW1hZ2UnLFxyXG4gICAgSU5QVVQ6ICdpbnB1dCcsXHJcbiAgICBJRlJBTUU6ICdpZnJhbWUnLFxyXG5cclxuICAgIEtFWUdFTjogJ2tleWdlbicsXHJcblxyXG4gICAgTEFCRUw6ICdsYWJlbCcsXHJcbiAgICBMSTogJ2xpJyxcclxuICAgIExJTks6ICdsaW5rJyxcclxuICAgIExJU1RJTkc6ICdsaXN0aW5nJyxcclxuXHJcbiAgICBNQUlOOiAnbWFpbicsXHJcbiAgICBNQUxJR05NQVJLOiAnbWFsaWdubWFyaycsXHJcbiAgICBNQVJRVUVFOiAnbWFycXVlZScsXHJcbiAgICBNQVRIOiAnbWF0aCcsXHJcbiAgICBNRU5VOiAnbWVudScsXHJcbiAgICBNRU5VSVRFTTogJ21lbnVpdGVtJyxcclxuICAgIE1FVEE6ICdtZXRhJyxcclxuICAgIE1HTFlQSDogJ21nbHlwaCcsXHJcbiAgICBNSTogJ21pJyxcclxuICAgIE1POiAnbW8nLFxyXG4gICAgTU46ICdtbicsXHJcbiAgICBNUzogJ21zJyxcclxuICAgIE1URVhUOiAnbXRleHQnLFxyXG5cclxuICAgIE5BVjogJ25hdicsXHJcbiAgICBOT0JSOiAnbm9icicsXHJcbiAgICBOT0ZSQU1FUzogJ25vZnJhbWVzJyxcclxuICAgIE5PRU1CRUQ6ICdub2VtYmVkJyxcclxuICAgIE5PU0NSSVBUOiAnbm9zY3JpcHQnLFxyXG5cclxuICAgIE9CSkVDVDogJ29iamVjdCcsXHJcbiAgICBPTDogJ29sJyxcclxuICAgIE9QVEdST1VQOiAnb3B0Z3JvdXAnLFxyXG4gICAgT1BUSU9OOiAnb3B0aW9uJyxcclxuXHJcbiAgICBQOiAncCcsXHJcbiAgICBQQVJBTTogJ3BhcmFtJyxcclxuICAgIFBMQUlOVEVYVDogJ3BsYWludGV4dCcsXHJcbiAgICBQUkU6ICdwcmUnLFxyXG5cclxuICAgIFJCOiAncmInLFxyXG4gICAgUlA6ICdycCcsXHJcbiAgICBSVDogJ3J0JyxcclxuICAgIFJUQzogJ3J0YycsXHJcbiAgICBSVUJZOiAncnVieScsXHJcblxyXG4gICAgUzogJ3MnLFxyXG4gICAgU0NSSVBUOiAnc2NyaXB0JyxcclxuICAgIFNFQ1RJT046ICdzZWN0aW9uJyxcclxuICAgIFNFTEVDVDogJ3NlbGVjdCcsXHJcbiAgICBTT1VSQ0U6ICdzb3VyY2UnLFxyXG4gICAgU01BTEw6ICdzbWFsbCcsXHJcbiAgICBTUEFOOiAnc3BhbicsXHJcbiAgICBTVFJJS0U6ICdzdHJpa2UnLFxyXG4gICAgU1RST05HOiAnc3Ryb25nJyxcclxuICAgIFNUWUxFOiAnc3R5bGUnLFxyXG4gICAgU1VCOiAnc3ViJyxcclxuICAgIFNVTU1BUlk6ICdzdW1tYXJ5JyxcclxuICAgIFNVUDogJ3N1cCcsXHJcblxyXG4gICAgVEFCTEU6ICd0YWJsZScsXHJcbiAgICBUQk9EWTogJ3Rib2R5JyxcclxuICAgIFRFTVBMQVRFOiAndGVtcGxhdGUnLFxyXG4gICAgVEVYVEFSRUE6ICd0ZXh0YXJlYScsXHJcbiAgICBURk9PVDogJ3Rmb290JyxcclxuICAgIFREOiAndGQnLFxyXG4gICAgVEg6ICd0aCcsXHJcbiAgICBUSEVBRDogJ3RoZWFkJyxcclxuICAgIFRJVExFOiAndGl0bGUnLFxyXG4gICAgVFI6ICd0cicsXHJcbiAgICBUUkFDSzogJ3RyYWNrJyxcclxuICAgIFRUOiAndHQnLFxyXG5cclxuICAgIFU6ICd1JyxcclxuICAgIFVMOiAndWwnLFxyXG5cclxuICAgIFNWRzogJ3N2ZycsXHJcblxyXG4gICAgVkFSOiAndmFyJyxcclxuXHJcbiAgICBXQlI6ICd3YnInLFxyXG5cclxuICAgIFhNUDogJ3htcCdcclxufTtcclxuXHJcbnZhciBTUEVDSUFMX0VMRU1FTlRTID0gZXhwb3J0cy5TUEVDSUFMX0VMRU1FTlRTID0ge307XHJcblxyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdID0ge307XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BRERSRVNTXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5BUFBMRVRdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFSRUFdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFSVElDTEVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkFTSURFXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CQVNFXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5CQVNFRk9OVF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQkdTT1VORF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQkxPQ0tRVU9URV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQk9EWV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQlJdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkJVVFRPTl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQ0FQVElPTl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuQ0VOVEVSXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5DT0xdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkNPTEdST1VQXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5ERF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuREVUQUlMU10gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRElSXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5ESVZdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkRMXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5EVF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRU1CRURdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZJRUxEU0VUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5GSUdDQVBUSU9OXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5GSUdVUkVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZPT1RFUl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRk9STV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuRlJBTUVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkZSQU1FU0VUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IMV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDJdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkgzXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5INF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSDVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkg2XSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IRUFEXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5IRUFERVJdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkhHUk9VUF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSFJdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkhUTUxdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLklGUkFNRV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuSU1HXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5JTlBVVF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTEldID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkxJTktdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLkxJU1RJTkddID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1BSU5dID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1BUlFVRUVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1FTlVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk1FVEFdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5BVl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTk9FTUJFRF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuTk9GUkFNRVNdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk5PU0NSSVBUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5PQkpFQ1RdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLk9MXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QQVJBTV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuUExBSU5URVhUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5QUkVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlNDUklQVF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0VDVElPTl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuU0VMRUNUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TT1VSQ0VdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlNUWUxFXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5TVU1NQVJZXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UQUJMRV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEJPRFldID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlREXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5URU1QTEFURV0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEVYVEFSRUFdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRGT09UXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5USF0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVEhFQURdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlRJVExFXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5UUl0gPSB0cnVlO1xyXG5TUEVDSUFMX0VMRU1FTlRTW05TLkhUTUxdWyQuVFJBQ0tdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlVMXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuSFRNTF1bJC5XQlJdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5IVE1MXVskLlhNUF0gPSB0cnVlO1xyXG5cclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5NQVRITUxdID0ge307XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1JXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1PXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1OXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1TXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLk1URVhUXSA9IHRydWU7XHJcblNQRUNJQUxfRUxFTUVOVFNbTlMuTUFUSE1MXVskLkFOTk9UQVRJT05fWE1MXSA9IHRydWU7XHJcblxyXG5TUEVDSUFMX0VMRU1FTlRTW05TLlNWR10gPSB7fTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuVElUTEVdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuRk9SRUlHTl9PQkpFQ1RdID0gdHJ1ZTtcclxuU1BFQ0lBTF9FTEVNRU5UU1tOUy5TVkddWyQuREVTQ10gPSB0cnVlO1xyXG4iLCIndXNlIHN0cmljdCc7XHJcblxyXG52YXIgSFRNTCA9IHJlcXVpcmUoJy4uL2NvbW1vbi9odG1sJyk7XHJcblxyXG4vL0FsaWFzZXNcclxudmFyICQgPSBIVE1MLlRBR19OQU1FUyxcclxuICAgIE5TID0gSFRNTC5OQU1FU1BBQ0VTO1xyXG5cclxuLy9FbGVtZW50IHV0aWxzXHJcblxyXG4vL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuXHJcbi8vSXQncyBmYXN0ZXIgdGhhbiB1c2luZyBkaWN0aW9uYXJ5LlxyXG5mdW5jdGlvbiBpc0ltcGxpZWRFbmRUYWdSZXF1aXJlZCh0bikge1xyXG4gICAgc3dpdGNoICh0bi5sZW5ndGgpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5QO1xyXG5cclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5SQiB8fCB0biA9PT0gJC5SUCB8fCB0biA9PT0gJC5SVCB8fCB0biA9PT0gJC5ERCB8fCB0biA9PT0gJC5EVCB8fCB0biA9PT0gJC5MSTtcclxuXHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICByZXR1cm4gdG4gPT09ICQuUlRDO1xyXG5cclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5PUFRJT047XHJcblxyXG4gICAgICAgIGNhc2UgODpcclxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLk9QVEdST1VQIHx8IHRuID09PSAkLk1FTlVJVEVNO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNTY29waW5nRWxlbWVudCh0biwgbnMpIHtcclxuICAgIHN3aXRjaCAodG4ubGVuZ3RoKSB7XHJcbiAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NSSB8fCB0biA9PT0gJC5NTyB8fCB0biA9PT0gJC5NTiB8fCB0biA9PT0gJC5NUylcclxuICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgNDpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkhUTUwpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5ERVNDKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5zID09PSBOUy5TVkc7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSA1OlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuVEFCTEUpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLkhUTUw7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NVEVYVClcclxuICAgICAgICAgICAgICAgIHJldHVybiBucyA9PT0gTlMuTUFUSE1MO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVElUTEUpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnMgPT09IE5TLlNWRztcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIHJldHVybiAodG4gPT09ICQuQVBQTEVUIHx8IHRuID09PSAkLk9CSkVDVCkgJiYgbnMgPT09IE5TLkhUTUw7XHJcblxyXG4gICAgICAgIGNhc2UgNzpcclxuICAgICAgICAgICAgcmV0dXJuICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLk1BUlFVRUUpICYmIG5zID09PSBOUy5IVE1MO1xyXG5cclxuICAgICAgICBjYXNlIDg6XHJcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTDtcclxuXHJcbiAgICAgICAgY2FzZSAxMzpcclxuICAgICAgICAgICAgcmV0dXJuIHRuID09PSAkLkZPUkVJR05fT0JKRUNUICYmIG5zID09PSBOUy5TVkc7XHJcblxyXG4gICAgICAgIGNhc2UgMTQ6XHJcbiAgICAgICAgICAgIHJldHVybiB0biA9PT0gJC5BTk5PVEFUSU9OX1hNTCAmJiBucyA9PT0gTlMuTUFUSE1MO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy9TdGFjayBvZiBvcGVuIGVsZW1lbnRzXHJcbnZhciBPcGVuRWxlbWVudFN0YWNrID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIHRyZWVBZGFwdGVyKSB7XHJcbiAgICB0aGlzLnN0YWNrVG9wID0gLTE7XHJcbiAgICB0aGlzLml0ZW1zID0gW107XHJcbiAgICB0aGlzLmN1cnJlbnQgPSBkb2N1bWVudDtcclxuICAgIHRoaXMuY3VycmVudFRhZ05hbWUgPSBudWxsO1xyXG4gICAgdGhpcy5jdXJyZW50VG1wbENvbnRlbnQgPSBudWxsO1xyXG4gICAgdGhpcy50bXBsQ291bnQgPSAwO1xyXG4gICAgdGhpcy50cmVlQWRhcHRlciA9IHRyZWVBZGFwdGVyO1xyXG59O1xyXG5cclxuLy9JbmRleCBvZiBlbGVtZW50XHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl9pbmRleE9mID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgIHZhciBpZHggPSAtMTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtc1tpXSA9PT0gZWxlbWVudCkge1xyXG4gICAgICAgICAgICBpZHggPSBpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaWR4O1xyXG59O1xyXG5cclxuLy9VcGRhdGUgY3VycmVudCBlbGVtZW50XHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLl9pc0luVGVtcGxhdGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VGFnTmFtZSA9PT0gJC5URU1QTEFURSAmJiB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpID09PSBOUy5IVE1MO1xyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuX3VwZGF0ZUN1cnJlbnRFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy5jdXJyZW50ID0gdGhpcy5pdGVtc1t0aGlzLnN0YWNrVG9wXTtcclxuICAgIHRoaXMuY3VycmVudFRhZ05hbWUgPSB0aGlzLmN1cnJlbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuY3VycmVudCk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50VG1wbENvbnRlbnQgPSB0aGlzLl9pc0luVGVtcGxhdGUoKSA/IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGVtcGxhdGVDb250ZW50KHRoaXMuY3VycmVudCkgOiBudWxsO1xyXG59O1xyXG5cclxuLy9NdXRhdGlvbnNcclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB0aGlzLml0ZW1zWysrdGhpcy5zdGFja1RvcF0gPSBlbGVtZW50O1xyXG4gICAgdGhpcy5fdXBkYXRlQ3VycmVudEVsZW1lbnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5faXNJblRlbXBsYXRlKCkpXHJcbiAgICAgICAgdGhpcy50bXBsQ291bnQrKztcclxuXHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLnN0YWNrVG9wLS07XHJcblxyXG4gICAgaWYgKHRoaXMudG1wbENvdW50ID4gMCAmJiB0aGlzLl9pc0luVGVtcGxhdGUoKSlcclxuICAgICAgICB0aGlzLnRtcGxDb3VudC0tO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5yZXBsYWNlID0gZnVuY3Rpb24gKG9sZEVsZW1lbnQsIG5ld0VsZW1lbnQpIHtcclxuICAgIHZhciBpZHggPSB0aGlzLl9pbmRleE9mKG9sZEVsZW1lbnQpO1xyXG5cclxuICAgIHRoaXMuaXRlbXNbaWR4XSA9IG5ld0VsZW1lbnQ7XHJcblxyXG4gICAgaWYgKGlkeCA9PT0gdGhpcy5zdGFja1RvcClcclxuICAgICAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaW5zZXJ0QWZ0ZXIgPSBmdW5jdGlvbiAocmVmZXJlbmNlRWxlbWVudCwgbmV3RWxlbWVudCkge1xyXG4gICAgdmFyIGluc2VydGlvbklkeCA9IHRoaXMuX2luZGV4T2YocmVmZXJlbmNlRWxlbWVudCkgKyAxO1xyXG5cclxuICAgIHRoaXMuaXRlbXMuc3BsaWNlKGluc2VydGlvbklkeCwgMCwgbmV3RWxlbWVudCk7XHJcblxyXG4gICAgaWYgKGluc2VydGlvbklkeCA9PT0gKyt0aGlzLnN0YWNrVG9wKVxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BVbnRpbFRhZ05hbWVQb3BwZWQgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xyXG4gICAgd2hpbGUgKHRoaXMuc3RhY2tUb3AgPiAtMSkge1xyXG4gICAgICAgIHZhciB0biA9IHRoaXMuY3VycmVudFRhZ05hbWUsXHJcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KTtcclxuXHJcbiAgICAgICAgdGhpcy5wb3AoKTtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lICYmIG5zID09PSBOUy5IVE1MKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcFVudGlsRWxlbWVudFBvcHBlZCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7XHJcbiAgICAgICAgdmFyIHBvcHBlZEVsZW1lbnQgPSB0aGlzLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMucG9wKCk7XHJcblxyXG4gICAgICAgIGlmIChwb3BwZWRFbGVtZW50ID09PSBlbGVtZW50KVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7XHJcbiAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZSxcclxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpO1xyXG5cclxuICAgICAgICB0aGlzLnBvcCgpO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09ICQuSDEgfHwgdG4gPT09ICQuSDIgfHwgdG4gPT09ICQuSDMgfHwgdG4gPT09ICQuSDQgfHwgdG4gPT09ICQuSDUgfHwgdG4gPT09ICQuSDYgJiYgbnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucG9wVW50aWxUYWJsZUNlbGxQb3BwZWQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5zdGFja1RvcCA+IC0xKSB7XHJcbiAgICAgICAgdmFyIHRuID0gdGhpcy5jdXJyZW50VGFnTmFtZSxcclxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpO1xyXG5cclxuICAgICAgICB0aGlzLnBvcCgpO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEggJiYgbnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucG9wQWxsVXBUb0h0bWxFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgLy9OT1RFOiBoZXJlIHdlIGFzc3VtZSB0aGF0IHJvb3QgPGh0bWw+IGVsZW1lbnQgaXMgYWx3YXlzIGZpcnN0IGluIHRoZSBvcGVuIGVsZW1lbnQgc3RhY2ssIHNvXHJcbiAgICAvL3dlIHBlcmZvcm0gdGhpcyBmYXN0IHN0YWNrIGNsZWFuIHVwLlxyXG4gICAgdGhpcy5zdGFja1RvcCA9IDA7XHJcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50RWxlbWVudCgpO1xyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQUJMRSAmJlxyXG4gICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEVNUExBVEUgJiZcclxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkhUTUwgfHxcclxuICAgICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLmN1cnJlbnQpICE9PSBOUy5IVE1MKVxyXG4gICAgICAgIHRoaXMucG9wKCk7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5UQk9EWSAmJlxyXG4gICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVEZPT1QgJiZcclxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRIRUFEICYmXHJcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5URU1QTEFURSAmJlxyXG4gICAgICAgICAgIHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuSFRNTCB8fFxyXG4gICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuY3VycmVudCkgIT09IE5TLkhUTUwpXHJcbiAgICAgICAgdGhpcy5wb3AoKTtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgd2hpbGUgKHRoaXMuY3VycmVudFRhZ05hbWUgIT09ICQuVFIgJiZcclxuICAgICAgICAgICB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSAkLlRFTVBMQVRFICYmXHJcbiAgICAgICAgICAgdGhpcy5jdXJyZW50VGFnTmFtZSAhPT0gJC5IVE1MIHx8XHJcbiAgICAgICAgICAgdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5jdXJyZW50KSAhPT0gTlMuSFRNTClcclxuICAgICAgICB0aGlzLnBvcCgpO1xyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1zW2ldID09PSBlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB0aGlzLnN0YWNrVG9wLS07XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRFbGVtZW50KCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbi8vU2VhcmNoXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgLy9Qcm9wZXJseSBuZXN0ZWQgPGJvZHk+IGVsZW1lbnQgKHNob3VsZCBiZSBzZWNvbmQgZWxlbWVudCBpbiBzdGFjaykuXHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXMuaXRlbXNbMV07XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQgJiYgdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpID09PSAkLkJPRFkgPyBlbGVtZW50IDogbnVsbDtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRleE9mKGVsZW1lbnQpID4gLTE7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5nZXRDb21tb25BbmNlc3RvciA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB2YXIgZWxlbWVudElkeCA9IHRoaXMuX2luZGV4T2YoZWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIC0tZWxlbWVudElkeCA+PSAwID8gdGhpcy5pdGVtc1tlbGVtZW50SWR4XSA6IG51bGw7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lID09PSAkLkhUTUw7XHJcbn07XHJcblxyXG4vL0VsZW1lbnQgaW4gc2NvcGVcclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5TY29wZSA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7XHJcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSksXHJcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XHJcblxyXG4gICAgICAgIGlmICh0biA9PT0gdGFnTmFtZSAmJiBucyA9PT0gTlMuSFRNTClcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgIGlmIChpc1Njb3BpbmdFbGVtZW50KHRuLCBucykpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc051bWJlcmVkSGVhZGVySW5TY29wZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKSxcclxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcclxuXHJcbiAgICAgICAgaWYgKCh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INikgJiYgbnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoaXNTY29waW5nRWxlbWVudCh0biwgbnMpKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJbkxpc3RJdGVtU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pLFxyXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoKHRuID09PSAkLlVMIHx8IHRuID09PSAkLk9MKSAmJiBucyA9PT0gTlMuSFRNTCB8fCBpc1Njb3BpbmdFbGVtZW50KHRuLCBucykpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc0luQnV0dG9uU2NvcGUgPSBmdW5jdGlvbiAodGFnTmFtZSkge1xyXG4gICAgZm9yICh2YXIgaSA9IHRoaXMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuaXRlbXNbaV0pLFxyXG4gICAgICAgICAgICBucyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHRoaXMuaXRlbXNbaV0pO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09IHRhZ05hbWUgJiYgbnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09ICQuQlVUVE9OICYmIG5zID09PSBOUy5IVE1MIHx8IGlzU2NvcGluZ0VsZW1lbnQodG4sIG5zKSlcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59O1xyXG5cclxuT3BlbkVsZW1lbnRTdGFjay5wcm90b3R5cGUuaGFzSW5UYWJsZVNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKSxcclxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcclxuXHJcbiAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLkhUTUwpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmhhc1RhYmxlQm9keUNvbnRleHRJblRhYmxlU2NvcGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUodGhpcy5pdGVtc1tpXSksXHJcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5pdGVtc1tpXSk7XHJcblxyXG4gICAgICAgIGlmIChucyAhPT0gTlMuSFRNTClcclxuICAgICAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICAgIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5URk9PVClcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgIGlmICh0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbn07XHJcblxyXG5PcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5oYXNJblNlbGVjdFNjb3BlID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIHZhciB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZSh0aGlzLml0ZW1zW2ldKSxcclxuICAgICAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSSh0aGlzLml0ZW1zW2ldKTtcclxuXHJcbiAgICAgICAgaWYgKG5zICE9PSBOUy5IVE1MKVxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSB0YWdOYW1lKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRuICE9PSAkLk9QVElPTiAmJiB0biAhPT0gJC5PUFRHUk9VUClcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG59O1xyXG5cclxuLy9JbXBsaWVkIGVuZCB0YWdzXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAoaXNJbXBsaWVkRW5kVGFnUmVxdWlyZWQodGhpcy5jdXJyZW50VGFnTmFtZSkpXHJcbiAgICAgICAgdGhpcy5wb3AoKTtcclxufTtcclxuXHJcbk9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uID0gZnVuY3Rpb24gKGV4Y2x1c2lvblRhZ05hbWUpIHtcclxuICAgIHdoaWxlIChpc0ltcGxpZWRFbmRUYWdSZXF1aXJlZCh0aGlzLmN1cnJlbnRUYWdOYW1lKSAmJiB0aGlzLmN1cnJlbnRUYWdOYW1lICE9PSBleGNsdXNpb25UYWdOYW1lKVxyXG4gICAgICAgIHRoaXMucG9wKCk7XHJcbn07XHJcbiIsIid1c2Ugc3RyaWN0JztcclxuXHJcbi8vQ29uc3RcclxudmFyIE5PQUhfQVJLX0NBUEFDSVRZID0gMztcclxuXHJcbi8vTGlzdCBvZiBmb3JtYXR0aW5nIGVsZW1lbnRzXHJcbnZhciBGb3JtYXR0aW5nRWxlbWVudExpc3QgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0cmVlQWRhcHRlcikge1xyXG4gICAgdGhpcy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5lbnRyaWVzID0gW107XHJcbiAgICB0aGlzLnRyZWVBZGFwdGVyID0gdHJlZUFkYXB0ZXI7XHJcbiAgICB0aGlzLmJvb2ttYXJrID0gbnVsbDtcclxufTtcclxuXHJcbi8vRW50cnkgdHlwZXNcclxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSA9ICdNQVJLRVJfRU5UUlknO1xyXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QuRUxFTUVOVF9FTlRSWSA9ICdFTEVNRU5UX0VOVFJZJztcclxuXHJcbi8vTm9haCBBcmsncyBjb25kaXRpb25cclxuLy9PUFRJTUlaQVRJT046IGF0IGZpcnN0IHdlIHRyeSB0byBmaW5kIHBvc3NpYmxlIGNhbmRpZGF0ZXMgZm9yIGV4Y2x1c2lvbiB1c2luZ1xyXG4vL2xpZ2h0d2VpZ2h0IGhldXJpc3RpY3Mgd2l0aG91dCB0aG9yb3VnaCBhdHRyaWJ1dGVzIGNoZWNrLlxyXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLl9nZXROb2FoQXJrQ29uZGl0aW9uQ2FuZGlkYXRlcyA9IGZ1bmN0aW9uIChuZXdFbGVtZW50KSB7XHJcbiAgICB2YXIgY2FuZGlkYXRlcyA9IFtdO1xyXG5cclxuICAgIGlmICh0aGlzLmxlbmd0aCA+PSBOT0FIX0FSS19DQVBBQ0lUWSkge1xyXG4gICAgICAgIHZhciBuZUF0dHJzTGVuZ3RoID0gdGhpcy50cmVlQWRhcHRlci5nZXRBdHRyTGlzdChuZXdFbGVtZW50KS5sZW5ndGgsXHJcbiAgICAgICAgICAgIG5lVGFnTmFtZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShuZXdFbGVtZW50KSxcclxuICAgICAgICAgICAgbmVOYW1lc3BhY2VVUkkgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShuZXdFbGVtZW50KTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZW50cnkuZWxlbWVudCxcclxuICAgICAgICAgICAgICAgIGVsZW1lbnRBdHRycyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0QXR0ckxpc3QoZWxlbWVudCksXHJcbiAgICAgICAgICAgICAgICBpc0NhbmRpZGF0ZSA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gbmVUYWdOYW1lICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBuZU5hbWVzcGFjZVVSSSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50QXR0cnMubGVuZ3RoID09PSBuZUF0dHJzTGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgaWYgKGlzQ2FuZGlkYXRlKVxyXG4gICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5wdXNoKHtpZHg6IGksIGF0dHJzOiBlbGVtZW50QXR0cnN9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkgPyBbXSA6IGNhbmRpZGF0ZXM7XHJcbn07XHJcblxyXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLl9lbnN1cmVOb2FoQXJrQ29uZGl0aW9uID0gZnVuY3Rpb24gKG5ld0VsZW1lbnQpIHtcclxuICAgIHZhciBjYW5kaWRhdGVzID0gdGhpcy5fZ2V0Tm9haEFya0NvbmRpdGlvbkNhbmRpZGF0ZXMobmV3RWxlbWVudCksXHJcbiAgICAgICAgY0xlbmd0aCA9IGNhbmRpZGF0ZXMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChjTGVuZ3RoKSB7XHJcbiAgICAgICAgdmFyIG5lQXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KG5ld0VsZW1lbnQpLFxyXG4gICAgICAgICAgICBuZUF0dHJzTGVuZ3RoID0gbmVBdHRycy5sZW5ndGgsXHJcbiAgICAgICAgICAgIG5lQXR0cnNNYXAgPSB7fTtcclxuXHJcbiAgICAgICAgLy9OT1RFOiBidWlsZCBhdHRycyBtYXAgZm9yIHRoZSBuZXcgZWxlbWVudCBzbyB3ZSBjYW4gcGVyZm9ybSBmYXN0IGxvb2t1cHNcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5lQXR0cnNMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgbmVBdHRyID0gbmVBdHRyc1tpXTtcclxuXHJcbiAgICAgICAgICAgIG5lQXR0cnNNYXBbbmVBdHRyLm5hbWVdID0gbmVBdHRyLnZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5lQXR0cnNMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNMZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIGNBdHRyID0gY2FuZGlkYXRlc1tqXS5hdHRyc1tpXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobmVBdHRyc01hcFtjQXR0ci5uYW1lXSAhPT0gY0F0dHIudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICBjTGVuZ3RoLS07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZXMubGVuZ3RoIDwgTk9BSF9BUktfQ0FQQUNJVFkpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL05PVEU6IHJlbW92ZSBib3R0b21tb3N0IGNhbmRpZGF0ZXMgdW50aWwgTm9haCdzIEFyayBjb25kaXRpb24gd2lsbCBub3QgYmUgbWV0XHJcbiAgICAgICAgZm9yIChpID0gY0xlbmd0aCAtIDE7IGkgPj0gTk9BSF9BUktfQ0FQQUNJVFkgLSAxOyBpLS0pIHtcclxuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnNwbGljZShjYW5kaWRhdGVzW2ldLmlkeCwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoLS07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuLy9NdXRhdGlvbnNcclxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5pbnNlcnRNYXJrZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLmVudHJpZXMucHVzaCh7dHlwZTogRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWX0pO1xyXG4gICAgdGhpcy5sZW5ndGgrKztcclxufTtcclxuXHJcbkZvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUucHVzaEVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCwgdG9rZW4pIHtcclxuICAgIHRoaXMuX2Vuc3VyZU5vYWhBcmtDb25kaXRpb24oZWxlbWVudCk7XHJcblxyXG4gICAgdGhpcy5lbnRyaWVzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5FTEVNRU5UX0VOVFJZLFxyXG4gICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXHJcbiAgICAgICAgdG9rZW46IHRva2VuXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxlbmd0aCsrO1xyXG59O1xyXG5cclxuRm9ybWF0dGluZ0VsZW1lbnRMaXN0LnByb3RvdHlwZS5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayA9IGZ1bmN0aW9uIChlbGVtZW50LCB0b2tlbikge1xyXG4gICAgdmFyIGJvb2ttYXJrSWR4ID0gdGhpcy5sZW5ndGggLSAxO1xyXG5cclxuICAgIGZvciAoOyBib29rbWFya0lkeCA+PSAwOyBib29rbWFya0lkeC0tKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW50cmllc1tib29rbWFya0lkeF0gPT09IHRoaXMuYm9va21hcmspXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZW50cmllcy5zcGxpY2UoYm9va21hcmtJZHggKyAxLCAwLCB7XHJcbiAgICAgICAgdHlwZTogRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlksXHJcbiAgICAgICAgZWxlbWVudDogZWxlbWVudCxcclxuICAgICAgICB0b2tlbjogdG9rZW5cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubGVuZ3RoKys7XHJcbn07XHJcblxyXG5Gb3JtYXR0aW5nRWxlbWVudExpc3QucHJvdG90eXBlLnJlbW92ZUVudHJ5ID0gZnVuY3Rpb24gKGVudHJ5KSB7XHJcbiAgICBmb3IgKHZhciBpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIGlmICh0aGlzLmVudHJpZXNbaV0gPT09IGVudHJ5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoLS07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbkZvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuY2xlYXJUb0xhc3RNYXJrZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB3aGlsZSAodGhpcy5sZW5ndGgpIHtcclxuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLmVudHJpZXMucG9wKCk7XHJcblxyXG4gICAgICAgIHRoaXMubGVuZ3RoLS07XHJcblxyXG4gICAgICAgIGlmIChlbnRyeS50eXBlID09PSBGb3JtYXR0aW5nRWxlbWVudExpc3QuTUFSS0VSX0VOVFJZKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxufTtcclxuXHJcbi8vU2VhcmNoXHJcbkZvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lID0gZnVuY3Rpb24gKHRhZ05hbWUpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xyXG5cclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0Lk1BUktFUl9FTlRSWSlcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZW50cnkuZWxlbWVudCkgPT09IHRhZ05hbWUpXHJcbiAgICAgICAgICAgIHJldHVybiBlbnRyeTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxufTtcclxuXHJcbkZvcm1hdHRpbmdFbGVtZW50TGlzdC5wcm90b3R5cGUuZ2V0RWxlbWVudEVudHJ5ID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgIGZvciAodmFyIGkgPSB0aGlzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW2ldO1xyXG5cclxuICAgICAgICBpZiAoZW50cnkudHlwZSA9PT0gRm9ybWF0dGluZ0VsZW1lbnRMaXN0LkVMRU1FTlRfRU5UUlkgJiYgZW50cnkuZWxlbWVudCA9PT0gZWxlbWVudClcclxuICAgICAgICAgICAgcmV0dXJuIGVudHJ5O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG59O1xyXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBPcGVuRWxlbWVudFN0YWNrID0gcmVxdWlyZSgnLi4vcGFyc2VyL29wZW5fZWxlbWVudF9zdGFjaycpLFxuICAgIFRva2VuaXplciA9IHJlcXVpcmUoJy4uL3Rva2VuaXplcicpLFxuICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpO1xuXG5cbi8vQWxpYXNlc1xudmFyICQgPSBIVE1MLlRBR19OQU1FUztcblxuXG5mdW5jdGlvbiBzZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjbG9zaW5nVG9rZW4sIHRyZWVBZGFwdGVyKSB7XG4gICAgdmFyIGxvYyA9IGVsZW1lbnQuX19sb2NhdGlvbjtcblxuICAgIGlmICghbG9jKVxuICAgICAgICByZXR1cm47XG5cbiAgICAvKipcbiAgICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBFbGVtZW50TG9jYXRpb25JbmZvXG4gICAgICogQGV4dGVuZHMgU3RhcnRUYWdMb2NhdGlvbkluZm9cbiAgICAgKlxuICAgICAqIEBwcm9wZXJ0eSB7U3RhcnRUYWdMb2NhdGlvbkluZm99IHN0YXJ0VGFnIC0gRWxlbWVudCdzIHN0YXJ0IHRhZyBsb2NhdGlvbiBpbmZvLlxuICAgICAqIEBwcm9wZXJ0eSB7TG9jYXRpb25JbmZvfSBlbmRUYWcgLSBFbGVtZW50J3MgZW5kIHRhZyBsb2NhdGlvbiBpbmZvLlxuICAgICAqL1xuICAgIGlmICghbG9jLnN0YXJ0VGFnKSB7XG4gICAgICAgIGxvYy5zdGFydFRhZyA9IHtcbiAgICAgICAgICAgIGxpbmU6IGxvYy5saW5lLFxuICAgICAgICAgICAgY29sOiBsb2MuY29sLFxuICAgICAgICAgICAgc3RhcnRPZmZzZXQ6IGxvYy5zdGFydE9mZnNldCxcbiAgICAgICAgICAgIGVuZE9mZnNldDogbG9jLmVuZE9mZnNldFxuICAgICAgICB9O1xuICAgICAgICBpZiAobG9jLmF0dHJzKVxuICAgICAgICAgICAgbG9jLnN0YXJ0VGFnLmF0dHJzID0gbG9jLmF0dHJzO1xuICAgIH1cblxuICAgIGlmIChjbG9zaW5nVG9rZW4ubG9jYXRpb24pIHtcbiAgICAgICAgdmFyIGN0TG9jYXRpb24gPSBjbG9zaW5nVG9rZW4ubG9jYXRpb24sXG4gICAgICAgICAgICB0biA9IHRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksXG4gICAgICAgIC8vIE5PVEU6IEZvciBjYXNlcyBsaWtlIDxwPiA8cD4gPC9wPiAtIEZpcnN0ICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmcgdGFnIGFuZFxuICAgICAgICAvLyBmb3IgY2FzZXMgbGlrZSA8dGQ+IDxwPiA8L3RkPiAtICdwJyBjbG9zZXMgd2l0aG91dCBhIGNsb3NpbmcgdGFnXG4gICAgICAgICAgICBpc0Nsb3NpbmdFbmRUYWcgPSBjbG9zaW5nVG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRuID09PSBjbG9zaW5nVG9rZW4udGFnTmFtZTtcblxuICAgICAgICBpZiAoaXNDbG9zaW5nRW5kVGFnKSB7XG4gICAgICAgICAgICBsb2MuZW5kVGFnID0ge1xuICAgICAgICAgICAgICAgIGxpbmU6IGN0TG9jYXRpb24ubGluZSxcbiAgICAgICAgICAgICAgICBjb2w6IGN0TG9jYXRpb24uY29sLFxuICAgICAgICAgICAgICAgIHN0YXJ0T2Zmc2V0OiBjdExvY2F0aW9uLnN0YXJ0T2Zmc2V0LFxuICAgICAgICAgICAgICAgIGVuZE9mZnNldDogY3RMb2NhdGlvbi5lbmRPZmZzZXRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNDbG9zaW5nRW5kVGFnKVxuICAgICAgICAgICAgbG9jLmVuZE9mZnNldCA9IGN0TG9jYXRpb24uZW5kT2Zmc2V0O1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBsb2MuZW5kT2Zmc2V0ID0gY3RMb2NhdGlvbi5zdGFydE9mZnNldDtcbiAgICB9XG59XG5cblxuZXhwb3J0cy5hc3NpZ24gPSBmdW5jdGlvbiAocGFyc2VyKSB7XG4gICAgLy9OT1RFOiBvYnRhaW4gUGFyc2VyIHByb3RvIHRoaXMgd2F5IHRvIGF2b2lkIG1vZHVsZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgdmFyIHBhcnNlclByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHBhcnNlciksXG4gICAgICAgIHRyZWVBZGFwdGVyID0gcGFyc2VyLnRyZWVBZGFwdGVyLFxuICAgICAgICBhdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gbnVsbCxcbiAgICAgICAgbGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uID0gbnVsbCxcbiAgICAgICAgY3VycmVudFRva2VuID0gbnVsbDtcblxuXG4gICAgLy9OT1RFOiBwYXRjaCBfYm9vdHN0cmFwIG1ldGhvZFxuICAgIHBhcnNlci5fYm9vdHN0cmFwID0gZnVuY3Rpb24gKGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpIHtcbiAgICAgICAgcGFyc2VyUHJvdG8uX2Jvb3RzdHJhcC5jYWxsKHRoaXMsIGRvY3VtZW50LCBmcmFnbWVudENvbnRleHQpO1xuXG4gICAgICAgIGF0dGFjaGFibGVFbGVtZW50TG9jYXRpb24gPSBudWxsO1xuICAgICAgICBsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBudWxsO1xuICAgICAgICBjdXJyZW50VG9rZW4gPSBudWxsO1xuXG4gICAgICAgIC8vT3BlbkVsZW1lbnRTdGFja1xuICAgICAgICBwYXJzZXIub3BlbkVsZW1lbnRzLnBvcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNldEVuZExvY2F0aW9uKHRoaXMuY3VycmVudCwgY3VycmVudFRva2VuLCB0cmVlQWRhcHRlcik7XG4gICAgICAgICAgICBPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3AuY2FsbCh0aGlzKTtcbiAgICAgICAgfTtcblxuICAgICAgICBwYXJzZXIub3BlbkVsZW1lbnRzLnBvcEFsbFVwVG9IdG1sRWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLnN0YWNrVG9wOyBpID4gMDsgaS0tKVxuICAgICAgICAgICAgICAgIHNldEVuZExvY2F0aW9uKHRoaXMuaXRlbXNbaV0sIGN1cnJlbnRUb2tlbiwgdHJlZUFkYXB0ZXIpO1xuXG4gICAgICAgICAgICBPcGVuRWxlbWVudFN0YWNrLnByb3RvdHlwZS5wb3BBbGxVcFRvSHRtbEVsZW1lbnQuY2FsbCh0aGlzKTtcbiAgICAgICAgfTtcblxuICAgICAgICBwYXJzZXIub3BlbkVsZW1lbnRzLnJlbW92ZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgICBzZXRFbmRMb2NhdGlvbihlbGVtZW50LCBjdXJyZW50VG9rZW4sIHRyZWVBZGFwdGVyKTtcbiAgICAgICAgICAgIE9wZW5FbGVtZW50U3RhY2sucHJvdG90eXBlLnJlbW92ZS5jYWxsKHRoaXMsIGVsZW1lbnQpO1xuICAgICAgICB9O1xuICAgIH07XG5cblxuICAgIC8vVG9rZW4gcHJvY2Vzc2luZ1xuICAgIHBhcnNlci5fcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICBjdXJyZW50VG9rZW4gPSB0b2tlbjtcbiAgICAgICAgcGFyc2VyUHJvdG8uX3Byb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQuY2FsbCh0aGlzLCB0b2tlbik7XG4gICAgfTtcblxuICAgIHBhcnNlci5fcHJvY2Vzc1Rva2VuID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICAgIGN1cnJlbnRUb2tlbiA9IHRva2VuO1xuICAgICAgICBwYXJzZXJQcm90by5fcHJvY2Vzc1Rva2VuLmNhbGwodGhpcywgdG9rZW4pO1xuXG4gICAgICAgIC8vTk9URTogPGJvZHk+IGFuZCA8aHRtbD4gYXJlIG5ldmVyIHBvcHBlZCBmcm9tIHRoZSBzdGFjaywgc28gd2UgbmVlZCB0byB1cGRhdGVkXG4gICAgICAgIC8vdGhlaXIgZW5kIGxvY2F0aW9uIGV4cGxpY2l0bHkuXG4gICAgICAgIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuRU5EX1RBR19UT0tFTiAmJlxuICAgICAgICAgICAgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTCB8fFxuICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgPT09ICQuQk9EWSAmJiB0aGlzLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCkgPT09IHRva2VuLnRhZ05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0RW5kTG9jYXRpb24oZWxlbWVudCwgdG9rZW4sIHRyZWVBZGFwdGVyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuXG4gICAgLy9Eb2N0eXBlXG4gICAgcGFyc2VyLl9zZXREb2N1bWVudFR5cGUgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgcGFyc2VyUHJvdG8uX3NldERvY3VtZW50VHlwZS5jYWxsKHRoaXMsIHRva2VuKTtcblxuICAgICAgICB2YXIgZG9jdW1lbnRDaGlsZHJlbiA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2Rlcyh0aGlzLmRvY3VtZW50KSxcbiAgICAgICAgICAgIGNuTGVuZ3RoID0gZG9jdW1lbnRDaGlsZHJlbi5sZW5ndGg7XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbkxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgbm9kZSA9IGRvY3VtZW50Q2hpbGRyZW5baV07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmlzRG9jdW1lbnRUeXBlTm9kZShub2RlKSkge1xuICAgICAgICAgICAgICAgIG5vZGUuX19sb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuXG4gICAgLy9FbGVtZW50c1xuICAgIHBhcnNlci5fYXR0YWNoRWxlbWVudFRvVHJlZSA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgIC8vTk9URTogX2F0dGFjaEVsZW1lbnRUb1RyZWUgaXMgY2FsbGVkIGZyb20gX2FwcGVuZEVsZW1lbnQsIF9pbnNlcnRFbGVtZW50IGFuZCBfaW5zZXJ0VGVtcGxhdGUgbWV0aG9kcy5cbiAgICAgICAgLy9TbyB3ZSB3aWxsIHVzZSB0b2tlbiBsb2NhdGlvbiBzdG9yZWQgaW4gdGhpcyBtZXRob2RzIGZvciB0aGUgZWxlbWVudC5cbiAgICAgICAgZWxlbWVudC5fX2xvY2F0aW9uID0gYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiB8fCBudWxsO1xuICAgICAgICBhdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gbnVsbDtcbiAgICAgICAgcGFyc2VyUHJvdG8uX2F0dGFjaEVsZW1lbnRUb1RyZWUuY2FsbCh0aGlzLCBlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcGFyc2VyLl9hcHBlbmRFbGVtZW50ID0gZnVuY3Rpb24gKHRva2VuLCBuYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICBwYXJzZXJQcm90by5fYXBwZW5kRWxlbWVudC5jYWxsKHRoaXMsIHRva2VuLCBuYW1lc3BhY2VVUkkpO1xuICAgIH07XG5cbiAgICBwYXJzZXIuX2luc2VydEVsZW1lbnQgPSBmdW5jdGlvbiAodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBhdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247XG4gICAgICAgIHBhcnNlclByb3RvLl9pbnNlcnRFbGVtZW50LmNhbGwodGhpcywgdG9rZW4sIG5hbWVzcGFjZVVSSSk7XG4gICAgfTtcblxuICAgIHBhcnNlci5faW5zZXJ0VGVtcGxhdGUgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgYXR0YWNoYWJsZUVsZW1lbnRMb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uO1xuICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0VGVtcGxhdGUuY2FsbCh0aGlzLCB0b2tlbik7XG5cbiAgICAgICAgdmFyIHRtcGxDb250ZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7XG5cbiAgICAgICAgdG1wbENvbnRlbnQuX19sb2NhdGlvbiA9IG51bGw7XG4gICAgfTtcblxuICAgIHBhcnNlci5faW5zZXJ0RmFrZVJvb3RFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0RmFrZVJvb3RFbGVtZW50LmNhbGwodGhpcyk7XG4gICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQuX19sb2NhdGlvbiA9IG51bGw7XG4gICAgfTtcblxuXG4gICAgLy9Db21tZW50c1xuICAgIHBhcnNlci5fYXBwZW5kQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAodG9rZW4sIHBhcmVudCkge1xuICAgICAgICBwYXJzZXJQcm90by5fYXBwZW5kQ29tbWVudE5vZGUuY2FsbCh0aGlzLCB0b2tlbiwgcGFyZW50KTtcblxuICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldENoaWxkTm9kZXMocGFyZW50KSxcbiAgICAgICAgICAgIGNvbW1lbnROb2RlID0gY2hpbGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgY29tbWVudE5vZGUuX19sb2NhdGlvbiA9IHRva2VuLmxvY2F0aW9uO1xuICAgIH07XG5cblxuICAgIC8vVGV4dFxuICAgIHBhcnNlci5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvL05PVEU6IHN0b3JlIGxhc3QgZm9zdGVyIHBhcmVudGluZyBsb2NhdGlvbiwgc28gd2Ugd2lsbCBiZSBhYmxlIHRvIGZpbmQgaW5zZXJ0ZWQgdGV4dFxuICAgICAgICAvL2luIGNhc2Ugb2YgZm9zdGVyIHBhcmVudGluZ1xuICAgICAgICBsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBwYXJzZXJQcm90by5fZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uLmNhbGwodGhpcyk7XG4gICAgICAgIHJldHVybiBsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb247XG4gICAgfTtcblxuICAgIHBhcnNlci5faW5zZXJ0Q2hhcmFjdGVycyA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICBwYXJzZXJQcm90by5faW5zZXJ0Q2hhcmFjdGVycy5jYWxsKHRoaXMsIHRva2VuKTtcblxuICAgICAgICB2YXIgaGFzRm9zdGVyUGFyZW50ID0gdGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSxcbiAgICAgICAgICAgIHBhcmVudCA9IGhhc0Zvc3RlclBhcmVudCAmJiBsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24ucGFyZW50IHx8XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50VG1wbENvbnRlbnQgfHxcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQsXG4gICAgICAgICAgICBzaWJsaW5ncyA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Q2hpbGROb2RlcyhwYXJlbnQpLFxuICAgICAgICAgICAgdGV4dE5vZGVJZHggPSBoYXNGb3N0ZXJQYXJlbnQgJiYgbGFzdEZvc3RlclBhcmVudGluZ0xvY2F0aW9uLmJlZm9yZUVsZW1lbnQgP1xuICAgICAgICAgICAgc2libGluZ3MuaW5kZXhPZihsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24uYmVmb3JlRWxlbWVudCkgLSAxIDpcbiAgICAgICAgICAgIHNpYmxpbmdzLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICB0ZXh0Tm9kZSA9IHNpYmxpbmdzW3RleHROb2RlSWR4XTtcblxuICAgICAgICAvL05PVEU6IGlmIHdlIGhhdmUgbG9jYXRpb24gYXNzaWduZWQgYnkgYW5vdGhlciB0b2tlbiwgdGhlbiBqdXN0IHVwZGF0ZSBlbmQgcG9zaXRpb25cbiAgICAgICAgaWYgKHRleHROb2RlLl9fbG9jYXRpb24pXG4gICAgICAgICAgICB0ZXh0Tm9kZS5fX2xvY2F0aW9uLmVuZE9mZnNldCA9IHRva2VuLmxvY2F0aW9uLmVuZE9mZnNldDtcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0ZXh0Tm9kZS5fX2xvY2F0aW9uID0gdG9rZW4ubG9jYXRpb247XG4gICAgfTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBUcmVlQWRhcHRlclxyXG4gKi9cclxuXHJcbi8vTm9kZSBjb25zdHJ1Y3Rpb25cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgZG9jdW1lbnQgbm9kZS5cclxuICpcclxuICogQGZ1bmN0aW9uIGNyZWF0ZURvY3VtZW50XHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcmV0dXJucyB7QVNUTm9kZTxEb2N1bWVudD59IGRvY3VtZW50XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMMTl8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmNyZWF0ZURvY3VtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBub2RlTmFtZTogJyNkb2N1bWVudCcsXHJcbiAgICAgICAgcXVpcmtzTW9kZTogZmFsc2UsXHJcbiAgICAgICAgY2hpbGROb2RlczogW11cclxuICAgIH07XHJcbn07XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIGRvY3VtZW50IGZyYWdtZW50IG5vZGUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBjcmVhdGVEb2N1bWVudEZyYWdtZW50XHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcmV0dXJucyB7QVNUTm9kZTxEb2N1bWVudEZyYWdtZW50Pn0gZnJhZ21lbnRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wzN3xkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnQtZnJhZ21lbnQnLFxyXG4gICAgICAgIHF1aXJrc01vZGU6IGZhbHNlLFxyXG4gICAgICAgIGNoaWxkTm9kZXM6IFtdXHJcbiAgICB9O1xyXG59O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGVsZW1lbnQgbm9kZS5cclxuICpcclxuICogQGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSB0YWdOYW1lIC0gVGFnIG5hbWUgb2YgdGhlIGVsZW1lbnQuXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VVUkkgLSBOYW1lc3BhY2Ugb2YgdGhlIGVsZW1lbnQuXHJcbiAqIEBwYXJhbSB7QXJyYXl9ICBhdHRycyAtIEF0dHJpYnV0ZSBuYW1lLXZhbHVlIHBhaXIgYXJyYXkuXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgIEZvcmVpZ24gYXR0cmlidXRlcyBtYXkgY29udGFpbiBgbmFtZXNwYWNlYCBhbmQgYHByZWZpeGAgZmllbGRzIGFzIHdlbGwuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtBU1ROb2RlPEVsZW1lbnQ+fSBlbGVtZW50XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNjF8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAodGFnTmFtZSwgbmFtZXNwYWNlVVJJLCBhdHRycykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBub2RlTmFtZTogdGFnTmFtZSxcclxuICAgICAgICB0YWdOYW1lOiB0YWdOYW1lLFxyXG4gICAgICAgIGF0dHJzOiBhdHRycyxcclxuICAgICAgICBuYW1lc3BhY2VVUkk6IG5hbWVzcGFjZVVSSSxcclxuICAgICAgICBjaGlsZE5vZGVzOiBbXSxcclxuICAgICAgICBwYXJlbnROb2RlOiBudWxsXHJcbiAgICB9O1xyXG59O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgY29tbWVudCBub2RlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gY3JlYXRlQ29tbWVudE5vZGVcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhIC0gQ29tbWVudCB0ZXh0LlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7QVNUTm9kZTxDb21tZW50Tm9kZT59IGNvbW1lbnRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0w4NXxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuY3JlYXRlQ29tbWVudE5vZGUgPSBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBub2RlTmFtZTogJyNjb21tZW50JyxcclxuICAgICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICAgIHBhcmVudE5vZGU6IG51bGxcclxuICAgIH07XHJcbn07XHJcblxyXG52YXIgY3JlYXRlVGV4dE5vZGUgPSBmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbm9kZU5hbWU6ICcjdGV4dCcsXHJcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIHBhcmVudE5vZGU6IG51bGxcclxuICAgIH07XHJcbn07XHJcblxyXG5cclxuLy9UcmVlIG11dGF0aW9uXHJcbi8qKlxyXG4gKiBBcHBlbmRzIGEgY2hpbGQgbm9kZSB0byB0aGUgZ2l2ZW4gcGFyZW50IG5vZGUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBhcHBlbmRDaGlsZFxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBwYXJlbnROb2RlIC0gUGFyZW50IG5vZGUuXHJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gbmV3Tm9kZSAtICBDaGlsZCBub2RlLlxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvdHJlZS1hZGFwdGVyLWRvY3MtcmV2L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMjTDExNHxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbnZhciBhcHBlbmRDaGlsZCA9IGV4cG9ydHMuYXBwZW5kQ2hpbGQgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgbmV3Tm9kZSkge1xyXG4gICAgcGFyZW50Tm9kZS5jaGlsZE5vZGVzLnB1c2gobmV3Tm9kZSk7XHJcbiAgICBuZXdOb2RlLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEluc2VydHMgYSBjaGlsZCBub2RlIHRvIHRoZSBnaXZlbiBwYXJlbnQgbm9kZSBiZWZvcmUgdGhlIGdpdmVuIHJlZmVyZW5jZSBub2RlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaW5zZXJ0QmVmb3JlXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IHBhcmVudE5vZGUgLSBQYXJlbnQgbm9kZS5cclxuICogQHBhcmFtIHtBU1ROb2RlfSBuZXdOb2RlIC0gIENoaWxkIG5vZGUuXHJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gcmVmZXJlbmNlTm9kZSAtICBSZWZlcmVuY2Ugbm9kZS5cclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wxMzF8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG52YXIgaW5zZXJ0QmVmb3JlID0gZXhwb3J0cy5pbnNlcnRCZWZvcmUgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xyXG4gICAgdmFyIGluc2VydGlvbklkeCA9IHBhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpO1xyXG5cclxuICAgIHBhcmVudE5vZGUuY2hpbGROb2Rlcy5zcGxpY2UoaW5zZXJ0aW9uSWR4LCAwLCBuZXdOb2RlKTtcclxuICAgIG5ld05vZGUucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XHJcbn07XHJcblxyXG4vKipcclxuICogU2V0cyB0aGUgYDx0ZW1wbGF0ZT5gIGVsZW1lbnQgY29udGVudCBlbGVtZW50LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gc2V0VGVtcGxhdGVDb250ZW50XHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGU8VGVtcGxhdGVFbGVtZW50Pn0gdGVtcGxhdGVFbGVtZW50IC0gYDx0ZW1wbGF0ZT5gIGVsZW1lbnQuXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxEb2N1bWVudEZyYWdtZW50Pn0gY29udGVudFRlbXBsYXRlIC0gIENvbnRlbnQgZWxlbWVudC5cclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wxNDl8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLnNldFRlbXBsYXRlQ29udGVudCA9IGZ1bmN0aW9uICh0ZW1wbGF0ZUVsZW1lbnQsIGNvbnRlbnRFbGVtZW50KSB7XHJcbiAgICB0ZW1wbGF0ZUVsZW1lbnQuY29udGVudCA9IGNvbnRlbnRFbGVtZW50O1xyXG59O1xyXG5cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBgPHRlbXBsYXRlPmAgZWxlbWVudCBjb250ZW50IGVsZW1lbnQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXRUZW1wbGF0ZUNvbnRlbnRcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxUZW1wbGF0ZUVsZW1lbnQ+fSB0ZW1wbGF0ZUVsZW1lbnQgLSBgPHRlbXBsYXRlPmAgZWxlbWVudC5cclxuXHJcbiAqIEByZXR1cm5zIHtBU1ROb2RlPERvY3VtZW50RnJhZ21lbnQ+fVxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvdHJlZS1hZGFwdGVyLWRvY3MtcmV2L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMjTDE2NnxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuZ2V0VGVtcGxhdGVDb250ZW50ID0gZnVuY3Rpb24gKHRlbXBsYXRlRWxlbWVudCkge1xyXG4gICAgcmV0dXJuIHRlbXBsYXRlRWxlbWVudC5jb250ZW50O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFNldHMgdGhlIGRvY3VtZW50IHR5cGUuIElmIHRoZSBgZG9jdW1lbnRgIGFscmVhZHkgY29udGFpbnMgYSBkb2N1bWVudCB0eXBlIG5vZGUsIHRoZSBgbmFtZWAsIGBwdWJsaWNJZGAgYW5kIGBzeXN0ZW1JZGBcclxuICogcHJvcGVydGllcyBvZiB0aGlzIG5vZGUgd2lsbCBiZSB1cGRhdGVkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4gT3RoZXJ3aXNlLCBjcmVhdGVzIGEgbmV3IGRvY3VtZW50IHR5cGUgbm9kZVxyXG4gKiB3aXRoIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIGFuZCBpbnNlcnRzIGl0IGludG8gdGhlIGBkb2N1bWVudGAuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBzZXREb2N1bWVudFR5cGVcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxEb2N1bWVudD59IGRvY3VtZW50IC0gRG9jdW1lbnQgbm9kZS5cclxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSAgRG9jdW1lbnQgdHlwZSBuYW1lLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcHVibGljSWQgLSBEb2N1bWVudCB0eXBlIHB1YmxpYyBpZGVudGlmaWVyLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gc3lzdGVtSWQgLSBEb2N1bWVudCB0eXBlIHN5c3RlbSBpZGVudGlmaWVyLlxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvdHJlZS1hZGFwdGVyLWRvY3MtcmV2L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMjTDE4NXxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuc2V0RG9jdW1lbnRUeXBlID0gZnVuY3Rpb24gKGRvY3VtZW50LCBuYW1lLCBwdWJsaWNJZCwgc3lzdGVtSWQpIHtcclxuICAgIHZhciBkb2N0eXBlTm9kZSA9IG51bGw7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkb2N1bWVudC5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LmNoaWxkTm9kZXNbaV0ubm9kZU5hbWUgPT09ICcjZG9jdW1lbnRUeXBlJykge1xyXG4gICAgICAgICAgICBkb2N0eXBlTm9kZSA9IGRvY3VtZW50LmNoaWxkTm9kZXNbaV07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoZG9jdHlwZU5vZGUpIHtcclxuICAgICAgICBkb2N0eXBlTm9kZS5uYW1lID0gbmFtZTtcclxuICAgICAgICBkb2N0eXBlTm9kZS5wdWJsaWNJZCA9IHB1YmxpY0lkO1xyXG4gICAgICAgIGRvY3R5cGVOb2RlLnN5c3RlbUlkID0gc3lzdGVtSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgYXBwZW5kQ2hpbGQoZG9jdW1lbnQsIHtcclxuICAgICAgICAgICAgbm9kZU5hbWU6ICcjZG9jdW1lbnRUeXBlJyxcclxuICAgICAgICAgICAgbmFtZTogbmFtZSxcclxuICAgICAgICAgICAgcHVibGljSWQ6IHB1YmxpY0lkLFxyXG4gICAgICAgICAgICBzeXN0ZW1JZDogc3lzdGVtSWRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHRoZSBkb2N1bWVudCdzIHF1aXJrcyBtb2RlIGZsYWcuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBzZXRRdWlya3NNb2RlXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGU8RG9jdW1lbnQ+fSBkb2N1bWVudCAtIERvY3VtZW50IG5vZGUuXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMMjIxfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5zZXRRdWlya3NNb2RlID0gZnVuY3Rpb24gKGRvY3VtZW50KSB7XHJcbiAgICBkb2N1bWVudC5xdWlya3NNb2RlID0gdHJ1ZTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBkb2N1bWVudCdzIHF1aXJrcyBtb2RlIGZsYWcgaXMgc2V0LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaXNRdWlya3NNb2RlXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGU8RG9jdW1lbnQ+fSBkb2N1bWVudCAtIERvY3VtZW50IG5vZGUuXHJcblxyXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wyMzd8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmlzUXVpcmtzTW9kZSA9IGZ1bmN0aW9uIChkb2N1bWVudCkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50LnF1aXJrc01vZGU7XHJcbn07XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyBhIG5vZGUgZnJvbSBpdHMgcGFyZW50LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gZGV0YWNoTm9kZVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBub2RlIC0gTm9kZS5cclxuXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMMjUxfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5kZXRhY2hOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIGlmIChub2RlLnBhcmVudE5vZGUpIHtcclxuICAgICAgICB2YXIgaWR4ID0gbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuaW5kZXhPZihub2RlKTtcclxuXHJcbiAgICAgICAgbm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXMuc3BsaWNlKGlkeCwgMSk7XHJcbiAgICAgICAgbm9kZS5wYXJlbnROb2RlID0gbnVsbDtcclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBJbnNlcnRzIHRleHQgaW50byBhIG5vZGUuIElmIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBub2RlIGlzIGEgdGV4dCBub2RlLCB0aGUgcHJvdmlkZWQgdGV4dCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZVxyXG4gKiB0ZXh0IG5vZGUgY29udGVudC4gT3RoZXJ3aXNlLCBpbnNlcnRzIGEgbmV3IHRleHQgbm9kZSB3aXRoIHRoZSBnaXZlbiB0ZXh0LlxyXG4gKlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaW5zZXJ0VGV4dFxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBwYXJlbnROb2RlIC0gTm9kZSB0byBpbnNlcnQgdGV4dCBpbnRvLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCAtIFRleHQgdG8gaW5zZXJ0LlxyXG5cclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wyNzN8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmluc2VydFRleHQgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCkge1xyXG4gICAgaWYgKHBhcmVudE5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICB2YXIgcHJldk5vZGUgPSBwYXJlbnROb2RlLmNoaWxkTm9kZXNbcGFyZW50Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgICAgICBpZiAocHJldk5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcclxuICAgICAgICAgICAgcHJldk5vZGUudmFsdWUgKz0gdGV4dDtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhcHBlbmRDaGlsZChwYXJlbnROb2RlLCBjcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7XHJcbn07XHJcblxyXG4vKipcclxuICogSW5zZXJ0cyB0ZXh0IGludG8gYSBzaWJsaW5nIG5vZGUgdGhhdCBnb2VzIGJlZm9yZSB0aGUgcmVmZXJlbmNlIG5vZGUuIElmIHRoaXMgc2libGluZyBub2RlIGlzIHRoZSB0ZXh0IG5vZGUsXHJcbiAqIHRoZSBwcm92aWRlZCB0ZXh0IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIHRleHQgbm9kZSBjb250ZW50LiBPdGhlcndpc2UsIGluc2VydHMgYSBuZXcgc2libGluZyB0ZXh0IG5vZGUgd2l0aFxyXG4gKiB0aGUgZ2l2ZW4gdGV4dCBiZWZvcmUgdGhlIHJlZmVyZW5jZSBub2RlLlxyXG4gKlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaW5zZXJ0VGV4dEJlZm9yZVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBwYXJlbnROb2RlIC0gTm9kZSB0byBpbnNlcnQgdGV4dCBpbnRvLlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCAtIFRleHQgdG8gaW5zZXJ0LlxyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IHJlZmVyZW5jZU5vZGUgLSBOb2RlIHRvIGluc2VydCB0ZXh0IGJlZm9yZS5cclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wzMDF8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmluc2VydFRleHRCZWZvcmUgPSBmdW5jdGlvbiAocGFyZW50Tm9kZSwgdGV4dCwgcmVmZXJlbmNlTm9kZSkge1xyXG4gICAgdmFyIHByZXZOb2RlID0gcGFyZW50Tm9kZS5jaGlsZE5vZGVzW3BhcmVudE5vZGUuY2hpbGROb2Rlcy5pbmRleE9mKHJlZmVyZW5jZU5vZGUpIC0gMV07XHJcblxyXG4gICAgaWYgKHByZXZOb2RlICYmIHByZXZOb2RlLm5vZGVOYW1lID09PSAnI3RleHQnKVxyXG4gICAgICAgIHByZXZOb2RlLnZhbHVlICs9IHRleHQ7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgaW5zZXJ0QmVmb3JlKHBhcmVudE5vZGUsIGNyZWF0ZVRleHROb2RlKHRleHQpLCByZWZlcmVuY2VOb2RlKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb3BpZXMgYXR0cmlidXRlcyB0byB0aGUgZ2l2ZW4gbm9kZS4gT25seSBhdHRyaWJ1dGVzIHRoYXQgYXJlIG5vdCB5ZXQgcHJlc2VudCBpbiB0aGUgbm9kZSBhcmUgY29waWVkLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gYWRvcHRBdHRyaWJ1dGVzXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IHJlY2lwaWVudE5vZGUgLSBOb2RlIHRvIGNvcHkgYXR0cmlidXRlcyBpbnRvLlxyXG4gKiBAcGFyYW0ge0FycmF5fSBhdHRycyAtIEF0dHJpYnV0ZXMgdG8gY29weS5cclxuXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMMzIxfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5hZG9wdEF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAocmVjaXBpZW50Tm9kZSwgYXR0cnMpIHtcclxuICAgIHZhciByZWNpcGllbnRBdHRyc01hcCA9IFtdO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjaXBpZW50Tm9kZS5hdHRycy5sZW5ndGg7IGkrKylcclxuICAgICAgICByZWNpcGllbnRBdHRyc01hcC5wdXNoKHJlY2lwaWVudE5vZGUuYXR0cnNbaV0ubmFtZSk7XHJcblxyXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCBhdHRycy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnRBdHRyc01hcC5pbmRleE9mKGF0dHJzW2pdLm5hbWUpID09PSAtMSlcclxuICAgICAgICAgICAgcmVjaXBpZW50Tm9kZS5hdHRycy5wdXNoKGF0dHJzW2pdKTtcclxuICAgIH1cclxufTtcclxuXHJcblxyXG4vL1RyZWUgdHJhdmVyc2luZ1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGZpcnN0IGNoaWxkIG9mIHRoZSBnaXZlbiBub2RlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gZ2V0Rmlyc3RDaGlsZFxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBub2RlIC0gTm9kZS5cclxuICpcclxuICogQHJldHVybnMge0FTVE5vZGV9IGZpcnN0Q2hpbGRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wzNDh8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmdldEZpcnN0Q2hpbGQgPSBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgcmV0dXJuIG5vZGUuY2hpbGROb2Rlc1swXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiBub2RlJ3MgY2hpbGRyZW4gaW4gYW4gYXJyYXkuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXRDaGlsZE5vZGVzXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IG5vZGUgLSBOb2RlLlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7QXJyYXl9IGNoaWxkcmVuXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMMzY0fGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXRDaGlsZE5vZGVzID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIHJldHVybiBub2RlLmNoaWxkTm9kZXM7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2l2ZW4gbm9kZSdzIHBhcmVudC5cclxuICpcclxuICogQGZ1bmN0aW9uIGdldFBhcmVudE5vZGVcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gbm9kZSAtIE5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtBU1ROb2RlfSBwYXJlbnRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wzODB8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmdldFBhcmVudE5vZGUgPSBmdW5jdGlvbiAobm9kZSkge1xyXG4gICAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiBub2RlJ3MgYXR0cmlidXRlcyBpbiBhbiBhcnJheSwgaW4gdGhlIGZvcm0gb2YgbmFtZS12YWx1ZSBwYWlycy5cclxuICogRm9yZWlnbiBhdHRyaWJ1dGVzIG1heSBjb250YWluIGBuYW1lc3BhY2VgIGFuZCBgcHJlZml4YCBmaWVsZHMgYXMgd2VsbC5cclxuICpcclxuICogQGZ1bmN0aW9uIGdldEF0dHJMaXN0XHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGV9IG5vZGUgLSBOb2RlLlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7QXJyYXl9IGF0dHJpYnV0ZXNcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0wzOTd8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmdldEF0dHJMaXN0ID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIHJldHVybiBub2RlLmF0dHJzO1xyXG59O1xyXG5cclxuLy9Ob2RlIGRhdGFcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiBlbGVtZW50J3MgdGFnIG5hbWUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXRUYWdOYW1lXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGU8RWxlbWVudD59IGVsZW1lbnQgLSBFbGVtZW50LlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7U3RyaW5nfSB0YWdOYW1lXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNDE1fGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXRUYWdOYW1lID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgIHJldHVybiBlbGVtZW50LnRhZ05hbWU7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2l2ZW4gZWxlbWVudCdzIG5hbWVzcGFjZS5cclxuICpcclxuICogQGZ1bmN0aW9uIGdldE5hbWVzcGFjZVVSSVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlPEVsZW1lbnQ+fSBlbGVtZW50IC0gRWxlbWVudC5cclxuICpcclxuICogQHJldHVybnMge1N0cmluZ30gbmFtZXNwYWNlVVJJXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNDMxfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXROYW1lc3BhY2VVUkkgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgcmV0dXJuIGVsZW1lbnQubmFtZXNwYWNlVVJJO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdpdmVuIHRleHQgbm9kZSdzIGNvbnRlbnQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXRUZXh0Tm9kZUNvbnRlbnRcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxUZXh0Pn0gdGV4dE5vZGUgLSBUZXh0IG5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHRleHRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0w0NDd8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmdldFRleHROb2RlQ29udGVudCA9IGZ1bmN0aW9uICh0ZXh0Tm9kZSkge1xyXG4gICAgcmV0dXJuIHRleHROb2RlLnZhbHVlO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdpdmVuIGNvbW1lbnQgbm9kZSdzIGNvbnRlbnQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXRDb21tZW50Tm9kZUNvbnRlbnRcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxDb21tZW50Pn0gY29tbWVudE5vZGUgLSBDb21tZW50IG5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9IGNvbW1lbnRUZXh0XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNDYzfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXRDb21tZW50Tm9kZUNvbnRlbnQgPSBmdW5jdGlvbiAoY29tbWVudE5vZGUpIHtcclxuICAgIHJldHVybiBjb21tZW50Tm9kZS5kYXRhO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdpdmVuIGRvY3VtZW50IHR5cGUgbm9kZSdzIG5hbWUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXREb2N1bWVudFR5cGVOb2RlTmFtZVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlPERvY3VtZW50VHlwZT59IGRvY3R5cGVOb2RlIC0gRG9jdW1lbnQgdHlwZSBub2RlLlxyXG4gKlxyXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBuYW1lXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNDc5fGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlTmFtZSA9IGZ1bmN0aW9uIChkb2N0eXBlTm9kZSkge1xyXG4gICAgcmV0dXJuIGRvY3R5cGVOb2RlLm5hbWU7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZ2l2ZW4gZG9jdW1lbnQgdHlwZSBub2RlJ3MgcHVibGljIGlkZW50aWZpZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBnZXREb2N1bWVudFR5cGVOb2RlUHVibGljSWRcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZTxEb2N1bWVudFR5cGU+fSBkb2N0eXBlTm9kZSAtIERvY3VtZW50IHR5cGUgbm9kZS5cclxuICpcclxuICogQHJldHVybnMge1N0cmluZ30gcHVibGljSWRcclxuICpcclxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2luaWt1bGluL3BhcnNlNS9ibG9iL3RyZWUtYWRhcHRlci1kb2NzLXJldi9saWIvdHJlZV9hZGFwdGVycy9kZWZhdWx0LmpzI0w0OTV8ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi59XHJcbiAqL1xyXG5leHBvcnRzLmdldERvY3VtZW50VHlwZU5vZGVQdWJsaWNJZCA9IGZ1bmN0aW9uIChkb2N0eXBlTm9kZSkge1xyXG4gICAgcmV0dXJuIGRvY3R5cGVOb2RlLnB1YmxpY0lkO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGdpdmVuIGRvY3VtZW50IHR5cGUgbm9kZSdzIHN5c3RlbSBpZGVudGlmaWVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gZ2V0RG9jdW1lbnRUeXBlTm9kZVN5c3RlbUlkXHJcbiAqIEBtZW1iZXJvZiBUcmVlQWRhcHRlclxyXG4gKlxyXG4gKiBAcGFyYW0ge0FTVE5vZGU8RG9jdW1lbnRUeXBlPn0gZG9jdHlwZU5vZGUgLSBEb2N1bWVudCB0eXBlIG5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9IHN5c3RlbUlkXHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNTExfGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5nZXREb2N1bWVudFR5cGVOb2RlU3lzdGVtSWQgPSBmdW5jdGlvbiAoZG9jdHlwZU5vZGUpIHtcclxuICAgIHJldHVybiBkb2N0eXBlTm9kZS5zeXN0ZW1JZDtcclxufTtcclxuXHJcbi8vTm9kZSB0eXBlc1xyXG4vKipcclxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhIHRleHQgbm9kZS5cclxuICpcclxuICogQGZ1bmN0aW9uIGlzVGV4dE5vZGVcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gbm9kZSAtIE5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtCb29sZWFufVxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvdHJlZS1hZGFwdGVyLWRvY3MtcmV2L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMjTDUyNnxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuaXNUZXh0Tm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICByZXR1cm4gbm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0JztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBub2RlIGlzIGEgY29tbWVudCBub2RlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaXNDb21tZW50Tm9kZVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBub2RlIC0gTm9kZS5cclxuICpcclxuICogQHJldHVybnMge0Jvb2xlYW59XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNTQ0fGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5pc0NvbW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2NvbW1lbnQnO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIERldGVybWluZXMgaWYgdGhlIGdpdmVuIG5vZGUgaXMgYSBkb2N1bWVudCB0eXBlIG5vZGUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBpc0RvY3VtZW50VHlwZU5vZGVcclxuICogQG1lbWJlcm9mIFRyZWVBZGFwdGVyXHJcbiAqXHJcbiAqIEBwYXJhbSB7QVNUTm9kZX0gbm9kZSAtIE5vZGUuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtCb29sZWFufVxyXG4gKlxyXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vaW5pa3VsaW4vcGFyc2U1L2Jsb2IvdHJlZS1hZGFwdGVyLWRvY3MtcmV2L2xpYi90cmVlX2FkYXB0ZXJzL2RlZmF1bHQuanMjTDU2MHxkZWZhdWx0IGltcGxlbWVudGF0aW9uLn1cclxuICovXHJcbmV4cG9ydHMuaXNEb2N1bWVudFR5cGVOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIHJldHVybiBub2RlLm5vZGVOYW1lID09PSAnI2RvY3VtZW50VHlwZSc7XHJcbn07XHJcblxyXG4vKipcclxuICogRGV0ZXJtaW5lcyBpZiB0aGUgZ2l2ZW4gbm9kZSBpcyBhbiBlbGVtZW50LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gaXNFbGVtZW50Tm9kZVxyXG4gKiBAbWVtYmVyb2YgVHJlZUFkYXB0ZXJcclxuICpcclxuICogQHBhcmFtIHtBU1ROb2RlfSBub2RlIC0gTm9kZS5cclxuICpcclxuICogQHJldHVybnMge0Jvb2xlYW59XHJcbiAqXHJcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmlrdWxpbi9wYXJzZTUvYmxvYi90cmVlLWFkYXB0ZXItZG9jcy1yZXYvbGliL3RyZWVfYWRhcHRlcnMvZGVmYXVsdC5qcyNMNTc2fGRlZmF1bHQgaW1wbGVtZW50YXRpb24ufVxyXG4gKi9cclxuZXhwb3J0cy5pc0VsZW1lbnROb2RlID0gZnVuY3Rpb24gKG5vZGUpIHtcclxuICAgIHJldHVybiAhIW5vZGUudGFnTmFtZTtcclxufTtcclxuIiwiJ3VzZSBzdHJpY3QnO1xyXG5cclxuLy9Db25zdFxyXG52YXIgVkFMSURfRE9DVFlQRV9OQU1FID0gJ2h0bWwnLFxyXG4gICAgUVVJUktTX01PREVfU1lTVEVNX0lEID0gJ2h0dHA6Ly93d3cuaWJtLmNvbS9kYXRhL2R0ZC92MTEvaWJteGh0bWwxLXRyYW5zaXRpb25hbC5kdGQnLFxyXG4gICAgUVVJUktTX01PREVfUFVCTElDX0lEX1BSRUZJWEVTID0gW1xyXG4gICAgICAgICcrLy9zaWxtYXJpbC8vZHRkIGh0bWwgcHJvIHYwcjExIDE5OTcwMTAxLy9lbicsXHJcbiAgICAgICAgJy0vL2FkdmFzb2Z0IGx0ZC8vZHRkIGh0bWwgMy4wIGFzd2VkaXQgKyBleHRlbnNpb25zLy9lbicsXHJcbiAgICAgICAgJy0vL2FzLy9kdGQgaHRtbCAzLjAgYXN3ZWRpdCArIGV4dGVuc2lvbnMvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDEvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIGxldmVsIDIvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMi4wIHN0cmljdCBsZXZlbCAxLy9lbicsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMCBzdHJpY3QgbGV2ZWwgMi8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjAgc3RyaWN0Ly9lbicsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDIuMC8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAyLjFlLy9lbicsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDMuMC8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjAvL2VuLy8nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCAzLjIgZmluYWwvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgMy4yLy9lbicsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIDMvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMC8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAwLy9lbi8vMi4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMS8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAxLy9lbi8vMi4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMi8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAyLy9lbi8vMi4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgbGV2ZWwgMy8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBsZXZlbCAzLy9lbi8vMy4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDAvL2VuLy8yLjAnLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMS8vZW4nLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QgbGV2ZWwgMS8vZW4vLzIuMCcsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy9lbicsXHJcbiAgICAgICAgJy0vL2lldGYvL2R0ZCBodG1sIHN0cmljdCBsZXZlbCAyLy9lbi8vMi4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0IGxldmVsIDMvL2VuLy8zLjAnLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbCBzdHJpY3QvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly9lbi8vMi4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwgc3RyaWN0Ly9lbi8vMy4wJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvL2VuJyxcclxuICAgICAgICAnLS8vaWV0Zi8vZHRkIGh0bWwvL2VuLy8yLjAnLFxyXG4gICAgICAgICctLy9pZXRmLy9kdGQgaHRtbC8vZW4vLzMuMCcsXHJcbiAgICAgICAgJy0vL21ldHJpdXMvL2R0ZCBtZXRyaXVzIHByZXNlbnRhdGlvbmFsLy9lbicsXHJcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDIuMCBodG1sIHN0cmljdC8vZW4nLFxyXG4gICAgICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgaHRtbC8vZW4nLFxyXG4gICAgICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAyLjAgdGFibGVzLy9lbicsXHJcbiAgICAgICAgJy0vL21pY3Jvc29mdC8vZHRkIGludGVybmV0IGV4cGxvcmVyIDMuMCBodG1sIHN0cmljdC8vZW4nLFxyXG4gICAgICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgaHRtbC8vZW4nLFxyXG4gICAgICAgICctLy9taWNyb3NvZnQvL2R0ZCBpbnRlcm5ldCBleHBsb3JlciAzLjAgdGFibGVzLy9lbicsXHJcbiAgICAgICAgJy0vL25ldHNjYXBlIGNvbW0uIGNvcnAuLy9kdGQgaHRtbC8vZW4nLFxyXG4gICAgICAgICctLy9uZXRzY2FwZSBjb21tLiBjb3JwLi8vZHRkIHN0cmljdCBodG1sLy9lbicsXHJcbiAgICAgICAgJy0vL29cXCdyZWlsbHkgYW5kIGFzc29jaWF0ZXMvL2R0ZCBodG1sIDIuMC8vZW4nLFxyXG4gICAgICAgICctLy9vXFwncmVpbGx5IGFuZCBhc3NvY2lhdGVzLy9kdGQgaHRtbCBleHRlbmRlZCAxLjAvL2VuJyxcclxuICAgICAgICAnLS8vc3B5Z2xhc3MvL2R0ZCBodG1sIDIuMCBleHRlbmRlZC8vZW4nLFxyXG4gICAgICAgICctLy9zcS8vZHRkIGh0bWwgMi4wIGhvdG1ldGFsICsgZXh0ZW5zaW9ucy8vZW4nLFxyXG4gICAgICAgICctLy9zdW4gbWljcm9zeXN0ZW1zIGNvcnAuLy9kdGQgaG90amF2YSBodG1sLy9lbicsXHJcbiAgICAgICAgJy0vL3N1biBtaWNyb3N5c3RlbXMgY29ycC4vL2R0ZCBob3RqYXZhIHN0cmljdCBodG1sLy9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMyAxOTk1LTAzLTI0Ly9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGRyYWZ0Ly9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yIGZpbmFsLy9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4yLy9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgMy4ycyBkcmFmdC8vZW4nLFxyXG4gICAgICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCBmcmFtZXNldC8vZW4nLFxyXG4gICAgICAgICctLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuJyxcclxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgMTk5NjA3MTIvL2VuJyxcclxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCBleHBlcmltZW50YWwgOTcwNDIxLy9lbicsXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIHczIGh0bWwvL2VuJyxcclxuICAgICAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCAzLjAvL2VuJyxcclxuICAgICAgICAnLS8vdzNvLy9kdGQgdzMgaHRtbCAzLjAvL2VuLy8nLFxyXG4gICAgICAgICctLy93ZWJ0ZWNocy8vZHRkIG1vemlsbGEgaHRtbCAyLjAvL2VuJyxcclxuICAgICAgICAnLS8vd2VidGVjaHMvL2R0ZCBtb3ppbGxhIGh0bWwvL2VuJ1xyXG4gICAgXSxcclxuICAgIFFVSVJLU19NT0RFX05PX1NZU1RFTV9JRF9QVUJMSUNfSURfUFJFRklYRVMgPSBbXHJcbiAgICAgICAgJy0vL3czYy8vZHRkIGh0bWwgNC4wMSBmcmFtZXNldC8vJyxcclxuICAgICAgICAnLS8vdzNjLy9kdGQgaHRtbCA0LjAxIHRyYW5zaXRpb25hbC8vJ1xyXG4gICAgXSxcclxuICAgIFFVSVJLU19NT0RFX1BVQkxJQ19JRFMgPSBbXHJcbiAgICAgICAgJy0vL3czby8vZHRkIHczIGh0bWwgc3RyaWN0IDMuMC8vZW4vLycsXHJcbiAgICAgICAgJy0vdzNjL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvZW4nLFxyXG4gICAgICAgICdodG1sJ1xyXG4gICAgXTtcclxuXHJcblxyXG4vL1V0aWxzXHJcbmZ1bmN0aW9uIGVucXVvdGVEb2N0eXBlSWQoaWQpIHtcclxuICAgIHZhciBxdW90ZSA9IGlkLmluZGV4T2YoJ1wiJykgIT09IC0xID8gJ1xcJycgOiAnXCInO1xyXG5cclxuICAgIHJldHVybiBxdW90ZSArIGlkICsgcXVvdGU7XHJcbn1cclxuXHJcblxyXG4vL0FQSVxyXG5leHBvcnRzLmlzUXVpcmtzID0gZnVuY3Rpb24gKG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xyXG4gICAgaWYgKG5hbWUgIT09IFZBTElEX0RPQ1RZUEVfTkFNRSlcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgICBpZiAoc3lzdGVtSWQgJiYgc3lzdGVtSWQudG9Mb3dlckNhc2UoKSA9PT0gUVVJUktTX01PREVfU1lTVEVNX0lEKVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHB1YmxpY0lkID0gcHVibGljSWQudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgaWYgKFFVSVJLU19NT0RFX1BVQkxJQ19JRFMuaW5kZXhPZihwdWJsaWNJZCkgPiAtMSlcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgICAgIHZhciBwcmVmaXhlcyA9IFFVSVJLU19NT0RFX1BVQkxJQ19JRF9QUkVGSVhFUztcclxuXHJcbiAgICAgICAgaWYgKHN5c3RlbUlkID09PSBudWxsKVxyXG4gICAgICAgICAgICBwcmVmaXhlcyA9IHByZWZpeGVzLmNvbmNhdChRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmVmaXhlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAocHVibGljSWQuaW5kZXhPZihwcmVmaXhlc1tpXSkgPT09IDApXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuZXhwb3J0cy5zZXJpYWxpemVDb250ZW50ID0gZnVuY3Rpb24gKG5hbWUsIHB1YmxpY0lkLCBzeXN0ZW1JZCkge1xyXG4gICAgdmFyIHN0ciA9ICchRE9DVFlQRSAnO1xyXG5cclxuICAgIGlmIChuYW1lKVxyXG4gICAgICAgIHN0ciArPSBuYW1lO1xyXG5cclxuICAgIGlmIChwdWJsaWNJZCAhPT0gbnVsbClcclxuICAgICAgICBzdHIgKz0gJyBQVUJMSUMgJyArIGVucXVvdGVEb2N0eXBlSWQocHVibGljSWQpO1xyXG5cclxuICAgIGVsc2UgaWYgKHN5c3RlbUlkICE9PSBudWxsKVxyXG4gICAgICAgIHN0ciArPSAnIFNZU1RFTSc7XHJcblxyXG4gICAgaWYgKHN5c3RlbUlkICE9PSBudWxsKVxyXG4gICAgICAgIHN0ciArPSAnICcgKyBlbnF1b3RlRG9jdHlwZUlkKHN5c3RlbUlkKTtcclxuXHJcbiAgICByZXR1cm4gc3RyO1xyXG59O1xyXG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUb2tlbml6ZXIgPSByZXF1aXJlKCcuLi90b2tlbml6ZXInKSxcbiAgICBIVE1MID0gcmVxdWlyZSgnLi9odG1sJyk7XG5cbi8vQWxpYXNlc1xudmFyICQgPSBIVE1MLlRBR19OQU1FUyxcbiAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUyxcbiAgICBBVFRSUyA9IEhUTUwuQVRUUlM7XG5cblxuLy9NSU1FIHR5cGVzXG52YXIgTUlNRV9UWVBFUyA9IHtcbiAgICBURVhUX0hUTUw6ICd0ZXh0L2h0bWwnLFxuICAgIEFQUExJQ0FUSU9OX1hNTDogJ2FwcGxpY2F0aW9uL3hodG1sK3htbCdcbn07XG5cbi8vQXR0cmlidXRlc1xudmFyIERFRklOSVRJT05fVVJMX0FUVFIgPSAnZGVmaW5pdGlvbnVybCcsXG4gICAgQURKVVNURURfREVGSU5JVElPTl9VUkxfQVRUUiA9ICdkZWZpbml0aW9uVVJMJyxcbiAgICBTVkdfQVRUUlNfQURKVVNUTUVOVF9NQVAgPSB7XG4gICAgICAgICdhdHRyaWJ1dGVuYW1lJzogJ2F0dHJpYnV0ZU5hbWUnLFxuICAgICAgICAnYXR0cmlidXRldHlwZSc6ICdhdHRyaWJ1dGVUeXBlJyxcbiAgICAgICAgJ2Jhc2VmcmVxdWVuY3knOiAnYmFzZUZyZXF1ZW5jeScsXG4gICAgICAgICdiYXNlcHJvZmlsZSc6ICdiYXNlUHJvZmlsZScsXG4gICAgICAgICdjYWxjbW9kZSc6ICdjYWxjTW9kZScsXG4gICAgICAgICdjbGlwcGF0aHVuaXRzJzogJ2NsaXBQYXRoVW5pdHMnLFxuICAgICAgICAnZGlmZnVzZWNvbnN0YW50JzogJ2RpZmZ1c2VDb25zdGFudCcsXG4gICAgICAgICdlZGdlbW9kZSc6ICdlZGdlTW9kZScsXG4gICAgICAgICdmaWx0ZXJ1bml0cyc6ICdmaWx0ZXJVbml0cycsXG4gICAgICAgICdnbHlwaHJlZic6ICdnbHlwaFJlZicsXG4gICAgICAgICdncmFkaWVudHRyYW5zZm9ybSc6ICdncmFkaWVudFRyYW5zZm9ybScsXG4gICAgICAgICdncmFkaWVudHVuaXRzJzogJ2dyYWRpZW50VW5pdHMnLFxuICAgICAgICAna2VybmVsbWF0cml4JzogJ2tlcm5lbE1hdHJpeCcsXG4gICAgICAgICdrZXJuZWx1bml0bGVuZ3RoJzogJ2tlcm5lbFVuaXRMZW5ndGgnLFxuICAgICAgICAna2V5cG9pbnRzJzogJ2tleVBvaW50cycsXG4gICAgICAgICdrZXlzcGxpbmVzJzogJ2tleVNwbGluZXMnLFxuICAgICAgICAna2V5dGltZXMnOiAna2V5VGltZXMnLFxuICAgICAgICAnbGVuZ3RoYWRqdXN0JzogJ2xlbmd0aEFkanVzdCcsXG4gICAgICAgICdsaW1pdGluZ2NvbmVhbmdsZSc6ICdsaW1pdGluZ0NvbmVBbmdsZScsXG4gICAgICAgICdtYXJrZXJoZWlnaHQnOiAnbWFya2VySGVpZ2h0JyxcbiAgICAgICAgJ21hcmtlcnVuaXRzJzogJ21hcmtlclVuaXRzJyxcbiAgICAgICAgJ21hcmtlcndpZHRoJzogJ21hcmtlcldpZHRoJyxcbiAgICAgICAgJ21hc2tjb250ZW50dW5pdHMnOiAnbWFza0NvbnRlbnRVbml0cycsXG4gICAgICAgICdtYXNrdW5pdHMnOiAnbWFza1VuaXRzJyxcbiAgICAgICAgJ251bW9jdGF2ZXMnOiAnbnVtT2N0YXZlcycsXG4gICAgICAgICdwYXRobGVuZ3RoJzogJ3BhdGhMZW5ndGgnLFxuICAgICAgICAncGF0dGVybmNvbnRlbnR1bml0cyc6ICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgICAgICAgJ3BhdHRlcm50cmFuc2Zvcm0nOiAncGF0dGVyblRyYW5zZm9ybScsXG4gICAgICAgICdwYXR0ZXJudW5pdHMnOiAncGF0dGVyblVuaXRzJyxcbiAgICAgICAgJ3BvaW50c2F0eCc6ICdwb2ludHNBdFgnLFxuICAgICAgICAncG9pbnRzYXR5JzogJ3BvaW50c0F0WScsXG4gICAgICAgICdwb2ludHNhdHonOiAncG9pbnRzQXRaJyxcbiAgICAgICAgJ3ByZXNlcnZlYWxwaGEnOiAncHJlc2VydmVBbHBoYScsXG4gICAgICAgICdwcmVzZXJ2ZWFzcGVjdHJhdGlvJzogJ3ByZXNlcnZlQXNwZWN0UmF0aW8nLFxuICAgICAgICAncHJpbWl0aXZldW5pdHMnOiAncHJpbWl0aXZlVW5pdHMnLFxuICAgICAgICAncmVmeCc6ICdyZWZYJyxcbiAgICAgICAgJ3JlZnknOiAncmVmWScsXG4gICAgICAgICdyZXBlYXRjb3VudCc6ICdyZXBlYXRDb3VudCcsXG4gICAgICAgICdyZXBlYXRkdXInOiAncmVwZWF0RHVyJyxcbiAgICAgICAgJ3JlcXVpcmVkZXh0ZW5zaW9ucyc6ICdyZXF1aXJlZEV4dGVuc2lvbnMnLFxuICAgICAgICAncmVxdWlyZWRmZWF0dXJlcyc6ICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgICAgICAgJ3NwZWN1bGFyY29uc3RhbnQnOiAnc3BlY3VsYXJDb25zdGFudCcsXG4gICAgICAgICdzcGVjdWxhcmV4cG9uZW50JzogJ3NwZWN1bGFyRXhwb25lbnQnLFxuICAgICAgICAnc3ByZWFkbWV0aG9kJzogJ3NwcmVhZE1ldGhvZCcsXG4gICAgICAgICdzdGFydG9mZnNldCc6ICdzdGFydE9mZnNldCcsXG4gICAgICAgICdzdGRkZXZpYXRpb24nOiAnc3RkRGV2aWF0aW9uJyxcbiAgICAgICAgJ3N0aXRjaHRpbGVzJzogJ3N0aXRjaFRpbGVzJyxcbiAgICAgICAgJ3N1cmZhY2VzY2FsZSc6ICdzdXJmYWNlU2NhbGUnLFxuICAgICAgICAnc3lzdGVtbGFuZ3VhZ2UnOiAnc3lzdGVtTGFuZ3VhZ2UnLFxuICAgICAgICAndGFibGV2YWx1ZXMnOiAndGFibGVWYWx1ZXMnLFxuICAgICAgICAndGFyZ2V0eCc6ICd0YXJnZXRYJyxcbiAgICAgICAgJ3RhcmdldHknOiAndGFyZ2V0WScsXG4gICAgICAgICd0ZXh0bGVuZ3RoJzogJ3RleHRMZW5ndGgnLFxuICAgICAgICAndmlld2JveCc6ICd2aWV3Qm94JyxcbiAgICAgICAgJ3ZpZXd0YXJnZXQnOiAndmlld1RhcmdldCcsXG4gICAgICAgICd4Y2hhbm5lbHNlbGVjdG9yJzogJ3hDaGFubmVsU2VsZWN0b3InLFxuICAgICAgICAneWNoYW5uZWxzZWxlY3Rvcic6ICd5Q2hhbm5lbFNlbGVjdG9yJyxcbiAgICAgICAgJ3pvb21hbmRwYW4nOiAnem9vbUFuZFBhbidcbiAgICB9LFxuICAgIFhNTF9BVFRSU19BREpVU1RNRU5UX01BUCA9IHtcbiAgICAgICAgJ3hsaW5rOmFjdHVhdGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAnYWN0dWF0ZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneGxpbms6YXJjcm9sZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdhcmNyb2xlJywgbmFtZXNwYWNlOiBOUy5YTElOS30sXG4gICAgICAgICd4bGluazpocmVmJzoge3ByZWZpeDogJ3hsaW5rJywgbmFtZTogJ2hyZWYnLCBuYW1lc3BhY2U6IE5TLlhMSU5LfSxcbiAgICAgICAgJ3hsaW5rOnJvbGUnOiB7cHJlZml4OiAneGxpbmsnLCBuYW1lOiAncm9sZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneGxpbms6c2hvdyc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICdzaG93JywgbmFtZXNwYWNlOiBOUy5YTElOS30sXG4gICAgICAgICd4bGluazp0aXRsZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0aXRsZScsIG5hbWVzcGFjZTogTlMuWExJTkt9LFxuICAgICAgICAneGxpbms6dHlwZSc6IHtwcmVmaXg6ICd4bGluaycsIG5hbWU6ICd0eXBlJywgbmFtZXNwYWNlOiBOUy5YTElOS30sXG4gICAgICAgICd4bWw6YmFzZSc6IHtwcmVmaXg6ICd4bWwnLCBuYW1lOiAnYmFzZScsIG5hbWVzcGFjZTogTlMuWE1MfSxcbiAgICAgICAgJ3htbDpsYW5nJzoge3ByZWZpeDogJ3htbCcsIG5hbWU6ICdsYW5nJywgbmFtZXNwYWNlOiBOUy5YTUx9LFxuICAgICAgICAneG1sOnNwYWNlJzoge3ByZWZpeDogJ3htbCcsIG5hbWU6ICdzcGFjZScsIG5hbWVzcGFjZTogTlMuWE1MfSxcbiAgICAgICAgJ3htbG5zJzoge3ByZWZpeDogJycsIG5hbWU6ICd4bWxucycsIG5hbWVzcGFjZTogTlMuWE1MTlN9LFxuICAgICAgICAneG1sbnM6eGxpbmsnOiB7cHJlZml4OiAneG1sbnMnLCBuYW1lOiAneGxpbmsnLCBuYW1lc3BhY2U6IE5TLlhNTE5TfVxuXG4gICAgfTtcblxuLy9TVkcgdGFnIG5hbWVzIGFkanVzdG1lbnQgbWFwXG52YXIgU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCA9IGV4cG9ydHMuU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCA9IHtcbiAgICAnYWx0Z2x5cGgnOiAnYWx0R2x5cGgnLFxuICAgICdhbHRnbHlwaGRlZic6ICdhbHRHbHlwaERlZicsXG4gICAgJ2FsdGdseXBoaXRlbSc6ICdhbHRHbHlwaEl0ZW0nLFxuICAgICdhbmltYXRlY29sb3InOiAnYW5pbWF0ZUNvbG9yJyxcbiAgICAnYW5pbWF0ZW1vdGlvbic6ICdhbmltYXRlTW90aW9uJyxcbiAgICAnYW5pbWF0ZXRyYW5zZm9ybSc6ICdhbmltYXRlVHJhbnNmb3JtJyxcbiAgICAnY2xpcHBhdGgnOiAnY2xpcFBhdGgnLFxuICAgICdmZWJsZW5kJzogJ2ZlQmxlbmQnLFxuICAgICdmZWNvbG9ybWF0cml4JzogJ2ZlQ29sb3JNYXRyaXgnLFxuICAgICdmZWNvbXBvbmVudHRyYW5zZmVyJzogJ2ZlQ29tcG9uZW50VHJhbnNmZXInLFxuICAgICdmZWNvbXBvc2l0ZSc6ICdmZUNvbXBvc2l0ZScsXG4gICAgJ2ZlY29udm9sdmVtYXRyaXgnOiAnZmVDb252b2x2ZU1hdHJpeCcsXG4gICAgJ2ZlZGlmZnVzZWxpZ2h0aW5nJzogJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgICAnZmVkaXNwbGFjZW1lbnRtYXAnOiAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAgICdmZWRpc3RhbnRsaWdodCc6ICdmZURpc3RhbnRMaWdodCcsXG4gICAgJ2ZlZmxvb2QnOiAnZmVGbG9vZCcsXG4gICAgJ2ZlZnVuY2EnOiAnZmVGdW5jQScsXG4gICAgJ2ZlZnVuY2InOiAnZmVGdW5jQicsXG4gICAgJ2ZlZnVuY2cnOiAnZmVGdW5jRycsXG4gICAgJ2ZlZnVuY3InOiAnZmVGdW5jUicsXG4gICAgJ2ZlZ2F1c3NpYW5ibHVyJzogJ2ZlR2F1c3NpYW5CbHVyJyxcbiAgICAnZmVpbWFnZSc6ICdmZUltYWdlJyxcbiAgICAnZmVtZXJnZSc6ICdmZU1lcmdlJyxcbiAgICAnZmVtZXJnZW5vZGUnOiAnZmVNZXJnZU5vZGUnLFxuICAgICdmZW1vcnBob2xvZ3knOiAnZmVNb3JwaG9sb2d5JyxcbiAgICAnZmVvZmZzZXQnOiAnZmVPZmZzZXQnLFxuICAgICdmZXBvaW50bGlnaHQnOiAnZmVQb2ludExpZ2h0JyxcbiAgICAnZmVzcGVjdWxhcmxpZ2h0aW5nJzogJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICAgJ2Zlc3BvdGxpZ2h0JzogJ2ZlU3BvdExpZ2h0JyxcbiAgICAnZmV0aWxlJzogJ2ZlVGlsZScsXG4gICAgJ2ZldHVyYnVsZW5jZSc6ICdmZVR1cmJ1bGVuY2UnLFxuICAgICdmb3JlaWdub2JqZWN0JzogJ2ZvcmVpZ25PYmplY3QnLFxuICAgICdnbHlwaHJlZic6ICdnbHlwaFJlZicsXG4gICAgJ2xpbmVhcmdyYWRpZW50JzogJ2xpbmVhckdyYWRpZW50JyxcbiAgICAncmFkaWFsZ3JhZGllbnQnOiAncmFkaWFsR3JhZGllbnQnLFxuICAgICd0ZXh0cGF0aCc6ICd0ZXh0UGF0aCdcbn07XG5cbi8vVGFncyB0aGF0IGNhdXNlcyBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG52YXIgRVhJVFNfRk9SRUlHTl9DT05URU5UID0ge307XG5cbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkJJR10gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQkxPQ0tRVU9URV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQk9EWV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQlJdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkNFTlRFUl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuQ09ERV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRERdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkRJVl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRExdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkRUXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5FTV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuRU1CRURdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkgxXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5IMl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDNdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkg0XSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5INV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuSDZdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkhFQURdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkhSXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5JXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5JTUddID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLkxJXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5MSVNUSU5HXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5NRU5VXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5NRVRBXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5OT0JSXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5PTF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuUF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuUFJFXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5SVUJZXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TTUFMTF0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1BBTl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1RST05HXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5TVFJJS0VdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlNVQl0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuU1VQXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5UQUJMRV0gPSB0cnVlO1xuRVhJVFNfRk9SRUlHTl9DT05URU5UWyQuVFRdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlVdID0gdHJ1ZTtcbkVYSVRTX0ZPUkVJR05fQ09OVEVOVFskLlVMXSA9IHRydWU7XG5FWElUU19GT1JFSUdOX0NPTlRFTlRbJC5WQVJdID0gdHJ1ZTtcblxuLy9DaGVjayBleGl0IGZyb20gZm9yZWlnbiBjb250ZW50XG5leHBvcnRzLmNhdXNlc0V4aXQgPSBmdW5jdGlvbiAoc3RhcnRUYWdUb2tlbikge1xuICAgIHZhciB0biA9IHN0YXJ0VGFnVG9rZW4udGFnTmFtZTtcbiAgICB2YXIgaXNGb250V2l0aEF0dHJzID0gdG4gPT09ICQuRk9OVCAmJiAoVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5DT0xPUikgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5pemVyLmdldFRva2VuQXR0cihzdGFydFRhZ1Rva2VuLCBBVFRSUy5TSVpFKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbml6ZXIuZ2V0VG9rZW5BdHRyKHN0YXJ0VGFnVG9rZW4sIEFUVFJTLkZBQ0UpICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpc0ZvbnRXaXRoQXR0cnMgPyB0cnVlIDogRVhJVFNfRk9SRUlHTl9DT05URU5UW3RuXTtcbn07XG5cbi8vVG9rZW4gYWRqdXN0bWVudHNcbmV4cG9ydHMuYWRqdXN0VG9rZW5NYXRoTUxBdHRycyA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW4uYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRva2VuLmF0dHJzW2ldLm5hbWUgPT09IERFRklOSVRJT05fVVJMX0FUVFIpIHtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWUgPSBBREpVU1RFRF9ERUZJTklUSU9OX1VSTF9BVFRSO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnRzLmFkanVzdFRva2VuU1ZHQXR0cnMgPSBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2VuLmF0dHJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBhZGp1c3RlZEF0dHJOYW1lID0gU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQW3Rva2VuLmF0dHJzW2ldLm5hbWVdO1xuXG4gICAgICAgIGlmIChhZGp1c3RlZEF0dHJOYW1lKVxuICAgICAgICAgICAgdG9rZW4uYXR0cnNbaV0ubmFtZSA9IGFkanVzdGVkQXR0ck5hbWU7XG4gICAgfVxufTtcblxuZXhwb3J0cy5hZGp1c3RUb2tlblhNTEF0dHJzID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbi5hdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgYWRqdXN0ZWRBdHRyRW50cnkgPSBYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVBbdG9rZW4uYXR0cnNbaV0ubmFtZV07XG5cbiAgICAgICAgaWYgKGFkanVzdGVkQXR0ckVudHJ5KSB7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5wcmVmaXggPSBhZGp1c3RlZEF0dHJFbnRyeS5wcmVmaXg7XG4gICAgICAgICAgICB0b2tlbi5hdHRyc1tpXS5uYW1lID0gYWRqdXN0ZWRBdHRyRW50cnkubmFtZTtcbiAgICAgICAgICAgIHRva2VuLmF0dHJzW2ldLm5hbWVzcGFjZSA9IGFkanVzdGVkQXR0ckVudHJ5Lm5hbWVzcGFjZTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydHMuYWRqdXN0VG9rZW5TVkdUYWdOYW1lID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgdmFyIGFkanVzdGVkVGFnTmFtZSA9IFNWR19UQUdfTkFNRVNfQURKVVNUTUVOVF9NQVBbdG9rZW4udGFnTmFtZV07XG5cbiAgICBpZiAoYWRqdXN0ZWRUYWdOYW1lKVxuICAgICAgICB0b2tlbi50YWdOYW1lID0gYWRqdXN0ZWRUYWdOYW1lO1xufTtcblxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcbmZ1bmN0aW9uIGlzTWF0aE1MVGV4dEludGVncmF0aW9uUG9pbnQodG4sIG5zKSB7XG4gICAgcmV0dXJuIG5zID09PSBOUy5NQVRITUwgJiYgKHRuID09PSAkLk1JIHx8IHRuID09PSAkLk1PIHx8IHRuID09PSAkLk1OIHx8IHRuID09PSAkLk1TIHx8IHRuID09PSAkLk1URVhUKTtcbn1cblxuZnVuY3Rpb24gaXNIdG1sSW50ZWdyYXRpb25Qb2ludCh0biwgbnMsIGF0dHJzKSB7XG4gICAgaWYgKG5zID09PSBOUy5NQVRITUwgJiYgdG4gPT09ICQuQU5OT1RBVElPTl9YTUwpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGF0dHJzW2ldLm5hbWUgPT09IEFUVFJTLkVOQ09ESU5HKSB7XG4gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXR0cnNbaV0udmFsdWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gTUlNRV9UWVBFUy5URVhUX0hUTUwgfHwgdmFsdWUgPT09IE1JTUVfVFlQRVMuQVBQTElDQVRJT05fWE1MO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5zID09PSBOUy5TVkcgJiYgKHRuID09PSAkLkZPUkVJR05fT0JKRUNUIHx8IHRuID09PSAkLkRFU0MgfHwgdG4gPT09ICQuVElUTEUpO1xufVxuXG5leHBvcnRzLmlzSW50ZWdyYXRpb25Qb2ludCA9IGZ1bmN0aW9uICh0biwgbnMsIGF0dHJzLCBmb3JlaWduTlMpIHtcbiAgICBpZiAoKCFmb3JlaWduTlMgfHwgZm9yZWlnbk5TID09PSBOUy5IVE1MKSAmJiBpc0h0bWxJbnRlZ3JhdGlvblBvaW50KHRuLCBucywgYXR0cnMpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICgoIWZvcmVpZ25OUyB8fCBmb3JlaWduTlMgPT09IE5TLk1BVEhNTCkgJiYgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCh0biwgbnMpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIHJldHVybiBmYWxzZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XHJcblxyXG52YXIgVG9rZW5pemVyID0gcmVxdWlyZSgnLi4vdG9rZW5pemVyJyksXHJcbiAgICBPcGVuRWxlbWVudFN0YWNrID0gcmVxdWlyZSgnLi9vcGVuX2VsZW1lbnRfc3RhY2snKSxcclxuICAgIEZvcm1hdHRpbmdFbGVtZW50TGlzdCA9IHJlcXVpcmUoJy4vZm9ybWF0dGluZ19lbGVtZW50X2xpc3QnKSxcclxuICAgIGxvY2F0aW9uSW5mb01peGluID0gcmVxdWlyZSgnLi4vbG9jYXRpb25faW5mby9wYXJzZXJfbWl4aW4nKSxcclxuICAgIGRlZmF1bHRUcmVlQWRhcHRlciA9IHJlcXVpcmUoJy4uL3RyZWVfYWRhcHRlcnMvZGVmYXVsdCcpLFxyXG4gICAgZG9jdHlwZSA9IHJlcXVpcmUoJy4uL2NvbW1vbi9kb2N0eXBlJyksXHJcbiAgICBmb3JlaWduQ29udGVudCA9IHJlcXVpcmUoJy4uL2NvbW1vbi9mb3JlaWduX2NvbnRlbnQnKSxcclxuICAgIG1lcmdlT3B0aW9ucyA9IHJlcXVpcmUoJy4uL2NvbW1vbi9tZXJnZV9vcHRpb25zJyksXHJcbiAgICBVTklDT0RFID0gcmVxdWlyZSgnLi4vY29tbW9uL3VuaWNvZGUnKSxcclxuICAgIEhUTUwgPSByZXF1aXJlKCcuLi9jb21tb24vaHRtbCcpO1xyXG5cclxuLy9BbGlhc2VzXHJcbnZhciAkID0gSFRNTC5UQUdfTkFNRVMsXHJcbiAgICBOUyA9IEhUTUwuTkFNRVNQQUNFUyxcclxuICAgIEFUVFJTID0gSFRNTC5BVFRSUztcclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQYXJzZXJPcHRpb25zXHJcbiAqXHJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gW2xvY2F0aW9uSW5mbz1mYWxzZV0gLSBFbmFibGVzIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgbm9kZXMuXHJcbiAqIFdoZW4gZW5hYmxlZCwgZWFjaCBub2RlIChleGNlcHQgcm9vdCBub2RlKSBoYXMgdGhlIGBfX2xvY2F0aW9uYCBwcm9wZXJ0eS4gSW4gY2FzZSB0aGUgbm9kZSBpcyBub3QgYW4gZW1wdHkgZWxlbWVudCxcclxuICogYF9fbG9jYXRpb25gIHdpbGwgYmUge0BsaW5rIEVsZW1lbnRMb2NhdGlvbkluZm99IG9iamVjdCwgb3RoZXJ3aXNlIGl0J3Mge0BsaW5rIExvY2F0aW9uSW5mb30uXHJcbiAqIElmIHRoZSBlbGVtZW50IHdhcyBpbXBsaWNpdGx5IGNyZWF0ZWQgYnkgdGhlIHBhcnNlciBpdCdzIGBfX2xvY2F0aW9uYCBwcm9wZXJ0eSB3aWxsIGJlIGBudWxsYC5cclxuICpcclxuICogQHByb3BlcnR5IHtUcmVlQWRhcHRlcn0gW3RyZWVBZGFwdGVyPXBhcnNlNS50cmVlQWRhcHRlcnMuZGVmYXVsdF0gLSBTcGVjaWZpZXMgdGhlIHJlc3VsdGluZyB0cmVlIGZvcm1hdC5cclxuICovXHJcbnZhciBERUZBVUxUX09QVElPTlMgPSB7XHJcbiAgICBsb2NhdGlvbkluZm86IGZhbHNlLFxyXG4gICAgdHJlZUFkYXB0ZXI6IGRlZmF1bHRUcmVlQWRhcHRlclxyXG59O1xyXG5cclxuLy9NaXNjIGNvbnN0YW50c1xyXG52YXIgSElEREVOX0lOUFVUX1RZUEUgPSAnaGlkZGVuJztcclxuXHJcbi8vQWRvcHRpb24gYWdlbmN5IGxvb3BzIGl0ZXJhdGlvbiBjb3VudFxyXG52YXIgQUFfT1VURVJfTE9PUF9JVEVSID0gOCxcclxuICAgIEFBX0lOTkVSX0xPT1BfSVRFUiA9IDM7XHJcblxyXG4vL0luc2VydGlvbiBtb2Rlc1xyXG52YXIgSU5JVElBTF9NT0RFID0gJ0lOSVRJQUxfTU9ERScsXHJcbiAgICBCRUZPUkVfSFRNTF9NT0RFID0gJ0JFRk9SRV9IVE1MX01PREUnLFxyXG4gICAgQkVGT1JFX0hFQURfTU9ERSA9ICdCRUZPUkVfSEVBRF9NT0RFJyxcclxuICAgIElOX0hFQURfTU9ERSA9ICdJTl9IRUFEX01PREUnLFxyXG4gICAgQUZURVJfSEVBRF9NT0RFID0gJ0FGVEVSX0hFQURfTU9ERScsXHJcbiAgICBJTl9CT0RZX01PREUgPSAnSU5fQk9EWV9NT0RFJyxcclxuICAgIFRFWFRfTU9ERSA9ICdURVhUX01PREUnLFxyXG4gICAgSU5fVEFCTEVfTU9ERSA9ICdJTl9UQUJMRV9NT0RFJyxcclxuICAgIElOX1RBQkxFX1RFWFRfTU9ERSA9ICdJTl9UQUJMRV9URVhUX01PREUnLFxyXG4gICAgSU5fQ0FQVElPTl9NT0RFID0gJ0lOX0NBUFRJT05fTU9ERScsXHJcbiAgICBJTl9DT0xVTU5fR1JPVVBfTU9ERSA9ICdJTl9DT0xVTU5fR1JPVVBfTU9ERScsXHJcbiAgICBJTl9UQUJMRV9CT0RZX01PREUgPSAnSU5fVEFCTEVfQk9EWV9NT0RFJyxcclxuICAgIElOX1JPV19NT0RFID0gJ0lOX1JPV19NT0RFJyxcclxuICAgIElOX0NFTExfTU9ERSA9ICdJTl9DRUxMX01PREUnLFxyXG4gICAgSU5fU0VMRUNUX01PREUgPSAnSU5fU0VMRUNUX01PREUnLFxyXG4gICAgSU5fU0VMRUNUX0lOX1RBQkxFX01PREUgPSAnSU5fU0VMRUNUX0lOX1RBQkxFX01PREUnLFxyXG4gICAgSU5fVEVNUExBVEVfTU9ERSA9ICdJTl9URU1QTEFURV9NT0RFJyxcclxuICAgIEFGVEVSX0JPRFlfTU9ERSA9ICdBRlRFUl9CT0RZX01PREUnLFxyXG4gICAgSU5fRlJBTUVTRVRfTU9ERSA9ICdJTl9GUkFNRVNFVF9NT0RFJyxcclxuICAgIEFGVEVSX0ZSQU1FU0VUX01PREUgPSAnQUZURVJfRlJBTUVTRVRfTU9ERScsXHJcbiAgICBBRlRFUl9BRlRFUl9CT0RZX01PREUgPSAnQUZURVJfQUZURVJfQk9EWV9NT0RFJyxcclxuICAgIEFGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREUgPSAnQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERSc7XHJcblxyXG4vL0luc2VydGlvbiBtb2RlIHJlc2V0IG1hcFxyXG52YXIgSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQID0ge307XHJcblxyXG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5UUl0gPSBJTl9ST1dfTU9ERTtcclxuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEJPRFldID1cclxuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEhFQURdID1cclxuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuVEZPT1RdID0gSU5fVEFCTEVfQk9EWV9NT0RFO1xyXG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5DQVBUSU9OXSA9IElOX0NBUFRJT05fTU9ERTtcclxuSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQWyQuQ09MR1JPVVBdID0gSU5fQ09MVU1OX0dST1VQX01PREU7XHJcbklOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLlRBQkxFXSA9IElOX1RBQkxFX01PREU7XHJcbklOU0VSVElPTl9NT0RFX1JFU0VUX01BUFskLkJPRFldID0gSU5fQk9EWV9NT0RFO1xyXG5JTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbJC5GUkFNRVNFVF0gPSBJTl9GUkFNRVNFVF9NT0RFO1xyXG5cclxuLy9UZW1wbGF0ZSBpbnNlcnRpb24gbW9kZSBzd2l0Y2ggbWFwXHJcbnZhciBURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQID0ge307XHJcblxyXG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ0FQVElPTl0gPVxyXG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuQ09MR1JPVVBdID1cclxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRCT0RZXSA9XHJcblRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5URk9PVF0gPVxyXG5URU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQWyQuVEhFQURdID0gSU5fVEFCTEVfTU9ERTtcclxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLkNPTF0gPSBJTl9DT0xVTU5fR1JPVVBfTU9ERTtcclxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlRSXSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcclxuVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUFskLlREXSA9XHJcblRFTVBMQVRFX0lOU0VSVElPTl9NT0RFX1NXSVRDSF9NQVBbJC5USF0gPSBJTl9ST1dfTU9ERTtcclxuXHJcbi8vVG9rZW4gaGFuZGxlcnMgbWFwIGZvciBpbnNlcnRpb24gbW9kZXNcclxudmFyIF8gPSB7fTtcclxuXHJcbl9bSU5JVElBTF9NT0RFXSA9IHt9O1xyXG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW0lOSVRJQUxfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTtcclxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XHJcbl9bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBkb2N0eXBlSW5Jbml0aWFsTW9kZTtcclxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID1cclxuX1tJTklUSUFMX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9XHJcbl9bSU5JVElBTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHRva2VuSW5Jbml0aWFsTW9kZTtcclxuXHJcbl9bQkVGT1JFX0hUTUxfTU9ERV0gPSB7fTtcclxuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XHJcbl9bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuQmVmb3JlSHRtbDtcclxuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bQkVGT1JFX0hUTUxfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQmVmb3JlSHRtbDtcclxuX1tCRUZPUkVfSFRNTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdCZWZvcmVIdG1sO1xyXG5fW0JFRk9SRV9IVE1MX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5CZWZvcmVIdG1sO1xyXG5cclxuX1tCRUZPUkVfSEVBRF9NT0RFXSA9IHt9O1xyXG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gdG9rZW5CZWZvcmVIZWFkO1xyXG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tCRUZPUkVfSEVBRF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xyXG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdCZWZvcmVIZWFkO1xyXG5fW0JFRk9SRV9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0JlZm9yZUhlYWQ7XHJcbl9bQkVGT1JFX0hFQURfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSB0b2tlbkJlZm9yZUhlYWQ7XHJcblxyXG5fW0lOX0hFQURfTU9ERV0gPSB7fTtcclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkluSGVhZDtcclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xyXG5fW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX0hFQURfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luSGVhZDtcclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luSGVhZDtcclxuX1tJTl9IRUFEX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5JbkhlYWQ7XHJcblxyXG5fW0FGVEVSX0hFQURfTU9ERV0gPSB7fTtcclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkFmdGVySGVhZDtcclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xyXG5fW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0FGVEVSX0hFQURfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0FmdGVySGVhZDtcclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVySGVhZDtcclxuX1tBRlRFUl9IRUFEX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5BZnRlckhlYWQ7XHJcblxyXG5fW0lOX0JPRFlfTU9ERV0gPSB7fTtcclxuX1tJTl9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gY2hhcmFjdGVySW5Cb2R5O1xyXG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7XHJcbl9bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xyXG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5Cb2R5O1xyXG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Cb2R5O1xyXG5fW0lOX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XHJcblxyXG5fW1RFWFRfTU9ERV0gPSB7fTtcclxuX1tURVhUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tURVhUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW1RFWFRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XHJcbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPVxyXG5fW1RFWFRfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID1cclxuX1tURVhUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRleHQ7XHJcbl9bVEVYVF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluVGV4dDtcclxuXHJcbl9bSU5fVEFCTEVfTU9ERV0gPSB7fTtcclxuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XHJcbl9bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9XHJcbl9bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGU7XHJcbl9bSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5UYWJsZTtcclxuX1tJTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlO1xyXG5fW0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5O1xyXG5cclxuX1tJTl9UQUJMRV9URVhUX01PREVdID0ge307XHJcbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGVUZXh0O1xyXG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJblRhYmxlVGV4dDtcclxuX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9XHJcbl9bSU5fVEFCTEVfVEVYVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPVxyXG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPVxyXG5fW0lOX1RBQkxFX1RFWFRfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID1cclxuX1tJTl9UQUJMRV9URVhUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gdG9rZW5JblRhYmxlVGV4dDtcclxuXHJcbl9bSU5fQ0FQVElPTl9NT0RFXSA9IHt9O1xyXG5fW0lOX0NBUFRJT05fTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7XHJcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcclxuX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XHJcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9DQVBUSU9OX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkNhcHRpb247XHJcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNhcHRpb247XHJcbl9bSU5fQ0FQVElPTl9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcclxuXHJcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdID0ge307XHJcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuSW5Db2x1bW5Hcm91cDtcclxuX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XHJcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XHJcbl9bSU5fQ09MVU1OX0dST1VQX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX0NPTFVNTl9HUk9VUF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5Db2x1bW5Hcm91cDtcclxuX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5Db2x1bW5Hcm91cDtcclxuX1tJTl9DT0xVTU5fR1JPVVBfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBlb2ZJbkJvZHk7XHJcblxyXG5fW0lOX1RBQkxFX0JPRFlfTU9ERV0gPSB7fTtcclxuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGU7XHJcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xyXG5fW0lOX1RBQkxFX0JPRFlfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5UYWJsZUJvZHk7XHJcbl9bSU5fVEFCTEVfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRhYmxlQm9keTtcclxuX1tJTl9UQUJMRV9CT0RZX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5O1xyXG5cclxuX1tJTl9ST1dfTU9ERV0gPSB7fTtcclxuX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID1cclxuX1tJTl9ST1dfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluVGFibGU7XHJcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XHJcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5Sb3c7XHJcbl9bSU5fUk9XX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0luUm93O1xyXG5fW0lOX1JPV19NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcclxuXHJcbl9bSU5fQ0VMTF9NT0RFXSA9IHt9O1xyXG5fW0lOX0NFTExfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBjaGFyYWN0ZXJJbkJvZHk7XHJcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcclxuX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnQ7XHJcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9DRUxMX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJbkNlbGw7XHJcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkNlbGw7XHJcbl9bSU5fQ0VMTF9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcclxuXHJcbl9bSU5fU0VMRUNUX01PREVdID0ge307XHJcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcclxuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0lOX1NFTEVDVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcclxuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdJblNlbGVjdDtcclxuX1tJTl9TRUxFQ1RfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5TZWxlY3Q7XHJcbl9bSU5fU0VMRUNUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5Cb2R5O1xyXG5cclxuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV0gPSB7fTtcclxuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xyXG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fU0VMRUNUX0lOX1RBQkxFX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSBpbnNlcnRDaGFyYWN0ZXJzO1xyXG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xyXG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTl0gPSBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZTtcclxuX1tJTl9TRUxFQ1RfSU5fVEFCTEVfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gZW5kVGFnSW5TZWxlY3RJblRhYmxlO1xyXG5fW0lOX1NFTEVDVF9JTl9UQUJMRV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IGVvZkluQm9keTtcclxuXHJcbl9bSU5fVEVNUExBVEVfTU9ERV0gPSB7fTtcclxuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9IGNoYXJhY3RlckluQm9keTtcclxuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7XHJcbl9bSU5fVEVNUExBVEVfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5UZW1wbGF0ZTtcclxuX1tJTl9URU1QTEFURV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJblRlbXBsYXRlO1xyXG5fW0lOX1RFTVBMQVRFX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gZW9mSW5UZW1wbGF0ZTtcclxuXHJcbl9bQUZURVJfQk9EWV9NT0RFXSA9IHt9O1xyXG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuQWZ0ZXJCb2R5O1xyXG5fW0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IHdoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHk7XHJcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQ7XHJcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tBRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckJvZHk7XHJcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdBZnRlckJvZHk7XHJcbl9bQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU9GX1RPS0VOXSA9IHN0b3BQYXJzaW5nO1xyXG5cclxuX1tJTl9GUkFNRVNFVF9NT0RFXSA9IHt9O1xyXG5fW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DSEFSQUNURVJfVE9LRU5dID1cclxuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOXSA9IGluc2VydENoYXJhY3RlcnM7XHJcbl9bSU5fRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNPTU1FTlRfVE9LRU5dID0gYXBwZW5kQ29tbWVudDtcclxuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRE9DVFlQRV9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnSW5GcmFtZXNldDtcclxuX1tJTl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSBlbmRUYWdJbkZyYW1lc2V0O1xyXG5fW0lOX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FT0ZfVE9LRU5dID0gc3RvcFBhcnNpbmc7XHJcblxyXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdID0ge307XHJcbl9bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPVxyXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5OVUxMX0NIQVJBQ1RFUl9UT0tFTl0gPSBpZ25vcmVUb2tlbjtcclxuX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gaW5zZXJ0Q2hhcmFjdGVycztcclxuX1tBRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTl0gPSBhcHBlbmRDb21tZW50O1xyXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckZyYW1lc2V0O1xyXG5fW0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5FTkRfVEFHX1RPS0VOXSA9IGVuZFRhZ0FmdGVyRnJhbWVzZXQ7XHJcbl9bQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZztcclxuXHJcbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXSA9IHt9O1xyXG5fW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTl0gPSB0b2tlbkFmdGVyQWZ0ZXJCb2R5O1xyXG5fW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IHRva2VuQWZ0ZXJBZnRlckJvZHk7XHJcbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuV0hJVEVTUEFDRV9DSEFSQUNURVJfVE9LRU5dID0gd2hpdGVzcGFjZUNoYXJhY3RlckluQm9keTtcclxuX1tBRlRFUl9BRlRFUl9CT0RZX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnRUb0RvY3VtZW50O1xyXG5fW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkRPQ1RZUEVfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOXSA9IHN0YXJ0VGFnQWZ0ZXJBZnRlckJvZHk7XHJcbl9bQUZURVJfQUZURVJfQk9EWV9NT0RFXVtUb2tlbml6ZXIuRU5EX1RBR19UT0tFTl0gPSB0b2tlbkFmdGVyQWZ0ZXJCb2R5O1xyXG5fW0FGVEVSX0FGVEVSX0JPRFlfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZztcclxuXHJcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV0gPSB7fTtcclxuX1tBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFXVtUb2tlbml6ZXIuQ0hBUkFDVEVSX1RPS0VOXSA9XHJcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLk5VTExfQ0hBUkFDVEVSX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTl0gPSB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5O1xyXG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5DT01NRU5UX1RPS0VOXSA9IGFwcGVuZENvbW1lbnRUb0RvY3VtZW50O1xyXG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5ET0NUWVBFX1RPS0VOXSA9IGlnbm9yZVRva2VuO1xyXG5fW0FGVEVSX0FGVEVSX0ZSQU1FU0VUX01PREVdW1Rva2VuaXplci5TVEFSVF9UQUdfVE9LRU5dID0gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQ7XHJcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVORF9UQUdfVE9LRU5dID0gaWdub3JlVG9rZW47XHJcbl9bQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERV1bVG9rZW5pemVyLkVPRl9UT0tFTl0gPSBzdG9wUGFyc2luZztcclxuXHJcblxyXG4vL1BhcnNlclxyXG52YXIgUGFyc2VyID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xyXG4gICAgdGhpcy5vcHRpb25zID0gbWVyZ2VPcHRpb25zKERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy50cmVlQWRhcHRlciA9IHRoaXMub3B0aW9ucy50cmVlQWRhcHRlcjtcclxuICAgIHRoaXMucGVuZGluZ1NjcmlwdCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sb2NhdGlvbkluZm8pXHJcbiAgICAgICAgbG9jYXRpb25JbmZvTWl4aW4uYXNzaWduKHRoaXMpO1xyXG59O1xyXG5cclxuLy8gQVBJXHJcblBhcnNlci5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoaHRtbCkge1xyXG4gICAgdmFyIGRvY3VtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudCgpO1xyXG5cclxuICAgIHRoaXMuX2Jvb3RzdHJhcChkb2N1bWVudCwgbnVsbCk7XHJcbiAgICB0aGlzLnRva2VuaXplci53cml0ZShodG1sLCB0cnVlKTtcclxuICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKG51bGwsIG51bGwpO1xyXG5cclxuICAgIHJldHVybiBkb2N1bWVudDtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUucGFyc2VGcmFnbWVudCA9IGZ1bmN0aW9uIChodG1sLCBmcmFnbWVudENvbnRleHQpIHtcclxuICAgIC8vTk9URTogdXNlIDx0ZW1wbGF0ZT4gZWxlbWVudCBhcyBhIGZyYWdtZW50IGNvbnRleHQgaWYgY29udGV4dCBlbGVtZW50IHdhcyBub3QgcHJvdmlkZWQsXHJcbiAgICAvL3NvIHdlIHdpbGwgcGFyc2UgaW4gXCJmb3JnaXZpbmdcIiBtYW5uZXJcclxuICAgIGlmICghZnJhZ21lbnRDb250ZXh0KVxyXG4gICAgICAgIGZyYWdtZW50Q29udGV4dCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCgkLlRFTVBMQVRFLCBOUy5IVE1MLCBbXSk7XHJcblxyXG4gICAgLy9OT1RFOiBjcmVhdGUgZmFrZSBlbGVtZW50IHdoaWNoIHdpbGwgYmUgdXNlZCBhcyAnZG9jdW1lbnQnIGZvciBmcmFnbWVudCBwYXJzaW5nLlxyXG4gICAgLy9UaGlzIGlzIGltcG9ydGFudCBmb3IganNkb20gdGhlcmUgJ2RvY3VtZW50JyBjYW4ndCBiZSByZWNyZWF0ZWQsIHRoZXJlZm9yZVxyXG4gICAgLy9mcmFnbWVudCBwYXJzaW5nIGNhdXNlcyBtZXNzaW5nIG9mIHRoZSBtYWluIGBkb2N1bWVudGAuXHJcbiAgICB2YXIgZG9jdW1lbnRNb2NrID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVFbGVtZW50KCdkb2N1bWVudG1vY2snLCBOUy5IVE1MLCBbXSk7XHJcblxyXG4gICAgdGhpcy5fYm9vdHN0cmFwKGRvY3VtZW50TW9jaywgZnJhZ21lbnRDb250ZXh0KTtcclxuXHJcbiAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGZyYWdtZW50Q29udGV4dCkgPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgdGhpcy5fcHVzaFRtcGxJbnNlcnRpb25Nb2RlKElOX1RFTVBMQVRFX01PREUpO1xyXG5cclxuICAgIHRoaXMuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcoKTtcclxuICAgIHRoaXMuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xyXG4gICAgdGhpcy5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XHJcbiAgICB0aGlzLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0KCk7XHJcbiAgICB0aGlzLnRva2VuaXplci53cml0ZShodG1sLCB0cnVlKTtcclxuICAgIHRoaXMuX3J1blBhcnNpbmdMb29wKG51bGwsIG51bGwpO1xyXG5cclxuICAgIHZhciByb290RWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0Rmlyc3RDaGlsZChkb2N1bWVudE1vY2spLFxyXG4gICAgICAgIGZyYWdtZW50ID0gdGhpcy50cmVlQWRhcHRlci5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XHJcblxyXG4gICAgdGhpcy5fYWRvcHROb2Rlcyhyb290RWxlbWVudCwgZnJhZ21lbnQpO1xyXG5cclxuICAgIHJldHVybiBmcmFnbWVudDtcclxufTtcclxuXHJcbi8vQm9vdHN0cmFwIHBhcnNlclxyXG5QYXJzZXIucHJvdG90eXBlLl9ib290c3RyYXAgPSBmdW5jdGlvbiAoZG9jdW1lbnQsIGZyYWdtZW50Q29udGV4dCkge1xyXG4gICAgdGhpcy50b2tlbml6ZXIgPSBuZXcgVG9rZW5pemVyKHRoaXMub3B0aW9ucyk7XHJcblxyXG4gICAgdGhpcy5zdG9wcGVkID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5JVElBTF9NT0RFO1xyXG4gICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSAnJztcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICB0aGlzLmZyYWdtZW50Q29udGV4dCA9IGZyYWdtZW50Q29udGV4dDtcclxuXHJcbiAgICB0aGlzLmhlYWRFbGVtZW50ID0gbnVsbDtcclxuICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBudWxsO1xyXG5cclxuICAgIHRoaXMub3BlbkVsZW1lbnRzID0gbmV3IE9wZW5FbGVtZW50U3RhY2sodGhpcy5kb2N1bWVudCwgdGhpcy50cmVlQWRhcHRlcik7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyA9IG5ldyBGb3JtYXR0aW5nRWxlbWVudExpc3QodGhpcy50cmVlQWRhcHRlcik7XHJcblxyXG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrID0gW107XHJcbiAgICB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AgPSAtMTtcclxuICAgIHRoaXMuY3VycmVudFRtcGxJbnNlcnRpb25Nb2RlID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcclxuICAgIHRoaXMuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuZnJhbWVzZXRPayA9IHRydWU7XHJcbiAgICB0aGlzLnNraXBOZXh0TmV3TGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb3N0ZXJQYXJlbnRpbmdFbmFibGVkID0gZmFsc2U7XHJcbn07XHJcblxyXG4vL1BhcnNpbmcgbG9vcFxyXG5QYXJzZXIucHJvdG90eXBlLl9ydW5QYXJzaW5nTG9vcCA9IGZ1bmN0aW9uICh3cml0ZUNhbGxiYWNrLCBzY3JpcHRIYW5kbGVyKSB7XHJcbiAgICB3aGlsZSAoIXRoaXMuc3RvcHBlZCkge1xyXG4gICAgICAgIHRoaXMuX3NldHVwVG9rZW5pemVyQ0RBVEFNb2RlKCk7XHJcblxyXG4gICAgICAgIHZhciB0b2tlbiA9IHRoaXMudG9rZW5pemVyLmdldE5leHRUb2tlbigpO1xyXG5cclxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkhJQkVSTkFUSU9OX1RPS0VOKVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2tpcE5leHROZXdMaW5lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2tpcE5leHROZXdMaW5lID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOICYmIHRva2VuLmNoYXJzWzBdID09PSAnXFxuJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLmNoYXJzLmxlbmd0aCA9PT0gMSlcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgICAgICB0b2tlbi5jaGFycyA9IHRva2VuLmNoYXJzLnN1YnN0cigxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fcHJvY2Vzc0lucHV0VG9rZW4odG9rZW4pO1xyXG5cclxuICAgICAgICBpZiAoc2NyaXB0SGFuZGxlciAmJiB0aGlzLnBlbmRpbmdTY3JpcHQpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzY3JpcHRIYW5kbGVyICYmIHRoaXMucGVuZGluZ1NjcmlwdCkge1xyXG4gICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLnBlbmRpbmdTY3JpcHQ7XHJcblxyXG4gICAgICAgIHRoaXMucGVuZGluZ1NjcmlwdCA9IG51bGw7XHJcblxyXG4gICAgICAgIHNjcmlwdEhhbmRsZXIoc2NyaXB0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh3cml0ZUNhbGxiYWNrKVxyXG4gICAgICAgIHdyaXRlQ2FsbGJhY2soKTtcclxufTtcclxuXHJcbi8vVGV4dCBwYXJzaW5nXHJcblBhcnNlci5wcm90b3R5cGUuX3NldHVwVG9rZW5pemVyQ0RBVEFNb2RlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGN1cnJlbnQgPSB0aGlzLl9nZXRBZGp1c3RlZEN1cnJlbnRFbGVtZW50KCk7XHJcblxyXG4gICAgdGhpcy50b2tlbml6ZXIuYWxsb3dDREFUQSA9IGN1cnJlbnQgJiYgY3VycmVudCAhPT0gdGhpcy5kb2N1bWVudCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGN1cnJlbnQpICE9PSBOUy5IVE1MICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludChjdXJyZW50KTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX3N3aXRjaFRvVGV4dFBhcnNpbmcgPSBmdW5jdGlvbiAoY3VycmVudFRva2VuLCBuZXh0VG9rZW5pemVyU3RhdGUpIHtcclxuICAgIHRoaXMuX2luc2VydEVsZW1lbnQoY3VycmVudFRva2VuLCBOUy5IVE1MKTtcclxuICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gbmV4dFRva2VuaXplclN0YXRlO1xyXG4gICAgdGhpcy5vcmlnaW5hbEluc2VydGlvbk1vZGUgPSB0aGlzLmluc2VydGlvbk1vZGU7XHJcbiAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBURVhUX01PREU7XHJcbn07XHJcblxyXG4vL0ZyYWdtZW50IHBhcnNpbmdcclxuUGFyc2VyLnByb3RvdHlwZS5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB0aGlzLm9wZW5FbGVtZW50cy5zdGFja1RvcCA9PT0gMCAmJiB0aGlzLmZyYWdtZW50Q29udGV4dCA/XHJcbiAgICAgICAgICAgdGhpcy5mcmFnbWVudENvbnRleHQgOlxyXG4gICAgICAgICAgIHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9maW5kRm9ybUluRnJhZ21lbnRDb250ZXh0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG5vZGUgPSB0aGlzLmZyYWdtZW50Q29udGV4dDtcclxuXHJcbiAgICBkbyB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShub2RlKSA9PT0gJC5GT1JNKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnQgPSBub2RlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmdldFBhcmVudE5vZGUobm9kZSk7XHJcbiAgICB9IHdoaWxlIChub2RlKTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmcgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkodGhpcy5mcmFnbWVudENvbnRleHQpID09PSBOUy5IVE1MKSB7XHJcbiAgICAgICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHRoaXMuZnJhZ21lbnRDb250ZXh0KTtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSAkLlRJVExFIHx8IHRuID09PSAkLlRFWFRBUkVBKVxyXG4gICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlJDREFUQTtcclxuXHJcbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUgfHwgdG4gPT09ICQuWE1QIHx8IHRuID09PSAkLklGUkFNRSB8fFxyXG4gICAgICAgICAgICAgICAgIHRuID09PSAkLk5PRU1CRUQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuTk9TQ1JJUFQpXHJcbiAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUkFXVEVYVDtcclxuXHJcbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKVxyXG4gICAgICAgICAgICB0aGlzLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBO1xyXG5cclxuICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QTEFJTlRFWFQpXHJcbiAgICAgICAgICAgIHRoaXMudG9rZW5pemVyLnN0YXRlID0gVG9rZW5pemVyLk1PREUuUExBSU5URVhUO1xyXG4gICAgfVxyXG59O1xyXG5cclxuLy9UcmVlIG11dGF0aW9uXHJcblBhcnNlci5wcm90b3R5cGUuX3NldERvY3VtZW50VHlwZSA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdGhpcy50cmVlQWRhcHRlci5zZXREb2N1bWVudFR5cGUodGhpcy5kb2N1bWVudCwgdG9rZW4ubmFtZSwgdG9rZW4ucHVibGljSWQsIHRva2VuLnN5c3RlbUlkKTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2F0dGFjaEVsZW1lbnRUb1RyZWUgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgaWYgKHRoaXMuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uKCkpXHJcbiAgICAgICAgdGhpcy5fZm9zdGVyUGFyZW50RWxlbWVudChlbGVtZW50KTtcclxuXHJcbiAgICBlbHNlIHtcclxuICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50IHx8IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBlbGVtZW50KTtcclxuICAgIH1cclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2FwcGVuZEVsZW1lbnQgPSBmdW5jdGlvbiAodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xyXG4gICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XHJcblxyXG4gICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50KTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2luc2VydEVsZW1lbnQgPSBmdW5jdGlvbiAodG9rZW4sIG5hbWVzcGFjZVVSSSkge1xyXG4gICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbmFtZXNwYWNlVVJJLCB0b2tlbi5hdHRycyk7XHJcblxyXG4gICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50KTtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9pbnNlcnRGYWtlRWxlbWVudCA9IGZ1bmN0aW9uICh0YWdOYW1lKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXMudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudCh0YWdOYW1lLCBOUy5IVE1MLCBbXSk7XHJcblxyXG4gICAgdGhpcy5fYXR0YWNoRWxlbWVudFRvVHJlZShlbGVtZW50KTtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9pbnNlcnRUZW1wbGF0ZSA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgdmFyIHRtcGwgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgTlMuSFRNTCwgdG9rZW4uYXR0cnMpLFxyXG4gICAgICAgIGNvbnRlbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcclxuXHJcbiAgICB0aGlzLnRyZWVBZGFwdGVyLnNldFRlbXBsYXRlQ29udGVudCh0bXBsLCBjb250ZW50KTtcclxuICAgIHRoaXMuX2F0dGFjaEVsZW1lbnRUb1RyZWUodG1wbCk7XHJcbiAgICB0aGlzLm9wZW5FbGVtZW50cy5wdXNoKHRtcGwpO1xyXG59O1xyXG5cclxuUGFyc2VyLnByb3RvdHlwZS5faW5zZXJ0RmFrZVJvb3RFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGVsZW1lbnQgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQoJC5IVE1MLCBOUy5IVE1MLCBbXSk7XHJcblxyXG4gICAgdGhpcy50cmVlQWRhcHRlci5hcHBlbmRDaGlsZCh0aGlzLm9wZW5FbGVtZW50cy5jdXJyZW50LCBlbGVtZW50KTtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLnB1c2goZWxlbWVudCk7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9hcHBlbmRDb21tZW50Tm9kZSA9IGZ1bmN0aW9uICh0b2tlbiwgcGFyZW50KSB7XHJcbiAgICB2YXIgY29tbWVudE5vZGUgPSB0aGlzLnRyZWVBZGFwdGVyLmNyZWF0ZUNvbW1lbnROb2RlKHRva2VuLmRhdGEpO1xyXG5cclxuICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQocGFyZW50LCBjb21tZW50Tm9kZSk7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9pbnNlcnRDaGFyYWN0ZXJzID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICBpZiAodGhpcy5fc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24oKSlcclxuICAgICAgICB0aGlzLl9mb3N0ZXJQYXJlbnRUZXh0KHRva2VuLmNoYXJzKTtcclxuXHJcbiAgICBlbHNlIHtcclxuICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50IHx8IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dChwYXJlbnQsIHRva2VuLmNoYXJzKTtcclxuICAgIH1cclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2Fkb3B0Tm9kZXMgPSBmdW5jdGlvbiAoZG9ub3IsIHJlY2lwaWVudCkge1xyXG4gICAgd2hpbGUgKHRydWUpIHtcclxuICAgICAgICB2YXIgY2hpbGQgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEZpcnN0Q2hpbGQoZG9ub3IpO1xyXG5cclxuICAgICAgICBpZiAoIWNoaWxkKVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgdGhpcy50cmVlQWRhcHRlci5kZXRhY2hOb2RlKGNoaWxkKTtcclxuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKHJlY2lwaWVudCwgY2hpbGQpO1xyXG4gICAgfVxyXG59O1xyXG5cclxuLy9Ub2tlbiBwcm9jZXNzaW5nXHJcblBhcnNlci5wcm90b3R5cGUuX3Nob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQgPSBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgIHZhciBjdXJyZW50ID0gdGhpcy5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpO1xyXG5cclxuICAgIGlmICghY3VycmVudCB8fCBjdXJyZW50ID09PSB0aGlzLmRvY3VtZW50KVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICB2YXIgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcclxuXHJcbiAgICBpZiAobnMgPT09IE5TLkhUTUwpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmICh0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoY3VycmVudCkgPT09ICQuQU5OT1RBVElPTl9YTUwgJiYgbnMgPT09IE5TLk1BVEhNTCAmJlxyXG4gICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gJiYgdG9rZW4udGFnTmFtZSA9PT0gJC5TVkcpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIHZhciBpc0NoYXJhY3RlclRva2VuID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTiB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU4gfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOLFxyXG4gICAgICAgIGlzTWF0aE1MVGV4dFN0YXJ0VGFnID0gdG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLlNUQVJUX1RBR19UT0tFTiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udGFnTmFtZSAhPT0gJC5NR0xZUEggJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRhZ05hbWUgIT09ICQuTUFMSUdOTUFSSztcclxuXHJcbiAgICBpZiAoKGlzTWF0aE1MVGV4dFN0YXJ0VGFnIHx8IGlzQ2hhcmFjdGVyVG9rZW4pICYmIHRoaXMuX2lzSW50ZWdyYXRpb25Qb2ludChjdXJyZW50LCBOUy5NQVRITUwpKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5TVEFSVF9UQUdfVE9LRU4gfHwgaXNDaGFyYWN0ZXJUb2tlbikgJiYgdGhpcy5faXNJbnRlZ3JhdGlvblBvaW50KGN1cnJlbnQsIE5TLkhUTUwpKVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICByZXR1cm4gdG9rZW4udHlwZSAhPT0gVG9rZW5pemVyLkVPRl9UT0tFTjtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgX1t0aGlzLmluc2VydGlvbk1vZGVdW3Rva2VuLnR5cGVdKHRoaXMsIHRva2VuKTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX3Byb2Nlc3NUb2tlbkluQm9keU1vZGUgPSBmdW5jdGlvbiAodG9rZW4pIHtcclxuICAgIF9bSU5fQk9EWV9NT0RFXVt0b2tlbi50eXBlXSh0aGlzLCB0b2tlbik7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50ID0gZnVuY3Rpb24gKHRva2VuKSB7XHJcbiAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkNIQVJBQ1RFUl9UT0tFTilcclxuICAgICAgICBjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50KHRoaXMsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuTlVMTF9DSEFSQUNURVJfVE9LRU4pXHJcbiAgICAgICAgbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQodGhpcywgdG9rZW4pO1xyXG5cclxuICAgIGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuaXplci5XSElURVNQQUNFX0NIQVJBQ1RFUl9UT0tFTilcclxuICAgICAgICBpbnNlcnRDaGFyYWN0ZXJzKHRoaXMsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuQ09NTUVOVF9UT0tFTilcclxuICAgICAgICBhcHBlbmRDb21tZW50KHRoaXMsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0b2tlbi50eXBlID09PSBUb2tlbml6ZXIuU1RBUlRfVEFHX1RPS0VOKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZSBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW5pemVyLkVORF9UQUdfVE9LRU4pXHJcbiAgICAgICAgZW5kVGFnSW5Gb3JlaWduQ29udGVudCh0aGlzLCB0b2tlbik7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9wcm9jZXNzSW5wdXRUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikge1xyXG4gICAgaWYgKHRoaXMuX3Nob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQodG9rZW4pKVxyXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQodG9rZW4pO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59O1xyXG5cclxuLy9JbnRlZ3JhdGlvbiBwb2ludHNcclxuUGFyc2VyLnByb3RvdHlwZS5faXNJbnRlZ3JhdGlvblBvaW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIGZvcmVpZ25OUykge1xyXG4gICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLFxyXG4gICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkoZWxlbWVudCksXHJcbiAgICAgICAgYXR0cnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldEF0dHJMaXN0KGVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBmb3JlaWduQ29udGVudC5pc0ludGVncmF0aW9uUG9pbnQodG4sIG5zLCBhdHRycywgZm9yZWlnbk5TKTtcclxufTtcclxuXHJcbi8vQWN0aXZlIGZvcm1hdHRpbmcgZWxlbWVudHMgcmVjb25zdHJ1Y3Rpb25cclxuUGFyc2VyLnByb3RvdHlwZS5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbGlzdExlbmd0aCA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmxlbmd0aDtcclxuXHJcbiAgICBpZiAobGlzdExlbmd0aCkge1xyXG4gICAgICAgIHZhciB1bm9wZW5JZHggPSBsaXN0TGVuZ3RoLFxyXG4gICAgICAgICAgICBlbnRyeSA9IG51bGw7XHJcblxyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgdW5vcGVuSWR4LS07XHJcbiAgICAgICAgICAgIGVudHJ5ID0gdGhpcy5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZW50cmllc1t1bm9wZW5JZHhdO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVudHJ5LnR5cGUgPT09IEZvcm1hdHRpbmdFbGVtZW50TGlzdC5NQVJLRVJfRU5UUlkgfHwgdGhpcy5vcGVuRWxlbWVudHMuY29udGFpbnMoZW50cnkuZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAgIHVub3BlbklkeCsrO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IHdoaWxlICh1bm9wZW5JZHggPiAwKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IHVub3BlbklkeDsgaSA8IGxpc3RMZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBlbnRyeSA9IHRoaXMuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmVudHJpZXNbaV07XHJcbiAgICAgICAgICAgIHRoaXMuX2luc2VydEVsZW1lbnQoZW50cnkudG9rZW4sIHRoaXMudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVudHJ5LmVsZW1lbnQpKTtcclxuICAgICAgICAgICAgZW50cnkuZWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuLy9DbG9zZSBlbGVtZW50c1xyXG5QYXJzZXIucHJvdG90eXBlLl9jbG9zZVRhYmxlQ2VsbCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFibGVDZWxsUG9wcGVkKCk7XHJcbiAgICB0aGlzLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xyXG4gICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fUk9XX01PREU7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9jbG9zZVBFbGVtZW50ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5QKTtcclxuICAgIHRoaXMub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlApO1xyXG59O1xyXG5cclxuLy9JbnNlcnRpb24gbW9kZXNcclxuUGFyc2VyLnByb3RvdHlwZS5fcmVzZXRJbnNlcnRpb25Nb2RlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgZm9yICh2YXIgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wLCBsYXN0ID0gZmFsc2U7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcclxuXHJcbiAgICAgICAgaWYgKGkgPT09IDApIHtcclxuICAgICAgICAgICAgbGFzdCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5mcmFnbWVudENvbnRleHQpXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gdGhpcy5mcmFnbWVudENvbnRleHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksXHJcbiAgICAgICAgICAgIG5ld0luc2VydGlvbk1vZGUgPSBJTlNFUlRJT05fTU9ERV9SRVNFVF9NQVBbdG5dO1xyXG5cclxuICAgICAgICBpZiAobmV3SW5zZXJ0aW9uTW9kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSBuZXdJbnNlcnRpb25Nb2RlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCFsYXN0ICYmICh0biA9PT0gJC5URCB8fCB0biA9PT0gJC5USCkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCFsYXN0ICYmIHRuID09PSAkLkhFQUQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gSU5fSEVBRF9NT0RFO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNldEluc2VydGlvbk1vZGVGb3JTZWxlY3QoaSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnNlcnRpb25Nb2RlID0gdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSFRNTCkge1xyXG4gICAgICAgICAgICB0aGlzLmluc2VydGlvbk1vZGUgPSB0aGlzLmhlYWRFbGVtZW50ID8gQUZURVJfSEVBRF9NT0RFIDogQkVGT1JFX0hFQURfTU9ERTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbHNlIGlmIChsYXN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IElOX0JPRFlfTU9ERTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxuUGFyc2VyLnByb3RvdHlwZS5fcmVzZXRJbnNlcnRpb25Nb2RlRm9yU2VsZWN0ID0gZnVuY3Rpb24gKHNlbGVjdElkeCkge1xyXG4gICAgaWYgKHNlbGVjdElkeCA+IDApIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gc2VsZWN0SWR4IC0gMTsgaSA+IDA7IGktLSkge1xyXG4gICAgICAgICAgICB2YXIgYW5jZXN0b3IgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpXSxcclxuICAgICAgICAgICAgICAgIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGFuY2VzdG9yKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSlcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9JTl9UQUJMRV9NT0RFO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9NT0RFO1xyXG59O1xyXG5cclxuUGFyc2VyLnByb3RvdHlwZS5fcHVzaFRtcGxJbnNlcnRpb25Nb2RlID0gZnVuY3Rpb24gKG1vZGUpIHtcclxuICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wdXNoKG1vZGUpO1xyXG4gICAgdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wKys7XHJcbiAgICB0aGlzLmN1cnJlbnRUbXBsSW5zZXJ0aW9uTW9kZSA9IG1vZGU7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFjay5wb3AoKTtcclxuICAgIHRoaXMudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcC0tO1xyXG4gICAgdGhpcy5jdXJyZW50VG1wbEluc2VydGlvbk1vZGUgPSB0aGlzLnRtcGxJbnNlcnRpb25Nb2RlU3RhY2tbdGhpcy50bXBsSW5zZXJ0aW9uTW9kZVN0YWNrVG9wXTtcclxufTtcclxuXHJcbi8vRm9zdGVyIHBhcmVudGluZ1xyXG5QYXJzZXIucHJvdG90eXBlLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcgPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgdmFyIHRuID0gdGhpcy50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiB0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5UUjtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX3Nob3VsZEZvc3RlclBhcmVudE9uSW5zZXJ0aW9uID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9zdGVyUGFyZW50aW5nRW5hYmxlZCAmJiB0aGlzLl9pc0VsZW1lbnRDYXVzZXNGb3N0ZXJQYXJlbnRpbmcodGhpcy5vcGVuRWxlbWVudHMuY3VycmVudCk7XHJcbn07XHJcblxyXG5QYXJzZXIucHJvdG90eXBlLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbG9jYXRpb24gPSB7XHJcbiAgICAgICAgcGFyZW50OiBudWxsLFxyXG4gICAgICAgIGJlZm9yZUVsZW1lbnQ6IG51bGxcclxuICAgIH07XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IHRoaXMub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgIHZhciBvcGVuRWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnRzLml0ZW1zW2ldLFxyXG4gICAgICAgICAgICB0biA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShvcGVuRWxlbWVudCksXHJcbiAgICAgICAgICAgIG5zID0gdGhpcy50cmVlQWRhcHRlci5nZXROYW1lc3BhY2VVUkkob3BlbkVsZW1lbnQpO1xyXG5cclxuICAgICAgICBpZiAodG4gPT09ICQuVEVNUExBVEUgJiYgbnMgPT09IE5TLkhUTUwpIHtcclxuICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy50cmVlQWRhcHRlci5nZXRUZW1wbGF0ZUNvbnRlbnQob3BlbkVsZW1lbnQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRBQkxFKSB7XHJcbiAgICAgICAgICAgIGxvY2F0aW9uLnBhcmVudCA9IHRoaXMudHJlZUFkYXB0ZXIuZ2V0UGFyZW50Tm9kZShvcGVuRWxlbWVudCk7XHJcblxyXG4gICAgICAgICAgICBpZiAobG9jYXRpb24ucGFyZW50KVxyXG4gICAgICAgICAgICAgICAgbG9jYXRpb24uYmVmb3JlRWxlbWVudCA9IG9wZW5FbGVtZW50O1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbi5wYXJlbnQgPSB0aGlzLm9wZW5FbGVtZW50cy5pdGVtc1tpIC0gMV07XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFsb2NhdGlvbi5wYXJlbnQpXHJcbiAgICAgICAgbG9jYXRpb24ucGFyZW50ID0gdGhpcy5vcGVuRWxlbWVudHMuaXRlbXNbMF07XHJcblxyXG4gICAgcmV0dXJuIGxvY2F0aW9uO1xyXG59O1xyXG5cclxuUGFyc2VyLnByb3RvdHlwZS5fZm9zdGVyUGFyZW50RWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9maW5kRm9zdGVyUGFyZW50aW5nTG9jYXRpb24oKTtcclxuXHJcbiAgICBpZiAobG9jYXRpb24uYmVmb3JlRWxlbWVudClcclxuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGVsZW1lbnQsIGxvY2F0aW9uLmJlZm9yZUVsZW1lbnQpO1xyXG4gICAgZWxzZVxyXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQobG9jYXRpb24ucGFyZW50LCBlbGVtZW50KTtcclxufTtcclxuXHJcblBhcnNlci5wcm90b3R5cGUuX2Zvc3RlclBhcmVudFRleHQgPSBmdW5jdGlvbiAoY2hhcnMpIHtcclxuICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2ZpbmRGb3N0ZXJQYXJlbnRpbmdMb2NhdGlvbigpO1xyXG5cclxuICAgIGlmIChsb2NhdGlvbi5iZWZvcmVFbGVtZW50KVxyXG4gICAgICAgIHRoaXMudHJlZUFkYXB0ZXIuaW5zZXJ0VGV4dEJlZm9yZShsb2NhdGlvbi5wYXJlbnQsIGNoYXJzLCBsb2NhdGlvbi5iZWZvcmVFbGVtZW50KTtcclxuICAgIGVsc2VcclxuICAgICAgICB0aGlzLnRyZWVBZGFwdGVyLmluc2VydFRleHQobG9jYXRpb24ucGFyZW50LCBjaGFycyk7XHJcbn07XHJcblxyXG4vL1NwZWNpYWwgZWxlbWVudHNcclxuUGFyc2VyLnByb3RvdHlwZS5faXNTcGVjaWFsRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB2YXIgdG4gPSB0aGlzLnRyZWVBZGFwdGVyLmdldFRhZ05hbWUoZWxlbWVudCksXHJcbiAgICAgICAgbnMgPSB0aGlzLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gSFRNTC5TUEVDSUFMX0VMRU1FTlRTW25zXVt0bl07XHJcbn07XHJcblxyXG4vL0Fkb3B0aW9uIGFnZW5jeSBhbGdvcml0aG1cclxuLy8oc2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90cmVlLWNvbnN0cnVjdGlvbi5odG1sI2Fkb3B0aW9uQWdlbmN5KVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy9TdGVwcyA1LTggb2YgdGhlIGFsZ29yaXRobVxyXG5mdW5jdGlvbiBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4pIHtcclxuICAgIHZhciBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuZ2V0RWxlbWVudEVudHJ5SW5TY29wZVdpdGhUYWdOYW1lKHRva2VuLnRhZ05hbWUpO1xyXG5cclxuICAgIGlmIChmb3JtYXR0aW5nRWxlbWVudEVudHJ5KSB7XHJcbiAgICAgICAgaWYgKCFwLm9wZW5FbGVtZW50cy5jb250YWlucyhmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xyXG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCFwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRva2VuLnRhZ05hbWUpKVxyXG4gICAgICAgICAgICBmb3JtYXR0aW5nRWxlbWVudEVudHJ5ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlXHJcbiAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgcmV0dXJuIGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XHJcbn1cclxuXHJcbi8vU3RlcHMgOSBhbmQgMTAgb2YgdGhlIGFsZ29yaXRobVxyXG5mdW5jdGlvbiBhYU9idGFpbkZ1cnRoZXN0QmxvY2socCwgZm9ybWF0dGluZ0VsZW1lbnRFbnRyeSkge1xyXG4gICAgdmFyIGZ1cnRoZXN0QmxvY2sgPSBudWxsO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSBwLm9wZW5FbGVtZW50cy5zdGFja1RvcDsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgICB2YXIgZWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLml0ZW1zW2ldO1xyXG5cclxuICAgICAgICBpZiAoZWxlbWVudCA9PT0gZm9ybWF0dGluZ0VsZW1lbnRFbnRyeS5lbGVtZW50KVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCkpXHJcbiAgICAgICAgICAgIGZ1cnRoZXN0QmxvY2sgPSBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghZnVydGhlc3RCbG9jaykge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsRWxlbWVudFBvcHBlZChmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xyXG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmdXJ0aGVzdEJsb2NrO1xyXG59XHJcblxyXG4vL1N0ZXAgMTMgb2YgdGhlIGFsZ29yaXRobVxyXG5mdW5jdGlvbiBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudCkge1xyXG4gICAgdmFyIGxhc3RFbGVtZW50ID0gZnVydGhlc3RCbG9jayxcclxuICAgICAgICBuZXh0RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZ1cnRoZXN0QmxvY2spO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwLCBlbGVtZW50ID0gbmV4dEVsZW1lbnQ7IGVsZW1lbnQgIT09IGZvcm1hdHRpbmdFbGVtZW50OyBpKyssIGVsZW1lbnQgPSBuZXh0RWxlbWVudCkge1xyXG4gICAgICAgIC8vTk9URTogc3RvcmUgbmV4dCBlbGVtZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbiAoaXQgbWF5IGJlIGRlbGV0ZWQgZnJvbSB0aGUgc3RhY2sgYnkgc3RlcCA5LjUpXHJcbiAgICAgICAgbmV4dEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5nZXRDb21tb25BbmNlc3RvcihlbGVtZW50KTtcclxuXHJcbiAgICAgICAgdmFyIGVsZW1lbnRFbnRyeSA9IHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmdldEVsZW1lbnRFbnRyeShlbGVtZW50KSxcclxuICAgICAgICAgICAgY291bnRlck92ZXJmbG93ID0gZWxlbWVudEVudHJ5ICYmIGkgPj0gQUFfSU5ORVJfTE9PUF9JVEVSLFxyXG4gICAgICAgICAgICBzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzID0gIWVsZW1lbnRFbnRyeSB8fCBjb3VudGVyT3ZlcmZsb3c7XHJcblxyXG4gICAgICAgIGlmIChzaG91bGRSZW1vdmVGcm9tT3BlbkVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIGlmIChjb3VudGVyT3ZlcmZsb3cpXHJcbiAgICAgICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5yZW1vdmVFbnRyeShlbGVtZW50RW50cnkpO1xyXG5cclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQgPSBhYVJlY3JlYXRlRWxlbWVudEZyb21FbnRyeShwLCBlbGVtZW50RW50cnkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGxhc3RFbGVtZW50ID09PSBmdXJ0aGVzdEJsb2NrKVxyXG4gICAgICAgICAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBlbGVtZW50RW50cnk7XHJcblxyXG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmRldGFjaE5vZGUobGFzdEVsZW1lbnQpO1xyXG4gICAgICAgICAgICBwLnRyZWVBZGFwdGVyLmFwcGVuZENoaWxkKGVsZW1lbnQsIGxhc3RFbGVtZW50KTtcclxuICAgICAgICAgICAgbGFzdEVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGFzdEVsZW1lbnQ7XHJcbn1cclxuXHJcbi8vU3RlcCAxMy43IG9mIHRoZSBhbGdvcml0aG1cclxuZnVuY3Rpb24gYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkocCwgZWxlbWVudEVudHJ5KSB7XHJcbiAgICB2YXIgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShlbGVtZW50RW50cnkuZWxlbWVudCksXHJcbiAgICAgICAgbmV3RWxlbWVudCA9IHAudHJlZUFkYXB0ZXIuY3JlYXRlRWxlbWVudChlbGVtZW50RW50cnkudG9rZW4udGFnTmFtZSwgbnMsIGVsZW1lbnRFbnRyeS50b2tlbi5hdHRycyk7XHJcblxyXG4gICAgcC5vcGVuRWxlbWVudHMucmVwbGFjZShlbGVtZW50RW50cnkuZWxlbWVudCwgbmV3RWxlbWVudCk7XHJcbiAgICBlbGVtZW50RW50cnkuZWxlbWVudCA9IG5ld0VsZW1lbnQ7XHJcblxyXG4gICAgcmV0dXJuIG5ld0VsZW1lbnQ7XHJcbn1cclxuXHJcbi8vU3RlcCAxNCBvZiB0aGUgYWxnb3JpdGhtXHJcbmZ1bmN0aW9uIGFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yKHAsIGNvbW1vbkFuY2VzdG9yLCBsYXN0RWxlbWVudCkge1xyXG4gICAgaWYgKHAuX2lzRWxlbWVudENhdXNlc0Zvc3RlclBhcmVudGluZyhjb21tb25BbmNlc3RvcikpXHJcbiAgICAgICAgcC5fZm9zdGVyUGFyZW50RWxlbWVudChsYXN0RWxlbWVudCk7XHJcblxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdmFyIHRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGNvbW1vbkFuY2VzdG9yKSxcclxuICAgICAgICAgICAgbnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjb21tb25BbmNlc3Rvcik7XHJcblxyXG4gICAgICAgIGlmICh0biA9PT0gJC5URU1QTEFURSAmJiBucyA9PT0gTlMuSFRNTClcclxuICAgICAgICAgICAgY29tbW9uQW5jZXN0b3IgPSBwLnRyZWVBZGFwdGVyLmdldFRlbXBsYXRlQ29udGVudChjb21tb25BbmNlc3Rvcik7XHJcblxyXG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYXBwZW5kQ2hpbGQoY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcclxuICAgIH1cclxufVxyXG5cclxuLy9TdGVwcyAxNS0xOSBvZiB0aGUgYWxnb3JpdGhtXHJcbmZ1bmN0aW9uIGFhUmVwbGFjZUZvcm1hdHRpbmdFbGVtZW50KHAsIGZ1cnRoZXN0QmxvY2ssIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpIHtcclxuICAgIHZhciBucyA9IHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCksXHJcbiAgICAgICAgdG9rZW4gPSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LnRva2VuLFxyXG4gICAgICAgIG5ld0VsZW1lbnQgPSBwLnRyZWVBZGFwdGVyLmNyZWF0ZUVsZW1lbnQodG9rZW4udGFnTmFtZSwgbnMsIHRva2VuLmF0dHJzKTtcclxuXHJcbiAgICBwLl9hZG9wdE5vZGVzKGZ1cnRoZXN0QmxvY2ssIG5ld0VsZW1lbnQpO1xyXG4gICAgcC50cmVlQWRhcHRlci5hcHBlbmRDaGlsZChmdXJ0aGVzdEJsb2NrLCBuZXdFbGVtZW50KTtcclxuXHJcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayhuZXdFbGVtZW50LCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LnRva2VuKTtcclxuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xyXG5cclxuICAgIHAub3BlbkVsZW1lbnRzLnJlbW92ZShmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xyXG4gICAgcC5vcGVuRWxlbWVudHMuaW5zZXJ0QWZ0ZXIoZnVydGhlc3RCbG9jaywgbmV3RWxlbWVudCk7XHJcbn1cclxuXHJcbi8vQWxnb3JpdGhtIGVudHJ5IHBvaW50XHJcbmZ1bmN0aW9uIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbikge1xyXG4gICAgdmFyIGZvcm1hdHRpbmdFbGVtZW50RW50cnk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBBQV9PVVRFUl9MT09QX0lURVI7IGkrKykge1xyXG4gICAgICAgIGZvcm1hdHRpbmdFbGVtZW50RW50cnkgPSBhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkocCwgdG9rZW4sIGZvcm1hdHRpbmdFbGVtZW50RW50cnkpO1xyXG5cclxuICAgICAgICBpZiAoIWZvcm1hdHRpbmdFbGVtZW50RW50cnkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICB2YXIgZnVydGhlc3RCbG9jayA9IGFhT2J0YWluRnVydGhlc3RCbG9jayhwLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcclxuXHJcbiAgICAgICAgaWYgKCFmdXJ0aGVzdEJsb2NrKVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuYm9va21hcmsgPSBmb3JtYXR0aW5nRWxlbWVudEVudHJ5O1xyXG5cclxuICAgICAgICB2YXIgbGFzdEVsZW1lbnQgPSBhYUlubmVyTG9vcChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5LmVsZW1lbnQpLFxyXG4gICAgICAgICAgICBjb21tb25BbmNlc3RvciA9IHAub3BlbkVsZW1lbnRzLmdldENvbW1vbkFuY2VzdG9yKGZvcm1hdHRpbmdFbGVtZW50RW50cnkuZWxlbWVudCk7XHJcblxyXG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShsYXN0RWxlbWVudCk7XHJcbiAgICAgICAgYWFJbnNlcnRMYXN0Tm9kZUluQ29tbW9uQW5jZXN0b3IocCwgY29tbW9uQW5jZXN0b3IsIGxhc3RFbGVtZW50KTtcclxuICAgICAgICBhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudChwLCBmdXJ0aGVzdEJsb2NrLCBmb3JtYXR0aW5nRWxlbWVudEVudHJ5KTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vR2VuZXJpYyB0b2tlbiBoYW5kbGVyc1xyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBpZ25vcmVUb2tlbigpIHtcclxuICAgIC8vTk9URTogZG8gbm90aGluZyA9KVxyXG59XHJcblxyXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50KHAsIHRva2VuKSB7XHJcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5vcGVuRWxlbWVudHMuY3VycmVudFRtcGxDb250ZW50IHx8IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhcHBlbmRDb21tZW50VG9Sb290SHRtbEVsZW1lbnQocCwgdG9rZW4pIHtcclxuICAgIHAuX2FwcGVuZENvbW1lbnROb2RlKHRva2VuLCBwLm9wZW5FbGVtZW50cy5pdGVtc1swXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFwcGVuZENvbW1lbnRUb0RvY3VtZW50KHAsIHRva2VuKSB7XHJcbiAgICBwLl9hcHBlbmRDb21tZW50Tm9kZSh0b2tlbiwgcC5kb2N1bWVudCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluc2VydENoYXJhY3RlcnMocCwgdG9rZW4pIHtcclxuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzdG9wUGFyc2luZyhwKSB7XHJcbiAgICBwLnN0b3BwZWQgPSB0cnVlO1xyXG59XHJcblxyXG4vLzEyLjIuNS40LjEgVGhlIFwiaW5pdGlhbFwiIGluc2VydGlvbiBtb2RlXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbmZ1bmN0aW9uIGRvY3R5cGVJbkluaXRpYWxNb2RlKHAsIHRva2VuKSB7XHJcbiAgICBwLl9zZXREb2N1bWVudFR5cGUodG9rZW4pO1xyXG5cclxuICAgIGlmICh0b2tlbi5mb3JjZVF1aXJrcyB8fCBkb2N0eXBlLmlzUXVpcmtzKHRva2VuLm5hbWUsIHRva2VuLnB1YmxpY0lkLCB0b2tlbi5zeXN0ZW1JZCkpXHJcbiAgICAgICAgcC50cmVlQWRhcHRlci5zZXRRdWlya3NNb2RlKHAuZG9jdW1lbnQpO1xyXG5cclxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IEJFRk9SRV9IVE1MX01PREU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRva2VuSW5Jbml0aWFsTW9kZShwLCB0b2tlbikge1xyXG4gICAgcC50cmVlQWRhcHRlci5zZXRRdWlya3NNb2RlKHAuZG9jdW1lbnQpO1xyXG4gICAgcC5pbnNlcnRpb25Nb2RlID0gQkVGT1JFX0hUTUxfTU9ERTtcclxuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbn1cclxuXHJcblxyXG4vLzEyLjIuNS40LjIgVGhlIFwiYmVmb3JlIGh0bWxcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUh0bWwocCwgdG9rZW4pIHtcclxuICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpIHtcclxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBCRUZPUkVfSEVBRF9NT0RFO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2VcclxuICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmRUYWdCZWZvcmVIdG1sKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5CUilcclxuICAgICAgICB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b2tlbkJlZm9yZUh0bWwocCwgdG9rZW4pIHtcclxuICAgIHAuX2luc2VydEZha2VSb290RWxlbWVudCgpO1xyXG4gICAgcC5pbnNlcnRpb25Nb2RlID0gQkVGT1JFX0hFQURfTU9ERTtcclxuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbn1cclxuXHJcblxyXG4vLzEyLjIuNS40LjMgVGhlIFwiYmVmb3JlIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXHJcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLkhFQUQpIHtcclxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgICAgICBwLmhlYWRFbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9IRUFEX01PREU7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0JlZm9yZUhlYWQocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkhFQUQgfHwgdG4gPT09ICQuQk9EWSB8fCB0biA9PT0gJC5IVE1MIHx8IHRuID09PSAkLkJSKVxyXG4gICAgICAgIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRva2VuQmVmb3JlSGVhZChwLCB0b2tlbikge1xyXG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoJC5IRUFEKTtcclxuICAgIHAuaGVhZEVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50O1xyXG4gICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fSEVBRF9NT0RFO1xyXG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxufVxyXG5cclxuXHJcbi8vMTIuMi41LjQuNCBUaGUgXCJpbiBoZWFkXCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXHJcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLkJBU0UgfHwgdG4gPT09ICQuQkFTRUZPTlQgfHwgdG4gPT09ICQuQkdTT1VORCB8fCB0biA9PT0gJC5MSU5LIHx8IHRuID09PSAkLk1FVEEpXHJcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVElUTEUpXHJcbiAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkNEQVRBKTtcclxuXHJcbiAgICAvL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiBpbnRlcmFjdGl2ZSB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBzY3JpcHRpbmcsIHNvIHdlIHBhcnNlXHJcbiAgICAvLzxub3NjcmlwdD4gYXMgYSByYXd0ZXh0LlxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuTk9TQ1JJUFQgfHwgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuU1RZTEUpXHJcbiAgICAgICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuU0NSSVBUKVxyXG4gICAgICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlNDUklQVF9EQVRBKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSkge1xyXG4gICAgICAgIHAuX2luc2VydFRlbXBsYXRlKHRva2VuLCBOUy5IVE1MKTtcclxuICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcclxuICAgICAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9URU1QTEFURV9NT0RFO1xyXG4gICAgICAgIHAuX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZShJTl9URU1QTEFURV9NT0RFKTtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICh0biAhPT0gJC5IRUFEKVxyXG4gICAgICAgIHRva2VuSW5IZWFkKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZW5kVGFnSW5IZWFkKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IRUFEKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfSEVBRF9NT0RFO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuQlIgfHwgdG4gPT09ICQuSFRNTClcclxuICAgICAgICB0b2tlbkluSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID4gMCkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XHJcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcclxuICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpO1xyXG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiB0b2tlbkluSGVhZChwLCB0b2tlbikge1xyXG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9IRUFEX01PREU7XHJcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59XHJcblxyXG5cclxuLy8xMi4yLjUuNC42IFRoZSBcImFmdGVyIGhlYWRcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVySGVhZChwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuSFRNTClcclxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuQk9EWSkge1xyXG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0JPRFlfTU9ERTtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5GUkFNRVNFVCkge1xyXG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX0ZSQU1FU0VUX01PREU7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fFxyXG4gICAgICAgICAgICAgdG4gPT09ICQuTk9GUkFNRVMgfHwgdG4gPT09ICQuU0NSSVBUIHx8IHRuID09PSAkLlNUWUxFIHx8IHRuID09PSAkLlRFTVBMQVRFIHx8IHRuID09PSAkLlRJVExFKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucHVzaChwLmhlYWRFbGVtZW50KTtcclxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucmVtb3ZlKHAuaGVhZEVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpXHJcbiAgICAgICAgdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmRUYWdBZnRlckhlYWQocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkJPRFkgfHwgdG4gPT09ICQuSFRNTCB8fCB0biA9PT0gJC5CUilcclxuICAgICAgICB0b2tlbkFmdGVySGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9rZW5BZnRlckhlYWQocCwgdG9rZW4pIHtcclxuICAgIHAuX2luc2VydEZha2VFbGVtZW50KCQuQk9EWSk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7XHJcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59XHJcblxyXG5cclxuLy8xMi4yLjUuNC43IFRoZSBcImluIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiB3aGl0ZXNwYWNlQ2hhcmFjdGVySW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoYXJhY3RlckluQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuICAgIHAuX2luc2VydENoYXJhY3RlcnModG9rZW4pO1xyXG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMClcclxuICAgICAgICBwLnRyZWVBZGFwdGVyLmFkb3B0QXR0cmlidXRlcyhwLm9wZW5FbGVtZW50cy5pdGVtc1swXSwgdG9rZW4uYXR0cnMpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKGJvZHlFbGVtZW50ICYmIHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA9PT0gMCkge1xyXG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG4gICAgICAgIHAudHJlZUFkYXB0ZXIuYWRvcHRBdHRyaWJ1dGVzKGJvZHlFbGVtZW50LCB0b2tlbi5hdHRycyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciBib2R5RWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLnRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKHAuZnJhbWVzZXRPayAmJiBib2R5RWxlbWVudCkge1xyXG4gICAgICAgIHAudHJlZUFkYXB0ZXIuZGV0YWNoTm9kZShib2R5RWxlbWVudCk7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wQWxsVXBUb0h0bWxFbGVtZW50KCk7XHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fRlJBTUVTRVRfTU9ERTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxyXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcclxuXHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XHJcblxyXG4gICAgdmFyIHRuID0gcC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkgxIHx8IHRuID09PSAkLkgyIHx8IHRuID09PSAkLkgzIHx8IHRuID09PSAkLkg0IHx8IHRuID09PSAkLkg1IHx8IHRuID09PSAkLkg2KVxyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG5cclxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICAvL05PVEU6IElmIHRoZSBuZXh0IHRva2VuIGlzIGEgVSswMDBBIExJTkUgRkVFRCAoTEYpIGNoYXJhY3RlciB0b2tlbiwgdGhlbiBpZ25vcmUgdGhhdCB0b2tlbiBhbmQgbW92ZVxyXG4gICAgLy9vbiB0byB0aGUgbmV4dCBvbmUuIChOZXdsaW5lcyBhdCB0aGUgc3RhcnQgb2YgcHJlIGJsb2NrcyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxyXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xyXG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgdmFyIGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwO1xyXG5cclxuICAgIGlmICghcC5mb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSB7XHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xyXG5cclxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuXHJcbiAgICAgICAgaWYgKCFpblRlbXBsYXRlKVxyXG4gICAgICAgICAgICBwLmZvcm1FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuY3VycmVudDtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbGlzdEl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XHJcblxyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gcC5vcGVuRWxlbWVudHMuc3RhY2tUb3A7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXSxcclxuICAgICAgICAgICAgZWxlbWVudFRuID0gcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKGVsZW1lbnQpLFxyXG4gICAgICAgICAgICBjbG9zZVRuID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRuID09PSAkLkxJICYmIGVsZW1lbnRUbiA9PT0gJC5MSSlcclxuICAgICAgICAgICAgY2xvc2VUbiA9ICQuTEk7XHJcblxyXG4gICAgICAgIGVsc2UgaWYgKCh0biA9PT0gJC5ERCB8fCB0biA9PT0gJC5EVCkgJiYgKGVsZW1lbnRUbiA9PT0gJC5ERCB8fCBlbGVtZW50VG4gPT09ICQuRFQpKVxyXG4gICAgICAgICAgICBjbG9zZVRuID0gZWxlbWVudFRuO1xyXG5cclxuICAgICAgICBpZiAoY2xvc2VUbikge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbihjbG9zZVRuKTtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKGNsb3NlVG4pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlbGVtZW50VG4gIT09ICQuQUREUkVTUyAmJiBlbGVtZW50VG4gIT09ICQuRElWICYmIGVsZW1lbnRUbiAhPT0gJC5QICYmIHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXHJcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xyXG5cclxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLnRva2VuaXplci5zdGF0ZSA9IFRva2VuaXplci5NT0RFLlBMQUlOVEVYVDtcclxufVxyXG5cclxuZnVuY3Rpb24gYnV0dG9uU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQlVUVE9OKSkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5CVVRUT04pO1xyXG4gICAgfVxyXG5cclxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciBhY3RpdmVFbGVtZW50RW50cnkgPSBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5nZXRFbGVtZW50RW50cnlJblNjb3BlV2l0aFRhZ05hbWUoJC5BKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlRWxlbWVudEVudHJ5KSB7XHJcbiAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoYWN0aXZlRWxlbWVudEVudHJ5LmVsZW1lbnQpO1xyXG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnJlbW92ZUVudHJ5KGFjdGl2ZUVsZW1lbnRFbnRyeSk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG4gICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMucHVzaEVsZW1lbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLnB1c2hFbGVtZW50KHAub3BlbkVsZW1lbnRzLmN1cnJlbnQsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG5cclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuTk9CUikpIHtcclxuICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xyXG4gICAgICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5wdXNoRWxlbWVudChwLm9wZW5FbGVtZW50cy5jdXJyZW50LCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5pbnNlcnRNYXJrZXIoKTtcclxuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAoIXAudHJlZUFkYXB0ZXIuaXNRdWlya3NNb2RlKHAuZG9jdW1lbnQpICYmIHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcclxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlucHV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuXHJcbiAgICB2YXIgaW5wdXRUeXBlID0gVG9rZW5pemVyLmdldFRva2VuQXR0cih0b2tlbiwgQVRUUlMuVFlQRSk7XHJcblxyXG4gICAgaWYgKCFpbnB1dFR5cGUgfHwgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgIT09IEhJRERFTl9JTlBVVF9UWVBFKVxyXG4gICAgICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gcGFyYW1TdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJbkJ1dHRvblNjb3BlKCQuUCkpXHJcbiAgICAgICAgcC5fY2xvc2VQRWxlbWVudCgpO1xyXG5cclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5NRU5VSVRFTSlcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuXHJcbiAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICB0b2tlbi50YWdOYW1lID0gJC5JTUc7XHJcbiAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuICAgIC8vTk9URTogSWYgdGhlIG5leHQgdG9rZW4gaXMgYSBVKzAwMEEgTElORSBGRUVEIChMRikgY2hhcmFjdGVyIHRva2VuLCB0aGVuIGlnbm9yZSB0aGF0IHRva2VuIGFuZCBtb3ZlXHJcbiAgICAvL29uIHRvIHRoZSBuZXh0IG9uZS4gKE5ld2xpbmVzIGF0IHRoZSBzdGFydCBvZiB0ZXh0YXJlYSBlbGVtZW50cyBhcmUgaWdub3JlZCBhcyBhbiBhdXRob3JpbmcgY29udmVuaWVuY2UuKVxyXG4gICAgcC5za2lwTmV4dE5ld0xpbmUgPSB0cnVlO1xyXG4gICAgcC50b2tlbml6ZXIuc3RhdGUgPSBUb2tlbml6ZXIuTU9ERS5SQ0RBVEE7XHJcbiAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcclxuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG4gICAgcC5pbnNlcnRpb25Nb2RlID0gVEVYVF9NT0RFO1xyXG59XHJcblxyXG5mdW5jdGlvbiB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luQnV0dG9uU2NvcGUoJC5QKSlcclxuICAgICAgICBwLl9jbG9zZVBFbGVtZW50KCk7XHJcblxyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuICAgIHAuZnJhbWVzZXRPayA9IGZhbHNlO1xyXG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcclxuICAgIHAuX3N3aXRjaFRvVGV4dFBhcnNpbmcodG9rZW4sIFRva2VuaXplci5NT0RFLlJBV1RFWFQpO1xyXG59XHJcblxyXG4vL05PVEU6IGhlcmUgd2UgYXNzdW1lIHRoYXQgd2UgYWx3YXlzIGFjdCBhcyBhbiB1c2VyIGFnZW50IHdpdGggZW5hYmxlZCBwbHVnaW5zLCBzbyB3ZSBwYXJzZVxyXG4vLzxub2VtYmVkPiBhcyBhIHJhd3RleHQuXHJcbmZ1bmN0aW9uIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5fc3dpdGNoVG9UZXh0UGFyc2luZyh0b2tlbiwgVG9rZW5pemVyLk1PREUuUkFXVEVYVCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcclxuXHJcbiAgICBpZiAocC5pbnNlcnRpb25Nb2RlID09PSBJTl9UQUJMRV9NT0RFIHx8XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID09PSBJTl9DQVBUSU9OX01PREUgfHxcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX1RBQkxFX0JPRFlfTU9ERSB8fFxyXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9PT0gSU5fUk9XX01PREUgfHxcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPT09IElOX0NFTExfTU9ERSlcclxuXHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fU0VMRUNUX0lOX1RBQkxFX01PREU7XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1NFTEVDVF9NT0RFO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKVxyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG5cclxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmJTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUoJC5SVUJZKSlcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJ0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuUlVCWSkpXHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5SVEMpO1xyXG5cclxuICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZW51aXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuTUVOVUlURU0pXHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcblxyXG4gICAgLy8gVE9ETyBuZWVkcyBjbGFyaWZpY2F0aW9uLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9odG1sL3B1bGwvOTA3L2ZpbGVzI3I3MzUwNTg3N1xyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuXHJcbiAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVudVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxyXG4gICAgICAgIHAuX2Nsb3NlUEVsZW1lbnQoKTtcclxuXHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuTUVOVUlURU0pXHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcblxyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgcC5fcmVjb25zdHJ1Y3RBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTtcclxuXHJcbiAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcclxuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuWE1MQXR0cnModG9rZW4pO1xyXG5cclxuICAgIGlmICh0b2tlbi5zZWxmQ2xvc2luZylcclxuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5NQVRITUwpO1xyXG4gICAgZWxzZVxyXG4gICAgICAgIHAuX2luc2VydEVsZW1lbnQodG9rZW4sIE5TLk1BVEhNTCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHN2Z1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG5cclxuICAgIGZvcmVpZ25Db250ZW50LmFkanVzdFRva2VuU1ZHQXR0cnModG9rZW4pO1xyXG4gICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5YTUxBdHRycyh0b2tlbik7XHJcblxyXG4gICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKVxyXG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLlNWRyk7XHJcbiAgICBlbHNlXHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuU1ZHKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLl9yZWNvbnN0cnVjdEFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbn1cclxuXHJcbi8vT1BUSU1JWkFUSU9OOiBJbnRlZ2VyIGNvbXBhcmlzb25zIGFyZSBsb3ctY29zdCwgc28gd2UgY2FuIHVzZSB2ZXJ5IGZhc3QgdGFnIG5hbWUgbGVuZ3RoIGZpbHRlcnMgaGVyZS5cclxuLy9JdCdzIGZhc3RlciB0aGFuIHVzaW5nIGRpY3Rpb25hcnkuXHJcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIHN3aXRjaCAodG4ubGVuZ3RoKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuSSB8fCB0biA9PT0gJC5TIHx8IHRuID09PSAkLkIgfHwgdG4gPT09ICQuVSlcclxuICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkEpXHJcbiAgICAgICAgICAgICAgICBhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5ETCB8fCB0biA9PT0gJC5PTCB8fCB0biA9PT0gJC5VTClcclxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INilcclxuICAgICAgICAgICAgICAgIG51bWJlcmVkSGVhZGVyU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTEkgfHwgdG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpXHJcbiAgICAgICAgICAgICAgICBsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNIHx8IHRuID09PSAkLlRUKVxyXG4gICAgICAgICAgICAgICAgYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKVxyXG4gICAgICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkhSKVxyXG4gICAgICAgICAgICAgICAgaHJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5SQilcclxuICAgICAgICAgICAgICAgIHJiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUlQgfHwgdG4gPT09ICQuUlApXHJcbiAgICAgICAgICAgICAgICBydFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLlRIICYmIHRuICE9PSAkLlREICYmIHRuICE9PSAkLlRSKVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5ESVYgfHwgdG4gPT09ICQuRElSIHx8IHRuID09PSAkLk5BVilcclxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QUkUpXHJcbiAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CSUcpXHJcbiAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSU1HIHx8IHRuID09PSAkLldCUilcclxuICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5YTVApXHJcbiAgICAgICAgICAgICAgICB4bXBTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TVkcpXHJcbiAgICAgICAgICAgICAgICBzdmdTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5SVEMpXHJcbiAgICAgICAgICAgICAgICByYlN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTClcclxuICAgICAgICAgICAgICAgIGdlbmVyaWNTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuSFRNTClcclxuICAgICAgICAgICAgICAgIGh0bWxTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5CQVNFIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSlcclxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJPRFkpXHJcbiAgICAgICAgICAgICAgICBib2R5U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFJTilcclxuICAgICAgICAgICAgICAgIGFkZHJlc3NTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GT1JNKVxyXG4gICAgICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkNPREUgfHwgdG4gPT09ICQuRk9OVClcclxuICAgICAgICAgICAgICAgIGJTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5OT0JSKVxyXG4gICAgICAgICAgICAgICAgbm9iclN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkFSRUEpXHJcbiAgICAgICAgICAgICAgICBhcmVhU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTUFUSClcclxuICAgICAgICAgICAgICAgIG1hdGhTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NRU5VKVxyXG4gICAgICAgICAgICAgICAgbWVudVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkhFQUQpXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlNUWUxFIHx8IHRuID09PSAkLlRJVExFKVxyXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVNJREUpXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU01BTEwpXHJcbiAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpXHJcbiAgICAgICAgICAgICAgICB0YWJsZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkVNQkVEKVxyXG4gICAgICAgICAgICAgICAgYXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKVxyXG4gICAgICAgICAgICAgICAgaW5wdXRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5QQVJBTSB8fCB0biA9PT0gJC5UUkFDSylcclxuICAgICAgICAgICAgICAgIHBhcmFtU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuSU1BR0UpXHJcbiAgICAgICAgICAgICAgICBpbWFnZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkZSQU1FICYmIHRuICE9PSAkLlRCT0RZICYmIHRuICE9PSAkLlRGT09UICYmIHRuICE9PSAkLlRIRUFEKVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpXHJcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJVVFRPTilcclxuICAgICAgICAgICAgICAgIGJ1dHRvblN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNUUklLRSB8fCB0biA9PT0gJC5TVFJPTkcpXHJcbiAgICAgICAgICAgICAgICBiU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuQVBQTEVUIHx8IHRuID09PSAkLk9CSkVDVClcclxuICAgICAgICAgICAgICAgIGFwcGxldFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLktFWUdFTilcclxuICAgICAgICAgICAgICAgIGFyZWFTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TT1VSQ0UpXHJcbiAgICAgICAgICAgICAgICBwYXJhbVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklGUkFNRSlcclxuICAgICAgICAgICAgICAgIGlmcmFtZVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVClcclxuICAgICAgICAgICAgICAgIHNlbGVjdFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTilcclxuICAgICAgICAgICAgICAgIG9wdGdyb3VwU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5CR1NPVU5EKVxyXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuREVUQUlMUyB8fCB0biA9PT0gJC5BRERSRVNTIHx8IHRuID09PSAkLkFSVElDTEUgfHwgdG4gPT09ICQuU0VDVElPTiB8fCB0biA9PT0gJC5TVU1NQVJZKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkxJU1RJTkcpXHJcbiAgICAgICAgICAgICAgICBwcmVTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQVJRVUVFKVxyXG4gICAgICAgICAgICAgICAgYXBwbGV0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTk9FTUJFRClcclxuICAgICAgICAgICAgICAgIG5vZW1iZWRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biAhPT0gJC5DQVBUSU9OKVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDg6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5CQVNFRk9OVClcclxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLk1FTlVJVEVNKVxyXG4gICAgICAgICAgICAgICAgbWVudWl0ZW1TdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GUkFNRVNFVClcclxuICAgICAgICAgICAgICAgIGZyYW1lc2V0U3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRklFTERTRVQpXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuVEVYVEFSRUEpXHJcbiAgICAgICAgICAgICAgICB0ZXh0YXJlYVN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlRFTVBMQVRFKVxyXG4gICAgICAgICAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuTk9TQ1JJUFQpXHJcbiAgICAgICAgICAgICAgICBub2VtYmVkU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuT1BUR1JPVVApXHJcbiAgICAgICAgICAgICAgICBvcHRncm91cFN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuICE9PSAkLkNPTEdST1VQKVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDk6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5QTEFJTlRFWFQpXHJcbiAgICAgICAgICAgICAgICBwbGFpbnRleHRTdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgMTA6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5CTE9DS1FVT1RFIHx8IHRuID09PSAkLkZJR0NBUFRJT04pXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBnZW5lcmljU3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBib2R5RW5kVGFnSW5Cb2R5KHApIHtcclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuQk9EWSkpXHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQk9EWV9NT0RFO1xyXG59XHJcblxyXG5mdW5jdGlvbiBodG1sRW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSgkLkJPRFkpKSB7XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQk9EWV9NT0RFO1xyXG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFkZHJlc3NFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luU2NvcGUodG4pKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCh0bik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1FbmRUYWdJbkJvZHkocCkge1xyXG4gICAgdmFyIGluVGVtcGxhdGUgPSBwLm9wZW5FbGVtZW50cy50bXBsQ291bnQgPiAwLFxyXG4gICAgICAgIGZvcm1FbGVtZW50ID0gcC5mb3JtRWxlbWVudDtcclxuXHJcbiAgICBpZiAoIWluVGVtcGxhdGUpXHJcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IG51bGw7XHJcblxyXG4gICAgaWYgKChmb3JtRWxlbWVudCB8fCBpblRlbXBsYXRlKSAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKCQuRk9STSkpIHtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XHJcblxyXG4gICAgICAgIGlmIChpblRlbXBsYXRlKVxyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5GT1JNKTtcclxuXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5yZW1vdmUoZm9ybUVsZW1lbnQpO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBwRW5kVGFnSW5Cb2R5KHApIHtcclxuICAgIGlmICghcC5vcGVuRWxlbWVudHMuaGFzSW5CdXR0b25TY29wZSgkLlApKVxyXG4gICAgICAgIHAuX2luc2VydEZha2VFbGVtZW50KCQuUCk7XHJcblxyXG4gICAgcC5fY2xvc2VQRWxlbWVudCgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsaUVuZFRhZ0luQm9keShwKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5MaXN0SXRlbVNjb3BlKCQuTEkpKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24oJC5MSSk7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuTEkpO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBkZEVuZFRhZ0luQm9keShwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5TY29wZSh0bikpIHtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbih0bik7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKHRuKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gbnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkocCkge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc051bWJlcmVkSGVhZGVySW5TY29wZSgpKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsTnVtYmVyZWRIZWFkZXJQb3BwZWQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNjb3BlKHRuKSkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xyXG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGJyRW5kVGFnSW5Cb2R5KHApIHtcclxuICAgIHAuX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7XHJcbiAgICBwLl9pbnNlcnRGYWtlRWxlbWVudCgkLkJSKTtcclxuICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG4gICAgcC5mcmFtZXNldE9rID0gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcclxuXHJcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KSA9PT0gdG4pIHtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNpb24odG4pO1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbEVsZW1lbnRQb3BwZWQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHAuX2lzU3BlY2lhbEVsZW1lbnQoZWxlbWVudCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG59XHJcblxyXG4vL09QVElNSVpBVElPTjogSW50ZWdlciBjb21wYXJpc29ucyBhcmUgbG93LWNvc3QsIHNvIHdlIGNhbiB1c2UgdmVyeSBmYXN0IHRhZyBuYW1lIGxlbmd0aCBmaWx0ZXJzIGhlcmUuXHJcbi8vSXQncyBmYXN0ZXIgdGhhbiB1c2luZyBkaWN0aW9uYXJ5LlxyXG5mdW5jdGlvbiBlbmRUYWdJbkJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgc3dpdGNoICh0bi5sZW5ndGgpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5BIHx8IHRuID09PSAkLkIgfHwgdG4gPT09ICQuSSB8fCB0biA9PT0gJC5TIHx8IHRuID09PSAkLlUpXHJcbiAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuUClcclxuICAgICAgICAgICAgICAgIHBFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuREwgfHwgdG4gPT09ICQuVUwgfHwgdG4gPT09ICQuT0wpXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkxJKVxyXG4gICAgICAgICAgICAgICAgbGlFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuREQgfHwgdG4gPT09ICQuRFQpXHJcbiAgICAgICAgICAgICAgICBkZEVuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IMSB8fCB0biA9PT0gJC5IMiB8fCB0biA9PT0gJC5IMyB8fCB0biA9PT0gJC5INCB8fCB0biA9PT0gJC5INSB8fCB0biA9PT0gJC5INilcclxuICAgICAgICAgICAgICAgIG51bWJlcmVkSGVhZGVyRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkJSKVxyXG4gICAgICAgICAgICAgICAgYnJFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuRU0gfHwgdG4gPT09ICQuVFQpXHJcbiAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQklHKVxyXG4gICAgICAgICAgICAgICAgY2FsbEFkb3B0aW9uQWdlbmN5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLkRJUiB8fCB0biA9PT0gJC5ESVYgfHwgdG4gPT09ICQuTkFWKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5CT0RZKVxyXG4gICAgICAgICAgICAgICAgYm9keUVuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgICAgICAgICAgaHRtbEVuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5GT1JNKVxyXG4gICAgICAgICAgICAgICAgZm9ybUVuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5DT0RFIHx8IHRuID09PSAkLkZPTlQgfHwgdG4gPT09ICQuTk9CUilcclxuICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQUlOIHx8IHRuID09PSAkLk1FTlUpXHJcbiAgICAgICAgICAgICAgICBhZGRyZXNzRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkFTSURFKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5TTUFMTClcclxuICAgICAgICAgICAgICAgIGNhbGxBZG9wdGlvbkFnZW5jeShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5DRU5URVIgfHwgdG4gPT09ICQuRklHVVJFIHx8IHRuID09PSAkLkZPT1RFUiB8fCB0biA9PT0gJC5IRUFERVIgfHwgdG4gPT09ICQuSEdST1VQKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5BUFBMRVQgfHwgdG4gPT09ICQuT0JKRUNUKVxyXG4gICAgICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLlNUUklLRSB8fCB0biA9PT0gJC5TVFJPTkcpXHJcbiAgICAgICAgICAgICAgICBjYWxsQWRvcHRpb25BZ2VuY3kocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSA3OlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQUREUkVTUyB8fCB0biA9PT0gJC5BUlRJQ0xFIHx8IHRuID09PSAkLkRFVEFJTFMgfHwgdG4gPT09ICQuU0VDVElPTiB8fCB0biA9PT0gJC5TVU1NQVJZKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5NQVJRVUVFKVxyXG4gICAgICAgICAgICAgICAgYXBwbGV0RW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIGdlbmVyaWNFbmRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgODpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkZJRUxEU0VUKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSlcclxuICAgICAgICAgICAgICAgIGVuZFRhZ0luSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDEwOlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQkxPQ0tRVU9URSB8fCB0biA9PT0gJC5GSUdDQVBUSU9OKVxyXG4gICAgICAgICAgICAgICAgYWRkcmVzc0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBnZW5lcmljRW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0IDpcclxuICAgICAgICAgICAgZ2VuZXJpY0VuZFRhZ0luQm9keShwLCB0b2tlbik7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVvZkluQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAudG1wbEluc2VydGlvbk1vZGVTdGFja1RvcCA+IC0xKVxyXG4gICAgICAgIGVvZkluVGVtcGxhdGUocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgICBwLnN0b3BwZWQgPSB0cnVlO1xyXG59XHJcblxyXG4vLzEyLjIuNS40LjggVGhlIFwidGV4dFwiIGluc2VydGlvbiBtb2RlXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbmZ1bmN0aW9uIGVuZFRhZ0luVGV4dChwLCB0b2tlbikge1xyXG4gICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuU0NSSVBUKVxyXG4gICAgICAgIHAucGVuZGluZ1NjcmlwdCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcblxyXG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGVvZkluVGV4dChwLCB0b2tlbikge1xyXG4gICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZTtcclxuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbn1cclxuXHJcblxyXG4vLzEyLjIuNS40LjkgVGhlIFwiaW4gdGFibGVcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBjaGFyYWN0ZXJJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgY3VyVG4gPSBwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZTtcclxuXHJcbiAgICBpZiAoY3VyVG4gPT09ICQuVEFCTEUgfHwgY3VyVG4gPT09ICQuVEJPRFkgfHwgY3VyVG4gPT09ICQuVEZPT1QgfHwgY3VyVG4gPT09ICQuVEhFQUQgfHwgY3VyVG4gPT09ICQuVFIpIHtcclxuICAgICAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMgPSBbXTtcclxuICAgICAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSBmYWxzZTtcclxuICAgICAgICBwLm9yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IHAuaW5zZXJ0aW9uTW9kZTtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9URVhUX01PREU7XHJcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlXHJcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2FwdGlvblN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xyXG4gICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQoKTtcclxuICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9DQVBUSU9OX01PREU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbGdyb3VwU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9DT0xVTU5fR1JPVVBfTU9ERTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29sU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xyXG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoJC5DT0xHUk9VUCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9DT0xVTU5fR1JPVVBfTU9ERTtcclxuICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xyXG4gICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRkU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQ29udGV4dCgpO1xyXG4gICAgcC5faW5zZXJ0RmFrZUVsZW1lbnQoJC5UQk9EWSk7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7XHJcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0YWJsZVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlRBQkxFKTtcclxuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcclxuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpbnB1dFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xyXG4gICAgdmFyIGlucHV0VHlwZSA9IFRva2VuaXplci5nZXRUb2tlbkF0dHIodG9rZW4sIEFUVFJTLlRZUEUpO1xyXG5cclxuICAgIGlmIChpbnB1dFR5cGUgJiYgaW5wdXRUeXBlLnRvTG93ZXJDYXNlKCkgPT09IEhJRERFTl9JTlBVVF9UWVBFKVxyXG4gICAgICAgIHAuX2FwcGVuZEVsZW1lbnQodG9rZW4sIE5TLkhUTUwpO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICBpZiAoIXAuZm9ybUVsZW1lbnQgJiYgcC5vcGVuRWxlbWVudHMudG1wbENvdW50ID09PSAwKSB7XHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICAgICAgcC5mb3JtRWxlbWVudCA9IHAub3BlbkVsZW1lbnRzLmN1cnJlbnQ7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBzd2l0Y2ggKHRuLmxlbmd0aCkge1xyXG4gICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRSKVxyXG4gICAgICAgICAgICAgICAgdGRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5DT0wpXHJcbiAgICAgICAgICAgICAgICBjb2xTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5GT1JNKVxyXG4gICAgICAgICAgICAgICAgZm9ybVN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKVxyXG4gICAgICAgICAgICAgICAgdGFibGVTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZSBpZiAodG4gPT09ICQuU1RZTEUpXHJcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRClcclxuICAgICAgICAgICAgICAgIHRib2R5U3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHRuID09PSAkLklOUFVUKVxyXG4gICAgICAgICAgICAgICAgaW5wdXRTdGFydFRhZ0luVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgIGlmICh0biA9PT0gJC5TQ1JJUFQpXHJcbiAgICAgICAgICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0b2tlbkluVGFibGUocCwgdG9rZW4pO1xyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgNzpcclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLkNBUFRJT04pXHJcbiAgICAgICAgICAgICAgICBjYXB0aW9uU3RhcnRUYWdJblRhYmxlKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSA4OlxyXG4gICAgICAgICAgICBpZiAodG4gPT09ICQuQ09MR1JPVVApXHJcbiAgICAgICAgICAgICAgICBjb2xncm91cFN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSlcclxuICAgICAgICAgICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcclxuXHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRva2VuSW5UYWJsZShwLCB0b2tlbik7XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGUocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLlRBQkxFKSB7XHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRBQkxFKSkge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5UQUJMRSk7XHJcbiAgICAgICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5URU1QTEFURSlcclxuICAgICAgICBlbmRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJlxyXG4gICAgICAgICAgICAgdG4gIT09ICQuVEJPRFkgJiYgdG4gIT09ICQuVEQgJiYgdG4gIT09ICQuVEZPT1QgJiYgdG4gIT09ICQuVEggJiYgdG4gIT09ICQuVEhFQUQgJiYgdG4gIT09ICQuVFIpXHJcbiAgICAgICAgdG9rZW5JblRhYmxlKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9rZW5JblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgc2F2ZWRGb3N0ZXJQYXJlbnRpbmdTdGF0ZSA9IHAuZm9zdGVyUGFyZW50aW5nRW5hYmxlZDtcclxuXHJcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSB0cnVlO1xyXG4gICAgcC5fcHJvY2Vzc1Rva2VuSW5Cb2R5TW9kZSh0b2tlbik7XHJcbiAgICBwLmZvc3RlclBhcmVudGluZ0VuYWJsZWQgPSBzYXZlZEZvc3RlclBhcmVudGluZ1N0YXRlO1xyXG59XHJcblxyXG5cclxuLy8xMi4yLjUuNC4xMCBUaGUgXCJpbiB0YWJsZSB0ZXh0XCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gd2hpdGVzcGFjZUNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XHJcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNoYXJhY3RlckluVGFibGVUZXh0KHAsIHRva2VuKSB7XHJcbiAgICBwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnMucHVzaCh0b2tlbik7XHJcbiAgICBwLmhhc05vbldoaXRlc3BhY2VQZW5kaW5nQ2hhcmFjdGVyVG9rZW4gPSB0cnVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b2tlbkluVGFibGVUZXh0KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgaSA9IDA7XHJcblxyXG4gICAgaWYgKHAuaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbikge1xyXG4gICAgICAgIGZvciAoOyBpIDwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB0b2tlbkluVGFibGUocCwgcC5wZW5kaW5nQ2hhcmFjdGVyVG9rZW5zW2ldKTtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIHtcclxuICAgICAgICBmb3IgKDsgaSA8IHAucGVuZGluZ0NoYXJhY3RlclRva2Vucy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgcC5faW5zZXJ0Q2hhcmFjdGVycyhwLnBlbmRpbmdDaGFyYWN0ZXJUb2tlbnNbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHAuaW5zZXJ0aW9uTW9kZSA9IHAub3JpZ2luYWxJbnNlcnRpb25Nb2RlO1xyXG4gICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxufVxyXG5cclxuXHJcbi8vMTIuMi41LjQuMTEgVGhlIFwiaW4gY2FwdGlvblwiIGluc2VydGlvbiBtb2RlXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5DYXB0aW9uKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLkNPTCB8fCB0biA9PT0gJC5DT0xHUk9VUCB8fCB0biA9PT0gJC5UQk9EWSB8fFxyXG4gICAgICAgIHRuID09PSAkLlREIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIIHx8IHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSKSB7XHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLkNBUFRJT04pKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuQ0FQVElPTik7XHJcbiAgICAgICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmNsZWFyVG9MYXN0TWFya2VyKCk7XHJcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX01PREU7XHJcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2VcclxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0luQ2FwdGlvbihwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5UQUJMRSkge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5DQVBUSU9OKSkge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzKCk7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLkNBUFRJT04pO1xyXG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xyXG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRuID09PSAkLlRBQkxFKVxyXG4gICAgICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gIT09ICQuQk9EWSAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgJiYgdG4gIT09ICQuSFRNTCAmJiB0biAhPT0gJC5UQk9EWSAmJlxyXG4gICAgICAgICAgICAgdG4gIT09ICQuVEQgJiYgdG4gIT09ICQuVEZPT1QgJiYgdG4gIT09ICQuVEggJiYgdG4gIT09ICQuVEhFQUQgJiYgdG4gIT09ICQuVFIpXHJcbiAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxufVxyXG5cclxuXHJcbi8vMTIuMi41LjQuMTIgVGhlIFwiaW4gY29sdW1uIGdyb3VwXCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5DT0wpXHJcbiAgICAgICAgcC5fYXBwZW5kRWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2VcclxuICAgICAgICB0b2tlbkluQ29sdW1uR3JvdXAocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmRUYWdJbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5DT0xHUk9VUCkge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5DT0xHUk9VUCkge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biAhPT0gJC5DT0wpXHJcbiAgICAgICAgdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9rZW5JbkNvbHVtbkdyb3VwKHAsIHRva2VuKSB7XHJcbiAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuQ09MR1JPVVApIHtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9NT0RFO1xyXG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8vMTIuMi41LjQuMTMgVGhlIFwiaW4gdGFibGUgYm9keVwiIGluc2VydGlvbiBtb2RlXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UYWJsZUJvZHkocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLlRSKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZUJvZHlDb250ZXh0KCk7XHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fUk9XX01PREU7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEggfHwgdG4gPT09ICQuVEQpIHtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5jbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQoKTtcclxuICAgICAgICBwLl9pbnNlcnRGYWtlRWxlbWVudCgkLlRSKTtcclxuICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9ST1dfTU9ERTtcclxuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuQ09MIHx8IHRuID09PSAkLkNPTEdST1VQIHx8XHJcbiAgICAgICAgICAgICB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkge1xyXG5cclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTtcclxuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0luVGFibGVCb2R5KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCkge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUodG4pKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzVGFibGVCb2R5Q29udGV4dEluVGFibGVTY29wZSgpKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVCb2R5Q29udGV4dCgpO1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fVEFCTEVfTU9ERTtcclxuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gIT09ICQuQk9EWSAmJiB0biAhPT0gJC5DQVBUSU9OICYmIHRuICE9PSAkLkNPTCAmJiB0biAhPT0gJC5DT0xHUk9VUCB8fFxyXG4gICAgICAgICAgICAgdG4gIT09ICQuSFRNTCAmJiB0biAhPT0gJC5URCAmJiB0biAhPT0gJC5USCAmJiB0biAhPT0gJC5UUilcclxuICAgICAgICBlbmRUYWdJblRhYmxlKHAsIHRva2VuKTtcclxufVxyXG5cclxuLy8xMi4yLjUuNC4xNCBUaGUgXCJpbiByb3dcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0luUm93KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5USCB8fCB0biA9PT0gJC5URCkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gSU5fQ0VMTF9NT0RFO1xyXG4gICAgICAgIHAuYWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzLmluc2VydE1hcmtlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLkNBUFRJT04gfHwgdG4gPT09ICQuQ09MIHx8IHRuID09PSAkLkNPTEdST1VQIHx8IHRuID09PSAkLlRCT0RZIHx8XHJcbiAgICAgICAgICAgICB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5UUikge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcclxuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHN0YXJ0VGFnSW5UYWJsZShwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0luUm93KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5UUikge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblRhYmxlU2NvcGUoJC5UUikpIHtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuY2xlYXJCYWNrVG9UYWJsZVJvd0NvbnRleHQoKTtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wKCk7XHJcbiAgICAgICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IElOX1RBQkxFX0JPRFlfTU9ERTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUpIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7XHJcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8IHRuID09PSAkLlRIRUFEKSB7XHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikgfHwgcC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVFIpKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLmNsZWFyQmFja1RvVGFibGVSb3dDb250ZXh0KCk7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9UQUJMRV9CT0RZX01PREU7XHJcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuICE9PSAkLkJPRFkgJiYgdG4gIT09ICQuQ0FQVElPTiAmJiB0biAhPT0gJC5DT0wgJiYgdG4gIT09ICQuQ09MR1JPVVAgfHxcclxuICAgICAgICAgICAgIHRuICE9PSAkLkhUTUwgJiYgdG4gIT09ICQuVEQgJiYgdG4gIT09ICQuVEgpXHJcbiAgICAgICAgZW5kVGFnSW5UYWJsZShwLCB0b2tlbik7XHJcbn1cclxuXHJcblxyXG4vLzEyLjIuNS40LjE1IFRoZSBcImluIGNlbGxcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0luQ2VsbChwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5DT0wgfHwgdG4gPT09ICQuQ09MR1JPVVAgfHwgdG4gPT09ICQuVEJPRFkgfHxcclxuICAgICAgICB0biA9PT0gJC5URCB8fCB0biA9PT0gJC5URk9PVCB8fCB0biA9PT0gJC5USCB8fCB0biA9PT0gJC5USEVBRCB8fCB0biA9PT0gJC5UUikge1xyXG5cclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKCQuVEQpIHx8IHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSgkLlRIKSkge1xyXG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xyXG4gICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNlXHJcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmRUYWdJbkNlbGwocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSB7XHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmhhc0luVGFibGVTY29wZSh0bikpIHtcclxuICAgICAgICAgICAgcC5vcGVuRWxlbWVudHMuZ2VuZXJhdGVJbXBsaWVkRW5kVGFncygpO1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQodG4pO1xyXG4gICAgICAgICAgICBwLmFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cy5jbGVhclRvTGFzdE1hcmtlcigpO1xyXG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9ST1dfTU9ERTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEFCTEUgfHwgdG4gPT09ICQuVEJPRFkgfHwgdG4gPT09ICQuVEZPT1QgfHwgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIpIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xyXG4gICAgICAgICAgICBwLl9jbG9zZVRhYmxlQ2VsbCgpO1xyXG4gICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICh0biAhPT0gJC5CT0RZICYmIHRuICE9PSAkLkNBUFRJT04gJiYgdG4gIT09ICQuQ09MICYmIHRuICE9PSAkLkNPTEdST1VQICYmIHRuICE9PSAkLkhUTUwpXHJcbiAgICAgICAgZW5kVGFnSW5Cb2R5KHAsIHRva2VuKTtcclxufVxyXG5cclxuLy8xMi4yLjUuNC4xNiBUaGUgXCJpbiBzZWxlY3RcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5PUFRJT04pIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKVxyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuXHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuT1BUR1JPVVApIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUSU9OKVxyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuXHJcbiAgICAgICAgaWYgKHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lID09PSAkLk9QVEdST1VQKVxyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3AoKTtcclxuXHJcbiAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgTlMuSFRNTCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuSU5QVVQgfHwgdG4gPT09ICQuS0VZR0VOIHx8IHRuID09PSAkLlRFWFRBUkVBIHx8IHRuID09PSAkLlNFTEVDVCkge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xyXG4gICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0biAhPT0gJC5TRUxFQ1QpXHJcbiAgICAgICAgICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5TQ1JJUFQgfHwgdG4gPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgc3RhcnRUYWdJbkhlYWQocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBlbmRUYWdJblNlbGVjdChwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuT1BUR1JPVVApIHtcclxuICAgICAgICB2YXIgcHJldk9wZW5FbGVtZW50ID0gcC5vcGVuRWxlbWVudHMuaXRlbXNbcC5vcGVuRWxlbWVudHMuc3RhY2tUb3AgLSAxXSxcclxuICAgICAgICAgICAgcHJldk9wZW5FbGVtZW50VG4gPSBwcmV2T3BlbkVsZW1lbnQgJiYgcC50cmVlQWRhcHRlci5nZXRUYWdOYW1lKHByZXZPcGVuRWxlbWVudCk7XHJcblxyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRJT04gJiYgcHJldk9wZW5FbGVtZW50VG4gPT09ICQuT1BUR1JPVVApXHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG5cclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuY3VycmVudFRhZ05hbWUgPT09ICQuT1BUR1JPVVApXHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLk9QVElPTikge1xyXG4gICAgICAgIGlmIChwLm9wZW5FbGVtZW50cy5jdXJyZW50VGFnTmFtZSA9PT0gJC5PUFRJT04pXHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLlNFTEVDVCAmJiBwLm9wZW5FbGVtZW50cy5oYXNJblNlbGVjdFNjb3BlKCQuU0VMRUNUKSkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsVGFnTmFtZVBvcHBlZCgkLlNFTEVDVCk7XHJcbiAgICAgICAgcC5fcmVzZXRJbnNlcnRpb25Nb2RlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAodG4gPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcclxufVxyXG5cclxuLy8xMi4yLjUuNC4xNyBUaGUgXCJpbiBzZWxlY3QgaW4gdGFibGVcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0luU2VsZWN0SW5UYWJsZShwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuQ0FQVElPTiB8fCB0biA9PT0gJC5UQUJMRSB8fCB0biA9PT0gJC5UQk9EWSB8fCB0biA9PT0gJC5URk9PVCB8fFxyXG4gICAgICAgIHRuID09PSAkLlRIRUFEIHx8IHRuID09PSAkLlRSIHx8IHRuID09PSAkLlREIHx8IHRuID09PSAkLlRIKSB7XHJcbiAgICAgICAgcC5vcGVuRWxlbWVudHMucG9wVW50aWxUYWdOYW1lUG9wcGVkKCQuU0VMRUNUKTtcclxuICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcclxuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2VcclxuICAgICAgICBzdGFydFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZW5kVGFnSW5TZWxlY3RJblRhYmxlKHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5DQVBUSU9OIHx8IHRuID09PSAkLlRBQkxFIHx8IHRuID09PSAkLlRCT0RZIHx8IHRuID09PSAkLlRGT09UIHx8XHJcbiAgICAgICAgdG4gPT09ICQuVEhFQUQgfHwgdG4gPT09ICQuVFIgfHwgdG4gPT09ICQuVEQgfHwgdG4gPT09ICQuVEgpIHtcclxuICAgICAgICBpZiAocC5vcGVuRWxlbWVudHMuaGFzSW5UYWJsZVNjb3BlKHRuKSkge1xyXG4gICAgICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5TRUxFQ1QpO1xyXG4gICAgICAgICAgICBwLl9yZXNldEluc2VydGlvbk1vZGUoKTtcclxuICAgICAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIGVuZFRhZ0luU2VsZWN0KHAsIHRva2VuKTtcclxufVxyXG5cclxuLy8xMi4yLjUuNC4xOCBUaGUgXCJpbiB0ZW1wbGF0ZVwiIGluc2VydGlvbiBtb2RlXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbmZ1bmN0aW9uIHN0YXJ0VGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xyXG4gICAgdmFyIHRuID0gdG9rZW4udGFnTmFtZTtcclxuXHJcbiAgICBpZiAodG4gPT09ICQuQkFTRSB8fCB0biA9PT0gJC5CQVNFRk9OVCB8fCB0biA9PT0gJC5CR1NPVU5EIHx8IHRuID09PSAkLkxJTksgfHwgdG4gPT09ICQuTUVUQSB8fFxyXG4gICAgICAgIHRuID09PSAkLk5PRlJBTUVTIHx8IHRuID09PSAkLlNDUklQVCB8fCB0biA9PT0gJC5TVFlMRSB8fCB0biA9PT0gJC5URU1QTEFURSB8fCB0biA9PT0gJC5USVRMRSlcclxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdmFyIG5ld0luc2VydGlvbk1vZGUgPSBURU1QTEFURV9JTlNFUlRJT05fTU9ERV9TV0lUQ0hfTUFQW3RuXSB8fCBJTl9CT0RZX01PREU7XHJcblxyXG4gICAgICAgIHAuX3BvcFRtcGxJbnNlcnRpb25Nb2RlKCk7XHJcbiAgICAgICAgcC5fcHVzaFRtcGxJbnNlcnRpb25Nb2RlKG5ld0luc2VydGlvbk1vZGUpO1xyXG4gICAgICAgIHAuaW5zZXJ0aW9uTW9kZSA9IG5ld0luc2VydGlvbk1vZGU7XHJcbiAgICAgICAgcC5fcHJvY2Vzc1Rva2VuKHRva2VuKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZW5kVGFnSW5UZW1wbGF0ZShwLCB0b2tlbikge1xyXG4gICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuVEVNUExBVEUpXHJcbiAgICAgICAgZW5kVGFnSW5IZWFkKHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZW9mSW5UZW1wbGF0ZShwLCB0b2tlbikge1xyXG4gICAgaWYgKHAub3BlbkVsZW1lbnRzLnRtcGxDb3VudCA+IDApIHtcclxuICAgICAgICBwLm9wZW5FbGVtZW50cy5wb3BVbnRpbFRhZ05hbWVQb3BwZWQoJC5URU1QTEFURSk7XHJcbiAgICAgICAgcC5hY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMuY2xlYXJUb0xhc3RNYXJrZXIoKTtcclxuICAgICAgICBwLl9wb3BUbXBsSW5zZXJ0aW9uTW9kZSgpO1xyXG4gICAgICAgIHAuX3Jlc2V0SW5zZXJ0aW9uTW9kZSgpO1xyXG4gICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHAuc3RvcHBlZCA9IHRydWU7XHJcbn1cclxuXHJcblxyXG4vLzEyLjIuNS40LjE5IFRoZSBcImFmdGVyIGJvZHlcIiBpbnNlcnRpb24gbW9kZVxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5mdW5jdGlvbiBzdGFydFRhZ0FmdGVyQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTClcclxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZW5kVGFnQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XHJcbiAgICBpZiAodG9rZW4udGFnTmFtZSA9PT0gJC5IVE1MKSB7XHJcbiAgICAgICAgaWYgKCFwLmZyYWdtZW50Q29udGV4dClcclxuICAgICAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQUZURVJfQk9EWV9NT0RFO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2VcclxuICAgICAgICB0b2tlbkFmdGVyQm9keShwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRva2VuQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7XHJcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59XHJcblxyXG4vLzEyLjIuNS40LjIwIFRoZSBcImluIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdJbkZyYW1lc2V0KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5GUkFNRVNFVClcclxuICAgICAgICBwLl9pbnNlcnRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5GUkFNRSlcclxuICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBOUy5IVE1MKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUylcclxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0luRnJhbWVzZXQocCwgdG9rZW4pIHtcclxuICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkZSQU1FU0VUICYmICFwLm9wZW5FbGVtZW50cy5pc1Jvb3RIdG1sRWxlbWVudEN1cnJlbnQoKSkge1xyXG4gICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG5cclxuICAgICAgICBpZiAoIXAuZnJhZ21lbnRDb250ZXh0ICYmIHAub3BlbkVsZW1lbnRzLmN1cnJlbnRUYWdOYW1lICE9PSAkLkZSQU1FU0VUKVxyXG4gICAgICAgICAgICBwLmluc2VydGlvbk1vZGUgPSBBRlRFUl9GUkFNRVNFVF9NT0RFO1xyXG4gICAgfVxyXG59XHJcblxyXG4vLzEyLjIuNS40LjIxIFRoZSBcImFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckZyYW1lc2V0KHAsIHRva2VuKSB7XHJcbiAgICB2YXIgdG4gPSB0b2tlbi50YWdOYW1lO1xyXG5cclxuICAgIGlmICh0biA9PT0gJC5IVE1MKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5Cb2R5KHAsIHRva2VuKTtcclxuXHJcbiAgICBlbHNlIGlmICh0biA9PT0gJC5OT0ZSQU1FUylcclxuICAgICAgICBzdGFydFRhZ0luSGVhZChwLCB0b2tlbik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVuZFRhZ0FmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcclxuICAgIGlmICh0b2tlbi50YWdOYW1lID09PSAkLkhUTUwpXHJcbiAgICAgICAgcC5pbnNlcnRpb25Nb2RlID0gQUZURVJfQUZURVJfRlJBTUVTRVRfTU9ERTtcclxufVxyXG5cclxuLy8xMi4yLjUuNC4yMiBUaGUgXCJhZnRlciBhZnRlciBib2R5XCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyQm9keShwLCB0b2tlbikge1xyXG4gICAgaWYgKHRva2VuLnRhZ05hbWUgPT09ICQuSFRNTClcclxuICAgICAgICBzdGFydFRhZ0luQm9keShwLCB0b2tlbik7XHJcblxyXG4gICAgZWxzZVxyXG4gICAgICAgIHRva2VuQWZ0ZXJBZnRlckJvZHkocCwgdG9rZW4pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b2tlbkFmdGVyQWZ0ZXJCb2R5KHAsIHRva2VuKSB7XHJcbiAgICBwLmluc2VydGlvbk1vZGUgPSBJTl9CT0RZX01PREU7XHJcbiAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG59XHJcblxyXG4vLzEyLjIuNS40LjIzIFRoZSBcImFmdGVyIGFmdGVyIGZyYW1lc2V0XCIgaW5zZXJ0aW9uIG1vZGVcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gc3RhcnRUYWdBZnRlckFmdGVyRnJhbWVzZXQocCwgdG9rZW4pIHtcclxuICAgIHZhciB0biA9IHRva2VuLnRhZ05hbWU7XHJcblxyXG4gICAgaWYgKHRuID09PSAkLkhUTUwpXHJcbiAgICAgICAgc3RhcnRUYWdJbkJvZHkocCwgdG9rZW4pO1xyXG5cclxuICAgIGVsc2UgaWYgKHRuID09PSAkLk5PRlJBTUVTKVxyXG4gICAgICAgIHN0YXJ0VGFnSW5IZWFkKHAsIHRva2VuKTtcclxufVxyXG5cclxuXHJcbi8vMTIuMi41LjUgVGhlIHJ1bGVzIGZvciBwYXJzaW5nIHRva2VucyBpbiBmb3JlaWduIGNvbnRlbnRcclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuZnVuY3Rpb24gbnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQocCwgdG9rZW4pIHtcclxuICAgIHRva2VuLmNoYXJzID0gVU5JQ09ERS5SRVBMQUNFTUVOVF9DSEFSQUNURVI7XHJcbiAgICBwLl9pbnNlcnRDaGFyYWN0ZXJzKHRva2VuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2hhcmFjdGVySW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xyXG4gICAgcC5faW5zZXJ0Q2hhcmFjdGVycyh0b2tlbik7XHJcbiAgICBwLmZyYW1lc2V0T2sgPSBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gc3RhcnRUYWdJbkZvcmVpZ25Db250ZW50KHAsIHRva2VuKSB7XHJcbiAgICBpZiAoZm9yZWlnbkNvbnRlbnQuY2F1c2VzRXhpdCh0b2tlbikgJiYgIXAuZnJhZ21lbnRDb250ZXh0KSB7XHJcbiAgICAgICAgd2hpbGUgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKHAub3BlbkVsZW1lbnRzLmN1cnJlbnQpICE9PSBOUy5IVE1MICYmICFwLl9pc0ludGVncmF0aW9uUG9pbnQocC5vcGVuRWxlbWVudHMuY3VycmVudCkpXHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcCgpO1xyXG5cclxuICAgICAgICBwLl9wcm9jZXNzVG9rZW4odG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIHZhciBjdXJyZW50ID0gcC5fZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCgpLFxyXG4gICAgICAgICAgICBjdXJyZW50TnMgPSBwLnRyZWVBZGFwdGVyLmdldE5hbWVzcGFjZVVSSShjdXJyZW50KTtcclxuXHJcbiAgICAgICAgaWYgKGN1cnJlbnROcyA9PT0gTlMuTUFUSE1MKVxyXG4gICAgICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlbk1hdGhNTEF0dHJzKHRva2VuKTtcclxuXHJcbiAgICAgICAgZWxzZSBpZiAoY3VycmVudE5zID09PSBOUy5TVkcpIHtcclxuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdUYWdOYW1lKHRva2VuKTtcclxuICAgICAgICAgICAgZm9yZWlnbkNvbnRlbnQuYWRqdXN0VG9rZW5TVkdBdHRycyh0b2tlbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3JlaWduQ29udGVudC5hZGp1c3RUb2tlblhNTEF0dHJzKHRva2VuKTtcclxuXHJcbiAgICAgICAgaWYgKHRva2VuLnNlbGZDbG9zaW5nKVxyXG4gICAgICAgICAgICBwLl9hcHBlbmRFbGVtZW50KHRva2VuLCBjdXJyZW50TnMpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgcC5faW5zZXJ0RWxlbWVudCh0b2tlbiwgY3VycmVudE5zKTtcclxuICAgIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZW5kVGFnSW5Gb3JlaWduQ29udGVudChwLCB0b2tlbikge1xyXG4gICAgZm9yICh2YXIgaSA9IHAub3BlbkVsZW1lbnRzLnN0YWNrVG9wOyBpID4gMDsgaS0tKSB7XHJcbiAgICAgICAgdmFyIGVsZW1lbnQgPSBwLm9wZW5FbGVtZW50cy5pdGVtc1tpXTtcclxuXHJcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0TmFtZXNwYWNlVVJJKGVsZW1lbnQpID09PSBOUy5IVE1MKSB7XHJcbiAgICAgICAgICAgIHAuX3Byb2Nlc3NUb2tlbih0b2tlbik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHAudHJlZUFkYXB0ZXIuZ2V0VGFnTmFtZShlbGVtZW50KS50b0xvd2VyQ2FzZSgpID09PSB0b2tlbi50YWdOYW1lKSB7XHJcbiAgICAgICAgICAgIHAub3BlbkVsZW1lbnRzLnBvcFVudGlsRWxlbWVudFBvcHBlZChlbGVtZW50KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIid1c2Ugc3RyaWN0JztcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gbWVyZ2VPcHRpb25zKGRlZmF1bHRzLCBvcHRpb25zKSB7XHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgICByZXR1cm4gW2RlZmF1bHRzLCBvcHRpb25zXS5yZWR1Y2UoZnVuY3Rpb24gKG1lcmdlZCwgb3B0T2JqKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMob3B0T2JqKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcclxuICAgICAgICAgICAgbWVyZ2VkW2tleV0gPSBvcHRPYmpba2V5XTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG1lcmdlZDtcclxuICAgIH0sIHt9KTtcclxufTtcclxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZnJvbVBhcnNlNSA9IHJlcXVpcmUoJ2hhc3QtdXRpbC1mcm9tLXBhcnNlNScpO1xudmFyIFBhcnNlcjUgPSByZXF1aXJlKCdwYXJzZTUvbGliL3BhcnNlcicpO1xudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZTtcblxuZnVuY3Rpb24gcGFyc2Uob3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSB4dGVuZChvcHRpb25zLCB0aGlzLmRhdGEoJ3NldHRpbmdzJykpO1xuICB2YXIgcG9zaXRpb24gPSB0eXBlb2Ygc2V0dGluZ3MucG9zaXRpb24gPT09ICdib29sZWFuJyA/IHNldHRpbmdzLnBvc2l0aW9uIDogdHJ1ZTtcbiAgdmFyIHBhcnNlNSA9IG5ldyBQYXJzZXI1KHtsb2NhdGlvbkluZm86IHBvc2l0aW9ufSk7XG5cbiAgdGhpcy5QYXJzZXIgPSBwYXJzZXI7XG5cbiAgZnVuY3Rpb24gcGFyc2VyKGRvYywgZmlsZSkge1xuICAgIHZhciBmbiA9IHNldHRpbmdzLmZyYWdtZW50ID8gJ3BhcnNlRnJhZ21lbnQnIDogJ3BhcnNlJztcblxuICAgIHJldHVybiBmcm9tUGFyc2U1KHBhcnNlNVtmbl0oU3RyaW5nKGZpbGUpKSwge1xuICAgICAgZmlsZTogZmlsZSxcbiAgICAgIHZlcmJvc2U6IHNldHRpbmdzLnZlcmJvc2VcbiAgICB9KTtcbiAgfVxufVxuIiwiY29uc3QgdmlzaXQgPSByZXF1aXJlKCd1bmlzdC11dGlsLXZpc2l0JylcbmNvbnN0IGthdGV4ID0gcmVxdWlyZSgna2F0ZXgnKVxuY29uc3QgdW5pZmllZCA9IHJlcXVpcmUoJ3VuaWZpZWQnKVxuY29uc3QgcGFyc2UgPSByZXF1aXJlKCdyZWh5cGUtcGFyc2UnKVxuY29uc3QgcG9zaXRpb24gPSByZXF1aXJlKCd1bmlzdC11dGlsLXBvc2l0aW9uJylcblxuZnVuY3Rpb24gcGFyc2VNYXRoSHRtbCAoaHRtbCkge1xuICByZXR1cm4gdW5pZmllZCgpXG4gICAgLnVzZShwYXJzZSwge1xuICAgICAgZnJhZ21lbnQ6IHRydWUsXG4gICAgICBwb3NpdGlvbjogZmFsc2VcbiAgICB9KVxuICAgIC5wYXJzZShodG1sKVxufVxuXG5mdW5jdGlvbiBoYXNDbGFzcyAoZWxlbWVudCwgY2xhc3NOYW1lKSB7XG4gIHJldHVybiBlbGVtZW50LnByb3BlcnRpZXMuY2xhc3NOYW1lICYmIGVsZW1lbnQucHJvcGVydGllcy5jbGFzc05hbWUuaW5jbHVkZXMoY2xhc3NOYW1lKVxufVxuXG5mdW5jdGlvbiBpc1RhZyAoZWxlbWVudCwgdGFnKSB7XG4gIHJldHVybiBlbGVtZW50LnRhZ05hbWUgPT09IHRhZ1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBsdWdpbiAob3B0cyA9IHt9KSB7XG4gIGlmIChvcHRzLnRocm93T25FcnJvciA9PSBudWxsKSBvcHRzLnRocm93T25FcnJvciA9IGZhbHNlXG4gIGlmIChvcHRzLmVycm9yQ29sb3IgPT0gbnVsbCkgb3B0cy5lcnJvckNvbG9yID0gJyNjYzAwMDAnXG4gIGlmIChvcHRzLm1hY3JvcyA9PSBudWxsKSBvcHRzLm1hY3JvcyA9IHt9XG4gIHJldHVybiBmdW5jdGlvbiB0cmFuc2Zvcm0gKG5vZGUsIGZpbGUpIHtcbiAgICB2aXNpdChub2RlLCAnZWxlbWVudCcsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICBjb25zdCBpc0lubGluZU1hdGggPSBpc1RhZyhlbGVtZW50LCAnc3BhbicpICYmIGhhc0NsYXNzKGVsZW1lbnQsICdpbmxpbmVNYXRoJylcbiAgICAgIGNvbnN0IGlzTWF0aCA9IChvcHRzLmlubGluZU1hdGhEb3VibGVEaXNwbGF5ICYmIGhhc0NsYXNzKGVsZW1lbnQsICdpbmxpbmVNYXRoRG91YmxlJykpIHx8IChpc1RhZyhlbGVtZW50LCAnZGl2JykgJiYgaGFzQ2xhc3MoZWxlbWVudCwgJ21hdGgnKSlcblxuICAgICAgaWYgKGlzSW5saW5lTWF0aCB8fCBpc01hdGgpIHtcbiAgICAgICAgbGV0IHJlbmRlcmVkVmFsdWVcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZW5kZXJlZFZhbHVlID0ga2F0ZXgucmVuZGVyVG9TdHJpbmcoZWxlbWVudC5jaGlsZHJlblswXS52YWx1ZSwge1xuICAgICAgICAgICAgZGlzcGxheU1vZGU6IGlzTWF0aCxcbiAgICAgICAgICAgIG1hY3Jvczogb3B0cy5tYWNyb3NcbiAgICAgICAgICB9KVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBpZiAob3B0cy50aHJvd09uRXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGVyclxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWxlLm1lc3NhZ2UoXG4gICAgICAgICAgICAgIGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICBwb3NpdGlvbi5zdGFydChlbGVtZW50KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmVuZGVyZWRWYWx1ZSA9IGthdGV4LnJlbmRlclRvU3RyaW5nKGVsZW1lbnQuY2hpbGRyZW5bMF0udmFsdWUsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TW9kZTogaXNNYXRoLFxuICAgICAgICAgICAgICAgIG1hY3Jvczogb3B0cy5tYWNyb3MsXG4gICAgICAgICAgICAgICAgdGhyb3dPbkVycm9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBlcnJvckNvbG9yOiBvcHRzLmVycm9yQ29sb3JcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICByZW5kZXJlZFZhbHVlID0gJzxjb2RlIGNsYXNzPVwia2F0ZXhcIiBzdHlsZT1cImNvbG9yOiAnICsgb3B0cy5lcnJvckNvbG9yICsgJ1wiPicgKyBlbGVtZW50LmNoaWxkcmVuWzBdLnZhbHVlICsgJzwvY29kZT4nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5saW5lTWF0aEFzdCA9IHBhcnNlTWF0aEh0bWwocmVuZGVyZWRWYWx1ZSkuY2hpbGRyZW5bMF1cblxuICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQucHJvcGVydGllcywge2NsYXNzTmFtZTogZWxlbWVudC5wcm9wZXJ0aWVzLmNsYXNzTmFtZX0pXG4gICAgICAgIGVsZW1lbnQuY2hpbGRyZW4gPSBbaW5saW5lTWF0aEFzdF1cbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBub2RlXG4gIH1cbn1cbiIsIi8qKlxuICogQGF1dGhvciBUaXR1cyBXb3JtZXJcbiAqIEBjb3B5cmlnaHQgMjAxNiBUaXR1cyBXb3JtZXJcbiAqIEBsaWNlbnNlIE1JVFxuICogQG1vZHVsZSByZWh5cGU6bGludDp1dGlsOmlzLWVsZW1lbnRcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbi8qIGVzbGludC1lbnYgY29tbW9uanMgKi9cblxuLyoqXG4gKiBDaGVjayBpZiBhIG5vZGUgaXMgYSAoY2VydGFpbikgZWxlbWVudC5cbiAqXG4gKiBAcGFyYW0geyp9IG5vZGUgLSBUaGluZyB0byBjaGVjay5cbiAqIEBwYXJhbSB7c3RyaW5nfEFycmF5LjxzdHJpbmc+P30gW3RhZ05hbWVzXSAtIE5hbWUgb2YgZWxlbWVudC5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IC0gV2hldGhlciBhIG5vZGUgaXMgYSAoY2VydGFpbikgZWxlbWVudC5cbiAqIEB0aHJvd3Mge0Vycm9yfSAtIFdoZW4gYHRhZ05hbWVzYCBpcyBnaXZlbiBidXQgaW52YWxpZC5cbiAqL1xuZnVuY3Rpb24gaXNFbGVtZW50KG5vZGUsIHRhZ05hbWVzKSB7XG4gICAgdmFyIG5hbWU7XG5cbiAgICBpZiAoXG4gICAgICAgICEoXG4gICAgICAgICAgICB0YWdOYW1lcyA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdGFnTmFtZXMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgdHlwZW9mIHRhZ05hbWVzID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgKHR5cGVvZiB0YWdOYW1lcyA9PT0gJ29iamVjdCcgJiYgdGFnTmFtZXMubGVuZ3RoKVxuICAgICAgICApXG4gICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdFeHBlY3RlZCBgc3RyaW5nYCBvciBgQXJyYXkuPHN0cmluZz5gIGZvciAnICtcbiAgICAgICAgICAgICdgdGFnTmFtZXNgLCBub3QgYCcgKyB0YWdOYW1lcyArICdgJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgIW5vZGUgfHxcbiAgICAgICAgdHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8XG4gICAgICAgIG5vZGUudHlwZSAhPT0gJ2VsZW1lbnQnIHx8XG4gICAgICAgIHR5cGVvZiBub2RlLnRhZ05hbWUgIT09ICdzdHJpbmcnXG4gICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGFnTmFtZXMgPT09IG51bGwgfHwgdGFnTmFtZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBuYW1lID0gbm9kZS50YWdOYW1lO1xuXG4gICAgaWYgKHR5cGVvZiB0YWdOYW1lcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG5hbWUgPT09IHRhZ05hbWVzO1xuICAgIH1cblxuICAgIHJldHVybiB0YWdOYW1lcy5pbmRleE9mKG5hbWUpICE9PSAtMTtcbn1cblxuLypcbiAqIEV4cG9zZS5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRWxlbWVudDtcbiIsIi8qKlxuICogQGF1dGhvciBUaXR1cyBXb3JtZXJcbiAqIEBjb3B5cmlnaHQgMjAxNiBUaXR1cyBXb3JtZXJcbiAqIEBsaWNlbnNlIE1JVFxuICogQG1vZHVsZSBoYXN0OnV0aWw6d2hpdGVzcGFjZVxuICogQGZpbGVvdmVydmlldyBDaGVjayB3aGV0aGVyIGEgbm9kZSBpcyBpbnRlci1lbGVtZW50XG4gKiAgIHdoaXRlc3BhY2UuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG4vKiBlc2xpbnQtZW52IGNvbW1vbmpzICovXG5cbi8qXG4gKiBIVE1MIHdoaXRlLXNwYWNlIGV4cHJlc3Npb24uXG4gKlxuICogU2VlIDxodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNzcGFjZS1jaGFyYWN0ZXI+LlxuICovXG5cbnZhciBFWFBSRVNTSU9OID0gL1tcXCBcXHRcXG5cXGZcXHJdL2c7XG5cbi8qKlxuICogQ2hlY2sgaWYgYG5vZGVgIGlzIGEgaW50ZXItZWxlbWVudCB3aGl0ZS1zcGFjZS5cbiAqXG4gKiBAcGFyYW0ge05vZGV8c3RyaW5nfSBub2RlIC0gVmFsdWUgdG8gY2hlY2ssIG9yIE5vZGVcbiAqICAgd2hvc2UgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgYG5vZGVgIGlzIGludGVyLWVsZW1lbnRcbiAqICAgd2hpdGUtc3BhY2UuXG4gKi9cbmZ1bmN0aW9uIGludGVyRWxlbWVudFdoaXRlU3BhY2Uobm9kZSkge1xuICAgIHZhciB2YWx1ZTtcblxuICAgIGlmIChub2RlICYmIHR5cGVvZiBub2RlID09PSAnb2JqZWN0JyAmJiBub2RlLnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICB2YWx1ZSA9IG5vZGUudmFsdWUgfHwgJydcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZSA9IG5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKEVYUFJFU1NJT04sICcnKSA9PT0gJyc7XG59XG5cbi8qXG4gKiBFeHBvc2UuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBpbnRlckVsZW1lbnRXaGl0ZVNwYWNlO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVTcGFjZSA9IHJlcXVpcmUoJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJyk7XG5cbmV4cG9ydHMuYmVmb3JlID0gc2libGluZ3MoLTEpO1xuZXhwb3J0cy5hZnRlciA9IHNpYmxpbmdzKDEpO1xuXG4vKiBGYWN0b3J5IHRvIGNoZWNrIHNpYmxpbmdzIGluIGEgZGlyZWN0aW9uLiAqL1xuZnVuY3Rpb24gc2libGluZ3MoaW5jcmVtZW50KSB7XG4gIHJldHVybiBzaWJsaW5nO1xuXG4gIC8qIEZpbmQgYXBwbGljYWJsZSBzaWJsaW5ncyBpbiBhIGRpcmVjdGlvbi4gICAqL1xuICBmdW5jdGlvbiBzaWJsaW5nKHBhcmVudCwgaW5kZXgsIGluY2x1ZGVXaGl0ZVNwYWNlKSB7XG4gICAgdmFyIHNpYmxpbmdzID0gcGFyZW50ICYmIHBhcmVudC5jaGlsZHJlbjtcbiAgICB2YXIgbmV4dDtcblxuICAgIGluZGV4ICs9IGluY3JlbWVudDtcbiAgICBuZXh0ID0gc2libGluZ3MgJiYgc2libGluZ3NbaW5kZXhdO1xuXG4gICAgaWYgKCFpbmNsdWRlV2hpdGVTcGFjZSkge1xuICAgICAgd2hpbGUgKG5leHQgJiYgd2hpdGVTcGFjZShuZXh0KSkge1xuICAgICAgICBpbmRleCArPSBpbmNyZW1lbnQ7XG4gICAgICAgIG5leHQgPSBzaWJsaW5nc1tpbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFmdGVyID0gcmVxdWlyZSgnLi9zaWJsaW5ncycpLmFmdGVyO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpcnN0O1xuXG4vKiBHZXQgdGhlIGZpcnN0IGNoaWxkIGluIGBwYXJlbnRgLiAqL1xuZnVuY3Rpb24gZmlyc3QocGFyZW50LCBpbmNsdWRlV2hpdGVTcGFjZSkge1xuICByZXR1cm4gYWZ0ZXIocGFyZW50LCAtMSwgaW5jbHVkZVdoaXRlU3BhY2UpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWNlO1xuXG4vKiBHZXQgdGhlIHBvc2l0aW9uIG9mIGBub2RlYCBpbiBgcGFyZW50YC4gKi9cbmZ1bmN0aW9uIHBsYWNlKHBhcmVudCwgY2hpbGQpIHtcbiAgcmV0dXJuIHBhcmVudCAmJiBwYXJlbnQuY2hpbGRyZW4gJiYgcGFyZW50LmNoaWxkcmVuLmluZGV4T2YoY2hpbGQpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXMgPSByZXF1aXJlKCd1bmlzdC11dGlsLWlzJyk7XG52YXIgd2hpdGVTcGFjZSA9IHJlcXVpcmUoJ2hhc3QtdXRpbC13aGl0ZXNwYWNlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gd2hpdGVTcGFjZUxlZnQ7XG5cbi8qIENoZWNrIGlmIGBub2RlYCBzdGFydHMgd2l0aCB3aGl0ZS1zcGFjZS4gKi9cbmZ1bmN0aW9uIHdoaXRlU3BhY2VMZWZ0KG5vZGUpIHtcbiAgcmV0dXJuIGlzKCd0ZXh0Jywgbm9kZSkgJiYgd2hpdGVTcGFjZShub2RlLnZhbHVlLmNoYXJBdCgwKSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gb21pc3Npb247XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuLyogRmFjdG9yeSB0byBjaGVjayBpZiBhIGdpdmVuIG5vZGUgY2FuIGhhdmUgYSB0YWcgb21pdHRlZC4gKi9cbmZ1bmN0aW9uIG9taXNzaW9uKGhhbmRsZXJzKSB7XG4gIHJldHVybiBvbWl0O1xuXG4gIC8qIENoZWNrIGlmIGEgZ2l2ZW4gbm9kZSBjYW4gaGF2ZSBhIHRhZyBvbWl0dGVkLiAgICovXG4gIGZ1bmN0aW9uIG9taXQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICAgIHZhciBuYW1lID0gbm9kZS50YWdOYW1lO1xuICAgIHZhciBmbiA9IG93bi5jYWxsKGhhbmRsZXJzLCBuYW1lKSA/IGhhbmRsZXJzW25hbWVdIDogZmFsc2U7XG5cbiAgICByZXR1cm4gZm4gPyBmbihub2RlLCBpbmRleCwgcGFyZW50KSA6IGZhbHNlO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpcyA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtaXMnKTtcbnZhciBlbGVtZW50ID0gcmVxdWlyZSgnaGFzdC11dGlsLWlzLWVsZW1lbnQnKTtcbnZhciB3aGl0ZVNwYWNlTGVmdCA9IHJlcXVpcmUoJy4vdXRpbC93aGl0ZS1zcGFjZS1sZWZ0Jyk7XG52YXIgYWZ0ZXIgPSByZXF1aXJlKCcuL3V0aWwvc2libGluZ3MnKS5hZnRlcjtcbnZhciBvbWlzc2lvbiA9IHJlcXVpcmUoJy4vb21pc3Npb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBvbWlzc2lvbih7XG4gIGh0bWw6IGh0bWwsXG4gIGhlYWQ6IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICBib2R5OiBib2R5LFxuICBwOiBwLFxuICBsaTogbGksXG4gIGR0OiBkdCxcbiAgZGQ6IGRkLFxuICBydDogcnVieUVsZW1lbnQsXG4gIHJwOiBydWJ5RWxlbWVudCxcbiAgb3B0Z3JvdXA6IG9wdGdyb3VwLFxuICBvcHRpb246IG9wdGlvbixcbiAgbWVudWl0ZW06IG1lbnVpdGVtLFxuICBjb2xncm91cDogaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24sXG4gIGNhcHRpb246IGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uLFxuICB0aGVhZDogdGhlYWQsXG4gIHRib2R5OiB0Ym9keSxcbiAgdGZvb3Q6IHRmb290LFxuICB0cjogdHIsXG4gIHRkOiBjZWxscyxcbiAgdGg6IGNlbGxzXG59KTtcblxuLyogTWFjcm8gZm9yIGA8L2hlYWQ+YCwgYDwvY29sZ3JvdXA+YCwgYW5kIGA8L2NhcHRpb24+YC4gKi9cbmZ1bmN0aW9uIGhlYWRPckNvbGdyb3VwT3JDYXB0aW9uKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgdmFyIG5leHQgPSBhZnRlcihwYXJlbnQsIGluZGV4LCB0cnVlKTtcbiAgcmV0dXJuICFuZXh0IHx8ICghaXMoJ2NvbW1lbnQnLCBuZXh0KSAmJiAhd2hpdGVTcGFjZUxlZnQobmV4dCkpO1xufVxuXG4vKiBXaGV0aGVyIHRvIG9taXQgYDwvaHRtbD5gLiAqL1xuZnVuY3Rpb24gaHRtbChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBuZXh0ID0gYWZ0ZXIocGFyZW50LCBpbmRleCk7XG4gIHJldHVybiAhbmV4dCB8fCAhaXMoJ2NvbW1lbnQnLCBuZXh0KTtcbn1cblxuLyogV2hldGhlciB0byBvbWl0IGA8L2JvZHk+YC4gKi9cbmZ1bmN0aW9uIGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgIWlzKCdjb21tZW50JywgbmV4dCk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC9wPmAuICovXG5mdW5jdGlvbiBwKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgdmFyIG5leHQgPSBhZnRlcihwYXJlbnQsIGluZGV4KTtcblxuICBpZiAobmV4dCkge1xuICAgIHJldHVybiBlbGVtZW50KG5leHQsIFtcbiAgICAgICdhZGRyZXNzJywgJ2FydGljbGUnLCAnYXNpZGUnLCAnYmxvY2txdW90ZScsICdkZXRhaWxzJyxcbiAgICAgICdkaXYnLCAnZGwnLCAnZmllbGRzZXQnLCAnZmlnY2FwdGlvbicsICdmaWd1cmUnLCAnZm9vdGVyJyxcbiAgICAgICdmb3JtJywgJ2gxJywgJ2gyJywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWRlcicsXG4gICAgICAnaGdyb3VwJywgJ2hyJywgJ21haW4nLCAnbWVudScsICduYXYnLCAnb2wnLCAncCcsICdwcmUnLFxuICAgICAgJ3NlY3Rpb24nLCAndGFibGUnLCAndWwnXG4gICAgXSk7XG4gIH1cblxuICByZXR1cm4gIXBhcmVudCB8fCAhZWxlbWVudChwYXJlbnQsIFtcbiAgICAnYScsICdhdWRpbycsICdkZWwnLCAnaW5zJywgJ21hcCcsICdub3NjcmlwdCcsICd2aWRlbydcbiAgXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC9saT5gLiAqL1xuZnVuY3Rpb24gbGkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgZWxlbWVudChuZXh0LCAnbGknKTtcbn1cblxuLyogV2hldGhlciB0byBvbWl0IGA8L2R0PmAuICovXG5mdW5jdGlvbiBkdChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBuZXh0ID0gYWZ0ZXIocGFyZW50LCBpbmRleCk7XG4gIHJldHVybiBuZXh0ICYmIGVsZW1lbnQobmV4dCwgWydkdCcsICdkZCddKTtcbn1cblxuLyogV2hldGhlciB0byBvbWl0IGA8L2RkPmAuICovXG5mdW5jdGlvbiBkZChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBuZXh0ID0gYWZ0ZXIocGFyZW50LCBpbmRleCk7XG4gIHJldHVybiAhbmV4dCB8fCBlbGVtZW50KG5leHQsIFsnZHQnLCAnZGQnXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC9ydD5gIG9yIGA8L3JwPmAuICovXG5mdW5jdGlvbiBydWJ5RWxlbWVudChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBuZXh0ID0gYWZ0ZXIocGFyZW50LCBpbmRleCk7XG4gIHJldHVybiAhbmV4dCB8fCBlbGVtZW50KG5leHQsIFsncnAnLCAncnQnXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC9vcHRncm91cD5gLiAqL1xuZnVuY3Rpb24gb3B0Z3JvdXAobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgZWxlbWVudChuZXh0LCAnb3B0Z3JvdXAnKTtcbn1cblxuLyogV2hldGhlciB0byBvbWl0IGA8L29wdGlvbj5gLiAqL1xuZnVuY3Rpb24gb3B0aW9uKG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgdmFyIG5leHQgPSBhZnRlcihwYXJlbnQsIGluZGV4KTtcbiAgcmV0dXJuICFuZXh0IHx8IGVsZW1lbnQobmV4dCwgWydvcHRpb24nLCAnb3B0Z3JvdXAnXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC9tZW51aXRlbT5gLiAqL1xuZnVuY3Rpb24gbWVudWl0ZW0obm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgZWxlbWVudChuZXh0LCBbJ21lbnVpdGVtJywgJ2hyJywgJ21lbnUnXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC90aGVhZD5gLiAqL1xuZnVuY3Rpb24gdGhlYWQobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gbmV4dCAmJiBlbGVtZW50KG5leHQsIFsndGJvZHknLCAndGZvb3QnXSk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPC90Ym9keT5gLiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgZWxlbWVudChuZXh0LCBbJ3Rib2R5JywgJ3Rmb290J10pO1xufVxuXG4vKiBXaGV0aGVyIHRvIG9taXQgYDwvdGZvb3Q+YC4gKi9cbmZ1bmN0aW9uIHRmb290KG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgcmV0dXJuICFhZnRlcihwYXJlbnQsIGluZGV4KTtcbn1cblxuLyogV2hldGhlciB0byBvbWl0IGA8L3RyPmAuICovXG5mdW5jdGlvbiB0cihub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBuZXh0ID0gYWZ0ZXIocGFyZW50LCBpbmRleCk7XG4gIHJldHVybiAhbmV4dCB8fCBlbGVtZW50KG5leHQsICd0cicpO1xufVxuXG4vKiBXaGV0aGVyIHRvIG9taXQgYDwvdGQ+YCBvciBgPC90aD5gLiAqL1xuZnVuY3Rpb24gY2VsbHMobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgbmV4dCA9IGFmdGVyKHBhcmVudCwgaW5kZXgpO1xuICByZXR1cm4gIW5leHQgfHwgZWxlbWVudChuZXh0LCBbJ3RkJywgJ3RoJ10pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgaXMgPSByZXF1aXJlKCd1bmlzdC11dGlsLWlzJyk7XG52YXIgZWxlbWVudCA9IHJlcXVpcmUoJ2hhc3QtdXRpbC1pcy1lbGVtZW50Jyk7XG52YXIgYmVmb3JlID0gcmVxdWlyZSgnLi91dGlsL3NpYmxpbmdzJykuYmVmb3JlO1xudmFyIGZpcnN0ID0gcmVxdWlyZSgnLi91dGlsL2ZpcnN0Jyk7XG52YXIgcGxhY2UgPSByZXF1aXJlKCcuL3V0aWwvcGxhY2UnKTtcbnZhciB3aGl0ZVNwYWNlTGVmdCA9IHJlcXVpcmUoJy4vdXRpbC93aGl0ZS1zcGFjZS1sZWZ0Jyk7XG52YXIgY2xvc2luZyA9IHJlcXVpcmUoJy4vY2xvc2luZycpO1xudmFyIG9taXNzaW9uID0gcmVxdWlyZSgnLi9vbWlzc2lvbicpO1xuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbm1vZHVsZS5leHBvcnRzID0gb21pc3Npb24oe1xuICBodG1sOiBodG1sLFxuICBoZWFkOiBoZWFkLFxuICBib2R5OiBib2R5LFxuICBjb2xncm91cDogY29sZ3JvdXAsXG4gIHRib2R5OiB0Ym9keVxufSk7XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPGh0bWw+YC4gKi9cbmZ1bmN0aW9uIGh0bWwobm9kZSkge1xuICB2YXIgaGVhZCA9IGZpcnN0KG5vZGUpO1xuICByZXR1cm4gIWhlYWQgfHwgIWlzKCdjb21tZW50JywgaGVhZCk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPGhlYWQ+YC4gKi9cbmZ1bmN0aW9uIGhlYWQobm9kZSkge1xuICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuO1xuICB2YXIgbGVuZ3RoID0gY2hpbGRyZW4ubGVuZ3RoO1xuICB2YXIgbWFwID0ge307XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgY2hpbGQ7XG4gIHZhciBuYW1lO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hpbGQgPSBjaGlsZHJlbltpbmRleF07XG4gICAgbmFtZSA9IGNoaWxkLnRhZ05hbWU7XG5cbiAgICBpZiAoXG4gICAgICBjaGlsZC50eXBlID09PSAnZWxlbWVudCcgJiZcbiAgICAgIChuYW1lID09PSAndGl0bGUnIHx8IG5hbWUgPT09ICdiYXNlJylcbiAgICApIHtcbiAgICAgIGlmIChvd24uY2FsbChtYXAsIG5hbWUpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgbWFwW25hbWVdID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gQm9vbGVhbihsZW5ndGgpO1xufVxuXG4vKiBXaGV0aGVyIHRvIG9taXQgYDxib2R5PmAuICovXG5mdW5jdGlvbiBib2R5KG5vZGUpIHtcbiAgdmFyIGhlYWQgPSBmaXJzdChub2RlLCB0cnVlKTtcblxuICByZXR1cm4gIWhlYWQgfHwgKFxuICAgICFpcygnY29tbWVudCcsIGhlYWQpICYmXG4gICAgIXdoaXRlU3BhY2VMZWZ0KGhlYWQpICYmXG4gICAgIWVsZW1lbnQoaGVhZCwgWydtZXRhJywgJ2xpbmsnLCAnc2NyaXB0JywgJ3N0eWxlJywgJ3RlbXBsYXRlJ10pXG4gICk7XG59XG5cbi8qIFdoZXRoZXIgdG8gb21pdCBgPGNvbGdyb3VwPmAuXG4gKiBUaGUgc3BlYyBkZXNjcmliZXMgc29tZSBsb2dpYyBmb3IgdGhlIG9wZW5pbmcgdGFnLFxuICogYnV0IGl04oCZcyBlYXNpZXIgdG8gaW1wbGVtZW50IGluIHRoZSBjbG9zaW5nIHRhZywgdG9cbiAqIHRoZSBzYW1lIGVmZmVjdCwgc28gd2UgaGFuZGxlIGl0IHRoZXJlIGluc3RlYWQuICovXG5mdW5jdGlvbiBjb2xncm91cChub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciBwcmV2ID0gYmVmb3JlKHBhcmVudCwgaW5kZXgpO1xuICB2YXIgaGVhZCA9IGZpcnN0KG5vZGUsIHRydWUpO1xuXG4gIC8qIFByZXZpb3VzIGNvbGdyb3VwIHdhcyBhbHJlYWR5IG9taXR0ZWQuICovXG4gIGlmIChcbiAgICBlbGVtZW50KHByZXYsICdjb2xncm91cCcpICYmXG4gICAgY2xvc2luZyhwcmV2LCBwbGFjZShwYXJlbnQsIHByZXYpLCBwYXJlbnQpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBoZWFkICYmIGVsZW1lbnQoaGVhZCwgJ2NvbCcpO1xufVxuXG4vKiBXaGV0aGVyIHRvIG9taXQgYDx0Ym9keT5gLiAqL1xuZnVuY3Rpb24gdGJvZHkobm9kZSwgaW5kZXgsIHBhcmVudCkge1xuICB2YXIgcHJldiA9IGJlZm9yZShwYXJlbnQsIGluZGV4KTtcbiAgdmFyIGhlYWQgPSBmaXJzdChub2RlKTtcblxuICAvKiBQcmV2aW91cyB0YWJsZSBzZWN0aW9uIHdhcyBhbHJlYWR5IG9taXR0ZWQuICovXG4gIGlmIChcbiAgICBlbGVtZW50KHByZXYsIFsndGhlYWQnLCAndGJvZHknXSkgJiZcbiAgICBjbG9zaW5nKHByZXYsIHBsYWNlKHBhcmVudCwgcHJldiksIHBhcmVudClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGhlYWQgJiYgZWxlbWVudChoZWFkLCAndHInKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbmV4cG9ydHMub3BlbmluZyA9IHJlcXVpcmUoJy4vb3BlbmluZycpO1xuZXhwb3J0cy5jbG9zaW5nID0gcmVxdWlyZSgnLi9jbG9zaW5nJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBvbmUgPSByZXF1aXJlKCcuL29uZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGFsbDtcblxuLyogU3RyaW5naWZ5IGFsbCBjaGlsZHJlbiBvZiBgcGFyZW50YC4gKi9cbmZ1bmN0aW9uIGFsbChjdHgsIHBhcmVudCkge1xuICB2YXIgY2hpbGRyZW4gPSBwYXJlbnQgJiYgcGFyZW50LmNoaWxkcmVuO1xuICB2YXIgbGVuZ3RoID0gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIHJlc3VsdHMgPSBbXTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdHNbaW5kZXhdID0gb25lKGN0eCwgY2hpbGRyZW5baW5kZXhdLCBpbmRleCwgcGFyZW50KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzLmpvaW4oJycpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGhleGFkZWNpbWFsO1xuXG4vKiBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXJcbiAqIGNvZGUgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciwgaXMgaGV4YWRlY2ltYWwuICovXG5mdW5jdGlvbiBoZXhhZGVjaW1hbChjaGFyYWN0ZXIpIHtcbiAgdmFyIGNvZGUgPSB0eXBlb2YgY2hhcmFjdGVyID09PSAnc3RyaW5nJyA/XG4gICAgY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCkgOiBjaGFyYWN0ZXI7XG5cbiAgcmV0dXJuIChjb2RlID49IDk3IC8qIGEgKi8gJiYgY29kZSA8PSAxMDIgLyogeiAqLykgfHxcbiAgICAoY29kZSA+PSA2NSAvKiBBICovICYmIGNvZGUgPD0gNzAgLyogWiAqLykgfHxcbiAgICAoY29kZSA+PSA0OCAvKiBBICovICYmIGNvZGUgPD0gNTcgLyogWiAqLyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gYWxwaGFiZXRpY2FsO1xuXG4vKiBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXJcbiAqIGNvZGUgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciwgaXMgYWxwaGFiZXRpY2FsLiAqL1xuZnVuY3Rpb24gYWxwaGFiZXRpY2FsKGNoYXJhY3Rlcikge1xuICB2YXIgY29kZSA9IHR5cGVvZiBjaGFyYWN0ZXIgPT09ICdzdHJpbmcnID9cbiAgICBjaGFyYWN0ZXIuY2hhckNvZGVBdCgwKSA6IGNoYXJhY3RlcjtcblxuICByZXR1cm4gKGNvZGUgPj0gOTcgJiYgY29kZSA8PSAxMjIpIHx8IC8qIGEteiAqL1xuICAgIChjb2RlID49IDY1ICYmIGNvZGUgPD0gOTApOyAvKiBBLVogKi9cbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBkZWNpbWFsO1xuXG4vKiBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXJcbiAqIGNvZGUgYXQgdGhlIGZpcnN0IGNoYXJhY3RlciwgaXMgZGVjaW1hbC4gKi9cbmZ1bmN0aW9uIGRlY2ltYWwoY2hhcmFjdGVyKSB7XG4gIHZhciBjb2RlID0gdHlwZW9mIGNoYXJhY3RlciA9PT0gJ3N0cmluZycgP1xuICAgIGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApIDogY2hhcmFjdGVyO1xuXG4gIHJldHVybiBjb2RlID49IDQ4ICYmIGNvZGUgPD0gNTc7IC8qIDAtOSAqL1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYWxwaGFiZXRpY2FsID0gcmVxdWlyZSgnaXMtYWxwaGFiZXRpY2FsJyk7XG52YXIgZGVjaW1hbCA9IHJlcXVpcmUoJ2lzLWRlY2ltYWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBhbHBoYW51bWVyaWNhbDtcblxuLyogQ2hlY2sgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBjb2RlLCBvciB0aGUgY2hhcmFjdGVyXG4gKiBjb2RlIGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIsIGlzIGFscGhhbnVtZXJpY2FsLiAqL1xuZnVuY3Rpb24gYWxwaGFudW1lcmljYWwoY2hhcmFjdGVyKSB7XG4gIHJldHVybiBhbHBoYWJldGljYWwoY2hhcmFjdGVyKSB8fCBkZWNpbWFsKGNoYXJhY3Rlcik7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBlbnRpdGllcyA9IHJlcXVpcmUoJ2NoYXJhY3Rlci1lbnRpdGllcy1odG1sNCcpO1xudmFyIGxlZ2FjeSA9IHJlcXVpcmUoJ2NoYXJhY3Rlci1lbnRpdGllcy1sZWdhY3knKTtcbnZhciBoZXhhZGVjaW1hbCA9IHJlcXVpcmUoJ2lzLWhleGFkZWNpbWFsJyk7XG52YXIgYWxwaGFudW1lcmljYWwgPSByZXF1aXJlKCdpcy1hbHBoYW51bWVyaWNhbCcpO1xudmFyIGRhbmdlcm91cyA9IHJlcXVpcmUoJy4vZGFuZ2Vyb3VzLmpzb24nKTtcblxuLyogRXhwb3NlLiAqL1xubW9kdWxlLmV4cG9ydHMgPSBlbmNvZGU7XG5cbmVuY29kZS5lc2NhcGUgPSBlc2NhcGU7XG5cbnZhciBvd24gPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxuLyogTGlzdCBvZiBlbmZvcmNlZCBlc2NhcGVzLiAqL1xudmFyIGVzY2FwZXMgPSBbJ1wiJywgJ1xcJycsICc8JywgJz4nLCAnJicsICdgJ107XG5cbi8qIE1hcCBvZiBjaGFyYWN0ZXJzIHRvIG5hbWVzLiAqL1xudmFyIGNoYXJhY3RlcnMgPSBjb25zdHJ1Y3QoKTtcblxuLyogRGVmYXVsdCBlc2NhcGVzLiAqL1xudmFyIEVYUFJFU1NJT05fRVNDQVBFID0gdG9FeHByZXNzaW9uKGVzY2FwZXMpO1xuXG4vKiBTdXJyb2dhdGUgcGFpcnMuICovXG52YXIgRVhQUkVTU0lPTl9TVVJST0dBVEVfUEFJUiA9IC9bXFx1RDgwMC1cXHVEQkZGXVtcXHVEQzAwLVxcdURGRkZdL2c7XG5cbi8qIE5vbi1BU0NJSSBjaGFyYWN0ZXJzLiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXhcbnZhciBFWFBSRVNTSU9OX0JNUCA9IC9bXFx4MDEtXFx0XFx4MEJcXGZcXHgwRS1cXHgxRlxceDdGXFx4ODFcXHg4RFxceDhGXFx4OTBcXHg5RFxceEEwLVxcdUZGRkZdL2c7XG5cbi8qIEVuY29kZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYHZhbHVlYC4gKi9cbmZ1bmN0aW9uIGVuY29kZSh2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgc3Vic2V0ID0gc2V0dGluZ3Muc3Vic2V0O1xuICB2YXIgc2V0ID0gc3Vic2V0ID8gdG9FeHByZXNzaW9uKHN1YnNldCkgOiBFWFBSRVNTSU9OX0VTQ0FQRTtcbiAgdmFyIGVzY2FwZU9ubHkgPSBzZXR0aW5ncy5lc2NhcGVPbmx5O1xuICB2YXIgb21pdCA9IHNldHRpbmdzLm9taXRPcHRpb25hbFNlbWljb2xvbnM7XG5cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHNldCwgZnVuY3Rpb24gKGNoYXIsIHBvcywgdmFsKSB7XG4gICAgcmV0dXJuIG9uZShjaGFyLCB2YWwuY2hhckF0KHBvcyArIDEpLCBzZXR0aW5ncyk7XG4gIH0pO1xuXG4gIGlmIChzdWJzZXQgfHwgZXNjYXBlT25seSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZVxuICAgIC5yZXBsYWNlKEVYUFJFU1NJT05fU1VSUk9HQVRFX1BBSVIsIGZ1bmN0aW9uIChwYWlyLCBwb3MsIHZhbCkge1xuICAgICAgcmV0dXJuIHRvSGV4UmVmZXJlbmNlKFxuICAgICAgICAoKHBhaXIuY2hhckNvZGVBdCgwKSAtIDB4RDgwMCkgKiAweDQwMCkgK1xuICAgICAgICBwYWlyLmNoYXJDb2RlQXQoMSkgLSAweERDMDAgKyAweDEwMDAwLFxuICAgICAgICB2YWwuY2hhckF0KHBvcyArIDIpLFxuICAgICAgICBvbWl0XG4gICAgICApO1xuICAgIH0pXG4gICAgLnJlcGxhY2UoRVhQUkVTU0lPTl9CTVAsIGZ1bmN0aW9uIChjaGFyLCBwb3MsIHZhbCkge1xuICAgICAgcmV0dXJuIG9uZShjaGFyLCB2YWwuY2hhckF0KHBvcyArIDEpLCBzZXR0aW5ncyk7XG4gICAgfSk7XG59XG5cbi8qIFNob3J0Y3V0IHRvIGVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gSFRNTC4gKi9cbmZ1bmN0aW9uIGVzY2FwZSh2YWx1ZSkge1xuICByZXR1cm4gZW5jb2RlKHZhbHVlLCB7XG4gICAgZXNjYXBlT25seTogdHJ1ZSxcbiAgICB1c2VOYW1lZFJlZmVyZW5jZXM6IHRydWVcbiAgfSk7XG59XG5cbi8qIEVuY29kZSBgY2hhcmAgYWNjb3JkaW5nIHRvIGBvcHRpb25zYC4gKi9cbmZ1bmN0aW9uIG9uZShjaGFyLCBuZXh0LCBvcHRpb25zKSB7XG4gIHZhciBzaG9ydGVzdCA9IG9wdGlvbnMudXNlU2hvcnRlc3RSZWZlcmVuY2VzO1xuICB2YXIgb21pdCA9IG9wdGlvbnMub21pdE9wdGlvbmFsU2VtaWNvbG9ucztcbiAgdmFyIG5hbWVkO1xuICB2YXIgbnVtZXJpYztcblxuICBpZiAoXG4gICAgKHNob3J0ZXN0IHx8IG9wdGlvbnMudXNlTmFtZWRSZWZlcmVuY2VzKSAmJlxuICAgIG93bi5jYWxsKGNoYXJhY3RlcnMsIGNoYXIpXG4gICkge1xuICAgIG5hbWVkID0gdG9OYW1lZChjaGFyYWN0ZXJzW2NoYXJdLCBuZXh0LCBvbWl0LCBvcHRpb25zLmF0dHJpYnV0ZSk7XG4gIH1cblxuICBpZiAoc2hvcnRlc3QgfHwgIW5hbWVkKSB7XG4gICAgbnVtZXJpYyA9IHRvSGV4UmVmZXJlbmNlKGNoYXIuY2hhckNvZGVBdCgwKSwgbmV4dCwgb21pdCk7XG4gIH1cblxuICBpZiAobmFtZWQgJiYgKCFzaG9ydGVzdCB8fCBuYW1lZC5sZW5ndGggPCBudW1lcmljLmxlbmd0aCkpIHtcbiAgICByZXR1cm4gbmFtZWQ7XG4gIH1cblxuICByZXR1cm4gbnVtZXJpYztcbn1cblxuLyogVHJhbnNmb3JtIGBjb2RlYCBpbnRvIGFuIGVudGl0eS4gKi9cbmZ1bmN0aW9uIHRvTmFtZWQobmFtZSwgbmV4dCwgb21pdCwgYXR0cmlidXRlKSB7XG4gIHZhciB2YWx1ZSA9ICcmJyArIG5hbWU7XG5cbiAgaWYgKFxuICAgIG9taXQgJiZcbiAgICBvd24uY2FsbChsZWdhY3ksIG5hbWUpICYmXG4gICAgZGFuZ2Vyb3VzLmluZGV4T2YobmFtZSkgPT09IC0xICYmXG4gICAgKCFhdHRyaWJ1dGUgfHwgKG5leHQgJiYgbmV4dCAhPT0gJz0nICYmICFhbHBoYW51bWVyaWNhbChuZXh0KSkpXG4gICkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZSArICc7Jztcbn1cblxuLyogVHJhbnNmb3JtIGBjb2RlYCBpbnRvIGEgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIHJlZmVyZW5jZS4gKi9cbmZ1bmN0aW9uIHRvSGV4UmVmZXJlbmNlKGNvZGUsIG5leHQsIG9taXQpIHtcbiAgdmFyIHZhbHVlID0gJyYjeCcgKyBjb2RlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO1xuICByZXR1cm4gb21pdCAmJiBuZXh0ICYmICFoZXhhZGVjaW1hbChuZXh0KSA/IHZhbHVlIDogdmFsdWUgKyAnOyc7XG59XG5cbi8qIENyZWF0ZSBhbiBleHByZXNzaW9uIGZvciBgY2hhcmFjdGVyc2AuICovXG5mdW5jdGlvbiB0b0V4cHJlc3Npb24oY2hhcmFjdGVycykge1xuICByZXR1cm4gbmV3IFJlZ0V4cCgnWycgKyBjaGFyYWN0ZXJzLmpvaW4oJycpICsgJ10nLCAnZycpO1xufVxuXG4vKiBDb25zdHJ1Y3QgdGhlIG1hcC4gKi9cbmZ1bmN0aW9uIGNvbnN0cnVjdCgpIHtcbiAgdmFyIGNoYXJzID0ge307XG4gIHZhciBuYW1lO1xuXG4gIGZvciAobmFtZSBpbiBlbnRpdGllcykge1xuICAgIGNoYXJzW2VudGl0aWVzW25hbWVdXSA9IG5hbWU7XG4gIH1cblxuICByZXR1cm4gY2hhcnM7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJyk7XG52YXIgZW50aXRpZXMgPSByZXF1aXJlKCdzdHJpbmdpZnktZW50aXRpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB0ZXh0O1xuXG4vKiBTdHJpbmdpZnkgYHRleHRgLiAqL1xuZnVuY3Rpb24gdGV4dChjdHgsIG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgdmFyIHZhbHVlID0gbm9kZS52YWx1ZTtcblxuICByZXR1cm4gaXNMaXRlcmFsKHBhcmVudCkgPyB2YWx1ZSA6IGVudGl0aWVzKHZhbHVlLCB4dGVuZChjdHguZW50aXRpZXMsIHtcbiAgICBzdWJzZXQ6IFsnPCcsICcmJ11cbiAgfSkpO1xufVxuXG4vKiBDaGVjayBpZiBjb250ZW50IG9mIGBub2RlYCBzaG91bGQgYmUgZXNjYXBlZC4gKi9cbmZ1bmN0aW9uIGlzTGl0ZXJhbChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIChub2RlLnRhZ05hbWUgPT09ICdzY3JpcHQnIHx8IG5vZGUudGFnTmFtZSA9PT0gJ3N0eWxlJyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gY2NvdW50O1xuXG5mdW5jdGlvbiBjY291bnQodmFsdWUsIGNoYXJhY3Rlcikge1xuICB2YXIgY291bnQgPSAwO1xuICB2YXIgaW5kZXg7XG5cbiAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuXG4gIGlmICh0eXBlb2YgY2hhcmFjdGVyICE9PSAnc3RyaW5nJyB8fCBjaGFyYWN0ZXIubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIGluZGV4ID0gdmFsdWUuaW5kZXhPZihjaGFyYWN0ZXIpO1xuXG4gIHdoaWxlIChpbmRleCAhPT0gLTEpIHtcbiAgICBjb3VudCsrO1xuICAgIGluZGV4ID0gdmFsdWUuaW5kZXhPZihjaGFyYWN0ZXIsIGluZGV4ICsgMSk7XG4gIH1cblxuICByZXR1cm4gY291bnQ7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJyk7XG52YXIgc3BhY2VzID0gcmVxdWlyZSgnc3BhY2Utc2VwYXJhdGVkLXRva2VucycpLnN0cmluZ2lmeTtcbnZhciBjb21tYXMgPSByZXF1aXJlKCdjb21tYS1zZXBhcmF0ZWQtdG9rZW5zJykuc3RyaW5naWZ5O1xudmFyIGluZm9ybWF0aW9uID0gcmVxdWlyZSgncHJvcGVydHktaW5mb3JtYXRpb24nKTtcbnZhciBlbnRpdGllcyA9IHJlcXVpcmUoJ3N0cmluZ2lmeS1lbnRpdGllcycpO1xudmFyIGtlYmFiID0gcmVxdWlyZSgna2ViYWItY2FzZScpO1xudmFyIGNjb3VudCA9IHJlcXVpcmUoJ2Njb3VudCcpO1xudmFyIGFsbCA9IHJlcXVpcmUoJy4vYWxsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZWxlbWVudDtcblxuLyogQ29uc3RhbnRzLiAqL1xudmFyIERBVEEgPSAnZGF0YSc7XG52YXIgRU1QVFkgPSAnJztcblxuLyogQ2hhcmFjdGVycy4gKi9cbnZhciBTUEFDRSA9ICcgJztcbnZhciBEUSA9ICdcIic7XG52YXIgU1EgPSAnXFwnJztcbnZhciBFUSA9ICc9JztcbnZhciBMVCA9ICc8JztcbnZhciBHVCA9ICc+JztcbnZhciBTTyA9ICcvJztcblxuLyogU3RyaW5naWZ5IGFuIGVsZW1lbnQgYG5vZGVgLiAqL1xuZnVuY3Rpb24gZWxlbWVudChjdHgsIG5vZGUsIGluZGV4LCBwYXJlbnQpIHtcbiAgdmFyIG5hbWUgPSBub2RlLnRhZ05hbWU7XG4gIHZhciBjb250ZW50ID0gYWxsKGN0eCwgbmFtZSA9PT0gJ3RlbXBsYXRlJyA/IG5vZGUuY29udGVudCA6IG5vZGUpO1xuICB2YXIgc2VsZkNsb3NpbmcgPSBjdHgudm9pZHMuaW5kZXhPZihuYW1lLnRvTG93ZXJDYXNlKCkpICE9PSAtMTtcbiAgdmFyIGF0dHJzID0gYXR0cmlidXRlcyhjdHgsIG5vZGUucHJvcGVydGllcyk7XG4gIHZhciBvbWl0ID0gY3R4Lm9taXQ7XG4gIHZhciB2YWx1ZSA9ICcnO1xuXG4gIC8qIElmIHRoZSBub2RlIGlzIGNhdGVnb3Jpc2VkIGFzIHZvaWQsIGJ1dCBpdCBoYXNcbiAgICogY2hpbGRyZW4sIHJlbW92ZSB0aGUgY2F0ZWdvcmlzYXRpb24uICBUaGlzXG4gICAqIGVuYWJsZXMgZm9yIGV4YW1wbGUgYG1lbnVpdGVtYHMsIHdoaWNoIGFyZVxuICAgKiB2b2lkIGluIFczQyBIVE1MIGJ1dCBub3Qgdm9pZCBpbiBXSEFUV0cgSFRNTCwgdG9cbiAgICogYmUgc3RyaW5naWZpZWQgcHJvcGVybHkuICovXG4gIHNlbGZDbG9zaW5nID0gY29udGVudCA/IGZhbHNlIDogc2VsZkNsb3Npbmc7XG5cbiAgaWYgKGF0dHJzIHx8ICFvbWl0IHx8ICFvbWl0Lm9wZW5pbmcobm9kZSwgaW5kZXgsIHBhcmVudCkpIHtcbiAgICB2YWx1ZSA9IExUICsgbmFtZSArIChhdHRycyA/IFNQQUNFICsgYXR0cnMgOiBFTVBUWSk7XG5cbiAgICBpZiAoc2VsZkNsb3NpbmcgJiYgY3R4LmNsb3NlKSB7XG4gICAgICBpZiAoIWN0eC50aWdodENsb3NlIHx8IGF0dHJzLmNoYXJBdChhdHRycy5sZW5ndGggLSAxKSA9PT0gU08pIHtcbiAgICAgICAgdmFsdWUgKz0gU1BBQ0U7XG4gICAgICB9XG5cbiAgICAgIHZhbHVlICs9IFNPO1xuICAgIH1cblxuICAgIHZhbHVlICs9IEdUO1xuICB9XG5cbiAgdmFsdWUgKz0gY29udGVudDtcblxuICBpZiAoIXNlbGZDbG9zaW5nICYmICghb21pdCB8fCAhb21pdC5jbG9zaW5nKG5vZGUsIGluZGV4LCBwYXJlbnQpKSkge1xuICAgIHZhbHVlICs9IExUICsgU08gKyBuYW1lICsgR1Q7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8qIFN0cmluZ2lmeSBhbGwgYXR0cmlidXRlcy4gKi9cbmZ1bmN0aW9uIGF0dHJpYnV0ZXMoY3R4LCBwcm9wcykge1xuICB2YXIgdmFsdWVzID0gW107XG4gIHZhciBrZXk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIHJlc3VsdDtcbiAgdmFyIGxlbmd0aDtcbiAgdmFyIGluZGV4O1xuICB2YXIgbGFzdDtcblxuICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgIHZhbHVlID0gcHJvcHNba2V5XTtcblxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICByZXN1bHQgPSBhdHRyaWJ1dGUoY3R4LCBrZXksIHZhbHVlKTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHZhbHVlcy5wdXNoKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aDtcbiAgaW5kZXggPSAtMTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdCA9IHZhbHVlc1tpbmRleF07XG4gICAgbGFzdCA9IGN0eC50aWdodCAmJiByZXN1bHQuY2hhckF0KHJlc3VsdC5sZW5ndGggLSAxKTtcblxuICAgIC8qIEluIHRpZ2h0IG1vZGUsIGRvbuKAmXQgYWRkIGEgc3BhY2UgYWZ0ZXIgcXVvdGVkIGF0dHJpYnV0ZXMuICovXG4gICAgaWYgKGluZGV4ICE9PSBsZW5ndGggLSAxICYmIGxhc3QgIT09IERRICYmIGxhc3QgIT09IFNRKSB7XG4gICAgICB2YWx1ZXNbaW5kZXhdID0gcmVzdWx0ICsgU1BBQ0U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlcy5qb2luKEVNUFRZKTtcbn1cblxuLyogU3RyaW5naWZ5IG9uZSBhdHRyaWJ1dGUuICovXG5mdW5jdGlvbiBhdHRyaWJ1dGUoY3R4LCBrZXksIHZhbHVlKSB7XG4gIHZhciBpbmZvID0gaW5mb3JtYXRpb24oa2V5KSB8fCB7fTtcbiAgdmFyIG5hbWU7XG5cbiAgaWYgKFxuICAgIHZhbHVlID09IG51bGwgfHxcbiAgICAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWx1ZSkpIHx8XG4gICAgKCF2YWx1ZSAmJiBpbmZvLmJvb2xlYW4pIHx8XG4gICAgKHZhbHVlID09PSBmYWxzZSAmJiBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKVxuICApIHtcbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICBuYW1lID0gYXR0cmlidXRlTmFtZShjdHgsIGtleSk7XG5cbiAgaWYgKCh2YWx1ZSAmJiBpbmZvLmJvb2xlYW4pIHx8ICh2YWx1ZSA9PT0gdHJ1ZSAmJiBpbmZvLm92ZXJsb2FkZWRCb29sZWFuKSkge1xuICAgIHJldHVybiBuYW1lO1xuICB9XG5cbiAgcmV0dXJuIG5hbWUgKyBhdHRyaWJ1dGVWYWx1ZShjdHgsIGtleSwgdmFsdWUpO1xufVxuXG4vKiBTdHJpbmdpZnkgdGhlIGF0dHJpYnV0ZSBuYW1lLiAqL1xuZnVuY3Rpb24gYXR0cmlidXRlTmFtZShjdHgsIGtleSkge1xuICB2YXIgaW5mbyA9IGluZm9ybWF0aW9uKGtleSkgfHwge307XG4gIHZhciBuYW1lID0gaW5mby5uYW1lIHx8IGtlYmFiKGtleSk7XG5cbiAgaWYgKFxuICAgIG5hbWUuc2xpY2UoMCwgREFUQS5sZW5ndGgpID09PSBEQVRBICYmXG4gICAgL1swLTldLy50ZXN0KG5hbWUuY2hhckF0KERBVEEubGVuZ3RoKSlcbiAgKSB7XG4gICAgbmFtZSA9IERBVEEgKyAnLScgKyBuYW1lLnNsaWNlKDQpO1xuICB9XG5cbiAgcmV0dXJuIGVudGl0aWVzKG5hbWUsIHh0ZW5kKGN0eC5lbnRpdGllcywge1xuICAgIHN1YnNldDogY3R4Lk5BTUVcbiAgfSkpO1xufVxuXG4vKiBTdHJpbmdpZnkgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4gKi9cbmZ1bmN0aW9uIGF0dHJpYnV0ZVZhbHVlKGN0eCwga2V5LCB2YWx1ZSkge1xuICB2YXIgaW5mbyA9IGluZm9ybWF0aW9uKGtleSkgfHwge307XG4gIHZhciBvcHRpb25zID0gY3R4LmVudGl0aWVzO1xuICB2YXIgcXVvdGUgPSBjdHgucXVvdGU7XG4gIHZhciBhbHRlcm5hdGl2ZSA9IGN0eC5hbHRlcm5hdGl2ZTtcbiAgdmFyIHVucXVvdGVkO1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdsZW5ndGgnIGluIHZhbHVlKSB7XG4gICAgLyogYHNwYWNlc2AgZG9lc27igJl0IGFjY2VwdCBhIHNlY29uZCBhcmd1bWVudCwgYnV0IGl04oCZc1xuICAgICAqIGdpdmVuIGhlcmUganVzdCB0byBrZWVwIHRoZSBjb2RlIGNsZWFuZXIuICovXG4gICAgdmFsdWUgPSAoaW5mby5jb21tYVNlcGFyYXRlZCA/IGNvbW1hcyA6IHNwYWNlcykodmFsdWUsIHtcbiAgICAgIHBhZExlZnQ6ICFjdHgudGlnaHRMaXN0c1xuICAgIH0pO1xuICB9XG5cbiAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuXG4gIGlmICh2YWx1ZSB8fCAhY3R4LmNvbGxhcHNlRW1wdHkpIHtcbiAgICB1bnF1b3RlZCA9IHZhbHVlO1xuXG4gICAgLyogQ2hlY2sgdW5xdW90ZWQgdmFsdWUuICovXG4gICAgaWYgKGN0eC51bnF1b3RlZCkge1xuICAgICAgdW5xdW90ZWQgPSBlbnRpdGllcyh2YWx1ZSwgeHRlbmQob3B0aW9ucywge1xuICAgICAgICBzdWJzZXQ6IGN0eC5VTlFVT1RFRCxcbiAgICAgICAgYXR0cmlidXRlOiB0cnVlXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgLyogSWYgYHZhbHVlYCBjb250YWlucyBlbnRpdGllcyB3aGVuIHVucXVvdGVkLi4uICovXG4gICAgaWYgKCFjdHgudW5xdW90ZWQgfHwgdW5xdW90ZWQgIT09IHZhbHVlKSB7XG4gICAgICAvKiBJZiB0aGUgYWx0ZXJuYXRpdmUgaXMgbGVzcyBjb21tb24gdGhhbiBgcXVvdGVgLCBzd2l0Y2guICovXG4gICAgICBpZiAoXG4gICAgICAgIGFsdGVybmF0aXZlICYmXG4gICAgICAgIGNjb3VudCh2YWx1ZSwgcXVvdGUpID4gY2NvdW50KHZhbHVlLCBhbHRlcm5hdGl2ZSlcbiAgICAgICkge1xuICAgICAgICBxdW90ZSA9IGFsdGVybmF0aXZlO1xuICAgICAgfVxuXG4gICAgICB2YWx1ZSA9IGVudGl0aWVzKHZhbHVlLCB4dGVuZChvcHRpb25zLCB7XG4gICAgICAgIHN1YnNldDogcXVvdGUgPT09IFNRID8gY3R4LlNJTkdMRV9RVU9URUQgOiBjdHguRE9VQkxFX1FVT1RFRCxcbiAgICAgICAgYXR0cmlidXRlOiB0cnVlXG4gICAgICB9KSk7XG5cbiAgICAgIHZhbHVlID0gcXVvdGUgKyB2YWx1ZSArIHF1b3RlO1xuICAgIH1cblxuICAgIC8qIERvbuKAmXQgYWRkIGEgYD1gIGZvciB1bnF1b3RlZCBlbXB0aWVzLiAqL1xuICAgIHZhbHVlID0gdmFsdWUgPyBFUSArIHZhbHVlIDogdmFsdWU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gZG9jdHlwZTtcblxuLyogU3RyaW5naWZ5IGEgZG9jdHlwZSBgbm9kZWAuICovXG5mdW5jdGlvbiBkb2N0eXBlKGN0eCwgbm9kZSkge1xuICB2YXIgcHViID0gbm9kZS5wdWJsaWM7XG4gIHZhciBzeXMgPSBub2RlLnN5c3RlbTtcbiAgdmFyIHZhbCA9ICc8IURPQ1RZUEUnO1xuXG4gIGlmICghbm9kZS5uYW1lKSB7XG4gICAgcmV0dXJuIHZhbCArICc+JztcbiAgfVxuXG4gIHZhbCArPSAnICcgKyBub2RlLm5hbWU7XG5cbiAgaWYgKHB1YiAhPSBudWxsKSB7XG4gICAgdmFsICs9ICcgUFVCTElDICcgKyBzbWFydChwdWIpO1xuICB9IGVsc2UgaWYgKHN5cyAhPSBudWxsKSB7XG4gICAgdmFsICs9ICcgU1lTVEVNJztcbiAgfVxuXG4gIGlmIChzeXMgIT0gbnVsbCkge1xuICAgIHZhbCArPSAnICcgKyBzbWFydChzeXMpO1xuICB9XG5cbiAgcmV0dXJuIHZhbCArICc+Jztcbn1cblxuZnVuY3Rpb24gc21hcnQodmFsdWUpIHtcbiAgdmFyIHF1b3RlID0gdmFsdWUuaW5kZXhPZignXCInKSA9PT0gLTEgPyAnXCInIDogJ1xcJyc7XG4gIHJldHVybiBxdW90ZSArIHZhbHVlICsgcXVvdGU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gY29tbWVudDtcblxuLyogU3RyaW5naWZ5IGEgY29tbWVudCBgbm9kZWAuICovXG5mdW5jdGlvbiBjb21tZW50KGN0eCwgbm9kZSkge1xuICByZXR1cm4gJzwhLS0nICsgbm9kZS52YWx1ZSArICctLT4nO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdGV4dCA9IHJlcXVpcmUoJy4vdGV4dCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJhdztcblxuLyogU3RyaW5naWZ5IGByYXdgLiAqL1xuZnVuY3Rpb24gcmF3KGN0eCwgbm9kZSkge1xuICByZXR1cm4gY3R4LmRhbmdlcm91cyA/IG5vZGUudmFsdWUgOiB0ZXh0KGN0eCwgbm9kZSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gb25lO1xuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbnZhciBoYW5kbGVycyA9IHt9O1xuXG5oYW5kbGVycy5yb290ID0gcmVxdWlyZSgnLi9hbGwnKTtcbmhhbmRsZXJzLnRleHQgPSByZXF1aXJlKCcuL3RleHQnKTtcbmhhbmRsZXJzLmVsZW1lbnQgPSByZXF1aXJlKCcuL2VsZW1lbnQnKTtcbmhhbmRsZXJzLmRvY3R5cGUgPSByZXF1aXJlKCcuL2RvY3R5cGUnKTtcbmhhbmRsZXJzLmNvbW1lbnQgPSByZXF1aXJlKCcuL2NvbW1lbnQnKTtcbmhhbmRsZXJzLnJhdyA9IHJlcXVpcmUoJy4vcmF3Jyk7XG5cbi8qIFN0cmluZ2lmeSBgbm9kZWAuICovXG5mdW5jdGlvbiBvbmUoY3R4LCBub2RlLCBpbmRleCwgcGFyZW50KSB7XG4gIHZhciB0eXBlID0gbm9kZSAmJiBub2RlLnR5cGU7XG5cbiAgaWYgKCF0eXBlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBub2RlLCBub3QgYCcgKyBub2RlICsgJ2AnKTtcbiAgfVxuXG4gIGlmICghb3duLmNhbGwoaGFuZGxlcnMsIHR5cGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGlsZSB1bmtub3duIG5vZGUgYCcgKyB0eXBlICsgJ2AnKTtcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVyc1t0eXBlXShjdHgsIG5vZGUsIGluZGV4LCBwYXJlbnQpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdm9pZHMgPSByZXF1aXJlKCdodG1sLXZvaWQtZWxlbWVudHMnKTtcbnZhciBvbWlzc2lvbiA9IHJlcXVpcmUoJy4vb21pc3Npb24nKTtcbnZhciBvbmUgPSByZXF1aXJlKCcuL29uZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRvSFRNTDtcblxuLyogQ2hhcmFjdGVycy4gKi9cbnZhciBOVUxMID0gJ1xcMCc7XG52YXIgQU1QID0gJyYnO1xudmFyIFNQQUNFID0gJyAnO1xudmFyIFRBQiA9ICdcXHQnO1xudmFyIEdSID0gJ2AnO1xudmFyIERRID0gJ1wiJztcbnZhciBTUSA9ICdcXCcnO1xudmFyIEVRID0gJz0nO1xudmFyIExUID0gJzwnO1xudmFyIEdUID0gJz4nO1xudmFyIFNPID0gJy8nO1xudmFyIExGID0gJ1xcbic7XG52YXIgQ1IgPSAnXFxyJztcbnZhciBGRiA9ICdcXGYnO1xuXG4vKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtbmFtZS1zdGF0ZSAqL1xudmFyIE5BTUUgPSBbQU1QLCBTUEFDRSwgVEFCLCBMRiwgQ1IsIEZGLCBTTywgR1QsIEVRXTtcbnZhciBDTEVBTl9OQU1FID0gTkFNRS5jb25jYXQoTlVMTCwgRFEsIFNRLCBMVCk7XG5cbi8qIEluIHNhZmUgbW9kZSwgYWxsIGF0dHJpYnV0ZSB2YWx1ZXMgY29udGFpbiBEUSAoYFwiYCksXG4gKiBTUSAoYCdgKSwgYW5kIEdSIChgYCBgIGBgKSwgYXMgdGhvc2UgY2FuIGNyZWF0ZSBYU1NcbiAqIGlzc3VlcyBpbiBvbGRlciBicm93c2VyczpcbiAqIC0gaHR0cHM6Ly9odG1sNXNlYy5vcmcvIzU5XG4gKiAtIGh0dHBzOi8vaHRtbDVzZWMub3JnLyMxMDJcbiAqIC0gaHR0cHM6Ly9odG1sNXNlYy5vcmcvIzEwOCAqL1xudmFyIFFVT1RFUyA9IFtEUSwgU1EsIEdSXTtcblxuLyogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jYXR0cmlidXRlLXZhbHVlLSh1bnF1b3RlZCktc3RhdGUgKi9cbnZhciBVUV9WQUxVRSA9IFtBTVAsIFNQQUNFLCBUQUIsIExGLCBDUiwgRkYsIEdUXTtcbnZhciBVUV9WQUxVRV9DTEVBTiA9IFVRX1ZBTFVFLmNvbmNhdChOVUxMLCBEUSwgU1EsIExULCBFUSwgR1IpO1xuXG4vKiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNhdHRyaWJ1dGUtdmFsdWUtKHNpbmdsZS1xdW90ZWQpLXN0YXRlICovXG52YXIgU1FfVkFMVUUgPSBbQU1QLCBTUV07XG52YXIgU1FfVkFMVUVfQ0xFQU4gPSBTUV9WQUxVRS5jb25jYXQoTlVMTCk7XG5cbi8qIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2F0dHJpYnV0ZS12YWx1ZS0oZG91YmxlLXF1b3RlZCktc3RhdGUgKi9cbnZhciBEUV9WQUxVRSA9IFtBTVAsIERRXTtcbnZhciBEUV9WQUxVRV9DTEVBTiA9IERRX1ZBTFVFLmNvbmNhdChOVUxMKTtcblxuLyogU3RyaW5naWZ5IHRoZSBnaXZlbiBIQVNUIG5vZGUuICovXG5mdW5jdGlvbiB0b0hUTUwobm9kZSwgb3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9O1xuICB2YXIgcXVvdGUgPSBzZXR0aW5ncy5xdW90ZSB8fCBEUTtcbiAgdmFyIHNtYXJ0ID0gc2V0dGluZ3MucXVvdGVTbWFydDtcbiAgdmFyIGVycm9ycyA9IHNldHRpbmdzLmFsbG93UGFyc2VFcnJvcnM7XG4gIHZhciBjaGFyYWN0ZXJzID0gc2V0dGluZ3MuYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzO1xuICB2YXIgYWx0ZXJuYXRpdmUgPSBxdW90ZSA9PT0gRFEgPyBTUSA6IERRO1xuICB2YXIgbmFtZSA9IGVycm9ycyA/IE5BTUUgOiBDTEVBTl9OQU1FO1xuICB2YXIgdW5xdW90ZWQgPSBlcnJvcnMgPyBVUV9WQUxVRSA6IFVRX1ZBTFVFX0NMRUFOO1xuICB2YXIgc2luZ2xlUXVvdGVkID0gZXJyb3JzID8gU1FfVkFMVUUgOiBTUV9WQUxVRV9DTEVBTjtcbiAgdmFyIGRvdWJsZVF1b3RlZCA9IGVycm9ycyA/IERRX1ZBTFVFIDogRFFfVkFMVUVfQ0xFQU47XG5cbiAgaWYgKHF1b3RlICE9PSBEUSAmJiBxdW90ZSAhPT0gU1EpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnSW52YWxpZCBxdW90ZSBgJyArIHF1b3RlICsgJ2AsIGV4cGVjdGVkIGAnICtcbiAgICAgIFNRICsgJ2Agb3IgYCcgKyBEUSArICdgJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gb25lKHtcbiAgICBOQU1FOiBuYW1lLmNvbmNhdChjaGFyYWN0ZXJzID8gW10gOiBRVU9URVMpLFxuICAgIFVOUVVPVEVEOiB1bnF1b3RlZC5jb25jYXQoY2hhcmFjdGVycyA/IFtdIDogUVVPVEVTKSxcbiAgICBET1VCTEVfUVVPVEVEOiBkb3VibGVRdW90ZWQuY29uY2F0KGNoYXJhY3RlcnMgPyBbXSA6IFFVT1RFUyksXG4gICAgU0lOR0xFX1FVT1RFRDogc2luZ2xlUXVvdGVkLmNvbmNhdChjaGFyYWN0ZXJzID8gW10gOiBRVU9URVMpLFxuICAgIG9taXQ6IHNldHRpbmdzLm9taXRPcHRpb25hbFRhZ3MgJiYgb21pc3Npb24sXG4gICAgcXVvdGU6IHF1b3RlLFxuICAgIGFsdGVybmF0aXZlOiBzbWFydCA/IGFsdGVybmF0aXZlIDogbnVsbCxcbiAgICB1bnF1b3RlZDogQm9vbGVhbihzZXR0aW5ncy5wcmVmZXJVbnF1b3RlZCksXG4gICAgdGlnaHQ6IHNldHRpbmdzLnRpZ2h0QXR0cmlidXRlcyxcbiAgICB0aWdodExpc3RzOiBzZXR0aW5ncy50aWdodENvbW1hU2VwYXJhdGVkTGlzdHMsXG4gICAgdGlnaHRDbG9zZTogc2V0dGluZ3MudGlnaHRTZWxmQ2xvc2luZyxcbiAgICBjb2xsYXBzZUVtcHR5OiBzZXR0aW5ncy5jb2xsYXBzZUVtcHR5QXR0cmlidXRlcyxcbiAgICBkYW5nZXJvdXM6IHNldHRpbmdzLmFsbG93RGFuZ2Vyb3VzSFRNTCxcbiAgICB2b2lkczogc2V0dGluZ3Mudm9pZHMgfHwgdm9pZHMuY29uY2F0KCksXG4gICAgZW50aXRpZXM6IHNldHRpbmdzLmVudGl0aWVzIHx8IHt9LFxuICAgIGNsb3NlOiBzZXR0aW5ncy5jbG9zZVNlbGZDbG9zaW5nXG4gIH0sIG5vZGUpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2xpYicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpO1xudmFyIHRvSFRNTCA9IHJlcXVpcmUoJ2hhc3QtdXRpbC10by1odG1sJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyaW5naWZ5O1xuXG5mdW5jdGlvbiBzdHJpbmdpZnkoY29uZmlnKSB7XG4gIHZhciBzZXR0aW5ncyA9IHh0ZW5kKGNvbmZpZywgdGhpcy5kYXRhKCdzZXR0aW5ncycpKTtcblxuICB0aGlzLkNvbXBpbGVyID0gY29tcGlsZXI7XG5cbiAgZnVuY3Rpb24gY29tcGlsZXIodHJlZSkge1xuICAgIHJldHVybiB0b0hUTUwodHJlZSwgc2V0dGluZ3MpO1xuICB9XG59XG4iLCJpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGVcbiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHtcbiAgICBjdG9yLnN1cGVyXyA9IHN1cGVyQ3RvclxuICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7XG4gICAgICBjb25zdHJ1Y3Rvcjoge1xuICAgICAgICB2YWx1ZTogY3RvcixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGVcbiAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpXG4gICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yXG4gIH1cbn1cbiIsIi8qKlxuICogQGF1dGhvciBUaXR1cyBXb3JtZXJcbiAqIEBjb3B5cmlnaHQgMjAxNSBUaXR1cyBXb3JtZXJcbiAqIEBsaWNlbnNlIE1JVFxuICogQG1vZHVsZSB1bmhlcml0XG4gKiBAZmlsZW92ZXJ2aWV3IENyZWF0ZSBhIGN1c3RvbSBjb25zdHJ1Y3RvciB3aGljaCBjYW4gYmUgbW9kaWZpZWRcbiAqICAgd2l0aG91dCBhZmZlY3RpbmcgdGhlIG9yaWdpbmFsIGNsYXNzLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyogRGVwZW5kZW5jaWVzLiAqL1xudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKTtcbnZhciBpbmhlcml0cyA9IHJlcXVpcmUoJ2luaGVyaXRzJyk7XG5cbi8qIEV4cG9zZS4gKi9cbm1vZHVsZS5leHBvcnRzID0gdW5oZXJpdDtcblxuLyoqXG4gKiBDcmVhdGUgYSBjdXN0b20gY29uc3RydWN0b3Igd2hpY2ggY2FuIGJlIG1vZGlmaWVkXG4gKiB3aXRob3V0IGFmZmVjdGluZyB0aGUgb3JpZ2luYWwgY2xhc3MuXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gU3VwZXIgLSBTdXBlci1jbGFzcy5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSAtIENvbnN0cnVjdG9yIGFjdGluZyBsaWtlIGBTdXBlcmAsXG4gKiAgIHdoaWNoIGNhbiBiZSBtb2RpZmllZCB3aXRob3V0IGFmZmVjdGluZyB0aGUgb3JpZ2luYWxcbiAqICAgY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIHVuaGVyaXQoU3VwZXIpIHtcbiAgdmFyIHJlc3VsdDtcbiAgdmFyIGtleTtcbiAgdmFyIHZhbHVlO1xuXG4gIGluaGVyaXRzKE9mLCBTdXBlcik7XG4gIGluaGVyaXRzKEZyb20sIE9mKTtcblxuICAvKiBDbG9uZSB2YWx1ZXMuICovXG4gIHJlc3VsdCA9IE9mLnByb3RvdHlwZTtcblxuICBmb3IgKGtleSBpbiByZXN1bHQpIHtcbiAgICB2YWx1ZSA9IHJlc3VsdFtrZXldO1xuXG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJlc3VsdFtrZXldID0gJ2NvbmNhdCcgaW4gdmFsdWUgPyB2YWx1ZS5jb25jYXQoKSA6IHh0ZW5kKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gT2Y7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGFjY2VwdGluZyBhIHNpbmdsZSBhcmd1bWVudCxcbiAgICogd2hpY2ggaXRzZWxmIGlzIGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAgICovXG4gIGZ1bmN0aW9uIEZyb20ocGFyYW1ldGVycykge1xuICAgIHJldHVybiBTdXBlci5hcHBseSh0aGlzLCBwYXJhbWV0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciBhY2NlcHRpbmcgdmFyaWFkaWMgYXJndW1lbnRzLlxuICAgKi9cbiAgZnVuY3Rpb24gT2YoKSB7XG4gICAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIE9mKSkge1xuICAgICAgcmV0dXJuIG5ldyBGcm9tKGFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFN1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cbn1cbiIsIi8qKlxuICogQGF1dGhvciBUaXR1cyBXb3JtZXJcbiAqIEBjb3B5cmlnaHQgMjAxNiBUaXR1cyBXb3JtZXJcbiAqIEBsaWNlbnNlIE1JVFxuICogQG1vZHVsZSBzdGF0ZS10b2dnbGVcbiAqIEBmaWxlb3ZlcnZpZXcgRW50ZXIvZXhpdCBhIHN0YXRlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuLyogZXNsaW50LWVudiBjb21tb25qcyAqL1xuXG4vKiBFeHBvc2UuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZhY3Rvcnk7XG5cbi8qKlxuICogQ29uc3RydWN0IGEgc3RhdGUgYHRvZ2dsZXJgOiBhIGZ1bmN0aW9uIHdoaWNoIGludmVyc2VzXG4gKiBgcHJvcGVydHlgIGluIGNvbnRleHQgYmFzZWQgb24gaXRzIGN1cnJlbnQgdmFsdWUuXG4gKiBUaGUgYnkgYHRvZ2dsZXJgIHJldHVybmVkIGZ1bmN0aW9uIHJlc3RvcmVzIHRoYXQgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFByb3BlcnR5IHRvIHRvZ2dsZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gc3RhdGUgLSBEZWZhdWx0IHN0YXRlLlxuICogQHBhcmFtIHtPYmplY3Q/fSBbY3R4XSAtIENvbnRleHQgb2JqZWN0LlxuICogQHJldHVybiB7RnVuY3Rpb259IC0gRW50ZXIuXG4gKi9cbmZ1bmN0aW9uIGZhY3Rvcnkoa2V5LCBzdGF0ZSwgY3R4KSB7XG4gIC8qKlxuICAgKiBFbnRlciBhIHN0YXRlLlxuICAgKlxuICAgKiBAcmV0dXJuIHtGdW5jdGlvbn0gLSBFeGl0IHN0YXRlLlxuICAgKi9cbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgY29udGV4dCA9IGN0eCB8fCB0aGlzO1xuICAgIHZhciBjdXJyZW50ID0gY29udGV4dFtrZXldO1xuXG4gICAgY29udGV4dFtrZXldID0gIXN0YXRlO1xuXG4gICAgLyoqXG4gICAgICogQ2FuY2VsIHN0YXRlIHRvIGl0cyB2YWx1ZSBiZWZvcmUgZW50ZXJpbmcuXG4gICAgICovXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnRleHRba2V5XSA9IGN1cnJlbnQ7XG4gICAgfTtcbiAgfTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5O1xuXG4vKiBGYWN0b3J5IHRvIGRlLWVzY2FwZSBhIHZhbHVlLCBiYXNlZCBvbiBhIGxpc3QgYXQgYGtleWBcbiAqIGluIGBjdHhgLiAqL1xuZnVuY3Rpb24gZmFjdG9yeShjdHgsIGtleSkge1xuICByZXR1cm4gdW5lc2NhcGU7XG5cbiAgLyogRGUtZXNjYXBlIGEgc3RyaW5nIHVzaW5nIHRoZSBleHByZXNzaW9uIGF0IGBrZXlgXG4gICAqIGluIGBjdHhgLiAqL1xuICBmdW5jdGlvbiB1bmVzY2FwZSh2YWx1ZSkge1xuICAgIHZhciBwcmV2ID0gMDtcbiAgICB2YXIgaW5kZXggPSB2YWx1ZS5pbmRleE9mKCdcXFxcJyk7XG4gICAgdmFyIGVzY2FwZSA9IGN0eFtrZXldO1xuICAgIHZhciBxdWV1ZSA9IFtdO1xuICAgIHZhciBjaGFyYWN0ZXI7XG5cbiAgICB3aGlsZSAoaW5kZXggIT09IC0xKSB7XG4gICAgICBxdWV1ZS5wdXNoKHZhbHVlLnNsaWNlKHByZXYsIGluZGV4KSk7XG4gICAgICBwcmV2ID0gaW5kZXggKyAxO1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KHByZXYpO1xuXG4gICAgICAvKiBJZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlciBpcyBub3QgYSB2YWxpZCBlc2NhcGUsXG4gICAgICAgKiBhZGQgdGhlIHNsYXNoLiAqL1xuICAgICAgaWYgKCFjaGFyYWN0ZXIgfHwgZXNjYXBlLmluZGV4T2YoY2hhcmFjdGVyKSA9PT0gLTEpIHtcbiAgICAgICAgcXVldWUucHVzaCgnXFxcXCcpO1xuICAgICAgfVxuXG4gICAgICBpbmRleCA9IHZhbHVlLmluZGV4T2YoJ1xcXFwnLCBwcmV2KTtcbiAgICB9XG5cbiAgICBxdWV1ZS5wdXNoKHZhbHVlLnNsaWNlKHByZXYpKTtcblxuICAgIHJldHVybiBxdWV1ZS5qb2luKCcnKTtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG4vKiBEZXBlbmRlbmNpZXMuICovXG52YXIgY2hhcmFjdGVyRW50aXRpZXMgPSByZXF1aXJlKCdjaGFyYWN0ZXItZW50aXRpZXMnKTtcbnZhciBsZWdhY3kgPSByZXF1aXJlKCdjaGFyYWN0ZXItZW50aXRpZXMtbGVnYWN5Jyk7XG52YXIgaW52YWxpZCA9IHJlcXVpcmUoJ2NoYXJhY3Rlci1yZWZlcmVuY2UtaW52YWxpZCcpO1xudmFyIGRlY2ltYWwgPSByZXF1aXJlKCdpcy1kZWNpbWFsJyk7XG52YXIgaGV4YWRlY2ltYWwgPSByZXF1aXJlKCdpcy1oZXhhZGVjaW1hbCcpO1xudmFyIGFscGhhbnVtZXJpY2FsID0gcmVxdWlyZSgnaXMtYWxwaGFudW1lcmljYWwnKTtcblxuLyogRXhwb3NlLiAqL1xubW9kdWxlLmV4cG9ydHMgPSB3cmFwcGVyO1xuXG4vKiBNZXRob2RzLiAqL1xudmFyIG93biA9IHt9Lmhhc093blByb3BlcnR5O1xudmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG52YXIgbm9vcCA9IEZ1bmN0aW9uLnByb3RvdHlwZTtcblxuLyogQ2hhcmFjdGVycy4gKi9cbnZhciBSRVBMQUNFTUVOVCA9ICdcXHVGRkZEJztcbnZhciBGT1JNX0ZFRUQgPSAnXFxmJztcbnZhciBBTVBFUlNBTkQgPSAnJic7XG52YXIgT0NUT1RIT1JQID0gJyMnO1xudmFyIFNFTUlDT0xPTiA9ICc7JztcbnZhciBORVdMSU5FID0gJ1xcbic7XG52YXIgWF9MT1dFUiA9ICd4JztcbnZhciBYX1VQUEVSID0gJ1gnO1xudmFyIFNQQUNFID0gJyAnO1xudmFyIExFU1NfVEhBTiA9ICc8JztcbnZhciBFUVVBTCA9ICc9JztcbnZhciBFTVBUWSA9ICcnO1xudmFyIFRBQiA9ICdcXHQnO1xuXG4vKiBEZWZhdWx0IHNldHRpbmdzLiAqL1xudmFyIGRlZmF1bHRzID0ge1xuICB3YXJuaW5nOiBudWxsLFxuICByZWZlcmVuY2U6IG51bGwsXG4gIHRleHQ6IG51bGwsXG4gIHdhcm5pbmdDb250ZXh0OiBudWxsLFxuICByZWZlcmVuY2VDb250ZXh0OiBudWxsLFxuICB0ZXh0Q29udGV4dDogbnVsbCxcbiAgcG9zaXRpb246IHt9LFxuICBhZGRpdGlvbmFsOiBudWxsLFxuICBhdHRyaWJ1dGU6IGZhbHNlLFxuICBub25UZXJtaW5hdGVkOiB0cnVlXG59O1xuXG4vKiBSZWZlcmVuY2UgdHlwZXMuICovXG52YXIgTkFNRUQgPSAnbmFtZWQnO1xudmFyIEhFWEFERUNJTUFMID0gJ2hleGFkZWNpbWFsJztcbnZhciBERUNJTUFMID0gJ2RlY2ltYWwnO1xuXG4vKiBNYXAgb2YgYmFzZXMuICovXG52YXIgQkFTRSA9IHt9O1xuXG5CQVNFW0hFWEFERUNJTUFMXSA9IDE2O1xuQkFTRVtERUNJTUFMXSA9IDEwO1xuXG4vKiBNYXAgb2YgdHlwZXMgdG8gdGVzdHMuIEVhY2ggdHlwZSBvZiBjaGFyYWN0ZXIgcmVmZXJlbmNlXG4gKiBhY2NlcHRzIGRpZmZlcmVudCBjaGFyYWN0ZXJzLiBUaGlzIHRlc3QgaXMgdXNlZCB0b1xuICogZGV0ZWN0IHdoZXRoZXIgYSByZWZlcmVuY2UgaGFzIGVuZGVkIChhcyB0aGUgc2VtaWNvbG9uXG4gKiBpcyBub3Qgc3RyaWN0bHkgbmVlZGVkKS4gKi9cbnZhciBURVNUUyA9IHt9O1xuXG5URVNUU1tOQU1FRF0gPSBhbHBoYW51bWVyaWNhbDtcblRFU1RTW0RFQ0lNQUxdID0gZGVjaW1hbDtcblRFU1RTW0hFWEFERUNJTUFMXSA9IGhleGFkZWNpbWFsO1xuXG4vKiBXYXJuaW5nIG1lc3NhZ2VzLiAqL1xudmFyIE5BTUVEX05PVF9URVJNSU5BVEVEID0gMTtcbnZhciBOVU1FUklDX05PVF9URVJNSU5BVEVEID0gMjtcbnZhciBOQU1FRF9FTVBUWSA9IDM7XG52YXIgTlVNRVJJQ19FTVBUWSA9IDQ7XG52YXIgTkFNRURfVU5LTk9XTiA9IDU7XG52YXIgTlVNRVJJQ19ESVNBTExPV0VEID0gNjtcbnZhciBOVU1FUklDX1BST0hJQklURUQgPSA3O1xuXG52YXIgTlVNRVJJQ19SRUZFUkVOQ0UgPSAnTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyc7XG52YXIgTkFNRURfUkVGRVJFTkNFID0gJ05hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzJztcbnZhciBURVJNSU5BVEVEID0gJyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24nO1xudmFyIFZPSUQgPSAnIGNhbm5vdCBiZSBlbXB0eSc7XG5cbnZhciBNRVNTQUdFUyA9IHt9O1xuXG5NRVNTQUdFU1tOQU1FRF9OT1RfVEVSTUlOQVRFRF0gPSBOQU1FRF9SRUZFUkVOQ0UgKyBURVJNSU5BVEVEO1xuTUVTU0FHRVNbTlVNRVJJQ19OT1RfVEVSTUlOQVRFRF0gPSBOVU1FUklDX1JFRkVSRU5DRSArIFRFUk1JTkFURUQ7XG5NRVNTQUdFU1tOQU1FRF9FTVBUWV0gPSBOQU1FRF9SRUZFUkVOQ0UgKyBWT0lEO1xuTUVTU0FHRVNbTlVNRVJJQ19FTVBUWV0gPSBOVU1FUklDX1JFRkVSRU5DRSArIFZPSUQ7XG5NRVNTQUdFU1tOQU1FRF9VTktOT1dOXSA9IE5BTUVEX1JFRkVSRU5DRSArICcgbXVzdCBiZSBrbm93bic7XG5NRVNTQUdFU1tOVU1FUklDX0RJU0FMTE9XRURdID0gTlVNRVJJQ19SRUZFUkVOQ0UgKyAnIGNhbm5vdCBiZSBkaXNhbGxvd2VkJztcbk1FU1NBR0VTW05VTUVSSUNfUFJPSElCSVRFRF0gPSBOVU1FUklDX1JFRkVSRU5DRSArICcgY2Fubm90IGJlIG91dHNpZGUgdGhlICcgK1xuICAgICdwZXJtaXNzaWJsZSBVbmljb2RlIHJhbmdlJztcblxuLyogV3JhcCB0byBlbnN1cmUgY2xlYW4gcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gYHBhcnNlYC4gKi9cbmZ1bmN0aW9uIHdyYXBwZXIodmFsdWUsIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0ge307XG4gIHZhciBvcHRpb247XG4gIHZhciBrZXk7XG5cbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgZm9yIChrZXkgaW4gZGVmYXVsdHMpIHtcbiAgICBvcHRpb24gPSBvcHRpb25zW2tleV07XG4gICAgc2V0dGluZ3Nba2V5XSA9IG9wdGlvbiA9PT0gbnVsbCB8fCBvcHRpb24gPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRzW2tleV0gOiBvcHRpb247XG4gIH1cblxuICBpZiAoc2V0dGluZ3MucG9zaXRpb24uaW5kZW50IHx8IHNldHRpbmdzLnBvc2l0aW9uLnN0YXJ0KSB7XG4gICAgc2V0dGluZ3MuaW5kZW50ID0gc2V0dGluZ3MucG9zaXRpb24uaW5kZW50IHx8IFtdO1xuICAgIHNldHRpbmdzLnBvc2l0aW9uID0gc2V0dGluZ3MucG9zaXRpb24uc3RhcnQ7XG4gIH1cblxuICByZXR1cm4gcGFyc2UodmFsdWUsIHNldHRpbmdzKTtcbn1cblxuLyogUGFyc2UgZW50aXRpZXMuICovXG5mdW5jdGlvbiBwYXJzZSh2YWx1ZSwgc2V0dGluZ3MpIHtcbiAgdmFyIGFkZGl0aW9uYWwgPSBzZXR0aW5ncy5hZGRpdGlvbmFsO1xuICB2YXIgbm9uVGVybWluYXRlZCA9IHNldHRpbmdzLm5vblRlcm1pbmF0ZWQ7XG4gIHZhciBoYW5kbGVUZXh0ID0gc2V0dGluZ3MudGV4dDtcbiAgdmFyIGhhbmRsZVJlZmVyZW5jZSA9IHNldHRpbmdzLnJlZmVyZW5jZTtcbiAgdmFyIGhhbmRsZVdhcm5pbmcgPSBzZXR0aW5ncy53YXJuaW5nO1xuICB2YXIgdGV4dENvbnRleHQgPSBzZXR0aW5ncy50ZXh0Q29udGV4dDtcbiAgdmFyIHJlZmVyZW5jZUNvbnRleHQgPSBzZXR0aW5ncy5yZWZlcmVuY2VDb250ZXh0O1xuICB2YXIgd2FybmluZ0NvbnRleHQgPSBzZXR0aW5ncy53YXJuaW5nQ29udGV4dDtcbiAgdmFyIHBvcyA9IHNldHRpbmdzLnBvc2l0aW9uO1xuICB2YXIgaW5kZW50ID0gc2V0dGluZ3MuaW5kZW50IHx8IFtdO1xuICB2YXIgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGluZXMgPSAtMTtcbiAgdmFyIGNvbHVtbiA9IHBvcy5jb2x1bW4gfHwgMTtcbiAgdmFyIGxpbmUgPSBwb3MubGluZSB8fCAxO1xuICB2YXIgcXVldWUgPSBFTVBUWTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgZW50aXR5Q2hhcmFjdGVycztcbiAgdmFyIHRlcm1pbmF0ZWQ7XG4gIHZhciBjaGFyYWN0ZXJzO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgcmVmZXJlbmNlO1xuICB2YXIgZm9sbG93aW5nO1xuICB2YXIgd2FybmluZztcbiAgdmFyIHJlYXNvbjtcbiAgdmFyIG91dHB1dDtcbiAgdmFyIGVudGl0eTtcbiAgdmFyIGJlZ2luO1xuICB2YXIgc3RhcnQ7XG4gIHZhciB0eXBlO1xuICB2YXIgdGVzdDtcbiAgdmFyIHByZXY7XG4gIHZhciBuZXh0O1xuICB2YXIgZGlmZjtcbiAgdmFyIGVuZDtcblxuICAvKiBDYWNoZSB0aGUgY3VycmVudCBwb2ludC4gKi9cbiAgcHJldiA9IG5vdygpO1xuXG4gIC8qIFdyYXAgYGhhbmRsZVdhcm5pbmdgLiAqL1xuICB3YXJuaW5nID0gaGFuZGxlV2FybmluZyA/IHBhcnNlRXJyb3IgOiBub29wO1xuXG4gIC8qIEVuc3VyZSB0aGUgYWxnb3JpdGhtIHdhbGtzIG92ZXIgdGhlIGZpcnN0IGNoYXJhY3RlclxuICAgKiBhbmQgdGhlIGVuZCAoaW5jbHVzaXZlKS4gKi9cbiAgaW5kZXgtLTtcbiAgbGVuZ3RoKys7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAvKiBJZiB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIHdhcyBhIG5ld2xpbmUuICovXG4gICAgaWYgKGNoYXJhY3RlciA9PT0gTkVXTElORSkge1xuICAgICAgY29sdW1uID0gaW5kZW50W2xpbmVzXSB8fCAxO1xuICAgIH1cblxuICAgIGNoYXJhY3RlciA9IGF0KGluZGV4KTtcblxuICAgIC8qIEhhbmRsZSBhbnl0aGluZyBvdGhlciB0aGFuIGFuIGFtcGVyc2FuZCxcbiAgICAgKiBpbmNsdWRpbmcgbmV3bGluZXMgYW5kIEVPRi4gKi9cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBBTVBFUlNBTkQpIHtcbiAgICAgIGlmIChjaGFyYWN0ZXIgPT09IE5FV0xJTkUpIHtcbiAgICAgICAgbGluZSsrO1xuICAgICAgICBsaW5lcysrO1xuICAgICAgICBjb2x1bW4gPSAwO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hhcmFjdGVyKSB7XG4gICAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgICAgY29sdW1uKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmbHVzaCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb2xsb3dpbmcgPSBhdChpbmRleCArIDEpO1xuXG4gICAgICAvKiBUaGUgYmVoYXZpb3VyIGRlcGVuZHMgb24gdGhlIGlkZW50aXR5IG9mIHRoZSBuZXh0XG4gICAgICAgKiBjaGFyYWN0ZXIuICovXG4gICAgICBpZiAoXG4gICAgICAgIGZvbGxvd2luZyA9PT0gVEFCIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gTkVXTElORSB8fFxuICAgICAgICBmb2xsb3dpbmcgPT09IEZPUk1fRkVFRCB8fFxuICAgICAgICBmb2xsb3dpbmcgPT09IFNQQUNFIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gTEVTU19USEFOIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gQU1QRVJTQU5EIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gRU1QVFkgfHxcbiAgICAgICAgKGFkZGl0aW9uYWwgJiYgZm9sbG93aW5nID09PSBhZGRpdGlvbmFsKVxuICAgICAgKSB7XG4gICAgICAgIC8qIE5vdCBhIGNoYXJhY3RlciByZWZlcmVuY2UuIE5vIGNoYXJhY3RlcnNcbiAgICAgICAgICogYXJlIGNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC5cbiAgICAgICAgICogVGhpcyBpcyBub3QgYW4gZXJyb3IsIGVpdGhlci4gKi9cbiAgICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICBjb2x1bW4rKztcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgc3RhcnQgPSBpbmRleCArIDE7XG4gICAgICBiZWdpbiA9IHN0YXJ0O1xuICAgICAgZW5kID0gc3RhcnQ7XG5cbiAgICAgIC8qIE51bWVyaWNhbCBlbnRpdHkuICovXG4gICAgICBpZiAoZm9sbG93aW5nICE9PSBPQ1RPVEhPUlApIHtcbiAgICAgICAgdHlwZSA9IE5BTUVEO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kID0gKytiZWdpbjtcblxuICAgICAgICAvKiBUaGUgYmVoYXZpb3VyIGZ1cnRoZXIgZGVwZW5kcyBvbiB0aGVcbiAgICAgICAgICogY2hhcmFjdGVyIGFmdGVyIHRoZSBVKzAwMjMgTlVNQkVSIFNJR04uICovXG4gICAgICAgIGZvbGxvd2luZyA9IGF0KGVuZCk7XG5cbiAgICAgICAgaWYgKGZvbGxvd2luZyA9PT0gWF9MT1dFUiB8fCBmb2xsb3dpbmcgPT09IFhfVVBQRVIpIHtcbiAgICAgICAgICAvKiBBU0NJSSBoZXggZGlnaXRzLiAqL1xuICAgICAgICAgIHR5cGUgPSBIRVhBREVDSU1BTDtcbiAgICAgICAgICBlbmQgPSArK2JlZ2luO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8qIEFTQ0lJIGRpZ2l0cy4gKi9cbiAgICAgICAgICB0eXBlID0gREVDSU1BTDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlbnRpdHlDaGFyYWN0ZXJzID0gRU1QVFk7XG4gICAgICBlbnRpdHkgPSBFTVBUWTtcbiAgICAgIGNoYXJhY3RlcnMgPSBFTVBUWTtcbiAgICAgIHRlc3QgPSBURVNUU1t0eXBlXTtcbiAgICAgIGVuZC0tO1xuXG4gICAgICB3aGlsZSAoKytlbmQgPCBsZW5ndGgpIHtcbiAgICAgICAgZm9sbG93aW5nID0gYXQoZW5kKTtcblxuICAgICAgICBpZiAoIXRlc3QoZm9sbG93aW5nKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hhcmFjdGVycyArPSBmb2xsb3dpbmc7XG5cbiAgICAgICAgLyogQ2hlY2sgaWYgd2UgY2FuIG1hdGNoIGEgbGVnYWN5IG5hbWVkXG4gICAgICAgICAqIHJlZmVyZW5jZS4gIElmIHNvLCB3ZSBjYWNoZSB0aGF0IGFzIHRoZVxuICAgICAgICAgKiBsYXN0IHZpYWJsZSBuYW1lZCByZWZlcmVuY2UuICBUaGlzXG4gICAgICAgICAqIGVuc3VyZXMgd2UgZG8gbm90IG5lZWQgdG8gd2FsayBiYWNrd2FyZHNcbiAgICAgICAgICogbGF0ZXIuICovXG4gICAgICAgIGlmICh0eXBlID09PSBOQU1FRCAmJiBvd24uY2FsbChsZWdhY3ksIGNoYXJhY3RlcnMpKSB7XG4gICAgICAgICAgZW50aXR5Q2hhcmFjdGVycyA9IGNoYXJhY3RlcnM7XG4gICAgICAgICAgZW50aXR5ID0gbGVnYWN5W2NoYXJhY3RlcnNdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRlcm1pbmF0ZWQgPSBhdChlbmQpID09PSBTRU1JQ09MT047XG5cbiAgICAgIGlmICh0ZXJtaW5hdGVkKSB7XG4gICAgICAgIGVuZCsrO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBOQU1FRCAmJiBvd24uY2FsbChjaGFyYWN0ZXJFbnRpdGllcywgY2hhcmFjdGVycykpIHtcbiAgICAgICAgICBlbnRpdHlDaGFyYWN0ZXJzID0gY2hhcmFjdGVycztcbiAgICAgICAgICBlbnRpdHkgPSBjaGFyYWN0ZXJFbnRpdGllc1tjaGFyYWN0ZXJzXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkaWZmID0gMSArIGVuZCAtIHN0YXJ0O1xuXG4gICAgICBpZiAoIXRlcm1pbmF0ZWQgJiYgIW5vblRlcm1pbmF0ZWQpIHtcbiAgICAgICAgLyogRW1wdHkuICovXG4gICAgICB9IGVsc2UgaWYgKCFjaGFyYWN0ZXJzKSB7XG4gICAgICAgIC8qIEFuIGVtcHR5IChwb3NzaWJsZSkgZW50aXR5IGlzIHZhbGlkLCB1bmxlc3NcbiAgICAgICAgICogaXRzIG51bWVyaWMgKHRodXMgYW4gYW1wZXJzYW5kIGZvbGxvd2VkIGJ5XG4gICAgICAgICAqIGFuIG9jdG90aG9ycCkuICovXG4gICAgICAgIGlmICh0eXBlICE9PSBOQU1FRCkge1xuICAgICAgICAgIHdhcm5pbmcoTlVNRVJJQ19FTVBUWSwgZGlmZik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gTkFNRUQpIHtcbiAgICAgICAgLyogQW4gYW1wZXJzYW5kIGZvbGxvd2VkIGJ5IGFueXRoaW5nXG4gICAgICAgICAqIHVua25vd24sIGFuZCBub3QgdGVybWluYXRlZCwgaXMgaW52YWxpZC4gKi9cbiAgICAgICAgaWYgKHRlcm1pbmF0ZWQgJiYgIWVudGl0eSkge1xuICAgICAgICAgIHdhcm5pbmcoTkFNRURfVU5LTk9XTiwgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLyogSWYgdGhlcmVzIHNvbWV0aGluZyBhZnRlciBhbiBlbnRpdHlcbiAgICAgICAgICAgKiBuYW1lIHdoaWNoIGlzIG5vdCBrbm93biwgY2FwIHRoZVxuICAgICAgICAgICAqIHJlZmVyZW5jZS4gKi9cbiAgICAgICAgICBpZiAoZW50aXR5Q2hhcmFjdGVycyAhPT0gY2hhcmFjdGVycykge1xuICAgICAgICAgICAgZW5kID0gYmVnaW4gKyBlbnRpdHlDaGFyYWN0ZXJzLmxlbmd0aDtcbiAgICAgICAgICAgIGRpZmYgPSAxICsgZW5kIC0gYmVnaW47XG4gICAgICAgICAgICB0ZXJtaW5hdGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLyogSWYgdGhlIHJlZmVyZW5jZSBpcyBub3QgdGVybWluYXRlZCxcbiAgICAgICAgICAgKiB3YXJuLiAqL1xuICAgICAgICAgIGlmICghdGVybWluYXRlZCkge1xuICAgICAgICAgICAgcmVhc29uID0gZW50aXR5Q2hhcmFjdGVycyA/XG4gICAgICAgICAgICAgIE5BTUVEX05PVF9URVJNSU5BVEVEIDpcbiAgICAgICAgICAgICAgTkFNRURfRU1QVFk7XG5cbiAgICAgICAgICAgIGlmICghc2V0dGluZ3MuYXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgIHdhcm5pbmcocmVhc29uLCBkaWZmKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZvbGxvd2luZyA9IGF0KGVuZCk7XG5cbiAgICAgICAgICAgICAgaWYgKGZvbGxvd2luZyA9PT0gRVFVQUwpIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKHJlYXNvbiwgZGlmZik7XG4gICAgICAgICAgICAgICAgZW50aXR5ID0gbnVsbDtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChhbHBoYW51bWVyaWNhbChmb2xsb3dpbmcpKSB7XG4gICAgICAgICAgICAgICAgZW50aXR5ID0gbnVsbDtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKHJlYXNvbiwgZGlmZik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZWZlcmVuY2UgPSBlbnRpdHk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAvKiBBbGwgbm9uLXRlcm1pbmF0ZWQgbnVtZXJpYyBlbnRpdGllcyBhcmVcbiAgICAgICAgICAgKiBub3QgcmVuZGVyZWQsIGFuZCB0cmlnZ2VyIGEgd2FybmluZy4gKi9cbiAgICAgICAgICB3YXJuaW5nKE5VTUVSSUNfTk9UX1RFUk1JTkFURUQsIGRpZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogV2hlbiB0ZXJtaW5hdGVkIGFuZCBudW1iZXIsIHBhcnNlIGFzXG4gICAgICAgICAqIGVpdGhlciBoZXhhZGVjaW1hbCBvciBkZWNpbWFsLiAqL1xuICAgICAgICByZWZlcmVuY2UgPSBwYXJzZUludChjaGFyYWN0ZXJzLCBCQVNFW3R5cGVdKTtcblxuICAgICAgICAvKiBUcmlnZ2VyIGEgd2FybmluZyB3aGVuIHRoZSBwYXJzZWQgbnVtYmVyXG4gICAgICAgICAqIGlzIHByb2hpYml0ZWQsIGFuZCByZXBsYWNlIHdpdGhcbiAgICAgICAgICogcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiAqL1xuICAgICAgICBpZiAoaXNQcm9oaWJpdGVkKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICB3YXJuaW5nKE5VTUVSSUNfUFJPSElCSVRFRCwgZGlmZik7XG5cbiAgICAgICAgICByZWZlcmVuY2UgPSBSRVBMQUNFTUVOVDtcbiAgICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgaW4gaW52YWxpZCkge1xuICAgICAgICAgIC8qIFRyaWdnZXIgYSB3YXJuaW5nIHdoZW4gdGhlIHBhcnNlZCBudW1iZXJcbiAgICAgICAgICAgKiBpcyBkaXNhbGxvd2VkLCBhbmQgcmVwbGFjZSBieSBhblxuICAgICAgICAgICAqIGFsdGVybmF0aXZlLiAqL1xuICAgICAgICAgIHdhcm5pbmcoTlVNRVJJQ19ESVNBTExPV0VELCBkaWZmKTtcblxuICAgICAgICAgIHJlZmVyZW5jZSA9IGludmFsaWRbcmVmZXJlbmNlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvKiBQYXJzZSB0aGUgbnVtYmVyLiAqL1xuICAgICAgICAgIG91dHB1dCA9IEVNUFRZO1xuXG4gICAgICAgICAgLyogVHJpZ2dlciBhIHdhcm5pbmcgd2hlbiB0aGUgcGFyc2VkXG4gICAgICAgICAgICogbnVtYmVyIHNob3VsZCBub3QgYmUgdXNlZC4gKi9cbiAgICAgICAgICBpZiAoaXNXYXJuaW5nKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgIHdhcm5pbmcoTlVNRVJJQ19ESVNBTExPV0VELCBkaWZmKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvKiBTdHJpbmdpZnkgdGhlIG51bWJlci4gKi9cbiAgICAgICAgICBpZiAocmVmZXJlbmNlID4gMHhGRkZGKSB7XG4gICAgICAgICAgICByZWZlcmVuY2UgLT0gMHgxMDAwMDtcbiAgICAgICAgICAgIG91dHB1dCArPSBmcm9tQ2hhckNvZGUoKHJlZmVyZW5jZSA+Pj4gKDEwICYgMHgzRkYpKSB8IDB4RDgwMCk7XG4gICAgICAgICAgICByZWZlcmVuY2UgPSAweERDMDAgfCAocmVmZXJlbmNlICYgMHgzRkYpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlZmVyZW5jZSA9IG91dHB1dCArIGZyb21DaGFyQ29kZShyZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qIElmIHdlIGNvdWxkIG5vdCBmaW5kIGEgcmVmZXJlbmNlLCBxdWV1ZSB0aGVcbiAgICAgICAqIGNoZWNrZWQgY2hhcmFjdGVycyAoYXMgbm9ybWFsIGNoYXJhY3RlcnMpLFxuICAgICAgICogYW5kIG1vdmUgdGhlIHBvaW50ZXIgdG8gdGhlaXIgZW5kLiBUaGlzIGlzXG4gICAgICAgKiBwb3NzaWJsZSBiZWNhdXNlIHdlIGNhbiBiZSBjZXJ0YWluIG5laXRoZXJcbiAgICAgICAqIG5ld2xpbmVzIG5vciBhbXBlcnNhbmRzIGFyZSBpbmNsdWRlZC4gKi9cbiAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgIGNoYXJhY3RlcnMgPSB2YWx1ZS5zbGljZShzdGFydCAtIDEsIGVuZCk7XG4gICAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcnM7XG4gICAgICAgIGNvbHVtbiArPSBjaGFyYWN0ZXJzLmxlbmd0aDtcbiAgICAgICAgaW5kZXggPSBlbmQgLSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogRm91bmQgaXQhIEZpcnN0IGVhdCB0aGUgcXVldWVkXG4gICAgICAgICAqIGNoYXJhY3RlcnMgYXMgbm9ybWFsIHRleHQsIHRoZW4gZWF0XG4gICAgICAgICAqIGFuIGVudGl0eS4gKi9cbiAgICAgICAgZmx1c2goKTtcblxuICAgICAgICBwcmV2ID0gbm93KCk7XG4gICAgICAgIGluZGV4ID0gZW5kIC0gMTtcbiAgICAgICAgY29sdW1uICs9IGVuZCAtIHN0YXJ0ICsgMTtcbiAgICAgICAgcmVzdWx0LnB1c2gocmVmZXJlbmNlKTtcbiAgICAgICAgbmV4dCA9IG5vdygpO1xuICAgICAgICBuZXh0Lm9mZnNldCsrO1xuXG4gICAgICAgIGlmIChoYW5kbGVSZWZlcmVuY2UpIHtcbiAgICAgICAgICBoYW5kbGVSZWZlcmVuY2UuY2FsbChyZWZlcmVuY2VDb250ZXh0LCByZWZlcmVuY2UsIHtcbiAgICAgICAgICAgIHN0YXJ0OiBwcmV2LFxuICAgICAgICAgICAgZW5kOiBuZXh0XG4gICAgICAgICAgfSwgdmFsdWUuc2xpY2Uoc3RhcnQgLSAxLCBlbmQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXYgPSBuZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qIFJldHVybiB0aGUgcmVkdWNlZCBub2RlcywgYW5kIGFueSBwb3NzaWJsZSB3YXJuaW5ncy4gKi9cbiAgcmV0dXJuIHJlc3VsdC5qb2luKEVNUFRZKTtcblxuICAvKiBHZXQgY3VycmVudCBwb3NpdGlvbi4gKi9cbiAgZnVuY3Rpb24gbm93KCkge1xuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBsaW5lLFxuICAgICAgY29sdW1uOiBjb2x1bW4sXG4gICAgICBvZmZzZXQ6IGluZGV4ICsgKHBvcy5vZmZzZXQgfHwgMClcbiAgICB9O1xuICB9XG5cbiAgLyog4oCcVGhyb3figJ0gYSBwYXJzZS1lcnJvcjogYSB3YXJuaW5nLiAqL1xuICBmdW5jdGlvbiBwYXJzZUVycm9yKGNvZGUsIG9mZnNldCkge1xuICAgIHZhciBwb3NpdGlvbiA9IG5vdygpO1xuXG4gICAgcG9zaXRpb24uY29sdW1uICs9IG9mZnNldDtcbiAgICBwb3NpdGlvbi5vZmZzZXQgKz0gb2Zmc2V0O1xuXG4gICAgaGFuZGxlV2FybmluZy5jYWxsKHdhcm5pbmdDb250ZXh0LCBNRVNTQUdFU1tjb2RlXSwgcG9zaXRpb24sIGNvZGUpO1xuICB9XG5cbiAgLyogR2V0IGNoYXJhY3RlciBhdCBwb3NpdGlvbi4gKi9cbiAgZnVuY3Rpb24gYXQocG9zaXRpb24pIHtcbiAgICByZXR1cm4gdmFsdWUuY2hhckF0KHBvc2l0aW9uKTtcbiAgfVxuXG4gIC8qIEZsdXNoIGBxdWV1ZWAgKG5vcm1hbCB0ZXh0KS4gTWFjcm8gaW52b2tlZCBiZWZvcmVcbiAgICogZWFjaCBlbnRpdHkgYW5kIGF0IHRoZSBlbmQgb2YgYHZhbHVlYC5cbiAgICogRG9lcyBub3RoaW5nIHdoZW4gYHF1ZXVlYCBpcyBlbXB0eS4gKi9cbiAgZnVuY3Rpb24gZmx1c2goKSB7XG4gICAgaWYgKHF1ZXVlKSB7XG4gICAgICByZXN1bHQucHVzaChxdWV1ZSk7XG5cbiAgICAgIGlmIChoYW5kbGVUZXh0KSB7XG4gICAgICAgIGhhbmRsZVRleHQuY2FsbCh0ZXh0Q29udGV4dCwgcXVldWUsIHtcbiAgICAgICAgICBzdGFydDogcHJldixcbiAgICAgICAgICBlbmQ6IG5vdygpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZSA9IEVNUFRZO1xuICAgIH1cbiAgfVxufVxuXG4vKiBDaGVjayBpZiBgY2hhcmFjdGVyYCBpcyBvdXRzaWRlIHRoZSBwZXJtaXNzaWJsZVxuICogdW5pY29kZSByYW5nZS4gKi9cbmZ1bmN0aW9uIGlzUHJvaGliaXRlZChjb2RlKSB7XG4gIHJldHVybiAoY29kZSA+PSAweEQ4MDAgJiYgY29kZSA8PSAweERGRkYpIHx8IChjb2RlID4gMHgxMEZGRkYpO1xufVxuXG4vKiBDaGVjayBpZiBgY2hhcmFjdGVyYCBpcyBkaXNhbGxvd2VkLiAqL1xuZnVuY3Rpb24gaXNXYXJuaW5nKGNvZGUpIHtcbiAgaWYgKFxuICAgIChjb2RlID49IDB4MDAwMSAmJiBjb2RlIDw9IDB4MDAwOCkgfHxcbiAgICBjb2RlID09PSAweDAwMEIgfHxcbiAgICAoY29kZSA+PSAweDAwMEQgJiYgY29kZSA8PSAweDAwMUYpIHx8XG4gICAgKGNvZGUgPj0gMHgwMDdGICYmIGNvZGUgPD0gMHgwMDlGKSB8fFxuICAgIChjb2RlID49IDB4RkREMCAmJiBjb2RlIDw9IDB4RkRFRikgfHxcbiAgICAoY29kZSAmIDB4RkZGRikgPT09IDB4RkZGRiB8fFxuICAgIChjb2RlICYgMHhGRkZGKSA9PT0gMHhGRkZFXG4gICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpO1xudmFyIGVudGl0aWVzID0gcmVxdWlyZSgncGFyc2UtZW50aXRpZXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5O1xuXG4vKiBGYWN0b3J5IHRvIGNyZWF0ZSBhbiBlbnRpdHkgZGVjb2Rlci4gKi9cbmZ1bmN0aW9uIGZhY3RvcnkoY3R4KSB7XG4gIGRlY29kZXIucmF3ID0gZGVjb2RlUmF3O1xuXG4gIHJldHVybiBkZWNvZGVyO1xuXG4gIC8qIE5vcm1hbGl6ZSBgcG9zaXRpb25gIHRvIGFkZCBhbiBgaW5kZW50YC4gKi9cbiAgZnVuY3Rpb24gbm9ybWFsaXplKHBvc2l0aW9uKSB7XG4gICAgdmFyIG9mZnNldHMgPSBjdHgub2Zmc2V0O1xuICAgIHZhciBsaW5lID0gcG9zaXRpb24ubGluZTtcbiAgICB2YXIgcmVzdWx0ID0gW107XG5cbiAgICB3aGlsZSAoKytsaW5lKSB7XG4gICAgICBpZiAoIShsaW5lIGluIG9mZnNldHMpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXN1bHQucHVzaCgob2Zmc2V0c1tsaW5lXSB8fCAwKSArIDEpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogcG9zaXRpb24sXG4gICAgICBpbmRlbnQ6IHJlc3VsdFxuICAgIH07XG4gIH1cblxuICAvKiBIYW5kbGUgYSB3YXJuaW5nLlxuICAgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3dvb29ybS9wYXJzZS1lbnRpdGllc1xuICAgKiBmb3IgdGhlIHdhcm5pbmdzLiAqL1xuICBmdW5jdGlvbiBoYW5kbGVXYXJuaW5nKHJlYXNvbiwgcG9zaXRpb24sIGNvZGUpIHtcbiAgICBpZiAoY29kZSA9PT0gMykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN0eC5maWxlLm1lc3NhZ2UocmVhc29uLCBwb3NpdGlvbik7XG4gIH1cblxuICAvKiBEZWNvZGUgYHZhbHVlYCAoYXQgYHBvc2l0aW9uYCkgaW50byB0ZXh0LW5vZGVzLiAqL1xuICBmdW5jdGlvbiBkZWNvZGVyKHZhbHVlLCBwb3NpdGlvbiwgaGFuZGxlcikge1xuICAgIGVudGl0aWVzKHZhbHVlLCB7XG4gICAgICBwb3NpdGlvbjogbm9ybWFsaXplKHBvc2l0aW9uKSxcbiAgICAgIHdhcm5pbmc6IGhhbmRsZVdhcm5pbmcsXG4gICAgICB0ZXh0OiBoYW5kbGVyLFxuICAgICAgcmVmZXJlbmNlOiBoYW5kbGVyLFxuICAgICAgdGV4dENvbnRleHQ6IGN0eCxcbiAgICAgIHJlZmVyZW5jZUNvbnRleHQ6IGN0eFxuICAgIH0pO1xuICB9XG5cbiAgLyogRGVjb2RlIGB2YWx1ZWAgKGF0IGBwb3NpdGlvbmApIGludG8gYSBzdHJpbmcuICovXG4gIGZ1bmN0aW9uIGRlY29kZVJhdyh2YWx1ZSwgcG9zaXRpb24sIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gZW50aXRpZXModmFsdWUsIHh0ZW5kKG9wdGlvbnMsIHtcbiAgICAgIHBvc2l0aW9uOiBub3JtYWxpemUocG9zaXRpb24pLFxuICAgICAgd2FybmluZzogaGFuZGxlV2FybmluZ1xuICAgIH0pKTtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhY3Rvcnk7XG5cbnZhciBNRVJHRUFCTEVfTk9ERVMgPSB7XG4gIHRleHQ6IG1lcmdlVGV4dCxcbiAgYmxvY2txdW90ZTogbWVyZ2VCbG9ja3F1b3RlXG59O1xuXG4vKiBDaGVjayB3aGV0aGVyIGEgbm9kZSBpcyBtZXJnZWFibGUgd2l0aCBhZGphY2VudCBub2Rlcy4gKi9cbmZ1bmN0aW9uIG1lcmdlYWJsZShub2RlKSB7XG4gIHZhciBzdGFydDtcbiAgdmFyIGVuZDtcblxuICBpZiAobm9kZS50eXBlICE9PSAndGV4dCcgfHwgIW5vZGUucG9zaXRpb24pIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXJ0ID0gbm9kZS5wb3NpdGlvbi5zdGFydDtcbiAgZW5kID0gbm9kZS5wb3NpdGlvbi5lbmQ7XG5cbiAgLyogT25seSBtZXJnZSBub2RlcyB3aGljaCBvY2N1cHkgdGhlIHNhbWUgc2l6ZSBhcyB0aGVpclxuICAgKiBgdmFsdWVgLiAqL1xuICByZXR1cm4gc3RhcnQubGluZSAhPT0gZW5kLmxpbmUgfHxcbiAgICAgIGVuZC5jb2x1bW4gLSBzdGFydC5jb2x1bW4gPT09IG5vZGUudmFsdWUubGVuZ3RoO1xufVxuXG4vKiBNZXJnZSB0d28gdGV4dCBub2RlczogYG5vZGVgIGludG8gYHByZXZgLiAqL1xuZnVuY3Rpb24gbWVyZ2VUZXh0KHByZXYsIG5vZGUpIHtcbiAgcHJldi52YWx1ZSArPSBub2RlLnZhbHVlO1xuXG4gIHJldHVybiBwcmV2O1xufVxuXG4vKiBNZXJnZSB0d28gYmxvY2txdW90ZXM6IGBub2RlYCBpbnRvIGBwcmV2YCwgdW5sZXNzIGluXG4gKiBDb21tb25NYXJrIG1vZGUuICovXG5mdW5jdGlvbiBtZXJnZUJsb2NrcXVvdGUocHJldiwgbm9kZSkge1xuICBpZiAodGhpcy5vcHRpb25zLmNvbW1vbm1hcmspIHtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHByZXYuY2hpbGRyZW4gPSBwcmV2LmNoaWxkcmVuLmNvbmNhdChub2RlLmNoaWxkcmVuKTtcblxuICByZXR1cm4gcHJldjtcbn1cblxuLyogQ29uc3RydWN0IGEgdG9rZW5pemVyLiAgVGhpcyBjcmVhdGVzIGJvdGhcbiAqIGB0b2tlbml6ZUlubGluZWAgYW5kIGB0b2tlbml6ZUJsb2NrYC4gKi9cbmZ1bmN0aW9uIGZhY3RvcnkodHlwZSkge1xuICByZXR1cm4gdG9rZW5pemU7XG5cbiAgLyogVG9rZW5pemVyIGZvciBhIGJvdW5kIGB0eXBlYC4gKi9cbiAgZnVuY3Rpb24gdG9rZW5pemUodmFsdWUsIGxvY2F0aW9uKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciBvZmZzZXQgPSBzZWxmLm9mZnNldDtcbiAgICB2YXIgdG9rZW5zID0gW107XG4gICAgdmFyIG1ldGhvZHMgPSBzZWxmW3R5cGUgKyAnTWV0aG9kcyddO1xuICAgIHZhciB0b2tlbml6ZXJzID0gc2VsZlt0eXBlICsgJ1Rva2VuaXplcnMnXTtcbiAgICB2YXIgbGluZSA9IGxvY2F0aW9uLmxpbmU7XG4gICAgdmFyIGNvbHVtbiA9IGxvY2F0aW9uLmNvbHVtbjtcbiAgICB2YXIgaW5kZXg7XG4gICAgdmFyIGxlbmd0aDtcbiAgICB2YXIgbWV0aG9kO1xuICAgIHZhciBuYW1lO1xuICAgIHZhciBtYXRjaGVkO1xuICAgIHZhciB2YWx1ZUxlbmd0aDtcblxuICAgIC8qIFRyaW0gd2hpdGUgc3BhY2Ugb25seSBsaW5lcy4gKi9cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gdG9rZW5zO1xuICAgIH1cblxuICAgIC8qIEV4cG9zZSBvbiBgZWF0YC4gKi9cbiAgICBlYXQubm93ID0gbm93O1xuICAgIGVhdC5maWxlID0gc2VsZi5maWxlO1xuXG4gICAgLyogU3luYyBpbml0aWFsIG9mZnNldC4gKi9cbiAgICB1cGRhdGVQb3NpdGlvbignJyk7XG5cbiAgICAvKiBJdGVyYXRlIG92ZXIgYHZhbHVlYCwgYW5kIGl0ZXJhdGUgb3ZlciBhbGxcbiAgICAgKiB0b2tlbml6ZXJzLiAgV2hlbiBvbmUgZWF0cyBzb21ldGhpbmcsIHJlLWl0ZXJhdGVcbiAgICAgKiB3aXRoIHRoZSByZW1haW5pbmcgdmFsdWUuICBJZiBubyB0b2tlbml6ZXIgZWF0cyxcbiAgICAgKiBzb21ldGhpbmcgZmFpbGVkIChzaG91bGQgbm90IGhhcHBlbikgYW5kIGFuXG4gICAgICogZXhjZXB0aW9uIGlzIHRocm93bi4gKi9cbiAgICB3aGlsZSAodmFsdWUpIHtcbiAgICAgIGluZGV4ID0gLTE7XG4gICAgICBsZW5ndGggPSBtZXRob2RzLmxlbmd0aDtcbiAgICAgIG1hdGNoZWQgPSBmYWxzZTtcblxuICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgbmFtZSA9IG1ldGhvZHNbaW5kZXhdO1xuICAgICAgICBtZXRob2QgPSB0b2tlbml6ZXJzW25hbWVdO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBtZXRob2QgJiZcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyAoIW1ldGhvZC5vbmx5QXRTdGFydCB8fCBzZWxmLmF0U3RhcnQpICYmXG4gICAgICAgICAgKCFtZXRob2Qubm90SW5MaXN0IHx8ICFzZWxmLmluTGlzdCkgJiZcbiAgICAgICAgICAoIW1ldGhvZC5ub3RJbkJsb2NrIHx8ICFzZWxmLmluQmxvY2spICYmXG4gICAgICAgICAgKCFtZXRob2Qubm90SW5MaW5rIHx8ICFzZWxmLmluTGluaylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgICBtZXRob2QuYXBwbHkoc2VsZiwgW2VhdCwgdmFsdWVdKTtcblxuICAgICAgICAgIG1hdGNoZWQgPSB2YWx1ZUxlbmd0aCAhPT0gdmFsdWUubGVuZ3RoO1xuXG4gICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghbWF0Y2hlZCkge1xuICAgICAgICBzZWxmLmZpbGUuZmFpbChuZXcgRXJyb3IoJ0luZmluaXRlIGxvb3AnKSwgZWF0Lm5vdygpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxmLmVvZiA9IG5vdygpO1xuXG4gICAgcmV0dXJuIHRva2VucztcblxuICAgIC8qIFVwZGF0ZSBsaW5lLCBjb2x1bW4sIGFuZCBvZmZzZXQgYmFzZWQgb25cbiAgICAgKiBgdmFsdWVgLiAqL1xuICAgIGZ1bmN0aW9uIHVwZGF0ZVBvc2l0aW9uKHN1YnZhbHVlKSB7XG4gICAgICB2YXIgbGFzdEluZGV4ID0gLTE7XG4gICAgICB2YXIgaW5kZXggPSBzdWJ2YWx1ZS5pbmRleE9mKCdcXG4nKTtcblxuICAgICAgd2hpbGUgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBsaW5lKys7XG4gICAgICAgIGxhc3RJbmRleCA9IGluZGV4O1xuICAgICAgICBpbmRleCA9IHN1YnZhbHVlLmluZGV4T2YoJ1xcbicsIGluZGV4ICsgMSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChsYXN0SW5kZXggPT09IC0xKSB7XG4gICAgICAgIGNvbHVtbiArPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2x1bW4gPSBzdWJ2YWx1ZS5sZW5ndGggLSBsYXN0SW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lIGluIG9mZnNldCkge1xuICAgICAgICBpZiAobGFzdEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgIGNvbHVtbiArPSBvZmZzZXRbbGluZV07XG4gICAgICAgIH0gZWxzZSBpZiAoY29sdW1uIDw9IG9mZnNldFtsaW5lXSkge1xuICAgICAgICAgIGNvbHVtbiA9IG9mZnNldFtsaW5lXSArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBHZXQgb2Zmc2V0LiAgQ2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzXG4gICAgICogZWF0ZW4gdG8gcmV0cmlldmUgdGhlIHJhbmdlJ3Mgb2Zmc2V0cy4gKi9cbiAgICBmdW5jdGlvbiBnZXRPZmZzZXQoKSB7XG4gICAgICB2YXIgaW5kZW50YXRpb24gPSBbXTtcbiAgICAgIHZhciBwb3MgPSBsaW5lICsgMTtcblxuICAgICAgLyogRG9uZS4gIENhbGxlZCB3aGVuIHRoZSBsYXN0IGNoYXJhY3RlciBpc1xuICAgICAgICogZWF0ZW4gdG8gcmV0cmlldmUgdGhlIHJhbmdl4oCZcyBvZmZzZXRzLiAqL1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGxhc3QgPSBsaW5lICsgMTtcblxuICAgICAgICB3aGlsZSAocG9zIDwgbGFzdCkge1xuICAgICAgICAgIGluZGVudGF0aW9uLnB1c2goKG9mZnNldFtwb3NdIHx8IDApICsgMSk7XG5cbiAgICAgICAgICBwb3MrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmRlbnRhdGlvbjtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyogR2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uLiAqL1xuICAgIGZ1bmN0aW9uIG5vdygpIHtcbiAgICAgIHZhciBwb3MgPSB7bGluZTogbGluZSwgY29sdW1uOiBjb2x1bW59O1xuXG4gICAgICBwb3Mub2Zmc2V0ID0gc2VsZi50b09mZnNldChwb3MpO1xuXG4gICAgICByZXR1cm4gcG9zO1xuICAgIH1cblxuICAgIC8qIFN0b3JlIHBvc2l0aW9uIGluZm9ybWF0aW9uIGZvciBhIG5vZGUuICovXG4gICAgZnVuY3Rpb24gUG9zaXRpb24oc3RhcnQpIHtcbiAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcbiAgICAgIHRoaXMuZW5kID0gbm93KCk7XG4gICAgfVxuXG4gICAgLyogVGhyb3cgd2hlbiBhIHZhbHVlIGlzIGluY29ycmVjdGx5IGVhdGVuLlxuICAgICAqIFRoaXMgc2hvdWxkbuKAmXQgaGFwcGVuIGJ1dCB3aWxsIHRocm93IG9uIG5ldyxcbiAgICAgKiBpbmNvcnJlY3QgcnVsZXMuICovXG4gICAgZnVuY3Rpb24gdmFsaWRhdGVFYXQoc3VidmFsdWUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKHZhbHVlLnN1YnN0cmluZygwLCBzdWJ2YWx1ZS5sZW5ndGgpICE9PSBzdWJ2YWx1ZSkge1xuICAgICAgICAvKiBDYXB0dXJlIHN0YWNrLXRyYWNlLiAqL1xuICAgICAgICBzZWxmLmZpbGUuZmFpbChcbiAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnSW5jb3JyZWN0bHkgZWF0ZW4gdmFsdWU6IHBsZWFzZSByZXBvcnQgdGhpcyAnICtcbiAgICAgICAgICAgICd3YXJuaW5nIG9uIGh0dHA6Ly9naXQuaW8vdmc1RnQnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBub3coKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIE1hcmsgcG9zaXRpb24gYW5kIHBhdGNoIGBub2RlLnBvc2l0aW9uYC4gKi9cbiAgICBmdW5jdGlvbiBwb3NpdGlvbigpIHtcbiAgICAgIHZhciBiZWZvcmUgPSBub3coKTtcblxuICAgICAgcmV0dXJuIHVwZGF0ZTtcblxuICAgICAgLyogQWRkIHRoZSBwb3NpdGlvbiB0byBhIG5vZGUuICovXG4gICAgICBmdW5jdGlvbiB1cGRhdGUobm9kZSwgaW5kZW50KSB7XG4gICAgICAgIHZhciBwcmV2ID0gbm9kZS5wb3NpdGlvbjtcbiAgICAgICAgdmFyIHN0YXJ0ID0gcHJldiA/IHByZXYuc3RhcnQgOiBiZWZvcmU7XG4gICAgICAgIHZhciBjb21iaW5lZCA9IFtdO1xuICAgICAgICB2YXIgbiA9IHByZXYgJiYgcHJldi5lbmQubGluZTtcbiAgICAgICAgdmFyIGwgPSBiZWZvcmUubGluZTtcblxuICAgICAgICBub2RlLnBvc2l0aW9uID0gbmV3IFBvc2l0aW9uKHN0YXJ0KTtcblxuICAgICAgICAvKiBJZiB0aGVyZSB3YXMgYWxyZWFkeSBhIGBwb3NpdGlvbmAsIHRoaXNcbiAgICAgICAgICogbm9kZSB3YXMgbWVyZ2VkLiAgRml4aW5nIGBzdGFydGAgd2FzbuKAmXRcbiAgICAgICAgICogaGFyZCwgYnV0IHRoZSBpbmRlbnQgaXMgZGlmZmVyZW50LlxuICAgICAgICAgKiBFc3BlY2lhbGx5IGJlY2F1c2Ugc29tZSBpbmZvcm1hdGlvbiwgdGhlXG4gICAgICAgICAqIGluZGVudCBiZXR3ZWVuIGBuYCBhbmQgYGxgIHdhc27igJl0XG4gICAgICAgICAqIHRyYWNrZWQuICBMdWNraWx5LCB0aGF0IHNwYWNlIGlzXG4gICAgICAgICAqIChzaG91bGQgYmU/KSBlbXB0eSwgc28gd2UgY2FuIHNhZmVseVxuICAgICAgICAgKiBjaGVjayBmb3IgaXQgbm93LiAqL1xuICAgICAgICBpZiAocHJldiAmJiBpbmRlbnQgJiYgcHJldi5pbmRlbnQpIHtcbiAgICAgICAgICBjb21iaW5lZCA9IHByZXYuaW5kZW50O1xuXG4gICAgICAgICAgaWYgKG4gPCBsKSB7XG4gICAgICAgICAgICB3aGlsZSAoKytuIDwgbCkge1xuICAgICAgICAgICAgICBjb21iaW5lZC5wdXNoKChvZmZzZXRbbl0gfHwgMCkgKyAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29tYmluZWQucHVzaChiZWZvcmUuY29sdW1uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpbmRlbnQgPSBjb21iaW5lZC5jb25jYXQoaW5kZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUucG9zaXRpb24uaW5kZW50ID0gaW5kZW50IHx8IFtdO1xuXG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFkZCBgbm9kZWAgdG8gYHBhcmVudGBzIGNoaWxkcmVuIG9yIHRvIGB0b2tlbnNgLlxuICAgICAqIFBlcmZvcm1zIG1lcmdlcyB3aGVyZSBwb3NzaWJsZS4gKi9cbiAgICBmdW5jdGlvbiBhZGQobm9kZSwgcGFyZW50KSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBwYXJlbnQgPyBwYXJlbnQuY2hpbGRyZW4gOiB0b2tlbnM7XG4gICAgICB2YXIgcHJldiA9IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHByZXYgJiZcbiAgICAgICAgbm9kZS50eXBlID09PSBwcmV2LnR5cGUgJiZcbiAgICAgICAgbm9kZS50eXBlIGluIE1FUkdFQUJMRV9OT0RFUyAmJlxuICAgICAgICBtZXJnZWFibGUocHJldikgJiZcbiAgICAgICAgbWVyZ2VhYmxlKG5vZGUpXG4gICAgICApIHtcbiAgICAgICAgbm9kZSA9IE1FUkdFQUJMRV9OT0RFU1tub2RlLnR5cGVdLmNhbGwoc2VsZiwgcHJldiwgbm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlICE9PSBwcmV2KSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2gobm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxmLmF0U3RhcnQgJiYgdG9rZW5zLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBzZWxmLmV4aXRTdGFydCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG5cbiAgICAvKiBSZW1vdmUgYHN1YnZhbHVlYCBmcm9tIGB2YWx1ZWAuXG4gICAgICogYHN1YnZhbHVlYCBtdXN0IGJlIGF0IHRoZSBzdGFydCBvZiBgdmFsdWVgLiAqL1xuICAgIGZ1bmN0aW9uIGVhdChzdWJ2YWx1ZSkge1xuICAgICAgdmFyIGluZGVudCA9IGdldE9mZnNldCgpO1xuICAgICAgdmFyIHBvcyA9IHBvc2l0aW9uKCk7XG4gICAgICB2YXIgY3VycmVudCA9IG5vdygpO1xuXG4gICAgICB2YWxpZGF0ZUVhdChzdWJ2YWx1ZSk7XG5cbiAgICAgIGFwcGx5LnJlc2V0ID0gcmVzZXQ7XG4gICAgICByZXNldC50ZXN0ID0gdGVzdDtcbiAgICAgIGFwcGx5LnRlc3QgPSB0ZXN0O1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlLnN1YnN0cmluZyhzdWJ2YWx1ZS5sZW5ndGgpO1xuXG4gICAgICB1cGRhdGVQb3NpdGlvbihzdWJ2YWx1ZSk7XG5cbiAgICAgIGluZGVudCA9IGluZGVudCgpO1xuXG4gICAgICByZXR1cm4gYXBwbHk7XG5cbiAgICAgIC8qIEFkZCB0aGUgZ2l2ZW4gYXJndW1lbnRzLCBhZGQgYHBvc2l0aW9uYCB0b1xuICAgICAgICogdGhlIHJldHVybmVkIG5vZGUsIGFuZCByZXR1cm4gdGhlIG5vZGUuICovXG4gICAgICBmdW5jdGlvbiBhcHBseShub2RlLCBwYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIHBvcyhhZGQocG9zKG5vZGUpLCBwYXJlbnQpLCBpbmRlbnQpO1xuICAgICAgfVxuXG4gICAgICAvKiBGdW5jdGlvbnMganVzdCBsaWtlIGFwcGx5LCBidXQgcmVzZXRzIHRoZVxuICAgICAgICogY29udGVudDogIHRoZSBsaW5lIGFuZCBjb2x1bW4gYXJlIHJldmVyc2VkLFxuICAgICAgICogYW5kIHRoZSBlYXRlbiB2YWx1ZSBpcyByZS1hZGRlZC5cbiAgICAgICAqIFRoaXMgaXMgdXNlZnVsIGZvciBub2RlcyB3aXRoIGEgc2luZ2xlXG4gICAgICAgKiB0eXBlIG9mIGNvbnRlbnQsIHN1Y2ggYXMgbGlzdHMgYW5kIHRhYmxlcy5cbiAgICAgICAqIFNlZSBgYXBwbHlgIGFib3ZlIGZvciB3aGF0IHBhcmFtZXRlcnMgYXJlXG4gICAgICAgKiBleHBlY3RlZC4gKi9cbiAgICAgIGZ1bmN0aW9uIHJlc2V0KCkge1xuICAgICAgICB2YXIgbm9kZSA9IGFwcGx5LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG5cbiAgICAgICAgbGluZSA9IGN1cnJlbnQubGluZTtcbiAgICAgICAgY29sdW1uID0gY3VycmVudC5jb2x1bW47XG4gICAgICAgIHZhbHVlID0gc3VidmFsdWUgKyB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cblxuICAgICAgLyogVGVzdCB0aGUgcG9zaXRpb24sIGFmdGVyIGVhdGluZywgYW5kIHJldmVyc2VcbiAgICAgICAqIHRvIGEgbm90LWVhdGVuIHN0YXRlLiAqL1xuICAgICAgZnVuY3Rpb24gdGVzdCgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHBvcyh7fSk7XG5cbiAgICAgICAgbGluZSA9IGN1cnJlbnQubGluZTtcbiAgICAgICAgY29sdW1uID0gY3VycmVudC5jb2x1bW47XG4gICAgICAgIHZhbHVlID0gc3VidmFsdWUgKyB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0LnBvc2l0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVzY2FwZXM7XG5cbnZhciBkZWZhdWx0cyA9IFtcbiAgJ1xcXFwnLFxuICAnYCcsXG4gICcqJyxcbiAgJ3snLFxuICAnfScsXG4gICdbJyxcbiAgJ10nLFxuICAnKCcsXG4gICcpJyxcbiAgJyMnLFxuICAnKycsXG4gICctJyxcbiAgJy4nLFxuICAnIScsXG4gICdfJyxcbiAgJz4nXG5dO1xuXG52YXIgZ2ZtID0gZGVmYXVsdHMuY29uY2F0KFsnficsICd8J10pO1xuXG52YXIgY29tbW9ubWFyayA9IGdmbS5jb25jYXQoW1xuICAnXFxuJyxcbiAgJ1wiJyxcbiAgJyQnLFxuICAnJScsXG4gICcmJyxcbiAgJ1xcJycsXG4gICcsJyxcbiAgJy8nLFxuICAnOicsXG4gICc7JyxcbiAgJzwnLFxuICAnPScsXG4gICc/JyxcbiAgJ0AnLFxuICAnXidcbl0pO1xuXG5lc2NhcGVzLmRlZmF1bHQgPSBkZWZhdWx0cztcbmVzY2FwZXMuZ2ZtID0gZ2ZtO1xuZXNjYXBlcy5jb21tb25tYXJrID0gY29tbW9ubWFyaztcblxuLyogR2V0IG1hcmtkb3duIGVzY2FwZXMuICovXG5mdW5jdGlvbiBlc2NhcGVzKG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0gb3B0aW9ucyB8fCB7fTtcblxuICBpZiAoc2V0dGluZ3MuY29tbW9ubWFyaykge1xuICAgIHJldHVybiBjb21tb25tYXJrO1xuICB9XG5cbiAgcmV0dXJuIHNldHRpbmdzLmdmbSA/IGdmbSA6IGRlZmF1bHRzO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgcG9zaXRpb246IHRydWUsXG4gIGdmbTogdHJ1ZSxcbiAgY29tbW9ubWFyazogZmFsc2UsXG4gIGZvb3Rub3RlczogZmFsc2UsXG4gIHBlZGFudGljOiBmYWxzZSxcbiAgYmxvY2tzOiByZXF1aXJlKCcuL2Jsb2NrLWVsZW1lbnRzLmpzb24nKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKTtcbnZhciBlc2NhcGVzID0gcmVxdWlyZSgnbWFya2Rvd24tZXNjYXBlcycpO1xudmFyIGRlZmF1bHRzID0gcmVxdWlyZSgnLi9kZWZhdWx0cycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNldE9wdGlvbnM7XG5cbmZ1bmN0aW9uIHNldE9wdGlvbnMob3B0aW9ucykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjdXJyZW50ID0gc2VsZi5vcHRpb25zO1xuICB2YXIga2V5O1xuICB2YXIgdmFsdWU7XG5cbiAgaWYgKG9wdGlvbnMgPT0gbnVsbCkge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICBvcHRpb25zID0geHRlbmQob3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludmFsaWQgdmFsdWUgYCcgKyBvcHRpb25zICsgJ2AgJyArXG4gICAgICAnZm9yIHNldHRpbmcgYG9wdGlvbnNgJ1xuICAgICk7XG4gIH1cblxuICBmb3IgKGtleSBpbiBkZWZhdWx0cykge1xuICAgIHZhbHVlID0gb3B0aW9uc1trZXldO1xuXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gY3VycmVudFtrZXldO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIChrZXkgIT09ICdibG9ja3MnICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB8fFxuICAgICAgKGtleSA9PT0gJ2Jsb2NrcycgJiYgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JylcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBgJyArIHZhbHVlICsgJ2AgZm9yIHNldHRpbmcgYG9wdGlvbnMuJyArIGtleSArICdgJyk7XG4gICAgfVxuXG4gICAgb3B0aW9uc1trZXldID0gdmFsdWU7XG4gIH1cblxuICBzZWxmLm9wdGlvbnMgPSBvcHRpb25zO1xuICBzZWxmLmVzY2FwZSA9IGVzY2FwZXMob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHNlbGY7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB2aXNpdCA9IHJlcXVpcmUoJ3VuaXN0LXV0aWwtdmlzaXQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSByZW1vdmVQb3NpdGlvbjtcblxuLyogUmVtb3ZlIGBwb3NpdGlvbmBzIGZyb20gYHRyZWVgLiAqL1xuZnVuY3Rpb24gcmVtb3ZlUG9zaXRpb24obm9kZSwgZm9yY2UpIHtcbiAgdmlzaXQobm9kZSwgZm9yY2UgPyBoYXJkIDogc29mdCk7XG4gIHJldHVybiBub2RlO1xufVxuXG5mdW5jdGlvbiBoYXJkKG5vZGUpIHtcbiAgZGVsZXRlIG5vZGUucG9zaXRpb247XG59XG5cbmZ1bmN0aW9uIHNvZnQobm9kZSkge1xuICBub2RlLnBvc2l0aW9uID0gdW5kZWZpbmVkO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgeHRlbmQgPSByZXF1aXJlKCd4dGVuZCcpO1xudmFyIHJlbW92ZVBvc2l0aW9uID0gcmVxdWlyZSgndW5pc3QtdXRpbC1yZW1vdmUtcG9zaXRpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZTtcblxudmFyIENfTkVXTElORSA9ICdcXG4nO1xudmFyIEVYUFJFU1NJT05fTElORV9CUkVBS1MgPSAvXFxyXFxufFxcci9nO1xuXG4vKiBQYXJzZSB0aGUgYm91bmQgZmlsZS4gKi9cbmZ1bmN0aW9uIHBhcnNlKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB2YWx1ZSA9IFN0cmluZyhzZWxmLmZpbGUpO1xuICB2YXIgc3RhcnQgPSB7bGluZTogMSwgY29sdW1uOiAxLCBvZmZzZXQ6IDB9O1xuICB2YXIgY29udGVudCA9IHh0ZW5kKHN0YXJ0KTtcbiAgdmFyIG5vZGU7XG5cbiAgLyogQ2xlYW4gbm9uLXVuaXggbmV3bGluZXM6IGBcXHJcXG5gIGFuZCBgXFxyYCBhcmUgYWxsXG4gICAqIGNoYW5nZWQgdG8gYFxcbmAuICBUaGlzIHNob3VsZCBub3QgYWZmZWN0IHBvc2l0aW9uYWxcbiAgICogaW5mb3JtYXRpb24uICovXG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShFWFBSRVNTSU9OX0xJTkVfQlJFQUtTLCBDX05FV0xJTkUpO1xuXG4gIGlmICh2YWx1ZS5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpO1xuXG4gICAgY29udGVudC5jb2x1bW4rKztcbiAgICBjb250ZW50Lm9mZnNldCsrO1xuICB9XG5cbiAgbm9kZSA9IHtcbiAgICB0eXBlOiAncm9vdCcsXG4gICAgY2hpbGRyZW46IHNlbGYudG9rZW5pemVCbG9jayh2YWx1ZSwgY29udGVudCksXG4gICAgcG9zaXRpb246IHtcbiAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgIGVuZDogc2VsZi5lb2YgfHwgeHRlbmQoc3RhcnQpXG4gICAgfVxuICB9O1xuXG4gIGlmICghc2VsZi5vcHRpb25zLnBvc2l0aW9uKSB7XG4gICAgcmVtb3ZlUG9zaXRpb24obm9kZSwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHdoaXRlc3BhY2UgPSByZXF1aXJlKCdpcy13aGl0ZXNwYWNlLWNoYXJhY3RlcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5ld2xpbmU7XG5cbi8qIFRva2VuaXNlIG5ld2xpbmUuICovXG5mdW5jdGlvbiBuZXdsaW5lKGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KDApO1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBxdWV1ZTtcbiAgdmFyIGluZGV4O1xuXG4gIGlmIChjaGFyYWN0ZXIgIT09ICdcXG4nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpbmRleCA9IDE7XG4gIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgc3VidmFsdWUgPSBjaGFyYWN0ZXI7XG4gIHF1ZXVlID0gJyc7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmICghd2hpdGVzcGFjZShjaGFyYWN0ZXIpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSAnXFxuJykge1xuICAgICAgc3VidmFsdWUgKz0gcXVldWU7XG4gICAgICBxdWV1ZSA9ICcnO1xuICAgIH1cblxuICAgIGluZGV4Kys7XG4gIH1cblxuICBlYXQoc3VidmFsdWUpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgcmVwZWF0ID0gcmVxdWlyZSgncmVwZWF0LXN0cmluZycpO1xudmFyIHRyaW0gPSByZXF1aXJlKCd0cmltLXRyYWlsaW5nLWxpbmVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gaW5kZW50ZWRDb2RlO1xuXG52YXIgQ19ORVdMSU5FID0gJ1xcbic7XG52YXIgQ19UQUIgPSAnXFx0JztcbnZhciBDX1NQQUNFID0gJyAnO1xuXG52YXIgQ09ERV9JTkRFTlRfQ09VTlQgPSA0O1xudmFyIENPREVfSU5ERU5UID0gcmVwZWF0KENfU1BBQ0UsIENPREVfSU5ERU5UX0NPVU5UKTtcblxuLyogVG9rZW5pc2UgaW5kZW50ZWQgY29kZS4gKi9cbmZ1bmN0aW9uIGluZGVudGVkQ29kZShlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIHZhciBzdWJ2YWx1ZSA9ICcnO1xuICB2YXIgY29udGVudCA9ICcnO1xuICB2YXIgc3VidmFsdWVRdWV1ZSA9ICcnO1xuICB2YXIgY29udGVudFF1ZXVlID0gJyc7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBibGFua1F1ZXVlO1xuICB2YXIgaW5kZW50O1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChpbmRlbnQpIHtcbiAgICAgIGluZGVudCA9IGZhbHNlO1xuXG4gICAgICBzdWJ2YWx1ZSArPSBzdWJ2YWx1ZVF1ZXVlO1xuICAgICAgY29udGVudCArPSBjb250ZW50UXVldWU7XG4gICAgICBzdWJ2YWx1ZVF1ZXVlID0gJyc7XG4gICAgICBjb250ZW50UXVldWUgPSAnJztcblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19ORVdMSU5FKSB7XG4gICAgICAgIHN1YnZhbHVlUXVldWUgPSBjaGFyYWN0ZXI7XG4gICAgICAgIGNvbnRlbnRRdWV1ZSA9IGNoYXJhY3RlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICAgICAgY29udGVudCArPSBjaGFyYWN0ZXI7XG5cbiAgICAgICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICAgICAgaWYgKCFjaGFyYWN0ZXIgfHwgY2hhcmFjdGVyID09PSBDX05FV0xJTkUpIHtcbiAgICAgICAgICAgIGNvbnRlbnRRdWV1ZSA9IGNoYXJhY3RlcjtcbiAgICAgICAgICAgIHN1YnZhbHVlUXVldWUgPSBjaGFyYWN0ZXI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICAgICAgY29udGVudCArPSBjaGFyYWN0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgY2hhcmFjdGVyID09PSBDX1NQQUNFICYmXG4gICAgICB2YWx1ZS5jaGFyQXQoaW5kZXggKyAxKSA9PT0gY2hhcmFjdGVyICYmXG4gICAgICB2YWx1ZS5jaGFyQXQoaW5kZXggKyAyKSA9PT0gY2hhcmFjdGVyICYmXG4gICAgICB2YWx1ZS5jaGFyQXQoaW5kZXggKyAzKSA9PT0gY2hhcmFjdGVyXG4gICAgKSB7XG4gICAgICBzdWJ2YWx1ZVF1ZXVlICs9IENPREVfSU5ERU5UO1xuICAgICAgaW5kZXggKz0gMztcbiAgICAgIGluZGVudCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfVEFCKSB7XG4gICAgICBzdWJ2YWx1ZVF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGluZGVudCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJsYW5rUXVldWUgPSAnJztcblxuICAgICAgd2hpbGUgKGNoYXJhY3RlciA9PT0gQ19UQUIgfHwgY2hhcmFjdGVyID09PSBDX1NQQUNFKSB7XG4gICAgICAgIGJsYW5rUXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoKytpbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgIT09IENfTkVXTElORSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgc3VidmFsdWVRdWV1ZSArPSBibGFua1F1ZXVlICsgY2hhcmFjdGVyO1xuICAgICAgY29udGVudFF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICB9XG4gIH1cblxuICBpZiAoY29udGVudCkge1xuICAgIGlmIChzaWxlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICAgIHR5cGU6ICdjb2RlJyxcbiAgICAgIGxhbmc6IG51bGwsXG4gICAgICB2YWx1ZTogdHJpbShjb250ZW50KVxuICAgIH0pO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB0cmltID0gcmVxdWlyZSgndHJpbS10cmFpbGluZy1saW5lcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZlbmNlZENvZGU7XG5cbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX1RBQiA9ICdcXHQnO1xudmFyIENfU1BBQ0UgPSAnICc7XG52YXIgQ19USUxERSA9ICd+JztcbnZhciBDX1RJQ0sgPSAnYCc7XG5cbnZhciBNSU5fRkVOQ0VfQ09VTlQgPSAzO1xudmFyIENPREVfSU5ERU5UX0NPVU5UID0gNDtcblxuZnVuY3Rpb24gZmVuY2VkQ29kZShlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgc2V0dGluZ3MgPSBzZWxmLm9wdGlvbnM7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGggKyAxO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgc3VidmFsdWUgPSAnJztcbiAgdmFyIGZlbmNlQ291bnQ7XG4gIHZhciBtYXJrZXI7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBmbGFnO1xuICB2YXIgcXVldWU7XG4gIHZhciBjb250ZW50O1xuICB2YXIgZXhkZW50ZWRDb250ZW50O1xuICB2YXIgY2xvc2luZztcbiAgdmFyIGV4ZGVudGVkQ2xvc2luZztcbiAgdmFyIGluZGVudDtcbiAgdmFyIG5vdztcblxuICBpZiAoIXNldHRpbmdzLmdmbSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qIEVhdCBpbml0aWFsIHNwYWNpbmcuICovXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmIGNoYXJhY3RlciAhPT0gQ19UQUIpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaW5kZW50ID0gaW5kZXg7XG5cbiAgLyogRWF0IHRoZSBmZW5jZS4gKi9cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICBpZiAoY2hhcmFjdGVyICE9PSBDX1RJTERFICYmIGNoYXJhY3RlciAhPT0gQ19USUNLKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaW5kZXgrKztcbiAgbWFya2VyID0gY2hhcmFjdGVyO1xuICBmZW5jZUNvdW50ID0gMTtcbiAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBtYXJrZXIpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICBmZW5jZUNvdW50Kys7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChmZW5jZUNvdW50IDwgTUlOX0ZFTkNFX0NPVU5UKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyogRWF0IHNwYWNpbmcgYmVmb3JlIGZsYWcuICovXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmIGNoYXJhY3RlciAhPT0gQ19UQUIpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgLyogRWF0IGZsYWcuICovXG4gIGZsYWcgPSAnJztcbiAgcXVldWUgPSAnJztcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKFxuICAgICAgY2hhcmFjdGVyID09PSBDX05FV0xJTkUgfHxcbiAgICAgIGNoYXJhY3RlciA9PT0gQ19USUxERSB8fFxuICAgICAgY2hhcmFjdGVyID09PSBDX1RJQ0tcbiAgICApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChjaGFyYWN0ZXIgPT09IENfU1BBQ0UgfHwgY2hhcmFjdGVyID09PSBDX1RBQikge1xuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBmbGFnICs9IHF1ZXVlICsgY2hhcmFjdGVyO1xuICAgICAgcXVldWUgPSAnJztcbiAgICB9XG5cbiAgICBpbmRleCsrO1xuICB9XG5cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICBpZiAoY2hhcmFjdGVyICYmIGNoYXJhY3RlciAhPT0gQ19ORVdMSU5FKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHNpbGVudCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbm93ID0gZWF0Lm5vdygpO1xuICBub3cuY29sdW1uICs9IHN1YnZhbHVlLmxlbmd0aDtcbiAgbm93Lm9mZnNldCArPSBzdWJ2YWx1ZS5sZW5ndGg7XG5cbiAgc3VidmFsdWUgKz0gZmxhZztcbiAgZmxhZyA9IHNlbGYuZGVjb2RlLnJhdyhzZWxmLnVuZXNjYXBlKGZsYWcpLCBub3cpO1xuXG4gIGlmIChxdWV1ZSkge1xuICAgIHN1YnZhbHVlICs9IHF1ZXVlO1xuICB9XG5cbiAgcXVldWUgPSAnJztcbiAgY2xvc2luZyA9ICcnO1xuICBleGRlbnRlZENsb3NpbmcgPSAnJztcbiAgY29udGVudCA9ICcnO1xuICBleGRlbnRlZENvbnRlbnQgPSAnJztcblxuICAvKiBFYXQgY29udGVudC4gKi9cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICBjb250ZW50ICs9IGNsb3Npbmc7XG4gICAgZXhkZW50ZWRDb250ZW50ICs9IGV4ZGVudGVkQ2xvc2luZztcbiAgICBjbG9zaW5nID0gJyc7XG4gICAgZXhkZW50ZWRDbG9zaW5nID0gJyc7XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSBDX05FV0xJTkUpIHtcbiAgICAgIGNvbnRlbnQgKz0gY2hhcmFjdGVyO1xuICAgICAgZXhkZW50ZWRDbG9zaW5nICs9IGNoYXJhY3RlcjtcbiAgICAgIGluZGV4Kys7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICAvKiBBZGQgdGhlIG5ld2xpbmUgdG8gYHN1YnZhbHVlYCBpZiBpdHMgdGhlIGZpcnN0XG4gICAgICogY2hhcmFjdGVyLiAgT3RoZXJ3aXNlLCBhZGQgaXQgdG8gdGhlIGBjbG9zaW5nYFxuICAgICAqIHF1ZXVlLiAqL1xuICAgIGlmIChjb250ZW50KSB7XG4gICAgICBjbG9zaW5nICs9IGNoYXJhY3RlcjtcbiAgICAgIGV4ZGVudGVkQ2xvc2luZyArPSBjaGFyYWN0ZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICB9XG5cbiAgICBxdWV1ZSA9ICcnO1xuICAgIGluZGV4Kys7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgIT09IENfU1BBQ0UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgY2xvc2luZyArPSBxdWV1ZTtcbiAgICBleGRlbnRlZENsb3NpbmcgKz0gcXVldWUuc2xpY2UoaW5kZW50KTtcblxuICAgIGlmIChxdWV1ZS5sZW5ndGggPj0gQ09ERV9JTkRFTlRfQ09VTlQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHF1ZXVlID0gJyc7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgIT09IG1hcmtlcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBjbG9zaW5nICs9IHF1ZXVlO1xuICAgIGV4ZGVudGVkQ2xvc2luZyArPSBxdWV1ZTtcblxuICAgIGlmIChxdWV1ZS5sZW5ndGggPCBmZW5jZUNvdW50KSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBxdWV1ZSA9ICcnO1xuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmIGNoYXJhY3RlciAhPT0gQ19UQUIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNsb3NpbmcgKz0gY2hhcmFjdGVyO1xuICAgICAgZXhkZW50ZWRDbG9zaW5nICs9IGNoYXJhY3RlcjtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKCFjaGFyYWN0ZXIgfHwgY2hhcmFjdGVyID09PSBDX05FV0xJTkUpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHN1YnZhbHVlICs9IGNvbnRlbnQgKyBjbG9zaW5nO1xuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICB0eXBlOiAnY29kZScsXG4gICAgbGFuZzogZmxhZyB8fCBudWxsLFxuICAgIHZhbHVlOiB0cmltKGV4ZGVudGVkQ29udGVudClcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaW50ZXJydXB0O1xuXG5mdW5jdGlvbiBpbnRlcnJ1cHQoaW50ZXJydXB0b3JzLCB0b2tlbml6ZXJzLCBjdHgsIHBhcmFtcykge1xuICB2YXIgYm9vbHMgPSBbJ3BlZGFudGljJywgJ2NvbW1vbm1hcmsnXTtcbiAgdmFyIGNvdW50ID0gYm9vbHMubGVuZ3RoO1xuICB2YXIgbGVuZ3RoID0gaW50ZXJydXB0b3JzLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBpbnRlcnJ1cHRvcjtcbiAgdmFyIGNvbmZpZztcbiAgdmFyIGZuO1xuICB2YXIgb2Zmc2V0O1xuICB2YXIgYm9vbDtcbiAgdmFyIGlnbm9yZTtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGludGVycnVwdG9yID0gaW50ZXJydXB0b3JzW2luZGV4XTtcbiAgICBjb25maWcgPSBpbnRlcnJ1cHRvclsxXSB8fCB7fTtcbiAgICBmbiA9IGludGVycnVwdG9yWzBdO1xuICAgIG9mZnNldCA9IC0xO1xuICAgIGlnbm9yZSA9IGZhbHNlO1xuXG4gICAgd2hpbGUgKCsrb2Zmc2V0IDwgY291bnQpIHtcbiAgICAgIGJvb2wgPSBib29sc1tvZmZzZXRdO1xuXG4gICAgICBpZiAoY29uZmlnW2Jvb2xdICE9PSB1bmRlZmluZWQgJiYgY29uZmlnW2Jvb2xdICE9PSBjdHgub3B0aW9uc1tib29sXSkge1xuICAgICAgICBpZ25vcmUgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaWdub3JlKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodG9rZW5pemVyc1tmbl0uYXBwbHkoY3R4LCBwYXJhbXMpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB0cmltID0gcmVxdWlyZSgndHJpbScpO1xudmFyIGludGVycnVwdCA9IHJlcXVpcmUoJy4uL3V0aWwvaW50ZXJydXB0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmxvY2txdW90ZTtcblxudmFyIENfTkVXTElORSA9ICdcXG4nO1xudmFyIENfVEFCID0gJ1xcdCc7XG52YXIgQ19TUEFDRSA9ICcgJztcbnZhciBDX0dUID0gJz4nO1xuXG4vKiBUb2tlbmlzZSBhIGJsb2NrcXVvdGUuICovXG5mdW5jdGlvbiBibG9ja3F1b3RlKGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBvZmZzZXRzID0gc2VsZi5vZmZzZXQ7XG4gIHZhciB0b2tlbml6ZXJzID0gc2VsZi5ibG9ja1Rva2VuaXplcnM7XG4gIHZhciBpbnRlcnJ1cHRvcnMgPSBzZWxmLmludGVycnVwdEJsb2NrcXVvdGU7XG4gIHZhciBub3cgPSBlYXQubm93KCk7XG4gIHZhciBjdXJyZW50TGluZSA9IG5vdy5saW5lO1xuICB2YXIgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICB2YXIgdmFsdWVzID0gW107XG4gIHZhciBjb250ZW50cyA9IFtdO1xuICB2YXIgaW5kZW50cyA9IFtdO1xuICB2YXIgYWRkO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgcmVzdDtcbiAgdmFyIG5leHRJbmRleDtcbiAgdmFyIGNvbnRlbnQ7XG4gIHZhciBsaW5lO1xuICB2YXIgc3RhcnRJbmRleDtcbiAgdmFyIHByZWZpeGVkO1xuICB2YXIgZXhpdDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19TUEFDRSAmJiBjaGFyYWN0ZXIgIT09IENfVEFCKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgIT09IENfR1QpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpbmRleCA9IDA7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgbmV4dEluZGV4ID0gdmFsdWUuaW5kZXhPZihDX05FV0xJTkUsIGluZGV4KTtcbiAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgcHJlZml4ZWQgPSBmYWxzZTtcblxuICAgIGlmIChuZXh0SW5kZXggPT09IC0xKSB7XG4gICAgICBuZXh0SW5kZXggPSBsZW5ndGg7XG4gICAgfVxuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmIGNoYXJhY3RlciAhPT0gQ19UQUIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgPT09IENfR1QpIHtcbiAgICAgIGluZGV4Kys7XG4gICAgICBwcmVmaXhlZCA9IHRydWU7XG5cbiAgICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXgpID09PSBDX1NQQUNFKSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZGV4ID0gc3RhcnRJbmRleDtcbiAgICB9XG5cbiAgICBjb250ZW50ID0gdmFsdWUuc2xpY2UoaW5kZXgsIG5leHRJbmRleCk7XG5cbiAgICBpZiAoIXByZWZpeGVkICYmICF0cmltKGNvbnRlbnQpKSB7XG4gICAgICBpbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIXByZWZpeGVkKSB7XG4gICAgICByZXN0ID0gdmFsdWUuc2xpY2UoaW5kZXgpO1xuXG4gICAgICAvKiBDaGVjayBpZiB0aGUgZm9sbG93aW5nIGNvZGUgY29udGFpbnMgYSBwb3NzaWJsZVxuICAgICAgICogYmxvY2suICovXG4gICAgICBpZiAoaW50ZXJydXB0KGludGVycnVwdG9ycywgdG9rZW5pemVycywgc2VsZiwgW2VhdCwgcmVzdCwgdHJ1ZV0pKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxpbmUgPSBzdGFydEluZGV4ID09PSBpbmRleCA/IGNvbnRlbnQgOiB2YWx1ZS5zbGljZShzdGFydEluZGV4LCBuZXh0SW5kZXgpO1xuXG4gICAgaW5kZW50cy5wdXNoKGluZGV4IC0gc3RhcnRJbmRleCk7XG4gICAgdmFsdWVzLnB1c2gobGluZSk7XG4gICAgY29udGVudHMucHVzaChjb250ZW50KTtcblxuICAgIGluZGV4ID0gbmV4dEluZGV4ICsgMTtcbiAgfVxuXG4gIGluZGV4ID0gLTE7XG4gIGxlbmd0aCA9IGluZGVudHMubGVuZ3RoO1xuICBhZGQgPSBlYXQodmFsdWVzLmpvaW4oQ19ORVdMSU5FKSk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBvZmZzZXRzW2N1cnJlbnRMaW5lXSA9IChvZmZzZXRzW2N1cnJlbnRMaW5lXSB8fCAwKSArIGluZGVudHNbaW5kZXhdO1xuICAgIGN1cnJlbnRMaW5lKys7XG4gIH1cblxuICBleGl0ID0gc2VsZi5lbnRlckJsb2NrKCk7XG4gIGNvbnRlbnRzID0gc2VsZi50b2tlbml6ZUJsb2NrKGNvbnRlbnRzLmpvaW4oQ19ORVdMSU5FKSwgbm93KTtcbiAgZXhpdCgpO1xuXG4gIHJldHVybiBhZGQoe1xuICAgIHR5cGU6ICdibG9ja3F1b3RlJyxcbiAgICBjaGlsZHJlbjogY29udGVudHNcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gYXR4SGVhZGluZztcblxudmFyIENfTkVXTElORSA9ICdcXG4nO1xudmFyIENfVEFCID0gJ1xcdCc7XG52YXIgQ19TUEFDRSA9ICcgJztcbnZhciBDX0hBU0ggPSAnIyc7XG5cbnZhciBNQVhfQVRYX0NPVU5UID0gNjtcblxuZnVuY3Rpb24gYXR4SGVhZGluZyhlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgc2V0dGluZ3MgPSBzZWxmLm9wdGlvbnM7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGggKyAxO1xuICB2YXIgaW5kZXggPSAtMTtcbiAgdmFyIG5vdyA9IGVhdC5ub3coKTtcbiAgdmFyIHN1YnZhbHVlID0gJyc7XG4gIHZhciBjb250ZW50ID0gJyc7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBxdWV1ZTtcbiAgdmFyIGRlcHRoO1xuXG4gIC8qIEVhdCBpbml0aWFsIHNwYWNpbmcuICovXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgIT09IENfU1BBQ0UgJiYgY2hhcmFjdGVyICE9PSBDX1RBQikge1xuICAgICAgaW5kZXgtLTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgfVxuXG4gIC8qIEVhdCBoYXNoZXMuICovXG4gIGRlcHRoID0gMDtcblxuICB3aGlsZSAoKytpbmRleCA8PSBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19IQVNIKSB7XG4gICAgICBpbmRleC0tO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICAgIGRlcHRoKys7XG4gIH1cblxuICBpZiAoZGVwdGggPiBNQVhfQVRYX0NPVU5UKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKFxuICAgICFkZXB0aCB8fFxuICAgICghc2V0dGluZ3MucGVkYW50aWMgJiYgdmFsdWUuY2hhckF0KGluZGV4ICsgMSkgPT09IENfSEFTSClcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoICsgMTtcblxuICAvKiBFYXQgaW50ZXJtZWRpYXRlIHdoaXRlLXNwYWNlLiAqL1xuICBxdWV1ZSA9ICcnO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgIT09IENfU1BBQ0UgJiYgY2hhcmFjdGVyICE9PSBDX1RBQikge1xuICAgICAgaW5kZXgtLTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgfVxuXG4gIC8qIEV4aXQgd2hlbiBub3QgaW4gcGVkYW50aWMgbW9kZSB3aXRob3V0IHNwYWNpbmcuICovXG4gIGlmIChcbiAgICAhc2V0dGluZ3MucGVkYW50aWMgJiZcbiAgICBxdWV1ZS5sZW5ndGggPT09IDAgJiZcbiAgICBjaGFyYWN0ZXIgJiZcbiAgICBjaGFyYWN0ZXIgIT09IENfTkVXTElORVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiBFYXQgY29udGVudC4gKi9cbiAgc3VidmFsdWUgKz0gcXVldWU7XG4gIHF1ZXVlID0gJyc7XG4gIGNvbnRlbnQgPSAnJztcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoIWNoYXJhY3RlciB8fCBjaGFyYWN0ZXIgPT09IENfTkVXTElORSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmXG4gICAgICBjaGFyYWN0ZXIgIT09IENfVEFCICYmXG4gICAgICBjaGFyYWN0ZXIgIT09IENfSEFTSFxuICAgICkge1xuICAgICAgY29udGVudCArPSBxdWV1ZSArIGNoYXJhY3RlcjtcbiAgICAgIHF1ZXVlID0gJyc7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAoY2hhcmFjdGVyID09PSBDX1NQQUNFIHx8IGNoYXJhY3RlciA9PT0gQ19UQUIpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgICB9XG5cbiAgICB3aGlsZSAoY2hhcmFjdGVyID09PSBDX0hBU0gpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgICB9XG5cbiAgICB3aGlsZSAoY2hhcmFjdGVyID09PSBDX1NQQUNFIHx8IGNoYXJhY3RlciA9PT0gQ19UQUIpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgICB9XG5cbiAgICBpbmRleC0tO1xuICB9XG5cbiAgbm93LmNvbHVtbiArPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gIG5vdy5vZmZzZXQgKz0gc3VidmFsdWUubGVuZ3RoO1xuICBzdWJ2YWx1ZSArPSBjb250ZW50ICsgcXVldWU7XG5cbiAgcmV0dXJuIGVhdChzdWJ2YWx1ZSkoe1xuICAgIHR5cGU6ICdoZWFkaW5nJyxcbiAgICBkZXB0aDogZGVwdGgsXG4gICAgY2hpbGRyZW46IHNlbGYudG9rZW5pemVJbmxpbmUoY29udGVudCwgbm93KVxuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSB0aGVtYXRpY0JyZWFrO1xuXG52YXIgQ19ORVdMSU5FID0gJ1xcbic7XG52YXIgQ19UQUIgPSAnXFx0JztcbnZhciBDX1NQQUNFID0gJyAnO1xudmFyIENfQVNURVJJU0sgPSAnKic7XG52YXIgQ19VTkRFUlNDT1JFID0gJ18nO1xudmFyIENfREFTSCA9ICctJztcblxudmFyIFRIRU1BVElDX0JSRUFLX01BUktFUl9DT1VOVCA9IDM7XG5cbmZ1bmN0aW9uIHRoZW1hdGljQnJlYWsoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgbGVuZ3RoID0gdmFsdWUubGVuZ3RoICsgMTtcbiAgdmFyIHN1YnZhbHVlID0gJyc7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBtYXJrZXI7XG4gIHZhciBtYXJrZXJDb3VudDtcbiAgdmFyIHF1ZXVlO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgIT09IENfVEFCICYmIGNoYXJhY3RlciAhPT0gQ19TUEFDRSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICB9XG5cbiAgaWYgKFxuICAgIGNoYXJhY3RlciAhPT0gQ19BU1RFUklTSyAmJlxuICAgIGNoYXJhY3RlciAhPT0gQ19EQVNIICYmXG4gICAgY2hhcmFjdGVyICE9PSBDX1VOREVSU0NPUkVcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbWFya2VyID0gY2hhcmFjdGVyO1xuICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gIG1hcmtlckNvdW50ID0gMTtcbiAgcXVldWUgPSAnJztcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBtYXJrZXIpIHtcbiAgICAgIG1hcmtlckNvdW50Kys7XG4gICAgICBzdWJ2YWx1ZSArPSBxdWV1ZSArIG1hcmtlcjtcbiAgICAgIHF1ZXVlID0gJyc7XG4gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfU1BBQ0UpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbWFya2VyQ291bnQgPj0gVEhFTUFUSUNfQlJFQUtfTUFSS0VSX0NPVU5UICYmXG4gICAgICAoIWNoYXJhY3RlciB8fCBjaGFyYWN0ZXIgPT09IENfTkVXTElORSlcbiAgICApIHtcbiAgICAgIHN1YnZhbHVlICs9IHF1ZXVlO1xuXG4gICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWF0KHN1YnZhbHVlKSh7dHlwZTogJ3RoZW1hdGljQnJlYWsnfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBpbmRlbnRhdGlvbjtcblxuLyogTWFwIG9mIGNoYXJhY3RlcnMsIGFuZCB0aGVpciBjb2x1bW4gbGVuZ3RoLFxuICogd2hpY2ggY2FuIGJlIHVzZWQgYXMgaW5kZW50YXRpb24uICovXG52YXIgY2hhcmFjdGVycyA9IHsnICc6IDEsICdcXHQnOiA0fTtcblxuLyogR2V0cyBpbmRlbnRhdGlvbiBpbmZvcm1hdGlvbiBmb3IgYSBsaW5lLiAqL1xuZnVuY3Rpb24gaW5kZW50YXRpb24odmFsdWUpIHtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGluZGVudCA9IDA7XG4gIHZhciBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuICB2YXIgc3RvcHMgPSB7fTtcbiAgdmFyIHNpemU7XG5cbiAgd2hpbGUgKGNoYXJhY3RlciBpbiBjaGFyYWN0ZXJzKSB7XG4gICAgc2l6ZSA9IGNoYXJhY3RlcnNbY2hhcmFjdGVyXTtcblxuICAgIGluZGVudCArPSBzaXplO1xuXG4gICAgaWYgKHNpemUgPiAxKSB7XG4gICAgICBpbmRlbnQgPSBNYXRoLmZsb29yKGluZGVudCAvIHNpemUpICogc2l6ZTtcbiAgICB9XG5cbiAgICBzdG9wc1tpbmRlbnRdID0gaW5kZXg7XG5cbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoKytpbmRleCk7XG4gIH1cblxuICByZXR1cm4ge2luZGVudDogaW5kZW50LCBzdG9wczogc3RvcHN9O1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdHJpbSA9IHJlcXVpcmUoJ3RyaW0nKTtcbnZhciByZXBlYXQgPSByZXF1aXJlKCdyZXBlYXQtc3RyaW5nJyk7XG52YXIgZ2V0SW5kZW50ID0gcmVxdWlyZSgnLi9nZXQtaW5kZW50YXRpb24nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbmRlbnRhdGlvbjtcblxudmFyIENfU1BBQ0UgPSAnICc7XG52YXIgQ19ORVdMSU5FID0gJ1xcbic7XG52YXIgQ19UQUIgPSAnXFx0JztcblxuLyogUmVtb3ZlIHRoZSBtaW5pbXVtIGluZGVudCBmcm9tIGV2ZXJ5IGxpbmUgaW4gYHZhbHVlYC5cbiAqIFN1cHBvcnRzIGJvdGggdGFiLCBzcGFjZWQsIGFuZCBtaXhlZCBpbmRlbnRhdGlvbiAoYXNcbiAqIHdlbGwgYXMgcG9zc2libGUpLiAqL1xuZnVuY3Rpb24gaW5kZW50YXRpb24odmFsdWUsIG1heGltdW0pIHtcbiAgdmFyIHZhbHVlcyA9IHZhbHVlLnNwbGl0KENfTkVXTElORSk7XG4gIHZhciBwb3NpdGlvbiA9IHZhbHVlcy5sZW5ndGggKyAxO1xuICB2YXIgbWluSW5kZW50ID0gSW5maW5pdHk7XG4gIHZhciBtYXRyaXggPSBbXTtcbiAgdmFyIGluZGV4O1xuICB2YXIgaW5kZW50YXRpb247XG4gIHZhciBzdG9wcztcbiAgdmFyIHBhZGRpbmc7XG5cbiAgdmFsdWVzLnVuc2hpZnQocmVwZWF0KENfU1BBQ0UsIG1heGltdW0pICsgJyEnKTtcblxuICB3aGlsZSAocG9zaXRpb24tLSkge1xuICAgIGluZGVudGF0aW9uID0gZ2V0SW5kZW50KHZhbHVlc1twb3NpdGlvbl0pO1xuXG4gICAgbWF0cml4W3Bvc2l0aW9uXSA9IGluZGVudGF0aW9uLnN0b3BzO1xuXG4gICAgaWYgKHRyaW0odmFsdWVzW3Bvc2l0aW9uXSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZW50YXRpb24uaW5kZW50KSB7XG4gICAgICBpZiAoaW5kZW50YXRpb24uaW5kZW50ID4gMCAmJiBpbmRlbnRhdGlvbi5pbmRlbnQgPCBtaW5JbmRlbnQpIHtcbiAgICAgICAgbWluSW5kZW50ID0gaW5kZW50YXRpb24uaW5kZW50O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW5JbmRlbnQgPSBJbmZpbml0eTtcblxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKG1pbkluZGVudCAhPT0gSW5maW5pdHkpIHtcbiAgICBwb3NpdGlvbiA9IHZhbHVlcy5sZW5ndGg7XG5cbiAgICB3aGlsZSAocG9zaXRpb24tLSkge1xuICAgICAgc3RvcHMgPSBtYXRyaXhbcG9zaXRpb25dO1xuICAgICAgaW5kZXggPSBtaW5JbmRlbnQ7XG5cbiAgICAgIHdoaWxlIChpbmRleCAmJiAhKGluZGV4IGluIHN0b3BzKSkge1xuICAgICAgICBpbmRleC0tO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIHRyaW0odmFsdWVzW3Bvc2l0aW9uXSkubGVuZ3RoICE9PSAwICYmXG4gICAgICAgIG1pbkluZGVudCAmJlxuICAgICAgICBpbmRleCAhPT0gbWluSW5kZW50XG4gICAgICApIHtcbiAgICAgICAgcGFkZGluZyA9IENfVEFCO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFkZGluZyA9ICcnO1xuICAgICAgfVxuXG4gICAgICB2YWx1ZXNbcG9zaXRpb25dID0gcGFkZGluZyArIHZhbHVlc1twb3NpdGlvbl0uc2xpY2UoXG4gICAgICAgIGluZGV4IGluIHN0b3BzID8gc3RvcHNbaW5kZXhdICsgMSA6IDBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVzLnNoaWZ0KCk7XG5cbiAgcmV0dXJuIHZhbHVlcy5qb2luKENfTkVXTElORSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1wYXJhbXMgKi9cblxudmFyIHRyaW0gPSByZXF1aXJlKCd0cmltJyk7XG52YXIgcmVwZWF0ID0gcmVxdWlyZSgncmVwZWF0LXN0cmluZycpO1xudmFyIGRlY2ltYWwgPSByZXF1aXJlKCdpcy1kZWNpbWFsJyk7XG52YXIgZ2V0SW5kZW50ID0gcmVxdWlyZSgnLi4vdXRpbC9nZXQtaW5kZW50YXRpb24nKTtcbnZhciByZW1vdmVJbmRlbnQgPSByZXF1aXJlKCcuLi91dGlsL3JlbW92ZS1pbmRlbnRhdGlvbicpO1xudmFyIGludGVycnVwdCA9IHJlcXVpcmUoJy4uL3V0aWwvaW50ZXJydXB0Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbGlzdDtcblxudmFyIENfQVNURVJJU0sgPSAnKic7XG52YXIgQ19VTkRFUlNDT1JFID0gJ18nO1xudmFyIENfUExVUyA9ICcrJztcbnZhciBDX0RBU0ggPSAnLSc7XG52YXIgQ19ET1QgPSAnLic7XG52YXIgQ19TUEFDRSA9ICcgJztcbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX1RBQiA9ICdcXHQnO1xudmFyIENfUEFSRU5fQ0xPU0UgPSAnKSc7XG52YXIgQ19YX0xPV0VSID0gJ3gnO1xuXG52YXIgVEFCX1NJWkUgPSA0O1xudmFyIEVYUFJFU1NJT05fTE9PU0VfTElTVF9JVEVNID0gL1xcblxcbig/IVxccyokKS87XG52YXIgRVhQUkVTU0lPTl9UQVNLX0lURU0gPSAvXlxcWyhbIFxcdF18eHxYKV1bIFxcdF0vO1xudmFyIEVYUFJFU1NJT05fQlVMTEVUID0gL14oWyBcXHRdKikoWyorLV18XFxkK1suKV0pKCB7MSw0fSg/ISApfCB8XFx0fCR8KD89XFxuKSkoW15cXG5dKikvO1xudmFyIEVYUFJFU1NJT05fUEVEQU5USUNfQlVMTEVUID0gL14oWyBcXHRdKikoWyorLV18XFxkK1suKV0pKFsgXFx0XSspLztcbnZhciBFWFBSRVNTSU9OX0lOSVRJQUxfSU5ERU5UID0gL14oIHsxLDR9fFxcdCk/L2dtO1xuXG4vKiBNYXAgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXNlZCB0byBtYXJrXG4gKiBsaXN0LWl0ZW1zLiAqL1xudmFyIExJU1RfVU5PUkRFUkVEX01BUktFUlMgPSB7fTtcblxuTElTVF9VTk9SREVSRURfTUFSS0VSU1tDX0FTVEVSSVNLXSA9IHRydWU7XG5MSVNUX1VOT1JERVJFRF9NQVJLRVJTW0NfUExVU10gPSB0cnVlO1xuTElTVF9VTk9SREVSRURfTUFSS0VSU1tDX0RBU0hdID0gdHJ1ZTtcblxuLyogTWFwIG9mIGNoYXJhY3RlcnMgd2hpY2ggY2FuIGJlIHVzZWQgdG8gbWFya1xuICogbGlzdC1pdGVtcyBhZnRlciBhIGRpZ2l0LiAqL1xudmFyIExJU1RfT1JERVJFRF9NQVJLRVJTID0ge307XG5cbkxJU1RfT1JERVJFRF9NQVJLRVJTW0NfRE9UXSA9IHRydWU7XG5cbi8qIE1hcCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG1hcmtcbiAqIGxpc3QtaXRlbXMgYWZ0ZXIgYSBkaWdpdC4gKi9cbnZhciBMSVNUX09SREVSRURfQ09NTU9OTUFSS19NQVJLRVJTID0ge307XG5cbkxJU1RfT1JERVJFRF9DT01NT05NQVJLX01BUktFUlNbQ19ET1RdID0gdHJ1ZTtcbkxJU1RfT1JERVJFRF9DT01NT05NQVJLX01BUktFUlNbQ19QQVJFTl9DTE9TRV0gPSB0cnVlO1xuXG5mdW5jdGlvbiBsaXN0KGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjb21tb25tYXJrID0gc2VsZi5vcHRpb25zLmNvbW1vbm1hcms7XG4gIHZhciBwZWRhbnRpYyA9IHNlbGYub3B0aW9ucy5wZWRhbnRpYztcbiAgdmFyIHRva2VuaXplcnMgPSBzZWxmLmJsb2NrVG9rZW5pemVycztcbiAgdmFyIGludGVydXB0b3JzID0gc2VsZi5pbnRlcnJ1cHRMaXN0O1xuICB2YXIgbWFya2VycztcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgdmFyIHN0YXJ0ID0gbnVsbDtcbiAgdmFyIHNpemUgPSAwO1xuICB2YXIgcXVldWU7XG4gIHZhciBvcmRlcmVkO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgbWFya2VyO1xuICB2YXIgbmV4dEluZGV4O1xuICB2YXIgc3RhcnRJbmRleDtcbiAgdmFyIHByZWZpeGVkO1xuICB2YXIgY3VycmVudE1hcmtlcjtcbiAgdmFyIGNvbnRlbnQ7XG4gIHZhciBsaW5lO1xuICB2YXIgcHJldkVtcHR5O1xuICB2YXIgZW1wdHk7XG4gIHZhciBpdGVtcztcbiAgdmFyIGFsbExpbmVzO1xuICB2YXIgZW1wdHlMaW5lcztcbiAgdmFyIGl0ZW07XG4gIHZhciBlbnRlclRvcDtcbiAgdmFyIGV4aXRCbG9ja3F1b3RlO1xuICB2YXIgaXNMb29zZTtcbiAgdmFyIG5vZGU7XG4gIHZhciBub3c7XG4gIHZhciBlbmQ7XG4gIHZhciBpbmRlbnRlZDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciA9PT0gQ19UQUIpIHtcbiAgICAgIHNpemUgKz0gVEFCX1NJWkUgLSAoc2l6ZSAlIFRBQl9TSVpFKTtcbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19TUEFDRSkge1xuICAgICAgc2l6ZSsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaWYgKHNpemUgPj0gVEFCX1NJWkUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gIG1hcmtlcnMgPSBjb21tb25tYXJrID9cbiAgICBMSVNUX09SREVSRURfQ09NTU9OTUFSS19NQVJLRVJTIDpcbiAgICBMSVNUX09SREVSRURfTUFSS0VSUztcblxuICBpZiAoTElTVF9VTk9SREVSRURfTUFSS0VSU1tjaGFyYWN0ZXJdID09PSB0cnVlKSB7XG4gICAgbWFya2VyID0gY2hhcmFjdGVyO1xuICAgIG9yZGVyZWQgPSBmYWxzZTtcbiAgfSBlbHNlIHtcbiAgICBvcmRlcmVkID0gdHJ1ZTtcbiAgICBxdWV1ZSA9ICcnO1xuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoIWRlY2ltYWwoY2hhcmFjdGVyKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKCFxdWV1ZSB8fCBtYXJrZXJzW2NoYXJhY3Rlcl0gIT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdGFydCA9IHBhcnNlSW50KHF1ZXVlLCAxMCk7XG4gICAgbWFya2VyID0gY2hhcmFjdGVyO1xuICB9XG5cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuXG4gIGlmIChjaGFyYWN0ZXIgIT09IENfU1BBQ0UgJiYgY2hhcmFjdGVyICE9PSBDX1RBQikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGluZGV4ID0gMDtcbiAgaXRlbXMgPSBbXTtcbiAgYWxsTGluZXMgPSBbXTtcbiAgZW1wdHlMaW5lcyA9IFtdO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIG5leHRJbmRleCA9IHZhbHVlLmluZGV4T2YoQ19ORVdMSU5FLCBpbmRleCk7XG4gICAgc3RhcnRJbmRleCA9IGluZGV4O1xuICAgIHByZWZpeGVkID0gZmFsc2U7XG4gICAgaW5kZW50ZWQgPSBmYWxzZTtcblxuICAgIGlmIChuZXh0SW5kZXggPT09IC0xKSB7XG4gICAgICBuZXh0SW5kZXggPSBsZW5ndGg7XG4gICAgfVxuXG4gICAgZW5kID0gaW5kZXggKyBUQUJfU0laRTtcbiAgICBzaXplID0gMDtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19UQUIpIHtcbiAgICAgICAgc2l6ZSArPSBUQUJfU0laRSAtIChzaXplICUgVEFCX1NJWkUpO1xuICAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfU1BBQ0UpIHtcbiAgICAgICAgc2l6ZSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgaWYgKHNpemUgPj0gVEFCX1NJWkUpIHtcbiAgICAgIGluZGVudGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXRlbSAmJiBzaXplID49IGl0ZW0uaW5kZW50KSB7XG4gICAgICBpbmRlbnRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICBjdXJyZW50TWFya2VyID0gbnVsbDtcblxuICAgIGlmICghaW5kZW50ZWQpIHtcbiAgICAgIGlmIChMSVNUX1VOT1JERVJFRF9NQVJLRVJTW2NoYXJhY3Rlcl0gPT09IHRydWUpIHtcbiAgICAgICAgY3VycmVudE1hcmtlciA9IGNoYXJhY3RlcjtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgc2l6ZSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWUgPSAnJztcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICAgICAgaWYgKCFkZWNpbWFsKGNoYXJhY3RlcikpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICAgICAgaW5kZXgrKztcblxuICAgICAgICBpZiAocXVldWUgJiYgbWFya2Vyc1tjaGFyYWN0ZXJdID09PSB0cnVlKSB7XG4gICAgICAgICAgY3VycmVudE1hcmtlciA9IGNoYXJhY3RlcjtcbiAgICAgICAgICBzaXplICs9IHF1ZXVlLmxlbmd0aCArIDE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGN1cnJlbnRNYXJrZXIpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgICBpZiAoY2hhcmFjdGVyID09PSBDX1RBQikge1xuICAgICAgICAgIHNpemUgKz0gVEFCX1NJWkUgLSAoc2l6ZSAlIFRBQl9TSVpFKTtcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19TUEFDRSkge1xuICAgICAgICAgIGVuZCA9IGluZGV4ICsgVEFCX1NJWkU7XG5cbiAgICAgICAgICB3aGlsZSAoaW5kZXggPCBlbmQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXgpICE9PSBDX1NQQUNFKSB7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgc2l6ZSsrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpbmRleCA9PT0gZW5kICYmIHZhbHVlLmNoYXJBdChpbmRleCkgPT09IENfU1BBQ0UpIHtcbiAgICAgICAgICAgIGluZGV4IC09IFRBQl9TSVpFIC0gMTtcbiAgICAgICAgICAgIHNpemUgLT0gVEFCX1NJWkUgLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgIT09IENfTkVXTElORSAmJiBjaGFyYWN0ZXIgIT09ICcnKSB7XG4gICAgICAgICAgY3VycmVudE1hcmtlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudE1hcmtlcikge1xuICAgICAgaWYgKCFwZWRhbnRpYyAmJiBtYXJrZXIgIT09IGN1cnJlbnRNYXJrZXIpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHByZWZpeGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFjb21tb25tYXJrICYmICFpbmRlbnRlZCAmJiB2YWx1ZS5jaGFyQXQoc3RhcnRJbmRleCkgPT09IENfU1BBQ0UpIHtcbiAgICAgICAgaW5kZW50ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmIChjb21tb25tYXJrICYmIGl0ZW0pIHtcbiAgICAgICAgaW5kZW50ZWQgPSBzaXplID49IGl0ZW0uaW5kZW50IHx8IHNpemUgPiBUQUJfU0laRTtcbiAgICAgIH1cblxuICAgICAgcHJlZml4ZWQgPSBmYWxzZTtcbiAgICAgIGluZGV4ID0gc3RhcnRJbmRleDtcbiAgICB9XG5cbiAgICBsaW5lID0gdmFsdWUuc2xpY2Uoc3RhcnRJbmRleCwgbmV4dEluZGV4KTtcbiAgICBjb250ZW50ID0gc3RhcnRJbmRleCA9PT0gaW5kZXggPyBsaW5lIDogdmFsdWUuc2xpY2UoaW5kZXgsIG5leHRJbmRleCk7XG5cbiAgICBpZiAoXG4gICAgICBjdXJyZW50TWFya2VyID09PSBDX0FTVEVSSVNLIHx8XG4gICAgICBjdXJyZW50TWFya2VyID09PSBDX1VOREVSU0NPUkUgfHxcbiAgICAgIGN1cnJlbnRNYXJrZXIgPT09IENfREFTSFxuICAgICkge1xuICAgICAgaWYgKHRva2VuaXplcnMudGhlbWF0aWNCcmVhay5jYWxsKHNlbGYsIGVhdCwgbGluZSwgdHJ1ZSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJldkVtcHR5ID0gZW1wdHk7XG4gICAgZW1wdHkgPSAhdHJpbShjb250ZW50KS5sZW5ndGg7XG5cbiAgICBpZiAoaW5kZW50ZWQgJiYgaXRlbSkge1xuICAgICAgaXRlbS52YWx1ZSA9IGl0ZW0udmFsdWUuY29uY2F0KGVtcHR5TGluZXMsIGxpbmUpO1xuICAgICAgYWxsTGluZXMgPSBhbGxMaW5lcy5jb25jYXQoZW1wdHlMaW5lcywgbGluZSk7XG4gICAgICBlbXB0eUxpbmVzID0gW107XG4gICAgfSBlbHNlIGlmIChwcmVmaXhlZCkge1xuICAgICAgaWYgKGVtcHR5TGluZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGl0ZW0udmFsdWUucHVzaCgnJyk7XG4gICAgICAgIGl0ZW0udHJhaWwgPSBlbXB0eUxpbmVzLmNvbmNhdCgpO1xuICAgICAgfVxuXG4gICAgICBpdGVtID0ge1xuICAgICAgICB2YWx1ZTogW2xpbmVdLFxuICAgICAgICBpbmRlbnQ6IHNpemUsXG4gICAgICAgIHRyYWlsOiBbXVxuICAgICAgfTtcblxuICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIGFsbExpbmVzID0gYWxsTGluZXMuY29uY2F0KGVtcHR5TGluZXMsIGxpbmUpO1xuICAgICAgZW1wdHlMaW5lcyA9IFtdO1xuICAgIH0gZWxzZSBpZiAoZW1wdHkpIHtcbiAgICAgIGlmIChwcmV2RW1wdHkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGVtcHR5TGluZXMucHVzaChsaW5lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHByZXZFbXB0eSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGludGVycnVwdChpbnRlcnVwdG9ycywgdG9rZW5pemVycywgc2VsZiwgW2VhdCwgbGluZSwgdHJ1ZV0pKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpdGVtLnZhbHVlID0gaXRlbS52YWx1ZS5jb25jYXQoZW1wdHlMaW5lcywgbGluZSk7XG4gICAgICBhbGxMaW5lcyA9IGFsbExpbmVzLmNvbmNhdChlbXB0eUxpbmVzLCBsaW5lKTtcbiAgICAgIGVtcHR5TGluZXMgPSBbXTtcbiAgICB9XG5cbiAgICBpbmRleCA9IG5leHRJbmRleCArIDE7XG4gIH1cblxuICBub2RlID0gZWF0KGFsbExpbmVzLmpvaW4oQ19ORVdMSU5FKSkucmVzZXQoe1xuICAgIHR5cGU6ICdsaXN0JyxcbiAgICBvcmRlcmVkOiBvcmRlcmVkLFxuICAgIHN0YXJ0OiBzdGFydCxcbiAgICBsb29zZTogbnVsbCxcbiAgICBjaGlsZHJlbjogW11cbiAgfSk7XG5cbiAgZW50ZXJUb3AgPSBzZWxmLmVudGVyTGlzdCgpO1xuICBleGl0QmxvY2txdW90ZSA9IHNlbGYuZW50ZXJCbG9jaygpO1xuICBpc0xvb3NlID0gZmFsc2U7XG4gIGluZGV4ID0gLTE7XG4gIGxlbmd0aCA9IGl0ZW1zLmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGl0ZW0gPSBpdGVtc1tpbmRleF0udmFsdWUuam9pbihDX05FV0xJTkUpO1xuICAgIG5vdyA9IGVhdC5ub3coKTtcblxuICAgIGl0ZW0gPSBlYXQoaXRlbSkobGlzdEl0ZW0oc2VsZiwgaXRlbSwgbm93KSwgbm9kZSk7XG5cbiAgICBpZiAoaXRlbS5sb29zZSkge1xuICAgICAgaXNMb29zZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaXRlbSA9IGl0ZW1zW2luZGV4XS50cmFpbC5qb2luKENfTkVXTElORSk7XG5cbiAgICBpZiAoaW5kZXggIT09IGxlbmd0aCAtIDEpIHtcbiAgICAgIGl0ZW0gKz0gQ19ORVdMSU5FO1xuICAgIH1cblxuICAgIGVhdChpdGVtKTtcbiAgfVxuXG4gIGVudGVyVG9wKCk7XG4gIGV4aXRCbG9ja3F1b3RlKCk7XG5cbiAgbm9kZS5sb29zZSA9IGlzTG9vc2U7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIGxpc3RJdGVtKGN0eCwgdmFsdWUsIHBvc2l0aW9uKSB7XG4gIHZhciBvZmZzZXRzID0gY3R4Lm9mZnNldDtcbiAgdmFyIGZuID0gY3R4Lm9wdGlvbnMucGVkYW50aWMgPyBwZWRhbnRpY0xpc3RJdGVtIDogbm9ybWFsTGlzdEl0ZW07XG4gIHZhciBjaGVja2VkID0gbnVsbDtcbiAgdmFyIHRhc2s7XG4gIHZhciBpbmRlbnQ7XG5cbiAgdmFsdWUgPSBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuXG4gIGlmIChjdHgub3B0aW9ucy5nZm0pIHtcbiAgICB0YXNrID0gdmFsdWUubWF0Y2goRVhQUkVTU0lPTl9UQVNLX0lURU0pO1xuXG4gICAgaWYgKHRhc2spIHtcbiAgICAgIGluZGVudCA9IHRhc2tbMF0ubGVuZ3RoO1xuICAgICAgY2hlY2tlZCA9IHRhc2tbMV0udG9Mb3dlckNhc2UoKSA9PT0gQ19YX0xPV0VSO1xuICAgICAgb2Zmc2V0c1twb3NpdGlvbi5saW5lXSArPSBpbmRlbnQ7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKGluZGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnbGlzdEl0ZW0nLFxuICAgIGxvb3NlOiBFWFBSRVNTSU9OX0xPT1NFX0xJU1RfSVRFTS50ZXN0KHZhbHVlKSB8fFxuICAgICAgdmFsdWUuY2hhckF0KHZhbHVlLmxlbmd0aCAtIDEpID09PSBDX05FV0xJTkUsXG4gICAgY2hlY2tlZDogY2hlY2tlZCxcbiAgICBjaGlsZHJlbjogY3R4LnRva2VuaXplQmxvY2sodmFsdWUsIHBvc2l0aW9uKVxuICB9O1xufVxuXG4vKiBDcmVhdGUgYSBsaXN0LWl0ZW0gdXNpbmcgb3Zlcmx5IHNpbXBsZSBtZWNoYW5pY3MuICovXG5mdW5jdGlvbiBwZWRhbnRpY0xpc3RJdGVtKGN0eCwgdmFsdWUsIHBvc2l0aW9uKSB7XG4gIHZhciBvZmZzZXRzID0gY3R4Lm9mZnNldDtcbiAgdmFyIGxpbmUgPSBwb3NpdGlvbi5saW5lO1xuXG4gIC8qIFJlbW92ZSB0aGUgbGlzdC1pdGVt4oCZcyBidWxsZXQuICovXG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShFWFBSRVNTSU9OX1BFREFOVElDX0JVTExFVCwgcmVwbGFjZXIpO1xuXG4gIC8qIFRoZSBpbml0aWFsIGxpbmUgd2FzIGFsc28gbWF0Y2hlZCBieSB0aGUgYmVsb3csIHNvXG4gICAqIHdlIHJlc2V0IHRoZSBgbGluZWAuICovXG4gIGxpbmUgPSBwb3NpdGlvbi5saW5lO1xuXG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKEVYUFJFU1NJT05fSU5JVElBTF9JTkRFTlQsIHJlcGxhY2VyKTtcblxuICAvKiBBIHNpbXBsZSByZXBsYWNlciB3aGljaCByZW1vdmVkIGFsbCBtYXRjaGVzLFxuICAgKiBhbmQgYWRkcyB0aGVpciBsZW5ndGggdG8gYG9mZnNldGAuICovXG4gIGZ1bmN0aW9uIHJlcGxhY2VyKCQwKSB7XG4gICAgb2Zmc2V0c1tsaW5lXSA9IChvZmZzZXRzW2xpbmVdIHx8IDApICsgJDAubGVuZ3RoO1xuICAgIGxpbmUrKztcblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG4vKiBDcmVhdGUgYSBsaXN0LWl0ZW0gdXNpbmcgc2FuZSBtZWNoYW5pY3MuICovXG5mdW5jdGlvbiBub3JtYWxMaXN0SXRlbShjdHgsIHZhbHVlLCBwb3NpdGlvbikge1xuICB2YXIgb2Zmc2V0cyA9IGN0eC5vZmZzZXQ7XG4gIHZhciBsaW5lID0gcG9zaXRpb24ubGluZTtcbiAgdmFyIG1heDtcbiAgdmFyIGJ1bGxldDtcbiAgdmFyIHJlc3Q7XG4gIHZhciBsaW5lcztcbiAgdmFyIHRyaW1tZWRMaW5lcztcbiAgdmFyIGluZGV4O1xuICB2YXIgbGVuZ3RoO1xuXG4gIC8qIFJlbW92ZSB0aGUgbGlzdC1pdGVt4oCZcyBidWxsZXQuICovXG4gIHZhbHVlID0gdmFsdWUucmVwbGFjZShFWFBSRVNTSU9OX0JVTExFVCwgcmVwbGFjZXIpO1xuXG4gIGxpbmVzID0gdmFsdWUuc3BsaXQoQ19ORVdMSU5FKTtcblxuICB0cmltbWVkTGluZXMgPSByZW1vdmVJbmRlbnQodmFsdWUsIGdldEluZGVudChtYXgpLmluZGVudCkuc3BsaXQoQ19ORVdMSU5FKTtcblxuICAvKiBXZSByZXBsYWNlZCB0aGUgaW5pdGlhbCBidWxsZXQgd2l0aCBzb21ldGhpbmdcbiAgICogZWxzZSBhYm92ZSwgd2hpY2ggd2FzIHVzZWQgdG8gdHJpY2tcbiAgICogYHJlbW92ZUluZGVudGF0aW9uYCBpbnRvIHJlbW92aW5nIHNvbWUgbW9yZVxuICAgKiBjaGFyYWN0ZXJzIHdoZW4gcG9zc2libGUuICBIb3dldmVyLCB0aGF0IGNvdWxkXG4gICAqIHJlc3VsdCBpbiB0aGUgaW5pdGlhbCBsaW5lIHRvIGJlIHN0cmlwcGVkIG1vcmVcbiAgICogdGhhbiBpdCBzaG91bGQgYmUuICovXG4gIHRyaW1tZWRMaW5lc1swXSA9IHJlc3Q7XG5cbiAgb2Zmc2V0c1tsaW5lXSA9IChvZmZzZXRzW2xpbmVdIHx8IDApICsgYnVsbGV0Lmxlbmd0aDtcbiAgbGluZSsrO1xuXG4gIGluZGV4ID0gMDtcbiAgbGVuZ3RoID0gbGluZXMubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgb2Zmc2V0c1tsaW5lXSA9IChvZmZzZXRzW2xpbmVdIHx8IDApICtcbiAgICAgIGxpbmVzW2luZGV4XS5sZW5ndGggLSB0cmltbWVkTGluZXNbaW5kZXhdLmxlbmd0aDtcbiAgICBsaW5lKys7XG4gIH1cblxuICByZXR1cm4gdHJpbW1lZExpbmVzLmpvaW4oQ19ORVdMSU5FKTtcblxuICBmdW5jdGlvbiByZXBsYWNlcigkMCwgJDEsICQyLCAkMywgJDQpIHtcbiAgICBidWxsZXQgPSAkMSArICQyICsgJDM7XG4gICAgcmVzdCA9ICQ0O1xuXG4gICAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGZpcnN0IG5pbmUgbnVtYmVyZWQgbGlzdCBpdGVtc1xuICAgICAqIGNhbiBpbmRlbnQgd2l0aCBhbiBleHRyYSBzcGFjZS4gIFRoYXQgaXMsIHdoZW5cbiAgICAgKiB0aGUgYnVsbGV0IGRpZCBub3QgcmVjZWl2ZSBhbiBleHRyYSBmaW5hbCBzcGFjZS4gKi9cbiAgICBpZiAoTnVtYmVyKCQyKSA8IDEwICYmIGJ1bGxldC5sZW5ndGggJSAyID09PSAxKSB7XG4gICAgICAkMiA9IENfU1BBQ0UgKyAkMjtcbiAgICB9XG5cbiAgICBtYXggPSAkMSArIHJlcGVhdChDX1NQQUNFLCAkMi5sZW5ndGgpICsgJDM7XG5cbiAgICByZXR1cm4gbWF4ICsgcmVzdDtcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNldGV4dEhlYWRpbmc7XG5cbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX1RBQiA9ICdcXHQnO1xudmFyIENfU1BBQ0UgPSAnICc7XG52YXIgQ19FUVVBTFMgPSAnPSc7XG52YXIgQ19EQVNIID0gJy0nO1xuXG52YXIgTUFYX0hFQURJTkdfSU5ERU5UID0gMztcblxuLyogTWFwIG9mIGNoYXJhY3RlcnMgd2hpY2ggY2FuIGJlIHVzZWQgdG8gbWFyayBzZXRleHRcbiAqIGhlYWRlcnMsIG1hcHBpbmcgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBkZXB0aC4gKi9cbnZhciBTRVRFWFRfTUFSS0VSUyA9IHt9O1xuXG5TRVRFWFRfTUFSS0VSU1tDX0VRVUFMU10gPSAxO1xuU0VURVhUX01BUktFUlNbQ19EQVNIXSA9IDI7XG5cbmZ1bmN0aW9uIHNldGV4dEhlYWRpbmcoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIG5vdyA9IGVhdC5ub3coKTtcbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgdmFyIGluZGV4ID0gLTE7XG4gIHZhciBzdWJ2YWx1ZSA9ICcnO1xuICB2YXIgY29udGVudDtcbiAgdmFyIHF1ZXVlO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgbWFya2VyO1xuICB2YXIgZGVwdGg7XG5cbiAgLyogRWF0IGluaXRpYWwgaW5kZW50YXRpb24uICovXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgIT09IENfU1BBQ0UgfHwgaW5kZXggPj0gTUFYX0hFQURJTkdfSU5ERU5UKSB7XG4gICAgICBpbmRleC0tO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICB9XG5cbiAgLyogRWF0IGNvbnRlbnQuICovXG4gIGNvbnRlbnQgPSAnJztcbiAgcXVldWUgPSAnJztcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX05FV0xJTkUpIHtcbiAgICAgIGluZGV4LS07XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX1NQQUNFIHx8IGNoYXJhY3RlciA9PT0gQ19UQUIpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCArPSBxdWV1ZSArIGNoYXJhY3RlcjtcbiAgICAgIHF1ZXVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgbm93LmNvbHVtbiArPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gIG5vdy5vZmZzZXQgKz0gc3VidmFsdWUubGVuZ3RoO1xuICBzdWJ2YWx1ZSArPSBjb250ZW50ICsgcXVldWU7XG5cbiAgLyogRW5zdXJlIHRoZSBjb250ZW50IGlzIGZvbGxvd2VkIGJ5IGEgbmV3bGluZSBhbmQgYVxuICAgKiB2YWxpZCBtYXJrZXIuICovXG4gIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgbWFya2VyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuXG4gIGlmIChjaGFyYWN0ZXIgIT09IENfTkVXTElORSB8fCAhU0VURVhUX01BUktFUlNbbWFya2VyXSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcblxuICAvKiBFYXQgU2V0ZXh0LWxpbmUuICovXG4gIHF1ZXVlID0gbWFya2VyO1xuICBkZXB0aCA9IFNFVEVYVF9NQVJLRVJTW21hcmtlcl07XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gbWFya2VyKSB7XG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBDX05FV0xJTkUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpbmRleC0tO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICB9XG5cbiAgaWYgKHNpbGVudCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGVhdChzdWJ2YWx1ZSArIHF1ZXVlKSh7XG4gICAgdHlwZTogJ2hlYWRpbmcnLFxuICAgIGRlcHRoOiBkZXB0aCxcbiAgICBjaGlsZHJlbjogc2VsZi50b2tlbml6ZUlubGluZShjb250ZW50LCBub3cpXG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgYXR0cmlidXRlTmFtZSA9ICdbYS16QS1aXzpdW2EtekEtWjAtOTouXy1dKic7XG52YXIgdW5xdW90ZWQgPSAnW15cIlxcJz08PmBcXFxcdTAwMDAtXFxcXHUwMDIwXSsnO1xudmFyIHNpbmdsZVF1b3RlZCA9ICdcXCdbXlxcJ10qXFwnJztcbnZhciBkb3VibGVRdW90ZWQgPSAnXCJbXlwiXSpcIic7XG52YXIgYXR0cmlidXRlVmFsdWUgPSAnKD86JyArIHVucXVvdGVkICsgJ3wnICsgc2luZ2xlUXVvdGVkICsgJ3wnICsgZG91YmxlUXVvdGVkICsgJyknO1xudmFyIGF0dHJpYnV0ZSA9ICcoPzpcXFxccysnICsgYXR0cmlidXRlTmFtZSArICcoPzpcXFxccyo9XFxcXHMqJyArIGF0dHJpYnV0ZVZhbHVlICsgJyk/KSc7XG52YXIgb3BlblRhZyA9ICc8W0EtWmEtel1bQS1aYS16MC05XFxcXC1dKicgKyBhdHRyaWJ1dGUgKyAnKlxcXFxzKlxcXFwvPz4nO1xudmFyIGNsb3NlVGFnID0gJzxcXFxcL1tBLVphLXpdW0EtWmEtejAtOVxcXFwtXSpcXFxccyo+JztcbnZhciBjb21tZW50ID0gJzwhLS0tLT58PCEtLSg/Oi0/W14+LV0pKD86LT9bXi1dKSotLT4nO1xudmFyIHByb2Nlc3NpbmcgPSAnPFs/XS4qP1s/XT4nO1xudmFyIGRlY2xhcmF0aW9uID0gJzwhW0EtWmEtel0rXFxcXHMrW14+XSo+JztcbnZhciBjZGF0YSA9ICc8IVxcXFxbQ0RBVEFcXFxcW1tcXFxcc1xcXFxTXSo/XFxcXF1cXFxcXT4nO1xuXG5leHBvcnRzLm9wZW5DbG9zZVRhZyA9IG5ldyBSZWdFeHAoJ14oPzonICsgb3BlblRhZyArICd8JyArIGNsb3NlVGFnICsgJyknKTtcblxuZXhwb3J0cy50YWcgPSBuZXcgUmVnRXhwKCdeKD86JyArXG4gIG9wZW5UYWcgKyAnfCcgK1xuICBjbG9zZVRhZyArICd8JyArXG4gIGNvbW1lbnQgKyAnfCcgK1xuICBwcm9jZXNzaW5nICsgJ3wnICtcbiAgZGVjbGFyYXRpb24gKyAnfCcgK1xuICBjZGF0YSArXG4nKScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgb3BlbkNsb3NlVGFnID0gcmVxdWlyZSgnLi4vdXRpbC9odG1sJykub3BlbkNsb3NlVGFnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJsb2NrSFRNTDtcblxudmFyIENfVEFCID0gJ1xcdCc7XG52YXIgQ19TUEFDRSA9ICcgJztcbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX0xUID0gJzwnO1xuXG5mdW5jdGlvbiBibG9ja0hUTUwoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGJsb2NrcyA9IHNlbGYub3B0aW9ucy5ibG9ja3M7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBuZXh0O1xuICB2YXIgbGluZTtcbiAgdmFyIG9mZnNldDtcbiAgdmFyIGNoYXJhY3RlcjtcbiAgdmFyIGNvdW50O1xuICB2YXIgc2VxdWVuY2U7XG4gIHZhciBzdWJ2YWx1ZTtcblxuICB2YXIgc2VxdWVuY2VzID0gW1xuICAgIFsvXjwoc2NyaXB0fHByZXxzdHlsZSkoPz0oXFxzfD58JCkpL2ksIC88XFwvKHNjcmlwdHxwcmV8c3R5bGUpPi9pLCB0cnVlXSxcbiAgICBbL148IS0tLywgLy0tPi8sIHRydWVdLFxuICAgIFsvXjxcXD8vLCAvXFw/Pi8sIHRydWVdLFxuICAgIFsvXjwhW0EtWmEtel0vLCAvPi8sIHRydWVdLFxuICAgIFsvXjwhXFxbQ0RBVEFcXFsvLCAvXFxdXFxdPi8sIHRydWVdLFxuICAgIFtuZXcgUmVnRXhwKCdePC8/KCcgKyBibG9ja3Muam9pbignfCcpICsgJykoPz0oXFxcXHN8Lz8+fCQpKScsICdpJyksIC9eJC8sIHRydWVdLFxuICAgIFtuZXcgUmVnRXhwKG9wZW5DbG9zZVRhZy5zb3VyY2UgKyAnXFxcXHMqJCcpLCAvXiQvLCBmYWxzZV1cbiAgXTtcblxuICAvKiBFYXQgaW5pdGlhbCBzcGFjaW5nLiAqL1xuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19UQUIgJiYgY2hhcmFjdGVyICE9PSBDX1NQQUNFKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgIT09IENfTFQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBuZXh0ID0gdmFsdWUuaW5kZXhPZihDX05FV0xJTkUsIGluZGV4ICsgMSk7XG4gIG5leHQgPSBuZXh0ID09PSAtMSA/IGxlbmd0aCA6IG5leHQ7XG4gIGxpbmUgPSB2YWx1ZS5zbGljZShpbmRleCwgbmV4dCk7XG4gIG9mZnNldCA9IC0xO1xuICBjb3VudCA9IHNlcXVlbmNlcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsrb2Zmc2V0IDwgY291bnQpIHtcbiAgICBpZiAoc2VxdWVuY2VzW29mZnNldF1bMF0udGVzdChsaW5lKSkge1xuICAgICAgc2VxdWVuY2UgPSBzZXF1ZW5jZXNbb2Zmc2V0XTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmICghc2VxdWVuY2UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlWzJdO1xuICB9XG5cbiAgaW5kZXggPSBuZXh0O1xuXG4gIGlmICghc2VxdWVuY2VbMV0udGVzdChsaW5lKSkge1xuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgbmV4dCA9IHZhbHVlLmluZGV4T2YoQ19ORVdMSU5FLCBpbmRleCArIDEpO1xuICAgICAgbmV4dCA9IG5leHQgPT09IC0xID8gbGVuZ3RoIDogbmV4dDtcbiAgICAgIGxpbmUgPSB2YWx1ZS5zbGljZShpbmRleCArIDEsIG5leHQpO1xuXG4gICAgICBpZiAoc2VxdWVuY2VbMV0udGVzdChsaW5lKSkge1xuICAgICAgICBpZiAobGluZSkge1xuICAgICAgICAgIGluZGV4ID0gbmV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpbmRleCA9IG5leHQ7XG4gICAgfVxuICB9XG5cbiAgc3VidmFsdWUgPSB2YWx1ZS5zbGljZSgwLCBpbmRleCk7XG5cbiAgcmV0dXJuIGVhdChzdWJ2YWx1ZSkoe3R5cGU6ICdodG1sJywgdmFsdWU6IHN1YnZhbHVlfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb2xsYXBzZVdoaXRlU3BhY2UgPSByZXF1aXJlKCdjb2xsYXBzZS13aGl0ZS1zcGFjZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vcm1hbGl6ZTtcblxuLyogTm9ybWFsaXplIGFuIGlkZW50aWZpZXIuICBDb2xsYXBzZXMgbXVsdGlwbGUgd2hpdGUgc3BhY2VcbiAqIGNoYXJhY3RlcnMgaW50byBhIHNpbmdsZSBzcGFjZSwgYW5kIHJlbW92ZXMgY2FzaW5nLiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplKHZhbHVlKSB7XG4gIHJldHVybiBjb2xsYXBzZVdoaXRlU3BhY2UodmFsdWUpLnRvTG93ZXJDYXNlKCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB3aGl0ZXNwYWNlID0gcmVxdWlyZSgnaXMtd2hpdGVzcGFjZS1jaGFyYWN0ZXInKTtcbnZhciBub3JtYWxpemUgPSByZXF1aXJlKCcuLi91dGlsL25vcm1hbGl6ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZvb3Rub3RlRGVmaW5pdGlvbjtcbmZvb3Rub3RlRGVmaW5pdGlvbi5ub3RJbkxpc3QgPSB0cnVlO1xuZm9vdG5vdGVEZWZpbml0aW9uLm5vdEluQmxvY2sgPSB0cnVlO1xuXG52YXIgQ19CQUNLU0xBU0ggPSAnXFxcXCc7XG52YXIgQ19ORVdMSU5FID0gJ1xcbic7XG52YXIgQ19UQUIgPSAnXFx0JztcbnZhciBDX1NQQUNFID0gJyAnO1xudmFyIENfQlJBQ0tFVF9PUEVOID0gJ1snO1xudmFyIENfQlJBQ0tFVF9DTE9TRSA9ICddJztcbnZhciBDX0NBUkVUID0gJ14nO1xudmFyIENfQ09MT04gPSAnOic7XG5cbnZhciBFWFBSRVNTSU9OX0lOSVRJQUxfVEFCID0gL14oIHs0fXxcXHQpPy9nbTtcblxuZnVuY3Rpb24gZm9vdG5vdGVEZWZpbml0aW9uKGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBvZmZzZXRzID0gc2VsZi5vZmZzZXQ7XG4gIHZhciBpbmRleDtcbiAgdmFyIGxlbmd0aDtcbiAgdmFyIHN1YnZhbHVlO1xuICB2YXIgbm93O1xuICB2YXIgY3VycmVudExpbmU7XG4gIHZhciBjb250ZW50O1xuICB2YXIgcXVldWU7XG4gIHZhciBzdWJxdWV1ZTtcbiAgdmFyIGNoYXJhY3RlcjtcbiAgdmFyIGlkZW50aWZpZXI7XG4gIHZhciBhZGQ7XG4gIHZhciBleGl0O1xuXG4gIGlmICghc2VsZi5vcHRpb25zLmZvb3Rub3Rlcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGluZGV4ID0gMDtcbiAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICBzdWJ2YWx1ZSA9ICcnO1xuICBub3cgPSBlYXQubm93KCk7XG4gIGN1cnJlbnRMaW5lID0gbm93LmxpbmU7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmICghd2hpdGVzcGFjZShjaGFyYWN0ZXIpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChcbiAgICB2YWx1ZS5jaGFyQXQoaW5kZXgpICE9PSBDX0JSQUNLRVRfT1BFTiB8fFxuICAgIHZhbHVlLmNoYXJBdChpbmRleCArIDEpICE9PSBDX0NBUkVUXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN1YnZhbHVlICs9IENfQlJBQ0tFVF9PUEVOICsgQ19DQVJFVDtcbiAgaW5kZXggPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gIHF1ZXVlID0gJyc7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgPT09IENfQlJBQ0tFVF9DTE9TRSkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfQkFDS1NMQVNIKSB7XG4gICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChcbiAgICAhcXVldWUgfHxcbiAgICB2YWx1ZS5jaGFyQXQoaW5kZXgpICE9PSBDX0JSQUNLRVRfQ0xPU0UgfHxcbiAgICB2YWx1ZS5jaGFyQXQoaW5kZXggKyAxKSAhPT0gQ19DT0xPTlxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZGVudGlmaWVyID0gbm9ybWFsaXplKHF1ZXVlKTtcbiAgc3VidmFsdWUgKz0gcXVldWUgKyBDX0JSQUNLRVRfQ0xPU0UgKyBDX0NPTE9OO1xuICBpbmRleCA9IHN1YnZhbHVlLmxlbmd0aDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19UQUIgJiYgY2hhcmFjdGVyICE9PSBDX1NQQUNFKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIG5vdy5jb2x1bW4gKz0gc3VidmFsdWUubGVuZ3RoO1xuICBub3cub2Zmc2V0ICs9IHN1YnZhbHVlLmxlbmd0aDtcbiAgcXVldWUgPSAnJztcbiAgY29udGVudCA9ICcnO1xuICBzdWJxdWV1ZSA9ICcnO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX05FV0xJTkUpIHtcbiAgICAgIHN1YnF1ZXVlID0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGNoYXJhY3RlciAhPT0gQ19ORVdMSU5FKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBzdWJxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlICs9IHN1YnF1ZXVlO1xuICAgICAgc3VicXVldWUgPSAnJztcblxuICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGNoYXJhY3RlciAhPT0gQ19TUEFDRSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VicXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3VicXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZSArPSBzdWJxdWV1ZTtcbiAgICB9XG5cbiAgICBpZiAocXVldWUpIHtcbiAgICAgIGNvbnRlbnQgKz0gcXVldWU7XG4gICAgICBxdWV1ZSA9ICcnO1xuICAgIH1cblxuICAgIGNvbnRlbnQgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBzdWJ2YWx1ZSArPSBjb250ZW50O1xuXG4gIGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoRVhQUkVTU0lPTl9JTklUSUFMX1RBQiwgZnVuY3Rpb24gKGxpbmUpIHtcbiAgICBvZmZzZXRzW2N1cnJlbnRMaW5lXSA9IChvZmZzZXRzW2N1cnJlbnRMaW5lXSB8fCAwKSArIGxpbmUubGVuZ3RoO1xuICAgIGN1cnJlbnRMaW5lKys7XG5cbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGFkZCA9IGVhdChzdWJ2YWx1ZSk7XG5cbiAgZXhpdCA9IHNlbGYuZW50ZXJCbG9jaygpO1xuICBjb250ZW50ID0gc2VsZi50b2tlbml6ZUJsb2NrKGNvbnRlbnQsIG5vdyk7XG4gIGV4aXQoKTtcblxuICByZXR1cm4gYWRkKHtcbiAgICB0eXBlOiAnZm9vdG5vdGVEZWZpbml0aW9uJyxcbiAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgIGNoaWxkcmVuOiBjb250ZW50XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG52YXIgbm9ybWFsaXplID0gcmVxdWlyZSgnLi4vdXRpbC9ub3JtYWxpemUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBkZWZpbml0aW9uO1xuZGVmaW5pdGlvbi5ub3RJbkxpc3QgPSB0cnVlO1xuZGVmaW5pdGlvbi5ub3RJbkJsb2NrID0gdHJ1ZTtcblxudmFyIENfRE9VQkxFX1FVT1RFID0gJ1wiJztcbnZhciBDX1NJTkdMRV9RVU9URSA9ICdcXCcnO1xudmFyIENfQkFDS1NMQVNIID0gJ1xcXFwnO1xudmFyIENfTkVXTElORSA9ICdcXG4nO1xudmFyIENfVEFCID0gJ1xcdCc7XG52YXIgQ19TUEFDRSA9ICcgJztcbnZhciBDX0JSQUNLRVRfT1BFTiA9ICdbJztcbnZhciBDX0JSQUNLRVRfQ0xPU0UgPSAnXSc7XG52YXIgQ19QQVJFTl9PUEVOID0gJygnO1xudmFyIENfUEFSRU5fQ0xPU0UgPSAnKSc7XG52YXIgQ19DT0xPTiA9ICc6JztcbnZhciBDX0xUID0gJzwnO1xudmFyIENfR1QgPSAnPic7XG5cbmZ1bmN0aW9uIGRlZmluaXRpb24oZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGNvbW1vbm1hcmsgPSBzZWxmLm9wdGlvbnMuY29tbW9ubWFyaztcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgdmFyIHN1YnZhbHVlID0gJyc7XG4gIHZhciBiZWZvcmVVUkw7XG4gIHZhciBiZWZvcmVUaXRsZTtcbiAgdmFyIHF1ZXVlO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgdGVzdDtcbiAgdmFyIGlkZW50aWZpZXI7XG4gIHZhciB1cmw7XG4gIHZhciB0aXRsZTtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ19TUEFDRSAmJiBjaGFyYWN0ZXIgIT09IENfVEFCKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgaWYgKGNoYXJhY3RlciAhPT0gQ19CUkFDS0VUX09QRU4pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbmRleCsrO1xuICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gIHF1ZXVlID0gJyc7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgPT09IENfQlJBQ0tFVF9DTE9TRSkge1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfQkFDS1NMQVNIKSB7XG4gICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGlmIChcbiAgICAhcXVldWUgfHxcbiAgICB2YWx1ZS5jaGFyQXQoaW5kZXgpICE9PSBDX0JSQUNLRVRfQ0xPU0UgfHxcbiAgICB2YWx1ZS5jaGFyQXQoaW5kZXggKyAxKSAhPT0gQ19DT0xPTlxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZGVudGlmaWVyID0gcXVldWU7XG4gIHN1YnZhbHVlICs9IHF1ZXVlICsgQ19CUkFDS0VUX0NMT1NFICsgQ19DT0xPTjtcbiAgaW5kZXggPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gIHF1ZXVlID0gJyc7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChcbiAgICAgIGNoYXJhY3RlciAhPT0gQ19UQUIgJiZcbiAgICAgIGNoYXJhY3RlciAhPT0gQ19TUEFDRSAmJlxuICAgICAgY2hhcmFjdGVyICE9PSBDX05FV0xJTkVcbiAgICApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgcXVldWUgPSAnJztcbiAgYmVmb3JlVVJMID0gc3VidmFsdWU7XG5cbiAgaWYgKGNoYXJhY3RlciA9PT0gQ19MVCkge1xuICAgIGluZGV4Kys7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgIGlmICghaXNFbmNsb3NlZFVSTENoYXJhY3RlcihjaGFyYWN0ZXIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBpc0VuY2xvc2VkVVJMQ2hhcmFjdGVyLmRlbGltaXRlcikge1xuICAgICAgc3VidmFsdWUgKz0gQ19MVCArIHF1ZXVlICsgY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvbW1vbm1hcmspIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpbmRleCAtPSBxdWV1ZS5sZW5ndGggKyAxO1xuICAgICAgcXVldWUgPSAnJztcbiAgICB9XG4gIH1cblxuICBpZiAoIXF1ZXVlKSB7XG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoIWlzVW5jbG9zZWRVUkxDaGFyYWN0ZXIoY2hhcmFjdGVyKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBzdWJ2YWx1ZSArPSBxdWV1ZTtcbiAgfVxuXG4gIGlmICghcXVldWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB1cmwgPSBxdWV1ZTtcbiAgcXVldWUgPSAnJztcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKFxuICAgICAgY2hhcmFjdGVyICE9PSBDX1RBQiAmJlxuICAgICAgY2hhcmFjdGVyICE9PSBDX1NQQUNFICYmXG4gICAgICBjaGFyYWN0ZXIgIT09IENfTkVXTElORVxuICAgICkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuICB0ZXN0ID0gbnVsbDtcblxuICBpZiAoY2hhcmFjdGVyID09PSBDX0RPVUJMRV9RVU9URSkge1xuICAgIHRlc3QgPSBDX0RPVUJMRV9RVU9URTtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfU0lOR0xFX1FVT1RFKSB7XG4gICAgdGVzdCA9IENfU0lOR0xFX1FVT1RFO1xuICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19QQVJFTl9PUEVOKSB7XG4gICAgdGVzdCA9IENfUEFSRU5fQ0xPU0U7XG4gIH1cblxuICBpZiAoIXRlc3QpIHtcbiAgICBxdWV1ZSA9ICcnO1xuICAgIGluZGV4ID0gc3VidmFsdWUubGVuZ3RoO1xuICB9IGVsc2UgaWYgKHF1ZXVlKSB7XG4gICAgc3VidmFsdWUgKz0gcXVldWUgKyBjaGFyYWN0ZXI7XG4gICAgaW5kZXggPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gICAgcXVldWUgPSAnJztcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gdGVzdCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19ORVdMSU5FKSB7XG4gICAgICAgIGluZGV4Kys7XG4gICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19ORVdMSU5FIHx8IGNoYXJhY3RlciA9PT0gdGVzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXVlICs9IENfTkVXTElORTtcbiAgICAgIH1cblxuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gdGVzdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJlZm9yZVRpdGxlID0gc3VidmFsdWU7XG4gICAgc3VidmFsdWUgKz0gcXVldWUgKyBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgICB0aXRsZSA9IHF1ZXVlO1xuICAgIHF1ZXVlID0gJyc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgIT09IENfVEFCICYmIGNoYXJhY3RlciAhPT0gQ19TUEFDRSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gIGlmICghY2hhcmFjdGVyIHx8IGNoYXJhY3RlciA9PT0gQ19ORVdMSU5FKSB7XG4gICAgaWYgKHNpbGVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYmVmb3JlVVJMID0gZWF0KGJlZm9yZVVSTCkudGVzdCgpLmVuZDtcbiAgICB1cmwgPSBzZWxmLmRlY29kZS5yYXcoc2VsZi51bmVzY2FwZSh1cmwpLCBiZWZvcmVVUkwsIHtub25UZXJtaW5hdGVkOiBmYWxzZX0pO1xuXG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICBiZWZvcmVUaXRsZSA9IGVhdChiZWZvcmVUaXRsZSkudGVzdCgpLmVuZDtcbiAgICAgIHRpdGxlID0gc2VsZi5kZWNvZGUucmF3KHNlbGYudW5lc2NhcGUodGl0bGUpLCBiZWZvcmVUaXRsZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVhdChzdWJ2YWx1ZSkoe1xuICAgICAgdHlwZTogJ2RlZmluaXRpb24nLFxuICAgICAgaWRlbnRpZmllcjogbm9ybWFsaXplKGlkZW50aWZpZXIpLFxuICAgICAgdGl0bGU6IHRpdGxlIHx8IG51bGwsXG4gICAgICB1cmw6IHVybFxuICAgIH0pO1xuICB9XG59XG5cbi8qIENoZWNrIGlmIGBjaGFyYWN0ZXJgIGNhbiBiZSBpbnNpZGUgYW4gZW5jbG9zZWQgVVJJLiAqL1xuZnVuY3Rpb24gaXNFbmNsb3NlZFVSTENoYXJhY3RlcihjaGFyYWN0ZXIpIHtcbiAgcmV0dXJuIGNoYXJhY3RlciAhPT0gQ19HVCAmJlxuICAgIGNoYXJhY3RlciAhPT0gQ19CUkFDS0VUX09QRU4gJiZcbiAgICBjaGFyYWN0ZXIgIT09IENfQlJBQ0tFVF9DTE9TRTtcbn1cblxuaXNFbmNsb3NlZFVSTENoYXJhY3Rlci5kZWxpbWl0ZXIgPSBDX0dUO1xuXG4vKiBDaGVjayBpZiBgY2hhcmFjdGVyYCBjYW4gYmUgaW5zaWRlIGFuIHVuY2xvc2VkIFVSSS4gKi9cbmZ1bmN0aW9uIGlzVW5jbG9zZWRVUkxDaGFyYWN0ZXIoY2hhcmFjdGVyKSB7XG4gIHJldHVybiBjaGFyYWN0ZXIgIT09IENfQlJBQ0tFVF9PUEVOICYmXG4gICAgY2hhcmFjdGVyICE9PSBDX0JSQUNLRVRfQ0xPU0UgJiZcbiAgICAhd2hpdGVzcGFjZShjaGFyYWN0ZXIpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdGFibGU7XG5cbnZhciBDX0JBQ0tTTEFTSCA9ICdcXFxcJztcbnZhciBDX1RJQ0sgPSAnYCc7XG52YXIgQ19EQVNIID0gJy0nO1xudmFyIENfUElQRSA9ICd8JztcbnZhciBDX0NPTE9OID0gJzonO1xudmFyIENfU1BBQ0UgPSAnICc7XG52YXIgQ19ORVdMSU5FID0gJ1xcbic7XG52YXIgQ19UQUIgPSAnXFx0JztcblxudmFyIE1JTl9UQUJMRV9DT0xVTU5TID0gMTtcbnZhciBNSU5fVEFCTEVfUk9XUyA9IDI7XG5cbnZhciBUQUJMRV9BTElHTl9MRUZUID0gJ2xlZnQnO1xudmFyIFRBQkxFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xudmFyIFRBQkxFX0FMSUdOX1JJR0hUID0gJ3JpZ2h0JztcbnZhciBUQUJMRV9BTElHTl9OT05FID0gbnVsbDtcblxuZnVuY3Rpb24gdGFibGUoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGluZGV4O1xuICB2YXIgYWxpZ25tZW50cztcbiAgdmFyIGFsaWdubWVudDtcbiAgdmFyIHN1YnZhbHVlO1xuICB2YXIgcm93O1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgbGluZXM7XG4gIHZhciBxdWV1ZTtcbiAgdmFyIGNoYXJhY3RlcjtcbiAgdmFyIGhhc0Rhc2g7XG4gIHZhciBhbGlnbjtcbiAgdmFyIGNlbGw7XG4gIHZhciBwcmVhbWJsZTtcbiAgdmFyIGNvdW50O1xuICB2YXIgb3BlbmluZztcbiAgdmFyIG5vdztcbiAgdmFyIHBvc2l0aW9uO1xuICB2YXIgbGluZUNvdW50O1xuICB2YXIgbGluZTtcbiAgdmFyIHJvd3M7XG4gIHZhciB0YWJsZTtcbiAgdmFyIGxpbmVJbmRleDtcbiAgdmFyIHBpcGVJbmRleDtcbiAgdmFyIGZpcnN0O1xuXG4gIC8qIEV4aXQgd2hlbiBub3QgaW4gZ2ZtLW1vZGUuICovXG4gIGlmICghc2VsZi5vcHRpb25zLmdmbSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qIEdldCB0aGUgcm93cy5cbiAgICogRGV0ZWN0aW5nIHRhYmxlcyBzb29uIGlzIGhhcmQsIHNvIHRoZXJlIGFyZSBzb21lXG4gICAqIGNoZWNrcyBmb3IgcGVyZm9ybWFuY2UgaGVyZSwgc3VjaCBhcyB0aGUgbWluaW11bVxuICAgKiBudW1iZXIgb2Ygcm93cywgYW5kIGFsbG93ZWQgY2hhcmFjdGVycyBpbiB0aGVcbiAgICogYWxpZ25tZW50IHJvdy4gKi9cbiAgaW5kZXggPSAwO1xuICBsaW5lQ291bnQgPSAwO1xuICBsZW5ndGggPSB2YWx1ZS5sZW5ndGggKyAxO1xuICBsaW5lcyA9IFtdO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGxpbmVJbmRleCA9IHZhbHVlLmluZGV4T2YoQ19ORVdMSU5FLCBpbmRleCk7XG4gICAgcGlwZUluZGV4ID0gdmFsdWUuaW5kZXhPZihDX1BJUEUsIGluZGV4ICsgMSk7XG5cbiAgICBpZiAobGluZUluZGV4ID09PSAtMSkge1xuICAgICAgbGluZUluZGV4ID0gdmFsdWUubGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChwaXBlSW5kZXggPT09IC0xIHx8IHBpcGVJbmRleCA+IGxpbmVJbmRleCkge1xuICAgICAgaWYgKGxpbmVDb3VudCA8IE1JTl9UQUJMRV9ST1dTKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbGluZXMucHVzaCh2YWx1ZS5zbGljZShpbmRleCwgbGluZUluZGV4KSk7XG4gICAgbGluZUNvdW50Kys7XG4gICAgaW5kZXggPSBsaW5lSW5kZXggKyAxO1xuICB9XG5cbiAgLyogUGFyc2UgdGhlIGFsaWdubWVudCByb3cuICovXG4gIHN1YnZhbHVlID0gbGluZXMuam9pbihDX05FV0xJTkUpO1xuICBhbGlnbm1lbnRzID0gbGluZXMuc3BsaWNlKDEsIDEpWzBdIHx8IFtdO1xuICBpbmRleCA9IDA7XG4gIGxlbmd0aCA9IGFsaWdubWVudHMubGVuZ3RoO1xuICBsaW5lQ291bnQtLTtcbiAgYWxpZ25tZW50ID0gZmFsc2U7XG4gIGFsaWduID0gW107XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gYWxpZ25tZW50cy5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKGNoYXJhY3RlciA9PT0gQ19QSVBFKSB7XG4gICAgICBoYXNEYXNoID0gbnVsbDtcblxuICAgICAgaWYgKGFsaWdubWVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGZpcnN0ID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxpZ24ucHVzaChhbGlnbm1lbnQpO1xuICAgICAgICBhbGlnbm1lbnQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19EQVNIKSB7XG4gICAgICBoYXNEYXNoID0gdHJ1ZTtcbiAgICAgIGFsaWdubWVudCA9IGFsaWdubWVudCB8fCBUQUJMRV9BTElHTl9OT05FO1xuICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09PSBDX0NPTE9OKSB7XG4gICAgICBpZiAoYWxpZ25tZW50ID09PSBUQUJMRV9BTElHTl9MRUZUKSB7XG4gICAgICAgIGFsaWdubWVudCA9IFRBQkxFX0FMSUdOX0NFTlRFUjtcbiAgICAgIH0gZWxzZSBpZiAoaGFzRGFzaCAmJiBhbGlnbm1lbnQgPT09IFRBQkxFX0FMSUdOX05PTkUpIHtcbiAgICAgICAgYWxpZ25tZW50ID0gVEFCTEVfQUxJR05fUklHSFQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbGlnbm1lbnQgPSBUQUJMRV9BTElHTl9MRUZUO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIXdoaXRlc3BhY2UoY2hhcmFjdGVyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGluZGV4Kys7XG4gIH1cblxuICBpZiAoYWxpZ25tZW50ICE9PSBmYWxzZSkge1xuICAgIGFsaWduLnB1c2goYWxpZ25tZW50KTtcbiAgfVxuXG4gIC8qIEV4aXQgd2hlbiB3aXRob3V0IGVub3VnaCBjb2x1bW5zLiAqL1xuICBpZiAoYWxpZ24ubGVuZ3RoIDwgTUlOX1RBQkxFX0NPTFVNTlMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qIFBhcnNlIHRoZSByb3dzLiAqL1xuICBwb3NpdGlvbiA9IC0xO1xuICByb3dzID0gW107XG5cbiAgdGFibGUgPSBlYXQoc3VidmFsdWUpLnJlc2V0KHtcbiAgICB0eXBlOiAndGFibGUnLFxuICAgIGFsaWduOiBhbGlnbixcbiAgICBjaGlsZHJlbjogcm93c1xuICB9KTtcblxuICB3aGlsZSAoKytwb3NpdGlvbiA8IGxpbmVDb3VudCkge1xuICAgIGxpbmUgPSBsaW5lc1twb3NpdGlvbl07XG4gICAgcm93ID0ge3R5cGU6ICd0YWJsZVJvdycsIGNoaWxkcmVuOiBbXX07XG5cbiAgICAvKiBFYXQgYSBuZXdsaW5lIGNoYXJhY3RlciB3aGVuIHRoaXMgaXMgbm90IHRoZVxuICAgICAqIGZpcnN0IHJvdy4gKi9cbiAgICBpZiAocG9zaXRpb24pIHtcbiAgICAgIGVhdChDX05FV0xJTkUpO1xuICAgIH1cblxuICAgIC8qIEVhdCB0aGUgcm93LiAqL1xuICAgIGVhdChsaW5lKS5yZXNldChyb3csIHRhYmxlKTtcblxuICAgIGxlbmd0aCA9IGxpbmUubGVuZ3RoICsgMTtcbiAgICBpbmRleCA9IDA7XG4gICAgcXVldWUgPSAnJztcbiAgICBjZWxsID0gJyc7XG4gICAgcHJlYW1ibGUgPSB0cnVlO1xuICAgIGNvdW50ID0gbnVsbDtcbiAgICBvcGVuaW5nID0gbnVsbDtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gbGluZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyID09PSBDX1RBQiB8fCBjaGFyYWN0ZXIgPT09IENfU1BBQ0UpIHtcbiAgICAgICAgaWYgKGNlbGwpIHtcbiAgICAgICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZWF0KGNoYXJhY3Rlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpbmRleCsrO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gJycgfHwgY2hhcmFjdGVyID09PSBDX1BJUEUpIHtcbiAgICAgICAgaWYgKHByZWFtYmxlKSB7XG4gICAgICAgICAgZWF0KGNoYXJhY3Rlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGNoYXJhY3RlciAmJiBvcGVuaW5nKSB7XG4gICAgICAgICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKChjZWxsIHx8IGNoYXJhY3RlcikgJiYgIXByZWFtYmxlKSB7XG4gICAgICAgICAgICBzdWJ2YWx1ZSA9IGNlbGw7XG5cbiAgICAgICAgICAgIGlmIChxdWV1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgICAgICBzdWJ2YWx1ZSArPSBxdWV1ZS5zbGljZSgwLCBxdWV1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmNoYXJBdChxdWV1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdWJ2YWx1ZSArPSBxdWV1ZTtcbiAgICAgICAgICAgICAgICBxdWV1ZSA9ICcnO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5vdyA9IGVhdC5ub3coKTtcblxuICAgICAgICAgICAgZWF0KHN1YnZhbHVlKSh7XG4gICAgICAgICAgICAgIHR5cGU6ICd0YWJsZUNlbGwnLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogc2VsZi50b2tlbml6ZUlubGluZShjZWxsLCBub3cpXG4gICAgICAgICAgICB9LCByb3cpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVhdChxdWV1ZSArIGNoYXJhY3Rlcik7XG5cbiAgICAgICAgICBxdWV1ZSA9ICcnO1xuICAgICAgICAgIGNlbGwgPSAnJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHF1ZXVlKSB7XG4gICAgICAgICAgY2VsbCArPSBxdWV1ZTtcbiAgICAgICAgICBxdWV1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY2VsbCArPSBjaGFyYWN0ZXI7XG5cbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19CQUNLU0xBU0ggJiYgaW5kZXggIT09IGxlbmd0aCAtIDIpIHtcbiAgICAgICAgICBjZWxsICs9IGxpbmUuY2hhckF0KGluZGV4ICsgMSk7XG4gICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfVElDSykge1xuICAgICAgICAgIGNvdW50ID0gMTtcblxuICAgICAgICAgIHdoaWxlIChsaW5lLmNoYXJBdChpbmRleCArIDEpID09PSBjaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgIGNlbGwgKz0gY2hhcmFjdGVyO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFvcGVuaW5nKSB7XG4gICAgICAgICAgICBvcGVuaW5nID0gY291bnQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChjb3VudCA+PSBvcGVuaW5nKSB7XG4gICAgICAgICAgICBvcGVuaW5nID0gMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcHJlYW1ibGUgPSBmYWxzZTtcbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgLyogRWF0IHRoZSBhbGlnbm1lbnQgcm93LiAqL1xuICAgIGlmICghcG9zaXRpb24pIHtcbiAgICAgIGVhdChDX05FV0xJTkUgKyBhbGlnbm1lbnRzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFibGU7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB0cmltID0gcmVxdWlyZSgndHJpbScpO1xudmFyIGRlY2ltYWwgPSByZXF1aXJlKCdpcy1kZWNpbWFsJyk7XG52YXIgdHJpbVRyYWlsaW5nTGluZXMgPSByZXF1aXJlKCd0cmltLXRyYWlsaW5nLWxpbmVzJyk7XG52YXIgaW50ZXJydXB0ID0gcmVxdWlyZSgnLi4vdXRpbC9pbnRlcnJ1cHQnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJhZ3JhcGg7XG5cbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX1RBQiA9ICdcXHQnO1xudmFyIENfU1BBQ0UgPSAnICc7XG5cbnZhciBUQUJfU0laRSA9IDQ7XG5cbi8qIFRva2VuaXNlIHBhcmFncmFwaC4gKi9cbmZ1bmN0aW9uIHBhcmFncmFwaChlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgc2V0dGluZ3MgPSBzZWxmLm9wdGlvbnM7XG4gIHZhciBjb21tb25tYXJrID0gc2V0dGluZ3MuY29tbW9ubWFyaztcbiAgdmFyIGdmbSA9IHNldHRpbmdzLmdmbTtcbiAgdmFyIHRva2VuaXplcnMgPSBzZWxmLmJsb2NrVG9rZW5pemVycztcbiAgdmFyIGludGVycnVwdG9ycyA9IHNlbGYuaW50ZXJydXB0UGFyYWdyYXBoO1xuICB2YXIgaW5kZXggPSB2YWx1ZS5pbmRleE9mKENfTkVXTElORSk7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIHZhciBwb3NpdGlvbjtcbiAgdmFyIHN1YnZhbHVlO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgc2l6ZTtcbiAgdmFyIG5vdztcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAvKiBFYXQgZXZlcnl0aGluZyBpZiB0aGVyZeKAmXMgbm8gZm9sbG93aW5nIG5ld2xpbmUuICovXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaW5kZXggPSBsZW5ndGg7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvKiBTdG9wIGlmIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBORVdMSU5FLiAqL1xuICAgIGlmICh2YWx1ZS5jaGFyQXQoaW5kZXggKyAxKSA9PT0gQ19ORVdMSU5FKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvKiBJbiBjb21tb25tYXJrLW1vZGUsIGZvbGxvd2luZyBpbmRlbnRlZCBsaW5lc1xuICAgICAqIGFyZSBwYXJ0IG9mIHRoZSBwYXJhZ3JhcGguICovXG4gICAgaWYgKGNvbW1vbm1hcmspIHtcbiAgICAgIHNpemUgPSAwO1xuICAgICAgcG9zaXRpb24gPSBpbmRleCArIDE7XG5cbiAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCkge1xuICAgICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQocG9zaXRpb24pO1xuXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfVEFCKSB7XG4gICAgICAgICAgc2l6ZSA9IFRBQl9TSVpFO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19TUEFDRSkge1xuICAgICAgICAgIHNpemUrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHBvc2l0aW9uKys7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaXplID49IFRBQl9TSVpFKSB7XG4gICAgICAgIGluZGV4ID0gdmFsdWUuaW5kZXhPZihDX05FV0xJTkUsIGluZGV4ICsgMSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1YnZhbHVlID0gdmFsdWUuc2xpY2UoaW5kZXggKyAxKTtcblxuICAgIC8qIENoZWNrIGlmIHRoZSBmb2xsb3dpbmcgY29kZSBjb250YWlucyBhIHBvc3NpYmxlXG4gICAgICogYmxvY2suICovXG4gICAgaWYgKGludGVycnVwdChpbnRlcnJ1cHRvcnMsIHRva2VuaXplcnMsIHNlbGYsIFtlYXQsIHN1YnZhbHVlLCB0cnVlXSkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8qIEJyZWFrIGlmIHRoZSBmb2xsb3dpbmcgbGluZSBzdGFydHMgYSBsaXN0LCB3aGVuXG4gICAgICogYWxyZWFkeSBpbiBhIGxpc3QsIG9yIHdoZW4gaW4gY29tbW9ubWFyaywgb3Igd2hlblxuICAgICAqIGluIGdmbSBtb2RlIGFuZCB0aGUgYnVsbGV0IGlzICpub3QqIG51bWVyaWMuICovXG4gICAgaWYgKFxuICAgICAgdG9rZW5pemVycy5saXN0LmNhbGwoc2VsZiwgZWF0LCBzdWJ2YWx1ZSwgdHJ1ZSkgJiZcbiAgICAgIChcbiAgICAgICAgc2VsZi5pbkxpc3QgfHxcbiAgICAgICAgY29tbW9ubWFyayB8fFxuICAgICAgICAoZ2ZtICYmICFkZWNpbWFsKHRyaW0ubGVmdChzdWJ2YWx1ZSkuY2hhckF0KDApKSlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHBvc2l0aW9uID0gaW5kZXg7XG4gICAgaW5kZXggPSB2YWx1ZS5pbmRleE9mKENfTkVXTElORSwgaW5kZXggKyAxKTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEgJiYgdHJpbSh2YWx1ZS5zbGljZShwb3NpdGlvbiwgaW5kZXgpKSA9PT0gJycpIHtcbiAgICAgIGluZGV4ID0gcG9zaXRpb247XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzdWJ2YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIGluZGV4KTtcblxuICBpZiAodHJpbShzdWJ2YWx1ZSkgPT09ICcnKSB7XG4gICAgZWF0KHN1YnZhbHVlKTtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBub3cgPSBlYXQubm93KCk7XG4gIHN1YnZhbHVlID0gdHJpbVRyYWlsaW5nTGluZXMoc3VidmFsdWUpO1xuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICB0eXBlOiAncGFyYWdyYXBoJyxcbiAgICBjaGlsZHJlbjogc2VsZi50b2tlbml6ZUlubGluZShzdWJ2YWx1ZSwgbm93KVxuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBsb2NhdGU7XG5cbmZ1bmN0aW9uIGxvY2F0ZSh2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHJldHVybiB2YWx1ZS5pbmRleE9mKCdcXFxcJywgZnJvbUluZGV4KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGxvY2F0ZSA9IHJlcXVpcmUoJy4uL2xvY2F0ZS9lc2NhcGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlc2NhcGU7XG5lc2NhcGUubG9jYXRvciA9IGxvY2F0ZTtcblxuZnVuY3Rpb24gZXNjYXBlKGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBub2RlO1xuXG4gIGlmICh2YWx1ZS5jaGFyQXQoMCkgPT09ICdcXFxcJykge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgxKTtcblxuICAgIGlmIChzZWxmLmVzY2FwZS5pbmRleE9mKGNoYXJhY3RlcikgIT09IC0xKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gICAgICBpZiAoc2lsZW50KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hhcmFjdGVyID09PSAnXFxuJykge1xuICAgICAgICBub2RlID0ge3R5cGU6ICdicmVhayd9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZSA9IHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdmFsdWU6IGNoYXJhY3RlclxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWF0KCdcXFxcJyArIGNoYXJhY3Rlcikobm9kZSk7XG4gICAgfVxuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYXRlO1xuXG5mdW5jdGlvbiBsb2NhdGUodmFsdWUsIGZyb21JbmRleCkge1xuICByZXR1cm4gdmFsdWUuaW5kZXhPZignPCcsIGZyb21JbmRleCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB3aGl0ZXNwYWNlID0gcmVxdWlyZSgnaXMtd2hpdGVzcGFjZS1jaGFyYWN0ZXInKTtcbnZhciBkZWNvZGUgPSByZXF1aXJlKCdwYXJzZS1lbnRpdGllcycpO1xudmFyIGxvY2F0ZSA9IHJlcXVpcmUoJy4uL2xvY2F0ZS90YWcnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBhdXRvTGluaztcbmF1dG9MaW5rLmxvY2F0b3IgPSBsb2NhdGU7XG5hdXRvTGluay5ub3RJbkxpbmsgPSB0cnVlO1xuXG52YXIgQ19MVCA9ICc8JztcbnZhciBDX0dUID0gJz4nO1xudmFyIENfQVRfU0lHTiA9ICdAJztcbnZhciBDX1NMQVNIID0gJy8nO1xudmFyIE1BSUxUTyA9ICdtYWlsdG86JztcbnZhciBNQUlMVE9fTEVOR1RIID0gTUFJTFRPLmxlbmd0aDtcblxuLyogVG9rZW5pc2UgYSBsaW5rLiAqL1xuZnVuY3Rpb24gYXV0b0xpbmsoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBsZW5ndGg7XG4gIHZhciBpbmRleDtcbiAgdmFyIHF1ZXVlO1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgaGFzQXRDaGFyYWN0ZXI7XG4gIHZhciBsaW5rO1xuICB2YXIgbm93O1xuICB2YXIgY29udGVudDtcbiAgdmFyIHRva2VuaXplcnM7XG4gIHZhciBleGl0O1xuXG4gIGlmICh2YWx1ZS5jaGFyQXQoMCkgIT09IENfTFQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzZWxmID0gdGhpcztcbiAgc3VidmFsdWUgPSAnJztcbiAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICBpbmRleCA9IDA7XG4gIHF1ZXVlID0gJyc7XG4gIGhhc0F0Q2hhcmFjdGVyID0gZmFsc2U7XG4gIGxpbmsgPSAnJztcblxuICBpbmRleCsrO1xuICBzdWJ2YWx1ZSA9IENfTFQ7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChcbiAgICAgIHdoaXRlc3BhY2UoY2hhcmFjdGVyKSB8fFxuICAgICAgY2hhcmFjdGVyID09PSBDX0dUIHx8XG4gICAgICBjaGFyYWN0ZXIgPT09IENfQVRfU0lHTiB8fFxuICAgICAgKGNoYXJhY3RlciA9PT0gJzonICYmIHZhbHVlLmNoYXJBdChpbmRleCArIDEpID09PSBDX1NMQVNIKVxuICAgICkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBpZiAoIXF1ZXVlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGluayArPSBxdWV1ZTtcbiAgcXVldWUgPSAnJztcblxuICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuICBsaW5rICs9IGNoYXJhY3RlcjtcbiAgaW5kZXgrKztcblxuICBpZiAoY2hhcmFjdGVyID09PSBDX0FUX1NJR04pIHtcbiAgICBoYXNBdENoYXJhY3RlciA9IHRydWU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKFxuICAgICAgY2hhcmFjdGVyICE9PSAnOicgfHxcbiAgICAgIHZhbHVlLmNoYXJBdChpbmRleCArIDEpICE9PSBDX1NMQVNIXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGluayArPSBDX1NMQVNIO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKHdoaXRlc3BhY2UoY2hhcmFjdGVyKSB8fCBjaGFyYWN0ZXIgPT09IENfR1QpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICBpZiAoIXF1ZXVlIHx8IGNoYXJhY3RlciAhPT0gQ19HVCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgaWYgKHNpbGVudCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgbGluayArPSBxdWV1ZTtcbiAgY29udGVudCA9IGxpbms7XG4gIHN1YnZhbHVlICs9IGxpbmsgKyBjaGFyYWN0ZXI7XG4gIG5vdyA9IGVhdC5ub3coKTtcbiAgbm93LmNvbHVtbisrO1xuICBub3cub2Zmc2V0Kys7XG5cbiAgaWYgKGhhc0F0Q2hhcmFjdGVyKSB7XG4gICAgaWYgKGxpbmsuc2xpY2UoMCwgTUFJTFRPX0xFTkdUSCkudG9Mb3dlckNhc2UoKSA9PT0gTUFJTFRPKSB7XG4gICAgICBjb250ZW50ID0gY29udGVudC5zdWJzdHIoTUFJTFRPX0xFTkdUSCk7XG4gICAgICBub3cuY29sdW1uICs9IE1BSUxUT19MRU5HVEg7XG4gICAgICBub3cub2Zmc2V0ICs9IE1BSUxUT19MRU5HVEg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmsgPSBNQUlMVE8gKyBsaW5rO1xuICAgIH1cbiAgfVxuXG4gIC8qIFRlbXBvcmFyaWx5IHJlbW92ZSBhbGwgdG9rZW5pemVycyBleGNlcHQgdGV4dCBpbiBhdXRvbGlua3MuICovXG4gIHRva2VuaXplcnMgPSBzZWxmLmlubGluZVRva2VuaXplcnM7XG4gIHNlbGYuaW5saW5lVG9rZW5pemVycyA9IHt0ZXh0OiB0b2tlbml6ZXJzLnRleHR9O1xuXG4gIGV4aXQgPSBzZWxmLmVudGVyTGluaygpO1xuXG4gIGNvbnRlbnQgPSBzZWxmLnRva2VuaXplSW5saW5lKGNvbnRlbnQsIG5vdyk7XG5cbiAgc2VsZi5pbmxpbmVUb2tlbml6ZXJzID0gdG9rZW5pemVycztcbiAgZXhpdCgpO1xuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICB0eXBlOiAnbGluaycsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdXJsOiBkZWNvZGUobGluaywge25vblRlcm1pbmF0ZWQ6IGZhbHNlfSksXG4gICAgY2hpbGRyZW46IGNvbnRlbnRcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYXRlO1xuXG52YXIgUFJPVE9DT0xTID0gWydodHRwczovLycsICdodHRwOi8vJywgJ21haWx0bzonXTtcblxuZnVuY3Rpb24gbG9jYXRlKHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgdmFyIGxlbmd0aCA9IFBST1RPQ09MUy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgbWluID0gLTE7XG4gIHZhciBwb3NpdGlvbjtcblxuICBpZiAoIXRoaXMub3B0aW9ucy5nZm0pIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHBvc2l0aW9uID0gdmFsdWUuaW5kZXhPZihQUk9UT0NPTFNbaW5kZXhdLCBmcm9tSW5kZXgpO1xuXG4gICAgaWYgKHBvc2l0aW9uICE9PSAtMSAmJiAocG9zaXRpb24gPCBtaW4gfHwgbWluID09PSAtMSkpIHtcbiAgICAgIG1pbiA9IHBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtaW47XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBkZWNvZGUgPSByZXF1aXJlKCdwYXJzZS1lbnRpdGllcycpO1xudmFyIHdoaXRlc3BhY2UgPSByZXF1aXJlKCdpcy13aGl0ZXNwYWNlLWNoYXJhY3RlcicpO1xudmFyIGxvY2F0ZSA9IHJlcXVpcmUoJy4uL2xvY2F0ZS91cmwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1cmw7XG51cmwubG9jYXRvciA9IGxvY2F0ZTtcbnVybC5ub3RJbkxpbmsgPSB0cnVlO1xuXG52YXIgQ19CUkFDS0VUX09QRU4gPSAnWyc7XG52YXIgQ19CUkFDS0VUX0NMT1NFID0gJ10nO1xudmFyIENfUEFSRU5fT1BFTiA9ICcoJztcbnZhciBDX1BBUkVOX0NMT1NFID0gJyknO1xudmFyIENfTFQgPSAnPCc7XG52YXIgQ19BVF9TSUdOID0gJ0AnO1xuXG52YXIgSFRUUF9QUk9UT0NPTCA9ICdodHRwOi8vJztcbnZhciBIVFRQU19QUk9UT0NPTCA9ICdodHRwczovLyc7XG52YXIgTUFJTFRPX1BST1RPQ09MID0gJ21haWx0bzonO1xuXG52YXIgUFJPVE9DT0xTID0gW1xuICBIVFRQX1BST1RPQ09MLFxuICBIVFRQU19QUk9UT0NPTCxcbiAgTUFJTFRPX1BST1RPQ09MXG5dO1xuXG52YXIgUFJPVE9DT0xTX0xFTkdUSCA9IFBST1RPQ09MUy5sZW5ndGg7XG5cbmZ1bmN0aW9uIHVybChlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBjb250ZW50O1xuICB2YXIgY2hhcmFjdGVyO1xuICB2YXIgaW5kZXg7XG4gIHZhciBwb3NpdGlvbjtcbiAgdmFyIHByb3RvY29sO1xuICB2YXIgbWF0Y2g7XG4gIHZhciBsZW5ndGg7XG4gIHZhciBxdWV1ZTtcbiAgdmFyIHBhcmVuQ291bnQ7XG4gIHZhciBuZXh0Q2hhcmFjdGVyO1xuICB2YXIgZXhpdDtcblxuICBpZiAoIXNlbGYub3B0aW9ucy5nZm0pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzdWJ2YWx1ZSA9ICcnO1xuICBpbmRleCA9IC0xO1xuICBsZW5ndGggPSBQUk9UT0NPTFNfTEVOR1RIO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcHJvdG9jb2wgPSBQUk9UT0NPTFNbaW5kZXhdO1xuICAgIG1hdGNoID0gdmFsdWUuc2xpY2UoMCwgcHJvdG9jb2wubGVuZ3RoKTtcblxuICAgIGlmIChtYXRjaC50b0xvd2VyQ2FzZSgpID09PSBwcm90b2NvbCkge1xuICAgICAgc3VidmFsdWUgPSBtYXRjaDtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmICghc3VidmFsdWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbmRleCA9IHN1YnZhbHVlLmxlbmd0aDtcbiAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICBxdWV1ZSA9ICcnO1xuICBwYXJlbkNvdW50ID0gMDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKHdoaXRlc3BhY2UoY2hhcmFjdGVyKSB8fCBjaGFyYWN0ZXIgPT09IENfTFQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGNoYXJhY3RlciA9PT0gJy4nIHx8XG4gICAgICBjaGFyYWN0ZXIgPT09ICcsJyB8fFxuICAgICAgY2hhcmFjdGVyID09PSAnOicgfHxcbiAgICAgIGNoYXJhY3RlciA9PT0gJzsnIHx8XG4gICAgICBjaGFyYWN0ZXIgPT09ICdcIicgfHxcbiAgICAgIGNoYXJhY3RlciA9PT0gJ1xcJycgfHxcbiAgICAgIGNoYXJhY3RlciA9PT0gJyknIHx8XG4gICAgICBjaGFyYWN0ZXIgPT09ICddJ1xuICAgICkge1xuICAgICAgbmV4dENoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCArIDEpO1xuXG4gICAgICBpZiAoIW5leHRDaGFyYWN0ZXIgfHwgd2hpdGVzcGFjZShuZXh0Q2hhcmFjdGVyKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX1BBUkVOX09QRU4gfHwgY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfT1BFTikge1xuICAgICAgcGFyZW5Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjaGFyYWN0ZXIgPT09IENfUEFSRU5fQ0xPU0UgfHwgY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfQ0xPU0UpIHtcbiAgICAgIHBhcmVuQ291bnQtLTtcblxuICAgICAgaWYgKHBhcmVuQ291bnQgPCAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgaWYgKCFxdWV1ZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN1YnZhbHVlICs9IHF1ZXVlO1xuICBjb250ZW50ID0gc3VidmFsdWU7XG5cbiAgaWYgKHByb3RvY29sID09PSBNQUlMVE9fUFJPVE9DT0wpIHtcbiAgICBwb3NpdGlvbiA9IHF1ZXVlLmluZGV4T2YoQ19BVF9TSUdOKTtcblxuICAgIGlmIChwb3NpdGlvbiA9PT0gLTEgfHwgcG9zaXRpb24gPT09IGxlbmd0aCAtIDEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250ZW50ID0gY29udGVudC5zdWJzdHIoTUFJTFRPX1BST1RPQ09MLmxlbmd0aCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGV4aXQgPSBzZWxmLmVudGVyTGluaygpO1xuICBjb250ZW50ID0gc2VsZi50b2tlbml6ZUlubGluZShjb250ZW50LCBlYXQubm93KCkpO1xuICBleGl0KCk7XG5cbiAgcmV0dXJuIGVhdChzdWJ2YWx1ZSkoe1xuICAgIHR5cGU6ICdsaW5rJyxcbiAgICB0aXRsZTogbnVsbCxcbiAgICB1cmw6IGRlY29kZShzdWJ2YWx1ZSwge25vblRlcm1pbmF0ZWQ6IGZhbHNlfSksXG4gICAgY2hpbGRyZW46IGNvbnRlbnRcbiAgfSk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBhbHBoYWJldGljYWwgPSByZXF1aXJlKCdpcy1hbHBoYWJldGljYWwnKTtcbnZhciBsb2NhdGUgPSByZXF1aXJlKCcuLi9sb2NhdGUvdGFnJyk7XG52YXIgdGFnID0gcmVxdWlyZSgnLi4vdXRpbC9odG1sJykudGFnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlubGluZUhUTUw7XG5pbmxpbmVIVE1MLmxvY2F0b3IgPSBsb2NhdGU7XG5cbnZhciBFWFBSRVNTSU9OX0hUTUxfTElOS19PUEVOID0gL148YSAvaTtcbnZhciBFWFBSRVNTSU9OX0hUTUxfTElOS19DTE9TRSA9IC9ePFxcL2E+L2k7XG5cbmZ1bmN0aW9uIGlubGluZUhUTUwoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgdmFyIGNoYXJhY3RlcjtcbiAgdmFyIHN1YnZhbHVlO1xuXG4gIGlmICh2YWx1ZS5jaGFyQXQoMCkgIT09ICc8JyB8fCBsZW5ndGggPCAzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KDEpO1xuXG4gIGlmIChcbiAgICAhYWxwaGFiZXRpY2FsKGNoYXJhY3RlcikgJiZcbiAgICBjaGFyYWN0ZXIgIT09ICc/JyAmJlxuICAgIGNoYXJhY3RlciAhPT0gJyEnICYmXG4gICAgY2hhcmFjdGVyICE9PSAnLydcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3VidmFsdWUgPSB2YWx1ZS5tYXRjaCh0YWcpO1xuXG4gIGlmICghc3VidmFsdWUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBub3QgdXNlZCB5ZXQuICovXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN1YnZhbHVlID0gc3VidmFsdWVbMF07XG5cbiAgaWYgKCFzZWxmLmluTGluayAmJiBFWFBSRVNTSU9OX0hUTUxfTElOS19PUEVOLnRlc3Qoc3VidmFsdWUpKSB7XG4gICAgc2VsZi5pbkxpbmsgPSB0cnVlO1xuICB9IGVsc2UgaWYgKHNlbGYuaW5MaW5rICYmIEVYUFJFU1NJT05fSFRNTF9MSU5LX0NMT1NFLnRlc3Qoc3VidmFsdWUpKSB7XG4gICAgc2VsZi5pbkxpbmsgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKHt0eXBlOiAnaHRtbCcsIHZhbHVlOiBzdWJ2YWx1ZX0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGxvY2F0ZTtcblxuZnVuY3Rpb24gbG9jYXRlKHZhbHVlLCBmcm9tSW5kZXgpIHtcbiAgdmFyIGxpbmsgPSB2YWx1ZS5pbmRleE9mKCdbJywgZnJvbUluZGV4KTtcbiAgdmFyIGltYWdlID0gdmFsdWUuaW5kZXhPZignIVsnLCBmcm9tSW5kZXgpO1xuXG4gIGlmIChpbWFnZSA9PT0gLTEpIHtcbiAgICByZXR1cm4gbGluaztcbiAgfVxuXG4gIC8qIExpbmsgY2FuIG5ldmVyIGJlIGAtMWAgaWYgYW4gaW1hZ2UgaXMgZm91bmQsIHNvIHdlIGRvbuKAmXQgbmVlZFxuICAgKiB0byBjaGVjayBmb3IgdGhhdCA6KSAqL1xuICByZXR1cm4gbGluayA8IGltYWdlID8gbGluayA6IGltYWdlO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG52YXIgbG9jYXRlID0gcmVxdWlyZSgnLi4vbG9jYXRlL2xpbmsnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBsaW5rO1xubGluay5sb2NhdG9yID0gbG9jYXRlO1xuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHk7XG5cbnZhciBDX0JBQ0tTTEFTSCA9ICdcXFxcJztcbnZhciBDX0JSQUNLRVRfT1BFTiA9ICdbJztcbnZhciBDX0JSQUNLRVRfQ0xPU0UgPSAnXSc7XG52YXIgQ19QQVJFTl9PUEVOID0gJygnO1xudmFyIENfUEFSRU5fQ0xPU0UgPSAnKSc7XG52YXIgQ19MVCA9ICc8JztcbnZhciBDX0dUID0gJz4nO1xudmFyIENfVElDSyA9ICdgJztcbnZhciBDX0RPVUJMRV9RVU9URSA9ICdcIic7XG52YXIgQ19TSU5HTEVfUVVPVEUgPSAnXFwnJztcblxuLyogTWFwIG9mIGNoYXJhY3RlcnMsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG1hcmsgbGlua1xuICogYW5kIGltYWdlIHRpdGxlcy4gKi9cbnZhciBMSU5LX01BUktFUlMgPSB7fTtcblxuTElOS19NQVJLRVJTW0NfRE9VQkxFX1FVT1RFXSA9IENfRE9VQkxFX1FVT1RFO1xuTElOS19NQVJLRVJTW0NfU0lOR0xFX1FVT1RFXSA9IENfU0lOR0xFX1FVT1RFO1xuXG4vKiBNYXAgb2YgY2hhcmFjdGVycywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gbWFyayBsaW5rXG4gKiBhbmQgaW1hZ2UgdGl0bGVzIGluIGNvbW1vbm1hcmstbW9kZS4gKi9cbnZhciBDT01NT05NQVJLX0xJTktfTUFSS0VSUyA9IHt9O1xuXG5DT01NT05NQVJLX0xJTktfTUFSS0VSU1tDX0RPVUJMRV9RVU9URV0gPSBDX0RPVUJMRV9RVU9URTtcbkNPTU1PTk1BUktfTElOS19NQVJLRVJTW0NfU0lOR0xFX1FVT1RFXSA9IENfU0lOR0xFX1FVT1RFO1xuQ09NTU9OTUFSS19MSU5LX01BUktFUlNbQ19QQVJFTl9PUEVOXSA9IENfUEFSRU5fQ0xPU0U7XG5cbmZ1bmN0aW9uIGxpbmsoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHN1YnZhbHVlID0gJyc7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoMCk7XG4gIHZhciBwZWRhbnRpYyA9IHNlbGYub3B0aW9ucy5wZWRhbnRpYztcbiAgdmFyIGNvbW1vbm1hcmsgPSBzZWxmLm9wdGlvbnMuY29tbW9ubWFyaztcbiAgdmFyIGdmbSA9IHNlbGYub3B0aW9ucy5nZm07XG4gIHZhciBjbG9zZWQ7XG4gIHZhciBjb3VudDtcbiAgdmFyIG9wZW5pbmc7XG4gIHZhciBiZWZvcmVVUkw7XG4gIHZhciBiZWZvcmVUaXRsZTtcbiAgdmFyIHN1YnF1ZXVlO1xuICB2YXIgaGFzTWFya2VyO1xuICB2YXIgbWFya2VycztcbiAgdmFyIGlzSW1hZ2U7XG4gIHZhciBjb250ZW50O1xuICB2YXIgbWFya2VyO1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgdGl0bGU7XG4gIHZhciBkZXB0aDtcbiAgdmFyIHF1ZXVlO1xuICB2YXIgdXJsO1xuICB2YXIgbm93O1xuICB2YXIgZXhpdDtcbiAgdmFyIG5vZGU7XG5cbiAgLyogRGV0ZWN0IHdoZXRoZXIgdGhpcyBpcyBhbiBpbWFnZS4gKi9cbiAgaWYgKGNoYXJhY3RlciA9PT0gJyEnKSB7XG4gICAgaXNJbWFnZSA9IHRydWU7XG4gICAgc3VidmFsdWUgPSBjaGFyYWN0ZXI7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuICB9XG5cbiAgLyogRWF0IHRoZSBvcGVuaW5nLiAqL1xuICBpZiAoY2hhcmFjdGVyICE9PSBDX0JSQUNLRVRfT1BFTikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qIEV4aXQgd2hlbiB0aGlzIGlzIGEgbGluayBhbmQgd2XigJlyZSBhbHJlYWR5IGluc2lkZVxuICAgKiBhIGxpbmsuICovXG4gIGlmICghaXNJbWFnZSAmJiBzZWxmLmluTGluaykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgcXVldWUgPSAnJztcbiAgaW5kZXgrKztcblxuICAvKiBFYXQgdGhlIGNvbnRlbnQuICovXG4gIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgbm93ID0gZWF0Lm5vdygpO1xuICBkZXB0aCA9IDA7XG5cbiAgbm93LmNvbHVtbiArPSBpbmRleDtcbiAgbm93Lm9mZnNldCArPSBpbmRleDtcblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuICAgIHN1YnF1ZXVlID0gY2hhcmFjdGVyO1xuXG4gICAgaWYgKGNoYXJhY3RlciA9PT0gQ19USUNLKSB7XG4gICAgICAvKiBJbmxpbmUtY29kZSBpbiBsaW5rIGNvbnRlbnQuICovXG4gICAgICBjb3VudCA9IDE7XG5cbiAgICAgIHdoaWxlICh2YWx1ZS5jaGFyQXQoaW5kZXggKyAxKSA9PT0gQ19USUNLKSB7XG4gICAgICAgIHN1YnF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cblxuICAgICAgaWYgKCFvcGVuaW5nKSB7XG4gICAgICAgIG9wZW5pbmcgPSBjb3VudDtcbiAgICAgIH0gZWxzZSBpZiAoY291bnQgPj0gb3BlbmluZykge1xuICAgICAgICBvcGVuaW5nID0gMDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19CQUNLU0xBU0gpIHtcbiAgICAgIC8qIEFsbG93IGJyYWNrZXRzIHRvIGJlIGVzY2FwZWQuICovXG4gICAgICBpbmRleCsrO1xuICAgICAgc3VicXVldWUgKz0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICAvKiBJbiBHRk0gbW9kZSwgYnJhY2tldHMgaW4gY29kZSBzdGlsbCBjb3VudC5cbiAgICAgKiBJbiBhbGwgb3RoZXIgbW9kZXMsIHRoZXkgZG9u4oCZdC4gIFRoaXMgZW1wdHlcbiAgICAgKiBibG9jayBwcmV2ZW50cyB0aGUgbmV4dCBzdGF0ZW1lbnRzIGFyZVxuICAgICAqIGVudGVyZWQuICovXG4gICAgfSBlbHNlIGlmICgoIW9wZW5pbmcgfHwgZ2ZtKSAmJiBjaGFyYWN0ZXIgPT09IENfQlJBQ0tFVF9PUEVOKSB7XG4gICAgICBkZXB0aCsrO1xuICAgIH0gZWxzZSBpZiAoKCFvcGVuaW5nIHx8IGdmbSkgJiYgY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfQ0xPU0UpIHtcbiAgICAgIGlmIChkZXB0aCkge1xuICAgICAgICBkZXB0aC0tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogQWxsb3cgd2hpdGUtc3BhY2UgYmV0d2VlbiBjb250ZW50IGFuZFxuICAgICAgICAgKiB1cmwgaW4gR0ZNIG1vZGUuICovXG4gICAgICAgIGlmICghcGVkYW50aWMpIHtcbiAgICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCArIDEpO1xuXG4gICAgICAgICAgICBpZiAoIXdoaXRlc3BhY2UoY2hhcmFjdGVyKSkge1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3VicXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUuY2hhckF0KGluZGV4ICsgMSkgIT09IENfUEFSRU5fT1BFTikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1YnF1ZXVlICs9IENfUEFSRU5fT1BFTjtcbiAgICAgICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgaW5kZXgrKztcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBxdWV1ZSArPSBzdWJxdWV1ZTtcbiAgICBzdWJxdWV1ZSA9ICcnO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICAvKiBFYXQgdGhlIGNvbnRlbnQgY2xvc2luZy4gKi9cbiAgaWYgKCFjbG9zZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb250ZW50ID0gcXVldWU7XG4gIHN1YnZhbHVlICs9IHF1ZXVlICsgc3VicXVldWU7XG4gIGluZGV4Kys7XG5cbiAgLyogRWF0IHdoaXRlLXNwYWNlLiAqL1xuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgaWYgKCF3aGl0ZXNwYWNlKGNoYXJhY3RlcikpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG5cbiAgLyogRWF0IHRoZSBVUkwuICovXG4gIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gIG1hcmtlcnMgPSBjb21tb25tYXJrID8gQ09NTU9OTUFSS19MSU5LX01BUktFUlMgOiBMSU5LX01BUktFUlM7XG4gIHF1ZXVlID0gJyc7XG4gIGJlZm9yZVVSTCA9IHN1YnZhbHVlO1xuXG4gIGlmIChjaGFyYWN0ZXIgPT09IENfTFQpIHtcbiAgICBpbmRleCsrO1xuICAgIGJlZm9yZVVSTCArPSBDX0xUO1xuXG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyID09PSBDX0dUKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29tbW9ubWFyayAmJiBjaGFyYWN0ZXIgPT09ICdcXG4nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgaW5kZXgrKztcbiAgICB9XG5cbiAgICBpZiAodmFsdWUuY2hhckF0KGluZGV4KSAhPT0gQ19HVCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IENfTFQgKyBxdWV1ZSArIENfR1Q7XG4gICAgdXJsID0gcXVldWU7XG4gICAgaW5kZXgrKztcbiAgfSBlbHNlIHtcbiAgICBjaGFyYWN0ZXIgPSBudWxsO1xuICAgIHN1YnF1ZXVlID0gJyc7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICAgIGlmIChzdWJxdWV1ZSAmJiBvd24uY2FsbChtYXJrZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAod2hpdGVzcGFjZShjaGFyYWN0ZXIpKSB7XG4gICAgICAgIGlmICghcGVkYW50aWMpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN1YnF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfUEFSRU5fT1BFTikge1xuICAgICAgICAgIGRlcHRoKys7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhcmFjdGVyID09PSBDX1BBUkVOX0NMT1NFKSB7XG4gICAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICB9XG5cbiAgICAgICAgcXVldWUgKz0gc3VicXVldWU7XG4gICAgICAgIHN1YnF1ZXVlID0gJyc7XG5cbiAgICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19CQUNLU0xBU0gpIHtcbiAgICAgICAgICBxdWV1ZSArPSBDX0JBQ0tTTEFTSDtcbiAgICAgICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoKytpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICB9XG5cbiAgICAgIGluZGV4Kys7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gcXVldWU7XG4gICAgdXJsID0gcXVldWU7XG4gICAgaW5kZXggPSBzdWJ2YWx1ZS5sZW5ndGg7XG4gIH1cblxuICAvKiBFYXQgd2hpdGUtc3BhY2UuICovXG4gIHF1ZXVlID0gJyc7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmICghd2hpdGVzcGFjZShjaGFyYWN0ZXIpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxuXG4gIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gIHN1YnZhbHVlICs9IHF1ZXVlO1xuXG4gIC8qIEVhdCB0aGUgdGl0bGUuICovXG4gIGlmIChxdWV1ZSAmJiBvd24uY2FsbChtYXJrZXJzLCBjaGFyYWN0ZXIpKSB7XG4gICAgaW5kZXgrKztcbiAgICBzdWJ2YWx1ZSArPSBjaGFyYWN0ZXI7XG4gICAgcXVldWUgPSAnJztcbiAgICBtYXJrZXIgPSBtYXJrZXJzW2NoYXJhY3Rlcl07XG4gICAgYmVmb3JlVGl0bGUgPSBzdWJ2YWx1ZTtcblxuICAgIC8qIEluIGNvbW1vbm1hcmstbW9kZSwgdGhpbmdzIGFyZSBwcmV0dHkgZWFzeTogdGhlXG4gICAgICogbWFya2VyIGNhbm5vdCBvY2N1ciBpbnNpZGUgdGhlIHRpdGxlLlxuICAgICAqXG4gICAgICogTm9uLWNvbW1vbm1hcmsgZG9lcywgaG93ZXZlciwgc3VwcG9ydCBuZXN0ZWRcbiAgICAgKiBkZWxpbWl0ZXJzLiAqL1xuICAgIGlmIChjb21tb25tYXJrKSB7XG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgICBpZiAoY2hhcmFjdGVyID09PSBtYXJrZXIpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfQkFDS1NMQVNIKSB7XG4gICAgICAgICAgcXVldWUgKz0gQ19CQUNLU0xBU0g7XG4gICAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgfVxuXG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBtYXJrZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aXRsZSA9IHF1ZXVlO1xuICAgICAgc3VidmFsdWUgKz0gcXVldWUgKyBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgICBpZiAoIXdoaXRlc3BhY2UoY2hhcmFjdGVyKSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICBpbmRleCsrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzdWJxdWV1ZSA9ICcnO1xuXG4gICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgICBpZiAoY2hhcmFjdGVyID09PSBtYXJrZXIpIHtcbiAgICAgICAgICBpZiAoaGFzTWFya2VyKSB7XG4gICAgICAgICAgICBxdWV1ZSArPSBtYXJrZXIgKyBzdWJxdWV1ZTtcbiAgICAgICAgICAgIHN1YnF1ZXVlID0gJyc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaGFzTWFya2VyID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICghaGFzTWFya2VyKSB7XG4gICAgICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ19QQVJFTl9DTE9TRSkge1xuICAgICAgICAgIHN1YnZhbHVlICs9IHF1ZXVlICsgbWFya2VyICsgc3VicXVldWU7XG4gICAgICAgICAgdGl0bGUgPSBxdWV1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIGlmICh3aGl0ZXNwYWNlKGNoYXJhY3RlcikpIHtcbiAgICAgICAgICBzdWJxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcXVldWUgKz0gbWFya2VyICsgc3VicXVldWUgKyBjaGFyYWN0ZXI7XG4gICAgICAgICAgc3VicXVldWUgPSAnJztcbiAgICAgICAgICBoYXNNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluZGV4Kys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgIT09IENfUEFSRU5fQ0xPU0UpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN1YnZhbHVlICs9IENfUEFSRU5fQ0xPU0U7XG5cbiAgdXJsID0gc2VsZi5kZWNvZGUucmF3KHNlbGYudW5lc2NhcGUodXJsKSwgZWF0KGJlZm9yZVVSTCkudGVzdCgpLmVuZCwge25vblRlcm1pbmF0ZWQ6IGZhbHNlfSk7XG5cbiAgaWYgKHRpdGxlKSB7XG4gICAgYmVmb3JlVGl0bGUgPSBlYXQoYmVmb3JlVGl0bGUpLnRlc3QoKS5lbmQ7XG4gICAgdGl0bGUgPSBzZWxmLmRlY29kZS5yYXcoc2VsZi51bmVzY2FwZSh0aXRsZSksIGJlZm9yZVRpdGxlKTtcbiAgfVxuXG4gIG5vZGUgPSB7XG4gICAgdHlwZTogaXNJbWFnZSA/ICdpbWFnZScgOiAnbGluaycsXG4gICAgdGl0bGU6IHRpdGxlIHx8IG51bGwsXG4gICAgdXJsOiB1cmxcbiAgfTtcblxuICBpZiAoaXNJbWFnZSkge1xuICAgIG5vZGUuYWx0ID0gc2VsZi5kZWNvZGUucmF3KHNlbGYudW5lc2NhcGUoY29udGVudCksIG5vdykgfHwgbnVsbDtcbiAgfSBlbHNlIHtcbiAgICBleGl0ID0gc2VsZi5lbnRlckxpbmsoKTtcbiAgICBub2RlLmNoaWxkcmVuID0gc2VsZi50b2tlbml6ZUlubGluZShjb250ZW50LCBub3cpO1xuICAgIGV4aXQoKTtcbiAgfVxuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKG5vZGUpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG52YXIgbG9jYXRlID0gcmVxdWlyZSgnLi4vbG9jYXRlL2xpbmsnKTtcbnZhciBub3JtYWxpemUgPSByZXF1aXJlKCcuLi91dGlsL25vcm1hbGl6ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlZmVyZW5jZTtcbnJlZmVyZW5jZS5sb2NhdG9yID0gbG9jYXRlO1xuXG52YXIgVF9MSU5LID0gJ2xpbmsnO1xudmFyIFRfSU1BR0UgPSAnaW1hZ2UnO1xudmFyIFRfRk9PVE5PVEUgPSAnZm9vdG5vdGUnO1xudmFyIFJFRkVSRU5DRV9UWVBFX1NIT1JUQ1VUID0gJ3Nob3J0Y3V0JztcbnZhciBSRUZFUkVOQ0VfVFlQRV9DT0xMQVBTRUQgPSAnY29sbGFwc2VkJztcbnZhciBSRUZFUkVOQ0VfVFlQRV9GVUxMID0gJ2Z1bGwnO1xudmFyIENfQ0FSRVQgPSAnXic7XG52YXIgQ19CQUNLU0xBU0ggPSAnXFxcXCc7XG52YXIgQ19CUkFDS0VUX09QRU4gPSAnWyc7XG52YXIgQ19CUkFDS0VUX0NMT1NFID0gJ10nO1xuXG5mdW5jdGlvbiByZWZlcmVuY2UoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgwKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgdmFyIHN1YnZhbHVlID0gJyc7XG4gIHZhciBpbnRybyA9ICcnO1xuICB2YXIgdHlwZSA9IFRfTElOSztcbiAgdmFyIHJlZmVyZW5jZVR5cGUgPSBSRUZFUkVOQ0VfVFlQRV9TSE9SVENVVDtcbiAgdmFyIGNvbnRlbnQ7XG4gIHZhciBpZGVudGlmaWVyO1xuICB2YXIgbm93O1xuICB2YXIgbm9kZTtcbiAgdmFyIGV4aXQ7XG4gIHZhciBxdWV1ZTtcbiAgdmFyIGJyYWNrZXRlZDtcbiAgdmFyIGRlcHRoO1xuXG4gIC8qIENoZWNrIHdoZXRoZXIgd2XigJlyZSBlYXRpbmcgYW4gaW1hZ2UuICovXG4gIGlmIChjaGFyYWN0ZXIgPT09ICchJykge1xuICAgIHR5cGUgPSBUX0lNQUdFO1xuICAgIGludHJvID0gY2hhcmFjdGVyO1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgfVxuXG4gIGlmIChjaGFyYWN0ZXIgIT09IENfQlJBQ0tFVF9PUEVOKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaW5kZXgrKztcbiAgaW50cm8gKz0gY2hhcmFjdGVyO1xuICBxdWV1ZSA9ICcnO1xuXG4gIC8qIENoZWNrIHdoZXRoZXIgd2XigJlyZSBlYXRpbmcgYSBmb290bm90ZS4gKi9cbiAgaWYgKHNlbGYub3B0aW9ucy5mb290bm90ZXMgJiYgdmFsdWUuY2hhckF0KGluZGV4KSA9PT0gQ19DQVJFVCkge1xuICAgIC8qIEV4aXQgaWYgYCFbXmAgaXMgZm91bmQsIHNvIHRoZSBgIWAgd2lsbCBiZSBzZWVuIGFzIHRleHQgYWZ0ZXIgdGhpcyxcbiAgICAgKiBhbmQgd2XigJlsbCBlbnRlciB0aGlzIGZ1bmN0aW9uIGFnYWluIHdoZW4gYFteYCBpcyBmb3VuZC4gKi9cbiAgICBpZiAodHlwZSA9PT0gVF9JTUFHRSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGludHJvICs9IENfQ0FSRVQ7XG4gICAgaW5kZXgrKztcbiAgICB0eXBlID0gVF9GT09UTk9URTtcbiAgfVxuXG4gIC8qIEVhdCB0aGUgdGV4dC4gKi9cbiAgZGVwdGggPSAwO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfT1BFTikge1xuICAgICAgYnJhY2tldGVkID0gdHJ1ZTtcbiAgICAgIGRlcHRoKys7XG4gICAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IENfQlJBQ0tFVF9DTE9TRSkge1xuICAgICAgaWYgKCFkZXB0aCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZGVwdGgtLTtcbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX0JBQ0tTTEFTSCkge1xuICAgICAgcXVldWUgKz0gQ19CQUNLU0xBU0g7XG4gICAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoKytpbmRleCk7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBzdWJ2YWx1ZSA9IHF1ZXVlO1xuICBjb250ZW50ID0gcXVldWU7XG4gIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgaWYgKGNoYXJhY3RlciAhPT0gQ19CUkFDS0VUX0NMT1NFKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaW5kZXgrKztcbiAgc3VidmFsdWUgKz0gY2hhcmFjdGVyO1xuICBxdWV1ZSA9ICcnO1xuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoIXdoaXRlc3BhY2UoY2hhcmFjdGVyKSkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuXG4gIC8qIElubGluZSBmb290bm90ZXMgY2Fubm90IGhhdmUgYW4gaWRlbnRpZmllci4gKi9cbiAgaWYgKHR5cGUgIT09IFRfRk9PVE5PVEUgJiYgY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfT1BFTikge1xuICAgIGlkZW50aWZpZXIgPSAnJztcbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgICAgaWYgKGNoYXJhY3RlciA9PT0gQ19CUkFDS0VUX09QRU4gfHwgY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfQ0xPU0UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgPT09IENfQkFDS1NMQVNIKSB7XG4gICAgICAgIGlkZW50aWZpZXIgKz0gQ19CQUNLU0xBU0g7XG4gICAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgICAgIH1cblxuICAgICAgaWRlbnRpZmllciArPSBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuICAgIH1cblxuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX0JSQUNLRVRfQ0xPU0UpIHtcbiAgICAgIHJlZmVyZW5jZVR5cGUgPSBpZGVudGlmaWVyID8gUkVGRVJFTkNFX1RZUEVfRlVMTCA6IFJFRkVSRU5DRV9UWVBFX0NPTExBUFNFRDtcbiAgICAgIHF1ZXVlICs9IGlkZW50aWZpZXIgKyBjaGFyYWN0ZXI7XG4gICAgICBpbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZGVudGlmaWVyID0gJyc7XG4gICAgfVxuXG4gICAgc3VidmFsdWUgKz0gcXVldWU7XG4gICAgcXVldWUgPSAnJztcbiAgfSBlbHNlIHtcbiAgICBpZiAoIWNvbnRlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZGVudGlmaWVyID0gY29udGVudDtcbiAgfVxuXG4gIC8qIEJyYWNrZXRzIGNhbm5vdCBiZSBpbnNpZGUgdGhlIGlkZW50aWZpZXIuICovXG4gIGlmIChyZWZlcmVuY2VUeXBlICE9PSBSRUZFUkVOQ0VfVFlQRV9GVUxMICYmIGJyYWNrZXRlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHN1YnZhbHVlID0gaW50cm8gKyBzdWJ2YWx1ZTtcblxuICBpZiAodHlwZSA9PT0gVF9MSU5LICYmIHNlbGYuaW5MaW5rKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgLSBuZXZlciB1c2VkICh5ZXQpICovXG4gIGlmIChzaWxlbnQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBUX0ZPT1ROT1RFICYmIGNvbnRlbnQuaW5kZXhPZignICcpICE9PSAtMSkge1xuICAgIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICAgIHR5cGU6ICdmb290bm90ZScsXG4gICAgICBjaGlsZHJlbjogdGhpcy50b2tlbml6ZUlubGluZShjb250ZW50LCBlYXQubm93KCkpXG4gICAgfSk7XG4gIH1cblxuICBub3cgPSBlYXQubm93KCk7XG4gIG5vdy5jb2x1bW4gKz0gaW50cm8ubGVuZ3RoO1xuICBub3cub2Zmc2V0ICs9IGludHJvLmxlbmd0aDtcbiAgaWRlbnRpZmllciA9IHJlZmVyZW5jZVR5cGUgPT09IFJFRkVSRU5DRV9UWVBFX0ZVTEwgPyBpZGVudGlmaWVyIDogY29udGVudDtcblxuICBub2RlID0ge1xuICAgIHR5cGU6IHR5cGUgKyAnUmVmZXJlbmNlJyxcbiAgICBpZGVudGlmaWVyOiBub3JtYWxpemUoaWRlbnRpZmllcilcbiAgfTtcblxuICBpZiAodHlwZSA9PT0gVF9MSU5LIHx8IHR5cGUgPT09IFRfSU1BR0UpIHtcbiAgICBub2RlLnJlZmVyZW5jZVR5cGUgPSByZWZlcmVuY2VUeXBlO1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFRfTElOSykge1xuICAgIGV4aXQgPSBzZWxmLmVudGVyTGluaygpO1xuICAgIG5vZGUuY2hpbGRyZW4gPSBzZWxmLnRva2VuaXplSW5saW5lKGNvbnRlbnQsIG5vdyk7XG4gICAgZXhpdCgpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IFRfSU1BR0UpIHtcbiAgICBub2RlLmFsdCA9IHNlbGYuZGVjb2RlLnJhdyhzZWxmLnVuZXNjYXBlKGNvbnRlbnQpLCBub3cpIHx8IG51bGw7XG4gIH1cblxuICByZXR1cm4gZWF0KHN1YnZhbHVlKShub2RlKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBsb2NhdGU7XG5cbmZ1bmN0aW9uIGxvY2F0ZSh2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBhc3RlcmlzayA9IHZhbHVlLmluZGV4T2YoJyoqJywgZnJvbUluZGV4KTtcbiAgdmFyIHVuZGVyc2NvcmUgPSB2YWx1ZS5pbmRleE9mKCdfXycsIGZyb21JbmRleCk7XG5cbiAgaWYgKHVuZGVyc2NvcmUgPT09IC0xKSB7XG4gICAgcmV0dXJuIGFzdGVyaXNrO1xuICB9XG5cbiAgaWYgKGFzdGVyaXNrID09PSAtMSkge1xuICAgIHJldHVybiB1bmRlcnNjb3JlO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVyc2NvcmUgPCBhc3RlcmlzayA/IHVuZGVyc2NvcmUgOiBhc3Rlcmlzaztcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHRyaW0gPSByZXF1aXJlKCd0cmltJyk7XG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG52YXIgbG9jYXRlID0gcmVxdWlyZSgnLi4vbG9jYXRlL3N0cm9uZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cm9uZztcbnN0cm9uZy5sb2NhdG9yID0gbG9jYXRlO1xuXG52YXIgQ19BU1RFUklTSyA9ICcqJztcbnZhciBDX1VOREVSU0NPUkUgPSAnXyc7XG5cbmZ1bmN0aW9uIHN0cm9uZyhlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgdmFyIG5vdztcbiAgdmFyIHBlZGFudGljO1xuICB2YXIgbWFya2VyO1xuICB2YXIgcXVldWU7XG4gIHZhciBzdWJ2YWx1ZTtcbiAgdmFyIGxlbmd0aDtcbiAgdmFyIHByZXY7XG5cbiAgaWYgKFxuICAgIChjaGFyYWN0ZXIgIT09IENfQVNURVJJU0sgJiYgY2hhcmFjdGVyICE9PSBDX1VOREVSU0NPUkUpIHx8XG4gICAgdmFsdWUuY2hhckF0KCsraW5kZXgpICE9PSBjaGFyYWN0ZXJcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcGVkYW50aWMgPSBzZWxmLm9wdGlvbnMucGVkYW50aWM7XG4gIG1hcmtlciA9IGNoYXJhY3RlcjtcbiAgc3VidmFsdWUgPSBtYXJrZXIgKyBtYXJrZXI7XG4gIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgaW5kZXgrKztcbiAgcXVldWUgPSAnJztcbiAgY2hhcmFjdGVyID0gJyc7XG5cbiAgaWYgKHBlZGFudGljICYmIHdoaXRlc3BhY2UodmFsdWUuY2hhckF0KGluZGV4KSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICBwcmV2ID0gY2hhcmFjdGVyO1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoXG4gICAgICBjaGFyYWN0ZXIgPT09IG1hcmtlciAmJlxuICAgICAgdmFsdWUuY2hhckF0KGluZGV4ICsgMSkgPT09IG1hcmtlciAmJlxuICAgICAgKCFwZWRhbnRpYyB8fCAhd2hpdGVzcGFjZShwcmV2KSlcbiAgICApIHtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCArIDIpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBtYXJrZXIpIHtcbiAgICAgICAgaWYgKCF0cmltKHF1ZXVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgICAgICAgaWYgKHNpbGVudCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbm93ID0gZWF0Lm5vdygpO1xuICAgICAgICBub3cuY29sdW1uICs9IDI7XG4gICAgICAgIG5vdy5vZmZzZXQgKz0gMjtcblxuICAgICAgICByZXR1cm4gZWF0KHN1YnZhbHVlICsgcXVldWUgKyBzdWJ2YWx1ZSkoe1xuICAgICAgICAgIHR5cGU6ICdzdHJvbmcnLFxuICAgICAgICAgIGNoaWxkcmVuOiBzZWxmLnRva2VuaXplSW5saW5lKHF1ZXVlLCBub3cpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcGVkYW50aWMgJiYgY2hhcmFjdGVyID09PSAnXFxcXCcpIHtcbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdCgrK2luZGV4KTtcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgaW5kZXgrKztcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHdvcmRDaGFyYWN0ZXI7XG5cbnZhciBmcm9tQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG52YXIgcmUgPSAvXFx3LztcblxuLyogQ2hlY2sgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBjb2RlLCBvciB0aGUgY2hhcmFjdGVyXG4gKiBjb2RlIGF0IHRoZSBmaXJzdCBjaGFyYWN0ZXIsIGlzIGEgd29yZCBjaGFyYWN0ZXIuICovXG5mdW5jdGlvbiB3b3JkQ2hhcmFjdGVyKGNoYXJhY3Rlcikge1xuICByZXR1cm4gcmUudGVzdChcbiAgICB0eXBlb2YgY2hhcmFjdGVyID09PSAnbnVtYmVyJyA/IGZyb21Db2RlKGNoYXJhY3RlcikgOiBjaGFyYWN0ZXIuY2hhckF0KDApXG4gICk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYXRlO1xuXG5mdW5jdGlvbiBsb2NhdGUodmFsdWUsIGZyb21JbmRleCkge1xuICB2YXIgYXN0ZXJpc2sgPSB2YWx1ZS5pbmRleE9mKCcqJywgZnJvbUluZGV4KTtcbiAgdmFyIHVuZGVyc2NvcmUgPSB2YWx1ZS5pbmRleE9mKCdfJywgZnJvbUluZGV4KTtcblxuICBpZiAodW5kZXJzY29yZSA9PT0gLTEpIHtcbiAgICByZXR1cm4gYXN0ZXJpc2s7XG4gIH1cblxuICBpZiAoYXN0ZXJpc2sgPT09IC0xKSB7XG4gICAgcmV0dXJuIHVuZGVyc2NvcmU7XG4gIH1cblxuICByZXR1cm4gdW5kZXJzY29yZSA8IGFzdGVyaXNrID8gdW5kZXJzY29yZSA6IGFzdGVyaXNrO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgdHJpbSA9IHJlcXVpcmUoJ3RyaW0nKTtcbnZhciB3b3JkID0gcmVxdWlyZSgnaXMtd29yZC1jaGFyYWN0ZXInKTtcbnZhciB3aGl0ZXNwYWNlID0gcmVxdWlyZSgnaXMtd2hpdGVzcGFjZS1jaGFyYWN0ZXInKTtcbnZhciBsb2NhdGUgPSByZXF1aXJlKCcuLi9sb2NhdGUvZW1waGFzaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBlbXBoYXNpcztcbmVtcGhhc2lzLmxvY2F0b3IgPSBsb2NhdGU7XG5cbnZhciBDX0FTVEVSSVNLID0gJyonO1xudmFyIENfVU5ERVJTQ09SRSA9ICdfJztcblxuZnVuY3Rpb24gZW1waGFzaXMoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG4gIHZhciBub3c7XG4gIHZhciBwZWRhbnRpYztcbiAgdmFyIG1hcmtlcjtcbiAgdmFyIHF1ZXVlO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBsZW5ndGg7XG4gIHZhciBwcmV2O1xuXG4gIGlmIChjaGFyYWN0ZXIgIT09IENfQVNURVJJU0sgJiYgY2hhcmFjdGVyICE9PSBDX1VOREVSU0NPUkUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwZWRhbnRpYyA9IHNlbGYub3B0aW9ucy5wZWRhbnRpYztcbiAgc3VidmFsdWUgPSBjaGFyYWN0ZXI7XG4gIG1hcmtlciA9IGNoYXJhY3RlcjtcbiAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuICBpbmRleCsrO1xuICBxdWV1ZSA9ICcnO1xuICBjaGFyYWN0ZXIgPSAnJztcblxuICBpZiAocGVkYW50aWMgJiYgd2hpdGVzcGFjZSh2YWx1ZS5jaGFyQXQoaW5kZXgpKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIHByZXYgPSBjaGFyYWN0ZXI7XG4gICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmIChjaGFyYWN0ZXIgPT09IG1hcmtlciAmJiAoIXBlZGFudGljIHx8ICF3aGl0ZXNwYWNlKHByZXYpKSkge1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuXG4gICAgICBpZiAoY2hhcmFjdGVyICE9PSBtYXJrZXIpIHtcbiAgICAgICAgaWYgKCF0cmltKHF1ZXVlKSB8fCBwcmV2ID09PSBtYXJrZXIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBlZGFudGljICYmIG1hcmtlciA9PT0gQ19VTkRFUlNDT1JFICYmIHdvcmQoY2hhcmFjdGVyKSkge1xuICAgICAgICAgIHF1ZXVlICs9IG1hcmtlcjtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgICAgICAgaWYgKHNpbGVudCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbm93ID0gZWF0Lm5vdygpO1xuICAgICAgICBub3cuY29sdW1uKys7XG4gICAgICAgIG5vdy5vZmZzZXQrKztcblxuICAgICAgICByZXR1cm4gZWF0KHN1YnZhbHVlICsgcXVldWUgKyBtYXJrZXIpKHtcbiAgICAgICAgICB0eXBlOiAnZW1waGFzaXMnLFxuICAgICAgICAgIGNoaWxkcmVuOiBzZWxmLnRva2VuaXplSW5saW5lKHF1ZXVlLCBub3cpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZSArPSBtYXJrZXI7XG4gICAgfVxuXG4gICAgaWYgKCFwZWRhbnRpYyAmJiBjaGFyYWN0ZXIgPT09ICdcXFxcJykge1xuICAgICAgcXVldWUgKz0gY2hhcmFjdGVyO1xuICAgICAgY2hhcmFjdGVyID0gdmFsdWUuY2hhckF0KCsraW5kZXgpO1xuICAgIH1cblxuICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICBpbmRleCsrO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYXRlO1xuXG5mdW5jdGlvbiBsb2NhdGUodmFsdWUsIGZyb21JbmRleCkge1xuICByZXR1cm4gdmFsdWUuaW5kZXhPZignfn4nLCBmcm9tSW5kZXgpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgd2hpdGVzcGFjZSA9IHJlcXVpcmUoJ2lzLXdoaXRlc3BhY2UtY2hhcmFjdGVyJyk7XG52YXIgbG9jYXRlID0gcmVxdWlyZSgnLi4vbG9jYXRlL2RlbGV0ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmlrZXRocm91Z2g7XG5zdHJpa2V0aHJvdWdoLmxvY2F0b3IgPSBsb2NhdGU7XG5cbnZhciBDX1RJTERFID0gJ34nO1xudmFyIERPVUJMRSA9ICd+fic7XG5cbmZ1bmN0aW9uIHN0cmlrZXRocm91Z2goZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIGNoYXJhY3RlciA9ICcnO1xuICB2YXIgcHJldmlvdXMgPSAnJztcbiAgdmFyIHByZWNlZGluZyA9ICcnO1xuICB2YXIgc3VidmFsdWUgPSAnJztcbiAgdmFyIGluZGV4O1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgbm93O1xuXG4gIGlmIChcbiAgICAhc2VsZi5vcHRpb25zLmdmbSB8fFxuICAgIHZhbHVlLmNoYXJBdCgwKSAhPT0gQ19USUxERSB8fFxuICAgIHZhbHVlLmNoYXJBdCgxKSAhPT0gQ19USUxERSB8fFxuICAgIHdoaXRlc3BhY2UodmFsdWUuY2hhckF0KDIpKVxuICApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpbmRleCA9IDE7XG4gIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgbm93ID0gZWF0Lm5vdygpO1xuICBub3cuY29sdW1uICs9IDI7XG4gIG5vdy5vZmZzZXQgKz0gMjtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoXG4gICAgICBjaGFyYWN0ZXIgPT09IENfVElMREUgJiZcbiAgICAgIHByZXZpb3VzID09PSBDX1RJTERFICYmXG4gICAgICAoIXByZWNlZGluZyB8fCAhd2hpdGVzcGFjZShwcmVjZWRpbmcpKVxuICAgICkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICAgICAgaWYgKHNpbGVudCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVhdChET1VCTEUgKyBzdWJ2YWx1ZSArIERPVUJMRSkoe1xuICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgY2hpbGRyZW46IHNlbGYudG9rZW5pemVJbmxpbmUoc3VidmFsdWUsIG5vdylcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1YnZhbHVlICs9IHByZXZpb3VzO1xuICAgIHByZWNlZGluZyA9IHByZXZpb3VzO1xuICAgIHByZXZpb3VzID0gY2hhcmFjdGVyO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gbG9jYXRlO1xuXG5mdW5jdGlvbiBsb2NhdGUodmFsdWUsIGZyb21JbmRleCkge1xuICByZXR1cm4gdmFsdWUuaW5kZXhPZignYCcsIGZyb21JbmRleCk7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB3aGl0ZXNwYWNlID0gcmVxdWlyZSgnaXMtd2hpdGVzcGFjZS1jaGFyYWN0ZXInKTtcbnZhciBsb2NhdGUgPSByZXF1aXJlKCcuLi9sb2NhdGUvY29kZS1pbmxpbmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBpbmxpbmVDb2RlO1xuaW5saW5lQ29kZS5sb2NhdG9yID0gbG9jYXRlO1xuXG52YXIgQ19USUNLID0gJ2AnO1xuXG4vKiBUb2tlbmlzZSBpbmxpbmUgY29kZS4gKi9cbmZ1bmN0aW9uIGlubGluZUNvZGUoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBxdWV1ZSA9ICcnO1xuICB2YXIgdGlja1F1ZXVlID0gJyc7XG4gIHZhciBjb250ZW50UXVldWU7XG4gIHZhciBzdWJxdWV1ZTtcbiAgdmFyIGNvdW50O1xuICB2YXIgb3BlbmluZ0NvdW50O1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBjaGFyYWN0ZXI7XG4gIHZhciBmb3VuZDtcbiAgdmFyIG5leHQ7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCkgIT09IENfVElDSykge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcXVldWUgKz0gQ19USUNLO1xuICAgIGluZGV4Kys7XG4gIH1cblxuICBpZiAoIXF1ZXVlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3VidmFsdWUgPSBxdWV1ZTtcbiAgb3BlbmluZ0NvdW50ID0gaW5kZXg7XG4gIHF1ZXVlID0gJyc7XG4gIG5leHQgPSB2YWx1ZS5jaGFyQXQoaW5kZXgpO1xuICBjb3VudCA9IDA7XG5cbiAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gbmV4dDtcbiAgICBuZXh0ID0gdmFsdWUuY2hhckF0KGluZGV4ICsgMSk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSBDX1RJQ0spIHtcbiAgICAgIGNvdW50Kys7XG4gICAgICB0aWNrUXVldWUgKz0gY2hhcmFjdGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IDA7XG4gICAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gICAgfVxuXG4gICAgaWYgKGNvdW50ICYmIG5leHQgIT09IENfVElDSykge1xuICAgICAgaWYgKGNvdW50ID09PSBvcGVuaW5nQ291bnQpIHtcbiAgICAgICAgc3VidmFsdWUgKz0gcXVldWUgKyB0aWNrUXVldWU7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlICs9IHRpY2tRdWV1ZTtcbiAgICAgIHRpY2tRdWV1ZSA9ICcnO1xuICAgIH1cblxuICAgIGluZGV4Kys7XG4gIH1cblxuICBpZiAoIWZvdW5kKSB7XG4gICAgaWYgKG9wZW5pbmdDb3VudCAlIDIgIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBxdWV1ZSA9ICcnO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBjb250ZW50UXVldWUgPSAnJztcbiAgc3VicXVldWUgPSAnJztcbiAgbGVuZ3RoID0gcXVldWUubGVuZ3RoO1xuICBpbmRleCA9IC0xO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgY2hhcmFjdGVyID0gcXVldWUuY2hhckF0KGluZGV4KTtcblxuICAgIGlmICh3aGl0ZXNwYWNlKGNoYXJhY3RlcikpIHtcbiAgICAgIHN1YnF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChzdWJxdWV1ZSkge1xuICAgICAgaWYgKGNvbnRlbnRRdWV1ZSkge1xuICAgICAgICBjb250ZW50UXVldWUgKz0gc3VicXVldWU7XG4gICAgICB9XG5cbiAgICAgIHN1YnF1ZXVlID0gJyc7XG4gICAgfVxuXG4gICAgY29udGVudFF1ZXVlICs9IGNoYXJhY3RlcjtcbiAgfVxuXG4gIHJldHVybiBlYXQoc3VidmFsdWUpKHtcbiAgICB0eXBlOiAnaW5saW5lQ29kZScsXG4gICAgdmFsdWU6IGNvbnRlbnRRdWV1ZVxuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBsb2NhdGU7XG5cbmZ1bmN0aW9uIGxvY2F0ZSh2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBpbmRleCA9IHZhbHVlLmluZGV4T2YoJ1xcbicsIGZyb21JbmRleCk7XG5cbiAgd2hpbGUgKGluZGV4ID4gZnJvbUluZGV4KSB7XG4gICAgaWYgKHZhbHVlLmNoYXJBdChpbmRleCAtIDEpICE9PSAnICcpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGluZGV4LS07XG4gIH1cblxuICByZXR1cm4gaW5kZXg7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBsb2NhdGUgPSByZXF1aXJlKCcuLi9sb2NhdGUvYnJlYWsnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBoYXJkQnJlYWs7XG5oYXJkQnJlYWsubG9jYXRvciA9IGxvY2F0ZTtcblxudmFyIE1JTl9CUkVBS19MRU5HVEggPSAyO1xuXG5mdW5jdGlvbiBoYXJkQnJlYWsoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgcXVldWUgPSAnJztcbiAgdmFyIGNoYXJhY3RlcjtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGNoYXJhY3RlciA9IHZhbHVlLmNoYXJBdChpbmRleCk7XG5cbiAgICBpZiAoY2hhcmFjdGVyID09PSAnXFxuJykge1xuICAgICAgaWYgKGluZGV4IDwgTUlOX0JSRUFLX0xFTkdUSCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgICAgIGlmIChzaWxlbnQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlICs9IGNoYXJhY3RlcjtcblxuICAgICAgcmV0dXJuIGVhdChxdWV1ZSkoe3R5cGU6ICdicmVhayd9KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhcmFjdGVyICE9PSAnICcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBxdWV1ZSArPSBjaGFyYWN0ZXI7XG4gIH1cbn1cbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSB0ZXh0O1xuXG5mdW5jdGlvbiB0ZXh0KGVhdCwgdmFsdWUsIHNpbGVudCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciBtZXRob2RzO1xuICB2YXIgdG9rZW5pemVycztcbiAgdmFyIGluZGV4O1xuICB2YXIgbGVuZ3RoO1xuICB2YXIgc3VidmFsdWU7XG4gIHZhciBwb3NpdGlvbjtcbiAgdmFyIHRva2VuaXplcjtcbiAgdmFyIG5hbWU7XG4gIHZhciBtaW47XG4gIHZhciBub3c7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmIC0gbmV2ZXIgdXNlZCAoeWV0KSAqL1xuICBpZiAoc2lsZW50KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBtZXRob2RzID0gc2VsZi5pbmxpbmVNZXRob2RzO1xuICBsZW5ndGggPSBtZXRob2RzLmxlbmd0aDtcbiAgdG9rZW5pemVycyA9IHNlbGYuaW5saW5lVG9rZW5pemVycztcbiAgaW5kZXggPSAtMTtcbiAgbWluID0gdmFsdWUubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgbmFtZSA9IG1ldGhvZHNbaW5kZXhdO1xuXG4gICAgaWYgKG5hbWUgPT09ICd0ZXh0JyB8fCAhdG9rZW5pemVyc1tuYW1lXSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdG9rZW5pemVyID0gdG9rZW5pemVyc1tuYW1lXS5sb2NhdG9yO1xuXG4gICAgaWYgKCF0b2tlbml6ZXIpIHtcbiAgICAgIGVhdC5maWxlLmZhaWwoJ01pc3NpbmcgbG9jYXRvcjogYCcgKyBuYW1lICsgJ2AnKTtcbiAgICB9XG5cbiAgICBwb3NpdGlvbiA9IHRva2VuaXplci5jYWxsKHNlbGYsIHZhbHVlLCAxKTtcblxuICAgIGlmIChwb3NpdGlvbiAhPT0gLTEgJiYgcG9zaXRpb24gPCBtaW4pIHtcbiAgICAgIG1pbiA9IHBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHN1YnZhbHVlID0gdmFsdWUuc2xpY2UoMCwgbWluKTtcbiAgbm93ID0gZWF0Lm5vdygpO1xuXG4gIHNlbGYuZGVjb2RlKHN1YnZhbHVlLCBub3csIGZ1bmN0aW9uIChjb250ZW50LCBwb3NpdGlvbiwgc291cmNlKSB7XG4gICAgZWF0KHNvdXJjZSB8fCBjb250ZW50KSh7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB2YWx1ZTogY29udGVudFxuICAgIH0pO1xuICB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKTtcbnZhciB0b2dnbGUgPSByZXF1aXJlKCdzdGF0ZS10b2dnbGUnKTtcbnZhciB2ZmlsZUxvY2F0aW9uID0gcmVxdWlyZSgndmZpbGUtbG9jYXRpb24nKTtcbnZhciB1bmVzY2FwZSA9IHJlcXVpcmUoJy4vdW5lc2NhcGUnKTtcbnZhciBkZWNvZGUgPSByZXF1aXJlKCcuL2RlY29kZScpO1xudmFyIHRva2VuaXplciA9IHJlcXVpcmUoJy4vdG9rZW5pemVyJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gUGFyc2VyO1xuXG5mdW5jdGlvbiBQYXJzZXIoZG9jLCBmaWxlKSB7XG4gIHRoaXMuZmlsZSA9IGZpbGU7XG4gIHRoaXMub2Zmc2V0ID0ge307XG4gIHRoaXMub3B0aW9ucyA9IHh0ZW5kKHRoaXMub3B0aW9ucyk7XG4gIHRoaXMuc2V0T3B0aW9ucyh7fSk7XG5cbiAgdGhpcy5pbkxpc3QgPSBmYWxzZTtcbiAgdGhpcy5pbkJsb2NrID0gZmFsc2U7XG4gIHRoaXMuaW5MaW5rID0gZmFsc2U7XG4gIHRoaXMuYXRTdGFydCA9IHRydWU7XG5cbiAgdGhpcy50b09mZnNldCA9IHZmaWxlTG9jYXRpb24oZmlsZSkudG9PZmZzZXQ7XG4gIHRoaXMudW5lc2NhcGUgPSB1bmVzY2FwZSh0aGlzLCAnZXNjYXBlJyk7XG4gIHRoaXMuZGVjb2RlID0gZGVjb2RlKHRoaXMpO1xufVxuXG52YXIgcHJvdG8gPSBQYXJzZXIucHJvdG90eXBlO1xuXG4vKiBFeHBvc2UgY29yZS4gKi9cbnByb3RvLnNldE9wdGlvbnMgPSByZXF1aXJlKCcuL3NldC1vcHRpb25zJyk7XG5wcm90by5wYXJzZSA9IHJlcXVpcmUoJy4vcGFyc2UnKTtcblxuLyogRXhwb3NlIGBkZWZhdWx0c2AuICovXG5wcm90by5vcHRpb25zID0gcmVxdWlyZSgnLi9kZWZhdWx0cycpO1xuXG4vKiBFbnRlciBhbmQgZXhpdCBoZWxwZXJzLiAqL1xucHJvdG8uZXhpdFN0YXJ0ID0gdG9nZ2xlKCdhdFN0YXJ0JywgdHJ1ZSk7XG5wcm90by5lbnRlckxpc3QgPSB0b2dnbGUoJ2luTGlzdCcsIGZhbHNlKTtcbnByb3RvLmVudGVyTGluayA9IHRvZ2dsZSgnaW5MaW5rJywgZmFsc2UpO1xucHJvdG8uZW50ZXJCbG9jayA9IHRvZ2dsZSgnaW5CbG9jaycsIGZhbHNlKTtcblxuLyogTm9kZXMgdGhhdCBjYW4gaW50ZXJ1cHQgYSBwYXJhZ3JhcGg6XG4gKlxuICogYGBgbWFya2Rvd25cbiAqIEEgcGFyYWdyYXBoLCBmb2xsb3dlZCBieSBhIHRoZW1hdGljIGJyZWFrLlxuICogX19fXG4gKiBgYGBcbiAqXG4gKiBJbiB0aGUgYWJvdmUgZXhhbXBsZSwgdGhlIHRoZW1hdGljIGJyZWFrIOKAnGludGVydXB0c+KAnVxuICogdGhlIHBhcmFncmFwaC4gKi9cbnByb3RvLmludGVycnVwdFBhcmFncmFwaCA9IFtcbiAgWyd0aGVtYXRpY0JyZWFrJ10sXG4gIFsnYXR4SGVhZGluZyddLFxuICBbJ2ZlbmNlZENvZGUnXSxcbiAgWydibG9ja3F1b3RlJ10sXG4gIFsnaHRtbCddLFxuICBbJ3NldGV4dEhlYWRpbmcnLCB7Y29tbW9ubWFyazogZmFsc2V9XSxcbiAgWydkZWZpbml0aW9uJywge2NvbW1vbm1hcms6IGZhbHNlfV0sXG4gIFsnZm9vdG5vdGUnLCB7Y29tbW9ubWFyazogZmFsc2V9XVxuXTtcblxuLyogTm9kZXMgdGhhdCBjYW4gaW50ZXJ1cHQgYSBsaXN0OlxuICpcbiAqIGBgYG1hcmtkb3duXG4gKiAtIE9uZVxuICogX19fXG4gKiBgYGBcbiAqXG4gKiBJbiB0aGUgYWJvdmUgZXhhbXBsZSwgdGhlIHRoZW1hdGljIGJyZWFrIOKAnGludGVydXB0c+KAnVxuICogdGhlIGxpc3QuICovXG5wcm90by5pbnRlcnJ1cHRMaXN0ID0gW1xuICBbJ2F0eEhlYWRpbmcnLCB7cGVkYW50aWM6IGZhbHNlfV0sXG4gIFsnZmVuY2VkQ29kZScsIHtwZWRhbnRpYzogZmFsc2V9XSxcbiAgWyd0aGVtYXRpY0JyZWFrJywge3BlZGFudGljOiBmYWxzZX1dLFxuICBbJ2RlZmluaXRpb24nLCB7Y29tbW9ubWFyazogZmFsc2V9XSxcbiAgWydmb290bm90ZScsIHtjb21tb25tYXJrOiBmYWxzZX1dXG5dO1xuXG4vKiBOb2RlcyB0aGF0IGNhbiBpbnRlcnVwdCBhIGJsb2NrcXVvdGU6XG4gKlxuICogYGBgbWFya2Rvd25cbiAqID4gQSBwYXJhZ3JhcGguXG4gKiBfX19cbiAqIGBgYFxuICpcbiAqIEluIHRoZSBhYm92ZSBleGFtcGxlLCB0aGUgdGhlbWF0aWMgYnJlYWsg4oCcaW50ZXJ1cHRz4oCdXG4gKiB0aGUgYmxvY2txdW90ZS4gKi9cbnByb3RvLmludGVycnVwdEJsb2NrcXVvdGUgPSBbXG4gIFsnaW5kZW50ZWRDb2RlJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydmZW5jZWRDb2RlJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydhdHhIZWFkaW5nJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydzZXRleHRIZWFkaW5nJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWyd0aGVtYXRpY0JyZWFrJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydodG1sJywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydsaXN0Jywge2NvbW1vbm1hcms6IHRydWV9XSxcbiAgWydkZWZpbml0aW9uJywge2NvbW1vbm1hcms6IGZhbHNlfV0sXG4gIFsnZm9vdG5vdGUnLCB7Y29tbW9ubWFyazogZmFsc2V9XVxuXTtcblxuLyogSGFuZGxlcnMuICovXG5wcm90by5ibG9ja1Rva2VuaXplcnMgPSB7XG4gIG5ld2xpbmU6IHJlcXVpcmUoJy4vdG9rZW5pemUvbmV3bGluZScpLFxuICBpbmRlbnRlZENvZGU6IHJlcXVpcmUoJy4vdG9rZW5pemUvY29kZS1pbmRlbnRlZCcpLFxuICBmZW5jZWRDb2RlOiByZXF1aXJlKCcuL3Rva2VuaXplL2NvZGUtZmVuY2VkJyksXG4gIGJsb2NrcXVvdGU6IHJlcXVpcmUoJy4vdG9rZW5pemUvYmxvY2txdW90ZScpLFxuICBhdHhIZWFkaW5nOiByZXF1aXJlKCcuL3Rva2VuaXplL2hlYWRpbmctYXR4JyksXG4gIHRoZW1hdGljQnJlYWs6IHJlcXVpcmUoJy4vdG9rZW5pemUvdGhlbWF0aWMtYnJlYWsnKSxcbiAgbGlzdDogcmVxdWlyZSgnLi90b2tlbml6ZS9saXN0JyksXG4gIHNldGV4dEhlYWRpbmc6IHJlcXVpcmUoJy4vdG9rZW5pemUvaGVhZGluZy1zZXRleHQnKSxcbiAgaHRtbDogcmVxdWlyZSgnLi90b2tlbml6ZS9odG1sLWJsb2NrJyksXG4gIGZvb3Rub3RlOiByZXF1aXJlKCcuL3Rva2VuaXplL2Zvb3Rub3RlLWRlZmluaXRpb24nKSxcbiAgZGVmaW5pdGlvbjogcmVxdWlyZSgnLi90b2tlbml6ZS9kZWZpbml0aW9uJyksXG4gIHRhYmxlOiByZXF1aXJlKCcuL3Rva2VuaXplL3RhYmxlJyksXG4gIHBhcmFncmFwaDogcmVxdWlyZSgnLi90b2tlbml6ZS9wYXJhZ3JhcGgnKVxufTtcblxucHJvdG8uaW5saW5lVG9rZW5pemVycyA9IHtcbiAgZXNjYXBlOiByZXF1aXJlKCcuL3Rva2VuaXplL2VzY2FwZScpLFxuICBhdXRvTGluazogcmVxdWlyZSgnLi90b2tlbml6ZS9hdXRvLWxpbmsnKSxcbiAgdXJsOiByZXF1aXJlKCcuL3Rva2VuaXplL3VybCcpLFxuICBodG1sOiByZXF1aXJlKCcuL3Rva2VuaXplL2h0bWwtaW5saW5lJyksXG4gIGxpbms6IHJlcXVpcmUoJy4vdG9rZW5pemUvbGluaycpLFxuICByZWZlcmVuY2U6IHJlcXVpcmUoJy4vdG9rZW5pemUvcmVmZXJlbmNlJyksXG4gIHN0cm9uZzogcmVxdWlyZSgnLi90b2tlbml6ZS9zdHJvbmcnKSxcbiAgZW1waGFzaXM6IHJlcXVpcmUoJy4vdG9rZW5pemUvZW1waGFzaXMnKSxcbiAgZGVsZXRpb246IHJlcXVpcmUoJy4vdG9rZW5pemUvZGVsZXRlJyksXG4gIGNvZGU6IHJlcXVpcmUoJy4vdG9rZW5pemUvY29kZS1pbmxpbmUnKSxcbiAgYnJlYWs6IHJlcXVpcmUoJy4vdG9rZW5pemUvYnJlYWsnKSxcbiAgdGV4dDogcmVxdWlyZSgnLi90b2tlbml6ZS90ZXh0Jylcbn07XG5cbi8qIEV4cG9zZSBwcmVjZWRlbmNlLiAqL1xucHJvdG8uYmxvY2tNZXRob2RzID0ga2V5cyhwcm90by5ibG9ja1Rva2VuaXplcnMpO1xucHJvdG8uaW5saW5lTWV0aG9kcyA9IGtleXMocHJvdG8uaW5saW5lVG9rZW5pemVycyk7XG5cbi8qIFRva2VuaXplcnMuICovXG5wcm90by50b2tlbml6ZUJsb2NrID0gdG9rZW5pemVyKCdibG9jaycpO1xucHJvdG8udG9rZW5pemVJbmxpbmUgPSB0b2tlbml6ZXIoJ2lubGluZScpO1xucHJvdG8udG9rZW5pemVGYWN0b3J5ID0gdG9rZW5pemVyO1xuXG4vKiBHZXQgYWxsIGtleXMgaW4gYHZhbHVlYC4gKi9cbmZ1bmN0aW9uIGtleXModmFsdWUpIHtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIga2V5O1xuXG4gIGZvciAoa2V5IGluIHZhbHVlKSB7XG4gICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciB1bmhlcml0ID0gcmVxdWlyZSgndW5oZXJpdCcpO1xudmFyIHh0ZW5kID0gcmVxdWlyZSgneHRlbmQnKTtcbnZhciBQYXJzZXIgPSByZXF1aXJlKCcuL2xpYi9wYXJzZXIuanMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZTtcbnBhcnNlLlBhcnNlciA9IFBhcnNlcjtcblxuZnVuY3Rpb24gcGFyc2Uob3B0aW9ucykge1xuICB2YXIgTG9jYWwgPSB1bmhlcml0KFBhcnNlcik7XG4gIExvY2FsLnByb3RvdHlwZS5vcHRpb25zID0geHRlbmQoTG9jYWwucHJvdG90eXBlLm9wdGlvbnMsIHRoaXMuZGF0YSgnc2V0dGluZ3MnKSwgb3B0aW9ucyk7XG4gIHRoaXMuUGFyc2VyID0gTG9jYWw7XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBfc2xpY2VkVG9BcnJheSA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gc2xpY2VJdGVyYXRvcihhcnIsIGkpIHsgdmFyIF9hcnIgPSBbXTsgdmFyIF9uID0gdHJ1ZTsgdmFyIF9kID0gZmFsc2U7IHZhciBfZSA9IHVuZGVmaW5lZDsgdHJ5IHsgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgeyBfYXJyLnB1c2goX3MudmFsdWUpOyBpZiAoaSAmJiBfYXJyLmxlbmd0aCA9PT0gaSkgYnJlYWs7IH0gfSBjYXRjaCAoZXJyKSB7IF9kID0gdHJ1ZTsgX2UgPSBlcnI7IH0gZmluYWxseSB7IHRyeSB7IGlmICghX24gJiYgX2lbXCJyZXR1cm5cIl0pIF9pW1wicmV0dXJuXCJdKCk7IH0gZmluYWxseSB7IGlmIChfZCkgdGhyb3cgX2U7IH0gfSByZXR1cm4gX2FycjsgfSByZXR1cm4gZnVuY3Rpb24gKGFyciwgaSkgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7IHJldHVybiBhcnI7IH0gZWxzZSBpZiAoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSB7IHJldHVybiBzbGljZUl0ZXJhdG9yKGFyciwgaSk7IH0gZWxzZSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpOyB9IH07IH0oKTtcblxuZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7IGZvciAodmFyIGkgPSAwLCBhcnIyID0gQXJyYXkoYXJyLmxlbmd0aCk7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfSBlbHNlIHsgcmV0dXJuIEFycmF5LmZyb20oYXJyKTsgfSB9XG5cbnZhciBzcGFjZVNlcGFyYXRlZCA9IHJlcXVpcmUoJ3NwYWNlLXNlcGFyYXRlZC10b2tlbnMnKTtcblxuZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1stW11cXC9cXHtcXH1cXChcXClcXCpcXCtcXD9cXC5cXFxcXFxeXFwkXFx8XS9nLCAnXFxcXCQmJyk7XG59XG5cbnZhciBDX05FV0xJTkUgPSAnXFxuJztcbnZhciBDX0ZFTkNFID0gJ3wnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGJsb2NrUGx1Z2luKCkge1xuICB2YXIgYXZhaWxhYmxlQmxvY2tzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcblxuICB2YXIgcGF0dGVybiA9IE9iamVjdC5rZXlzKGF2YWlsYWJsZUJsb2NrcykubWFwKGVzY2FwZVJlZ0V4cCkuam9pbignfCcpO1xuXG4gIGlmICghcGF0dGVybikge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVtYXJrLWN1c3RvbS1ibG9ja3MgbmVlZHMgdG8gYmUgcGFzc2VkIGEgY29uZmlndXJhdGlvbiBvYmplY3QgYXMgb3B0aW9uJyk7XG4gIH1cblxuICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCdcXFxcW1xcXFxbKCcgKyBwYXR0ZXJuICsgJykoPzogKlxcXFx8ICooLiopKT9cXFxcXVxcXFxdXFxuJyk7XG5cbiAgZnVuY3Rpb24gYmxvY2tUb2tlbml6ZXIoZWF0LCB2YWx1ZSwgc2lsZW50KSB7XG4gICAgdmFyIG5vdyA9IGVhdC5ub3coKTtcbiAgICB2YXIga2VlcCA9IHJlZ2V4LmV4ZWModmFsdWUpO1xuICAgIGlmICgha2VlcCkgcmV0dXJuO1xuICAgIGlmIChrZWVwLmluZGV4ICE9PSAwKSByZXR1cm47XG5cbiAgICB2YXIgX2tlZXAgPSBfc2xpY2VkVG9BcnJheShrZWVwLCAzKSxcbiAgICAgICAgZWF0ZW4gPSBfa2VlcFswXSxcbiAgICAgICAgYmxvY2tUeXBlID0gX2tlZXBbMV0sXG4gICAgICAgIGJsb2NrVGl0bGUgPSBfa2VlcFsyXTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cblxuXG4gICAgaWYgKHNpbGVudCkgcmV0dXJuIHRydWU7XG5cbiAgICB2YXIgbGluZXNUb0VhdCA9IFtdO1xuICAgIHZhciBjb250ZW50ID0gW107XG5cbiAgICB2YXIgaWR4ID0gMDtcbiAgICB3aGlsZSAoKGlkeCA9IHZhbHVlLmluZGV4T2YoQ19ORVdMSU5FKSkgIT09IC0xKSB7XG4gICAgICB2YXIgbmV4dCA9IHZhbHVlLmluZGV4T2YoQ19ORVdMSU5FLCBpZHggKyAxKTtcbiAgICAgIC8vIGVpdGhlciBzbGljZSB1bnRpbCBuZXh0IE5FV0xJTkUgb3Igc2xpY2UgdW50aWwgZW5kIG9mIHN0cmluZ1xuICAgICAgdmFyIGxpbmVUb0VhdCA9IG5leHQgIT09IC0xID8gdmFsdWUuc2xpY2UoaWR4ICsgMSwgbmV4dCkgOiB2YWx1ZS5zbGljZShpZHggKyAxKTtcbiAgICAgIGlmIChsaW5lVG9FYXRbMF0gIT09IENfRkVOQ0UpIGJyZWFrO1xuICAgICAgLy8gcmVtb3ZlIGxlYWRpbmcgYEZFTkNFIGAgb3IgbGVhZGluZyBgRkVOQ0VgXG4gICAgICB2YXIgbGluZSA9IGxpbmVUb0VhdC5zbGljZShsaW5lVG9FYXQuc3RhcnRzV2l0aChDX0ZFTkNFICsgJyAnKSA/IDIgOiAxKTtcbiAgICAgIGxpbmVzVG9FYXQucHVzaChsaW5lVG9FYXQpO1xuICAgICAgY29udGVudC5wdXNoKGxpbmUpO1xuICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZShpZHggKyAxKTtcbiAgICB9XG5cbiAgICB2YXIgY29udGVudFN0cmluZyA9IGNvbnRlbnQuam9pbihDX05FV0xJTkUpO1xuXG4gICAgdmFyIHN0cmluZ1RvRWF0ID0gZWF0ZW4gKyBsaW5lc1RvRWF0LmpvaW4oQ19ORVdMSU5FKTtcblxuICAgIHZhciBwb3RlbnRpYWxCbG9jayA9IGF2YWlsYWJsZUJsb2Nrc1tibG9ja1R5cGVdO1xuICAgIHZhciB0aXRsZUFsbG93ZWQgPSBwb3RlbnRpYWxCbG9jay50aXRsZSAmJiBbJ29wdGlvbmFsJywgJ3JlcXVpcmVkJ10uaW5jbHVkZXMocG90ZW50aWFsQmxvY2sudGl0bGUpO1xuICAgIHZhciB0aXRsZVJlcXVpcmVkID0gcG90ZW50aWFsQmxvY2sudGl0bGUgJiYgcG90ZW50aWFsQmxvY2sudGl0bGUgPT09ICdyZXF1aXJlZCc7XG5cbiAgICBpZiAodGl0bGVSZXF1aXJlZCAmJiAhYmxvY2tUaXRsZSkgcmV0dXJuO1xuICAgIGlmICghdGl0bGVBbGxvd2VkICYmIGJsb2NrVGl0bGUpIHJldHVybjtcblxuICAgIHZhciBhZGQgPSBlYXQoc3RyaW5nVG9FYXQpO1xuXG4gICAgdmFyIGV4aXQgPSB0aGlzLmVudGVyQmxvY2soKTtcbiAgICB2YXIgY29udGVudHMgPSB7XG4gICAgICB0eXBlOiBibG9ja1R5cGUgKyAnQ3VzdG9tQmxvY2tCb2R5JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaE5hbWU6ICdkaXYnLFxuICAgICAgICBoUHJvcGVydGllczoge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ2N1c3RvbS1ibG9jay1ib2R5J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2hpbGRyZW46IHRoaXMudG9rZW5pemVCbG9jayhjb250ZW50U3RyaW5nLCBub3cpXG4gICAgfTtcbiAgICBleGl0KCk7XG5cbiAgICB2YXIgYmxvY2tDaGlsZHJlbiA9IFtjb250ZW50c107XG4gICAgaWYgKHRpdGxlQWxsb3dlZCAmJiBibG9ja1RpdGxlKSB7XG4gICAgICB2YXIgdGl0bGVOb2RlID0ge1xuICAgICAgICB0eXBlOiBibG9ja1R5cGUgKyAnQ3VzdG9tQmxvY2tIZWFkaW5nJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGhOYW1lOiAnZGl2JyxcbiAgICAgICAgICBoUHJvcGVydGllczoge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY3VzdG9tLWJsb2NrLWhlYWRpbmcnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogdGhpcy50b2tlbml6ZUlubGluZShibG9ja1RpdGxlLCBub3cpXG4gICAgICB9O1xuICAgICAgYmxvY2tDaGlsZHJlbi51bnNoaWZ0KHRpdGxlTm9kZSk7XG4gICAgfVxuXG4gICAgdmFyIGNsYXNzTGlzdCA9IHNwYWNlU2VwYXJhdGVkLnBhcnNlKHBvdGVudGlhbEJsb2NrLmNsYXNzZXMgfHwgJycpO1xuXG4gICAgcmV0dXJuIGFkZCh7XG4gICAgICB0eXBlOiBibG9ja1R5cGUgKyAnQ3VzdG9tQmxvY2snLFxuICAgICAgY2hpbGRyZW46IGJsb2NrQ2hpbGRyZW4sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGhOYW1lOiAnZGl2JyxcbiAgICAgICAgaFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6IFsnY3VzdG9tLWJsb2NrJ10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShjbGFzc0xpc3QpKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2YXIgUGFyc2VyID0gdGhpcy5QYXJzZXI7XG5cbiAgLy8gSW5qZWN0IGJsb2NrVG9rZW5pemVyXG4gIHZhciBibG9ja1Rva2VuaXplcnMgPSBQYXJzZXIucHJvdG90eXBlLmJsb2NrVG9rZW5pemVycztcbiAgdmFyIGJsb2NrTWV0aG9kcyA9IFBhcnNlci5wcm90b3R5cGUuYmxvY2tNZXRob2RzO1xuICBibG9ja1Rva2VuaXplcnMuY3VzdG9tQmxvY2tzID0gYmxvY2tUb2tlbml6ZXI7XG4gIGJsb2NrTWV0aG9kcy5zcGxpY2UoYmxvY2tNZXRob2RzLmluZGV4T2YoJ2ZlbmNlZENvZGUnKSArIDEsIDAsICdjdXN0b21CbG9ja3MnKTtcblxuICAvLyBJbmplY3QgaW50byBpbnRlcnJ1cHQgcnVsZXNcbiAgdmFyIGludGVycnVwdFBhcmFncmFwaCA9IFBhcnNlci5wcm90b3R5cGUuaW50ZXJydXB0UGFyYWdyYXBoO1xuICB2YXIgaW50ZXJydXB0TGlzdCA9IFBhcnNlci5wcm90b3R5cGUuaW50ZXJydXB0TGlzdDtcbiAgdmFyIGludGVycnVwdEJsb2NrcXVvdGUgPSBQYXJzZXIucHJvdG90eXBlLmludGVycnVwdEJsb2NrcXVvdGU7XG4gIGludGVycnVwdFBhcmFncmFwaC5zcGxpY2UoaW50ZXJydXB0UGFyYWdyYXBoLmluZGV4T2YoJ2ZlbmNlZENvZGUnKSArIDEsIDAsIFsnY3VzdG9tQmxvY2tzJ10pO1xuICBpbnRlcnJ1cHRMaXN0LnNwbGljZShpbnRlcnJ1cHRMaXN0LmluZGV4T2YoJ2ZlbmNlZENvZGUnKSArIDEsIDAsIFsnY3VzdG9tQmxvY2tzJ10pO1xuICBpbnRlcnJ1cHRCbG9ja3F1b3RlLnNwbGljZShpbnRlcnJ1cHRCbG9ja3F1b3RlLmluZGV4T2YoJ2ZlbmNlZENvZGUnKSArIDEsIDAsIFsnY3VzdG9tQmxvY2tzJ10pO1xufTsiLCIvKiEgaHR0cHM6Ly9tdGhzLmJlL3B1bnljb2RlIHYxLjQuMSBieSBAbWF0aGlhcyAqL1xuXG5cbi8qKiBIaWdoZXN0IHBvc2l0aXZlIHNpZ25lZCAzMi1iaXQgZmxvYXQgdmFsdWUgKi9cbnZhciBtYXhJbnQgPSAyMTQ3NDgzNjQ3OyAvLyBha2EuIDB4N0ZGRkZGRkYgb3IgMl4zMS0xXG5cbi8qKiBCb290c3RyaW5nIHBhcmFtZXRlcnMgKi9cbnZhciBiYXNlID0gMzY7XG52YXIgdE1pbiA9IDE7XG52YXIgdE1heCA9IDI2O1xudmFyIHNrZXcgPSAzODtcbnZhciBkYW1wID0gNzAwO1xudmFyIGluaXRpYWxCaWFzID0gNzI7XG52YXIgaW5pdGlhbE4gPSAxMjg7IC8vIDB4ODBcbnZhciBkZWxpbWl0ZXIgPSAnLSc7IC8vICdcXHgyRCdcblxuLyoqIFJlZ3VsYXIgZXhwcmVzc2lvbnMgKi9cbnZhciByZWdleFB1bnljb2RlID0gL154bi0tLztcbnZhciByZWdleE5vbkFTQ0lJID0gL1teXFx4MjAtXFx4N0VdLzsgLy8gdW5wcmludGFibGUgQVNDSUkgY2hhcnMgKyBub24tQVNDSUkgY2hhcnNcbnZhciByZWdleFNlcGFyYXRvcnMgPSAvW1xceDJFXFx1MzAwMlxcdUZGMEVcXHVGRjYxXS9nOyAvLyBSRkMgMzQ5MCBzZXBhcmF0b3JzXG5cbi8qKiBFcnJvciBtZXNzYWdlcyAqL1xudmFyIGVycm9ycyA9IHtcbiAgJ292ZXJmbG93JzogJ092ZXJmbG93OiBpbnB1dCBuZWVkcyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzJyxcbiAgJ25vdC1iYXNpYyc6ICdJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpJyxcbiAgJ2ludmFsaWQtaW5wdXQnOiAnSW52YWxpZCBpbnB1dCdcbn07XG5cbi8qKiBDb252ZW5pZW5jZSBzaG9ydGN1dHMgKi9cbnZhciBiYXNlTWludXNUTWluID0gYmFzZSAtIHRNaW47XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xudmFyIHN0cmluZ0Zyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBlcnJvciB1dGlsaXR5IGZ1bmN0aW9uLlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlIFRoZSBlcnJvciB0eXBlLlxuICogQHJldHVybnMge0Vycm9yfSBUaHJvd3MgYSBgUmFuZ2VFcnJvcmAgd2l0aCB0aGUgYXBwbGljYWJsZSBlcnJvciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBlcnJvcih0eXBlKSB7XG4gIHRocm93IG5ldyBSYW5nZUVycm9yKGVycm9yc1t0eXBlXSk7XG59XG5cbi8qKlxuICogQSBnZW5lcmljIGBBcnJheSNtYXBgIHV0aWxpdHkgZnVuY3Rpb24uXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZvciBldmVyeSBhcnJheVxuICogaXRlbS5cbiAqIEByZXR1cm5zIHtBcnJheX0gQSBuZXcgYXJyYXkgb2YgdmFsdWVzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gbWFwKGFycmF5LCBmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHJlc3VsdFtsZW5ndGhdID0gZm4oYXJyYXlbbGVuZ3RoXSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBBIHNpbXBsZSBgQXJyYXkjbWFwYC1saWtlIHdyYXBwZXIgdG8gd29yayB3aXRoIGRvbWFpbiBuYW1lIHN0cmluZ3Mgb3IgZW1haWxcbiAqIGFkZHJlc3Nlcy5cbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge1N0cmluZ30gZG9tYWluIFRoZSBkb21haW4gbmFtZSBvciBlbWFpbCBhZGRyZXNzLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgZm9yIGV2ZXJ5XG4gKiBjaGFyYWN0ZXIuXG4gKiBAcmV0dXJucyB7QXJyYXl9IEEgbmV3IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHJldHVybmVkIGJ5IHRoZSBjYWxsYmFja1xuICogZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIG1hcERvbWFpbihzdHJpbmcsIGZuKSB7XG4gIHZhciBwYXJ0cyA9IHN0cmluZy5zcGxpdCgnQCcpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIGlmIChwYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgLy8gSW4gZW1haWwgYWRkcmVzc2VzLCBvbmx5IHRoZSBkb21haW4gbmFtZSBzaG91bGQgYmUgcHVueWNvZGVkLiBMZWF2ZVxuICAgIC8vIHRoZSBsb2NhbCBwYXJ0IChpLmUuIGV2ZXJ5dGhpbmcgdXAgdG8gYEBgKSBpbnRhY3QuXG4gICAgcmVzdWx0ID0gcGFydHNbMF0gKyAnQCc7XG4gICAgc3RyaW5nID0gcGFydHNbMV07XG4gIH1cbiAgLy8gQXZvaWQgYHNwbGl0KHJlZ2V4KWAgZm9yIElFOCBjb21wYXRpYmlsaXR5LiBTZWUgIzE3LlxuICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShyZWdleFNlcGFyYXRvcnMsICdcXHgyRScpO1xuICB2YXIgbGFiZWxzID0gc3RyaW5nLnNwbGl0KCcuJyk7XG4gIHZhciBlbmNvZGVkID0gbWFwKGxhYmVscywgZm4pLmpvaW4oJy4nKTtcbiAgcmV0dXJuIHJlc3VsdCArIGVuY29kZWQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBudW1lcmljIGNvZGUgcG9pbnRzIG9mIGVhY2ggVW5pY29kZVxuICogY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcuIFdoaWxlIEphdmFTY3JpcHQgdXNlcyBVQ1MtMiBpbnRlcm5hbGx5LFxuICogdGhpcyBmdW5jdGlvbiB3aWxsIGNvbnZlcnQgYSBwYWlyIG9mIHN1cnJvZ2F0ZSBoYWx2ZXMgKGVhY2ggb2Ygd2hpY2hcbiAqIFVDUy0yIGV4cG9zZXMgYXMgc2VwYXJhdGUgY2hhcmFjdGVycykgaW50byBhIHNpbmdsZSBjb2RlIHBvaW50LFxuICogbWF0Y2hpbmcgVVRGLTE2LlxuICogQHNlZSBgcHVueWNvZGUudWNzMi5lbmNvZGVgXG4gKiBAc2VlIDxodHRwczovL21hdGhpYXNieW5lbnMuYmUvbm90ZXMvamF2YXNjcmlwdC1lbmNvZGluZz5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZS51Y3MyXG4gKiBAbmFtZSBkZWNvZGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJpbmcgVGhlIFVuaWNvZGUgaW5wdXQgc3RyaW5nIChVQ1MtMikuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFRoZSBuZXcgYXJyYXkgb2YgY29kZSBwb2ludHMuXG4gKi9cbmZ1bmN0aW9uIHVjczJkZWNvZGUoc3RyaW5nKSB7XG4gIHZhciBvdXRwdXQgPSBbXSxcbiAgICBjb3VudGVyID0gMCxcbiAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoLFxuICAgIHZhbHVlLFxuICAgIGV4dHJhO1xuICB3aGlsZSAoY291bnRlciA8IGxlbmd0aCkge1xuICAgIHZhbHVlID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICBpZiAodmFsdWUgPj0gMHhEODAwICYmIHZhbHVlIDw9IDB4REJGRiAmJiBjb3VudGVyIDwgbGVuZ3RoKSB7XG4gICAgICAvLyBoaWdoIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgbmV4dCBjaGFyYWN0ZXJcbiAgICAgIGV4dHJhID0gc3RyaW5nLmNoYXJDb2RlQXQoY291bnRlcisrKTtcbiAgICAgIGlmICgoZXh0cmEgJiAweEZDMDApID09IDB4REMwMCkgeyAvLyBsb3cgc3Vycm9nYXRlXG4gICAgICAgIG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyB1bm1hdGNoZWQgc3Vycm9nYXRlOyBvbmx5IGFwcGVuZCB0aGlzIGNvZGUgdW5pdCwgaW4gY2FzZSB0aGUgbmV4dFxuICAgICAgICAvLyBjb2RlIHVuaXQgaXMgdGhlIGhpZ2ggc3Vycm9nYXRlIG9mIGEgc3Vycm9nYXRlIHBhaXJcbiAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICBjb3VudGVyLS07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RyaW5nIGJhc2VkIG9uIGFuIGFycmF5IG9mIG51bWVyaWMgY29kZSBwb2ludHMuXG4gKiBAc2VlIGBwdW55Y29kZS51Y3MyLmRlY29kZWBcbiAqIEBtZW1iZXJPZiBwdW55Y29kZS51Y3MyXG4gKiBAbmFtZSBlbmNvZGVcbiAqIEBwYXJhbSB7QXJyYXl9IGNvZGVQb2ludHMgVGhlIGFycmF5IG9mIG51bWVyaWMgY29kZSBwb2ludHMuXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgbmV3IFVuaWNvZGUgc3RyaW5nIChVQ1MtMikuXG4gKi9cbmZ1bmN0aW9uIHVjczJlbmNvZGUoYXJyYXkpIHtcbiAgcmV0dXJuIG1hcChhcnJheSwgZnVuY3Rpb24odmFsdWUpIHtcbiAgICB2YXIgb3V0cHV0ID0gJyc7XG4gICAgaWYgKHZhbHVlID4gMHhGRkZGKSB7XG4gICAgICB2YWx1ZSAtPSAweDEwMDAwO1xuICAgICAgb3V0cHV0ICs9IHN0cmluZ0Zyb21DaGFyQ29kZSh2YWx1ZSA+Pj4gMTAgJiAweDNGRiB8IDB4RDgwMCk7XG4gICAgICB2YWx1ZSA9IDB4REMwMCB8IHZhbHVlICYgMHgzRkY7XG4gICAgfVxuICAgIG91dHB1dCArPSBzdHJpbmdGcm9tQ2hhckNvZGUodmFsdWUpO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH0pLmpvaW4oJycpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzaWMgY29kZSBwb2ludCBpbnRvIGEgZGlnaXQvaW50ZWdlci5cbiAqIEBzZWUgYGRpZ2l0VG9CYXNpYygpYFxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7TnVtYmVyfSBjb2RlUG9pbnQgVGhlIGJhc2ljIG51bWVyaWMgY29kZSBwb2ludCB2YWx1ZS5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSBwb2ludCAoZm9yIHVzZSBpblxuICogcmVwcmVzZW50aW5nIGludGVnZXJzKSBpbiB0aGUgcmFuZ2UgYDBgIHRvIGBiYXNlIC0gMWAsIG9yIGBiYXNlYCBpZlxuICogdGhlIGNvZGUgcG9pbnQgZG9lcyBub3QgcmVwcmVzZW50IGEgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2ljVG9EaWdpdChjb2RlUG9pbnQpIHtcbiAgaWYgKGNvZGVQb2ludCAtIDQ4IDwgMTApIHtcbiAgICByZXR1cm4gY29kZVBvaW50IC0gMjI7XG4gIH1cbiAgaWYgKGNvZGVQb2ludCAtIDY1IDwgMjYpIHtcbiAgICByZXR1cm4gY29kZVBvaW50IC0gNjU7XG4gIH1cbiAgaWYgKGNvZGVQb2ludCAtIDk3IDwgMjYpIHtcbiAgICByZXR1cm4gY29kZVBvaW50IC0gOTc7XG4gIH1cbiAgcmV0dXJuIGJhc2U7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBkaWdpdC9pbnRlZ2VyIGludG8gYSBiYXNpYyBjb2RlIHBvaW50LlxuICogQHNlZSBgYmFzaWNUb0RpZ2l0KClgXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtOdW1iZXJ9IGRpZ2l0IFRoZSBudW1lcmljIHZhbHVlIG9mIGEgYmFzaWMgY29kZSBwb2ludC5cbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBiYXNpYyBjb2RlIHBvaW50IHdob3NlIHZhbHVlICh3aGVuIHVzZWQgZm9yXG4gKiByZXByZXNlbnRpbmcgaW50ZWdlcnMpIGlzIGBkaWdpdGAsIHdoaWNoIG5lZWRzIHRvIGJlIGluIHRoZSByYW5nZVxuICogYDBgIHRvIGBiYXNlIC0gMWAuIElmIGBmbGFnYCBpcyBub24temVybywgdGhlIHVwcGVyY2FzZSBmb3JtIGlzXG4gKiB1c2VkOyBlbHNlLCB0aGUgbG93ZXJjYXNlIGZvcm0gaXMgdXNlZC4gVGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZFxuICogaWYgYGZsYWdgIGlzIG5vbi16ZXJvIGFuZCBgZGlnaXRgIGhhcyBubyB1cHBlcmNhc2UgZm9ybS5cbiAqL1xuZnVuY3Rpb24gZGlnaXRUb0Jhc2ljKGRpZ2l0LCBmbGFnKSB7XG4gIC8vICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aXG4gIC8vIDI2Li4zNSBtYXAgdG8gQVNDSUkgMC4uOVxuICByZXR1cm4gZGlnaXQgKyAyMiArIDc1ICogKGRpZ2l0IDwgMjYpIC0gKChmbGFnICE9IDApIDw8IDUpO1xufVxuXG4vKipcbiAqIEJpYXMgYWRhcHRhdGlvbiBmdW5jdGlvbiBhcyBwZXIgc2VjdGlvbiAzLjQgb2YgUkZDIDM0OTIuXG4gKiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzQ5MiNzZWN0aW9uLTMuNFxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gYWRhcHQoZGVsdGEsIG51bVBvaW50cywgZmlyc3RUaW1lKSB7XG4gIHZhciBrID0gMDtcbiAgZGVsdGEgPSBmaXJzdFRpbWUgPyBmbG9vcihkZWx0YSAvIGRhbXApIDogZGVsdGEgPj4gMTtcbiAgZGVsdGEgKz0gZmxvb3IoZGVsdGEgLyBudW1Qb2ludHMpO1xuICBmb3IgKCAvKiBubyBpbml0aWFsaXphdGlvbiAqLyA7IGRlbHRhID4gYmFzZU1pbnVzVE1pbiAqIHRNYXggPj4gMTsgayArPSBiYXNlKSB7XG4gICAgZGVsdGEgPSBmbG9vcihkZWx0YSAvIGJhc2VNaW51c1RNaW4pO1xuICB9XG4gIHJldHVybiBmbG9vcihrICsgKGJhc2VNaW51c1RNaW4gKyAxKSAqIGRlbHRhIC8gKGRlbHRhICsgc2tldykpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scyB0byBhIHN0cmluZyBvZiBVbmljb2RlXG4gKiBzeW1ib2xzLlxuICogQG1lbWJlck9mIHB1bnljb2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMuXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgcmVzdWx0aW5nIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGUoaW5wdXQpIHtcbiAgLy8gRG9uJ3QgdXNlIFVDUy0yXG4gIHZhciBvdXRwdXQgPSBbXSxcbiAgICBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aCxcbiAgICBvdXQsXG4gICAgaSA9IDAsXG4gICAgbiA9IGluaXRpYWxOLFxuICAgIGJpYXMgPSBpbml0aWFsQmlhcyxcbiAgICBiYXNpYyxcbiAgICBqLFxuICAgIGluZGV4LFxuICAgIG9sZGksXG4gICAgdyxcbiAgICBrLFxuICAgIGRpZ2l0LFxuICAgIHQsXG4gICAgLyoqIENhY2hlZCBjYWxjdWxhdGlvbiByZXN1bHRzICovXG4gICAgYmFzZU1pbnVzVDtcblxuICAvLyBIYW5kbGUgdGhlIGJhc2ljIGNvZGUgcG9pbnRzOiBsZXQgYGJhc2ljYCBiZSB0aGUgbnVtYmVyIG9mIGlucHV0IGNvZGVcbiAgLy8gcG9pbnRzIGJlZm9yZSB0aGUgbGFzdCBkZWxpbWl0ZXIsIG9yIGAwYCBpZiB0aGVyZSBpcyBub25lLCB0aGVuIGNvcHlcbiAgLy8gdGhlIGZpcnN0IGJhc2ljIGNvZGUgcG9pbnRzIHRvIHRoZSBvdXRwdXQuXG5cbiAgYmFzaWMgPSBpbnB1dC5sYXN0SW5kZXhPZihkZWxpbWl0ZXIpO1xuICBpZiAoYmFzaWMgPCAwKSB7XG4gICAgYmFzaWMgPSAwO1xuICB9XG5cbiAgZm9yIChqID0gMDsgaiA8IGJhc2ljOyArK2opIHtcbiAgICAvLyBpZiBpdCdzIG5vdCBhIGJhc2ljIGNvZGUgcG9pbnRcbiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChqKSA+PSAweDgwKSB7XG4gICAgICBlcnJvcignbm90LWJhc2ljJyk7XG4gICAgfVxuICAgIG91dHB1dC5wdXNoKGlucHV0LmNoYXJDb2RlQXQoaikpO1xuICB9XG5cbiAgLy8gTWFpbiBkZWNvZGluZyBsb29wOiBzdGFydCBqdXN0IGFmdGVyIHRoZSBsYXN0IGRlbGltaXRlciBpZiBhbnkgYmFzaWMgY29kZVxuICAvLyBwb2ludHMgd2VyZSBjb3BpZWQ7IHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcgb3RoZXJ3aXNlLlxuXG4gIGZvciAoaW5kZXggPSBiYXNpYyA+IDAgPyBiYXNpYyArIDEgOiAwOyBpbmRleCA8IGlucHV0TGVuZ3RoOyAvKiBubyBmaW5hbCBleHByZXNzaW9uICovICkge1xuXG4gICAgLy8gYGluZGV4YCBpcyB0aGUgaW5kZXggb2YgdGhlIG5leHQgY2hhcmFjdGVyIHRvIGJlIGNvbnN1bWVkLlxuICAgIC8vIERlY29kZSBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyIGludG8gYGRlbHRhYCxcbiAgICAvLyB3aGljaCBnZXRzIGFkZGVkIHRvIGBpYC4gVGhlIG92ZXJmbG93IGNoZWNraW5nIGlzIGVhc2llclxuICAgIC8vIGlmIHdlIGluY3JlYXNlIGBpYCBhcyB3ZSBnbywgdGhlbiBzdWJ0cmFjdCBvZmYgaXRzIHN0YXJ0aW5nXG4gICAgLy8gdmFsdWUgYXQgdGhlIGVuZCB0byBvYnRhaW4gYGRlbHRhYC5cbiAgICBmb3IgKG9sZGkgPSBpLCB3ID0gMSwgayA9IGJhc2U7IC8qIG5vIGNvbmRpdGlvbiAqLyA7IGsgKz0gYmFzZSkge1xuXG4gICAgICBpZiAoaW5kZXggPj0gaW5wdXRMZW5ndGgpIHtcbiAgICAgICAgZXJyb3IoJ2ludmFsaWQtaW5wdXQnKTtcbiAgICAgIH1cblxuICAgICAgZGlnaXQgPSBiYXNpY1RvRGlnaXQoaW5wdXQuY2hhckNvZGVBdChpbmRleCsrKSk7XG5cbiAgICAgIGlmIChkaWdpdCA+PSBiYXNlIHx8IGRpZ2l0ID4gZmxvb3IoKG1heEludCAtIGkpIC8gdykpIHtcbiAgICAgICAgZXJyb3IoJ292ZXJmbG93Jyk7XG4gICAgICB9XG5cbiAgICAgIGkgKz0gZGlnaXQgKiB3O1xuICAgICAgdCA9IGsgPD0gYmlhcyA/IHRNaW4gOiAoayA+PSBiaWFzICsgdE1heCA/IHRNYXggOiBrIC0gYmlhcyk7XG5cbiAgICAgIGlmIChkaWdpdCA8IHQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGJhc2VNaW51c1QgPSBiYXNlIC0gdDtcbiAgICAgIGlmICh3ID4gZmxvb3IobWF4SW50IC8gYmFzZU1pbnVzVCkpIHtcbiAgICAgICAgZXJyb3IoJ292ZXJmbG93Jyk7XG4gICAgICB9XG5cbiAgICAgIHcgKj0gYmFzZU1pbnVzVDtcblxuICAgIH1cblxuICAgIG91dCA9IG91dHB1dC5sZW5ndGggKyAxO1xuICAgIGJpYXMgPSBhZGFwdChpIC0gb2xkaSwgb3V0LCBvbGRpID09IDApO1xuXG4gICAgLy8gYGlgIHdhcyBzdXBwb3NlZCB0byB3cmFwIGFyb3VuZCBmcm9tIGBvdXRgIHRvIGAwYCxcbiAgICAvLyBpbmNyZW1lbnRpbmcgYG5gIGVhY2ggdGltZSwgc28gd2UnbGwgZml4IHRoYXQgbm93OlxuICAgIGlmIChmbG9vcihpIC8gb3V0KSA+IG1heEludCAtIG4pIHtcbiAgICAgIGVycm9yKCdvdmVyZmxvdycpO1xuICAgIH1cblxuICAgIG4gKz0gZmxvb3IoaSAvIG91dCk7XG4gICAgaSAlPSBvdXQ7XG5cbiAgICAvLyBJbnNlcnQgYG5gIGF0IHBvc2l0aW9uIGBpYCBvZiB0aGUgb3V0cHV0XG4gICAgb3V0cHV0LnNwbGljZShpKyssIDAsIG4pO1xuXG4gIH1cblxuICByZXR1cm4gdWNzMmVuY29kZShvdXRwdXQpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIG9mIFVuaWNvZGUgc3ltYm9scyAoZS5nLiBhIGRvbWFpbiBuYW1lIGxhYmVsKSB0byBhXG4gKiBQdW55Y29kZSBzdHJpbmcgb2YgQVNDSUktb25seSBzeW1ib2xzLlxuICogQG1lbWJlck9mIHB1bnljb2RlXG4gKiBAcGFyYW0ge1N0cmluZ30gaW5wdXQgVGhlIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMuXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBUaGUgcmVzdWx0aW5nIFB1bnljb2RlIHN0cmluZyBvZiBBU0NJSS1vbmx5IHN5bWJvbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoaW5wdXQpIHtcbiAgdmFyIG4sXG4gICAgZGVsdGEsXG4gICAgaGFuZGxlZENQQ291bnQsXG4gICAgYmFzaWNMZW5ndGgsXG4gICAgYmlhcyxcbiAgICBqLFxuICAgIG0sXG4gICAgcSxcbiAgICBrLFxuICAgIHQsXG4gICAgY3VycmVudFZhbHVlLFxuICAgIG91dHB1dCA9IFtdLFxuICAgIC8qKiBgaW5wdXRMZW5ndGhgIHdpbGwgaG9sZCB0aGUgbnVtYmVyIG9mIGNvZGUgcG9pbnRzIGluIGBpbnB1dGAuICovXG4gICAgaW5wdXRMZW5ndGgsXG4gICAgLyoqIENhY2hlZCBjYWxjdWxhdGlvbiByZXN1bHRzICovXG4gICAgaGFuZGxlZENQQ291bnRQbHVzT25lLFxuICAgIGJhc2VNaW51c1QsXG4gICAgcU1pbnVzVDtcblxuICAvLyBDb252ZXJ0IHRoZSBpbnB1dCBpbiBVQ1MtMiB0byBVbmljb2RlXG4gIGlucHV0ID0gdWNzMmRlY29kZShpbnB1dCk7XG5cbiAgLy8gQ2FjaGUgdGhlIGxlbmd0aFxuICBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcblxuICAvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuICBuID0gaW5pdGlhbE47XG4gIGRlbHRhID0gMDtcbiAgYmlhcyA9IGluaXRpYWxCaWFzO1xuXG4gIC8vIEhhbmRsZSB0aGUgYmFzaWMgY29kZSBwb2ludHNcbiAgZm9yIChqID0gMDsgaiA8IGlucHV0TGVuZ3RoOyArK2opIHtcbiAgICBjdXJyZW50VmFsdWUgPSBpbnB1dFtqXTtcbiAgICBpZiAoY3VycmVudFZhbHVlIDwgMHg4MCkge1xuICAgICAgb3V0cHV0LnB1c2goc3RyaW5nRnJvbUNoYXJDb2RlKGN1cnJlbnRWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZWRDUENvdW50ID0gYmFzaWNMZW5ndGggPSBvdXRwdXQubGVuZ3RoO1xuXG4gIC8vIGBoYW5kbGVkQ1BDb3VudGAgaXMgdGhlIG51bWJlciBvZiBjb2RlIHBvaW50cyB0aGF0IGhhdmUgYmVlbiBoYW5kbGVkO1xuICAvLyBgYmFzaWNMZW5ndGhgIGlzIHRoZSBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMuXG5cbiAgLy8gRmluaXNoIHRoZSBiYXNpYyBzdHJpbmcgLSBpZiBpdCBpcyBub3QgZW1wdHkgLSB3aXRoIGEgZGVsaW1pdGVyXG4gIGlmIChiYXNpY0xlbmd0aCkge1xuICAgIG91dHB1dC5wdXNoKGRlbGltaXRlcik7XG4gIH1cblxuICAvLyBNYWluIGVuY29kaW5nIGxvb3A6XG4gIHdoaWxlIChoYW5kbGVkQ1BDb3VudCA8IGlucHV0TGVuZ3RoKSB7XG5cbiAgICAvLyBBbGwgbm9uLWJhc2ljIGNvZGUgcG9pbnRzIDwgbiBoYXZlIGJlZW4gaGFuZGxlZCBhbHJlYWR5LiBGaW5kIHRoZSBuZXh0XG4gICAgLy8gbGFyZ2VyIG9uZTpcbiAgICBmb3IgKG0gPSBtYXhJbnQsIGogPSAwOyBqIDwgaW5wdXRMZW5ndGg7ICsraikge1xuICAgICAgY3VycmVudFZhbHVlID0gaW5wdXRbal07XG4gICAgICBpZiAoY3VycmVudFZhbHVlID49IG4gJiYgY3VycmVudFZhbHVlIDwgbSkge1xuICAgICAgICBtID0gY3VycmVudFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEluY3JlYXNlIGBkZWx0YWAgZW5vdWdoIHRvIGFkdmFuY2UgdGhlIGRlY29kZXIncyA8bixpPiBzdGF0ZSB0byA8bSwwPixcbiAgICAvLyBidXQgZ3VhcmQgYWdhaW5zdCBvdmVyZmxvd1xuICAgIGhhbmRsZWRDUENvdW50UGx1c09uZSA9IGhhbmRsZWRDUENvdW50ICsgMTtcbiAgICBpZiAobSAtIG4gPiBmbG9vcigobWF4SW50IC0gZGVsdGEpIC8gaGFuZGxlZENQQ291bnRQbHVzT25lKSkge1xuICAgICAgZXJyb3IoJ292ZXJmbG93Jyk7XG4gICAgfVxuXG4gICAgZGVsdGEgKz0gKG0gLSBuKSAqIGhhbmRsZWRDUENvdW50UGx1c09uZTtcbiAgICBuID0gbTtcblxuICAgIGZvciAoaiA9IDA7IGogPCBpbnB1dExlbmd0aDsgKytqKSB7XG4gICAgICBjdXJyZW50VmFsdWUgPSBpbnB1dFtqXTtcblxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA8IG4gJiYgKytkZWx0YSA+IG1heEludCkge1xuICAgICAgICBlcnJvcignb3ZlcmZsb3cnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBuKSB7XG4gICAgICAgIC8vIFJlcHJlc2VudCBkZWx0YSBhcyBhIGdlbmVyYWxpemVkIHZhcmlhYmxlLWxlbmd0aCBpbnRlZ2VyXG4gICAgICAgIGZvciAocSA9IGRlbHRhLCBrID0gYmFzZTsgLyogbm8gY29uZGl0aW9uICovIDsgayArPSBiYXNlKSB7XG4gICAgICAgICAgdCA9IGsgPD0gYmlhcyA/IHRNaW4gOiAoayA+PSBiaWFzICsgdE1heCA/IHRNYXggOiBrIC0gYmlhcyk7XG4gICAgICAgICAgaWYgKHEgPCB0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcU1pbnVzVCA9IHEgLSB0O1xuICAgICAgICAgIGJhc2VNaW51c1QgPSBiYXNlIC0gdDtcbiAgICAgICAgICBvdXRwdXQucHVzaChcbiAgICAgICAgICAgIHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWModCArIHFNaW51c1QgJSBiYXNlTWludXNULCAwKSlcbiAgICAgICAgICApO1xuICAgICAgICAgIHEgPSBmbG9vcihxTWludXNUIC8gYmFzZU1pbnVzVCk7XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoZGlnaXRUb0Jhc2ljKHEsIDApKSk7XG4gICAgICAgIGJpYXMgPSBhZGFwdChkZWx0YSwgaGFuZGxlZENQQ291bnRQbHVzT25lLCBoYW5kbGVkQ1BDb3VudCA9PSBiYXNpY0xlbmd0aCk7XG4gICAgICAgIGRlbHRhID0gMDtcbiAgICAgICAgKytoYW5kbGVkQ1BDb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICArK2RlbHRhO1xuICAgICsrbjtcblxuICB9XG4gIHJldHVybiBvdXRwdXQuam9pbignJyk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBQdW55Y29kZSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgZG9tYWluIG5hbWUgb3IgYW4gZW1haWwgYWRkcmVzc1xuICogdG8gVW5pY29kZS4gT25seSB0aGUgUHVueWNvZGVkIHBhcnRzIG9mIHRoZSBpbnB1dCB3aWxsIGJlIGNvbnZlcnRlZCwgaS5lLlxuICogaXQgZG9lc24ndCBtYXR0ZXIgaWYgeW91IGNhbGwgaXQgb24gYSBzdHJpbmcgdGhhdCBoYXMgYWxyZWFkeSBiZWVuXG4gKiBjb252ZXJ0ZWQgdG8gVW5pY29kZS5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBQdW55Y29kZWQgZG9tYWluIG5hbWUgb3IgZW1haWwgYWRkcmVzcyB0b1xuICogY29udmVydCB0byBVbmljb2RlLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIFVuaWNvZGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGdpdmVuIFB1bnljb2RlXG4gKiBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VuaWNvZGUoaW5wdXQpIHtcbiAgcmV0dXJuIG1hcERvbWFpbihpbnB1dCwgZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZ2V4UHVueWNvZGUudGVzdChzdHJpbmcpID9cbiAgICAgIGRlY29kZShzdHJpbmcuc2xpY2UoNCkudG9Mb3dlckNhc2UoKSkgOlxuICAgICAgc3RyaW5nO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIFVuaWNvZGUgc3RyaW5nIHJlcHJlc2VudGluZyBhIGRvbWFpbiBuYW1lIG9yIGFuIGVtYWlsIGFkZHJlc3MgdG9cbiAqIFB1bnljb2RlLiBPbmx5IHRoZSBub24tQVNDSUkgcGFydHMgb2YgdGhlIGRvbWFpbiBuYW1lIHdpbGwgYmUgY29udmVydGVkLFxuICogaS5lLiBpdCBkb2Vzbid0IG1hdHRlciBpZiB5b3UgY2FsbCBpdCB3aXRoIGEgZG9tYWluIHRoYXQncyBhbHJlYWR5IGluXG4gKiBBU0NJSS5cbiAqIEBtZW1iZXJPZiBwdW55Y29kZVxuICogQHBhcmFtIHtTdHJpbmd9IGlucHV0IFRoZSBkb21haW4gbmFtZSBvciBlbWFpbCBhZGRyZXNzIHRvIGNvbnZlcnQsIGFzIGFcbiAqIFVuaWNvZGUgc3RyaW5nLlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIFB1bnljb2RlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBkb21haW4gbmFtZSBvclxuICogZW1haWwgYWRkcmVzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQVNDSUkoaW5wdXQpIHtcbiAgcmV0dXJuIG1hcERvbWFpbihpbnB1dCwgZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgcmV0dXJuIHJlZ2V4Tm9uQVNDSUkudGVzdChzdHJpbmcpID9cbiAgICAgICd4bi0tJyArIGVuY29kZShzdHJpbmcpIDpcbiAgICAgIHN0cmluZztcbiAgfSk7XG59XG5leHBvcnQgdmFyIHZlcnNpb24gPSAnMS40LjEnO1xuLyoqXG4gKiBBbiBvYmplY3Qgb2YgbWV0aG9kcyB0byBjb252ZXJ0IGZyb20gSmF2YVNjcmlwdCdzIGludGVybmFsIGNoYXJhY3RlclxuICogcmVwcmVzZW50YXRpb24gKFVDUy0yKSB0byBVbmljb2RlIGNvZGUgcG9pbnRzLCBhbmQgYmFjay5cbiAqIEBzZWUgPGh0dHBzOi8vbWF0aGlhc2J5bmVucy5iZS9ub3Rlcy9qYXZhc2NyaXB0LWVuY29kaW5nPlxuICogQG1lbWJlck9mIHB1bnljb2RlXG4gKiBAdHlwZSBPYmplY3RcbiAqL1xuXG5leHBvcnQgdmFyIHVjczIgPSB7XG4gIGRlY29kZTogdWNzMmRlY29kZSxcbiAgZW5jb2RlOiB1Y3MyZW5jb2RlXG59O1xuZXhwb3J0IGRlZmF1bHQge1xuICB2ZXJzaW9uOiB2ZXJzaW9uLFxuICB1Y3MyOiB1Y3MyLFxuICB0b0FTQ0lJOiB0b0FTQ0lJLFxuICB0b1VuaWNvZGU6IHRvVW5pY29kZSxcbiAgZW5jb2RlOiBlbmNvZGUsXG4gIGRlY29kZTogZGVjb2RlXG59XG4iLCIvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxuLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZVxuLy8gXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXG4vLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0XG4vLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGVcbi8vIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4vLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOXG4vLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSxcbi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUlxuLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRVxuLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cblxuXG4vLyBJZiBvYmouaGFzT3duUHJvcGVydHkgaGFzIGJlZW4gb3ZlcnJpZGRlbiwgdGhlbiBjYWxsaW5nXG4vLyBvYmouaGFzT3duUHJvcGVydHkocHJvcCkgd2lsbCBicmVhay5cbi8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2pveWVudC9ub2RlL2lzc3Vlcy8xNzA3XG5mdW5jdGlvbiBoYXNPd25Qcm9wZXJ0eShvYmosIHByb3ApIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApO1xufVxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uICh4cykge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHhzKSA9PT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG5mdW5jdGlvbiBzdHJpbmdpZnlQcmltaXRpdmUodikge1xuICBzd2l0Y2ggKHR5cGVvZiB2KSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiB2O1xuXG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICByZXR1cm4gdiA/ICd0cnVlJyA6ICdmYWxzZSc7XG5cbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIGlzRmluaXRlKHYpID8gdiA6ICcnO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5IChvYmosIHNlcCwgZXEsIG5hbWUpIHtcbiAgc2VwID0gc2VwIHx8ICcmJztcbiAgZXEgPSBlcSB8fCAnPSc7XG4gIGlmIChvYmogPT09IG51bGwpIHtcbiAgICBvYmogPSB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbWFwKG9iamVjdEtleXMob2JqKSwgZnVuY3Rpb24oaykge1xuICAgICAgdmFyIGtzID0gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShrKSkgKyBlcTtcbiAgICAgIGlmIChpc0FycmF5KG9ialtrXSkpIHtcbiAgICAgICAgcmV0dXJuIG1hcChvYmpba10sIGZ1bmN0aW9uKHYpIHtcbiAgICAgICAgICByZXR1cm4ga3MgKyBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKHYpKTtcbiAgICAgICAgfSkuam9pbihzZXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGtzICsgZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShvYmpba10pKTtcbiAgICAgIH1cbiAgICB9KS5qb2luKHNlcCk7XG5cbiAgfVxuXG4gIGlmICghbmFtZSkgcmV0dXJuICcnO1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ2lmeVByaW1pdGl2ZShuYW1lKSkgKyBlcSArXG4gICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5naWZ5UHJpbWl0aXZlKG9iaikpO1xufTtcblxuZnVuY3Rpb24gbWFwICh4cywgZikge1xuICBpZiAoeHMubWFwKSByZXR1cm4geHMubWFwKGYpO1xuICB2YXIgcmVzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgeHMubGVuZ3RoOyBpKyspIHtcbiAgICByZXMucHVzaChmKHhzW2ldLCBpKSk7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxudmFyIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciByZXMgPSBbXTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSByZXMucHVzaChrZXkpO1xuICB9XG4gIHJldHVybiByZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UocXMsIHNlcCwgZXEsIG9wdGlvbnMpIHtcbiAgc2VwID0gc2VwIHx8ICcmJztcbiAgZXEgPSBlcSB8fCAnPSc7XG4gIHZhciBvYmogPSB7fTtcblxuICBpZiAodHlwZW9mIHFzICE9PSAnc3RyaW5nJyB8fCBxcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IC9cXCsvZztcbiAgcXMgPSBxcy5zcGxpdChzZXApO1xuXG4gIHZhciBtYXhLZXlzID0gMTAwMDtcbiAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMubWF4S2V5cyA9PT0gJ251bWJlcicpIHtcbiAgICBtYXhLZXlzID0gb3B0aW9ucy5tYXhLZXlzO1xuICB9XG5cbiAgdmFyIGxlbiA9IHFzLmxlbmd0aDtcbiAgLy8gbWF4S2V5cyA8PSAwIG1lYW5zIHRoYXQgd2Ugc2hvdWxkIG5vdCBsaW1pdCBrZXlzIGNvdW50XG4gIGlmIChtYXhLZXlzID4gMCAmJiBsZW4gPiBtYXhLZXlzKSB7XG4gICAgbGVuID0gbWF4S2V5cztcbiAgfVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICB2YXIgeCA9IHFzW2ldLnJlcGxhY2UocmVnZXhwLCAnJTIwJyksXG4gICAgICAgIGlkeCA9IHguaW5kZXhPZihlcSksXG4gICAgICAgIGtzdHIsIHZzdHIsIGssIHY7XG5cbiAgICBpZiAoaWR4ID49IDApIHtcbiAgICAgIGtzdHIgPSB4LnN1YnN0cigwLCBpZHgpO1xuICAgICAgdnN0ciA9IHguc3Vic3RyKGlkeCArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBrc3RyID0geDtcbiAgICAgIHZzdHIgPSAnJztcbiAgICB9XG5cbiAgICBrID0gZGVjb2RlVVJJQ29tcG9uZW50KGtzdHIpO1xuICAgIHYgPSBkZWNvZGVVUklDb21wb25lbnQodnN0cik7XG5cbiAgICBpZiAoIWhhc093blByb3BlcnR5KG9iaiwgaykpIHtcbiAgICAgIG9ialtrXSA9IHY7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KG9ialtrXSkpIHtcbiAgICAgIG9ialtrXS5wdXNoKHYpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmpba10gPSBbb2JqW2tdLCB2XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufTtcbmV4cG9ydCBkZWZhdWx0IHtcbiAgZW5jb2RlOiBzdHJpbmdpZnksXG4gIHN0cmluZ2lmeTogc3RyaW5naWZ5LFxuICBkZWNvZGU6IHBhcnNlLFxuICBwYXJzZTogcGFyc2Vcbn1cbmV4cG9ydCB7c3RyaW5naWZ5IGFzIGVuY29kZSwgcGFyc2UgYXMgZGVjb2RlfTtcbiIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5cbmltcG9ydCB7dG9BU0NJSX0gZnJvbSAncHVueWNvZGUnO1xuaW1wb3J0IHtpc09iamVjdCxpc1N0cmluZyxpc051bGxPclVuZGVmaW5lZCxpc051bGx9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHtwYXJzZSBhcyBxc1BhcnNlLHN0cmluZ2lmeSBhcyBxc1N0cmluZ2lmeX0gZnJvbSAncXVlcnlzdHJpbmcnO1xuZXhwb3J0IHtcbiAgdXJsUGFyc2UgYXMgcGFyc2UsXG4gIHVybFJlc29sdmUgYXMgcmVzb2x2ZSxcbiAgdXJsUmVzb2x2ZU9iamVjdCBhcyByZXNvbHZlT2JqZWN0LFxuICB1cmxGb3JtYXQgYXMgZm9ybWF0XG59O1xuZXhwb3J0IGRlZmF1bHQge1xuICBwYXJzZTogdXJsUGFyc2UsXG4gIHJlc29sdmU6IHVybFJlc29sdmUsXG4gIHJlc29sdmVPYmplY3Q6IHVybFJlc29sdmVPYmplY3QsXG4gIGZvcm1hdDogdXJsRm9ybWF0LFxuICBVcmw6IFVybFxufVxuZXhwb3J0IGZ1bmN0aW9uIFVybCgpIHtcbiAgdGhpcy5wcm90b2NvbCA9IG51bGw7XG4gIHRoaXMuc2xhc2hlcyA9IG51bGw7XG4gIHRoaXMuYXV0aCA9IG51bGw7XG4gIHRoaXMuaG9zdCA9IG51bGw7XG4gIHRoaXMucG9ydCA9IG51bGw7XG4gIHRoaXMuaG9zdG5hbWUgPSBudWxsO1xuICB0aGlzLmhhc2ggPSBudWxsO1xuICB0aGlzLnNlYXJjaCA9IG51bGw7XG4gIHRoaXMucXVlcnkgPSBudWxsO1xuICB0aGlzLnBhdGhuYW1lID0gbnVsbDtcbiAgdGhpcy5wYXRoID0gbnVsbDtcbiAgdGhpcy5ocmVmID0gbnVsbDtcbn1cblxuLy8gUmVmZXJlbmNlOiBSRkMgMzk4NiwgUkZDIDE4MDgsIFJGQyAyMzk2XG5cbi8vIGRlZmluZSB0aGVzZSBoZXJlIHNvIGF0IGxlYXN0IHRoZXkgb25seSBoYXZlIHRvIGJlXG4vLyBjb21waWxlZCBvbmNlIG9uIHRoZSBmaXJzdCBtb2R1bGUgbG9hZC5cbnZhciBwcm90b2NvbFBhdHRlcm4gPSAvXihbYS16MC05ListXSs6KS9pLFxuICBwb3J0UGF0dGVybiA9IC86WzAtOV0qJC8sXG5cbiAgLy8gU3BlY2lhbCBjYXNlIGZvciBhIHNpbXBsZSBwYXRoIFVSTFxuICBzaW1wbGVQYXRoUGF0dGVybiA9IC9eKFxcL1xcLz8oPyFcXC8pW15cXD9cXHNdKikoXFw/W15cXHNdKik/JC8sXG5cbiAgLy8gUkZDIDIzOTY6IGNoYXJhY3RlcnMgcmVzZXJ2ZWQgZm9yIGRlbGltaXRpbmcgVVJMcy5cbiAgLy8gV2UgYWN0dWFsbHkganVzdCBhdXRvLWVzY2FwZSB0aGVzZS5cbiAgZGVsaW1zID0gWyc8JywgJz4nLCAnXCInLCAnYCcsICcgJywgJ1xccicsICdcXG4nLCAnXFx0J10sXG5cbiAgLy8gUkZDIDIzOTY6IGNoYXJhY3RlcnMgbm90IGFsbG93ZWQgZm9yIHZhcmlvdXMgcmVhc29ucy5cbiAgdW53aXNlID0gWyd7JywgJ30nLCAnfCcsICdcXFxcJywgJ14nLCAnYCddLmNvbmNhdChkZWxpbXMpLFxuXG4gIC8vIEFsbG93ZWQgYnkgUkZDcywgYnV0IGNhdXNlIG9mIFhTUyBhdHRhY2tzLiAgQWx3YXlzIGVzY2FwZSB0aGVzZS5cbiAgYXV0b0VzY2FwZSA9IFsnXFwnJ10uY29uY2F0KHVud2lzZSksXG4gIC8vIENoYXJhY3RlcnMgdGhhdCBhcmUgbmV2ZXIgZXZlciBhbGxvd2VkIGluIGEgaG9zdG5hbWUuXG4gIC8vIE5vdGUgdGhhdCBhbnkgaW52YWxpZCBjaGFycyBhcmUgYWxzbyBoYW5kbGVkLCBidXQgdGhlc2VcbiAgLy8gYXJlIHRoZSBvbmVzIHRoYXQgYXJlICpleHBlY3RlZCogdG8gYmUgc2Vlbiwgc28gd2UgZmFzdC1wYXRoXG4gIC8vIHRoZW0uXG4gIG5vbkhvc3RDaGFycyA9IFsnJScsICcvJywgJz8nLCAnOycsICcjJ10uY29uY2F0KGF1dG9Fc2NhcGUpLFxuICBob3N0RW5kaW5nQ2hhcnMgPSBbJy8nLCAnPycsICcjJ10sXG4gIGhvc3RuYW1lTWF4TGVuID0gMjU1LFxuICBob3N0bmFtZVBhcnRQYXR0ZXJuID0gL15bK2EtejAtOUEtWl8tXXswLDYzfSQvLFxuICBob3N0bmFtZVBhcnRTdGFydCA9IC9eKFsrYS16MC05QS1aXy1dezAsNjN9KSguKikkLyxcbiAgLy8gcHJvdG9jb2xzIHRoYXQgY2FuIGFsbG93IFwidW5zYWZlXCIgYW5kIFwidW53aXNlXCIgY2hhcnMuXG4gIHVuc2FmZVByb3RvY29sID0ge1xuICAgICdqYXZhc2NyaXB0JzogdHJ1ZSxcbiAgICAnamF2YXNjcmlwdDonOiB0cnVlXG4gIH0sXG4gIC8vIHByb3RvY29scyB0aGF0IG5ldmVyIGhhdmUgYSBob3N0bmFtZS5cbiAgaG9zdGxlc3NQcm90b2NvbCA9IHtcbiAgICAnamF2YXNjcmlwdCc6IHRydWUsXG4gICAgJ2phdmFzY3JpcHQ6JzogdHJ1ZVxuICB9LFxuICAvLyBwcm90b2NvbHMgdGhhdCBhbHdheXMgY29udGFpbiBhIC8vIGJpdC5cbiAgc2xhc2hlZFByb3RvY29sID0ge1xuICAgICdodHRwJzogdHJ1ZSxcbiAgICAnaHR0cHMnOiB0cnVlLFxuICAgICdmdHAnOiB0cnVlLFxuICAgICdnb3BoZXInOiB0cnVlLFxuICAgICdmaWxlJzogdHJ1ZSxcbiAgICAnaHR0cDonOiB0cnVlLFxuICAgICdodHRwczonOiB0cnVlLFxuICAgICdmdHA6JzogdHJ1ZSxcbiAgICAnZ29waGVyOic6IHRydWUsXG4gICAgJ2ZpbGU6JzogdHJ1ZVxuICB9O1xuXG5mdW5jdGlvbiB1cmxQYXJzZSh1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KSB7XG4gIGlmICh1cmwgJiYgaXNPYmplY3QodXJsKSAmJiB1cmwgaW5zdGFuY2VvZiBVcmwpIHJldHVybiB1cmw7XG5cbiAgdmFyIHUgPSBuZXcgVXJsO1xuICB1LnBhcnNlKHVybCwgcGFyc2VRdWVyeVN0cmluZywgc2xhc2hlc0Rlbm90ZUhvc3QpO1xuICByZXR1cm4gdTtcbn1cblVybC5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbih1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KSB7XG4gIHJldHVybiBwYXJzZSh0aGlzLCB1cmwsIHBhcnNlUXVlcnlTdHJpbmcsIHNsYXNoZXNEZW5vdGVIb3N0KTtcbn1cblxuZnVuY3Rpb24gcGFyc2Uoc2VsZiwgdXJsLCBwYXJzZVF1ZXJ5U3RyaW5nLCBzbGFzaGVzRGVub3RlSG9zdCkge1xuICBpZiAoIWlzU3RyaW5nKHVybCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQYXJhbWV0ZXIgXFwndXJsXFwnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAnICsgdHlwZW9mIHVybCk7XG4gIH1cblxuICAvLyBDb3B5IGNocm9tZSwgSUUsIG9wZXJhIGJhY2tzbGFzaC1oYW5kbGluZyBiZWhhdmlvci5cbiAgLy8gQmFjayBzbGFzaGVzIGJlZm9yZSB0aGUgcXVlcnkgc3RyaW5nIGdldCBjb252ZXJ0ZWQgdG8gZm9yd2FyZCBzbGFzaGVzXG4gIC8vIFNlZTogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTI1OTE2XG4gIHZhciBxdWVyeUluZGV4ID0gdXJsLmluZGV4T2YoJz8nKSxcbiAgICBzcGxpdHRlciA9XG4gICAgKHF1ZXJ5SW5kZXggIT09IC0xICYmIHF1ZXJ5SW5kZXggPCB1cmwuaW5kZXhPZignIycpKSA/ICc/JyA6ICcjJyxcbiAgICB1U3BsaXQgPSB1cmwuc3BsaXQoc3BsaXR0ZXIpLFxuICAgIHNsYXNoUmVnZXggPSAvXFxcXC9nO1xuICB1U3BsaXRbMF0gPSB1U3BsaXRbMF0ucmVwbGFjZShzbGFzaFJlZ2V4LCAnLycpO1xuICB1cmwgPSB1U3BsaXQuam9pbihzcGxpdHRlcik7XG5cbiAgdmFyIHJlc3QgPSB1cmw7XG5cbiAgLy8gdHJpbSBiZWZvcmUgcHJvY2VlZGluZy5cbiAgLy8gVGhpcyBpcyB0byBzdXBwb3J0IHBhcnNlIHN0dWZmIGxpa2UgXCIgIGh0dHA6Ly9mb28uY29tICBcXG5cIlxuICByZXN0ID0gcmVzdC50cmltKCk7XG5cbiAgaWYgKCFzbGFzaGVzRGVub3RlSG9zdCAmJiB1cmwuc3BsaXQoJyMnKS5sZW5ndGggPT09IDEpIHtcbiAgICAvLyBUcnkgZmFzdCBwYXRoIHJlZ2V4cFxuICAgIHZhciBzaW1wbGVQYXRoID0gc2ltcGxlUGF0aFBhdHRlcm4uZXhlYyhyZXN0KTtcbiAgICBpZiAoc2ltcGxlUGF0aCkge1xuICAgICAgc2VsZi5wYXRoID0gcmVzdDtcbiAgICAgIHNlbGYuaHJlZiA9IHJlc3Q7XG4gICAgICBzZWxmLnBhdGhuYW1lID0gc2ltcGxlUGF0aFsxXTtcbiAgICAgIGlmIChzaW1wbGVQYXRoWzJdKSB7XG4gICAgICAgIHNlbGYuc2VhcmNoID0gc2ltcGxlUGF0aFsyXTtcbiAgICAgICAgaWYgKHBhcnNlUXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICBzZWxmLnF1ZXJ5ID0gcXNQYXJzZShzZWxmLnNlYXJjaC5zdWJzdHIoMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYucXVlcnkgPSBzZWxmLnNlYXJjaC5zdWJzdHIoMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyc2VRdWVyeVN0cmluZykge1xuICAgICAgICBzZWxmLnNlYXJjaCA9ICcnO1xuICAgICAgICBzZWxmLnF1ZXJ5ID0ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VsZjtcbiAgICB9XG4gIH1cblxuICB2YXIgcHJvdG8gPSBwcm90b2NvbFBhdHRlcm4uZXhlYyhyZXN0KTtcbiAgaWYgKHByb3RvKSB7XG4gICAgcHJvdG8gPSBwcm90b1swXTtcbiAgICB2YXIgbG93ZXJQcm90byA9IHByb3RvLnRvTG93ZXJDYXNlKCk7XG4gICAgc2VsZi5wcm90b2NvbCA9IGxvd2VyUHJvdG87XG4gICAgcmVzdCA9IHJlc3Quc3Vic3RyKHByb3RvLmxlbmd0aCk7XG4gIH1cblxuICAvLyBmaWd1cmUgb3V0IGlmIGl0J3MgZ290IGEgaG9zdFxuICAvLyB1c2VyQHNlcnZlciBpcyAqYWx3YXlzKiBpbnRlcnByZXRlZCBhcyBhIGhvc3RuYW1lLCBhbmQgdXJsXG4gIC8vIHJlc29sdXRpb24gd2lsbCB0cmVhdCAvL2Zvby9iYXIgYXMgaG9zdD1mb28scGF0aD1iYXIgYmVjYXVzZSB0aGF0J3NcbiAgLy8gaG93IHRoZSBicm93c2VyIHJlc29sdmVzIHJlbGF0aXZlIFVSTHMuXG4gIGlmIChzbGFzaGVzRGVub3RlSG9zdCB8fCBwcm90byB8fCByZXN0Lm1hdGNoKC9eXFwvXFwvW15AXFwvXStAW15AXFwvXSsvKSkge1xuICAgIHZhciBzbGFzaGVzID0gcmVzdC5zdWJzdHIoMCwgMikgPT09ICcvLyc7XG4gICAgaWYgKHNsYXNoZXMgJiYgIShwcm90byAmJiBob3N0bGVzc1Byb3RvY29sW3Byb3RvXSkpIHtcbiAgICAgIHJlc3QgPSByZXN0LnN1YnN0cigyKTtcbiAgICAgIHNlbGYuc2xhc2hlcyA9IHRydWU7XG4gICAgfVxuICB9XG4gIHZhciBpLCBoZWMsIGwsIHA7XG4gIGlmICghaG9zdGxlc3NQcm90b2NvbFtwcm90b10gJiZcbiAgICAoc2xhc2hlcyB8fCAocHJvdG8gJiYgIXNsYXNoZWRQcm90b2NvbFtwcm90b10pKSkge1xuXG4gICAgLy8gdGhlcmUncyBhIGhvc3RuYW1lLlxuICAgIC8vIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiAvLCA/LCA7LCBvciAjIGVuZHMgdGhlIGhvc3QuXG4gICAgLy9cbiAgICAvLyBJZiB0aGVyZSBpcyBhbiBAIGluIHRoZSBob3N0bmFtZSwgdGhlbiBub24taG9zdCBjaGFycyAqYXJlKiBhbGxvd2VkXG4gICAgLy8gdG8gdGhlIGxlZnQgb2YgdGhlIGxhc3QgQCBzaWduLCB1bmxlc3Mgc29tZSBob3N0LWVuZGluZyBjaGFyYWN0ZXJcbiAgICAvLyBjb21lcyAqYmVmb3JlKiB0aGUgQC1zaWduLlxuICAgIC8vIFVSTHMgYXJlIG9ibm94aW91cy5cbiAgICAvL1xuICAgIC8vIGV4OlxuICAgIC8vIGh0dHA6Ly9hQGJAYy8gPT4gdXNlcjphQGIgaG9zdDpjXG4gICAgLy8gaHR0cDovL2FAYj9AYyA9PiB1c2VyOmEgaG9zdDpjIHBhdGg6Lz9AY1xuXG4gICAgLy8gdjAuMTIgVE9ETyhpc2FhY3MpOiBUaGlzIGlzIG5vdCBxdWl0ZSBob3cgQ2hyb21lIGRvZXMgdGhpbmdzLlxuICAgIC8vIFJldmlldyBvdXIgdGVzdCBjYXNlIGFnYWluc3QgYnJvd3NlcnMgbW9yZSBjb21wcmVoZW5zaXZlbHkuXG5cbiAgICAvLyBmaW5kIHRoZSBmaXJzdCBpbnN0YW5jZSBvZiBhbnkgaG9zdEVuZGluZ0NoYXJzXG4gICAgdmFyIGhvc3RFbmQgPSAtMTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgaG9zdEVuZGluZ0NoYXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoZWMgPSByZXN0LmluZGV4T2YoaG9zdEVuZGluZ0NoYXJzW2ldKTtcbiAgICAgIGlmIChoZWMgIT09IC0xICYmIChob3N0RW5kID09PSAtMSB8fCBoZWMgPCBob3N0RW5kKSlcbiAgICAgICAgaG9zdEVuZCA9IGhlYztcbiAgICB9XG5cbiAgICAvLyBhdCB0aGlzIHBvaW50LCBlaXRoZXIgd2UgaGF2ZSBhbiBleHBsaWNpdCBwb2ludCB3aGVyZSB0aGVcbiAgICAvLyBhdXRoIHBvcnRpb24gY2Fubm90IGdvIHBhc3QsIG9yIHRoZSBsYXN0IEAgY2hhciBpcyB0aGUgZGVjaWRlci5cbiAgICB2YXIgYXV0aCwgYXRTaWduO1xuICAgIGlmIChob3N0RW5kID09PSAtMSkge1xuICAgICAgLy8gYXRTaWduIGNhbiBiZSBhbnl3aGVyZS5cbiAgICAgIGF0U2lnbiA9IHJlc3QubGFzdEluZGV4T2YoJ0AnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYXRTaWduIG11c3QgYmUgaW4gYXV0aCBwb3J0aW9uLlxuICAgICAgLy8gaHR0cDovL2FAYi9jQGQgPT4gaG9zdDpiIGF1dGg6YSBwYXRoOi9jQGRcbiAgICAgIGF0U2lnbiA9IHJlc3QubGFzdEluZGV4T2YoJ0AnLCBob3N0RW5kKTtcbiAgICB9XG5cbiAgICAvLyBOb3cgd2UgaGF2ZSBhIHBvcnRpb24gd2hpY2ggaXMgZGVmaW5pdGVseSB0aGUgYXV0aC5cbiAgICAvLyBQdWxsIHRoYXQgb2ZmLlxuICAgIGlmIChhdFNpZ24gIT09IC0xKSB7XG4gICAgICBhdXRoID0gcmVzdC5zbGljZSgwLCBhdFNpZ24pO1xuICAgICAgcmVzdCA9IHJlc3Quc2xpY2UoYXRTaWduICsgMSk7XG4gICAgICBzZWxmLmF1dGggPSBkZWNvZGVVUklDb21wb25lbnQoYXV0aCk7XG4gICAgfVxuXG4gICAgLy8gdGhlIGhvc3QgaXMgdGhlIHJlbWFpbmluZyB0byB0aGUgbGVmdCBvZiB0aGUgZmlyc3Qgbm9uLWhvc3QgY2hhclxuICAgIGhvc3RFbmQgPSAtMTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbm9uSG9zdENoYXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoZWMgPSByZXN0LmluZGV4T2Yobm9uSG9zdENoYXJzW2ldKTtcbiAgICAgIGlmIChoZWMgIT09IC0xICYmIChob3N0RW5kID09PSAtMSB8fCBoZWMgPCBob3N0RW5kKSlcbiAgICAgICAgaG9zdEVuZCA9IGhlYztcbiAgICB9XG4gICAgLy8gaWYgd2Ugc3RpbGwgaGF2ZSBub3QgaGl0IGl0LCB0aGVuIHRoZSBlbnRpcmUgdGhpbmcgaXMgYSBob3N0LlxuICAgIGlmIChob3N0RW5kID09PSAtMSlcbiAgICAgIGhvc3RFbmQgPSByZXN0Lmxlbmd0aDtcblxuICAgIHNlbGYuaG9zdCA9IHJlc3Quc2xpY2UoMCwgaG9zdEVuZCk7XG4gICAgcmVzdCA9IHJlc3Quc2xpY2UoaG9zdEVuZCk7XG5cbiAgICAvLyBwdWxsIG91dCBwb3J0LlxuICAgIHBhcnNlSG9zdChzZWxmKTtcblxuICAgIC8vIHdlJ3ZlIGluZGljYXRlZCB0aGF0IHRoZXJlIGlzIGEgaG9zdG5hbWUsXG4gICAgLy8gc28gZXZlbiBpZiBpdCdzIGVtcHR5LCBpdCBoYXMgdG8gYmUgcHJlc2VudC5cbiAgICBzZWxmLmhvc3RuYW1lID0gc2VsZi5ob3N0bmFtZSB8fCAnJztcblxuICAgIC8vIGlmIGhvc3RuYW1lIGJlZ2lucyB3aXRoIFsgYW5kIGVuZHMgd2l0aCBdXG4gICAgLy8gYXNzdW1lIHRoYXQgaXQncyBhbiBJUHY2IGFkZHJlc3MuXG4gICAgdmFyIGlwdjZIb3N0bmFtZSA9IHNlbGYuaG9zdG5hbWVbMF0gPT09ICdbJyAmJlxuICAgICAgc2VsZi5ob3N0bmFtZVtzZWxmLmhvc3RuYW1lLmxlbmd0aCAtIDFdID09PSAnXSc7XG5cbiAgICAvLyB2YWxpZGF0ZSBhIGxpdHRsZS5cbiAgICBpZiAoIWlwdjZIb3N0bmFtZSkge1xuICAgICAgdmFyIGhvc3RwYXJ0cyA9IHNlbGYuaG9zdG5hbWUuc3BsaXQoL1xcLi8pO1xuICAgICAgZm9yIChpID0gMCwgbCA9IGhvc3RwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdmFyIHBhcnQgPSBob3N0cGFydHNbaV07XG4gICAgICAgIGlmICghcGFydCkgY29udGludWU7XG4gICAgICAgIGlmICghcGFydC5tYXRjaChob3N0bmFtZVBhcnRQYXR0ZXJuKSkge1xuICAgICAgICAgIHZhciBuZXdwYXJ0ID0gJyc7XG4gICAgICAgICAgZm9yICh2YXIgaiA9IDAsIGsgPSBwYXJ0Lmxlbmd0aDsgaiA8IGs7IGorKykge1xuICAgICAgICAgICAgaWYgKHBhcnQuY2hhckNvZGVBdChqKSA+IDEyNykge1xuICAgICAgICAgICAgICAvLyB3ZSByZXBsYWNlIG5vbi1BU0NJSSBjaGFyIHdpdGggYSB0ZW1wb3JhcnkgcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0aGlzIHRvIG1ha2Ugc3VyZSBzaXplIG9mIGhvc3RuYW1lIGlzIG5vdFxuICAgICAgICAgICAgICAvLyBicm9rZW4gYnkgcmVwbGFjaW5nIG5vbi1BU0NJSSBieSBub3RoaW5nXG4gICAgICAgICAgICAgIG5ld3BhcnQgKz0gJ3gnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbmV3cGFydCArPSBwYXJ0W2pdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyB3ZSB0ZXN0IGFnYWluIHdpdGggQVNDSUkgY2hhciBvbmx5XG4gICAgICAgICAgaWYgKCFuZXdwYXJ0Lm1hdGNoKGhvc3RuYW1lUGFydFBhdHRlcm4pKSB7XG4gICAgICAgICAgICB2YXIgdmFsaWRQYXJ0cyA9IGhvc3RwYXJ0cy5zbGljZSgwLCBpKTtcbiAgICAgICAgICAgIHZhciBub3RIb3N0ID0gaG9zdHBhcnRzLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgICAgIHZhciBiaXQgPSBwYXJ0Lm1hdGNoKGhvc3RuYW1lUGFydFN0YXJ0KTtcbiAgICAgICAgICAgIGlmIChiaXQpIHtcbiAgICAgICAgICAgICAgdmFsaWRQYXJ0cy5wdXNoKGJpdFsxXSk7XG4gICAgICAgICAgICAgIG5vdEhvc3QudW5zaGlmdChiaXRbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5vdEhvc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlc3QgPSAnLycgKyBub3RIb3N0LmpvaW4oJy4nKSArIHJlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWxmLmhvc3RuYW1lID0gdmFsaWRQYXJ0cy5qb2luKCcuJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2VsZi5ob3N0bmFtZS5sZW5ndGggPiBob3N0bmFtZU1heExlbikge1xuICAgICAgc2VsZi5ob3N0bmFtZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBob3N0bmFtZXMgYXJlIGFsd2F5cyBsb3dlciBjYXNlLlxuICAgICAgc2VsZi5ob3N0bmFtZSA9IHNlbGYuaG9zdG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICB9XG5cbiAgICBpZiAoIWlwdjZIb3N0bmFtZSkge1xuICAgICAgLy8gSUROQSBTdXBwb3J0OiBSZXR1cm5zIGEgcHVueWNvZGVkIHJlcHJlc2VudGF0aW9uIG9mIFwiZG9tYWluXCIuXG4gICAgICAvLyBJdCBvbmx5IGNvbnZlcnRzIHBhcnRzIG9mIHRoZSBkb21haW4gbmFtZSB0aGF0XG4gICAgICAvLyBoYXZlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBpLmUuIGl0IGRvZXNuJ3QgbWF0dGVyIGlmXG4gICAgICAvLyB5b3UgY2FsbCBpdCB3aXRoIGEgZG9tYWluIHRoYXQgYWxyZWFkeSBpcyBBU0NJSS1vbmx5LlxuICAgICAgc2VsZi5ob3N0bmFtZSA9IHRvQVNDSUkoc2VsZi5ob3N0bmFtZSk7XG4gICAgfVxuXG4gICAgcCA9IHNlbGYucG9ydCA/ICc6JyArIHNlbGYucG9ydCA6ICcnO1xuICAgIHZhciBoID0gc2VsZi5ob3N0bmFtZSB8fCAnJztcbiAgICBzZWxmLmhvc3QgPSBoICsgcDtcbiAgICBzZWxmLmhyZWYgKz0gc2VsZi5ob3N0O1xuXG4gICAgLy8gc3RyaXAgWyBhbmQgXSBmcm9tIHRoZSBob3N0bmFtZVxuICAgIC8vIHRoZSBob3N0IGZpZWxkIHN0aWxsIHJldGFpbnMgdGhlbSwgdGhvdWdoXG4gICAgaWYgKGlwdjZIb3N0bmFtZSkge1xuICAgICAgc2VsZi5ob3N0bmFtZSA9IHNlbGYuaG9zdG5hbWUuc3Vic3RyKDEsIHNlbGYuaG9zdG5hbWUubGVuZ3RoIC0gMik7XG4gICAgICBpZiAocmVzdFswXSAhPT0gJy8nKSB7XG4gICAgICAgIHJlc3QgPSAnLycgKyByZXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIG5vdyByZXN0IGlzIHNldCB0byB0aGUgcG9zdC1ob3N0IHN0dWZmLlxuICAvLyBjaG9wIG9mZiBhbnkgZGVsaW0gY2hhcnMuXG4gIGlmICghdW5zYWZlUHJvdG9jb2xbbG93ZXJQcm90b10pIHtcblxuICAgIC8vIEZpcnN0LCBtYWtlIDEwMCUgc3VyZSB0aGF0IGFueSBcImF1dG9Fc2NhcGVcIiBjaGFycyBnZXRcbiAgICAvLyBlc2NhcGVkLCBldmVuIGlmIGVuY29kZVVSSUNvbXBvbmVudCBkb2Vzbid0IHRoaW5rIHRoZXlcbiAgICAvLyBuZWVkIHRvIGJlLlxuICAgIGZvciAoaSA9IDAsIGwgPSBhdXRvRXNjYXBlLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgdmFyIGFlID0gYXV0b0VzY2FwZVtpXTtcbiAgICAgIGlmIChyZXN0LmluZGV4T2YoYWUpID09PSAtMSlcbiAgICAgICAgY29udGludWU7XG4gICAgICB2YXIgZXNjID0gZW5jb2RlVVJJQ29tcG9uZW50KGFlKTtcbiAgICAgIGlmIChlc2MgPT09IGFlKSB7XG4gICAgICAgIGVzYyA9IGVzY2FwZShhZSk7XG4gICAgICB9XG4gICAgICByZXN0ID0gcmVzdC5zcGxpdChhZSkuam9pbihlc2MpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gY2hvcCBvZmYgZnJvbSB0aGUgdGFpbCBmaXJzdC5cbiAgdmFyIGhhc2ggPSByZXN0LmluZGV4T2YoJyMnKTtcbiAgaWYgKGhhc2ggIT09IC0xKSB7XG4gICAgLy8gZ290IGEgZnJhZ21lbnQgc3RyaW5nLlxuICAgIHNlbGYuaGFzaCA9IHJlc3Quc3Vic3RyKGhhc2gpO1xuICAgIHJlc3QgPSByZXN0LnNsaWNlKDAsIGhhc2gpO1xuICB9XG4gIHZhciBxbSA9IHJlc3QuaW5kZXhPZignPycpO1xuICBpZiAocW0gIT09IC0xKSB7XG4gICAgc2VsZi5zZWFyY2ggPSByZXN0LnN1YnN0cihxbSk7XG4gICAgc2VsZi5xdWVyeSA9IHJlc3Quc3Vic3RyKHFtICsgMSk7XG4gICAgaWYgKHBhcnNlUXVlcnlTdHJpbmcpIHtcbiAgICAgIHNlbGYucXVlcnkgPSBxc1BhcnNlKHNlbGYucXVlcnkpO1xuICAgIH1cbiAgICByZXN0ID0gcmVzdC5zbGljZSgwLCBxbSk7XG4gIH0gZWxzZSBpZiAocGFyc2VRdWVyeVN0cmluZykge1xuICAgIC8vIG5vIHF1ZXJ5IHN0cmluZywgYnV0IHBhcnNlUXVlcnlTdHJpbmcgc3RpbGwgcmVxdWVzdGVkXG4gICAgc2VsZi5zZWFyY2ggPSAnJztcbiAgICBzZWxmLnF1ZXJ5ID0ge307XG4gIH1cbiAgaWYgKHJlc3QpIHNlbGYucGF0aG5hbWUgPSByZXN0O1xuICBpZiAoc2xhc2hlZFByb3RvY29sW2xvd2VyUHJvdG9dICYmXG4gICAgc2VsZi5ob3N0bmFtZSAmJiAhc2VsZi5wYXRobmFtZSkge1xuICAgIHNlbGYucGF0aG5hbWUgPSAnLyc7XG4gIH1cblxuICAvL3RvIHN1cHBvcnQgaHR0cC5yZXF1ZXN0XG4gIGlmIChzZWxmLnBhdGhuYW1lIHx8IHNlbGYuc2VhcmNoKSB7XG4gICAgcCA9IHNlbGYucGF0aG5hbWUgfHwgJyc7XG4gICAgdmFyIHMgPSBzZWxmLnNlYXJjaCB8fCAnJztcbiAgICBzZWxmLnBhdGggPSBwICsgcztcbiAgfVxuXG4gIC8vIGZpbmFsbHksIHJlY29uc3RydWN0IHRoZSBocmVmIGJhc2VkIG9uIHdoYXQgaGFzIGJlZW4gdmFsaWRhdGVkLlxuICBzZWxmLmhyZWYgPSBmb3JtYXQoc2VsZik7XG4gIHJldHVybiBzZWxmO1xufVxuXG4vLyBmb3JtYXQgYSBwYXJzZWQgb2JqZWN0IGludG8gYSB1cmwgc3RyaW5nXG5mdW5jdGlvbiB1cmxGb3JtYXQob2JqKSB7XG4gIC8vIGVuc3VyZSBpdCdzIGFuIG9iamVjdCwgYW5kIG5vdCBhIHN0cmluZyB1cmwuXG4gIC8vIElmIGl0J3MgYW4gb2JqLCB0aGlzIGlzIGEgbm8tb3AuXG4gIC8vIHRoaXMgd2F5LCB5b3UgY2FuIGNhbGwgdXJsX2Zvcm1hdCgpIG9uIHN0cmluZ3NcbiAgLy8gdG8gY2xlYW4gdXAgcG90ZW50aWFsbHkgd29ua3kgdXJscy5cbiAgaWYgKGlzU3RyaW5nKG9iaikpIG9iaiA9IHBhcnNlKHt9LCBvYmopO1xuICByZXR1cm4gZm9ybWF0KG9iaik7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdChzZWxmKSB7XG4gIHZhciBhdXRoID0gc2VsZi5hdXRoIHx8ICcnO1xuICBpZiAoYXV0aCkge1xuICAgIGF1dGggPSBlbmNvZGVVUklDb21wb25lbnQoYXV0aCk7XG4gICAgYXV0aCA9IGF1dGgucmVwbGFjZSgvJTNBL2ksICc6Jyk7XG4gICAgYXV0aCArPSAnQCc7XG4gIH1cblxuICB2YXIgcHJvdG9jb2wgPSBzZWxmLnByb3RvY29sIHx8ICcnLFxuICAgIHBhdGhuYW1lID0gc2VsZi5wYXRobmFtZSB8fCAnJyxcbiAgICBoYXNoID0gc2VsZi5oYXNoIHx8ICcnLFxuICAgIGhvc3QgPSBmYWxzZSxcbiAgICBxdWVyeSA9ICcnO1xuXG4gIGlmIChzZWxmLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHNlbGYuaG9zdDtcbiAgfSBlbHNlIGlmIChzZWxmLmhvc3RuYW1lKSB7XG4gICAgaG9zdCA9IGF1dGggKyAoc2VsZi5ob3N0bmFtZS5pbmRleE9mKCc6JykgPT09IC0xID9cbiAgICAgIHNlbGYuaG9zdG5hbWUgOlxuICAgICAgJ1snICsgdGhpcy5ob3N0bmFtZSArICddJyk7XG4gICAgaWYgKHNlbGYucG9ydCkge1xuICAgICAgaG9zdCArPSAnOicgKyBzZWxmLnBvcnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHNlbGYucXVlcnkgJiZcbiAgICBpc09iamVjdChzZWxmLnF1ZXJ5KSAmJlxuICAgIE9iamVjdC5rZXlzKHNlbGYucXVlcnkpLmxlbmd0aCkge1xuICAgIHF1ZXJ5ID0gcXNTdHJpbmdpZnkoc2VsZi5xdWVyeSk7XG4gIH1cblxuICB2YXIgc2VhcmNoID0gc2VsZi5zZWFyY2ggfHwgKHF1ZXJ5ICYmICgnPycgKyBxdWVyeSkpIHx8ICcnO1xuXG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSAnOicpIHByb3RvY29sICs9ICc6JztcblxuICAvLyBvbmx5IHRoZSBzbGFzaGVkUHJvdG9jb2xzIGdldCB0aGUgLy8uICBOb3QgbWFpbHRvOiwgeG1wcDosIGV0Yy5cbiAgLy8gdW5sZXNzIHRoZXkgaGFkIHRoZW0gdG8gYmVnaW4gd2l0aC5cbiAgaWYgKHNlbGYuc2xhc2hlcyB8fFxuICAgICghcHJvdG9jb2wgfHwgc2xhc2hlZFByb3RvY29sW3Byb3RvY29sXSkgJiYgaG9zdCAhPT0gZmFsc2UpIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKTtcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWUuY2hhckF0KDApICE9PSAnLycpIHBhdGhuYW1lID0gJy8nICsgcGF0aG5hbWU7XG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJyc7XG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoLmNoYXJBdCgwKSAhPT0gJyMnKSBoYXNoID0gJyMnICsgaGFzaDtcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2guY2hhckF0KDApICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaDtcblxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnJlcGxhY2UoL1s/I10vZywgZnVuY3Rpb24obWF0Y2gpIHtcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KG1hdGNoKTtcbiAgfSk7XG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpO1xuXG4gIHJldHVybiBwcm90b2NvbCArIGhvc3QgKyBwYXRobmFtZSArIHNlYXJjaCArIGhhc2g7XG59XG5cblVybC5wcm90b3R5cGUuZm9ybWF0ID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiBmb3JtYXQodGhpcyk7XG59XG5cbmZ1bmN0aW9uIHVybFJlc29sdmUoc291cmNlLCByZWxhdGl2ZSkge1xuICByZXR1cm4gdXJsUGFyc2Uoc291cmNlLCBmYWxzZSwgdHJ1ZSkucmVzb2x2ZShyZWxhdGl2ZSk7XG59XG5cblVybC5wcm90b3R5cGUucmVzb2x2ZSA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7XG4gIHJldHVybiB0aGlzLnJlc29sdmVPYmplY3QodXJsUGFyc2UocmVsYXRpdmUsIGZhbHNlLCB0cnVlKSkuZm9ybWF0KCk7XG59O1xuXG5mdW5jdGlvbiB1cmxSZXNvbHZlT2JqZWN0KHNvdXJjZSwgcmVsYXRpdmUpIHtcbiAgaWYgKCFzb3VyY2UpIHJldHVybiByZWxhdGl2ZTtcbiAgcmV0dXJuIHVybFBhcnNlKHNvdXJjZSwgZmFsc2UsIHRydWUpLnJlc29sdmVPYmplY3QocmVsYXRpdmUpO1xufVxuXG5VcmwucHJvdG90eXBlLnJlc29sdmVPYmplY3QgPSBmdW5jdGlvbihyZWxhdGl2ZSkge1xuICBpZiAoaXNTdHJpbmcocmVsYXRpdmUpKSB7XG4gICAgdmFyIHJlbCA9IG5ldyBVcmwoKTtcbiAgICByZWwucGFyc2UocmVsYXRpdmUsIGZhbHNlLCB0cnVlKTtcbiAgICByZWxhdGl2ZSA9IHJlbDtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBuZXcgVXJsKCk7XG4gIHZhciB0a2V5cyA9IE9iamVjdC5rZXlzKHRoaXMpO1xuICBmb3IgKHZhciB0ayA9IDA7IHRrIDwgdGtleXMubGVuZ3RoOyB0aysrKSB7XG4gICAgdmFyIHRrZXkgPSB0a2V5c1t0a107XG4gICAgcmVzdWx0W3RrZXldID0gdGhpc1t0a2V5XTtcbiAgfVxuXG4gIC8vIGhhc2ggaXMgYWx3YXlzIG92ZXJyaWRkZW4sIG5vIG1hdHRlciB3aGF0LlxuICAvLyBldmVuIGhyZWY9XCJcIiB3aWxsIHJlbW92ZSBpdC5cbiAgcmVzdWx0Lmhhc2ggPSByZWxhdGl2ZS5oYXNoO1xuXG4gIC8vIGlmIHRoZSByZWxhdGl2ZSB1cmwgaXMgZW1wdHksIHRoZW4gdGhlcmUncyBub3RoaW5nIGxlZnQgdG8gZG8gaGVyZS5cbiAgaWYgKHJlbGF0aXZlLmhyZWYgPT09ICcnKSB7XG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIGhyZWZzIGxpa2UgLy9mb28vYmFyIGFsd2F5cyBjdXQgdG8gdGhlIHByb3RvY29sLlxuICBpZiAocmVsYXRpdmUuc2xhc2hlcyAmJiAhcmVsYXRpdmUucHJvdG9jb2wpIHtcbiAgICAvLyB0YWtlIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBwcm90b2NvbCBmcm9tIHJlbGF0aXZlXG4gICAgdmFyIHJrZXlzID0gT2JqZWN0LmtleXMocmVsYXRpdmUpO1xuICAgIGZvciAodmFyIHJrID0gMDsgcmsgPCBya2V5cy5sZW5ndGg7IHJrKyspIHtcbiAgICAgIHZhciBya2V5ID0gcmtleXNbcmtdO1xuICAgICAgaWYgKHJrZXkgIT09ICdwcm90b2NvbCcpXG4gICAgICAgIHJlc3VsdFtya2V5XSA9IHJlbGF0aXZlW3JrZXldO1xuICAgIH1cblxuICAgIC8vdXJsUGFyc2UgYXBwZW5kcyB0cmFpbGluZyAvIHRvIHVybHMgbGlrZSBodHRwOi8vd3d3LmV4YW1wbGUuY29tXG4gICAgaWYgKHNsYXNoZWRQcm90b2NvbFtyZXN1bHQucHJvdG9jb2xdICYmXG4gICAgICByZXN1bHQuaG9zdG5hbWUgJiYgIXJlc3VsdC5wYXRobmFtZSkge1xuICAgICAgcmVzdWx0LnBhdGggPSByZXN1bHQucGF0aG5hbWUgPSAnLyc7XG4gICAgfVxuXG4gICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB2YXIgcmVsUGF0aDtcbiAgaWYgKHJlbGF0aXZlLnByb3RvY29sICYmIHJlbGF0aXZlLnByb3RvY29sICE9PSByZXN1bHQucHJvdG9jb2wpIHtcbiAgICAvLyBpZiBpdCdzIGEga25vd24gdXJsIHByb3RvY29sLCB0aGVuIGNoYW5naW5nXG4gICAgLy8gdGhlIHByb3RvY29sIGRvZXMgd2VpcmQgdGhpbmdzXG4gICAgLy8gZmlyc3QsIGlmIGl0J3Mgbm90IGZpbGU6LCB0aGVuIHdlIE1VU1QgaGF2ZSBhIGhvc3QsXG4gICAgLy8gYW5kIGlmIHRoZXJlIHdhcyBhIHBhdGhcbiAgICAvLyB0byBiZWdpbiB3aXRoLCB0aGVuIHdlIE1VU1QgaGF2ZSBhIHBhdGguXG4gICAgLy8gaWYgaXQgaXMgZmlsZTosIHRoZW4gdGhlIGhvc3QgaXMgZHJvcHBlZCxcbiAgICAvLyBiZWNhdXNlIHRoYXQncyBrbm93biB0byBiZSBob3N0bGVzcy5cbiAgICAvLyBhbnl0aGluZyBlbHNlIGlzIGFzc3VtZWQgdG8gYmUgYWJzb2x1dGUuXG4gICAgaWYgKCFzbGFzaGVkUHJvdG9jb2xbcmVsYXRpdmUucHJvdG9jb2xdKSB7XG4gICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHJlbGF0aXZlKTtcbiAgICAgIGZvciAodmFyIHYgPSAwOyB2IDwga2V5cy5sZW5ndGg7IHYrKykge1xuICAgICAgICB2YXIgayA9IGtleXNbdl07XG4gICAgICAgIHJlc3VsdFtrXSA9IHJlbGF0aXZlW2tdO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHJlc3VsdC5wcm90b2NvbCA9IHJlbGF0aXZlLnByb3RvY29sO1xuICAgIGlmICghcmVsYXRpdmUuaG9zdCAmJiAhaG9zdGxlc3NQcm90b2NvbFtyZWxhdGl2ZS5wcm90b2NvbF0pIHtcbiAgICAgIHJlbFBhdGggPSAocmVsYXRpdmUucGF0aG5hbWUgfHwgJycpLnNwbGl0KCcvJyk7XG4gICAgICB3aGlsZSAocmVsUGF0aC5sZW5ndGggJiYgIShyZWxhdGl2ZS5ob3N0ID0gcmVsUGF0aC5zaGlmdCgpKSk7XG4gICAgICBpZiAoIXJlbGF0aXZlLmhvc3QpIHJlbGF0aXZlLmhvc3QgPSAnJztcbiAgICAgIGlmICghcmVsYXRpdmUuaG9zdG5hbWUpIHJlbGF0aXZlLmhvc3RuYW1lID0gJyc7XG4gICAgICBpZiAocmVsUGF0aFswXSAhPT0gJycpIHJlbFBhdGgudW5zaGlmdCgnJyk7XG4gICAgICBpZiAocmVsUGF0aC5sZW5ndGggPCAyKSByZWxQYXRoLnVuc2hpZnQoJycpO1xuICAgICAgcmVzdWx0LnBhdGhuYW1lID0gcmVsUGF0aC5qb2luKCcvJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5wYXRobmFtZSA9IHJlbGF0aXZlLnBhdGhuYW1lO1xuICAgIH1cbiAgICByZXN1bHQuc2VhcmNoID0gcmVsYXRpdmUuc2VhcmNoO1xuICAgIHJlc3VsdC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuICAgIHJlc3VsdC5ob3N0ID0gcmVsYXRpdmUuaG9zdCB8fCAnJztcbiAgICByZXN1bHQuYXV0aCA9IHJlbGF0aXZlLmF1dGg7XG4gICAgcmVzdWx0Lmhvc3RuYW1lID0gcmVsYXRpdmUuaG9zdG5hbWUgfHwgcmVsYXRpdmUuaG9zdDtcbiAgICByZXN1bHQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7XG4gICAgLy8gdG8gc3VwcG9ydCBodHRwLnJlcXVlc3RcbiAgICBpZiAocmVzdWx0LnBhdGhuYW1lIHx8IHJlc3VsdC5zZWFyY2gpIHtcbiAgICAgIHZhciBwID0gcmVzdWx0LnBhdGhuYW1lIHx8ICcnO1xuICAgICAgdmFyIHMgPSByZXN1bHQuc2VhcmNoIHx8ICcnO1xuICAgICAgcmVzdWx0LnBhdGggPSBwICsgcztcbiAgICB9XG4gICAgcmVzdWx0LnNsYXNoZXMgPSByZXN1bHQuc2xhc2hlcyB8fCByZWxhdGl2ZS5zbGFzaGVzO1xuICAgIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB2YXIgaXNTb3VyY2VBYnMgPSAocmVzdWx0LnBhdGhuYW1lICYmIHJlc3VsdC5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJyksXG4gICAgaXNSZWxBYnMgPSAoXG4gICAgICByZWxhdGl2ZS5ob3N0IHx8XG4gICAgICByZWxhdGl2ZS5wYXRobmFtZSAmJiByZWxhdGl2ZS5wYXRobmFtZS5jaGFyQXQoMCkgPT09ICcvJ1xuICAgICksXG4gICAgbXVzdEVuZEFicyA9IChpc1JlbEFicyB8fCBpc1NvdXJjZUFicyB8fFxuICAgICAgKHJlc3VsdC5ob3N0ICYmIHJlbGF0aXZlLnBhdGhuYW1lKSksXG4gICAgcmVtb3ZlQWxsRG90cyA9IG11c3RFbmRBYnMsXG4gICAgc3JjUGF0aCA9IHJlc3VsdC5wYXRobmFtZSAmJiByZXN1bHQucGF0aG5hbWUuc3BsaXQoJy8nKSB8fCBbXSxcbiAgICBwc3ljaG90aWMgPSByZXN1bHQucHJvdG9jb2wgJiYgIXNsYXNoZWRQcm90b2NvbFtyZXN1bHQucHJvdG9jb2xdO1xuICByZWxQYXRoID0gcmVsYXRpdmUucGF0aG5hbWUgJiYgcmVsYXRpdmUucGF0aG5hbWUuc3BsaXQoJy8nKSB8fCBbXTtcbiAgLy8gaWYgdGhlIHVybCBpcyBhIG5vbi1zbGFzaGVkIHVybCwgdGhlbiByZWxhdGl2ZVxuICAvLyBsaW5rcyBsaWtlIC4uLy4uIHNob3VsZCBiZSBhYmxlXG4gIC8vIHRvIGNyYXdsIHVwIHRvIHRoZSBob3N0bmFtZSwgYXMgd2VsbC4gIFRoaXMgaXMgc3RyYW5nZS5cbiAgLy8gcmVzdWx0LnByb3RvY29sIGhhcyBhbHJlYWR5IGJlZW4gc2V0IGJ5IG5vdy5cbiAgLy8gTGF0ZXIgb24sIHB1dCB0aGUgZmlyc3QgcGF0aCBwYXJ0IGludG8gdGhlIGhvc3QgZmllbGQuXG4gIGlmIChwc3ljaG90aWMpIHtcbiAgICByZXN1bHQuaG9zdG5hbWUgPSAnJztcbiAgICByZXN1bHQucG9ydCA9IG51bGw7XG4gICAgaWYgKHJlc3VsdC5ob3N0KSB7XG4gICAgICBpZiAoc3JjUGF0aFswXSA9PT0gJycpIHNyY1BhdGhbMF0gPSByZXN1bHQuaG9zdDtcbiAgICAgIGVsc2Ugc3JjUGF0aC51bnNoaWZ0KHJlc3VsdC5ob3N0KTtcbiAgICB9XG4gICAgcmVzdWx0Lmhvc3QgPSAnJztcbiAgICBpZiAocmVsYXRpdmUucHJvdG9jb2wpIHtcbiAgICAgIHJlbGF0aXZlLmhvc3RuYW1lID0gbnVsbDtcbiAgICAgIHJlbGF0aXZlLnBvcnQgPSBudWxsO1xuICAgICAgaWYgKHJlbGF0aXZlLmhvc3QpIHtcbiAgICAgICAgaWYgKHJlbFBhdGhbMF0gPT09ICcnKSByZWxQYXRoWzBdID0gcmVsYXRpdmUuaG9zdDtcbiAgICAgICAgZWxzZSByZWxQYXRoLnVuc2hpZnQocmVsYXRpdmUuaG9zdCk7XG4gICAgICB9XG4gICAgICByZWxhdGl2ZS5ob3N0ID0gbnVsbDtcbiAgICB9XG4gICAgbXVzdEVuZEFicyA9IG11c3RFbmRBYnMgJiYgKHJlbFBhdGhbMF0gPT09ICcnIHx8IHNyY1BhdGhbMF0gPT09ICcnKTtcbiAgfVxuICB2YXIgYXV0aEluSG9zdDtcbiAgaWYgKGlzUmVsQWJzKSB7XG4gICAgLy8gaXQncyBhYnNvbHV0ZS5cbiAgICByZXN1bHQuaG9zdCA9IChyZWxhdGl2ZS5ob3N0IHx8IHJlbGF0aXZlLmhvc3QgPT09ICcnKSA/XG4gICAgICByZWxhdGl2ZS5ob3N0IDogcmVzdWx0Lmhvc3Q7XG4gICAgcmVzdWx0Lmhvc3RuYW1lID0gKHJlbGF0aXZlLmhvc3RuYW1lIHx8IHJlbGF0aXZlLmhvc3RuYW1lID09PSAnJykgP1xuICAgICAgcmVsYXRpdmUuaG9zdG5hbWUgOiByZXN1bHQuaG9zdG5hbWU7XG4gICAgcmVzdWx0LnNlYXJjaCA9IHJlbGF0aXZlLnNlYXJjaDtcbiAgICByZXN1bHQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcbiAgICBzcmNQYXRoID0gcmVsUGF0aDtcbiAgICAvLyBmYWxsIHRocm91Z2ggdG8gdGhlIGRvdC1oYW5kbGluZyBiZWxvdy5cbiAgfSBlbHNlIGlmIChyZWxQYXRoLmxlbmd0aCkge1xuICAgIC8vIGl0J3MgcmVsYXRpdmVcbiAgICAvLyB0aHJvdyBhd2F5IHRoZSBleGlzdGluZyBmaWxlLCBhbmQgdGFrZSB0aGUgbmV3IHBhdGggaW5zdGVhZC5cbiAgICBpZiAoIXNyY1BhdGgpIHNyY1BhdGggPSBbXTtcbiAgICBzcmNQYXRoLnBvcCgpO1xuICAgIHNyY1BhdGggPSBzcmNQYXRoLmNvbmNhdChyZWxQYXRoKTtcbiAgICByZXN1bHQuc2VhcmNoID0gcmVsYXRpdmUuc2VhcmNoO1xuICAgIHJlc3VsdC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5O1xuICB9IGVsc2UgaWYgKCFpc051bGxPclVuZGVmaW5lZChyZWxhdGl2ZS5zZWFyY2gpKSB7XG4gICAgLy8ganVzdCBwdWxsIG91dCB0aGUgc2VhcmNoLlxuICAgIC8vIGxpa2UgaHJlZj0nP2ZvbycuXG4gICAgLy8gUHV0IHRoaXMgYWZ0ZXIgdGhlIG90aGVyIHR3byBjYXNlcyBiZWNhdXNlIGl0IHNpbXBsaWZpZXMgdGhlIGJvb2xlYW5zXG4gICAgaWYgKHBzeWNob3RpYykge1xuICAgICAgcmVzdWx0Lmhvc3RuYW1lID0gcmVzdWx0Lmhvc3QgPSBzcmNQYXRoLnNoaWZ0KCk7XG4gICAgICAvL29jY2F0aW9uYWx5IHRoZSBhdXRoIGNhbiBnZXQgc3R1Y2sgb25seSBpbiBob3N0XG4gICAgICAvL3RoaXMgZXNwZWNpYWxseSBoYXBwZW5zIGluIGNhc2VzIGxpa2VcbiAgICAgIC8vdXJsLnJlc29sdmVPYmplY3QoJ21haWx0bzpsb2NhbDFAZG9tYWluMScsICdsb2NhbDJAZG9tYWluMicpXG4gICAgICBhdXRoSW5Ib3N0ID0gcmVzdWx0Lmhvc3QgJiYgcmVzdWx0Lmhvc3QuaW5kZXhPZignQCcpID4gMCA/XG4gICAgICAgIHJlc3VsdC5ob3N0LnNwbGl0KCdAJykgOiBmYWxzZTtcbiAgICAgIGlmIChhdXRoSW5Ib3N0KSB7XG4gICAgICAgIHJlc3VsdC5hdXRoID0gYXV0aEluSG9zdC5zaGlmdCgpO1xuICAgICAgICByZXN1bHQuaG9zdCA9IHJlc3VsdC5ob3N0bmFtZSA9IGF1dGhJbkhvc3Quc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0LnNlYXJjaCA9IHJlbGF0aXZlLnNlYXJjaDtcbiAgICByZXN1bHQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTtcbiAgICAvL3RvIHN1cHBvcnQgaHR0cC5yZXF1ZXN0XG4gICAgaWYgKCFpc051bGwocmVzdWx0LnBhdGhuYW1lKSB8fCAhaXNOdWxsKHJlc3VsdC5zZWFyY2gpKSB7XG4gICAgICByZXN1bHQucGF0aCA9IChyZXN1bHQucGF0aG5hbWUgPyByZXN1bHQucGF0aG5hbWUgOiAnJykgK1xuICAgICAgICAocmVzdWx0LnNlYXJjaCA/IHJlc3VsdC5zZWFyY2ggOiAnJyk7XG4gICAgfVxuICAgIHJlc3VsdC5ocmVmID0gcmVzdWx0LmZvcm1hdCgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpZiAoIXNyY1BhdGgubGVuZ3RoKSB7XG4gICAgLy8gbm8gcGF0aCBhdCBhbGwuICBlYXN5LlxuICAgIC8vIHdlJ3ZlIGFscmVhZHkgaGFuZGxlZCB0aGUgb3RoZXIgc3R1ZmYgYWJvdmUuXG4gICAgcmVzdWx0LnBhdGhuYW1lID0gbnVsbDtcbiAgICAvL3RvIHN1cHBvcnQgaHR0cC5yZXF1ZXN0XG4gICAgaWYgKHJlc3VsdC5zZWFyY2gpIHtcbiAgICAgIHJlc3VsdC5wYXRoID0gJy8nICsgcmVzdWx0LnNlYXJjaDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0LnBhdGggPSBudWxsO1xuICAgIH1cbiAgICByZXN1bHQuaHJlZiA9IHJlc3VsdC5mb3JtYXQoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gaWYgYSB1cmwgRU5EcyBpbiAuIG9yIC4uLCB0aGVuIGl0IG11c3QgZ2V0IGEgdHJhaWxpbmcgc2xhc2guXG4gIC8vIGhvd2V2ZXIsIGlmIGl0IGVuZHMgaW4gYW55dGhpbmcgZWxzZSBub24tc2xhc2h5LFxuICAvLyB0aGVuIGl0IG11c3QgTk9UIGdldCBhIHRyYWlsaW5nIHNsYXNoLlxuICB2YXIgbGFzdCA9IHNyY1BhdGguc2xpY2UoLTEpWzBdO1xuICB2YXIgaGFzVHJhaWxpbmdTbGFzaCA9IChcbiAgICAocmVzdWx0Lmhvc3QgfHwgcmVsYXRpdmUuaG9zdCB8fCBzcmNQYXRoLmxlbmd0aCA+IDEpICYmXG4gICAgKGxhc3QgPT09ICcuJyB8fCBsYXN0ID09PSAnLi4nKSB8fCBsYXN0ID09PSAnJyk7XG5cbiAgLy8gc3RyaXAgc2luZ2xlIGRvdHMsIHJlc29sdmUgZG91YmxlIGRvdHMgdG8gcGFyZW50IGRpclxuICAvLyBpZiB0aGUgcGF0aCB0cmllcyB0byBnbyBhYm92ZSB0aGUgcm9vdCwgYHVwYCBlbmRzIHVwID4gMFxuICB2YXIgdXAgPSAwO1xuICBmb3IgKHZhciBpID0gc3JjUGF0aC5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XG4gICAgbGFzdCA9IHNyY1BhdGhbaV07XG4gICAgaWYgKGxhc3QgPT09ICcuJykge1xuICAgICAgc3JjUGF0aC5zcGxpY2UoaSwgMSk7XG4gICAgfSBlbHNlIGlmIChsYXN0ID09PSAnLi4nKSB7XG4gICAgICBzcmNQYXRoLnNwbGljZShpLCAxKTtcbiAgICAgIHVwKys7XG4gICAgfSBlbHNlIGlmICh1cCkge1xuICAgICAgc3JjUGF0aC5zcGxpY2UoaSwgMSk7XG4gICAgICB1cC0tO1xuICAgIH1cbiAgfVxuXG4gIC8vIGlmIHRoZSBwYXRoIGlzIGFsbG93ZWQgdG8gZ28gYWJvdmUgdGhlIHJvb3QsIHJlc3RvcmUgbGVhZGluZyAuLnNcbiAgaWYgKCFtdXN0RW5kQWJzICYmICFyZW1vdmVBbGxEb3RzKSB7XG4gICAgZm9yICg7IHVwLS07IHVwKSB7XG4gICAgICBzcmNQYXRoLnVuc2hpZnQoJy4uJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKG11c3RFbmRBYnMgJiYgc3JjUGF0aFswXSAhPT0gJycgJiZcbiAgICAoIXNyY1BhdGhbMF0gfHwgc3JjUGF0aFswXS5jaGFyQXQoMCkgIT09ICcvJykpIHtcbiAgICBzcmNQYXRoLnVuc2hpZnQoJycpO1xuICB9XG5cbiAgaWYgKGhhc1RyYWlsaW5nU2xhc2ggJiYgKHNyY1BhdGguam9pbignLycpLnN1YnN0cigtMSkgIT09ICcvJykpIHtcbiAgICBzcmNQYXRoLnB1c2goJycpO1xuICB9XG5cbiAgdmFyIGlzQWJzb2x1dGUgPSBzcmNQYXRoWzBdID09PSAnJyB8fFxuICAgIChzcmNQYXRoWzBdICYmIHNyY1BhdGhbMF0uY2hhckF0KDApID09PSAnLycpO1xuXG4gIC8vIHB1dCB0aGUgaG9zdCBiYWNrXG4gIGlmIChwc3ljaG90aWMpIHtcbiAgICByZXN1bHQuaG9zdG5hbWUgPSByZXN1bHQuaG9zdCA9IGlzQWJzb2x1dGUgPyAnJyA6XG4gICAgICBzcmNQYXRoLmxlbmd0aCA/IHNyY1BhdGguc2hpZnQoKSA6ICcnO1xuICAgIC8vb2NjYXRpb25hbHkgdGhlIGF1dGggY2FuIGdldCBzdHVjayBvbmx5IGluIGhvc3RcbiAgICAvL3RoaXMgZXNwZWNpYWxseSBoYXBwZW5zIGluIGNhc2VzIGxpa2VcbiAgICAvL3VybC5yZXNvbHZlT2JqZWN0KCdtYWlsdG86bG9jYWwxQGRvbWFpbjEnLCAnbG9jYWwyQGRvbWFpbjInKVxuICAgIGF1dGhJbkhvc3QgPSByZXN1bHQuaG9zdCAmJiByZXN1bHQuaG9zdC5pbmRleE9mKCdAJykgPiAwID9cbiAgICAgIHJlc3VsdC5ob3N0LnNwbGl0KCdAJykgOiBmYWxzZTtcbiAgICBpZiAoYXV0aEluSG9zdCkge1xuICAgICAgcmVzdWx0LmF1dGggPSBhdXRoSW5Ib3N0LnNoaWZ0KCk7XG4gICAgICByZXN1bHQuaG9zdCA9IHJlc3VsdC5ob3N0bmFtZSA9IGF1dGhJbkhvc3Quc2hpZnQoKTtcbiAgICB9XG4gIH1cblxuICBtdXN0RW5kQWJzID0gbXVzdEVuZEFicyB8fCAocmVzdWx0Lmhvc3QgJiYgc3JjUGF0aC5sZW5ndGgpO1xuXG4gIGlmIChtdXN0RW5kQWJzICYmICFpc0Fic29sdXRlKSB7XG4gICAgc3JjUGF0aC51bnNoaWZ0KCcnKTtcbiAgfVxuXG4gIGlmICghc3JjUGF0aC5sZW5ndGgpIHtcbiAgICByZXN1bHQucGF0aG5hbWUgPSBudWxsO1xuICAgIHJlc3VsdC5wYXRoID0gbnVsbDtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQucGF0aG5hbWUgPSBzcmNQYXRoLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8vdG8gc3VwcG9ydCByZXF1ZXN0Lmh0dHBcbiAgaWYgKCFpc051bGwocmVzdWx0LnBhdGhuYW1lKSB8fCAhaXNOdWxsKHJlc3VsdC5zZWFyY2gpKSB7XG4gICAgcmVzdWx0LnBhdGggPSAocmVzdWx0LnBhdGhuYW1lID8gcmVzdWx0LnBhdGhuYW1lIDogJycpICtcbiAgICAgIChyZXN1bHQuc2VhcmNoID8gcmVzdWx0LnNlYXJjaCA6ICcnKTtcbiAgfVxuICByZXN1bHQuYXV0aCA9IHJlbGF0aXZlLmF1dGggfHwgcmVzdWx0LmF1dGg7XG4gIHJlc3VsdC5zbGFzaGVzID0gcmVzdWx0LnNsYXNoZXMgfHwgcmVsYXRpdmUuc2xhc2hlcztcbiAgcmVzdWx0LmhyZWYgPSByZXN1bHQuZm9ybWF0KCk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5VcmwucHJvdG90eXBlLnBhcnNlSG9zdCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gcGFyc2VIb3N0KHRoaXMpO1xufTtcblxuZnVuY3Rpb24gcGFyc2VIb3N0KHNlbGYpIHtcbiAgdmFyIGhvc3QgPSBzZWxmLmhvc3Q7XG4gIHZhciBwb3J0ID0gcG9ydFBhdHRlcm4uZXhlYyhob3N0KTtcbiAgaWYgKHBvcnQpIHtcbiAgICBwb3J0ID0gcG9ydFswXTtcbiAgICBpZiAocG9ydCAhPT0gJzonKSB7XG4gICAgICBzZWxmLnBvcnQgPSBwb3J0LnN1YnN0cigxKTtcbiAgICB9XG4gICAgaG9zdCA9IGhvc3Quc3Vic3RyKDAsIGhvc3QubGVuZ3RoIC0gcG9ydC5sZW5ndGgpO1xuICB9XG4gIGlmIChob3N0KSBzZWxmLmhvc3RuYW1lID0gaG9zdDtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF9zbGljZWRUb0FycmF5ID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBzbGljZUl0ZXJhdG9yKGFyciwgaSkgeyB2YXIgX2FyciA9IFtdOyB2YXIgX24gPSB0cnVlOyB2YXIgX2QgPSBmYWxzZTsgdmFyIF9lID0gdW5kZWZpbmVkOyB0cnkgeyBmb3IgKHZhciBfaSA9IGFycltTeW1ib2wuaXRlcmF0b3JdKCksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7IF9hcnIucHVzaChfcy52YWx1ZSk7IGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsgfSB9IGNhdGNoIChlcnIpIHsgX2QgPSB0cnVlOyBfZSA9IGVycjsgfSBmaW5hbGx5IHsgdHJ5IHsgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSkgX2lbXCJyZXR1cm5cIl0oKTsgfSBmaW5hbGx5IHsgaWYgKF9kKSB0aHJvdyBfZTsgfSB9IHJldHVybiBfYXJyOyB9IHJldHVybiBmdW5jdGlvbiAoYXJyLCBpKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHsgcmV0dXJuIGFycjsgfSBlbHNlIGlmIChTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGFycikpIHsgcmV0dXJuIHNsaWNlSXRlcmF0b3IoYXJyLCBpKTsgfSBlbHNlIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2VcIik7IH0gfTsgfSgpO1xuXG52YXIgX3R5cGVvZiA9IHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09PSBcInN5bWJvbFwiID8gZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gdHlwZW9mIG9iajsgfSA6IGZ1bmN0aW9uIChvYmopIHsgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7IH07XG5cbnZhciBfcmVxdWlyZSA9IHJlcXVpcmUoJ3VybCcpLFxuICAgIGZvcm1hdCA9IF9yZXF1aXJlLmZvcm1hdCxcbiAgICBwYXJzZSA9IF9yZXF1aXJlLnBhcnNlLFxuICAgIFVSTFNlYXJjaFBhcmFtcyA9IF9yZXF1aXJlLlVSTFNlYXJjaFBhcmFtcztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwbHVnaW4ob3B0cykge1xuICBpZiAoKHR5cGVvZiBvcHRzID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZihvcHRzKSkgIT09ICdvYmplY3QnIHx8ICFPYmplY3Qua2V5cyhvcHRzKS5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlbWFyay1pZnJhbWVzIG5lZWRzIHRvIGJlIHBhc3NlZCBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFzIG9wdGlvbicpO1xuICB9XG5cbiAgZnVuY3Rpb24gZGV0ZWN0UHJvdmlkZXIodXJsKSB7XG4gICAgdmFyIGhvc3RuYW1lID0gcGFyc2UodXJsKS5ob3N0bmFtZTtcbiAgICByZXR1cm4gb3B0c1tob3N0bmFtZV07XG4gIH1cblxuICBmdW5jdGlvbiBibG9ja1Rva2VuaXplcihlYXQsIHZhbHVlLCBzaWxlbnQpIHtcbiAgICBpZiAoIXZhbHVlLnN0YXJ0c1dpdGgoJyEoaHR0cCcpKSByZXR1cm47XG5cbiAgICB2YXIgZWF0ZW5WYWx1ZSA9ICcnO1xuICAgIHZhciB1cmwgPSAnJztcbiAgICB2YXIgc3BlY2lhbENoYXJzID0gWychJywgJygnLCAnKSddO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoICYmIHZhbHVlW2kgLSAxXSAhPT0gJyknOyBpKyspIHtcbiAgICAgIGVhdGVuVmFsdWUgKz0gdmFsdWVbaV07XG4gICAgICBpZiAoIXNwZWNpYWxDaGFycy5pbmNsdWRlcyh2YWx1ZVtpXSkpIHtcbiAgICAgICAgdXJsICs9IHZhbHVlW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAtIG5ldmVyIHVzZWQgKHlldCkgKi9cbiAgICBpZiAoc2lsZW50KSByZXR1cm4gdHJ1ZTtcblxuICAgIHZhciBwcm92aWRlciA9IGRldGVjdFByb3ZpZGVyKHVybCk7XG4gICAgaWYgKCFwcm92aWRlciB8fCBwcm92aWRlci5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCBwcm92aWRlci5tYXRjaCAmJiBwcm92aWRlci5tYXRjaCBpbnN0YW5jZW9mIFJlZ0V4cCAmJiAhcHJvdmlkZXIubWF0Y2gudGVzdCh1cmwpKSB7XG4gICAgICByZXR1cm4gZWF0KGVhdGVuVmFsdWUpKHtcbiAgICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICB2YWx1ZTogZWF0ZW5WYWx1ZVxuICAgICAgICB9XVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdmFyIGZpbmFsVXJsID0gY29tcHV0ZUZpbmFsVXJsKHByb3ZpZGVyLCB1cmwpO1xuICAgIHZhciB0aHVtYm5haWwgPSBjb21wdXRlVGh1bWJuYWlsKHByb3ZpZGVyLCBmaW5hbFVybCk7XG4gICAgZWF0KGVhdGVuVmFsdWUpKHtcbiAgICAgIHR5cGU6ICdpZnJhbWUnLFxuICAgICAgc3JjOiB1cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGhOYW1lOiBwcm92aWRlci50YWcsXG4gICAgICAgIGhQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgc3JjOiBmaW5hbFVybCxcbiAgICAgICAgICB3aWR0aDogcHJvdmlkZXIud2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiBwcm92aWRlci5oZWlnaHQsXG4gICAgICAgICAgYWxsb3dmdWxsc2NyZWVuOiB0cnVlLFxuICAgICAgICAgIGZyYW1lYm9yZGVyOiAnMCdcbiAgICAgICAgfSxcbiAgICAgICAgdGh1bWJuYWlsOiB0aHVtYm5haWxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZhciBQYXJzZXIgPSB0aGlzLlBhcnNlcjtcblxuICAvLyBJbmplY3QgYmxvY2tUb2tlbml6ZXJcbiAgdmFyIGJsb2NrVG9rZW5pemVycyA9IFBhcnNlci5wcm90b3R5cGUuYmxvY2tUb2tlbml6ZXJzO1xuICB2YXIgYmxvY2tNZXRob2RzID0gUGFyc2VyLnByb3RvdHlwZS5ibG9ja01ldGhvZHM7XG4gIGJsb2NrVG9rZW5pemVycy5pZnJhbWVzID0gYmxvY2tUb2tlbml6ZXI7XG4gIGJsb2NrTWV0aG9kcy5zcGxpY2UoYmxvY2tNZXRob2RzLmluZGV4T2YoJ2Jsb2NrcXVvdGUnKSArIDEsIDAsICdpZnJhbWVzJyk7XG5cbiAgdmFyIENvbXBpbGVyID0gdGhpcy5Db21waWxlcjtcbiAgaWYgKENvbXBpbGVyKSB7XG4gICAgdmFyIHZpc2l0b3JzID0gQ29tcGlsZXIucHJvdG90eXBlLnZpc2l0b3JzO1xuICAgIGlmICghdmlzaXRvcnMpIHJldHVybjtcbiAgICB2aXNpdG9ycy5pZnJhbWUgPSBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgcmV0dXJuICchKCcgKyBub2RlLnNyYyArICcpJztcbiAgICB9O1xuICB9XG59O1xuXG5mdW5jdGlvbiBjb21wdXRlRmluYWxVcmwocHJvdmlkZXIsIHVybCkge1xuICB2YXIgZmluYWxVcmwgPSB1cmw7XG4gIHZhciBwYXJzZWQgPSBwYXJzZShmaW5hbFVybCk7XG5cbiAgaWYgKHByb3ZpZGVyLmRyb3BwZWRRdWVyeVBhcmFtZXRlcnMgJiYgcGFyc2VkLnNlYXJjaCkge1xuICAgIHZhciBzZWFyY2ggPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHBhcnNlZC5zZWFyY2gpO1xuICAgIHByb3ZpZGVyLmRyb3BwZWRRdWVyeVBhcmFtZXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoaWdub3JlZCkge1xuICAgICAgcmV0dXJuIHNlYXJjaC5kZWxldGUoaWdub3JlZCk7XG4gICAgfSk7XG4gICAgcGFyc2VkLnNlYXJjaCA9IHNlYXJjaC50b1N0cmluZygpO1xuICAgIGZpbmFsVXJsID0gZm9ybWF0KHBhcnNlZCk7XG4gIH1cblxuICBpZiAocHJvdmlkZXIucmVwbGFjZSAmJiBwcm92aWRlci5yZXBsYWNlLmxlbmd0aCkge1xuICAgIHByb3ZpZGVyLnJlcGxhY2UuZm9yRWFjaChmdW5jdGlvbiAocnVsZSkge1xuICAgICAgdmFyIF9ydWxlID0gX3NsaWNlZFRvQXJyYXkocnVsZSwgMiksXG4gICAgICAgICAgZnJvbSA9IF9ydWxlWzBdLFxuICAgICAgICAgIHRvID0gX3J1bGVbMV07XG5cbiAgICAgIGlmIChmcm9tICYmIHRvKSBmaW5hbFVybCA9IGZpbmFsVXJsLnJlcGxhY2UoZnJvbSwgdG8pO1xuICAgICAgcGFyc2VkID0gcGFyc2UoZmluYWxVcmwpO1xuICAgIH0pO1xuICAgIGZpbmFsVXJsID0gZm9ybWF0KHBhcnNlZCk7XG4gIH1cblxuICBpZiAocHJvdmlkZXIucmVtb3ZlRmlsZU5hbWUpIHtcbiAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWUuc3Vic3RyaW5nKDAsIHBhcnNlZC5wYXRobmFtZS5sYXN0SW5kZXhPZignLycpKTtcbiAgICBmaW5hbFVybCA9IGZvcm1hdChwYXJzZWQpO1xuICB9XG5cbiAgaWYgKHByb3ZpZGVyLnJlbW92ZUFmdGVyICYmIGZpbmFsVXJsLmluY2x1ZGVzKHByb3ZpZGVyLnJlbW92ZUFmdGVyKSkge1xuICAgIGZpbmFsVXJsID0gZmluYWxVcmwuc3Vic3RyaW5nKDAsIGZpbmFsVXJsLmluZGV4T2YocHJvdmlkZXIucmVtb3ZlQWZ0ZXIpKTtcbiAgfVxuXG4gIGlmIChwcm92aWRlci5hcHBlbmQpIHtcbiAgICBmaW5hbFVybCArPSBwcm92aWRlci5hcHBlbmQ7XG4gIH1cblxuICByZXR1cm4gZmluYWxVcmw7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVUaHVtYm5haWwocHJvdmlkZXIsIHVybCkge1xuICB2YXIgdGh1bWJuYWlsVVJMID0gJyc7XG4gIHZhciB0aHVtYm5haWxDb25maWcgPSBwcm92aWRlci50aHVtYm5haWw7XG4gIGlmICh0aHVtYm5haWxDb25maWcgJiYgdGh1bWJuYWlsQ29uZmlnLmZvcm1hdCkge1xuICAgIHRodW1ibmFpbFVSTCA9IHRodW1ibmFpbENvbmZpZy5mb3JtYXQ7XG4gICAgT2JqZWN0LmtleXModGh1bWJuYWlsQ29uZmlnKS5maWx0ZXIoZnVuY3Rpb24gKGtleSkge1xuICAgICAgcmV0dXJuIGtleSAhPT0gJ2Zvcm1hdCc7XG4gICAgfSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICB2YXIgc2VhcmNoID0gbmV3IFJlZ0V4cCgneycgKyBrZXkgKyAnfScsICdnJyk7XG4gICAgICB2YXIgcmVwbGFjZSA9IG5ldyBSZWdFeHAodGh1bWJuYWlsQ29uZmlnW2tleV0pLmV4ZWModXJsKTtcbiAgICAgIGlmIChyZXBsYWNlKSB0aHVtYm5haWxVUkwgPSB0aHVtYm5haWxVUkwucmVwbGFjZShzZWFyY2gsIHJlcGxhY2VbMV0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiB0aHVtYm5haWxVUkw7XG59IiwiJ3VzZS1zdHJpY3QnO1xuXG4vKiBUT0RPIDogU2VuZCB0aGUgcmVzdWx0IG9mIGd1aWRlIDpcbiAgY29uc3QgZ3VpZGUgPSByZXF1aXJlKCdyZW1hcmstcHJlc2V0LWxpbnQtbWFya2Rvd24tc3R5bGUtZ3VpZGUnKTtcbiovXG5cbmNvbnN0IGh0bWwgPSByZXF1aXJlKCdyZW1hcmstcmVoeXBlJyk7XG5jb25zdCBrYmQgPSByZXF1aXJlKCdyZW1hcmsta2JkJyk7XG5jb25zdCBtYXRoID0gcmVxdWlyZSgncmVtYXJrLW1hdGgnKTtcbmNvbnN0IGhpZ2hsaWdodCA9IHJlcXVpcmUoJ3JlbWFyay1oaWdobGlnaHQuanMnKTtcbmNvbnN0IHNiID0gcmVxdWlyZSgncmVtYXJrLXNwZWNpYWwtYm94Jyk7XG5jb25zdCBtdWx0aUNob2ljZSA9IHJlcXVpcmUoJ3JlbWFyay1tdWx0aXBsZS1jaG9pY2UnKTtcbmNvbnN0IGxpbmVJbnB1dCA9IHJlcXVpcmUoJ3JlbWFyay1saW5lLWlucHV0Jyk7XG5jb25zdCBzZWxlY3QgPSByZXF1aXJlKCdyZW1hcmstc2VsZWN0Jyk7XG5jb25zdCB0ZXh0SW5wdXQgPSByZXF1aXJlKCdyZW1hcmstdGV4dC1pbnB1dCcpO1xuY29uc3QgcmF3ID0gcmVxdWlyZSgncmVoeXBlLXJhdycpO1xuY29uc3QgcmVoeXBlS2F0ZXggPSByZXF1aXJlKCdyZWh5cGUta2F0ZXgnKTtcbmNvbnN0IHJlaHlwZVN0cmluZ2lmeSA9IHJlcXVpcmUoJ3JlaHlwZS1zdHJpbmdpZnknKTtcbmNvbnN0IHVuaWZpZWQgPSByZXF1aXJlKCd1bmlmaWVkJyk7XG5jb25zdCByZW1hcmsgPSByZXF1aXJlKCdyZW1hcmstcGFyc2UnKTtcbmNvbnN0IGN1c3RvbUJsb2NrcyA9IHJlcXVpcmUoJ3JlbWFyay1jdXN0b20tYmxvY2tzJyk7XG5jb25zdCBpZnJhbWVzID0gcmVxdWlyZSgncmVtYXJrLWlmcmFtZXMnKTtcblxuZnVuY3Rpb24gdG9IVE1MKGRhdGEsIGZuYykge1xuICB1bmlmaWVkKClcbiAgICAudXNlKHJlbWFyaylcbiAgICAudXNlKGxpbmVJbnB1dClcbiAgICAudXNlKHRleHRJbnB1dClcbiAgICAudXNlKHNlbGVjdClcbiAgICAudXNlKG11bHRpQ2hvaWNlKVxuICAgIC51c2UobWF0aClcbiAgICAudXNlKGtiZClcbiAgICAudXNlKHNiKVxuICAgIC51c2UoY3VzdG9tQmxvY2tzLCB7XG4gICAgICBpbmZvcm1hdGlvbjoge1xuICAgICAgICBjbGFzc2VzOiAnc3BlY2lhbC1ib3ggaW5mb3JtYXRpb24nLFxuICAgICAgICB0aXRsZTogJ29wdGlvbmFsJyxcbiAgICAgIH0sXG4gICAgICBjb21tZW50OiB7XG4gICAgICAgIGNsYXNzZXM6ICdzcGVjaWFsLWJveCBjb21tZW50JyxcbiAgICAgICAgdGl0bGU6ICdvcHRpb25hbCcsXG4gICAgICB9LFxuICAgICAgYXR0ZW50aW9uOiB7XG4gICAgICAgIGNsYXNzZXM6ICdzcGVjaWFsLWJveCBhdHRlbnRpb24nLFxuICAgICAgICB0aXRsZTogJ29wdGlvbmFsJyxcbiAgICAgIH0sXG4gICAgICBxdWVzdGlvbjoge1xuICAgICAgICBjbGFzc2VzOiAnc3BlY2lhbC1ib3ggcXVlc3Rpb24nLFxuICAgICAgICB0aXRsZTogJ29wdGlvbmFsJyxcbiAgICAgIH0sXG4gICAgICBnb29kOiB7XG4gICAgICAgIGNsYXNzZXM6ICdzcGVjaWFsLWJveCBnb29kJyxcbiAgICAgIH0sXG4gICAgICBzZWNyZXQ6IHtcbiAgICAgICAgY2xhc3NlczogJ3NwZWNpYWwtYm94IHNlY3JldCcsXG4gICAgICAgIHRpdGxlOiAnb3B0aW9uYWwnLFxuICAgICAgfSxcbiAgICAgIGJhZDoge1xuICAgICAgICBjbGFzc2VzOiAnc3BlY2lhbC1ib3ggYmFkJyxcbiAgICAgIH19KVxuICAgIC51c2UoaGlnaGxpZ2h0KVxuICAgIC51c2UoaWZyYW1lcywge1xuICAgICAgLy8gdGhpcyBrZXkgY29ycmVzcG9uZHMgdG8gdGhlIGhvc3RuYW1lOiAhKGh0dHA6Ly9ob3N0bmFtZS9mb28pXG4gICAgICAvLyB0aGUgY29uZmlnIGFzc29jaWF0ZWQgdG8gdGhpcyBob3N0bmFtZSB3aWxsIGFwcGx5IHRvIGFueSBpZnJhbWVcbiAgICAgIC8vIHdpdGggYSBtYXRjaGluZyBob3N0bmFtZVxuICAgICAgJ3d3dy55b3V0dWJlLmNvbSc6IHtcbiAgICAgICAgdGFnOiAnSUZSQU1FJyxcbiAgICAgICAgd2lkdGg6IDU2MCxcbiAgICAgICAgaGVpZ2h0OiAzMTUsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgcmVwbGFjZTogW1xuICAgICAgICAgIFsnd2F0Y2g/dj0nLCAnZW1iZWQvJ10sXG4gICAgICAgICAgWydodHRwOi8vJywgJ2h0dHBzOi8vJ10sXG4gICAgICAgIF0sXG4gICAgICAgIHRodW1ibmFpbDoge1xuICAgICAgICAgIGZvcm1hdDogJ2h0dHA6Ly9pbWcueW91dHViZS5jb20vdmkve2lkfS8wLmpwZycsXG4gICAgICAgICAgaWQ6ICcuKy8oLispJCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVtb3ZlQWZ0ZXI6ICcmJ1xuICAgICAgfVxuICAgIH0pXG4gICAgLnVzZShodG1sLCB7YWxsb3dEYW5nZXJvdXNIVE1MOiB0cnVlfSlcbiAgICAudXNlKHJlaHlwZUthdGV4KVxuICAgIC51c2UocmF3KVxuICAgIC51c2UocmVoeXBlU3RyaW5naWZ5KVxuXG4gICAgLnByb2Nlc3MoZGF0YSwgZm5jKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0b0hUTUw7XG4iXSwibmFtZXMiOlsidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImtleSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsInByb3RvdHlwZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInByb3BJc0VudW1lcmFibGUiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImFzc2lnbiIsInRlc3QxIiwiU3RyaW5nIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInRlc3QyIiwiZnJvbUNoYXJDb2RlIiwibWFwIiwibiIsImpvaW4iLCJ0ZXN0MyIsInNwbGl0IiwiZm9yRWFjaCIsImxldHRlciIsImtleXMiLCJlcnIiLCJzaG91bGRVc2VOYXRpdmUiLCJmcm9tIiwic3ltYm9scyIsInRvIiwidmFsIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwidG9PYmplY3QiLCJzIiwidHlwZSIsInByb3BzIiwidmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZHJlbiIsImlzIiwidGVzdCIsIm5vZGUiLCJpbmRleCIsInBhcmVudCIsImNvbnRleHQiLCJoYXNQYXJlbnQiLCJoYXNJbmRleCIsImNoZWNrIiwiY29udmVydCIsIkluZmluaXR5IiwiRXJyb3IiLCJCb29sZWFuIiwidHlwZUZhY3RvcnkiLCJvayIsInRlc3RzIiwiY2hlY2tzIiwicmVzdWx0cyIsImNvbnZlcnRBbGwiLCJhcHBseSIsInRoaXMiLCJ2aXNpdCIsIkNPTlRJTlVFIiwiU0tJUCIsIkVYSVQiLCJ0cmVlIiwidmlzaXRvciIsInJldmVyc2UiLCJvbmUiLCJyZXN1bHQiLCJjaGlsZCIsInN0ZXAiLCJhbGwiLCJwb3NpdGlvbiIsImV4cG9ydHMiLCJwb3NpdGlvbkZhY3RvcnkiLCJwb3MiLCJsaW5lIiwiY29sdW1uIiwib2Zmc2V0IiwiaXNOYU4iLCJzdGFydCIsImVuZCIsIm9wdGlvbmFsIiwib3B0aW9ucyIsImNhY2hlIiwiaWRlbnRpZmllciIsImlkIiwibm9ybWFsaXNlIiwib3duIiwiZ2V0dGVyRmFjdG9yeSIsImNvbW1vbm1hcmsiLCJkZWZpbml0aW9uIiwiZ2F0aGVyIiwidG9VcHBlckNhc2UiLCJtb2R1bGUiLCJzdHIiLCJyZXBsYWNlIiwiaCIsImhlYWQiLCJub2RlcyIsInZhbHVlcyIsInRyaW0iLCJsZWZ0IiwiY29uY2F0IiwiZm4iLCJoYW5kbGVycyIsImRhdGEiLCJ0ZXh0IiwiYXVnbWVudCIsInUiLCJsb29zZSIsInB1c2giLCJuYW1lIiwib3JkZXJlZCIsIndyYXAiLCJkZWYiLCJmb290bm90ZXMiLCJsaXN0SXRlbXMiLCJoUHJvcGVydGllcyIsInVybCIsImNsYXNzTmFtZSIsInRoZW1hdGljQnJlYWsiLCJsaXN0IiwicmVzIiwibnVtIiwibWF4Iiwic3Vic3RyIiwic2l6ZSIsImNvZGUiLCJhZGQiLCJzdHJpbmciLCJ0YWJTaXplIiwiY2hhckNvZGVBdCIsIlRBQiIsInNsaWNlIiwicmVwZWF0IiwiTEYiLCJDUiIsImRldGFiIiwibGFuZyIsIm1hdGNoIiwiaHJlZiIsImlkZW50aWZpZXJzIiwiaW5kZXhPZiIsImZvb3Rub3RlUmVmZXJlbmNlIiwiZGVwdGgiLCJkYW5nZXJvdXMiLCJlbmNvZGVDYWNoZSIsImVuY29kZSIsImV4Y2x1ZGUiLCJrZWVwRXNjYXBlZCIsImwiLCJuZXh0Q29kZSIsImRlZmF1bHRDaGFycyIsImNoIiwidG9TdHJpbmciLCJnZXRFbmNvZGVDYWNoZSIsImVuY29kZVVSSUNvbXBvbmVudCIsImNvbXBvbmVudENoYXJzIiwic3VidHlwZSIsInJlZmVyZW5jZVR5cGUiLCJhbHQiLCJ3cyIsIm5ld2xpbmUiLCJibG9ja3F1b3RlIiwicmVxdWlyZSQkMCIsImJyZWFrIiwicmVxdWlyZSQkMSIsInJlcXVpcmUkJDIiLCJkZWxldGUiLCJyZXF1aXJlJCQzIiwiZW1waGFzaXMiLCJyZXF1aXJlJCQ0IiwicmVxdWlyZSQkNSIsImZvb3Rub3RlIiwicmVxdWlyZSQkNiIsImhlYWRpbmciLCJyZXF1aXJlJCQ3IiwiaHRtbCIsInJlcXVpcmUkJDgiLCJpbWFnZVJlZmVyZW5jZSIsInNyYyIsIm5vcm1hbGl6ZSIsInRpdGxlIiwiZmFpbHNhZmUiLCJpbWFnZSIsImlubGluZUNvZGUiLCJjb2xsYXBzZSIsImxpbmtSZWZlcmVuY2UiLCJsaW5rIiwibGlzdEl0ZW0iLCJjb250YWluZXIiLCJzaW5nbGUiLCJjaGVja2VkIiwidW5zaGlmdCIsImRpc2FibGVkIiwicmVxdWlyZSQkMTUiLCJwYXJhZ3JhcGgiLCJyb290Iiwic3Ryb25nIiwidGFibGUiLCJyb3ciLCJvdXQiLCJjZWxsIiwicm93cyIsImFsaWduIiwiYWxpZ25MZW5ndGgiLCJ0cmltTGluZXMiLCJyZXF1aXJlJCQyMSIsInRvbWwiLCJpZ25vcmUiLCJ5YW1sIiwiZm9vdG5vdGVEZWZpbml0aW9uIiwic2V0dGluZ3MiLCJhbGxvd0Rhbmdlcm91c0hUTUwiLCJkZWZpbml0aW9ucyIsInh0ZW5kIiwicmlnaHQiLCJjdHgiLCJoTmFtZSIsInRhZ05hbWUiLCJwcm9wZXJ0aWVzIiwiaENoaWxkcmVuIiwiZ2VuZXJhdGVkIiwiZmFjdG9yeSIsImZvb3RlciIsImRlc3RpbmF0aW9uIiwicHJvY2VzcyIsImZpbGUiLCJuZXh0IiwicnVuIiwibWRhc3QyaGFzdCIsImJyaWRnZSIsIm11dGF0ZSIsImNoYXJhY3RlciIsInJlIiwiZnJvbUNvZGUiLCJjaGFyQXQiLCJDX1BJUEUiLCJET1VCTEUiLCJsb2NhdG9yIiwiZnJvbUluZGV4IiwiaW5saW5lVG9rZW5pemVyIiwiZWF0Iiwic2lsZW50IiwiZ2ZtIiwic3RhcnRzV2l0aCIsIndoaXRlc3BhY2UiLCJwcmV2aW91cyIsInByZWNlZGluZyIsInN1YnZhbHVlIiwibm93IiwidG9rZW5pemVJbmxpbmUiLCJQYXJzZXIiLCJpbmxpbmVUb2tlbml6ZXJzIiwiaW5saW5lTWV0aG9kcyIsImtiZCIsInNwbGljZSIsIkNvbXBpbGVyIiwidmlzaXRvcnMiLCJFU0NBUEVEX0lOTElORV9NQVRIIiwiSU5MSU5FX01BVEgiLCJJTkxJTkVfTUFUSF9ET1VCTEUiLCJDX05FV0xJTkUiLCJDX1RBQiIsIkNfU1BBQ0UiLCJDX0RPTExBUiIsIk1JTl9GRU5DRV9DT1VOVCIsIkNPREVfSU5ERU5UX0NPVU5UIiwib3B0cyIsImJsb2NrVG9rZW5pemVycyIsImJsb2NrTWV0aG9kcyIsIm1hdGgiLCJmZW5jZUNvdW50IiwibWFya2VyIiwicXVldWUiLCJjb250ZW50IiwiZXhkZW50ZWRDb250ZW50IiwiY2xvc2luZyIsImV4ZGVudGVkQ2xvc2luZyIsImluZGVudCIsInRyaW1tZWRDb250ZW50IiwiaW50ZXJydXB0UGFyYWdyYXBoIiwiaW50ZXJydXB0TGlzdCIsImludGVycnVwdEJsb2NrcXVvdGUiLCJpc0RvdWJsZSIsImV4ZWMiLCJlc2NhcGVkIiwiaW5jbHVkZXMiLCJ0b0VhdCIsImlubGluZU1hdGhEb3VibGUiLCJpbmxpbmVNYXRoIiwiaGxqcyIsIkFycmF5UHJvdG8iLCJvYmplY3RLZXlzIiwibGFuZ3VhZ2VzIiwiYWxpYXNlcyIsIm5vSGlnaGxpZ2h0UmUiLCJsYW5ndWFnZVByZWZpeFJlIiwiZml4TWFya3VwUmUiLCJzcGFuRW5kVGFnIiwiY2xhc3NQcmVmaXgiLCJ0YWJSZXBsYWNlIiwidXNlQlIiLCJlc2NhcGUiLCJ0YWciLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwidGVzdFJlIiwibGV4ZW1lIiwiaXNOb3RIaWdobGlnaHRlZCIsImxhbmd1YWdlIiwiaW5oZXJpdCIsIm9iamVjdHMiLCJvYmoiLCJub2RlU3RyZWFtIiwiX25vZGVTdHJlYW0iLCJmaXJzdENoaWxkIiwibmV4dFNpYmxpbmciLCJub2RlVHlwZSIsIm5vZGVWYWx1ZSIsImV2ZW50IiwiY29tcGlsZUxhbmd1YWdlIiwicmVTdHIiLCJsYW5nUmUiLCJnbG9iYWwiLCJSZWdFeHAiLCJjYXNlX2luc2Vuc2l0aXZlIiwiY29tcGlsZU1vZGUiLCJtb2RlIiwiY29tcGlsZWQiLCJrZXl3b3JkcyIsImJlZ2luS2V5d29yZHMiLCJjb21waWxlZF9rZXl3b3JkcyIsImZsYXR0ZW4iLCJrdyIsInBhaXIiLCJOdW1iZXIiLCJsZXhlbWVzUmUiLCJsZXhlbWVzIiwiYmVnaW4iLCJiZWdpblJlIiwiZW5kc1dpdGhQYXJlbnQiLCJlbmRSZSIsInRlcm1pbmF0b3JfZW5kIiwiaWxsZWdhbCIsImlsbGVnYWxSZSIsInJlbGV2YW5jZSIsImNvbnRhaW5zIiwiYyIsInZhcmlhbnRzIiwiY2FjaGVkX3ZhcmlhbnRzIiwidmFyaWFudCIsImV4cGFuZF9tb2RlIiwic3RhcnRzIiwidGVybWluYXRvcnMiLCJmaWx0ZXIiLCJoaWdobGlnaHQiLCJpZ25vcmVfaWxsZWdhbHMiLCJjb250aW51YXRpb24iLCJrZXl3b3JkTWF0Y2giLCJtYXRjaF9zdHIiLCJidWlsZFNwYW4iLCJjbGFzc25hbWUiLCJpbnNpZGVTcGFuIiwibGVhdmVPcGVuIiwibm9QcmVmaXgiLCJvcGVuU3BhbiIsImNsb3NlU3BhbiIsInByb2Nlc3NCdWZmZXIiLCJ0b3AiLCJzdWJMYW5ndWFnZSIsImV4cGxpY2l0IiwibW9kZV9idWZmZXIiLCJjb250aW51YXRpb25zIiwiaGlnaGxpZ2h0QXV0byIsInByb2Nlc3NTdWJMYW5ndWFnZSIsImtleXdvcmRfbWF0Y2giLCJsYXN0X2luZGV4IiwibGFzdEluZGV4Iiwic3Vic3RyaW5nIiwicHJvY2Vzc0tleXdvcmRzIiwic3RhcnROZXdNb2RlIiwiY3JlYXRlIiwicHJvY2Vzc0xleGVtZSIsImJ1ZmZlciIsIm5ld19tb2RlIiwic3ViTW9kZSIsInNraXAiLCJleGNsdWRlQmVnaW4iLCJyZXR1cm5CZWdpbiIsImVuZF9tb2RlIiwiZW5kT2ZNb2RlIiwiZW5kc1BhcmVudCIsIm9yaWdpbiIsInJldHVybkVuZCIsImV4Y2x1ZGVFbmQiLCJpc0lsbGVnYWwiLCJnZXRMYW5ndWFnZSIsImN1cnJlbnQiLCJjb3VudCIsImUiLCJtZXNzYWdlIiwibGFuZ3VhZ2VTdWJzZXQiLCJzZWNvbmRfYmVzdCIsImZpeE1hcmt1cCIsInAxIiwiaGlnaGxpZ2h0QmxvY2siLCJibG9jayIsIm9yaWdpbmFsU3RyZWFtIiwicmVzdWx0Tm9kZSIsIl9jbGFzcyIsImNsYXNzZXMiLCJwYXJlbnROb2RlIiwiYmxvY2tMYW5ndWFnZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudE5TIiwiaW5uZXJIVE1MIiwidGV4dENvbnRlbnQiLCJvcmlnaW5hbCIsImhpZ2hsaWdodGVkIiwicHJvY2Vzc2VkIiwibm9kZVN0YWNrIiwic2VsZWN0U3RyZWFtIiwib3BlbiIsImF0dHJpYnV0ZXMiLCJhIiwiY2xvc2UiLCJyZW5kZXIiLCJzdHJlYW0iLCJwb3AiLCJtZXJnZVN0cmVhbXMiLCJwcmV2Q2xhc3NOYW1lIiwiY3VycmVudExhbmciLCJyZXN1bHRMYW5nIiwiYnVpbGRDbGFzc05hbWUiLCJpbml0SGlnaGxpZ2h0aW5nIiwiY2FsbGVkIiwiYmxvY2tzIiwicXVlcnlTZWxlY3RvckFsbCIsImNvbmZpZ3VyZSIsInVzZXJfb3B0aW9ucyIsImluaXRIaWdobGlnaHRpbmdPbkxvYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVnaXN0ZXJMYW5ndWFnZSIsImFsaWFzIiwibGlzdExhbmd1YWdlcyIsIklERU5UX1JFIiwiVU5ERVJTQ09SRV9JREVOVF9SRSIsIk5VTUJFUl9SRSIsIkNfTlVNQkVSX1JFIiwiQklOQVJZX05VTUJFUl9SRSIsIlJFX1NUQVJURVJTX1JFIiwiQkFDS1NMQVNIX0VTQ0FQRSIsIkFQT1NfU1RSSU5HX01PREUiLCJRVU9URV9TVFJJTkdfTU9ERSIsIlBIUkFTQUxfV09SRFNfTU9ERSIsIkNPTU1FTlQiLCJpbmhlcml0cyIsIkNfTElORV9DT01NRU5UX01PREUiLCJDX0JMT0NLX0NPTU1FTlRfTU9ERSIsIkhBU0hfQ09NTUVOVF9NT0RFIiwiTlVNQkVSX01PREUiLCJDX05VTUJFUl9NT0RFIiwiQklOQVJZX05VTUJFUl9NT0RFIiwiQ1NTX05VTUJFUl9NT0RFIiwiUkVHRVhQX01PREUiLCJUSVRMRV9NT0RFIiwiVU5ERVJTQ09SRV9USVRMRV9NT0RFIiwiTUVUSE9EX0dVQVJEIiwiSGlnaCIsImhpZ2giLCJsb3ciLCJwcmVmaXgiLCJERUZBVUxUX1BSRUZJWCIsImNvcmVIaWdobGlnaHQiLCJhdXRvSGlnaGxpZ2h0Iiwic3ludGF4IiwibGFuZ3VhZ2VOYW1lcyIsIktFWV9JTlNFTlNJVElWRSIsIktFWV9DQUNIRURfVkFSSUFOVFMiLCJFTVBUWSIsIlRfRUxFTUVOVCIsIlRfVEVYVCIsIlRfU1BBTiIsInNlY29uZEJlc3QiLCJzdWJzZXQiLCJjdXJyZW50Q2hpbGRyZW4iLCJzdGFjayIsIm1vZGVCdWZmZXIiLCJjb21waWxlZEtleXdvcmRzIiwidGVybWluYXRvckVuZCIsImV4cGFuZE1vZGUiLCJleGVjTm9vcCIsInBhaXJzIiwiYWRkVGV4dCIsIm5ld01vZGUiLCJlbmRNb2RlIiwiYWRkU2libGluZ3MiLCJidWlsZCIsImtleXdvcmQiLCJzdWJtYXRjaCIsInNpYmxpbmdzIiwic2libGluZyIsInRhaWwiLCJidWlsZFRleHQiLCJjb250ZW50cyIsImV4cHJlc3Npb24iLCJLRVlXT1JEIiwidjdfa2V5d29yZHMiLCJMSVRFUkFMIiwiTlVNQkVSUyIsIlNUUklOR1MiLCJEQVRFIiwiQ09NTUVOVFMiLCJidWlsdF9pbiIsInY3X3N5c3RlbV9jb25zdGFudHMiLCJjbGFzcyIsInY4X3N5c3RlbV9zZXRzX29mX3ZhbHVlcyIsInY4X3NoYXJlZF9vYmplY3QiLCJsaXRlcmFsIiwibWV0YS1rZXl3b3JkIiwidjdfbWV0YV9rZXl3b3JkcyIsInJlZ2V4ZXMiLCJjb21tZW50TW9kZSIsInJ1bGVEZWNsYXJhdGlvbk1vZGUiLCJBUzNfUkVTVF9BUkdfTU9ERSIsIklEX1JFR0VYIiwiVkFSX0RFQ0xTIiwiTlVNQkVSIiwibm9tYXJrdXAiLCJTVFJJTkciLCJQQVJBTVMiLCJDT01NRU5UX01PREVfMSIsIkNQUF9QUklNSVRJVkVfVFlQRVMiLCJQUkVQUk9DRVNTT1IiLCJGVU5DVElPTl9USVRMRSIsIkNQUF9LRVlXT1JEUyIsIkVYUFJFU1NJT05fQ09OVEFJTlMiLCJwcmVwcm9jZXNzb3IiLCJzdHJpbmdzIiwiQ1BQIiwibWV0YSIsIlRBR19JTlRFUk5BTFMiLCJLRVlXT1JEUyIsIkJBQ0tUSUNLX0VTQ0FQRSIsIlZBUklBQkxFIiwiVkFSIiwiUVVPVEVfU1RSSU5HIiwiXyIsIkNPTU1FTlRfTU9ERVMiLCJDSEFSX1NUUklORyIsIlBST0NFRFVSRSIsIk9CSkVDVCIsIlNVQlNUIiwiRVhQUkVTU0lPTlMiLCJTWU1CT0xfUkUiLCJTWU1CT0wiLCJDT0xMRUNUSU9OIiwiSElOVCIsIkhJTlRfQ09MIiwiS0VZIiwiTElTVCIsIkJPRFkiLCJOQU1FIiwiYnVpbHRpbi1uYW1lIiwiREVGQVVMVF9DT05UQUlOUyIsIkpTX0lERU5UX1JFIiwiVElUTEUiLCJDT01NQU5EUyIsIk5VTV9TVUZGSVgiLCJDUllTVEFMX01FVEhPRF9SRSIsIkNSWVNUQUxfS0VZV09SRFMiLCJFWFBBTlNJT04iLCJyZWN1cnNpdmVQYXJlbiIsIkNSWVNUQUxfREVGQVVMVF9DT05UQUlOUyIsIlZFUkJBVElNX1NUUklORyIsIlZFUkJBVElNX1NUUklOR19OT19MRiIsIlNVQlNUX05PX0xGIiwiSU5URVJQT0xBVEVEX1NUUklORyIsIklOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkciLCJJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HX05PX0xGIiwiVFlQRV9JREVOVF9SRSIsIlJVTEUiLCJpbnRlZ2VyX3JlIiwiZXNjYXBlX3NlcXVlbmNlX3JlIiwiRF9JTlRFR0VSX01PREUiLCJEX0ZMT0FUX01PREUiLCJEX0NIQVJBQ1RFUl9NT0RFIiwiRF9TVFJJTkdfTU9ERSIsIkRfTkVTVElOR19DT01NRU5UX01PREUiLCJESVJFQ1RJVkUiLCJDTEFTUyIsIkZVTkNUSU9OIiwiRklMVEVSIiwiRFRTX1JFRkVSRU5DRSIsIkRUU19LRVlXT1JEIiwiRFRTX0xBQkVMIiwiRFRTX0NFTExfUFJPUEVSVFkiLCJEVFNfTk9ERSIsIkVMSVhJUl9JREVOVF9SRSIsIkVMSVhJUl9LRVlXT1JEUyIsIkVMSVhJUl9ERUZBVUxUX0NPTlRBSU5TIiwiQ09OU1RSVUNUT1IiLCJSVUJZX01FVEhPRF9SRSIsIlJVQllfS0VZV09SRFMiLCJZQVJET0NUQUciLCJJUkJfT0JKRUNUIiwiUlVCWV9ERUZBVUxUX0NPTlRBSU5TIiwiSVJCX0RFRkFVTFQiLCJCQVNJQ19BVE9NX1JFIiwiRlVOQ1RJT05fTkFNRV9SRSIsIkVSTEFOR19SRVNFUlZFRCIsIk5BTUVEX0ZVTiIsIkZVTkNUSU9OX0NBTEwiLCJUVVBMRSIsIlZBUjEiLCJWQVIyIiwiUkVDT1JEX0FDQ0VTUyIsIkJMT0NLX1NUQVRFTUVOVFMiLCJCQVNJQ19NT0RFUyIsIk1FVEhPRCIsIlRZUEVQQVJBTSIsImJ1aWx0LWluIiwiU1lNQk9MUyIsIlFTVFIiLCJBU1NJR05NRU5UIiwiREVTQ1RFWFQiLCJQQVJTRV9QQVJBTVMiLCJHQ09ERV9DT0RFIiwiR09fS0VZV09SRFMiLCJCVUlMVF9JTlMiLCJQUkFHTUEiLCJUQUdfSU5OQVJEUyIsIlZFUlNJT04iLCJKQVZBX05VTUJFUl9NT0RFIiwiVEVNUExBVEVfU1RSSU5HIiwiUEFSQU1TX0NPTlRBSU5TIiwiUEFSQU1TQkxPQ0siLCJMSVRFUkFMUyIsIlRZUEVTIiwiVkFMVUVfQ09OVEFJTkVSIiwiQVJSQVkiLCJWQVJJQUJMRV9OQU1FX1JFIiwiREVGQVVMVCIsIklOVEVSUE9MQVRJT04iLCJJTlRFUlBPTEFURURfVkFSSUFCTEUiLCJDT01NQU5EIiwiTUFDUk9DQUxMIiwiTEFCRUwiLCJBTk5PVEFUSU9OX1VTRV9TSVRFIiwiQU5OT1RBVElPTiIsIkxBU1NPX0NMT1NFX1JFIiwiTEFTU09fS0VZV09SRFMiLCJIVE1MX0NPTU1FTlQiLCJMQVNTT19OT1BST0NFU1MiLCJMQVNTT19TVEFSVCIsIkxBU1NPX0RBVEFNRU1CRVIiLCJMQVNTT19DT0RFIiwiTEFTU09fSURFTlRfUkUiLCJJTlRFUlBfSURFTlRfUkUiLCJSVUxFUyIsIlZBTFVFIiwiU1RSSU5HX01PREUiLCJJREVOVF9NT0RFIiwiUEFSRU5TX01PREUiLCJWQUxVRV9XSVRIX1JVTEVTRVRTIiwiTUlYSU5fR1VBUkRfTU9ERSIsIlJVTEVfTU9ERSIsIkFUX1JVTEVfTU9ERSIsIlZBUl9SVUxFX01PREUiLCJTRUxFQ1RPUl9NT0RFIiwiTElTUF9JREVOVF9SRSIsIkxJU1BfU0lNUExFX05VTUJFUl9SRSIsIklERU5UIiwiTUVDIiwiUVVPVEVEIiwiUVVPVEVEX0FUT00iLCJUSVRMRTEiLCJUSVRMRTIiLCJTVUJTVF9TSU1QTEUiLCJMU0xfU1RSSU5HUyIsIkxTTF9OVU1CRVJTIiwiTE9OR19CUkFDS0VUUyIsIkZVTkMiLCJWQVJfQVNTSUciLCJUQVJHRVQiLCJDT01NT05fQ09OVEFJTlMiLCJUUkFOU1BPU0UiLCJzeW1ib2wiLCJBVE9NIiwiUEVSTF9LRVlXT1JEUyIsIlNUUklOR19DT05UQUlOUyIsIlBFUkxfREVGQVVMVF9DT05UQUlOUyIsIk5JWF9LRVlXT1JEUyIsIkFOVElRVU9URSIsIkRFRklORVMiLCJWQVJJQUJMRVMiLCJMQU5HVUFHRVMiLCJMRVhFTUVTIiwiQ0xBU1NfS0VZV09SRFMiLCJTUEVDSUFMX1ZBUlMiLCJGVU5DVElPTlMiLCJPWFlHRU5FX0tFWVdPUkRTIiwiQ1VSTFlfQ09NTUVOVCIsIlBBUkVOX0NPTU1FTlQiLCJDVVJMWV9TVUJDT01NRU5UIiwiU0lOR0xFX1FVT1RFX0NIQVJfTU9ERSIsIlRZUEVfTkFNRSIsIlBSSU1FRF9OQU1FIiwiUFNfQ09NTUVOVCIsIlBBUkVOVEVEIiwiTElORV9DT01NRU5UIiwiQkFDS1RJQ0tfU1RSSU5HIiwiaW5uZXIiLCJQUk9NUFQiLCJRTUxfSURFTlRfUkUiLCJJRF9JRCIsIlFNTF9BVFRSSUJVVEUiLCJRTUxfT0JKRUNUIiwiSURFTlRJRklFUiIsIlBST1BFUlRZIiwiU1RBVEVNRU5UUyIsIkFQT1NfU1RSSU5HIiwiQlVJTFRJTlMiLCJUWVBFIiwiU0NIRU1FX0lERU5UX1JFIiwiU0NIRU1FX1NJTVBMRV9OVU1CRVJfUkUiLCJRVU9URURfSURFTlQiLCJRVU9URURfTElTVCIsIkhFWENPTE9SIiwic21hbGlfaW5zdHJfbG93X3ByaW8iLCJDSEFSIiwiVkFSX0lERU5UX1JFIiwiQ09NTUVOVF9NT0RFIiwic2VsZWN0b3ItdGFnIiwiSEVYX0NPTE9SIiwiVEFHX0VORCIsIlNXSUZUX0tFWVdPUkRTIiwiQkxPQ0tfQ09NTUVOVCIsImtleU5hbWUiLCJrZXlQcmVmaXgiLCJUUElEIiwiVFBMQUJFTCIsIkZVTkNUSU9OX05BTUVTIiwiVEFHUyIsInQiLCJYTF9LRVlXT1JEUyIsIkRPVUJMRV9RVU9URV9URVhUIiwiSU1QT1JUIiwiRlVOQ1RJT05fREVGSU5JVElPTiIsIkNPTlRBSU5TIiwicmVxdWlyZSQkOSIsInJlcXVpcmUkJDEwIiwicmVxdWlyZSQkMTEiLCJyZXF1aXJlJCQxMiIsInJlcXVpcmUkJDEzIiwicmVxdWlyZSQkMTQiLCJyZXF1aXJlJCQxNiIsInJlcXVpcmUkJDE3IiwicmVxdWlyZSQkMTgiLCJyZXF1aXJlJCQxOSIsInJlcXVpcmUkJDIwIiwicmVxdWlyZSQkMjIiLCJyZXF1aXJlJCQyMyIsInJlcXVpcmUkJDI0IiwicmVxdWlyZSQkMjUiLCJyZXF1aXJlJCQyNiIsInJlcXVpcmUkJDI3IiwicmVxdWlyZSQkMjgiLCJyZXF1aXJlJCQyOSIsInJlcXVpcmUkJDMwIiwicmVxdWlyZSQkMzEiLCJyZXF1aXJlJCQzMiIsInJlcXVpcmUkJDMzIiwicmVxdWlyZSQkMzQiLCJyZXF1aXJlJCQzNSIsInJlcXVpcmUkJDM2IiwicmVxdWlyZSQkMzciLCJyZXF1aXJlJCQzOCIsInJlcXVpcmUkJDM5IiwicmVxdWlyZSQkNDAiLCJyZXF1aXJlJCQ0MSIsInJlcXVpcmUkJDQyIiwicmVxdWlyZSQkNDMiLCJyZXF1aXJlJCQ0NCIsInJlcXVpcmUkJDQ1IiwicmVxdWlyZSQkNDYiLCJyZXF1aXJlJCQ0NyIsInJlcXVpcmUkJDQ4IiwicmVxdWlyZSQkNDkiLCJyZXF1aXJlJCQ1MCIsInJlcXVpcmUkJDUxIiwicmVxdWlyZSQkNTIiLCJyZXF1aXJlJCQ1MyIsInJlcXVpcmUkJDU0IiwicmVxdWlyZSQkNTUiLCJyZXF1aXJlJCQ1NiIsInJlcXVpcmUkJDU3IiwicmVxdWlyZSQkNTgiLCJyZXF1aXJlJCQ1OSIsInJlcXVpcmUkJDYwIiwicmVxdWlyZSQkNjEiLCJyZXF1aXJlJCQ2MiIsInJlcXVpcmUkJDYzIiwicmVxdWlyZSQkNjQiLCJyZXF1aXJlJCQ2NSIsInJlcXVpcmUkJDY2IiwicmVxdWlyZSQkNjciLCJyZXF1aXJlJCQ2OCIsInJlcXVpcmUkJDY5IiwicmVxdWlyZSQkNzAiLCJyZXF1aXJlJCQ3MSIsInJlcXVpcmUkJDcyIiwicmVxdWlyZSQkNzMiLCJyZXF1aXJlJCQ3NCIsInJlcXVpcmUkJDc1IiwicmVxdWlyZSQkNzYiLCJyZXF1aXJlJCQ3NyIsInJlcXVpcmUkJDc4IiwicmVxdWlyZSQkNzkiLCJyZXF1aXJlJCQ4MCIsInJlcXVpcmUkJDgxIiwicmVxdWlyZSQkODIiLCJyZXF1aXJlJCQ4MyIsInJlcXVpcmUkJDg0IiwicmVxdWlyZSQkODUiLCJyZXF1aXJlJCQ4NiIsInJlcXVpcmUkJDg3IiwicmVxdWlyZSQkODgiLCJyZXF1aXJlJCQ4OSIsInJlcXVpcmUkJDkwIiwicmVxdWlyZSQkOTEiLCJyZXF1aXJlJCQ5MiIsInJlcXVpcmUkJDkzIiwicmVxdWlyZSQkOTQiLCJyZXF1aXJlJCQ5NSIsInJlcXVpcmUkJDk2IiwicmVxdWlyZSQkOTciLCJyZXF1aXJlJCQ5OCIsInJlcXVpcmUkJDk5IiwicmVxdWlyZSQkMTAwIiwicmVxdWlyZSQkMTAxIiwicmVxdWlyZSQkMTAyIiwicmVxdWlyZSQkMTAzIiwicmVxdWlyZSQkMTA0IiwicmVxdWlyZSQkMTA1IiwicmVxdWlyZSQkMTA2IiwicmVxdWlyZSQkMTA3IiwicmVxdWlyZSQkMTA4IiwicmVxdWlyZSQkMTA5IiwicmVxdWlyZSQkMTEwIiwicmVxdWlyZSQkMTExIiwicmVxdWlyZSQkMTEyIiwicmVxdWlyZSQkMTEzIiwicmVxdWlyZSQkMTE0IiwicmVxdWlyZSQkMTE1IiwicmVxdWlyZSQkMTE2IiwicmVxdWlyZSQkMTE3IiwicmVxdWlyZSQkMTE4IiwicmVxdWlyZSQkMTE5IiwicmVxdWlyZSQkMTIwIiwicmVxdWlyZSQkMTIxIiwicmVxdWlyZSQkMTIyIiwicmVxdWlyZSQkMTIzIiwicmVxdWlyZSQkMTI0IiwicmVxdWlyZSQkMTI1IiwicmVxdWlyZSQkMTI2IiwicmVxdWlyZSQkMTI3IiwicmVxdWlyZSQkMTI4IiwicmVxdWlyZSQkMTI5IiwicmVxdWlyZSQkMTMwIiwicmVxdWlyZSQkMTMxIiwicmVxdWlyZSQkMTMyIiwicmVxdWlyZSQkMTMzIiwicmVxdWlyZSQkMTM0IiwicmVxdWlyZSQkMTM1IiwicmVxdWlyZSQkMTM2IiwicmVxdWlyZSQkMTM3IiwicmVxdWlyZSQkMTM4IiwicmVxdWlyZSQkMTM5IiwicmVxdWlyZSQkMTQwIiwicmVxdWlyZSQkMTQxIiwicmVxdWlyZSQkMTQyIiwicmVxdWlyZSQkMTQzIiwicmVxdWlyZSQkMTQ0IiwicmVxdWlyZSQkMTQ1IiwicmVxdWlyZSQkMTQ2IiwicmVxdWlyZSQkMTQ3IiwicmVxdWlyZSQkMTQ4IiwicmVxdWlyZSQkMTQ5IiwicmVxdWlyZSQkMTUwIiwicmVxdWlyZSQkMTUxIiwicmVxdWlyZSQkMTUyIiwicmVxdWlyZSQkMTUzIiwicmVxdWlyZSQkMTU0IiwicmVxdWlyZSQkMTU1IiwicmVxdWlyZSQkMTU2IiwicmVxdWlyZSQkMTU3IiwicmVxdWlyZSQkMTU4IiwicmVxdWlyZSQkMTU5IiwicmVxdWlyZSQkMTYwIiwicmVxdWlyZSQkMTYxIiwicmVxdWlyZSQkMTYyIiwicmVxdWlyZSQkMTYzIiwicmVxdWlyZSQkMTY0IiwicmVxdWlyZSQkMTY1IiwicmVxdWlyZSQkMTY2IiwicmVxdWlyZSQkMTY3IiwicmVxdWlyZSQkMTY4IiwicmVxdWlyZSQkMTY5IiwicmVxdWlyZSQkMTcwIiwicmVxdWlyZSQkMTcxIiwicmVxdWlyZSQkMTcyIiwicmVxdWlyZSQkMTczIiwicmVxdWlyZSQkMTc0IiwicmVxdWlyZSQkMTc1IiwicmVxdWlyZSQkMTc2IiwiX3JlZiIsImluY2x1ZGUiLCJfbG93bGlnaHQyIiwiZGVmYXVsdCIsImFzdCIsIl91bmlzdFV0aWxWaXNpdDIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2xvd2xpZ2h0IiwiX3VuaXN0VXRpbFZpc2l0IiwiX19lc01vZHVsZSIsInZGaWxlIiwiZmlyc3ROb2RlIiwic3VtIiwic2VjcmV0IiwiYm94IiwidmlzaXRCbG9ja3F1b3RlIiwibmJNQyIsImlzTXVsdGlwbGVDaG9pc2UiLCJuYlEiLCJ0YWIiLCJub2RlQyIsIngiLCJmb3IiLCJsaXN0Q2hpbGQiLCJkZWFsTGFiZWxDaGlsZHJlbiIsIm9uY2xpY2siLCJ2aXNpdExpc3QiLCJub3RoaW5nSGFwcGVuZCIsInByb3AiLCJlYXRlbiIsImluZGV4TmV4dCIsImxhYmVsU2Vjb25kIiwibGV0c0VhdCIsInN0b3BPbkJyYWNlIiwiZXJyb3JEZXRlY3RlZCIsImxhYmVsRmlyc3QiLCJzaG91bGRTdG9wIiwiY2hhcnMiLCJlYXRVbnRpbCIsImVhdEluUXVvdGUiLCJxdW90ZSIsImVhdE9uZSIsImFkZEF0dHJpYnV0ZSIsIlNUQVJUIiwiRU5EIiwicGFyc2VBdHRyIiwicGxhY2Vob2xkZXIiLCJpbnB1dCIsImxpbmVpbnB1dCIsIkVORF9SR1giLCJyZXQiLCJ1bnRyaW0iLCJzZWxlY3QiLCJsaW5lc2VsZWN0IiwiYmxvY2tUb2tlbml6ZXIiLCJzZWFyY2giLCJ0ZXh0aW5wdXQiLCJFT0YiLCJOVUxMIiwiVEFCVUxBVElPTiIsIkNBUlJJQUdFX1JFVFVSTiIsIkxJTkVfRkVFRCIsIkZPUk1fRkVFRCIsIlNQQUNFIiwiRVhDTEFNQVRJT05fTUFSSyIsIlFVT1RBVElPTl9NQVJLIiwiTlVNQkVSX1NJR04iLCJBTVBFUlNBTkQiLCJBUE9TVFJPUEhFIiwiSFlQSEVOX01JTlVTIiwiU09MSURVUyIsIkRJR0lUXzAiLCJESUdJVF85IiwiU0VNSUNPTE9OIiwiTEVTU19USEFOX1NJR04iLCJFUVVBTFNfU0lHTiIsIkdSRUFURVJfVEhBTl9TSUdOIiwiUVVFU1RJT05fTUFSSyIsIkxBVElOX0NBUElUQUxfQSIsIkxBVElOX0NBUElUQUxfRiIsIkxBVElOX0NBUElUQUxfWCIsIkxBVElOX0NBUElUQUxfWiIsIkdSQVZFX0FDQ0VOVCIsIkxBVElOX1NNQUxMX0EiLCJMQVRJTl9TTUFMTF9GIiwiTEFUSU5fU01BTExfWCIsIkxBVElOX1NNQUxMX1oiLCJSRVBMQUNFTUVOVF9DSEFSQUNURVIiLCJEQVNIX0RBU0hfU1RSSU5HIiwiRE9DVFlQRV9TVFJJTkciLCJDREFUQV9TVEFSVF9TVFJJTkciLCJDREFUQV9FTkRfU1RSSU5HIiwiU0NSSVBUX1NUUklORyIsIlBVQkxJQ19TVFJJTkciLCJTWVNURU1fU1RSSU5HIiwiJCIsIlVOSUNPREUiLCJDT0RFX1BPSU5UUyIsIlByZXByb2Nlc3NvciIsImxhc3RHYXBQb3MiLCJsYXN0Q2hhclBvcyIsImdhcFN0YWNrIiwic2tpcE5leHROZXdMaW5lIiwibGFzdENodW5rV3JpdHRlbiIsImVuZE9mQ2h1bmtIaXQiLCJidWZmZXJXYXRlcmxpbmUiLCJkcm9wUGFyc2VkQ2h1bmsiLCJfYWRkR2FwIiwiX3Byb2Nlc3NIaWdoUmFuZ2VDb2RlUG9pbnQiLCJjcCIsIm5leHRDcCIsImNwMiIsImNwMSIsImdldFN1cnJvZ2F0ZVBhaXJDb2RlUG9pbnQiLCJ3cml0ZSIsImNodW5rIiwiaXNMYXN0Q2h1bmsiLCJpbnNlcnRIdG1sQXRDdXJyZW50UG9zIiwiYWR2YW5jZSIsInJldHJlYXQiLCJVaW50MTZBcnJheSIsIiQkIiwiQ09ERV9QT0lOVF9TRVFVRU5DRVMiLCJOVU1FUklDX0VOVElUWV9SRVBMQUNFTUVOVFMiLCIwIiwiMTMiLCIxMjgiLCIxMjkiLCIxMzAiLCIxMzEiLCIxMzIiLCIxMzMiLCIxMzQiLCIxMzUiLCIxMzYiLCIxMzciLCIxMzgiLCIxMzkiLCIxNDAiLCIxNDEiLCIxNDIiLCIxNDMiLCIxNDQiLCIxNDUiLCIxNDYiLCIxNDciLCIxNDgiLCIxNDkiLCIxNTAiLCIxNTEiLCIxNTIiLCIxNTMiLCIxNTQiLCIxNTUiLCIxNTYiLCIxNTciLCIxNTgiLCIxNTkiLCJEQVRBX1NUQVRFIiwiaXNXaGl0ZXNwYWNlIiwiaXNBc2NpaURpZ2l0IiwiaXNBc2NpaVVwcGVyIiwiaXNBc2NpaUxvd2VyIiwiaXNBc2NpaUxldHRlciIsImlzRGlnaXQiLCJpc0hleCIsInRvQXNjaWlMb3dlckNvZGVQb2ludCIsInRvQ2hhciIsInRvQXNjaWlMb3dlckNoYXIiLCJmaW5kTmFtZWRFbnRpdHlUcmVlQnJhbmNoIiwibm9kZUl4IiwiYnJhbmNoQ291bnQiLCJuZVRyZWUiLCJsbyIsImhpIiwibWlkIiwibWlkQ3AiLCJUb2tlbml6ZXIiLCJ0b2tlblF1ZXVlIiwiYWxsb3dDREFUQSIsInN0YXRlIiwicmV0dXJuU3RhdGUiLCJ0ZW1wQnVmZiIsImFkZGl0aW9uYWxBbGxvd2VkQ3AiLCJsYXN0U3RhcnRUYWdOYW1lIiwiY29uc3VtZWRBZnRlclNuYXBzaG90IiwiYWN0aXZlIiwiY3VycmVudENoYXJhY3RlclRva2VuIiwiY3VycmVudFRva2VuIiwiY3VycmVudEF0dHIiLCJDSEFSQUNURVJfVE9LRU4iLCJOVUxMX0NIQVJBQ1RFUl9UT0tFTiIsIldISVRFU1BBQ0VfQ0hBUkFDVEVSX1RPS0VOIiwiU1RBUlRfVEFHX1RPS0VOIiwiRU5EX1RBR19UT0tFTiIsIkNPTU1FTlRfVE9LRU4iLCJET0NUWVBFX1RPS0VOIiwiRU9GX1RPS0VOIiwiSElCRVJOQVRJT05fVE9LRU4iLCJNT0RFIiwiREFUQSIsIlJDREFUQSIsIlJBV1RFWFQiLCJTQ1JJUFRfREFUQSIsIlBMQUlOVEVYVCIsImdldFRva2VuQXR0ciIsInRva2VuIiwiYXR0ck5hbWUiLCJhdHRycyIsImdldE5leHRUb2tlbiIsIl9oaWJlcm5hdGlvblNuYXBzaG90IiwiX2NvbnN1bWUiLCJfZW5zdXJlSGliZXJuYXRpb24iLCJzaGlmdCIsIl91bmNvbnN1bWUiLCJfdW5jb25zdW1lU2V2ZXJhbCIsIl9yZWNvbnN1bWVJblN0YXRlIiwiX2NvbnN1bWVTdWJzZXF1ZW50SWZNYXRjaCIsInBhdHRlcm4iLCJzdGFydENwIiwiY2FzZVNlbnNpdGl2ZSIsImNvbnN1bWVkQ291bnQiLCJpc01hdGNoIiwicGF0dGVybkxlbmd0aCIsInBhdHRlcm5Qb3MiLCJwYXR0ZXJuQ3AiLCJfbG9va2FoZWFkIiwiaXNUZW1wQnVmZmVyRXF1YWxUb1NjcmlwdFN0cmluZyIsIl9jcmVhdGVTdGFydFRhZ1Rva2VuIiwic2VsZkNsb3NpbmciLCJfY3JlYXRlRW5kVGFnVG9rZW4iLCJfY3JlYXRlQ29tbWVudFRva2VuIiwiX2NyZWF0ZURvY3R5cGVUb2tlbiIsImluaXRpYWxOYW1lIiwiZm9yY2VRdWlya3MiLCJwdWJsaWNJZCIsInN5c3RlbUlkIiwiX2NyZWF0ZUNoYXJhY3RlclRva2VuIiwiX2NyZWF0ZUF0dHIiLCJhdHRyTmFtZUZpcnN0Q2giLCJfaXNEdXBsaWNhdGVBdHRyIiwiX2xlYXZlQXR0ck5hbWUiLCJ0b1N0YXRlIiwiX2xlYXZlQXR0clZhbHVlIiwiX2lzQXBwcm9wcmlhdGVFbmRUYWdUb2tlbiIsIl9lbWl0Q3VycmVudFRva2VuIiwiX2VtaXRDdXJyZW50Q2hhcmFjdGVyVG9rZW4iLCJfZW1pdEVPRlRva2VuIiwiX2FwcGVuZENoYXJUb0N1cnJlbnRDaGFyYWN0ZXJUb2tlbiIsIl9lbWl0Q29kZVBvaW50IiwiX2VtaXRTZXZlcmFsQ29kZVBvaW50cyIsImNvZGVQb2ludHMiLCJfZW1pdENoYXIiLCJfY29uc3VtZU51bWVyaWNFbnRpdHkiLCJkaWdpdHMiLCJyZWZlcmVuY2VkQ3AiLCJwYXJzZUludCIsInJlcGxhY2VtZW50IiwiX2NvbnN1bWVOYW1lZEVudGl0eSIsImluQXR0ciIsInJlZmVyZW5jZWRDb2RlUG9pbnRzIiwicmVmZXJlbmNlU2l6ZSIsInNlbWljb2xvblRlcm1pbmF0ZWQiLCJpbk5vZGUiLCJIQVNfREFUQV9GTEFHIiwiaXNBc2NpaUFscGhhTnVtZXJpYyIsIl9jb25zdW1lQ2hhcmFjdGVyUmVmZXJlbmNlIiwiZGFzaERhc2hNYXRjaCIsImRvY3R5cGVNYXRjaCIsImNkYXRhTWF0Y2giLCJwdWJsaWNNYXRjaCIsInN5c3RlbU1hdGNoIiwiY2RhdGFFbmRNYXRjaCIsIk5TIiwiSFRNTCIsIk1BVEhNTCIsIlNWRyIsIlhMSU5LIiwiWE1MIiwiWE1MTlMiLCJBQ1RJT04iLCJFTkNPRElORyIsIkNPTE9SIiwiRkFDRSIsIlNJWkUiLCJOT19RVUlSS1MiLCJRVUlSS1MiLCJMSU1JVEVEX1FVSVJLUyIsIkEiLCJBRERSRVNTIiwiQU5OT1RBVElPTl9YTUwiLCJBUFBMRVQiLCJBUkVBIiwiQVJUSUNMRSIsIkFTSURFIiwiQiIsIkJBU0UiLCJCQVNFRk9OVCIsIkJHU09VTkQiLCJCSUciLCJCTE9DS1FVT1RFIiwiQlIiLCJCVVRUT04iLCJDQVBUSU9OIiwiQ0VOVEVSIiwiQ09ERSIsIkNPTCIsIkNPTEdST1VQIiwiREQiLCJERVNDIiwiREVUQUlMUyIsIkRJQUxPRyIsIkRJUiIsIkRJViIsIkRMIiwiRFQiLCJFTSIsIkVNQkVEIiwiRklFTERTRVQiLCJGSUdDQVBUSU9OIiwiRklHVVJFIiwiRk9OVCIsIkZPT1RFUiIsIkZPUkVJR05fT0JKRUNUIiwiRk9STSIsIkZSQU1FIiwiRlJBTUVTRVQiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFEIiwiSEVBREVSIiwiSEdST1VQIiwiSFIiLCJJIiwiSU1HIiwiSU1BR0UiLCJJTlBVVCIsIklGUkFNRSIsIktFWUdFTiIsIkxJIiwiTElOSyIsIkxJU1RJTkciLCJNQUlOIiwiTUFMSUdOTUFSSyIsIk1BUlFVRUUiLCJNQVRIIiwiTUVOVSIsIk1FTlVJVEVNIiwiTUVUQSIsIk1HTFlQSCIsIk1JIiwiTU8iLCJNTiIsIk1TIiwiTVRFWFQiLCJOQVYiLCJOT0JSIiwiTk9GUkFNRVMiLCJOT0VNQkVEIiwiTk9TQ1JJUFQiLCJPTCIsIk9QVEdST1VQIiwiT1BUSU9OIiwiUCIsIlBBUkFNIiwiUFJFIiwiUkIiLCJSUCIsIlJUIiwiUlRDIiwiUlVCWSIsIlMiLCJTQ1JJUFQiLCJTRUNUSU9OIiwiU0VMRUNUIiwiU09VUkNFIiwiU01BTEwiLCJTUEFOIiwiU1RSSUtFIiwiU1RST05HIiwiU1RZTEUiLCJTVUIiLCJTVU1NQVJZIiwiU1VQIiwiVEFCTEUiLCJUQk9EWSIsIlRFTVBMQVRFIiwiVEVYVEFSRUEiLCJURk9PVCIsIlREIiwiVEgiLCJUSEVBRCIsIlRSIiwiVFJBQ0siLCJUVCIsIlUiLCJVTCIsIldCUiIsIlhNUCIsIlNQRUNJQUxfRUxFTUVOVFMiLCJUQUdfTkFNRVMiLCJOQU1FU1BBQ0VTIiwiaXNJbXBsaWVkRW5kVGFnUmVxdWlyZWQiLCJ0biIsImlzU2NvcGluZ0VsZW1lbnQiLCJucyIsIk9wZW5FbGVtZW50U3RhY2siLCJ0cmVlQWRhcHRlciIsInN0YWNrVG9wIiwiaXRlbXMiLCJjdXJyZW50VGFnTmFtZSIsImN1cnJlbnRUbXBsQ29udGVudCIsInRtcGxDb3VudCIsIl9pbmRleE9mIiwiZWxlbWVudCIsImlkeCIsIl9pc0luVGVtcGxhdGUiLCJnZXROYW1lc3BhY2VVUkkiLCJfdXBkYXRlQ3VycmVudEVsZW1lbnQiLCJnZXRUYWdOYW1lIiwiZ2V0VGVtcGxhdGVDb250ZW50Iiwib2xkRWxlbWVudCIsIm5ld0VsZW1lbnQiLCJpbnNlcnRBZnRlciIsInJlZmVyZW5jZUVsZW1lbnQiLCJpbnNlcnRpb25JZHgiLCJwb3BVbnRpbFRhZ05hbWVQb3BwZWQiLCJwb3BVbnRpbEVsZW1lbnRQb3BwZWQiLCJwb3BwZWRFbGVtZW50IiwicG9wVW50aWxOdW1iZXJlZEhlYWRlclBvcHBlZCIsInBvcFVudGlsVGFibGVDZWxsUG9wcGVkIiwicG9wQWxsVXBUb0h0bWxFbGVtZW50IiwiY2xlYXJCYWNrVG9UYWJsZUNvbnRleHQiLCJjbGVhckJhY2tUb1RhYmxlQm9keUNvbnRleHQiLCJjbGVhckJhY2tUb1RhYmxlUm93Q29udGV4dCIsInJlbW92ZSIsInRyeVBlZWtQcm9wZXJseU5lc3RlZEJvZHlFbGVtZW50IiwiZ2V0Q29tbW9uQW5jZXN0b3IiLCJlbGVtZW50SWR4IiwiaXNSb290SHRtbEVsZW1lbnRDdXJyZW50IiwiaGFzSW5TY29wZSIsImhhc051bWJlcmVkSGVhZGVySW5TY29wZSIsImhhc0luTGlzdEl0ZW1TY29wZSIsImhhc0luQnV0dG9uU2NvcGUiLCJoYXNJblRhYmxlU2NvcGUiLCJoYXNUYWJsZUJvZHlDb250ZXh0SW5UYWJsZVNjb3BlIiwiaGFzSW5TZWxlY3RTY29wZSIsImdlbmVyYXRlSW1wbGllZEVuZFRhZ3MiLCJnZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1c2lvbiIsImV4Y2x1c2lvblRhZ05hbWUiLCJGb3JtYXR0aW5nRWxlbWVudExpc3QiLCJlbnRyaWVzIiwiYm9va21hcmsiLCJNQVJLRVJfRU5UUlkiLCJFTEVNRU5UX0VOVFJZIiwiX2dldE5vYWhBcmtDb25kaXRpb25DYW5kaWRhdGVzIiwiY2FuZGlkYXRlcyIsIm5lQXR0cnNMZW5ndGgiLCJnZXRBdHRyTGlzdCIsIm5lVGFnTmFtZSIsIm5lTmFtZXNwYWNlVVJJIiwiZW50cnkiLCJlbGVtZW50QXR0cnMiLCJfZW5zdXJlTm9haEFya0NvbmRpdGlvbiIsImNMZW5ndGgiLCJuZUF0dHJzIiwibmVBdHRyc01hcCIsIm5lQXR0ciIsImoiLCJjQXR0ciIsIk5PQUhfQVJLX0NBUEFDSVRZIiwiaW5zZXJ0TWFya2VyIiwicHVzaEVsZW1lbnQiLCJpbnNlcnRFbGVtZW50QWZ0ZXJCb29rbWFyayIsImJvb2ttYXJrSWR4IiwicmVtb3ZlRW50cnkiLCJjbGVhclRvTGFzdE1hcmtlciIsImdldEVsZW1lbnRFbnRyeUluU2NvcGVXaXRoVGFnTmFtZSIsImdldEVsZW1lbnRFbnRyeSIsImhvc3QiLCJvcmlnaW5hbE1ldGhvZHMiLCJvdmVycmlkZGVuTWV0aG9kcyIsIl9nZXRPdmVycmlkZGVuTWV0aG9kcyIsInNlbGYiLCJ3aW5kb3ciLCJsb29rdXAiLCJyZXZMb29rdXAiLCJBcnIiLCJVaW50OEFycmF5IiwiaW5pdGVkIiwiaW5pdCIsImxlbiIsImVuY29kZUNodW5rIiwidWludDgiLCJ0bXAiLCJvdXRwdXQiLCJmcm9tQnl0ZUFycmF5IiwiZXh0cmFCeXRlcyIsInBhcnRzIiwibGVuMiIsInJlYWQiLCJpc0xFIiwibUxlbiIsIm5CeXRlcyIsIm0iLCJlTGVuIiwiZU1heCIsImVCaWFzIiwibkJpdHMiLCJkIiwiTmFOIiwiTWF0aCIsInBvdyIsInJ0IiwiYWJzIiwiZmxvb3IiLCJsb2ciLCJMTjIiLCJhcnIiLCJrTWF4TGVuZ3RoIiwiQnVmZmVyIiwiVFlQRURfQVJSQVlfU1VQUE9SVCIsImNyZWF0ZUJ1ZmZlciIsInRoYXQiLCJSYW5nZUVycm9yIiwiX19wcm90b19fIiwiYXJnIiwiZW5jb2RpbmdPck9mZnNldCIsImFsbG9jVW5zYWZlIiwiQXJyYXlCdWZmZXIiLCJhcnJheSIsImJ5dGVPZmZzZXQiLCJieXRlTGVuZ3RoIiwiZnJvbUFycmF5TGlrZSIsImZyb21BcnJheUJ1ZmZlciIsImVuY29kaW5nIiwiaXNFbmNvZGluZyIsImFjdHVhbCIsImZyb21TdHJpbmciLCJpbnRlcm5hbElzQnVmZmVyIiwiY29weSIsImZyb21PYmplY3QiLCJhc3NlcnRTaXplIiwiYiIsIl9pc0J1ZmZlciIsImlzVmlldyIsImxvd2VyZWRDYXNlIiwidXRmOFRvQnl0ZXMiLCJiYXNlNjRUb0J5dGVzIiwic3dhcCIsImJpZGlyZWN0aW9uYWxJbmRleE9mIiwiZGlyIiwiYXJyYXlJbmRleE9mIiwibGFzdEluZGV4T2YiLCJpbmRleFNpemUiLCJhcnJMZW5ndGgiLCJ2YWxMZW5ndGgiLCJidWYiLCJyZWFkVUludDE2QkUiLCJmb3VuZEluZGV4IiwiZm91bmQiLCJoZXhXcml0ZSIsInJlbWFpbmluZyIsInN0ckxlbiIsInBhcnNlZCIsInV0ZjhXcml0ZSIsImJsaXRCdWZmZXIiLCJhc2NpaVdyaXRlIiwiYnl0ZUFycmF5IiwiYXNjaWlUb0J5dGVzIiwibGF0aW4xV3JpdGUiLCJiYXNlNjRXcml0ZSIsInVjczJXcml0ZSIsInVuaXRzIiwidXRmMTZsZVRvQnl0ZXMiLCJiYXNlNjRTbGljZSIsImJhc2U2NC5mcm9tQnl0ZUFycmF5IiwidXRmOFNsaWNlIiwibWluIiwic2Vjb25kQnl0ZSIsInRoaXJkQnl0ZSIsImZvdXJ0aEJ5dGUiLCJ0ZW1wQ29kZVBvaW50IiwiZmlyc3RCeXRlIiwiY29kZVBvaW50IiwiYnl0ZXNQZXJTZXF1ZW5jZSIsIk1BWF9BUkdVTUVOVFNfTEVOR1RIIiwiZGVjb2RlQ29kZVBvaW50c0FycmF5IiwicG9vbFNpemUiLCJfYXVnbWVudCIsImFsbG9jIiwiZmlsbCIsImFsbG9jVW5zYWZlU2xvdyIsImlzQnVmZmVyIiwiY29tcGFyZSIsInkiLCJzd2FwMTYiLCJzd2FwMzIiLCJzd2FwNjQiLCJoZXhTbGljZSIsImFzY2lpU2xpY2UiLCJsYXRpbjFTbGljZSIsInV0ZjE2bGVTbGljZSIsImVxdWFscyIsImluc3BlY3QiLCJ0aGlzU3RhcnQiLCJ0aGlzRW5kIiwidGhpc0NvcHkiLCJ0YXJnZXRDb3B5IiwiaXNGaW5pdGUiLCJ0b0pTT04iLCJfYXJyIiwidG9IZXgiLCJieXRlcyIsImNoZWNrT2Zmc2V0IiwiZXh0IiwiY2hlY2tJbnQiLCJvYmplY3RXcml0ZVVJbnQxNiIsImxpdHRsZUVuZGlhbiIsIm9iamVjdFdyaXRlVUludDMyIiwiY2hlY2tJRUVFNzU0Iiwid3JpdGVGbG9hdCIsIm5vQXNzZXJ0IiwiaWVlZTc1NC53cml0ZSIsIndyaXRlRG91YmxlIiwibmV3QnVmIiwic3ViYXJyYXkiLCJzbGljZUxlbiIsInJlYWRVSW50TEUiLCJtdWwiLCJyZWFkVUludEJFIiwicmVhZFVJbnQ4IiwicmVhZFVJbnQxNkxFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZEludExFIiwicmVhZEludEJFIiwicmVhZEludDgiLCJyZWFkSW50MTZMRSIsInJlYWRJbnQxNkJFIiwicmVhZEludDMyTEUiLCJyZWFkSW50MzJCRSIsInJlYWRGbG9hdExFIiwiaWVlZTc1NC5yZWFkIiwicmVhZEZsb2F0QkUiLCJyZWFkRG91YmxlTEUiLCJyZWFkRG91YmxlQkUiLCJ3cml0ZVVJbnRMRSIsIndyaXRlVUludEJFIiwid3JpdGVVSW50OCIsIndyaXRlVUludDE2TEUiLCJ3cml0ZVVJbnQxNkJFIiwid3JpdGVVSW50MzJMRSIsIndyaXRlVUludDMyQkUiLCJ3cml0ZUludExFIiwibGltaXQiLCJzdWIiLCJ3cml0ZUludEJFIiwid3JpdGVJbnQ4Iiwid3JpdGVJbnQxNkxFIiwid3JpdGVJbnQxNkJFIiwid3JpdGVJbnQzMkxFIiwid3JpdGVJbnQzMkJFIiwid3JpdGVGbG9hdExFIiwid3JpdGVGbG9hdEJFIiwid3JpdGVEb3VibGVMRSIsIndyaXRlRG91YmxlQkUiLCJ0YXJnZXRTdGFydCIsInNldCIsIklOVkFMSURfQkFTRTY0X1JFIiwibGVhZFN1cnJvZ2F0ZSIsImI2NCIsInBsYWNlSG9sZGVycyIsIkwiLCJiYXNlNjQudG9CeXRlQXJyYXkiLCJzdHJpbmd0cmltIiwiYmFzZTY0Y2xlYW4iLCJkc3QiLCJpc0Zhc3RCdWZmZXIiLCJpc1Nsb3dCdWZmZXIiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRTZXRUaW1vdXQiLCJkZWZhdWx0Q2xlYXJUaW1lb3V0IiwiY2FjaGVkU2V0VGltZW91dCIsImNhY2hlZENsZWFyVGltZW91dCIsInJ1blRpbWVvdXQiLCJmdW4iLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiY3VycmVudFF1ZXVlIiwiZHJhaW5pbmciLCJxdWV1ZUluZGV4IiwiY2xlYW5VcE5leHRUaWNrIiwiZHJhaW5RdWV1ZSIsInRpbWVvdXQiLCJydW5DbGVhclRpbWVvdXQiLCJJdGVtIiwibm9vcCIsIm9uIiwiYWRkTGlzdGVuZXIiLCJvbmNlIiwib2ZmIiwicmVtb3ZlTGlzdGVuZXIiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJlbWl0IiwicGVyZm9ybWFuY2UiLCJwZXJmb3JtYW5jZU5vdyIsIm1vek5vdyIsIm1zTm93Iiwib05vdyIsIndlYmtpdE5vdyIsIkRhdGUiLCJnZXRUaW1lIiwic3RhcnRUaW1lIiwibmV4dFRpY2siLCJhcmdzIiwiYnJvd3NlciIsImVudiIsImFyZ3YiLCJ2ZXJzaW9uIiwidmVyc2lvbnMiLCJiaW5kaW5nIiwiY3dkIiwiY2hkaXIiLCJ1bWFzayIsImhydGltZSIsInByZXZpb3VzVGltZXN0YW1wIiwiY2xvY2t0aW1lIiwic2Vjb25kcyIsIm5hbm9zZWNvbmRzIiwicGxhdGZvcm0iLCJyZWxlYXNlIiwiY29uZmlnIiwidXB0aW1lIiwiY3RvciIsInN1cGVyQ3RvciIsInN1cGVyXyIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImNvbmZpZ3VyYWJsZSIsIlRlbXBDdG9yIiwiZm9ybWF0UmVnRXhwIiwiZm9ybWF0IiwiZiIsImlzU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImlzTnVsbCIsImlzT2JqZWN0IiwiZGVwcmVjYXRlIiwibXNnIiwiaXNVbmRlZmluZWQiLCJub0RlcHJlY2F0aW9uIiwid2FybmVkIiwidGhyb3dEZXByZWNhdGlvbiIsInRyYWNlRGVwcmVjYXRpb24iLCJjb25zb2xlIiwidHJhY2UiLCJlcnJvciIsImRlYnVnRW52aXJvbiIsImRlYnVncyIsImRlYnVnbG9nIiwiTk9ERV9ERUJVRyIsInNlZW4iLCJzdHlsaXplIiwic3R5bGl6ZU5vQ29sb3IiLCJjb2xvcnMiLCJpc0Jvb2xlYW4iLCJzaG93SGlkZGVuIiwiX2V4dGVuZCIsImN1c3RvbUluc3BlY3QiLCJzdHlsaXplV2l0aENvbG9yIiwiZm9ybWF0VmFsdWUiLCJzdHlsZVR5cGUiLCJzdHlsZSIsInN0eWxlcyIsInJlY3Vyc2VUaW1lcyIsImlzRnVuY3Rpb24iLCJwcmltaXRpdmUiLCJzaW1wbGUiLCJpc051bWJlciIsImZvcm1hdFByaW1pdGl2ZSIsInZpc2libGVLZXlzIiwiaGFzaCIsImFycmF5VG9IYXNoIiwiaXNFcnJvciIsImZvcm1hdEVycm9yIiwiaXNSZWdFeHAiLCJpc0RhdGUiLCJiYXNlIiwiYnJhY2VzIiwidG9VVENTdHJpbmciLCJmb3JtYXRQcm9wZXJ0eSIsImZvcm1hdEFycmF5IiwicmVkdWNlIiwicHJldiIsImN1ciIsIm51bUxpbmVzRXN0IiwicmVkdWNlVG9TaW5nbGVTdHJpbmciLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwiYXIiLCJpc051bGxPclVuZGVmaW5lZCIsImlzU3ltYm9sIiwib2JqZWN0VG9TdHJpbmciLCJpc1ByaW1pdGl2ZSIsIm1heWJlQnVmIiwiQnVmZmVyLmlzQnVmZmVyIiwibyIsInBhZCIsImJvbGQiLCJpdGFsaWMiLCJ1bmRlcmxpbmUiLCJpbnZlcnNlIiwid2hpdGUiLCJncmV5IiwiYmxhY2siLCJibHVlIiwiY3lhbiIsImdyZWVuIiwibWFnZW50YSIsInJlZCIsInllbGxvdyIsInNwZWNpYWwiLCJudW1iZXIiLCJib29sZWFuIiwibnVsbCIsImRhdGUiLCJyZWdleHAiLCJtb250aHMiLCJ0aW1lIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImdldERhdGUiLCJnZXRNb250aCIsIlBvc2l0aW9uVHJhY2tpbmdQcmVwcm9jZXNzb3JNaXhpbiIsIl9fbG9jVHJhY2tlciIsIk1peGluIiwiaXNFb2wiLCJsaW5lU3RhcnRQb3MiLCJkcm9wcGVkQnVmZmVyU2l6ZSIsImNvbCIsImRlZmluZVByb3BlcnR5IiwibXhuIiwib3JpZyIsInByZXZQb3MiLCJMb2NhdGlvbkluZm9Ub2tlbml6ZXJNaXhpbiIsInRva2VuaXplciIsInBvc1RyYWNrZXIiLCJjdXJyZW50QXR0ckxvY2F0aW9uIiwiY3VycmVudFRva2VuTG9jYXRpb24iLCJfZ2V0Q3VycmVudExvY2F0aW9uIiwic3RhcnRPZmZzZXQiLCJlbmRPZmZzZXQiLCJfYXR0YWNoQ3VycmVudEF0dHJMb2NhdGlvbkluZm8iLCJsb2NhdGlvbiIsIm1ldGhvZHMiLCJtb2RlTmFtZSIsIkxvY2F0aW9uSW5mb09wZW5FbGVtZW50U3RhY2tNaXhpbiIsIm9uSXRlbVBvcCIsIkxvY2F0aW9uSW5mb1BhcnNlck1peGluIiwicGFyc2VyIiwibGFzdFN0YXJ0VGFnVG9rZW4iLCJsYXN0Rm9zdGVyUGFyZW50aW5nTG9jYXRpb24iLCJfc2V0U3RhcnRMb2NhdGlvbiIsIl9fbG9jYXRpb24iLCJzdGFydFRhZyIsIl9zZXRFbmRMb2NhdGlvbiIsImNsb3NpbmdUb2tlbiIsImxvYyIsImN0TG9jIiwiZW5kVGFnIiwiX2Jvb3RzdHJhcCIsImZyYWdtZW50Q29udGV4dCIsIm9wZW5FbGVtZW50cyIsIl9ydW5QYXJzaW5nTG9vcCIsInNjcmlwdEhhbmRsZXIiLCJfcHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCIsIl9wcm9jZXNzVG9rZW4iLCJfc2V0RG9jdW1lbnRUeXBlIiwiZG9jdW1lbnRDaGlsZHJlbiIsImdldENoaWxkTm9kZXMiLCJjbkxlbmd0aCIsImlzRG9jdW1lbnRUeXBlTm9kZSIsIl9hdHRhY2hFbGVtZW50VG9UcmVlIiwiX2FwcGVuZEVsZW1lbnQiLCJuYW1lc3BhY2VVUkkiLCJfaW5zZXJ0RWxlbWVudCIsIl9pbnNlcnRUZW1wbGF0ZSIsIl9pbnNlcnRGYWtlUm9vdEVsZW1lbnQiLCJfYXBwZW5kQ29tbWVudE5vZGUiLCJfZmluZEZvc3RlclBhcmVudGluZ0xvY2F0aW9uIiwiX2luc2VydENoYXJhY3RlcnMiLCJoYXNGb3N0ZXJQYXJlbnQiLCJfc2hvdWxkRm9zdGVyUGFyZW50T25JbnNlcnRpb24iLCJ0ZXh0Tm9kZSIsImJlZm9yZUVsZW1lbnQiLCJET0NVTUVOVF9NT0RFIiwiY2hpbGROb2RlcyIsImNyZWF0ZVRleHROb2RlIiwiYXBwZW5kQ2hpbGQiLCJuZXdOb2RlIiwiaW5zZXJ0QmVmb3JlIiwicmVmZXJlbmNlTm9kZSIsInRlbXBsYXRlRWxlbWVudCIsImNvbnRlbnRFbGVtZW50IiwiZG9jdHlwZU5vZGUiLCJwcmV2Tm9kZSIsInJlY2lwaWVudCIsInJlY2lwaWVudEF0dHJzTWFwIiwiY29tbWVudE5vZGUiLCJRVUlSS1NfTU9ERV9QVUJMSUNfSURfUFJFRklYRVMiLCJRVUlSS1NfTU9ERV9OT19TWVNURU1fSURfUFVCTElDX0lEX1BSRUZJWEVTIiwiUVVJUktTX01PREVfUFVCTElDX0lEUyIsIkxJTUlURURfUVVJUktTX1BVQkxJQ19JRF9QUkVGSVhFUyIsIkxJTUlURURfUVVJUktTX1dJVEhfU1lTVEVNX0lEX1BVQkxJQ19JRF9QUkVGSVhFUyIsImVucXVvdGVEb2N0eXBlSWQiLCJoYXNQcmVmaXgiLCJwcmVmaXhlcyIsInByb3BlcnR5IiwiQVRUUlMiLCJNSU1FX1RZUEVTIiwiVEVYVF9IVE1MIiwiQVBQTElDQVRJT05fWE1MIiwiU1ZHX0FUVFJTX0FESlVTVE1FTlRfTUFQIiwiYXR0cmlidXRlbmFtZSIsImF0dHJpYnV0ZXR5cGUiLCJiYXNlZnJlcXVlbmN5IiwiYmFzZXByb2ZpbGUiLCJjYWxjbW9kZSIsImNsaXBwYXRodW5pdHMiLCJkaWZmdXNlY29uc3RhbnQiLCJlZGdlbW9kZSIsImZpbHRlcnVuaXRzIiwiZ2x5cGhyZWYiLCJncmFkaWVudHRyYW5zZm9ybSIsImdyYWRpZW50dW5pdHMiLCJrZXJuZWxtYXRyaXgiLCJrZXJuZWx1bml0bGVuZ3RoIiwia2V5cG9pbnRzIiwia2V5c3BsaW5lcyIsImtleXRpbWVzIiwibGVuZ3RoYWRqdXN0IiwibGltaXRpbmdjb25lYW5nbGUiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIsIm1hcmtlcndpZHRoIiwibWFza2NvbnRlbnR1bml0cyIsIm1hc2t1bml0cyIsIm51bW9jdGF2ZXMiLCJwYXRobGVuZ3RoIiwicGF0dGVybmNvbnRlbnR1bml0cyIsInBhdHRlcm50cmFuc2Zvcm0iLCJwYXR0ZXJudW5pdHMiLCJwb2ludHNhdHgiLCJwb2ludHNhdHkiLCJwb2ludHNhdHoiLCJwcmVzZXJ2ZWFscGhhIiwicHJlc2VydmVhc3BlY3RyYXRpbyIsInByaW1pdGl2ZXVuaXRzIiwicmVmeCIsInJlZnkiLCJyZXBlYXRjb3VudCIsInJlcGVhdGR1ciIsInJlcXVpcmVkZXh0ZW5zaW9ucyIsInJlcXVpcmVkZmVhdHVyZXMiLCJzcGVjdWxhcmNvbnN0YW50Iiwic3BlY3VsYXJleHBvbmVudCIsInNwcmVhZG1ldGhvZCIsInN0YXJ0b2Zmc2V0Iiwic3RkZGV2aWF0aW9uIiwic3RpdGNodGlsZXMiLCJzdXJmYWNlc2NhbGUiLCJzeXN0ZW1sYW5ndWFnZSIsInRhYmxldmFsdWVzIiwidGFyZ2V0eCIsInRhcmdldHkiLCJ0ZXh0bGVuZ3RoIiwidmlld2JveCIsInZpZXd0YXJnZXQiLCJ4Y2hhbm5lbHNlbGVjdG9yIiwieWNoYW5uZWxzZWxlY3RvciIsInpvb21hbmRwYW4iLCJYTUxfQVRUUlNfQURKVVNUTUVOVF9NQVAiLCJ4bGluazphY3R1YXRlIiwibmFtZXNwYWNlIiwieGxpbms6YXJjcm9sZSIsInhsaW5rOmhyZWYiLCJ4bGluazpyb2xlIiwieGxpbms6c2hvdyIsInhsaW5rOnRpdGxlIiwieGxpbms6dHlwZSIsInhtbDpiYXNlIiwieG1sOmxhbmciLCJ4bWw6c3BhY2UiLCJ4bWxucyIsInhtbG5zOnhsaW5rIiwiU1ZHX1RBR19OQU1FU19BREpVU1RNRU5UX01BUCIsImFsdGdseXBoIiwiYWx0Z2x5cGhkZWYiLCJhbHRnbHlwaGl0ZW0iLCJhbmltYXRlY29sb3IiLCJhbmltYXRlbW90aW9uIiwiYW5pbWF0ZXRyYW5zZm9ybSIsImNsaXBwYXRoIiwiZmVibGVuZCIsImZlY29sb3JtYXRyaXgiLCJmZWNvbXBvbmVudHRyYW5zZmVyIiwiZmVjb21wb3NpdGUiLCJmZWNvbnZvbHZlbWF0cml4IiwiZmVkaWZmdXNlbGlnaHRpbmciLCJmZWRpc3BsYWNlbWVudG1hcCIsImZlZGlzdGFudGxpZ2h0IiwiZmVmbG9vZCIsImZlZnVuY2EiLCJmZWZ1bmNiIiwiZmVmdW5jZyIsImZlZnVuY3IiLCJmZWdhdXNzaWFuYmx1ciIsImZlaW1hZ2UiLCJmZW1lcmdlIiwiZmVtZXJnZW5vZGUiLCJmZW1vcnBob2xvZ3kiLCJmZW9mZnNldCIsImZlcG9pbnRsaWdodCIsImZlc3BlY3VsYXJsaWdodGluZyIsImZlc3BvdGxpZ2h0IiwiZmV0aWxlIiwiZmV0dXJidWxlbmNlIiwiZm9yZWlnbm9iamVjdCIsImxpbmVhcmdyYWRpZW50IiwicmFkaWFsZ3JhZGllbnQiLCJ0ZXh0cGF0aCIsIkVYSVRTX0ZPUkVJR05fQ09OVEVOVCIsInN0YXJ0VGFnVG9rZW4iLCJhZGp1c3RlZEF0dHJOYW1lIiwiYWRqdXN0ZWRBdHRyRW50cnkiLCJhZGp1c3RlZFRhZ05hbWUiLCJmb3JlaWduTlMiLCJpc0h0bWxJbnRlZ3JhdGlvblBvaW50IiwiaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludCIsIkRFRkFVTFRfT1BUSU9OUyIsImxvY2F0aW9uSW5mbyIsImRlZmF1bHRUcmVlQWRhcHRlciIsIkhJRERFTl9JTlBVVF9UWVBFIiwiQUFfT1VURVJfTE9PUF9JVEVSIiwiQUFfSU5ORVJfTE9PUF9JVEVSIiwiQkVGT1JFX0hUTUxfTU9ERSIsIkJFRk9SRV9IRUFEX01PREUiLCJJTl9IRUFEX01PREUiLCJBRlRFUl9IRUFEX01PREUiLCJJTl9CT0RZX01PREUiLCJURVhUX01PREUiLCJJTl9UQUJMRV9NT0RFIiwiSU5fVEFCTEVfVEVYVF9NT0RFIiwiSU5fQ0FQVElPTl9NT0RFIiwiSU5fQ09MVU1OX0dST1VQX01PREUiLCJJTl9UQUJMRV9CT0RZX01PREUiLCJJTl9ST1dfTU9ERSIsIklOX0NFTExfTU9ERSIsIklOX1NFTEVDVF9NT0RFIiwiSU5fU0VMRUNUX0lOX1RBQkxFX01PREUiLCJJTl9URU1QTEFURV9NT0RFIiwiQUZURVJfQk9EWV9NT0RFIiwiSU5fRlJBTUVTRVRfTU9ERSIsIkFGVEVSX0ZSQU1FU0VUX01PREUiLCJBRlRFUl9BRlRFUl9CT0RZX01PREUiLCJBRlRFUl9BRlRFUl9GUkFNRVNFVF9NT0RFIiwiSU5TRVJUSU9OX01PREVfUkVTRVRfTUFQIiwiVEVNUExBVEVfSU5TRVJUSU9OX01PREVfU1dJVENIX01BUCIsInRva2VuSW5Jbml0aWFsTW9kZSIsImlnbm9yZVRva2VuIiwiYXBwZW5kQ29tbWVudCIsInAiLCJkb2N0eXBlIiwiZ2V0RG9jdW1lbnRNb2RlIiwic2V0RG9jdW1lbnRNb2RlIiwiaW5zZXJ0aW9uTW9kZSIsInRva2VuQmVmb3JlSHRtbCIsInRva2VuQmVmb3JlSGVhZCIsInN0YXJ0VGFnSW5Cb2R5IiwiaGVhZEVsZW1lbnQiLCJ0b2tlbkluSGVhZCIsImluc2VydENoYXJhY3RlcnMiLCJzdGFydFRhZ0luSGVhZCIsImVuZFRhZ0luSGVhZCIsInRva2VuQWZ0ZXJIZWFkIiwiZnJhbWVzZXRPayIsImNoYXJhY3RlckluQm9keSIsIndoaXRlc3BhY2VDaGFyYWN0ZXJJbkJvZHkiLCJlbmRUYWdJbkJvZHkiLCJlb2ZJbkJvZHkiLCJwZW5kaW5nU2NyaXB0Iiwib3JpZ2luYWxJbnNlcnRpb25Nb2RlIiwiY2hhcmFjdGVySW5UYWJsZSIsInN0YXJ0VGFnSW5UYWJsZSIsImVuZFRhZ0luVGFibGUiLCJwZW5kaW5nQ2hhcmFjdGVyVG9rZW5zIiwiaGFzTm9uV2hpdGVzcGFjZVBlbmRpbmdDaGFyYWN0ZXJUb2tlbiIsInRva2VuSW5UYWJsZSIsImFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cyIsInRva2VuSW5Db2x1bW5Hcm91cCIsIl9pbnNlcnRGYWtlRWxlbWVudCIsIl9jbG9zZVRhYmxlQ2VsbCIsInN0YXJ0VGFnSW5TZWxlY3QiLCJlbmRUYWdJblNlbGVjdCIsIl9yZXNldEluc2VydGlvbk1vZGUiLCJuZXdJbnNlcnRpb25Nb2RlIiwiX3BvcFRtcGxJbnNlcnRpb25Nb2RlIiwiX3B1c2hUbXBsSW5zZXJ0aW9uTW9kZSIsImVvZkluVGVtcGxhdGUiLCJ0b2tlbkFmdGVyQm9keSIsInN0b3BQYXJzaW5nIiwidG9rZW5BZnRlckFmdGVyQm9keSIsImFwcGVuZENvbW1lbnRUb0RvY3VtZW50IiwiZGVmYXVsdHMiLCJtZXJnZWQiLCJvcHRPYmoiLCJtZXJnZU9wdGlvbnMiLCJhYU9idGFpbkZvcm1hdHRpbmdFbGVtZW50RW50cnkiLCJmb3JtYXR0aW5nRWxlbWVudEVudHJ5IiwiZ2VuZXJpY0VuZFRhZ0luQm9keSIsImFhT2J0YWluRnVydGhlc3RCbG9jayIsImZ1cnRoZXN0QmxvY2siLCJfaXNTcGVjaWFsRWxlbWVudCIsImFhSW5uZXJMb29wIiwiZm9ybWF0dGluZ0VsZW1lbnQiLCJsYXN0RWxlbWVudCIsIm5leHRFbGVtZW50IiwiZWxlbWVudEVudHJ5IiwiY291bnRlck92ZXJmbG93IiwiYWFSZWNyZWF0ZUVsZW1lbnRGcm9tRW50cnkiLCJkZXRhY2hOb2RlIiwiY3JlYXRlRWxlbWVudCIsImFhSW5zZXJ0TGFzdE5vZGVJbkNvbW1vbkFuY2VzdG9yIiwiY29tbW9uQW5jZXN0b3IiLCJfaXNFbGVtZW50Q2F1c2VzRm9zdGVyUGFyZW50aW5nIiwiX2Zvc3RlclBhcmVudEVsZW1lbnQiLCJhYVJlcGxhY2VGb3JtYXR0aW5nRWxlbWVudCIsIl9hZG9wdE5vZGVzIiwiY2FsbEFkb3B0aW9uQWdlbmN5Iiwic3RvcHBlZCIsIl9zd2l0Y2hUb1RleHRQYXJzaW5nIiwiX3JlY29uc3RydWN0QWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzIiwiYWRkcmVzc1N0YXJ0VGFnSW5Cb2R5IiwiX2Nsb3NlUEVsZW1lbnQiLCJwcmVTdGFydFRhZ0luQm9keSIsImJTdGFydFRhZ0luQm9keSIsImFwcGxldFN0YXJ0VGFnSW5Cb2R5IiwiYXJlYVN0YXJ0VGFnSW5Cb2R5IiwicGFyYW1TdGFydFRhZ0luQm9keSIsIm5vZW1iZWRTdGFydFRhZ0luQm9keSIsIm9wdGdyb3VwU3RhcnRUYWdJbkJvZHkiLCJyYlN0YXJ0VGFnSW5Cb2R5IiwiZ2VuZXJpY1N0YXJ0VGFnSW5Cb2R5IiwiYWN0aXZlRWxlbWVudEVudHJ5IiwiYVN0YXJ0VGFnSW5Cb2R5IiwibnVtYmVyZWRIZWFkZXJTdGFydFRhZ0luQm9keSIsImVsZW1lbnRUbiIsImNsb3NlVG4iLCJsaXN0SXRlbVN0YXJ0VGFnSW5Cb2R5IiwiaHJTdGFydFRhZ0luQm9keSIsInJ0U3RhcnRUYWdJbkJvZHkiLCJ4bXBTdGFydFRhZ0luQm9keSIsImZvcmVpZ25Db250ZW50IiwiYWRqdXN0VG9rZW5TVkdBdHRycyIsImFkanVzdFRva2VuWE1MQXR0cnMiLCJzdmdTdGFydFRhZ0luQm9keSIsImFkb3B0QXR0cmlidXRlcyIsImh0bWxTdGFydFRhZ0luQm9keSIsImJvZHlFbGVtZW50IiwiYm9keVN0YXJ0VGFnSW5Cb2R5IiwiaW5UZW1wbGF0ZSIsImZvcm1FbGVtZW50IiwiZm9ybVN0YXJ0VGFnSW5Cb2R5Iiwibm9iclN0YXJ0VGFnSW5Cb2R5IiwiYWRqdXN0VG9rZW5NYXRoTUxBdHRycyIsIm1hdGhTdGFydFRhZ0luQm9keSIsIm1lbnVTdGFydFRhZ0luQm9keSIsInRhYmxlU3RhcnRUYWdJbkJvZHkiLCJpbnB1dFR5cGUiLCJpbnB1dFN0YXJ0VGFnSW5Cb2R5IiwiaW1hZ2VTdGFydFRhZ0luQm9keSIsImJ1dHRvblN0YXJ0VGFnSW5Cb2R5IiwiaWZyYW1lU3RhcnRUYWdJbkJvZHkiLCJzZWxlY3RTdGFydFRhZ0luQm9keSIsIm1lbnVpdGVtU3RhcnRUYWdJbkJvZHkiLCJmcmFtZXNldFN0YXJ0VGFnSW5Cb2R5IiwidGV4dGFyZWFTdGFydFRhZ0luQm9keSIsInBsYWludGV4dFN0YXJ0VGFnSW5Cb2R5IiwiYWRkcmVzc0VuZFRhZ0luQm9keSIsImFwcGxldEVuZFRhZ0luQm9keSIsInBFbmRUYWdJbkJvZHkiLCJsaUVuZFRhZ0luQm9keSIsImRkRW5kVGFnSW5Cb2R5IiwibnVtYmVyZWRIZWFkZXJFbmRUYWdJbkJvZHkiLCJickVuZFRhZ0luQm9keSIsImJvZHlFbmRUYWdJbkJvZHkiLCJodG1sRW5kVGFnSW5Cb2R5IiwiZm9ybUVuZFRhZ0luQm9keSIsInRtcGxJbnNlcnRpb25Nb2RlU3RhY2tUb3AiLCJjdXJUbiIsInRkU3RhcnRUYWdJblRhYmxlIiwiY29sU3RhcnRUYWdJblRhYmxlIiwiZm9ybVN0YXJ0VGFnSW5UYWJsZSIsInRhYmxlU3RhcnRUYWdJblRhYmxlIiwidGJvZHlTdGFydFRhZ0luVGFibGUiLCJpbnB1dFN0YXJ0VGFnSW5UYWJsZSIsImNhcHRpb25TdGFydFRhZ0luVGFibGUiLCJjb2xncm91cFN0YXJ0VGFnSW5UYWJsZSIsInNhdmVkRm9zdGVyUGFyZW50aW5nU3RhdGUiLCJmb3N0ZXJQYXJlbnRpbmdFbmFibGVkIiwiX3Byb2Nlc3NUb2tlbkluQm9keU1vZGUiLCJwcmV2T3BlbkVsZW1lbnQiLCJwcmV2T3BlbkVsZW1lbnRUbiIsInBhcnNlIiwiY3JlYXRlRG9jdW1lbnQiLCJwYXJzZUZyYWdtZW50IiwiZG9jdW1lbnRNb2NrIiwiX2luaXRUb2tlbml6ZXJGb3JGcmFnbWVudFBhcnNpbmciLCJfZmluZEZvcm1JbkZyYWdtZW50Q29udGV4dCIsInJvb3RFbGVtZW50IiwiZ2V0Rmlyc3RDaGlsZCIsImZyYWdtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsInRtcGxJbnNlcnRpb25Nb2RlU3RhY2siLCJjdXJyZW50VG1wbEluc2VydGlvbk1vZGUiLCJfc2V0dXBUb2tlbml6ZXJDREFUQU1vZGUiLCJfcHJvY2Vzc0lucHV0VG9rZW4iLCJydW5QYXJzaW5nTG9vcEZvckN1cnJlbnRDaHVuayIsIndyaXRlQ2FsbGJhY2siLCJzY3JpcHQiLCJfZ2V0QWRqdXN0ZWRDdXJyZW50RWxlbWVudCIsIl9pc0ludGVncmF0aW9uUG9pbnQiLCJuZXh0VG9rZW5pemVyU3RhdGUiLCJzd2l0Y2hUb1BsYWludGV4dFBhcnNpbmciLCJnZXRQYXJlbnROb2RlIiwic2V0RG9jdW1lbnRUeXBlIiwidG1wbCIsInNldFRlbXBsYXRlQ29udGVudCIsImNyZWF0ZUNvbW1lbnROb2RlIiwiX2Zvc3RlclBhcmVudFRleHQiLCJpbnNlcnRUZXh0IiwiZG9ub3IiLCJfc2hvdWxkUHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCIsImlzQ2hhcmFjdGVyVG9rZW4iLCJjaGFyYWN0ZXJJbkZvcmVpZ25Db250ZW50IiwibnVsbENoYXJhY3RlckluRm9yZWlnbkNvbnRlbnQiLCJjYXVzZXNFeGl0IiwiY3VycmVudE5zIiwiYWRqdXN0VG9rZW5TVkdUYWdOYW1lIiwic3RhcnRUYWdJbkZvcmVpZ25Db250ZW50IiwiZW5kVGFnSW5Gb3JlaWduQ29udGVudCIsImlzSW50ZWdyYXRpb25Qb2ludCIsImxpc3RMZW5ndGgiLCJ1bm9wZW5JZHgiLCJsYXN0IiwiX3Jlc2V0SW5zZXJ0aW9uTW9kZUZvclNlbGVjdCIsInNlbGVjdElkeCIsImFuY2VzdG9yIiwib3BlbkVsZW1lbnQiLCJpbnNlcnRUZXh0QmVmb3JlIiwiZ2V0UHJvcGVydHlJbmZvcm1hdGlvbiIsInByb3BlcnR5Q29uZmlnIiwiYWJiciIsImFjY2VwdCIsImFjY2VwdENoYXJzZXQiLCJhY2Nlc3NLZXkiLCJhY3Rpb24iLCJhbGxvd0Z1bGxTY3JlZW4iLCJVU0VfQVRUUklCVVRFIiwiYWxsb3dUcmFuc3BhcmVuY3kiLCJhcyIsImFzeW5jIiwiYXV0b0NvbXBsZXRlIiwiYXV0b0ZvY3VzIiwiYXV0b1BsYXkiLCJjYXB0dXJlIiwiY2VsbFBhZGRpbmciLCJjZWxsU3BhY2luZyIsImNoYWxsZW5nZSIsImNoYXJTZXQiLCJVU0VfUFJPUEVSVFkiLCJjaXRlIiwiY29scyIsImNvbFNwYW4iLCJjb21tYW5kIiwiY29udGVudEVkaXRhYmxlIiwiY29udGV4dE1lbnUiLCJjb250cm9scyIsImNvbnRyb2xzTGlzdCIsImNvb3JkcyIsIk5VTUVSSUNfVkFMVUUiLCJjcm9zc09yaWdpbiIsImRhdGVUaW1lIiwiZGVmZXIiLCJkaXJOYW1lIiwiZG93bmxvYWQiLCJkcmFnZ2FibGUiLCJkcm9wem9uZSIsImVuY1R5cGUiLCJmb3JtIiwiZm9ybUFjdGlvbiIsImZvcm1FbmNUeXBlIiwiZm9ybU1ldGhvZCIsImZvcm1Ob1ZhbGlkYXRlIiwiZm9ybVRhcmdldCIsImZyYW1lQm9yZGVyIiwiaGVhZGVycyIsImhlaWdodCIsImhpZGRlbiIsImhyZWZMYW5nIiwiaHRtbEZvciIsImh0dHBFcXVpdiIsImlucHV0TW9kZSIsImlzTWFwIiwia2V5UGFyYW1zIiwia2V5VHlwZSIsImtpbmQiLCJsYWJlbCIsImxvb3AiLCJtYW5pZmVzdCIsIm1hcmdpbkhlaWdodCIsIm1hcmdpbldpZHRoIiwibWF4TGVuZ3RoIiwibWVkaWEiLCJtZWRpYUdyb3VwIiwibWVudSIsIm1ldGhvZCIsIm1pbkxlbmd0aCIsIm11bHRpcGxlIiwibXV0ZWQiLCJub25jZSIsIm5vVmFsaWRhdGUiLCJvcHRpbXVtIiwicGluZyIsInBsYXlzSW5saW5lIiwicG9zdGVyIiwicHJlbG9hZCIsInByb2ZpbGUiLCJyYWRpb0dyb3VwIiwicmVhZE9ubHkiLCJyZWZlcnJlclBvbGljeSIsInJlbCIsIlNQQUNFX1NFUEFSQVRFRCIsInJlcXVpcmVkIiwicmV2ZXJzZWQiLCJyb2xlIiwicm93U3BhbiIsInNhbmRib3giLCJzY29wZSIsInNjb3BlZCIsInNjcm9sbGluZyIsInNlYW1sZXNzIiwic2VsZWN0ZWQiLCJzaGFwZSIsInNpemVzIiwic2xvdCIsInNvcnRhYmxlIiwic29ydGVkIiwic3BhbiIsInNwZWxsQ2hlY2siLCJzcmNEb2MiLCJzcmNMYW5nIiwic3JjU2V0Iiwic3VtbWFyeSIsInRhYkluZGV4IiwidHJhbnNsYXRlIiwidHlwZU11c3RNYXRjaCIsInVzZU1hcCIsInZvbHVtZSIsIndpZHRoIiwid21vZGUiLCJhdXRvQ2FwaXRhbGl6ZSIsImF1dG9Db3JyZWN0IiwiYXV0b1NhdmUiLCJpdGVtUHJvcCIsIml0ZW1TY29wZSIsIml0ZW1UeXBlIiwiaXRlbUlEIiwiaXRlbVJlZiIsInNlY3VyaXR5IiwidW5zZWxlY3RhYmxlIiwieG1sTGFuZyIsInhtbEJhc2UiLCJwcm9wZXJ0eVRvQXR0cmlidXRlTWFwcGluZyIsInhtbGJhc2UiLCJ4bWxsYW5nIiwiaHRtbGZvciIsImh0dHBlcXVpdiIsImFjY2VwdGNoYXJzZXQiLCJpbmZvcm1hdGlvbiIsImxvd2VyIiwicHJvcGVydHlOYW1lIiwibXVzdFVzZUF0dHJpYnV0ZSIsIm11c3RVc2VQcm9wZXJ0eSIsIm92ZXJsb2FkZWRCb29sZWFuIiwibnVtZXJpYyIsInBvc2l0aXZlTnVtZXJpYyIsImNvbW1hU2VwYXJhdGVkIiwic3BhY2VTZXBhcmF0ZWQiLCJpbnNlbnNpdGl2ZSIsImJpdG1hc2siLCJpc0xhc3RDaGFyTG93ZXIiLCJwcmVzZXJ2ZUNhbWVsQ2FzZSIsImluZGljZXMiLCJ0b1Bvc2l0aW9uIiwib2Zmc2V0VG9Qb3NpdGlvbkZhY3RvcnkiLCJ0b09mZnNldCIsInBvc2l0aW9uVG9PZmZzZXRGYWN0b3J5Iiwic2VsZWN0b3IiLCJkb3QiLCJlbXB0eSIsIndoaXRlU3BhY2UiLCJzcGFjZSIsIkNfQ09NTUEiLCJwYWRMZWZ0IiwicGFkUmlnaHQiLCJzcGFjZXMiLCJjb21tYXMiLCJwYXJzZVNlbGVjdG9yIiwiaXNOb2RlIiwiYWRkUHJvcGVydHkiLCJhZGRDaGlsZCIsImluZm8iLCJwcm9wZXJ0eUluZm9ybWF0aW9uIiwicGFyc2VQcmltaXRpdmUiLCJjYW1lbGNhc2UiLCJtZXNzYWdlcyIsInRyYW5zZm9ybSIsInZmaWxlTG9jYXRpb24iLCJ2ZXJib3NlIiwiI2RvY3VtZW50IiwiI2RvY3VtZW50LWZyYWdtZW50IiwiI3RleHQiLCIjY29tbWVudCIsIiNkb2N1bWVudFR5cGUiLCJwdWJsaWMiLCJzeXN0ZW0iLCJxdWlya3MiLCJxdWlya3NNb2RlIiwiYXR0ciIsImRpcnR5IiwicmVmZXJlbmNlIiwicHJvcFBvc2l0aW9ucyIsIm9wZW5pbmciLCJLRUJBQl9SRUdFWCIsIlJFVkVSU0VfUkVHRVgiLCJ0b1N0ciIsImlzQXJncyIsImNhbGxlZSIsImhhcyIsImlzRW51bWVyYWJsZSIsImhhc0RvbnRFbnVtQnVnIiwiaGFzUHJvdG9FbnVtQnVnIiwiZG9udEVudW1zIiwiZXF1YWxzQ29uc3RydWN0b3JQcm90b3R5cGUiLCJleGNsdWRlZEtleXMiLCIkY29uc29sZSIsIiRleHRlcm5hbCIsIiRmcmFtZSIsIiRmcmFtZUVsZW1lbnQiLCIkZnJhbWVzIiwiJGlubmVySGVpZ2h0IiwiJGlubmVyV2lkdGgiLCIkb3V0ZXJIZWlnaHQiLCIkb3V0ZXJXaWR0aCIsIiRwYWdlWE9mZnNldCIsIiRwYWdlWU9mZnNldCIsIiRwYXJlbnQiLCIkc2Nyb2xsTGVmdCIsIiRzY3JvbGxUb3AiLCIkc2Nyb2xsWCIsIiRzY3JvbGxZIiwiJHNlbGYiLCIkd2Via2l0SW5kZXhlZERCIiwiJHdlYmtpdFN0b3JhZ2VJbmZvIiwiJHdpbmRvdyIsImhhc0F1dG9tYXRpb25FcXVhbGl0eUJ1ZyIsImsiLCJrZXlzU2hpbSIsIm9iamVjdCIsImlzQXJndW1lbnRzIiwidGhlS2V5cyIsInNraXBQcm90byIsInNraXBDb25zdHJ1Y3RvciIsImVxdWFsc0NvbnN0cnVjdG9yUHJvdG90eXBlSWZOb3RCdWdneSIsInNoaW0iLCJvcmlnaW5hbEtleXMiLCJoYXNPd24iLCJoYXNTeW1ib2xzIiwiU3ltYm9sIiwic3VwcG9ydHNEZXNjcmlwdG9ycyIsImFyZVByb3BlcnR5RGVzY3JpcHRvcnNTdXBwb3J0ZWQiLCJwcmVkaWNhdGUiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJlZGljYXRlcyIsImZvcmVhY2giLCJpbXBsZW1lbnRhdGlvbiIsImdldFBvbHlmaWxsIiwicG9seWZpbGwiLCJkZWZpbmUiLCJyIiwidiIsInJlYWN0IiwidmRvbSIsInRvSCIsImVsZW1lbnRzIiwiaHlwZXJzY3JpcHQiLCJkZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9ucyIsImNhbWVsQ2FzZSIsInBhcnNlU3R5bGUiLCJjbGVhbnVwIiwic3VicHJvcCIsIm5hbiIsInBhcmFtQ2FzZSIsIiQwIiwiJDEiLCJpbnZhbGlkIiwidW5rbm93biIsIkZ1bmN0aW9uIiwibmF0aXZlSXNBcnJheSIsImdhcGxlc3MiLCJ6d2l0Y2giLCJtYXB6IiwiY3VzdG9tUHJvcHMiLCJzaGFsbG93IiwiYXR0cmlidXRlU3BhY2VzIiwiY29tbWVudCIsIm5hbWVzcGFjZXMiLCJtYXRobWwiLCJzdmciLCJ4bGluayIsInhtbCIsInBhdGNoIiwiRE9DVU1FTlQiLCJGUkFHTUVOVCIsImluZmVyTW9kZSIsInZvaWRzIiwidG9QYXJzZTUiLCJwNSIsInJhdyIsImZyb21QYXJzZTUiLCJtb2NrIiwiZG9jIiwidXRpbCIsIm1vZHVsZXMiLCJpbnN0YWxsZWRNb2R1bGVzIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiZ2V0dGVyIiwiX193ZWJwYWNrX2V4cG9ydHNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfc2xpY2VkVG9BcnJheV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfaGVscGVyc19zbGljZWRUb0FycmF5X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX2dldF9pdGVyYXRvcl9fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2RvbVRyZWVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fZm9udE1ldHJpY3NfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3ltYm9sc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X191dGlsc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19zdHJldGNoeV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X191bml0c19fIiwibWFpbml0TGV0dGVycyIsImxvb2t1cFN5bWJvbCIsImZvbnRGYW1pbHkiLCJtZXRyaWNzIiwiZ2V0Q2hhcmFjdGVyTWV0cmljcyIsIm1ha2VTeW1ib2wiLCJzeW1ib2xOb2RlIiwic2tldyIsIndhcm4iLCJtYXhGb250U2l6ZSIsInNpemVNdWx0aXBsaWVyIiwiaXNUaWdodCIsImNvbG9yIiwiZ2V0Q29sb3IiLCJtYXRoRGVmYXVsdCIsImZvbnRMb29rdXAiLCJtYXRoaXQiLCJmb250TmFtZSIsImZvbnRDbGFzcyIsImZvbnQiLCJfZm9udE5hbWUiLCJyZXRyaWV2ZVRleHRGb250TmFtZSIsImZvbnRXZWlnaHQiLCJmb250U2hhcGUiLCJfZm9udE5hbWUyIiwic2l6ZUVsZW1lbnRGcm9tQ2hpbGRyZW4iLCJlbGVtIiwiX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiIsIl9kaWRJdGVyYXRvckVycm9yIiwiX2l0ZXJhdG9yRXJyb3IiLCJfc3RlcCIsIl9pdGVyYXRvciIsImRvbmUiLCJyZXR1cm4iLCJtYWtlU3BhbiIsInJldHJpZXZlQmFzZUZvbnROYW1lIiwicmV0cmlldmVGb250U3R5bGVzTmFtZSIsImJhc2VGb250TmFtZSIsImZvbnRTdHlsZXNOYW1lIiwiZm9udE1hcCIsIm1hdGhiZiIsIm1hdGhybSIsInRleHRpdCIsIm1hdGhiYiIsIm1hdGhjYWwiLCJtYXRoZnJhayIsIm1hdGhzY3IiLCJtYXRoc2YiLCJtYXRodHQiLCJzdmdEYXRhIiwidmVjIiwibWF0aHN5bSIsIm1ha2VMaW5lU3BhbiIsImxpbmVIZWlnaHQiLCJmb250TWV0cmljcyIsImRlZmF1bHRSdWxlVGhpY2tuZXNzIiwicnVsZVNwYW4iLCJtYWtlQW5jaG9yIiwiYW5jaG9yIiwibWFrZUZyYWdtZW50IiwiZG9jdW1lbnRGcmFnbWVudCIsIm1ha2VWTGlzdCIsInBhcmFtcyIsIl9nZXRWTGlzdENoaWxkcmVuQW5kRCIsInBvc2l0aW9uVHlwZSIsIm9sZENoaWxkcmVuIiwiX2NoaWxkcmVuIiwiX2RlcHRoIiwiY3VyclBvcyIsImRpZmYiLCJfc2l6ZSIsImJvdHRvbSIsInBvc2l0aW9uRGF0YSIsIl9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yIiwiX2RpZEl0ZXJhdG9yRXJyb3IyIiwiX2l0ZXJhdG9yRXJyb3IyIiwiX3N0ZXAyIiwiX2l0ZXJhdG9yMiIsImdldFZMaXN0Q2hpbGRyZW5BbmREZXB0aCIsInBzdHJ1dFNpemUiLCJfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMyIsIl9kaWRJdGVyYXRvckVycm9yMyIsIl9pdGVyYXRvckVycm9yMyIsIl9zdGVwMyIsIl9pdGVyYXRvcjMiLCJfZWxlbSIsInBzdHJ1dCIsInJlYWxDaGlsZHJlbiIsIm1pblBvcyIsIm1heFBvcyIsIl9pdGVyYXRvck5vcm1hbENvbXBsZXRpb240IiwiX2RpZEl0ZXJhdG9yRXJyb3I0IiwiX2l0ZXJhdG9yRXJyb3I0IiwiX3N0ZXA0IiwiX2l0ZXJhdG9yNCIsIl9jaGlsZCIsIl9lbGVtMiIsIndyYXBwZXJDbGFzc2VzIiwid3JhcHBlclN0eWxlIiwiY2hpbGRXcmFwIiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Iiwidmxpc3QiLCJkZXB0aFN0cnV0IiwidG9wU3RydXQiLCJ2dGFibGUiLCJtYWtlT3JkIiwiZ3JvdXAiLCJfZm9udE5hbWUzIiwiZm9udENsYXNzZXMiLCJmb250RGF0YSIsImJvbGRzeW1ib2wiLCJfZm9udERhdGEiLCJtYWtlVmVyYiIsImJvZHkiLCJzdGFyIiwibWFrZUdsdWUiLCJtZWFzdXJlbWVudCIsInJ1bGUiLCJzdGF0aWNTdmciLCJfc3ZnRGF0YSR2YWx1ZSIsInBhdGhOYW1lIiwicGF0aCIsInBhdGhOb2RlIiwic3ZnTm9kZSIsInZpZXdCb3giLCJwcmVzZXJ2ZUFzcGVjdFJhdGlvIiwidHJ5Q29tYmluZUNoYXJzIiwidHJ5Q29tYmluZSIsInNwYWNpbmdGdW5jdGlvbnMiLCJcXHFxdWFkIiwiXFxxdWFkIiwiXFxlbnNwYWNlIiwiXFw7IiwiXFw6IiwiXFwsIiwiXFwhIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19nZXRfaXRlcmF0b3JfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfZ2V0X2l0ZXJhdG9yX19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY2xhc3NDYWxsQ2hlY2tfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jcmVhdGVDbGFzc19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX3V0aWxzX18iLCJNYXRoTm9kZSIsInNldEF0dHJpYnV0ZSIsInRvTm9kZSIsIm1hcmt1cCIsInRvTWFya3VwIiwidG9UZXh0IiwiVGV4dE5vZGUiLCJtYWtlVGV4dCIsImdyb3VwVHlwZXMiLCJidWlsZEV4cHJlc3Npb24iLCJidWlsZEdyb3VwIiwidGV4RXhwcmVzc2lvbiIsIndyYXBwZXIiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX21hdGhNTFRyZWVfXyIsImFubm90YXRpb24iLCJzZW1hbnRpY3MiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkQ29tbW9uX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2ZvbnRNZXRyaWNzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX1BhcnNlRXJyb3JfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fU3R5bGVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fc3ltYm9sc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X191dGlsc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X19zdHJldGNoeV9fIiwiZ2V0VmFyaWFudCIsImRlZmF1bHRWYXJpYW50IiwibWkiLCJtbiIsIm10ZXh0IiwibWF0aG9yZCIsInRleHRvcmQiLCJiaW4iLCJwdW5jdCIsIm9yZGdyb3VwIiwic3Vwc3ViIiwiaXNCcmFjZSIsImlzT3ZlciIsInN1cCIsIl9iYXNlMiIsImxpbWl0cyIsIkRJU1BMQVkiLCJfYmFzZSIsInNwYWNpbmciLCJob3JpekJyYWNlIiwiYWNjZW50Tm9kZSIsIm1hdGhNTG5vZGUiLCJ4QXJyb3ciLCJhcnJvd05vZGUiLCJsb3dlck5vZGUiLCJ1cHBlck5vZGUiLCJiZWxvdyIsIm1jbGFzcyIsInJhaXNlYm94IiwiZHkiLCJ1bml0IiwiZ3JvdXBzIiwicmVtb3ZlVW5uZWNlc3NhcnlSb3ciLCJfZnVuY3Rpb25zIiwibmFtZXMiLCJoYW5kbGVyIiwiaHRtbEJ1aWxkZXIiLCJtYXRobWxCdWlsZGVyIiwibnVtQXJncyIsImFyZ1R5cGVzIiwiZ3JlZWRpbmVzcyIsImFsbG93ZWRJblRleHQiLCJhbGxvd2VkSW5NYXRoIiwibnVtT3B0aW9uYWxBcmdzIiwiaW5maXgiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2J1aWxkSFRNTF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19idWlsZE1hdGhNTF9fIiwib3JkYXJndW1lbnQiLCJtYWtlTnVsbERlbGltaXRlciIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfanNvbl9zdHJpbmdpZnlfX19kZWZhdWx0IiwiYm90dG9tU3RydXQiLCJ2ZXJ0aWNhbEFsaWduIiwiaHRtbE5vZGUiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9jb3JlX2pzX2pzb25fc3RyaW5naWZ5X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9oZWxwZXJzX3RvQ29uc3VtYWJsZUFycmF5X19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fUGFyc2VFcnJvcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19TdHlsZV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19idWlsZENvbW1vbl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19kb21UcmVlX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX3VuaXRzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzdfX3V0aWxzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzhfX3N0cmV0Y2h5X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX3NwYWNpbmdEYXRhX18iLCJpc0JpbkxlZnRDYW5jZWxsZXIiLCJpc1JlYWxHcm91cCIsImdldFR5cGVPZkRvbVRyZWUiLCJpc0JpblJpZ2h0Q2FuY2VsbGVyIiwic3R5bGVNYXAiLCJkaXNwbGF5IiwiVEVYVCIsInNjcmlwdHNjcmlwdCIsIlNDUklQVFNDUklQVCIsInN1cnJvdW5kaW5nIiwicmF3R3JvdXBzIiwibm9uU3BhY2VzIiwiX2kiLCJnZXRPdXRlcm1vc3ROb2RlIiwiX2kyIiwiX2xlZnQiLCJfcmlnaHQiLCJpc0xlZnRUaWdodCIsImdsdWVPcHRpb25zIiwiaGF2aW5nU2l6ZSIsImhhdmluZ1N0eWxlIiwiX2kzIiwicGFkZGluZ0xlZnQiLCJzaWRlIiwibW9yZUNsYXNzZXMiLCJiYXNlU2l6aW5nQ2xhc3NlcyIsImFsd2F5c0hhbmRsZVN1cFN1YiIsImlzQ2hhcmFjdGVyQm94Iiwic2hvdWxkSGFuZGxlU3VwU3ViIiwic3VwbSIsInN1Ym0iLCJuZXdPcHRpb25zIiwic3VwU2hpZnQiLCJzdWJTaGlmdCIsInN1cERyb3AiLCJzdWJEcm9wIiwibWluU3VwU2hpZnQiLCJzdXAxIiwiY3JhbXBlZCIsInN1cDMiLCJzdXAyIiwibXVsdGlwbGllciIsInNjcmlwdHNwYWNlIiwicHRQZXJFbSIsInhIZWlnaHQiLCJzdWIyIiwicnVsZVdpZHRoIiwicHNpIiwiX3ZsaXN0RWxlbSIsInN1YjEiLCJ2bGlzdEVsZW0iLCJoYXNTdXBTdWIiLCJzdXBTdWJHcm91cCIsImhhdmluZ0Jhc2VTdHlsZSIsImJyYWNlQm9keSIsInN2Z1NwYW4iLCJ2U3BhbiIsInVwcGVyR3JvdXAiLCJsb3dlckdyb3VwIiwiYXJyb3dCb2R5IiwiYXJyb3dTaGlmdCIsImF4aXNIZWlnaHQiLCJ1cHBlclNoaWZ0IiwibG93ZXJTaGlmdCIsInNpemluZyIsImJhc2VPcHRpb25zIiwiZ3JvdXBOb2RlIiwic2l6aW5nQ2xhc3NlcyIsIm5hdGl2ZUluZGV4T2YiLCJ1cHBlcmNhc2UiLCJFU0NBUEVfTE9PS1VQIiwiJiIsIj4iLCI8IiwiXCIiLCInIiwiRVNDQVBFX1JFR0VYIiwic2V0VGV4dENvbnRlbnQiLCJ0ZXN0Tm9kZSIsImlubmVyVGV4dCIsImdldEJhc2VFbGVtIiwiZGVmbHQiLCJzZXR0aW5nIiwiZGVmYXVsdElmVW5kZWZpbmVkIiwiaHlwaGVuYXRlIiwiY2xlYXJOb2RlIiwiYmFzZUVsZW0iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NsYXNzQ2FsbENoZWNrX19fZGVmYXVsdCIsIlBhcnNlRXJyb3IiLCJsZXhlciIsInVuZGVybGluZWQiLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiY29yZSIsIl9fZSIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMV9iYWJlbF9ydW50aW1lX2hlbHBlcnNfY3JlYXRlQ2xhc3NfX19kZWZhdWx0IiwiU3R5bGUiLCJfc3VwIiwiX3N1YiIsIl9mcmFjTnVtIiwiX2ZyYWNEZW4iLCJfY3JhbXAiLCJfdGV4dCIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZXNjcmlwdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwic3RvcmUiLCJ1aWQiLCJVU0VfU1lNQk9MIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfYXNzaWduX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfYmFiZWxfcnVudGltZV9jb3JlX2pzX29iamVjdF9hc3NpZ25fX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX2JhYmVsX3J1bnRpbWVfaGVscGVyc19jbGFzc0NhbGxDaGVja19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfYmFiZWxfcnVudGltZV9oZWxwZXJzX2NyZWF0ZUNsYXNzX19fZGVmYXVsdCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fdW5pY29kZVNjcmlwdHNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fc3ZnR2VvbWV0cnlfXyIsImNyZWF0ZUNsYXNzIiwiYXR0cmlidXRlIiwiZnJhZyIsImlDb21iaW5hdGlvbnMiLCLDriIsIsOvIiwiw60iLCLDrCIsIl9zdHlsZSIsIm5lZWRzU3BhbiIsImFsdGVybmF0ZSIsImxpbmVOb2RlIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kb21UcmVlX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2J1aWxkQ29tbW9uX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzNfX21hdGhNTFRyZWVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fdXRpbHNfXyIsInN0cmV0Y2h5Q29kZVBvaW50Iiwid2lkZWhhdCIsIndpZGV0aWxkZSIsInV0aWxkZSIsIm92ZXJsZWZ0YXJyb3ciLCJ1bmRlcmxlZnRhcnJvdyIsInhsZWZ0YXJyb3ciLCJvdmVycmlnaHRhcnJvdyIsInVuZGVycmlnaHRhcnJvdyIsInhyaWdodGFycm93IiwidW5kZXJicmFjZSIsIm92ZXJicmFjZSIsIm92ZXJsZWZ0cmlnaHRhcnJvdyIsInVuZGVybGVmdHJpZ2h0YXJyb3ciLCJ4bGVmdHJpZ2h0YXJyb3ciLCJPdmVycmlnaHRhcnJvdyIsInhSaWdodGFycm93Iiwib3ZlcmxlZnRoYXJwb29uIiwieGxlZnRoYXJwb29udXAiLCJvdmVycmlnaHRoYXJwb29uIiwieHJpZ2h0aGFycG9vbnVwIiwieExlZnRhcnJvdyIsInhMZWZ0cmlnaHRhcnJvdyIsInhob29rbGVmdGFycm93IiwieGhvb2tyaWdodGFycm93IiwieG1hcHN0byIsInhyaWdodGhhcnBvb25kb3duIiwieGxlZnRoYXJwb29uZG93biIsInhyaWdodGxlZnRoYXJwb29ucyIsInhsZWZ0cmlnaHRoYXJwb29ucyIsInh0d29oZWFkbGVmdGFycm93IiwieHR3b2hlYWRyaWdodGFycm93IiwieGxvbmdlcXVhbCIsInh0b2Zyb20iLCJ4cmlnaHRsZWZ0YXJyb3dzIiwieHJpZ2h0ZXF1aWxpYnJpdW0iLCJ4bGVmdGVxdWlsaWJyaXVtIiwia2F0ZXhJbWFnZXNEYXRhIiwib3ZlcmxpbmVzZWdtZW50IiwidW5kZXJsaW5lc2VnbWVudCIsIm92ZXJncm91cCIsInVuZGVyZ3JvdXAiLCJncm91cExlbmd0aCIsImVuY2xvc2VTcGFuIiwiaW1nIiwidG90YWxIZWlnaHQiLCJib3JkZXJDb2xvciIsImxpbmVzIiwieDEiLCJ5MSIsIngyIiwieTIiLCJzdHJva2Utd2lkdGgiLCJsaW5lVGhpY2tuZXNzIiwicGFyZW50Q2xhc3MiLCJfYnVpbGRTdmdTcGFuXyIsInZpZXdCb3hXaWR0aCIsIm51bUNoYXJzIiwidmlld0JveEhlaWdodCIsIl9oZWlnaHQiLCJpbWdJbmRleCIsIm1pbldpZHRoIiwic3BhbnMiLCJfa2F0ZXhJbWFnZXNEYXRhJGxhYmUiLCJwYXRocyIsIl9taW5XaWR0aCIsIl92aWV3Qm94SGVpZ2h0IiwiYWxpZ24xIiwiX2hlaWdodDIiLCJudW1TdmdDaGlsZHJlbiIsIndpZHRoQ2xhc3NlcyIsImFsaWducyIsIl9wYXRoIiwiX3N2Z05vZGUiLCJfc3BhbiIsImJ1aWxkU3ZnU3Bhbl8iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX1NvdXJjZUxvY2F0aW9uX18iLCJQYXJzZU5vZGUiLCJmaXJzdCIsInJhbmdlIiwiYW5PYmplY3QiLCJJRThfRE9NX0RFRklORSIsInRvUHJpbWl0aXZlIiwiZFAiLCJPIiwiQXR0cmlidXRlcyIsIl9fZyIsInZhbGlkVW5pdCIsImNhbGN1bGF0ZVNpemUiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX1BhcnNlRXJyb3JfXyIsInB0UGVyVW5pdCIsInB0IiwibW0iLCJjbSIsImluIiwiYnAiLCJwYyIsImRkIiwiY2MiLCJuZCIsIm5jIiwic3AiLCJweCIsInJlbGF0aXZlVW5pdCIsImV4IiwiZW0iLCJtdSIsInNpemVWYWx1ZSIsInNjYWxlIiwiY3NzRW1QZXJNdSIsInVuaXRPcHRpb25zIiwicXVhZCIsIm1heFNpemUiLCJpdCIsImhpZGUiLCIkZXhwb3J0IiwiSVNfRk9SQ0VEIiwiRiIsIklTX0dMT0JBTCIsIkciLCJJU19TVEFUSUMiLCJJU19QUk9UTyIsIklTX0JJTkQiLCJJU19XUkFQIiwiVyIsImV4cFByb3RvIiwiQyIsInZpcnR1YWwiLCJSIiwiY3JlYXRlRGVzYyIsIlRva2VuIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19Tb3VyY2VMb2NhdGlvbl9fIiwiZW5kVG9rZW4iLCJkZWZpbmVTeW1ib2wiLCJhY2NlcHRVbmljb2RlQ2hhciIsIm1haW4iLCJhbXMiLCJhY2NlbnQiLCJvcCIsIl9jaCIsImxldHRlcnMiLCJfY2gyIiwiX2NoMyIsImRlZmluZWQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3VuaWNvZGVTY3JpcHRzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3N1Ym1vZHVsZXNfa2F0ZXhfZm9udHNfZm9udE1ldHJpY3NEYXRhX18iLCJzaWdtYXNBbmRYaXMiLCJzbGFudCIsInN0cmV0Y2giLCJzaHJpbmsiLCJleHRyYVNwYWNlIiwibnVtMSIsIm51bTIiLCJudW0zIiwiZGVub20xIiwiZGVub20yIiwiZGVsaW0xIiwiZGVsaW0yIiwiYmlnT3BTcGFjaW5nMSIsImJpZ09wU3BhY2luZzIiLCJiaWdPcFNwYWNpbmczIiwiYmlnT3BTcGFjaW5nNCIsImJpZ09wU3BhY2luZzUiLCJzcXJ0UnVsZVRoaWNrbmVzcyIsImRvdWJsZVJ1bGVTZXAiLCJleHRyYUNoYXJhY3Rlck1hcCIsIsOFIiwiw4ciLCLDkCIsIsOeIiwiw6UiLCLDpyIsIsOwIiwiw74iLCLQkCIsItCRIiwi0JIiLCLQkyIsItCUIiwi0JUiLCLQliIsItCXIiwi0JgiLCLQmSIsItCaIiwi0JsiLCLQnCIsItCdIiwi0J4iLCLQnyIsItCgIiwi0KEiLCLQoiIsItCjIiwi0KQiLCLQpSIsItCmIiwi0KciLCLQqCIsItCpIiwi0KoiLCLQqyIsItCsIiwi0K0iLCLQriIsItCvIiwi0LAiLCLQsSIsItCyIiwi0LMiLCLQtCIsItC1Iiwi0LYiLCLQtyIsItC4Iiwi0LkiLCLQuiIsItC7Iiwi0LwiLCLQvSIsItC+Iiwi0L8iLCLRgCIsItGBIiwi0YIiLCLRgyIsItGEIiwi0YUiLCLRhiIsItGHIiwi0YgiLCLRiSIsItGKIiwi0YsiLCLRjCIsItGNIiwi0Y4iLCLRjyIsImZvbnRNZXRyaWNzQnlTaXplSW5kZXgiLCJnZXRGb250TWV0cmljcyIsInNpemVJbmRleCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2ZyZWV6ZV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX2JhYmVsX3J1bnRpbWVfY29yZV9qc19vYmplY3RfZnJlZXplX19fZGVmYXVsdCIsIlNvdXJjZUxvY2F0aW9uIiwic2Vjb25kIiwicmFuZG9tIiwiYml0bWFwIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX191dGlsc19fIiwiU2V0dGluZ3MiLCJkaXNwbGF5TW9kZSIsInRocm93T25FcnJvciIsImVycm9yQ29sb3IiLCJtYWNyb3MiLCJjb2xvcklzVGV4dENvbG9yIiwiX2Zyb20iLCJfZnJvbTIiLCJhcnIyIiwiJGF0IiwiaXRlcmF0ZWQiLCJfdCIsInBvaW50IiwiY2VpbCIsIiRrZXlzIiwiZW51bUJ1Z0tleXMiLCJJT2JqZWN0Iiwic2hhcmVkIiwiY29kZXBvaW50Iiwic2NyaXB0RGF0YSIsImFsbEJsb2NrcyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2hlbHBlcnNfdG9Db25zdW1hYmxlQXJyYXlfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19mb250TWV0cmljc19fIiwic2l6ZVN0eWxlTWFwIiwic2l6ZU11bHRpcGxpZXJzIiwic2l6ZUF0U3R5bGUiLCJPcHRpb25zIiwiQkFTRVNJWkUiLCJ0ZXh0U2l6ZSIsInBoYW50b20iLCJfZm9udE1ldHJpY3MiLCJleHRlbnNpb24iLCJleHRlbmQiLCJjcmFtcCIsIndhbnRTaXplIiwib2xkT3B0aW9ucyIsImNvbG9yTWFwIiwia2F0ZXgtYmx1ZSIsImthdGV4LW9yYW5nZSIsImthdGV4LXBpbmsiLCJrYXRleC1yZWQiLCJrYXRleC1ncmVlbiIsImthdGV4LWdyYXkiLCJrYXRleC1wdXJwbGUiLCJrYXRleC1ibHVlQSIsImthdGV4LWJsdWVCIiwia2F0ZXgtYmx1ZUMiLCJrYXRleC1ibHVlRCIsImthdGV4LWJsdWVFIiwia2F0ZXgtdGVhbEEiLCJrYXRleC10ZWFsQiIsImthdGV4LXRlYWxDIiwia2F0ZXgtdGVhbEQiLCJrYXRleC10ZWFsRSIsImthdGV4LWdyZWVuQSIsImthdGV4LWdyZWVuQiIsImthdGV4LWdyZWVuQyIsImthdGV4LWdyZWVuRCIsImthdGV4LWdyZWVuRSIsImthdGV4LWdvbGRBIiwia2F0ZXgtZ29sZEIiLCJrYXRleC1nb2xkQyIsImthdGV4LWdvbGREIiwia2F0ZXgtZ29sZEUiLCJrYXRleC1yZWRBIiwia2F0ZXgtcmVkQiIsImthdGV4LXJlZEMiLCJrYXRleC1yZWREIiwia2F0ZXgtcmVkRSIsImthdGV4LW1hcm9vbkEiLCJrYXRleC1tYXJvb25CIiwia2F0ZXgtbWFyb29uQyIsImthdGV4LW1hcm9vbkQiLCJrYXRleC1tYXJvb25FIiwia2F0ZXgtcHVycGxlQSIsImthdGV4LXB1cnBsZUIiLCJrYXRleC1wdXJwbGVDIiwia2F0ZXgtcHVycGxlRCIsImthdGV4LXB1cnBsZUUiLCJrYXRleC1taW50QSIsImthdGV4LW1pbnRCIiwia2F0ZXgtbWludEMiLCJrYXRleC1ncmF5QSIsImthdGV4LWdyYXlCIiwia2F0ZXgtZ3JheUMiLCJrYXRleC1ncmF5RCIsImthdGV4LWdyYXlFIiwia2F0ZXgtZ3JheUYiLCJrYXRleC1ncmF5RyIsImthdGV4LWdyYXlIIiwia2F0ZXgtZ3JheUkiLCJrYXRleC1rYUJsdWUiLCJrYXRleC1rYUdyZWVuIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19TdHlsZV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19idWlsZENvbW1vbl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19mb250TWV0cmljc19fIiwiZ2V0TWV0cmljcyIsInN0eWxlV3JhcCIsImRlbGltIiwidG9TdHlsZSIsImRlbGltU2l6ZU11bHRpcGxpZXIiLCJjZW50ZXJTcGFuIiwibWFrZUxhcmdlRGVsaW0iLCJjZW50ZXIiLCJtYXRocm1TaXplIiwibWFrZUlubmVyIiwic2l6ZUNsYXNzIiwibWFrZVN0YWNrZWREZWxpbSIsImhlaWdodFRvdGFsIiwibWlkZGxlIiwidG9wTWV0cmljcyIsInRvcEhlaWdodFRvdGFsIiwicmVwZWF0TWV0cmljcyIsInJlcGVhdEhlaWdodFRvdGFsIiwiYm90dG9tTWV0cmljcyIsImJvdHRvbUhlaWdodFRvdGFsIiwibWlkZGxlSGVpZ2h0VG90YWwiLCJtaWRkbGVGYWN0b3IiLCJtaWRkbGVNZXRyaWNzIiwibWluSGVpZ2h0IiwicmVwZWF0Q291bnQiLCJyZWFsSGVpZ2h0VG90YWwiLCJpbm5lcnMiLCJzcXJ0U3ZnIiwic3FydE5hbWUiLCJzdGFja0xhcmdlRGVsaW1pdGVycyIsInN0YWNrQWx3YXlzRGVsaW1pdGVycyIsInN0YWNrTmV2ZXJEZWxpbWl0ZXJzIiwic2l6ZVRvTWF4SGVpZ2h0Iiwic3RhY2tOZXZlckRlbGltaXRlclNlcXVlbmNlIiwic3RhY2tBbHdheXNEZWxpbWl0ZXJTZXF1ZW5jZSIsInN0YWNrTGFyZ2VEZWxpbWl0ZXJTZXF1ZW5jZSIsInRyYXZlcnNlU2VxdWVuY2UiLCJzZXF1ZW5jZSIsImhlaWdodERlcHRoIiwibWFrZUN1c3RvbVNpemVkRGVsaW0iLCJkZWxpbVR5cGUiLCJtYWtlU21hbGxEZWxpbSIsInNxcnRJbWFnZSIsInNwYW5IZWlnaHQiLCJ0ZXhIZWlnaHQiLCJhZHZhbmNlV2lkdGgiLCJzaXplZERlbGltIiwiY3VzdG9tU2l6ZWREZWxpbSIsImxlZnRSaWdodERlbGltIiwiZGVsaW1pdGVyRXh0ZW5kIiwibWF4RGlzdEZyb21BeGlzIiwiZmFpbHMiLCJleHAiLCJhRnVuY3Rpb24iLCJMSUJSQVJZIiwicmVkZWZpbmUiLCJJdGVyYXRvcnMiLCIkaXRlckNyZWF0ZSIsInNldFRvU3RyaW5nVGFnIiwiZ2V0UHJvdG90eXBlT2YiLCJJVEVSQVRPUiIsIkJVR0dZIiwicmV0dXJuVGhpcyIsIkJhc2UiLCJJU19TRVQiLCJGT1JDRUQiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldE1ldGhvZCIsInByb3RvIiwiVEFHIiwiREVGX1ZBTFVFUyIsIlZBTFVFU19CVUciLCIkbmF0aXZlIiwiJGRlZmF1bHQiLCIkZW50cmllcyIsIiRhbnlOYXRpdmUiLCJjb2YiLCJ0b0ludGVnZXIiLCJzdGF0IiwiY2xhc3NvZiIsImdldEl0ZXJhdG9yTWV0aG9kIiwiQVJHIiwiVCIsInRyeUdldCIsIl9pc0l0ZXJhYmxlMyIsIl9nZXRJdGVyYXRvcjMiLCJfbiIsIl9kIiwiX2UiLCJfcyIsInNsaWNlSXRlcmF0b3IiLCJUT19TVFJJTkdfVEFHIiwiY29sbGVjdGlvbnMiLCJDb2xsZWN0aW9uIiwiQU1TLVJlZ3VsYXIiLCI2NSIsIjY2IiwiNjciLCI2OCIsIjY5IiwiNzAiLCI3MSIsIjcyIiwiNzMiLCI3NCIsIjc1IiwiNzYiLCI3NyIsIjc4IiwiNzkiLCI4MCIsIjgxIiwiODIiLCI4MyIsIjg0IiwiODUiLCI4NiIsIjg3IiwiODgiLCI4OSIsIjkwIiwiMTA3IiwiMTY1IiwiMTc0IiwiMjQwIiwiMjk1IiwiNzEwIiwiNzMyIiwiNzcwIiwiNzcxIiwiOTg5IiwiMTAwOCIsIjgyNDUiLCI4NDYzIiwiODQ4NyIsIjg0OTgiLCI4NTAyIiwiODUwMyIsIjg1MDQiLCI4NTEzIiwiODU5MiIsIjg1OTQiLCI4NjAyIiwiODYwMyIsIjg2MDYiLCI4NjA4IiwiODYxMCIsIjg2MTEiLCI4NjE5IiwiODYyMCIsIjg2MjEiLCI4NjIyIiwiODYyNCIsIjg2MjUiLCI4NjMwIiwiODYzMSIsIjg2MzQiLCI4NjM1IiwiODYzOCIsIjg2MzkiLCI4NjQyIiwiODY0MyIsIjg2NDQiLCI4NjQ2IiwiODY0NyIsIjg2NDgiLCI4NjQ5IiwiODY1MCIsIjg2NTEiLCI4NjUyIiwiODY1MyIsIjg2NTQiLCI4NjU1IiwiODY2NiIsIjg2NjciLCI4NjY5IiwiODY3MiIsIjg2NzQiLCI4NzA1IiwiODcwOCIsIjg3MDkiLCI4NzE3IiwiODcyMiIsIjg3MjQiLCI4NzI2IiwiODczMyIsIjg3MzYiLCI4NzM3IiwiODczOCIsIjg3MzkiLCI4NzQwIiwiODc0MSIsIjg3NDIiLCI4NzU2IiwiODc1NyIsIjg3NjQiLCI4NzY1IiwiODc2OSIsIjg3NzAiLCI4Nzc0IiwiODc3NiIsIjg3NzgiLCI4NzgyIiwiODc4MyIsIjg3ODUiLCI4Nzg2IiwiODc4NyIsIjg3OTAiLCI4NzkxIiwiODc5NiIsIjg4MDYiLCI4ODA3IiwiODgwOCIsIjg4MDkiLCI4ODEyIiwiODgxNCIsIjg4MTUiLCI4ODE2IiwiODgxNyIsIjg4MTgiLCI4ODE5IiwiODgyMiIsIjg4MjMiLCI4ODI4IiwiODgyOSIsIjg4MzAiLCI4ODMxIiwiODgzMiIsIjg4MzMiLCI4ODQwIiwiODg0MSIsIjg4NDIiLCI4ODQzIiwiODg0NyIsIjg4NDgiLCI4ODU4IiwiODg1OSIsIjg4NjEiLCI4ODYyIiwiODg2MyIsIjg4NjQiLCI4ODY1IiwiODg3MiIsIjg4NzMiLCI4ODc0IiwiODg3NiIsIjg4NzciLCI4ODc4IiwiODg3OSIsIjg4ODIiLCI4ODgzIiwiODg4NCIsIjg4ODUiLCI4ODg4IiwiODg5MCIsIjg4OTEiLCI4ODkyIiwiODkwMSIsIjg5MDMiLCI4OTA1IiwiODkwNiIsIjg5MDciLCI4OTA4IiwiODkwOSIsIjg5MTAiLCI4OTExIiwiODkxMiIsIjg5MTMiLCI4OTE0IiwiODkxNSIsIjg5MTYiLCI4OTE4IiwiODkxOSIsIjg5MjAiLCI4OTIxIiwiODkyMiIsIjg5MjMiLCI4OTI2IiwiODkyNyIsIjg5MjgiLCI4OTI5IiwiODkzNCIsIjg5MzUiLCI4OTM2IiwiODkzNyIsIjg5MzgiLCI4OTM5IiwiODk0MCIsIjg5NDEiLCI4OTk0IiwiODk5NSIsIjk0MTYiLCI5NDg0IiwiOTQ4OCIsIjk0OTIiLCI5NDk2IiwiOTU4NSIsIjk1ODYiLCI5NjMyIiwiOTYzMyIsIjk2NTAiLCI5NjUxIiwiOTY1NCIsIjk2NjAiLCI5NjYxIiwiOTY2NCIsIjk2NzQiLCI5NzMzIiwiMTAwMDMiLCIxMDAxNiIsIjEwNzMxIiwiMTA4NDYiLCIxMDg3NyIsIjEwODc4IiwiMTA4ODUiLCIxMDg4NiIsIjEwODg3IiwiMTA4ODgiLCIxMDg4OSIsIjEwODkwIiwiMTA4OTEiLCIxMDg5MiIsIjEwOTAxIiwiMTA5MDIiLCIxMDkzMyIsIjEwOTM0IiwiMTA5MzUiLCIxMDkzNiIsIjEwOTM3IiwiMTA5MzgiLCIxMDk0OSIsIjEwOTUwIiwiMTA5NTUiLCIxMDk1NiIsIjU3MzUwIiwiNTczNTEiLCI1NzM1MiIsIjU3MzUzIiwiNTczNTYiLCI1NzM1NyIsIjU3MzU4IiwiNTczNTkiLCI1NzM2MCIsIjU3MzYxIiwiNTczNjYiLCI1NzM2NyIsIjU3MzY4IiwiNTczNjkiLCI1NzM3MCIsIjU3MzcxIiwiQ2FsaWdyYXBoaWMtUmVndWxhciIsIjQ4IiwiNDkiLCI1MCIsIjUxIiwiNTIiLCI1MyIsIjU0IiwiNTUiLCI1NiIsIjU3IiwiRnJha3R1ci1SZWd1bGFyIiwiMzMiLCIzNCIsIjM4IiwiMzkiLCI0MCIsIjQxIiwiNDIiLCI0MyIsIjQ0IiwiNDUiLCI0NiIsIjQ3IiwiNTgiLCI1OSIsIjYxIiwiNjMiLCI5MSIsIjkzIiwiOTQiLCI5NyIsIjk4IiwiOTkiLCIxMDAiLCIxMDEiLCIxMDIiLCIxMDMiLCIxMDQiLCIxMDUiLCIxMDYiLCIxMDgiLCIxMDkiLCIxMTAiLCIxMTEiLCIxMTIiLCIxMTMiLCIxMTQiLCIxMTUiLCIxMTYiLCIxMTciLCIxMTgiLCIxMTkiLCIxMjAiLCIxMjEiLCIxMjIiLCI4MjE2IiwiODIxNyIsIjU4MTEyIiwiNTgxMTMiLCI1ODExNCIsIjU4MTE1IiwiNTgxMTYiLCI1ODExNyIsIjU4MTE4IiwiNTgxMTkiLCJNYWluLUJvbGQiLCIzNSIsIjM2IiwiMzciLCI2MCIsIjYyIiwiNjQiLCI5MiIsIjk1IiwiMTIzIiwiMTI0IiwiMTI1IiwiMTI2IiwiMTY4IiwiMTcyIiwiMTc2IiwiMTc3IiwiMTk4IiwiMjE1IiwiMjE2IiwiMjIzIiwiMjMwIiwiMjQ3IiwiMjQ4IiwiMzA1IiwiMzM4IiwiMzM5IiwiNTY3IiwiNzExIiwiNzEzIiwiNzE0IiwiNzE1IiwiNzI4IiwiNzI5IiwiNzMwIiwiNzMzIiwiODI0IiwiOTE1IiwiOTE2IiwiOTIwIiwiOTIzIiwiOTI2IiwiOTI4IiwiOTMxIiwiOTMzIiwiOTM0IiwiOTM2IiwiOTM3IiwiODIxMSIsIjgyMTIiLCI4MjIwIiwiODIyMSIsIjgyMjQiLCI4MjI1IiwiODI0MiIsIjg0MDciLCI4NDY1IiwiODQ2NyIsIjg0NzIiLCI4NDc2IiwiODUwMSIsIjg1OTMiLCI4NTk1IiwiODU5NiIsIjg1OTciLCI4NTk4IiwiODU5OSIsIjg2MDAiLCI4NjAxIiwiODYzNiIsIjg2MzciLCI4NjQwIiwiODY0MSIsIjg2NTYiLCI4NjU3IiwiODY1OCIsIjg2NTkiLCI4NjYwIiwiODY2MSIsIjg3MDQiLCI4NzA2IiwiODcwNyIsIjg3MTEiLCI4NzEyIiwiODcxNSIsIjg3MjMiLCI4NzI1IiwiODcyNyIsIjg3MjgiLCI4NzI5IiwiODczMCIsIjg3MzQiLCI4NzQzIiwiODc0NCIsIjg3NDUiLCI4NzQ2IiwiODc0NyIsIjg3NjgiLCI4NzcxIiwiODc4MSIsIjg4MDEiLCI4ODA0IiwiODgwNSIsIjg4MTAiLCI4ODExIiwiODgyNiIsIjg4MjciLCI4ODM0IiwiODgzNSIsIjg4MzgiLCI4ODM5IiwiODg0NiIsIjg4NDkiLCI4ODUwIiwiODg1MSIsIjg4NTIiLCI4ODUzIiwiODg1NCIsIjg4NTUiLCI4ODU2IiwiODg1NyIsIjg4NjYiLCI4ODY3IiwiODg2OCIsIjg4NjkiLCI4OTAwIiwiODkwMiIsIjg5NjgiLCI4OTY5IiwiODk3MCIsIjg5NzEiLCI5NjU3IiwiOTY2NyIsIjk3MTEiLCI5ODI0IiwiOTgyNSIsIjk4MjYiLCI5ODI3IiwiOTgzNyIsIjk4MzgiLCI5ODM5IiwiMTAyMTYiLCIxMDIxNyIsIjEwODE1IiwiMTA5MjciLCIxMDkyOCIsIk1haW4tQm9sZEl0YWxpYyIsIjE2MyIsIk1haW4tSXRhbGljIiwiTWFpbi1SZWd1bGFyIiwiMzIiLCIxNjAiLCI4MjMwIiwiODYxNCIsIjg2MTciLCI4NjE4IiwiODc3MyIsIjg3ODQiLCI4ODAwIiwiODkwNCIsIjg5NDIiLCI4OTQzIiwiODk0NSIsIjkxMzYiLCI5MTM3IiwiMTAyMjIiLCIxMDIyMyIsIjEwMjI5IiwiMTAyMzAiLCIxMDIzMSIsIjEwMjMyIiwiMTAyMzMiLCIxMDIzNCIsIjEwMjM2IiwiTWF0aC1Cb2xkSXRhbGljIiwiOTQ1IiwiOTQ2IiwiOTQ3IiwiOTQ4IiwiOTQ5IiwiOTUwIiwiOTUxIiwiOTUyIiwiOTUzIiwiOTU0IiwiOTU1IiwiOTU2IiwiOTU3IiwiOTU4IiwiOTU5IiwiOTYwIiwiOTYxIiwiOTYyIiwiOTYzIiwiOTY0IiwiOTY1IiwiOTY2IiwiOTY3IiwiOTY4IiwiOTY5IiwiOTc3IiwiOTgxIiwiOTgyIiwiMTAwOSIsIjEwMTMiLCJNYXRoLUl0YWxpYyIsIk1hdGgtUmVndWxhciIsIlNhbnNTZXJpZi1Cb2xkIiwiMTgwIiwiU2Fuc1NlcmlmLUl0YWxpYyIsIlNhbnNTZXJpZi1SZWd1bGFyIiwiNzc2IiwiU2NyaXB0LVJlZ3VsYXIiLCJTaXplMS1SZWd1bGFyIiwiODIxNCIsIjg3MTkiLCI4NzIwIiwiODcyMSIsIjg3NDgiLCI4NzQ5IiwiODc1MCIsIjg4OTYiLCI4ODk3IiwiODg5OCIsIjg4OTkiLCI5MTY4IiwiMTA3NTIiLCIxMDc1MyIsIjEwNzU0IiwiMTA3NTYiLCIxMDc1OCIsIlNpemUyLVJlZ3VsYXIiLCJTaXplMy1SZWd1bGFyIiwiU2l6ZTQtUmVndWxhciIsIjkxMTUiLCI5MTE2IiwiOTExNyIsIjkxMTgiLCI5MTE5IiwiOTEyMCIsIjkxMjEiLCI5MTIyIiwiOTEyMyIsIjkxMjQiLCI5MTI1IiwiOTEyNiIsIjkxMjciLCI5MTI4IiwiOTEyOSIsIjkxMzAiLCI5MTMxIiwiOTEzMiIsIjkxMzMiLCI5MTQzIiwiNTczNDQiLCI1NzM0NSIsIjU3NjgwIiwiNTc2ODEiLCI1NzY4MiIsIjU3NjgzIiwiVHlwZXdyaXRlci1SZWd1bGFyIiwiOTYiLCIxMjciLCI5MjUxIiwic2l6aW5nR3JvdXAiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2RlZmluZUZ1bmN0aW9uX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkSFRNTF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19idWlsZE1hdGhNTF9fIiwic2l6ZUZ1bmNzIiwiYnJlYWtPblRva2VuVGV4dCIsImZ1bmNOYW1lIiwiY29uc3VtZVNwYWNlcyIsInBhcnNlRXhwcmVzc2lvbiIsIl9lbnZpcm9ubWVudHMiLCJjb21iaW5pbmdEaWFjcml0aWNhbE1hcmtzRW5kUmVnZXgiLCJjb250cm9sV29yZFJlZ2V4IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX21hdGNoX2F0X18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfbWF0Y2hfYXRfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19Tb3VyY2VMb2NhdGlvbl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19Ub2tlbl9fIiwiY29tYmluaW5nRGlhY3JpdGljYWxNYXJrU3RyaW5nIiwidG9rZW5SZWdleCIsImNvbW1lbnRSZWdleCIsIkxleGVyIiwibGV4IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19zcmNfa2F0ZXhfbGVzc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19rYXRleF9qc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19zcmNfUGFyc2VFcnJvcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19zcmNfU2V0dGluZ3NfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fc3JjX2J1aWxkVHJlZV9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19zcmNfcGFyc2VUcmVlX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX3NyY191dGlsc19fIiwiYmFzZU5vZGUiLCJyZW5kZXJUb0RvbVRyZWUiLCJjb21wYXRNb2RlIiwicmVuZGVyVG9TdHJpbmciLCJfX3BhcnNlIiwiX19yZW5kZXJUb0RvbVRyZWUiLCJfX3JlbmRlclRvSFRNTFRyZWUiLCJmcmVlemUiLCJvbkZyZWV6ZSIsIiRmcmVlemUiLCJzZXREZXNjIiwiaXNFeHRlbnNpYmxlIiwiRlJFRVpFIiwicHJldmVudEV4dGVuc2lvbnMiLCJzZXRNZXRhIiwidyIsIk5FRUQiLCJmYXN0S2V5IiwiZ2V0V2VhayIsInZhbHVlT2YiLCIkT2JqZWN0IiwiYnVpbGRUcmVlIiwiYnVpbGRIVE1MVHJlZSIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fT3B0aW9uc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19TdHlsZV9fIiwib3B0aW9uc0Zyb21TZXR0aW5ncyIsIm1hdGhNTE5vZGUiLCJrYXRleE5vZGUiLCIkSlNPTiIsIlRPX1NUUklORyIsImRQcyIsIklFX1BST1RPIiwiRW1wdHkiLCJjcmVhdGVEaWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJjb250ZW50V2luZG93IiwibHQiLCJQcm9wZXJ0aWVzIiwiZ2V0S2V5cyIsInRvSU9iamVjdCIsInRvTGVuZ3RoIiwidG9JbmRleCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJlbCIsImRvY3VtZW50RWxlbWVudCIsIk9iamVjdFByb3RvIiwiaXNBcnJheUl0ZXIiLCJjcmVhdGVQcm9wZXJ0eSIsImdldEl0ZXJGbiIsIml0ZXIiLCJhcnJheUxpa2UiLCJpdGVyYXRvciIsImFMZW4iLCJtYXBmbiIsIm1hcHBpbmciLCJpdGVyRm4iLCIkZGVmaW5lUHJvcGVydHkiLCJTQUZFX0NMT1NJTkciLCJza2lwQ2xvc2luZyIsInNhZmUiLCJhZGRUb1Vuc2NvcGFibGVzIiwiX2siLCJBcmd1bWVudHMiLCJpc0l0ZXJhYmxlIiwiZ2V0SXRlcmF0b3IiLCJnT1BTIiwicElFIiwiJGFzc2lnbiIsIksiLCJnZXRTeW1ib2xzIiwiaXNFbnVtIiwic3RkSG9yaXpSdWxlIiwidmVydFNlcGFyYXRvciIsInNxcnRNYWluIiwic3FydFNpemUxIiwic3FydFNpemUyIiwic3FydFNpemUzIiwic3FydFNpemU0IiwiZG91YmxlbGVmdGFycm93IiwiZG91YmxlcmlnaHRhcnJvdyIsImxlZnRhcnJvdyIsImxlZnRicmFjZSIsImxlZnRicmFjZXVuZGVyIiwibGVmdGdyb3VwIiwibGVmdGdyb3VwdW5kZXIiLCJsZWZ0aGFycG9vbiIsImxlZnRoYXJwb29ucGx1cyIsImxlZnRoYXJwb29uZG93biIsImxlZnRoYXJwb29uZG93bnBsdXMiLCJsZWZ0aG9vayIsImxlZnRsaW5lc2VnbWVudCIsImxlZnRtYXBzdG8iLCJsZWZ0VG9Gcm9tIiwibG9uZ2VxdWFsIiwibWlkYnJhY2UiLCJtaWRicmFjZXVuZGVyIiwicmlnaHRhcnJvdyIsInJpZ2h0YnJhY2UiLCJyaWdodGJyYWNldW5kZXIiLCJyaWdodGdyb3VwIiwicmlnaHRncm91cHVuZGVyIiwicmlnaHRoYXJwb29uIiwicmlnaHRoYXJwb29ucGx1cyIsInJpZ2h0aGFycG9vbmRvd24iLCJyaWdodGhhcnBvb25kb3ducGx1cyIsInJpZ2h0aG9vayIsInJpZ2h0bGluZXNlZ21lbnQiLCJyaWdodFRvRnJvbSIsInR3b2hlYWRsZWZ0YXJyb3ciLCJ0d29oZWFkcmlnaHRhcnJvdyIsInRpbGRlMSIsInRpbGRlMiIsInRpbGRlMyIsInRpbGRlNCIsIndpZGVoYXQxIiwid2lkZWhhdDIiLCJ3aWRlaGF0MyIsIndpZGVoYXQ0IiwiYmFyYWJvdmVsZWZ0YXJyb3ciLCJyaWdodGFycm93YWJvdmViYXIiLCJiYXJhYm92ZXNob3J0bGVmdGhhcnBvb24iLCJyaWdodGhhcnBvb25hYm92ZXNob3J0YmFyIiwic2hvcnRiYXJhYm92ZWxlZnRoYXJwb29uIiwic2hvcnRyaWdodGhhcnBvb25hYm92ZWJhciIsInNwYWNpbmdzIiwidGlnaHRTcGFjaW5ncyIsInRoaW5zcGFjZSIsIm1lZGl1bXNwYWNlIiwidGhpY2tzcGFjZSIsIm1vcmQiLCJtb3AiLCJtYmluIiwibXJlbCIsIm1pbm5lciIsIm1vcGVuIiwibWNsb3NlIiwibXB1bmN0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19QYXJzZXJfXyIsInRvUGFyc2UiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzJfX2Z1bmN0aW9uc19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19lbnZpcm9ubWVudHNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fTWFjcm9FeHBhbmRlcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X191bmljb2RlU2NyaXB0c19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X191bmljb2RlQWNjZW50c19fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV84X191bmljb2RlQWNjZW50c19fX2RlZmF1bHQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX3VuaWNvZGVTeW1ib2xzX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzEwX19QYXJzZU5vZGVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTFfX1BhcnNlRXJyb3JfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMTJfX0xleGVyX2pzX18iLCJuZXdBcmd1bWVudCIsImFzc2VydEZ1bmNPckFyZyIsImd1bGxldCIsImxlZnRyaWdodERlcHRoIiwiY29uc3VtZSIsIm5leHRUb2tlbiIsImV4cGFuZE5leHRUb2tlbiIsInN3aXRjaE1vZGUiLCJwYXJzZUlucHV0IiwiZXhwZWN0IiwiYnJlYWtPbkluZml4IiwiZW5kT2ZFeHByZXNzaW9uIiwiYXRvbSIsInBhcnNlQXRvbSIsImVycm9yTm9kZSIsImhhbmRsZVVuc3VwcG9ydGVkQ21kIiwiaGFuZGxlSW5maXhOb2RlcyIsIm92ZXJJbmRleCIsInJlcGxhY2VXaXRoIiwibnVtZXJOb2RlIiwiZGVub21Ob2RlIiwibnVtZXJCb2R5IiwiZGVub21Cb2R5IiwiY2FsbEZ1bmN0aW9uIiwic3ltYm9sVG9rZW4iLCJwYXJzZUdyb3VwIiwiU1VQU1VCX0dSRUVESU5FU1MiLCJwYXJzZUdpdmVuRnVuY3Rpb24iLCJ0ZXh0b3JkQXJyYXkiLCJjb2xvck5vZGUiLCJwYXJzZUltcGxpY2l0R3JvdXAiLCJzdXBlcnNjcmlwdCIsInN1YnNjcmlwdCIsImhhbmRsZVN1cFN1YnNjcmlwdCIsInByaW1lIiwicHJpbWVzIiwicGFyc2VTeW1ib2wiLCJwYXJzZUZ1bmN0aW9uIiwiZnVuYyIsIm91dGVyTW9kZSIsImVudk5hbWUiLCJuYW1lR3JvdXAiLCJfcGFyc2VBcmd1bWVudHMiLCJwYXJzZUFyZ3VtZW50cyIsIm9wdEFyZ3MiLCJfcmVzdWx0IiwiZW5kTmFtZVRva2VuIiwiYmFzZUdyb3VwIiwiZnVuY0RhdGEiLCJfcGFyc2VBcmd1bWVudHMyIiwiX3Rva2VuIiwiX3Jlc3VsdDIiLCJ0b3RhbEFyZ3MiLCJiYXNlR3JlZWRpbmVzcyIsImFyZ1R5cGUiLCJpc09wdGlvbmFsIiwicGFyc2VHcm91cE9mVHlwZSIsImFyZ05vZGUiLCJwYXJzZUNvbG9yR3JvdXAiLCJwYXJzZVNpemVHcm91cCIsInBhcnNlVXJsR3JvdXAiLCJmaXJzdFRva2VuIiwibGFzdFRva2VuIiwibmVzdCIsInJlZ2V4IiwicGFyc2VTdHJpbmdHcm91cCIsInBhcnNlU3RyaW5nR3JvdXBXaXRoQmFsYW5jZWRCcmFjZXMiLCJwYXJzZVJlZ2V4R3JvdXAiLCJmb3JtTGlnYXR1cmVzIiwiX3Jlc3VsdDMiLCJudWNsZXVzIiwibmV3RG9sbGFyIiwiaXNTdHJldGNoeSIsImlzU2hpZnR5IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19QYXJzZU5vZGVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVmaW5lRnVuY3Rpb25fXyIsImZ1bmN0aW9ucyIsImRlZmluZUZ1bmN0aW9uIiwiYm90dG9tb3AiLCJzaW5nbGVDaGFySW50ZWdyYWxzIiwi4oirIiwi4oisIiwi4oitIiwi4oiuIiwiZk5hbWUiLCJhbW91bnQiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX2RlZmluZUZ1bmN0aW9uX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX2J1aWxkQ29tbW9uX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2RlbGltaXRlcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV82X19idWlsZEhUTUxfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19fYnVpbGRNYXRoTUxfXyIsImhhdmluZ0NyYW1wZWRTdHlsZSIsInRoZXRhIiwicGhpIiwibGluZUNsZWFyYW5jZSIsIm1pbkRlbGltaXRlckhlaWdodCIsIl9kZWxpbWl0ZXIkc3FydEltYWdlIiwiZGVsaW1EZXB0aCIsImltZ1NoaWZ0Iiwicm9vdG0iLCJ0b1NoaWZ0Iiwicm9vdFZMaXN0Iiwicm9vdFZMaXN0V3JhcCIsIndpdGhDb2xvciIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fYnVpbGRIVE1MX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzRfX2J1aWxkTWF0aE1MX18iLCJ0ZXh0Rm9udEZhbWlsaWVzIiwiXFx0ZXh0IiwiXFx0ZXh0cm0iLCJcXHRleHRzZiIsIlxcdGV4dHR0IiwiXFx0ZXh0bm9ybWFsIiwidGV4dEZvbnRXZWlnaHRzIiwiXFx0ZXh0YmYiLCJ0ZXh0Rm9udFNoYXBlcyIsIlxcdGV4dGl0Iiwid2l0aEZvbnRGYW1pbHkiLCJ3aXRoRm9udFdlaWdodCIsIndpdGhGb250U2hhcGUiLCJjdXJyZW50VGV4dCIsIl9ncm91cCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fc3RyZXRjaHlfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fYnVpbGRIVE1MX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzZfX2J1aWxkTWF0aE1MX18iLCJpc0NvbG9yYm94IiwidmVydFBhZCIsImJhY2tncm91bmRDb2xvciIsImlubmVyR3JvdXAiLCJvcGVyYXRvciIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fdW5pdHNfXyIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJUb3BXaWR0aCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNF9fUGFyc2VFcnJvcl9fIiwibWF0aEZ1bmN0aW9uIiwibXVVbml0IiwiZGltZW5zaW9uIiwid2l0aFBoYW50b20iLCJmaXgiLCJodG1sTW9kQnVpbGRlciIsIm1vZFR5cGUiLCJtb2RJbm5lciIsIm1tbE1vZEJ1aWxkZXIiLCJzdXBHcm91cCIsInN1Ykdyb3VwIiwiaGFzTGltaXRzIiwibGFyZ2UiLCJiYXNlU2hpZnQiLCJrZXJuIiwiZmluYWxHcm91cCIsIl9ib3R0b20iLCJzaW5nbGVDaGFyQmlnT3BzIiwi4oiPIiwi4oiQIiwi4oiRIiwi4ouAIiwi4ouBIiwi4ouCIiwi4ouDIiwi4qiAIiwi4qiBIiwi4qiCIiwi4qiEIiwi4qiGIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19kb21UcmVlX18iLCJ0ZW1wIiwid29yZCIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fZGVsaW1pdGVyX18iLCJudW1lciIsImRlbm9tIiwiaGFzQmFyTGluZSIsImxlZnREZWxpbSIsInJpZ2h0RGVsaW0iLCJuc3R5bGUiLCJmcmFjTnVtIiwiZHN0eWxlIiwiZnJhY0RlbiIsIm51bWVybSIsImRlbm9tbSIsInJ1bGVTcGFjaW5nIiwibnVtU2hpZnQiLCJjbGVhcmFuY2UiLCJkZW5vbVNoaWZ0IiwiZnJhYyIsIm1pZFNoaWZ0IiwiY2FuZGlkYXRlQ2xlYXJhbmNlIiwiZGVsaW1TaXplIiwid2l0aERlbGltcyIsImxlZnRPcCIsInJpZ2h0T3AiLCJhbGlnbm1lbnQiLCJzbWFzaEhlaWdodCIsInNtYXNoRGVwdGgiLCJ0YkFyZyIsImRlbGltaXRlclNpemVzIiwiXFxiaWdsIiwiXFxCaWdsIiwiXFxiaWdnbCIsIlxcQmlnZ2wiLCJcXGJpZ3IiLCJcXEJpZ3IiLCJcXGJpZ2dyIiwiXFxCaWdnciIsIlxcYmlnbSIsIlxcQmlnbSIsIlxcYmlnZ20iLCJcXEJpZ2dtIiwiXFxiaWciLCJcXEJpZyIsIlxcYmlnZyIsIlxcQmlnZyIsImRlbGltaXRlcnMiLCJjaGVja0RlbGltaXRlciIsImlubmVySGVpZ2h0IiwiaW5uZXJEZXB0aCIsImhhZE1pZGRsZSIsImlzTWlkZGxlIiwibWlkZGxlRGVsaW0iLCJsZWZ0Tm9kZSIsInJpZ2h0Tm9kZSIsIm1pZGRsZU5vZGUiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX21hdGhNTFRyZWVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fU3R5bGVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfM19fc2l6aW5nX18iLCJuZXdTdHlsZSIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2tleXNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMF9iYWJlbF9ydW50aW1lX2NvcmVfanNfb2JqZWN0X2tleXNfX19kZWZhdWx0IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8yX19QYXJzZU5vZGVfXyIsImZvbnRBbGlhc2VzIiwiXFxCYmIiLCJcXGJvbGQiLCJcXGZyYWsiLCJcXGJtIiwib2xkRm9udEZ1bmNzTWFwIiwiXFxybSIsIlxcc2YiLCJcXHR0IiwiXFxiZiIsIlxcaXQiLCJzdXBzdWJHcm91cCIsImJhc2VDaGFyIiwiYWNjZW50Qm9keSIsImFjY2VudFdyYXAiLCJOT05fU1RSRVRDSFlfQUNDRU5UX1JFR0VYIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19zdHJldGNoeV9fIiwiY2hvb3NlTWF0aFN0eWxlIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8wX19kZWZpbmVFbnZpcm9ubWVudF9fIiwiZW52aXJvbm1lbnRzIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8xX19kZWZpbmVFbnZpcm9ubWVudF9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19QYXJzZU5vZGVfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNV9fdW5pdHNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfOF9fYnVpbGRIVE1MX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzlfX2J1aWxkTWF0aE1MX18iLCJwYXJzZUFycmF5Iiwicm93R2FwcyIsImxhc3RSb3ciLCJjciIsImRDZWxsU3R5bGUiLCJuciIsImFycmF5Y29sc2VwIiwiYmFzZWxpbmVza2lwIiwiam90IiwiYXJyYXlza2lwIiwiYXJyYXlzdHJldGNoIiwiYXJzdHJ1dEhlaWdodCIsImFyc3RydXREZXB0aCIsImlucm93Iiwib3V0cm93IiwiZWx0IiwiZ2FwIiwiYWRkSm90IiwiY29sRGVzY3JpcHRpb25zIiwiY29sU2VwIiwiY29sRGVzY3JOdW0iLCJjb2xEZXNjciIsImZpcnN0U2VwYXJhdG9yIiwic2VwYXJhdG9yIiwiX3NlcGFyYXRvciIsInNlcHdpZHRoIiwiaHNraXBCZWZvcmVBbmRBZnRlciIsInByZWdhcCIsInBvc3RnYXAiLCJhbGlnbmVkSGFuZGxlciIsIm51bU1hdGhzIiwibnVtQ29scyIsImVtcHR5R3JvdXAiLCJhcmcwIiwiaXNBbGlnbmVkIiwiY3VyTWF0aHMiLCJfYWxpZ24iLCJfcHJlZ2FwIiwiY29sYWxpZ24iLCJjYSIsIm1hdHJpeCIsInBtYXRyaXgiLCJibWF0cml4IiwiQm1hdHJpeCIsInZtYXRyaXgiLCJWbWF0cml4IiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV8zX19MZXhlcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV80X19Ub2tlbl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV81X19tYWNyb3NfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfNl9fUGFyc2VFcnJvcl9fIiwiX19XRUJQQUNLX0lNUE9SVEVEX01PRFVMRV83X29iamVjdF9hc3NpZ25fXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfN19vYmplY3RfYXNzaWduX19fZGVmYXVsdCIsIk1hY3JvRXhwYW5kZXIiLCJwdXNoVG9rZW4iLCJmdXR1cmUiLCJ0b2tlbnMiLCJfc3RhY2siLCJzdGFydE9mQXJnIiwicG9wVG9rZW4iLCJ0b2siLCJ0b3BUb2tlbiIsIl9nZXRFeHBhbnNpb24yIiwiX2dldEV4cGFuc2lvbiIsImV4cGFuc2lvbiIsImNvbnN1bWVBcmdzIiwiX2V4cGFuc2lvbiIsInB1c2hUb2tlbnMiLCJleHBhbmRPbmNlIiwiZXhwYW5kZWQiLCJzdHJpcHBlZCIsImJvZHlMZXhlciIsInN0aWNreSIsInJlbG9jIiwiX19tYXRjaEF0UmVsb2NhdGFibGUiLCJmbGFncyIsImlnbm9yZUNhc2UiLCJtdWx0aWxpbmUiLCJ1bmljb2RlIiwiZ2V0UmVsb2NhdGFibGUiLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzBfX3N1Ym1vZHVsZXNfa2F0ZXhfZm9udHNfZm9udE1ldHJpY3NEYXRhX18iLCJfX1dFQlBBQ0tfSU1QT1JURURfTU9EVUxFXzFfX3N5bWJvbHNfXyIsIl9fV0VCUEFDS19JTVBPUlRFRF9NT0RVTEVfMl9fdXRpbHNfXyIsImJ1aWx0aW5NYWNyb3MiLCJkZWZpbmVNYWNybyIsImRvdHNCeVRva2VuIiwiLCIsIlxcbm90IiwiKyIsIj0iLCItIiwiKiIsIjoiLCJcXERPVFNCIiwiXFxjb3Byb2QiLCJcXGJpZ3ZlZSIsIlxcYmlnd2VkZ2UiLCJcXGJpZ3VwbHVzIiwiXFxiaWdjYXAiLCJcXGJpZ2N1cCIsIlxccHJvZCIsIlxcc3VtIiwiXFxiaWdvdGltZXMiLCJcXGJpZ29wbHVzIiwiXFxiaWdvZG90IiwiXFxiaWdzcWN1cCIsIlxcaW1wbGllcyIsIlxcaW1wbGllZGJ5IiwiXFxBbmQiLCJcXGxvbmdyaWdodGFycm93IiwiXFxMb25ncmlnaHRhcnJvdyIsIlxcbG9uZ2xlZnRhcnJvdyIsIlxcTG9uZ2xlZnRhcnJvdyIsIlxcbG9uZ2xlZnRyaWdodGFycm93IiwiXFxMb25nbGVmdHJpZ2h0YXJyb3ciLCJcXG1hcHN0byIsIlxcbG9uZ21hcHN0byIsIlxcaG9va3JpZ2h0YXJyb3ciLCJcXGlmZiIsIlxcZG90ZXEiLCJcXG1hdGhiaW4iLCJcXGJtb2QiLCJcXG1hdGhyZWwiLCJcXHJlbGJhciIsIlxcUmVsYmFyIiwiXFx4cmlnaHRhcnJvdyIsIlxceGxlZnRhcnJvdyIsIlxcRE9UU0kiLCJcXGludCIsIlxcb2ludCIsIlxcaWludCIsIlxcaWlpbnQiLCJcXGlpaWludCIsIlxcaWRvdHNpbnQiLCJcXERPVFNYIiwidGhlZG90cyIsImV4cGFuZEFmdGVyRnV0dXJlIiwic3BhY2VBZnRlckRvdHMiLCIpIiwiXSIsIlxccmJyYWNrIiwiXFx9IiwiXFxyYnJhY2UiLCJcXHJhbmdsZSIsIlxccmNlaWwiLCJcXHJmbG9vciIsIlxccmdyb3VwIiwiXFxybW91c3RhY2hlIiwiXFxyaWdodCIsIjsiLCIuIiwibGF0ZXhSYWlzZUEiLCLMgSIsIsyAIiwizIgiLCLMgyIsIsyEIiwizIYiLCLMjCIsIsyCIiwizIciLCLMiiIsIsyLIiwiw6EiLCLDoCIsIsOkIiwix58iLCLDoyIsIsSBIiwixIMiLCLhuq8iLCLhurEiLCLhurUiLCLHjiIsIsOiIiwi4bqlIiwi4bqnIiwi4bqrIiwiyKciLCLHoSIsIse7Iiwi4biDIiwixIciLCLEjSIsIsSJIiwixIsiLCLEjyIsIuG4iyIsIsOpIiwiw6giLCLDqyIsIuG6vSIsIsSTIiwi4biXIiwi4biVIiwixJUiLCLEmyIsIsOqIiwi4bq/Iiwi4buBIiwi4buFIiwixJciLCLhuJ8iLCLHtSIsIuG4oSIsIsSfIiwix6ciLCLEnSIsIsShIiwi4binIiwiyJ8iLCLEpSIsIuG4oyIsIuG4ryIsIsSpIiwixKsiLCLErSIsIseQIiwix7AiLCLEtSIsIuG4sSIsIsepIiwixLoiLCLEviIsIuG4vyIsIuG5gSIsIsWEIiwix7kiLCLDsSIsIsWIIiwi4bmFIiwiw7MiLCLDsiIsIsO2IiwiyKsiLCLDtSIsIuG5jSIsIuG5jyIsIsitIiwixY0iLCLhuZMiLCLhuZEiLCLFjyIsIseSIiwiw7QiLCLhu5EiLCLhu5MiLCLhu5ciLCLIryIsIsixIiwixZEiLCLhuZUiLCLhuZciLCLFlSIsIsWZIiwi4bmZIiwixZsiLCLhuaUiLCLFoSIsIuG5pyIsIsWdIiwi4bmhIiwi4bqXIiwixaUiLCLhuasiLCLDuiIsIsO5Iiwiw7wiLCLHmCIsIsecIiwix5YiLCLHmiIsIsWpIiwi4bm5IiwixasiLCLhubsiLCLFrSIsIseUIiwiw7siLCLFryIsIsWxIiwi4bm9Iiwi4bqDIiwi4bqBIiwi4bqFIiwixbUiLCLhuociLCLhupgiLCLhuo0iLCLhuosiLCLDvSIsIuG7syIsIsO/Iiwi4bu5IiwiyLMiLCLFtyIsIuG6jyIsIuG6mSIsIsW6Iiwixb4iLCLhupEiLCLFvCIsIsOBIiwiw4AiLCLDhCIsIseeIiwiw4MiLCLEgCIsIsSCIiwi4bquIiwi4bqwIiwi4bq0Iiwix40iLCLDgiIsIuG6pCIsIuG6piIsIuG6qiIsIsimIiwix6AiLCLHuiIsIuG4giIsIsSGIiwixIwiLCLEiCIsIsSKIiwixI4iLCLhuIoiLCLDiSIsIsOIIiwiw4siLCLhurwiLCLEkiIsIuG4liIsIuG4lCIsIsSUIiwixJoiLCLDiiIsIuG6viIsIuG7gCIsIuG7hCIsIsSWIiwi4bieIiwix7QiLCLhuKAiLCLEniIsIsemIiwixJwiLCLEoCIsIuG4piIsIsieIiwixKQiLCLhuKIiLCLDjSIsIsOMIiwiw48iLCLhuK4iLCLEqCIsIsSqIiwixKwiLCLHjyIsIsOOIiwixLAiLCLEtCIsIuG4sCIsIseoIiwixLkiLCLEvSIsIuG4viIsIuG5gCIsIsWDIiwix7giLCLDkSIsIsWHIiwi4bmEIiwiw5MiLCLDkiIsIsOWIiwiyKoiLCLDlSIsIuG5jCIsIuG5jiIsIsisIiwixYwiLCLhuZIiLCLhuZAiLCLFjiIsIseRIiwiw5QiLCLhu5AiLCLhu5IiLCLhu5YiLCLIriIsIsiwIiwixZAiLCLhuZQiLCLhuZYiLCLFlCIsIsWYIiwi4bmYIiwixZoiLCLhuaQiLCLFoCIsIuG5piIsIsWcIiwi4bmgIiwixaQiLCLhuaoiLCLDmiIsIsOZIiwiw5wiLCLHlyIsIsebIiwix5UiLCLHmSIsIsWoIiwi4bm4IiwixaoiLCLhuboiLCLFrCIsIseTIiwiw5siLCLFriIsIsWwIiwi4bm8Iiwi4bqCIiwi4bqAIiwi4bqEIiwixbQiLCLhuoYiLCLhuowiLCLhuooiLCLDnSIsIuG7siIsIsW4Iiwi4bu4IiwiyLIiLCLFtiIsIuG6jiIsIsW5Iiwixb0iLCLhupAiLCLFuyIsIs6sIiwi4b2wIiwi4b6xIiwi4b6wIiwizq0iLCLhvbIiLCLOriIsIuG9tCIsIs6vIiwi4b22Iiwiz4oiLCLOkCIsIuG/kiIsIuG/kSIsIuG/kCIsIs+MIiwi4b24Iiwiz40iLCLhvboiLCLPiyIsIs6wIiwi4b+iIiwi4b+hIiwi4b+gIiwiz44iLCLhvbwiLCLOjiIsIuG/qiIsIs6rIiwi4b+pIiwi4b+oIiwizo8iLCLhv7oiLCJpc1BsYWluT2JqZWN0IiwiaGFzT3duQ29uc3RydWN0b3IiLCJoYXNJc1Byb3RvdHlwZU9mIiwiY29weUlzQXJyYXkiLCJjbG9uZSIsImRlZXAiLCJWTWVzc2FnZSIsIlZNZXNzYWdlUHJvdG90eXBlIiwicmVhc29uIiwicGFyc2VPcmlnaW4iLCJydWxlSWQiLCJub3JtYWxpemVBcnJheSIsImFsbG93QWJvdmVSb290IiwidXAiLCJmYXRhbCIsInNwbGl0UGF0aFJlIiwic3BsaXRQYXRoIiwiZmlsZW5hbWUiLCJyZXNvbHZlIiwicmVzb2x2ZWRQYXRoIiwicmVzb2x2ZWRBYnNvbHV0ZSIsImlzUGF0aEFic29sdXRlIiwiaXNBYnNvbHV0ZSIsInRyYWlsaW5nU2xhc2giLCJyZWxhdGl2ZSIsImZyb21QYXJ0cyIsInRvUGFydHMiLCJzYW1lUGFydHNMZW5ndGgiLCJvdXRwdXRQYXJ0cyIsImRpcm5hbWUiLCJiYXNlbmFtZSIsImV4dG5hbWUiLCJzZXAiLCJkZWxpbWl0ZXIiLCJ4cyIsIm5wYXRoIiwibkZpbGVOYW1lIiwiVkZpbGUiLCJvcmRlciIsImhpc3RvcnkiLCJhc3NlcnRQYXJ0IiwicGFydCIsImFzc2VydE5vbkVtcHR5IiwiYXNzZXJ0UGF0aCIsInN0ZW0iLCJmaWxlUGF0aCIsImZhaWwiLCJmbnMiLCJtaWRkbGV3YXJlIiwiaW52b2tlZCIsImNhbGxiYWNrIiwidGhlbiIsInVzZSIsInVuaWZpZWQiLCJhdHRhY2hlcnMiLCJ0cmFuc2Zvcm1lcnMiLCJ0cm91Z2giLCJmcm96ZW4iLCJmcmVlemVJbmRleCIsInByb2Nlc3NvciIsImFzc2VydFVuZnJvemVuIiwiYWRkUGx1Z2luIiwiYWRkTGlzdCIsImFkZFByZXNldCIsInBsdWdpbnMiLCJwbHVnaW4iLCJmaW5kIiwicGxhaW4iLCJ2ZmlsZSIsImFzc2VydFBhcnNlciIsIm5ld2FibGUiLCJhc3NlcnRDb21waWxlciIsImFzc2VydE5vZGUiLCJjb21waWxlIiwicnVuU3luYyIsImNvbXBsZXRlIiwiYmFpbCIsImFzc2VydERvbmUiLCJwcm9jZXNzU3luYyIsInRyYW5zZm9ybWVyIiwiY2IiLCJQcm9taXNlIiwiZXhlY3V0b3IiLCJyZWplY3QiLCJwaXBlbGluZSIsImFzeW5jTmFtZSIsImJpbmQiLCJib3VuZCIsImJvdW5kTGVuZ3RoIiwiYm91bmRBcmdzIiwidG9rZW5pemVyUHJvdG8iLCJ0b2tlblN0YXJ0T2Zmc2V0IiwidG9rZW5Db2wiLCJ0b2tlbkxpbmUiLCJsaW5lU3RhcnRQb3NTdGFjayIsImF0dGFjaExvY2F0aW9uSW5mbyIsInNvdXJjZVBvcyIsImxvY2F0aW9uSW5mb01peGluIiwiZW50aXR5Q29kZVBvaW50c0NvdW50IiwibGVhZiIsIk5BTUVEX0VOVElUWV9UUklFIiwic2V0RW5kTG9jYXRpb24iLCJjdExvY2F0aW9uIiwiaXNDbG9zaW5nRW5kVGFnIiwicGFyc2VyUHJvdG8iLCJhdHRhY2hhYmxlRWxlbWVudExvY2F0aW9uIiwicmVjaXBpZW50Tm9kZSIsIklOSVRJQUxfTU9ERSIsImlzUXVpcmtzIiwic2V0UXVpcmtzTW9kZSIsImlzUXVpcmtzTW9kZSIsInBhcnNlNSIsIlBhcnNlcjUiLCJoYXNDbGFzcyIsImlzVGFnIiwiaXNJbmxpbmVNYXRoIiwiaXNNYXRoIiwiaW5saW5lTWF0aERvdWJsZURpc3BsYXkiLCJyZW5kZXJlZFZhbHVlIiwia2F0ZXgiLCJpbmxpbmVNYXRoQXN0IiwidGFnTmFtZXMiLCJFWFBSRVNTSU9OIiwiaW5jcmVtZW50IiwiaW5jbHVkZVdoaXRlU3BhY2UiLCJhZnRlciIsIm9taXNzaW9uIiwiaGVhZE9yQ29sZ3JvdXBPckNhcHRpb24iLCJsaSIsImR0IiwicnVieUVsZW1lbnQiLCJycCIsIm9wdGdyb3VwIiwib3B0aW9uIiwibWVudWl0ZW0iLCJjb2xncm91cCIsImNhcHRpb24iLCJ0aGVhZCIsInRib2R5IiwidGZvb3QiLCJ0ciIsInRkIiwiY2VsbHMiLCJ0aCIsIndoaXRlU3BhY2VMZWZ0IiwiYmVmb3JlIiwicGxhY2UiLCJhbHBoYWJldGljYWwiLCJkZWNpbWFsIiwiZXNjYXBlT25seSIsInVzZU5hbWVkUmVmZXJlbmNlcyIsImNoYXJhY3RlcnMiLCJlbnRpdGllcyIsImNvbnN0cnVjdCIsIkVYUFJFU1NJT05fRVNDQVBFIiwidG9FeHByZXNzaW9uIiwiRVhQUkVTU0lPTl9TVVJST0dBVEVfUEFJUiIsIkVYUFJFU1NJT05fQk1QIiwib21pdCIsIm9taXRPcHRpb25hbFNlbWljb2xvbnMiLCJjaGFyIiwidG9IZXhSZWZlcmVuY2UiLCJuYW1lZCIsInNob3J0ZXN0IiwidXNlU2hvcnRlc3RSZWZlcmVuY2VzIiwibGVnYWN5IiwiYWxwaGFudW1lcmljYWwiLCJ0b05hbWVkIiwiaGV4YWRlY2ltYWwiLCJpc0xpdGVyYWwiLCJ0aWdodCIsIkRRIiwiU1EiLCJMVCIsInRpZ2h0Q2xvc2UiLCJTTyIsIkdUIiwiRVEiLCJrZWJhYiIsImF0dHJpYnV0ZU5hbWUiLCJ1bnF1b3RlZCIsImFsdGVybmF0aXZlIiwidGlnaHRMaXN0cyIsImNvbGxhcHNlRW1wdHkiLCJVTlFVT1RFRCIsImNjb3VudCIsIlNJTkdMRV9RVU9URUQiLCJET1VCTEVfUVVPVEVEIiwiYXR0cmlidXRlVmFsdWUiLCJwdWIiLCJzeXMiLCJzbWFydCIsInF1b3RlU21hcnQiLCJlcnJvcnMiLCJhbGxvd1BhcnNlRXJyb3JzIiwiYWxsb3dEYW5nZXJvdXNDaGFyYWN0ZXJzIiwiQ0xFQU5fTkFNRSIsIlVRX1ZBTFVFIiwiVVFfVkFMVUVfQ0xFQU4iLCJzaW5nbGVRdW90ZWQiLCJTUV9WQUxVRSIsIlNRX1ZBTFVFX0NMRUFOIiwiZG91YmxlUXVvdGVkIiwiRFFfVkFMVUUiLCJEUV9WQUxVRV9DTEVBTiIsIlFVT1RFUyIsIm9taXRPcHRpb25hbFRhZ3MiLCJwcmVmZXJVbnF1b3RlZCIsInRpZ2h0QXR0cmlidXRlcyIsInRpZ2h0Q29tbWFTZXBhcmF0ZWRMaXN0cyIsInRpZ2h0U2VsZkNsb3NpbmciLCJjb2xsYXBzZUVtcHR5QXR0cmlidXRlcyIsImNsb3NlU2VsZkNsb3NpbmciLCJ0b0hUTUwiLCJTdXBlciIsIk9mIiwiRnJvbSIsInBhcmFtZXRlcnMiLCJlbnRpdHlDaGFyYWN0ZXJzIiwidGVybWluYXRlZCIsImZvbGxvd2luZyIsIndhcm5pbmciLCJlbnRpdHkiLCJhZGRpdGlvbmFsIiwibm9uVGVybWluYXRlZCIsImhhbmRsZVRleHQiLCJoYW5kbGVSZWZlcmVuY2UiLCJoYW5kbGVXYXJuaW5nIiwidGV4dENvbnRleHQiLCJyZWZlcmVuY2VDb250ZXh0Iiwid2FybmluZ0NvbnRleHQiLCJNRVNTQUdFUyIsIk5FV0xJTkUiLCJhdCIsImZsdXNoIiwiTEVTU19USEFOIiwiT0NUT1RIT1JQIiwiTkFNRUQiLCJYX0xPV0VSIiwiWF9VUFBFUiIsIkhFWEFERUNJTUFMIiwiREVDSU1BTCIsIlRFU1RTIiwiY2hhcmFjdGVyRW50aXRpZXMiLCJOQU1FRF9VTktOT1dOIiwiTkFNRURfTk9UX1RFUk1JTkFURUQiLCJOQU1FRF9FTVBUWSIsIkVRVUFMIiwiTlVNRVJJQ19OT1RfVEVSTUlOQVRFRCIsIk5VTUVSSUNfUFJPSElCSVRFRCIsIlJFUExBQ0VNRU5UIiwiTlVNRVJJQ19ESVNBTExPV0VEIiwiaXNXYXJuaW5nIiwiTlVNRVJJQ19FTVBUWSIsIk5VTUVSSUNfUkVGRVJFTkNFIiwiVEVSTUlOQVRFRCIsIlZPSUQiLCJOQU1FRF9SRUZFUkVOQ0UiLCJkZWNvZGVyIiwib2Zmc2V0cyIsIm1hdGNoZWQiLCJ2YWx1ZUxlbmd0aCIsInRva2VuaXplcnMiLCJ1cGRhdGVQb3NpdGlvbiIsIm9ubHlBdFN0YXJ0IiwiYXRTdGFydCIsIm5vdEluTGlzdCIsImluTGlzdCIsIm5vdEluQmxvY2siLCJpbkJsb2NrIiwibm90SW5MaW5rIiwiaW5MaW5rIiwiZW9mIiwiY29tYmluZWQiLCJpbmRlbnRhdGlvbiIsImdldE9mZnNldCIsInZhbGlkYXRlRWF0IiwicmVzZXQiLCJNRVJHRUFCTEVfTk9ERVMiLCJtZXJnZWFibGUiLCJleGl0U3RhcnQiLCJlc2NhcGVzIiwicGVkYW50aWMiLCJmb3JjZSIsImhhcmQiLCJzb2Z0IiwiRVhQUkVTU0lPTl9MSU5FX0JSRUFLUyIsInRva2VuaXplQmxvY2siLCJyZW1vdmVQb3NpdGlvbiIsImJsYW5rUXVldWUiLCJzdWJ2YWx1ZVF1ZXVlIiwiY29udGVudFF1ZXVlIiwiQ09ERV9JTkRFTlQiLCJmbGFnIiwiQ19USUxERSIsIkNfVElDSyIsImRlY29kZSIsInVuZXNjYXBlIiwiaW50ZXJydXB0b3JzIiwiaW50ZXJydXB0b3IiLCJib29sIiwiYm9vbHMiLCJyZXN0IiwibmV4dEluZGV4Iiwic3RhcnRJbmRleCIsInByZWZpeGVkIiwiZXhpdCIsImN1cnJlbnRMaW5lIiwiaW5kZW50cyIsIkNfR1QiLCJpbnRlcnJ1cHQiLCJlbnRlckJsb2NrIiwiQ19IQVNIIiwiTUFYX0FUWF9DT1VOVCIsIm1hcmtlckNvdW50IiwiQ19BU1RFUklTSyIsIkNfREFTSCIsIkNfVU5ERVJTQ09SRSIsIlRIRU1BVElDX0JSRUFLX01BUktFUl9DT1VOVCIsInN0b3BzIiwiICIsIlx0IiwibWF4aW11bSIsInBhZGRpbmciLCJtaW5JbmRlbnQiLCJnZXRJbmRlbnQiLCJtYXJrZXJzIiwiY3VycmVudE1hcmtlciIsInByZXZFbXB0eSIsImFsbExpbmVzIiwiZW1wdHlMaW5lcyIsIml0ZW0iLCJlbnRlclRvcCIsImV4aXRCbG9ja3F1b3RlIiwiaXNMb29zZSIsImluZGVudGVkIiwiaW50ZXJ1cHRvcnMiLCJUQUJfU0laRSIsIkxJU1RfT1JERVJFRF9DT01NT05NQVJLX01BUktFUlMiLCJMSVNUX09SREVSRURfTUFSS0VSUyIsIkxJU1RfVU5PUkRFUkVEX01BUktFUlMiLCJ0cmFpbCIsImVudGVyTGlzdCIsIkNfWF9MT1dFUiIsIkVYUFJFU1NJT05fTE9PU0VfTElTVF9JVEVNIiwiRVhQUkVTU0lPTl9UQVNLX0lURU0iLCJFWFBSRVNTSU9OX0JVTExFVCIsIkVYUFJFU1NJT05fUEVEQU5USUNfQlVMTEVUIiwiRVhQUkVTU0lPTl9JTklUSUFMX0lOREVOVCIsInRhc2siLCJwZWRhbnRpY0xpc3RJdGVtIiwibm9ybWFsTGlzdEl0ZW0iLCJyZXBsYWNlciIsImJ1bGxldCIsInRyaW1tZWRMaW5lcyIsIiQyIiwiJDMiLCIkNCIsInJlbW92ZUluZGVudCIsIk1BWF9IRUFESU5HX0lOREVOVCIsIlNFVEVYVF9NQVJLRVJTIiwib3BlblRhZyIsImNsb3NlVGFnIiwib3BlbkNsb3NlVGFnIiwic2VxdWVuY2VzIiwiQ19MVCIsImNvbGxhcHNlV2hpdGVTcGFjZSIsIkNfQkFDS1NMQVNIIiwiQ19CUkFDS0VUX09QRU4iLCJDX0JSQUNLRVRfQ0xPU0UiLCJDX0NBUkVUIiwiQ19DT0xPTiIsIkVYUFJFU1NJT05fSU5JVElBTF9UQUIiLCJzdWJxdWV1ZSIsIkNfRE9VQkxFX1FVT1RFIiwiQ19TSU5HTEVfUVVPVEUiLCJDX1BBUkVOX09QRU4iLCJDX1BBUkVOX0NMT1NFIiwiYmVmb3JlVVJMIiwiYmVmb3JlVGl0bGUiLCJpc0VuY2xvc2VkVVJMQ2hhcmFjdGVyIiwiaXNVbmNsb3NlZFVSTENoYXJhY3RlciIsImFsaWdubWVudHMiLCJoYXNEYXNoIiwicHJlYW1ibGUiLCJsaW5lQ291bnQiLCJsaW5lSW5kZXgiLCJwaXBlSW5kZXgiLCJNSU5fVEFCTEVfUk9XUyIsIlRBQkxFX0FMSUdOX05PTkUiLCJUQUJMRV9BTElHTl9MRUZUIiwiVEFCTEVfQUxJR05fQ0VOVEVSIiwiVEFCTEVfQUxJR05fUklHSFQiLCJNSU5fVEFCTEVfQ09MVU1OUyIsInRyaW1UcmFpbGluZ0xpbmVzIiwibG9jYXRlIiwiYXV0b0xpbmsiLCJDX0FUX1NJR04iLCJDX1NMQVNIIiwiTUFJTFRPIiwiTUFJTFRPX0xFTkdUSCIsImhhc0F0Q2hhcmFjdGVyIiwiZW50ZXJMaW5rIiwiUFJPVE9DT0xTIiwiTUFJTFRPX1BST1RPQ09MIiwiUFJPVE9DT0xTX0xFTkdUSCIsInByb3RvY29sIiwicGFyZW5Db3VudCIsIm5leHRDaGFyYWN0ZXIiLCJpbmxpbmVIVE1MIiwiRVhQUkVTU0lPTl9IVE1MX0xJTktfT1BFTiIsIkVYUFJFU1NJT05fSFRNTF9MSU5LX0NMT1NFIiwiTElOS19NQVJLRVJTIiwiQ09NTU9OTUFSS19MSU5LX01BUktFUlMiLCJjbG9zZWQiLCJoYXNNYXJrZXIiLCJpc0ltYWdlIiwiVF9MSU5LIiwiVF9JTUFHRSIsIlRfRk9PVE5PVEUiLCJSRUZFUkVOQ0VfVFlQRV9TSE9SVENVVCIsIlJFRkVSRU5DRV9UWVBFX0NPTExBUFNFRCIsIlJFRkVSRU5DRV9UWVBFX0ZVTEwiLCJicmFja2V0ZWQiLCJpbnRybyIsImFzdGVyaXNrIiwidW5kZXJzY29yZSIsInN0cmlrZXRocm91Z2giLCJvcGVuaW5nQ291bnQiLCJ0aWNrUXVldWUiLCJoYXJkQnJlYWsiLCJNSU5fQlJFQUtfTEVOR1RIIiwic2V0T3B0aW9ucyIsInRvZ2dsZSIsImluZGVudGVkQ29kZSIsImZlbmNlZENvZGUiLCJhdHhIZWFkaW5nIiwic2V0ZXh0SGVhZGluZyIsImRlbGV0aW9uIiwidG9rZW5pemVGYWN0b3J5IiwiTG9jYWwiLCJ1bmhlcml0IiwiX3NsaWNlZFRvQXJyYXkiLCJlc2NhcGVSZWdFeHAiLCJDX0ZFTkNFIiwiYXZhaWxhYmxlQmxvY2tzIiwiY3VzdG9tQmxvY2tzIiwia2VlcCIsIl9rZWVwIiwiYmxvY2tUeXBlIiwiYmxvY2tUaXRsZSIsImxpbmVzVG9FYXQiLCJsaW5lVG9FYXQiLCJjb250ZW50U3RyaW5nIiwic3RyaW5nVG9FYXQiLCJwb3RlbnRpYWxCbG9jayIsInRpdGxlQWxsb3dlZCIsImJsb2NrQ2hpbGRyZW4iLCJ0aXRsZU5vZGUiLCJjbGFzc0xpc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJtYXhJbnQiLCJ0TWluIiwidE1heCIsImRhbXAiLCJpbml0aWFsQmlhcyIsImluaXRpYWxOIiwicmVnZXhOb25BU0NJSSIsInJlZ2V4U2VwYXJhdG9ycyIsIm92ZXJmbG93Iiwibm90LWJhc2ljIiwiaW52YWxpZC1pbnB1dCIsImJhc2VNaW51c1RNaW4iLCJzdHJpbmdGcm9tQ2hhckNvZGUiLCJkaWdpdFRvQmFzaWMiLCJkaWdpdCIsImFkYXB0IiwiZGVsdGEiLCJudW1Qb2ludHMiLCJmaXJzdFRpbWUiLCJ0b0FTQ0lJIiwiZW5jb2RlZCIsIm1hcERvbWFpbiIsImhhbmRsZWRDUENvdW50IiwiYmFzaWNMZW5ndGgiLCJiaWFzIiwicSIsImN1cnJlbnRWYWx1ZSIsImlucHV0TGVuZ3RoIiwiaGFuZGxlZENQQ291bnRQbHVzT25lIiwiYmFzZU1pbnVzVCIsInFNaW51c1QiLCJleHRyYSIsImNvdW50ZXIiLCJ1Y3MyZGVjb2RlIiwic3RyaW5naWZ5UHJpbWl0aXZlIiwicXMiLCJlcSIsIm1heEtleXMiLCJrc3RyIiwidnN0ciIsImRlY29kZVVSSUNvbXBvbmVudCIsInVybFBhcnNlIiwidXJsUmVzb2x2ZSIsInJlc29sdmVPYmplY3QiLCJ1cmxSZXNvbHZlT2JqZWN0IiwidXJsRm9ybWF0IiwiVXJsIiwic2xhc2hlcyIsImF1dGgiLCJwb3J0IiwiaG9zdG5hbWUiLCJxdWVyeSIsInBhdGhuYW1lIiwicHJvdG9jb2xQYXR0ZXJuIiwicG9ydFBhdHRlcm4iLCJzaW1wbGVQYXRoUGF0dGVybiIsInVud2lzZSIsImF1dG9Fc2NhcGUiLCJub25Ib3N0Q2hhcnMiLCJob3N0RW5kaW5nQ2hhcnMiLCJob3N0bmFtZU1heExlbiIsImhvc3RuYW1lUGFydFBhdHRlcm4iLCJob3N0bmFtZVBhcnRTdGFydCIsInVuc2FmZVByb3RvY29sIiwiamF2YXNjcmlwdCIsImphdmFzY3JpcHQ6IiwiaG9zdGxlc3NQcm90b2NvbCIsInNsYXNoZWRQcm90b2NvbCIsImh0dHAiLCJodHRwcyIsImZ0cCIsImdvcGhlciIsImh0dHA6IiwiaHR0cHM6IiwiZnRwOiIsImdvcGhlcjoiLCJmaWxlOiIsInBhcnNlUXVlcnlTdHJpbmciLCJzbGFzaGVzRGVub3RlSG9zdCIsInF1ZXJ5SW5kZXgiLCJzcGxpdHRlciIsInVTcGxpdCIsInNpbXBsZVBhdGgiLCJxc1BhcnNlIiwiaGVjIiwibG93ZXJQcm90byIsImF0U2lnbiIsImhvc3RFbmQiLCJwYXJzZUhvc3QiLCJpcHY2SG9zdG5hbWUiLCJob3N0cGFydHMiLCJuZXdwYXJ0IiwidmFsaWRQYXJ0cyIsIm5vdEhvc3QiLCJiaXQiLCJhZSIsImVzYyIsInFtIiwia3MiLCJyZWxQYXRoIiwidGtleXMiLCJ0ayIsInRrZXkiLCJya2V5cyIsInJrIiwicmtleSIsImF1dGhJbkhvc3QiLCJpc1NvdXJjZUFicyIsImlzUmVsQWJzIiwibXVzdEVuZEFicyIsInJlbW92ZUFsbERvdHMiLCJzcmNQYXRoIiwicHN5Y2hvdGljIiwiaGFzVHJhaWxpbmdTbGFzaCIsIl90eXBlb2YiLCJfcmVxdWlyZSIsIlVSTFNlYXJjaFBhcmFtcyIsImlmcmFtZXMiLCJlYXRlblZhbHVlIiwic3BlY2lhbENoYXJzIiwicHJvdmlkZXIiLCJkZXRlY3RQcm92aWRlciIsImZpbmFsVXJsIiwiZHJvcHBlZFF1ZXJ5UGFyYW1ldGVycyIsImlnbm9yZWQiLCJfcnVsZSIsInJlbW92ZUZpbGVOYW1lIiwicmVtb3ZlQWZ0ZXIiLCJhcHBlbmQiLCJjb21wdXRlRmluYWxVcmwiLCJ0aHVtYm5haWwiLCJ0aHVtYm5haWxVUkwiLCJ0aHVtYm5haWxDb25maWciLCJjb21wdXRlVGh1bWJuYWlsIiwiYWxsb3dmdWxsc2NyZWVuIiwiZnJhbWVib3JkZXIiLCJmbmMiLCJyZW1hcmsiLCJsaW5lSW5wdXQiLCJ0ZXh0SW5wdXQiLCJtdWx0aUNob2ljZSIsInNiIiwiYXR0ZW50aW9uIiwicXVlc3Rpb24iLCJnb29kIiwiYmFkIiwid3d3LnlvdXR1YmUuY29tIiwicmVoeXBlS2F0ZXgiLCJyZWh5cGVTdHJpbmdpZnkiXSwibWFwcGluZ3MiOiJnQ0FBQSxNQUlBLFdBR0ksSUFGQSxJQUFJQSxLQUVLQyxFQUFJLEVBQUdBLEVBQUlDLFVBQVVDLE9BQVFGLElBQUssQ0FDdkMsSUFBSUcsRUFBU0YsVUFBVUQsR0FFdkIsSUFBSyxJQUFJSSxLQUFPRCxFQUNSRSxFQUFlQyxLQUFLSCxFQUFRQyxLQUM1QkwsRUFBT0ssR0FBT0QsRUFBT0MsSUFLakMsT0FBT0wsR0FmUE0sRUFBaUJFLE9BQU9DLFVBQVVILGVDTXRDLElBQUlJLEVBQXdCRixPQUFPRSxzQkFDL0JKLEVBQWlCRSxPQUFPQyxVQUFVSCxlQUNsQ0ssRUFBbUJILE9BQU9DLFVBQVVHLHFCQXNEeEMsTUE1Q0EsV0FDQyxJQUNDLElBQUtKLE9BQU9LLE9BQ1gsT0FBTyxFQU1SLElBQUlDLEVBQVEsSUFBSUMsT0FBTyxPQUV2QixHQURBRCxFQUFNLEdBQUssS0FDa0MsTUFBekNOLE9BQU9RLG9CQUFvQkYsR0FBTyxHQUNyQyxPQUFPLEVBS1IsSUFEQSxJQUFJRyxLQUNLaEIsRUFBSSxFQUFHQSxFQUFJLEdBQUlBLElBQ3ZCZ0IsRUFBTSxJQUFNRixPQUFPRyxhQUFhakIsSUFBTUEsRUFLdkMsR0FBd0IsZUFIWE8sT0FBT1Esb0JBQW9CQyxHQUFPRSxJQUFJLFNBQVVDLEdBQzVELE9BQU9ILEVBQU1HLEtBRUhDLEtBQUssSUFDZixPQUFPLEVBSVIsSUFBSUMsS0FJSixNQUhBLHVCQUF1QkMsTUFBTSxJQUFJQyxRQUFRLFNBQVVDLEdBQ2xESCxFQUFNRyxHQUFVQSxJQUdmLHlCQURFakIsT0FBT2tCLEtBQUtsQixPQUFPSyxVQUFXUyxJQUFRRCxLQUFLLElBTTlDLE1BQU9NLEdBRVIsT0FBTyxHQUlRQyxHQUFvQnBCLE9BQU9LLE9BQVMsU0FBVWIsRUFBUUksR0FLdEUsSUFKQSxJQUFJeUIsRUFFQUMsRUFEQUMsRUF0REwsU0FBa0JDLEdBQ2pCLEdBQVksT0FBUkEsUUFBd0JDLElBQVJELEVBQ25CLE1BQU0sSUFBSUUsVUFBVSx5REFHckIsT0FBTzFCLE9BQU93QixHQWlETEcsQ0FBU25DLEdBR1RvQyxFQUFJLEVBQUdBLEVBQUlsQyxVQUFVQyxPQUFRaUMsSUFBSyxDQUcxQyxJQUFLLElBQUkvQixLQUZUd0IsRUFBT3JCLE9BQU9OLFVBQVVrQyxJQUduQjlCLEVBQWVDLEtBQUtzQixFQUFNeEIsS0FDN0IwQixFQUFHMUIsR0FBT3dCLEVBQUt4QixJQUlqQixHQUFJSyxFQUF1QixDQUMxQm9CLEVBQVVwQixFQUFzQm1CLEdBQ2hDLElBQUssSUFBSTVCLEVBQUksRUFBR0EsRUFBSTZCLEVBQVEzQixPQUFRRixJQUMvQlUsRUFBaUJKLEtBQUtzQixFQUFNQyxFQUFRN0IsTUFDdkM4QixFQUFHRCxFQUFRN0IsSUFBTTRCLEVBQUtDLEVBQVE3QixNQU1sQyxPQUFPOEIsS0NuRlMsU0FBWU0sRUFBTUMsRUFBT0MsR0FNeEMsT0FMYSxNQUFUQSxHQUFrQyxpQkFBVEQsSUFBcUJFLE1BQU1DLFFBQVFILEtBQzlEQyxFQUFRRCxFQUNSQSxNQUdLekIsS0FBV3lCLEdBQVNELEtBQU10QixPQUFPc0IsSUFDakIsTUFBVEUsSUFBa0JDLE1BQU1DLFFBQVFGLElBQ1ZHLFNBQVVILElBQ1ZBLE1BQU94QixPQUFPd0IsU0NMcEQsU0FBU0ksRUFBR0MsRUFBTUMsRUFBTUMsRUFBT0MsRUFBUUMsR0FDckMsSUFBSUMsRUFBdUIsT0FBWEYsUUFBOEJkLElBQVhjLEVBQ25DLElBQUlHLEVBQXFCLE9BQVZKLFFBQTRCYixJQUFWYSxFQUNqQyxJQUFJSyxFQUFRQyxFQUFRUixHQUVwQixHQUNFTSxJQUNrQixpQkFBVkosR0FBc0JBLEVBQVEsR0FBS0EsSUFBVU8sRUFBQUEsR0FFckQsTUFBTSxJQUFJQyxNQUFNLGdEQUdsQixHQUFJTCxLQUFlTixFQUFHLEtBQU1JLEtBQVlBLEVBQU9MLFVBQzdDLE1BQU0sSUFBSVksTUFBTSx3QkFHbEIsSUFBS1QsSUFBU0EsRUFBS1IsTUFBNkIsaUJBQWRRLEVBQUtSLEtBQ3JDLE9BQU8sRUFHVCxHQUFJWSxJQUFjQyxFQUNoQixNQUFNLElBQUlJLE1BQU0sa0NBR2xCLE9BQU9DLFFBQVFKLEVBQU01QyxLQUFLeUMsRUFBU0gsRUFBTUMsRUFBT0MsS0FHbEQsU0FBU0ssRUFBUVIsR0FDZixHQUFvQixpQkFBVEEsRUFDVCxPQXFFSixTQUFxQkEsR0FDbkIsT0FFQSxTQUFjQyxHQUNaLE9BQU9VLFFBQVFWLEdBQVFBLEVBQUtSLE9BQVNPLElBekU5QlksQ0FBWVosR0FHckIsR0FBYSxPQUFUQSxRQUEwQlgsSUFBVFcsRUFDbkIsT0FBT2EsRUFHVCxHQUFvQixpQkFBVGIsRUFDVCxPQUFRLFdBQVlBLEVBd0N4QixTQUFvQmMsR0FDbEIsSUFBSUMsRUEvQk4sU0FBb0JELEdBQ2xCLElBQUlFLEtBQ0F6RCxFQUFTdUQsRUFBTXZELE9BQ2YyQyxHQUFTLEVBRWIsT0FBU0EsRUFBUTNDLEdBQ2Z5RCxFQUFRZCxHQUFTTSxFQUFRTSxFQUFNWixJQUdqQyxPQUFPYyxFQXNCTUMsQ0FBV0gsR0FDcEJ2RCxFQUFTd0QsRUFBT3hELE9BRXBCLE9BRUEsV0FDRSxJQUFJMkMsR0FBUyxFQUViLE9BQVNBLEVBQVEzQyxHQUNmLEdBQUl3RCxFQUFPYixHQUFPZ0IsTUFBTUMsS0FBTTdELFdBQzVCLE9BQU8sRUFJWCxPQUFPLElBL0JYLFNBQXdCMEMsR0FDdEIsT0FFQSxTQUFpQkMsR0FDZixJQUFJeEMsRUFFSixJQUFLQSxLQUFPdUMsRUFDVixHQUFJQyxFQUFLeEMsS0FBU3VDLEVBQUt2QyxHQUNyQixPQUFPLEVBSVgsT0FBTyxLQXBDaUR1QyxHQUcxRCxHQUFvQixtQkFBVEEsRUFDVCxPQUFPQSxFQUdULE1BQU0sSUFBSVUsTUFBTSxnREErRGxCLFNBQVNHLElBQ1AsT0FBTyxFQ25IVCxNQUFpQk8sRUFJYkMsR0FBVyxFQUNYQyxFQUFPLE9BQ1BDLEdBQU8sRUFNWCxTQUFTSCxFQUFNSSxFQUFNeEIsRUFBTXlCLEVBQVNDLEdBVWxDLFNBQVNDLEVBQUkxQixFQUFNQyxFQUFPQyxHQUN4QixJQUFJeUIsRUFRSixPQU5BMUIsRUFBUUEsSUFBVUMsRUFBUyxFQUFJLE1BRTFCSCxHQUFRQyxFQUFLUixPQUFTTyxJQUFRRCxFQUFHQyxFQUFNQyxFQUFNQyxFQUFPQyxHQUFVLFFBQ2pFeUIsRUFBU0gsRUFBUXhCLEVBQU1DLEVBQU9DLEdBQVUsT0FHdEN5QixJQUFXTCxFQUNOSyxFQUdMM0IsRUFBS0gsVUFBWThCLElBQVdOLEdBUWxDLFNBQWF4QixFQUFVSyxHQUNyQixJQUVJMEIsRUFDQUQsRUFIQUUsRUFBT0osR0FBVyxFQUFJLEVBQ3RCeEIsR0FBU3dCLEVBQVU1QixFQUFTdkMsUUFBVSxHQUFLdUUsRUFJL0MsS0FBTzVCLEdBQVMsR0FBS0EsRUFBUUosRUFBU3ZDLFFBQVEsQ0FJNUMsR0FIQXNFLEVBQVEvQixFQUFTSSxJQUNqQjBCLEVBQVNDLEdBQVNGLEVBQUlFLEVBQU8zQixFQUFPQyxNQUVyQm9CLEVBQ2IsT0FBT0ssRUFHVDFCLEVBQTBCLGlCQUFYMEIsRUFBc0JBLEVBQVMxQixFQUFRNEIsRUFHeEQsT0FBT1QsRUF4QkVVLENBQUk5QixFQUFLSCxTQUFVRyxLQUFVc0IsRUFBT0EsRUFHdENLLEVBMUJXLG1CQUFUNUIsR0FBMEMsbUJBQVp5QixJQUN2Q0MsRUFBVUQsRUFDVkEsRUFBVXpCLEVBQ1ZBLEVBQU8sTUFHVDJCLEVBQUlILEdBWE5KLEVBQU1DLFNBQVdBLEVBQ2pCRCxFQUFNRSxLQUFPQSxFQUNiRixFQUFNRyxLQUFPQSw0UkNUYixJQUFJUyxFQUFXQyxFQU1mLFNBQVNDLEVBQWdCekMsR0FDdkIsT0FHQSxTQUFhUSxHQUNYLElBQUlrQyxFQUFPbEMsR0FBUUEsRUFBSytCLFVBQVkvQixFQUFLK0IsU0FBU3ZDLE9BRWxELE9BQ0UyQyxLQUFNRCxFQUFJQyxNQUFRLEtBQ2xCQyxPQUFRRixFQUFJRSxRQUFVLEtBQ3RCQyxPQUFRQyxNQUFNSixFQUFJRyxRQUFVLEtBQU9ILEVBQUlHLFNBZDdDTixFQUFTUSxNQUFRTixFQUFnQixTQUNqQ0YsRUFBU1MsSUFBTVAsRUFBZ0IsV0NBL0IsU0FBbUJqQyxHQUNqQixJQUFJK0IsRUFBV1UsRUFBU0EsRUFBU3pDLEdBQU0rQixVQUNuQ1EsRUFBUUUsRUFBU1YsRUFBU1EsT0FDMUJDLEVBQU1DLEVBQVNWLEVBQVNTLEtBRTVCLFFBQVFELEVBQU1KLE1BQVNJLEVBQU1ILFFBQVdJLEVBQUlMLE1BQVNLLEVBQUlKLFNBSzNELFNBQVNLLEVBQVMvQyxHQUNoQixPQUFPQSxHQUEwQixpQkFBVkEsRUFBcUJBLEtDYjlDLE1BS0EsU0FBOEJNLEVBQU0wQyxHQUNsQyxPQTRCRixTQUF1QkMsR0FDckIsT0FHQSxTQUFnQkMsR0FDZCxJQUFJQyxFQUFLRCxHQUFjRSxFQUFVRixHQUNqQyxPQUFPQyxHQUFNRSxFQUFJckYsS0FBS2lGLEVBQU9FLEdBQU1GLEVBQU1FLEdBQU0sTUFsQzFDRyxDQUlULFNBQWdCaEQsRUFBTTBDLEdBQ3BCLElBQUlDLEtBRUosSUFBSzNDLElBQVNBLEVBQUtSLEtBQ2pCLE1BQU0sSUFBSWlCLE1BQU0sd0NBS2xCLE9BRkFVLEVBQU1uQixFQUFNLGFBQWMwQyxHQUFXQSxFQUFRTyxXQUk3QyxTQUFvQkMsR0FDbEIsSUFBSUwsRUFBS0MsRUFBVUksRUFBV04sWUFDekJHLEVBQUlyRixLQUFLaUYsRUFBT0UsS0FDbkJGLEVBQU1FLEdBQU1LLElBSWhCLFNBQWdCQSxHQUNkUCxFQUFNRyxFQUFVSSxFQUFXTixhQUFlTSxJQVZyQ1AsRUFiY1EsQ0FBT25ELEVBQU0wQyxLQUpoQ0ssS0FBU3RGLGVBMENiLFNBQVNxRixFQUFVRixHQUNqQixPQUFPQSxFQUFXUSxxQ0NoRHBCcEIsRUFBVXFCLFVBRVYsU0FBY0MsR0FDWixPQUFPQSxFQUFJQyxRQUFRLGFBQWMsV0FHcEIsU0FBU0QsR0FDdEIsT0FBT0EsRUFBSUMsUUFBUSxPQUFRLEtBRzdCdkIsUUFBZ0IsU0FBU3NCLEdBQ3ZCLE9BQU9BLEVBQUlDLFFBQVEsT0FBUSx5QkNKN0IsU0FBYUMsRUFBR3RELEdBQ2QsSUFJSXlCLEVBQ0E4QixFQUxBQyxFQUFReEQsRUFBT0wsYUFDZnZDLEVBQVNvRyxFQUFNcEcsT0FDZnFHLEtBQ0ExRCxHQUFTLEVBSWIsT0FBU0EsRUFBUTNDLElBQ2ZxRSxFQUFTRCxFQUFJOEIsRUFBR0UsRUFBTXpELEdBQVFDLE1BR3hCRCxHQUFtQyxVQUExQnlELEVBQU16RCxFQUFRLEdBQUdULE9BQ3hCbUMsRUFBT2pDLFFBQ1RpQyxFQUFPakMsTUFBUWtFLEVBQUtDLEtBQUtsQyxFQUFPakMsU0FHbEMrRCxFQUFPOUIsRUFBTzlCLFVBQVk4QixFQUFPOUIsU0FBUyxLQUU5QjRELEVBQUsvRCxRQUNmK0QsRUFBSy9ELE1BQVFrRSxFQUFLQyxLQUFLSixFQUFLL0QsU0FJaENpRSxFQUFTQSxFQUFPRyxPQUFPbkMsSUFJM0IsT0FBT2dDLElDbENULE1BaUJBLFNBQWFILEVBQUd4RCxFQUFNRSxHQUNwQixJQUFJVixFQUFPUSxHQUFRQSxFQUFLUixLQUNwQnVFLEVBQUtoQixFQUFJckYsS0FBSzhGLEVBQUVRLFNBQVV4RSxHQUFRZ0UsRUFBRVEsU0FBU3hFLEdBQVEsS0FHekQsSUFBS0EsRUFDSCxNQUFNLElBQUlpQixNQUFNLHVCQUF5QlQsRUFBTyxLQUdsRCxPQUFzQixtQkFBUCtELEVBQW9CQSxFQWxCckMsU0FBaUJQLEVBQUd4RCxHQUNsQixHQXFCRixTQUFjQSxHQUNaLElBQUlpRSxFQUFPakUsRUFBS2lFLFNBRWhCLEdBQUlsQixFQUFJckYsS0FBS3VHLEVBQU0sVUFBWWxCLEVBQUlyRixLQUFLdUcsRUFBTSxnQkFBa0JsQixFQUFJckYsS0FBS3VHLEVBQU0sYUFDN0UsT0FBTyxFQUdULE1BQU8sVUFBV2pFLEVBNUJka0UsQ0FBS2xFLEdBQ1AsT0FBT3dELEVBQUVXLFFBQVFuRSxFQUFNb0UsRUFBRSxPQUFRcEUsRUFBS04sUUFHeEMsT0FBTzhELEVBQUV4RCxFQUFNLE1BQU84QixFQUFJMEIsRUFBR3hELE1BYW9Cd0QsRUFBR3hELEVBQU1FLElBckJ4RDZDLEtBQVN0RixlQ0xiLE1BR0EsU0FBdUIrRixFQUFHeEQsR0FDeEIsT0FBT3dELEVBQUV4RCxFQUFNLE9DSmpCLE1BTUEsU0FBYzBELEVBQU9XLEdBQ25CLElBQUkxQyxLQUNBMUIsR0FBUyxFQUNUM0MsRUFBU29HLEVBQU1wRyxPQUVmK0csR0FDRjFDLEVBQU8yQyxLQUFLRixFQUFFLE9BQVEsT0FHeEIsT0FBU25FLEVBQVEzQyxHQUNYMkMsR0FDRjBCLEVBQU8yQyxLQUFLRixFQUFFLE9BQVEsT0FHeEJ6QyxFQUFPMkMsS0FBS1osRUFBTXpELElBR2hCb0UsR0FBMEIsSUFBakJYLEVBQU1wRyxRQUNqQnFFLEVBQU8yQyxLQUFLRixFQUFFLE9BQVEsT0FHeEIsT0FBT3pDLEdDM0JULE1BTUEsU0FBYzZCLEVBQUd4RCxHQUNmLElBQUlQLEtBQ0E4RSxFQUFPdkUsRUFBS3dFLFFBQVUsS0FBTyxLQUVQLGlCQUFmeEUsRUFBS3VDLE9BQXFDLElBQWZ2QyxFQUFLdUMsUUFDekM5QyxFQUFNOEMsTUFBUXZDLEVBQUt1QyxPQUdyQixPQUFPaUIsRUFBRXhELEVBQU11RSxFQUFNOUUsRUFBT2dGLEVBQUszQyxFQUFJMEIsRUFBR3hELElBQU8sS0NkakQsTUFPQSxTQUEyQndELEdBQ3pCLElBSUlrQixFQUpBQyxFQUFZbkIsRUFBRW1CLFVBQ2RySCxFQUFTcUgsRUFBVXJILE9BQ25CMkMsR0FBUyxFQUNUMkUsS0FHSixJQUFLdEgsRUFDSCxPQUFPLEtBR1QsT0FBUzJDLEVBQVEzQyxHQUNmb0gsRUFBTUMsRUFBVTFFLEdBRWhCMkUsRUFBVTNFLElBQ1JULEtBQU0sV0FDTnlFLE1BQU9ZLGFBQWNoQyxHQUFJLE1BQVE2QixFQUFJOUIsYUFDckMvQyxTQUFVNkUsRUFBSTdFLFNBQVNpRSxRQUNyQnRFLEtBQU0sT0FDTnNGLElBQUssVUFBWUosRUFBSTlCLFdBQ3JCcUIsTUFBT1ksYUFBY0UsV0FBWSxzQkFDakNsRixXQUNFTCxLQUFNLE9BQ05FLE1BQU8sUUFHWHFDLFNBQVUyQyxFQUFJM0MsVUFJbEIsT0FBT3lCLEVBQUUsS0FBTSxPQUNidUIsV0FBWSxjQUNYTixHQUNETyxFQUFjeEIsR0FDZHlCLEVBQUt6QixHQUNIaEUsS0FBTSxPQUNOZ0YsU0FBUyxFQUNUM0UsU0FBVStFLE1BRVgsS0M5Q0wsTUFNQSxTQUFvQnBCLEVBQUd4RCxHQUNyQixPQUFPd0QsRUFBRXhELEVBQU0sYUFBY3lFLEVBQUszQyxFQUFJMEIsRUFBR3hELElBQU8sS0NQbEQsTUFLQSxTQUFtQndELEVBQUd4RCxHQUNwQixPQUFRd0QsRUFBRXhELEVBQU0sTUFBT29FLEVBQUUsT0FBUSxRQ0tuQyxJQUNJekIsRUFEQXVDLEVBQU0sS0EyQlYsU0FBZ0I1QixFQUFLNkIsR0FDbkIsR0FBbUIsaUJBQVI3QixFQUNULE1BQU0sSUFBSWpFLFVBQVUscUJBSXRCLEdBQVksSUFBUjhGLEVBQVcsT0FBTzdCLEVBQ3RCLEdBQVksSUFBUjZCLEVBQVcsT0FBTzdCLEVBQU1BLEVBRTVCLElBQUk4QixFQUFNOUIsRUFBSWhHLE9BQVM2SCxFQUN2QixHQUFJeEMsSUFBVVcsUUFBd0IsSUFBVlgsRUFDMUJBLEVBQVFXLEVBQ1I0QixFQUFNLFFBQ0QsR0FBSUEsRUFBSTVILFFBQVU4SCxFQUN2QixPQUFPRixFQUFJRyxPQUFPLEVBQUdELEdBR3ZCLEtBQU9BLEVBQU1GLEVBQUk1SCxRQUFVNkgsRUFBTSxHQUNyQixFQUFOQSxJQUNGRCxHQUFPNUIsR0FHVDZCLElBQVEsRUFDUjdCLEdBQU9BLEVBS1QsT0FEQTRCLEdBREFBLEdBQU81QixHQUNHK0IsT0FBTyxFQUFHRCxJQ2pFdEIsTUFVQSxTQUFlMUYsRUFBTzRGLEdBQ3BCLElBT0lDLEVBQ0FDLEVBUkFDLEVBQTBCLGlCQUFWL0YsRUFDaEJwQyxFQUFTbUksR0FBVS9GLEVBQU1wQyxPQUN6QmlGLEVBQVEsRUFDUnRDLEdBQVMsRUFDVG1DLEdBQVUsRUFDVnNELEVBQVVKLEdBQVEsRUFDbEJ2RSxLQUlKLElBQUswRSxFQUNILE1BQU0sSUFBSWhGLE1BQU0seUJBR2xCLE9BQVNSLEVBQVEzQyxJQUNmaUksRUFBTzdGLEVBQU1pRyxXQUFXMUYsTUFFWDJGLEdBRVh4RCxHQURBb0QsRUFBTUUsR0FBWXRELEVBQVMsR0FBS3NELEVBRWhDM0UsRUFBUXVELEtBQUs1RSxFQUFNbUcsTUFBTXRELEVBQU90QyxHQUFTNkYsRUFBTyxJQUFLTixJQUNyRGpELEVBQVF0QyxFQUFRLEdBQ1BzRixJQUFTUSxHQUFNUixJQUFTUyxFQUNqQzVELEdBQVUsRUFFVkEsSUFNSixPQUZBckIsRUFBUXVELEtBQUs1RSxFQUFNbUcsTUFBTXRELElBRWxCeEIsRUFBUXZDLEtBQUssS0F0Q2xCb0gsRUFBTSxFQUNORyxFQUFLLEdBQ0xDLEVBQUssR0NOVCxNQU1BLFNBQWN4QyxFQUFHeEQsR0FDZixJQUFJTixFQUFRTSxFQUFLTixNQUFRdUcsRUFBTWpHLEVBQUtOLE1BQVEsTUFBUSxHQUNoRHdHLEVBQU9sRyxFQUFLa0csTUFBUWxHLEVBQUtrRyxLQUFLQyxNQUFNLHVCQUNwQzFHLEtBRUF5RyxJQUNGekcsRUFBTXNGLFdBQWEsWUFBY21CLElBR25DLE9BQU8xQyxFQUFFeEQsRUFBSytCLFNBQVUsT0FDdEJ5QixFQUFFeEQsRUFBTSxPQUFRUCxHQUFRMkUsRUFBRSxPQUFRMUUsUUNoQnRDLE1BS0EsU0FBdUI4RCxFQUFHeEQsR0FDeEIsT0FBT3dELEVBQUV4RCxFQUFNLE1BQU84QixFQUFJMEIsRUFBR3hELEtDTi9CLE1BS0EsU0FBa0J3RCxFQUFHeEQsR0FDbkIsT0FBT3dELEVBQUV4RCxFQUFNLEtBQU04QixFQUFJMEIsRUFBR3hELEtDTjlCLE1BS0EsU0FBMkJ3RCxFQUFHeEQsR0FDNUIsSUFBSTRDLEVBQWE1QyxFQUFLNEMsV0FFdEIsT0FBT1ksRUFBRXhELEVBQUsrQixTQUFVLE9BQVFjLEdBQUksU0FBV0QsSUFDN0NZLEVBQUV4RCxFQUFNLEtBQ05vRyxLQUFNLE9BQVN4RCxFQUNmbUMsV0FBWSxrQkFDVlgsRUFBRSxPQUFReEIsUUNabEIsTUFLQSxTQUFrQlksRUFBR3hELEdBQ25CLElBQUlxRyxLQUNBekQsRUFBYSxFQUNiK0IsRUFBWW5CLEVBQUVtQixVQUNkckgsRUFBU3FILEVBQVVySCxPQUNuQjJDLEdBQVMsRUFFYixPQUFTQSxFQUFRM0MsR0FDZitJLEVBQVlwRyxHQUFTMEUsRUFBVTFFLEdBQU8yQyxXQUd4QyxNQUFvRCxJQUE3Q3lELEVBQVlDLFFBQVFwSSxPQUFPMEUsS0FDaENBLElBZUYsT0FaQUEsRUFBYTFFLE9BQU8wRSxHQUVwQitCLEVBQVVMLE1BQ1I5RSxLQUFNLHFCQUNOb0QsV0FBWUEsRUFDWi9DLFdBQ0VMLEtBQU0sWUFDTkssU0FBVUcsRUFBS0gsV0FFakJrQyxTQUFVL0IsRUFBSytCLFdBR1Z3RSxFQUFrQi9DLEdBQ3ZCaEUsS0FBTSxvQkFDTm9ELFdBQVlBLEVBQ1piLFNBQVUvQixFQUFLK0IsWUNuQ25CLE1BS0EsU0FBaUJ5QixFQUFHeEQsR0FDbEIsT0FBT3dELEVBQUV4RCxFQUFNLElBQU1BLEVBQUt3RyxNQUFPMUUsRUFBSTBCLEVBQUd4RCxLQ04xQyxNQU1BLFNBQWN3RCxFQUFHeEQsR0FDZixPQUFPd0QsRUFBRWlELFVBQVlqRCxFQUFFVyxRQUFRbkUsRUFBTW9FLEVBQUUsTUFBT3BFLEVBQUtOLFFBQVUsTUNML0QsSUFBSWdILEtBc0NKLFNBQVNDLEVBQU9sQixFQUFRbUIsRUFBU0MsR0FDL0IsSUFBSXpKLEVBQUcwSixFQUFHdkIsRUFBTXdCLEVBQVVwRSxFQUN0QmhCLEVBQVMsR0FjYixJQVp1QixpQkFBWmlGLElBRVRDLEVBQWVELEVBQ2ZBLEVBQVVELEVBQU9LLG1CQUdRLElBQWhCSCxJQUNUQSxHQUFjLEdBR2hCbEUsRUE5Q0YsU0FBd0JpRSxHQUN0QixJQUFJeEosRUFBRzZKLEVBQUl0RSxFQUFRK0QsRUFBWUUsR0FDL0IsR0FBSWpFLEVBQVMsT0FBT0EsRUFJcEIsSUFGQUEsRUFBUStELEVBQVlFLE1BRWZ4SixFQUFJLEVBQUdBLEVBQUksSUFBS0EsSUFDbkI2SixFQUFLL0ksT0FBT0csYUFBYWpCLEdBRXJCLGNBQWMyQyxLQUFLa0gsR0FFckJ0RSxFQUFNMkIsS0FBSzJDLEdBRVh0RSxFQUFNMkIsS0FBSyxLQUFPLElBQU1sSCxFQUFFOEosU0FBUyxJQUFJOUQsZUFBZXlDLE9BQU8sSUFJakUsSUFBS3pJLEVBQUksRUFBR0EsRUFBSXdKLEVBQVF0SixPQUFRRixJQUM5QnVGLEVBQU1pRSxFQUFRakIsV0FBV3ZJLElBQU13SixFQUFReEosR0FHekMsT0FBT3VGLEVBeUJDd0UsQ0FBZVAsR0FFbEJ4SixFQUFJLEVBQUcwSixFQUFJckIsRUFBT25JLE9BQVFGLEVBQUkwSixFQUFHMUosSUFHcEMsR0FGQW1JLEVBQU9FLEVBQU9FLFdBQVd2SSxHQUVyQnlKLEdBQXdCLEtBQVR0QixHQUF5Qm5JLEVBQUksRUFBSTBKLEdBQzlDLGlCQUFpQi9HLEtBQUswRixFQUFPSSxNQUFNekksRUFBSSxFQUFHQSxFQUFJLElBQ2hEdUUsR0FBVThELEVBQU9JLE1BQU16SSxFQUFHQSxFQUFJLEdBQzlCQSxHQUFLLE9BS1QsR0FBSW1JLEVBQU8sSUFDVDVELEdBQVVnQixFQUFNNEMsUUFJbEIsR0FBSUEsR0FBUSxPQUFVQSxHQUFRLE1BQTlCLENBQ0UsR0FBSUEsR0FBUSxPQUFVQSxHQUFRLE9BQVVuSSxFQUFJLEVBQUkwSixJQUM5Q0MsRUFBV3RCLEVBQU9FLFdBQVd2SSxFQUFJLEtBQ2pCLE9BQVUySixHQUFZLE1BQVEsQ0FDNUNwRixHQUFVeUYsbUJBQW1CM0IsRUFBT3JJLEdBQUtxSSxFQUFPckksRUFBSSxJQUNwREEsSUFDQSxTQUdKdUUsR0FBVSxpQkFJWkEsR0FBVXlGLG1CQUFtQjNCLEVBQU9ySSxJQUd0QyxPQUFPdUUsRUFHVGdGLEVBQU9LLGFBQWlCLHVCQUN4QkwsRUFBT1UsZUFBaUIsWUFHeEIsTUFBaUJWLElDeEZqQixTQUFrQm5ELEVBQUd4RCxFQUFNa0QsR0FDekIsSUFBSW9FLEVBQVV0SCxFQUFLdUgsY0FFbkIsR0FBZ0IsY0FBWkQsR0FBdUMsU0FBWkEsSUFBdUJwRSxFQUNwRCxNQUFrQixtQkFBZGxELEVBQUtSLEtBQ0E0RSxFQUFFLE9BQVEsS0FBT3BFLEVBQUt3SCxJQUFNLE1BRzdCcEQsRUFBRSxPQUFRLE1BQU1OLE9BQU9oQyxFQUFJMEIsRUFBR3hELEdBQU9vRSxFQUFFLE9BQVEsT0NmM0QsTUFHQSxTQUFrQjFFLEdBQ2hCLE9BQU94QixPQUFPd0IsR0FBTzZELFFBQVEsT0FBUSxNQ0p2QyxNQUtBLFNBQW1CN0QsR0FDakIsT0FBT3hCLE9BQU93QixHQUFPNkQsUUFBUWtFLEVBQUlDLEtBSi9CRCxFQUFLLG1CQUNMQyxHQUFVLEtDSGQsUUFDRUMsV0FBWUMsRUFDWkMsTUFBT0MsRUFDUHZDLEtBQU13QyxFQUNOQyxPQUFRQyxFQUNSQyxTQUFVQyxFQUNWNUIsa0JBQW1CNkIsRUFDbkJDLFNBQVVDLEVBQ1ZDLFFBQVNDLEVBQ1RDLEtBQU1DLEVBQ05DLGVDSkYsU0FBd0JuRixFQUFHeEQsR0FDekIsSUFBSTBFLEVBQU1sQixFQUFFTixXQUFXbEQsRUFBSzRDLFlBQ3hCbkQsR0FBU21KLElBQUtDLEVBQVduRSxHQUFPQSxFQUFJSSxLQUFRLElBQUswQyxJQUFLeEgsRUFBS3dILEtBRTNEOUMsR0FBcUIsT0FBZEEsRUFBSW9FLFlBQWdDMUosSUFBZHNGLEVBQUlvRSxRQUNuQ3JKLEVBQU1xSixNQUFRcEUsRUFBSW9FLE9BR3BCLE9BQU9DLEVBQVN2RixFQUFHeEQsRUFBTTBFLElBQVFsQixFQUFFeEQsRUFBTSxNQUFPUCxJREhoRHVKLE1FTkYsU0FBZXhGLEVBQUd4RCxHQUNoQixJQUFJUCxHQUFTbUosSUFBS0MsRUFBVTdJLEVBQUs4RSxLQUFNMEMsSUFBS3hILEVBQUt3SCxLQUU5QixPQUFmeEgsRUFBSzhJLFlBQWlDMUosSUFBZlksRUFBSzhJLFFBQzlCckosRUFBTXFKLE1BQVE5SSxFQUFLOEksT0FHckIsT0FBT3RGLEVBQUV4RCxFQUFNLE1BQU9QLElGQXRCd0osV0dORixTQUFvQnpGLEVBQUd4RCxHQUNyQixPQUFPd0QsRUFBRXhELEVBQU0sUUFBU29FLEVBQUUsT0FBUThFLEVBQVNsSixFQUFLTixXSE1oRHlKLGNJTkYsU0FBdUIzRixFQUFHeEQsR0FDeEIsSUFBSTBFLEVBQU1sQixFQUFFTixXQUFXbEQsRUFBSzRDLFlBQ3hCbkQsR0FBUzJHLEtBQU15QyxFQUFXbkUsR0FBT0EsRUFBSUksS0FBUSxLQUU3Q0osR0FBcUIsT0FBZEEsRUFBSW9FLFlBQWdDMUosSUFBZHNGLEVBQUlvRSxRQUNuQ3JKLEVBQU1xSixNQUFRcEUsRUFBSW9FLE9BR3BCLE9BQU9DLEVBQVN2RixFQUFHeEQsRUFBTTBFLElBQVFsQixFQUFFeEQsRUFBTSxJQUFLUCxFQUFPcUMsRUFBSTBCLEVBQUd4RCxLSkQ1RG9KLEtLUkYsU0FBYzVGLEVBQUd4RCxHQUNmLElBQUlQLEdBQVMyRyxLQUFNeUMsRUFBVTdJLEVBQUs4RSxNQUVmLE9BQWY5RSxFQUFLOEksWUFBaUMxSixJQUFmWSxFQUFLOEksUUFDOUJySixFQUFNcUosTUFBUTlJLEVBQUs4SSxPQUdyQixPQUFPdEYsRUFBRXhELEVBQU0sSUFBS1AsRUFBT3FDLEVBQUkwQixFQUFHeEQsS0xFbENxSixTTVJGLFNBQWtCN0YsRUFBR3hELEVBQU1FLEdBQ3pCLElBSUl5QixFQUNBMkgsRUFMQXpKLEVBQVdHLEVBQUtILFNBQ2hCNEQsRUFBTzVELEVBQVMsR0FDaEJKLEtBQ0E4SixHQUFTLEVBSVBySixHQUFXQSxFQUFPbUUsT0FBOEIsSUFBcEJ4RSxFQUFTdkMsUUFBOEIsY0FBZG1HLEVBQUtqRSxPQUM5RCtKLEdBQVMsR0FHWDVILEVBQVNHLEVBQUkwQixFQUFHK0YsRUFBUzlGLEVBQU96RCxHQUVKLGtCQUFqQkEsRUFBS3dKLFVBQ1RELEdBQVk5RixHQUFzQixjQUFkQSxFQUFLakUsTUFDNUJtQyxFQUFPOEgsUUFBUWpHLEVBQUUsS0FBTSxTQUtBLEtBRnpCOEYsRUFBWUMsRUFBUzVILEVBQVNBLEVBQU8sR0FBRzlCLFVBRTFCdkMsUUFDWmdNLEVBQVVHLFFBQVFyRixFQUFFLE9BQVEsTUFHOUJrRixFQUFVRyxRQUFRakcsRUFBRSxLQUFNLFNBQ3hCaEUsS0FBTSxXQUNOZ0ssUUFBU3hKLEVBQUt3SixRQUNkRSxVQUFVLEtBSVpqSyxFQUFNc0YsV0FBYSxtQkFHaEJ3RSxHQUE0QixJQUFsQjVILEVBQU9yRSxTQUNwQnFFLEVBQVM4QyxFQUFLOUMsR0FBUSxJQUd4QixPQUFPNkIsRUFBRXhELEVBQU0sS0FBTVAsRUFBT2tDLElOOUI1QnNELEtBQU0wRSxFQUNOQyxVT1pGLFNBQW1CcEcsRUFBR3hELEdBQ3BCLE9BQU93RCxFQUFFeEQsRUFBTSxJQUFLOEIsRUFBSTBCLEVBQUd4RCxLUFkzQjZKLEtRWEYsU0FBY3JHLEVBQUd4RCxHQUNmLE9BQU93RCxFQUFFVyxRQUFRbkUsRUFBTW9FLEVBQUUsT0FBUUssRUFBSzNDLEVBQUkwQixFQUFHeEQsT1JXN0M4SixPU2RGLFNBQWdCdEcsRUFBR3hELEdBQ2pCLE9BQU93RCxFQUFFeEQsRUFBTSxTQUFVOEIsRUFBSTBCLEVBQUd4RCxLVGNoQytKLE1VYkYsU0FBZXZHLEVBQUd4RCxHQUNoQixJQUtJa0MsRUFDQThILEVBQ0FDLEVBQ0ExRixFQUNBMkYsRUFUQUMsRUFBT25LLEVBQUtILFNBQ1pJLEVBQVFrSyxFQUFLN00sT0FDYjhNLEVBQVFwSyxFQUFLb0ssTUFDYkMsRUFBY0QsRUFBTTlNLE9BQ3BCcUUsS0FPSixLQUFPMUIsS0FBUyxDQU1kLElBTEErSixFQUFNRyxFQUFLbEssR0FBT0osU0FDbEIwRSxFQUFpQixJQUFWdEUsRUFBYyxLQUFPLEtBQzVCaUMsRUFBTW1JLEVBQ05KLEtBRU8vSCxLQUNMZ0ksRUFBT0YsRUFBSTlILEdBQ1grSCxFQUFJL0gsR0FBT3NCLEVBQUUwRyxFQUFNM0YsR0FDakI2RixNQUFPQSxFQUFNbEksSUFDWmdJLEVBQU96RixFQUFLM0MsRUFBSTBCLEVBQUcwRyxRQUd4QnZJLEVBQU8xQixHQUFTdUQsRUFBRTJHLEVBQUtsSyxHQUFRLEtBQU13RSxFQUFLd0YsR0FBSyxJQUdqRCxPQUFPekcsRUFBRXhELEVBQU0sUUFBU3lFLEdBQ3RCakIsRUFBRTdCLEVBQU8sR0FBR0ksU0FBVSxRQUFTMEMsR0FBTTlDLEVBQU8sS0FBSyxJQUNqRDZCLEdBQ0VqQixNQUFPUixFQUFTUSxNQUFNWixFQUFPLElBQzdCYSxJQUFLVCxFQUFTUyxJQUFJYixFQUFPQSxFQUFPckUsT0FBUyxLQUN4QyxRQUFTbUgsRUFBSzlDLEVBQU9rRSxNQUFNLElBQUksTUFDakMsS1ZwQkgzQixLV2ZGLFNBQWNWLEVBQUd4RCxHQUNmLE9BQU93RCxFQUFFVyxRQUFRbkUsRUFBTW9FLEVBQUUsT0FBUWtHLEVBQVV0SyxFQUFLTixVWGVoRHNGLGNBQWV1RixFQUNmQyxLQUFNQyxHQUNOQyxLQUFNRCxHQUNOdkgsV0FBWXVILEdBQ1pFLG1CQUFvQkYsSUFJdEIsU0FBU0EsS0FDUCxPQUFPLEtZaENULE9Dd0ZBLFNBQWdCbEosRUFBTW1CLEdBQ3BCLElBQUljLEVBM0VOLFNBQWlCakMsRUFBTW1CLEdBQ3JCLElBQUlrSSxFQUFXbEksTUFDWCtELEVBQVltRSxFQUFTQyxtQkFVekIsT0FSQXJILEVBQUVpRCxVQUFZQSxFQUNkakQsRUFBRU4sV0FBYTRILEVBQVl2SixFQUFNcUosR0FDakNwSCxFQUFFbUIsYUFDRm5CLEVBQUVXLFFBQVVBLEVBQ1pYLEVBQUVRLFNBQVcrRyxFQUFNL0csR0FBVzRHLEVBQVM1RyxjQUV2QzdDLEVBQU1JLEVBQU0scUJBMERaLFNBQWlCMkIsR0FDZk0sRUFBRW1CLFVBQVVMLEtBQUtwQixLQXpEWk0sRUFJUCxTQUFTVyxFQUFRTixFQUFNbUgsR0FDckIsSUFBSS9HLEVBQ0FnSCxFQTRCSixPQXpCSXBILEdBQVEsU0FBVUEsSUFDcEJJLEVBQU9KLEVBQUtJLEtBRU8sWUFBZitHLEVBQU14TCxNQUFzQnlFLEVBQUtpSCxRQUNuQ0YsRUFBTUcsUUFBVWxILEVBQUtpSCxPQUdKLFlBQWZGLEVBQU14TCxNQUFzQnlFLEVBQUtZLGNBQ25DbUcsRUFBTUksV0FBYUwsRUFBTUMsRUFBTUksV0FBWW5ILEVBQUtZLGNBRzlDbUcsRUFBTW5MLFVBQVlvRSxFQUFLb0gsWUFDekJMLEVBQU1uTCxTQUFXb0UsRUFBS29ILFlBSTFCSixFQUFNcEgsR0FBUUEsRUFBSzlCLFNBQVc4QixHQUFROUIsU0FBVThCLEdBRTNDeUgsRUFBVUwsS0FDYkQsRUFBTWpKLFVBQ0pRLE1BQU9SLEVBQVNRLE1BQU0wSSxHQUN0QnpJLElBQUtULEVBQVNTLElBQUl5SSxLQUlmRCxFQUlULFNBQVN4SCxFQUFFeEQsRUFBTW1MLEVBQVMxTCxFQUFPSSxHQVUvQixZQVJnQlQsSUFBYlMsR0FBdUMsT0FBYkEsSUFDVixpQkFBVkosR0FDUCxXQUFZQSxJQUVaSSxFQUFXSixFQUNYQSxNQUdLMEUsRUFBUW5FLEdBQ2JSLEtBQU0sVUFDTjJMLFFBQVNBLEVBQ1RDLFdBQVkzTCxNQUNaSSxTQUFVQSxTQVdOMEwsQ0FBUWhLLEVBQU1tQixHQUNsQjFDLEVBQU8wQixFQUFJOEIsRUFBR2pDLEdBQ2RvRCxFQUFZNkcsRUFBT2hJLEdBRW5CeEQsR0FBUUEsRUFBS0gsVUFBWThFLElBQzNCM0UsRUFBS0gsU0FBV0csRUFBS0gsU0FBU2lFLE9BQU9NLEVBQUUsT0FBUSxNQUFPTyxJQUd4RCxPQUFPM0UsTUN2RlQsU0FBdUJ5TCxFQUFhL0ksR0FDOUIrSSxJQUFnQkEsRUFBWUMsVUFDOUJoSixFQUFVK0ksRUFDVkEsRUFBYyxNQUdoQixPQUFPQSxFQUtULFNBQWdCQSxFQUFhL0ksR0FDM0IsT0FDQSxTQUFxQjFDLEVBQU0yTCxFQUFNQyxHQUMvQkgsRUFBWUksSUFBSUMsR0FBVzlMLEVBQU0wQyxHQUFVaUosRUFDM0MsU0FBYzdNLEdBQ1o4TSxFQUFLOU0sTUFWWWlOLENBQU9OLEVBQWEvSSxHQWdCM0MsU0FBZ0JBLEdBQ2QsT0FDQSxTQUFxQjFDLEdBQ25CLE9BQU84TCxHQUFXOUwsRUFBTTBDLElBbkIwQnNKLENBQU90SixJQ2Y3RCxPQU9BLFNBQW9CdUosR0FDbEIsT0FBT0MsR0FBR25NLEtBQ2EsaUJBQWRrTSxFQUF5QkUsR0FBU0YsR0FBYUEsRUFBVUcsT0FBTyxLQVB2RUQsR0FBV2pPLE9BQU9HLGFBQ2xCNk4sR0FBSyxLQ0RULElBQUlHLEdBQVMsSUFDVEMsR0FBUyxLQUViLFNBQVNDLEdBQVE3TSxFQUFPOE0sR0FFdEIsT0FEWTlNLEVBQU00RyxRQUFRZ0csR0FBUUUsR0ErRHBDLE9BM0RBLFdBQ0UsU0FBU0MsRUFBZ0JDLEVBQUtoTixFQUFPaU4sR0FDbkMsR0FBS3pMLEtBQUt3QixRQUFRa0ssS0FBT2xOLEVBQU0wTSxPQUFPLEtBQU9DLElBQVUzTSxFQUFNME0sT0FBTyxLQUFPQyxLQUFVM00sRUFBTW1OLFdBQVdSLEdBQU92RyxPQUFPLE1BQU9nSCxHQUFXcE4sRUFBTTBNLE9BQU8sSUFBbkosQ0FJQSxJQUFJSCxFQUFZLEdBQ1pjLEVBQVcsR0FDWEMsRUFBWSxHQUNaQyxFQUFXLEdBQ1hoTixFQUFRLEVBQ1IzQyxFQUFTb0MsRUFBTXBDLE9BQ2Y0UCxFQUFNUixFQUFJUSxNQUlkLElBSEFBLEVBQUk5SyxRQUFVLEVBQ2Q4SyxFQUFJN0ssUUFBVSxJQUVMcEMsRUFBUTNDLEdBQVEsQ0FHdkIsTUFGQTJPLEVBQVl2TSxFQUFNME0sT0FBT25NLE1BRVBvTSxJQUFVVSxJQUFhVixJQUFZVyxHQUFjRixHQUFXRSxJQUc1RSxRQUFJTCxHQUVHRCxFQUFJSixHQUFTVyxFQUFXWCxHQUF4QkksRUFDTGxOLEtBQU0sTUFDTkssU0FBVXFCLEtBQUtpTSxlQUFlRixFQUFVQyxHQUN4Q2pKLE1BQ0VpSCxNQUFPLFNBS2IrQixHQUFZRixFQUNaQyxFQUFZRCxFQUNaQSxFQUFXZCxJQUdmUSxFQUFnQkYsUUFBVUEsR0FFMUIsSUFBSWEsRUFBU2xNLEtBQUtrTSxPQUdkQyxFQUFtQkQsRUFBT3hQLFVBQVV5UCxpQkFDcENDLEVBQWdCRixFQUFPeFAsVUFBVTBQLGNBQ3JDRCxFQUFpQkUsSUFBTWQsRUFDdkJhLEVBQWNFLE9BQU9GLEVBQWNoSCxRQUFRLFFBQVMsRUFBRyxPQUV2RCxJQUFJbUgsRUFBV3ZNLEtBQUt1TSxTQUdoQkEsSUFDYUEsRUFBUzdQLFVBQVU4UCxTQUN6QkgsSUFBTSxTQUFVdk4sR0FDdkIsTUFBTyxLQUFPa0IsS0FBS1ksSUFBSTlCLEdBQU14QixLQUFLLElBQU0sUUNsRTlDLFNBQVMrTixHQUFTN00sRUFBTzhNLEdBQ3ZCLE9BQU85TSxFQUFNNEcsUUFBUSxJQUFLa0csR0FHNUIsTUFBTW1CLEdBQXNCLFFBQ3RCQyxHQUFjLHdCQUNkQyxHQUFxQiw0QkFFM0IsT0NEQSxTQUEyQm5PLEdBQ3pCLElBQUlQLEVBQU1qQixPQUFPd0IsR0FDYk8sRUFBUWQsRUFBSTdCLE9BRWhCLEtBQU82QixFQUFJaU4sU0FBU25NLEtBQVdrQyxLQUUvQixPQUFPaEQsRUFBSTBHLE1BQU0sRUFBRzVGLEVBQVEsSUFUMUJrQyxHQUFPLEtDRlgsSUFBSTJMLEdBQVksS0FDWkMsR0FBUSxLQUNSQyxHQUFVLElBQ1ZDLEdBQVcsSUFFWEMsR0FBa0IsRUFDbEJDLEdBQW9CLEtDTFAsU0FBcUJDLE9ET3JCLFNBQXNCQSxHQTJMckMsTUFBTWhCLEVBQVNsTSxLQUFLa00sT0FHZGlCLEVBQWtCakIsRUFBT3hQLFVBQVV5USxnQkFDbkNDLEVBQWVsQixFQUFPeFAsVUFBVTBRLGFBQ3RDRCxFQUFnQkUsS0EvTGhCLFNBQXlCN0IsRUFBS2hOLEVBQU9pTixHQWdCbkMsSUFmQSxJQUdJNkIsRUFDQUMsRUFDQXhDLEVBQ0F5QyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBQyxFQUNBN0IsRUFaQTVQLEVBQVNvQyxFQUFNcEMsT0FBUyxFQUN4QjJDLEVBQVEsRUFDUmdOLEVBQVcsR0FhUmhOLEVBQVEzQyxLQUNiMk8sRUFBWXZNLEVBQU0wTSxPQUFPbk0sTUFFUCtOLElBQVcvQixJQUFjOEIsS0FJM0NkLEdBQVloQixFQUNaaE0sSUFRRixHQUxBOE8sRUFBUzlPLEdBR1RnTSxFQUFZdk0sRUFBTTBNLE9BQU9uTSxNQUVQZ08sR0FDaEIsT0FRRixJQUxBaE8sSUFDQXdPLEVBQVN4QyxFQUNUdUMsRUFBYSxFQUNidkIsR0FBWWhCLEVBRUxoTSxFQUFRM0MsSUFDYjJPLEVBQVl2TSxFQUFNME0sT0FBT25NLE1BRVB3TyxHQUlsQnhCLEdBQVloQixFQUNadUMsSUFDQXZPLElBR0YsR0FBSXVPLEVBQWFOLEdBQ2YsT0FJRixLQUFPak8sRUFBUTNDLElBQ2IyTyxFQUFZdk0sRUFBTTBNLE9BQU9uTSxNQUVQNk4sSUFIRyxDQU1yQixHQUFJN0IsSUFBY2dDLEdBQ2hCLE9BR0ZoQixHQUFZaEIsRUFDWmhNLElBS0YsR0FGQWdNLEVBQVl2TSxFQUFNME0sT0FBT25NLEdBRXJCME0sRUFDRixPQUFPLEVBVVQsS0FQQU8sRUFBTVIsRUFBSVEsT0FDTjlLLFFBQVU2SyxFQUFTM1AsT0FDdkI0UCxFQUFJN0ssUUFBVTRLLEVBQVMzUCxPQUV2Qm9SLEVBQVFHLEVBQVVDLEVBQWtCSCxFQUFVQyxFQUFrQixHQUd6RDNPLEVBQVEzQyxHQU1iLEdBSkFxUixHQUFXRSxFQUNYRCxHQUFtQkUsRUFDbkJELEVBQVVDLEVBQWtCLElBSDVCN0MsRUFBWXZNLEVBQU0wTSxPQUFPbk0sTUFLUDZOLEdBQWxCLENBb0JBLElBVklhLEdBQ0ZFLEdBQVc1QyxFQUNYNkMsR0FBbUI3QyxHQUVuQmdCLEdBQVloQixFQUdkeUMsRUFBUSxHQUNSek8sSUFFT0EsRUFBUTNDLElBQ2IyTyxFQUFZdk0sRUFBTTBNLE9BQU9uTSxNQUVQK04sSUFJbEJVLEdBQVN6QyxFQUNUaE0sSUFNRixHQUhBNE8sR0FBV0gsRUFDWEksR0FBbUJKLEVBQU03SSxNQUFNa0osS0FFM0JMLEVBQU1wUixRQUFVNlEsSUFBcEIsQ0FNQSxJQUZBTyxFQUFRLEdBRUR6TyxFQUFRM0MsSUFDYjJPLEVBQVl2TSxFQUFNME0sT0FBT25NLE1BRVB3TyxHQUlsQkMsR0FBU3pDLEVBQ1RoTSxJQU1GLEdBSEE0TyxHQUFXSCxFQUNYSSxHQUFtQkosSUFFZkEsRUFBTXBSLE9BQVNrUixHQUFuQixDQU1BLElBRkFFLEVBQVEsR0FFRHpPLEVBQVEzQyxJQUNiMk8sRUFBWXZNLEVBQU0wTSxPQUFPbk0sTUFFUDZOLElBSWxCZSxHQUFXNUMsRUFDWDZDLEdBQW1CN0MsRUFDbkJoTSxJQUdGLGFBdkVFME8sR0FBVzFDLEVBQ1g2QyxHQUFtQjdDLEVBQ25CaE0sSUF3RUpnTixHQUFZMEIsRUFBVUUsRUFDdEIsTUFBTUcsRUFBaUJwTCxHQUFLZ0wsR0FDNUIsT0FBT2xDLEVBQUlPLEVBQUpQLEVBQ0xsTixLQUFNLE9BQ05FLE1BQU9zUCxFQUNQL0ssTUFDRWlILE1BQU8sTUFDUHJHLGFBQ0VFLFVBQVcsUUFFYnNHLFlBRUk3TCxLQUFNLE9BQ05FLE1BQU9zUCxRQWFqQlYsRUFBYWQsT0FBT2MsRUFBYWhJLFFBQVEsY0FBZ0IsRUFBRyxFQUFHLFFBRy9ELE1BQU0ySSxFQUFxQjdCLEVBQU94UCxVQUFVcVIsbUJBQ3RDQyxFQUFnQjlCLEVBQU94UCxVQUFVc1IsY0FDakNDLEVBQXNCL0IsRUFBT3hQLFVBQVV1UixvQkFDN0NGLEVBQW1CekIsT0FBT3lCLEVBQW1CM0ksUUFBUSxjQUFnQixFQUFHLEdBQUksU0FDNUU0SSxFQUFjMUIsT0FBTzBCLEVBQWM1SSxRQUFRLGNBQWdCLEVBQUcsR0FBSSxTQUNsRTZJLEVBQW9CM0IsT0FBTzJCLEVBQW9CN0ksUUFBUSxjQUFnQixFQUFHLEdBQUksU0FFOUUsTUFBTW1ILEVBQVd2TSxLQUFLdU0sU0FHTixNQUFaQSxJQUNlQSxFQUFTN1AsVUFBVThQLFNBQzNCYSxLQUFPLFNBQVV2TyxHQUN4QixNQUFPLE9BQVNBLEVBQUtOLE1BQVEsV0N2TnJCaEMsS0FBS3dELEtBQU1rTixHSElSLFNBQXVCQSxHQUN0QyxTQUFTM0IsRUFBaUJDLEVBQUtoTixFQUFPaU4sR0FDcEMsSUFBSXlDLEdBQVcsRUFDWGpKLEVBQVEwSCxHQUFtQndCLEtBQUszUCxHQUMvQnlHLElBQ0hBLEVBQVF5SCxHQUFZeUIsS0FBSzNQLEdBQ3pCMFAsR0FBVyxHQUViLE1BQU1FLEVBQVUzQixHQUFvQjBCLEtBQUszUCxHQUV6QyxHQUFJNFAsRUFFRixRQUFJM0MsR0FHR0QsRUFBSTRDLEVBQVEsR0FBWjVDLEVBQ0xsTixLQUFNLE9BQ05FLE1BQU8sTUFJWCxHQUF3QixRQUFwQkEsRUFBTW1HLE9BQU8sR0FDZixPQUFPNkcsRUFBSWhOLEVBQUpnTixFQUNMbE4sS0FBTSxPQUNORSxNQUFPQSxFQUFNbUcsTUFBTSxHQUFJLEdBQUssTUFJaEMsR0FBSU0sRUFBTyxDQUVULEdBQUl3RyxFQUNGLE9BQU8sRUFJVCxHQURnQ3hHLEVBQU0sR0FBR29KLFNBQVMsTUFBUTdQLEVBQU1tRyxNQUFNTSxFQUFNLEdBQUc3SSxRQUFRaVMsU0FBUyxLQUNuRSxDQUMzQixNQUFNQyxFQUFROVAsRUFBTW1HLE1BQU0sRUFBR25HLEVBQU00RyxRQUFRLE1BQzNDLE9BQU9vRyxFQUFJOEMsRUFBSjlDLEVBQ0xsTixLQUFNLE9BQ05FLE1BQU84UCxJQUlYLE1BQU1SLEVBQWlCN0ksRUFBTSxHQUFHdkMsT0FFaEMsT0FBTzhJLEVBQUl2RyxFQUFNLEdBQVZ1RyxFQUNMbE4sS0FBTSxhQUNORSxNQUFPc1AsRUFDUC9LLE1BQ0VpSCxNQUFPLE9BQ1ByRyxhQUNFRSxVQUFXLGNBQWdCcUssR0FBWWhCLEVBQUtxQixpQkFBbUIsb0JBQXNCLEtBRXZGcEUsWUFFSTdMLEtBQU0sT0FDTkUsTUFBT3NQLFFBT25CdkMsRUFBZ0JGLFFBQVVBLEdBRTFCLE1BQU1hLEVBQVNsTSxLQUFLa00sT0FHZEMsRUFBbUJELEVBQU94UCxVQUFVeVAsaUJBQ3BDQyxFQUFnQkYsRUFBT3hQLFVBQVUwUCxjQUN2Q0QsRUFBaUJrQixLQUFPOUIsRUFDeEJhLEVBQWNFLE9BQU9GLEVBQWNoSCxRQUFRLFFBQVMsRUFBRyxRQUV2RCxNQUFNbUgsRUFBV3ZNLEtBQUt1TSxTQUdOLE1BQVpBLElBQ2VBLEVBQVM3UCxVQUFVOFAsU0FDM0JnQyxXQUFhLFNBQVUxUCxHQUM5QixNQUFPLElBQU1BLEVBQUtOLE1BQVEsT0dsRmpCaEMsS0FBS3dELEtBQU1rTix3QkN1QnhCLFNBQVN1QixHQUVULElBQUlDLEtBQ0FDLEVBQWFsUyxPQUFPa0IsS0FHcEJpUixLQUNBQyxLQUdBQyxFQUFtQixnQ0FDbkJDLEVBQW1CLDhCQUNuQkMsRUFBbUIsK0JBRW5CQyxFQUFhLFVBSWJ6TixHQUNGME4sWUFBYSxRQUNiQyxXQUFZLEtBQ1pDLE9BQU8sRUFDUFIsZUFBVzFRLEdBTWIsU0FBU21SLEVBQU83USxHQUNkLE9BQU9BLEVBQU02RCxRQUFRLEtBQU0sU0FBU0EsUUFBUSxLQUFNLFFBQVFBLFFBQVEsS0FBTSxRQUcxRSxTQUFTaU4sRUFBSXhRLEdBQ1gsT0FBT0EsRUFBS3lRLFNBQVNDLGNBR3ZCLFNBQVNDLEVBQU96RSxFQUFJMEUsR0FDbEIsSUFBSXpLLEVBQVErRixHQUFNQSxFQUFHbUQsS0FBS3VCLEdBQzFCLE9BQU96SyxHQUF5QixJQUFoQkEsRUFBTWxHLE1BR3hCLFNBQVM0USxFQUFpQkMsR0FDeEIsT0FBT2QsRUFBY2pRLEtBQUsrUSxHQTBCNUIsU0FBU0MsRUFBUTdRLEdBQ2YsSUFBSTFDLEVBQ0FtRSxLQUNBcVAsRUFBVXJSLE1BQU0vQixVQUFVaUksTUFBTW5JLEtBQUtMLFVBQVcsR0FFcEQsSUFBS0csS0FBTzBDLEVBQ1Z5QixFQUFPbkUsR0FBTzBDLEVBQU8xQyxHQUt2QixPQUpBd1QsRUFBUXJTLFFBQVEsU0FBU3NTLEdBQ3ZCLElBQUt6VCxLQUFPeVQsRUFDVnRQLEVBQU9uRSxHQUFPeVQsRUFBSXpULEtBRWZtRSxFQUtULFNBQVN1UCxFQUFXbFIsR0FDbEIsSUFBSTJCLEtBMEJKLE9BekJBLFNBQVV3UCxFQUFZblIsRUFBTXFDLEdBQzFCLElBQUssSUFBSVQsRUFBUTVCLEVBQUtvUixXQUFZeFAsRUFBT0EsRUFBUUEsRUFBTXlQLFlBQzlCLElBQW5CelAsRUFBTTBQLFNBQ1JqUCxHQUFVVCxFQUFNMlAsVUFBVWpVLE9BQ0EsSUFBbkJzRSxFQUFNMFAsV0FDYjNQLEVBQU8yQyxNQUNMa04sTUFBTyxRQUNQblAsT0FBUUEsRUFDUnJDLEtBQU00QixJQUVSUyxFQUFTOE8sRUFBWXZQLEVBQU9TLEdBSXZCbU8sRUFBSTVPLEdBQU91RSxNQUFNLG9CQUNwQnhFLEVBQU8yQyxNQUNMa04sTUFBTyxPQUNQblAsT0FBUUEsRUFDUnJDLEtBQU00QixLQUtkLE9BQU9TLEVBdkJULENBd0JHckMsRUFBTSxHQUNGMkIsRUF1RlQsU0FBUzhQLEVBQWdCWCxHQUV2QixTQUFTWSxFQUFNeEYsR0FDWCxPQUFRQSxHQUFNQSxFQUFHM08sUUFBVzJPLEVBR2hDLFNBQVN5RixFQUFPalMsRUFBT2tTLEdBQ3JCLE9BQU8sSUFBSUMsT0FDVEgsRUFBTWhTLEdBQ04sS0FBT29SLEVBQVNnQixpQkFBbUIsSUFBTSxLQUFPRixFQUFTLElBQU0sTUFJbkUsU0FBU0csRUFBWUMsRUFBTTlSLEdBQ3pCLElBQUk4UixFQUFLQyxTQUFULENBS0EsR0FIQUQsRUFBS0MsVUFBVyxFQUVoQkQsRUFBS0UsU0FBV0YsRUFBS0UsVUFBWUYsRUFBS0csY0FDbENILEVBQUtFLFNBQVUsQ0FDakIsSUFBSUUsS0FFQUMsRUFBVSxTQUFTdE4sRUFBV3pCLEdBQzVCd04sRUFBU2dCLG1CQUNYeE8sRUFBTUEsRUFBSW9OLGVBRVpwTixFQUFJNUUsTUFBTSxLQUFLQyxRQUFRLFNBQVMyVCxHQUM5QixJQUFJQyxFQUFPRCxFQUFHNVQsTUFBTSxLQUNwQjBULEVBQWtCRyxFQUFLLEtBQU94TixFQUFXd04sRUFBSyxHQUFLQyxPQUFPRCxFQUFLLElBQU0sTUFJNUMsaUJBQWxCUCxFQUFLRSxTQUNkRyxFQUFRLFVBQVdMLEVBQUtFLFVBRXhCckMsRUFBV21DLEVBQUtFLFVBQVV2VCxRQUFRLFNBQVVvRyxHQUMxQ3NOLEVBQVF0TixFQUFXaU4sRUFBS0UsU0FBU25OLE1BR3JDaU4sRUFBS0UsU0FBV0UsRUFFbEJKLEVBQUtTLFVBQVlkLEVBQU9LLEVBQUtVLFNBQVcsT0FBTyxHQUUzQ3hTLElBQ0U4UixFQUFLRyxnQkFDUEgsRUFBS1csTUFBUSxPQUFTWCxFQUFLRyxjQUFjelQsTUFBTSxLQUFLRixLQUFLLEtBQU8sUUFFN0R3VCxFQUFLVyxRQUNSWCxFQUFLVyxNQUFRLFNBQ2ZYLEVBQUtZLFFBQVVqQixFQUFPSyxFQUFLVyxPQUN0QlgsRUFBS3hQLEtBQVF3UCxFQUFLYSxpQkFDckJiLEVBQUt4UCxJQUFNLFNBQ1R3UCxFQUFLeFAsTUFDUHdQLEVBQUtjLE1BQVFuQixFQUFPSyxFQUFLeFAsTUFDM0J3UCxFQUFLZSxlQUFpQnJCLEVBQU1NLEVBQUt4UCxNQUFRLEdBQ3JDd1AsRUFBS2EsZ0JBQWtCM1MsRUFBTzZTLGlCQUNoQ2YsRUFBS2UsaUJBQW1CZixFQUFLeFAsSUFBTSxJQUFNLElBQU10QyxFQUFPNlMsaUJBRXREZixFQUFLZ0IsVUFDUGhCLEVBQUtpQixVQUFZdEIsRUFBT0ssRUFBS2dCLFVBQ1QsTUFBbEJoQixFQUFLa0IsWUFDUGxCLEVBQUtrQixVQUFZLEdBQ2RsQixFQUFLbUIsV0FDUm5CLEVBQUttQixhQUVQbkIsRUFBS21CLFNBQVd4VCxNQUFNL0IsVUFBVWtHLE9BQU83QyxTQUFVK1EsRUFBS21CLFNBQVM3VSxJQUFJLFNBQVM4VSxHQUMxRSxPQTNFTixTQUFxQnBCLEdBTW5CLE9BTElBLEVBQUtxQixXQUFhckIsRUFBS3NCLGtCQUN6QnRCLEVBQUtzQixnQkFBa0J0QixFQUFLcUIsU0FBUy9VLElBQUksU0FBU2lWLEdBQ2hELE9BQU94QyxFQUFRaUIsR0FBT3FCLFNBQVUsTUFBT0UsTUFHcEN2QixFQUFLc0IsaUJBQW9CdEIsRUFBS2EsaUJBQW1COUIsRUFBUWlCLE1BQVlBLEdBcUVqRXdCLENBQWtCLFNBQU5KLEVBQWVwQixFQUFPb0IsTUFFM0NwQixFQUFLbUIsU0FBU3hVLFFBQVEsU0FBU3lVLEdBQUlyQixFQUFZcUIsRUFBR3BCLEtBRTlDQSxFQUFLeUIsUUFDUDFCLEVBQVlDLEVBQUt5QixPQUFRdlQsR0FHM0IsSUFBSXdULEVBQ0YxQixFQUFLbUIsU0FBUzdVLElBQUksU0FBUzhVLEdBQ3pCLE9BQU9BLEVBQUVqQixjQUFnQixRQUFVaUIsRUFBRVQsTUFBUSxRQUFVUyxFQUFFVCxRQUUxRDdPLFFBQVFrTyxFQUFLZSxlQUFnQmYsRUFBS2dCLFVBQ2xDMVUsSUFBSW9ULEdBQ0ppQyxPQUFPalQsU0FDVnNSLEVBQUswQixZQUFjQSxFQUFZcFcsT0FBU3FVLEVBQU8rQixFQUFZbFYsS0FBSyxNQUFNLElBQVM2USxLQUFNLFdBQWlCLE9BQU8sUUFHL0cwQyxDQUFZakIsR0FZZCxTQUFTOEMsRUFBVXJQLEVBQU03RSxFQUFPbVUsRUFBaUJDLEdBNEIvQyxTQUFTQyxFQUFhL0IsRUFBTTdMLEdBQzFCLElBQUk2TixFQUFZbEQsRUFBU2dCLGlCQUFtQjNMLEVBQU0sR0FBR3VLLGNBQWdCdkssRUFBTSxHQUMzRSxPQUFPNkwsRUFBS0UsU0FBU3pVLGVBQWV1VyxJQUFjaEMsRUFBS0UsU0FBUzhCLEdBR2xFLFNBQVNDLEVBQVVDLEVBQVdDLEVBQVlDLEVBQVdDLEdBQ25ELElBQUlqRSxFQUFjaUUsRUFBVyxHQUFLM1IsRUFBUTBOLFlBQ3RDa0UsRUFBYyxnQkFBa0JsRSxFQUNoQ21FLEVBQWNILEVBQVksR0FBS2pFLEVBSW5DLE9BRkFtRSxHQUFZSixFQUFZLE1BRU5DLEVBQWFJLEVBb0RqQyxTQUFTQyxJQUNQN1MsR0FBOEIsTUFBbkI4UyxFQUFJQyxZQXhCakIsV0FDRSxJQUFJQyxFQUFzQyxpQkFBcEJGLEVBQUlDLFlBQzFCLEdBQUlDLElBQWE3RSxFQUFVMkUsRUFBSUMsYUFDN0IsT0FBT25FLEVBQU9xRSxHQUdoQixJQUFJalQsRUFBU2dULEVBQ0FmLEVBQVVhLEVBQUlDLFlBQWFFLEdBQWEsRUFBTUMsRUFBY0osRUFBSUMsY0FDaEVJLEVBQWNGLEVBQWFILEVBQUlDLFlBQVlwWCxPQUFTbVgsRUFBSUMsaUJBQWN0VixHQVluRixPQU5JcVYsRUFBSXZCLFVBQVksSUFDbEJBLEdBQWF2UixFQUFPdVIsV0FFbEJ5QixJQUNGRSxFQUFjSixFQUFJQyxhQUFlL1MsRUFBTzhTLEtBRW5DUixFQUFVdFMsRUFBT21QLFNBQVVuUCxFQUFPakMsT0FBTyxHQUFPLEdBSWxCcVYsR0FsRHZDLFdBQ0UsSUFBSUMsRUFBZUMsRUFBWTlPLEVBQU94RSxFQUV0QyxJQUFLOFMsRUFBSXZDLFNBQ1AsT0FBTzNCLEVBQU9xRSxHQU9oQixJQUxBalQsRUFBUyxHQUNUc1QsRUFBYSxFQUNiUixFQUFJaEMsVUFBVXlDLFVBQVksRUFDMUIvTyxFQUFRc08sRUFBSWhDLFVBQVVwRCxLQUFLdUYsR0FFcEJ6TyxHQUNMeEUsR0FBVTRPLEVBQU9xRSxFQUFZTyxVQUFVRixFQUFZOU8sRUFBTWxHLFNBQ3pEK1UsRUFBZ0JqQixFQUFhVSxFQUFLdE8sS0FFaEMrTSxHQUFhOEIsRUFBYyxHQUMzQnJULEdBQVVzUyxFQUFVZSxFQUFjLEdBQUl6RSxFQUFPcEssRUFBTSxNQUVuRHhFLEdBQVU0TyxFQUFPcEssRUFBTSxJQUV6QjhPLEVBQWFSLEVBQUloQyxVQUFVeUMsVUFDM0IvTyxFQUFRc08sRUFBSWhDLFVBQVVwRCxLQUFLdUYsR0FFN0IsT0FBT2pULEVBQVM0TyxFQUFPcUUsRUFBWXZQLE9BQU80UCxJQTJCa0JHLEdBQzVEUixFQUFjLEdBR2hCLFNBQVNTLEVBQWFyRCxHQUNwQnJRLEdBQVVxUSxFQUFLak4sVUFBV2tQLEVBQVVqQyxFQUFLak4sVUFBVyxJQUFJLEdBQU8sR0FDL0QwUCxFQUFNOVcsT0FBTzJYLE9BQU90RCxHQUFPOVIsUUFBU1IsTUFBTytVLEtBRzdDLFNBQVNjLEVBQWNDLEVBQVE1RSxHQUk3QixHQUZBZ0UsR0FBZVksRUFFRCxNQUFWNUUsRUFFRixPQURBNEQsSUFDTyxFQUdULElBQUlpQixFQTdHTixTQUFpQjdFLEVBQVFvQixHQUN2QixJQUFJNVUsRUFBR0UsRUFFUCxJQUFLRixFQUFJLEVBQUdFLEVBQVMwVSxFQUFLbUIsU0FBUzdWLE9BQVFGLEVBQUlFLEVBQVFGLElBQ3JELEdBQUl1VCxFQUFPcUIsRUFBS21CLFNBQVMvVixHQUFHd1YsUUFBU2hDLEdBQ25DLE9BQU9vQixFQUFLbUIsU0FBUy9WLEdBd0dWc1ksQ0FBUTlFLEVBQVE2RCxHQUMvQixHQUFJZ0IsRUFhRixPQVpJQSxFQUFTRSxLQUNYZixHQUFlaEUsR0FFWDZFLEVBQVNHLGVBQ1hoQixHQUFlaEUsR0FFakI0RCxJQUNLaUIsRUFBU0ksYUFBZ0JKLEVBQVNHLGVBQ3JDaEIsRUFBY2hFLElBR2xCeUUsRUFBYUksR0FDTkEsRUFBU0ksWUFBYyxFQUFJakYsRUFBT3RULE9BRzNDLElBQUl3WSxFQXBITixTQUFTQyxFQUFVL0QsRUFBTXBCLEdBQ3ZCLEdBQUlELEVBQU9xQixFQUFLYyxNQUFPbEMsR0FBUyxDQUM5QixLQUFPb0IsRUFBS2dFLFlBQWNoRSxFQUFLOVIsUUFDN0I4UixFQUFPQSxFQUFLOVIsT0FFZCxPQUFPOFIsRUFFVCxHQUFJQSxFQUFLYSxlQUNQLE9BQU9rRCxFQUFVL0QsRUFBSzlSLE9BQVEwUSxHQTRHakJtRixDQUFVdEIsRUFBSzdELEdBQzlCLEdBQUlrRixFQUFVLENBQ1osSUFBSUcsRUFBU3hCLEVBQ1R3QixFQUFPTixLQUNUZixHQUFlaEUsR0FFVHFGLEVBQU9DLFdBQWFELEVBQU9FLGFBQy9CdkIsR0FBZWhFLEdBRWpCNEQsSUFDSXlCLEVBQU9FLGFBQ1R2QixFQUFjaEUsSUFHbEIsR0FDTTZELEVBQUkxUCxZQUNOcEQsR0FBVXdPLEdBRVBzRSxFQUFJa0IsT0FDUHpDLEdBQWF1QixFQUFJdkIsV0FFbkJ1QixFQUFNQSxFQUFJdlUsYUFDSHVVLElBQVFxQixFQUFTNVYsUUFJMUIsT0FISTRWLEVBQVNyQyxRQUNYNEIsRUFBYVMsRUFBU3JDLFFBRWpCd0MsRUFBT0MsVUFBWSxFQUFJdEYsRUFBT3RULE9BR3ZDLEdBcklGLFNBQW1Cc1QsRUFBUW9CLEdBQ3pCLE9BQVE2QixHQUFtQmxELEVBQU9xQixFQUFLaUIsVUFBV3JDLEdBb0k5Q3dGLENBQVV4RixFQUFRNkQsR0FDcEIsTUFBTSxJQUFJaFUsTUFBTSxtQkFBcUJtUSxFQUFTLGdCQUFrQjZELEVBQUkxUCxXQUFhLGFBQWUsS0FRbEcsT0FEQTZQLEdBQWVoRSxFQUNSQSxFQUFPdFQsUUFBVSxFQUcxQixJQUFJd1QsRUFBV3VGLEVBQVk5UixHQUMzQixJQUFLdU0sRUFDSCxNQUFNLElBQUlyUSxNQUFNLHNCQUF3QjhELEVBQU8sS0FHakRrTixFQUFnQlgsR0FDaEIsSUFFaUJ3RixFQUZiN0IsRUFBTVgsR0FBZ0JoRCxFQUN0QitELEtBQ0FsVCxFQUFTLEdBQ2IsSUFBSTJVLEVBQVU3QixFQUFLNkIsSUFBWXhGLEVBQVV3RixFQUFVQSxFQUFRcFcsT0FDckRvVyxFQUFRdlIsWUFDVnBELEVBQVNzUyxFQUFVcUMsRUFBUXZSLFVBQVcsSUFBSSxHQUFRcEQsR0FHdEQsSUFBSWlULEVBQWMsR0FDZDFCLEVBQVksRUFDaEIsSUFFRSxJQURBLElBQUkvTSxFQUFPb1EsRUFBT3RXLEVBQVEsRUFFeEJ3VSxFQUFJZixZQUFZd0IsVUFBWWpWLEVBQzVCa0csRUFBUXNPLEVBQUlmLFlBQVlyRSxLQUFLM1AsSUFHN0I2VyxFQUFRaEIsRUFBYzdWLEVBQU15VixVQUFVbFYsRUFBT2tHLEVBQU1sRyxPQUFRa0csRUFBTSxJQUNqRWxHLEVBQVFrRyxFQUFNbEcsTUFBUXNXLEVBR3hCLElBREFoQixFQUFjN1YsRUFBTTJGLE9BQU9wRixJQUN2QnFXLEVBQVU3QixFQUFLNkIsRUFBUXBXLE9BQVFvVyxFQUFVQSxFQUFRcFcsT0FDL0NvVyxFQUFRdlIsWUFDVnBELEdBQVV3TyxHQUdkLE9BQ0UrQyxVQUFXQSxFQUNYeFQsTUFBT2lDLEVBQ1BtUCxTQUFVdk0sRUFDVmtRLElBQUtBLEdBRVAsTUFBTytCLEdBQ1AsR0FBSUEsRUFBRUMsVUFBNkMsSUFBbENELEVBQUVDLFFBQVFuUSxRQUFRLFdBQ2pDLE9BQ0U0TSxVQUFXLEVBQ1h4VCxNQUFPNlEsRUFBTzdRLElBR2hCLE1BQU04VyxHQWdCWixTQUFTMUIsRUFBYzVRLEVBQU13UyxHQUMzQkEsRUFBaUJBLEdBQWtCaFUsRUFBUW9OLFdBQWFELEVBQVdDLEdBQ25FLElBQUluTyxHQUNGdVIsVUFBVyxFQUNYeFQsTUFBTzZRLEVBQU9yTSxJQUVaeVMsRUFBY2hWLEVBZWxCLE9BZEErVSxFQUFlL0MsT0FBTzBDLEdBQWExWCxRQUFRLFNBQVM0RixHQUNsRCxJQUFJK1IsRUFBVTFDLEVBQVVyUCxFQUFNTCxHQUFNLEdBQ3BDb1MsRUFBUXhGLFNBQVd2TSxFQUNmK1IsRUFBUXBELFVBQVl5RCxFQUFZekQsWUFDbEN5RCxFQUFjTCxHQUVaQSxFQUFRcEQsVUFBWXZSLEVBQU91UixZQUM3QnlELEVBQWNoVixFQUNkQSxFQUFTMlUsS0FHVEssRUFBWTdGLFdBQ2RuUCxFQUFPZ1YsWUFBY0EsR0FFaEJoVixFQVVULFNBQVNpVixFQUFVbFgsR0FDakIsT0FBU2dELEVBQVEyTixZQUFjM04sRUFBUTROLE1BRW5DNVEsRUFBTTZELFFBQVEyTSxFQUFhLFNBQVMvSixFQUFPMFEsR0FDekMsT0FBSW5VLEVBQVE0TixPQUFtQixPQUFWbkssRUFDWixPQUNFekQsRUFBUTJOLFdBQ1Z3RyxFQUFHdFQsUUFBUSxNQUFPYixFQUFRMk4sWUFFNUIsS0FQVDNRLEVBOEJOLFNBQVNvWCxFQUFlQyxHQUN0QixJQUFJL1csRUFBTWdYLEVBQWdCclYsRUFBUXNWLEVBQVkvUyxFQUMxQzRNLEVBaGlCTixTQUF1QmlHLEdBQ3JCLElBQUkzWixFQUFHK0ksRUFBTzdJLEVBQVE0WixFQUNsQkMsRUFBVUosRUFBTWhTLFVBQVksSUFNaEMsR0FKQW9TLEdBQVdKLEVBQU1LLFdBQWFMLEVBQU1LLFdBQVdyUyxVQUFZLEdBRzNEb0IsRUFBUThKLEVBQWlCWixLQUFLOEgsR0FFNUIsT0FBT2QsRUFBWWxRLEVBQU0sSUFBTUEsRUFBTSxHQUFLLGVBSzVDLElBRkFnUixFQUFVQSxFQUFRelksTUFBTSxPQUVuQnRCLEVBQUksRUFBR0UsRUFBUzZaLEVBQVE3WixPQUFRRixFQUFJRSxFQUFRRixJQUcvQyxHQUFJeVQsRUFGSnFHLEVBQVNDLEVBQVEvWixLQUVlaVosRUFBWWEsR0FDMUMsT0FBT0EsRUE4Z0JJRyxDQUFjTixHQUV6QmxHLEVBQWlCQyxLQUdqQnBPLEVBQVE0TixPQUNWdFEsRUFBT3NYLFNBQVNDLGdCQUFnQiwrQkFBZ0MsUUFDM0RDLFVBQVlULEVBQU1TLFVBQVVqVSxRQUFRLE1BQU8sSUFBSUEsUUFBUSxjQUFlLE1BRTNFdkQsRUFBTytXLEVBRVQ3UyxFQUFPbEUsRUFBS3lYLFlBQ1o5VixFQUFTbVAsRUFBVzhDLEVBQVU5QyxFQUFVNU0sR0FBTSxHQUFRNFEsRUFBYzVRLElBRXBFOFMsRUFBaUI5RixFQUFXbFIsSUFDVDFDLFVBQ2pCMlosRUFBYUssU0FBU0MsZ0JBQWdCLCtCQUFnQyxRQUMzREMsVUFBWTdWLEVBQU9qQyxNQUM5QmlDLEVBQU9qQyxNQTdlWCxTQUFzQmdZLEVBQVVDLEVBQWFqWSxHQUMzQyxJQUFJa1ksRUFBWSxFQUNaalcsRUFBUyxHQUNUa1csS0FFSixTQUFTQyxJQUNQLE9BQUtKLEVBQVNwYSxRQUFXcWEsRUFBWXJhLE9BR2pDb2EsRUFBUyxHQUFHclYsU0FBV3NWLEVBQVksR0FBR3RWLE9BQ2hDcVYsRUFBUyxHQUFHclYsT0FBU3NWLEVBQVksR0FBR3RWLE9BQVVxVixFQUFXQyxFQWtCbkMsVUFBekJBLEVBQVksR0FBR25HLE1BQW9Ca0csRUFBV0MsRUFyQjVDRCxFQUFTcGEsT0FBU29hLEVBQVdDLEVBd0J4QyxTQUFTSSxFQUFLL1gsR0FFWjJCLEdBQVUsSUFBTTZPLEVBQUl4USxHQUFRNFAsRUFBV3RSLElBQUlaLEtBQUtzQyxFQUFLZ1ksV0FEckQsU0FBa0JDLEdBQUksTUFBTyxJQUFNQSxFQUFFeEgsU0FBVyxLQUFPRixFQUFPMEgsRUFBRXZZLE9BQU82RCxRQUFRLElBQUssVUFBWSxNQUNyQi9FLEtBQUssSUFBTSxJQUd4RixTQUFTMFosRUFBTWxZLEdBQ2IyQixHQUFVLEtBQU82TyxFQUFJeFEsR0FBUSxJQUcvQixTQUFTbVksRUFBTzNHLElBQ0csVUFBaEJBLEVBQU1BLE1BQW9CdUcsRUFBT0csR0FBTzFHLEVBQU14UixNQUdqRCxLQUFPMFgsRUFBU3BhLFFBQVVxYSxFQUFZcmEsUUFBUSxDQUM1QyxJQUFJOGEsRUFBU04sSUFHYixHQUZBblcsR0FBVTRPLEVBQU83USxFQUFNeVYsVUFBVXlDLEVBQVdRLEVBQU8sR0FBRy9WLFNBQ3REdVYsRUFBWVEsRUFBTyxHQUFHL1YsT0FDbEIrVixJQUFXVixFQUFVLENBT3ZCRyxFQUFVcFcsVUFBVTlDLFFBQVF1WixHQUM1QixHQUNFQyxFQUFPQyxFQUFPNUssT0FBTyxFQUFHLEdBQUcsSUFDM0I0SyxFQUFTTixVQUNGTSxJQUFXVixHQUFZVSxFQUFPOWEsUUFBVThhLEVBQU8sR0FBRy9WLFNBQVd1VixHQUN0RUMsRUFBVXBXLFVBQVU5QyxRQUFRb1osT0FFSixVQUFwQkssRUFBTyxHQUFHNUcsTUFDWnFHLEVBQVV2VCxLQUFLOFQsRUFBTyxHQUFHcFksTUFFekI2WCxFQUFVUSxNQUVaRixFQUFPQyxFQUFPNUssT0FBTyxFQUFHLEdBQUcsSUFHL0IsT0FBTzdMLEVBQVM0TyxFQUFPN1EsRUFBTTJGLE9BQU91UyxJQXVhbkJVLENBQWF0QixFQUFnQjlGLEVBQVcrRixHQUFhL1MsSUFFdEV2QyxFQUFPakMsTUFBUWtYLEVBQVVqVixFQUFPakMsT0FFaENxWCxFQUFNUyxVQUFZN1YsRUFBT2pDLE1BQ3pCcVgsRUFBTWhTLFVBNUNSLFNBQXdCd1QsRUFBZUMsRUFBYUMsR0FDbEQsSUFBSTNILEVBQVcwSCxFQUFjekksRUFBUXlJLEdBQWVDLEVBQ2hEOVcsR0FBWTRXLEVBQWMzVSxRQVU5QixPQVJLMlUsRUFBY3BTLE1BQU0sYUFDdkJ4RSxFQUFPMkMsS0FBSyxTQUcyQixJQUFyQ2lVLEVBQWNqUyxRQUFRd0ssSUFDeEJuUCxFQUFPMkMsS0FBS3dNLEdBR1BuUCxFQUFPbkQsS0FBSyxLQUFLb0YsT0FnQ044VSxDQUFlM0IsRUFBTWhTLFVBQVcrTCxFQUFVblAsRUFBT21QLFVBQ25FaUcsRUFBTXBWLFFBQ0ptUCxTQUFVblAsRUFBT21QLFNBQ2pCNUUsR0FBSXZLLEVBQU91UixXQUVUdlIsRUFBT2dWLGNBQ1RJLEVBQU1KLGFBQ0o3RixTQUFVblAsRUFBT2dWLFlBQVk3RixTQUM3QjVFLEdBQUl2SyxFQUFPZ1YsWUFBWXpELGFBZTdCLFNBQVN5RixJQUNQLElBQUlBLEVBQWlCQyxPQUFyQixDQUVBRCxFQUFpQkMsUUFBUyxFQUUxQixJQUFJQyxFQUFTdkIsU0FBU3dCLGlCQUFpQixZQUN2Q2xKLEVBQVdqUixRQUFRakIsS0FBS21iLEVBQVEvQixJQXNCbEMsU0FBU1QsRUFBWTlSLEdBRW5CLE9BREFBLEdBQVFBLEdBQVEsSUFBSW1NLGNBQ2JaLEVBQVV2TCxJQUFTdUwsRUFBVUMsRUFBUXhMLElBSzlDb0wsRUFBS2lFLFVBQVlBLEVBQ2pCakUsRUFBS21GLGNBQWdCQSxFQUNyQm5GLEVBQUtpSCxVQUFZQSxFQUNqQmpILEVBQUttSCxlQUFpQkEsRUFDdEJuSCxFQUFLb0osVUE5Q0wsU0FBbUJDLEdBQ2pCdFcsRUFBVXFPLEVBQVFyTyxFQUFTc1csSUE4QzdCckosRUFBS2dKLGlCQUFtQkEsRUFDeEJoSixFQUFLc0osdUJBN0JMLFdBQ0VDLGlCQUFpQixtQkFBb0JQLEdBQWtCLEdBQ3ZETyxpQkFBaUIsT0FBUVAsR0FBa0IsSUE0QjdDaEosRUFBS3dKLGlCQXpCTCxTQUEwQjVVLEVBQU11TSxHQUM5QixJQUFJNUssRUFBTzRKLEVBQVV2TCxHQUFRdU0sRUFBU25CLEdBQ2xDekosRUFBSzZKLFNBQ1A3SixFQUFLNkosUUFBUXBSLFFBQVEsU0FBU3lhLEdBQVFySixFQUFRcUosR0FBUzdVLEtBdUIzRG9MLEVBQUswSixjQW5CTCxXQUNFLE9BQU94SixFQUFXQyxJQW1CcEJILEVBQUswRyxZQUFjQSxFQUNuQjFHLEVBQUtvQixRQUFVQSxFQUdmcEIsRUFBSzJKLFNBQVcsZUFDaEIzSixFQUFLNEosb0JBQXNCLGdCQUMzQjVKLEVBQUs2SixVQUFZLG9CQUNqQjdKLEVBQUs4SixZQUFjLHlFQUNuQjlKLEVBQUsrSixpQkFBbUIsZUFDeEIvSixFQUFLZ0ssZUFBaUIsK0lBR3RCaEssRUFBS2lLLGtCQUNIakgsTUFBTyxlQUFnQk8sVUFBVyxHQUVwQ3ZELEVBQUtrSyxrQkFDSDlVLFVBQVcsU0FDWDROLE1BQU8sSUFBTW5RLElBQUssSUFDbEJ3USxRQUFTLE1BQ1RHLFVBQVd4RCxFQUFLaUssbUJBRWxCakssRUFBS21LLG1CQUNIL1UsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQndRLFFBQVMsTUFDVEcsVUFBV3hELEVBQUtpSyxtQkFFbEJqSyxFQUFLb0ssb0JBQ0hwSCxNQUFPLDhJQUVUaEQsRUFBS3FLLFFBQVUsU0FBVXJILEVBQU9uUSxFQUFLeVgsR0FDbkMsSUFBSWpJLEVBQU9yQyxFQUFLb0IsU0FFWmhNLFVBQVcsVUFDWDROLE1BQU9BLEVBQU9uUSxJQUFLQSxFQUNuQjJRLGFBRUY4RyxPQVFGLE9BTkFqSSxFQUFLbUIsU0FBUzdPLEtBQUtxTCxFQUFLb0ssb0JBQ3hCL0gsRUFBS21CLFNBQVM3TyxNQUNaUyxVQUFXLFNBQ1g0TixNQUFPLCtCQUNQTyxVQUFXLElBRU5sQixHQUVUckMsRUFBS3VLLG9CQUFzQnZLLEVBQUtxSyxRQUFRLEtBQU0sS0FDOUNySyxFQUFLd0sscUJBQXVCeEssRUFBS3FLLFFBQVEsT0FBUSxRQUNqRHJLLEVBQUt5SyxrQkFBb0J6SyxFQUFLcUssUUFBUSxJQUFLLEtBQzNDckssRUFBSzBLLGFBQ0h0VixVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzZKLFVBQ1p0RyxVQUFXLEdBRWJ2RCxFQUFLMkssZUFDSHZWLFVBQVcsU0FDWDROLE1BQU9oRCxFQUFLOEosWUFDWnZHLFVBQVcsR0FFYnZELEVBQUs0SyxvQkFDSHhWLFVBQVcsU0FDWDROLE1BQU9oRCxFQUFLK0osaUJBQ1p4RyxVQUFXLEdBRWJ2RCxFQUFLNkssaUJBQ0h6VixVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzZKLFVBQVksa0dBU3hCdEcsVUFBVyxHQUVidkQsRUFBSzhLLGFBQ0gxVixVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLGFBQ2xCd1EsUUFBUyxLQUNURyxVQUNFeEQsRUFBS2lLLGtCQUVIakgsTUFBTyxLQUFNblEsSUFBSyxLQUNsQjBRLFVBQVcsRUFDWEMsVUFBV3hELEVBQUtpSyxxQkFJdEJqSyxFQUFLK0ssWUFDSDNWLFVBQVcsUUFDWDROLE1BQU9oRCxFQUFLMkosU0FDWnBHLFVBQVcsR0FFYnZELEVBQUtnTCx1QkFDSDVWLFVBQVcsUUFDWDROLE1BQU9oRCxFQUFLNEosb0JBQ1pyRyxVQUFXLEdBRWJ2RCxFQUFLaUwsY0FFSGpJLE1BQU8sVUFBWWhELEVBQUs0SixvQkFDeEJyRyxVQUFXLEdBN3hCWDNILENBQVF2SixLQ05aLFNBQVM2WSxNQUVUQSxHQUFLamQsVUFBWWtkLEdBR2pCLElBQUlDLEdBQU0sSUFBSUYsTUFFR0UsR0FFakJBLEdBQUluSCxVQXNGSixTQUFtQjlDLEVBQVVwUixFQUFPZ0QsR0FDbEMsSUFDSXNZLEdBRFd0WSxPQUNPc1ksT0FFUCxPQUFYQSxRQUE4QjViLElBQVg0YixJQUNyQkEsRUFBU0MsSUFHWCxPQUFPcFMsR0FBVXFTLEdBQWNwSyxFQUFVcFIsR0FBTyxFQUFNc2IsS0E3RnhERCxHQUFJakcsY0FBZ0JxRyxHQUNwQkosR0FBSTVCLGlCQWdHSixTQUEwQjVVLEVBQU02VyxHQUM5QixJQUNJelgsR0FET21NLEdBQVV2TCxHQUFRNlcsRUFBT0wsS0FDbEJoTCxRQUNkelMsRUFBU3FHLEdBQVVBLEVBQU9yRyxPQUMxQjJDLEdBQVMsRUFFYm9iLEdBQWMvVyxLQUFLQyxHQUVuQixPQUFTdEUsRUFBUTNDLEdBQ2Z5UyxHQUFRcE0sRUFBTzFELElBQVVzRSxHQXhHN0J3VyxHQUFJMUUsWUFBY0EsR0FFbEIsSUFBSXRGLEdBQVUrSixHQUFLL0osUUFDZmhPLE1BQVN0RixlQUVUd2QsR0FBaUIsUUFDakJLLEdBQWtCLG1CQUNsQkMsR0FBc0Isa0JBQ3RCQyxHQUFRLEdBRVJ4TixHQUFVLElBQ1YzQixHQUFTLElBRVRvUCxHQUFZLFVBQ1pDLEdBQVMsT0FDVEMsR0FBUyxPQUdUTixNQUNBdkwsTUFDQUMsTUFZSixTQUFTb0wsR0FBY3piLEVBQU9nRCxHQUM1QixJQUtJZixFQUNBaWEsRUFDQXRGLEVBQ0EvUixFQVJBcUcsRUFBV2xJLE1BQ1hzWSxFQUFTcFEsRUFBU29RLE9BQ2xCYSxFQUFTalIsRUFBU2lSLFFBQVVSLEdBQzVCL2QsRUFBU3VlLEVBQU92ZSxPQUNoQjJDLEdBQVMsRUFVYixHQUplLE9BQVgrYSxRQUE4QjViLElBQVg0YixJQUNyQkEsRUFBU0MsSUFHVSxpQkFBVnZiLEVBQ1QsTUFBTSxJQUFJZSxNQUFNLHFDQUF1Q2YsRUFBUSxLQU1qRSxJQUhBa2MsRUFBYS9TLE9BQ2JsSCxFQUFTa0gsU0FFQTVJLEVBQVEzQyxHQUdWK1ksR0FGTDlSLEVBQU9zWCxFQUFPNWIsT0FNZHFXLEVBQVV6TixHQUFVcVMsR0FBYzNXLEVBQU03RSxHQUFPLEVBQU9zYixLQUU5Q2xLLFNBQVd2TSxFQUVmK1IsRUFBUXBELFVBQVkwSSxFQUFXMUksWUFDakMwSSxFQUFhdEYsR0FHWEEsRUFBUXBELFVBQVl2UixFQUFPdVIsWUFDN0IwSSxFQUFhamEsRUFDYkEsRUFBUzJVLElBUWIsT0FKSXNGLEVBQVc5SyxXQUNiblAsRUFBT2lhLFdBQWFBLEdBR2ZqYSxFQWdDVCxTQUFTdVosR0FBYzNXLEVBQU03RSxFQUFPK0ssRUFBUXVRLEVBQVFsSCxHQUNsRCxJQUlJaEQsRUFDQTJELEVBQ0E2QixFQUNBd0YsRUFDQXpaLEVBQ0FrVSxFQUNBcFEsRUFDQXRHLEVBWEFnVixLQUNBa0gsS0FDQUMsRUFBYVIsR0FDYnRJLEVBQVksRUFVaEIsR0FBb0IsaUJBQVQzTyxFQUNULE1BQU0sSUFBSTlELE1BQU0sb0NBQXNDOEQsRUFBTyxLQUcvRCxHQUFxQixpQkFBVjdFLEVBQ1QsTUFBTSxJQUFJZSxNQUFNLHFDQUF1Q2YsRUFBUSxLQU9qRSxHQUpBb1IsRUFBV3VGLEdBQVk5UixHQUN2QitSLEVBQVU3QixFQUFNWCxHQUFnQmhELEVBQ2hDZ0wsRUFBa0JqYyxNQUViaVIsRUFDSCxNQUFNLElBQUlyUSxNQUFNLHNCQUF3QjhELEVBQU8sd0JBNlZuRCxTQUF5QnVNLEdBdUh2QixTQUFTYSxFQUFPalMsRUFBT2tTLEdBQ3JCLE9BQU8sSUFBSUMsT0FDVHRVLEVBQU9tQyxHQUNQLEtBQU9vUixFQUFTd0ssSUFBbUIsSUFBTSxLQUN4QzFKLEVBQVMsSUFBTSxLQUtwQixTQUFTclUsRUFBTzJPLEdBQ2QsT0FBUUEsR0FBTUEsRUFBRzNPLFFBQVcyTyxHQTdIOUIsU0FBUzZGLEVBQVlDLEVBQU05UixHQUN6QixJQUFJK2IsS0FDSixJQUFJdkksRUFFSixHQUFJMUIsRUFBS0MsU0FDUCxPQUdGRCxFQUFLQyxVQUFXLEVBRWhCRCxFQUFLRSxTQUFXRixFQUFLRSxVQUFZRixFQUFLRyxjQUVsQ0gsRUFBS0UsV0FDc0IsaUJBQWxCRixFQUFLRSxTQUNkRyxFQUFRLFVBQVdMLEVBQUtFLFVBRXhCdlUsT0FBT2tCLEtBQUttVCxFQUFLRSxVQUFVdlQsUUFBUSxTQUFVb0csR0FDM0NzTixFQUFRdE4sRUFBV2lOLEVBQUtFLFNBQVNuTixNQUlyQ2lOLEVBQUtFLFNBQVcrSixHQUdsQmpLLEVBQUtTLFVBQVlkLEVBQU9LLEVBQUtVLFNBQVcsT0FBTyxHQUUzQ3hTLElBQ0U4UixFQUFLRyxnQkFDUEgsRUFBS1csTUFBUSxPQUFTWCxFQUFLRyxjQUFjelQsTUFBTXNQLElBQVN4UCxLQUFLNk4sSUFBVSxRQUdwRTJGLEVBQUtXLFFBQ1JYLEVBQUtXLE1BQVEsU0FHZlgsRUFBS1ksUUFBVWpCLEVBQU9LLEVBQUtXLE9BRXRCWCxFQUFLeFAsS0FBUXdQLEVBQUthLGlCQUNyQmIsRUFBS3hQLElBQU0sU0FHVHdQLEVBQUt4UCxNQUNQd1AsRUFBS2MsTUFBUW5CLEVBQU9LLEVBQUt4UCxNQUczQndQLEVBQUtrSyxjQUFnQjNlLEVBQU95VSxFQUFLeFAsTUFBUWdaLEdBRXJDeEosRUFBS2EsZ0JBQWtCM1MsRUFBT2djLGdCQUNoQ2xLLEVBQUtrSyxnQkFBa0JsSyxFQUFLeFAsSUFBTTZKLEdBQVNtUCxJQUFTdGIsRUFBT2djLGdCQUkzRGxLLEVBQUtnQixVQUNQaEIsRUFBS2lCLFVBQVl0QixFQUFPSyxFQUFLZ0IsZUFHUjVULElBQW5CNFMsRUFBS2tCLFlBQ1BsQixFQUFLa0IsVUFBWSxHQUdkbEIsRUFBS21CLFdBQ1JuQixFQUFLbUIsYUFHUG5CLEVBQUttQixTQUFXeFQsTUFBTS9CLFVBQVVrRyxPQUFPN0MsU0FBVStRLEVBQUttQixTQUFTN1UsSUFBSSxTQUFVOFUsR0FDM0UsT0FoRk4sU0FBb0JwQixHQUNkQSxFQUFLcUIsV0FBYXJCLEVBQUt1SixNQUN6QnZKLEVBQUt1SixJQUF1QnZKLEVBQUtxQixTQUFTL1UsSUFBSSxTQUFVaVYsR0FDdEQsT0FBT3hDLEdBQVFpQixHQUFPcUIsU0FBVSxNQUFPRSxNQUkzQyxPQUFPdkIsRUFBS3VKLEtBQXlCdkosRUFBS2EsaUJBQW1COUIsR0FBUWlCLE1BQVlBLEdBeUV0RW1LLENBQWlCLFNBQU4vSSxFQUFlcEIsRUFBT29CLE1BRzFDcEIsRUFBS21CLFNBQVN4VSxRQUFRLFNBQVV5VSxHQUM5QnJCLEVBQVlxQixFQUFHcEIsS0FHYkEsRUFBS3lCLFFBQ1AxQixFQUFZQyxFQUFLeUIsT0FBUXZULEdBRzNCd1QsRUFDRTFCLEVBQUttQixTQUFTN1UsSUFBSSxTQUFVOFUsR0FDMUIsT0FBT0EsRUFBRWpCLGNBQWdCLFFBQVVpQixFQUFFVCxNQUFRLFFBQVVTLEVBQUVULFFBRTFEN08sUUFBUWtPLEVBQUtrSyxjQUFlbEssRUFBS2dCLFVBQ2pDMVUsSUFBSWYsR0FDSm9XLE9BQU9qVCxTQUVWc1IsRUFBSzBCLFlBQWNBLEVBQVlwVyxPQUM3QnFVLEVBQU8rQixFQUFZbFYsS0FBSzZOLEtBQVMsSUFDaENnRCxLQUFNK00sSUFHVCxTQUFTL0osRUFBUXROLEVBQVdyRixHQUMxQixJQUFJMmMsRUFDQTlKLEVBQ0F0UyxFQUNBM0MsRUFVSixJQVJJd1QsRUFBU3dLLE1BQ1g1YixFQUFRQSxFQUFNZ1IsZUFHaEIyTCxFQUFRM2MsRUFBTWhCLE1BQU1zUCxJQUNwQjFRLEVBQVMrZSxFQUFNL2UsT0FDZjJDLEdBQVMsSUFFQUEsRUFBUTNDLEdBQ2ZpVixFQUFPOEosRUFBTXBjLEdBQU92QixNQUFNMk4sSUFFMUI0UCxFQUFpQjFKLEVBQUssS0FDcEJ4TixFQUNBd04sRUFBSyxHQUFLQyxPQUFPRCxFQUFLLElBQU0sSUEvR3BDUixDQUFZakIsR0EzVlpXLENBQWdCWCxHQUVoQixJQUlFLElBSEF6TyxFQUFTb1MsRUFBSWYsWUFBWXdCLFVBQVksRUFDckMvTyxFQUFRc08sRUFBSWYsWUFBWXJFLEtBQUszUCxHQUV0QnlHLEdBQ0xvUSxFQUFRaEIsRUFBYzdWLEVBQU15VixVQUFVOVMsRUFBUThELEVBQU1sRyxPQUFRa0csRUFBTSxJQUNsRTlELEVBQVNvUyxFQUFJZixZQUFZd0IsVUFBWS9PLEVBQU1sRyxNQUFRc1csRUFDbkRwUSxFQUFRc08sRUFBSWYsWUFBWXJFLEtBQUszUCxHQU0vQixJQUhBNlYsRUFBYzdWLEVBQU0yRixPQUFPaEQsSUFDM0JpVSxFQUFVN0IsRUFFSDZCLEVBQVFwVyxRQUNUb1csRUFBUXZSLFdBQ1ZzVCxJQUdGL0IsRUFBVUEsRUFBUXBXLE9BR3BCLE9BQ0VnVCxVQUFXQSxFQUNYeFQsTUFBT29jLEVBQ1BoTCxTQUFVdk0sRUFDVmtRLElBQUtBLEdBRVAsTUFBTzNWLEdBRVAsSUFBd0MsSUFBcENBLEVBQUkyWCxRQUFRblEsUUFBUSxXQUN0QixNQUFNeEgsRUFHUixPQUFRb1UsVUFBVyxFQUFHeFQsTUFBTzRjLEVBQVE1YyxPQUl2QyxTQUFTNlYsRUFBY0MsRUFBUTVFLEdBQzdCLElBQUkyTCxFQUNBQyxFQUNBdkcsRUFJSixHQUZBK0YsR0FBY3hHLE9BRUNwVyxJQUFYd1IsRUFHRixPQUZBNkwsRUFBWWpJLElBQWlCc0gsR0FFdEIsRUFLVCxHQUZBUyxFQXdRRixTQUFpQjNMLEVBQVFvQixHQUN2QixJQUFJck8sRUFBU3FPLEVBQUttQixTQUNkN1YsRUFBU3FHLEVBQU9yRyxPQUNoQjJDLEdBQVMsRUFFYixPQUFTQSxFQUFRM0MsR0FDZixHQUFJeUMsR0FBSzRELEVBQU8xRCxHQUFPMlMsUUFBU2hDLEdBQzlCLE9BQU9qTixFQUFPMUQsR0EvUVJ5VixDQUFROUUsRUFBUTZELEdBT3hCLE9BSkFnSSxFQUFZakksSUFBaUJzSCxHQUU3QnpHLEVBQWFrSCxFQUFTM0wsR0FFZjJMLEVBQVExRyxZQUFjLEVBQUlqRixFQUFPdFQsT0FLMUMsR0FGQWtmLEVBZ1BGLFNBQVN6RyxFQUFVL0QsRUFBTXBCLEdBQ3ZCLEdBQUk3USxHQUFLaVMsRUFBS2MsTUFBT2xDLEdBQVMsQ0FDNUIsS0FBT29CLEVBQUtnRSxZQUFjaEUsRUFBSzlSLFFBQzdCOFIsRUFBT0EsRUFBSzlSLE9BRWQsT0FBTzhSLEVBR1QsR0FBSUEsRUFBS2EsZUFDUCxPQUFPa0QsRUFBVS9ELEVBQUs5UixPQUFRMFEsR0F6UHRCbUYsQ0FBVXRCLEVBQUs3RCxHQUVaLEVBQ1hxRixFQUFTeEIsR0FFSXlCLFdBQWFELEVBQU9FLGFBQy9CNkYsR0FBY3BMLEdBR2hCNkwsRUFBWWpJLElBQWlCc0gsR0FHN0IsR0FDTXJILEVBQUkxUCxXQUNOc1QsSUFHRm5GLEdBQWF1QixFQUFJdkIsVUFDakJ1QixFQUFNQSxFQUFJdlUsYUFDSHVVLElBQVErSCxFQUFRdGMsUUFZekIsT0FWSStWLEVBQU9FLFlBQ1RtRyxFQUFRMUwsRUFBUWtMLEdBR2xCRSxFQUFhUixHQUVUZ0IsRUFBUS9JLFFBQ1Y0QixFQUFhbUgsRUFBUS9JLE9BQVErSCxJQUd4QnZGLEVBQU9DLFVBQVksRUFBSXRGLEVBQU90VCxPQUd2QyxHQXlNRixTQUFtQnNULEVBQVFvQixHQUN6QixPQUFRdkgsR0FBVTFLLEdBQUtpUyxFQUFLaUIsVUFBV3JDLEdBMU1uQ3dGLENBQVV4RixFQUFRNkQsR0FDcEIsTUFBTSxJQUFJaFUsTUFDUixtQkFBcUJtUSxFQUFTLGdCQUM3QjZELEVBQUkxUCxXQUFhLGFBQWUsS0FXckMsT0FGQWlYLEdBQWNwTCxFQUVQQSxFQUFPdFQsUUFBcUMsRUFJckQsU0FBUytYLEVBQWFyRCxFQUFNcEIsR0FDMUIsSUFBSTVRLEVBRUFnUyxFQUFLak4sWUFDUC9FLEVBQU8wYyxFQUFNMUssRUFBS2pOLGVBR2hCaU4sRUFBSzZELFlBQ1BtRyxFQUFhUixHQUNKeEosRUFBSzRELGNBQ2QwRyxFQUFRMUwsRUFBUWtMLEdBRWhCRSxFQUFhUixJQUViUSxFQUFhcEwsRUFJWDVRLElBQ0Y4YixFQUFnQnhYLEtBQUt0RSxHQUNyQitiLEVBQU16WCxLQUFLd1gsR0FDWEEsRUFBa0I5YixFQUFLSCxVQUd6QjRVLEVBQU05VyxPQUFPMlgsT0FBT3RELEdBQU85UixRQUFTUixNQUFPK1UsS0FJN0MsU0FBU0QsSUFDUCxJQUFJN1MsT0FBNkJ2QyxJQUFwQnFWLEVBQUlDLFlBZ0RuQixXQUNFLElBQ0lRLEVBQ0F5SCxFQUNBM2MsRUFDQTRjLEVBSkFsWixLQU1KLElBQUsrUSxFQUFJdkMsU0FDUCxPQUFPb0ssRUFBUU4sRUFBWXRZLEdBRzdCd1IsRUFBWSxFQUVaVCxFQUFJaEMsVUFBVXlDLFVBQVksRUFFMUJ5SCxFQUFVbEksRUFBSWhDLFVBQVVwRCxLQUFLMk0sR0FFN0IsS0FBT1csR0FDTEwsRUFBUU4sRUFBVzdHLFVBQVVELEVBQVd5SCxFQUFRMWMsT0FBUXlELElBRXhEa1osRUFBVzdJLEVBQWFVLEVBQUtrSSxLQUczQnpKLEdBQWEwSixFQUFTLEdBRXRCNWMsRUFBTzBjLEVBQU1FLEVBQVMsT0FFdEJsWixFQUFNWSxLQUFLdEUsR0FFWHNjLEVBQVFLLEVBQVEsR0FBSTNjLEVBQUtILFdBRXpCeWMsRUFBUUssRUFBUSxHQUFJalosR0FHdEJ3UixFQUFZVCxFQUFJaEMsVUFBVXlDLFVBQzFCeUgsRUFBVWxJLEVBQUloQyxVQUFVcEQsS0FBSzJNLEdBSy9CLE9BRkFNLEVBQVFOLEVBQVczVyxPQUFPNlAsR0FBWXhSLEdBRS9CQSxFQXhGc0MwUixHQU0vQyxXQUNFLElBQ0luSSxFQURBMEgsRUFBc0MsaUJBQXBCRixFQUFJQyxZQUkxQixHQUFJQyxJQUFhN0UsR0FBVTJFLEVBQUlDLGFBQzdCLE9BQU80SCxFQUFRTixNQUlmL08sRUFERTBILEVBQ1N1RyxHQUNUekcsRUFBSUMsWUFDSnNILEdBQ0EsRUFDQWhCLEVBQ0FuRyxFQUFjSixFQUFJQyxjQUdUeUcsR0FBY2EsR0FDdkJILE9BQVFwSCxFQUFJQyxZQUFZcFgsT0FBU21YLEVBQUlDLGlCQUFjdFYsRUFDbkQ0YixPQUFRQSxJQVVSdkcsRUFBSXZCLFVBQVksSUFDbEJBLEdBQWFqRyxFQUFTaUcsV0FHcEJ5QixJQUNGRSxFQUFjSixFQUFJQyxhQUFlekgsRUFBU3dILEtBRzVDLE9BQVFpSSxFQUFNelAsRUFBUzZELFNBQVU3RCxFQUFTdk4sT0FBTyxJQTVDZ0JxVixHQUVqRSxPQURBaUgsRUFBYVIsR0FDTjdaLEVBMEZULFNBQVM4YSxFQUFZSSxFQUFVblosR0FLN0IsSUFKQSxJQUVJb1osRUFGQXhmLEVBQVN1ZixFQUFTdmYsT0FDbEIyQyxHQUFTLElBR0pBLEVBQVEzQyxJQUNmd2YsRUFBVUQsRUFBUzVjLElBRVBULE9BQVNrYyxHQUNuQlksRUFBUVEsRUFBUXBkLE1BQU9nRSxHQUV2QkEsRUFBTVksS0FBS3dZLEdBTWpCLFNBQVNSLEVBQVE1YyxFQUFPZ0UsR0FDdEIsSUFBSXFaLEVBWUosT0FWSXJkLEtBQ0ZxZCxFQUFPclosRUFBTUEsRUFBTXBHLE9BQVMsS0FFaEJ5ZixFQUFLdmQsT0FBU2tjLEdBQ3hCcUIsRUFBS3JkLE9BQVNBLEVBRWRnRSxFQUFNWSxLQVFaLFNBQW1CNUUsR0FDakIsT0FBUUYsS0FBTWtjLEdBQVFoYyxNQUFPQSxHQVRkc2QsQ0FBVXRkLEtBSWxCZ0UsRUFTVCxTQUFTZ1osRUFBTW5ZLEVBQU0wWSxFQUFVNUksR0FDN0IsT0FDRTdVLEtBQU1pYyxHQUNOdFEsUUFBU3dRLEdBQ1R2USxZQUNFckcsWUFBYXNQLEVBQVdtSCxHQUFRUixHQUFVelcsSUFFNUMxRSxTQUFVb2QsR0FLZCxTQUFTbEosRUFBYS9CLEVBQU1FLEdBQzFCLElBQUl5SyxFQUFVekssRUFBUyxHQU12QixPQUpJcEIsRUFBU3dLLE1BQ1hxQixFQUFVQSxFQUFRak0sZUFHYjNOLEdBQUlyRixLQUFLc1UsRUFBS0UsU0FBVXlLLElBQVkzSyxFQUFLRSxTQUFTeUssR0FvQzNELFNBQVN0RSxJQUVQeUQsRUFBa0JDLEVBQU0xRCxPQUFTeFksR0FxSnJDLFNBQVNnSixHQUFVbEgsR0FDakIsT0FDRXVSLFVBQVd2UixFQUFPdVIsV0FBYSxFQUMvQnBDLFNBQVVuUCxFQUFPbVAsVUFBWSxLQUM3QnBSLE1BQU9pQyxFQUFPakMsV0FLbEIsU0FBU0ssR0FBS21kLEVBQVl0TSxHQUN4QixJQUFJekssRUFBUStXLEdBQWNBLEVBQVc3TixLQUFLdUIsR0FDMUMsT0FBT3pLLEdBQXlCLElBQWhCQSxFQUFNbEcsTUFJeEIsU0FBU21jLEtBQ1AsT0FBTyxLQUlULFNBQVMvRixHQUFZOVIsR0FHbkIsT0FGQUEsRUFBT0EsRUFBS21NLGNBRUxaLEdBQVV2TCxJQUFTdUwsR0FBVUMsR0FBUXhMLElDeHBCOUMsT0FBaUIsU0FBU29MLEdBR3hCLElBQUk0SixFQUFzQix5Q0FZdEI0RCxFQUFVQyxrTkE2WVZDLEVBQVUsZ0NBR1ZDLEVBQVUzTixFQUFLb0IsUUFBUXBCLEVBQUswSyxhQUc1QmtELEdBQ0Z4WSxVQUFXLFNBQ1g0TixNQUFPLFFBQVNuUSxJQUFLLE1BQ3JCMlEsV0FBWVIsTUFBTyxRQUlqQjZLLEdBQ0Y3SyxNQUFPLElBQUtuUSxJQUFLLElBQUtvVCxjQUFjLEVBQU1PLFlBQVksRUFDdERoRCxXQUVJcE8sVUFBVyxTQUNYNE4sTUFBTyxzQ0FNVDhLLEVBQVc5TixFQUFLb0IsUUFBUXBCLEVBQUt1SyxxQkFvRGpDLE9BQ0VwSSxrQkFBa0IsRUFDbEJZLFFBQVM2RyxFQUNUckgsVUFDRXlLLFFBQVNRLEVBQ1RPLFNBbFdKQyxpa1VBbVdJQyxNQTFKSkMseXBaQTJKSXJlLEtBdkZKc2UsKzVIQXdGSUMsUUFBU1YsR0FFWGxLLFdBMURBcE8sVUFBVyxPQUNYMk4sUUFBUzZHLEVBQ1Q1RyxNQUFPLE1BQU9uUSxJQUFLLElBQ25CMFAsVUFBVzhMLGVBQWdCYixFQS9aWGMsc1VBZ2FoQjlLLFVBQ0VzSyxLQVlGMVksVUFBVyxXQUNYMk4sUUFBUzZHLEVBQ1RsRyxXQUNHVixNQUFPLG9CQUFxQm5RLElBQUssTUFBTzBQLFNBQVUsc0JBQ2xEUyxNQUFPLDhCQUErQlQsU0FBVSxnQ0FFbkRpQixXQUVJUixNQUFPLE1BQU9uUSxJQUFLLE1BQU93VCxZQUFhLEVBQ3ZDN0MsV0FFSXBPLFVBQVcsU0FDWDJOLFFBQVM2RyxFQUNUNUcsTUFBTzRHLEVBQXFCL1csSUFBSyxJQUFLMlQsWUFBWSxFQUFNdEQsZ0JBQWdCLEVBQ3hFWCxVQUNFeUssUUFBUyxPQUNUb0IsUUFBU1YsR0FFWGxLLFVBQ0VtSyxFQUNBQyxFQUNBQyxJQUdKQyxJQUdKOU4sRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU80RyxNQWlCdENrRSxHQWxERjFZLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssTUFBTzJULFlBQVksR0FtRGxDbUgsRUFDQUMsRUFDQUMsUUN6ZlcsU0FBUzdOLEdBQ3RCLElBQUl1TyxFQUNpQix5QkFEakJBLEVBRWlCLG1CQXNCakJDLEVBQWN4TyxFQUFLcUssUUFBUSxJQUFLLEtBc0JoQ29FLEdBQ0F6TCxNQUFPdUwsRUFBMEIsUUFDakNySSxhQUFhLEVBQ2JyVCxJQUFLLElBQ0wwUSxVQUFXLEVBQ1hDLFdBQVlwTyxVQUFXLFlBQWE0TixNQUFPdUwsS0FHL0MsT0FDRWxMLFFBQVNrTCxFQUNUaE0sVUFsREUsUUFDQSxNQUNBLE9BQ0EsS0FDQSxPQUNBLE1BQ0EsUUFDQSxTQUNBLFNBQ0EsT0FDQSxLQUNBLE9BQ0EsUUFDQSxLQUNBLFFBQ0EsT0FtQ2lCMVQsS0FBSyxLQUN4QjJVLFVBQ0lpTCxFQUNBRCxHQWhDRnBaLFVBQVcsU0FDWDROLE1BQU8sdUNBSVA1TixVQUFXLFNBQ1g0TixNQUFPLHVDQUlQNU4sVUFBVyxTQUNYNE4sTUFBTyxnREFJUDVOLFVBQVcsU0FDWDROLE1BQU8sU0FxQkxoRCxFQUFLbUssa0JBQ0xuSyxFQUFLMEssa0JDbEVFLFNBQVMxSyxHQUN4QixPQUNFd0QsV0FHSXBPLFVBQVcsU0FDWDROLE1BQU8sZ0VBSVA1TixVQUFXLFNBQ1g0TixNQUFPLGFBQ1BPLFVBQVcsSUFJWG5PLFVBQVcsU0FDWDROLE1BQU8sMERBQTJEblEsSUFBSyxJQUN2RTBQLFNBQVUsdURBQ1ZjLFFBQVMsTUFDVEUsVUFBVyxLQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQndRLFFBQVMsUUFJVGpPLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakJ3USxRQUFTLGFDaENBLFNBQVNyRCxHQUN4QixJQUdJME8sR0FDRnRaLFVBQVcsV0FDWDROLE1BQU8sU0FBVW5RLElBTEosMkJBTWIwUSxVQUFXLElBR2IsT0FDRW5ELFNBQVUsTUFDVm1DLFVBQ0V5SyxRQUFTLG1VQUtUb0IsUUFBUyw2QkFFWDVLLFVBQ0V4RCxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLMkssZUFFSHZWLFVBQVcsUUFDWG9OLGNBQWUsVUFBVzNQLElBQUssSUFDL0IyUSxVQUFXeEQsRUFBSytLLGNBR2hCM1YsVUFBVyxRQUNYb04sY0FBZSxrQkFBbUIzUCxJQUFLLElBQUsyVCxZQUFZLEVBQ3hEaEQsV0FFSWhCLGNBQWUsc0JBRWpCeEMsRUFBSytLLGNBSVAzVixVQUFXLE9BQ1hvTixjQUFlLGlCQUFrQjNQLElBQUssSUFDdEMwUCxVQUFXOEwsZUFBZ0Isb0JBRzNCalosVUFBVyxXQUNYb04sY0FBZSxXQUFZM1AsSUFBSyxPQUFRMlQsWUFBWSxFQUNwRG5ELFFBQVMsTUFDVEcsVUFDRXhELEVBQUsrSyxZQUVIM1YsVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxNQUNuQjJRLFVBQ0V4RCxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0xrRSxLQUlGMUwsTUFBTyx5Q0FJYmhELEVBQUtpTCxjQUVQNUgsUUFBUyxTQzVEYixTQUFTckQsR0FLTCxJQVdJMk8sRUFBVyw0QkFNWGIsRUFBVzlOLEVBQUtxSyxRQUFRLEtBQU0sS0FLOUJ1RSxHQUlBNUwsTUFBTyxZQUFhblEsSUFBSyxzQkFHekJ3USxRQWZZLFlBZ0JaRyxXQUlRaEIsY0FBZSwwQkFDZjZELFlBQVksSUFJWmpSLFVBQVcsVUFDWG9OLGNBQWUseUVBR2ZwTixVQUFXLE9BQ1g0TixNQUFPMkwsRUFDUHRJLFlBQVksRUFDWjlDLFVBQVcsS0FLdkIsT0FDSXBCLGtCQUFrQixFQUNsQkksVUFDSXlLLFFBQ0ksNGJBT0pvQixRQUNJLGNBRVI1SyxVQUNJc0ssR0FHSTFZLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxXQUFZUixNQUFPLEtBQU1PLFVBQVcsTUFLcENuTyxVQUFXLFNBQ1g0TixNQUFPLFFBSVA1TixVQUFXLFNBQ1g0TixNQTFFSSw4R0EyRUpPLFVBQVcsSUFJWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFBTTJMLElBSWJ2WixVQUFXLFFBQ1g0TixNQUFPLDhEQUErRG5RLElBQUssU0FDM0UwUCxTQUFVLGVBQ1YwRCxjQUFjLEVBQ2RPLFlBQVksRUFDWm5ELFFBbkZJLGNBd0ZKTCxNQUFPLHlEQUEwRG5RLElBQUssc0NBQ3RFMFAsU0FBVSx1REFHVjJELGFBQWEsRUFDYjFDLFVBRUlzSyxHQUdJMVksVUFBVyxRQUNYNE4sTUFBTyw0Q0FDUG5RLElBQUssZUFDTG9ULGNBQWMsRUFDZE8sWUFBWSxFQUNabkQsUUF2R0osYUEyR0F1TCxHQUdJeFosVUFBVyxPQUNYNE4sTUFBTyxnQkFBaUJuUSxJQUFLLGFBQzdCMFAsU0FBVSxTQUNWMEQsY0FBYyxFQUNkTyxZQUFZLEVBRVpILFlBQVksRUFDWmhELFFBckhKLGdCQTZISmpPLFVBQVcsT0FDWDROLE1BQU8sb0JBQXFCblEsSUFBSyxPQUNqQzBQLFNBQVUsT0FDVjBELGNBQWMsRUFDZDVDLFFBaklJLGFBcUlSdUwsUUNsS0ssU0FBUzVPLEdBQ3hCLElBQUk2TyxHQUFVelosVUFBVyxTQUFVNE4sTUFBTyxjQUMxQyxPQUNFNUMsU0FBVSxjQUNWK0Isa0JBQWtCLEVBQ2xCcUIsVUFDRXhELEVBQUt5SyxtQkFDSnJWLFVBQVcsVUFBVzROLE1BQU8sTUFBT25RLElBQUssTUFFeEN1QyxVQUFXLFlBQ1g0TixNQUFPLE1BQ1BPLFVBQVcsRUFHWGhCLFVBQ0V1TSxTQUNFLDhKQUlKaEwsUUFDRWpSLElBQUssSUFDTDBRLFVBQVcsRUFDWGhCLFVBQ0U2TCxRQUFTLGNBRVg1SyxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxTQUFVblEsSUFBSyxTQUd0QnVDLFVBQVcsV0FDWDROLE1BQU8sWUFBYW5RLElBQUssTUFDekIyUSxVQUFXLE9BQVFxTCxJQUVyQkEsRUFDQTdPLEVBQUttSyxzQkFLYjlHLFFBQVMsVUMxQ0ksU0FBU3JELEdBQ3hCLElBQUkrTyxFQUFTL08sRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9COUcsUUFBUyxLQUN4RDJMLEdBQ0Y1WixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFBVyxPQUFReEQsRUFBSzJLLGNBQWVvRSxJQUVyQ0UsRUFBaUJqUCxFQUFLcUssUUFBUSxLQUFNLEtBUXBDeUQsR0FDRm1CLEVBUm1CalAsRUFBS3FLLFFBQ3hCLFNBQ0EsVUFFRTdHLFVBQVcsT0FBUXlMLEtBTXJCalAsRUFBS3lLLG1CQUdQLE9BQ0VySyxTQUFVLGFBQ1ZtQyxVQUNFeUssUUFDRSwwaUJBVUZvQixRQUNFLG1FQUNGTCxTQUNFLHNVQVFKdkssVUFDRXVMLEVBQ0EvTyxFQUFLMkssZUFFSHZWLFVBQVcsV0FDWDROLE1BQ0UsbWNBV0Y1TixVQUFXLFVBQ1g0TixNQUNFLG1FQUdGNU4sVUFBVyxVQUNYNE4sTUFDRSxzU0FPRlIsY0FBZSxLQUNmYSxRQUFTLFlBQ1RHLFVBQVd4RCxFQUFLZ0wsc0JBQXVCZ0UsS0FFekM3YSxPQUFPMlosR0FDVHpLLFFBQVMsdUJDbEZJLFNBQVNyRCxHQUN4QixJQUFJa1AsR0FDRjlaLFVBQVcsVUFDWDROLE1BQU8sc0JBR0w0SyxHQUNGeFksVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxjQUFlblEsSUFBSyxJQUMzQndRLFFBQVMsTUFDVEcsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLGFBQWNuUSxJQUFLLElBQzFCMlEsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLFVBQVluUSxJQUFLLElBQ3hCd1EsUUFBUyxPQUtYc0ssR0FDRnZZLFVBQVcsU0FDWHNPLFdBQ0lWLE1BQU8sa0JBQ1BBLE1BQU8sb0VBQ1BBLE1BQU8sd0ZBRVhPLFVBQVcsR0FHVDRMLEdBQ0YvWixVQUFXLE9BQ1g0TixNQUFPLGVBQWdCblEsSUFBSyxJQUM1QjBQLFVBQ0U4TCxlQUNFLGtGQUdKN0ssV0FFSVIsTUFBTyxPQUFRTyxVQUFXLEdBRTVCdkQsRUFBS29CLFFBQVF3TSxHQUFVeFksVUFBVyxpQkFFaENBLFVBQVcsY0FDWDROLE1BQU8sWUFBYW5RLElBQUssSUFDekJ3USxRQUFTLE9BRVhyRCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssdUJBSUw0RSxFQUFpQnBQLEVBQUsySixTQUFXLFVBRWpDMEYsR0FDRnJDLFFBQVMsK3JCQVdUZSxTQUFVLDR2QkFTVkssUUFBUywyQkFHUGtCLEdBQ0ZKLEVBQ0FsUCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0xtRCxFQUNBQyxHQUdGLE9BQ0V4TixTQUFVLElBQUssS0FBTSxJQUFLLE1BQU8sTUFBTyxPQUN4Q21DLFNBQVU4TSxFQUNWaE0sUUFBUyxLQUNURyxTQUFVOEwsRUFBb0JuYixRQUM1QmdiLEdBRUVuTSxNQUFPLG1KQUFvSm5RLElBQUssSUFDaEswUCxTQUFVOE0sRUFDVjdMLFVBQVcsT0FBUTBMLEtBR25CbE0sTUFBT2hELEVBQUsySixTQUFXLEtBQ3ZCcEgsU0FBVThNLElBTVYzTCxXQUNHVixNQUFPLElBQUtuUSxJQUFLLE1BQ2pCbVEsTUFBTyxLQUFNblEsSUFBSyxPQUNsQjJQLGNBQWUsd0JBQXlCM1AsSUFBSyxNQUVoRDBQLFNBQVU4TSxFQUNWN0wsU0FBVThMLEVBQW9CbmIsU0FFMUI2TyxNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVThNLEVBQ1Y3TCxTQUFVOEwsRUFBb0JuYixRQUFRLFNBQ3RDb1AsVUFBVyxLQUdmQSxVQUFXLElBR1huTyxVQUFXLFdBQ1g0TixNQUFPLElBQU1oRCxFQUFLMkosU0FBVyxlQUFpQnlGLEVBQzlDbEosYUFBYSxFQUFNclQsSUFBSyxRQUN4QjJULFlBQVksRUFDWmpFLFNBQVU4TSxFQUNWaE0sUUFBUyxhQUNURyxXQUVJUixNQUFPb00sRUFBZ0JsSixhQUFhLEVBQ3BDMUMsVUFBV3hELEVBQUsrSyxZQUNoQnhILFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEIwUCxTQUFVOE0sRUFDVjlMLFVBQVcsRUFDWEMsVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTG9ELEVBQ0FELEVBQ0F1QixJQUdKbFAsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMMkUsS0FJRi9aLFVBQVcsUUFDWG9OLGNBQWUsZUFBZ0IzUCxJQUFLLFFBQ3BDMlEsV0FDR1IsTUFBTyxJQUFLblEsSUFBSyxJQUFLMlEsVUFBVyxTQUNsQ3hELEVBQUsrSyxlQUlYMVksU0FDRWtkLGFBQWNKLEVBQ2RLLFFBQVM1QixFQUNUckwsU0FBVThNLFFDMUtDLFNBQVNyUCxHQUN4QixJQUFJeVAsRUFBTXpQLEVBQUswRyxZQUFZLE9BQU9yVSxRQUNuQyxPQUNHa1EsVUFDRXlLLFFBQ0UseUNBQTJDeUMsRUFBSWxOLFNBQVN5SyxRQUMxRGUsU0FDRSwwMkdBMkVGSyxRQUNFLHNOQU1KNUssVUFDRWlNLEVBQUlGLGFBQ0p2UCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMkssb0JDL0ZNLFNBQVMzSyxHQUV4QixPQUNFbUMsa0JBQWtCLEVBQ2xCL0IsU0FBVSxPQUNWMkMsUUFBUyxPQUFTL0MsRUFBSzJKLFNBQ3ZCcEgsVUFDRW1OLEtBRUUsNnRCQUdGM0IsU0FDRSwyMUJBbUJKdkssV0FFSXBPLFVBQVcsVUFDWDROLE1BQU8sc3RCQWlCUG5RLElBQUssT0FFUG1OLEVBQUtxSyxRQUFRLE9BQVEsS0FBTTlHLFVBQVcsSUFDdEN2RCxFQUFLd0sscUJBQ0x4SyxFQUFLbUssbUJBRUgvVSxVQUFXLFNBQ1g0TixNQUFPLElBQ1BuUSxJQUFLLFdBQ0wwUSxVQUFXLElBR1huTyxVQUFXLFFBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25Cd1EsUUFBUyxNQUNURSxVQUFXLElBR1huTyxVQUFXLFNBQ1hzTyxXQUNLVixNQUFPLHNCQUNQQSxNQUFPLGtCQUNQQSxNQUFPLGNBQ1BBLE1BQU8sWUFFWk8sVUFBVyxJQUdYbk8sVUFBVyxTQUNYc08sV0FDS1YsTUFBTyxrQ0FDUEEsTUFBTyx1Q0FDUEEsTUFBTyxhQUVaTyxVQUFXLFNDdEZGLFNBQVN2RCxHQUN4QixJQUNJMlAsR0FDRnpNLGdCQUFnQixFQUNoQkcsUUFBUyxJQUNURSxVQUFXLEVBQ1hDLFdBRUlwTyxVQUFXLE9BQ1g0TixNQVJhLHFCQVNiTyxVQUFXLElBR1hQLE1BQU8sT0FDUE8sVUFBVyxFQUNYQyxXQUVJcE8sVUFBVyxTQUNYaVIsWUFBWSxFQUNaM0MsV0FDR1YsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sSUFBS25RLElBQUssTUFDakJtUSxNQUFPLHNCQU9wQixPQUNFNUMsU0FBVSxPQUFRLFFBQVMsTUFBTyxPQUFRLE1BQU8sTUFBTyxNQUFPLFNBQy9EK0Isa0JBQWtCLEVBQ2xCcUIsV0FFSXBPLFVBQVcsT0FDWDROLE1BQU8sWUFBYW5RLElBQUssSUFDekIwUSxVQUFXLEdBQ1hDLFdBQVlSLE1BQU8sTUFBT25RLElBQUssU0FFakNtTixFQUFLcUssUUFDSCxVQUNBLFVBRUU5RyxVQUFXLE1BSWJQLE1BQU8sa0JBQW1CblEsSUFBSyxVQUMvQjBRLFVBQVcsS0FHWFAsTUFBTyxZQUFhblEsSUFBSyxNQUN6QmtTLFlBQWEsTUFDYnZCLFdBQVlSLE1BQU8sT0FBUW5RLElBQUssT0FBUW1ULE1BQU0sTUFHOUM1USxVQUFXLE1BT1g0TixNQUFPLG9CQUFxQm5RLElBQUssSUFDakMwUCxVQUFXM04sS0FBTSxTQUNqQjRPLFVBQVdtTSxHQUNYN0wsUUFDRWpSLElBQUssV0FBWTBULFdBQVcsRUFDNUJ4QixhQUFjLE1BQU8sVUFJdkIzUCxVQUFXLE1BRVg0TixNQUFPLHFCQUFzQm5RLElBQUssSUFDbEMwUCxVQUFXM04sS0FBTSxVQUNqQjRPLFVBQVdtTSxHQUNYN0wsUUFDRWpSLElBQUssYUFBZ0IwVCxXQUFXLEVBQ2hDeEIsYUFBYyxlQUFnQixhQUFjLGFBQWMsVUFJNUQzUCxVQUFXLE9BQ1hzTyxXQUNHVixNQUFPLFNBQVVuUSxJQUFLLE1BQU8wUSxVQUFXLEtBQ3hDUCxNQUFPLFNBQVVuUSxJQUFLLFVBSXpCdUMsVUFBVyxNQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxNQUNuQjJRLFdBRUlwTyxVQUFXLE9BQVE0TixNQUFPLGFBQWNPLFVBQVcsR0FFckRvTSxVQ2hHTyxTQUFTM1AsR0FDeEIsT0FDRUksU0FBVSxRQUNWb0QsVUFFRXhELEVBQUtxSyxRQUNILFlBQ0EsYUFLRTlHLFVBQVcsS0FJZnZELEVBQUtxSyxRQUNILE1BQ0EsS0FFRTlHLFVBQVcsS0FLYm5PLFVBQVcsUUFDWDROLE1BQU8sZUFJUEEsTUFBTyxpQkFDUG5RLElBQUssa0JBQ0wwUSxVQUFXLEtBSVhuTyxVQUFXLFVBQ1htTyxVQUFXLEdBQ1hHLFdBQ0dWLE1BQU8sMEJBQ1BBLE1BQU8sMkNBS1Y1TixVQUFXLE9BQ1g0TixNQUFPLFNBQ1BuUSxJQUFLLE1BQ0wyVCxZQUFZLEVBQ1pqRCxVQUFXLEtBSVhuTyxVQUFXLE9BQ1g0TixNQUFPLGNBQ1BPLFVBQVcsSUFJWG5PLFVBQVcsUUFDWDROLE1BQU8sWUFDUG5RLElBQUssWUFDTDBRLFVBQVcsS0FJWG5PLFVBQVcsT0FDWDROLE1BQU8sbUJBQ1BuUSxJQUFLLG1CQUNMMFEsVUFBVyxLQUlYUCxNQUFPLGNBQ1BuUSxJQUFLLGNBQ0wyUSxXQUVJUixNQUFPLElBQUtuUSxJQUFLLElBQ2pCa1MsWUFBYSxNQUNieEIsVUFBVyxJQUdmQSxVQUFXLEtBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLHFDQUlQNU4sVUFBVyxTQUNYNE4sTUFBTyw2Q0FDUE8sVUFBVyxLQUlYbk8sVUFBVyxTQUVYNE4sTUFBTyxxQkFDUG5RLElBQUssZUFFTDJRLFdBRUlSLE1BQU8sV0FDUE8sVUFBVyxNQU1mbk8sVUFBVyxXQUVYNE4sTUFBTyxpQkFDUG5RLElBQUssYUFFTDJRLFdBRUlSLE1BQU8sV0FDUE8sVUFBVyxJQUdmQSxVQUFXLElBSVhuTyxVQUFXLFdBRVg0TixNQUFPLGNBQ1BuUSxJQUFLLGFBQ0wwUSxVQUFXLElBSVhuTyxVQUFXLFNBQ1hzTyxXQUNHVixNQUFPLFlBQ1BBLE1BQU8sWUFLVjVOLFVBQVcsT0FDWDROLE1BQU8sb0JBQ1BPLFVBQVcsSUFJWG5PLFVBQVcsT0FDWDROLE1BQU8sVUFDUG5RLElBQUssSUFDTDBRLFVBQVcsSUFJWFAsTUFBTyxpQkFDUE8sVUFBVyxLQUlYUCxNQUFPLDBEQUNQa0QsYUFBYSxFQUNiMUMsV0FFSVIsTUFBTyxrQkFDUE8sVUFBVyxJQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxNQUNQblEsSUFBSyxVQUNMMFEsVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyxNQUNQblEsSUFBSyxNQUNMb1QsY0FBYyxFQUNkTyxZQUFZLEVBQ1pqRCxVQUFXLElBR2ZBLFVBQVcsVUN0TEYsU0FBVXZELEdBQ3pCLElBQUk0UCxFQUNGLHFvQkFTRixPQUNFck4sU0FBV3FOLEVBQ1h2TSxRQUFVLFFBQ1ZHLFVBQ0V4RCxFQUFLcUssUUFDSCxVQUNBLFFBRUU5RyxVQUFZLEVBQ1pDLFdBR0lSLE1BQU8sT0FBUU8sVUFBVyxJQUcxQm5PLFVBQVksU0FDWjROLE1BQVEsaUJBS2hCaEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBS2tLLGlCQUNMbEssRUFBS21LLG1CQUVIL1UsVUFBWSxRQUNab04sY0FBZ0IsU0FDaEIzUCxJQUFNLFFBQ04yVCxZQUFhLEVBQ2JuRCxRQUFVLFlBQ1ZHLFdBRUloQixjQUFnQix5RkFFbEJ4QyxFQUFLZ0wsdUJBRUhoSSxNQUFRLFdBQ1JuUSxJQUFNLE9BQ04wUCxTQUFXcU4sRUFBVyxxQkFDdEJwSixZQUFhLE1BS2pCcFIsVUFBWSxRQUNab04sY0FBZ0Isa0JBQ2hCM1AsSUFBTSxRQUNOMlQsWUFBYSxFQUNiakQsVUFBVyxFQUNYaEIsU0FBVyxrQkFDWGMsUUFBVSxXQUNWRyxXQUNHaEIsY0FBZ0Isc0JBQ2pCeEMsRUFBS2dMLHlCQUtQeEksY0FBZ0Isa0RBQ2hCM1AsSUFBTSxNQUNOMlQsWUFBYSxFQUNibkQsUUFBVSxVQUNWRyxXQUVJUixNQUFRaEQsRUFBSzRKLG9CQUFzQixVQUNuQzFELGFBQWMsRUFDZDFDLFVBQVl4RCxFQUFLZ0wsMkJBS3JCaEksTUFBUSxNQUNSa0QsYUFBYyxFQUNkclQsSUFBTSxPQUNOMFEsVUFBVyxFQUNYaUQsWUFBYSxFQUNiakUsU0FBV3FOLEVBQ1h2TSxRQUFVLFVBQ1ZHLFdBRUlSLE1BQVFoRCxFQUFLNEosb0JBQXNCLFVBQ25DckgsU0FBV3FOLEVBQVcscUJBQ3RCck0sVUFBVyxHQUVidkQsRUFBS21LLHFCQUtQM0gsY0FBZ0IsWUFDaEJlLFVBQVksSUFJWm5PLFVBQVksV0FDWjROLE1BQVEsMkRBQ1JrRCxhQUFjLEVBQ2RyVCxJQUFNLFFBQ04wUCxTQUFXcU4sRUFDWHBKLFlBQWEsRUFDYmhELFdBRUlSLE1BQVFoRCxFQUFLNEosb0JBQXNCLFVBQ25DMUQsYUFBYyxFQUNkM0MsVUFBVyxFQUNYQyxVQUFZeEQsRUFBS2dMLHlCQUdqQjVWLFVBQVksU0FDWjROLE1BQVEsS0FBTW5RLElBQU0sS0FDcEIwUSxVQUFXLEVBQ1hoQixTQUFXcU4sRUFDWHBNLFVBQ0V4RCxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMkssY0FDTDNLLEVBQUt3Syx1QkFHVHhLLEVBQUt1SyxvQkFDTHZLLEVBQUt3Syx1QkFHVHhLLEVBQUsySyxlQUdIdlYsVUFBWSxPQUNaNE4sTUFBUSxvQkMzSUMsU0FBU2hELEdBQ3hCLElBQUk2UCxHQUNGN00sTUFBTyxhQUdULE9BQ0ViLGtCQUFrQixFQUNsQi9CLFNBQVcsT0FDWG1DLFVBQ0V5SyxRQUFTLHVLQUNUb0IsUUFBUyw0QkFDVEwsU0FBVSw2Q0FFWnZLLFdBRUlwTyxVQUFXLFdBQ1g0TixNQUFPLGtCQUVUNk0sRUFDQTdQLEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjNHLFVBQVdxTSxLQUNqRDdQLEVBQUtxSyxRQUFRLElBQUssS0FBTTlHLFVBQVcsSUFDbkN2RCxFQUFLd0ssc0JBRUhwVixVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzZKLFVBQ1p0RyxVQUFXLElBR1huTyxVQUFXLFFBQ1g0TixNQUFPLHVCQUF3Qm5RLElBQUssSUFDcEN3USxRQUFTLHFCQUdUak8sVUFBVyxXQUNYNE4sTUFBTyxtQkFJUDVOLFVBQVcsT0FDWDROLE1BQU8sV0FBYW5RLElBQUksSUFDeEIwUSxVQUFXLElBR1huTyxVQUFXLFNBQ1hvTyxVQUFXcU0sR0FDWG5NLFdBQ0dWLE1BQU8sc0JBQ1BBLE1BQU8sbUJBQW9CTyxVQUFXLE1BTXpDUCxNQUFPLGdCQ3JERSxTQUFTaEQsR0FDdEIsSUFXSXFLLEdBQ0kzRyxVQUNFMUQsRUFBS3FLLFFBQVEsSUFBSyxLQUFNOUcsVUFBVyxJQUNuQ3ZELEVBQUtxSyxRQUFRLE1BQU8sT0FDcEJySyxFQUFLcUssUUFBUSxrQkFBbUIsbUJBSXRDeUYsR0FDSTlNLE1BQU8saUJBR1grTCxHQUNJM1osVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxJQUNQblEsSUFBSyxJQUNMMlEsV0FDSVIsTUFBTyxLQUNQTyxVQUFXLE1BR2ZQLE1BQU8sSUFDUG5RLElBQUssSUFDTDJRLFdBQ0lSLE1BQU8sS0FDUE8sVUFBVyxPQUt2QnNMLEdBQ0luTCxVQUFXMUQsRUFBSzRLLG1CQUFvQjVLLEVBQUsySyxnQkF3RWpELE9BQ0l4SSxrQkFBa0IsRUFDbEJrQixRQUFTLE9BQ1RkLFVBQ0l5SyxRQXZITyxvUEF3SFBlLFNBL0dGLGs0SkFnSEVLLFFBbkhNLDhCQXFIVjVLLFVBQ0k2RyxFQUNBeUYsRUFDQWYsRUFDQUYsR0FoRkF6WixVQUFXLE9BQ1g0TixNQUFPLElBQ1BuUSxJQUFLLElBQ0wwUCxVQUFXOEwsZUFBZ0IsOEZBQzNCN0ssV0FDUVIsTUFBTyxPQUNQTyxVQUFXLElBRVhmLGNBQWUsVUFDZkQsVUFBVzhMLGVBQWdCLFdBQzNCeGIsSUFBSyxJQUNMMlEsVUFDSXVMLEdBQ0kzWixVQUFXLGNBQ1hzTyxXQUNJVixNQUFPLElBQ1BuUSxJQUFLLE1BRUxtUSxNQUFPLElBQ1BuUSxJQUFLLElBQ0wyUSxXQUNJUixNQUFPLEtBQ1BPLFVBQVcsTUFHZlAsTUFBTyxJQUNQblEsSUFBSyxJQUNMMlEsV0FDSVIsTUFBTyxLQUNQTyxVQUFXLFNBTS9Cd0wsRUFDQTFFLEtBS0pqVixVQUFXLFNBS1g0TixNQUFPLGdCQUlQNU4sVUFBVyxXQUNYb04sY0FBZSxPQUNmM1AsSUFBSyxJQUNMd1EsUUFBUyxZQUNURyxVQUNJeEQsRUFBS2dMLHVCQUNENVYsVUFBVyxTQUNYNE4sTUFBTyxNQUNQblEsSUFBSyxNQUNMMlEsVUFDSXNNLEVBQ0FmLEVBQ0FGLFlDOUdQLFNBQVM3TyxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCWSxRQUFTLE9BQVMvQyxFQUFLMkosU0FDdkJwSCxVQUNFeUssUUFFRSxtZ0JBT0ZlLFNBRUUsNnhCQVdGMkIsS0FDRSxzSEFHSmxNLFVBQ0V4RCxFQUFLd0sscUJBQ0x4SyxFQUFLcUssUUFDSCxJQUNBLEtBRUU5RyxVQUFXLElBR2Z2RCxFQUFLMkssY0FDTDNLLEVBQUs0SyxvQkFFSHhWLFVBQVcsU0FDWDROLE1BQU8saUNBRVRoRCxFQUFLbUssbUJBRUgvVSxVQUFXLFNBQ1g0TixNQUFPLElBQU1uUSxJQUFLLFdBQ2xCd1EsUUFBUyxnQkFFVmpPLFVBQVcsU0FBVzROLE1BQU8sc0JBQzdCNU4sVUFBVyxPQUFRNE4sTUFBTyxJQUFLblEsSUFBSyxNQUVuQ3VDLFVBQVcsUUFDWDROLE1BQU8saUJDeERFLFNBQVNoRCxHQXVDeEIsT0FDQXVDLFVBQ0V5SyxRQWpDYSwrRkFtQ2J4SixXQXpDQXBPLFVBQVcsV0FDWHNPLFdBQ0dWLE1BQU8sdUJBQ1BBLE1BQU8saUJBS1Y1TixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGtCQUNoQnZHLFdBRUlWLE1BQU8sY0FBZW5RLElBQUssTUFDM0IwUSxVQUFXLEtBR1hQLE1BQU8sY0FBZW5RLElBQUssTUFDM0IwUSxVQUFXLEtBR1hQLE1BQU8sWUFBYW5RLElBQUssSUFDekIwUSxVQUFXLEtBR1hQLE1BQU8sWUFBYW5RLElBQUssSUFDekIwUSxVQUFXLEtBR1hQLE1BQU8sVUFBV25RLElBQUssTUFHdkJtUSxNQUFPLFVBQVduUSxJQUFLLEtBRXpCbU4sRUFBS2tLLGlCQUNMbEssRUFBS21LLG9CQVVMbkssRUFBSzhLLFlBQ0w5SyxFQUFLeUssa0JBQ0x6SyxFQUFLMEssa0JDaERNLFNBQVMxSyxHQUN4QixPQUNFdUMsU0FBVSxtYUFNVmlCLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMkssZUFFSHZWLFVBQVcsT0FDWDROLE1BQU8sSUFBS25RLElBQUssTUFHakJ1QyxVQUFXLFFBQ1hvTixjQUFlLGtCQUFtQjNQLElBQUssSUFBSzJULFlBQVksRUFDeERuRCxRQUFTLElBQ1RHLFdBQ0doQixjQUFlLHNCQUNoQnhDLEVBQUtnTCw4QkN4QkUsU0FBU2hMLEdBQ3hCLElBQUkrUCxHQUNGM2EsVUFBVyxXQUNYc08sV0FDR1YsTUFBTyx1QkFDUEEsTUFBTyxnQkFHUmdOLEdBQ0Y1YSxVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFDRXhELEVBQUtpSyxpQkFDTDhGLEdBRUUzYSxVQUFXLFdBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLEtBQ3BCMlEsVUFBV3hELEVBQUtpSyxxQkFTdEIsT0FDRTdKLFNBQVUsS0FBTSxPQUNoQjJDLFFBQVMsa0JBQ1RSLFVBQ0V5SyxRQUNFLCtEQUNGb0IsUUFDRSxhQUNGTCxTQUdFLDR1QkFjRmtDLEVBQ0UscUNBRUp6TSxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxrQkFDUE8sVUFBVyxLQUdYbk8sVUFBVyxXQUNYNE4sTUFBTyw0QkFDUGtELGFBQWEsRUFDYjFDLFVBQVd4RCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTyxnQkFDakRPLFVBQVcsR0FFYnZELEVBQUt5SyxrQkFDTHVGLEdBOUNGNWEsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxLQStDZmtkLFFDdEVXLFNBQVMvUCxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCa0IsUUFBUyxLQUVUTixRQUFTLDRCQUNUUixVQUNJeUssUUFDRSx3OEJBYU54SixVQUNFeEQsRUFBS21LLGtCQUNMbkssRUFBS3FLLFFBQVEsTUFBTyxLQUFNOUcsVUFBVyxLQUNyQ3ZELEVBQUtxSyxRQUFRLElBQU0sS0FBTTlHLFVBQVcsS0FHbENuTyxVQUFXLFNBQ1g0TixNQUFPLFdBQ1BPLFVBQVcsS0FJWG5PLFVBQVcsU0FDWDROLE1BQU8sOEJBQ1BPLFVBQVcsSUFJWG5PLFVBQVcsU0FDWDROLE1BQU8sNEJBSVA1TixVQUFXLFNBQ1g0TixNQUFPLDJCQzdDRSxTQUFTaEQsR0FDeEIsT0FDRXdELFdBR0lwTyxVQUFXLFlBQ1g0TixNQUFPLElBQUtuUSxJQUFLLE1BSWpCbVEsTUFBTyxNQUNQYyxRQUNFalIsSUFBSyxJQUNMMlEsV0FFSVIsTUFBTyxJQUFLblEsSUFBSyxLQUduQm1OLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUtrSyxpQkFDTGxLLEVBQUttSywyQkNyQkEsU0FBU25LLEdBQ3hCLElBQUkwTixHQUNGdFksVUFBVyxVQUNYNE4sTUFBTyxXQUNQTyxVQUFXLEdBRWIsT0FDRW5ELFNBQVUsTUFDVm9ELFVBQ0V4RCxFQUFLcUssUUFDSCw2QkFDQSw2QkFFRTlELFdBQVcsRUFDWGhELFVBQVcsS0FJYm5PLFVBQVcsUUFDWDROLE1BQU8sV0FDUE8sVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyxTQUNQTyxVQUFXLElBSVhQLE1BQU8sWUFBYWtELGFBQWEsRUFDakMxQyxVQUFXa0ssSUFFYkEsUUNoQ1csU0FBUzFOLEdBQ3hCLElBQUk0UCxFQUNGLHlIQUdFTSxHQUNGbFEsRUFBS3VLLG9CQUNMdkssRUFBS3FLLFFBQ0gsS0FDQSxNQUVFOUcsVUFBVyxJQUdmdkQsRUFBS3FLLFFBQ0gsT0FDQSxRQUVFOUcsVUFBVyxNQUlid0wsR0FDRjNaLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxXQUFZUixNQUFPLFFBRWpCbU4sR0FDRi9hLFVBQVcsU0FBVTROLE1BQU8sV0FhMUJvTixHQUNGaGIsVUFBVyxXQUNYb04sY0FBZSxZQUFhM1AsSUFBSyxPQUNqQzBQLFNBQVUsZUFDVmlCLFVBQ0V4RCxFQUFLK0ssWUFFSDNWLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEIwUCxTQUFVcU4sRUFDVnBNLFVBQVd1TCxFQUFRb0IsS0FFckJoYyxPQUFPK2IsSUFHUEcsR0FDRmpiLFVBQVcsUUFDWDROLE1BQU8sZ0dBQ1BrRCxhQUFhLEVBQ2IxQyxVQUNFeEQsRUFBSytLLFdBQ0hxRixJQUlOLE9BQ0VqTyxrQkFBa0IsRUFDbEJJLFVBQVl5SyxRQUFTNEMsRUFBVXhCLFFBaEVsQixjQWlFYi9LLFFBQVMsT0FDVEcsVUFDRXVMLEVBQVFvQixHQXhDUi9hLFVBQVcsU0FDWDROLE1BQU8sNEJBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFDUG5RLElBQUssS0FtQ0xtTixFQUFLMEssWUFDTDJGLEVBQ0FELFFDM0VXLFNBQVNwUSxHQUN4QixPQUNFSSxTQUFVLFNBQ1ZtQyxVQUNFeUssUUFDRSxzR0FDRmUsU0FDRSw2SEFFRkssUUFDRSxjQUVKNUssVUFDRXhELEVBQUttSyxrQkFDTG5LLEVBQUswSyxZQUNMMUssRUFBS3lLLG1CQUVIclYsVUFBVyxPQUNYNE4sTUFBTyxpQkFDUEssUUFBUyxPQUdUak8sVUFBVyxTQUNYNE4sTUFBTyxXQUdQNU4sVUFBVyxRQUNYb04sY0FBZSxjQUFlM1AsSUFBSyxLQUNuQ3dRLFFBQVMsS0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQ2hCakgsUUFBU1osZ0JBQWdCLEVBQU1zRCxZQUFZLFFBSy9DcFIsVUFBVyxRQUNYb04sY0FBZSxZQUFhM1AsSUFBSyxLQUNqQ3dRLFFBQVMsS0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQ2hCakgsUUFBU1osZ0JBQWdCLEVBQU1zRCxZQUFZLGFDekN0QyxTQUFTeEcsR0FFeEIsSUFBSTRQLEVBQ0YsaVJBV0VVLEdBQ0ZsYixVQUFXLFFBQVM2USxjQUFjLEVBQU1PLFlBQVksRUFDcER4RCxNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVXFOLEVBQ1ZyTSxVQUFXLElBRVRnTixJQUdBbmIsVUFBVyxTQUNYNE4sTUFBTyxNQUNQblEsSUFBSyxNQUNMMFEsVUFBVyxLQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQVc4TSxLQUlYbGIsVUFBVyxTQUNYNE4sTUFBTyxJQUNQblEsSUFBSyxNQUlMdUMsVUFBVyxTQUNYNE4sTUFBTyxnRkFDUE8sVUFBVyxJQUtmLE9BRkErTSxFQUFNOU0sU0FBVytNLEdBR2ZoTyxVQUNFeUssUUFBUzRDLEVBQVcsdUhBQ3BCRixLQXZDRixvQ0F5Q0FyTSxRQUFTLHlCQUNURyxVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3FLLFFBQVEsT0FBUSxRQUFTN0csVUFBVyxXQUd2Q3BPLFVBQVcsT0FDWDROLE1BQU8sOEJBRVQ3TyxPQUFPb2MsUUMvREksU0FBU3ZRLEdBQ3hCLE9BQ0VJLFNBQVUsUUFBUSxNQUFNLE9BQ3hCbUMsVUFDRXlLLFFBQ0UsNk1BSUZvQixRQUNFLGNBRUo1SyxVQUVFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMbkssRUFBSzJLLGVBRUozSCxNQUFPLGdFQ3BCRyxTQUFTaEQsR0FDeEIsSUFpQ0l3USxFQUFZLHdEQUdaQyxHQUNGek4sTUFBT3dOLEVBQ1BqTixVQUFXLEdBRVRzTCxHQUNGelosVUFBVyxTQUFVNE4sTUFQQSxzQkFRckJPLFVBQVcsR0FFVHdMLEVBQVMvTyxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0I5RyxRQUFTLE9BQ3hEZ0gsRUFBVXJLLEVBQUtxSyxRQUNqQixJQUNBLEtBRUU5RyxVQUFXLElBR1htSyxHQUNGdFksVUFBVyxVQUNYNE4sTUFBTyx3QkFFTDBOLEdBQ0YxTixNQUFPLFdBQVluUSxJQUFLLFlBRXRCOGQsR0FDRnZiLFVBQVcsVUFDWDROLE1BQU8sTUFBUXdOLEdBRWJJLEVBQVc1USxFQUFLcUssUUFBUSxTQUFVLE9BQ2xDd0csR0FDRnpiLFVBQVcsU0FDWDROLE1BQU8sV0FBYXdOLEdBRWxCTSxHQUNGOU4sTUFBTyxNQUFPblEsSUFBSyxPQUVqQmtlLEdBQ0Y3TixnQkFBZ0IsRUFDaEJLLFVBQVcsR0FFVHlOLEdBQ0Z6TyxVQTNFQTBPLGVBRUUsbWpGQTBFRmxPLFFBQVN5TixFQUNUcGIsVUFBVyxPQUFRNE4sTUFBT3dOLEVBQzFCMU0sT0FBUWlOLEdBRU5HLEdBQW9CSixFQUFNL0IsRUFBUTRCLEVBQU1DLEVBQVV2RyxFQUFTd0csRUFBS0gsRUFBWTdCLEVBQVFuQixFQUFTK0MsR0FPakcsT0FMQUssRUFBS3ROLFVBQVl4RCxFQUFLcUssUUFBUSxVQUFXLElBQUsyRyxFQUFNRCxHQUNwREEsRUFBS3ZOLFNBQVcwTixFQUNoQlIsRUFBV2xOLFNBQVcwTixFQUN0Qk4sRUFBU3BOLFVBQVlrTixJQUduQnRRLFNBQVUsT0FDVmlELFFBQVMsS0FDVEcsVUFBV3NOLEVBQU0vQixFQUFRNEIsRUFBTUMsRUFBVXZHLEVBQVN3RyxFQUFLSCxFQUFZN0IsRUFBUW5CLFFDNUY5RCxTQUFTMU4sR0FDeEIsT0FDRXdELFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLHFCQUNQYyxRQUNFalIsSUFBSyxJQUNMa1MsWUFBYSxrQkNSTixTQUFTL0UsR0FDeEIsT0FDRUksU0FBVSxZQUNWK0Isa0JBQWtCLEVBQ2xCSSxVQUNFeUssUUFDRSxtNUNBb0JKeEosV0FFSXBPLFVBQVcsV0FDWDROLE1BQU8sT0FBUW5RLElBQUssS0FFdEJtTixFQUFLeUssa0JBQ0x6SyxFQUFLbUssa0JBQ0xuSyxFQUFLMEssa0JDakNNLFNBQVMxSyxHQUN4QixJQUFJNFAsR0FDRjVDLFFBRUUsK05BSUZvQixRQUVFLDBDQUdGTCxTQUNFLDJEQUVBb0QsRUFBYywyQkFDZGIsR0FDRmxiLFVBQVcsUUFDWDROLE1BQU8sTUFBT25RLElBQUssSUFDbkIwUCxTQUFVcU4sR0FFUlcsR0FDRnZRLEVBQUs0SyxtQkFDTDVLLEVBQUtvQixRQUFRcEIsRUFBSzJLLGVBQWdCN0csUUFBU2pSLElBQUssV0FBWTBRLFVBQVcsTUFFckVuTyxVQUFXLFNBQ1hzTyxXQUVJVixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFBV3hELEVBQUtpSyxpQkFBa0JxRyxLQUdsQ3ROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLE9BS3RDbGIsVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxNQUFPblEsSUFBSyxNQUNuQjJRLFVBQVc4TSxFQUFPdFEsRUFBS3lLLHFCQUd2QnpILE1BQU8sV0FDUE8sVUFBVyxJQUtYUCxNQUFPLDJDQUtYQSxNQUFPLElBQU1tTyxJQUdicE0sWUFBYSxhQUNia0IsY0FBYyxFQUFNTyxZQUFZLEVBQ2hDOUMsV0FFSVYsTUFBTyxNQUFPblEsSUFBSyxRQUduQm1RLE1BQU8sSUFBS25RLElBQUssUUFLekJ5ZCxFQUFNOU0sU0FBVytNLEVBRWpCLElBQUlhLEVBQVFwUixFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBT21PLElBRTlDbkMsR0FDRjVaLFVBQVcsU0FDWDROLE1BQU8sWUFBYWtELGFBQWEsRUFHakMxQyxXQUNFUixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVXFOLEVBQ1ZwTSxVQUFXLFFBQVFyUCxPQUFPb2MsTUFJOUIsT0FDRW5RLFNBQVUsU0FBVSxPQUFRLFFBQzVCbUMsU0FBVXFOLEVBQ1Z2TSxRQUFTLE9BQ1RHLFNBQVUrTSxFQUFZcGMsUUFDcEI2TCxFQUFLcUssUUFBUSxNQUFPLE9BQ3BCckssRUFBS3lLLG1CQUVIclYsVUFBVyxXQUNYNE4sTUFBTyxRQUFVbU8sRUFBYyxtQ0FBeUJ0ZSxJQUFLLFFBQzdEcVQsYUFBYSxFQUNiMUMsVUFBVzROLEVBQU9wQyxLQUlsQmhNLE1BQU8sYUFDUE8sVUFBVyxFQUNYQyxXQUVJcE8sVUFBVyxXQUNYNE4sTUFqQ00sMEJBaUNZblEsSUFBSyxRQUN2QnFULGFBQWEsRUFDYjFDLFVBQVd3TCxPQUtmNVosVUFBVyxRQUNYb04sY0FBZSxRQUNmM1AsSUFBSyxJQUNMd1EsUUFBUyxZQUNURyxXQUVJaEIsY0FBZSxVQUNmVSxnQkFBZ0IsRUFDaEJHLFFBQVMsWUFDVEcsVUFBVzROLElBRWJBLEtBSUZwTyxNQUFPbU8sRUFBYyxJQUFLdGUsSUFBSyxJQUMvQnFULGFBQWEsRUFBTUssV0FBVyxFQUM5QmhELFVBQVcsVUM1SUYsU0FBU3ZELEdBQ3hCLE9BQ0V1QyxVQUNFeUssUUFDRSxtdkRBeUJGZSxTQUNFLHk1Q0FzQkp2SyxVQUNFeEQsRUFBS21LLGtCQUNMbkssRUFBS3FLLFFBQVEsU0FBVSxVQUN2QnJLLEVBQUsySyxlQUVIdlYsVUFBVyxPQUNYNlEsY0FBYyxFQUNkakQsTUFBTyxVQUNQblEsSUFBSyxTQUVObVEsTUFBTyxlQzlERyxTQUFjaEQsR0FvRTdCLE9BQ0VtQyxrQkFBa0IsRUFDbEIvQixTQUFVLE1BQU8sT0FDakJtQyxTQWhEQSxnYkFpREFpQixXQXZEQXBPLFVBQVcsU0FDWDROLE1BQU8sOEJBQ1BPLFVBQVcsSUFoQlhuTyxVQUFXLFNBQ1hzTyxXQUVJVixNQUFPLElBQ1BuUSxJQUFLLElBQ0wyUSxXQUNFUixNQUFPLEtBQ1BPLFVBQVcsT0FpRWZ2RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssc0JBRUhwVixVQUFXLFVBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMFEsVUFBVyxJQUdYbk8sVUFBVyxXQUNYNE4sTUFBTywrQkFHUDVOLFVBQVcsV0FDWDROLE1BQU8sb0JBR1A1TixVQUFXLFdBQ1g0TixNQUFPLHlCQUdQNU4sVUFBVyxTQUNYNE4sTUFBTyxzQkFHUDVOLFVBQVcsVUFDWDROLE1BQU8saUNBTVBBLE1BQU8sU0FBYW5RLElBQUssS0FDekJvVCxjQUFjLEVBQU1PLFlBQVksRUFDaEN6QixZQUFhLFFBR2IvQixNQUFPLDRCQUE2Qm5RLElBQUssSUFDekNvVCxjQUFjLEVBQU1PLFlBQVksRUFDaEN6QixZQUFhLGVBSWIvQixNQUFPLGFBQWNuUSxJQUFLLFFBQzFCa1MsWUFBYSxhQ3RISixTQUFTL0UsR0FDeEIsSUFFSXFSLEVBQVcscUhBZ0JmLE9BQ0VqUixTQUFVLE1BQU8sUUFDakIrQixrQkFBa0IsRUFDbEJJLFVBQ0V5SyxRQUFTNEMsNk1BQ1R4QixRQVBXLDZFQVNiNUssVUFDRXhELEVBQUt5SyxtQkFFSGpJLGNBQWUsT0FDZnNCLFFBQ0VqUixJQUFLLG1CQUNMaVIsUUFDRTFPLFVBQVcsUUFDWHZDLElBQUssNEJBS1QyUCxjQXRDVSx5QkF1Q1ZzQixRQUNFMU8sVUFBVyxRQUNYdkMsSUFBSyx3QkFDTGlSLFFBQ0VqUixJQUFLLCtCQUtUbVEsTUFBTyxPQUFTcU8sRUFBU3RpQixNQUFNLEtBQUtGLEtBQUssS0FBTyxRQUNoRDBULFNBQVU4TyxFQUNWdk4sUUFDRTFPLFVBQVcsUUFDWHZDLElBQUssdUJBSVAyUCxjQWxEYyxvQ0FtRGRzQixRQUNFMU8sVUFBVyxRQUNYdkMsSUFBSyxxQkFHVG1OLEVBQUttSyxtQkFFSC9VLFVBQVcsT0FDWDROLE1BQU8sc0NBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sK0JBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsVUFDWDROLE1BQU8scUJBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsT0FDWDROLE1BQU8sMEJBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsTUFDWDROLE1BQU8sTUFDUG5RLElBQUssTUFDTDBRLFVBQVcsU0N4RkYsU0FBU3ZELEdBQ3hCLElBQUlzUixFQUFhLHdCQUliQyxFQUFvQix3RkFDcEJDLEdBQ0Z4RSxRQUNFLHFYQUlGb0IsUUFBUyxrQkFFUGtDLEdBQ0ZsYixVQUFXLFFBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLElBQ2xCMFAsU0FBVWlQLEdBRVJDLEdBQ0ZyYyxVQUFXLG9CQUNYc08sV0FDR1YsTUFBTyxTQUFVblEsSUFBSyxXQUN0Qm1RLE1BQU8sT0FBUW5RLElBQUssU0FFdkIwUCxTQUFVaVAsR0FHWixTQUFTRSxFQUFlMU8sRUFBT25RLEdBQzdCLElBQ0EyUSxJQUFhUixNQUFPQSxFQUFPblEsSUFBS0EsSUFFaEMsT0FEQTJRLEVBQVMsR0FBR0EsU0FBV0EsRUFDaEJBLEVBRVQsSUFBSXVMLEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEdBQ2xDNU0sV0FDR1YsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sSUFBS25RLElBQUssTUFDakJtUSxNQUFPLElBQUtuUSxJQUFLLE1BQ2pCbVEsTUFBTyxTQUFVblEsSUFBSyxNQUFPMlEsU0FBVWtPLEVBQWUsTUFBTyxTQUM3RDFPLE1BQU8sU0FBVW5RLElBQUssTUFBTzJRLFNBQVVrTyxFQUFlLE1BQU8sU0FDN0QxTyxNQUFPLE9BQVFuUSxJQUFLLElBQUsyUSxTQUFVa08sRUFBZSxJQUFLLE9BQ3ZEMU8sTUFBTyxPQUFRblEsSUFBSyxJQUFLMlEsU0FBVWtPLEVBQWUsSUFBSyxPQUN2RDFPLE1BQU8sT0FBUW5RLElBQUssTUFDcEJtUSxNQUFPLE9BQVFuUSxJQUFLLE1BQ3BCbVEsTUFBTyxPQUFRblEsSUFBSyxNQUNwQm1RLE1BQU8sU0FBVW5RLElBQUssUUFDdEJtUSxNQUFPLFVBQVduUSxJQUFLLGFBRTFCMFEsVUFBVyxHQTZEVG9PLEdBQ0ZGLEVBQ0ExQyxHQTVEQTNaLFVBQVcsU0FDWHNPLFdBQ0dWLE1BQU8sUUFBU25RLElBQUssTUFBTzJRLFNBQVVrTyxFQUFlLE1BQU8sU0FDNUQxTyxNQUFPLFFBQVNuUSxJQUFLLE1BQU8yUSxTQUFVa08sRUFBZSxNQUFPLFNBQzVEMU8sTUFBTyxNQUFPblEsSUFBSyxJQUFLMlEsU0FBVWtPLEVBQWUsSUFBSyxPQUN0RDFPLE1BQU8sTUFBT25RLElBQUssSUFBSzJRLFNBQVVrTyxFQUFlLElBQUssT0FDdEQxTyxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CbVEsTUFBTyxNQUFPblEsSUFBSyxNQUNuQm1RLE1BQU8sTUFBT25RLElBQUssTUFDbkJtUSxNQUFPLFFBQVNuUSxJQUFLLFFBQ3JCbVEsTUFBTyxZQUFhblEsSUFBSyxhQUU1QjBRLFVBQVcsSUFHWFAsTUFBTywrSUFDUFEsV0FFSXBPLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssaUJBQWtCcUcsR0FDbEM1TSxXQUNHVixNQUFPLFdBQVlPLFVBQVcsSUFDOUJQLE1BQU8sSUFBS25RLElBQUssWUFDakJtUSxNQUFPLFFBQVNuUSxJQUFLLE1BQU8yUSxTQUFVa08sRUFBZSxNQUFPLFNBQzVEMU8sTUFBTyxRQUFTblEsSUFBSyxNQUFPMlEsU0FBVWtPLEVBQWUsTUFBTyxTQUM1RDFPLE1BQU8sTUFBT25RLElBQUssSUFBSzJRLFNBQVVrTyxFQUFlLElBQUssT0FDdEQxTyxNQUFPLE1BQU9uUSxJQUFLLElBQUsyUSxTQUFVa08sRUFBZSxJQUFLLE9BQ3REMU8sTUFBTyxNQUFPblEsSUFBSyxNQUNuQm1RLE1BQU8sTUFBT25RLElBQUssTUFDbkJtUSxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CbVEsTUFBTyxRQUFTblEsSUFBSyxVQUk1QjBRLFVBQVcsSUFHWG5PLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssaUJBQWtCcUcsR0FDbEM1TSxXQUNHVixNQUFPLFFBQVNuUSxJQUFLLE1BQU8yUSxTQUFVa08sRUFBZSxNQUFPLFNBQzVEMU8sTUFBTyxRQUFTblEsSUFBSyxNQUFPMlEsU0FBVWtPLEVBQWUsTUFBTyxTQUM1RDFPLE1BQU8sTUFBT25RLElBQUssSUFBSzJRLFNBQVVrTyxFQUFlLElBQUssT0FDdEQxTyxNQUFPLE1BQU9uUSxJQUFLLElBQUsyUSxTQUFVa08sRUFBZSxJQUFLLE9BQ3REMU8sTUFBTyxNQUFPblEsSUFBSyxNQUNuQm1RLE1BQU8sTUFBT25RLElBQUssTUFDbkJtUSxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CbVEsTUFBTyxRQUFTblEsSUFBSyxRQUV4QjBRLFVBQVcsSUFHWG5PLFVBQVcsT0FDWDROLE1BQU8sT0FBUW5RLElBQUssTUFDcEIyUSxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9CL1UsVUFBVyxrQkFVbkQ0SyxFQUFLeUssbUJBRUhyVixVQUFXLFFBQ1hvTixjQUFlLHNCQUF1QjNQLElBQUssTUFDM0N3USxRQUFTLElBQ1RHLFVBQ0V4RCxFQUFLeUssa0JBQ0x6SyxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTyxzQ0FDckNBLE1BQU8sUUFJVjVOLFVBQVcsUUFDWG9OLGNBQWUsaUJBQWtCM1AsSUFBSyxNQUN0Q3dRLFFBQVMsSUFDVEcsVUFDRXhELEVBQUt5SyxrQkFDTHpLLEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLHNDQUV4Q08sVUFBVyxLQUdYbk8sVUFBVyxXQUNYb04sY0FBZSxNQUFPM1AsSUFBSyxPQUMzQjJRLFVBQ0V4RCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUNoQi9ILE1BQU91TyxFQUNQbEwsWUFBWSxPQUtoQmpSLFVBQVcsV0FDWG9OLGNBQWUsWUFBYTNQLElBQUssT0FDakMyUSxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFDaEIvSCxNQUFPdU8sRUFDUGxMLFlBQVksS0FHaEI5QyxVQUFXLElBR1huTyxVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzRKLG9CQUFzQixjQUNsQ3JHLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFDUFEsVUFBV3VMLEdBQVMvTCxNQUFPdU8sSUFDM0JoTyxVQUFXLElBR1huTyxVQUFXLFNBQ1hzTyxXQUNJVixNQUFPLG9CQUFzQnNPLElBQzdCdE8sTUFBTyxzQkFBd0JzTyxJQUMvQnRPLE1BQU8sa0NBQW9Dc08sSUFDM0N0TyxNQUFPLDJFQUE2RXNPLElBRXhGL04sVUFBVyxJQU1mLE9BSEErTSxFQUFNOU0sU0FBV21PLEVBQ2pCRixFQUFVak8sU0FBV21PLEVBQXlCemIsTUFBTSxJQUdsRGtLLFNBQVUsTUFDVjJDLFFBMUxxQixzQkEyTHJCUixTQUFVaVAsRUFDVmhPLFNBQVVtTyxPQzlMRyxTQUFTM1IsR0FDeEIsSUFBSTRQLEdBQ0Y1QyxRQUVFLG1tQkFTRm9CLFFBQ0UsbUJBR0F3RCxHQUNGeGMsVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxJQUNsQjJRLFdBQVlSLE1BQU8sUUFFakI2TyxFQUF3QjdSLEVBQUtvQixRQUFRd1EsR0FBa0J2TyxRQUFTLE9BQ2hFaU4sR0FDRmxiLFVBQVcsUUFDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIwUCxTQUFVcU4sR0FFUmtDLEVBQWM5UixFQUFLb0IsUUFBUWtQLEdBQVFqTixRQUFTLE9BQzVDME8sR0FDRjNjLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssSUFDbkJ3USxRQUFTLEtBQ1RHLFdBQVlSLE1BQU8sT0FBUUEsTUFBTyxNQUFPaEQsRUFBS2lLLGlCQUFrQjZILElBRTlERSxHQUNGNWMsVUFBVyxTQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxJQUNwQjJRLFdBQVlSLE1BQU8sT0FBUUEsTUFBTyxPQUFRQSxNQUFPLE1BQU9zTixJQUV0RDJCLEVBQXFDalMsRUFBS29CLFFBQVE0USxHQUNwRDNPLFFBQVMsS0FDVEcsV0FBWVIsTUFBTyxPQUFRQSxNQUFPLE9BQVFBLE1BQU8sTUFBTzhPLEtBRTFEeEIsRUFBTTlNLFVBQ0p3TyxFQUNBRCxFQUNBSCxFQUNBNVIsRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMbkssRUFBSzJLLGNBQ0wzSyxFQUFLd0ssc0JBRVBzSCxFQUFZdE8sVUFDVnlPLEVBQ0FGLEVBQ0FGLEVBQ0E3UixFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMkssY0FDTDNLLEVBQUtvQixRQUFRcEIsRUFBS3dLLHNCQUF1Qm5ILFFBQVMsUUFFcEQsSUFBSTBMLEdBQ0ZyTCxVQUNFc08sRUFDQUQsRUFDQUgsRUFDQTVSLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxvQkFJTCtILEVBQWdCbFMsRUFBSzJKLFNBQVcsS0FBTzNKLEVBQUsySixTQUFXLGFBQWUzSixFQUFLMkosU0FBVyxpQkFFMUYsT0FDRXZKLFNBQVUsVUFDVm1DLFNBQVVxTixFQUNWdk0sUUFBUyxLQUNURyxVQUNFeEQsRUFBS3FLLFFBQ0gsTUFDQSxLQUVFbkUsYUFBYSxFQUNiMUMsV0FFSXBPLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sTUFBT08sVUFBVyxJQUd6QlAsTUFBTyxtQkFHUEEsTUFBTyxNQUFPblEsSUFBSyxVQU8vQm1OLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxzQkFFSHBWLFVBQVcsT0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIwUCxVQUNFOEwsZUFBZ0Isd0ZBR3BCVSxFQUNBL08sRUFBSzJLLGVBRUhuSSxjQUFlLGtCQUFtQjNQLElBQUssUUFDdkN3USxRQUFTLFNBQ1RHLFVBQ0V4RCxFQUFLK0ssV0FDTC9LLEVBQUt1SyxvQkFDTHZLLEVBQUt3Syx3QkFJUGhJLGNBQWUsWUFBYTNQLElBQUssUUFDakN3USxRQUFTLFNBQ1RHLFVBQ0V4RCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTyx1QkFDdENoRCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssd0JBS1BwVixVQUFXLE9BQ1g0TixNQUFPLFdBQVlpRCxjQUFjLEVBQU1wVCxJQUFLLE1BQU8yVCxZQUFZLEVBQy9EaEQsV0FDR3BPLFVBQVcsY0FBZTROLE1BQU8sSUFBS25RLElBQUssUUFNOUMyUCxjQUFlLDhCQUNmZSxVQUFXLElBR1huTyxVQUFXLFdBQ1g0TixNQUFPLElBQU1rUCxFQUFnQixTQUFXbFMsRUFBSzJKLFNBQVcsVUFBV3pELGFBQWEsRUFDaEZyVCxJQUFLLFFBQVMyVCxZQUFZLEVBQzFCakUsU0FBVXFOLEVBQ1ZwTSxXQUVJUixNQUFPaEQsRUFBSzJKLFNBQVcsVUFBV3pELGFBQWEsRUFDL0MxQyxVQUFXeEQsRUFBSytLLFlBQ2hCeEgsVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQm9ULGNBQWMsRUFDZE8sWUFBWSxFQUNaakUsU0FBVXFOLEVBQ1ZyTSxVQUFXLEVBQ1hDLFVBQ0V1TCxFQUNBL08sRUFBSzJLLGNBQ0wzSyxFQUFLd0ssdUJBR1R4SyxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssNkJDMUtFLFNBQVN4SyxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCWSxRQUFTLHlCQUNUUixVQUNFeUssUUFBUywrS0FJWHhKLFdBRUVwTyxVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLE1BR2pCdUMsVUFBVyxZQUNYNE4sTUFBTyxXQUFZblEsSUFBSyxJQUFLMlQsWUFBWSxTQ2hCOUIsU0FBU3hHLEdBQ3hCLElBQ0ltUyxHQUNGblAsTUFBTyxtQkFBb0JrRCxhQUFhLEVBQU1yVCxJQUFLLElBQUtxUSxnQkFBZ0IsRUFDeEVNLFdBRUlwTyxVQUFXLFlBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLElBQUsyVCxZQUFZLEVBQ25DMUMsUUFDRVosZ0JBQWdCLEVBQU1zRCxZQUFZLEVBQ2xDaEQsV0FFSVIsTUFBTyxXQUFZa0QsYUFBYSxFQUNoQzFDLFdBRUlwTyxVQUFXLFdBQ1g0TixNQUFPLFdBR1BBLE1BQU8sS0FBTW5RLElBQUssS0FDbEIyUSxVQUNFeEQsRUFBS2tLLGlCQUNMbEssRUFBS21LLHNCQUtibkssRUFBSzZLLGdCQUNMN0ssRUFBS21LLGtCQUNMbkssRUFBS2tLLGlCQUNMbEssRUFBS3dLLHNCQUVIcFYsVUFBVyxTQUFVNE4sTUFBTyxrQkFHNUI1TixVQUFXLE9BQVE0TixNQUFPLG1CQVF0QyxPQUNFYixrQkFBa0IsRUFDbEJrQixRQUFTLFlBQ1RHLFVBQ0V4RCxFQUFLd0ssc0JBRUhwVixVQUFXLGNBQWU0TixNQUFPLG9CQUdqQzVOLFVBQVcsaUJBQWtCNE4sTUFBTyxxQkFHcEM1TixVQUFXLGdCQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQndRLFFBQVMsTUFHVGpPLFVBQVcsa0JBQ1g0TixNQUFPLG1DQUdQQSxNQUFPLG9CQUNQRCxRQUFTLFVBQ1RSLFNBQVUsbUJBR1ZTLE1BQU8sSUFBS25RLElBQUssT0FJakJ3USxRQUFTLElBQ1RHLFdBRUlwTyxVQUFXLFVBQ1g0TixNQUFPLFFBR1BBLE1BQU8sS0FBTUUsZ0JBQWdCLEVBQU1zRCxZQUFZLEVBQy9DakQsVUFBVyxFQUNYQyxVQUNFeEQsRUFBS2tLLGlCQUFrQmxLLEVBQUttSyxrQkFDNUJuSyxFQUFLNksscUJBTVh6VixVQUFXLGVBQWdCNE4sTUF6RmxCLDBCQTBGVE8sVUFBVyxJQUdYUCxNQUFPLElBQUtuUSxJQUFLLElBQ2pCd1EsUUFBUyxLQUNURyxVQUNFeEQsRUFBS3dLLHFCQUNMMkgsVUNsRlYsU0FBU25TLEdBTVAsSUF1Q0VvUyxFQUFhLDJGQWdCWEMsRUFBcUIseUdBY3JCQyxHQUNGbGQsVUFBVyxTQUNUNE4sTUFBTyxNQUFRb1AsRUFBYSx1QkFDNUI3TyxVQUFXLEdBT1hnUCxHQUNGbmQsVUFBVyxTQUNYNE4sTUFBTyw4ZkFFSG9QLEVBQWEsZ0JBRWpCN08sVUFBVyxHQVFUaVAsR0FDRnBkLFVBQVcsU0FDWDROLE1BQU8sS0FBUXFQLEVBQXFCLE1BQU94ZixJQUFLLElBQ2hEd1EsUUFBUyxLQWtCUG9QLEdBQ0ZyZCxVQUFXLFNBQ1g0TixNQUFPLElBQ1BRLFdBWkFSLE1BQU9xUCxFQUNQOU8sVUFBVyxJQVlYMVEsSUFBSyxXQXVGSDZmLEVBQXlCMVMsRUFBS3FLLFFBQ2hDLFNBQ0EsVUFFRTdHLFVBQVcsUUFDWEQsVUFBVyxLQUlmLE9BQ0VSLFFBQVMvQyxFQUFLNEosb0JBQ2RySCxVQXZOQXlLLFFBQ0UsNm1CQVFGZSxTQUNFLDJLQUdGSyxRQUNFLG1CQTBNRjVLLFVBQ0V4RCxFQUFLdUssb0JBQ0h2SyxFQUFLd0sscUJBQ0xrSSxHQXRFSnRkLFVBQVcsU0FDWDROLE1BQU8saUNBQ1BPLFVBQVcsSUFzRVBrUCxHQS9GSnJkLFVBQVcsU0FDWDROLE1BQU8sUUFDUG5RLElBQUssVUFDTDBRLFVBQVcsSUFTWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFDUG5RLElBQUssWUFvQkx1QyxVQUFXLFNBQ1g0TixNQUFPLFFBQ1BuUSxJQUFLLFFBK0REMGYsRUFDQUQsRUFDQUUsR0F4REpwZCxVQUFXLE9BQ1g0TixNQUFPLE1BQ1BuUSxJQUFLLElBQ0wwUSxVQUFXLElBU1huTyxVQUFXLE9BQ1g0TixNQUFPLFVBQ1BuUSxJQUFLLElBQ0wwUSxVQUFXLElBU1huTyxVQUFXLFVBQ1g0TixNQUFPLGlDQzNOTSxTQUFTaEQsR0FDeEIsT0FDRUksU0FBVSxLQUFNLFNBQVUsT0FDMUJvRCxXQUdJcE8sVUFBVyxVQUNYc08sV0FDSVYsTUFBTyxVQUFXblEsSUFBSyxNQUN2Qm1RLE1BQU8sdUJBS1hBLE1BQU8sSUFBS25RLElBQUssSUFDakJrUyxZQUFhLE1BQ2J4QixVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLDJCQUlQNU4sVUFBVyxTQUNYNE4sTUFBTyxzQkFJUDVOLFVBQVcsV0FDWHNPLFdBQ0lWLE1BQU8sY0FDUEEsTUFBTyxRQUNQTyxVQUFXLE1BTWZuTyxVQUFXLFFBQ1g0TixNQUFPLFNBQVVuUSxJQUFLLE1BSXRCdUMsVUFBVyxPQUNYc08sV0FFSVYsTUFBTyxZQUFlblEsSUFBSyxZQUczQm1RLE1BQU8sVUFHUEEsTUFBTyxhQUFjblEsSUFBSyxJQUMxQjBRLFVBQVcsTUFNZlAsTUFBTyxjQUFlblEsSUFBSyxNQUkzQm1RLE1BQU8sK0JBQ1BrRCxhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxNQUNuQm9ULGNBQWMsRUFDZE0sV0FBVyxFQUNYaEQsVUFBVyxJQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxTQUFVblEsSUFBSyxNQUN0Qm9ULGNBQWMsRUFBTU8sWUFBWSxJQUdoQ3BSLFVBQVcsU0FDWDROLE1BQU8sU0FBVW5RLElBQUssTUFDdEJvVCxjQUFjLEVBQU1PLFlBQVksSUFHcENqRCxVQUFXLEtBR1hQLE1BQU8sZUFDUGtELGFBQWEsRUFDYjFDLFdBRUlwTyxVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCb1QsY0FBYyxFQUFNTyxZQUFZLElBR2hDcFIsVUFBVyxPQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxJQUNwQm9ULGNBQWMsV0NwR1QsU0FBVWpHLEdBQ3pCLElBQUlzUSxHQUNGbGIsVUFBVyxRQUNYNE4sTUFBTyxTQUFVblEsSUFBSyxJQUN0QjBQLFNBQVUscUNBR1J3TSxHQUNGM1osVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxPQUFXblEsSUFBSyxRQUd2Qm1RLE1BQU8sT0FBUW5RLElBQUssUUFHcEJtUSxNQUFPLEtBQU9uUSxJQUFLLElBQ25Cd1EsUUFBUyxRQUdUTCxNQUFPLEtBQU1uUSxJQUFLLElBQ2xCd1EsUUFBUyxRQUdUTCxNQUFPLE1BQVVuUSxJQUFLLE1BQ3RCMlEsVUFBV3hELEVBQUtpSyxpQkFBa0JxRyxLQUdsQ3ROLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEtBR2xDdE4sTUFBTyxJQUFNblEsSUFBSyxJQUNsQndRLFFBQVMsTUFDVEcsVUFBV3hELEVBQUtpSyxpQkFBa0JxRyxLQUdsQ3ROLE1BQU8sSUFBS25RLElBQUssSUFDakJ3USxRQUFTLE1BQ1RHLFVBQVd4RCxFQUFLaUssaUJBQWtCcUcsTUFJeENBLEVBQU05TSxVQUNKeEQsRUFBSzJLLGNBQWVvRSxHQWV0QixPQUNFeE0sVUFaQXlLLFFBQVMsNFRBR1RlLFNBRUUsK1BBUUZ2SyxVQUNFdUwsRUFDQS9PLEVBQUtxSyxRQUNILFVBQ0EsUUFFRXRGLFlBQWEsYUFHakIvRSxFQUFLcUssUUFDSCxNQUNBLEtBRUV0RixZQUFhLGFBR2pCL0UsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVIcFYsVUFBVyxRQUNYb04sY0FBZSxrQkFBbUIzUCxJQUFLLElBQUsyVCxZQUFZLEVBQ3hEaEQsV0FFSWhCLGNBQWUsc0JBRWpCeEMsRUFBS2dMLHdCQUdUaEwsRUFBSzJLLGVBRUh2VixVQUFXLE9BQVE0TixNQUFPLGVBRzFCQSxNQUFPLFlDL0ZFLFNBQVNoRCxHQUN4QixJQUFJNFAsRUFDRiwyNkJBV0VNLEdBQ0ZsUSxFQUFLdUssb0JBQ0x2SyxFQUFLcUssUUFBUSxLQUFNLE1BQU85RyxVQUFXLElBQ3JDdkQsRUFBS3FLLFFBQVEsT0FBUSxRQUFTOUcsVUFBVyxNQUV2Q29QLEdBQ0Z2ZCxVQUFXLE9BQ1hzTyxXQUNHVixNQUFPLE9BQVFuUSxJQUFLLE9BQ3BCbVEsTUFBTyxTQUFVblEsSUFBSyxVQUd2QmtjLEdBQ0YzWixVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsV0FBWVIsTUFBTyxRQUVqQm1OLEdBQ0YvYSxVQUFXLFNBQVU0TixNQUFPLFdBRTFCNFAsR0FDRjVQLE1BQU9oRCxFQUFLMkosU0FBVyx3QkFBeUJ6RCxhQUFhLEVBQzdEMUMsVUFDRXhELEVBQUsrSyxhQUdMOEgsR0FDRnpkLFVBQVcsV0FDWG9OLGNBQWUsNENBQTZDM1AsSUFBSyxPQUNqRTBQLFNBQVUscURBQ1ZpQixVQUNFeEQsRUFBSytLLFlBRUgzVixVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVXFOLEVBQ1ZwTSxVQUFXdUwsRUFBUW9CLEVBQWF3QyxHQUFXeGUsT0FBTytiLElBRXBEeUMsR0FDQXhlLE9BQU8rYixJQUVYLE9BQ0U5UCxTQUFVLE1BQU8sTUFBTyxNQUFPLFNBQVUsYUFBYyxVQUFXLE1BQU8sT0FDekUrQixrQkFBa0IsRUFDbEJJLFNBQVVxTixFQUNWdk0sUUFBUywyQkFDVEcsVUFDRXVMLEVBQVFvQixFQUNSblEsRUFBSzBLLFlBQ0xrSSxFQUNBQyxFQUNBRixHQUNBeGUsT0FBTytiLFFDakVJLFNBQVNsUSxHQUN4QixPQUNFSSxTQUFVLFNBQ1ZvRCxXQUVJcE8sVUFBVyxPQUNYbU8sVUFBVyxHQUNYRyxXQUNHVixNQUFPLG1DQUNQQSxNQUFPLGdDQUNQQSxNQUFPLGtDQUlWNU4sVUFBVyxVQUNYc08sV0FDR1YsTUFBTyxVQUFXblEsSUFBSyxNQUN2Qm1RLE1BQU8sUUFBU25RLElBQUssTUFDckJtUSxNQUFPLFNBQVVuUSxJQUFLLE1BQ3RCbVEsTUFBTyxVQUFXblEsSUFBSyxNQUN2Qm1RLE1BQU8sU0FBVW5RLElBQUssTUFDdEJtUSxNQUFPLFFBQVNuUSxJQUFLLGFBSXhCdUMsVUFBVyxXQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxNQUdwQnVDLFVBQVcsV0FDWDROLE1BQU8sT0FBUW5RLElBQUssTUFHcEJ1QyxVQUFXLFdBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLFdDbENYLFNBQVNtTixHQUN4QixJQUFJOFMsR0FDRjlQLE1BQU8sZ0JBQ1BULFVBQ0UzTixLQUNFLDRrQkFTSjRPLFVBQ0V4RCxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssbUJBSVQsT0FDRTlKLFNBQVUsU0FDVitCLGtCQUFrQixFQUNsQjRDLFlBQWEsTUFDYnZCLFVBQ0V4RCxFQUFLcUssUUFBUSxxQkFBc0IseUJBQ25DckssRUFBS3FLLFFBQVEsTUFBTyxPQUVsQmpWLFVBQVcsZUFDWDROLE1BQU8sTUFBT25RLElBQUssS0FDbkIyUSxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxNQUNQVCxVQUNFM04sS0FDRSxpbUJBVUprUCxRQUNFWixnQkFBZ0IsRUFDaEJYLFNBQVUsV0FDVmlCLFVBQVdzUCxHQUNYdlAsVUFBVyxPQU1qQm5PLFVBQVcsb0JBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLEtBQ3BCMlEsVUFBV3NQLFVDMURGLFNBQVM5UyxHQUN4QixPQUNFSSxTQUFVLE9BQVEsUUFDbEJtQyxVQUNFeUssUUFDRSwyTEFHSnhKLFVBQ0V4RCxFQUFLcUssUUFBUSxJQUFLLEtBQU05RyxVQUFXLEtBRWpDbk8sVUFBVyxPQUNYNE4sTUFBTyx1Q0FJUDVOLFVBQVcsU0FDWDROLE1BQU8sZ25DQUlQNU4sVUFBVyxTQUNYNE4sTUFBTywrRkFFVGhELEVBQUtvQixRQUFRcEIsRUFBSzBLLGFBQWMxSCxNQUFPLHVCQ3hCNUIsU0FBU2hELEdBQ3hCLE9BQ0VJLFNBQVUsVUFDVitCLGtCQUFrQixFQUNsQkksU0FBVSx5REFDVmlCLFVBQ0V4RCxFQUFLeUssa0JBQ0x6SyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMEssYUFFSGxJLGNBQWUscUVBQ2ZzQixRQUNFalIsSUFBSyxVQUNMa1MsWUFBYSxVQUluQjFCLFFBQVMsVUNsQkksU0FBU3JELEdBQ3hCLElBQUlxSyxFQUFVckssRUFBS3FLLFFBQ2pCLGNBQWUsS0FFYjlHLFVBQVcsS0FRZixPQUNFbkQsU0FBVSxNQUFPLE9BQ2pCK0Isa0JBQWtCLEVBQ2xCa0IsUUFBUyxPQUNUZCxVQUNFeUssUUFDRSx3RkFFRmUsU0FDRSxtZkFVSnZLLFdBRUlwTyxVQUFXLFdBQVk0TixNQUFPLDZCQUc5QjVOLFVBQVcsV0FDWDROLE1BNUJHLG1EQTRCaUJuUSxJQUFLLFdBQ3pCMlEsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLHNEQUN0Q3FILEtBSUZqVixVQUFXLFNBQVU0TixNQUFPLFVBQzVCTyxVQUFXLEdBRWI4RyxRQy9DVyxTQUFTckssR0FvQnhCLE9BQ0V1QyxTQUFVLFdBQ1ZpQixXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxZQUFhblEsSUFBSyxNQUFPMlQsWUFBWSxFQUM1Q2pELFVBQVcsS0FHWG5PLFVBQVcsV0FDWDROLE1BQU8sc0NBQXVDblEsSUFBSyxNQUFPMlQsWUFBWSxFQUN0RW5ELFFBQVMsYUFDVEUsVUFBVyxLQUdYbk8sVUFBVyxXQUNYNE4sTUFBTyxXQUFZblEsSUFBSyxNQUFPMlQsWUFBWSxJQWxDL0NwUixVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLE1BR2pCdUMsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxNQUdqQnVDLFVBQVcsU0FDWDROLE1BQU8sZ0JBQWlCblEsSUFBSyxNQUM3QjBRLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sYUFBY25RLElBQUssTUFDMUIwUSxVQUFXLEdBeUJUdkQsRUFBS3lLLHdCQzFDTSxTQUFTekssR0FDeEIsSUFBSTROLEdBQ0Z4WSxVQUFXLFNBQ1hzTyxVQUNFMUQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQXFCbkgsTUFBTyxtQkFFNUNBLE1BQU8sYUFBY25RLElBQUssSUFDMUIyUSxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sVUFBWW5RLElBQUssSUFDeEJ3USxRQUFTLE9BS1hzSyxHQUNGdlksVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxtREFDUEEsTUFBT2hELEVBQUs4SixjQUVoQnZHLFVBQVcsR0FHVDRMLEdBQ0YvWixVQUFXLE9BQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMFAsVUFBVzhMLGVBQWdCLGdEQUMzQjdLLFdBRUlSLE1BQU8sT0FBUU8sVUFBVyxJQUcxQmYsY0FBZSxVQUFXM1AsSUFBSyxJQUMvQjBQLFVBQVc4TCxlQUFnQixXQUMzQjdLLFVBQ0V4RCxFQUFLb0IsUUFBUXdNLEdBQVV4WSxVQUFXLGlCQUVoQ0EsVUFBVyxjQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQndRLFFBQVMsU0FJZnVLLEVBQ0E1TixFQUFLdUssb0JBQ0x2SyxFQUFLd0ssdUJBSUx1SSxHQUNGM2QsVUFBVyxXQUNYNE4sTUFBTyxvQkFHTGdRLEdBQ0Y1ZCxVQUFXLGVBQ1g0TixNQUFPLHFCQUdMaVEsR0FDRjdkLFVBQVcsU0FDWDROLE1BQU8sZ0NBR0xrUSxHQUNGOWQsVUFBVyxTQUNYNE4sTUFBTyxJQUNQblEsSUFBSyxJQUNMMlEsVUFDRW1LLEVBQ0FvRixJQUlBSSxHQUNGL2QsVUFBVyxRQUNYNE4sTUFBTyw0QkFDUG5RLElBQUssUUFDTHFULGFBQWEsRUFDYk0sWUFBWSxHQXFCZCxPQUNFakUsU0FBVSxHQUNWaUIsV0FuQkFwTyxVQUFXLFFBQ1g0TixNQUFPLFNBQ1BuUSxJQUFLLEtBQ0wwUSxVQUFXLEdBQ1hDLFVBQ0V1UCxFQUNBQyxFQUNBQyxFQUNBRSxFQUNBRCxFQUNBbFQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMbUQsRUFDQUMsSUFRQW1GLEVBQ0FDLEVBQ0FDLEVBQ0FFLEVBQ0FELEVBQ0FsVCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0xtRCxFQUNBQyxFQUNBdUIsR0FFRW5NLE1BQU9oRCxFQUFLMkosU0FBVyxLQUN2QnBILFNBQVUsVUN0SEQsU0FBU3ZDLEdBRXhCLE9BQ0VJLFNBQVUsT0FDVitCLGtCQUFrQixFQUNsQjRDLFlBQWEsTUFDYnZCLFdBRUlwTyxVQUFXLGVBQ1g0TixNQUFPLFVBQVduUSxJQUFLLEtBQU13USxRQUFTLElBQ3RDRyxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxlQUNQYyxRQUNFWixnQkFBZ0IsRUFBTUssVUFBVyxFQUNqQ0MsVUFDRXhELEVBQUttSyx3QkFPYi9VLFVBQVcsb0JBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQU13USxRQUFTLElBQ2pDZCxTQXpCb0Isd0RDRFgsU0FBU3ZDLEdBQ3RCLElBQUl3TyxFQUFjeE8sRUFBS3FLLFFBQVEsT0FBUSxRQXNCdkMsT0FDSWhILFFBQVMsS0FDVEcsVUFDSWdMLEdBdEJKcFosVUFBVyxZQUNYNE4sTUFBTyxzREFTUEEsTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQ0lnTCxHQVBKcFosVUFBVyxPQUNYNE4sTUFBTyxVQVNIaEQsRUFBS2tLLGlCQUFrQmxLLEVBQUttSywwQkNuQnZCLFNBQVNuSyxHQUN4QixJQUFJb1QsRUFBa0IsbUNBRWxCQyxFQUNGLGdMQUdFL0MsR0FDRmxiLFVBQVcsUUFDWDROLE1BQU8sT0FBUW5RLElBQUssSUFDcEJrUSxRQUFTcVEsRUFDVDdRLFNBQVU4USxHQUVSdEUsR0FDRjNaLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssaUJBQWtCcUcsR0FDbEM1TSxXQUVJVixNQUFPLElBQUtuUSxJQUFLLE1BR2pCbVEsTUFBTyxJQUFLblEsSUFBSyxPQUluQmdnQixHQUNGemQsVUFBVyxXQUNYb04sY0FBZSxvQkFBcUIzUCxJQUFLLE9BQ3pDMlEsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQ2hCL0gsTUFBT29RLEVBQ1AvTSxZQUFZLE1BSWR1TSxFQUFRNVMsRUFBS29CLFFBQVF5UixHQUN2QnpkLFVBQVcsUUFDWG9OLGNBQWUsMENBQTJDM1AsSUFBSyxlQUU3RHlnQixHQUNGdkUsRUFDQS9PLEVBQUt5SyxrQkFDTG1JLEVBQ0FDLEdBRUV6ZCxVQUFXLFNBQ1g0TixNQUFPLFdBQ1BRLFVBQVd1TCxHQUFTL0wsTUE3Q0QsdUZBOENuQk8sVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBT29RLEVBQWtCLElBQ3pCN1AsVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyw0RUFDUE8sVUFBVyxJQUdYbk8sVUFBVyxXQUNYNE4sTUFBTyxtQ0FHUEEsTUFBTyxPQUdQQSxNQUFPLElBQU1oRCxFQUFLZ0ssZUFBaUIsUUFDbkN4RyxVQUNFeEQsRUFBS3lLLG1CQUVIclYsVUFBVyxTQUNYaU8sUUFBUyxNQUNURyxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEdBQ2xDNU0sV0FFSVYsTUFBTyxJQUFLblEsSUFBSyxZQUdqQm1RLE1BQU8sUUFBU25RLElBQUssZ0JBSzdCMFEsVUFBVyxJQUtmLE9BRkErTSxFQUFNOU0sU0FBVzhQLEdBR2Z2USxRQUFTcVEsRUFDVDdRLFNBQVU4USxFQUNWN1AsU0FBVThQLE9DN0ZHLFNBQVN0VCxHQUN4QixJQUFJcUssR0FDRjNHLFVBQ0UxRCxFQUFLcUssUUFBUSxLQUFNLEtBQ25CckssRUFBS3FLLFFBQ0gsS0FDQSxNQUVFN0csVUFBVyxZQU1mK1AsR0FDRm5lLFVBQVcsT0FDWDROLE1BQU8sa0JBQ1BPLFVBQVcsR0FHVHVOLEdBQ0Y5TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25Cd1EsUUFBUyxJQUNURyxXQUNHcE8sVUFBVyxPQUFRNE4sTUFBTywwQ0FDM0JxSCxJQVNKLE9BQ0U5SCxTQUNFLDhIQUVGaUIsV0FLSWhCLGNBQWUscUJBQXNCM1AsSUFBSyxXQUMxQzBQLFNBQVUseURBQ1ZpQixVQUFXc04sRUFBTXpHLEdBQ2pCaEgsUUFBUyxhQUdUTCxNQUFPLFNBQVVuUSxJQUFLLElBQ3RCMFAsU0FBVSxxQkFDVmlCLFVBQVdzTixFQUFNekcsR0FDakJoSCxRQUFTLGFBR1RMLE1BQU8sT0FBUW5RLElBQUssSUFDcEIwUCxTQUFVLGFBQ1ZpQixVQUFXK1AsRUFBYXpDLEdBM0I1QjlOLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxTQUFVc04sRUFBS3ROLFVBMEIyQjZHLEtBR3RDN0gsY0FBZSxzQkFBdUIzUCxJQUFLLElBQzNDMlEsVUFBV3hELEVBQUsySyxjQUFlTixLQUcvQnJILE1BQU8sT0FBUW5RLElBQUssSUFDcEIwUCxTQUFVLE9BQ1ZpQixVQUFXNkcsSUFNYnJLLEVBQUttSyxrQkFDTG5LLEVBQUsySyxjQUNMNEksRUFDQXZULEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLG1CQUN0Q3FILEdBRUNySCxNQUFPLFVBRVZLLFFBQVMsU0NoRkksU0FBU3JELEdBQ3hCLElBQUl3VCxFQUFpQixxRkFDakJDLEdBQ0Z6RyxRQUNFLDhPQUdGb0IsUUFDRSxrQkFFQXNGLEdBQ0Z0ZSxVQUFXLFNBQ1g0TixNQUFPLGNBRUwyUSxHQUNGM1EsTUFBTyxLQUFNblEsSUFBSyxLQUVoQnFkLEdBQ0ZsUSxFQUFLcUssUUFDSCxJQUNBLEtBRUU3RyxVQUFXa1EsS0FHZjFULEVBQUtxSyxRQUNILFlBQ0EsV0FFRTdHLFVBQVdrUSxHQUNYblEsVUFBVyxLQUdmdkQsRUFBS3FLLFFBQVEsV0FBWSxTQUV2QmlHLEdBQ0ZsYixVQUFXLFFBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLElBQ3BCMFAsU0FBVWtSLEdBRVIxRSxHQUNGM1osVUFBVyxTQUNYb08sVUFBV3hELEVBQUtpSyxpQkFBa0JxRyxHQUNsQzVNLFdBQ0dWLE1BQU8sSUFBS25RLElBQUssTUFDakJtUSxNQUFPLElBQUtuUSxJQUFLLE1BQ2pCbVEsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sZUFBZ0JuUSxJQUFLLFFBQzVCbVEsTUFBTyxlQUFnQm5RLElBQUssUUFDNUJtUSxNQUFPLGFBQWNuUSxJQUFLLE1BQzFCbVEsTUFBTyxhQUFjblEsSUFBSyxNQUMxQm1RLE1BQU8sYUFBY25RLElBQUssTUFDMUJtUSxNQUFPLGFBQWNuUSxJQUFLLE1BQzFCbVEsTUFBTyxhQUFjblEsSUFBSyxNQUMxQm1RLE1BQU8sZUFBZ0JuUSxJQUFLLFFBSTNCbVEsTUFBTyxrRUFHUEEsTUFBTyxhQUFjblEsSUFBSyxjQUk1Qm1jLEdBQ0Y1WixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQU93VCxZQUFZLEVBQ3RDOUQsU0FBVWtSLEdBR1JHLEdBQ0Y3RSxFQUNBNEUsR0FFRXZlLFVBQVcsUUFDWG9OLGNBQWUsZUFBZ0IzUCxJQUFLLE1BQ3BDd1EsUUFBUyxJQUNURyxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU8sc0NBRXBDQSxNQUFPLFFBQ1BRLFdBQ0VSLE1BQU8sSUFBTWhELEVBQUsySixTQUFXLE9BQVMzSixFQUFLMkosYUFHL0N4VixPQUFPK2IsS0FHVDlhLFVBQVcsV0FDWG9OLGNBQWUsTUFBTzNQLElBQUssTUFDM0IyUSxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU93USxJQUN0Q3hFLEdBQ0E3YSxPQUFPK2IsS0FJVGxOLE1BQU9oRCxFQUFLMkosU0FBVyxPQUd2QnZVLFVBQVcsU0FDWDROLE1BQU9oRCxFQUFLNEosb0JBQXNCLGNBQ2xDckcsVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyxXQUNQUSxVQUFXdUwsR0FBUy9MLE1BQU93USxJQUMzQmpRLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sNEVBQ1BPLFVBQVcsSUFHWFAsTUFBTyxtQ0FHUDVOLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEIwUCxTQUFVa1IsSUFHVnpRLE1BQU8sSUFBTWhELEVBQUtnSyxlQUFpQixlQUNuQ3pILFNBQVUsU0FDVmlCLFVBQ0VtUSxHQUVFdmUsVUFBVyxTQUNYb08sVUFBV3hELEVBQUtpSyxpQkFBa0JxRyxHQUNsQ2pOLFFBQVMsS0FDVEssV0FDR1YsTUFBTyxJQUFLblEsSUFBSyxZQUNqQm1RLE1BQU8sTUFBT25RLElBQUssWUFDbkJtUSxNQUFPLFFBQVNuUSxJQUFLLGNBQ3JCbVEsTUFBTyxNQUFPblEsSUFBSyxZQUNuQm1RLE1BQU8sUUFBU25RLElBQUssZ0JBRzFCc0IsT0FBTytiLEdBQ1QzTSxVQUFXLElBRWJwUCxPQUFPK2IsR0FFVEksRUFBTTlNLFNBQVdvUSxFQUNqQjVFLEVBQU94TCxTQUFXb1EsRUFFbEIsSUFJSUMsSUFFQTdRLE1BQU8sU0FDUGMsUUFDRWpSLElBQUssSUFBSzJRLFNBQVVvUSxLQUl0QnhlLFVBQVcsT0FDWDROLE1BQU8sZ0ZBQ1BjLFFBQ0VqUixJQUFLLElBQUsyUSxTQUFVb1EsS0FLMUIsT0FDRXhULFNBQVUsS0FBTSxVQUFXLFVBQVcsT0FBUSxPQUM5Q21DLFNBQVVrUixFQUNWcFEsUUFBUyxPQUNURyxTQUFVME0sRUFBYy9iLE9BQU8wZixHQUFhMWYsT0FBT3lmLFFDN0t0QyxTQUFTNVQsR0FDeEIsT0FDRStFLFlBQWEsTUFDYnZCLFVBQ0V4RCxFQUFLcUssUUFBUSxNQUFPLE9BRWxCckgsTUFBTyxXQUFZblEsSUFBSyxVQUN4QmtTLFlBQWEsT0FDYmtCLGNBQWMsRUFDZE8sWUFBWSxTQ1RILFNBQVN4RyxHQUN4QixPQUNFdUMsVUFDRXdMLFNBQ0Usd0JBQ0ZmLFFBQ0UsK0lBR0p4SixXQUVJcE8sVUFBVyxPQUFRNE4sTUFBTyxZQUMxQk8sVUFBVyxJQUVidkQsRUFBS3FLLFFBQVEsSUFBSyxNQUVoQmpWLFVBQVcsU0FDWDROLE1BQU8sd0RBQ1BPLFVBQVcsR0FFYnZELEVBQUtrSyxpQkFDTGxLLEVBQUttSyxtQkFFSG5ILE1BQU8sOEJBR1BBLE1BQU8sT0FHUEEsTUFBTyxPQUdQQSxNQUFPLE1BR1BBLE1BQU8sMkVBQ1BPLFVBQVcsSUFHWFAsTUFBTyxzQkFDUE8sVUFBVyxTQ3hDRixTQUFTdkQsR0FDeEIsSUFBSThULEVBQWdCLHVCQUNoQkMsRUFBbUIsSUFBTUQsRUFBZ0IsSUFBTUEsRUFBZ0IsSUFBTUEsRUFBZ0IsSUFDckZFLEdBQ0ZoSCxRQUNFLDJJQUVGb0IsUUFDRSxjQUdBL0QsRUFBVXJLLEVBQUtxSyxRQUFRLElBQUssS0FDNUJ3RSxHQUNGelosVUFBVyxTQUNYNE4sTUFBTyx3REFDUE8sVUFBVyxHQUVUMFEsR0FDRmpSLE1BQU8sVUFBWThRLEVBQWdCLFNBRWpDSSxHQUNGbFIsTUFBTytRLEVBQW1CLE1BQU9saEIsSUFBSyxNQUN0Q3FULGFBQWEsRUFDYjNDLFVBQVcsRUFDWEMsV0FFSVIsTUFBTytRLEVBQWtCeFEsVUFBVyxJQUdwQ1AsTUFBTyxNQUFPblEsSUFBSyxNQUFPcVEsZ0JBQWdCLEVBQzFDcUQsV0FBVyxFQUNYaEQsVUFBVyxLQUtiNFEsR0FDRm5SLE1BQU8sSUFBS25RLElBQUssSUFDakIwUSxVQUFXLEdBR1Q2USxHQUNGcFIsTUFBTyw0QkFDUE8sVUFBVyxHQUVUOFEsR0FDRnJSLE1BQU8scUJBQ1BPLFVBQVcsR0FFVCtRLEdBQ0Z0UixNQUFPLElBQU1oRCxFQUFLNEosb0JBQ2xCckcsVUFBVyxFQUNYMkMsYUFBYSxFQUNiMUMsV0FFSVIsTUFBTyxJQUFNaEQsRUFBSzRKLG9CQUNsQnJHLFVBQVcsSUFHWFAsTUFBTyxJQUFLblEsSUFBSyxJQUNqQjBRLFVBQVcsS0FNYmdSLEdBQ0YvUixjQUFlLDBCQUEyQjNQLElBQUssTUFDL0MwUCxTQUFVeVIsR0FFWk8sRUFBaUIvUSxVQUNmNkcsRUFDQTRKLEVBQ0FqVSxFQUFLb0IsUUFBUXBCLEVBQUtrSyxrQkFBbUI5VSxVQUFXLEtBQ2hEbWYsRUFDQUwsRUFDQWxVLEVBQUttSyxrQkFDTDBFLEVBQ0FzRixFQUNBQyxFQUFNQyxFQUNOQyxHQUdGLElBQUlFLEdBQ0ZuSyxFQUNBNEosRUFDQU0sRUFDQUwsRUFDQWxVLEVBQUttSyxrQkFDTDBFLEVBQ0FzRixFQUNBQyxFQUFNQyxFQUNOQyxHQUVGSixFQUFjMVEsU0FBUyxHQUFHQSxTQUFXZ1IsRUFDckNMLEVBQU0zUSxTQUFXZ1IsRUFDakJGLEVBQWM5USxTQUFTLEdBQUdBLFNBQVdnUixFQUVyQyxJQUFJeEYsR0FDRjVaLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxTQUFVZ1IsR0FFWixPQUNFcFUsU0FBVSxPQUNWbUMsU0FBVXlSLEVBQ1YzUSxRQUFTLDRDQUNURyxXQUVJcE8sVUFBVyxXQUNYNE4sTUFBTyxJQUFNOFEsRUFBZ0IsVUFBV2poQixJQUFLLEtBQzdDcVQsYUFBYSxFQUNiN0MsUUFBUyx5QkFDVEcsVUFDRXdMLEVBQ0FoUCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTzhRLEtBRXhDaFEsUUFDRWpSLElBQUssUUFDTDBQLFNBQVV5UixFQUNWeFEsU0FBVWdSLElBR2RuSyxHQUVFckgsTUFBTyxLQUFNblEsSUFBSyxNQUNsQjBRLFVBQVcsRUFDWGlELFlBQVksRUFDWk4sYUFBYSxFQUNibkQsUUFBUyxJQUFNL0MsRUFBSzJKLFNBQ3BCcEgsU0FDRSwwS0FHRmlCLFVBQVd3TCxJQUViSCxFQUNBN08sRUFBS21LLGtCQUNMbUssRUFDQUYsRUFBTUMsRUFDTkYsR0FDQ25SLE1BQU8sYUM3SUcsU0FBU2hELEdBQ3hCLE9BQ0VJLFNBQVUsT0FBUSxPQUNsQitCLGtCQUFrQixFQUNsQlksUUFBUyxrQkFFVFIsVUFDSXdMLFNBQVUsb3FIQUVkdkssV0FHSVIsTUFBTyxLQUNQblEsSUFBSyxPQUFRMFQsV0FBVyxFQUFNbEQsUUFBUyxJQUN2Q0UsVUFBVyxLQUtYbk8sVUFBVyxTQUNYNE4sTUFBTyxvQkFDUG5RLElBQUssUUFBUzJULFlBQVksRUFDMUJqRCxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLDhCQUNQTyxVQUFXLEdBRWJ2RCxFQUFLaUssaUJBQ0xqSyxFQUFLbUssbUJBRUgvVSxVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzZKLFVBQVksT0FDeEJ0RyxVQUFXLEdBR2J2RCxFQUFLcUssUUFBUSxRQUFRLE1BRW5CcEUsY0FBYyxFQUNkTyxZQUFZLEVBQ1puRCxRQUFTLGFDMUNBLFNBQVNyRCxHQUN4QixPQUNFd0QsV0FFRVIsTUFBTyxtQkFDUG5RLElBQUssaUJBQ0wyVCxZQUFZLEVBQ1pOLGFBQWEsRUFDYkssV0FBVyxFQUNYL0MsV0FFRVIsTUFBTyxzQkFDUG5RLElBQUssdUJBQ0wwVCxXQUFXLEVBQ1hMLGFBQWEsRUFDYjlRLFVBQVcsU0FHWDROLE1BQU8sSUFDUG5RLElBQUssbUJBQ0wyVCxZQUFZLEVBQ1pQLGNBQWMsRUFDZDdRLFVBQVcsYUFHZitNLGtCQUFrQixPQ3pCTCxTQUFVbkMsR0FFdkIsSUFtQkl5VSxHQUNBcmYsVUFBVyxXQUNYb04sY0FBZSxNQUNmM1AsSUFBSyxjQUNMMlQsWUFBWSxFQUNaaEQsV0FUQXBPLFVBQVcsUUFDWDROLE1BQU8sb0ZBV1gsT0FDSVQsVUFDSTZMLFFBQVMsYUFDVHBCLFFBQVMsdUdBRWJ4SixVQUNJeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQWpDVHBWLFVBQVcsU0FDWDROLE1BQU8sK0JBSVA1TixVQUFXLFNBQ1hzTyxXQUVRVixNQUFPLElBQUtuUSxJQUFLLE9BNEJyQjRoQixFQUNBelUsRUFBSzJLLG9CQ3hDQSxTQUFTM0ssR0ErQ3hCLE9BQ0VtQyxrQkFBa0IsRUFDbEIvQixTQUFVLE1BQU8sT0FDakJtQyxVQTNDQTZMLFFBQVMsaUJBQ1RwQixRQUFTLHV1REFvQlRlLFNBQVUsaTlEQXVCVjFLLFFBQVMsT0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBS2tLLGtCQUFtQjlVLFVBQVcsU0FBVW1PLFVBQVcsSUFDckV2RCxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0IvVSxVQUFXLFNBQVVtTyxVQUFXLEtBRXBFbk8sVUFBVyxXQUNYb04sY0FBZSw4QkFDZmEsUUFBUyxXQUNURyxVQUFXeEQsRUFBS2dMLHVCQXpEcEI1VixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLFNBMERqQm1OLEVBQUtxSyxRQUFRLElBQUssS0FBTTlHLFVBQVcsS0FFakNuTyxVQUFXLFNBQ1g0TixNQUFPLGtGQUNQTyxVQUFXLFNDakVGLFNBQVN2RCxHQUN4QixJQUFJMFUsR0FDRjFSLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU8scUJBSTFDLE9BQ0U1QyxTQUFVLE1BQ1ZtQyxTQUNFLHdYQU1GYyxRQUFTLE9BQ1RHLFdBR0lwTyxVQUFXLFVBQ1g0TixNQUFPLDZCQUdQNU4sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxJQUNsQjJRLFdBQVlSLE1BQU8sU0FHbkI1TixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE9BRXJCbU4sRUFBS3FLLFFBQVEsU0FBVSxXQUVyQmpWLFVBQVcsUUFDWG9OLGNBQWUsT0FBUTNQLElBQUssVUFBVzJULFlBQVksRUFDbkRoRCxVQUNFeEQsRUFBS2dMLHNCQUNMMEosS0FJRnRmLFVBQVcsT0FDWDROLE1BQU8sT0FBUW5RLElBQUssT0FDcEIwUSxVQUFXLEtBR1huTyxVQUFXLFNBQ1g0TixNQUFPLG9CQUNQUSxVQUFXeEQsRUFBS2lLLG1CQUVsQmpLLEVBQUt1SyxvQkFDTHZLLEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjlHLFFBQVMsT0FDL0NyRCxFQUFLMkssb0JDdERNLFNBQVUzSyxHQUN6QixJQUFJNFAsR0FDRjVDLFFBQ0Usb1ZBS0ZvQixRQUFXLGFBQ1h1RyxXQUNFLHUzQkFxQkFDLEdBQ0Z4ZixVQUFXLFNBQ1hzTyxXQUNHVixNQUFPLGdCQUNQQSxNQUFPLFFBR1I2UixHQUNGemYsVUFBVyxVQUNYc08sV0FDR1YsTUFBTyxJQUFNblEsSUFBSyxNQUNsQm1RLE1BQU8sSUFBS25RLElBQUssTUFFcEJ3USxRQUFTLE1BQ1RHLFVBQVd4RCxFQUFLaUssbUJBRWQ2SyxHQUNGOVIsTUFBTyxJQUNQblEsSUFBSyxJQUNMMFAsU0FBVXFOLEVBQ1ZwTSxVQUNFcVIsRUFDQTdVLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUttSyxrQkFDTG5LLEVBQUtrSyxpQkFDTGxLLEVBQUsySyxnQkFHTG9LLEdBQ0YvUixNQUFPLDJDQUNQaUQsY0FBYyxFQUNkcFQsSUFBSyxJQUNMcVEsZ0JBQWdCLEVBQ2hCTSxVQUNFcVIsRUFDQUMsR0FFRTFmLFVBQVcsVUFDWDROLE1BQU8sZ0RBQ1BPLFVBQVcsS0FLakIsT0FDRW5ELFNBQVUsT0FDVitCLGtCQUFrQixFQUNsQkksU0FBVXFOLEVBQ1ZwTSxVQUNFeEQsRUFBS3FLLFFBQVEsWUFBYSxlQUV4QmpWLFVBQVcsT0FDWDROLE1BQU8sZ0JBQ1BuUSxJQUFLLElBQ0xxVCxhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxlQUNYNE4sTUFBTyxtQkFJYmhELEVBQUtxSyxRQUFRLE9BQVEsS0FDckJySyxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssa0JBR0gxSCxjQUNFLHFGQUVGM1AsSUFBSyxJQUNMMlEsVUFDRXhELEVBQUtxSyxRQUFRLE9BQVEsS0FDckJySyxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssaUJBQ0w0SyxFQUNBQyxLQUlGdlMsY0FBZSxRQUNmM1AsSUFBSyxJQUNMcVQsYUFBYSxFQUNiMUMsV0FFSWhCLGNBQWUsUUFDZjNQLElBQUssSUFDTDJRLFVBQVd1UixJQUViL1UsRUFBS3FLLFFBQVEsT0FBUSxLQUNyQnJLLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUttSyxrQkFDTG5LLEVBQUtrSyxpQkFDTGxLLEVBQUsySyxpQkFNUHZWLFVBQVcsV0FDWDROLE1BQU8saUNBQ1BrRCxhQUFhLEVBQ2IxQyxXQUVRcE8sVUFBVyxRQUNYNE4sTUFBTyxnQkFwSG5CNU4sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQm9ULGNBQWMsRUFDZE8sWUFBWSxHQW9IRm9PLElBR1I1VSxFQUFLMkssY0FDTGlLLFFDckpXLFNBQVM1VSxHQUN4QixJQUFJNFAsR0FDRjVDLFFBQVMsZ3VCQVNUZSxTQUFVLCs0U0FvRlZLLFFBQVMseWJBT1BlLEdBRUYvWixVQUFXLE9BQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMFAsVUFBVzhMLGVBQWdCLDZIQUMzQjdLLFdBRUlSLE1BQU8sT0FBUU8sVUFBVyxJQUcxQmYsY0FBZSxVQUFXM1AsSUFBSyxJQUMvQjBQLFVBQVc4TCxlQUFnQixXQUMzQjdLLFdBRUlwTyxVQUFXLGNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCd1EsUUFBUyxTQUlmckQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHVCQUlMNEUsRUFBaUJwUCxFQUFLNEosb0JBQXNCLFdBQzVDb0wsSUFFQTVmLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEIwUCxTQUFVcU4sRUFDVnJNLFVBQVcsRUFDWEMsVUFDRXhELEVBQUsySyxjQUNMM0ssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHdCQUtYLE9BQ0VwSyxTQUFVLE9BQ1YrQixrQkFBa0IsRUFDbEJJLFNBQVVxTixFQUNWdk0sUUFBUyxvQkFDVEcsVUFDRXhELEVBQUsySyxjQUNMM0ssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBS3FLLFFBQVEsSUFBSyxLQUNsQjhFLEdBRUUvWixVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFBV3hELEVBQUtpSyxvQkFHaEI3VSxVQUFXLFdBQ1hvTixjQUFlLGVBQ2YzUCxJQUFLLElBQ0wyVCxZQUFZLEVBQ1pqRSxTQUFVcU4sRUFDVnBNLFdBRUlSLE1BQU9vTSxFQUFnQmxKLGFBQWEsRUFDcEMxQyxVQUFXeEQsRUFBS2dMLHVCQUNoQnpILFVBQVcsR0FFYnZELEVBQUsySyxjQUNMM0ssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMMkUsR0FDQWhiLE9BQU82Z0IsS0FHVDVmLFVBQVcsV0FDWG9OLGNBQWUsS0FDZjNQLElBQUssSUFDTDJULFlBQVksRUFDWmpFLFNBQVVxTixFQUNWcE0sV0FFSVIsTUFBT29NLEVBQWlCcFAsRUFBSzJKLFNBQVcsa0JBQW1CekQsYUFBYSxFQUN4RTFDLFVBQVd4RCxFQUFLZ0wsdUJBQ2hCekgsVUFBVyxHQUVidkQsRUFBSzJLLGNBQ0wzSyxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssc0JBQ0xyVyxPQUFPNmdCLEtBR1Q1ZixVQUFXLFdBQ1g0TixNQUFPLG9DQUNQblEsSUFBSyxJQUNMMlQsWUFBWSxFQUNaakUsU0FBVXFOLEVBQ1ZwTSxXQUVJUixNQUFPb00sRUFBZ0JsSixhQUFhLEVBQ3BDMUMsVUFBV3hELEVBQUtnTCx1QkFDaEJ6SCxVQUFXLEdBRWJ2RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssd0JBSVBwVixVQUFXLFdBQ1g0TixNQUFPLHlEQUEyRGhELEVBQUsySixTQUFXLFFBQ2xGOVcsSUFBSyxJQUNMMlQsWUFBWSxFQUNaakUsU0FBVXFOLEVBQ1ZwTSxVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLDZCQ3pORSxTQUFTeEssR0FDdEIsSUFTSWlWLEdBQ0FqVixFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLcUssUUFBUSxLQUFNLE1BQ25CckssRUFBS29CLFFBQVFwQixFQUFLMkssZUFBZ0IzSCxNQUFPLGlDQUFtQ2hELEVBQUs4SixjQUNqRjlKLEVBQUtvQixRQUFRcEIsRUFBS2tLLGtCQUFtQjdHLFFBQVMsT0FDOUNyRCxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0I5RyxRQUFTLFFBRTNDak8sVUFBVyxPQUNYNE4sTUFBTyw0QkFHUDVOLFVBQVcsT0FDWDROLE1BQU8sNEJBR1A1TixVQUFXLE9BQ1g0TixNQUFPLFlBQ1BuUSxJQUFLLFdBR0x1QyxVQUFXLE9BQ1g0TixNQUFPLHdCQUdQNU4sVUFBVyxXQUNYNE4sTUFBTyw2REFDUG5RLElBQUssdUNBR0x1QyxVQUFXLFNBQ1hzTyxXQUVRVixNQUFPLElBQUtuUSxJQUFLLE9BQ2pCd1EsUUFBUyxVQU16QixPQUNJakQsU0FBVSxNQUdWK0Isa0JBQWtCLEVBQ2xCWSxRQXREaUIsb0JBdURqQlIsU0FwREYsNEZBcURFaUIsV0FFUXBPLFVBQVcsT0FDWDROLE1BMURTLFFBS2pCNU4sVUFBVyxPQUNYNE4sTUFBTyxrQkF1REw3TyxPQUFPOGdCLFFDL0RBLFNBQVVqVixHQUN6QixPQUNFSSxTQUFVLFdBQ1ZtQyxTQUFVLGtJQUNWaUIsV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sTUFDUE8sVUFBVyxJQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxjQUdQQSxNQUFPLE1BQU9uUSxJQUFLLFdBQ25CMlEsV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sWUFLWDVOLFVBQVcsV0FDWDROLE1BQU8sSUFBS25RLElBQUssS0FFbkJtTixFQUFLeUssbUJBRUhyVixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE9BRXJCbU4sRUFBS21LLHdCQ2hDTSxTQUFTbkssR0FDeEIsT0FDRXVDLFVBQ0V5SyxRQUVFLGlnQ0FhRm5kLEtBQ0UsdXdDQWVGa2UsU0FFRSx5bkxBa0VGSyxRQUFTLGNBRVgvSyxRQUFTLElBQ1RHLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLMkssZUFFSHZWLFVBQVcsT0FDWDROLE1BQU8sSUFBS25RLElBQUssV0MvR1IsU0FBU21OLEdBQ3hCLElBQUlrVixHQUNGbEksUUFDRSwwUkFJRm9CLFFBQ0csc0JBQ0hMLFNBQ0UsMkZBRUosT0FDRTNOLFNBQVUsVUFDVm1DLFNBQVUyUyxFQUNWN1IsUUFBUyxLQUNURyxVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVIcFYsVUFBVyxTQUNYc08sVUFDRTFELEVBQUttSyxtQkFDSm5ILE1BQU8sSUFBTW5RLElBQUssYUFDbEJtUSxNQUFPLElBQUtuUSxJQUFLLFFBSXBCdUMsVUFBVyxTQUNYc08sV0FDR1YsTUFBT2hELEVBQUs4SixZQUFjLFVBQVd2RyxVQUFXLEdBQ2pEdkQsRUFBSzJLLGlCQUlQM0gsTUFBTyxPQUdQNU4sVUFBVyxXQUNYb04sY0FBZSxPQUFRM1AsSUFBSyxRQUFTMlQsWUFBWSxFQUNqRGhELFVBQ0V4RCxFQUFLK0ssWUFFSDNWLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEIwUCxTQUFVMlMsRUFDVjdSLFFBQVMsZ0JDOUNKLFNBQVNyRCxHQUN0QixPQUNFdUMsVUFDRXlLLFFBQ0UsMFRBS0ZvQixRQUNFLG1CQUVKNUssVUFDRXhELEVBQUt5SyxrQkFDTHpLLEVBQUttSyxrQkFDTG5LLEVBQUsySyxlQUVIdlYsVUFBVyxPQUFRNE4sTUFBTyxvQkNqQm5CLFNBQVNoRCxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCSSxVQUNFeUssUUFDRSxteENBa0JKeEosVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxrQkFDTG5LLEVBQUswSyxZQUNMMUssRUFBSzhLLGtCQzdCTSxTQUFTOUssR0FDdEIsT0FDSXVDLFVBQ0k2TCxRQUFVLGtCQUNWcEIsUUFDQSx3VUFTSnhKLFVBQ0l4RCxFQUFLcUssUUFDRCxVQUNBLFFBRUk5RyxVQUFZLEVBQ1pDLFdBR01SLE1BQU8sT0FBUU8sVUFBVyxJQUcxQm5PLFVBQVksU0FDWjROLE1BQVEsaUJBS3RCaEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVEcFYsVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxRQUduQnVDLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssUUFHbkJ1QyxVQUFXLFNBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLE9BQ3BCMFEsVUFBVyxJQUVmdkQsRUFBS2tLLGtCQUVEOVUsVUFBVyxTQUNYNE4sTUFBTyxpQkFDUFEsVUFDSXhELEVBQUtpSyxtQkFHYmpLLEVBQUttSyxtQkFFRC9VLFVBQVcsT0FDWDROLE1BQU8sa0JBQW1CblEsSUFBSyxJQUMvQndRLFFBQVMsTUFFYnJELEVBQUs0SyxvQkFFRHhWLFVBQVcsUUFDWG9OLGNBQWUsNkJBQThCM1AsSUFBSyxJQUNsRHdRLFFBQVMsSUFDVEcsV0FDS2hCLGNBQWUsc0JBQ2hCeEMsRUFBS2dMLHdCQUdiaEwsRUFBSzJLLGVBRUR2VixVQUFXLE9BQVE0TixNQUFPLGVBSTFCNU4sVUFBVyxTQUFVNE4sTUFBTyw4QkFLNUJBLE1BQU8sS0FBTW5RLElBQUssT0FJbEJ1QyxVQUFXLFNBQVU0TixNQUFPLHVCQUM1Qk8sVUFBVyxJQUduQkYsUUFBUyxhQ3pGakIsU0FBU3JELEdBQ1AsT0FDRW1DLGtCQUFrQixFQUNsQnFCLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLGdFQUNQTyxVQUFXLElBR2J2RCxFQUFLcUssUUFDSCx5QkFDQSxHQUVFOUcsVUFBVyxLQUliUCxNQUFPLHFCQUNQYyxRQUNFalIsSUFBSyxNQUNMa1MsWUFBYSxVQUlmM1AsVUFBVyxNQUNYNE4sTUFBTyxTQUNQUSxXQUVJcE8sVUFBVyxlQUNYNE4sTUFBTyxTQUdQNU4sVUFBVyxjQUNYNE4sTUFBTyxhQUdQNU4sVUFBVyxpQkFDWDROLE1BQU8sZUFHUEEsTUFBTyxRQUNQblEsSUFBSyxRQUNMMlEsV0FFSVIsTUFBTyxjQUNQblEsSUFBSyxRQUNMcVQsYUFBYSxFQUNiaEQsZ0JBQWdCLEVBQ2hCTSxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxTQUVUaEQsRUFBS2tLLGlCQUNMbEssRUFBS21LLG1CQUVIbkgsTUFBTyxPQUNQTyxVQUFXLFFBT25CUCxNQUFPLFVBQ1BuUSxJQUFLLFVBQ0wyVCxZQUFZLEVBQ1poRCxXQUVJUixNQUFPLFlBQ1BuUSxJQUFLLE9BQ0xxVCxhQUFhLEVBQ2JoRCxnQkFBZ0IsRUFDaEJNLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLE9BQ1BPLFVBQVcsR0FFYnZELEVBQUtrSyxpQkFDTGxLLEVBQUttSyxtQkFFSG5ILE1BQU8sT0FDUE8sVUFBVyxVQVN2QlAsTUFBTyxrQkFHUEEsTUFBTyxLQUNQYyxRQUNFalIsSUFBSyxJQUNMa1MsWUFBYSxlQ3BHTixTQUFTL0UsR0FDeEIsSUFBSW1WLEdBQWFsRSxlQUFnQiwwR0FDakMsT0FDRTdRLFNBQVUsTUFBTyxXQUFZLG1CQUM3QitCLGtCQUFrQixFQUNsQjRDLFlBQWEsTUFDYnZCLFVBQ0F4RCxFQUFLcUssUUFBUSxXQUFZLFlBRXJCalYsVUFBVyxlQUNYNE4sTUFBTyxZQUFhblEsSUFBSyxPQUN6QjJRLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLGVBQ1BULFNBQVU0UyxFQUNWclIsUUFDRVosZ0JBQWdCLEVBQU1LLFVBQVcsRUFDakNDLFVBQ0V4RCxFQUFLbUssd0JBT2IvVSxVQUFXLG9CQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxPQUNwQjBQLFNBQVU0UyxTQzVCRCxTQUFTblYsR0FDeEIsSUFBSXFLLEdBQ0YzRyxVQUNFMUQsRUFBS3FLLFFBQVEsS0FBTSxLQUNuQnJLLEVBQUtxSyxRQUNILEtBQ0EsTUFFRTdHLFVBQVcsWUFNZjRSLEdBQ0ZoZ0IsVUFBVyxPQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxPQUdqQnNjLEdBQ0YvWixVQUFXLE9BQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBR2hCMGdCLEdBQ0ZuZSxVQUFXLE9BQ1g0TixNQUFPLGtCQUNQTyxVQUFXLEdBR1R1TixHQUNGOU4sTUFBTyxNQUFPblEsSUFBSyxNQUNuQndRLFFBQVMsSUFDVEcsVUFDRTRSLEVBQ0FqRyxHQUNDL1osVUFBVyxPQUFRNE4sTUFBTywwQ0FDM0JoRCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTyxrQkFDdENxSCxJQVNKLE9BQ0VqSyxTQUFVLE1BQ1ZtQyxTQUNFLHdPQUlGaUIsV0FLSWhCLGNBQWUsU0FBVTNQLElBQUssUUFDOUIwUCxTQUFVLGVBQ1ZpQixVQUFXc04sRUFBTXpHLEdBQ2pCaEgsUUFBUyxhQUdUTCxNQUFPLGVBQWdCblEsSUFBSyxJQUM1QjBQLFNBQVUsNkJBQ1ZpQixVQUFXc04sRUFBTXpHLEdBQ2pCaEgsUUFBUyxhQUlUak8sVUFBVyxRQUNYNE4sTUFBTyw4QkFBK0JuUSxJQUFLLFFBQzNDMFAsU0FBVSw4QkFDVmlCLFVBQVcrUCxFQUFhekMsRUFBTXpHLEtBRzlCalYsVUFBVyxRQUNYNE4sTUFBTywwQkFBMkJuUSxJQUFLLElBQ3ZDMFAsU0FBVSxvQ0FDVmlCLFVBQVc0UixFQUFRN0IsRUFBYXpDLEdBdENwQzlOLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxTQUFVc04sRUFBS3ROLFVBcUNtQzZHLEtBRzlDN0gsY0FBZSxVQUFXM1AsSUFBSyxJQUMvQjJRLFVBQVcrUCxFQUFhekMsRUFBTXpHLEtBRzlCN0gsY0FBZSxzQkFBdUIzUCxJQUFLLElBQzNDMlEsVUFBV3hELEVBQUsySyxjQUFlTixLQUcvQnJILE1BQU8sZ0JBQWlCblEsSUFBSyxJQUM3QjBQLFNBQVUsdUVBRVZpQixVQUFXK1AsRUFBYXZULEVBQUttSyxrQkFBbUJFLEtBR2hEalYsVUFBVyxPQUNYNE4sTUFBTyxrQ0FBb0NuUSxJQUFLLEtBS2xEdWlCLEVBQ0FqRyxFQUtBblAsRUFBS21LLGtCQUNMbkssRUFBSzJLLGNBQ0w0SSxFQUNBdlQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU8sbUJBRXRDcUgsR0FFQ3JILE1BQU8sZUNySEcsU0FBU2hELEdBTXhCLE9BQ0VJLFNBQVUsTUFDVm1DLFVBQ0V5SyxRQUFTLHVSQUlUZSxTQUNFLGFBQ0ZLLFFBQ0UscUJBRUo1SyxXQUNJcE8sVUFBVyxTQUNYNE4sTUFBTyxJQUFNblEsSUFBSyxJQUNsQjJRLFVBQ0V4RCxFQUFLaUssa0JBQ0g3VSxVQUFXLFFBQ1g0TixNQUFPLFNBQVVuUSxJQUFLLFFBRXRCdUMsVUFBVyxRQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxVQUl6Qm1OLEVBQUttSyxrQkFDTG5LLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUsySyxlQUNIdlYsVUFBVyxPQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxNQUVsQnVDLFVBQVcsT0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIwUCxVQUFXOEwsZUFBZ0IsOEJBRTNCalosVUFBVyxPQUNYNE4sTUFBTyxVQUFXblEsSUFBSyx1QkFDdkJvVCxjQUFjLEVBQU1PLFlBQVksRUFDaENqRCxVQUFXLElBRVhuTyxVQUFXLE9BQ1g0TixNQUFPLFVBQVduUSxJQUFLLE1BQ3ZCb1QsY0FBYyxFQUFNTyxZQUFZLElBRWhDcFIsVUFBVyxPQUNYNE4sTUFBTyxRQUFTblEsSUFBSyxNQUNyQm9ULGNBQWMsRUFBTU8sWUFBWSxJQUVoQ3BSLFVBQVcsUUFDWG9OLGNBQWUsT0FBUTNQLElBQUssTUFDNUIyUSxVQUNFeEQsRUFBSytLLGNBR1AzVixVQUFXLFFBQ1hvTixjQUFlLFdBQVkzUCxJQUFLLFNBQ2hDMlEsV0FDSXBPLFVBQVcsT0FDWDROLE1BQU8sTUFBT25RLElBQUssTUFDbkJvVCxjQUFjLEVBQU1PLFlBQVksSUFFaENwUixVQUFXLE9BQ1g0TixNQUFPLFNBQVVuUSxJQUFLLE1BQ3RCb1QsY0FBYyxFQUFNTyxZQUFZLElBRWhDcFIsVUFBVyxPQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxNQUNwQm9ULGNBQWMsRUFBTU8sWUFBWSxHQUVsQ3hHLEVBQUsrSyxZQUVQeEksVUFDRXlLLFFBQVMsc0JBR1g1WCxVQUFXLFFBQ1g0TixNQUFPLHlCQUEwQm5RLElBQUssU0FBVzJULFlBQVksRUFDN0RqRSxTQUFVLGtCQUNWaUIsV0FDSXBPLFVBQVcsVUFDWDROLE1BQU8sNEJBQ1BULFNBQVUscUJBQ1ZpQixXQUVJcE8sVUFBVyxPQUNYNE4sTUFBT2hELEVBQUsySixTQUNacEcsVUFBVyxLQUlqQnZELEVBQUsrSyxjQUdQM1YsVUFBVyxXQUNYb04sY0FBZSxXQUFZM1AsSUFBSyxNQUFPMlQsWUFBWSxFQUNuRG5ELFFBQVMsTUFDVEcsVUFDRXhELEVBQUsrSyxjQUlYMUgsUUFBUyxXQzVHSSxTQUFTckQsR0FDeEIsT0FDRW1DLGtCQUFrQixFQUNsQlksUUFBUyxXQUNUUixTQUFVLDIvRUFDVmlCLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssa0JBSUg5VSxVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMlEsVUFBV3hELEVBQUtpSyxtQkFHbEJqSyxFQUFLcUssUUFBUSxJQUFLLEtBQU05RyxVQUFXLEtBSWpDbk8sVUFBVyxPQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjBQLFVBQVc4TCxlQUFnQixtTkFDM0I3SyxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9CL1UsVUFBVyxnQkFDakQ0SyxFQUFLMEssWUFDTDFLLEVBQUsySyxjQUNMM0ssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHdCQU1QcFYsVUFBVyxTQUNYNE4sTUFBTyxnQkFHVGhELEVBQUswSyxZQUNMMUssRUFBSzJLLG9CQ3pDTSxTQUFTM0ssR0FDeEIsSUFBSW1WLEVBQVksaUxBK0JaRSxHQVBNclYsRUFBS21LLG1CQVFiakgsZ0JBQWdCLEVBQU1LLFVBQVcsRUFDakNoQixVQUFXeUssUUFBUyxLQUFNZSxTQUFVb0gsR0FDcEMzUixVQUNFeEQsRUFBS21LLG1CQWhDUDlHLFFBQVMsT0FDVEwsTUFBTyxpQkFDUGtELGFBQWEsRUFDYjNDLFVBQVcsRUFDWEMsV0FFSXBPLFVBQVcsT0FBUTROLE1BQU8sbUJBNEI1QmhELEVBQUswSyxlQUlULE9BQ0V2SSxrQkFBa0IsRUFDbEI0QyxZQUFhLE1BQ2J2QixVQUNFeEQsRUFBS3FLLFFBQVEsV0FBWSxZQUV2QmpWLFVBQVcsZUFDWDROLE1BQU8sWUFBYW5RLElBQUssT0FDekIyUSxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxnQkFDUFQsVUFBVzBPLGVBQWdCa0UsR0FDM0JyUixPQUFRdVIsTUFLWmpnQixVQUFXLG9CQUNYNE4sTUFBTywwQkFBMkJuUSxJQUFLLE9BQ3ZDMFAsVUFBV3lLLFFBQVMsS0FBTWUsU0FBVW9ILEdBQ3BDM1IsVUFDRXhELEVBQUttSywwQkNoRUUsU0FBU25LLEdBQ3hCLElBQUlzVixFQUFVLGlCQUNkLE9BQ0VsVixTQUFVLFNBQ1ZpRCxRQUFTLE1BQ1RHLFdBRUlSLE1BQU8sSUFBTXNTLEVBQVN6aUIsSUFBSyxJQUMzQjJRLFdBQVlwTyxVQUFXLFNBQVU0TixNQUFPLG1CQUd4Q0EsTUFBTyxpQkFBbUJzUyxFQUFVLElBQUtwUCxhQUFhLEVBQU1yVCxJQUFLLElBQ2pFMlEsV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakJvVCxjQUFjLEVBQU1PLFlBQVksSUFHaEN4RCxNQUFPc1MsSUFHUGxnQixVQUFXLFVBQ1g0TixNQUFPLGFBS1g1TixVQUFXLFlBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLEtBQU0yVCxZQUFZLEVBQ3RDbkQsUUFBUyxZQUNUUyxRQUFTalIsSUFBSyxJQUFLMFEsVUFBVyxLQUc5QlAsTUFBTyxTQUNQYyxRQUFTaUIsZUFBaUI3QixnQkFBZ0IsVUNuQ2pDLFNBQVNsRCxHQUN4QixJQW1DSXdRLEVBQVksd0RBUVpDLEdBQ0Z6TixNQUFPd04sRUFDUGpOLFVBQVcsR0FFVHNMLEdBQ0Z6WixVQUFXLFNBQVU0TixNQVpBLHNCQWFyQk8sVUFBVyxHQUVUd0wsRUFBUy9PLEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjlHLFFBQVMsT0FDeERnSCxFQUFVckssRUFBS3FLLFFBQ2pCLElBQ0EsS0FFRTlHLFVBQVcsSUFHWG1LLEdBQ0Z0WSxVQUFXLFVBQ1g0TixNQUFPLG1DQUVMME4sR0FDRjFOLE1BQU8sV0FBWW5RLElBQUssWUFFdEI4ZCxHQUNGdmIsVUFBVyxVQUNYNE4sTUFBTyxNQUFRd04sR0FFYkksRUFBVzVRLEVBQUtxSyxRQUFRLFNBQVUsT0FDbEN3RyxHQUNGemIsVUFBVyxTQUNYNE4sTUFBTyxXQUFhd04sR0FFbEJNLEdBQ0Y5TixNQUFPLE1BQU9uUSxJQUFLLE9BRWpCa2UsR0FDRjdOLGdCQUFnQixFQUNoQkssVUFBVyxHQUVUeU4sR0FDRnpPLFVBbEZBME8sZUFFRSxva0VBaUZGbE8sUUFBU3lOLEVBQ1RwYixVQUFXLE9BQVE0TixNQUFPd04sRUFDMUIxTSxPQUFRaU4sR0FFTkcsR0FBb0JKLEVBQU0vQixFQUFRNEIsRUFBTUMsRUFBVXZHLEVBQVN3RyxFQUFLSCxFQUFZN0IsRUFBUW5CLEVBQVMrQyxHQU1qRyxPQUpBSyxFQUFLdE4sVUFBWXhELEVBQUtxSyxRQUFRLFVBQVcsSUFBSzJHLEVBQU1ELEdBQ3BEQSxFQUFLdk4sU0FBVzBOLEVBQ2hCUixFQUFXbE4sU0FBVzBOLEdBR3BCOVEsU0FBVSxVQUNWaUQsUUFBUyxLQUNURyxXQTFEQXBPLFVBQVcsT0FDWDROLE1BQU8sTUFBT25RLElBQUssS0F5RENpZSxFQUFNL0IsRUFBUTRCLEVBQU1DLEVBQVV2RyxFQUFTd0csRUFBS0gsRUFBWTdCLEVBQVFuQixRQ2xHdkUsU0FBUzFOLEdBR3hCLE9BQ0VJLFNBQVUsTUFDVitCLGtCQUFrQixFQUNsQkksVUFFRXlLLFFBRUUsb0pBU0p4SixXQUVJcE8sVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjBRLFVBQVcsRUFDWEMsV0FFSXBPLFVBQVcsUUFDWDROLE1BMUJVLE1BMEJZblEsSUF6QmQsVUE4Qlp1QyxVQUFXLFVBQ1g0TixNQUFPLDhDQUNQblEsSUFBSyxNQUtMbVEsTUFBTyxtRUFDUG5RLElBQUssSUFDTDJRLFdBR0lSLE1BQU8sVUFBV25RLElBQUssVUFLM0J1QyxVQUFXLFVBQ1g0TixNQWpEYyxNQWlEUW5RLElBaERWLE1BaURaMlEsVUFBVyxlQ25ERixTQUFTeEQsR0FDeEIsSUFBSStPLEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGtCQUNoQnZHLFdBRUlWLE1BQU8sTUFBT25RLElBQUssTUFDbkIwUSxVQUFXLEtBRVhQLE1BQU8sTUFBT25RLElBQUssTUFDbkIwUSxVQUFXLEtBRVhQLE1BQU8sSUFBS25RLElBQUssTUFFakJtUSxNQUFPLElBQUtuUSxJQUFLLE9BSXZCLE9BQ0V1TixTQUFVLFFBQ1YrQixrQkFBa0IsRUFDbEJrQixRQUFTLEtBQ1RHLFVBQ0V4RCxFQUFLcUssUUFBUSxJQUFLLEtBQ2xCckssRUFBS3lLLG1CQUVIclYsVUFBVyxVQUNYNE4sTUFBTyxVQUFXblEsSUFBSyxRQUd2Qm1RLE1BQU8sMEJBQTJCblEsSUFBSyxJQUN2Q3FULGFBQWEsRUFDYjFDLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLG9CQUdQQSxNQUFPLElBQUtFLGdCQUFnQixFQUM1QkssVUFBVyxFQUNYQyxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxpQ0FHUDVOLFVBQVcsV0FDWHNPLFdBQ0dWLE1BQU8sc0JBQ1BBLE1BQU8sZ0JBR1orTCxHQUVFM1osVUFBVyxTQUNYNE4sTUFBTywwQkFFVGhELEVBQUswSyxzQkN6REYsU0FBUzFLLEdBb0R4QixPQUNFbUMsa0JBQWtCLEVBQ2xCSSxVQS9DQTZMLFFBQVMsaUJBQ1RwQixRQUFTLG82REF1QlRlLFNBQVUsbytEQXdCVjFLLFFBQVMsT0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBS2tLLGtCQUFtQjlVLFVBQVcsU0FBVW1PLFVBQVcsSUFDckV2RCxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0IvVSxVQUFXLFNBQVVtTyxVQUFXLEtBRXBFbk8sVUFBVyxXQUNYb04sY0FBZSw4QkFDZmEsUUFBUyxXQUNURyxVQUFXeEQsRUFBS2dMLHVCQTdEcEI1VixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLFNBOERqQm1OLEVBQUtxSyxRQUFRLElBQUssS0FBTTlHLFVBQVcsSUFDbkN2RCxFQUFLcUssUUFBUSxZQUFhLFdBQVk5RyxVQUFXLE1BRS9Dbk8sVUFBVyxTQUNYNE4sTUFBTyxrRkFDUE8sVUFBVyxTQ3RFRixTQUFTdkQsR0FDeEIsSUFFSTRQLEVBQ0YsNlZBcUJFMkYsR0FDRm5nQixVQUFXLFNBQ1g0TixNQWhCbUIsdU5BaUJuQk8sVUFBVyxHQUdiLE9BQ0VuRCxTQUFVLE9BQ1ZtQyxTQUFVcU4sRUFDVnZNLFFBQVMsUUFDVEcsVUFDRXhELEVBQUtxSyxRQUNILFVBQ0EsUUFFRTlHLFVBQVksRUFDWkMsV0FHSVIsTUFBTyxPQUFRTyxVQUFXLElBRzFCbk8sVUFBWSxTQUNaNE4sTUFBUSxpQkFLaEJoRCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssbUJBRUgvVSxVQUFXLFFBQ1hvTixjQUFlLGtCQUFtQjNQLElBQUssUUFBUzJULFlBQVksRUFDNURqRSxTQUFVLGtCQUNWYyxRQUFTLFdBQ1RHLFdBQ0doQixjQUFlLHNCQUNoQnhDLEVBQUtnTCx5QkFNUHhJLGNBQWUsd0JBQ2ZlLFVBQVcsSUFHWG5PLFVBQVcsV0FDWDROLE1BQU8scUhBQW9DaEQsRUFBSzRKLG9CQUFzQixVQUFXMUQsYUFBYSxFQUFNclQsSUFBSyxRQUN6RzJULFlBQVksRUFDWmpFLFNBQVVxTixFQUNWcE0sV0FFSVIsTUFBT2hELEVBQUs0SixvQkFBc0IsVUFBVzFELGFBQWEsRUFDMUQzQyxVQUFXLEVBQ1hDLFVBQVd4RCxFQUFLZ0wseUJBR2hCNVYsVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQjBQLFNBQVVxTixFQUNWck0sVUFBVyxFQUNYQyxVQUNFeEQsRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMbkssRUFBSzJLLGNBQ0wzSyxFQUFLd0ssdUJBR1R4SyxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssdUJBR1QrSyxHQUVFbmdCLFVBQVcsT0FBUTROLE1BQU8sb0JDdEdqQixTQUFTaEQsR0FDeEIsSUFBSTJKLEVBQVcsMkJBQ1hpRyxHQUNGNUMsUUFDRSxtT0FNRm9CLFFBQ0UseUNBQ0ZMLFNBQ0UsMmdCQVVBYyxHQUNGelosVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxvQkFDUEEsTUFBTyxxQkFDUEEsTUFBT2hELEVBQUs4SixjQUVoQnZHLFVBQVcsR0FFVCtNLEdBQ0ZsYixVQUFXLFFBQ1g0TixNQUFPLFNBQVVuUSxJQUFLLE1BQ3RCMFAsU0FBVXFOLEVBQ1ZwTSxhQUVFZ1MsR0FDRnBnQixVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFDRXhELEVBQUtpSyxpQkFDTHFHLElBR0pBLEVBQU05TSxVQUNKeEQsRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMcUwsRUFDQTNHLEVBQ0E3TyxFQUFLOEssYUFFUCxJQUFJMkssRUFBa0JuRixFQUFNOU0sU0FBU3JQLFFBQ25DNkwsRUFBS3dLLHFCQUNMeEssRUFBS3VLLHNCQUdQLE9BQ0VuSyxTQUFVLEtBQU0sT0FDaEJtQyxTQUFVcU4sRUFDVnBNLFdBRUlwTyxVQUFXLE9BQ1htTyxVQUFXLEdBQ1hQLE1BQU8saUNBR1A1TixVQUFXLE9BQ1g0TixNQUFPLE1BQU9uUSxJQUFLLEtBRXJCbU4sRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMcUwsRUFDQXhWLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHFFLEdBRUU3TCxNQUFPLFVBQVdPLFVBQVcsRUFDN0JDLFdBRUlSLE1BQU8yRyxFQUFXLFFBQVN6RCxhQUFhLEVBQ3hDM0MsVUFBVyxFQUNYQyxXQUFZcE8sVUFBVyxPQUFRNE4sTUFBTzJHLEVBQVVwRyxVQUFXLFFBSy9EUCxNQUFPLElBQU1oRCxFQUFLZ0ssZUFBaUIsa0NBQ25DekgsU0FBVSxvQkFDVmlCLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLOEssYUFFSDFWLFVBQVcsV0FDWDROLE1BQU8sY0FBZ0IyRyxFQUFXLFVBQVd6RCxhQUFhLEVBQzFEclQsSUFBSyxTQUNMMlEsV0FFSXBPLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8yRyxJQUdQM0csTUFBTyxZQUdQQSxNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCb1QsY0FBYyxFQUFNTyxZQUFZLEVBQ2hDakUsU0FBVXFOLEVBQ1ZwTSxTQUFVaVMsUUFPbEJ6UyxNQUFPLElBQUtuUSxJQUFLLGlCQUNqQmtTLFlBQWEsTUFDYnZCLFdBQ0dSLE1BQU8sYUFBY2dELE1BQU0sSUFFMUJoRCxNQUFPLE9BQVFuUSxJQUFLLGlCQUFrQm1ULE1BQU0sRUFDNUN4QyxXQUNHUixNQUFPLGFBQWNnRCxNQUFNLEdBQzVCLFlBTVZ6QyxVQUFXLElBR1huTyxVQUFXLFdBQ1hvTixjQUFlLFdBQVkzUCxJQUFLLEtBQU0yVCxZQUFZLEVBQ2xEaEQsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPMkcsS0FFcEN2VSxVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCb1QsY0FBYyxFQUNkTyxZQUFZLEVBQ1poRCxTQUFVaVMsSUFHZHBTLFFBQVMsU0FHVEwsTUFBTyxVQUVUaEQsRUFBS2lMLGNBRUg3VixVQUFXLFFBQ1hvTixjQUFlLFFBQVMzUCxJQUFLLFFBQVMyVCxZQUFZLEVBQ2xEbkQsUUFBUyxXQUNURyxXQUNHaEIsY0FBZSxXQUNoQnhDLEVBQUtnTCx5QkFJUHhJLGNBQWUsY0FBZTNQLElBQUssS0FBTTJULFlBQVksSUFHekRuRCxRQUFTLGNDdktJLFNBQVVyRCxHQUN6QixJQUtJMFYsR0FDRnRnQixVQUFXLFNBQ1g0TixNQUFPLEtBQ1BuUSxJQUFLLEtBQ0wyUSxXQVJBUixNQUFPLFlBQWFrRCxhQUFhLEVBQ2pDM0MsVUFBVyxFQUNYQyxXQUFZcE8sVUFBVyxPQUFRNE4sTUFBTyxhQU90Q08sVUFBWSxHQWVkLE9BQ0VuRCxTQUFVLGVBQ1YyQyxRQUFTLFVBQ1RSLFVBQ0V5SyxRQUFTLHNWQUlUb0IsUUFBUyxjQUVYNUssVUFDRXhELEVBQUt5SyxrQkFDTHpLLEVBQUttSyxtQkFmUC9VLFVBQVcsU0FDWDROLE1BQU8saUJBVlA1TixVQUFXLFdBQ1g0TixNQUFPLFlBQ1BPLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sMkJBc0JMMFMsUUMxQ1csU0FBUzFWLEdBQ3hCLElBQUkyVixHQUFZdkgsUUFBUyxtQkFDckJ3SCxHQUNGNVYsRUFBS21LLGtCQUNMbkssRUFBSzJLLGVBRUhrTCxHQUNGaGpCLElBQUssSUFBS3FRLGdCQUFnQixFQUFNc0QsWUFBWSxFQUM1Q2hELFNBQVVvUyxFQUNWclQsU0FBVW9ULEdBRVJ0RixHQUNGck4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFBV3hELEVBQUtpSyxrQkFDaEI1RyxRQUFTLE9BRVhyRCxFQUFLb0IsUUFBUXlVLEdBQWtCN1MsTUFBTyxPQUV4Q0ssUUFBUyxPQUVQeVMsR0FDRjlTLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXeEQsRUFBS29CLFFBQVF5VSxJQUN4QnhTLFFBQVMsT0FHWCxPQURBdVMsRUFBTS9YLE9BQU8rWCxFQUFNam9CLE9BQVEsRUFBRzBpQixFQUFReUYsSUFFcEN0UyxTQUFVb1MsRUFDVnJULFNBQVVvVCxFQUNWdFMsUUFBUyxXQ2pDSSxTQUFTckQsR0FNeEIsSUFBSTRQLEdBUUY1QyxRQUNFLHNQQWlCRm9CLFFBQ0UsdVZBZUZMLFNBQ0UseWhGQTJCQWdJLEVBQW1CLHVEQUduQkMsR0FDRmpULFFBQVNnVCxFQUFrQnhULFNBQVVxTixFQUFVdk0sUUFBUyxPQXNCdEQ0UyxHQUNGN2dCLFVBQVcsUUFDWDROLE1BQU8sT0FBUW5RLElBQUssS0FDcEIwUCxTQUFVcU4sR0FHUnNHLEdBQ0Y5Z0IsVUFBVyxXQUNYNE4sTUFBTyxNQUFRK1MsR0FJYmhILEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGlCQUFrQmdNLEVBQWVDLEdBQ2pEeFMsV0FDSVYsTUFBTyxTQUFVblEsSUFBSyxTQUFVMFEsVUFBVyxLQUMzQ1AsTUFBTyxPQUFRblEsSUFBSyxVQUl0QnNqQixHQUNGL2dCLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssaUJBQWtCZ00sRUFBZUMsR0FDakRsVCxNQUFPLElBQUtuUSxJQUFLLEtBR2Z1akIsR0FDRmhoQixVQUFXLE9BQ1g0TixNQUFPLElBQU0rUyxHQTRCZixPQWpCQUMsRUFBUXhTLFdBekROcE8sVUFBVyxTQVFYNE4sTUFBTyxxSUFDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyw4QkE4Q1ArTCxFQUNBb0gsRUFDQUMsR0FaQWhoQixVQUFXLFVBQ1hzTyxXQUNJVixNQUFPLEtBQU1uUSxJQUFLLEtBQU0wUSxVQUFXLEtBQ25DUCxNQUFPLElBQUtuUSxJQUFLLE9BV3JCbU4sRUFBS3lLLG1CQUVIclYsVUFBVyxVQUNYNE4sTUFDRSxnRUFFSEEsTUFBTyxPQUVWaVQsRUFBY3pTLFNBQVd3UyxFQUFReFMsU0FFMUJ3UyxNQy9KUSxTQUFTaFcsR0FDeEIsT0FDRXdELFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLFVBQ1BPLFVBQVcsR0FDWE8sUUFHRWpSLElBQUssY0FDTGtTLFlBQWEsU0FPakIzRSxTQUFVLG9CQ2xCQyxTQUFTSixHQUN4QixJQUFJNFAsR0FDRjVDLFFBQ0UsNFdBTUZlLFNBQ0Usa0VBQ0ZLLFFBQ0UsbUJBY0FpSSxHQUNGamhCLFVBQVcsU0FBVTROLE1BQU9oRCxFQUFLNEosb0JBQXNCLEtBSXJEMEcsR0FDRmxiLFVBQVcsUUFDWDROLE1BQU8sT0FBUW5RLElBQUssSUFBSzJRLFVBQVd4RCxFQUFLa0ssaUJBQWtCbEssRUFBSzJLLGdCQUU5RG1GLEdBQ0YxYSxVQUFXLFdBQVk0TixNQUFPLE1BQVFoRCxFQUFLNEoscUJBRXpDbUYsR0FDRjNaLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXc00sRUFBVVEsS0FNckJ0TixNQUFPLElBQU1uUSxJQUFLLElBQ2xCd1EsUUFBUyxLQUNURyxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sSUFBS25RLElBQUssSUFDakJ3USxRQUFTLEtBQ1RHLFVBQVd4RCxFQUFLaUssaUJBQWtCNkYsRUFBVVEsTUFLOUNnRyxHQUNGbGhCLFVBQVcsT0FBUTROLE1BQU8sZ0ZBQWtGaEQsRUFBSzRKLG9CQUFzQixNQUVySTJNLEdBQ0ZuaEIsVUFBVyxPQUFRNE4sTUFBTyxJQUFNaEQsRUFBSzRKLG9CQUNyQ3BHLFdBRUlSLE1BQU8sS0FBTW5RLElBQUssS0FDbEIyUSxVQUNFeEQsRUFBS29CLFFBQVEyTixHQUFTM1osVUFBVyxvQkFNekMsT0FDRW1OLFNBQVVxTixFQUNWcE0sVUFDRXhELEVBQUtxSyxRQUNILFVBQ0EsUUFFRTlHLFVBQVksRUFDWkMsV0FDRXBPLFVBQVksU0FDWjROLE1BQVEsaUJBSWRoRCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssc0JBNUVQcFYsVUFBVyxVQUNYNE4sTUFBTyxtQ0FDUGMsUUFDRU4sV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sV0F3RVhxVCxFQUNBQyxFQUNBQyxHQUVFbmhCLFVBQVcsV0FDWG9OLGNBQWUsTUFBTzNQLElBQUssUUFDM0JxVCxhQUFhLEVBQ2JNLFlBQVksRUFDWmpFLFNBQVVxTixFQUNWdk0sUUFBUyx5Q0FDVEUsVUFBVyxFQUNYQyxXQUVJUixNQUFPaEQsRUFBSzRKLG9CQUFzQixVQUFXMUQsYUFBYSxFQUMxRDNDLFVBQVcsRUFDWEMsVUFBV3hELEVBQUtnTCx5QkFHaEI1VixVQUFXLE9BQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQUswUCxTQUFVLFVBQ2hDZ0IsVUFBVyxJQUdYbk8sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQndULFlBQVksRUFDWjlELFNBQVVxTixFQUNWck0sVUFBVyxFQUNYQyxXQUVJUixNQUFPLElBQUtuUSxJQUFLLFNBQVVxUSxnQkFBZ0IsRUFDM0NNLFdBQ0dwTyxVQUFXLE9BQVE0TixNQUFPaEQsRUFBSzRKLHFCQUNoQzVKLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxzQkFFUGpILFVBQVcsR0FFYnZELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTDhMLEVBQ0FDLEVBQ0F4SCxFQUNBL08sRUFBSzJLLGdCQUdUM0ssRUFBS3dLLHdCQUlQcFYsVUFBVyxRQUNYb04sY0FBZSx3QkFBeUIzUCxJQUFLLFdBQzdDMlQsWUFBWSxFQUNabkQsUUFBUyxxQkFDVEcsV0FDR2hCLGNBQWUsaURBQ2hCeEMsRUFBS2dMLHVCQUVINVYsVUFBVyxPQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUFLb1QsY0FBYyxFQUFNTyxZQUFZLEVBQ3REakQsVUFBVyxJQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxVQUFXblEsSUFBSyxXQUFZb1QsY0FBYyxFQUFNTSxXQUFXLEdBRXBFK1AsRUFDQUMsSUFHSnhILEdBRUUzWixVQUFXLE9BQ1g0TixNQUFPLGtCQUFtQm5RLElBQUssSUFDL0J3USxRQUFTLE1BRVhyRCxFQUFLMkssb0JDektNLFNBQVMzSyxHQUN4QixJQUVJd1csRUFBaUIsV0FDakJDLEdBQ0ZySSxRQUNFLHVHQUVGTCxTQUNFLHlNQUdGZixRQUNFLDJoQ0FrQkEwSixFQUFlMVcsRUFBS3FLLFFBQ3RCLFVBQ0EsVUFFRTlHLFVBQVcsSUFHWG9ULEdBQ0Z2aEIsVUFBVyxPQUNYNE4sTUFBTyxrQkFDUGMsUUFDRWpSLElBQUssbUJBQ0wwVCxXQUFXLEVBQ1gvQyxVQUFXa1QsS0FHWEUsR0FDRnhoQixVQUFXLE9BQ1g0TixNQUFPLHdDQUVMNlQsR0FDRnpoQixVQUFXLFNBQ1g0TixNQUFPLHNCQUVMOFQsR0FDRjlXLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUtvQixRQUFRcEIsRUFBSzJLLGVBQWdCM0gsTUFBT2hELEVBQUs4SixZQUFjLHlCQUM1RDlKLEVBQUtvQixRQUFRcEIsRUFBS2tLLGtCQUFtQjdHLFFBQVMsT0FDOUNyRCxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0I5RyxRQUFTLFFBRTdDak8sVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxNQUdqQjZRLFdBRUlWLE1BQU8seUJBR1BBLE1BQU8sSUFBS25RLElBQUssT0FDakJ3USxRQUFTLFVBS2JqTyxVQUFXLE9BQ1g0TixNQUFPLFNBQVVuUSxJQTdFQSxtQkE4RWpCd1EsUUFBUyxRQUdUak8sVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxnQ0FDUE8sVUFBVyxJQUdYUCxNQUFPLGtCQUtYQSxNQUFPLGFBQ1BPLFVBQVcsRUFDWEMsVUFBV3FULEtBR1h6aEIsVUFBVyxRQUNYb04sY0FBZSxTQUNmK0QsV0FBVyxFQUFNMVQsSUFBSyxTQUN0QjJRLFVBQ0V4RCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTytULDhDQUk1QyxPQUNFM1csU0FBVSxLQUFNLGVBQ2hCK0Isa0JBQWtCLEVBQ2xCWSxRQUFTZ1UsMkJBQ1R4VSxTQUFVa1UsRUFDVmpULFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPd1QsRUFDUGpULFVBQVcsRUFDWE8sUUFDRWpSLElBQUssNkJBQ0wwVCxXQUFXLEVBQ1hoRCxVQUFXLEVBQ1hDLFVBQVdrVCxLQUdmQyxFQUNBQyxHQUVFeGhCLFVBQVcsT0FDWDROLE1BQU8sd0JBQ1BjLFFBQ0VqUixJQUFLLDRCQUNMa1EsUUFBU2dVLDJCQUNUeFUsU0FBVWtVLEVBQ1ZqVCxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBT3dULEVBQ1BqVCxVQUFXLEVBQ1hPLFFBQ0VqUixJQUFLLHlDQUNMMFQsV0FBVyxFQUNYL0MsVUFBV2tULEtBR2ZDLEVBQ0FDLEdBQ0F6aUIsT0FBTzJpQixNQUlYMWhCLFVBQVcsT0FDWDROLE1BQU8sTUFDUE8sVUFBVyxJQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxNQUFPblEsSUFBSSxVQUNsQjBRLFVBQVcsS0FFYnBQLE9BQU8yaUIsUUMvSkksU0FBUzlXLEdBQ3hCLE9BQ0V3RCxXQUVJcE8sVUFBVyxZQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxLQUFNMlQsWUFBWSxFQUNyQzFDLFFBQVNqUixJQUFLLElBQUswUSxVQUFXLEdBQzlCQSxVQUFXLEtBR1huTyxVQUFXLFlBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLEtBQU0yVCxZQUFZLEVBQ3RDMUMsUUFBU2pSLElBQUssSUFBSzBRLFVBQVcsS0FHOUJuTyxVQUFXLFVBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBRXBCbU4sRUFBS3lLLHdCQ2xCTSxTQUFVekssR0FDekIsT0FDRXdELFdBRUlwTyxVQUFXLFdBQ1g0TixNQUFPLHFCQUNQblEsSUFBSSxLQUNKcVQsYUFBYSxFQUNiTSxZQUFZLEVBQ1poRCxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxPQUdQNU4sVUFBVyxRQUNYNE4sTUFBTywyQkFHUDVOLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssTUFDbkJ3VCxZQUFZLEVBQ1o3QyxXQUVJcE8sVUFBVyxTQUNYNE4sTUFBTyxJQUNQblEsSUFBSyxNQUdMdUMsVUFBVyxXQUNYNE4sTUFBTyxvQ0M5Qk4sU0FBU2hELEdBQ3hCLElBQ0lnWCxFQUFrQix1QkFJbEJDLEtBQVlDLEtBRVpDLEVBQWMsU0FBUzFULEdBQUssT0FFOUJyTyxVQUFXLFNBQVU0TixNQUFPLEtBQU9TLEVBQUksTUFBUUEsSUFHN0MyVCxFQUFhLFNBQVN4aUIsRUFBTW9PLEVBQU9PLEdBQWEsT0FDbERuTyxVQUFXUixFQUFNb08sTUFBT0EsRUFBT08sVUFBV0EsSUFHeEM4VCxHQUVGclUsTUFBTyxNQUFPblEsSUFBSyxNQUFPMlEsU0FBVTBULEVBQU8zVCxVQUFXLEdBSXhEMlQsRUFBTXZpQixLQUNKcUwsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMMk0sRUFBWSxLQUNaQSxFQUFZLEtBQ1puWCxFQUFLNkssaUJBRUg3SCxNQUFPLG9CQUNQYyxRQUFTMU8sVUFBVyxTQUFVdkMsSUFBSyxXQUFZMlQsWUFBWSxJQUU3RDRRLEVBQVcsU0FBVSxvQkFDckJDLEVBQ0FELEVBQVcsV0FBWSxhQUFrQixJQUN6Q0EsRUFBVyxXQUFZLGNBQ3ZCQSxFQUFXLFdBQVksZUFFckJoaUIsVUFBVyxZQUFhNE4sTUFBTzJHLGVBQW9COVcsSUFBSyxJQUFLcVQsYUFBYSxFQUFNTSxZQUFZLElBRzVGcFIsVUFBVyxPQUNYNE4sTUFBTyxlQUlYLElBQUlzVSxFQUFzQkosRUFBTS9pQixRQUM5QjZPLE1BQU8sSUFBS25RLElBQUssSUFBSzJRLFNBQVV5VCxJQUc5Qk0sR0FDRi9VLGNBQWUsT0FBUVUsZ0JBQWdCLEVBQ3ZDTSxXQUFZaEIsY0FBZSxZQUFZck8sT0FBTytpQixJQUs1Q00sR0FDRnhVLE1BQU9nVSxFQUFrQixRQUFTOVEsYUFBYSxFQUFNclQsSUFBSyxPQUMxRDBRLFVBQVcsRUFDWEMsV0FFSXBPLFVBQVcsWUFDWDROLE1BQU9nVSxFQUFpQm5rQixJQUFLLElBQUsyVCxZQUFZLEVBQzlDMUMsUUFDRVosZ0JBQWdCLEVBQU1HLFFBQVMsUUFDL0JFLFVBQVcsRUFDWEMsU0FBVTBULE1BTWRPLEdBQ0ZyaUIsVUFBVyxVQUNYNE4sTUFBTywyR0FDUGMsUUFBU2pSLElBQUssUUFBUzBULFdBQVcsRUFBTS9DLFNBQVUwVCxFQUFPM1QsVUFBVyxJQUlsRW1VLEdBQ0Z0aUIsVUFBVyxXQUNYc08sV0FLR1YsTUFBTyxnQkFBMEJPLFVBQVcsS0FDNUNQLE1BQU8sYUFFVmMsUUFBU2pSLElBQUssT0FBUTBULFdBQVcsRUFBTS9DLFNBQVU4VCxJQUcvQ0ssR0FJRmpVLFdBQ0VWLE1BQU8sZUFBZ0JuUSxJQUFLLFVBRTVCbVEsTUFBT2dVLEVBQWlCbmtCLElBQUssTUFFL0JxVCxhQUFhLEVBQ2JLLFdBQWEsRUFDYmxELFFBQVMsV0FDVEUsVUFBVyxFQUNYQyxVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMK00sRUFDQUgsRUFBVyxVQUFZLFVBQ3ZCQSxFQUFXLFdBQVksY0FDdkJBLEVBQVcsZUFBaUJKLEVBQWtCLEtBQU0sR0FDcERJLEVBQVcsY0FBZSxJQUFNSixHQUNoQ0ksRUFBVyxpQkFBa0IsTUFBUUosRUFBaUIsR0FDdERJLEVBQVcsZUFBaUIsSUFBSyxJQUNoQ2hpQixVQUFXLGdCQUFpQjROLE1BQU8sTUFBT25RLElBQUssUUFDL0N1QyxVQUFXLGtCQUFtQjROLE1BQU8sbUNBQ3JDQSxNQUFPLE1BQU9uUSxJQUFLLE1BQU8yUSxTQUFVOFQsSUFDcEN0VSxNQUFPLGdCQWFaLE9BVEFpVSxFQUFNdGlCLEtBQ0pxTCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0xpTixFQUNBQyxFQUNBRixFQUNBRyxJQUlBeFYsa0JBQWtCLEVBQ2xCa0IsUUFBUyxjQUNURyxTQUFVeVQsT0N4SUcsU0FBU2pYLEdBQ3hCLElBQUk0WCxFQUFnQixnRkFFaEJDLEVBQXdCLHlFQUt4Qm5LLEdBQ0Z0WSxVQUFXLFVBQ1g0TixNQUFPLG9CQUVMNkwsR0FDRnpaLFVBQVcsU0FDWHNPLFdBQ0dWLE1BQU82VSxFQUF1QnRVLFVBQVcsSUFDekNQLE1BQU8sMkJBQ1BBLE1BQU8sMkJBQ1BBLE1BQU8sdUNBQ1BBLE1BQU8sWUFBYzZVLEVBQXdCLEtBQU9BLEVBQXVCaGxCLElBQUssU0FHakZrYyxFQUFTL08sRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9COUcsUUFBUyxPQUN4RGdILEVBQVVySyxFQUFLcUssUUFDakIsSUFBSyxLQUVIOUcsVUFBVyxJQUdYdU0sR0FDRjlNLE1BQU8sTUFBT25RLElBQUssT0FFakIyYSxHQUNGcFksVUFBVyxTQUNYNE4sTUFBTyxPQUFTNFUsR0FFZEUsR0FDRjlVLE1BQU80VSxFQUNQclUsVUFBVyxHQUVUd1UsR0FDRi9VLE1BdkNXLGVBNkNUZ1YsR0FDRnhVLFVBQVdxTCxFQUFRRSxFQUFRZSxFQUFVdEMsR0FKckN4SyxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFBVyxPQUFRa0ssRUFBU3FCLEVBQVFGLEVBQVFpSixJQUdlQSxHQUMzRHBVLFdBRUlWLE1BQU8sVUFBWW5RLElBQUssUUFHeEJtUSxNQUFPLFlBQWFuUSxJQUFLLE1BQ3pCMFAsVUFBVzNOLEtBQU0sV0FHakJvTyxNQUFPLGtCQUlUaVYsR0FDRnZVLFdBQ0dWLE1BQU8sSUFBTzRVLElBQ2Q1VSxNQUFPLEtBQVE0VSxFQUFnQixNQUFRQSxFQUFnQixRQUd4RDlHLEdBQ0Y5TixNQUFPLFVBQVduUSxJQUFLLE9BRXJCa2UsR0FDRjdOLGdCQUFnQixFQUNoQkssVUFBVyxHQWNiLE9BWkF1TixFQUFLdE4sV0FFRHBPLFVBQVcsT0FDWHNPLFdBQ0dWLE1BQU80VSxJQUNQNVUsTUE5RU0saUJBaUZYK04sR0FFRkEsRUFBS3ZOLFVBQVl3VSxFQUFRQyxFQUFhbkgsRUFBTXBELEVBQVNtQixFQUFRRSxFQUFRMUUsRUFBU3lGLEVBQVV0QyxFQUFTdUssRUFBS0QsSUFHcEd6VSxRQUFTLEtBQ1RHLFVBQ0VxTCxHQXJGRnpaLFVBQVcsT0FDWDROLE1BQU8sTUFBT25RLElBQUssS0FzRmpCNmEsRUFDQXFCLEVBQ0ExRSxFQUNBMk4sRUFDQUMsRUFDQW5ILEVBQ0FnSCxRQ2xHVyxTQUFTOVgsR0FDeEIsSUFBSThQLEdBQ0Y5TSxNQUFPLGdEQUNQTyxVQUFXLEdBRVQyTSxHQUNGbFEsRUFBS3dLLHFCQUNMeEssRUFBS3lLLGtCQUNMekssRUFBS3FLLFFBQVEsS0FBTSxLQUNuQnJLLEVBQUtxSyxRQUFRLFNBQVUsTUFFckI2TixFQUFTbFksRUFBS29CLFFBQVFwQixFQUFLK0ssWUFDN0JySCxXQUNHVixNQUFPLG1DQUNQQSxNQUFPLHVCQUdSbVYsRUFBU25ZLEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLDZCQUNuRCxPQUNFYixrQkFBa0IsRUFDbEJJLFVBQ0V5SyxRQUNFLDQvQkFZRm9CLFFBQ0UsZ2ZBTUZMLFNBQ0UsMndLQXFESnZLLFVBQ0VzTSxHQUVFMWEsVUFBVyxVQUNYNE4sTUFBTyxtQkFHUDVOLFVBQVcsV0FDWG9OLGNBQWUsV0FBWTNQLElBQUssSUFDaEMyUSxVQUNFc00sRUFDQXFJLEVBQ0FuWSxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLNEssbUJBQ0w1SyxFQUFLMkssY0FDTHVOLEtBSUY5aUIsVUFBVyxXQUNYNE4sTUFBTyxhQUFjblEsSUFBSyxJQUMxQjBQLFNBQVUsTUFDVmlCLFVBQ0UyVSxFQUNBRCxHQUVGM1UsVUFBVyxJQUdYZixjQUFlLGFBQWMzUCxJQUFLLElBQ2xDMlEsVUFDRXNNLEVBQ0FxSSxFQUNBblksRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMbkssRUFBSzRLLG1CQUNMNUssRUFBSzJLLGNBQ0x1TixLQUlGOWlCLFVBQVcsT0FDWHNPLFdBRUlWLE1BQU8sd0JBQ1BPLFVBQVcsS0FFWFAsTUFBTyxTQUNQQSxNQUFPLFVBR2JoRCxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLNEssbUJBQ0w1SyxFQUFLMkssY0FDTHVOLEdBQ0EvakIsT0FBTytiLEdBQ1Q3TSxRQUFTLHNCQ3pKSSxTQUFTckQsR0FDeEIsSUFBSTRQLEdBQ0Y1QyxRQUVFLDhXQU1Gb0IsUUFFRSx1REFHRkwsU0FDRSwyREFFQW9ELEVBQWMsOENBQ2RDLEVBQVFwUixFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBT21PLElBQzlDYixHQUNGbGIsVUFBVyxRQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxJQUNuQjBQLFNBQVVxTixHQUVSd0ksR0FDRmhqQixVQUFXLFFBQ1g0TixNQUFPLGNBQWVuUSxJQUFLLHFDQUMzQjBQLFNBQVVxTixHQUVSVyxHQUNGdlEsRUFBSzRLLG9CQUVIeFYsVUFBVyxTQUNYNE4sTUFBTywwR0FDUE8sVUFBVyxFQUNYTyxRQUFTalIsSUFBSyxXQUFZMFEsVUFBVyxLQUdyQ25PLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEVBQU84SCxLQUd6Q3BWLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEVBQU84SCxLQUd6Q3BWLE1BQU8sS0FBTW5RLElBQUssU0FDbEIyVCxZQUFZLE1BS2hCcFIsVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxLQUFNblEsSUFBSyxXQUNsQjJRLFVBQVc4TSxFQUFPdFEsRUFBS3lLLHFCQUt2QnpILE1BQU8sMkNBS1hBLE1BQU8sSUFBTW1PLElBR2JuTyxNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCb1QsY0FBYyxFQUFNTyxZQUFZLEVBQ2hDekIsWUFBYSxlQUdqQnVMLEVBQU05TSxTQUFXK00sRUFFakIsSUFBSXZCLEdBQ0Y1WixVQUFXLFNBQ1g0TixNQUFPLE1BQU9rRCxhQUFhLEVBRzNCMUMsV0FFSVIsTUFBTyxLQUFNblEsSUFBSyxLQUNsQjBQLFNBQVVxTixFQUNWcE0sVUFBVyxRQUFRclAsT0FBT29jLE1BS2hDLE9BQ0VuUSxTQUFVLE1BQ1ZtQyxTQUFVcU4sRUFDVnZNLFFBQVMsT0FDVEcsU0FBVStNLEVBQVlwYyxRQUNwQjZMLEVBQUtxSyxRQUFRLFNBQVUsVUFDdkJySyxFQUFLeUssbUJBRUhyVixVQUFXLFdBQ1hvTyxVQUFXNE4sRUFBT3BDLEdBQ2xCOUksYUFBYSxFQUNieEMsV0FFSVYsTUFBTyxJQUFNbU8sRUFBYywrQ0FBZ0R0ZSxJQUFLLGFBR2hGbVEsTUFBTyxJQUFNbU8sRUFBYyx1REFBd0R0ZSxJQUFLLG1CQUd4Rm1RLE1BQU8sSUFBTW1PLEVBQWMsdURBQXdEdGUsSUFBSyx1QkFLNUZ1QyxVQUFXLFFBQ1hvTixjQUFlLFFBQ2YzUCxJQUFLLElBQ0x3USxRQUFTLFlBQ1RHLFdBRUloQixjQUFlLFVBQ2ZVLGdCQUFnQixFQUNoQkcsUUFBUyxZQUNURyxVQUFXNE4sSUFFYkEsS0FJRnBPLE1BQU9tTyxFQUFjLElBQUt0ZSxJQUFLLElBQy9CcVQsYUFBYSxFQUFNSyxXQUFXLEVBQzlCaEQsVUFBVyxVQy9JRixTQUFTdkQsR0FDeEIsSUFBSS9NLEVBQWEsNEJBQ2pCLE9BRUVzUCxTQUNFLHlzREFxQ0ZpQixXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxTQUVUaEQsRUFBS3FLLFFBQ0gsSUFBSyxPQUFROUcsVUFBVyxJQUcxQnZELEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sSUFBS25RLElBQUssYUFFckIwUSxVQUFXLElBR1huTyxVQUFXLFFBQ1hzTyxXQUNJVixNQUFPLElBQU0vUCxJQUNiK1AsTUFBTyxVQUNQQSxNQUFPLElBQU0vUCxJQUNiK1AsTUFBTyxRQUFVL1AsTUFJckJtQyxVQUFXLFNBQ1hzTyxXQUNJVixNQUFPLElBQU0vUCxJQUNiK1AsTUFBTyxVQUNQQSxNQUFPLFlBSVg1TixVQUFXLFNBQ1hzTyxXQUNNVixNQUFPLHNCQUNQQSxNQUFPLHFEQUViTyxVQUFXLFNDbkZGLFNBQVN2RCxHQUV0QixJQUtJcVksR0FDQWpqQixVQUFXLFNBQ1g0TixNQUFPLElBQ1BuUSxJQUFLLElBQ0wyUSxXQVJBcE8sVUFBVyxRQUNYNE4sTUFBTyxlQVlQc1YsR0FDQWxqQixVQUFXLFNBQ1g0TixNQUFPaEQsRUFBSzhKLGFBZ0NoQixPQUNJekcsUUFBUyxJQUNURyxVQUNJNlUsR0FFSWpqQixVQUFXLFVBQ1hzTyxVQUNJMUQsRUFBS3FLLFFBQVEsS0FBTSxLQUNuQnJLLEVBQUtxSyxRQUFRLE9BQVEsVUFHN0JpTyxHQUVJbGpCLFVBQVcsVUFDWHNPLFdBRVFWLE1BQU8sNEJBR1BBLE1BQU8sMFhBdkJ2QjVOLFVBQVcsV0FDWDROLE1BQU8sdWhJQXpCUDVOLFVBQVcsVUFDWHNPLFdBRVFWLE1BQU8sOERBR1BBLE1BQU8sZ3NOQUdQQSxNQUFPLHlCQUdQQSxNQUFPLDRCQUdQQSxNQUFPLGlMQUdQQSxNQUFPLDhEQW9DUDVOLFVBQVcsT0FDWDROLE1BQU8sNEVDN0VOLFNBQVNoRCxHQUN4QixJQUVJdVksR0FDRnZWLE1BSHlCLFdBR0luUSxJQUZKLFdBR3pCMlEsVUFBVyxTQUVUc0ssR0FDRjlOLEVBQUtxSyxRQUFRLGlCQUFzQyxLQUNuRHJLLEVBQUtxSyxRQUNILGFBUnVCLFlBV3JCN0csVUFBVytVLEdBQ1hoVixVQUFXLE1BSWpCLE9BQ0VSLFFBQVMvQyxFQUFLNEosb0JBQ2RySCxVQUNFNkwsUUFBUyxpQkFDVHBCLFFBQVMsMEZBQ1RlLFNBRUUscWxDQWVKdkssU0FBVXNLLEVBQVMzWixTQUVmaUIsVUFBVyxXQUNYb04sY0FBZSxXQUFZM1AsSUFBSyxNQUNoQzJRLFVBQ0V4RCxFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBTyx1REFFcEM1TixVQUFXLFNBQ1g0TixNQUFPLE1BQU9FLGdCQUFnQixFQUM5Qk0sU0FBVXNLLElBRVozWixPQUFPMlosSUFFWDlOLEVBQUsySyxjQUNMM0ssRUFBS2tLLGlCQUNMbEssRUFBS21LLG1CQUVIL1UsVUFBVyxTQUNYNE4sTUF6RHFCLFdBeURRblEsSUF4RFIsV0F5RHJCMlEsVUFBVytVLEdBQ1hoVixVQUFXLFVDNURGLFNBQVN2RCxHQUV4QixJQUFJOFAsR0FDRjFhLFVBQVcsV0FDWHNPLFdBRUlWLE1BQU8sU0FBV2hELEVBQUs0SixvQkFBc0IsTUFDN0NwRyxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sb0JBS1RnTixHQUNGNWEsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQ0V4RCxFQUFLaUssaUJBQ0w2RixJQUlBMEksR0FDRnBqQixVQUFXLFdBQ1g0TixNQUFPLGVBQWdCblEsSUFBSyxLQUM1QjBQLFVBQ0V3TCxTQUNFLGtQQUtKdkssVUFDRXNNLElBSUEySSxHQUNGelYsTUFBTyxJQUFNaEQsRUFBSzRKLG9CQUFzQixjQUN4Q3ZHLFFBQVMsTUFDVDZDLGFBQWEsRUFDYjFDLFdBRUlSLE1BQU8sSUFBTWhELEVBQUs0SixvQkFBcUIvVyxJQUFLLFVBQzVDMlQsWUFBWSxLQVlka1MsR0FDRnRqQixVQUFXLFVBQ1g0TixNQUFPLFdBQVluUSxJQUFLLElBQ3hCMlEsVUFBV3NNLElBRWIsT0FDRTFQLFNBQVUsS0FBTSxPQUNoQm1DLFNBQ0UsNEhBRUZRLFFBQVMsU0FDVFMsVUFDRXhELEVBQUt5SyxrQkFDTHFGLEVBQ0FFLEVBQ0F3SSxFQUNBQyxHQXRCRnJqQixVQUFXLE9BQ1g0TixNQUFPLFlBQWFuUSxJQUFLLElBQ3pCMFAsVUFBVzhMLGVBQWdCLFVBQzNCdEwsUUFBUyxXQXFCUDJWLFFDNUVXLFNBQVMxWSxHQUN4QixPQUNFSSxTQUFVLE9BQ1YyQyxRQUFTLFlBQWMvQyxFQUFLMkosU0FBVyxNQUN2Q3BILFNBQVUseXUrREFzQ1ZpQixXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxRQUV0Qm1OLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxrQkFDTG5LLEVBQUsySyxlQUVIM0gsTUFBTyxLQUFNblEsSUFBSyxLQUNsQndRLFFBQVMsV0NwREEsU0FBU3JELEdBQ3hCLElBQUkyWSxHQUNGM1ksRUFBSzJLLGVBRUh2VixVQUFXLFNBQ1g0TixNQUFPLElBQU1uUSxJQUFLLElBQ2xCMlEsVUFBV3hELEVBQUtpSyxrQkFBbUJqSCxNQUFPLFNBRzFDNFYsR0FDRnJWLFVBQVcsRUFDWEMsV0FFSVIsTUFBTyxhQUtiLE9BQ0VULFVBQ0V5SyxRQUNFLDBLQUVGZSxTQUNFLGtsQ0FlSjFLLFFBQVMsMEJBQ1RHLFdBRUlwTyxVQUFXLFdBQ1hvTixjQUFlLFdBQVkzUCxJQUFLLElBQ2hDMlEsVUFDRXhELEVBQUtnTCx1QkFFSDVWLFVBQVcsU0FDWHNPLFdBQ0dWLE1BQU8sTUFBT25RLElBQUssUUFDbkJtUSxNQUFPLE1BQU9uUSxJQUFLLFlBTTFCbVEsTUFBTyxnQ0FDUGtELGFBQWEsRUFDYjNDLFVBQVcsRUFDWEMsV0FDR1IsTUFBTyx5QkFBMEJPLFVBQVcsR0FDN0NxVixFQUFVcFYsU0FBUyxNQUlyQlIsTUFBTyxNQUFPblEsSUFBSyxNQUNuQjJRLFNBQVVtVixFQUNWcFYsVUFBVyxFQUNYTyxPQUFROFUsSUFHUjVWLE1BQU8sTUFBT25RLElBQUssSUFDbkIyUSxTQUFVbVYsRUFDVnBWLFVBQVcsRUFDWE8sT0FBUThVLElBSVI1VixNQUFPLEtBQ1BPLFVBQVcsRUFDWE8sT0FBUThVLEdBRVY1WSxFQUFLcUssUUFBUSxtQkFBb0Isb0JBQ2pDckssRUFBS3FLLFFBQVEsTUFBTyxNQUNwQmxXLE9BQU93a0IsUUNwRkksU0FBUzNZLEdBdVd4QixPQUNFK0MsUUFBUywyQkFDVFIsVUFDRXlLLFFBeldXLGtFQTBXWG9CLFFBeldXLDREQTBXWEwsU0F4V0UsMDMyQkF5V0Y4SyxPQVJVLGlCQVVaclYsV0FFSXBPLFVBQVcsVUFDWDROLE1BQU8sT0FDUG5RLElBQUssT0FDTDJRLFVBQVcsU0FFYnhELEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWG1PLFVBQVcsRUFDWEcsV0FJSVYsTUFBTywwREFJUEEsTUFBTyx3REFDUE8sVUFBVyxLQUtYUCxNQUFPLGdDQUtQQSxNQUFPLHFDQUtmSyxRQUFTLFNDbFpJLFNBQVNyRCxHQUN4QixPQUNFdUMsU0FDRSxvMGZBMk1GYyxRQUFTLEtBQ1RHLFVBQ0V4RCxFQUFLMkssY0FDTDNLLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sdURBRVRoRCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssMkJDNU5NLFNBQVN4SyxHQUN4QixJQTZCSXFLLEVBQVVySyxFQUFLcUssUUFBUSxJQUFLLEtBTzVCeU8sRUFBTzlZLEVBQUtvQixRQUFRcEIsRUFBS2tLLGtCQUFtQjNHLFVBQVcsSUFDdkR3TCxFQUFTL08sRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9CNUcsVUFBVyxJQU05RHdMLEVBQU92TCxTQUFTN08sTUFKZFMsVUFBVyxRQUNYNE4sTUFBTyx3RUFDUE8sVUFBVyxJQXVCYixPQUNFbkQsU0FBVSxJQUFLLE9BQ2ZtQyxVQWpFQXlLLFFBQ0Usb2RBT0YwQyxLQUVFLGdyQkFhRjNCLFNBQ0UscUlBMENGdkssV0FyQkFwTyxVQUFXLFdBQ1hzTyxXQUNHVixNQUFPLFFBQ1BBLE1BQU8sS0FBTU8sVUFBVyxJQUN4QlAsTUFBTyxLQUFNTyxVQUFXLElBQ3hCUCxNQUFPLFVBQ1BBLE1BQU8sWUFLVjVOLFVBQVcsV0FDWHNPLFdBQ0dWLE1BQU8sZ0JBQ1BBLE1BQU8sSUFBS08sVUFBVyxLQVV4QjhHLEVBQ0FySyxFQUFLd0ssc0JBdkNQcFYsVUFBVyxTQUNYNE4sTUFBTyw0QkF3Q0xoRCxFQUFLMEssWUFDTG9PLEVBQ0EvSixHQUNDL0wsTUFBTyxZQzdFRyxTQUFTaEQsR0FFeEIsT0FDRW1DLGtCQUFrQixFQUNsQi9CLFNBQVUsUUFDVjJDLFFBQVMsT0FBUy9DLEVBQUsySixTQUN2QnBILFVBQ0VtTixLQUVFLDZPQUNGM0IsU0FDRSxvcEJBWUp2SyxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyw2ekJBcUJQblEsSUFBSyxPQUVQbU4sRUFBS3FLLFFBQVEsT0FBUSxLQUNyQnJLLEVBQUt3SyxxQkFDTHhLLEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWDROLE1BQU8sSUFDUG5RLElBQUssV0FDTDBRLFVBQVcsSUFHWG5PLFVBQVcsUUFDWDROLE1BQU8sTUFBT25RLElBQUssTUFDbkJ3USxRQUFTLE1BQ1RFLFVBQVcsSUFHWG5PLFVBQVcsU0FDWHNPLFdBQ0tWLE1BQU8sZ0JBQ1BBLE1BQU8sY0FFWk8sVUFBVyxJQUdYbk8sVUFBVyxTQUNYc08sV0FDS1YsTUFBTyx1Q0FDUEEsTUFBTyxpQkFDUEEsTUFBTyxlQUVaTyxVQUFXLElBR2ZGLFFBQVMsU0NsRkksU0FBU3JELEdBQ3hCLE9BQ0V1QyxTQUNFLHlsQkFVRmlCLFVBQ0V4RCxFQUFLcUssUUFBUSxLQUFNLFdDZFIsU0FBU3JLLEdBQ3hCLElBQUkrWSxFQUFnQiwyaURBbUJoQnpJLEdBQ0ZsYixVQUFXLFFBQ1g0TixNQUFPLFVBQVduUSxJQUFLLE1BQ3ZCMFAsU0FBVXdXLEdBRVJ0RSxHQUNGelIsTUFBTyxNQUFPblEsSUFBSyxLQUdqQmtkLEdBQ0ZyTSxXQUNHVixNQUFPLFNBQ1BBLE1BQU8sa0RBQ1BBLE1BQU8saUJBQWtCTyxVQUFXLEtBR3JDeVYsR0FBbUJoWixFQUFLaUssaUJBQWtCcUcsRUFBT1AsR0FDakRrSixHQUNGbEosRUFDQS9QLEVBQUt5SyxrQkFDTHpLLEVBQUtxSyxRQUNILFVBQ0EsVUFFRW5ILGdCQUFnQixJQUdwQnVSLEdBRUVyZixVQUFXLFNBQ1hvTyxTQUFVd1YsRUFDVnRWLFdBRUlWLE1BQU8sa0JBQW1CblEsSUFBSyxNQUMvQjBRLFVBQVcsSUFHWFAsTUFBTyxrQkFBbUJuUSxJQUFLLE1BQy9CMFEsVUFBVyxJQUdYUCxNQUFPLGtCQUFtQm5RLElBQUssTUFDL0IwUSxVQUFXLElBR1hQLE1BQU8sa0JBQW1CblEsSUFBSyxNQUMvQjBRLFVBQVcsSUFHWFAsTUFBTyxrQkFBbUJuUSxJQUFLLE1BQy9CMFEsVUFBVyxJQUdYUCxNQUFPLFVBQVduUSxJQUFLLElBQ3ZCMFEsVUFBVyxJQUdYUCxNQUFPLElBQU1uUSxJQUFLLElBQ2xCMlEsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLElBQUtuUSxJQUFLLE1BR2pCbVEsTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQVd4RCxFQUFLaUssb0JBR2hCakgsTUFBTyxTQUNQUSxZQUNBRCxVQUFXLElBR1hQLE1BQU8sbUJBQ1BRLFlBQ0FELFVBQVcsTUFLZm5PLFVBQVcsU0FDWDROLE1BQU8sNEVBQ1BPLFVBQVcsSUFHWFAsTUFBTyxXQUFhaEQsRUFBS2dLLGVBQWlCLGdEQUMxQ3pILFNBQVUsa0NBQ1ZnQixVQUFXLEVBQ1hDLFVBQ0V4RCxFQUFLeUssbUJBRUhyVixVQUFXLFNBQ1g0TixNQUFPLDhDQUNQTyxVQUFXLEtBR1huTyxVQUFXLFNBQ1g0TixNQUFPLFdBQVluUSxJQUFLLFVBQ3hCMlEsVUFBV3hELEVBQUtpSyxrQkFDaEIxRyxVQUFXLE1BS2ZuTyxVQUFXLFdBQ1hvTixjQUFlLE1BQU8zUCxJQUFLLHVCQUF3QjJULFlBQVksRUFDL0RqRCxVQUFXLEVBQ1hDLFVBQVd4RCxFQUFLK0ssY0FHaEIvSCxNQUFPLFVBQ1BPLFVBQVcsSUFHWFAsTUFBTyxhQUNQblEsSUFBSyxZQUNMa1MsWUFBYSxjQUNidkIsV0FFTVIsTUFBTyxRQUNQblEsSUFBSyxJQUNMdUMsVUFBVyxjQVFyQixPQUhBa2IsRUFBTTlNLFNBQVd5VixFQUNqQnhFLEVBQU9qUixTQUFXeVYsR0FHaEI3WSxTQUFVLEtBQU0sTUFDaEIyQyxRQUFTLFVBQ1RSLFNBQVV3VyxFQUNWdlYsU0FBVXlWLE9DekpHLFNBQVNqWixHQUN4QixPQUNFK0UsWUFBYSxNQUNidkIsV0FFSXBPLFVBQVcsT0FDWDROLE1BQU8scUJBSVBBLE1BQU8sb0JBQXFCblEsSUFBSyxJQUNqQ2tTLFlBQWEsU0FJYi9CLE1BQU8sZ0JBQ1BuUSxJQUFLLFdBQ0xrUyxZQUFhLE9BQ2JrQixjQUFjLEVBQ2RPLFlBQVksU0NuQkgsU0FBU3hHLEdBQ3hCLElBQUk2TyxHQUNGelosVUFBVyxTQUFVbU8sVUFBVyxFQUNoQ0csV0FFSVYsTUFBTyxtQkFFVGhELEVBQUswSyxjQUlULE9BQ0V2SSxrQkFBa0IsRUFDbEJJLFVBQ0V5SyxRQUFTLHFQQUtUZSxTQUFVLHVNQUdWSyxRQUFTLHNDQUVYL0ssUUFBUyxPQUNURyxVQUNFeEQsRUFBS3FLLFFBQVEsT0FBUSxRQUNyQnJLLEVBQUtxSyxRQUNILElBQ0EsS0FFRTlHLFVBQVcsS0FJYm5PLFVBQVcsV0FDWG9OLGNBQWUsa0JBQW1CM1AsSUFBSyxVQUN2Q3dRLFFBQVMsS0FDVEcsVUFDRXhELEVBQUtnTCx5QkFJUDVWLFVBQVcsUUFDWG9OLGNBQWUsa0JBQW1CM1AsSUFBSyxJQUN2QzJRLFdBRUloQixjQUFlLHNCQUVqQnhDLEVBQUtnTCx5QkFJUDVWLFVBQVcsV0FDWDROLE1BQU8sdUJBR1A1TixVQUFXLE9BQ1g0TixNQUFPLFFBQVNuUSxJQUFLLElBQ3JCMFAsVUFBVzhMLGVBQWdCLG1DQUczQmpaLFVBQVcsT0FDWDROLE1BQU8sbUJBR1BSLGNBQWUsUUFBUzNQLElBQUssSUFDN0IyUSxVQUFXeEQsRUFBS2dMLHdCQUVsQmhMLEVBQUttSyxrQkFDTDBFLFFDdEVXLFNBQVM3TyxHQUN4QixJQUFJNFAsR0FDRjVDLFFBRUUsNklBRUZvQixRQUNFLGlCQUNGTCxTQUNFLHFSQUtBb0QsRUFBYywyQkFDZGIsR0FDRmxiLFVBQVcsUUFDWDROLE1BQU8sTUFBT25RLElBQUssSUFDbkIwUCxTQUFVcU4sR0FFUlcsR0FDRnZRLEVBQUtvQixRQUFRcEIsRUFBSzJLLGVBQ2Y3RyxRQUFTalIsSUFBSyxXQUFZMFEsVUFBVyxNQUV0Q25PLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLE9BS3RDbGIsVUFBVyxXQUNYNE4sTUFBTyxNQUFRaEQsRUFBSzJKLFdBR3BCM0csTUFBTyxJQUFNaEQsRUFBSzJKLFdBR2xCM0csTUFBT2hELEVBQUsySixTQUFXLE9BQVMzSixFQUFLMkosV0FHekMyRyxFQUFNOU0sU0FBVytNLEVBRWpCLElBQUlhLEVBQVFwUixFQUFLb0IsUUFBUXBCLEVBQUsrSyxZQUFhL0gsTUFBT21PLElBRTlDbkMsR0FDRjVaLFVBQVcsU0FDWDROLE1BQU8sWUFBYWtELGFBQWEsRUFHakMxQyxXQUNFUixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVXFOLEVBQ1ZwTSxVQUFXLFFBQVFyUCxPQUFPb2MsTUFJOUIsT0FDRW5RLFNBQVUsUUFDVm1DLFNBQVVxTixFQUNWdk0sUUFBUyxPQUNURyxTQUFVK00sRUFBWXBjLFFBQ3BCNkwsRUFBS3FLLFFBQVEsS0FBTSxNQUVqQmpWLFVBQVcsV0FDWDROLE1BQU8sUUFBVW1PLEVBQWMsbUNBQXlCdGUsSUFBSyxRQUM3RHFULGFBQWEsRUFDYjFDLFVBQVc0TixFQUFPcEMsS0FHbEJoTSxNQUFPLGFBQ1BPLFVBQVcsRUFDWEMsV0FFSXBPLFVBQVcsV0FDWDROLE1BL0JNLDBCQStCWW5RLElBQUssUUFDdkJxVCxhQUFhLEVBQ2IxQyxVQUFXd0wsT0FLZjVaLFVBQVcsUUFDWG9OLGNBQWUsUUFDZjNQLElBQUssSUFDTHdRLFFBQVMsWUFDVEcsV0FFSWhCLGNBQWUsVUFDZlUsZ0JBQWdCLEVBQ2hCRyxRQUFTLFlBQ1RHLFVBQVc0TixJQUViQSxLQUlGaGMsVUFBVyxPQUNYNE4sTUFBT21PLEVBQWMsSUFBS3RlLElBQUssSUFDL0JxVCxhQUFhLEVBQU1LLFdBQVcsRUFDOUJoRCxVQUFXLFVDMUdGLFNBQVN2RCxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCcUIsV0FFSWhCLGNBQ0UsK0ZBQ0YzUCxJQUFLLElBQUtxUSxnQkFBZ0IsRUFDMUJYLFVBRUV5SyxRQUNFLGdrQ0FhRm9CLFFBQ0UsNEJBRUZMLFNBQ0UsbXhDQWFKdkssV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sSUFBTW5RLElBQUssSUFDbEIyUSxVQUFXeEQsRUFBS2lLLGtCQUNoQjFHLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGtCQUNoQjFHLFVBQVcsSUFHWG5PLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGtCQUNoQjFHLFVBQVcsR0FFYnZELEVBQUsySyxjQUNMM0ssRUFBS3dLLHVCQUdUeEssRUFBS3dLLDJCQ2hFTSxTQUFTeEssR0FDeEIsSUFBSStQLEdBQ0YzYSxVQUFXLFdBQ1hzTyxXQUNHVixNQUFPLFVBQ1BBLE1BQU8sT0FBUW5RLElBQUssTUFDcEJtUSxNQUFPLFdBQWFoRCxFQUFLNEosdUJBRzFCb00sR0FDRjlTLGdCQUFnQixFQUNoQkgsUUFBUyxXQUNUUixVQUNFNkwsUUFDRSxrSkFHSjdLLFVBQVcsRUFDWEYsUUFBUyxLQUNURyxVQUNFeEQsRUFBS3lLLG1CQUVIclYsVUFBVyxTQUNYb08sVUFBV3hELEVBQUtpSyxpQkFBa0I4RixHQUNsQ3JNLFdBQ0dWLE1BQU8sSUFBS25RLElBQUssTUFDakJtUSxNQUFPLElBQUtuUSxJQUFLLFFBS3BCbVEsTUFBTyxhQUFjblEsSUFBSyxNQUFPcVEsZ0JBQWdCLEVBQU1zRCxZQUFZLEVBQ25FaEQsVUFBV3VNLEtBR1gzYSxVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGlCQUFrQjhGLEdBQ2xDck0sV0FDR1YsTUFBTyxTQUFVblEsSUFBSyxVQUFXMFQsV0FBVyxJQUU1Q3ZELE1BQU8sWUFBYW5RLElBQUssVUFBVzBULFdBQVcsSUFFL0N2RCxNQUFPLHVCQUVQQSxNQUFPLHlCQUtWNU4sVUFBVyxTQUNYNE4sTUFBTyxnRUFJUDVOLFVBQVcsU0FDWDROLE1BQU8sNEJBQ1BPLFVBQVcsR0FFYndNLElBSUosT0FDRTNQLFNBQVUsYUFDVm9ELFVBQ0V4RCxFQUFLeUssbUJBRUh6SCxNQUFPaEQsRUFBSzRKLG9CQUFzQixRQUFTMUQsYUFBYSxFQUN4RHJULElBQUssSUFDTDJRLFdBRUlwTyxVQUFXLFVBQ1g0TixNQUFPaEQsRUFBSzRKLHNCQUdoQnJHLFVBQVcsSUFHWFAsTUFBT2hELEVBQUs0SixvQkFBc0IsTUFBTy9XLElBQUssTUFBT3FULGFBQWEsRUFDbEUxQyxXQUVJcE8sVUFBVyxZQUNYNE4sTUFBT2hELEVBQUs0SixvQkFDWjlGLE9BQVFrUyxJQUdaelMsVUFBVyxJQUdmRixRQUFTLGlCQ3pGSSxTQUFTckQsR0FDeEIsT0FDRUksU0FBVSxPQUNWbUMsVUFDRXlLLFFBQ0UsZ1hBTUZvQixRQUNFLHVEQUNGTCxTQUNFLDRUQU1KdkssV0FDSXBPLFVBQVcsT0FDWDROLE1BQU8sTUFDUG5RLElBQUssTUFDTDBRLFVBQVcsS0FFWG5PLFVBQVcsU0FDWDROLE1BQU8sZUFDUG5RLElBQUssSUFDTDJRLFdBQVlSLE1BQU8sU0FFbkI1TixVQUFXLFNBQ1g0TixNQUFPLG9CQUNQblEsSUFBSyxPQUVQbU4sRUFBS21LLG1CQUVIL1UsVUFBVyxPQUNYNE4sTUFBTyxlQUNQTyxVQUFXLElBRVhuTyxVQUFXLFNBQ1htTyxVQUFXLEVBQ1hHLFdBQ0dWLE1BQU8sNkRBQ1BBLE1BQU8sZ0RBQ1BBLE1BQU8sa0RBQ1BBLE1BQU8sMkNBR1poRCxFQUFLeUssd0JDbERNLFNBQVN6SyxHQUN4QixJQUFJa1osR0FDRmxNLFFBQ0UsOENBQ0ZvQixRQUNFLHlCQUNGTCxTQUNFLDJGQUdBb0wsR0FDRi9qQixVQUFXLFFBQ1g0TixNQUFPLE9BQ1BuUSxJQUFLLElBQ0wwUCxTQUFVMlcsR0FZUm5LLEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXMlYsR0FDWHpWLFdBQ0dWLE1BQU8sS0FBTW5RLElBQUssT0FDbEJtUSxNQUFPLElBQUtuUSxJQUFLLE9BR2xCMGQsR0FDRnZRLEVBQUswSyxZQUNMMUssRUFBS3lLLGtCQUNMekssRUFBS3dLLHFCQUNMdUUsR0FyQkEvTCxNQUFPLHVCQUF3QmtELGFBQWEsRUFDNUMzQyxVQUFXLEVBQ1hDLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLFVBb0JiLE9BREFtVyxFQUFVM1YsU0FBVytNLEdBRW5CblEsU0FBVSxTQUNWbUMsU0FBVTJXLEVBQ1YxVixTQUFVK00sT0M3Q0csU0FBU3ZRLEdBQ3hCLElBS0lvWixHQUVGaGtCLFVBQVcsV0FDWDROLE1BQU8sa0JBR0xxVyxHQUVGamtCLFVBQVcsV0FDWDROLE1BQU8sU0FDUEssUUFBUyxVQUdQaVcsR0FFRmxrQixVQUFXLFdBQ1g0TixNQUFPLHNCQTJCSCtMLEdBQ0YzWixVQUFXLFNBQ1hzTyxXQUVJVixNQUFPLElBQUtuUSxJQUFLLE1BR2pCbVEsTUFBTyxJQUFNblEsSUFBSyxNQUdsQm1RLE1BQU8sSUFBS25RLElBQUssTUFHckJ3USxRQUFTLEtBQ1RHLFdBeEJGcE8sVUFBVyxRQUNYNE4sTUFBTyxtQkF0Q1A1TixVQUFXLFdBQ1g0TixNQUFPLHdiQStESG9XLEVBQ0FDLEVBQ0FDLElBSU4sT0FDRW5YLGtCQUFrQixFQUNsQkksVUFDRXlLLFFBQ0EsdTJFQUNBb0IsUUFDQSxrWUFFRjVLLFVBQ0V4RCxFQUFLeUssa0JBQ0x6SyxFQUFLd0sscUJBQ0x4SyxFQUFLcUssUUFDSCxJQUNBLEtBRUU5RyxVQUFXLEtBSWJuTyxVQUFXLFdBQ1hvTixjQUFlLHVDQUF3QzNQLElBQUssS0FFOURrYyxHQTdERjNaLFVBQVcsVUFDWDROLE1BQU8sOFFBOERMb1csRUFDQUMsRUFDQUMsR0F2RUZsa0IsVUFBVyxTQUNYNE4sTUFBTyxzcEJBaUJQNU4sVUFBVyxRQUNYNE4sTUFBTyxjQXVETGhELEVBQUswSyxrQkNyR00sU0FBUzFLLEdBQ3hCLElBaUNJdVosRUFBVSx5QkFDVkMsRUFBaUIsOENBQ3JCLE9BQ0VwWixTQUFVLEtBQU0sT0FBUSxTQUN4Qm1DLFVBaENBeUssUUFDRSxndUNBc0JGb0IsUUFDRSx3Q0FDRkwsU0FDRSxvRkFPRmhMLFFBQVN3VyxFQUNUbFcsUUFBUyxLQUNURyxXQXZDQXBPLFVBQVcsV0FDWDROLE1BQU8sd0VBd0NMaEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBSzJLLGNBQ0wzSyxFQUFLbUssbUJBRUgvVSxVQUFXLFNBQ1hzTyxXQUVJVixNQUFPLEtBQU1uUSxJQUFLLElBQ2xCd1EsUUFBUyxNQUNURyxVQUFXeEQsRUFBS2lLLG9CQUdoQmpILE1BQU8sSUFBTW5RLElBQUssV0FDbEJ3USxRQUFTLGtCQUtiak8sVUFBVyxPQUNYNE4sTUFBTyxJQUNQblEsSUFBSyxJQUNMMlEsV0FFSXBPLFVBQVcsY0FDWHNPLFdBQ0lWLE1BQU8sSUFBTW5RLElBQUssTUFDbEJtUSxNQUFPLElBQUtuUSxJQUFLLFVBTXpCdUMsVUFBVyxRQUNYNE4sTUFBTyxJQUFNd1csRUFBZXpxQixNQUFNLEtBQUtGLEtBQUssS0FBTyxPQUFRZ0UsSUFBSyxRQUFTMlQsWUFBWSxFQUNyRmpFLFNBQVVpWCxFQUFnQnpXLFFBQVN3VyxFQUNuQy9WLFVBQ0V4RCxFQUFLZ0wseUJBSVBoSSxNQUFPLE1BQU1oRCxFQUFLNEosb0JBQ2xCckcsVUFBVyxTQ3JGRixTQUFTdkQsR0FFeEIsT0FDRUksU0FBVSxNQUNWbUMsVUFDRXlLLFFBQ0Usc1ZBT0ZlLFNBRUUscUhBR0ZLLFFBQ0UsY0FFSi9LLFFBQVMsVUFDVE4sUUFBUyxlQUNUUyxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyx5QkFDUE8sVUFBVyxHQUVidkQsRUFBS3FLLFFBQ0gsU0FDQSxVQUVFN0csVUFBVyxXQUlicE8sVUFBVyxTQUNYNE4sTUFBTywyQkFJUDVOLFVBQVcsT0FDWDROLE1BQU8sa0JBR1A1TixVQUFXLE9BQ1g0TixNQUFPLGtCQUNQTyxVQUFXLElBR1hQLE1BQU8scUJBQXdCTyxVQUFXLEdBRTVDdkQsRUFBS29CLFFBQVFwQixFQUFLa0ssa0JBQW1COVUsVUFBVyxTQUFVbU8sVUFBVyxJQUNyRXZELEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjlHLFFBQVMsUUFFN0NqTyxVQUFXLFNBQ1g0TixNQUNFLDJIQUlGTyxVQUFXLElBR1hQLE1BQU8sZUNqRUUsU0FBU2hELEdBQ3pCLElBQUl5WixHQUNIcmtCLFVBQVcsVUFDWDROLE1BQU8sa0NBTVIySyxHQUNDdlksVUFBVyxTQUNYNE4sTUFBTyw4QkFDUE8sVUFBVyxHQUVad0wsRUFBUy9PLEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFtQjlHLFFBQVMsT0FnQnZEcVcsR0FDQ3RrQixVQUFXLFdBQ1hvTixjQUFlLGtCQUNmM1AsSUFBSyxVQUNMMlEsV0FaQXBPLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssTUFDbkIyUSxVQUFXLE9BQVFtSyxFQUFTb0IsRUFBUTBLLEdBbEJwQ3JrQixVQUFXLFVBQ1g0TixNQUFPLHlCQTJCWWhELEVBQUtnTCx3QkFHekIsT0FDQzVLLFNBQVUsUUFDVm1DLFVBQ0N5SyxRQUFTLCtEQUNUb0IsUUFBUyxzQkFDVEwsU0FBVSx1ZEFFWHZLLFVBQ0N4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0xtRCxHQS9CRHZZLFVBQVcsT0FDWG1OLFVBQVc4TCxlQUFnQixlQUMzQnJMLE1BQU8sZ0JBQ1BuUSxJQUFLLEtBOEJKa2MsRUFDQTBLLEdBdkJEelcsTUFBTyxTQUNQTyxVQUFXLEdBd0JWbVcsUUNwRGMsU0FBUzFaLEdBQ3hCLElBQUkyWixFQUFtQiw4bENBUW5CQyxFQUFpQjVaLEVBQUtxSyxRQUN4QixJQUNBLEtBRUU5RyxVQUFXLElBR1hzVyxFQUFnQjdaLEVBQUtxSyxRQUN2QixTQUNBLFVBRUU5RyxVQUFXLEtBR1h3TCxHQUNGM1osVUFBVyxTQUNYNE4sTUFBTyxJQUFNblEsSUFBSyxJQUNsQjJRLFdBQVlSLE1BQU8sUUFFakJtTixHQUNGL2EsVUFBVyxTQUFVNE4sTUFBTyxZQUUxQjZQLEdBQ0Z6ZCxVQUFXLFdBQ1hvTixjQUFlLG1EQUFvRDNQLElBQUssT0FDeEUwUCxTQUFVLCtEQUNWaUIsVUFDRXhELEVBQUsrSyxZQUVIM1YsVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxNQUNuQjBQLFNBQVVvWCxFQUNWblcsVUFBV3VMLEVBQVFvQixJQUVyQnlKLEVBQWVDLElBR25CLE9BQ0UxWCxrQkFBa0IsRUFDbEJZLFFBQVMsU0FDVFIsU0FBVW9YLEVBQ1Z0VyxRQUFTLGtDQUNURyxVQUNFb1csRUFBZUMsRUFBZTdaLEVBQUt1SyxvQkFDbkN3RSxFQUFRb0IsRUFDUm5RLEVBQUswSyxZQUNMbUksR0FFRXpkLFVBQVcsUUFDWDROLE1BQU8sZUFBZ0JuUSxJQUFLLE9BQzVCMFAsU0FBVW9YLEVBQ1ZuVyxVQUNFdUwsRUFBUW9CLEVBQ1J5SixFQUFlQyxFQUFlN1osRUFBS3VLLG9CQUNuQ3NJLFVDL0RPLFNBQVM3UyxHQUN4QixJQUFJOFosRUFBbUI5WixFQUFLcUssUUFDMUIsSUFDQSxLQUVFN0csVUFBVyxVQUdmLE9BQ0V1QixZQUFhLE1BQU94QixVQUFXLEVBQy9CQyxVQUNFeEQsRUFBS3FLLFFBQVEsS0FBTSxLQUNuQnJLLEVBQUtxSyxRQUNILFVBQ0EsS0FFRTlHLFVBQVcsR0FDWEMsVUFDRXNXLE1BS0oxa0IsVUFBVyxPQUNYNE4sTUFBTyxnQ0FDUE8sVUFBVyxLQUdYbk8sVUFBVyxRQUNYNE4sTUFBTyw2REFHUDVOLFVBQVcsV0FDWDROLE1BQU8sK0JBR1A1TixVQUFXLFVBQ1g0TixNQUFPLHVCQUdQNU4sVUFBVyxTQUNYNE4sTUFBTyxvQkFFVGhELEVBQUsySyxvQkMzQ00sU0FBUzNLLEdBY3hCLE9BQ0VJLFNBQVUsV0FDVjJDLFFBQVMsZ0JBQ1RSLFVBQ0V3TCxTQUdFLHdEQUNGZixRQUNFLG15QkFnQkZvQixRQUNFLHNEQUVKNUssVUFDRXhELEVBQUt5SyxrQkFDTHpLLEVBQUswSyxZQUNMMUssRUFBS21LLG1CQTNDUC9VLFVBQVcsV0FDWDROLE1BQU8sdUJBR1A1TixVQUFXLFdBQ1g0TixNQUFPLFVBQVduUSxJQUFLLFdDUFYsU0FBU21OLEdBQ3hCLElBQUk4UCxHQUNGOU0sTUFBTyxvQ0FFTG1NLEdBQ0YvWixVQUFXLE9BQVE0TixNQUFPLGlCQUV4QitMLEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGlCQUFrQmtGLEdBQ2xDekwsV0FFSVYsTUFBTyxLQUFNblEsSUFBSyxNQUdsQm1RLE1BQU8sS0FBT25RLElBQUssS0FFckJtTixFQUFLb0IsUUFBUXBCLEVBQUtrSyxrQkFBbUI3RyxRQUFTLE9BQzlDckQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9COUcsUUFBUyxTQUcvQ3dMLEdBQVVuTCxVQUFXMUQsRUFBSzRLLG1CQUFvQjVLLEVBQUsySyxnQkFDdkQsT0FDRXZLLFNBQVUsT0FBUSxPQUFRLE9BQVEsUUFDbEMrQixrQkFBa0IsRUFDbEJJLFNBQ0Usa2dCQVFGaUIsVUFDRXhELEVBQUt5SyxrQkFDTHpLLEVBQUtxSyxRQUFRLEtBQU0sS0FBTTdHLFVBQVcyTCxLQUNwQ25QLEVBQUtxSyxRQUNILE9BQ0EsUUFFRTdHLFdBRUlwTyxVQUFXLFNBQ1g0TixNQUFPLGlCQUtmaEQsRUFBS3FLLFFBQ0gsdUJBQ0EsR0FFRW5ILGdCQUFnQixFQUNoQlgsU0FBVSxrQkFDVlEsUUFBUy9DLEVBQUs0Six1QkFJaEJ4VSxVQUFXLFNBQ1g0TixNQUFPLG9CQUFxQm5RLElBQUssVUFDakMyUSxVQUNFeEQsRUFBS2lLLGtCQUVIN1UsVUFBVyxRQUNYc08sV0FDR1YsTUFBTyxVQUNQQSxNQUFPLE9BQVFuUSxJQUFLLFVBSzdCc2MsR0FFRS9aLFVBQVcsVUFBVzROLE1BQU8sWUFFL0I4TSxHQUdFOU0sTUFBTyxxREFHUDVOLFVBQVcsV0FDWG9OLGNBQWUsV0FBWTNQLElBQUssT0FBUTJULFlBQVksRUFDcERuRCxRQUFTLFlBQ1RHLFVBQ0V4RCxFQUFLZ0wsdUJBRUg1VixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFDRSxPQUNBc00sRUFDQTlQLEVBQUt3SyxxQkFDTHVFLEVBQ0FGLE9BTU56WixVQUFXLFFBQ1hvTixjQUFlLGtCQUFtQjNQLElBQUssSUFBSzJULFlBQVksRUFDeERuRCxRQUFTLFdBQ1RHLFdBQ0doQixjQUFlLHNCQUNoQnhDLEVBQUtnTCx5QkFJUHhJLGNBQWUsWUFBYTNQLElBQUssSUFDakN3USxRQUFTLFFBQ1RHLFVBQVd4RCxFQUFLZ0wseUJBR2hCeEksY0FBZSxNQUFPM1AsSUFBSyxJQUMzQjJRLFVBQVd4RCxFQUFLZ0wseUJBR2hCaEksTUFBTyxNQUVUK0wsRUFDQUYsUUMxSFcsU0FBUzdPLEdBQ3hCLElBbUJJbUssR0FDRi9VLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLG1CQUdkOFAsR0FDRjNrQixVQUFXLFNBQ1g0TixNQUFPLElBQU1uUSxJQUFLLElBQ2xCMlEsVUFBV3hELEVBQUtpSyxrQkFDaEIxRyxVQUFXLEdBR1R5VyxHQUNGNWtCLFVBQVcsT0FDWDROLE1BQU8sbUJBQ1BPLFVBQVcsR0FHVDBXLEdBQ0ZqWCxNQUFPaEQsRUFBSzJKLFNBQVcsSUFBTXBHLFVBQVcsR0FrQzFDLE9BQ0VoQixVQXpFQXlLLFFBQ0UsOFNBS0YwQyxLQUNFLDBCQUNGdEIsUUFDRSxtQkFpRUY1SyxXQWhDQXBPLFVBQVcsUUFDWG9OLGNBQWUsY0FBZTNQLElBQUssSUFDbkMyUSxVQUNFeEQsRUFBSytLLFdBQ0wvSyxFQUFLdUssdUJBS1BuVixVQUFXLFdBQ1hvTixjQUFlLFVBQVczUCxJQUFLLEtBQy9CMlEsVUFDRXhELEVBQUsrSyxZQUVIL0gsTUFBTyxLQUFNblEsSUFBSyxLQUNsQjJRLFVBQ0V3VyxFQUNBQyxFQUNBamEsRUFBSzJLLGNBQ0wzSyxFQUFLd0ssd0JBSVB4SCxNQUFPLElBQUtFLGdCQUFnQixFQUM1Qk0sVUFBV3dXLElBRWJoYSxFQUFLdUssc0JBU0x5UCxHQWhFRjVrQixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMFEsVUFBVyxJQWdFVDRHLEVBQ0E0UCxFQUNBRSxFQUNBamEsRUFBSzJLLGNBQ0wzSyxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssMkJDdEZNLFNBQVN4SyxHQUN4QixJQUFJNlAsR0FDRjdNLE1BQU8sWUFDUE8sVUFBVyxHQUVUd00sR0FDRjNhLFVBQVcsV0FDWHNPLFdBQ0dWLE1BQU8sdUJBT1JnTixHQUNGNWEsVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sS0FBTW5RLElBQUssUUFFdEIyUSxVQUNFcU0sRUFDQUUsR0FFRTNhLFVBQVcsV0FDWDROLE1BQU8sVUFBV25RLElBQUssWUFxQnpCcW5CLEVBQWFsYSxFQUFLb0IsUUFDcEJwQixFQUFLcUssUUFBUSxLQUFNLE9BRWpCM0csV0FFSVYsTUFBTyxJQUFLblEsSUFBSyxNQUVqQm1RLE1BQU8sS0FBTW5RLElBQUssT0FFdEIyUSxXQWpCRnBPLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sNEZBRVBBLE1BQU8sc0dBZ0JiLE9BQ0U1QyxTQUFVLE1BQ1YyQyxRQUFTLGVBQ1RaLGtCQUFrQixFQUNsQkksVUFDRXlLLFFBQVMsd0tBQ1RlLFNBQVUsdWpLQUNWZSxTQUFVLDJHQUVadEwsVUFDRXFNLEVBQ0E3UCxFQUFLMEssWUFDTHNGLEdBekNGNWEsVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sS0FBTW5RLElBQUssVUF0QnRCdUMsVUFBVyxVQUNYNE4sTUFBTyx5QkE4REwrTSxFQUNBbUssUUM1RVcsU0FBU2xhLEdBQ3hCLE9BQ0V1QyxVQUNFeUssUUFBUyw2aUJBUVRvQixRQUFTLDJDQUNUalYsTUFBTyxhQUNQNFUsU0FBVSx3dEVBeUJadkssVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxrQkFDTG5LLEVBQUsySyxvQkMzQ00sU0FBUzNLLEdBQ3hCLE9BQ0V3RCxVQUNFeEQsRUFBSzJLLGVBRUgzSCxNQUFPLDZDQUE4Q25RLElBQUssSUFDMUQyVCxZQUFZLElBR1p4RCxNQUFPLDJCQUE0Qm5RLElBQUssSUFDeEMwUCxTQUFVLHdDQUNWZ0IsVUFBVyxLQUdYUCxNQUFPLGlCQUFrQm5RLElBQUssSUFDOUIyUSxVQUFXeEQsRUFBSzJLLGVBQ2hCcEgsVUFBVyxJQUVidkQsRUFBS2tLLGlCQUNMbEssRUFBS21LLG1CQUVIL1UsVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxPQUNuQm9ULGNBQWMsRUFBTU8sWUFBWSxFQUNoQ2pELFVBQVcsU0N4QkYsU0FBU3ZELEdBRXhCLElBZ0JJbWEsR0FFRm5YLE1BQU8sS0FDUG5RLElBQUssS0FDTDBRLFVBQVcsR0FHVHVOLEdBRUY5TixNQUFPLEtBQ1BuUSxJQUFLLE1BR0h1bkIsR0FFRmhsQixVQUFXLFVBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFBV3hELEVBQUtvSyxxQkFHZGlRLEdBRUZqbEIsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQVd4RCxFQUFLaUssbUJBbUJkcVEsSUF6REZ0WCxNQUFPLHFCQUNQTyxVQUFXLElBS1huTyxVQUFXLFNBQ1hzTyxXQUNHVixNQUFPLHVCQUNQQSxNQUFPLG1CQUVWTyxVQUFXLEdBa0RYNFcsR0FQQW5YLE1BQU8sTUFTUDhOLEVBQ0FzSixFQUNBcGEsRUFBS3dLLHFCQUNMeEssRUFBS21LLGtCQUNMbkssRUFBS2tLLGlCQUNMbVEsR0F6QkFqbEIsVUFBVyxTQUNYNE4sTUFBTyxnQkFLUDVOLFVBQVcsU0FDWDROLE1BQU8sVUFxQlBoRCxFQUFLMkssZUFNUCxPQUhBd1AsRUFBUzNXLFNBQVc4VyxFQUNwQnhKLEVBQUt0TixTQUFXOFcsR0FHZDlXLFNBQVU4VyxFQUFNbm1CLFNBQ2I2TyxNQUFPLGNDbkZHLFNBQVNoRCxHQUN4QixPQUNFdUMsVUFDRXlLLFFBQVMseURBQ1RlLFNBQVUsMkdBRVZLLFFBQVMsY0FFWDVLLFVBQ0V4RCxFQUFLbUssa0JBQ0xuSyxFQUFLMEssWUFDTDFLLEVBQUt1SyxxQkFFSG5WLFVBQVcsUUFDWG9OLGNBQWUsdUJBQXdCM1AsSUFBSyxLQUM1Q3dRLFFBQVMsS0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQ2hCakgsUUFBU1osZ0JBQWdCLEVBQU1zRCxZQUFZLFFBSy9DcFIsVUFBVyxXQUNYb04sY0FBZSxNQUNmM1AsSUFBSyxJQUFLMlQsWUFBWSxFQUN0QmpFLFNBQVUsZ0JBR1ZTLE1BQU8sY0FDUG5RLElBQUssT0FBUTJULFlBQVksU0M5QmhCLFNBQVN4RyxHQUV4QixJQXFDSXFLLEVBQVVySyxFQUFLcUssUUFBUSxJQUFLLEtBSTVCK0csRUFBUXBSLEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUY1Qiw0QkFJWDhNLEdBQVkxYSxVQUFXLFdBQVk0TixNQUFPLDhCQUUxQytMLEdBQ0YzWixVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGlCQUFrQjZGLEdBQ2xDcE0sV0FDR1YsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sSUFBS25RLElBQUssT0FJdEIsT0FDRXVOLFNBQVUsTUFDVm9ELFVBQ0U2RyxFQUNBeUYsRUFDQWYsR0FFRXZNLGNBQWUsUUFBUzNQLElBQUssUUFDN0J3USxRQUFTLElBQ1RHLFVBQVc0TixFQUFPL0csS0FHbEI3SCxjQUFlLFNBQVUzUCxJQUFLLEtBQzlCMlEsV0FFSXBPLFVBQVcsVUFBVzROLE1BQU9oRCxFQUFLMkosU0FBVXRELFlBQVksTUFLNURyRCxNQUFPaEQsRUFBSzJKLFNBQVcsVUFBV3pELGFBQWEsRUFDL0NyVCxJQUFLLEtBQ0wyUSxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBT2hELEVBQUsySixXQUdaM0csTUFBTyxLQUFNblEsSUFBSyxLQUNsQjBQLFVBbEZSeUssUUFFRSwyR0FDRm9CLFFBRUUsMHhEQWlCRkwsU0FFRSwrc0NBMkRNeEssVUFBVyxFQUNYQyxVQUNFdUwsRUFDQTFFLEdBRUVySCxNQUFNLG1CQUNOa0QsYUFBYSxFQUFNclQsSUFBSyxLQUN4QjJRLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPaEQsRUFBSzJKLGFBS2hCdlUsVUFBVyxTQUNYNE4sTUFBTyw0RUFDUE8sVUFBVyxHQUVidU0sS0FJTnZNLFVBQVcsU0MzR25CLFNBQVN2RCxHQVlQLE9BQ0VJLFNBQVUsS0FBTSxPQUNoQm1DLFNBRUUsaTJCQVVGaUIsVUFFRXhELEVBQUtxSyxRQUFRLElBQUssS0FBTTlHLFVBQVcsS0FHakNuTyxVQUFXLFdBQ1g0TixNQUFPLHlDQUNQblEsSUFBSyxNQUNMMlQsWUFBWSxFQUNaTixhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxVQUNYNE4sTUFBTyxtQ0FDUHdELFlBQVksSUFHWnBSLFVBQVcsT0FDWDROLE1BQU8sV0FHVGhELEVBQUtnTCx5QkE3Q1g1VixVQUFXLFNBQ1g0TixNQUFPLFFBQVNuUSxJQUFLLElBQ3JCd1EsUUFBUyxRQUlUak8sVUFBVyxTQUNYNE4sTUFBTyw0QkNYTSxTQUFTaEQsR0FDeEIsSUFBSTRQLEdBQ0Y1QyxRQUNFLDhNQUdGZSxTQUNFLDJCQUVBd00sR0FDRm5sQixVQUFXLE9BQVM0TixNQUFPLGtCQUV6QnNOLEdBQ0ZsYixVQUFXLFFBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCMFAsU0FBVXFOLEVBQ1Z2TSxRQUFTLEtBRVAwTCxHQUNGM1osVUFBVyxTQUNYb08sVUFBV3hELEVBQUtpSyxrQkFDaEJ2RyxXQUVJVixNQUFPLGNBQWVuUSxJQUFLLE1BQzNCMlEsVUFBVytXLEdBQ1hoWCxVQUFXLEtBR1hQLE1BQU8sY0FBZW5RLElBQUssTUFDM0IyUSxVQUFXK1csR0FDWGhYLFVBQVcsS0FHWFAsTUFBTyxlQUFnQm5RLElBQUssTUFDNUIyUSxVQUFXK1csRUFBUWpLLEtBR25CdE4sTUFBTyxlQUFnQm5RLElBQUssTUFDNUIyUSxVQUFXK1csRUFBUWpLLEtBR25CdE4sTUFBTyxZQUFhblEsSUFBSyxJQUN6QjBRLFVBQVcsS0FHWFAsTUFBTyxZQUFhblEsSUFBSyxJQUN6QjBRLFVBQVcsS0FHWFAsTUFBTyxVQUFXblEsSUFBSyxNQUd2Qm1RLE1BQU8sVUFBV25RLElBQUssTUFHdkJtUSxNQUFPLGFBQWNuUSxJQUFLLElBQzFCMlEsVUFBVzhNLEtBR1h0TixNQUFPLGFBQWNuUSxJQUFLLElBQzFCMlEsVUFBVzhNLElBRWJ0USxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssb0JBR0wwRSxHQUNGelosVUFBVyxTQUFVbU8sVUFBVyxFQUNoQ0csV0FDR1YsTUFBT2hELEVBQUsrSixpQkFBbUIsWUFDL0IvRyxNQUFPLHlCQUNQQSxNQUFPaEQsRUFBSzhKLFlBQWMsYUFHM0JrRixHQUNGNVosVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQjJRLFVBQVcsT0FBUStXLEVBQVExTCxFQUFRRSxJQUdyQyxPQURBdUIsRUFBTTlNLFVBQVl1TCxFQUFRRixFQUFRMEwsSUFFaENuYSxTQUFVLEtBQU0sT0FDaEJtQyxTQUFVcU4sRUFDVnZNLFFBQVMsaUJBQ1RHLFVBQ0UrVyxFQUNBMUwsRUFDQUUsRUFDQS9PLEVBQUt5SyxtQkFFSC9HLFdBQ0d0TyxVQUFXLFdBQVlvTixjQUFlLFFBQ3RDcE4sVUFBVyxRQUFTb04sY0FBZSxVQUV0QzNQLElBQUssSUFDTHdRLFFBQVMsWUFDVEcsVUFDRXhELEVBQUtnTCxzQkFDTGdFLEdBRUVoTSxNQUFPLEtBQU1FLGdCQUFnQixFQUM3QlgsU0FBVSxXQUtkbk4sVUFBVyxPQUNYNE4sTUFBTyxXQUFZblEsSUFBSyxNQUd4Qm1RLE1BQU8sMEJDOUdFLFNBQVNoRCxHQVd4QixPQUNBSSxTQUFTLElBQUssT0FDZG1DLFVBWEF5SyxRQUNFLHdDQUNGb0IsUUFDRSxRQUNGTCxTQUNFLHF0QkFDRmxlLEtBQ0UsOElBS0ZrVCxRQUFTLHNCQUNUUyxVQUNBeEQsRUFBS3VLLG9CQUNIdkssRUFBS21LLGtCQUNMbkssRUFBSzJLLG9CQ2xCUSxTQUFTM0ssR0FDeEIsSUFxQkl3YSxFQUFlLDRCQTRCZkMsR0FDQXJsQixVQUFXLFlBQ1g0TixNQUFPLGFBQ1BjLFFBQ0UxTyxVQUFXLFNBQ1h2QyxJQUFLMm5CLEVBQ0xqVSxXQUFXLElBUWJtVSxHQUNGMVgsTUFBT3dYLEVBQWUsUUFDdEJ0VSxhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxZQUNYNE4sTUFBT3dYLEVBQ1AzbkIsSUFBSyxRQUNMMlQsWUFBWSxFQUNaakQsVUFBVyxJQUdmQSxVQUFXLEdBS1RvWCxHQUNGM1gsTUFBT3dYLEVBQWUsUUFBUzNuQixJQUFLLElBQ3BDcVQsYUFBYSxFQUNiM0MsVUFBVyxFQUNYQyxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU93WCxNQUkxQyxPQUNFcGEsU0FBVSxNQUNWK0Isa0JBQWtCLEVBQ2xCSSxVQTNGRXlLLFFBQ0UsdU5BR0ZvQixRQUNFLHlDQUNGTCxTQUNFLDhzQkFxRkp2SyxXQUVJcE8sVUFBVyxPQUNYNE4sTUFBTyxnQ0FFVGhELEVBQUtrSyxpQkFDTGxLLEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUNFeEQsRUFBS2lLLGtCQUVIN1UsVUFBVyxRQUNYNE4sTUFBTyxTQUFVblEsSUFBSyxTQUk1Qm1OLEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxzQkFFSHBWLFVBQVcsU0FDWHNPLFdBQ0lWLE1BQU8sb0JBQ1BBLE1BQU8scUJBQ1BBLE1BQU9oRCxFQUFLOEosY0FFaEJ2RyxVQUFXLElBR1hQLE1BQU8sSUFBTWhELEVBQUtnSyxlQUFpQixrQ0FDbkN6SCxTQUFVLG9CQUNWaUIsVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTHhLLEVBQUs4SyxhQUVIOUgsTUFBTyxJQUFLblEsSUFBSyxhQUNqQjBRLFVBQVcsRUFDWHdCLFlBQWEsUUFHakJ4QixVQUFXLElBakdibk8sVUFBVyxVQUNYNE4sTUFBTyxlQUNQYyxRQUNFMU8sVUFBVyxTQUNYdkMsSUFBSywwQkFDTDBULFdBQVcsS0FqQmJuUixVQUFXLFVBQ1g0TixNQUFPLGlCQUNQYyxRQUNFMU8sVUFBVyxTQUNYdkMsSUFBSyxzQkFDTDBULFdBQVcsS0E2R1huUixVQUFXLFdBQ1hvTixjQUFlLFdBQVkzUCxJQUFLLEtBQU0yVCxZQUFZLEVBQ2xEaEQsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLDhCQUVwQzVOLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEJvVCxjQUFjLEVBQ2RPLFlBQVksRUFDWmhELFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssd0JBSVhuSCxRQUFTLFNBR1RMLE1BQU8sTUFBUWhELEVBQUsySixTQUFVcEcsVUFBVyxHQUUzQ2tYLEVBQ0FDLEVBQ0FDLEdBRUZ0WCxRQUFTLFNDcktJLFNBQVNyRCxHQUN4QixJQUFJMkosRUFBVyx3Q0FFZixPQUNFbkcsVUFDRXhELEVBQUt5SyxtQkFFSHpILE1BQU8yRyxFQUNQNUcsUUFBUzRHLEVBQ1RwSCxVQUNFeUssUUFDRSxpTEFHRm9CLFFBQ0UsNkZBR0o3SyxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLDRCQUNQTyxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLCtCQUNQTyxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLDBCQUNQTyxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLDRDQUNQTyxVQUFXLElBSVhuTyxVQUFXLFNBQ1g0TixNQUFPLG1DQUNQTyxVQUFXLElBS1hQLE1BQU8sSUFDUG5RLElBQUssSUFDTDBRLFVBQVcsSUFJWG5PLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssa0JBQ2hCdkcsV0FDR1YsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sSUFBS25RLElBQUssYUMvRFgsU0FBU21OLEdBQ3hCLE9BQ0V1QyxTQUNFLGtsQ0FjRmMsUUFBUyxLQUNURyxVQUNFeEQsRUFBS3lLLGtCQUNMekssRUFBSzJLLGNBQ0wzSyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssd0JDdEJNLFNBQVNuSyxHQUN4QixJQUFJNGEsRUFBYSx3QkFFYkMsR0FDRnpsQixVQUFXLFlBQ1g0TixNQUFPLGNBQWVuUSxJQUFLLE9BQVEyVCxZQUFZLEVBQy9DMUMsUUFDRWpSLElBQUssSUFDTDBRLFVBQVcsRUFDWEMsV0FFSXBPLFVBQVcsV0FDWDROLE1BQU8sa0JBR1A1TixVQUFXLFVBQ1g0TixNQUFPLG1CQU1mLE9BQ0U1QyxTQUFVLFFBQVMsYUFDbkIrQixrQkFBa0IsRUFDbEJJLFNBQVUsU0FDVmlCLFdBR0lSLE1BQU8sVUFBWTRYLEVBQ25CL25CLElBQUssSUFDTDBQLFNBQVUsUUFDVmlCLFVBQ0VxWCxFQUNBN2EsRUFBS3lLLHFCQU1QekgsTUFBTyxvQkFBc0I0WCxFQUM3Qi9uQixJQUFLLElBQ0wwUCxTQUFVLCtEQUNWYyxRQUFTLEtBQ1RHLFVBQ0UsT0FDQXFYLEVBQ0E3YSxFQUFLeUsscUJBTVB6SCxNQUFPLElBQU00WCxFQUNiL25CLElBQUssSUFDTDJRLFVBQ0VxWCxFQUNBN2EsRUFBS3lLLG9CQUtUekssRUFBS3lLLHdCQ3hEWCxTQUFTekssR0FFUCxJQUFJOGEsRUFBYSxtRUFRYm5GLEVBQVcscUNBYVg1RixHQUNGM2EsVUFBVyxXQUNYc08sV0FDR1YsTUFBTyx1QkFDUEEsTUFBTyxnQkFJUmdOLEdBQ0Y1YSxVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFDRXhELEVBQUtpSyxpQkFDTDhGLEdBRUUzYSxVQUFXLFdBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLEtBQ3BCMlEsVUFBV3hELEVBQUtpSyxxQkFLbEI4USxHQUNGM2xCLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssS0FNbkIsT0FDRXVOLFNBQVUsV0FBWSxZQUN0QitCLGtCQUFrQixFQUNsQlksUUFBUyxXQUNUUixVQUNFNkwsUUFBU3VILEVBQ1QzSSxRQUFTOE4sRUFBYSxLQUFPQSxFQUFXL3JCLE1BQU0sS0FBS0YsS0FBSyxNQUFRLEtBdEQ5QyxtS0FzRHFFRSxNQUFNLEtBQUtGLEtBQUssT0FFekcyVSxXQUVJRSxXQUNJVixNQUFPLEtBQU1uUSxJQUFLLE1BQ2xCbVEsTUFBTyxPQUFRblEsSUFBSyxTQUNwQm1RLE1BQU8sS0FBTW5RLElBQUssTUFDbEJtUSxNQUFPLEtBQU1uUSxJQUFLLE1BQ2xCbVEsTUFBTyxnQkFBaUJuUSxJQUFLLE1BQzdCbVEsTUFBTyxPQUFRblEsSUFBSyxNQUNwQm1RLE1BQU8sUUFBU25RLElBQUssVUFDckJtUSxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CbVEsTUFBTyxVQUFXblEsSUFBSyxPQUN2Qm1RLE1BQU8sa0JBQW1CblEsSUFBSyxNQUVuQ3dRLFFBQVMsS0FFWHJELEVBQUtxSyxRQUFRLEtBQU0sS0FDbkIyRixFQUNBK0ssRUFDQWhMLEdBRUUvTSxNQUFPLCtCQUNQTyxVQUFXLEVBQ1gyQyxhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxZQUNYNE4sTUFBTyxVQUdQQSxNQUFPLElBQ1BFLGdCQUFpQixFQUNqQkssVUFBVyxFQUNYQyxVQUNFd00sRUFDQStLLEVBQ0FoTCxHQUVFM2EsVUFBVyxVQUNYNE4sTUFBTyxPQUFTMlMsRUFBUzVtQixNQUFNLEtBQUtGLEtBQUssS0FBTyxTQW1CaERtVSxNQUFPLGlDQVFmNU4sVUFBVyxTQUNYNE4sTUFBTyxtQkFJUEEsTUFBTyxPQTVIUyx3RkE0SGdCalUsTUFBTSxLQUFLRixLQUFLLEtBQU8sZUFDdkRxWCxhQUFhLEVBQ2IxQyxXQUVJcE8sVUFBVyxlQUNYNE4sTUFBTyxVQU1YNU4sVUFBVyxXQUNYc08sV0FDR1YsTUFBTyxvQkFySUYsbzdCQXFJZ0NqVSxNQUFNLEtBQUtGLEtBQUssS0FBTyxXQUFXMFUsVUFBVyxLQUNsRlAsTUFBTyxnQkN4SkQsU0FBU2hELEdBQ3hCLE9BQ0V1QyxVQUNFeUssUUFDRSwyRkFDRmUsU0FDRSwyaUJBUUoxSyxRQUFTLEtBQ1RHLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssaUJBQ0xsSyxFQUFLMkssZUFFSHZWLFVBQVcsT0FDWDROLE1BQU8sSUFBS25RLElBQUssTUFHakJ1QyxVQUFXLFFBQ1hvTixjQUFlLDJDQUE0QzNQLElBQUssUUFHaEUyUCxjQUFlLGdDQUFpQzNQLElBQUssYUM5QjVDLFNBQVNtTixHQUN4QixPQUNFdUMsVUFDR3lLLFFBQVMseS9GQW1DVGUsU0FBVSxvY0FNYnZLLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLa0ssaUJBQ0xsSyxFQUFLbUssa0JBQ0xuSyxFQUFLMkssZUFFSHZWLFVBQVcsVUFDWHNPLFdBQ0dWLE1BQU8sdUJBQXdCTyxVQUFXLElBQzFDUCxNQUFPLDRCQ3RERCxTQUFTaEQsR0FDeEIsSUFBSXNSLEVBQWEsd0NBTWIwSixFQUVGLHVwQkFrQkYsT0FDRTVhLFNBQVUsTUFDVm1DLFVBQ0V5SyxRQTNCRixvUkE2QkVvQixRQUNFLDhCQUNGTCxTQUNFaU4sR0FFSmpZLFFBQVMvQyxFQUFLMkosU0FBVyxLQUN6QnRHLFFBQVMsS0FDVEcsVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUtxSyxRQUFRLE9BQVEsUUFBUzdHLFVBQVcsVUFDekN4RCxFQUFLb0IsUUFBUXBCLEVBQUttSyxtQkFBb0JuSCxNQUFPLE1BQU9LLFFBQVMsUUFFM0RqTyxVQUFXLFNBQ1hzTyxXQUNLVixNQUFPLDJCQUNQQSxNQUFPLHNDQUlaNU4sVUFBVyxTQUNYNE4sTUFBTyw0QkFHUDVOLFVBQVcsU0FDWHNPLFdBQ0lWLE1BQU8sZ0JBQWtCc08sSUFDekJ0TyxNQUFPLGlCQUFtQnNPLElBQzFCdE8sTUFBTyx1QkFBeUJzTyxJQUNoQ3RPLE1BQU8sa0RBQ0FzTyxJQUdYL04sVUFBVyxJQUdYbk8sVUFBVyxXQUNYb04sY0FBZSxLQUFNM1AsSUFBSyxVQUFXMlQsWUFBWSxFQUNqRGhELFVBQVd4RCxFQUFLZ0wseUJBR2hCNVYsVUFBVyxPQUNYNE4sTUFBTyxXQUFZblEsSUFBSyxNQUN4QjJRLFdBRUlwTyxVQUFXLGNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLFFBS3JCdUMsVUFBVyxRQUNYb04sY0FBZSxPQUFRM1AsSUFBSyxJQUM1QjJRLFVBQ0V4RCxFQUFLb0IsUUFBUXBCLEVBQUtnTCx1QkFBd0IzRSxZQUFZLEtBRXhEaEQsUUFBUyxRQUdUak8sVUFBVyxRQUNYb04sY0FBZSwwQkFBMkIzUCxJQUFLLElBQy9DMlEsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBS2dMLHVCQUF3QjNFLFlBQVksS0FFeERoRCxRQUFTLGFBR1RMLE1BQU9oRCxFQUFLMkosU0FBVyxLQUN2QnBILFVBQVd3TCxTQUFVaU4sS0FHckJoWSxNQUFPLFlDdEdFLFNBQVNoRCxHQUV4QixJQUdJc1EsR0FDRmxiLFVBQVcsUUFDWHNPLFdBQ0dWLE1BQU8scUJBQ1BBLE1BQU8sT0FBUW5RLElBQUssT0FJckJrYyxHQUNGM1osVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxJQUFLblEsSUFBSyxJQUNqQndRLFFBQVMsTUFDVEcsVUFBV3hELEVBQUtpSyxvQkFHaEJqSCxNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMFEsVUFBVyxLQUdYUCxNQUFPLFVBQVduUSxJQUFLLElBQ3ZCd1EsUUFBUyxNQUNURyxVQUFXeEQsRUFBS2lLLGlCQUFrQnFHLEtBR2xDbGIsVUFBVyxTQUNYNE4sTUFBTyxZQUFhblEsSUFBSyxNQUN6QjJRLFVBQVc4TSxHQUNYL00sVUFBVyxNQVdiMFgsR0FDRjdsQixVQUFXLE9BQ1g0TixNQUFPLHdCQUNQTyxVQUFXLEdBR1R5TixHQUNGNWIsVUFBVyxRQUNYNE4sTUFBTyxpRkFDUE8sVUFBVyxHQUdUcVAsR0FDRnhkLFVBQVcsUUFDWG9OLGNBQWUsMEJBQ2YzUCxJQUFLLGFBQ0wyVCxZQUFZLEVBQ1poRCxXQUVJaEIsY0FBZSxlQUNmZSxVQUFXLEtBR1hQLE1BQU8sS0FDUG5RLElBQUssS0FDTG9ULGNBQWMsRUFDZE8sWUFBWSxFQUNaakQsVUFBVyxFQUNYQyxVQUFXeVgsS0FHWDdsQixVQUFXLFNBQ1g0TixNQUFPLEtBQ1BuUSxJQUFLLEtBQ0xvVCxjQUFjLEVBQ2RPLFlBQVksRUFDWmpELFVBQVcsRUFDWEMsVUFBV3lYLElBRWJqSyxJQUlBeUQsR0FDRnJmLFVBQVcsV0FDWG9OLGNBQWUsTUFDZjNQLElBQUssY0FDTDJULFlBQVksRUFDWmhELFVBQVd3TixJQUdiLE9BQ0V6TyxVQUNFNkwsUUFBUyxrQkFDVHBCLFFBQVMseVBBRVh4SixVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMdUUsR0EvREYzWixVQUFXLFNBQ1g0TixNQUFPLHVCQWdFTGlZLEVBQ0F4RyxFQUNBN0IsRUFDQTVTLEVBQUsySyxlQTNHVXZWLFVBQVcsT0FBUTROLE1BQU8sb0JDRjlCLFNBQVNoRCxHQUN4QixJQUFJa2IsRUFBa0Isd0NBOENsQnhOLEdBQ0Z0WSxVQUFXLFVBQ1g0TixNQUFPLGVBQWlCa1ksRUFBa0IsWUFHeENyTSxHQUNGelosVUFBVyxTQUNYc08sV0FDSVYsTUFyRHdCLDRCQXFEUU8sVUFBVyxJQUMzQ1AsTUFyRHlCbVksNERBcURRNVgsVUFBVyxJQUM1Q1AsTUFBTyx1QkFDUEEsTUFBTyx1QkFDUEEsTUFBTyw4QkFJVCtMLEVBQVMvTyxFQUFLbUssa0JBUWQrRixHQUNGbFEsRUFBS3FLLFFBQ0gsSUFDQSxLQUVFOUcsVUFBVyxJQUdmdkQsRUFBS3FLLFFBQVEsT0FBUSxTQUduQnlOLEdBQ0Y5VSxNQUFPa1ksRUFDUDNYLFVBQVcsR0FHVDZYLEdBQ0ZobUIsVUFBVyxTQUNYNE4sTUFBTyxJQUFPa1ksR0FHWm5LLEdBQ0Y3TixnQkFBZ0IsRUFDaEJLLFVBQVcsR0FHVDhYLEdBQ0YzWCxXQUNJVixNQUFPLE1BQ1BBLE1BQU8sTUFFWFEsV0FFSVIsTUFBTyxNQUFPblEsSUFBSyxNQUNuQjJRLFVBQVcsT0FBUWtLLEVBQVNxQixFQUFRRixFQUFRaUosRUFBT3NELE1BS3JEcEssR0FDRjViLFVBQVcsT0FDWDROLE1BQU9rWSxFQUNQblksUUFBU21ZLEVBQ1QzWSxVQTdHQTBPLGVBQ0UscW9FQTBIQUgsR0FDRnBOLFdBQ0lWLE1BQU8sTUFBT25RLElBQUssUUFDbkJtUSxNQUFPLE1BQU9uUSxJQUFLLFFBRXZCMlEsV0FmQVIsTUFBTyxTQUFVRSxnQkFBZ0IsRUFBTWdELGFBQWEsRUFDcEQxQyxVQUNFd04sR0FFRWhPLE1BQU8sS0FBTW5RLElBQUssS0FBTXdULFlBQVksRUFDcEM3QyxVQUFXc1UsTUFVSTlHLEVBQU1ELElBSzNCLE9BRkFBLEVBQUt2TixVQUFZa0ssRUFBU21CLEVBQVFFLEVBQVErSSxFQUFPc0QsRUFBY0MsRUFBYXZLLEdBQU0zYyxPQUFPK2IsSUFHdkY3TSxRQUFTLEtBQ1RHLFdBbEdBcE8sVUFBVyxPQUNYNE4sTUFBTyxNQUNQblEsSUFBSyxLQWdHZWdjLEVBQVFFLEVBQVFxTSxFQUFjQyxFQUFhdkssR0FBTTNjLE9BQU8rYixRQzVJL0QsU0FBU2xRLEdBRXhCLElBQUkyWSxHQUNGM1ksRUFBSzJLLGVBRUh2VixVQUFXLFNBQ1g0TixNQUFPLE9BQVNuUSxJQUFLLE9BQ3JCMlEsVUFBV3hELEVBQUtpSyxrQkFBbUJqSCxNQUFPLFNBSTlDLE9BQ0U1QyxTQUFVLE9BQ1YyQyxRQUFTLFFBQ1RSLFVBQ0V5SyxRQUFTLHdJQUVUb0IsUUFDRSw2Q0FDRkwsU0FDQyw0YkFPSDFLLFFBQVMsdUJBQ1RHLFdBRUlwTyxVQUFXLFdBQ1hvTixjQUFlLFdBQVkzUCxJQUFLLElBQ2hDMlEsVUFDRXhELEVBQUtnTCx1QkFFSDVWLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssVUFLdkJtUSxNQUFPLDRDQUFnRG5RLElBQUssR0FDNUQwUSxVQUFXLElBR1hQLE1BQU8sTUFBT25RLElBQUssZUFDbkIwUSxVQUFXLEVBQ1hDLFNBQVVtVixHQUVaM1ksRUFBS3FLLFFBQVEsS0FBTSxNQUNuQmxXLE9BQU93a0IsUUNsREksU0FBUzNZLEdBQ3hCLElBQ0k4UCxHQUNGMWEsVUFBVyxXQUNYNE4sTUFBTyxtQ0FFTHNZLEdBQ0ZsbUIsVUFBVyxTQUFVNE4sTUFBTyxpQkFXeEJoRCxFQUFLNkssZ0JBQ0w3SyxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssaUJBQ0xsSyxFQUFLd0sscUJBT1gsT0FDRXJJLGtCQUFrQixFQUNsQmtCLFFBQVMsU0FDVEcsVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxzQkFFSHBWLFVBQVcsY0FBZTROLE1BQU8sb0JBQ2pDTyxVQUFXLElBR1huTyxVQUFXLGlCQUFrQjROLE1BQU8sb0JBQ3BDTyxVQUFXLElBR1huTyxVQUFXLGdCQUFpQjROLE1BQU8sTUFBT25RLElBQUssTUFDL0N3USxRQUFTLE1BR1RqTyxVQUFXLGVBQ1g0TixNQUFPLGlrQkFDUE8sVUFBVyxJQUdYUCxNQUFPLHdXQUdQQSxNQUFPLDZGQUVUOE0sR0FFRTFhLFVBQVcsWUFDWDROLE1BQU8sc3VGQUNQSyxRQUFTLFdBR1RMLE1BQU8sK29DQUdQQSxNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFDRXNNLEVBQ0F3TCxFQUNBdGIsRUFBSzZLLGdCQUNMN0ssRUFBS21LLGtCQUNMbkssRUFBS2tLLGtCQUVIOVUsVUFBVyxPQUFRNE4sTUFBTyxpQkFLOUJBLE1BQU8sSUFBS25RLElBQUssT0FDakIwUCxTQUFVLCtHQUNWaUIsVUFDRXNNLEVBQ0E5UCxFQUFLbUssa0JBQ0xuSyxFQUFLa0ssaUJBQ0xvUixFQUNBdGIsRUFBSzZLLGlCQUVIN0gsTUFBTyxxQkFDUE8sVUFBVyxXQzFGTixTQUFTdkQsR0FDeEIsT0FDRUksU0FBVSxXQUNWb0QsV0FFSXBPLFVBQVcsT0FDWDROLE1BQU8scUNBQ1BjLFFBQ0VqUixJQUFLLElBQUtrUyxZQUFhLGVDUmhCLFNBQVMvRSxHQUN4QixJQUFJdWIsR0FBd0IsTUFBTyxNQUFPLE1BQU8sT0FBUSxPQUFRLFFBQVMsTUFBTyxTQUFVLFFBQVMsT0FBUSxLQUFNLE1BQU8sT0FBUSxPQUFRLE1BQU8sTUFBTyxNQUFPLE1BQU8sTUFBTyxLQUFNLE1BQU8sU0FBVSxNQUFPLE1BQU8sT0FBUSxNQUFPLFFBQVMsT0FBUSxPQUdqUCxPQUNFbmIsU0FBVSxTQUNWb0QsV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIwUSxVQUFXLEdBRWJ2RCxFQUFLcUssUUFDSCxJQUNBLEtBRUU5RyxVQUFXLEtBSWJuTyxVQUFXLFVBQ1hzTyxXQUNHVixNQUFPLDhCQUNQQSxNQUFPLG9CQUFxQk8sVUFBVyxJQUN2Q1AsTUFBTyxvQkFBcUJPLFVBQVcsSUFDdkNQLE1BQU8sUUF0Qk0sWUFBYSxjQUFlLFdBQVksUUFBUyxZQUFhLFNBQVUsVUFBVyxZQUFhLFNBQVUsU0FBVSxVQXNCbEduVSxLQUFLLEtBQU8sUUFJOUN1RyxVQUFXLFdBQ1hzTyxXQUVJVixNQUFPLE9BQU91WSxFQUFxQjFzQixLQUFLLEtBQUssU0FHN0NtVSxNQUFPLE9BQU91WSxFQUFxQjFzQixLQUFLLEtBQUssNkJBQzdDMFUsVUFBVyxLQUdYUCxNQUFPLFFBckNZLE9BQVEsT0FBUSxRQUFTLFFBQVMsVUFBVyxPQUFRLFNBQVUsVUFBVyxVQUFXLE9BQVEsV0FBWSxTQUFVLE9BQVEsVUFBVyxTQUFVLE9BQVEsVUFxQ3ZJblUsS0FBSyxLQUFLLDZCQUM5QzBVLFVBQVcsT0FLZm5PLFVBQVcsUUFDWDROLE1BQU8sY0FDUE8sVUFBVyxJQUdYUCxNQUFPLG9CQ2xERSxTQUFTaEQsR0FDeEIsSUFDSXdiLEdBQ0ZwbUIsVUFBVyxTQUNYNE4sTUFBTyxXQUVMeU4sR0FDRnJiLFVBQVcsU0FDWDROLE1BQU8sSUFBTWhELEVBQUs0SixxQkFFcEIsT0FDRXhKLFNBQVUsTUFDVm1DLFNBQVUsd0NBQ1ZpQixVQUNFeEQsRUFBS3FLLFFBQVEsSUFBSyxLQUNsQnJLLEVBQUtrSyxrQkFFSDlVLFVBQVcsT0FDWDROLE1BQU8sd0JBQ1BPLFVBQVcsSUFHWFAsTUFBT3lZLHNCQUNQbFksVUFBVyxHQUVidkQsRUFBSzJLLGNBQ0w4RixFQUNBK0ssR0FLRXhZLE1BQU8sNERBQ1BrRCxhQUFhLEVBQU1yVCxJQUFLLEtBQ3hCd1EsUUFBUyxLQUNURyxXQUFZUixNQUFPLG1DQUduQkEsTUFBTyxTQUFVblEsSUFBSyxNQUN0QjJRLFVBQ0V4RCxFQUFLa0ssaUJBQ0xzUixFQUNBeGIsRUFBSzJLLGNBQ0w4RixVQzNDTyxTQUFTelEsR0FDeEIsT0FDRUksU0FBVSxNQUNWbUMsVUFDRXlLLFFBRUUsaVBBSUZlLFNBRUUsdUZBQ0ZLLFFBQ0UsK0NBRUovSyxRQUFTLFVBQ1ROLFFBQVMsZUFDVFMsV0FFSXBPLFVBQVcsVUFDWDROLE1BQU8sbUJBQ1BPLFVBQVcsR0FFYnZELEVBQUtxSyxRQUNILFNBQ0EsVUFFRTdHLFVBQVcsV0FJYnBPLFVBQVcsU0FDWDROLE1BQU8sMkJBSVA1TixVQUFXLE9BQ1g0TixNQUFPLGtCQUdQNU4sVUFBVyxPQUNYNE4sTUFBTyxrQkFDUE8sVUFBVyxJQUdYUCxNQUFPLHNCQUVUaEQsRUFBS29CLFFBQVFwQixFQUFLa0ssa0JBQW1COVUsVUFBVyxTQUFVbU8sVUFBVyxJQUNyRXZELEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjlHLFFBQVMsUUFFN0NqTyxVQUFXLFNBQ1g0TixNQUNFLDJIQUlGTyxVQUFXLElBR1hQLE1BQU8sZUM1REUsU0FBU2hELEdBQ3hCLElBQUl5UCxFQUFNelAsRUFBSzBHLFlBQVksT0FBT3JVLFFBaUNsQyxPQUNFK04sU0FBVSxPQUNWK0Isa0JBQWtCLEVBQ2xCSSxVQUNFeUssUUFDRSw2R0FFRmUsU0FDRSwwbjNCQXlURkssUUFDRSxrQkFFSjVLLFVBQ0V4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0sscUJBQ0x4SyxFQUFLMEssYUFwV1B0VixVQUFXLFdBQ1g0TixNQUFPLHFCQU1QNU4sVUFBVyxRQUNYNE4sTUFBTyxpQ0FNUDVOLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8sSUFDUG5RLElBQUssSUFDTDJRLFdBQVlSLE1BQU8sS0FBTU8sVUFBVyxNQUdwQ1AsTUFBTyxJQUNQblEsSUFBSyxJQUNMMlEsV0FBWVIsTUFBTyxLQUFRTyxVQUFXLE9BZ1Z4Q2tNLEVBQUlGLGNBRU5sTSxRQUFTLFNDL1dJLFNBQVNyRCxHQUN4QixJQUFJMGIsRUFBZTFiLEVBQUtxSyxRQUFRLEtBQU0sS0FDdEMsT0FDRWxJLGtCQUFrQixFQUNsQmtCLFFBQVMsV0FDVEcsV0FFSWhCLGNBQ0Usb1hBS0YzUCxJQUFLLElBQUtxUSxnQkFBZ0IsRUFDMUJILFFBQVMsVUFDVFIsVUFDRXlLLFFBQ0UsK3JWQThHRm9CLFFBQ0Usa0JBQ0ZMLFNBQ0UscUxBR0p2SyxXQUVJcE8sVUFBVyxTQUNYNE4sTUFBTyxJQUFNblEsSUFBSyxJQUNsQjJRLFVBQVd4RCxFQUFLaUssa0JBQW1CakgsTUFBTyxTQUcxQzVOLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFDakIyUSxVQUFXeEQsRUFBS2lLLGtCQUFtQmpILE1BQU8sU0FHMUM1TixVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLElBQ2pCMlEsVUFBV3hELEVBQUtpSyxtQkFFbEJqSyxFQUFLMkssY0FDTDNLLEVBQUt3SyxxQkFDTGtSLElBR0oxYixFQUFLd0sscUJBQ0xrUixRQzNKVyxTQUFTMWIsR0FDeEIsT0FDRXdELFVBQ0V4RCxFQUFLeUssa0JBQ0x6SyxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssc0JBRUh4SCxNQUFPaEQsRUFBSzRKLG9CQUNaN0csUUFBUy9DLEVBQUs0SixvQkFDZHJILFVBRUUzTixLQUNFLHlDQUlGaWtCLE9BQ0Usc21CQVlGOEMsZUFDRSxpSkFJRnhpQixNQUNFLG1FQUVGaVYsUUFDRSxjQUVKN0ssVUFBVyxJQUtYbk8sVUFBVyxTQUNYNE4sTUFBTyw0QkFDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyw0QkFDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTywrQkFDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTywwQkFDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyw0Q0FDUE8sVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyxtQ0FDUE8sVUFBVyxTQzdFRixTQUFTdkQsR0FDeEIsT0FDRUksU0FBVSxLQUFNLE9BQ2hCK0Isa0JBQWtCLEVBQ2xCSSxTQUFVLHc1Y0FDTmlCLFdBRUFwTyxVQUFXLFNBQ1g0TixNQUFPLG9CQUdQNU4sVUFBVyxXQUNYNE4sTUFBTywwQkFHUDVOLFVBQVcsU0FDWHNPLFdBQ0dWLE1BQU8sbUJBQ1BBLE1BQU8sa0JBS1Y1TixVQUFXLFdBQ1hzTyxXQUVJVixNQUFPLHU1Q0FLYmhELEVBQUtxSyxRQUFRLGlCQUFpQixHQUM5QnJLLEVBQUt1SyxvQkFDTHZLLEVBQUt3SywyQkNqQ00sU0FBU3hLLEdBZ0J4QixPQUNFSSxTQUFVLE1BQU8sT0FBUSxPQUN6QitCLGtCQUFrQixFQUNsQlksUUFsQm9CLG9CQW1CcEJSLFVBakJBeUssUUFBUyxzQkFrQlR4SixXQWZBcE8sVUFBVyxPQUNYNE4sTUFBTyxnQkFDUE8sVUFBVyxLQUdYbk8sVUFBVyxPQUNYNE4sTUFBTyxvQkFDUE8sVUFBVyxJQVdUdkQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBS3FLLFFBQVEsV0FBWSxRQUN6QnJLLEVBQUsySyxjQUNMM0ssRUFBS29CLFFBQVFwQixFQUFLa0ssa0JBQW1CN0csUUFBUyxPQUM5Q3JELEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjlHLFFBQVMsUUFFN0NqTyxVQUFXLFNBQ1g0TixNQUFPLElBQUtuUSxJQUFLLE1BR2pCdUMsVUFBVyxTQUNYc08sV0FFSVYsTUFBTyxJQUFLblEsSUFBSyxPQUNqQndRLFFBQVMsZUN2Q0osU0FBU3JELEdBRXhCLElBQUk4UCxHQUNGMWEsVUFBVyxXQUNYNE4sTUFBTyxNQUFRaEQsRUFBSzJKLFVBR2xCaVMsR0FDRnhtQixVQUFXLFNBQ1g0TixNQUFPLG9DQTJHTDZZLEVBQVUscUJBK05kLE9BQ0V6YixTQUFVLFFBQ1YrQixrQkFBa0IsRUFDbEJJLFNBQVUsaUJBQ1ZjLFFBQVMsS0FqQlQsTUFDQSxpQkFDQSxjQUNBLGNBQ0EsY0FDQSxJQUNBLE9BQ0EsU0FDQSxTQUNBLE1BQ0EsS0FPdUJ4VSxLQUFLLEtBQU8sSUFDbkMyVSxVQUdFeEQsRUFBS21LLGtCQUNMbkssRUFBS2tLLGlCQUdMbEssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUdMb1IsR0FJRTVZLE1BQU8sNEJBQThCNlksRUFDckMzVixhQUFhLEVBQ2IxQyxXQUNHcE8sVUFBVyxpQkFBa0I0TixNQUFPLGdDQU12Q0EsTUFBTyw0QkFBOEI2WSxFQUNyQzNWLGFBQWEsRUFDYjFDLFdBQ0dwTyxVQUFXLGNBQWU0TixNQUFPLGdDQU1wQ0EsTUFBTyxRQTlVWCxJQUNBLE9BQ0EsVUFDQSxVQUNBLFFBQ0EsUUFDQSxJQUNBLGFBQ0EsT0FDQSxTQUNBLFNBQ0EsVUFDQSxPQUNBLE9BQ0EsS0FDQSxNQUNBLFVBQ0EsTUFDQSxNQUNBLEtBQ0EsS0FDQSxLQUNBLFdBQ0EsYUFDQSxTQUNBLFNBQ0EsT0FDQSxLQUNBLEtBQ0EsS0FDQSxLQUNBLEtBQ0EsS0FDQSxTQUNBLFNBQ0EsT0FDQSxJQUNBLFNBQ0EsTUFDQSxRQUNBLE1BQ0EsTUFDQSxRQUNBLFNBQ0EsS0FDQSxPQUNBLE9BQ0EsTUFDQSxTQUNBLEtBQ0EsSUFDQSxJQUNBLFFBQ0EsT0FDQSxVQUNBLE9BQ0EsU0FDQSxVQUNBLE1BQ0EsUUFDQSxRQUNBLEtBQ0EsV0FDQSxRQUNBLEtBQ0EsUUFDQSxPQUNBLEtBQ0EsS0FDQSxNQUNBLFNBd1F5Qm5VLEtBQUssS0FBTyxJQUFNZ3RCLEVBQ3ZDM1YsYUFBYSxFQUNiMUMsV0FDR3BPLFVBQVcsZUFBZ0I0TixNQUFPLGdDQU1yQ0EsTUFBTyxhQXJXWCxRQUNBLFNBQ0EsZUFDQSxhQUNBLFNBQ0EsY0FDQSxRQUNBLFFBQ0EsT0FDQSxPQUNBLFdBMlYwQ25VLEtBQUssS0FBTyxJQUFNZ3RCLElBS3hEN1ksTUFBTyxNQTFYWCxVQUNBLE1BQ0EsUUFDQSxTQUNBLFlBQ0EsTUFDQSxTQUNBLFVBQ0EsUUFDQSxRQUNBLE9BQ0EsT0FDQSxTQThXK0JuVSxLQUFLLEtBQU8sUUFJekNpaEIsRUFHQTlQLEVBQUs2SyxnQkFHTDdLLEVBQUswSyxhQUtIdFYsVUFBVyxXQUNYNE4sTUFBTyxrQ0FDUEssUUFBUyxRQUNUNkMsYUFBYSxFQUNiMUMsV0FDR3BPLFVBQVcsUUFBUzROLE1BQU8sOEJBRTFCNU4sVUFBVyxTQUNYNE4sTUFBTyxLQUNQblEsSUFBSyxLQUNMMlEsVUFDRW9ZLEVBQ0E5TCxFQUNBOVAsRUFBS2tLLGlCQUNMbEssRUFBSzZLLGdCQUNMN0ssRUFBSzBLLFlBQ0wxSyxFQUFLbUssdUJBVVgvVSxVQUFXLFlBQ1g0TixNQUFPLFFBMVRYLGdCQUNBLGNBQ0EsYUFDQSxZQUNBLGtCQUNBLHNCQUNBLHFCQUNBLHNCQUNBLDRCQUNBLGlCQUNBLHVCQUNBLDRCQUNBLE9BQ0Esc0JBQ0EsYUFDQSx3QkFDQSxrQkFDQSxtQkFDQSxtQkFDQSxvQkFDQSxzQkFDQSxvQkFDQSxrQkFDQSxTQUNBLGdCQUNBLHNCQUNBLDRCQUNBLDZCQUNBLHNCQUNBLHNCQUNBLGtCQUNBLGVBQ0EsZUFDQSxzQkFDQSxzQkFDQSxxQkFDQSxzQkFDQSxxQkFDQSxjQUNBLG9CQUNBLG9CQUNBLG9CQUNBLGdCQUNBLGVBQ0EscUJBQ0EscUJBQ0EscUJBQ0EsaUJBQ0EsZUFDQSxhQUNBLG1CQUNBLHlCQUNBLDBCQUNBLG1CQUNBLG1CQUNBLGVBQ0EsU0FDQSx1QkFDQSxhQUNBLGFBQ0EsY0FDQSxlQUNBLGVBQ0EsZUFDQSxRQUNBLE9BQ0EsWUFDQSxRQUNBLGVBQ0EsY0FDQSxhQUNBLGNBQ0Esb0JBQ0Esb0JBQ0Esb0JBQ0EsY0FDQSxlQUNBLFVBQ0EsVUFDQSxvQkFDQSxnQkFDQSxTQUNBLFlBQ0EsVUFDQSxjQUNBLFNBQ0EsT0FDQSxhQUNBLGlCQUNBLFlBQ0EsWUFDQSxjQUNBLFlBQ0EsUUFDQSxPQUNBLGNBQ0Esd0JBQ0EsZUFDQSx5QkFDQSxZQUNBLG1CQUNBLGVBQ0EsYUFDQSxlQUNBLHlCQUNBLGNBQ0EsU0FDQSxVQUNBLE9BQ0Esb0JBQ0Esa0JBQ0EsbUJBQ0EsV0FDQSxVQUNBLFVBQ0Esa0JBQ0EsT0FDQSxpQkFDQSxjQUNBLGFBQ0EsbUJBQ0Esc0JBQ0Esa0JBQ0EsU0FDQSxnQkFDQSxjQUNBLGVBQ0EsYUFDQSxRQUNBLE9BQ0EsYUFDQSxZQUNBLGFBQ0EsWUFDQSxXQUNBLFlBQ0EsV0FDQSxZQUNBLFNBQ0EsT0FDQSxTQUNBLGFBQ0Esa0JBQ0EsVUFDQSxRQUNBLFVBQ0EsVUFDQSxnQkFDQSxpQkFDQSxnQkFDQSxnQkFDQSxXQUNBLGdCQUNBLGFBQ0EsYUFDQSxVQUNBLGlCQUNBLGVBQ0EsZ0JBQ0EsY0FDQSxtQkFDQSxvQkFDQSxvQkFDQSxjQUNBLHFCQUNBLGlCQUNBLFdBQ0EsU0FDQSxTQUNBLFFBQ0EsV0FDQSxlQUNBLGFBQ0Esa0JBQ0Esa0JBQ0Esd0JBQ0EsdUJBQ0Esd0JBQ0EsY0FDQSxnQkFDQSxpQkFDQSxjQUNBLGlCQUNBLDBCQUNBLE1BQ0EsWUFDQSxtQkFDQSxrQkFDQSxhQUNBLG1CQUNBLHNCQUNBLHNCQUNBLDZCQUNBLGVBQ0EsaUJBQ0EsYUFDQSxjQUNBLFNBQ0EsUUFDQSxhQUNBLGVBQ0EsWUFDQSxXQWdIK0JsUixVQUFVakQsS0FBSyxLQUFPLE9BQ2pEaVYsUUFFRWpSLElBQUssTUFDTDJRLFVBQ0VvWSxFQUNBOUwsRUFDQTlQLEVBQUtrSyxpQkFDTGxLLEVBQUttSyxrQkFDTG5LLEVBQUs2SyxnQkFDTDdLLEVBQUswSyxZQUNMMUssRUFBS3dLLHNCQUVQbkgsUUFBUyxLQUNURSxVQUFXLFVDL2JKLFNBQVN2RCxHQXVCeEIsT0FDRW1DLGtCQUFrQixFQUNsQnFCLFdBdkJBcE8sVUFBVyxTQUNYNE4sTUFBTyxvQkFBcUJuUSxJQUFLLFVBR2pDdUMsVUFBVyxTQUNYNE4sTUFBTyx5REFHUDVOLFVBQVcsU0FDWDROLE1BQU8sZ0JBR1A1TixVQUFXLFVBQ1htTyxVQUFXLEdBQ1hHLFdBQ0lWLE1BQU8seUZBQ1BBLE1BQU8sb0NBQ1BBLE1BQU8sV0FDUEEsTUFBTyxrQkNwQkUsU0FBU2hELEdBQ3hCLElBQUk4YixHQUNBOU8sUUFBUyxzbEJBUVRvQixRQUFTLGlCQUNUTCxTQUFVLCtrQ0FzQlZnTyxFQUFnQi9iLEVBQUtxSyxRQUN2QixPQUNBLFFBRUU3RyxVQUFXLFVBR1g4TSxHQUNGbGIsVUFBVyxRQUNYNE4sTUFBTyxPQUFRblEsSUFBSyxNQUNwQjBQLFNBQVV1WixFQUNWdFksYUFFRW1LLEdBQ0F2WSxVQUFXLFNBQ1g0TixNQUFPLHdGQUNQTyxVQUFXLEdBRVg0RyxFQUFvQm5LLEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUN4QzNHLFVBQVc4TSxFQUFPdFEsRUFBS2lLLG9CQUl6QixPQUZBcUcsRUFBTTlNLFVBQVltSyxJQUdoQnBMLFNBQVV1WixFQUNWdFksVUFDRTJHLEVBQ0FuSyxFQUFLdUssb0JBQ0x3UixHQWhDRjNtQixVQUFXLE9BQ1g0TixNQUFPLHFCQUNQTyxVQUFXLEdBZ0NUb0ssR0FFRXZZLFVBQVcsV0FDWG9OLGNBQWUsT0FBUTNQLElBQUssSUFBSzJULFlBQVksRUFDN0NoRCxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFDaEIvSCxNQUFPLDhCQUdQQSxNQUFPLElBQUtuUSxJQUFLLE1BR2pCdUMsVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUFNd1QsWUFBWSxFQUNwQzlELFNBQVV1WixFQUNWdFksVUFDRSxPQUNBbUssRUFDQXhELEVBQ0FuSyxFQUFLd0ssc0JBQ0p4SCxNQUFPLE1BRVZLLFFBQVMsU0FHYkEsUUFBUyxTQUdUak8sVUFBVyxRQUNYb04sY0FBZSx1Q0FDZkQsU0FBVXVaLEVBQ1ZqcEIsSUFBSyxNQUNMMlQsWUFBWSxFQUNaaEQsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWEvSCxNQUFPLDZDQUl4QzVOLFVBQVcsT0FDWDROLE1BQU8sMFFBUVBSLGNBQWUsU0FBVTNQLElBQUssSUFDOUIyUSxVQUFXeEQsRUFBS3VLLG9CQUFxQndSLFVDL0c1QixTQUFTL2IsR0FrQ3hCLE9BQ0V3RCxXQWhDQXBPLFVBQVcsVUFDWDROLE1BQU8sV0FDUG5RLElBQUssS0FDTDJRLFdBQ0VSLE1BQU8sS0FDUG5RLElBQUssS0FDTDJRLFVBQVcsUUFDVFIsTUFBTyxVQUdYTyxVQUFXLEtBSVhuTyxVQUFXLFVBQ1g0TixNQUFPLGtDQUNQblEsSUFBSyxLQUNMMlQsWUFBWSxJQUlacFIsVUFBVyxXQUNYNE4sTUFBTyxrQkFDUG5RLElBQUssTUFJTHVDLFVBQVcsU0FDWDROLE1BQU8sYUMvQk0sU0FBU2hELEdBQ3hCLElBR0lnYyxFQUFXLHFCQUNYbkwsR0FDRnpiLFVBQVcsT0FDWHNPLFdBQ0lWLE1BTFUsV0FLU2daLEVBQVUsTUFDN0JoWixNQUFPaVosWUFBa0JELEVBQVUsT0FDbkNoWixNQUFPaVosWUFBa0JELEVBQVUsUUFXckNqTixHQUNGM1osVUFBVyxTQUNYbU8sVUFBVyxFQUNYRyxXQUNHVixNQUFPLElBQUtuUSxJQUFLLE1BQ2pCbVEsTUFBTyxJQUFLblEsSUFBSyxNQUNqQm1RLE1BQU8sUUFFVlEsVUFDRXhELEVBQUtpSyxrQkFmUDdVLFVBQVcsb0JBQ1hzTyxXQUNJVixNQUFPLEtBQVFuUSxJQUFLLE9BQ3BCbVEsTUFBTyxLQUFPblEsSUFBSyxTQWlCekIsT0FDRXNQLGtCQUFrQixFQUNsQi9CLFNBQVUsTUFBTyxPQUFRLFFBQ3pCb0QsVUFDRXFOLEdBRUV6YixVQUFXLE9BQ1g0TixNQUFPLFVBQ1BPLFVBQVcsS0FHWG5PLFVBQVcsU0FDWDROLE1BQU8sWUFDUHVELFdBQVcsRUFDWC9DLFNBQVV1TCxFQUFPdkwsU0FFakIzUSxJQUFLZ2UsRUFBSW5OLFNBQVMsR0FBR1YsUUFHckJBLE1BQU8sV0FBWW5RLElBQUssVUFDeEJrUyxZQUFhLE9BQ2JrQixjQUFjLEVBQ2RPLFlBQVksRUFDWmpELFVBQVcsSUFHWG5PLFVBQVcsT0FDWDROLE1BQU8sS0FBT2hELEVBQUs0SixzQkFHbkJ4VSxVQUFXLE9BQ1g0TixNQUFPLElBQU1oRCxFQUFLNEosb0JBQXNCLE1BR3hDeFUsVUFBVyxPQUNYNE4sTUFBTyxNQUFRaEQsRUFBSzRKLG9CQUFzQixNQUcxQ3hVLFVBQVcsU0FDWDROLE1BQU8sT0FDUE8sVUFBVyxHQUVidkQsRUFBS3lLLG1CQUVIakksY0E5RVMseUJBK0VURCxVQUFXNkwsUUEvRUYsMkJBaUZYcE8sRUFBSzJLLGNBQ0xvRSxRQ25GVyxTQUFTL08sR0FDeEIsT0FDRW1DLGtCQUFrQixFQUNsQnFCLFVBQ0V4RCxFQUFLeUssbUJBR0hyVixVQUFXLE9BQ1hzTyxXQUNJVixNQUFPLHlCQUNQQSxNQUFPLHNCQUtYQSxNQUFPLFlBQWNuUSxJQUFLLGFBQzFCa1MsWUFBYSxPQUNieEIsVUFBVyxJQUlYbk8sVUFBVyxTQUNYNE4sTUFBTyxhQUlQNU4sVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxRQUNQQSxNQUFPLG1CQzdCRixTQUFTaEQsR0FDeEIsT0FDRUksU0FBVSxNQUNWbUMsU0FBVSwrNkJBWVZpQixVQUNFeEQsRUFBS3FLLFFBQVEsWUFBYSxLQUMxQnJLLEVBQUtxSyxRQUFRLFlBQWEsTUFFeEI3SCxjQUFlLE9BQ2YzUCxJQUFLLFFBQ0wyVCxZQUFZLEVBQ1poRCxXQUVJcE8sVUFBVyxRQUNYNE4sTUFBTyxrREFDUG5RLElBQUssZUFDTHFRLGdCQUFnQixFQUNoQnNELFlBQVksTUFLaEJBLFlBQVksRUFDWjlDLFdBRUlWLE1BQU8sbUVBQ1BuUSxJQUFLLHdCQUdMbVEsTUFBTyw4Q0FDUG5RLElBQUssZ0NBS1R1QyxVQUFXLFNBQ1hvTyxVQUFXeEQsRUFBS2lLLGtCQUNoQnZHLFVBQ0UxRCxFQUFLb0IsUUFBUXBCLEVBQUtrSyxrQkFBbUI3RyxRQUFTLE9BQzlDckQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9COUcsUUFBUyxVQUlqRGpPLFVBQVcsU0FDWHNPLFVBQVcxRCxFQUFLNEssbUJBQW9CNUssRUFBSzJLLHNCQ3ZEaEMsU0FBUzNLLEdBQ3hCLElBQUltVyxHQUNGL2dCLFVBQVcsTUFDWDROLE1BQU8sS0FDUE8sVUFBVyxFQUNYQyxXQUVJcE8sVUFBVyxPQUNYc08sV0FDR1YsTUFBTyx3QkFDUEEsTUFBTyx1QkFFVmMsUUFDRVosZ0JBQWdCLEVBQ2hCSyxVQUFXLEVBQ1hDLFdBRUlwTyxVQUFXLFNBQ1hzTyxXQUNHVixNQUFPLEtBQU1uUSxJQUFLLE9BQ2xCbVEsTUFBTyxLQUFNblEsSUFBSyxTQUlyQm1RLE1BQU8sVUFBV0UsZ0JBQWdCLEVBQ2xDSyxVQUFXLEVBQ1hDLFdBRUlwTyxVQUFXLFNBQ1g0TixNQUFPLG1EQVV2QixPQUNFUSxVQUNFMlMsR0FFRS9nQixVQUFXLFVBQ1hvTyxVQUFXMlMsR0FDWDVTLFVBQVcsRUFDWEcsV0FDR1YsTUFBTyxPQUFRblEsSUFBSyxTQUNwQm1RLE1BQU8sS0FBTW5RLElBQUssUUFHdkJtTixFQUFLcUssUUFDSCxJQUNBLEtBRUU5RyxVQUFXLFVDdkRKLFNBQVN2RCxHQUV4QixPQUNFdUMsVUFDRXlLLFFBQ0UsbUdBQ0ZlLFNBTGlCLDZDQU9qQkssUUFDRSxjQUVKNUssVUFDRXhELEVBQUttSyxrQkFDTG5LLEVBQUswSyxZQUNMMUssRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVIcFYsVUFBVyxRQUNYb04sY0FBZSxnQ0FBaUMzUCxJQUFLLEtBQ3JEd1EsUUFBUyxLQUNURyxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFDaEJqSCxRQUFTWixnQkFBZ0IsRUFBTXNELFlBQVksUUFLL0N4RCxNQUFPLHlCQUEwQm5RLElBQUssSUFDdEMwUCxTQTNCZSw2Q0E0QmZpQixVQUFXLGVDN0JGLFNBQVN4RCxHQUN4QixJQUFJa2MsR0FDRjltQixVQUFXLFNBQ1g0TixNQUFPLGNBQ1BPLFVBQVcsR0FFVDRZLEdBQ0YvbUIsVUFBVyxTQUNYNE4sTUFBTyxZQXVCVCxPQUNFVCxVQUNFeUssUUFDRSwyWEFNRm9CLFFBQ0UsOERBRUo1SyxXQWhDQXBPLFVBQVcsV0FDWDROLE1BQU8sK0hBQ21EblEsSUFBSyxNQUMvRDJRLFVBQ0UsT0FDQTBZLEVBQ0FDLEtBSUYvbUIsVUFBVyxXQUNYNE4sTUFBTyw2Q0FBOENuUSxJQUFLLE1BQzFEMlEsVUFDRSxPQUNBMFksRUFDQWxjLEVBQUttSyxrQkFDTGdTLEtBb0JFL21CLFVBQVcsVUFDWDROLE1BQU8sK0JBSVA1TixVQUFXLFVBQ1g0TixNQUFPLGtDQUtQNU4sVUFBVyxVQUNYNE4sTUFBTywwREFJUDVOLFVBQVcsU0FDWDROLE1BQU8sNkRBQ1BPLFVBQVcsR0FFYnZELEVBQUtxSyxRQUFRLEtBQU0sUUFDbkJySyxFQUFLcUssUUFBUSxJQUFLLFFBQ2xCckssRUFBS3FLLFFBQVEsUUFBUyxLQUN0QnJLLEVBQUttSyxtQkFFSC9VLFVBQVcsU0FDWDROLE1BQU8sSUFBTW5RLElBQUssS0FFcEJtTixFQUFLMkssZUFFSHZWLFVBQVcsV0FDWDROLE1BQU8sMEJDOUVFLFNBQVNoRCxHQUN4QixJQUtJb2MsRUFBaUIsMkdBR2pCMUMsR0FDRmxYLGNBQWU0WixFQUNmN1osVUFBVzNOLEtBQU13bkIsR0FDakI3WSxVQUFXLEVBQ1hDLFdBWEFwTyxVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLFNBZWpCaWdCLEdBQ0Y5UCxNQUFPLGlCQUNQVCxTQUNFLHdPQUlGaUIsVUFDRWtXLElBSUEyQyxFQUFPLGdIQUtYLE9BRkFBLEVBQU9BLEVBQU8sSUFBTUEsRUFBS3R0QixNQUFNLEtBQUtKLElBQUksU0FBUzJ0QixHQUFHLE1BQU8sTUFBUUEsSUFBSXp0QixLQUFLLE1BRzFFdVIsU0FBVSxZQUNWK0Isa0JBQWtCLEVBQ2xCNEMsWUFBYSxNQUNidkIsVUFDRXhELEVBQUtxSyxRQUFRLE1BQU8sT0FFbEJqVixVQUFXLGVBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLEtBQ25CMlEsV0FFSXBPLFVBQVcsT0FDWDROLE1BQU8sTUFDUFQsU0FBVThaLEVBQ1Z2WSxRQUNFWixnQkFBZ0IsRUFDaEJNLFVBQVdzUCxFQUFRNEcsR0FDbkJuVyxVQUFXLE9BTWpCbk8sVUFBVyxvQkFDWDROLE1BQU8sT0FBUW5RLElBQUssS0FDcEIyUSxVQUFXLE9BQVFzUCxFQUFRNEcsVUM1RGxCLFNBQVMxWixHQUN4QixJQUFJNFAsR0FDRjVDLFFBQ0UsbVRBS0ZvQixRQUNFLHlDQUNGTCxTQUNFLDZmQVNKLE9BQ0UzTixTQUFVLE1BQ1ZtQyxTQUFVcU4sRUFDVnBNLFdBRUlwTyxVQUFXLE9BQ1g0TixNQUFPLDBCQUVUaEQsRUFBS2tLLGlCQUNMbEssRUFBS21LLG1CQUVIL1UsVUFBVyxTQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjJRLFVBQ0V4RCxFQUFLaUssa0JBRUg3VSxVQUFXLFFBQ1g0TixNQUFPLFNBQVVuUSxJQUFLLFNBSTVCbU4sRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVIcFYsVUFBVyxTQUNYc08sV0FDSVYsTUFBTyxvQkFDUEEsTUFBTyxxQkFDUEEsTUFBT2hELEVBQUs4SixjQUVoQnZHLFVBQVcsSUFHWFAsTUFBTyxJQUFNaEQsRUFBS2dLLGVBQWlCLGtDQUNuQ3pILFNBQVUsb0JBQ1ZpQixVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHFCQUNMeEssRUFBSzhLLGFBRUgxVixVQUFXLFdBQ1g0TixNQUFPLGNBQWdCaEQsRUFBSzJKLFNBQVcsVUFBV3pELGFBQWEsRUFDL0RyVCxJQUFLLFNBQ0wyUSxXQUVJcE8sVUFBVyxTQUNYc08sV0FFSVYsTUFBT2hELEVBQUsySixXQUdaM0csTUFBTyxZQUdQQSxNQUFPLEtBQU1uUSxJQUFLLEtBQ2xCb1QsY0FBYyxFQUFNTyxZQUFZLEVBQ2hDakUsU0FBVXFOLEVBQ1ZwTSxVQUNFLE9BQ0F4RCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssNEJBUW5CakgsVUFBVyxJQUdYbk8sVUFBVyxXQUNYNE4sTUFBTyxXQUFZblEsSUFBSyxRQUFTMlQsWUFBWSxFQUM3Q2pFLFNBQVVxTixFQUNWcE0sVUFDRSxPQUNBeEQsRUFBS29CLFFBQVFwQixFQUFLK0ssWUFBYS9ILE1BQU8sOEJBRXBDNU4sVUFBVyxTQUNYNE4sTUFBTyxLQUFNblEsSUFBSyxLQUNsQm9ULGNBQWMsRUFDZE8sWUFBWSxFQUNaakUsU0FBVXFOLEVBQ1ZwTSxVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3dLLHNCQUVQbkgsUUFBUyxXQUdiQSxRQUFTLElBQ1RFLFVBQVcsSUFHWGYsY0FBZSxjQUFlM1AsSUFBSyxLQUFNMlQsWUFBWSxFQUNyRGhELFVBQ0UsUUFFRXBPLFVBQVcsU0FDWDROLE1BQU8sS0FBTW5RLElBQUssS0FDbEJvVCxjQUFjLEVBQ2RPLFlBQVksRUFDWmpFLFNBQVVxTixFQUNWcE0sVUFDRXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxzQkFFUG5ILFFBQVMsYUFLYkwsTUFBTyxXQUNQVCxVQUFXd0wsU0FBVSxVQUNyQnhLLFVBQVcsSUFHWGYsY0FBZSxTQUFVM1AsSUFBSyxLQUFNMlQsWUFBWSxJQUdoRGhFLGNBQWUsWUFBYTNQLElBQUssS0FBTTJULFlBQVksRUFDbkRqRSxTQUFVLHNCQUdWUyxNQUFPLFdBR1BBLE1BQU8sTUFBUWhELEVBQUsySixTQUFVcEcsVUFBVyxJQUd6Q25PLFVBQVcsT0FBUTROLE1BQU8sb0JDdEpqQixTQUFTaEQsR0FDeEIsT0FDRXVDLFVBQ0V5SyxRQUVFLHFZQVlGZSxTQUNFLHVDQUNGSyxRQUNFLG1CQUVKNUssV0FFSXBPLFVBQVcsUUFDWG9OLGNBQWUsNEJBQTZCM1AsSUFBSyxJQUFLMlQsWUFBWSxFQUNsRW5ELFFBQVMsaUJBQ1RHLFVBQ0V4RCxFQUFLZ0wsd0JBR1RoTCxFQUFLdUssb0JBQ0x2SyxFQUFLd0ssc0JBRUhwVixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMFEsVUFBVyxHQUVidkQsRUFBS2tLLGlCQUNMbEssRUFBS21LLGtCQUNMbkssRUFBSzJLLGVBRUh2VixVQUFXLE9BQ1g0TixNQUFPLEtBQU1uUSxJQUFLLElBQ2xCMFEsVUFBVyxTQzVDRixTQUFTdkQsR0FDeEIsT0FDRUksU0FBVSxNQUNWK0Isa0JBQWtCLEVBQ2xCSSxVQUNFeUssUUFDRSwwNUJBV0ZlLFNBQ0UsaVBBR0ZLLFFBQ0Usc0JBRUovSyxRQUFTLGtDQUNURyxVQUNFeEQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9CM0csV0FBWVIsTUFBTyxTQUN6RGhELEVBQUtxSyxRQUNILElBQ0EsS0FFRW5FLGFBQWEsRUFDYjFDLFdBRUlwTyxVQUFXLFNBQ1g0TixNQUFPLHFCQUNQUSxVQUFXeEQsRUFBS29LLHNCQUdoQmhWLFVBQVcsU0FDWDROLE1BQU8sTUFBT25RLElBQUssSUFDbkIyUSxVQUFXeEQsRUFBS29LLHdCQUt4QnBLLEVBQUsySyxlQUVIdlYsVUFBVyxPQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjBQLFVBQVc4TCxlQUFnQixtRENsRGxCLFNBQVNyTyxHQUN4QixPQUNFSSxTQUFVLE9BQ1YrQixrQkFBa0IsRUFDbEJJLFVBQ0V5SyxRQUNFLG1WQUlGZSxTQUNFLG13QkFVRkssUUFDRSxpQ0FFSi9LLFFBQVMsS0FDVEcsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBS21LLG1CQUFvQjNHLFdBQVlSLE1BQU8sU0FDekRoRCxFQUFLcUssUUFDSCxJQUNBLEtBRUU5RyxVQUFXLElBR2Z2RCxFQUFLMkssb0JDbENNLFNBQVMzSyxHQUN4QixPQUNFK0UsWUFBYSxNQUNidkIsV0FFSVIsTUFBTyxLQUFNblEsSUFBSyxLQUNsQmtTLFlBQWEsa0JDTkosU0FBUy9FLEdBNER4QixPQUNFSSxTQUFVLElBQUssS0FBTSxPQUNyQitCLGtCQUFrQixFQUNsQkksVUE3REF5SyxRQUNFLDgzREF3QkZvQixRQUNFLE9BQ0ZMLFNBQ0UsOGhFQWlDcUJoTCxRQUFTLFVBQ2hDUyxVQUNFeEQsRUFBS3dLLHFCQUNMeEssRUFBS3VLLG9CQUNMdkssRUFBS21LLG1CQUVIL1UsVUFBVyxTQUNYb08sVUFBV3hELEVBQUtpSyxrQkFDaEJ2RyxXQUNHVixNQUFPLG1EQUNQQSxNQUFPLCtDQUNQQSxNQUFPLGVBQWdCTyxVQUFXLE1BS3JDbk8sVUFBVyxXQUNYc08sV0FDR1YsTUFBTywyQkFDUEEsTUFBTyxVQUFXTyxVQUFXLE1BSWhDbk8sVUFBVyxPQUNYNE4sTUFBTyxJQUFLblEsSUFBSyxJQUNqQjBQLFVBQVc4TCxlQUFnQixxT0FLM0I5SyxVQUFXLFNDN0ZGLFNBQVN2RCxHQWF4QixPQUNFbUMsa0JBQWtCLEVBQ2xCSSxVQUNFeUssUUFDRSw2dUJBU0ZlLFNBQ0UsNFNBTUZLLFFBQ0UsOERBR0ovSyxRQUFTLElBQ1RHLFVBQ0V4RCxFQUFLd0sscUJBQ0x4SyxFQUFLcUssUUFBUSxLQUFNLEtBQ25CckssRUFBS21LLG1CQUVIL1UsVUFBVyxTQUNYNE4sTUFqQ1UsOEdBa0NWTyxVQUFXLElBR1huTyxVQUFXLFNBQ1g0TixNQUFPLHdCQUNQUSxVQUFXeEQsRUFBS2lLLG9CQUdoQjdVLFVBQVcsU0FDWDROLE1BQU8sNEJBQ1BRLFVBQVd4RCxFQUFLaUsseUJDdkRQLFNBQVNqSyxHQUN4QixPQUNFK0MsUUFBUyxXQUNUUixVQUNFeUssUUFFRSxtd0xBa0JGZSxTQUNFLCtuRUFvQ0oxSyxRQUFTLElBQ1RHLFVBQ0V4RCxFQUFLMEssWUFDTDFLLEVBQUtrSyxrQkFhSDlVLFVBQVcsU0FDWDROLE1BQU8sd0JBRVRoRCxFQUFLcUssUUFBUSxJQUFLLE1BR2hCalYsVUFBVyxXQUNYNE4sTUFBTyx3QkFHUDVOLFVBQVcsV0FDWG9OLGNBQWUscUJBQXNCM1AsSUFBSyxJQUMxQzBRLFVBQVcsRUFDWEMsVUFDRXhELEVBQUsrSyxZQUVIM1YsVUFBVyxTQUNYNE4sTUFBTyxNQUFPblEsSUFBSyxVQUt2QnVDLFVBQVcsU0FDWDROLE1BQU8sa0JDcEdFLFNBQVNoRCxHQUN4QixPQUNFbUMsa0JBQWtCLEVBQ2xCWSxRQUFTLFFBQVUvQyxFQUFLMkosU0FDeEJwSCxVQUNFeUssUUFDRSxxdGVBRUZlLFNBRUUsaTVDQXlDRjJCLEtBQ0UsMC9CQWNKbE0sVUFDRXhELEVBQUtxSyxRQUNILElBQ0EsS0FFRTlHLFVBQVcsS0FJYm5PLFVBQVcsU0FDWHNPLFdBR0lWLE1BQU8scUhBRVBPLFVBQVcsSUFJWFAsTUFBTyx1QkFBd0JPLFVBQVcsSUFHMUNQLE1BQU8scUdBR1BBLE1BQU8sK0VBSWJoRCxFQUFLbUssbUJBRUgvVSxVQUFXLFNBQ1hzTyxXQUVJVixNQUFPLElBQU1uUSxJQUFLLGFBRWxCbVEsTUFBTyxJQUFLblEsSUFBSyxhQUVyQjBRLFVBQVcsSUFHWG5PLFVBQVcsU0FDWHNPLFdBRUlWLE1BQU8scURBRVBBLE1BQU8sZ0NBRVhPLFVBQVcsSUFJWG5PLFVBQVcsUUFDWDROLE1BQU8sVUFDUE8sVUFBVyxJQUlYbk8sVUFBVyxRQUNYNE4sTUFBTyxPQUNQTyxVQUFXLElBR1huTyxVQUFXLE9BQ1g0TixNQUFPLHVCQ2xJRSxTQUFTaEQsR0FDeEIsSUFJSXVjLEdBQ0Z2UCxRQUNFLDJKQUVGb0IsUUFDRSxpQkFDRkwsU0FDRSw4dkJBWUF5TyxHQUNGcG5CLFVBQVcsU0FDWDROLE1BQU8sSUFBS25RLElBQUssSUFBS3dRLFFBQVMsT0FjN0JvWixHQUNGamEsY0FBZSxTQUFVM1AsSUFBSyxJQUM5QjBQLFNBQVVnYSxFQUNWL1ksVUFBV2daLElBRVRFLEdBQ0Z0bkIsVUFBVyxXQUNYNE4sTUFBTyxnQkFBaUJrRCxhQUFhLEVBQU1yVCxJQUFLLEtBQ2hEMlEsVUFDRXhELEVBQUtvQixRQUFRcEIsRUFBSytLLFlBQWFqSCxRQUM3QlosZ0JBQWdCLEVBQ2hCWCxTQUFVZ2EsT0FJaEIsT0FDRW5jLFNBQVUsT0FDVjJDLFFBQVMseUJBQ1RSLFNBQVVnYSxFQUNWL1ksVUFDQXhELEVBQUt1SyxvQkFDTHZLLEVBQUt3SyxxQkFDTGdTLEdBakNBcG5CLFVBQVcsU0FDWDROLE1BQU8sSUFBTW5RLElBQUssSUFBTXdRLFFBQVMsUUFHakNqTyxVQUFXLFNBQ1g0TixNQUFPLEtBQU1uUSxJQUFLLE1BK0JsQjZwQixFQUNBRCxHQTdCQXJuQixVQUFXLFNBQ1g0TixNQUFPLDBEQThCUGhELEVBQUswSyxrQkNwRVEsU0FBUzFLLEdBQ3hCLElBMENJeVUsR0FDRnpSLE1BQU8sSUFBS25RLElBQUssS0FHZjhwQixJQXJDRjNaLE1BQU8scUJBVVA1TixVQUFXLFNBQ1hzTyxXQUNHVixNQUFPLElBQUtuUSxJQUFLLElBQUsyUSxXQUFZUixNQUFPLEtBQU1PLFVBQVcsTUFDMURQLE1BQU8sSUFBS25RLElBQUssSUFBSzJRLFdBQVlSLE1BQU8sS0FBTU8sVUFBVyxRQVQ3RG5PLFVBQVcsU0FDWDROLE1BQU8sNEVBQ1BPLFVBQVcsSUFpQlhuTyxVQUFXLFVBQ1g0TixNQUFPLE9BQVFuUSxJQUFLLE9BQ3BCMFEsVUFBVyxHQUNYQyxXQUVJcE8sVUFBVyxTQUFVNE4sTUFBTyxZQVZoQzVOLFVBQVcsT0FDWDROLE1BQU8sU0F3QlB5UixHQUtGLE9BSEFBLEVBQU9qUixTQUFXbVosR0FJaEJ2YyxTQUFVLFFBQVMsTUFDbkIrQixrQkFBa0IsRUFDbEJZLFFBQVMsNkJBQ1RNLFFBQVMsMENBQ1RkLFVBQ0V5SyxRQS9EVyxraUJBZ0VYb0IsUUF6RFUsNEpBMkRaNUssU0FBVW1aLE9DbkVHLFNBQVMzYyxHQUN4QixJQUFJK08sR0FDRjNaLFVBQVcsU0FDWG9PLFVBQVd4RCxFQUFLaUssa0JBQ2hCdkcsV0FFSVYsTUFBTyxLQUFNblEsSUFBSyxNQUdsQm1RLE1BQU8sS0FBT25RLElBQUssS0FFckJtTixFQUFLb0IsUUFBUXBCLEVBQUtrSyxrQkFBbUI3RyxRQUFTLE9BQzlDckQsRUFBS29CLFFBQVFwQixFQUFLbUssbUJBQW9COUcsUUFBUyxTQUcvQ3dMLEdBQVVuTCxVQUFXMUQsRUFBSzRLLG1CQUFvQjVLLEVBQUsySyxnQkFDdkQsT0FDRXZLLFNBQVUsT0FDVitCLGtCQUFrQixFQUNsQkksU0FDRSxxbEJBU0ZpQixVQUNFeEQsRUFBS3VLLG9CQUNMdkssRUFBS3lLLGtCQUNMekssRUFBS3FLLFFBQ0gsT0FDQSxRQUVFN0csV0FFSXBPLFVBQVcsU0FDWDROLE1BQU8saUJBS2ZoRCxFQUFLcUssUUFDSCx1QkFDQSxHQUVFbkgsZ0JBQWdCLEVBQ2hCWCxTQUFVLGtCQUNWUSxRQUFTL0MsRUFBSzRKLHVCQUloQnhVLFVBQVcsU0FDWDROLE1BQU8sdUJBQXdCblEsSUFBSyxTQUNwQzJRLFVBQVd4RCxFQUFLaUssb0JBSWhCakgsTUFBTyxxREFHUDVOLFVBQVcsV0FDWG9OLGNBQWUsV0FBWTNQLElBQUssT0FBUTJULFlBQVksRUFDcERuRCxRQUFTLFlBQ1RHLFVBQ0V4RCxFQUFLZ0wsdUJBRUg1VixVQUFXLFNBQ1g0TixNQUFPLE1BQU9uUSxJQUFLLE1BQ25CMlEsVUFDRSxPQUNBeEQsRUFBS3dLLHFCQUNMdUUsRUFDQUYsT0FNTnpaLFVBQVcsUUFDWG9OLGNBQWUsa0JBQW1CM1AsSUFBSyxJQUFLMlQsWUFBWSxFQUN4RG5ELFFBQVMsV0FDVEcsV0FDR2hCLGNBQWUsc0JBQ2hCeEMsRUFBS2dMLHlCQUlQeEksY0FBZSxZQUFhM1AsSUFBSyxJQUNqQ3dRLFFBQVMsUUFDVEcsVUFBV3hELEVBQUtnTCx5QkFHaEJ4SSxjQUFlLE1BQU8zUCxJQUFLLElBQzNCMlEsVUFBV3hELEVBQUtnTCx5QkFHaEJoSSxNQUFPLE1BRVQrTCxFQUNBRixzQkNwR04sSUFBSXpELEVBQU0xWCxVQUFpQnVFLEdBRTNCbVQsRUFBSTVCLGlCQUFpQixLQUFNclIsSUFDM0JpVCxFQUFJNUIsaUJBQWlCLE9BQVFwUixJQUM3QmdULEVBQUk1QixpQkFBaUIsWUFBYWxSLElBQ2xDOFMsRUFBSTVCLGlCQUFpQixlQUFnQmhSLElBQ3JDNFMsRUFBSTVCLGlCQUFpQixNQUFPL1EsSUFDNUIyUyxFQUFJNUIsaUJBQWlCLFNBQVU3USxJQUMvQnlTLEVBQUk1QixpQkFBaUIsY0FBZTNRLElBQ3BDdVMsRUFBSTVCLGlCQUFpQixNQUFPelEsSUFDNUJxUyxFQUFJNUIsaUJBQWlCLFVBQVdvVCxJQUNoQ3hSLEVBQUk1QixpQkFBaUIsU0FBVXFULElBQy9CelIsRUFBSTVCLGlCQUFpQixNQUFPc1QsSUFDNUIxUixFQUFJNUIsaUJBQWlCLFdBQVl1VCxJQUNqQzNSLEVBQUk1QixpQkFBaUIsVUFBV3dULElBQ2hDNVIsRUFBSTVCLGlCQUFpQixhQUFjeVQsSUFDbkM3UixFQUFJNUIsaUJBQWlCLFNBQVV4UCxJQUMvQm9SLEVBQUk1QixpQkFBaUIsU0FBVTBULElBQy9COVIsRUFBSTVCLGlCQUFpQixNQUFPMlQsSUFDNUIvUixFQUFJNUIsaUJBQWlCLFNBQVU0VCxJQUMvQmhTLEVBQUk1QixpQkFBaUIsT0FBUTZULElBQzdCalMsRUFBSTVCLGlCQUFpQixRQUFTOFQsSUFDOUJsUyxFQUFJNUIsaUJBQWlCLE1BQU81TyxJQUM1QndRLEVBQUk1QixpQkFBaUIsWUFBYStULElBQ2xDblMsRUFBSTVCLGlCQUFpQixNQUFPZ1UsSUFDNUJwUyxFQUFJNUIsaUJBQWlCLFlBQWFpVSxJQUNsQ3JTLEVBQUk1QixpQkFBaUIsU0FBVWtVLElBQy9CdFMsRUFBSTVCLGlCQUFpQixRQUFTbVUsSUFDOUJ2UyxFQUFJNUIsaUJBQWlCLFVBQVdvVSxJQUNoQ3hTLEVBQUk1QixpQkFBaUIsZUFBZ0JxVSxJQUNyQ3pTLEVBQUk1QixpQkFBaUIsUUFBU3NVLElBQzlCMVMsRUFBSTVCLGlCQUFpQixlQUFnQnVVLElBQ3JDM1MsRUFBSTVCLGlCQUFpQixNQUFPd1UsSUFDNUI1UyxFQUFJNUIsaUJBQWlCLE1BQU95VSxJQUM1QjdTLEVBQUk1QixpQkFBaUIsUUFBUzBVLElBQzlCOVMsRUFBSTVCLGlCQUFpQixVQUFXMlUsSUFDaEMvUyxFQUFJNUIsaUJBQWlCLEtBQU00VSxJQUMzQmhULEVBQUk1QixpQkFBaUIsTUFBTzZVLElBQzVCalQsRUFBSTVCLGlCQUFpQixNQUFPOFUsSUFDNUJsVCxFQUFJNUIsaUJBQWlCLElBQUsrVSxJQUMxQm5ULEVBQUk1QixpQkFBaUIsV0FBWWdWLElBQ2pDcFQsRUFBSTVCLGlCQUFpQixPQUFRaVYsSUFDN0JyVCxFQUFJNUIsaUJBQWlCLFNBQVVrVixJQUMvQnRULEVBQUk1QixpQkFBaUIsT0FBUW1WLElBQzdCdlQsRUFBSTVCLGlCQUFpQixTQUFVb1YsSUFDL0J4VCxFQUFJNUIsaUJBQWlCLE1BQU9xVixJQUM1QnpULEVBQUk1QixpQkFBaUIsYUFBY3NWLElBQ25DMVQsRUFBSTVCLGlCQUFpQixNQUFPdVYsSUFDNUIzVCxFQUFJNUIsaUJBQWlCLFdBQVl3VixJQUNqQzVULEVBQUk1QixpQkFBaUIsTUFBT3lWLElBQzVCN1QsRUFBSTVCLGlCQUFpQixPQUFRMFYsSUFDN0I5VCxFQUFJNUIsaUJBQWlCLE9BQVEyVixJQUM3Qi9ULEVBQUk1QixpQkFBaUIsU0FBVTRWLElBQy9CaFUsRUFBSTVCLGlCQUFpQixNQUFPNlYsSUFDNUJqVSxFQUFJNUIsaUJBQWlCLE9BQVE4VixJQUM3QmxVLEVBQUk1QixpQkFBaUIsTUFBTytWLElBQzVCblUsRUFBSTVCLGlCQUFpQixjQUFlZ1csSUFDcENwVSxFQUFJNUIsaUJBQWlCLFNBQVVpVyxJQUMvQnJVLEVBQUk1QixpQkFBaUIsUUFBU2tXLElBQzlCdFUsRUFBSTVCLGlCQUFpQixNQUFPbVcsSUFDNUJ2VSxFQUFJNUIsaUJBQWlCLE9BQVFvVyxJQUM3QnhVLEVBQUk1QixpQkFBaUIsVUFBV3FXLElBQ2hDelUsRUFBSTVCLGlCQUFpQixTQUFVc1csSUFDL0IxVSxFQUFJNUIsaUJBQWlCLE9BQVF1VyxJQUM3QjNVLEVBQUk1QixpQkFBaUIsUUFBU3dXLElBQzlCNVUsRUFBSTVCLGlCQUFpQixRQUFTeVcsSUFDOUI3VSxFQUFJNUIsaUJBQWlCLFVBQVcwVyxJQUNoQzlVLEVBQUk1QixpQkFBaUIsT0FBUTJXLElBQzdCL1UsRUFBSTVCLGlCQUFpQixLQUFNNFcsSUFDM0JoVixFQUFJNUIsaUJBQWlCLE9BQVE2VyxJQUM3QmpWLEVBQUk1QixpQkFBaUIsU0FBVThXLElBQy9CbFYsRUFBSTVCLGlCQUFpQixTQUFVK1csSUFDL0JuVixFQUFJNUIsaUJBQWlCLE9BQVFnWCxJQUM3QnBWLEVBQUk1QixpQkFBaUIsYUFBY2lYLElBQ25DclYsRUFBSTVCLGlCQUFpQixVQUFXa1gsSUFDaEN0VixFQUFJNUIsaUJBQWlCLE9BQVFtWCxJQUM3QnZWLEVBQUk1QixpQkFBaUIsTUFBT29YLElBQzVCeFYsRUFBSTVCLGlCQUFpQixXQUFZcVgsSUFDakN6VixFQUFJNUIsaUJBQWlCLE9BQVFzWCxJQUM3QjFWLEVBQUk1QixpQkFBaUIsS0FBTXVYLElBQzNCM1YsRUFBSTVCLGlCQUFpQixVQUFXd1gsSUFDaEM1VixFQUFJNUIsaUJBQWlCLE1BQU95WCxJQUM1QjdWLEVBQUk1QixpQkFBaUIsU0FBVTBYLElBQy9COVYsRUFBSTVCLGlCQUFpQixPQUFRMlgsSUFDN0IvVixFQUFJNUIsaUJBQWlCLGFBQWM0WCxJQUNuQ2hXLEVBQUk1QixpQkFBaUIsWUFBYTZYLElBQ2xDalcsRUFBSTVCLGlCQUFpQixPQUFROFgsSUFDN0JsVyxFQUFJNUIsaUJBQWlCLFFBQVMrWCxJQUM5Qm5XLEVBQUk1QixpQkFBaUIsYUFBY2dZLElBQ25DcFcsRUFBSTVCLGlCQUFpQixTQUFVaVksSUFDL0JyVyxFQUFJNUIsaUJBQWlCLFFBQVNrWSxJQUM5QnRXLEVBQUk1QixpQkFBaUIsT0FBUW1ZLElBQzdCdlcsRUFBSTVCLGlCQUFpQixPQUFRb1ksSUFDN0J4VyxFQUFJNUIsaUJBQWlCLE9BQVFxWSxJQUM3QnpXLEVBQUk1QixpQkFBaUIsT0FBUXNZLElBQzdCMVcsRUFBSTVCLGlCQUFpQixpQkFBa0J1WSxJQUN2QzNXLEVBQUk1QixpQkFBaUIsYUFBY3dZLElBQ25DNVcsRUFBSTVCLGlCQUFpQixPQUFReVksSUFDN0I3VyxFQUFJNUIsaUJBQWlCLE1BQU8wWSxJQUM1QjlXLEVBQUk1QixpQkFBaUIsTUFBTzJZLElBQzVCL1csRUFBSTVCLGlCQUFpQixXQUFZNFksSUFDakNoWCxFQUFJNUIsaUJBQWlCLGNBQWU2WSxJQUNwQ2pYLEVBQUk1QixpQkFBaUIsU0FBVThZLElBQy9CbFgsRUFBSTVCLGlCQUFpQixTQUFVK1ksSUFDL0JuWCxFQUFJNUIsaUJBQWlCLE1BQU9nWixJQUM1QnBYLEVBQUk1QixpQkFBaUIsVUFBV2laLElBQ2hDclgsRUFBSTVCLGlCQUFpQixVQUFXa1osSUFDaEN0WCxFQUFJNUIsaUJBQWlCLFFBQVNtWixJQUM5QnZYLEVBQUk1QixpQkFBaUIsT0FBUW9aLElBQzdCeFgsRUFBSTVCLGlCQUFpQixjQUFlcVosSUFDcEN6WCxFQUFJNUIsaUJBQWlCLFNBQVVzWixJQUMvQjFYLEVBQUk1QixpQkFBaUIsYUFBY3VaLElBQ25DM1gsRUFBSTVCLGlCQUFpQixPQUFRd1osSUFDN0I1WCxFQUFJNUIsaUJBQWlCLFFBQVN5WixJQUM5QjdYLEVBQUk1QixpQkFBaUIsU0FBVTBaLElBQy9COVgsRUFBSTVCLGlCQUFpQixNQUFPMlosSUFDNUIvWCxFQUFJNUIsaUJBQWlCLE9BQVE0WixJQUM3QmhZLEVBQUk1QixpQkFBaUIsYUFBYzZaLElBQ25DalksRUFBSTVCLGlCQUFpQixRQUFTOFosSUFDOUJsWSxFQUFJNUIsaUJBQWlCLFdBQVkrWixJQUNqQ25ZLEVBQUk1QixpQkFBaUIsVUFBV2dhLElBQ2hDcFksRUFBSTVCLGlCQUFpQixVQUFXaWEsSUFDaENyWSxFQUFJNUIsaUJBQWlCLEtBQU1rYSxJQUMzQnRZLEVBQUk1QixpQkFBaUIsTUFBT21hLElBQzVCdlksRUFBSTVCLGlCQUFpQixPQUFRb2EsSUFDN0J4WSxFQUFJNUIsaUJBQWlCLGFBQWNxYSxJQUNuQ3pZLEVBQUk1QixpQkFBaUIsYUFBY3NhLElBQ25DMVksRUFBSTVCLGlCQUFpQixVQUFXdWEsSUFDaEMzWSxFQUFJNUIsaUJBQWlCLFNBQVV3YSxJQUMvQjVZLEVBQUk1QixpQkFBaUIsV0FBWXlhLElBQ2pDN1ksRUFBSTVCLGlCQUFpQixTQUFVMGEsSUFDL0I5WSxFQUFJNUIsaUJBQWlCLFlBQWEyYSxJQUNsQy9ZLEVBQUk1QixpQkFBaUIsU0FBVTRhLElBQy9CaFosRUFBSTVCLGlCQUFpQixJQUFLNmEsSUFDMUJqWixFQUFJNUIsaUJBQWlCLE1BQU84YSxJQUM1QmxaLEVBQUk1QixpQkFBaUIsSUFBSythLElBQzFCblosRUFBSTVCLGlCQUFpQixNQUFPZ2IsSUFDNUJwWixFQUFJNUIsaUJBQWlCLFdBQVlpYixJQUNqQ3JaLEVBQUk1QixpQkFBaUIsV0FBWWtiLElBQ2pDdFosRUFBSTVCLGlCQUFpQixNQUFPbWIsSUFDNUJ2WixFQUFJNUIsaUJBQWlCLGdCQUFpQm9iLElBQ3RDeFosRUFBSTVCLGlCQUFpQixPQUFRcWIsSUFDN0J6WixFQUFJNUIsaUJBQWlCLFFBQVNzYixJQUM5QjFaLEVBQUk1QixpQkFBaUIsU0FBVXViLElBQy9CM1osRUFBSTVCLGlCQUFpQixTQUFVd2IsSUFDL0I1WixFQUFJNUIsaUJBQWlCLE9BQVF5YixJQUM3QjdaLEVBQUk1QixpQkFBaUIsUUFBUzBiLElBQzlCOVosRUFBSTVCLGlCQUFpQixRQUFTMmIsSUFDOUIvWixFQUFJNUIsaUJBQWlCLFlBQWE0YixJQUNsQ2hhLEVBQUk1QixpQkFBaUIsTUFBTzZiLElBQzVCamEsRUFBSTVCLGlCQUFpQixNQUFPOGIsSUFDNUJsYSxFQUFJNUIsaUJBQWlCLE1BQU8rYixJQUM1Qm5hLEVBQUk1QixpQkFBaUIsT0FBUWdjLElBQzdCcGEsRUFBSTVCLGlCQUFpQixRQUFTaWMsSUFDOUJyYSxFQUFJNUIsaUJBQWlCLFNBQVVrYyxJQUMvQnRhLEVBQUk1QixpQkFBaUIsU0FBVW1jLElBQy9CdmEsRUFBSTVCLGlCQUFpQixVQUFXb2MsSUFDaEN4YSxFQUFJNUIsaUJBQWlCLFFBQVNxYyxJQUM5QnphLEVBQUk1QixpQkFBaUIsZUFBZ0JzYyxJQUNyQzFhLEVBQUk1QixpQkFBaUIsT0FBUXVjLElBQzdCM2EsRUFBSTVCLGlCQUFpQixNQUFPd2MsSUFDNUI1YSxFQUFJNUIsaUJBQWlCLE1BQU95YyxJQUM1QjdhLEVBQUk1QixpQkFBaUIsTUFBTzBjLElBQzVCOWEsRUFBSTVCLGlCQUFpQixTQUFVMmMsSUFDL0IvYSxFQUFJNUIsaUJBQWlCLEtBQU00YyxJQUMzQmhiLEVBQUk1QixpQkFBaUIsT0FBUTZjLElBQzdCamIsRUFBSTVCLGlCQUFpQixhQUFjOGMsSUFDbkNsYixFQUFJNUIsaUJBQWlCLE9BQVErYyxJQUM3Qm5iLEVBQUk1QixpQkFBaUIsUUFBU2dkLElBQzlCcGIsRUFBSTVCLGlCQUFpQixXQUFZaWQsSUFDakNyYixFQUFJNUIsaUJBQWlCLGdCQUFpQmtkLElBQ3RDdGIsRUFBSTVCLGlCQUFpQixVQUFXbWQsSUFDaEN2YixFQUFJNUIsaUJBQWlCLE9BQVFvZCxJQUM3QnhiLEVBQUk1QixpQkFBaUIsTUFBT3FkLElBQzVCemIsRUFBSTVCLGlCQUFpQixTQUFVc2QsSUFDL0IxYixFQUFJNUIsaUJBQWlCLEtBQU11ZCxJQUMzQjNiLEVBQUk1QixpQkFBaUIsU0FBVXdkLElBQy9CNWIsRUFBSTVCLGlCQUFpQixTQUFVeWQseUJDakwvQjUwQixjQUFxQixFQUNyQkEsVUFZQSxXQUNJLElBQUk2MEIsRUFBT3g1QixVQUFVQyxPQUFTLFFBQXNCOEIsSUFBakIvQixVQUFVLEdBQW1CQSxVQUFVLE1BQ3RFeTVCLEVBQVVELEVBQUtDLFFBQ2Zsd0IsRUFBVWl3QixFQUFLandCLFFBRW5CLFNBQVNwRixFQUFReEIsR0FDYixJQUFJa0csRUFBT2xHLEVBQUtrRyxLQUVoQixNQUFLQSxHQUFRNHdCLEtBQWFBLEVBQVF4d0IsUUFBUUosSUFBU1UsSUFBWUEsRUFBUU4sUUFBUUosSUFBL0UsQ0FJQSxJQUFJakMsRUFBT2pFLEVBQUtpRSxLQUdYQSxJQUNEakUsRUFBS2lFLEtBQU9BLE1BR2hCLElBQ0lBLEVBQUtvSCxVQUFZMHJCLEVBQVdDLFFBQVFwakIsVUFBVTFOLEVBQU1sRyxFQUFLTixPQUFPQSxNQUNsRSxNQUFPWixHQUNMbUYsRUFBS29ILFVBQVkwckIsRUFBV0MsUUFBUWxpQixjQUFjOVUsRUFBS04sT0FBT0EsTUFHbEV1RSxFQUFLWSxZQUFjWixFQUFLWSxnQkFDeEJaLEVBQUtZLFlBQVlFLFdBQWEsUUFBUWpCLE9BQU9HLEVBQUtZLFlBQVlFLGVBQWtCLFlBQWNtQixLQUdsRyxPQUFPLFNBQVUrd0IsR0FDYixPQUFPLEVBQUlDLEVBQWlCRixTQUFTQyxFQUFLLE9BQVF6MUIsS0F0QzFELElBQUl1MUIsRUFBYUksRUFBdUJDLElBSXBDRixFQUFtQkMsRUFBdUJFLEdBRTlDLFNBQVNGLEVBQXVCbG1CLEdBQU8sT0FBT0EsR0FBT0EsRUFBSXFtQixXQUFhcm1CLEdBQVErbEIsUUFBUy9sQixHQW1DdkY1TixVQUFpQnJCLEVBQWlCLGdCQzZFbEMsT0FsQkEsV0FPRSxPQUFPLFNBQVVpMUIsRUFBS00sRUFBTzNyQixHQUczQixPQTVHSixTQUF5QnFyQixHQUNoQjkxQixFQUFNODFCLEVBQUssYUFBYyxDQUFDajNCLEVBQU1DLEVBQU9DLEtBQzVDLE1BQU1zM0IsRUFBWXgzQixFQUFLSCxTQUFTLEdBRWhDLEdBQXVCLGNBQW5CMjNCLEVBQVVoNEIsTUFDdUIsU0FBL0JnNEIsRUFBVTMzQixTQUFTLEdBQUdMLEtBQWlCLENBQ3pDLE1BQU00UixFQUFhb21CLEVBQVUzM0IsU0FBUyxHQUN0QyxHQUFJdVIsRUFBVzFSLE1BQU1tTixXQUFXLFdBQVksQ0FDMUM3TSxFQUFLUixLQUFPLE1BQ1o0UixFQUFXMVIsTUFBUTBSLEVBQVcxUixNQUFNMkYsT0FBTyxHQUMzQyxJQUFJb3lCLEVBQU0sR0FDTnJtQixFQUFXMVIsTUFBTTRHLFFBQVEsT0FBUyxHQUNwQ214QixFQUFNcm1CLEVBQVcxUixNQUFNMkYsT0FBTyxFQUM1QitMLEVBQVcxUixNQUFNNEcsUUFBUSxPQUMzQjhLLEVBQVcxUixNQUFRMFIsRUFBVzFSLE1BQU0yRixPQUNsQytMLEVBQVcxUixNQUFNNEcsUUFBUSxTQUUzQm14QixFQUFNcm1CLEVBQVcxUixNQUNqQjBSLEVBQVcxUixNQUFRLElBR3JCLE1BQU1nNEIsR0FDSmw0QixLQUFNLHFCQUNOSyxVQUNFRyxHQUVFUixLQUFNLFVBQ055RSxNQUNFaUgsTUFBTyxVQUNQRyxZQUNFN0wsS0FBTSxPQUNORSxNQUFPKzNCLEdBQU8sZUFLdEJ4ekIsTUFDRWlILE1BQU8sVUFDUHJHLGFBQ0VFLFVBQVcsd0JBT2pCLE9BRkE3RSxFQUFPTCxTQUFTMk4sT0FBT3ZOLEVBQU8sRUFBR3kzQixHQUUxQjEzQixFQUNGLEdBQUlvUixFQUFXMVIsTUFBTW1OLFdBQVcsaUJBQ25DdUUsRUFBVzFSLE1BQU1tTixXQUFXLFVBQzVCdUUsRUFBVzFSLE1BQU1tTixXQUFXLFNBQzVCdUUsRUFBVzFSLE1BQU1tTixXQUFXLGFBQzVCdUUsRUFBVzFSLE1BQU1tTixXQUFXLGVBQzVCdUUsRUFBVzFSLE1BQU1tTixXQUFXLGFBQWMsQ0FDNUM3TSxFQUFLUixLQUFPLE1BQ1pRLEVBQUtpRSxNQUNIaUgsTUFBTyxNQUNQckcsYUFDRUUsVUFBVyx3QkFHZixJQUFJdkYsRUFBTyxHQUNQNFIsRUFBVzFSLE1BQU00RyxRQUFRLE1BQVEsR0FDbkM5RyxFQUFPNFIsRUFBVzFSLE1BQU0yRixPQUFPLEVBQUcrTCxFQUFXMVIsTUFBTTRHLFFBQVEsT0FDM0Q4SyxFQUFXMVIsTUFBUTBSLEVBQVcxUixNQUFNMkYsT0FBTytMLEVBQVcxUixNQUFNNEcsUUFBUSxTQUVwRTlHLEVBQU80UixFQUFXMVIsTUFBTTJGLE9BQU8sR0FDL0IrTCxFQUFXMVIsTUFBUSxJQUdyQixNQUFNaTRCLEdBQ0puNEIsS0FBTSxrQkFDTkssVUFBV0csR0FDWGlFLE1BQ0VpSCxNQUFPLE1BQ1ByRyxhQUNFRSx5QkFBMEJ2RixPQU9oQyxPQUZBVSxFQUFPTCxTQUFTMk4sT0FBT3ZOLEVBQU8sRUFBRzAzQixHQUUxQjMzQixHQUliLE9BQU9BLElBb0JQNDNCLENBQWdCWCxHQUVJLG1CQUFUcnJCLEVBQ0ZBLEVBQUssS0FBTXFyQixFQUFLTSxHQUdsQk4sSUNrQlgsT0FsQkEsV0FPRSxPQUFPLFNBQVVBLEVBQUtNLEVBQU8zckIsR0FHM0IsT0E5R0osU0FBbUJxckIsR0FDakIsSUFBSVksRUFBTyxFQUNKMTJCLEVBQU04MUIsRUFBSyxPQUFRajNCLElBQ3hCLElBQUk4M0IsR0FBbUIsRUFDbkJDLEVBQU0sRUFDVixNQUFNQyxLQW1GTixPQWpGQXI0QixNQUFNWCxLQUFLZ0IsRUFBS0gsVUFBVWxCLFFBQVFzNUIsSUFDNUJBLEVBQU1wNEIsVUFBdUMsY0FBM0JvNEIsRUFBTXA0QixTQUFTLEdBQUdMLE1BQ2xDeTRCLEVBQU1wNEIsU0FBUyxHQUFHQSxVQUFZbzRCLEVBQU1wNEIsU0FBUyxHQUFHQSxTQUFTLEdBQUdILE1BQzFELE1BQU00RyxRQUFRMnhCLEVBQU1wNEIsU0FBUyxHQUFHQSxTQUFTLEdBQUdILE1BQU0sSUFBTSxJQUMxRG80QixHQUFtQixHQU12QkEsR0FBbUIsSUFHbkJBLElBQ0ZuNEIsTUFBTVgsS0FBS2dCLEVBQUtILFVBQVVsQixRQUFRczVCLElBQ0QsY0FBM0JBLEVBQU1wNEIsU0FBUyxHQUFHTCxPQUMyQixNQUEzQ3k0QixFQUFNcDRCLFNBQVMsR0FBR0EsU0FBUyxHQUFHSCxNQUFNLEdBQ3RDczRCLEVBQUkxekIsS0FBSyxJQUMyQyxNQUEzQzJ6QixFQUFNcDRCLFNBQVMsR0FBR0EsU0FBUyxHQUFHSCxNQUFNLEdBQzdDczRCLEVBQUkxekIsS0FBSyxHQUVUMHpCLEVBQUkxekIsS0FBSyxHQUVYMnpCLEVBQU1wNEIsU0FBUyxHQUFHQSxTQUFTLEdBQUdILFNBQVd1NEIsRUFBTXA0QixTQUFTLEdBQUdBLFNBQVMsR0FBR0gsTUFBTW1HLE1BQU0sVUFHdkY3RixFQUFLUixLQUFPLEtBQ1pRLEVBQUtpRSxNQUNIaUgsTUFBTyxXQUNQckcsYUFDRUUsVUFBVyxXQUNYbEMsU0FBVWcxQixNQUdkNzNCLEVBQUtILFdBQ0hMLEtBQU0sZUFDTnlFLE1BQ0VpSCxNQUFPLE1BRVRyTCxTQUFVRyxFQUFLSCxTQUFTdkIsSUFBSTQ1QixLQUFPMTRCLEtBQU0sa0JBQ3ZDeUUsTUFDRWlILE1BQU8sTUFFVHJMLFdBQ0dMLEtBQU0sbUJBQ0x5RSxNQUNFaUgsTUFBTyxRQUNQckcsYUFDRTJFLFFBQVMwdUIsRUFBRTF1QixRQUNYaEssS0FBTSxXQUNOcUQsU0FBVWcxQixLQUFRRSxJQUNsQmh6QixVQUFXLE1BQWlCLEVBQVhpekIsRUFBSUQsUUFJekJ2NEIsS0FBTSxtQkFDTnlFLE1BQ0VpSCxNQUFPLFFBQ1ByRyxhQUNFc3pCLFVBQVdOLEtBQVFFLFFBR3ZCbDRCLFNBeEZkLFNBQTJCdTRCLEdBQ3pCLElBQUluTSxLQWVKLE1BZDBCLGNBQXRCbU0sRUFBVSxHQUFHNTRCLE9BQ2Z5c0IsRUFBSW1NLEVBQVUsR0FBR3Y0QixVQUVuQm9zQixFQUFFLEdBQUd2c0IsTUFBUXVzQixFQUFFLEdBQUd2c0IsTUFBTWtFLE9BQ3FCLGVBQXpDdzBCLEVBQVVBLEVBQVU5NkIsT0FBUyxHQUFHa0MsT0FDbEM0NEIsRUFBVUEsRUFBVTk2QixPQUFTLEdBQUdrQyxLQUFPLE1BQ3ZDNDRCLEVBQVVBLEVBQVU5NkIsT0FBUyxHQUFHMkcsTUFDOUJpSCxNQUFPLGFBQ1ByRyxhQUNFRSxVQUFXLHVCQUlqQmtuQixFQUFJQSxFQUFFbm9CLE9BQU9zMEIsRUFBVXZ5QixNQUFNLElBeUVQd3lCLENBQWtCSCxFQUFFcjRCLGlCQUtwQ0wsS0FBTSxlQUNOeUUsTUFDRWlILE1BQU8sUUFDUHJHLGFBQ0V5ekIscUJBQXNCVCxPQUFVMzVCLE9BQU84NUIsT0FDdkN0NEIsTUFBTyxXQUNQRixLQUFNLGFBTVpxNEIsS0FFSzczQixJQW9CUHU0QixDQUFVdEIsR0FFVSxtQkFBVHJyQixFQUNGQSxFQUFLLEtBQU1xckIsRUFBS00sR0FHbEJOLElDbElQdUIsSUFDRkMsTUFDRWo3QixTQUFLNEIsRUFDTHdlLFdBQU94ZSxFQUNQeUQsUUFBSXpELEdBRU5zNUIsTUFBTyxJQXVQVCxPQW5QQSxTQUFlaDVCLEVBQU9pNUIsR0FDcEIsSUFVSUMsRUFhQXA1QixFQXZCQXE1QixFQUFVLEdBQ1ZDLEdBQWMsRUFDZEMsR0FBZ0IsRUFFaEJOLEdBQVNqN0IsU0FBSzRCLEVBQW9Cd2UsV0FBT3hlLEVBQW9CeUQsUUFBSXpELEdBS2pFNDVCLEVBQWEsUUFHQzU1QixJQUFkdTVCLElBQ0ZBLEVBQVksR0FXZCxJQUdJTSxFQUFhLFdBQ2YsT0FBSU4sR0FBYWo1QixFQUFNcEMsUUFKQSxTQUk2QmdKLFFBQVE1RyxFQUFNaTVCLEtBQWUsR0FDM0VHLEdBQW9DLE1BQXJCcDVCLEVBQU1pNUIsS0FDdkJJLEdBQWdCLElBRVgsR0FFbUIsTUFBckJyNUIsRUFBTWk1QixJQUFzQkcsR0FHakNKLEVBQVEsR0FHUmhzQixFQUFNLFNBQVV3c0IsR0FHbEIsSUFGQVIsRUFBUSxHQUVEQyxFQUFZajVCLEVBQU1wQyxRQW5CRixTQW1CK0JnSixRQUFRNUcsRUFBTTBNLE9BQU91c0IsSUFBYyxHQUFLTyxFQUFNNXlCLFFBQVE1RyxFQUFNME0sT0FBT3VzQixLQUFlLEdBQ3RJRSxHQUFXbjVCLEVBQU0wTSxPQUFPdXNCLEdBQ3hCRCxHQUFTaDVCLEVBQU0wTSxPQUFPdXNCLEdBQ3RCQSxJQUdGLE9BQU9NLEtBRUxFLEVBQVcsU0FBVUQsR0FHdkIsSUFGQVIsRUFBUSxHQUVEQyxFQUFZajVCLEVBQU1wQyxRQTlCRixTQThCK0JnSixRQUFRNUcsRUFBTTBNLE9BQU91c0IsSUFBYyxHQUFLTyxFQUFNNXlCLFFBQVE1RyxFQUFNME0sT0FBT3VzQixJQUFjLEdBQ3JJRSxHQUFXbjVCLEVBQU0wTSxPQUFPdXNCLEdBQ3hCRCxHQUFTaDVCLEVBQU0wTSxPQUFPdXNCLEdBQ3RCQSxJQVdGLE9BTklLLEVBQ0ZKLEVBQWNGLEVBRWRNLEVBQWFOLEVBR1JPLEtBS0xHLEVBQWEsU0FBVUMsR0FHekIsR0FGQVgsRUFBUSxHQUVKaDVCLEVBQU1pNUIsS0FBZVUsRUFBekIsQ0FJQSxLQUFPVixFQUFZajVCLEVBQU1wQyxTQUFZKzdCLElBQVUzNUIsRUFBTWk1QixJQUF1QyxPQUF6Qmo1QixFQUFNaTVCLEVBQVksS0FBcUMsT0FBckJqNUIsRUFBTWk1QixJQUE0QyxPQUFyQmo1QixFQUFNaTVCLElBQ3RJRSxHQUFXbjVCLEVBQU0wTSxPQUFPdXNCLEdBQ3hCRCxHQUFTaDVCLEVBQU0wTSxPQUFPdXNCLEdBQ3RCQSxJQUlGLE1BQXlCLE9BQXJCajVCLEVBQU1pNUIsSUFBNEMsT0FBckJqNUIsRUFBTWk1QixJQUF1QkEsR0FBYWo1QixFQUFNcEMsUUFDL0V5N0IsR0FBZ0IsR0FDVCxJQUlMQyxFQUNGSixFQUFjRixFQUFNbjFCLFFBQVEsT0FBUSxLQUVwQ3kxQixFQUFhTixFQUFNbjFCLFFBQVEsT0FBUSxLQUc5QjAxQixPQUlMSyxFQUFTLFNBQVVsbUIsR0FLckIsT0FIQXlsQixHQUFXemxCLEVBQ1h1bEIsSUFFT00sS0FHTE0sRUFBZSxXQUNqQixPQUFRLzVCLEdBQ04sSUFBSyxLQUVIaTVCLEVBQUs1MUIsR0FBSzQxQixFQUFLNTFCLElBQU1tMkIsRUFDckIsTUFDRixJQUFLLFFBQ0VQLEVBQUs3YSxRQUNSNmEsRUFBSzdhLFVBR0g2YSxFQUFLN2EsTUFBTXRYLFFBQVEweUIsR0FBYyxHQUNuQ1AsRUFBSzdhLE1BQU10WixLQUFLMDBCLEdBR2xCLE1BQ0YsSUFBSyxNQUNILElBQUtBLEVBQ0gsT0FBT1IsR0FFVSxPQUFmUSxHQUFzQyxVQUFmQSxJQUN6QlAsRUFBS08sR0FBY0osR0FLekJwNUIsT0FBT0osRUFDUDQ1QixFQUFhLEdBQ2JKLE9BQWN4NUIsR0FhaEIsSUFQQXNOLEVBQUksU0FFcUIsTUFBckJoTixFQUFNaTVCLEtBQ1JXLEVBQU8sS0FDUFIsR0FBYyxJQUdSRyxNQUNGdnNCLEVBQUksVUFEWSxDQUtwQixHQUFnQyxNQUE1QmhOLEVBQU0wTSxPQUFPdXNCLElBR2YsR0FEQW41QixFQUFPLFFBQ0g4NUIsRUFBTyxLQUFNLENBQ2ZQLEdBQWdCLEVBQ2hCLFlBRUcsR0FBZ0MsTUFBNUJyNUIsRUFBTTBNLE9BQU91c0IsSUFHdEIsR0FEQW41QixFQUFPLEtBQ0g4NUIsRUFBTyxLQUFNLENBQ2ZQLEdBQWdCLEVBQ2hCLFlBSUZ2NUIsRUFBTyxNQUlULEdBQUkyNUIsRUFBUyxlQUFpQkgsRUFDNUIsTUFFRixHQUFnQyxNQUE1QnQ1QixFQUFNME0sT0FBT3VzQixJQUErQixRQUFUbjVCLEVBQWdCLENBRXJELEdBQUk4NUIsRUFBTyxLQUNULE1BR0YsR0FBZ0MsTUFBNUI1NUIsRUFBTTBNLE9BQU91c0IsR0FBb0IsQ0FDbkMsR0FBSVcsRUFBTyxLQUNULE1BR0YsR0FBSUYsRUFBVyxLQUNiLE1BR0YsR0FBZ0MsTUFBNUIxNUIsRUFBTTBNLE9BQU91c0IsR0FLZixPQUFPSCxHQUpQLEdBQUljLEVBQU8sS0FDVCxXQUtDLEdBQWdDLE1BQTVCNTVCLEVBQU0wTSxPQUFPdXNCLEdBQXFCLENBQzNDLEdBQUlXLEVBQU8sS0FDVCxNQUVGLEdBQUlGLEVBQVcsS0FDYixNQUdGLEdBQWdDLE1BQTVCMTVCLEVBQU0wTSxPQUFPdXNCLEdBS2YsT0FBT0gsR0FKUCxHQUFJYyxFQUFPLEtBQ1QsV0FLQyxHQUFJSCxFQUFTLGVBQ2xCLE1BS0pJLElBR0YsR0FEQUEsSUFDSVQsRUFBYSxDQUNmLEtBQUlILEVBQVlqNUIsRUFBTXBDLFFBQStCLE1BQXJCb0MsRUFBTWk1QixJQUlwQyxPQUFPSCxHQUhQTSxHQUFjLEVBQ2RRLEVBQU8sS0FNWCxPQUFJUCxFQUNLUCxJQUdBQyxLQUFNQSxFQUFNQyxNQUFPRyxJQzdQOUIsTUFBTVcsR0FBUSxNQUNSQyxHQUFNLE1BSVosU0FBU2x0QixHQUFRN00sRUFBTzhNLEdBRXRCLE9BRGM5TSxFQUFNNEcsUUFBUWt6QixHQUFPaHRCLEdBNEVyQyxPQXhFQSxXQUNFLFNBQVNDLEVBQWdCQyxFQUFLaE4sRUFBT2lOLEdBQ25DLElBQUt6TCxLQUFLd0IsUUFBUWtLLE1BQVFsTixFQUFNbU4sV0FBVzJzQixJQUN6QyxPQUdGLElBQUl2c0IsRUFBVyxHQUNYaE4sRUFBUSxFQUNaLE1BQU0zQyxFQUFTb0MsRUFBTXBDLE9BQ2Y0UCxFQUFNUixFQUFJUSxNQUloQixJQUhBQSxFQUFJOUssUUFBVSxFQUNkOEssRUFBSTdLLFFBQVUsR0FFTjNDLEVBQU1tTixXQUFXNHNCLEdBQUt4NUIsTUFBWUEsRUFBUTNDLEdBRWhELEdBREEyUCxHQUFZdk4sRUFBTTBNLE9BQU9uTSxHQUNHLE9BQXhCUCxFQUFNME0sT0FBT25NLEdBQ2YsT0FBTyxFQUdYLElBQUk0NEIsRUFBVSxHQUNWSixHQUFRajdCLFNBQUs0QixFQUFvQndlLFdBQU94ZSxFQUFvQnlELFFBQUl6RCxHQUNwRSxHQUF5QyxNQUFyQ00sRUFBTTBNLE9BQU9uTSxFQUFRdzVCLEdBQUluOEIsUUFBaUIsQ0FDNUMsTUFBTTRILEVBQU13MEIsR0FBVWg2QixFQUFPTyxFQUFRdzVCLEdBQUluOEIsUUFDekN1N0IsRUFBVTN6QixFQUFJd3pCLE1BQ2RELEVBQU92ekIsRUFBSXV6QixLQUliLFFBQUk5ckIsSUFJYyxhQUFkOHJCLEVBQUtqNUIsT0FDUGk1QixFQUFLajVCLEtBQU8sUUFHZGk1QixFQUFLa0IsWUFBYzFzQixFQUFTMUosUUFBUSxPQUFRLElBQUlBLFFBQVEsT0FBUSxVQUFPbkUsSUFFbkVhLEVBQVEzQyxJQUNIb1AsRUFBSThzQixHQUFRdnNCLEVBQVNwSCxNQUFNLEdBQUs0ekIsR0FBSTV6QixNQUFNLEdBQUtnekIsRUFBL0Nuc0IsRUFDTGxOLEtBQU0sYUFDTkssWUFDQW9FLE1BQ0VpSCxNQUFPLFFBQ1ByRyxZQUFhNHpCLE1BT3JCaHNCLEVBQWdCRixRQUFVQSxHQUUxQixNQUFNYSxFQUFTbE0sS0FBS2tNLE9BR2RDLEVBQW1CRCxFQUFPeFAsVUFBVXlQLGlCQUNwQ0MsRUFBZ0JGLEVBQU94UCxVQUFVMFAsY0FDdkNELEVBQWlCdXNCLE1BQVFudEIsRUFDekJhLEVBQWNFLE9BQU9GLEVBQWNoSCxRQUFRLE9BQVEsRUFBRyxTQUV0RCxNQUFNbUgsRUFBV3ZNLEtBQUt1TSxTQUdsQkEsSUFDZUEsRUFBUzdQLFVBQVU4UCxTQUMzQm1zQixVQUFZLFNBQVU3NUIsR0FDN0IsWUFBYWtCLEtBQUtZLElBQUk5QixHQUFNeEIsS0FBSyxZQzdFdkMsTUFBTWc3QixHQUFRLElBQ1JNLEdBQVUsMkJBSWhCLFNBQVN2dEIsR0FBUTdNLEVBQU84TSxHQUV0QixPQURjOU0sRUFBTTRHLFFBQVFrekIsR0FBT2h0QixHQXFGckMsT0FqRkEsV0FDRSxJQUFJaXRCLEVBQU0sTUFDVixTQUFTaHRCLEVBQWdCQyxFQUFLaE4sR0FDNUIsSUFBS3dCLEtBQUt3QixRQUFRa0ssTUFBUWxOLEVBQU1tTixXQUFXMnNCLElBQ3pDLE9BR0YsSUFBSXZzQixFQUFXLEdBQ1hoTixFQUFRLEVBQ1osTUFBTTNDLEVBQVNvQyxFQUFNcEMsT0FDZjRQLEVBQU1SLEVBQUlRLE1BQ2hCQSxFQUFJOUssUUFBVSxFQUNkOEssRUFBSTdLLFFBQVUsRUFFZCxJQUFJMDNCLEVBQU0sS0FDVixNQUFLQSxFQUFNcjZCLEVBQU0yRixPQUFPLEdBQUdjLE1BQU0yekIsTUFBYTc1QixFQUFRM0MsR0FNcEQsT0FMQTJQLEdBQVl2TixFQUFNMkYsT0FBTyxFQUFHMDBCLEVBQUk5NUIsT0FDaEN3NUIsRUFBTU0sRUFBSSxHQUVWOTVCLEdBQVM4NUIsRUFBSTk1QixNQUFRdzVCLEVBQUluOEIsT0FLM0IsSUFBSXU3QixFQUFVLEdBQ1ZKLEdBQVE3YSxXQUFPeGUsRUFBb0J5RCxRQUFJekQsR0FDM0MsR0FBNEIsTUFBeEJNLEVBQU0wTSxPQUFPbk0sR0FBZ0IsQ0FDL0IsTUFBTWlGLEVBQU13MEIsR0FBVWg2QixFQUFPTyxHQUU3QkEsSUFEQTQ0QixFQUFVM3pCLEVBQUl3ekIsT0FDR3A3QixPQUNqQm03QixFQUFPdnpCLEVBQUl1ekIsS0FHYixRQUFJeDRCLEdBQVMzQyxJQUNKb1AsRUFBSThzQixHQUFRdnNCLEVBQVd3c0IsRUFBTVosRUFBN0Juc0IsRUFDTGxOLEtBQU0sU0FDTkssWUFDQW9FLE1BQ0VpSCxNQUFPLFNBQ1ByRyxZQUFhNHpCLEVBQ2JwdEIsVUFBVzRCLEVBQVN2TyxNQUFNLEtBQUtpVixPQUFPdWtCLEdBQUtBLEdBQUc1NUIsSUFBSTA3QixJQUNoRCxNQUFNOTFCLEVBQU84MUIsRUFBT3AyQixPQUNwQixPQUNFcEUsS0FBTSxVQUNOMkwsUUFBUyxTQUNUQyxZQUNFMUwsTUFBT3dFLEdBRVRyRSxXQUNFTCxLQUFNLE9BQ05FLE1BQU93RSxVQVVyQnVJLEVBQWdCRixRQUFVQSxHQUUxQixNQUFNYSxFQUFTbE0sS0FBS2tNLE9BR2RDLEVBQW1CRCxFQUFPeFAsVUFBVXlQLGlCQUNwQ0MsRUFBZ0JGLEVBQU94UCxVQUFVMFAsY0FDdkNELEVBQWlCNHNCLE9BQVN4dEIsRUFDMUJhLEVBQWNFLE9BQU9GLEVBQWNoSCxRQUFRLE9BQVEsRUFBRyxVQUV0RCxNQUFNbUgsRUFBV3ZNLEtBQUt1TSxTQUdsQkEsSUFDZUEsRUFBUzdQLFVBQVU4UCxTQUMzQndzQixXQUFhLFNBQVVsNkIsR0FDOUIsT0FBT3c1QixHQUFRdDRCLEtBQUtZLElBQUk5QixHQUFNeEIsS0FBSyxJQUFNaTdCLEtDdEYvQyxNQUFNRCxHQUFRLGFBQ1JDLEdBQU0sU0FJWixTQUFTbHRCLEdBQVE3TSxFQUFPOE0sR0FFdEIsT0FEYzlNLEVBQU00RyxRQUFRa3pCLEdBQU9odEIsR0ErRHJDLE9BM0RBLFdBQ0UsU0FBUzJ0QixFQUFlenRCLEVBQUtoTixHQUMzQixJQUFLd0IsS0FBS3dCLFFBQVFrSyxLQUErQixJQUF4QmxOLEVBQU0wNkIsT0FBT1osSUFDcEMsT0FHRixJQUFJZixHQUNGN2EsV0FBT3hlLEVBQ1B5RCxRQUFJekQsR0FHRnM1QixFQUFRLEdBRVosR0FBSWg1QixFQUFNMDZCLE9BQU9YLElBQU8sRUFBRyxDQUN6QixHQUFLLzVCLEVBQU0wNkIsT0FBT1gsSUFBTy81QixFQUFNeUcsTUFBTXN6QixJQUFLLEdBQUduOEIsT0FBVW9DLEVBQU1wQyxRQUNVLE1BQWpFb0MsRUFBTTBNLE9BQU8xTSxFQUFNMDZCLE9BQU9YLElBQU8vNUIsRUFBTXlHLE1BQU1zekIsSUFBSyxHQUFHbjhCLFFBQWlCLENBQzFFLE1BQU00SCxFQUFNdzBCLEdBQVVoNkIsRUFBT0EsRUFBTTA2QixPQUFPWCxJQUFPLzVCLEVBQU15RyxNQUFNc3pCLElBQUssR0FBR244QixRQUNyRW83QixFQUFReHpCLEVBQUl3ekIsTUFDWkQsRUFBT3Z6QixFQUFJdXpCLEtBRWIsSUFBSWoyQixFQUFNOUMsRUFBTTA2QixPQUFPWCxJQWN2QixPQWJJajNCLElBQVE5QyxFQUFNeUcsTUFBTXF6QixJQUFPLEdBQUdsOEIsU0FDaENrRixHQUFPLEdBRUNrSyxFQUFJaE4sRUFBTW1HLE1BQU0sRUFBR25HLEVBQU0wNkIsT0FBT1gsSUFBTy81QixFQUFNeUcsTUFBTXN6QixJQUFLLEdBQUduOEIsUUFBVW83QixFQUFyRWhzQixFQUNSbE4sS0FBTSxXQUNOeUUsTUFDRWlILE1BQU8sV0FDUHJHLFlBQWE0ekIsRUFDYnB0QixZQUFhN0wsS0FBTSxPQUNqQkUsTUFBT0EsRUFBTW1HLE1BQU1uRyxFQUFNeUcsTUFBTXF6QixJQUFPLEdBQUdsOEIsT0FBUWtGLFFBTXpELE9BQU8sRUFHVDIzQixFQUFlNXRCLFFBQVVBLEdBRXpCLE1BQU1hLEVBQVNsTSxLQUFLa00sT0FFZGlCLEVBQWtCakIsRUFBT3hQLFVBQVV5USxnQkFDbkNDLEVBQWVsQixFQUFPeFAsVUFBVTBRLGFBQ3RDRCxFQUFnQmdzQixVQUFZRixFQUM1QjdyQixFQUFhZCxPQUFPYyxFQUFhaEksUUFBUSxjQUFnQixFQUFHLEVBQUcsYUFFL0QsTUFBTW1ILEVBQVd2TSxLQUFLdU0sU0FHbEJBLElBQ2VBLEVBQVM3UCxVQUFVOFAsU0FDM0Iyc0IsVUFBWSxTQUFVcjZCLEdBQzdCLFlBQWFrQixLQUFLWSxJQUFJOUIsR0FBTXhCLEtBQUssc0NDaEVQLGlCQUc1Qjg3QixLQUFNLEVBQ05DLEtBQU0sRUFDTkMsV0FBWSxFQUNaQyxnQkFBaUIsR0FDakJDLFVBQVcsR0FDWEMsVUFBVyxHQUNYQyxNQUFPLEdBQ1BDLGlCQUFrQixHQUNsQkMsZUFBZ0IsR0FDaEJDLFlBQWEsR0FDYkMsVUFBVyxHQUNYQyxXQUFZLEdBQ1pDLGFBQWMsR0FDZEMsUUFBUyxHQUNUQyxRQUFTLEdBQ1RDLFFBQVMsR0FDVEMsVUFBVyxHQUNYQyxlQUFnQixHQUNoQkMsWUFBYSxHQUNiQyxrQkFBbUIsR0FDbkJDLGNBQWUsR0FDZkMsZ0JBQWlCLEdBQ2pCQyxnQkFBaUIsR0FDakJDLGdCQUFpQixHQUNqQkMsZ0JBQWlCLEdBQ2pCQyxhQUFjLEdBQ2RDLGNBQWUsR0FDZkMsY0FBZSxJQUNmQyxjQUFlLElBQ2ZDLGNBQWUsSUFDZkMsc0JBQXVCLDZCQUl2QkMsa0JBQW1CLEdBQU0sSUFDekJDLGdCQUFpQixHQUFNLEdBQU0sR0FBTSxHQUFNLEdBQU0sR0FBTSxJQUNyREMsb0JBQXFCLEdBQU0sR0FBTSxHQUFNLEdBQU0sR0FBTSxHQUFNLElBQ3pEQyxrQkFBbUIsR0FBTSxHQUFNLElBQy9CQyxlQUFnQixJQUFNLEdBQU0sSUFBTSxJQUFNLElBQU0sS0FDOUNDLGVBQWdCLEdBQU0sR0FBTSxHQUFNLEdBQU0sR0FBTSxJQUM5Q0MsZUFBZ0IsR0FBTSxHQUFNLEdBQU0sR0FBTSxHQUFNLHVCQ3hDbEQsSUFBSUMsRUFBSUMsR0FBUUMsWUFpQmhCLElBTUlDLEVBQWUxNUIsVUFBaUIsV0FDaENuQyxLQUFLdUgsS0FBTyxLQUVadkgsS0FBS2dCLEtBQU8sRUFDWmhCLEtBQUs4N0IsWUFBYyxFQUNuQjk3QixLQUFLKzdCLGFBQWUsRUFFcEIvN0IsS0FBS2c4QixZQUVMaDhCLEtBQUtpOEIsaUJBQWtCLEVBRXZCajhCLEtBQUtrOEIsa0JBQW1CLEVBQ3hCbDhCLEtBQUttOEIsZUFBZ0IsRUFDckJuOEIsS0FBS284QixnQkFuQnNCLE9Bc0IvQlAsRUFBYW4vQixVQUFVMi9CLGdCQUFrQixXQUNqQ3I4QixLQUFLZ0IsSUFBTWhCLEtBQUtvOEIsa0JBQ2hCcDhCLEtBQUsrN0IsYUFBZS83QixLQUFLZ0IsSUFDekJoQixLQUFLdUgsS0FBT3ZILEtBQUt1SCxLQUFLME0sVUFBVWpVLEtBQUtnQixLQUNyQ2hCLEtBQUtnQixJQUFNLEVBQ1hoQixLQUFLODdCLFlBQWMsRUFDbkI5N0IsS0FBS2c4QixjQUliSCxFQUFhbi9CLFVBQVU0L0IsUUFBVSxXQUM3QnQ4QixLQUFLZzhCLFNBQVM1NEIsS0FBS3BELEtBQUs4N0IsWUFDeEI5N0IsS0FBSzg3QixXQUFhOTdCLEtBQUtnQixLQUczQjY2QixFQUFhbi9CLFVBQVU2L0IsMkJBQTZCLFNBQVVDLEdBRTFELEdBQUl4OEIsS0FBS2dCLE1BQVFoQixLQUFLKzdCLFlBQWEsQ0FDL0IsSUFBSVUsRUFBU3o4QixLQUFLdUgsS0FBSzlDLFdBQVd6RSxLQUFLZ0IsSUFBTSxHQWxEdkIwN0IsRUFvREVELEdBcERQRSxFQW9ER0gsSUFuRFYsT0FBVUcsR0FBTyxPQUFVRCxHQUFPLE9BQVVBLEdBQU8sUUFxRHpEMThCLEtBQUtnQixNQUNMdzdCLEVBbkRaLFNBQW1DRyxFQUFLRCxHQUNwQyxPQUF3QixNQUFoQkMsRUFBTSxPQUFrQixLQUFTRCxFQWtENUJFLENBQTBCSixFQUFJQyxHQUduQ3o4QixLQUFLczhCLGdCQUtSLElBQUt0OEIsS0FBS2s4QixpQkFFWCxPQURBbDhCLEtBQUttOEIsZUFBZ0IsRUFDZFQsRUFBRXRDLElBakVqQixJQUF5QnVELEVBQUtELEVBb0UxQixPQUFPRixHQUdYWCxFQUFhbi9CLFVBQVVtZ0MsTUFBUSxTQUFVQyxFQUFPQyxHQUN4Qy84QixLQUFLdUgsS0FDTHZILEtBQUt1SCxNQUFRdTFCLEVBR2I5OEIsS0FBS3VILEtBQU91MUIsRUFFaEI5OEIsS0FBSys3QixZQUFjLzdCLEtBQUt1SCxLQUFLbkwsT0FBUyxFQUN0QzRELEtBQUttOEIsZUFBZ0IsRUFDckJuOEIsS0FBS2s4QixpQkFBbUJhLEdBRzVCbEIsRUFBYW4vQixVQUFVc2dDLHVCQUF5QixTQUFVRixHQUN0RDk4QixLQUFLdUgsS0FBT3ZILEtBQUt1SCxLQUFLME0sVUFBVSxFQUFHalUsS0FBS2dCLElBQU0sR0FDbEM4N0IsRUFDQTk4QixLQUFLdUgsS0FBSzBNLFVBQVVqVSxLQUFLZ0IsSUFBTSxFQUFHaEIsS0FBS3VILEtBQUtuTCxRQUV4RDRELEtBQUsrN0IsWUFBYy83QixLQUFLdUgsS0FBS25MLE9BQVMsRUFDdEM0RCxLQUFLbThCLGVBQWdCLEdBSXpCTixFQUFhbi9CLFVBQVV1Z0MsUUFBVSxXQUc3QixHQUZBajlCLEtBQUtnQixNQUVEaEIsS0FBS2dCLElBQU1oQixLQUFLKzdCLFlBSWhCLE9BSEsvN0IsS0FBS2s4QixtQkFDTmw4QixLQUFLbThCLGVBQWdCLEdBRWxCVCxFQUFFdEMsSUFHYixJQUFJb0QsRUFBS3g4QixLQUFLdUgsS0FBSzlDLFdBQVd6RSxLQUFLZ0IsS0FJbkMsT0FBSWhCLEtBQUtpOEIsaUJBQW1CTyxJQUFPZCxFQUFFbEMsV0FDakN4NUIsS0FBS2k4QixpQkFBa0IsRUFDdkJqOEIsS0FBS3M4QixVQUNFdDhCLEtBQUtpOUIsV0FJWlQsSUFBT2QsRUFBRW5DLGlCQUNUdjVCLEtBQUtpOEIsaUJBQWtCLEVBQ2hCUCxFQUFFbEMsWUFHYng1QixLQUFLaThCLGlCQUFrQixFQUloQk8sR0FBTSxNQUFTeDhCLEtBQUt1OEIsMkJBQTJCQyxHQUFNQSxJQUdoRVgsRUFBYW4vQixVQUFVd2dDLFFBQVUsV0FDekJsOUIsS0FBS2dCLE1BQVFoQixLQUFLODdCLGFBQ2xCOTdCLEtBQUs4N0IsV0FBYTk3QixLQUFLZzhCLFNBQVM3a0IsTUFDaENuWCxLQUFLZ0IsT0FHVGhCLEtBQUtnQixZQzVJUSxJQUFJbThCLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksS0FBSyxJQUFLLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksS0FBSyxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxLQUFLLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUssS0FBSyxLQUFLLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsTUFBTSxNQUFNLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLE1BQU0sR0FBRyxHQUFHLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLE1BQU0sR0FBRyxHQUFHLEVBQUUsS0FBSyxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxLQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLE1BQU0sTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxNQUFNLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssS0FBSyxHQUFHLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLE1BQU0sTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxJQUFJLE1BQU0sTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLE1BQU0sSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxHQUFHLE1BQU0sTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsSUFBSSxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEVBQUUsS0FBSyxNQUFNLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxFQUFFLEVBQUUsR0FBRyxHQUFHLElBQUksTUFBTSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEtBQUssR0FBRyxFQUFFLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxNQUFNLE1BQU0sRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxFQUFFLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEdBQUcsRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLEdBQUcsTUFBTSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sR0FBRyxFQUFFLE1BQU0sTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsR0FBRyxNQUFNLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFFLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxLQUFLLElBQUksSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsTUFBTSxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksTUFBTSxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLE1BQU0sTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxNQUFNLE1BQU0sSUFBSSxJQUFJLElBQUksR0FBRyxFQUFF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RUFBRyxFQUFHLEdBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsR0FDbENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxHQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLEdBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsR0FDM0JDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2xDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLEdBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsR0FDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsTUFBUSxLQUFPLEVBQUcsRUFBRyxHQUM5QkMsTUFBUyxNQUFRLEtBQU8sRUFBRyxFQUFHLEdBQzlCQyxNQUFTLE1BQVEsS0FBTyxFQUFHLEVBQUcsR0FDOUJDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxNQUFRLEtBQU8sRUFBRyxFQUFHLEdBQzlCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxHQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2pDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsR0FDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxHQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2xDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsR0FDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxHQUNqQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2xDQyxPQUFVLEtBQU8sS0FBTyxFQUFHLEVBQUcsTUFDOUJDLE9BQVUsS0FBTyxLQUFPLEVBQUcsRUFBRyxNQUM5QkMsTUFBUyxFQUFHLEtBQU8sRUFBRyxFQUFHLElBQ3pCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsSUFDbENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxJQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLElBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE1BQVEsS0FBTyxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsTUFBUSxLQUFPLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLEtBQU8sRUFBRyxFQUFHLFFBQ3pCQyxNQUFTLEVBQUcsS0FBTyxFQUFHLEVBQUcsUUFDekJDLE1BQVMsRUFBRyxLQUFPLEVBQUcsRUFBRyxRQUN6QkMsTUFBUyxFQUFHLEtBQU8sRUFBRyxFQUFHLFFBQ3pCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxNQUFRLE1BQVEsRUFBRyxFQUFHLFFBQy9CQyxNQUFTLE1BQVEsTUFBUSxFQUFHLEVBQUcsUUFDL0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLEtBQU8sRUFBRyxFQUFHLFFBQ3pCQyxNQUFTLEVBQUcsS0FBTyxFQUFHLEVBQUcsUUFDekJDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxPQUFVLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDNUJDLE9BQVUsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUM1QkMsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBRXRDQyx1QkFDSUMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLElBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsSUFDL0JDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxJQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsSUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLElBQy9CelEsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxPQUFTLE9BQVMsTUFBUSxPQUFTLFFBQzFDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzNDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLEVBQUcsT0FBUyxPQUMvQkMsSUFBTyxFQUFHLE9BQVMsS0FBTyxPQUFTLFFBQ25DQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxPQUNyQ0MsSUFBTyxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzNDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsU0FFekNpUCxtQkFDSUMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQnRCLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQmMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCMVIsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE9BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsT0FDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsU0FDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JrUSxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsT0FDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUI3USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUI4USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsT0FDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxPQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsT0FBVSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzVCQyxPQUFVLEVBQUcsT0FBUyxFQUFHLEVBQUcsT0FDNUJDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE9BQVUsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUM1QkMsT0FBVSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzVCQyxPQUFVLEVBQUcsT0FBUyxFQUFHLEVBQUcsU0FFaENDLGFBQ0l0RCxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QnNELElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLElBQU0sRUFBRyxFQUFHLE1BQzVCQyxJQUFPLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDNUJ2RCxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxJQUFNLEVBQUcsRUFBRyxNQUN0QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsTUFDekJ0QixJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJjLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CNkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CNUMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDNkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CNUMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCNkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCdlUsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxPQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsU0FDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJrUSxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDekI2QyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsTUFDekI1QyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QjRDLElBQU8sSUFBTSxPQUFTLE9BQVMsRUFBRyxNQUNsQzNDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxNQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQzdRLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQjhRLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJvQixLQUFRLElBQU0sSUFBTSxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxJQUFNLElBQU0sRUFBRyxFQUFHLE1BQzFCQyxLQUFRLElBQU0sT0FBUyxFQUFHLEVBQUcsTUFDN0JDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxTQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaEM3VCxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUI4VCxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJuVSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJvVSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxHQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxNQUNqQ0MsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQ2pDM0QsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0IyRCxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLE1BQ2pDbFYsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCbVYsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JoVixPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDbENpVixNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDakNoVixPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDbENpVixNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDakNDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNsQ0MsTUFBUyxJQUFNLElBQU0sRUFBRyxFQUFHLE1BQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDakNDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDbENDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2xDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNsQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDbENDLE1BQVMsSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQjdULE1BQVMsT0FBUyxJQUFNLEVBQUcsRUFBRyxNQUM5QjhULE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakM5VCxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakMrVCxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsSUFBTSxJQUFNLEVBQUcsRUFBRyxNQUMzQjlULE1BQVMsSUFBTSxJQUFNLEVBQUcsRUFBRyxNQUMzQitULE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDbENDLE1BQVMsSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUMzQmpVLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQmtVLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxTQUMzQmpVLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkcsTUFBUyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQzNCRSxNQUFTLElBQU0sSUFBTSxFQUFHLEVBQUcsTUFDM0I2VCxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN2QzdULE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQzhULE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDMVQsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDMlQsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNsQzVSLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQzZSLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNsQ0MsTUFBUyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQzNCQyxNQUFTLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQzNCalEsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2xDQyxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsU0FDbENXLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ3NQLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNsQ25QLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxTQUNqQ29QLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNsQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxJQUFNLEVBQUcsRUFBRyxRQUN4QkMsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE9BQVUsSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUM1QkMsT0FBVSxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQzVCQyxPQUFVLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDNUJDLE9BQVUsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNsQ0MsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFNBRXRDQyxtQkFDSXhNLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9Cc0QsSUFBTyxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3JDRSxJQUFPLE9BQVMsSUFBTSxPQUFTLEVBQUcsUUFDbEN2RCxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxJQUFNLElBQU0sT0FBUyxFQUFHLFFBQy9CQyxJQUFPLElBQU0sSUFBTSxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxJQUFNLE9BQVMsRUFBRyxRQUM1QkMsSUFBTyxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3JDQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxPQUFTLEVBQUcsUUFDL0J0QixJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JjLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3JDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQjZDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQnZVLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsTUFBUSxFQUFHLFFBQzlCQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLE9BQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEtBQU8sRUFBRyxRQUM3QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxTQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLE9BQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE1BQVEsRUFBRyxRQUM5QkMsSUFBTyxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLE9BQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9Ca1EsSUFBTyxJQUFNLElBQU0sTUFBUSxFQUFHLFFBQzlCQyxJQUFPLElBQU0sSUFBTSxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQjRDLElBQU8sSUFBTSxPQUFTLE9BQVMsRUFBRyxRQUNsQzNDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsS0FBTyxFQUFHLFFBQzlCQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsSUFDdENDLEtBQVEsT0FBUyxPQUFTLEtBQU8sRUFBRyxRQUNwQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE1BQVEsRUFBRyxRQUNyQzdRLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQzhRLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxLQUFPLEVBQUcsUUFDcENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsTUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsS0FBTyxFQUFHLFFBQ3BDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaEN1QixLQUFRLElBQU0sT0FBUyxPQUFTLEVBQUcsUUFDbkN1SSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJ0SSxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENFLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkUsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQ2hDRSxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxNQUN0Q0MsS0FBUSxFQUFHLE9BQVMsS0FBTyxFQUFHLFFBQzlCRSxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQ2hDQyxLQUFRLEVBQUcsT0FBUyxLQUFPLEVBQUcsUUFDOUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxNQUN0QzdULEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQzhULEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQm5VLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ29VLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0UsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxPQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDL0JDLE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQ2pDM0QsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2pDQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDakMyRCxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxTQUVyQ2lHLGVBQ0kxTSxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQnNELElBQU8sT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUNyQ0UsSUFBTyxPQUFTLElBQU0sT0FBUyxFQUFHLFFBQ2xDdkQsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sSUFBTSxJQUFNLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxJQUFNLElBQU0sT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsSUFBTSxPQUFTLEVBQUcsUUFDNUJDLElBQU8sT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUNyQ0MsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sT0FBUyxFQUFHLFFBQy9CdEIsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CYyxJQUFPLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDOUJDLElBQU8sT0FBUyxPQUFTLE1BQVEsRUFBRyxRQUNwQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxJQUFPLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDOUI2QyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0J2VSxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsTUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsTUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQmtRLElBQU8sSUFBTSxJQUFNLE1BQVEsRUFBRyxRQUM5QkMsSUFBTyxJQUFNLElBQU0sT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0I0QyxJQUFPLElBQU0sT0FBUyxPQUFTLEVBQUcsUUFDbEMzQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxLQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLEtBQy9CQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxLQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsS0FDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsTUFBUSxFQUFHLFFBQy9CQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdEM3USxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsS0FDaEM4USxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLEtBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxLQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDdUIsS0FBUSxJQUFNLE9BQVMsT0FBUyxFQUFHLFFBQ25DdUksS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCdEksS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDRSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJFLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0UsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0UsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDdEM3VCxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaEM4VCxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFR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QUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxLQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLEtBQU8sRUFBRyxLQUM3QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCa1EsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCNkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLElBQ3pCNUMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekI0QyxJQUFPLElBQU0sT0FBUyxPQUFTLEVBQUcsSUFDbEMzQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsSUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaEM3USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUI4USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCb0IsS0FBUSxJQUFNLElBQU0sRUFBRyxFQUFHLElBQzFCQyxLQUFRLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsSUFBTSxJQUFNLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxJQUFNLE9BQVMsRUFBRyxFQUFHLElBQzdCMkksS0FBUSxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQ3BCMUksS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsSUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQzdULEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQjhULEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUMxQm5VLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQm9VLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2pDQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsR0FDakMzRCxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQjJELE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ21HLE1BQVMsRUFBRyxJQUFNLEVBQUcsRUFBRyxNQUN4QmxHLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMzQkMsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2pDbFYsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCbVYsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVB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VSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDMlQsT0FBVSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2xDMEQsT0FBVSxLQUFPLElBQU0sRUFBRyxFQUFHLEtBQzdCQyxNQUFTLEtBQU8sS0FBTyxFQUFHLEVBQUcsS0FDN0IxRCxPQUFVLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDbENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE1BQVEsTUFBUSxFQUFHLEVBQUcsR0FDL0JDLE1BQVMsTUFBUSxNQUFRLEVBQUcsRUFBRyxHQUMvQkMsTUFBUyxNQUFRLE1BQVEsRUFBRyxFQUFHLFFBQy9CQyxNQUFTLE1BQVEsTUFBUSxFQUFHLEVBQUcsUUFDL0JDLE1BQVMsTUFBUSxNQUFRLEVBQUcsRUFBRyxRQUMvQkMsTUFBUyxNQUFRLE1BQVEsRUFBRyxFQUFHLFFBQy9CQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDakNDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNqQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2pDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFT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RUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFNBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsU0FDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JxUSxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsT0FDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE9BQzFCQyxLQUFRLE9BQVMsT0FBUyxNQUFRLEVBQUcsUUFDckM3USxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsT0FDaEM4USxLQUFRLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDL0JDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsT0FDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDZ0QsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsT0FDaENnSSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsSUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxPQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxPQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLE9BQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsTUFDaENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsRUFBRyxPQUNqQ0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFNBRS9CQyxlQUNJeFAsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLEdBQy9CdFIsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLEtBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsT0FDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLE9BQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNxUSxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQy9CQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdEM3USxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsT0FDaEM4USxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsT0FBUyxRQUM1Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDZ0QsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsSUFBTSxPQUFTLFFBQ25DQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsT0FDdENnSSxLQUFRLEVBQUcsT0FBUyxNQUFRLE9BQVMsT0FDckNDLEtBQVEsT0FBUyxPQUFTLE9BQVMsT0FBUyxRQUM1Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLE9BQzVDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsT0FBUyxPQUM1Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE1BQVEsT0FBUyxRQUNyQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDdENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLE1BQVMsT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUN2Q0MsTUFBUyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBRXJDRSxnQkFDSS9nQixJQUFPLEVBQUcsT0FBUyxFQUFHLE9BQVMsS0FDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxPQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDckNDLElBQU8sT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLE9BQVMsT0FDckNDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3JDQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUNyQ3FRLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDL0JDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsT0FBUyxPQUFTLE9BQVMsT0FBUyxRQUM1Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0QzdRLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxPQUNoQzhRLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENnRCxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsT0FBUyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxJQUFNLE9BQVMsUUFDbkNDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxPQUN0Q2dJLEtBQVEsRUFBRyxPQUFTLE1BQVEsT0FBUyxPQUNyQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLFFBQzVDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsT0FDNUNDLEtBQVEsT0FBUyxPQUFTLE9BQVMsT0FBUyxRQUM1Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxPQUFTLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsT0FBUyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxPQUFTLE9BQzVDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsTUFBUSxPQUFTLFFBQ3JDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLE9BQVMsUUFDdENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsT0FBUyxRQUN0Q0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3RDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLE9BQVMsUUFDNUNDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxPQUFTLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLE9BQVMsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsTUFBUyxPQUFTLE9BQVMsRUFBRyxPQUFTLFFBQ3ZDQyxNQUFTLEVBQUcsT0FBUyxFQUFHLE9BQVMsUUFFckNHLGtCQUNJclEsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJzRCxJQUFPLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDL0JDLElBQU8sT0FBUyxJQUFNLEVBQUcsRUFBRyxLQUM1QkMsSUFBTyxPQUFTLElBQU0sRUFBRyxFQUFHLFNBQzVCdkQsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsSUFBTSxFQUFHLEVBQUcsS0FDdEJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLEtBQ3pCdEIsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQ3pCYyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekI2QyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJ2VSxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxTQUMvQkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDOUJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QmtRLElBQU8sSUFBTSxJQUFNLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDekI0QyxJQUFPLElBQU0sT0FBUyxPQUFTLEVBQUcsS0FDbEMzQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsS0FDdENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaEM3USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUI4USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxJQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCdUIsS0FBUSxJQUFNLE9BQVMsRUFBRyxFQUFHLEtBQzdCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDMUJFLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQmlNLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUMxQnhMLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkcsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDN1QsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQzFCOFQsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDMUJHLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxLQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJuVSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDMUJvVSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsS0FDMUJFLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsS0FDakNDLE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxTQUNqQzNELE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCMkQsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsU0FFL0I4SixvQkFDSXZRLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQy9Cc0QsSUFBTyxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3JDQyxJQUFPLE9BQVMsSUFBTSxPQUFTLEVBQUcsSUFDbENDLElBQU8sT0FBUyxJQUFNLE9BQVMsRUFBRyxRQUNsQ3ZELElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLElBQU0sSUFBTSxPQUFTLEVBQUcsUUFDL0JDLElBQU8sSUFBTSxJQUFNLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLElBQU0sT0FBUyxFQUFHLElBQzVCQyxJQUFPLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDckNDLElBQU8sS0FBTyxPQUFTLEVBQUcsRUFBRyxRQUM3QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sSUFBTSxJQUFNLE9BQVMsRUFBRyxJQUMvQnRCLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsSUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsSUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsSUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUMvQmMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEtBQU8sT0FBUyxPQUFTLEVBQUcsUUFDbkNDLEtBQVEsSUFBTSxJQUFNLE9BQVMsRUFBRyxRQUNoQ0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CNkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CdlUsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLE1BQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEtBQU8sT0FBUyxPQUFTLEVBQUcsUUFDbkNDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxPQUMvQkMsSUFBTyxFQUFHLE9BQVMsTUFBUSxFQUFHLFFBQzlCQyxJQUFPLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDOUJDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JrUSxJQUFPLElBQU0sSUFBTSxPQUFTLEVBQUcsUUFDL0JDLElBQU8sSUFBTSxJQUFNLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsTUFBUSxFQUFHLElBQzlCNEMsSUFBTyxJQUFNLE9BQVMsT0FBUyxFQUFHLElBQ2xDM0MsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDL0JDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLElBQ3RDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDN1EsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDOFEsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2hDQyxLQUFRLE9BQVMsT0FBUyxNQUFRLEVBQUcsUUFDckNDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxRQUN0Q0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxNQUFRLEVBQUcsUUFDL0JDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxPQUFTLEVBQUcsUUFDdENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ3VCLEtBQVEsSUFBTSxPQUFTLE9BQVMsRUFBRyxJQUNuQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2hDRSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJTLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0csS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDN1QsS0FBUSxFQUFHLE9BQVMsTUFBUSxFQUFHLElBQy9COFQsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsSUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsSUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCblUsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2hDb1UsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2hDRSxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2pDQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsR0FDakMzRCxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDakNDLE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNqQzJELE1BQVMsRUFBRyxPQUFTLE9BQVMsRUFBRyxJQUNqQ0MsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLEtBRXJDK0oscUJBQ0l4USxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QnNELElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUMvQkMsSUFBTyxPQUFTLElBQU0sRUFBRyxFQUFHLElBQzVCQyxJQUFPLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDNUJ2RCxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxJQUFNLEVBQUcsRUFBRyxJQUN0QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQy9CQyxJQUFPLEtBQU8sT0FBUyxFQUFHLEVBQUcsUUFDN0JDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsSUFDekJ0QixJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDekJjLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxLQUFPLE9BQVMsRUFBRyxFQUFHLFFBQzdCQyxLQUFRLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDMUJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QjZDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QnZVLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxLQUFPLE9BQVMsRUFBRyxFQUFHLFFBQzdCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsT0FDekJDLElBQU8sRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUMvQkMsSUFBTyxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEtBQU8sRUFBRyxRQUM3QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCa1EsSUFBTyxJQUFNLElBQU0sRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLElBQU0sSUFBTSxFQUFHLEVBQUcsUUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUN6QjRDLElBQU8sSUFBTSxPQUFTLE9BQVMsRUFBRyxJQUNsQzNDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDekJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsT0FBUyxPQUFTLE9BQVMsRUFBRyxJQUN0Q0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxRQUNoQzdRLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQjhRLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLFFBQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLE9BQVMsRUFBRyxRQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsT0FBUyxFQUFHLFFBQ2hDQyxLQUFRLEVBQUcsT0FBUyxPQUFTLEVBQUcsUUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxPQUFTLE9BQVMsT0FBUyxFQUFHLFFBQ3RDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJ1QixLQUFRLElBQU0sT0FBUyxFQUFHLEVBQUcsSUFDN0JHLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQlMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCRyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsUUFDaEM3VCxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUI4VCxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLElBQzFCRSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJsVSxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUJrZixLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsSUFDMUI5SyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsTUFBUyxFQUFHLE9BQVMsT0FBUyxFQUFHLElBQ2pDQyxNQUFTLEVBQUcsT0FBUyxPQUFTLEVBQUcsR0FDakMzRCxNQUFTLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMzQjJELE1BQVMsRUFBRyxPQUFTLEVBQUcsRUFBRyxJQUMzQkMsTUFBUyxFQUFHLE9BQVMsRUFBRyxFQUFHLEtBRS9CaUssa0JBQ0lyaEIsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFFBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE1BQVEsRUFBRyxRQUMxQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFFBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFFBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxPQUFTLEdBQUssT0FBUyxFQUFHLFNBQ2pDQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFNBQzNCQyxJQUFPLEVBQUcsR0FBSyxNQUFRLEVBQUcsT0FDMUJDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFNBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxLQUMzQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFFBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxFQUFHLEdBQUssT0FBUyxFQUFHLFFBQzNCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFDM0JDLElBQU8sRUFBRyxHQUFLLE9BQVMsRUFBRyxRQUMzQkMsSUFBTyxFQUFHLEdBQUssTUFBUSxFQUFHLFFBQzFCQyxJQUFPLEVBQUcsR0FBSyxPQUFTLEVBQUcsUUFFL0I2ZixpQkFDSXZRLElBQU8sT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM1QkMsSUFBTyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzVCTSxJQUFPLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDNUJLLElBQU8sT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM1QjZDLElBQU8sT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM1QjVDLElBQU8sT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM1QjhDLEtBQVEsT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM3QkUsS0FBUSxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzdCN1MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsUUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxRQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLFFBQzFCcWYsT0FBVSxNQUFTLEtBQU8sRUFBRyxFQUFHLFFBQ2hDekosTUFBUyxLQUFPLEdBQUssRUFBRyxFQUFHLFFBQzNCQyxNQUFTLEtBQU8sR0FBSyxFQUFHLEVBQUcsUUFDM0JZLE1BQVMsS0FBTyxHQUFLLEVBQUcsRUFBRyxRQUMzQkUsTUFBUyxLQUFPLEdBQUssRUFBRyxFQUFHLFFBQzNCMkksTUFBUyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxJQUFNLEVBQUcsRUFBRyxTQUM5Qi9ILE1BQVMsT0FBUyxJQUFNLEVBQUcsRUFBRyxHQUM5QjdULE9BQVUsT0FBUyxLQUFPLEVBQUcsRUFBRyxRQUNoQ0UsT0FBVSxPQUFTLEtBQU8sRUFBRyxFQUFHLFFBQ2hDaVUsTUFBUyxPQUFTLEtBQU8sT0FBUyxFQUFHLFFBQ3JDMEgsTUFBUyxLQUFPLEtBQU8sT0FBUyxFQUFHLFFBQ25DQyxNQUFTLEtBQU8sS0FBTyxPQUFTLEVBQUcsUUFDbkNDLE1BQVMsT0FBUyxLQUFPLE9BQVMsRUFBRyxRQUNyQ0MsTUFBUyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzlCakcsTUFBUyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxJQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQzlCK0YsT0FBVSxNQUFTLEtBQU8sRUFBRyxFQUFHLFFBQ2hDcEYsT0FBVSxPQUFTLElBQU0sRUFBRyxFQUFHLFFBQy9CQyxPQUFVLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDL0JvRixPQUFVLE9BQVMsSUFBTSxFQUFHLEVBQUcsU0FDL0JDLE9BQVUsT0FBUyxJQUFNLEVBQUcsRUFBRyxTQUMvQkMsT0FBVSxPQUFTLElBQU0sRUFBRyxFQUFHLFNBQy9CQyxPQUFVLE9BQVMsSUFBTSxFQUFHLEVBQUcsUUFDL0JDLE9BQVUsT0FBUyxJQUFNLEVBQUcsRUFBRyxTQUVuQ0MsaUJBQ0l6UixJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUJDLElBQU8sT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM1Qk0sSUFBTyxPQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzVCSyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUI2QyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUI1QyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUI4QyxLQUFRLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDN0JFLEtBQVEsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM3QjdTLEtBQVEsRUFBRyxJQUFNLEVBQUcsRUFBRyxHQUN2QkMsS0FBUSxFQUFHLElBQU0sRUFBRyxFQUFHLEdBQ3ZCQyxLQUFRLEVBQUcsSUFBTSxFQUFHLEVBQUcsR0FDdkJDLEtBQVEsRUFBRyxJQUFNLEVBQUcsRUFBRyxHQUN2QnNmLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxTQUM5QkMsTUFBUyxPQUFTLEtBQU0sRUFBRyxFQUFHLFNBQzlCQyxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsU0FDOUIvSCxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsR0FDOUJNLE1BQVMsT0FBUyxLQUFNLE9BQVMsRUFBRyxRQUNwQzBILE1BQVMsS0FBTyxLQUFNLE9BQVMsRUFBRyxRQUNsQ0MsTUFBUyxLQUFPLEtBQU0sT0FBUyxFQUFHLFFBQ2xDQyxNQUFTLE9BQVMsS0FBTSxPQUFTLEVBQUcsUUFDcENDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxTQUM5QkMsTUFBUyxPQUFTLEtBQU0sRUFBRyxFQUFHLFNBQzlCQyxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsU0FDOUJDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxTQUM5QmpHLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QlcsT0FBVSxPQUFTLEtBQU0sRUFBRyxFQUFHLFFBQy9CQyxPQUFVLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDL0JvRixPQUFVLE9BQVMsS0FBTSxFQUFHLEVBQUcsU0FDL0JDLE9BQVUsT0FBUyxLQUFNLEVBQUcsRUFBRyxTQUMvQkMsT0FBVSxPQUFTLEtBQU0sRUFBRyxFQUFHLFNBQy9CQyxPQUFVLE9BQVMsS0FBTSxFQUFHLEVBQUcsU0FDL0JDLE9BQVUsT0FBUyxLQUFNLEVBQUcsRUFBRyxVQUVuQ0UsaUJBQ0kxUixJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUJDLElBQU8sT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM1Qk0sSUFBTyxPQUFTLEtBQU0sRUFBRyxFQUFHLFNBQzVCSyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUI2QyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsU0FDNUI1QyxJQUFPLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDNUI4QyxLQUFRLE9BQVMsS0FBTSxFQUFHLEVBQUcsS0FDN0JFLEtBQVEsT0FBUyxLQUFNLEVBQUcsRUFBRyxLQUM3QjdTLEtBQVEsRUFBRyxJQUFNLEVBQUcsRUFBRyxTQUN2QkMsS0FBUSxFQUFHLElBQU0sRUFBRyxFQUFHLFNBQ3ZCQyxLQUFRLEVBQUcsSUFBTSxFQUFHLEVBQUcsU0FDdkJDLEtBQVEsRUFBRyxJQUFNLEVBQUcsRUFBRyxTQUN2QnlYLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxHQUM5QnFDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QlcsT0FBVSxPQUFTLEtBQU0sRUFBRyxFQUFHLEtBQy9CQyxPQUFVLE9BQVMsS0FBTSxFQUFHLEVBQUcsTUFFbkMyRixpQkFDSTNSLElBQU8sUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUM1QkMsSUFBTyxRQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzVCTSxJQUFPLFFBQVMsS0FBTSxFQUFHLEVBQUcsU0FDNUJLLElBQU8sUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUM1QjZDLElBQU8sUUFBUyxLQUFNLEVBQUcsRUFBRyxTQUM1QjVDLElBQU8sUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUM1QjhDLEtBQVEsUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUM3QkUsS0FBUSxRQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzdCN1MsS0FBUSxFQUFHLEtBQU8sRUFBRyxFQUFHLFFBQ3hCQyxLQUFRLEVBQUcsS0FBTyxFQUFHLEVBQUcsUUFDeEJDLEtBQVEsRUFBRyxLQUFPLEVBQUcsRUFBRyxRQUN4QkMsS0FBUSxFQUFHLEtBQU8sRUFBRyxFQUFHLFFBQ3hCeVgsTUFBUyxRQUFTLEtBQU0sRUFBRyxFQUFHLEdBQzlCcUMsTUFBUyxRQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzlCQyxNQUFTLFFBQVMsS0FBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxRQUFTLEtBQU0sRUFBRyxFQUFHLFFBQzlCd0csTUFBUyxPQUFTLE1BQU8sRUFBRyxFQUFHLE1BQy9CQyxNQUFTLEtBQU8sR0FBSyxFQUFHLEVBQUcsTUFDM0JDLE1BQVMsT0FBUyxNQUFPLEVBQUcsRUFBRyxNQUMvQkMsTUFBUyxPQUFTLE1BQU8sRUFBRyxFQUFHLE1BQy9CQyxNQUFTLEtBQU8sR0FBSyxFQUFHLEVBQUcsTUFDM0JDLE1BQVMsT0FBUyxNQUFPLEVBQUcsRUFBRyxNQUMvQkMsTUFBUyxPQUFTLE1BQU8sRUFBRyxFQUFHLFFBQy9CQyxPQUFVLE1BQVMsS0FBTyxFQUFHLEVBQUcsUUFDaENDLE1BQVMsT0FBUyxNQUFPLEVBQUcsRUFBRyxRQUMvQkMsTUFBUyxPQUFTLE1BQU8sRUFBRyxFQUFHLFFBQy9CQyxPQUFVLE1BQVMsS0FBTyxFQUFHLEVBQUcsUUFDaENDLE1BQVMsT0FBUyxNQUFPLEVBQUcsRUFBRyxRQUMvQkMsTUFBUyxLQUFPLEdBQUssRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsS0FBTSxFQUFHLEVBQUcsUUFDOUJDLE1BQVMsT0FBUyxFQUFHLEVBQUcsRUFBRyxRQUMzQkMsTUFBUyxFQUFHLEdBQUssRUFBRyxFQUFHLFFBQ3ZCQyxNQUFTLEtBQU8sR0FBSyxFQUFHLEVBQUcsUUFDM0JDLE1BQVMsT0FBUyxLQUFNLEVBQUcsRUFBRyxRQUM5QkMsTUFBUyxPQUFTLEVBQUcsRUFBRyxFQUFHLFFBQzNCQyxNQUFTLE9BQVMsS0FBTyxFQUFHLEVBQUcsU0FDL0JoSCxPQUFVLFFBQVMsS0FBTSxFQUFHLEVBQUcsUUFDL0JDLE9BQVUsUUFBUyxLQUFNLEVBQUcsRUFBRyxRQUMvQmdILFFBQVcsT0FBUyxLQUFPLEVBQUcsRUFBRyxTQUNqQ0MsUUFBVyxPQUFTLEtBQU8sRUFBRyxFQUFHLFNBQ2pDQyxPQUFVLEVBQUcsSUFBTSxFQUFHLEVBQUcsS0FDekJDLE9BQVUsRUFBRyxJQUFNLEVBQUcsRUFBRyxLQUN6QkMsT0FBVSxFQUFHLElBQU0sRUFBRyxFQUFHLEtBQ3pCQyxPQUFVLEVBQUcsSUFBTSxFQUFHLEVBQUcsTUFFN0JDLHNCQUNJMVQsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJzRCxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUMvQkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CdkQsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUMvQkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQ0MsSUFBTyxPQUFTLEtBQU8sRUFBRyxFQUFHLE1BQzdCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDaENDLElBQU8sRUFBRyxLQUFPLEVBQUcsRUFBRyxNQUN2QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CdEIsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCYyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUMvQjZDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQzVDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQzZDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQzVDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QjZDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QnZVLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCa1EsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CNkMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CNUMsSUFBTyxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQy9CQyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekI0QyxJQUFPLE9BQVMsRUFBRyxFQUFHLEVBQUcsTUFDekI2UCxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJ4UyxJQUFPLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDekJDLElBQU8sRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUN6QkMsSUFBTyxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQ3pCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDaENDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDaEM3USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUI4USxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQ0MsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQ2hDQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCb0IsS0FBUSxPQUFTLE9BQVMsRUFBRyxFQUFHLE1BQ2hDQyxLQUFRLE9BQVMsT0FBUyxFQUFHLEVBQUcsTUFDaENDLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCMFAsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCdlAsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCUyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJHLEtBQVEsT0FBUyxPQUFTLEVBQUcsRUFBRyxNQUNoQ0MsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJDLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQkMsS0FBUSxFQUFHLE9BQVMsRUFBRyxFQUFHLE1BQzFCQyxLQUFRLEVBQUcsT0FBUyxFQUFHLEVBQUcsTUFDMUJFLEtBQVEsRUFBRyxPQUFTLEVBQUcsRUFBRyxNQUMxQmxVLEtBQVEsRUFBRyxPQUFTLEVBQUcs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VSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWN29ELElBQVEsS0FDUkMsSUFBUSxLQUNSRixJQUFRLEtBQ1Irb0QsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZwcEQsSUFBUSxLQUNScXBELElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFRLEtBQ1JDLElBQVEsS0FDUkMsSUFBVSxNQUNWQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsTUFDVkMsSUFBVSxLQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFRLEtBQ1JDLElBQVEsS0FDUkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsTUFDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBVSxLQUNWQyxJQUFRLEtBQ1JDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBUSxLQUNSQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBUSxLQUNSQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxLQUNWQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWdmtELElBQVEsS0FDUndrRCxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFRLEtBQ1JDLElBQVEsS0FDUkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFRLEtBQ1JDLElBQVEsS0FDUkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBUSxLQUNSQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsTUFDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBUSxLQUNSQyxJQUFRLEtBQ1JDLElBQVUsTUFDVkMsSUFBVSxNQUNWQyxJQUFVLE1BQ1ZDLElBQVUsTUFDVkMsSUFBVSxLQUNWQyxJQUFVLE1BQ1ZDLElBQVUsS0FDVkMsSUFBVSxNQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBUSxLQUNSQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVUsS0FDVkMsSUFBVSxLQUNWQyxJQUFVLEtBQ1ZDLElBQVEsS0FDUkMsSUFBVSxLQUNWQyxJQUFVLEtB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