403Webshell
Server IP : 82.208.35.60  /  Your IP : 216.73.216.89
Web Server : Apache/2.4.55 (FreeBSD) OpenSSL/1.1.1q-freebsd PHP/7.3.31
System : FreeBSD server7.d2m.cz 12.4-RELEASE-p9 FreeBSD 12.4-RELEASE-p9 GENERIC amd64
User : studiokobylisy_cz ( 1008)
PHP Version : 7.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/air-sport_cz/www/admin939wizxmp/themes/new-theme/public/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/air-sport_cz/www/admin939wizxmp/themes/new-theme/public/category.bundle.js
/*! For license information please see category.bundle.js.LICENSE.txt */
(()=>{var e={4110:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=window.$;t.default=function(e,t){n.post(e).then((function(){return window.location.assign(t)}))}},43284:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n(99663)),i=l(n(22600)),o=l(n(72100)),a=n(76544),s=l(n(25121));function l(e){return e&&e.__esModule?e:{default:e}}var c=window.$,u=function(){function e(t,n){if((0,r.default)(this,e),0!==c(t.container).length){if(this.originalUrl=n,this.useMultiLang=void 0!==t.multiLanguageInput||void 0!==t.multiLanguageField,this.useMultiLang){var i=[];t.multiLanguageInput&&i.push(t.multiLanguageInput),t.multiLanguageField&&i.push(t.multiLanguageField),this.multiLangSelector=i.join(","),this.attachMultiLangEvents()}this.data={url:n,title:"",description:""},this.vm=new o.default({el:t.container,template:'<serp ref="serp" :url="url" :title="title" :description="description" />',components:{serp:s.default},data:this.data}),this.initializeSelectors(t),this.attachInputEvents()}}return(0,i.default)(e,[{key:"attachMultiLangEvents",value:function(e){var t=this;c("body").on("click",e,(function(){t.checkTitle(),t.checkDesc(),t.checkUrl()})),a.EventEmitter.on("languageSelected",(function(){t.checkTitle(),t.checkDesc(),t.checkUrl()}))}},{key:"initializeSelectors",value:function(e){this.defaultTitle=c(e.defaultTitle),this.watchedTitle=c(e.watchedTitle),this.defaultDescription=c(e.defaultDescription),this.watchedDescription=c(e.watchedDescription),this.watchedMetaUrl=c(e.watchedMetaUrl)}},{key:"attachInputEvents",value:function(){var e=this;c(this.defaultTitle).on("keyup change",(function(){return e.checkTitle()})),c(this.watchedTitle).on("keyup change",(function(){return e.checkTitle()})),c(this.defaultDescription).on("keyup change",(function(){return e.checkDesc()})),c(this.watchedDescription).on("keyup change",(function(){return e.checkDesc()})),this.watchedMetaUrl.on("keyup change",(function(){return e.checkUrl()})),this.checkTitle(),this.checkDesc(),this.checkUrl()}},{key:"setTitle",value:function(e){this.data.title=e}},{key:"setDescription",value:function(e){this.data.description=e}},{key:"setUrl",value:function(e){this.data.url=this.originalUrl.replace("{friendy-url}",e),this.data.url=this.data.url.replace("{friendly-url}",e)}},{key:"checkTitle",value:function(){var e=this.defaultTitle,t=this.watchedTitle;this.useMultiLang&&(t=t.closest(this.multiLangSelector).find("input"),e=e.closest(this.multiLangSelector).find("input"));var n=t.length?t.val():"",r=e.length?e.val():"";this.setTitle(""===n?r:n),this.checkUrl()}},{key:"checkDesc",value:function(){var e=this.watchedDescription,t=this.defaultDescription;this.useMultiLang&&(e=e.closest(this.multiLangSelector).find(this.watchedDescription.is("input")?"input":"textarea"),t=t.closest(this.multiLangSelector).find(this.defaultDescription.is("input")?"input":"textarea"));var n=e.length?e.val().innerText||e.val():"",r=t.length?c(t.val()).text()||t.val():"";this.setDescription(""===n?r:n)}},{key:"checkUrl",value:function(){var e=this.watchedMetaUrl;this.useMultiLang&&(e=e.closest(this.multiLangSelector).find("input")),this.setUrl(e.val())}}]),e}();t.default=u},61353:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(t){(0,r.default)(this,e),this.selector=".ps-sortable-column",this.columns=a(t).find(this.selector)}return(0,i.default)(e,[{key:"attach",value:function(){var e=this;this.columns.on("click",(function(t){var n=a(t.delegateTarget);e.sortByColumn(n,e.getToggledSortDirection(n))}))}},{key:"sortBy",value:function(e,t){var n=this.columns.is('[data-sort-col-name="'+e+'"]');if(!n)throw new Error('Cannot sort by "'+e+'": invalid column');this.sortByColumn(n,t)}},{key:"sortByColumn",value:function(e,t){window.location=this.getUrl(e.data("sortColName"),"desc"===t?"desc":"asc",e.data("sortPrefix"))}},{key:"getToggledSortDirection",value:function(e){return"asc"===e.data("sortDirection")?"desc":"asc"}},{key:"getUrl",value:function(e,t,n){var r=new URL(window.location.href),i=r.searchParams;return n?(i.set(n+"[orderBy]",e),i.set(n+"[sortOrder]",t)):(i.set("orderBy",e),i.set("sortOrder",t)),r.toString()}}]),e}();t.default=s},34684:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){var t=this;(0,r.default)(this,e),a(document).on("change",".js-choice-table-select-all",(function(e){t.handleSelectAll(e)}))}return(0,i.default)(e,[{key:"handleSelectAll",value:function(e){var t=a(e.target),n=t.is(":checked");t.closest("table").find("tbody input:checkbox").prop("checked",n)}}]),e}();t.default=s},76544:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventEmitter=void 0;var r,i=(r=n(17187))&&r.__esModule?r:{default:r},o=t.EventEmitter=new i.default;t.default=o},29145:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=(r=n(99663))&&r.__esModule?r:{default:r},o=window.$;t.default=function e(){(0,i.default)(this,e),o(document).on("click",".js-form-submit-btn",(function(e){e.preventDefault();var t=o(this);if(!t.data("form-confirm-message")||!1!==window.confirm(t.data("form-confirm-message"))){var n="POST",r=null;if(t.data("method")){var i=t.data("method"),a=["GET","POST"].includes(i);n=a?i:"POST",a||(r=o("<input>",{type:"_hidden",name:"_method",value:i}))}var s=o("<form>",{action:t.data("form-submit-url"),method:n});r&&s.append(r),t.data("form-csrf-token")&&s.append(o("<input>",{type:"_hidden",name:"_csrf_token",value:t.data("form-csrf-token")})),s.appendTo("body").submit()}}))}},19078:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(t){var n=this;return(0,r.default)(this,e),this.$container=a(t),this.$container.on("click",".js-input-wrapper",(function(e){var t=a(e.currentTarget);n.toggleChildTree(t)})),this.$container.on("click",".js-toggle-choice-tree-action",(function(e){var t=a(e.currentTarget);n.toggleTree(t)})),{enableAutoCheckChildren:function(){return n.enableAutoCheckChildren()},enableAllInputs:function(){return n.enableAllInputs()},disableAllInputs:function(){return n.disableAllInputs()}}}return(0,i.default)(e,[{key:"enableAutoCheckChildren",value:function(){this.$container.on("change",'input[type="checkbox"]',(function(e){var t=a(e.currentTarget);t.closest("li").find('ul input[type="checkbox"]').prop("checked",t.is(":checked"))}))}},{key:"enableAllInputs",value:function(){this.$container.find("input").removeAttr("disabled")}},{key:"disableAllInputs",value:function(){this.$container.find("input").attr("disabled","disabled")}},{key:"toggleChildTree",value:function(e){var t=e.closest("li");t.hasClass("expanded")?t.removeClass("expanded").addClass("collapsed"):t.hasClass("collapsed")&&t.removeClass("collapsed").addClass("expanded")}},{key:"toggleTree",value:function(e){var t=e.closest(".js-choice-tree-container"),n=e.data("action"),r={addClass:{expand:"expanded",collapse:"collapsed"},removeClass:{expand:"collapsed",collapse:"expanded"},nextAction:{expand:"collapse",collapse:"expand"},text:{expand:"collapsed-text",collapse:"expanded-text"},icon:{expand:"collapsed-icon",collapse:"expanded-icon"}};t.find("li").each((function(e,t){var i=a(t);i.hasClass(r.removeClass[n])&&i.removeClass(r.removeClass[n]).addClass(r.addClass[n])})),e.data("action",r.nextAction[n]),e.find(".material-icons").text(e.data(r.icon[n])),e.find(".js-toggle-text").text(e.data(r.text[n]))}}]),e}();t.default=s},85820:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=(r=n(99663))&&r.__esModule?r:{default:r},o=window.$;t.default=function e(){(0,i.default)(this,e),o(document).on("input",".js-recommended-length-input",(function(e){var t=o(e.currentTarget);o(t.data("recommended-length-counter")).find(".js-current-length").text(t.val().length)}))}},29573:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){var t=this;return(0,r.default)(this,e),{extend:function(e){return t.extend(e)}}}return(0,i.default)(e,[{key:"extend",value:function(e){e.getContainer().on("click",".js-delete-categories-bulk-action",(function(t){t.preventDefault();var n=a(t.currentTarget).data("categories-delete-url"),r=a("#"+e.getId()+"_grid_delete_categories_modal");r.modal("show"),r.on("click",".js-submit-delete-categories",(function(){var t=e.getContainer().find(".js-bulk-action-checkbox:checked"),i=a("#delete_categories_categories_to_delete");t.each((function(e,t){var n=a(t),r=i.data("prototype").replace(/__name__/g,n.val()),o=a(a.parseHTML(r)[0]);o.val(n.val()),i.append(o)}));var o=r.find("form");o.attr("action",n),o.submit()}))}))}}]),e}();t.default=s},9735:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){var t=this;return(0,r.default)(this,e),{extend:function(e){return t.extend(e)}}}return(0,i.default)(e,[{key:"extend",value:function(e){e.getContainer().on("click",".js-delete-category-row-action",(function(t){t.preventDefault();var n=a("#"+e.getId()+"_grid_delete_categories_modal");n.modal("show"),n.on("click",".js-submit-delete-categories",(function(){var e=a(t.currentTarget),r=e.data("category-id"),i=a("#delete_categories_categories_to_delete"),o=i.data("prototype").replace(/__name__/g,i.children().length),s=a(a.parseHTML(o)[0]);s.val(r),i.append(s);var l=n.find("form");l.attr("action",e.data("category-delete-url")),l.submit()}))}))}}]),e}();t.default=s},91781:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(99663)),i=a(n(22600)),o=a(n(68840));function a(e){return e&&e.__esModule?e:{default:e}}var s=window.$,l=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){var t=this;e.getContainer().on("click",".js-submit-row-action",(function(n){n.preventDefault();var r=s(n.currentTarget),i=r.data("confirmMessage"),o=r.data("title"),a=r.data("method");if(o)t.showConfirmModal(r,e,i,o,a);else{if(i.length&&!window.confirm(i))return;t.postForm(r,a)}}))}},{key:"postForm",value:function(e,t){var n=["GET","POST"].includes(t),r=s("<form>",{action:e.data("url"),method:n?t:"POST"}).appendTo("body");n||r.append(s("<input>",{type:"_hidden",name:"_method",value:t})),r.submit()}},{key:"showConfirmModal",value:function(e,t,n,r,i){var a=this,s=e.data("confirmButtonLabel"),l=e.data("closeButtonLabel"),c=e.data("confirmButtonClass");new o.default({id:t.getId()+"-grid-confirm-modal",confirmTitle:r,confirmMessage:n,confirmButtonLabel:s,closeButtonLabel:l,confirmButtonClass:c},(function(){return a.postForm(e,i)})).show()}}]),e}();t.default=l},5595:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){this.handleBulkActionCheckboxSelect(e),this.handleBulkActionSelectAllCheckbox(e)}},{key:"handleBulkActionSelectAllCheckbox",value:function(e){var t=this;e.getContainer().on("change",".js-bulk-action-select-all",(function(n){var r=a(n.currentTarget).is(":checked");r?t.enableBulkActionsBtn(e):t.disableBulkActionsBtn(e),e.getContainer().find(".js-bulk-action-checkbox").prop("checked",r)}))}},{key:"handleBulkActionCheckboxSelect",value:function(e){var t=this;e.getContainer().on("change",".js-bulk-action-checkbox",(function(){e.getContainer().find(".js-bulk-action-checkbox:checked").length>0?t.enableBulkActionsBtn(e):t.disableBulkActionsBtn(e)}))}},{key:"enableBulkActionsBtn",value:function(e){e.getContainer().find(".js-bulk-actions-btn").prop("disabled",!1)}},{key:"disableBulkActionsBtn",value:function(e){e.getContainer().find(".js-bulk-actions-btn").prop("disabled",!0)}}]),e}();t.default=s},29983:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}n(73867);var a=window.$,s=function(){function e(){var t=this;return(0,r.default)(this,e),{extend:function(e){return t.extend(e)}}}return(0,i.default)(e,[{key:"extend",value:function(e){var t=this;this.grid=e,this.addIdsToGridTableRows(),e.getContainer().find(".js-grid-table").tableDnD({dragHandle:".js-drag-handle",onDragClass:"dragging-row",onDragStart:function(){t.originalPositions=decodeURIComponent(a.tableDnD.serialize())},onDrop:function(e,n){return t.handleCategoryPositionChange(n)}})}},{key:"handleCategoryPositionChange",value:function(e){var t=decodeURIComponent(a.tableDnD.serialize()),n=this.originalPositions.indexOf(e.id)<t.indexOf(e.id)?1:0,r=a(e).find(".js-"+this.grid.getId()+"-position:first"),i=r.data("id"),o=r.data("id-parent"),s=r.data("position-update-url"),l=t.replace(new RegExp(this.grid.getId()+"_grid_table","g"),"positions"),c={id_category_parent:o,id_category_to_move:i,way:n};-1!==t.indexOf("_0&")&&(c.found_first=1),l+="&"+a.param(c),this.updateCategoryPosition(s,l)}},{key:"addIdsToGridTableRows",value:function(){this.grid.getContainer().find(".js-grid-table").find(".js-"+this.grid.getId()+"-position").each((function(e,t){var n=a(t),r=n.data("id"),i="tr_"+n.data("id-parent")+"_"+r+"_"+n.data("position");n.closest("tr").attr("id",i)}))}},{key:"updateCategoryIdsAndPositions",value:function(){this.grid.getContainer().find(".js-grid-table").find(".js-"+this.grid.getId()+"-position").each((function(e,t){var n=a(t),r=n.closest("tr"),i=n.data("pagination-offset"),o=i>0?e+i:e,s=r.attr("id");r.attr("id",s.replace(/_[0-9]$/g,"_"+o)),n.find(".js-position").text(o+1),n.data("position",o)}))}},{key:"updateCategoryPosition",value:function(e,t){var n=this;a.post({url:e,headers:{"cache-control":"no-cache"},data:t,dataType:"json"}).then((function(e){e.success?window.showSuccessMessage(e.message):window.showErrorMessage(e.message),n.updateCategoryIdsAndPositions()}))}}]),e}();t.default=s},51964:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){var t=this;return(0,r.default)(this,e),{extend:function(e){return t.extend(e)}}}return(0,i.default)(e,[{key:"extend",value:function(e){var t=this;e.getContainer().find(".js-grid-table").on("click",".ps-togglable-row",(function(e){var n=a(e.currentTarget);n.hasClass("ps-switch")||e.preventDefault(),a.post({url:n.data("toggle-url")}).then((function(e){if(e.status)return window.showSuccessMessage(e.message),void t.toggleButtonDisplay(n);window.showErrorMessage(e.message)})).catch((function(e){var t=e.responseJSON;window.showErrorMessage(t.message)}))}))}},{key:"toggleButtonDisplay",value:function(e){var t=e.hasClass("grid-toggler-icon-valid"),n=t?"grid-toggler-icon-not-valid":"grid-toggler-icon-valid",r=t?"grid-toggler-icon-valid":"grid-toggler-icon-not-valid",i=t?"clear":"check";e.removeClass(r),e.addClass(n),e.hasClass("material-icons")&&e.text(i)}}]),e}();t.default=s},2573:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){var t=this;e.getHeaderContainer().on("click",".js-common_show_query-grid-action",(function(){return t.onShowSqlQueryClick(e)})),e.getHeaderContainer().on("click",".js-common_export_sql_manager-grid-action",(function(){return t.onExportSqlManagerClick(e)}))}},{key:"onShowSqlQueryClick",value:function(e){var t=a("#"+e.getId()+"_common_show_query_modal_form");this.fillExportForm(t,e);var n=a("#"+e.getId()+"_grid_common_show_query_modal");n.modal("show"),n.on("click",".btn-sql-submit",(function(){return t.submit()}))}},{key:"onExportSqlManagerClick",value:function(e){var t=a("#"+e.getId()+"_common_show_query_modal_form");this.fillExportForm(t,e),t.submit()}},{key:"fillExportForm",value:function(e,t){var n=t.getContainer().find(".js-grid-table").data("query");e.find('textarea[name="sql"]').val(n),e.find('input[name="name"]').val(this.getNameFromBreadcrumb())}},{key:"getNameFromBreadcrumb",value:function(){var e=a(".header-toolbar").find(".breadcrumb-item"),t="";return e.each((function(e,n){var r=a(n),i=r.find("a").length>0?r.find("a").text():r.text();t.length>0&&(t=t.concat(" > ")),t=t.concat(i)})),t}}]),e}();t.default=s},96803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(99663)),i=a(n(22600)),o=a(n(4110));function a(e){return e&&e.__esModule?e:{default:e}}var s=window.$,l=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){e.getContainer().on("click",".js-reset-search",(function(e){(0,o.default)(s(e.currentTarget).data("url"),s(e.currentTarget).data("redirect"))}))}}]),e}();t.default=l},91137:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){var t=e.getContainer().find(".column-filters");t.find(".grid-search-button").prop("disabled",!0),t.find("input:not(.js-bulk-action-select-all), select").on("input dp.change",(function(){t.find(".grid-search-button").prop("disabled",!1),t.find(".js-grid-reset-button").prop("hidden",!1)}))}}]),e}();t.default=a},58899:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){this.initRowLinks(e),this.initConfirmableActions(e)}},{key:"initConfirmableActions",value:function(e){e.getContainer().on("click",".js-link-row-action",(function(e){var t=a(e.currentTarget).data("confirm-message");t.length&&!window.confirm(t)&&e.preventDefault()}))}},{key:"initRowLinks",value:function(e){a("tr",e.getContainer()).each((function(){var e=a(this);a(".js-link-row-action[data-clickable-row=1]:first",e).each((function(){var t=a(this),n=t.closest("td"),r=a("td.clickable",e).not(n),i=!1;r.addClass("cursor-pointer").mousedown((function(){a(window).mousemove((function(){i=!0,a(window).unbind("mousemove")}))})),r.mouseup((function(){var e=i;if(i=!1,a(window).unbind("mousemove"),!e){var n=t.data("confirm-message");n.length&&!window.confirm(n)||(document.location=t.attr("href"))}}))}))}))}}]),e}();t.default=s},37758:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){e.getHeaderContainer().on("click",".js-common_refresh_list-grid-action",(function(){window.location.reload()}))}}]),e}();t.default=a},58630:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(99663)),i=a(n(22600)),o=a(n(61353));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){var t=e.getContainer().find("table.table");new o.default(t).attach()}}]),e}();t.default=s},17868:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(99663)),i=a(n(22600)),o=a(n(68840));function a(e){return e&&e.__esModule?e:{default:e}}var s=window.$,l=function(){function e(){var t=this;return(0,r.default)(this,e),{extend:function(e){return t.extend(e)}}}return(0,i.default)(e,[{key:"extend",value:function(e){var t=this;e.getContainer().on("click",".js-bulk-action-submit-btn",(function(n){t.submit(n,e)}))}},{key:"submit",value:function(e,t){var n=s(e.currentTarget),r=n.data("confirm-message"),i=n.data("confirmTitle");void 0!==r&&r.length>0?void 0!==i?this.showConfirmModal(n,t,r,i):window.confirm(r)&&this.postForm(n,t):this.postForm(n,t)}},{key:"showConfirmModal",value:function(e,t,n,r){var i=this,a=e.data("confirmButtonLabel"),s=e.data("closeButtonLabel"),l=e.data("confirmButtonClass");new o.default({id:t.getId()+"-grid-confirm-modal",confirmTitle:r,confirmMessage:n,confirmButtonLabel:a,closeButtonLabel:s,confirmButtonClass:l},(function(){return i.postForm(e,t)})).show()}},{key:"postForm",value:function(e,t){var n=s("#"+t.getId()+"_filter_form");n.attr("action",e.data("form-url")),n.attr("method",e.data("form-method")),n.submit()}}]),e}();t.default=l},53277:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(t){(0,r.default)(this,e),this.id=t,this.$container=a("#"+this.id+"_grid")}return(0,i.default)(e,[{key:"getId",value:function(){return this.id}},{key:"getContainer",value:function(){return this.$container}},{key:"getHeaderContainer",value:function(){return this.$container.closest(".js-grid-panel").find(".js-grid-header")}},{key:"addExtension",value:function(e){e.extend(this)}}]),e}();t.default=s},68840:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=(r=n(85315))&&r.__esModule?r:{default:r};t.default=function(e,t,n){var r=this,a=e.id,s=e.closable;this.modal=function(e){var t,n=e.id,r=void 0===n?"confirm-modal":n,o=e.confirmTitle,a=e.confirmMessage,s=void 0===a?"":a,l=e.closeButtonLabel,c=void 0===l?"Close":l,u=e.confirmButtonLabel,f=void 0===u?"Accept":u,d=e.confirmButtonClass,p=void 0===d?"btn-primary":d,v=e.customButtons,h=void 0===v?[]:v,m={};return m.container=document.createElement("div"),m.container.classList.add("modal","fade"),m.container.id=r,m.dialog=document.createElement("div"),m.dialog.classList.add("modal-dialog"),m.content=document.createElement("div"),m.content.classList.add("modal-content"),m.header=document.createElement("div"),m.header.classList.add("modal-header"),o&&(m.title=document.createElement("h4"),m.title.classList.add("modal-title"),m.title.innerHTML=o),m.closeIcon=document.createElement("button"),m.closeIcon.classList.add("close"),m.closeIcon.setAttribute("type","button"),m.closeIcon.dataset.dismiss="modal",m.closeIcon.innerHTML="×",m.body=document.createElement("div"),m.body.classList.add("modal-body","text-left","font-weight-normal"),m.message=document.createElement("p"),m.message.classList.add("confirm-message"),m.message.innerHTML=s,m.footer=document.createElement("div"),m.footer.classList.add("modal-footer"),m.closeButton=document.createElement("button"),m.closeButton.setAttribute("type","button"),m.closeButton.classList.add("btn","btn-outline-secondary","btn-lg"),m.closeButton.dataset.dismiss="modal",m.closeButton.innerHTML=c,m.confirmButton=document.createElement("button"),m.confirmButton.setAttribute("type","button"),m.confirmButton.classList.add("btn",p,"btn-lg","btn-confirm-submit"),m.confirmButton.dataset.dismiss="modal",m.confirmButton.innerHTML=f,o?m.header.append(m.title,m.closeIcon):m.header.appendChild(m.closeIcon),m.body.appendChild(m.message),(t=m.footer).append.apply(t,[m.closeButton].concat((0,i.default)(h),[m.confirmButton])),m.content.append(m.header,m.body,m.footer),m.dialog.appendChild(m.content),m.container.appendChild(m.dialog),m}(e),this.$modal=o(this.modal.container),this.show=function(){r.$modal.modal()},this.modal.confirmButton.addEventListener("click",t),this.$modal.modal({backdrop:!!s||"static",keyboard:void 0===s||s,closable:void 0===s||s,show:!1}),this.$modal.on("hidden.bs.modal",(function(){document.querySelector("#"+a).remove(),n&&n()})),document.body.appendChild(this.modal.container)};var o=window.$},3010:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(){(0,r.default)(this,e)}return(0,i.default)(e,[{key:"extend",value:function(e){var t=e.getContainer();t.on("click",".js-remove-helper-block",(function(e){t.remove();var n=a(e.target),r=n.data("closeUrl"),i=n.data("cardName");r&&a.post(r,{close:1,name:i})}))}}]),e}();t.default=s},50204:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(99663)),i=o(n(22600));function o(e){return e&&e.__esModule?e:{default:e}}var a=window.$,s=function(){function e(t){(0,r.default)(this,e),this.id=t,this.$container=a("#"+this.id)}return(0,i.default)(e,[{key:"getContainer",value:function(){return this.$container}},{key:"addExtension",value:function(e){e.extend(this)}}]),e}();t.default=s},48473:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=window.$;t.default=function(e){var t=e.sourceElementSelector,r=e.destinationElementSelector,i=e.options,o=void 0===i?{eventName:"input"}:i;n(document).on(o.eventName,""+t,(function(e){n(r).val(window.str2url(n(e.currentTarget).val(),"UTF-8"))}))}},66313:(e,t)=>{"use strict";Object.defineProperty(t,"X",{value:!0}),t.Z={name:"Serp",props:{url:{type:String,default:"https://www.example.com/"},description:{type:String,default:""},title:{type:String,default:""}},computed:{displayedTitle:function(){return this.title.length>70?this.title.substring(0,70)+"...":this.title},displayedDescription:function(){return this.description.length>150?this.description.substring(0,150)+"...":this.description}}}},24043:(e,t,n)=>{e.exports={default:n(47185),__esModule:!0}},32242:(e,t,n)=>{e.exports={default:n(33391),__esModule:!0}},99663:(e,t)=>{"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},22600:(e,t,n)=>{"use strict";t.__esModule=!0;var r,i=(r=n(32242))&&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}}()},85315:(e,t,n)=>{"use strict";t.__esModule=!0;var r,i=(r=n(24043))&&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)}},47185:(e,t,n)=>{n(91867),n(2586),e.exports=n(34579).Array.from},33391:(e,t,n)=>{n(31477);var r=n(34579).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},85663:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},12159:(e,t,n)=>{var r=n(36727);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},57428:(e,t,n)=>{var r=n(7932),i=n(78728),o=n(16531);e.exports=function(e){return function(t,n,a){var s,l=r(t),c=i(l.length),u=o(a,c);if(e&&n!=n){for(;c>u;)if((s=l[u++])!=s)return!0}else for(;c>u;u++)if((e||u in l)&&l[u]===n)return e||u||0;return!e&&-1}}},14677:(e,t,n)=>{var r=n(32894),i=n(22939)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},32894:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},34579:e=>{var t=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=t)},52445:(e,t,n)=>{"use strict";var r=n(4743),i=n(83101);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},19216:(e,t,n)=>{var r=n(85663);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,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},8333:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},89666:(e,t,n)=>{e.exports=!n(7929)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},97467:(e,t,n)=>{var r=n(36727),i=n(33938).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},73338:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},83856:(e,t,n)=>{var r=n(33938),i=n(34579),o=n(19216),a=n(41818),s=n(27069),l=function(e,t,n){var c,u,f,d=e&l.F,p=e&l.G,v=e&l.S,h=e&l.P,m=e&l.B,g=e&l.W,y=p?i:i[t]||(i[t]={}),b=y.prototype,_=p?r:v?r[t]:(r[t]||{}).prototype;for(c in p&&(n=t),n)(u=!d&&_&&void 0!==_[c])&&s(y,c)||(f=u?_[c]:n[c],y[c]=p&&"function"!=typeof _[c]?n[c]:m&&u?o(f,r):g&&_[c]==f?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}(f):h&&"function"==typeof f?o(Function.call,f):f,h&&((y.virtual||(y.virtual={}))[c]=f,e&l.R&&b&&!b[c]&&a(b,c,f)))};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},7929:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},33938:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},27069:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},41818:(e,t,n)=>{var r=n(4743),i=n(83101);e.exports=n(89666)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},54881:(e,t,n)=>{var r=n(33938).document;e.exports=r&&r.documentElement},33758:(e,t,n)=>{e.exports=!n(89666)&&!n(7929)((function(){return 7!=Object.defineProperty(n(97467)("div"),"a",{get:function(){return 7}}).a}))},50799:(e,t,n)=>{var r=n(32894);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},45991:(e,t,n)=>{var r=n(15449),i=n(22939)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},36727:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},95602:(e,t,n)=>{var r=n(12159);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},33945:(e,t,n)=>{"use strict";var r=n(98989),i=n(83101),o=n(25378),a={};n(41818)(a,n(22939)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},45700:(e,t,n)=>{"use strict";var r=n(16227),i=n(83856),o=n(57470),a=n(41818),s=n(15449),l=n(33945),c=n(25378),u=n(95089),f=n(22939)("iterator"),d=!([].keys&&"next"in[].keys()),p="keys",v="values",h=function(){return this};e.exports=function(e,t,n,m,g,y,b){l(n,t,m);var _,w,C,x=function(e){if(!d&&e in O)return O[e];switch(e){case p:case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",k=g==v,$=!1,O=e.prototype,D=O[f]||O["@@iterator"]||g&&O[g],S=D||x(g),T=g?k?x("entries"):S:void 0,j="Array"==t&&O.entries||D;if(j&&(C=u(j.call(new e)))!==Object.prototype&&C.next&&(c(C,A,!0),r||"function"==typeof C[f]||a(C,f,h)),k&&D&&D.name!==v&&($=!0,S=function(){return D.call(this)}),r&&!b||!d&&!$&&O[f]||a(O,f,S),s[t]=S,s[A]=h,g)if(_={values:k?S:x(v),keys:y?S:x(p),entries:T},b)for(w in _)w in O||o(O,w,_[w]);else i(i.P+i.F*(d||$),t,_);return _}},96630:(e,t,n)=>{var r=n(22939)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},15449:e=>{e.exports={}},16227:e=>{e.exports=!0},98989:(e,t,n)=>{var r=n(12159),i=n(57856),o=n(73338),a=n(58989)("IE_PROTO"),s=function(){},l=function(){var e,t=n(97467)("iframe"),r=o.length;for(t.style.display="none",n(54881).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[o[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=l(),void 0===t?n:i(n,t)}},4743:(e,t,n)=>{var r=n(12159),i=n(33758),o=n(33206),a=Object.defineProperty;t.f=n(89666)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(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}},57856:(e,t,n)=>{var r=n(4743),i=n(12159),o=n(46162);e.exports=n(89666)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,l=0;s>l;)r.f(e,n=a[l++],t[n]);return e}},95089:(e,t,n)=>{var r=n(27069),i=n(66530),o=n(58989)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},12963:(e,t,n)=>{var r=n(27069),i=n(7932),o=n(57428)(!1),a=n(58989)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),l=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>l;)r(s,n=t[l++])&&(~o(c,n)||c.push(n));return c}},46162:(e,t,n)=>{var r=n(12963),i=n(73338);e.exports=Object.keys||function(e){return r(e,i)}},83101:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},57470:(e,t,n)=>{e.exports=n(41818)},25378:(e,t,n)=>{var r=n(4743).f,i=n(27069),o=n(22939)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},58989:(e,t,n)=>{var r=n(20250)("keys"),i=n(65730);e.exports=function(e){return r[e]||(r[e]=i(e))}},20250:(e,t,n)=>{var r=n(34579),i=n(33938),o="__core-js_shared__",a=i[o]||(i[o]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(16227)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},90510:(e,t,n)=>{var r=n(11052),i=n(8333);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),l=r(n),c=s.length;return l<0||l>=c?e?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===c||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536}}},16531:(e,t,n)=>{var r=n(11052),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):o(e,t)}},11052:e=>{var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},7932:(e,t,n)=>{var r=n(50799),i=n(8333);e.exports=function(e){return r(i(e))}},78728:(e,t,n)=>{var r=n(11052),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},66530:(e,t,n)=>{var r=n(8333);e.exports=function(e){return Object(r(e))}},33206:(e,t,n)=>{var r=n(36727);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},65730:e=>{var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},22939:(e,t,n)=>{var r=n(20250)("wks"),i=n(65730),o=n(33938).Symbol,a="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)("Symbol."+e))}).store=r},83728:(e,t,n)=>{var r=n(14677),i=n(22939)("iterator"),o=n(15449);e.exports=n(34579).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||o[r(e)]}},2586:(e,t,n)=>{"use strict";var r=n(19216),i=n(83856),o=n(66530),a=n(95602),s=n(45991),l=n(78728),c=n(52445),u=n(83728);i(i.S+i.F*!n(96630)((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,i,f,d=o(e),p="function"==typeof this?this:Array,v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h,g=0,y=u(d);if(m&&(h=r(h,v>2?arguments[2]:void 0,2)),null==y||p==Array&&s(y))for(n=new p(t=l(d.length));t>g;g++)c(n,g,m?h(d[g],g):d[g]);else for(f=y.call(d),n=new p;!(i=f.next()).done;g++)c(n,g,m?a(f,h,[i.value,g],!0):i.value);return n.length=g,n}})},31477:(e,t,n)=>{var r=n(83856);r(r.S+r.F*!n(89666),"Object",{defineProperty:n(4743).f})},91867:(e,t,n)=>{"use strict";var r=n(90510)(!0);n(45700)(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})}))},20251:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(94015),i=n.n(r),o=n(23645),a=n.n(o)()(i());a.push([e.id,".serp-preview[data-v-66c4c5ab]{margin-top:15px;margin-bottom:15px;border-radius:2px;box-shadow:0 0 5px 0 rgba(0,0,0,0.12);background-color:#ffffff;border:solid 1px #e7e7e7;padding:30px;max-width:700px}.serp-preview .serp-arrow[data-v-66c4c5ab]{border-bottom-color:#006621;border-bottom-style:solid;border-bottom-width:0px;border-left-color:rgba(0,0,0,0);border-left-style:solid;border-left-width:4px;border-right-color:rgba(0,0,0,0);border-right-style:solid;border-right-width:4px;border-top-color:#006621;border-top-style:solid;border-top-width:5px;color:gray;cursor:default;font-family:arial, sans-serif;font-size:11px;font-weight:bold;height:0px;position:absolute;line-height:27px;margin-left:3px;margin-top:6px;text-align:center;user-select:none;visibility:visible;white-space:nowrap;width:0px}.serp-preview .serp-title[data-v-66c4c5ab]{color:#1A0DAB;cursor:pointer;font-family:arial, regular;font-size:18px;font-weight:normal;text-align:left;text-decoration:none;visibility:visible;white-space:nowrap}.serp-preview .serp-url[data-v-66c4c5ab]{color:#006621;font-family:arial, regular;font-size:14px;font-style:normal;font-weight:normal;line-height:24px;text-align:left;visibility:visible}.serp-preview .serp-description[data-v-66c4c5ab]{color:#545454;font-family:arial, regular;font-size:13px;font-weight:normal;text-align:left;visibility:visible;word-wrap:break-word}\n","",{version:3,sources:["webpack://./js/app/utils/serp/serp.vue"],names:[],mappings:"AA6EA,+BACI,eAAgB,CAChB,kBAAmB,CACnB,iBAAkB,CAClB,qCAAyC,CACzC,wBAAyB,CACzB,wBAAyB,CACzB,YAAa,CACb,eAAgB,CARpB,2CAWQ,2BAAoC,CACpC,yBAA0B,CAC1B,uBAAwB,CACxB,+BAAmC,CACnC,uBAAwB,CACxB,qBAAsB,CACtB,gCAAoC,CACpC,wBAAyB,CACzB,sBAAuB,CACvB,wBAAiC,CACjC,sBAAuB,CACvB,oBAAqB,CACrB,UAAyB,CACzB,cAAe,CACf,6BAA8B,CAC9B,cAAe,CACf,gBAAiB,CACjB,UAAW,CACX,iBAAkB,CAClB,gBAAiB,CACjB,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,gBAAiB,CACjB,kBAAmB,CACnB,kBAAmB,CACnB,SAAU,CArClB,2CAyCQ,aAAc,CACd,cAAe,CACf,0BAA2B,CAC3B,cAAe,CACf,kBAAmB,CACnB,eAAgB,CAChB,oBAAqB,CACrB,kBAAmB,CACnB,kBAAmB,CAjD3B,yCAqDQ,aAAc,CACd,0BAA2B,CAC3B,cAAe,CACf,iBAAkB,CAClB,kBAAmB,CACnB,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CA5D3B,iDAgEQ,aAAc,CACd,0BAA2B,CAC3B,cAAe,CACf,kBAAmB,CACnB,eAAgB,CAChB,kBAAmB,CACnB,oBAAqB",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.serp-preview {\n    margin-top: 15px;\n    margin-bottom: 15px;\n    border-radius: 2px;\n    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.12);\n    background-color: #ffffff;\n    border: solid 1px #e7e7e7;\n    padding: 30px;\n    max-width: 700px;\n\n    .serp-arrow {\n        border-bottom-color: rgb(0, 102, 33);\n        border-bottom-style: solid;\n        border-bottom-width: 0px;\n        border-left-color: rgba(0, 0, 0, 0);\n        border-left-style: solid;\n        border-left-width: 4px;\n        border-right-color: rgba(0, 0, 0, 0);\n        border-right-style: solid;\n        border-right-width: 4px;\n        border-top-color: rgb(0, 102, 33);\n        border-top-style: solid;\n        border-top-width: 5px;\n        color: rgb(128, 128, 128);\n        cursor: default;\n        font-family: arial, sans-serif;\n        font-size: 11px;\n        font-weight: bold;\n        height: 0px;\n        position: absolute;\n        line-height: 27px;\n        margin-left: 3px;\n        margin-top: 6px;\n        text-align: center;\n        user-select: none;\n        visibility: visible;\n        white-space: nowrap;\n        width: 0px;\n    }\n\n    .serp-title {\n        color: #1A0DAB;\n        cursor: pointer;\n        font-family: arial, regular;\n        font-size: 18px;\n        font-weight: normal;\n        text-align: left;\n        text-decoration: none;\n        visibility: visible;\n        white-space: nowrap;\n    }\n\n    .serp-url {\n        color: #006621;\n        font-family: arial, regular;\n        font-size: 14px;\n        font-style: normal;\n        font-weight: normal;\n        line-height: 24px;\n        text-align: left;\n        visibility: visible;\n    }\n\n    .serp-description {\n        color: #545454;\n        font-family: arial, regular;\n        font-size: 13px;\n        font-weight: normal;\n        text-align: left;\n        visibility: visible;\n        word-wrap: break-word;\n    }\n}\n"],sourceRoot:""}]);const s=a},23645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var i={};if(r)for(var o=0;o<this.length;o++){var a=this[o][0];null!=a&&(i[a]=!0)}for(var s=0;s<e.length;s++){var l=[].concat(e[s]);r&&i[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},94015:e=>{"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}e.exports=function(e){var n,r,i=(r=4,function(e){if(Array.isArray(e))return e}(n=e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}(n,r)||function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[1],a=i[3];if("function"==typeof btoa){var s=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),c="/*# ".concat(l," */"),u=a.sources.map((function(e){return"/*# sourceURL=".concat(a.sourceRoot||"").concat(e," */")}));return[o].concat(u).concat([c]).join("\n")}return[o].join("\n")}},17187:e=>{"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,o,a,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if("function"==typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=l(e))>0&&a.length>i&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=u.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):v(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function v(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");a=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i="error"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=v(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,f(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,f(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,i,o,a;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},o.prototype.listenerCount=p,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},73867:(e,t,n)=>{var r,i,o,a,s,l,c=n(73609);r=c,i=window,o=window.document,a="touchstart mousedown",s="touchmove mousemove",l="touchend mouseup",r(o).ready((function(){function e(e){for(var t={},n=e.match(/([^;:]+)/g)||[];n.length;)t[n.shift()]=n.shift().trim();return t}r("table").each((function(){"dnd"===r(this).data("table")&&r(this).tableDnD({onDragStyle:r(this).data("ondragstyle")&&e(r(this).data("ondragstyle"))||null,onDropStyle:r(this).data("ondropstyle")&&e(r(this).data("ondropstyle"))||null,onDragClass:void 0===r(this).data("ondragclass")?"tDnD_whileDrag":r(this).data("ondragclass"),onDrop:r(this).data("ondrop")&&new Function("table","row",r(this).data("ondrop")),onDragStart:r(this).data("ondragstart")&&new Function("table","row",r(this).data("ondragstart")),onDragStop:r(this).data("ondragstop")&&new Function("table","row",r(this).data("ondragstop")),scrollAmount:r(this).data("scrollamount")||5,sensitivity:r(this).data("sensitivity")||10,hierarchyLevel:r(this).data("hierarchylevel")||0,indentArtifact:r(this).data("indentartifact")||'<div class="indent">&nbsp;</div>',autoWidthAdjust:r(this).data("autowidthadjust")||!0,autoCleanRelations:r(this).data("autocleanrelations")||!0,jsonPretifySeparator:r(this).data("jsonpretifyseparator")||"\t",serializeRegexp:r(this).data("serializeregexp")&&new RegExp(r(this).data("serializeregexp"))||/[^\-]*$/,serializeParamName:r(this).data("serializeparamname")||!1,dragHandle:r(this).data("draghandle")||null})}))})),c.tableDnD={currentTable:null,dragObject:null,mouseOffset:null,oldX:0,oldY:0,build:function(e){return this.each((function(){this.tableDnDConfig=r.extend({onDragStyle:null,onDropStyle:null,onDragClass:"tDnD_whileDrag",onDrop:null,onDragStart:null,onDragStop:null,scrollAmount:5,sensitivity:10,hierarchyLevel:0,indentArtifact:'<div class="indent">&nbsp;</div>',autoWidthAdjust:!0,autoCleanRelations:!0,jsonPretifySeparator:"\t",serializeRegexp:/[^\-]*$/,serializeParamName:!1,dragHandle:null},e||{}),r.tableDnD.makeDraggable(this),this.tableDnDConfig.hierarchyLevel&&r.tableDnD.makeIndented(this)})),this},makeIndented:function(e){var t,n,i=e.tableDnDConfig,o=e.rows,a=r(o).first().find("td:first")[0],s=0,l=0;if(r(e).hasClass("indtd"))return null;n=r(e).addClass("indtd").attr("style"),r(e).css({whiteSpace:"nowrap"});for(var c=0;c<o.length;c++)l<r(o[c]).find("td:first").text().length&&(l=r(o[c]).find("td:first").text().length,t=c);for(r(a).css({width:"auto"}),c=0;c<i.hierarchyLevel;c++)r(o[t]).find("td:first").prepend(i.indentArtifact);for(a&&r(a).css({width:a.offsetWidth}),n&&r(e).css(n),c=0;c<i.hierarchyLevel;c++)r(o[t]).find("td:first").children(":first").remove();return i.hierarchyLevel&&r(o).each((function(){(s=r(this).data("level")||0)<=i.hierarchyLevel&&r(this).data("level",s)||r(this).data("level",0);for(var e=0;e<r(this).data("level");e++)r(this).find("td:first").prepend(i.indentArtifact)})),this},makeDraggable:function(e){var t=e.tableDnDConfig;t.dragHandle&&r(t.dragHandle,e).each((function(){r(this).bind(a,(function(n){return r.tableDnD.initialiseDrag(r(this).parents("tr")[0],e,this,n,t),!1}))}))||r(e.rows).each((function(){r(this).hasClass("nodrag")?r(this).css("cursor",""):r(this).bind(a,(function(n){if("TD"===n.target.tagName)return r.tableDnD.initialiseDrag(this,e,this,n,t),!1})).css("cursor","move")}))},currentOrder:function(){var e=this.currentTable.rows;return r.map(e,(function(e){return(r(e).data("level")+e.id).replace(/\s/g,"")})).join("")},initialiseDrag:function(e,t,n,i,a){this.dragObject=e,this.currentTable=t,this.mouseOffset=this.getMouseOffset(n,i),this.originalOrder=this.currentOrder(),r(o).bind(s,this.mousemove).bind(l,this.mouseup),a.onDragStart&&a.onDragStart(t,n)},updateTables:function(){this.each((function(){this.tableDnDConfig&&r.tableDnD.makeDraggable(this)}))},mouseCoords:function(e){return e.originalEvent.changedTouches?{x:e.originalEvent.changedTouches[0].clientX,y:e.originalEvent.changedTouches[0].clientY}:e.pageX||e.pageY?{x:e.pageX,y:e.pageY}:{x:e.clientX+o.body.scrollLeft-o.body.clientLeft,y:e.clientY+o.body.scrollTop-o.body.clientTop}},getMouseOffset:function(e,t){var n,r;return t=t||i.event,r=this.getPosition(e),{x:(n=this.mouseCoords(t)).x-r.x,y:n.y-r.y}},getPosition:function(e){var t=0,n=0;for(0===e.offsetHeight&&(e=e.firstChild);e.offsetParent;)t+=e.offsetLeft,n+=e.offsetTop,e=e.offsetParent;return{x:t+=e.offsetLeft,y:n+=e.offsetTop}},autoScroll:function(e){var t=this.currentTable.tableDnDConfig,n=i.pageYOffset,r=i.innerHeight?i.innerHeight:o.documentElement.clientHeight?o.documentElement.clientHeight:o.body.clientHeight;o.all&&(void 0!==o.compatMode&&"BackCompat"!==o.compatMode?n=o.documentElement.scrollTop:void 0!==o.body&&(n=o.body.scrollTop)),e.y-n<t.scrollAmount&&i.scrollBy(0,-t.scrollAmount)||r-(e.y-n)<t.scrollAmount&&i.scrollBy(0,t.scrollAmount)},moveVerticle:function(e,t){0!==e.vertical&&t&&this.dragObject!==t&&this.dragObject.parentNode===t.parentNode&&(0>e.vertical&&this.dragObject.parentNode.insertBefore(this.dragObject,t.nextSibling)||0<e.vertical&&this.dragObject.parentNode.insertBefore(this.dragObject,t))},moveHorizontal:function(e,t){var n,i=this.currentTable.tableDnDConfig;if(!i.hierarchyLevel||0===e.horizontal||!t||this.dragObject!==t)return null;n=r(t).data("level"),0<e.horizontal&&n>0&&r(t).find("td:first").children(":first").remove()&&r(t).data("level",--n),0>e.horizontal&&n<i.hierarchyLevel&&r(t).prev().data("level")>=n&&r(t).children(":first").prepend(i.indentArtifact)&&r(t).data("level",++n)},mousemove:function(e){var t,n,i,o,a,s=r(r.tableDnD.dragObject),l=r.tableDnD.currentTable.tableDnDConfig;return e&&e.preventDefault(),!!r.tableDnD.dragObject&&("touchmove"===e.type&&event.preventDefault(),l.onDragClass&&s.addClass(l.onDragClass)||s.css(l.onDragStyle),o=(n=r.tableDnD.mouseCoords(e)).x-r.tableDnD.mouseOffset.x,a=n.y-r.tableDnD.mouseOffset.y,r.tableDnD.autoScroll(n),t=r.tableDnD.findDropTargetRow(s,a),i=r.tableDnD.findDragDirection(o,a),r.tableDnD.moveVerticle(i,t),r.tableDnD.moveHorizontal(i,t),!1)},findDragDirection:function(e,t){var n=this.currentTable.tableDnDConfig.sensitivity,r=this.oldX,i=this.oldY,o={horizontal:e>=r-n&&e<=r+n?0:e>r?-1:1,vertical:t>=i-n&&t<=i+n?0:t>i?-1:1};return 0!==o.horizontal&&(this.oldX=e),0!==o.vertical&&(this.oldY=t),o},findDropTargetRow:function(e,t){for(var n=0,i=this.currentTable.rows,o=this.currentTable.tableDnDConfig,a=0,s=null,l=0;l<i.length;l++)if(s=i[l],a=this.getPosition(s).y,n=parseInt(s.offsetHeight)/2,0===s.offsetHeight&&(a=this.getPosition(s.firstChild).y,n=parseInt(s.firstChild.offsetHeight)/2),t>a-n&&t<a+n)return e.is(s)||o.onAllowDrop&&!o.onAllowDrop(e,s)||r(s).hasClass("nodrop")?null:s;return null},processMouseup:function(){if(!this.currentTable||!this.dragObject)return null;var e=this.currentTable.tableDnDConfig,t=this.dragObject,n=0,i=0;r(o).unbind(s,this.mousemove).unbind(l,this.mouseup),e.hierarchyLevel&&e.autoCleanRelations&&r(this.currentTable.rows).first().find("td:first").children().each((function(){(i=r(this).parents("tr:first").data("level"))&&r(this).parents("tr:first").data("level",--i)&&r(this).remove()}))&&e.hierarchyLevel>1&&r(this.currentTable.rows).each((function(){if((i=r(this).data("level"))>1)for(n=r(this).prev().data("level");i>n+1;)r(this).find("td:first").children(":first").remove(),r(this).data("level",--i)})),e.onDragClass&&r(t).removeClass(e.onDragClass)||r(t).css(e.onDropStyle),this.dragObject=null,e.onDrop&&this.originalOrder!==this.currentOrder()&&r(t).hide().fadeIn("fast")&&e.onDrop(this.currentTable,t),e.onDragStop&&e.onDragStop(this.currentTable,t),this.currentTable=null},mouseup:function(e){return e&&e.preventDefault(),r.tableDnD.processMouseup(),!1},jsonize:function(e){var t=this.currentTable;return e?JSON.stringify(this.tableData(t),null,t.tableDnDConfig.jsonPretifySeparator):JSON.stringify(this.tableData(t))},serialize:function(){return r.param(this.tableData(this.currentTable))},serializeTable:function(e){for(var t="",n=e.tableDnDConfig.serializeParamName||e.id,r=e.rows,i=0;i<r.length;i++){t.length>0&&(t+="&");var o=r[i].id;o&&e.tableDnDConfig&&e.tableDnDConfig.serializeRegexp&&(t+=n+"[]="+(o=o.match(e.tableDnDConfig.serializeRegexp)[0]))}return t},serializeTables:function(){var e=[];return r("table").each((function(){this.id&&e.push(r.param(r.tableDnD.tableData(this)))})),e.join("&")},tableData:function(e){var t,n,i,o,a=e.tableDnDConfig,s=[],l=0,c=0,u=null,f={};if(e||(e=this.currentTable),!e||!e.rows||!e.rows.length)return{error:{code:500,message:"Not a valid table."}};if(!e.id&&!a.serializeParamName)return{error:{code:500,message:"No serializable unique id provided."}};o=a.autoCleanRelations&&e.rows||r.makeArray(e.rows),t=function(e){return e&&a&&a.serializeRegexp?e.match(a.serializeRegexp)[0]:e},f[i=n=a.serializeParamName||e.id]=[],!a.autoCleanRelations&&r(o[0]).data("level")&&o.unshift({id:"undefined"});for(var d=0;d<o.length;d++)if(a.hierarchyLevel){if(0===(c=r(o[d]).data("level")||0))i=n,s=[];else if(c>l)s.push([i,l]),i=t(o[d-1].id);else if(c<l)for(var p=0;p<s.length;p++)s[p][1]===c&&(i=s[p][0]),s[p][1]>=l&&(s[p][1]=0);l=c,r.isArray(f[i])||(f[i]=[]),(u=t(o[d].id))&&f[i].push(u)}else(u=t(o[d].id))&&f[i].push(u);return f}},c.fn.extend({tableDnD:r.tableDnD.build,tableDnDUpdate:r.tableDnD.updateTables,tableDnDSerialize:r.proxy(r.tableDnD.serialize,r.tableDnD),tableDnDSerializeAll:r.tableDnD.serializeTables,tableDnDData:r.proxy(r.tableDnD.tableData,r.tableDnD)})},25121:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__esModule:()=>i.X,default:()=>s});var r=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"serp"}},[n("div",{staticClass:"serp-preview"},[n("div",{staticClass:"serp-title"},[e._v("\n      "+e._s(e.displayedTitle)+"\n    ")]),e._v(" "),n("div",{staticClass:"serp-url"},[e._v("\n      "+e._s(e.url)),n("span",{staticClass:"serp-arrow"})]),e._v(" "),n("div",{staticClass:"serp-description"},[e._v("\n      "+e._s(e.displayedDescription)+"\n    ")])])])};r._withStripped=!0;var i=n(66313);const o=i.Z;n(69492);var a=(0,n(51900).Z)(o,r,[],!1,null,"66c4c5ab",null);a.options.__file="js/app/utils/serp/serp.vue";const s=a.exports},51900:(e,t,n)=>{"use strict";function r(e,t,n,r,i,o,a,s){var l,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,l):[l]}return{exports:e,options:c}}n.d(t,{Z:()=>r})},69492:(e,t,n)=>{var r=n(20251);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.id,r,""]]),r.locals&&(e.exports=r.locals),(0,n(45346).Z)("2c83d4db",r,!1,{})},45346:(e,t,n)=>{"use strict";function r(e,t){for(var n=[],r={},i=0;i<t.length;i++){var o=t[i],a=o[0],s={id:e+":"+i,css:o[1],media:o[2],sourceMap:o[3]};r[a]?r[a].parts.push(s):n.push(r[a]={id:a,parts:[s]})}return n}n.d(t,{Z:()=>v});var i="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!i)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var o={},a=i&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},f=null,d="data-vue-ssr-id",p="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function v(e,t,n,i){c=n,f=i||{};var a=r(e,t);return h(a),function(t){for(var n=[],i=0;i<a.length;i++){var s=a[i];(l=o[s.id]).refs--,n.push(l)}for(t?h(a=r(e,t)):a=[],i=0;i<n.length;i++){var l;if(0===(l=n[i]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete o[l.id]}}}}function h(e){for(var t=0;t<e.length;t++){var n=e[t],r=o[n.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](n.parts[i]);for(;i<n.parts.length;i++)r.parts.push(g(n.parts[i]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;i<n.parts.length;i++)a.push(g(n.parts[i]));o[n.id]={id:n.id,refs:1,parts:a}}}}function m(){var e=document.createElement("style");return e.type="text/css",a.appendChild(e),e}function g(e){var t,n,r=document.querySelector("style["+d+'~="'+e.id+'"]');if(r){if(c)return u;r.parentNode.removeChild(r)}if(p){var i=l++;r=s||(s=m()),t=_.bind(null,r,i,!1),n=_.bind(null,r,i,!0)}else r=m(),t=w.bind(null,r),n=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else n()}}var y,b=(y=[],function(e,t){return y[e]=t,y.filter(Boolean).join("\n")});function _(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function w(e,t){var n=t.css,r=t.media,i=t.sourceMap;if(r&&e.setAttribute("media",r),f.ssrId&&e.setAttribute(d,t.id),i&&(n+="\n/*# sourceURL="+i.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},72100:(e,t,n)=>{e.exports=n(91317)},91317:(e,t,n)=>{"use strict";var r=Object.freeze({});function i(e){return null==e}function o(e){return null!=e}function a(e){return!0===e}function s(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function l(e){return null!==e&&"object"==typeof e}var c=Object.prototype.toString;function u(e){return"[object Object]"===c.call(e)}function f(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function d(e){return o(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function p(e){return null==e?"":Array.isArray(e)||u(e)&&e.toString===c?JSON.stringify(e,null,2):String(e)}function v(e){var t=parseFloat(e);return isNaN(t)?e:t}function h(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i<r.length;i++)n[r[i]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var m=h("slot,component",!0),g=h("key,ref,slot,slot-scope,is");function y(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(e,t){return b.call(e,t)}function w(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var C=/-(\w)/g,x=w((function(e){return e.replace(C,(function(e,t){return t?t.toUpperCase():""}))})),A=w((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),k=/\B([A-Z])/g,$=w((function(e){return e.replace(k,"-$1").toLowerCase()})),O=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function D(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function S(e,t){for(var n in t)e[n]=t[n];return e}function T(e){for(var t={},n=0;n<e.length;n++)e[n]&&S(t,e[n]);return t}function j(e,t,n){}var B=function(e,t,n){return!1},M=function(e){return e};function E(e,t){if(e===t)return!0;var n=l(e),r=l(t);if(!n||!r)return!n&&!r&&String(e)===String(t);try{var i=Array.isArray(e),o=Array.isArray(t);if(i&&o)return e.length===t.length&&e.every((function(e,n){return E(e,t[n])}));if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(i||o)return!1;var a=Object.keys(e),s=Object.keys(t);return a.length===s.length&&a.every((function(n){return E(e[n],t[n])}))}catch(e){return!1}}function L(e,t){for(var n=0;n<e.length;n++)if(E(e[n],t))return n;return-1}function P(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var I="data-server-rendered",N=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],R={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:B,isReservedAttr:B,isUnknownElement:B,getTagNamespace:j,parsePlatformTagName:M,mustUseProp:B,async:!0,_lifecycleHooks:F},z=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function U(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H,q=new RegExp("[^"+z.source+".$_\\d]"),V="__proto__"in{},W="undefined"!=typeof window,J="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=J&&WXEnvironment.platform.toLowerCase(),X=W&&window.navigator.userAgent.toLowerCase(),G=X&&/msie|trident/.test(X),Z=X&&X.indexOf("msie 9.0")>0,Y=X&&X.indexOf("edge/")>0,Q=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===K),ee=(X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X),X&&X.match(/firefox\/(\d+)/)),te={}.watch,ne=!1;if(W)try{var re={};Object.defineProperty(re,"passive",{get:function(){ne=!0}}),window.addEventListener("test-passive",null,re)}catch(r){}var ie=function(){return void 0===H&&(H=!W&&!J&&void 0!==n.g&&n.g.process&&"server"===n.g.process.env.VUE_ENV),H},oe=W&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ae(e){return"function"==typeof e&&/native code/.test(e.toString())}var se,le="undefined"!=typeof Symbol&&ae(Symbol)&&"undefined"!=typeof Reflect&&ae(Reflect.ownKeys);se="undefined"!=typeof Set&&ae(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ce=j,ue=0,fe=function(){this.id=ue++,this.subs=[]};fe.prototype.addSub=function(e){this.subs.push(e)},fe.prototype.removeSub=function(e){y(this.subs,e)},fe.prototype.depend=function(){fe.target&&fe.target.addDep(this)},fe.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},fe.target=null;var de=[];function pe(e){de.push(e),fe.target=e}function ve(){de.pop(),fe.target=de[de.length-1]}var he=function(e,t,n,r,i,o,a,s){this.tag=e,this.data=t,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},me={child:{configurable:!0}};me.child.get=function(){return this.componentInstance},Object.defineProperties(he.prototype,me);var ge=function(e){void 0===e&&(e="");var t=new he;return t.text=e,t.isComment=!0,t};function ye(e){return new he(void 0,void 0,void 0,String(e))}function be(e){var t=new he(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.asyncMeta=e.asyncMeta,t.isCloned=!0,t}var _e=Array.prototype,we=Object.create(_e);["push","pop","shift","unshift","splice","sort","reverse"].forEach((function(e){var t=_e[e];U(we,e,(function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var i,o=t.apply(this,n),a=this.__ob__;switch(e){case"push":case"unshift":i=n;break;case"splice":i=n.slice(2)}return i&&a.observeArray(i),a.dep.notify(),o}))}));var Ce=Object.getOwnPropertyNames(we),xe=!0;function Ae(e){xe=e}var ke=function(e){var t;this.value=e,this.dep=new fe,this.vmCount=0,U(e,"__ob__",this),Array.isArray(e)?(V?(t=we,e.__proto__=t):function(e,t,n){for(var r=0,i=n.length;r<i;r++){var o=n[r];U(e,o,t[o])}}(e,we,Ce),this.observeArray(e)):this.walk(e)};function $e(e,t){var n;if(l(e)&&!(e instanceof he))return _(e,"__ob__")&&e.__ob__ instanceof ke?n=e.__ob__:xe&&!ie()&&(Array.isArray(e)||u(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new ke(e)),t&&n&&n.vmCount++,n}function Oe(e,t,n,r,i){var o=new fe,a=Object.getOwnPropertyDescriptor(e,t);if(!a||!1!==a.configurable){var s=a&&a.get,l=a&&a.set;s&&!l||2!==arguments.length||(n=e[t]);var c=!i&&$e(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return fe.target&&(o.depend(),c&&(c.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,r=0,i=t.length;r<i;r++)(n=t[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var r=s?s.call(e):n;t===r||t!=t&&r!=r||s&&!l||(l?l.call(e,t):n=t,c=!i&&$e(t),o.notify())}})}}function De(e,t,n){if(Array.isArray(e)&&f(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var r=e.__ob__;return e._isVue||r&&r.vmCount?n:r?(Oe(r.value,t,n),r.dep.notify(),n):(e[t]=n,n)}function Se(e,t){if(Array.isArray(e)&&f(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||_(e,t)&&(delete e[t],n&&n.dep.notify())}}ke.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Oe(e,t[n])},ke.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)$e(e[t])};var Te=R.optionMergeStrategies;function je(e,t){if(!t)return e;for(var n,r,i,o=le?Reflect.ownKeys(t):Object.keys(t),a=0;a<o.length;a++)"__ob__"!==(n=o[a])&&(r=e[n],i=t[n],_(e,n)?r!==i&&u(r)&&u(i)&&je(r,i):De(e,n,i));return e}function Be(e,t,n){return n?function(){var r="function"==typeof t?t.call(n,n):t,i="function"==typeof e?e.call(n,n):e;return r?je(r,i):i}:t?e?function(){return je("function"==typeof t?t.call(this,this):t,"function"==typeof e?e.call(this,this):e)}:t:e}function Me(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n<e.length;n++)-1===t.indexOf(e[n])&&t.push(e[n]);return t}(n):n}function Ee(e,t,n,r){var i=Object.create(e||null);return t?S(i,t):i}Te.data=function(e,t,n){return n?Be(e,t,n):t&&"function"!=typeof t?e:Be(e,t)},F.forEach((function(e){Te[e]=Me})),N.forEach((function(e){Te[e+"s"]=Ee})),Te.watch=function(e,t,n,r){if(e===te&&(e=void 0),t===te&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var i={};for(var o in S(i,e),t){var a=i[o],s=t[o];a&&!Array.isArray(a)&&(a=[a]),i[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return i},Te.props=Te.methods=Te.inject=Te.computed=function(e,t,n,r){if(!e)return t;var i=Object.create(null);return S(i,e),t&&S(i,t),i},Te.provide=Be;var Le=function(e,t){return void 0===t?e:t};function Pe(e,t,n){if("function"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var r,i,o={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(i=n[r])&&(o[x(i)]={type:null});else if(u(n))for(var a in n)i=n[a],o[x(a)]=u(i)?i:{type:i};e.props=o}}(t),function(e,t){var n=e.inject;if(n){var r=e.inject={};if(Array.isArray(n))for(var i=0;i<n.length;i++)r[n[i]]={from:n[i]};else if(u(n))for(var o in n){var a=n[o];r[o]=u(a)?S({from:o},a):{from:a}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var r=t[n];"function"==typeof r&&(t[n]={bind:r,update:r})}}(t),!t._base&&(t.extends&&(e=Pe(e,t.extends,n)),t.mixins))for(var r=0,i=t.mixins.length;r<i;r++)e=Pe(e,t.mixins[r],n);var o,a={};for(o in e)s(o);for(o in t)_(e,o)||s(o);function s(r){var i=Te[r]||Le;a[r]=i(e[r],t[r],n,r)}return a}function Ie(e,t,n,r){if("string"==typeof n){var i=e[t];if(_(i,n))return i[n];var o=x(n);if(_(i,o))return i[o];var a=A(o);return _(i,a)?i[a]:i[n]||i[o]||i[a]}}function Ne(e,t,n,r){var i=t[e],o=!_(n,e),a=n[e],s=ze(Boolean,i.type);if(s>-1)if(o&&!_(i,"default"))a=!1;else if(""===a||a===$(e)){var l=ze(String,i.type);(l<0||s<l)&&(a=!0)}if(void 0===a){a=function(e,t,n){if(_(t,"default")){var r=t.default;return e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n]?e._props[n]:"function"==typeof r&&"Function"!==Fe(t.type)?r.call(e):r}}(r,i,e);var c=xe;Ae(!0),$e(a),Ae(c)}return a}function Fe(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Re(e,t){return Fe(e)===Fe(t)}function ze(e,t){if(!Array.isArray(t))return Re(t,e)?0:-1;for(var n=0,r=t.length;n<r;n++)if(Re(t[n],e))return n;return-1}function Ue(e,t,n){pe();try{if(t)for(var r=t;r=r.$parent;){var i=r.$options.errorCaptured;if(i)for(var o=0;o<i.length;o++)try{if(!1===i[o].call(r,e,t,n))return}catch(e){qe(e,r,"errorCaptured hook")}}qe(e,t,n)}finally{ve()}}function He(e,t,n,r,i){var o;try{(o=n?e.apply(t,n):e.call(t))&&!o._isVue&&d(o)&&!o._handled&&(o.catch((function(e){return Ue(e,r,i+" (Promise/async)")})),o._handled=!0)}catch(e){Ue(e,r,i)}return o}function qe(e,t,n){if(R.errorHandler)try{return R.errorHandler.call(null,e,t,n)}catch(t){t!==e&&Ve(t)}Ve(e)}function Ve(e,t,n){if(!W&&!J||"undefined"==typeof console)throw e;console.error(e)}var We,Je=!1,Ke=[],Xe=!1;function Ge(){Xe=!1;var e=Ke.slice(0);Ke.length=0;for(var t=0;t<e.length;t++)e[t]()}if("undefined"!=typeof Promise&&ae(Promise)){var Ze=Promise.resolve();We=function(){Ze.then(Ge),Q&&setTimeout(j)},Je=!0}else if(G||"undefined"==typeof MutationObserver||!ae(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())We="undefined"!=typeof setImmediate&&ae(setImmediate)?function(){setImmediate(Ge)}:function(){setTimeout(Ge,0)};else{var Ye=1,Qe=new MutationObserver(Ge),et=document.createTextNode(String(Ye));Qe.observe(et,{characterData:!0}),We=function(){Ye=(Ye+1)%2,et.data=String(Ye)},Je=!0}function tt(e,t){var n;if(Ke.push((function(){if(e)try{e.call(t)}catch(e){Ue(e,t,"nextTick")}else n&&n(t)})),Xe||(Xe=!0,We()),!e&&"undefined"!=typeof Promise)return new Promise((function(e){n=e}))}var nt=new se;function rt(e){!function e(t,n){var r,i,o=Array.isArray(t);if(!(!o&&!l(t)||Object.isFrozen(t)||t instanceof he)){if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(o)for(r=t.length;r--;)e(t[r],n);else for(r=(i=Object.keys(t)).length;r--;)e(t[i[r]],n)}}(e,nt),nt.clear()}var it=w((function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),r="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=r?e.slice(1):e,once:n,capture:r,passive:t}}));function ot(e,t){function n(){var e=arguments,r=n.fns;if(!Array.isArray(r))return He(r,null,arguments,t,"v-on handler");for(var i=r.slice(),o=0;o<i.length;o++)He(i[o],null,e,t,"v-on handler")}return n.fns=e,n}function at(e,t,n,r,o,s){var l,c,u,f;for(l in e)c=e[l],u=t[l],f=it(l),i(c)||(i(u)?(i(c.fns)&&(c=e[l]=ot(c,s)),a(f.once)&&(c=e[l]=o(f.name,c,f.capture)),n(f.name,c,f.capture,f.passive,f.params)):c!==u&&(u.fns=c,e[l]=u));for(l in t)i(e[l])&&r((f=it(l)).name,t[l],f.capture)}function st(e,t,n){var r;e instanceof he&&(e=e.data.hook||(e.data.hook={}));var s=e[t];function l(){n.apply(this,arguments),y(r.fns,l)}i(s)?r=ot([l]):o(s.fns)&&a(s.merged)?(r=s).fns.push(l):r=ot([s,l]),r.merged=!0,e[t]=r}function lt(e,t,n,r,i){if(o(t)){if(_(t,n))return e[n]=t[n],i||delete t[n],!0;if(_(t,r))return e[n]=t[r],i||delete t[r],!0}return!1}function ct(e){return s(e)?[ye(e)]:Array.isArray(e)?function e(t,n){var r,l,c,u,f=[];for(r=0;r<t.length;r++)i(l=t[r])||"boolean"==typeof l||(u=f[c=f.length-1],Array.isArray(l)?l.length>0&&(ut((l=e(l,(n||"")+"_"+r))[0])&&ut(u)&&(f[c]=ye(u.text+l[0].text),l.shift()),f.push.apply(f,l)):s(l)?ut(u)?f[c]=ye(u.text+l):""!==l&&f.push(ye(l)):ut(l)&&ut(u)?f[c]=ye(u.text+l.text):(a(t._isVList)&&o(l.tag)&&i(l.key)&&o(n)&&(l.key="__vlist"+n+"_"+r+"__"),f.push(l)));return f}(e):void 0}function ut(e){return o(e)&&o(e.text)&&!1===e.isComment}function ft(e,t){if(e){for(var n=Object.create(null),r=le?Reflect.ownKeys(e):Object.keys(e),i=0;i<r.length;i++){var o=r[i];if("__ob__"!==o){for(var a=e[o].from,s=t;s;){if(s._provided&&_(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s&&"default"in e[o]){var l=e[o].default;n[o]="function"==typeof l?l.call(t):l}}}return n}}function dt(e,t){if(!e||!e.length)return{};for(var n={},r=0,i=e.length;r<i;r++){var o=e[r],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==t&&o.fnContext!==t||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,l=n[s]||(n[s]=[]);"template"===o.tag?l.push.apply(l,o.children||[]):l.push(o)}}for(var c in n)n[c].every(pt)&&delete n[c];return n}function pt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function vt(e,t,n){var i,o=Object.keys(t).length>0,a=e?!!e.$stable:!o,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&n&&n!==r&&s===n.$key&&!o&&!n.$hasNormal)return n;for(var l in i={},e)e[l]&&"$"!==l[0]&&(i[l]=ht(t,l,e[l]))}else i={};for(var c in t)c in i||(i[c]=mt(t,c));return e&&Object.isExtensible(e)&&(e._normalized=i),U(i,"$stable",a),U(i,"$key",s),U(i,"$hasNormal",o),i}function ht(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:ct(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function mt(e,t){return function(){return e[t]}}function gt(e,t){var n,r,i,a,s;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;r<i;r++)n[r]=t(e[r],r);else if("number"==typeof e)for(n=new Array(e),r=0;r<e;r++)n[r]=t(r+1,r);else if(l(e))if(le&&e[Symbol.iterator]){n=[];for(var c=e[Symbol.iterator](),u=c.next();!u.done;)n.push(t(u.value,n.length)),u=c.next()}else for(a=Object.keys(e),n=new Array(a.length),r=0,i=a.length;r<i;r++)s=a[r],n[r]=t(e[s],s,r);return o(n)||(n=[]),n._isVList=!0,n}function yt(e,t,n,r){var i,o=this.$scopedSlots[e];o?(n=n||{},r&&(n=S(S({},r),n)),i=o(n)||t):i=this.$slots[e]||t;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},i):i}function bt(e){return Ie(this.$options,"filters",e)||M}function _t(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function wt(e,t,n,r,i){var o=R.keyCodes[t]||n;return i&&r&&!R.keyCodes[t]?_t(i,r):o?_t(o,e):r?$(r)!==t:void 0}function Ct(e,t,n,r,i){if(n&&l(n)){var o;Array.isArray(n)&&(n=T(n));var a=function(a){if("class"===a||"style"===a||g(a))o=e;else{var s=e.attrs&&e.attrs.type;o=r||R.mustUseProp(t,s,a)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var l=x(a),c=$(a);l in o||c in o||(o[a]=n[a],i&&((e.on||(e.on={}))["update:"+a]=function(e){n[a]=e}))};for(var s in n)a(s)}return e}function xt(e,t){var n=this._staticTrees||(this._staticTrees=[]),r=n[e];return r&&!t||kt(r=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),r}function At(e,t,n){return kt(e,"__once__"+t+(n?"_"+n:""),!0),e}function kt(e,t,n){if(Array.isArray(e))for(var r=0;r<e.length;r++)e[r]&&"string"!=typeof e[r]&&$t(e[r],t+"_"+r,n);else $t(e,t,n)}function $t(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function Ot(e,t){if(t&&u(t)){var n=e.on=e.on?S({},e.on):{};for(var r in t){var i=n[r],o=t[r];n[r]=i?[].concat(i,o):o}}return e}function Dt(e,t,n,r){t=t||{$stable:!n};for(var i=0;i<e.length;i++){var o=e[i];Array.isArray(o)?Dt(o,t,n):o&&(o.proxy&&(o.fn.proxy=!0),t[o.key]=o.fn)}return r&&(t.$key=r),t}function St(e,t){for(var n=0;n<t.length;n+=2){var r=t[n];"string"==typeof r&&r&&(e[t[n]]=t[n+1])}return e}function Tt(e,t){return"string"==typeof e?t+e:e}function jt(e){e._o=At,e._n=v,e._s=p,e._l=gt,e._t=yt,e._q=E,e._i=L,e._m=xt,e._f=bt,e._k=wt,e._b=Ct,e._v=ye,e._e=ge,e._u=Dt,e._g=Ot,e._d=St,e._p=Tt}function Bt(e,t,n,i,o){var s,l=this,c=o.options;_(i,"_uid")?(s=Object.create(i))._original=i:(s=i,i=i._original);var u=a(c._compiled),f=!u;this.data=e,this.props=t,this.children=n,this.parent=i,this.listeners=e.on||r,this.injections=ft(c.inject,i),this.slots=function(){return l.$slots||vt(e.scopedSlots,l.$slots=dt(n,i)),l.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return vt(e.scopedSlots,this.slots())}}),u&&(this.$options=c,this.$slots=this.slots(),this.$scopedSlots=vt(e.scopedSlots,this.$slots)),c._scopeId?this._c=function(e,t,n,r){var o=Ft(s,e,t,n,r,f);return o&&!Array.isArray(o)&&(o.fnScopeId=c._scopeId,o.fnContext=i),o}:this._c=function(e,t,n,r){return Ft(s,e,t,n,r,f)}}function Mt(e,t,n,r,i){var o=be(e);return o.fnContext=n,o.fnOptions=r,t.slot&&((o.data||(o.data={})).slot=t.slot),o}function Et(e,t){for(var n in t)e[x(n)]=t[n]}jt(Bt.prototype);var Lt={init:function(e,t){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var n=e;Lt.prepatch(n,n)}else(e.componentInstance=function(e,t){var n={_isComponent:!0,_parentVnode:e,parent:t},r=e.data.inlineTemplate;return o(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns),new e.componentOptions.Ctor(n)}(e,Xt)).$mount(t?e.elm:void 0,t)},prepatch:function(e,t){var n=t.componentOptions;!function(e,t,n,i,o){var a=i.data.scopedSlots,s=e.$scopedSlots,l=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&e.$scopedSlots.$key!==a.$key),c=!!(o||e.$options._renderChildren||l);if(e.$options._parentVnode=i,e.$vnode=i,e._vnode&&(e._vnode.parent=i),e.$options._renderChildren=o,e.$attrs=i.data.attrs||r,e.$listeners=n||r,t&&e.$options.props){Ae(!1);for(var u=e._props,f=e.$options._propKeys||[],d=0;d<f.length;d++){var p=f[d],v=e.$options.props;u[p]=Ne(p,v,t,e)}Ae(!0),e.$options.propsData=t}n=n||r;var h=e.$options._parentListeners;e.$options._parentListeners=n,Kt(e,n,h),c&&(e.$slots=dt(o,i.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,n.propsData,n.listeners,t,n.children)},insert:function(e){var t,n=e.context,r=e.componentInstance;r._isMounted||(r._isMounted=!0,Qt(r,"mounted")),e.data.keepAlive&&(n._isMounted?((t=r)._inactive=!1,tn.push(t)):Yt(r,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,Zt(t))||t._inactive)){t._inactive=!0;for(var r=0;r<t.$children.length;r++)e(t.$children[r]);Qt(t,"deactivated")}}(t,!0):t.$destroy())}},Pt=Object.keys(Lt);function It(e,t,n,s,c){if(!i(e)){var u=n.$options._base;if(l(e)&&(e=u.extend(e)),"function"==typeof e){var f;if(i(e.cid)&&void 0===(e=function(e,t){if(a(e.error)&&o(e.errorComp))return e.errorComp;if(o(e.resolved))return e.resolved;var n=zt;if(n&&o(e.owners)&&-1===e.owners.indexOf(n)&&e.owners.push(n),a(e.loading)&&o(e.loadingComp))return e.loadingComp;if(n&&!o(e.owners)){var r=e.owners=[n],s=!0,c=null,u=null;n.$on("hook:destroyed",(function(){return y(r,n)}));var f=function(e){for(var t=0,n=r.length;t<n;t++)r[t].$forceUpdate();e&&(r.length=0,null!==c&&(clearTimeout(c),c=null),null!==u&&(clearTimeout(u),u=null))},p=P((function(n){e.resolved=Ut(n,t),s?r.length=0:f(!0)})),v=P((function(t){o(e.errorComp)&&(e.error=!0,f(!0))})),h=e(p,v);return l(h)&&(d(h)?i(e.resolved)&&h.then(p,v):d(h.component)&&(h.component.then(p,v),o(h.error)&&(e.errorComp=Ut(h.error,t)),o(h.loading)&&(e.loadingComp=Ut(h.loading,t),0===h.delay?e.loading=!0:c=setTimeout((function(){c=null,i(e.resolved)&&i(e.error)&&(e.loading=!0,f(!1))}),h.delay||200)),o(h.timeout)&&(u=setTimeout((function(){u=null,i(e.resolved)&&v(null)}),h.timeout)))),s=!1,e.loading?e.loadingComp:e.resolved}}(f=e,u)))return function(e,t,n,r,i){var o=ge();return o.asyncFactory=e,o.asyncMeta={data:t,context:n,children:r,tag:i},o}(f,t,n,s,c);t=t||{},wn(e),o(t.model)&&function(e,t){var n=e.model&&e.model.prop||"value",r=e.model&&e.model.event||"input";(t.attrs||(t.attrs={}))[n]=t.model.value;var i=t.on||(t.on={}),a=i[r],s=t.model.callback;o(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(i[r]=[s].concat(a)):i[r]=s}(e.options,t);var p=function(e,t,n){var r=t.options.props;if(!i(r)){var a={},s=e.attrs,l=e.props;if(o(s)||o(l))for(var c in r){var u=$(c);lt(a,l,c,u,!0)||lt(a,s,c,u,!1)}return a}}(t,e);if(a(e.options.functional))return function(e,t,n,i,a){var s=e.options,l={},c=s.props;if(o(c))for(var u in c)l[u]=Ne(u,c,t||r);else o(n.attrs)&&Et(l,n.attrs),o(n.props)&&Et(l,n.props);var f=new Bt(n,l,a,i,e),d=s.render.call(null,f._c,f);if(d instanceof he)return Mt(d,n,f.parent,s);if(Array.isArray(d)){for(var p=ct(d)||[],v=new Array(p.length),h=0;h<p.length;h++)v[h]=Mt(p[h],n,f.parent,s);return v}}(e,p,t,n,s);var v=t.on;if(t.on=t.nativeOn,a(e.options.abstract)){var h=t.slot;t={},h&&(t.slot=h)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<Pt.length;n++){var r=Pt[n],i=t[r],o=Lt[r];i===o||i&&i._merged||(t[r]=i?Nt(o,i):o)}}(t);var m=e.options.name||c;return new he("vue-component-"+e.cid+(m?"-"+m:""),t,void 0,void 0,void 0,n,{Ctor:e,propsData:p,listeners:v,tag:c,children:s},f)}}}function Nt(e,t){var n=function(n,r){e(n,r),t(n,r)};return n._merged=!0,n}function Ft(e,t,n,r,c,u){return(Array.isArray(n)||s(n))&&(c=r,r=n,n=void 0),a(u)&&(c=2),function(e,t,n,r,s){return o(n)&&o(n.__ob__)?ge():(o(n)&&o(n.is)&&(t=n.is),t?(Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0),2===s?r=ct(r):1===s&&(r=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(r)),"string"==typeof t?(u=e.$vnode&&e.$vnode.ns||R.getTagNamespace(t),c=R.isReservedTag(t)?new he(R.parsePlatformTagName(t),n,r,void 0,void 0,e):n&&n.pre||!o(f=Ie(e.$options,"components",t))?new he(t,n,r,void 0,void 0,e):It(f,n,e,r,t)):c=It(t,n,e,r),Array.isArray(c)?c:o(c)?(o(u)&&function e(t,n,r){if(t.ns=n,"foreignObject"===t.tag&&(n=void 0,r=!0),o(t.children))for(var s=0,l=t.children.length;s<l;s++){var c=t.children[s];o(c.tag)&&(i(c.ns)||a(r)&&"svg"!==c.tag)&&e(c,n,r)}}(c,u),o(n)&&function(e){l(e.style)&&rt(e.style),l(e.class)&&rt(e.class)}(n),c):ge()):ge());var c,u,f}(e,t,n,r,c)}var Rt,zt=null;function Ut(e,t){return(e.__esModule||le&&"Module"===e[Symbol.toStringTag])&&(e=e.default),l(e)?t.extend(e):e}function Ht(e){return e.isComment&&e.asyncFactory}function qt(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(o(n)&&(o(n.componentOptions)||Ht(n)))return n}}function Vt(e,t){Rt.$on(e,t)}function Wt(e,t){Rt.$off(e,t)}function Jt(e,t){var n=Rt;return function r(){null!==t.apply(null,arguments)&&n.$off(e,r)}}function Kt(e,t,n){Rt=e,at(t,n||{},Vt,Wt,Jt,e),Rt=void 0}var Xt=null;function Gt(e){var t=Xt;return Xt=e,function(){Xt=t}}function Zt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function Yt(e,t){if(t){if(e._directInactive=!1,Zt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)Yt(e.$children[n]);Qt(e,"activated")}}function Qt(e,t){pe();var n=e.$options[t],r=t+" hook";if(n)for(var i=0,o=n.length;i<o;i++)He(n[i],e,null,e,r);e._hasHookEvent&&e.$emit("hook:"+t),ve()}var en=[],tn=[],nn={},rn=!1,on=!1,an=0,sn=0,ln=Date.now;if(W&&!G){var cn=window.performance;cn&&"function"==typeof cn.now&&ln()>document.createEvent("Event").timeStamp&&(ln=function(){return cn.now()})}function un(){var e,t;for(sn=ln(),on=!0,en.sort((function(e,t){return e.id-t.id})),an=0;an<en.length;an++)(e=en[an]).before&&e.before(),t=e.id,nn[t]=null,e.run();var n=tn.slice(),r=en.slice();an=en.length=tn.length=0,nn={},rn=on=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,Yt(e[t],!0)}(n),function(e){for(var t=e.length;t--;){var n=e[t],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&Qt(r,"updated")}}(r),oe&&R.devtools&&oe.emit("flush")}var fn=0,dn=function(e,t,n,r,i){this.vm=e,i&&(e._watcher=this),e._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++fn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new se,this.newDepIds=new se,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!q.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=j)),this.value=this.lazy?void 0:this.get()};dn.prototype.get=function(){var e;pe(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Ue(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&rt(e),ve(),this.cleanupDeps()}return e},dn.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},dn.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},dn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==nn[t]){if(nn[t]=!0,on){for(var n=en.length-1;n>an&&en[n].id>e.id;)n--;en.splice(n+1,0,e)}else en.push(e);rn||(rn=!0,tt(un))}}(this)},dn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||l(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Ue(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:j,set:j};function vn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}var hn={lazy:!0};function mn(e,t,n){var r=!ie();"function"==typeof n?(pn.get=r?gn(t):yn(n),pn.set=j):(pn.get=n.get?r&&!1!==n.cache?gn(t):yn(n.get):j,pn.set=n.set||j),Object.defineProperty(e,t,pn)}function gn(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),fe.target&&t.depend(),t.value}}function yn(e){return function(){return e.call(this,this)}}function bn(e,t,n,r){return u(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,r)}var _n=0;function wn(e){var t=e.options;if(e.super){var n=wn(e.super);if(n!==e.superOptions){e.superOptions=n;var r=function(e){var t,n=e.options,r=e.sealedOptions;for(var i in n)n[i]!==r[i]&&(t||(t={}),t[i]=n[i]);return t}(e);r&&S(e.extendOptions,r),(t=e.options=Pe(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function Cn(e){this._init(e)}function xn(e){return e&&(e.Ctor.options.name||e.tag)}function An(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===c.call(n)&&e.test(t));var n}function kn(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=xn(a.componentOptions);s&&!t(s)&&$n(n,o,r,i)}}}function $n(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,y(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=_n++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Pe(wn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Kt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,i=n&&n.context;e.$slots=dt(t._renderChildren,i),e.$scopedSlots=r,e._c=function(t,n,r,i){return Ft(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return Ft(e,t,n,r,i,!0)};var o=n&&n.data;Oe(e,"$attrs",o&&o.attrs||r,null,!0),Oe(e,"$listeners",t._parentListeners||r,null,!0)}(t),Qt(t,"beforeCreate"),function(e){var t=ft(e.$options.inject,e);t&&(Ae(!1),Object.keys(t).forEach((function(n){Oe(e,n,t[n])})),Ae(!0))}(t),function(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&Ae(!1);var o=function(o){i.push(o);var a=Ne(o,t,n,e);Oe(r,o,a),o in e||vn(e,"_props",o)};for(var a in t)o(a);Ae(!0)}(e,t.props),t.methods&&function(e,t){for(var n in e.$options.props,t)e[n]="function"!=typeof t[n]?j:O(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;u(t=e._data="function"==typeof t?function(e,t){pe();try{return e.call(t,t)}catch(e){return Ue(e,t,"data()"),{}}finally{ve()}}(t,e):t||{})||(t={});for(var n,r=Object.keys(t),i=e.$options.props,o=(e.$options.methods,r.length);o--;){var a=r[o];i&&_(i,a)||36!==(n=(a+"").charCodeAt(0))&&95!==n&&vn(e,"_data",a)}$e(t,!0)}(e):$e(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=ie();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;r||(n[i]=new dn(e,a||j,j,hn)),i in e||mn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==te&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i<r.length;i++)bn(e,n,r[i]);else bn(e,n,r)}}(e,t.watch)}(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),Qt(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(Cn),function(e){Object.defineProperty(e.prototype,"$data",{get:function(){return this._data}}),Object.defineProperty(e.prototype,"$props",{get:function(){return this._props}}),e.prototype.$set=De,e.prototype.$delete=Se,e.prototype.$watch=function(e,t,n){if(u(t))return bn(this,e,t,n);(n=n||{}).user=!0;var r=new dn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Ue(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Cn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i<o;i++)r.$on(e[i],n);else(r._events[e]||(r._events[e]=[])).push(n),t.test(e)&&(r._hasHookEvent=!0);return r},e.prototype.$once=function(e,t){var n=this;function r(){n.$off(e,r),t.apply(n,arguments)}return r.fn=t,n.$on(e,r),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var r=0,i=e.length;r<i;r++)n.$off(e[r],t);return n}var o,a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;for(var s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this._events[e];if(t){t=t.length>1?D(t):t;for(var n=D(arguments,1),r='event handler for "'+e+'"',i=0,o=t.length;i<o;i++)He(t[i],this,n,this,r)}return this}}(Cn),function(e){e.prototype._update=function(e,t){var n=this,r=n.$el,i=n._vnode,o=Gt(n);n._vnode=e,n.$el=i?n.__patch__(i,e):n.__patch__(n.$el,e,t,!1),o(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){Qt(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||y(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),Qt(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(Cn),function(e){jt(e.prototype),e.prototype.$nextTick=function(e){return tt(e,this)},e.prototype._render=function(){var e,t=this,n=t.$options,r=n.render,i=n._parentVnode;i&&(t.$scopedSlots=vt(i.data.scopedSlots,t.$slots,t.$scopedSlots)),t.$vnode=i;try{zt=t,e=r.call(t._renderProxy,t.$createElement)}catch(n){Ue(n,t,"render"),e=t._vnode}finally{zt=null}return Array.isArray(e)&&1===e.length&&(e=e[0]),e instanceof he||(e=ge()),e.parent=i,e}}(Cn);var On=[String,RegExp,Array],Dn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:On,exclude:On,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)$n(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",(function(t){kn(e,(function(e){return An(t,e)}))})),this.$watch("exclude",(function(t){kn(e,(function(e){return!An(t,e)}))}))},render:function(){var e=this.$slots.default,t=qt(e),n=t&&t.componentOptions;if(n){var r=xn(n),i=this.include,o=this.exclude;if(i&&(!r||!An(i,r))||o&&r&&An(o,r))return t;var a=this.cache,s=this.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;a[l]?(t.componentInstance=a[l].componentInstance,y(s,l),s.push(l)):(a[l]=t,s.push(l),this.max&&s.length>parseInt(this.max)&&$n(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return R}};Object.defineProperty(e,"config",t),e.util={warn:ce,extend:S,mergeOptions:Pe,defineReactive:Oe},e.set=De,e.delete=Se,e.nextTick=tt,e.observable=function(e){return $e(e),e},e.options=Object.create(null),N.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,S(e.options.components,Dn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=D(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Pe(this.options,e),this}}(e),function(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,r=n.cid,i=e._Ctor||(e._Ctor={});if(i[r])return i[r];var o=e.name||n.options.name,a=function(e){this._init(e)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=t++,a.options=Pe(n.options,e),a.super=n,a.options.props&&function(e){var t=e.options.props;for(var n in t)vn(e.prototype,"_props",n)}(a),a.options.computed&&function(e){var t=e.options.computed;for(var n in t)mn(e.prototype,n,t[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,N.forEach((function(e){a[e]=n[e]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=e,a.sealedOptions=S({},a.options),i[r]=a,a}}(e),function(e){N.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&u(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Cn),Object.defineProperty(Cn.prototype,"$isServer",{get:ie}),Object.defineProperty(Cn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,"FunctionalRenderContext",{value:Bt}),Cn.version="2.6.12";var Sn=h("style,class"),Tn=h("input,textarea,option,select,progress"),jn=function(e,t,n){return"value"===n&&Tn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Bn=h("contenteditable,draggable,spellcheck"),Mn=h("events,caret,typing,plaintext-only"),En=h("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ln="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},In=function(e){return Pn(e)?e.slice(6,e.length):""},Nn=function(e){return null==e||!1===e};function Fn(e,t){return{staticClass:Rn(e.staticClass,t.staticClass),class:o(e.class)?[e.class,t.class]:t.class}}function Rn(e,t){return e?t?e+" "+t:e:t||""}function zn(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r<i;r++)o(t=zn(e[r]))&&""!==t&&(n&&(n+=" "),n+=t);return n}(e):l(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Un={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Hn=h("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),qn=h("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Vn=function(e){return Hn(e)||qn(e)};function Wn(e){return qn(e)?"svg":"math"===e?"math":void 0}var Jn=Object.create(null),Kn=h("text,number,password,search,email,tel,url");function Xn(e){return"string"==typeof e?document.querySelector(e)||document.createElement("div"):e}var Gn=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e||t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(e,t){return document.createElementNS(Un[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),Zn={create:function(e,t){Yn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(Yn(e,!0),Yn(t))},destroy:function(e){Yn(e,!0)}};function Yn(e,t){var n=e.data.ref;if(o(n)){var r=e.context,i=e.componentInstance||e.elm,a=r.$refs;t?Array.isArray(a[n])?y(a[n],i):a[n]===i&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var Qn=new he("",{},[]),er=["create","activate","update","remove","destroy"];function tr(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&o(e.data)===o(t.data)&&function(e,t){if("input"!==e.tag)return!0;var n,r=o(n=e.data)&&o(n=n.attrs)&&n.type,i=o(n=t.data)&&o(n=n.attrs)&&n.type;return r===i||Kn(r)&&Kn(i)}(e,t)||a(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&i(t.asyncFactory.error))}function nr(e,t,n){var r,i,a={};for(r=t;r<=n;++r)o(i=e[r].key)&&(a[i]=r);return a}var rr={create:ir,update:ir,destroy:function(e){ir(e,Qn)}};function ir(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,r,i,o=e===Qn,a=t===Qn,s=ar(e.data.directives,e.context),l=ar(t.data.directives,t.context),c=[],u=[];for(n in l)r=s[n],i=l[n],r?(i.oldValue=r.value,i.oldArg=r.arg,lr(i,"update",t,e),i.def&&i.def.componentUpdated&&u.push(i)):(lr(i,"bind",t,e),i.def&&i.def.inserted&&c.push(i));if(c.length){var f=function(){for(var n=0;n<c.length;n++)lr(c[n],"inserted",t,e)};o?st(t,"insert",f):f()}if(u.length&&st(t,"postpatch",(function(){for(var n=0;n<u.length;n++)lr(u[n],"componentUpdated",t,e)})),!o)for(n in s)l[n]||lr(s[n],"unbind",e,e,a)}(e,t)}var or=Object.create(null);function ar(e,t){var n,r,i=Object.create(null);if(!e)return i;for(n=0;n<e.length;n++)(r=e[n]).modifiers||(r.modifiers=or),i[sr(r)]=r,r.def=Ie(t.$options,"directives",r.name);return i}function sr(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function lr(e,t,n,r,i){var o=e.def&&e.def[t];if(o)try{o(n.elm,e,n,r,i)}catch(r){Ue(r,n.context,"directive "+e.name+" "+t+" hook")}}var cr=[Zn,rr];function ur(e,t){var n=t.componentOptions;if(!(o(n)&&!1===n.Ctor.options.inheritAttrs||i(e.data.attrs)&&i(t.data.attrs))){var r,a,s=t.elm,l=e.data.attrs||{},c=t.data.attrs||{};for(r in o(c.__ob__)&&(c=t.data.attrs=S({},c)),c)a=c[r],l[r]!==a&&fr(s,r,a);for(r in(G||Y)&&c.value!==l.value&&fr(s,"value",c.value),l)i(c[r])&&(Pn(r)?s.removeAttributeNS(Ln,In(r)):Bn(r)||s.removeAttribute(r))}}function fr(e,t,n){e.tagName.indexOf("-")>-1?dr(e,t,n):En(t)?Nn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Bn(t)?e.setAttribute(t,function(e,t){return Nn(t)||"false"===t?"false":"contenteditable"===e&&Mn(t)?t:"true"}(t,n)):Pn(t)?Nn(n)?e.removeAttributeNS(Ln,In(t)):e.setAttributeNS(Ln,t,n):dr(e,t,n)}function dr(e,t,n){if(Nn(n))e.removeAttribute(t);else{if(G&&!Z&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var pr={create:ur,update:ur};function vr(e,t){var n=t.elm,r=t.data,a=e.data;if(!(i(r.staticClass)&&i(r.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=function(e){for(var t=e.data,n=e,r=e;o(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Fn(r.data,t));for(;o(n=n.parent);)n&&n.data&&(t=Fn(t,n.data));return function(e,t){return o(e)||o(t)?Rn(e,zn(t)):""}(t.staticClass,t.class)}(t),l=n._transitionClasses;o(l)&&(s=Rn(s,zn(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var hr,mr,gr,yr,br,_r,wr={create:vr,update:vr},Cr=/[\w).+\-_$\]]/;function xr(e){var t,n,r,i,o,a=!1,s=!1,l=!1,c=!1,u=0,f=0,d=0,p=0;for(r=0;r<e.length;r++)if(n=t,t=e.charCodeAt(r),a)39===t&&92!==n&&(a=!1);else if(s)34===t&&92!==n&&(s=!1);else if(l)96===t&&92!==n&&(l=!1);else if(c)47===t&&92!==n&&(c=!1);else if(124!==t||124===e.charCodeAt(r+1)||124===e.charCodeAt(r-1)||u||f||d){switch(t){case 34:s=!0;break;case 39:a=!0;break;case 96:l=!0;break;case 40:d++;break;case 41:d--;break;case 91:f++;break;case 93:f--;break;case 123:u++;break;case 125:u--}if(47===t){for(var v=r-1,h=void 0;v>=0&&" "===(h=e.charAt(v));v--);h&&Cr.test(h)||(c=!0)}}else void 0===i?(p=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(p,r).trim()),p=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==p&&m(),o)for(r=0;r<o.length;r++)i=Ar(i,o[r]);return i}function Ar(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var r=t.slice(0,n),i=t.slice(n+1);return'_f("'+r+'")('+e+(")"!==i?","+i:i)}function kr(e,t){console.error("[Vue compiler]: "+e)}function $r(e,t){return e?e.map((function(e){return e[t]})).filter((function(e){return e})):[]}function Or(e,t,n,r,i){(e.props||(e.props=[])).push(Pr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Dr(e,t,n,r,i){(i?e.dynamicAttrs||(e.dynamicAttrs=[]):e.attrs||(e.attrs=[])).push(Pr({name:t,value:n,dynamic:i},r)),e.plain=!1}function Sr(e,t,n,r){e.attrsMap[t]=n,e.attrsList.push(Pr({name:t,value:n},r))}function Tr(e,t,n,r,i,o,a,s){(e.directives||(e.directives=[])).push(Pr({name:t,rawName:n,value:r,arg:i,isDynamicArg:o,modifiers:a},s)),e.plain=!1}function jr(e,t,n){return n?"_p("+t+',"'+e+'")':e+t}function Br(e,t,n,i,o,a,s,l){var c;(i=i||r).right?l?t="("+t+")==='click'?'contextmenu':("+t+")":"click"===t&&(t="contextmenu",delete i.right):i.middle&&(l?t="("+t+")==='click'?'mouseup':("+t+")":"click"===t&&(t="mouseup")),i.capture&&(delete i.capture,t=jr("!",t,l)),i.once&&(delete i.once,t=jr("~",t,l)),i.passive&&(delete i.passive,t=jr("&",t,l)),i.native?(delete i.native,c=e.nativeEvents||(e.nativeEvents={})):c=e.events||(e.events={});var u=Pr({value:n.trim(),dynamic:l},s);i!==r&&(u.modifiers=i);var f=c[t];Array.isArray(f)?o?f.unshift(u):f.push(u):c[t]=f?o?[u,f]:[f,u]:u,e.plain=!1}function Mr(e,t,n){var r=Er(e,":"+t)||Er(e,"v-bind:"+t);if(null!=r)return xr(r);if(!1!==n){var i=Er(e,t);if(null!=i)return JSON.stringify(i)}}function Er(e,t,n){var r;if(null!=(r=e.attrsMap[t]))for(var i=e.attrsList,o=0,a=i.length;o<a;o++)if(i[o].name===t){i.splice(o,1);break}return n&&delete e.attrsMap[t],r}function Lr(e,t){for(var n=e.attrsList,r=0,i=n.length;r<i;r++){var o=n[r];if(t.test(o.name))return n.splice(r,1),o}}function Pr(e,t){return t&&(null!=t.start&&(e.start=t.start),null!=t.end&&(e.end=t.end)),e}function Ir(e,t,n){var r=n||{},i=r.number,o="$$v";r.trim&&(o="(typeof $$v === 'string'? $$v.trim(): $$v)"),i&&(o="_n("+o+")");var a=Nr(t,o);e.model={value:"("+t+")",expression:JSON.stringify(t),callback:"function ($$v) {"+a+"}"}}function Nr(e,t){var n=function(e){if(e=e.trim(),hr=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<hr-1)return(yr=e.lastIndexOf("."))>-1?{exp:e.slice(0,yr),key:'"'+e.slice(yr+1)+'"'}:{exp:e,key:null};for(mr=e,yr=br=_r=0;!Rr();)zr(gr=Fr())?Hr(gr):91===gr&&Ur(gr);return{exp:e.slice(0,br),key:e.slice(br+1,_r)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Fr(){return mr.charCodeAt(++yr)}function Rr(){return yr>=hr}function zr(e){return 34===e||39===e}function Ur(e){var t=1;for(br=yr;!Rr();)if(zr(e=Fr()))Hr(e);else if(91===e&&t++,93===e&&t--,0===t){_r=yr;break}}function Hr(e){for(var t=e;!Rr()&&(e=Fr())!==t;);}var qr;function Vr(e,t,n){var r=qr;return function i(){null!==t.apply(null,arguments)&&Kr(e,i,n,r)}}var Wr=Je&&!(ee&&Number(ee[1])<=53);function Jr(e,t,n,r){if(Wr){var i=sn,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}qr.addEventListener(e,t,ne?{capture:n,passive:r}:n)}function Kr(e,t,n,r){(r||qr).removeEventListener(e,t._wrapper||t,n)}function Xr(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},r=e.data.on||{};qr=t.elm,function(e){if(o(e.__r)){var t=G?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}o(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),at(n,r,Jr,Kr,Vr,t.context),qr=void 0}}var Gr,Zr={create:Xr,update:Xr};function Yr(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,r,a=t.elm,s=e.data.domProps||{},l=t.data.domProps||{};for(n in o(l.__ob__)&&(l=t.data.domProps=S({},l)),s)n in l||(a[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var c=i(r)?"":String(r);Qr(a,c)&&(a.value=c)}else if("innerHTML"===n&&qn(a.tagName)&&i(a.innerHTML)){(Gr=Gr||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var u=Gr.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;u.firstChild;)a.appendChild(u.firstChild)}else if(r!==s[n])try{a[n]=r}catch(e){}}}}function Qr(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(o(r)){if(r.number)return v(n)!==v(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var ei={create:Yr,update:Yr},ti=w((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function ni(e){var t=ri(e.style);return e.staticStyle?S(e.staticStyle,t):t}function ri(e){return Array.isArray(e)?T(e):"string"==typeof e?ti(e):e}var ii,oi=/^--/,ai=/\s*!important$/,si=function(e,t,n){if(oi.test(t))e.style.setProperty(t,n);else if(ai.test(n))e.style.setProperty($(t),n.replace(ai,""),"important");else{var r=ci(t);if(Array.isArray(n))for(var i=0,o=n.length;i<o;i++)e.style[r]=n[i];else e.style[r]=n}},li=["Webkit","Moz","ms"],ci=w((function(e){if(ii=ii||document.createElement("div").style,"filter"!==(e=x(e))&&e in ii)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<li.length;n++){var r=li[n]+t;if(r in ii)return r}}));function ui(e,t){var n=t.data,r=e.data;if(!(i(n.staticStyle)&&i(n.style)&&i(r.staticStyle)&&i(r.style))){var a,s,l=t.elm,c=r.staticStyle,u=r.normalizedStyle||r.style||{},f=c||u,d=ri(t.data.style)||{};t.data.normalizedStyle=o(d.__ob__)?S({},d):d;var p=function(e,t){for(var n,r={},i=e;i.componentInstance;)(i=i.componentInstance._vnode)&&i.data&&(n=ni(i.data))&&S(r,n);(n=ni(e.data))&&S(r,n);for(var o=e;o=o.parent;)o.data&&(n=ni(o.data))&&S(r,n);return r}(t);for(s in f)i(p[s])&&si(l,s,"");for(s in p)(a=p[s])!==f[s]&&si(l,s,null==a?"":a)}}var fi={create:ui,update:ui},di=/\s+/;function pi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(di).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function vi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(di).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function hi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&S(t,mi(e.name||"v")),S(t,e),t}return"string"==typeof e?mi(e):void 0}}var mi=w((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),gi=W&&!Z,yi="transition",bi="animation",_i="transition",wi="transitionend",Ci="animation",xi="animationend";gi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(_i="WebkitTransition",wi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ci="WebkitAnimation",xi="webkitAnimationEnd"));var Ai=W?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function ki(e){Ai((function(){Ai(e)}))}function $i(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),pi(e,t))}function Oi(e,t){e._transitionClasses&&y(e._transitionClasses,t),vi(e,t)}function Di(e,t,n){var r=Ti(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===yi?wi:xi,l=0,c=function(){e.removeEventListener(s,u),n()},u=function(t){t.target===e&&++l>=a&&c()};setTimeout((function(){l<a&&c()}),o+1),e.addEventListener(s,u)}var Si=/\b(transform|all)(,|$)/;function Ti(e,t){var n,r=window.getComputedStyle(e),i=(r[_i+"Delay"]||"").split(", "),o=(r[_i+"Duration"]||"").split(", "),a=ji(i,o),s=(r[Ci+"Delay"]||"").split(", "),l=(r[Ci+"Duration"]||"").split(", "),c=ji(s,l),u=0,f=0;return t===yi?a>0&&(n=yi,u=a,f=o.length):t===bi?c>0&&(n=bi,u=c,f=l.length):f=(n=(u=Math.max(a,c))>0?a>c?yi:bi:null)?n===yi?o.length:l.length:0,{type:n,timeout:u,propCount:f,hasTransform:n===yi&&Si.test(r[_i+"Property"])}}function ji(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map((function(t,n){return Bi(t)+Bi(e[n])})))}function Bi(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Mi(e,t){var n=e.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=hi(e.data.transition);if(!i(r)&&!o(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,c=r.enterClass,u=r.enterToClass,f=r.enterActiveClass,d=r.appearClass,p=r.appearToClass,h=r.appearActiveClass,m=r.beforeEnter,g=r.enter,y=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,C=r.afterAppear,x=r.appearCancelled,A=r.duration,k=Xt,$=Xt.$vnode;$&&$.parent;)k=$.context,$=$.parent;var O=!k._isMounted||!e.isRootInsert;if(!O||w||""===w){var D=O&&d?d:c,S=O&&h?h:f,T=O&&p?p:u,j=O&&_||m,B=O&&"function"==typeof w?w:g,M=O&&C||y,E=O&&x||b,L=v(l(A)?A.enter:A),I=!1!==a&&!Z,N=Pi(B),F=n._enterCb=P((function(){I&&(Oi(n,T),Oi(n,S)),F.cancelled?(I&&Oi(n,D),E&&E(n)):M&&M(n),n._enterCb=null}));e.data.show||st(e,"insert",(function(){var t=n.parentNode,r=t&&t._pending&&t._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),B&&B(n,F)})),j&&j(n),I&&($i(n,D),$i(n,S),ki((function(){Oi(n,D),F.cancelled||($i(n,T),N||(Li(L)?setTimeout(F,L):Di(n,s,F)))}))),e.data.show&&(t&&t(),B&&B(n,F)),I||N||F()}}}function Ei(e,t){var n=e.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=hi(e.data.transition);if(i(r)||1!==n.nodeType)return t();if(!o(n._leaveCb)){var a=r.css,s=r.type,c=r.leaveClass,u=r.leaveToClass,f=r.leaveActiveClass,d=r.beforeLeave,p=r.leave,h=r.afterLeave,m=r.leaveCancelled,g=r.delayLeave,y=r.duration,b=!1!==a&&!Z,_=Pi(p),w=v(l(y)?y.leave:y),C=n._leaveCb=P((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),b&&(Oi(n,u),Oi(n,f)),C.cancelled?(b&&Oi(n,c),m&&m(n)):(t(),h&&h(n)),n._leaveCb=null}));g?g(x):x()}function x(){C.cancelled||(!e.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),d&&d(n),b&&($i(n,c),$i(n,f),ki((function(){Oi(n,c),C.cancelled||($i(n,u),_||(Li(w)?setTimeout(C,w):Di(n,s,C)))}))),p&&p(n,C),b||_||C())}}function Li(e){return"number"==typeof e&&!isNaN(e)}function Pi(e){if(i(e))return!1;var t=e.fns;return o(t)?Pi(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function Ii(e,t){!0!==t.data.show&&Mi(t)}var Ni=function(e){var t,n,r={},l=e.modules,c=e.nodeOps;for(t=0;t<er.length;++t)for(r[er[t]]=[],n=0;n<l.length;++n)o(l[n][er[t]])&&r[er[t]].push(l[n][er[t]]);function u(e){var t=c.parentNode(e);o(t)&&c.removeChild(t,e)}function f(e,t,n,i,s,l,u){if(o(e.elm)&&o(l)&&(e=l[u]=be(e)),e.isRootInsert=!s,!function(e,t,n,i){var s=e.data;if(o(s)){var l=o(e.componentInstance)&&s.keepAlive;if(o(s=s.hook)&&o(s=s.init)&&s(e,!1),o(e.componentInstance))return d(e,t),p(n,e.elm,i),a(l)&&function(e,t,n,i){for(var a,s=e;s.componentInstance;)if(o(a=(s=s.componentInstance._vnode).data)&&o(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](Qn,s);t.push(s);break}p(n,e.elm,i)}(e,t,n,i),!0}}(e,t,n,i)){var f=e.data,h=e.children,m=e.tag;o(m)?(e.elm=e.ns?c.createElementNS(e.ns,m):c.createElement(m,e),y(e),v(e,h,t),o(f)&&g(e,t),p(n,e.elm,i)):a(e.isComment)?(e.elm=c.createComment(e.text),p(n,e.elm,i)):(e.elm=c.createTextNode(e.text),p(n,e.elm,i))}}function d(e,t){o(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,m(e)?(g(e,t),y(e)):(Yn(e),t.push(e))}function p(e,t,n){o(e)&&(o(n)?c.parentNode(n)===e&&c.insertBefore(e,t,n):c.appendChild(e,t))}function v(e,t,n){if(Array.isArray(t))for(var r=0;r<t.length;++r)f(t[r],n,e.elm,null,!0,t,r);else s(e.text)&&c.appendChild(e.elm,c.createTextNode(String(e.text)))}function m(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return o(e.tag)}function g(e,n){for(var i=0;i<r.create.length;++i)r.create[i](Qn,e);o(t=e.data.hook)&&(o(t.create)&&t.create(Qn,e),o(t.insert)&&n.push(e))}function y(e){var t;if(o(t=e.fnScopeId))c.setStyleScope(e.elm,t);else for(var n=e;n;)o(t=n.context)&&o(t=t.$options._scopeId)&&c.setStyleScope(e.elm,t),n=n.parent;o(t=Xt)&&t!==e.context&&t!==e.fnContext&&o(t=t.$options._scopeId)&&c.setStyleScope(e.elm,t)}function b(e,t,n,r,i,o){for(;r<=i;++r)f(n[r],o,e,t,!1,n,r)}function _(e){var t,n,i=e.data;if(o(i))for(o(t=i.hook)&&o(t=t.destroy)&&t(e),t=0;t<r.destroy.length;++t)r.destroy[t](e);if(o(t=e.children))for(n=0;n<e.children.length;++n)_(e.children[n])}function w(e,t,n){for(;t<=n;++t){var r=e[t];o(r)&&(o(r.tag)?(C(r),_(r)):u(r.elm))}}function C(e,t){if(o(t)||o(e.data)){var n,i=r.remove.length+1;for(o(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&u(e)}return n.listeners=t,n}(e.elm,i),o(n=e.componentInstance)&&o(n=n._vnode)&&o(n.data)&&C(n,t),n=0;n<r.remove.length;++n)r.remove[n](e,t);o(n=e.data.hook)&&o(n=n.remove)?n(e,t):t()}else u(e.elm)}function x(e,t,n,r){for(var i=n;i<r;i++){var a=t[i];if(o(a)&&tr(e,a))return i}}function A(e,t,n,s,l,u){if(e!==t){o(t.elm)&&o(s)&&(t=s[l]=be(t));var d=t.elm=e.elm;if(a(e.isAsyncPlaceholder))o(t.asyncFactory.resolved)?O(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(a(t.isStatic)&&a(e.isStatic)&&t.key===e.key&&(a(t.isCloned)||a(t.isOnce)))t.componentInstance=e.componentInstance;else{var p,v=t.data;o(v)&&o(p=v.hook)&&o(p=p.prepatch)&&p(e,t);var h=e.children,g=t.children;if(o(v)&&m(t)){for(p=0;p<r.update.length;++p)r.update[p](e,t);o(p=v.hook)&&o(p=p.update)&&p(e,t)}i(t.text)?o(h)&&o(g)?h!==g&&function(e,t,n,r,a){for(var s,l,u,d=0,p=0,v=t.length-1,h=t[0],m=t[v],g=n.length-1,y=n[0],_=n[g],C=!a;d<=v&&p<=g;)i(h)?h=t[++d]:i(m)?m=t[--v]:tr(h,y)?(A(h,y,r,n,p),h=t[++d],y=n[++p]):tr(m,_)?(A(m,_,r,n,g),m=t[--v],_=n[--g]):tr(h,_)?(A(h,_,r,n,g),C&&c.insertBefore(e,h.elm,c.nextSibling(m.elm)),h=t[++d],_=n[--g]):tr(m,y)?(A(m,y,r,n,p),C&&c.insertBefore(e,m.elm,h.elm),m=t[--v],y=n[++p]):(i(s)&&(s=nr(t,d,v)),i(l=o(y.key)?s[y.key]:x(y,t,d,v))?f(y,r,e,h.elm,!1,n,p):tr(u=t[l],y)?(A(u,y,r,n,p),t[l]=void 0,C&&c.insertBefore(e,u.elm,h.elm)):f(y,r,e,h.elm,!1,n,p),y=n[++p]);d>v?b(e,i(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&w(t,d,v)}(d,h,g,n,u):o(g)?(o(e.text)&&c.setTextContent(d,""),b(d,null,g,0,g.length-1,n)):o(h)?w(h,0,h.length-1):o(e.text)&&c.setTextContent(d,""):e.text!==t.text&&c.setTextContent(d,t.text),o(v)&&o(p=v.hook)&&o(p=p.postpatch)&&p(e,t)}}}function k(e,t,n){if(a(n)&&o(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r<t.length;++r)t[r].data.hook.insert(t[r])}var $=h("attrs,class,staticClass,staticStyle,key");function O(e,t,n,r){var i,s=t.tag,l=t.data,c=t.children;if(r=r||l&&l.pre,t.elm=e,a(t.isComment)&&o(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(o(l)&&(o(i=l.hook)&&o(i=i.init)&&i(t,!0),o(i=t.componentInstance)))return d(t,n),!0;if(o(s)){if(o(c))if(e.hasChildNodes())if(o(i=l)&&o(i=i.domProps)&&o(i=i.innerHTML)){if(i!==e.innerHTML)return!1}else{for(var u=!0,f=e.firstChild,p=0;p<c.length;p++){if(!f||!O(f,c[p],n,r)){u=!1;break}f=f.nextSibling}if(!u||f)return!1}else v(t,c,n);if(o(l)){var h=!1;for(var m in l)if(!$(m)){h=!0,g(t,n);break}!h&&l.class&&rt(l.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,s){if(!i(t)){var l,u=!1,d=[];if(i(e))u=!0,f(t,d);else{var p=o(e.nodeType);if(!p&&tr(e,t))A(e,t,d,null,null,s);else{if(p){if(1===e.nodeType&&e.hasAttribute(I)&&(e.removeAttribute(I),n=!0),a(n)&&O(e,t,d))return k(t,d,!0),e;l=e,e=new he(c.tagName(l).toLowerCase(),{},[],void 0,l)}var v=e.elm,h=c.parentNode(v);if(f(t,d,v._leaveCb?null:h,c.nextSibling(v)),o(t.parent))for(var g=t.parent,y=m(t);g;){for(var b=0;b<r.destroy.length;++b)r.destroy[b](g);if(g.elm=t.elm,y){for(var C=0;C<r.create.length;++C)r.create[C](Qn,g);var x=g.data.hook.insert;if(x.merged)for(var $=1;$<x.fns.length;$++)x.fns[$]()}else Yn(g);g=g.parent}o(h)?w([e],0,0):o(e.tag)&&_(e)}}return k(t,d,u),t.elm}o(e)&&_(e)}}({nodeOps:Gn,modules:[pr,wr,Zr,ei,fi,W?{create:Ii,activate:Ii,remove:function(e,t){!0!==e.data.show?Ei(e,t):t()}}:{}].concat(cr)});Z&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&Wi(e,"input")}));var Fi={inserted:function(e,t,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?st(n,"postpatch",(function(){Fi.componentUpdated(e,t,n)})):Ri(e,t,n.context),e._vOptions=[].map.call(e.options,Hi)):("textarea"===n.tag||Kn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",qi),e.addEventListener("compositionend",Vi),e.addEventListener("change",Vi),Z&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){Ri(e,t,n.context);var r=e._vOptions,i=e._vOptions=[].map.call(e.options,Hi);i.some((function(e,t){return!E(e,r[t])}))&&(e.multiple?t.value.some((function(e){return Ui(e,i)})):t.value!==t.oldValue&&Ui(t.value,i))&&Wi(e,"change")}}};function Ri(e,t,n){zi(e,t),(G||Y)&&setTimeout((function(){zi(e,t)}),0)}function zi(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,l=e.options.length;s<l;s++)if(a=e.options[s],i)o=L(r,Hi(a))>-1,a.selected!==o&&(a.selected=o);else if(E(Hi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Ui(e,t){return t.every((function(t){return!E(t,e)}))}function Hi(e){return"_value"in e?e._value:e.value}function qi(e){e.target.composing=!0}function Vi(e){e.target.composing&&(e.target.composing=!1,Wi(e.target,"input"))}function Wi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Ji(e){return!e.componentInstance||e.data&&e.data.transition?e:Ji(e.componentInstance._vnode)}var Ki={model:Fi,show:{bind:function(e,t,n){var r=t.value,i=(n=Ji(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Mi(n,(function(){e.style.display=o}))):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Ji(n)).data&&n.data.transition?(n.data.show=!0,r?Mi(n,(function(){e.style.display=e.__vOriginalDisplay})):Ei(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Xi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Gi(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Gi(qt(t.children)):e}function Zi(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[x(o)]=i[o];return t}function Yi(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Qi=function(e){return e.tag||Ht(e)},eo=function(e){return"show"===e.name},to={name:"transition",props:Xi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Qi)).length){var r=this.mode,i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=Gi(i);if(!o)return i;if(this._leaving)return Yi(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var l=(o.data||(o.data={})).transition=Zi(this),c=this._vnode,u=Gi(c);if(o.data.directives&&o.data.directives.some(eo)&&(o.data.show=!0),u&&u.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,u)&&!Ht(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var f=u.data.transition=S({},l);if("out-in"===r)return this._leaving=!0,st(f,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),Yi(e,i);if("in-out"===r){if(Ht(o))return c;var d,p=function(){d()};st(l,"afterEnter",p),st(l,"enterCancelled",p),st(f,"delayLeave",(function(e){d=e}))}}return i}}},no=S({tag:String,moveClass:String},Xi);function ro(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function io(e){e.data.newPos=e.elm.getBoundingClientRect()}function oo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete no.mode;var ao={Transition:to,TransitionGroup:{props:no,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Gt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Zi(this),s=0;s<i.length;s++){var l=i[s];l.tag&&null!=l.key&&0!==String(l.key).indexOf("__vlist")&&(o.push(l),n[l.key]=l,(l.data||(l.data={})).transition=a)}if(r){for(var c=[],u=[],f=0;f<r.length;f++){var d=r[f];d.data.transition=a,d.data.pos=d.elm.getBoundingClientRect(),n[d.key]?c.push(d):u.push(d)}this.kept=e(t,null,c),this.removed=u}return e(t,null,o)},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach(ro),e.forEach(io),e.forEach(oo),this._reflow=document.body.offsetHeight,e.forEach((function(e){if(e.data.moved){var n=e.elm,r=n.style;$i(n,t),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(wi,n._moveCb=function e(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(wi,e),n._moveCb=null,Oi(n,t))})}})))},methods:{hasMove:function(e,t){if(!gi)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach((function(e){vi(n,e)})),pi(n,t),n.style.display="none",this.$el.appendChild(n);var r=Ti(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};Cn.config.mustUseProp=jn,Cn.config.isReservedTag=Vn,Cn.config.isReservedAttr=Sn,Cn.config.getTagNamespace=Wn,Cn.config.isUnknownElement=function(e){if(!W)return!0;if(Vn(e))return!1;if(e=e.toLowerCase(),null!=Jn[e])return Jn[e];var t=document.createElement(e);return e.indexOf("-")>-1?Jn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Jn[e]=/HTMLUnknownElement/.test(t.toString())},S(Cn.options.directives,Ki),S(Cn.options.components,ao),Cn.prototype.__patch__=W?Ni:j,Cn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ge),Qt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new dn(e,r,j,{before:function(){e._isMounted&&!e._isDestroyed&&Qt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Qt(e,"mounted")),e}(this,e=e&&W?Xn(e):void 0,t)},W&&setTimeout((function(){R.devtools&&oe&&oe.emit("init",Cn)}),0);var so,lo=/\{\{((?:.|\r?\n)+?)\}\}/g,co=/[-.*+?^${}()|[\]\/\\]/g,uo=w((function(e){var t=e[0].replace(co,"\\$&"),n=e[1].replace(co,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")})),fo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Er(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Mr(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}},po={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Er(e,"style");n&&(e.staticStyle=JSON.stringify(ti(n)));var r=Mr(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},vo=h("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),ho=h("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),mo=h("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),go=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,yo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,bo="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+z.source+"]*",_o="((?:"+bo+"\\:)?"+bo+")",wo=new RegExp("^<"+_o),Co=/^\s*(\/?)>/,xo=new RegExp("^<\\/"+_o+"[^>]*>"),Ao=/^<!DOCTYPE [^>]+>/i,ko=/^<!\--/,$o=/^<!\[/,Oo=h("script,style,textarea",!0),Do={},So={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t","&#39;":"'"},To=/&(?:lt|gt|quot|amp|#39);/g,jo=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Bo=h("pre,textarea",!0),Mo=function(e,t){return e&&Bo(e)&&"\n"===t[0]};function Eo(e,t){var n=t?jo:To;return e.replace(n,(function(e){return So[e]}))}var Lo,Po,Io,No,Fo,Ro,zo,Uo,Ho=/^@|^v-on:/,qo=/^v-|^@|^:|^#/,Vo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Wo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Jo=/^\(|\)$/g,Ko=/^\[.*\]$/,Xo=/:(.*)$/,Go=/^:|^\.|^v-bind:/,Zo=/\.[^.\]]+(?=[^\]]*$)/g,Yo=/^v-slot(:|$)|^#/,Qo=/[\r\n]/,ea=/\s+/g,ta=w((function(e){return(so=so||document.createElement("div")).innerHTML=e,so.textContent})),na="_empty_";function ra(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ca(t),rawAttrsMap:{},parent:n,children:[]}}function ia(e,t){var n,r;(r=Mr(n=e,"key"))&&(n.key=r),e.plain=!e.key&&!e.scopedSlots&&!e.attrsList.length,function(e){var t=Mr(e,"ref");t&&(e.ref=t,e.refInFor=function(e){for(var t=e;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(e))}(e),function(e){var t;"template"===e.tag?(t=Er(e,"scope"),e.slotScope=t||Er(e,"slot-scope")):(t=Er(e,"slot-scope"))&&(e.slotScope=t);var n=Mr(e,"slot");if(n&&(e.slotTarget='""'===n?'"default"':n,e.slotTargetDynamic=!(!e.attrsMap[":slot"]&&!e.attrsMap["v-bind:slot"]),"template"===e.tag||e.slotScope||Dr(e,"slot",n,function(e,t){return e.rawAttrsMap[":"+t]||e.rawAttrsMap["v-bind:"+t]||e.rawAttrsMap[t]}(e,"slot"))),"template"===e.tag){var r=Lr(e,Yo);if(r){var i=sa(r),o=i.name,a=i.dynamic;e.slotTarget=o,e.slotTargetDynamic=a,e.slotScope=r.value||na}}else{var s=Lr(e,Yo);if(s){var l=e.scopedSlots||(e.scopedSlots={}),c=sa(s),u=c.name,f=c.dynamic,d=l[u]=ra("template",[],e);d.slotTarget=u,d.slotTargetDynamic=f,d.children=e.children.filter((function(e){if(!e.slotScope)return e.parent=d,!0})),d.slotScope=s.value||na,e.children=[],e.plain=!1}}}(e),function(e){"slot"===e.tag&&(e.slotName=Mr(e,"name"))}(e),function(e){var t;(t=Mr(e,"is"))&&(e.component=t),null!=Er(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var i=0;i<Io.length;i++)e=Io[i](e,t)||e;return function(e){var t,n,r,i,o,a,s,l,c=e.attrsList;for(t=0,n=c.length;t<n;t++)if(r=i=c[t].name,o=c[t].value,qo.test(r))if(e.hasBindings=!0,(a=la(r.replace(qo,"")))&&(r=r.replace(Zo,"")),Go.test(r))r=r.replace(Go,""),o=xr(o),(l=Ko.test(r))&&(r=r.slice(1,-1)),a&&(a.prop&&!l&&"innerHtml"===(r=x(r))&&(r="innerHTML"),a.camel&&!l&&(r=x(r)),a.sync&&(s=Nr(o,"$event"),l?Br(e,'"update:"+('+r+")",s,null,!1,0,c[t],!0):(Br(e,"update:"+x(r),s,null,!1,0,c[t]),$(r)!==x(r)&&Br(e,"update:"+$(r),s,null,!1,0,c[t])))),a&&a.prop||!e.component&&zo(e.tag,e.attrsMap.type,r)?Or(e,r,o,c[t],l):Dr(e,r,o,c[t],l);else if(Ho.test(r))r=r.replace(Ho,""),(l=Ko.test(r))&&(r=r.slice(1,-1)),Br(e,r,o,a,!1,0,c[t],l);else{var u=(r=r.replace(qo,"")).match(Xo),f=u&&u[1];l=!1,f&&(r=r.slice(0,-(f.length+1)),Ko.test(f)&&(f=f.slice(1,-1),l=!0)),Tr(e,r,i,o,f,l,a,c[t])}else Dr(e,r,JSON.stringify(o),c[t]),!e.component&&"muted"===r&&zo(e.tag,e.attrsMap.type,r)&&Or(e,r,"true",c[t])}(e),e}function oa(e){var t;if(t=Er(e,"v-for")){var n=function(e){var t=e.match(Vo);if(t){var n={};n.for=t[2].trim();var r=t[1].trim().replace(Jo,""),i=r.match(Wo);return i?(n.alias=r.replace(Wo,"").trim(),n.iterator1=i[1].trim(),i[2]&&(n.iterator2=i[2].trim())):n.alias=r,n}}(t);n&&S(e,n)}}function aa(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function sa(e){var t=e.name.replace(Yo,"");return t||"#"!==e.name[0]&&(t="default"),Ko.test(t)?{name:t.slice(1,-1),dynamic:!0}:{name:'"'+t+'"',dynamic:!1}}function la(e){var t=e.match(Zo);if(t){var n={};return t.forEach((function(e){n[e.slice(1)]=!0})),n}}function ca(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n].name]=e[n].value;return t}var ua=/^xmlns:NS\d+/,fa=/^NS\d+:/;function da(e){return ra(e.tag,e.attrsList.slice(),e.parent)}var pa,va,ha=[fo,po,{preTransformNode:function(e,t){if("input"===e.tag){var n,r=e.attrsMap;if(!r["v-model"])return;if((r[":type"]||r["v-bind:type"])&&(n=Mr(e,"type")),r.type||n||!r["v-bind"]||(n="("+r["v-bind"]+").type"),n){var i=Er(e,"v-if",!0),o=i?"&&("+i+")":"",a=null!=Er(e,"v-else",!0),s=Er(e,"v-else-if",!0),l=da(e);oa(l),Sr(l,"type","checkbox"),ia(l,t),l.processed=!0,l.if="("+n+")==='checkbox'"+o,aa(l,{exp:l.if,block:l});var c=da(e);Er(c,"v-for",!0),Sr(c,"type","radio"),ia(c,t),aa(l,{exp:"("+n+")==='radio'"+o,block:c});var u=da(e);return Er(u,"v-for",!0),Sr(u,":type",n),ia(u,t),aa(l,{exp:i,block:u}),a?l.else=!0:s&&(l.elseif=s),l}}}}],ma={expectHTML:!0,modules:ha,directives:{model:function(e,t,n){var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;if(e.component)return Ir(e,r,i),!1;if("select"===o)!function(e,t,n){var r='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";Br(e,"change",r=r+" "+Nr(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),null,!0)}(e,r,i);else if("input"===o&&"checkbox"===a)!function(e,t,n){var r=n&&n.number,i=Mr(e,"value")||"null",o=Mr(e,"true-value")||"true",a=Mr(e,"false-value")||"false";Or(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Br(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Nr(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Nr(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Nr(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Mr(e,"value")||"null";Or(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Br(e,"change",Nr(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,l=!o&&"range"!==r,c=o?"change":"range"===r?"__r":"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Nr(t,u);l&&(f="if($event.target.composing)return;"+f),Or(e,"value","("+t+")"),Br(e,c,f,null,!0),(s||a)&&Br(e,"blur","$forceUpdate()")}(e,r,i);else if(!R.isReservedTag(o))return Ir(e,r,i),!1;return!0},text:function(e,t){t.value&&Or(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Or(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:vo,mustUseProp:jn,canBeLeftOpenTag:ho,isReservedTag:Vn,getTagNamespace:Wn,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(ha)},ga=w((function(e){return h("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))})),ya=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,ba=/\([^)]*?\);*$/,_a=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,wa={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ca={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},xa=function(e){return"if("+e+")return null;"},Aa={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:xa("$event.target !== $event.currentTarget"),ctrl:xa("!$event.ctrlKey"),shift:xa("!$event.shiftKey"),alt:xa("!$event.altKey"),meta:xa("!$event.metaKey"),left:xa("'button' in $event && $event.button !== 0"),middle:xa("'button' in $event && $event.button !== 1"),right:xa("'button' in $event && $event.button !== 2")};function ka(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=$a(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function $a(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return $a(e)})).join(",")+"]";var t=_a.test(e.value),n=ya.test(e.value),r=_a.test(e.value.replace(ba,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Aa[s])o+=Aa[s],wa[s]&&a.push(s);else if("exact"===s){var l=e.modifiers;o+=xa(["ctrl","shift","alt","meta"].filter((function(e){return!l[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Oa).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Oa(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=wa[e],r=Ca[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Da={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:j},Sa=function(e){this.options=e,this.warn=e.warn||kr,this.transforms=$r(e.modules,"transformCode"),this.dataGenFns=$r(e.modules,"genData"),this.directives=S(S({},Da),e.directives);var t=e.isReservedTag||B;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ta(e,t){var n=new Sa(t);return{render:"with(this){return "+(e?ja(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function ja(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ba(e,t);if(e.once&&!e.onceProcessed)return Ma(e,t);if(e.for&&!e.forProcessed)return La(e,t);if(e.if&&!e.ifProcessed)return Ea(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=Fa(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Ua((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:x(e.name),value:e.value,dynamic:e.dynamic}}))):null,a=e.attrsMap["v-bind"];return!o&&!a||r||(i+=",null"),o&&(i+=","+o),a&&(i+=(o?"":",null")+","+a),i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Fa(t,n,!0);return"_c("+e+","+Pa(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Pa(e,t));var i=e.inlineTemplate?null:Fa(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o<t.transforms.length;o++)n=t.transforms[o](e,n);return n}return Fa(e,t)||"void 0"}function Ba(e,t){e.staticProcessed=!0;var n=t.pre;return e.pre&&(t.pre=e.pre),t.staticRenderFns.push("with(this){return "+ja(e,t)+"}"),t.pre=n,"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function Ma(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return Ea(e,t);if(e.staticInFor){for(var n="",r=e.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o("+ja(e,t)+","+t.onceId+++","+n+")":ja(e,t)}return Ba(e,t)}function Ea(e,t,n,r){return e.ifProcessed=!0,function e(t,n,r,i){if(!t.length)return i||"_e()";var o=t.shift();return o.exp?"("+o.exp+")?"+a(o.block)+":"+e(t,n,r,i):""+a(o.block);function a(e){return r?r(e,n):e.once?Ma(e,n):ja(e,n)}}(e.ifConditions.slice(),t,n,r)}function La(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";return e.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||ja)(e,t)+"})"}function Pa(e,t){var n="{",r=function(e,t){var n=e.directives;if(n){var r,i,o,a,s="directives:[",l=!1;for(r=0,i=n.length;r<i;r++){o=n[r],a=!0;var c=t.directives[o.name];c&&(a=!!c(e,o,t.warn)),a&&(l=!0,s+='{name:"'+o.name+'",rawName:"'+o.rawName+'"'+(o.value?",value:("+o.value+"),expression:"+JSON.stringify(o.value):"")+(o.arg?",arg:"+(o.isDynamicArg?o.arg:'"'+o.arg+'"'):"")+(o.modifiers?",modifiers:"+JSON.stringify(o.modifiers):"")+"},")}return l?s.slice(0,-1)+"]":void 0}}(e,t);r&&(n+=r+","),e.key&&(n+="key:"+e.key+","),e.ref&&(n+="ref:"+e.ref+","),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'+e.tag+'",');for(var i=0;i<t.dataGenFns.length;i++)n+=t.dataGenFns[i](e);if(e.attrs&&(n+="attrs:"+Ua(e.attrs)+","),e.props&&(n+="domProps:"+Ua(e.props)+","),e.events&&(n+=ka(e.events,!1)+","),e.nativeEvents&&(n+=ka(e.nativeEvents,!0)+","),e.slotTarget&&!e.slotScope&&(n+="slot:"+e.slotTarget+","),e.scopedSlots&&(n+=function(e,t,n){var r=e.for||Object.keys(t).some((function(e){var n=t[e];return n.slotTargetDynamic||n.if||n.for||Ia(n)})),i=!!e.if;if(!r)for(var o=e.parent;o;){if(o.slotScope&&o.slotScope!==na||o.for){r=!0;break}o.if&&(i=!0),o=o.parent}var a=Object.keys(t).map((function(e){return Na(t[e],n)})).join(",");return"scopedSlots:_u(["+a+"]"+(r?",null,true":"")+(!r&&i?",null,false,"+function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return t>>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Ta(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Ua(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ia(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ia))}function Na(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ea(e,t,Na,"null");if(e.for&&!e.forProcessed)return La(e,t,Na);var r=e.slotScope===na?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Fa(e,t)||"undefined")+":undefined":Fa(e,t)||"undefined":ja(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function Fa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||ja)(a,t)+s}var l=n?function(e,t){for(var n=0,r=0;r<e.length;r++){var i=e[r];if(1===i.type){if(Ra(i)||i.ifConditions&&i.ifConditions.some((function(e){return Ra(e.block)}))){n=2;break}(t(i)||i.ifConditions&&i.ifConditions.some((function(e){return t(e.block)})))&&(n=1)}}return n}(o,t.maybeComponent):0,c=i||za;return"["+o.map((function(e){return c(e,t)})).join(",")+"]"+(l?","+l:"")}}function Ra(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function za(e,t){return 1===e.type?ja(e,t):3===e.type&&e.isComment?(r=e,"_e("+JSON.stringify(r.text)+")"):"_v("+(2===(n=e).type?n.expression:Ha(JSON.stringify(n.text)))+")";var n,r}function Ua(e){for(var t="",n="",r=0;r<e.length;r++){var i=e[r],o=Ha(i.value);i.dynamic?n+=i.name+","+o+",":t+='"'+i.name+'":'+o+","}return t="{"+t.slice(0,-1)+"}",n?"_d("+t+",["+n.slice(0,-1)+"])":t}function Ha(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function qa(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),j}}function Va(e){var t=Object.create(null);return function(n,r,i){(r=S({},r)).warn,delete r.warn;var o=r.delimiters?String(r.delimiters)+n:n;if(t[o])return t[o];var a=e(n,r),s={},l=[];return s.render=qa(a.render,l),s.staticRenderFns=a.staticRenderFns.map((function(e){return qa(e,l)})),t[o]=s}}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b");var Wa,Ja,Ka=(Wa=function(e,t){var n=function(e,t){Lo=t.warn||kr,Ro=t.isPreTag||B,zo=t.mustUseProp||B,Uo=t.getTagNamespace||B,t.isReservedTag,Io=$r(t.modules,"transformNode"),No=$r(t.modules,"preTransformNode"),Fo=$r(t.modules,"postTransformNode"),Po=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,l=!1;function c(e){if(u(e),s||e.processed||(e=ia(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&aa(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(c=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&c.if&&aa(c,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'"default"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,c;e.children=e.children.filter((function(e){return!e.slotScope})),u(e),e.pre&&(s=!1),Ro(e.tag)&&(l=!1);for(var f=0;f<Fo.length;f++)Fo[f](e,t)}function u(e){if(!l)for(var t;(t=e.children[e.children.length-1])&&3===t.type&&" "===t.text;)e.children.pop()}return function(e,t){for(var n,r,i=[],o=t.expectHTML,a=t.isUnaryTag||B,s=t.canBeLeftOpenTag||B,l=0;e;){if(n=e,r&&Oo(r)){var c=0,u=r.toLowerCase(),f=Do[u]||(Do[u]=new RegExp("([\\s\\S]*?)(</"+u+"[^>]*>)","i")),d=e.replace(f,(function(e,n,r){return c=r.length,Oo(u)||"noscript"===u||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Mo(u,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));l+=e.length-d.length,e=d,$(u,l-c,l)}else{var p=e.indexOf("<");if(0===p){if(ko.test(e)){var v=e.indexOf("--\x3e");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),l,l+v+3),x(v+3);continue}}if($o.test(e)){var h=e.indexOf("]>");if(h>=0){x(h+2);continue}}var m=e.match(Ao);if(m){x(m[0].length);continue}var g=e.match(xo);if(g){var y=l;x(g[0].length),$(g[1],y,l);continue}var b=A();if(b){k(b),Mo(b.tagName,e)&&x(1);continue}}var _=void 0,w=void 0,C=void 0;if(p>=0){for(w=e.slice(p);!(xo.test(w)||wo.test(w)||ko.test(w)||$o.test(w)||(C=w.indexOf("<",1))<0);)p+=C,w=e.slice(p);_=e.substring(0,p)}p<0&&(_=e),_&&x(_.length),t.chars&&_&&t.chars(_,l-_.length,l)}if(e===n){t.chars&&t.chars(e);break}}function x(t){l+=t,e=e.substring(t)}function A(){var t=e.match(wo);if(t){var n,r,i={tagName:t[1],attrs:[],start:l};for(x(t[0].length);!(n=e.match(Co))&&(r=e.match(yo)||e.match(go));)r.start=l,x(r[0].length),r.end=l,i.attrs.push(r);if(n)return i.unarySlash=n[1],x(n[0].length),i.end=l,i}}function k(e){var n=e.tagName,l=e.unarySlash;o&&("p"===r&&mo(n)&&$(r),s(n)&&r===n&&$(n));for(var c=a(n)||!!l,u=e.attrs.length,f=new Array(u),d=0;d<u;d++){var p=e.attrs[d],v=p[3]||p[4]||p[5]||"",h="a"===n&&"href"===p[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;f[d]={name:p[1],value:Eo(v,h)}}c||(i.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:f,start:e.start,end:e.end}),r=n),t.start&&t.start(n,f,c,e.start,e.end)}function $(e,n,o){var a,s;if(null==n&&(n=l),null==o&&(o=l),e)for(s=e.toLowerCase(),a=i.length-1;a>=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var c=i.length-1;c>=a;c--)t.end&&t.end(i[c].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}$()}(e,{warn:Lo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,u,f){var d=r&&r.ns||Uo(e);G&&"svg"===d&&(o=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];ua.test(r.name)||(r.name=r.name.replace(fa,""),t.push(r))}return t}(o));var p,v=ra(e,o,r);d&&(v.ns=d),"style"!==(p=v).tag&&("script"!==p.tag||p.attrsMap.type&&"text/javascript"!==p.attrsMap.type)||ie()||(v.forbidden=!0);for(var h=0;h<No.length;h++)v=No[h](v,t)||v;s||(function(e){null!=Er(e,"v-pre")&&(e.pre=!0)}(v),v.pre&&(s=!0)),Ro(v.tag)&&(l=!0),s?function(e){var t=e.attrsList,n=t.length;if(n)for(var r=e.attrs=new Array(n),i=0;i<n;i++)r[i]={name:t[i].name,value:JSON.stringify(t[i].value)},null!=t[i].start&&(r[i].start=t[i].start,r[i].end=t[i].end);else e.pre||(e.plain=!0)}(v):v.processed||(oa(v),function(e){var t=Er(e,"v-if");if(t)e.if=t,aa(e,{exp:t,block:e});else{null!=Er(e,"v-else")&&(e.else=!0);var n=Er(e,"v-else-if");n&&(e.elseif=n)}}(v),function(e){null!=Er(e,"v-once")&&(e.once=!0)}(v)),n||(n=v),a?c(v):(r=v,i.push(v))},end:function(e,t,n){var o=i[i.length-1];i.length-=1,r=i[i.length-1],c(o)},chars:function(e,t,n){if(r&&(!G||"textarea"!==r.tag||r.attrsMap.placeholder!==e)){var i,c,u,f=r.children;(e=l||e.trim()?"script"===(i=r).tag||"style"===i.tag?e:ta(e):f.length?a?"condense"===a&&Qo.test(e)?"":" ":o?" ":"":"")&&(l||"condense"!==a||(e=e.replace(ea," ")),!s&&" "!==e&&(c=function(e,t){var n=t?uo(t):lo;if(n.test(e)){for(var r,i,o,a=[],s=[],l=n.lastIndex=0;r=n.exec(e);){(i=r.index)>l&&(s.push(o=e.slice(l,i)),a.push(JSON.stringify(o)));var c=xr(r[1].trim());a.push("_s("+c+")"),s.push({"@binding":c}),l=i+r[0].length}return l<e.length&&(s.push(o=e.slice(l)),a.push(JSON.stringify(o))),{expression:a.join("+"),tokens:s}}}(e,Po))?u={type:2,expression:c.expression,tokens:c.tokens,text:e}:" "===e&&f.length&&" "===f[f.length-1].text||(u={type:3,text:e}),u&&f.push(u))}},comment:function(e,t,n){if(r){var i={type:3,text:e,isComment:!0};r.children.push(i)}}}),n}(e.trim(),t);!1!==t.optimize&&function(e,t){e&&(pa=ga(t.staticKeys||""),va=t.isReservedTag||B,function e(t){if(t.static=function(e){return 2!==e.type&&(3===e.type||!(!e.pre&&(e.hasBindings||e.if||e.for||m(e.tag)||!va(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(pa))))}(t),1===t.type){if(!va(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n<r;n++){var i=t.children[n];e(i),i.static||(t.static=!1)}if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++){var s=t.ifConditions[o].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var r=0,i=t.children.length;r<i;r++)e(t.children[r],n||!!t.for);if(t.ifConditions)for(var o=1,a=t.ifConditions.length;o<a;o++)e(t.ifConditions[o].block,n)}}(e,!1))}(n,t);var r=Ta(n,t);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}},function(e){function t(t,n){var r=Object.create(e),i=[],o=[];if(n)for(var a in n.modules&&(r.modules=(e.modules||[]).concat(n.modules)),n.directives&&(r.directives=S(Object.create(e.directives||null),n.directives)),n)"modules"!==a&&"directives"!==a&&(r[a]=n[a]);r.warn=function(e,t,n){(n?o:i).push(e)};var s=Wa(t.trim(),r);return s.errors=i,s.tips=o,s}return{compile:t,compileToFunctions:Va(t)}})(ma),Xa=(Ka.compile,Ka.compileToFunctions);function Ga(e){return(Ja=Ja||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',Ja.innerHTML.indexOf("&#10;")>0}var Za=!!W&&Ga(!1),Ya=!!W&&Ga(!0),Qa=w((function(e){var t=Xn(e);return t&&t.innerHTML})),es=Cn.prototype.$mount;Cn.prototype.$mount=function(e,t){if((e=e&&Xn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Qa(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=Xa(r,{outputSourceRange:!1,shouldDecodeNewlines:Za,shouldDecodeNewlinesForHref:Ya,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return es.call(this,e,t)},Cn.compile=Xa,e.exports=Cn},73609:e=>{"use strict";e.exports=window.jQuery}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e=x(n(53277)),t=x(n(96803)),r=x(n(58630)),i=x(n(2573)),o=x(n(37758)),a=x(n(5595)),s=x(n(17868)),l=x(n(91781)),c=x(n(58899)),u=x(n(29983)),f=x(n(51964)),d=x(n(9735)),p=x(n(29573)),v=x(n(34684)),h=x(n(48473)),m=x(n(19078)),g=x(n(29145)),y=x(n(91137)),b=x(n(50204)),_=x(n(3010)),w=x(n(85820)),C=x(n(43284));function x(e){return e&&e.__esModule?e:{default:e}}var A=window.$;A((function(){var n=new e.default("category");n.addExtension(new t.default),n.addExtension(new r.default),n.addExtension(new u.default),n.addExtension(new i.default),n.addExtension(new o.default),n.addExtension(new a.default),n.addExtension(new s.default),n.addExtension(new l.default),n.addExtension(new c.default),n.addExtension(new f.default),n.addExtension(new d.default),n.addExtension(new p.default),n.addExtension(new y.default),new b.default("categoriesShowcaseCard").addExtension(new _.default),window.prestashop.component.initComponents(["TranslatableField","TinyMCEEditor","TranslatableInput"]);var x=window.prestashop.instance.translatableInput;new v.default,new w.default,(0,h.default)({sourceElementSelector:'input[name^="category[name]"]',destinationElementSelector:x.localeInputSelector+':not(.d-none) input[name^="category[link_rewrite]"]'}),(0,h.default)({sourceElementSelector:'input[name^="root_category[name]"]',destinationElementSelector:x.localeInputSelector+':not(.d-none) input[name^="root_category[link_rewrite]"]'}),new C.default({container:"#serp-app",defaultTitle:'input[name^="category[name]"]',watchedTitle:'input[name^="category[meta_title]"]',defaultDescription:'textarea[name^="category[description]"]',watchedDescription:'textarea[name^="category[meta_description]"]',watchedMetaUrl:'input[name^="category[link_rewrite]"]',multiLanguageInput:x.localeInputSelector+":not(.d-none)",multiLanguageItem:x.localeItemSelector},A("#serp-app").data("category-url")),new g.default,new window.prestashop.component.TaggableField({tokenFieldSelector:"input.js-taggable-field",options:{createTokensOnBlur:!0}}),new m.default("#category_id_parent"),new m.default("#category_shop_association").enableAutoCheckChildren(),new m.default("#root_category_id_parent"),new m.default("#root_category_shop_association").enableAutoCheckChildren()}))})(),window.category={}})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9hcHAvdXRpbHMvcmVzZXRfc2VhcmNoLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2FwcC91dGlscy9zZXJwL2luZGV4LmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2FwcC91dGlscy90YWJsZS1zb3J0aW5nLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvY2hvaWNlLXRhYmxlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZXZlbnQtZW1pdHRlci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2Zvcm0tc3VibWl0LWJ1dHRvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2Zvcm0vY2hvaWNlLXRyZWUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy9mb3JtL3RleHQtd2l0aC1yZWNvbW1lbmRlZC1sZW5ndGgtY291bnRlci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2FjdGlvbi9idWxrL2NhdGVnb3J5L2RlbGV0ZS1jYXRlZ29yaWVzLWJ1bGstYWN0aW9uLWV4dGVuc2lvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2FjdGlvbi9yb3cvY2F0ZWdvcnkvZGVsZXRlLWNhdGVnb3J5LXJvdy1hY3Rpb24tZXh0ZW5zaW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vYWN0aW9uL3Jvdy9zdWJtaXQtcm93LWFjdGlvbi1leHRlbnNpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9idWxrLWFjdGlvbi1jaGVja2JveC1leHRlbnNpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9jb2x1bW4vY2F0YWxvZy9jYXRlZ29yeS1wb3NpdGlvbi1leHRlbnNpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9jb2x1bW4vY29tbW9uL2FzeW5jLXRvZ2dsZS1jb2x1bW4tZXh0ZW5zaW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vZXhwb3J0LXRvLXNxbC1tYW5hZ2VyLWV4dGVuc2lvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2ZpbHRlcnMtcmVzZXQtZXh0ZW5zaW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vZmlsdGVycy1zdWJtaXQtYnV0dG9uLWVuYWJsZXItZXh0ZW5zaW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vbGluay1yb3ctYWN0aW9uLWV4dGVuc2lvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL3JlbG9hZC1saXN0LWV4dGVuc2lvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL3NvcnRpbmctZXh0ZW5zaW9uLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vc3VibWl0LWJ1bGstYWN0aW9uLWV4dGVuc2lvbi5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL2dyaWQvZ3JpZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9jb21wb25lbnRzL21vZGFsLmpzIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2NvbXBvbmVudHMvc2hvd2Nhc2UtY2FyZC9leHRlbnNpb24vc2hvd2Nhc2UtY2FyZC1jbG9zZS1leHRlbnNpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy9zaG93Y2FzZS1jYXJkL3Nob3djYXNlLWNhcmQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvY29tcG9uZW50cy90ZXh0LXRvLWxpbmstcmV3cml0ZS1jb3BpZXIuanMiLCJ3ZWJwYWNrOi8vW25hbWVdL2pzL2FwcC91dGlscy9zZXJwL3NlcnAudnVlIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2NvcmUtanMvYXJyYXkvZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9jb3JlLWpzL29iamVjdC9kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2JhYmVsLXJ1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvYmFiZWwtcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9mbi9hcnJheS9mcm9tLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvZm4vb2JqZWN0L2RlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2EtZnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hbi1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19hcnJheS1pbmNsdWRlcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2NsYXNzb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb2YuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19jb3JlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3JlYXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fY3R4LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZGVmaW5lZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fZG9tLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2VudW0tYnVnLWtleXMuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19leHBvcnQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19mYWlscy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hhcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2hpZGUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19odG1sLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pb2JqZWN0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXMtYXJyYXktaXRlci5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY2FsbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXItY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9faXRlci1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19pdGVyLWRldGVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2l0ZXJhdG9ycy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX2xpYnJhcnkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fb2JqZWN0LWRwcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1ncG8uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19vYmplY3Qta2V5cy1pbnRlcm5hbC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX29iamVjdC1rZXlzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fcHJvcGVydHktZGVzYy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3JlZGVmaW5lLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL19zaGFyZWQta2V5LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc2hhcmVkLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fc3RyaW5nLWF0LmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8tYWJzb2x1dGUtaW5kZXguanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL190by1pbnRlZ2VyLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9fdG8taW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3RvLXByaW1pdGl2ZS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3VpZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvX3drcy5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvY29yZS5nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2xpYnJhcnkvbW9kdWxlcy9lczYuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY29yZS1qcy9saWJyYXJ5L21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbGlicmFyeS9tb2R1bGVzL2VzNi5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWU/ZmE4YyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy90YWJsZWRuZC9kaXN0L2pxdWVyeS50YWJsZWRuZC5taW4uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWU/M2Q4NSIsIndlYnBhY2s6Ly9bbmFtZV0vLi9qcy9hcHAvdXRpbHMvc2VycC9zZXJwLnZ1ZT9iZjYyIiwid2VicGFjazovL1tuYW1lXS8uL2pzL2FwcC91dGlscy9zZXJwL3NlcnAudnVlIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWU/YjAyMCIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvbGlzdFRvU3R5bGVzLmpzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy92dWUtc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXNDbGllbnQuanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS9kaXN0L3Z1ZS5jb21tb24uanMiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL3Z1ZS9kaXN0L3Z1ZS5jb21tb24ucHJvZC5qcyIsIndlYnBhY2s6Ly9bbmFtZV0vZXh0ZXJuYWwgXCJqUXVlcnlcIiIsIndlYnBhY2s6Ly9bbmFtZV0vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vW25hbWVdL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL1tuYW1lXS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vW25hbWVdL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vW25hbWVdL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vW25hbWVdL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vanMvcGFnZXMvY2F0ZWdvcnkvaW5kZXguanMiXSwibmFtZXMiOlsiJCIsIndpbmRvdyIsInVybCIsInJlZGlyZWN0VXJsIiwicG9zdCIsInRoZW4iLCJsb2NhdGlvbiIsImFzc2lnbiIsIlNlcnBBcHAiLCJzZWxlY3RvcnMiLCJjb250YWluZXIiLCJsZW5ndGgiLCJ0aGlzIiwib3JpZ2luYWxVcmwiLCJ1c2VNdWx0aUxhbmciLCJ1bmRlZmluZWQiLCJtdWx0aUxhbmd1YWdlSW5wdXQiLCJtdWx0aUxhbmd1YWdlRmllbGQiLCJwb3NzaWJsZVNlbGVjdG9ycyIsInB1c2giLCJtdWx0aUxhbmdTZWxlY3RvciIsImpvaW4iLCJhdHRhY2hNdWx0aUxhbmdFdmVudHMiLCJkYXRhIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInZtIiwiVnVlIiwiZWwiLCJ0ZW1wbGF0ZSIsImNvbXBvbmVudHMiLCJzZXJwIiwiaW5pdGlhbGl6ZVNlbGVjdG9ycyIsImF0dGFjaElucHV0RXZlbnRzIiwiaXRlbVNlbGVjdG9yIiwib24iLCJjaGVja1RpdGxlIiwiY2hlY2tEZXNjIiwiY2hlY2tVcmwiLCJFdmVudEVtaXR0ZXIiLCJkZWZhdWx0VGl0bGUiLCJ3YXRjaGVkVGl0bGUiLCJkZWZhdWx0RGVzY3JpcHRpb24iLCJ3YXRjaGVkRGVzY3JpcHRpb24iLCJ3YXRjaGVkTWV0YVVybCIsInJld3JpdGUiLCJyZXBsYWNlIiwiY2xvc2VzdCIsImZpbmQiLCJ0aXRsZTEiLCJ2YWwiLCJ0aXRsZTIiLCJzZXRUaXRsZSIsImlzIiwiZGVzYzEiLCJpbm5lclRleHQiLCJkZXNjMiIsInRleHQiLCJzZXREZXNjcmlwdGlvbiIsInNldFVybCIsIlRhYmxlU29ydGluZyIsInRhYmxlIiwic2VsZWN0b3IiLCJjb2x1bW5zIiwiZSIsIiRjb2x1bW4iLCJkZWxlZ2F0ZVRhcmdldCIsInNvcnRCeUNvbHVtbiIsImdldFRvZ2dsZWRTb3J0RGlyZWN0aW9uIiwiY29sdW1uTmFtZSIsImRpcmVjdGlvbiIsIkVycm9yIiwiY29sdW1uIiwiZ2V0VXJsIiwiY29sTmFtZSIsInByZWZpeCIsIlVSTCIsImhyZWYiLCJwYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJ0b1N0cmluZyIsIkNob2ljZVRhYmxlIiwiZG9jdW1lbnQiLCJoYW5kbGVTZWxlY3RBbGwiLCJldmVudCIsIiRzZWxlY3RBbGxDaGVja2JveGVzIiwidGFyZ2V0IiwiaXNTZWxlY3RBbGxDaGVja2VkIiwicHJvcCIsIkV2ZW50RW1pdHRlckNsYXNzIiwicHJldmVudERlZmF1bHQiLCIkYnRuIiwiY29uZmlybSIsIm1ldGhvZCIsImFkZElucHV0IiwiYnRuTWV0aG9kIiwiaXNHZXRPclBvc3RNZXRob2QiLCJpbmNsdWRlcyIsInR5cGUiLCJuYW1lIiwidmFsdWUiLCIkZm9ybSIsImFjdGlvbiIsImFwcGVuZCIsImFwcGVuZFRvIiwic3VibWl0IiwiQ2hvaWNlVHJlZSIsInRyZWVTZWxlY3RvciIsIiRjb250YWluZXIiLCIkaW5wdXRXcmFwcGVyIiwiY3VycmVudFRhcmdldCIsInRvZ2dsZUNoaWxkVHJlZSIsIiRhY3Rpb24iLCJ0b2dnbGVUcmVlIiwiZW5hYmxlQXV0b0NoZWNrQ2hpbGRyZW4iLCJlbmFibGVBbGxJbnB1dHMiLCJkaXNhYmxlQWxsSW5wdXRzIiwiJGNsaWNrZWRDaGVja2JveCIsInJlbW92ZUF0dHIiLCJhdHRyIiwiJHBhcmVudFdyYXBwZXIiLCJoYXNDbGFzcyIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCIkcGFyZW50Q29udGFpbmVyIiwiY29uZmlnIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJuZXh0QWN0aW9uIiwiaWNvbiIsImVhY2giLCJpbmRleCIsIml0ZW0iLCIkaXRlbSIsIiRpbnB1dCIsIkRlbGV0ZUNhdGVnb3JpZXNCdWxrQWN0aW9uRXh0ZW5zaW9uIiwiZXh0ZW5kIiwiZ3JpZCIsImdldENvbnRhaW5lciIsInN1Ym1pdFVybCIsIiRkZWxldGVDYXRlZ29yaWVzTW9kYWwiLCJnZXRJZCIsIm1vZGFsIiwiJGNoZWNrYm94ZXMiLCIkY2F0ZWdvcmllc1RvRGVsZXRlSW5wdXRCbG9jayIsImkiLCJlbGVtZW50IiwiJGNoZWNrYm94IiwiY2F0ZWdvcnlJbnB1dCIsInBhcnNlSFRNTCIsIkRlbGV0ZUNhdGVnb3J5Um93QWN0aW9uRXh0ZW5zaW9uIiwiJGJ1dHRvbiIsImNhdGVnb3J5SWQiLCJjaGlsZHJlbiIsIlN1Ym1pdFJvd0FjdGlvbkV4dGVuc2lvbiIsImNvbmZpcm1NZXNzYWdlIiwiY29uZmlybVRpdGxlIiwic2hvd0NvbmZpcm1Nb2RhbCIsInBvc3RGb3JtIiwiJHN1Ym1pdEJ0biIsImNvbmZpcm1CdXR0b25MYWJlbCIsImNsb3NlQnV0dG9uTGFiZWwiLCJjb25maXJtQnV0dG9uQ2xhc3MiLCJDb25maXJtTW9kYWwiLCJpZCIsInNob3ciLCJCdWxrQWN0aW9uQ2hlY2tib3hFeHRlbnNpb24iLCJoYW5kbGVCdWxrQWN0aW9uQ2hlY2tib3hTZWxlY3QiLCJoYW5kbGVCdWxrQWN0aW9uU2VsZWN0QWxsQ2hlY2tib3giLCJpc0NoZWNrZWQiLCJlbmFibGVCdWxrQWN0aW9uc0J0biIsImRpc2FibGVCdWxrQWN0aW9uc0J0biIsIkNhdGVnb3J5UG9zaXRpb25FeHRlbnNpb24iLCJhZGRJZHNUb0dyaWRUYWJsZVJvd3MiLCJ0YWJsZURuRCIsImRyYWdIYW5kbGUiLCJvbkRyYWdDbGFzcyIsIm9uRHJhZ1N0YXJ0Iiwib3JpZ2luYWxQb3NpdGlvbnMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJzZXJpYWxpemUiLCJvbkRyb3AiLCJyb3ciLCJoYW5kbGVDYXRlZ29yeVBvc2l0aW9uQ2hhbmdlIiwicG9zaXRpb25zIiwid2F5IiwiaW5kZXhPZiIsIiRjYXRlZ29yeVBvc2l0aW9uQ29udGFpbmVyIiwiY2F0ZWdvcnlQYXJlbnRJZCIsInBvc2l0aW9uVXBkYXRlVXJsIiwiUmVnRXhwIiwicXVlcnlQYXJhbXMiLCJpZF9jYXRlZ29yeV9wYXJlbnQiLCJpZF9jYXRlZ29yeV90b19tb3ZlIiwiZm91bmRfZmlyc3QiLCJwYXJhbSIsInVwZGF0ZUNhdGVnb3J5UG9zaXRpb24iLCJwb3NpdGlvbldyYXBwZXIiLCIkcG9zaXRpb25XcmFwcGVyIiwiJHJvdyIsIm9mZnNldCIsIm5ld1Bvc2l0aW9uIiwib2xkSWQiLCJoZWFkZXJzIiwiZGF0YVR5cGUiLCJyZXNwb25zZSIsInN1Y2Nlc3MiLCJzaG93U3VjY2Vzc01lc3NhZ2UiLCJtZXNzYWdlIiwic2hvd0Vycm9yTWVzc2FnZSIsInVwZGF0ZUNhdGVnb3J5SWRzQW5kUG9zaXRpb25zIiwiQXN5bmNUb2dnbGVDb2x1bW5FeHRlbnNpb24iLCJzdGF0dXMiLCJ0b2dnbGVCdXR0b25EaXNwbGF5IiwiY2F0Y2giLCJlcnJvciIsInJlc3BvbnNlSlNPTiIsImlzQWN0aXZlIiwiY2xhc3NUb0FkZCIsImNsYXNzVG9SZW1vdmUiLCJFeHBvcnRUb1NxbE1hbmFnZXJFeHRlbnNpb24iLCJnZXRIZWFkZXJDb250YWluZXIiLCJvblNob3dTcWxRdWVyeUNsaWNrIiwib25FeHBvcnRTcWxNYW5hZ2VyQ2xpY2siLCIkc3FsTWFuYWdlckZvcm0iLCJmaWxsRXhwb3J0Rm9ybSIsIiRtb2RhbCIsInF1ZXJ5IiwiZ2V0TmFtZUZyb21CcmVhZGNydW1iIiwiJGJyZWFkY3J1bWJzIiwiJGJyZWFkY3J1bWIiLCJicmVhZGNydW1iVGl0bGUiLCJjb25jYXQiLCJGaWx0ZXJzUmVzZXRFeHRlbnNpb24iLCJGaWx0ZXJzU3VibWl0QnV0dG9uRW5hYmxlckV4dGVuc2lvbiIsIiRmaWx0ZXJzUm93IiwiTGlua1Jvd0FjdGlvbkV4dGVuc2lvbiIsImluaXRSb3dMaW5rcyIsImluaXRDb25maXJtYWJsZUFjdGlvbnMiLCIkcGFyZW50Um93IiwiJHJvd0FjdGlvbiIsIiRwYXJlbnRDZWxsIiwiY2xpY2thYmxlQ2VsbHMiLCJub3QiLCJpc0RyYWdnaW5nIiwibW91c2Vkb3duIiwibW91c2Vtb3ZlIiwidW5iaW5kIiwibW91c2V1cCIsIndhc0RyYWdnaW5nIiwiUmVsb2FkTGlzdEV4dGVuc2lvbiIsInJlbG9hZCIsIlNvcnRpbmdFeHRlbnNpb24iLCIkc29ydGFibGVUYWJsZSIsImF0dGFjaCIsIlN1Ym1pdEJ1bGtBY3Rpb25FeHRlbnNpb24iLCJHcmlkIiwiZXh0ZW5zaW9uIiwiY29uZmlybUNhbGxiYWNrIiwiY2FuY2VsQ2FsbGJhY2siLCJjbG9zYWJsZSIsImN1c3RvbUJ1dHRvbnMiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NMaXN0IiwiYWRkIiwiZGlhbG9nIiwiY29udGVudCIsImhlYWRlciIsImlubmVySFRNTCIsImNsb3NlSWNvbiIsInNldEF0dHJpYnV0ZSIsImRhdGFzZXQiLCJkaXNtaXNzIiwiYm9keSIsImZvb3RlciIsImNsb3NlQnV0dG9uIiwiY29uZmlybUJ1dHRvbiIsImFwcGVuZENoaWxkIiwiTW9kYWwiLCJhZGRFdmVudExpc3RlbmVyIiwiYmFja2Ryb3AiLCJrZXlib2FyZCIsInF1ZXJ5U2VsZWN0b3IiLCJyZW1vdmUiLCJTaG93Y2FzZUNhcmRDbG9zZUV4dGVuc2lvbiIsImhlbHBlckJsb2NrIiwiZXZ0IiwiY2FyZE5hbWUiLCJjbG9zZSIsIlNob3djYXNlQ2FyZCIsInNvdXJjZUVsZW1lbnRTZWxlY3RvciIsImRlc3RpbmF0aW9uRWxlbWVudFNlbGVjdG9yIiwib3B0aW9ucyIsImV2ZW50TmFtZSIsInN0cjJ1cmwiLCJtb2R1bGUiLCJleHBvcnRzIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJpbnN0YW5jZSIsIkNvbnN0cnVjdG9yIiwiVHlwZUVycm9yIiwib2JqIiwiX2RlZmluZVByb3BlcnR5MiIsImRlZmluZVByb3BlcnRpZXMiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJrZXkiLCJwcm90b1Byb3BzIiwic3RhdGljUHJvcHMiLCJwcm90b3R5cGUiLCJfZnJvbTIiLCJhcnIiLCJBcnJheSIsImlzQXJyYXkiLCJhcnIyIiwiJE9iamVjdCIsIml0IiwiZGVzYyIsImRlZmluZVByb3BlcnR5IiwiaXNPYmplY3QiLCJ0b0lPYmplY3QiLCJ0b0xlbmd0aCIsInRvQWJzb2x1dGVJbmRleCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJmcm9tSW5kZXgiLCJPIiwiY29mIiwiVEFHIiwiQVJHIiwiYXJndW1lbnRzIiwiVCIsIkIiLCJ0cnlHZXQiLCJPYmplY3QiLCJjYWxsZWUiLCJjYWxsIiwic2xpY2UiLCJjb3JlIiwidmVyc2lvbiIsIl9fZSIsIiRkZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZURlc2MiLCJvYmplY3QiLCJmIiwiYUZ1bmN0aW9uIiwiZm4iLCJ0aGF0IiwiYSIsImIiLCJjIiwiYXBwbHkiLCJnZXQiLCJzcGxpdCIsImdsb2JhbCIsImN0eCIsImhpZGUiLCJoYXMiLCIkZXhwb3J0Iiwic291cmNlIiwib3duIiwib3V0IiwiSVNfRk9SQ0VEIiwiRiIsIklTX0dMT0JBTCIsIkciLCJJU19TVEFUSUMiLCJTIiwiSVNfUFJPVE8iLCJQIiwiSVNfQklORCIsIklTX1dSQVAiLCJXIiwiZXhwUHJvdG8iLCJDIiwiRnVuY3Rpb24iLCJ2aXJ0dWFsIiwiUiIsIlUiLCJleGVjIiwiTWF0aCIsInNlbGYiLCJfX2ciLCJoYXNPd25Qcm9wZXJ0eSIsImRQIiwiZG9jdW1lbnRFbGVtZW50IiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJJdGVyYXRvcnMiLCJJVEVSQVRPUiIsIkFycmF5UHJvdG8iLCJhbk9iamVjdCIsIml0ZXJhdG9yIiwiZW50cmllcyIsInJldCIsImNyZWF0ZSIsInNldFRvU3RyaW5nVGFnIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJOQU1FIiwibmV4dCIsIkxJQlJBUlkiLCJyZWRlZmluZSIsIiRpdGVyQ3JlYXRlIiwiZ2V0UHJvdG90eXBlT2YiLCJCVUdHWSIsImtleXMiLCJLRVlTIiwiVkFMVUVTIiwicmV0dXJuVGhpcyIsIkJhc2UiLCJERUZBVUxUIiwiSVNfU0VUIiwiRk9SQ0VEIiwibWV0aG9kcyIsImdldE1ldGhvZCIsImtpbmQiLCJwcm90byIsIkRFRl9WQUxVRVMiLCJWQUxVRVNfQlVHIiwiJG5hdGl2ZSIsIiRkZWZhdWx0IiwiJGVudHJpZXMiLCIkYW55TmF0aXZlIiwidmFsdWVzIiwiU0FGRV9DTE9TSU5HIiwicml0ZXIiLCJmcm9tIiwic2tpcENsb3NpbmciLCJzYWZlIiwiaXRlciIsImRvbmUiLCJkUHMiLCJlbnVtQnVnS2V5cyIsIklFX1BST1RPIiwiRW1wdHkiLCJjcmVhdGVEaWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJzdHlsZSIsImRpc3BsYXkiLCJzcmMiLCJjb250ZW50V2luZG93Iiwib3BlbiIsIndyaXRlIiwibHQiLCJQcm9wZXJ0aWVzIiwicmVzdWx0IiwiSUU4X0RPTV9ERUZJTkUiLCJ0b1ByaW1pdGl2ZSIsIkF0dHJpYnV0ZXMiLCJnZXRLZXlzIiwidG9PYmplY3QiLCJPYmplY3RQcm90byIsImNvbnN0cnVjdG9yIiwiYXJyYXlJbmRleE9mIiwibmFtZXMiLCIka2V5cyIsImJpdG1hcCIsImRlZiIsInRhZyIsInN0YXQiLCJzaGFyZWQiLCJ1aWQiLCJTSEFSRUQiLCJzdG9yZSIsIm1vZGUiLCJjb3B5cmlnaHQiLCJ0b0ludGVnZXIiLCJkZWZpbmVkIiwiVE9fU1RSSU5HIiwicG9zIiwicyIsIlN0cmluZyIsImwiLCJjaGFyQ29kZUF0IiwiY2hhckF0IiwibWF4IiwibWluIiwiY2VpbCIsImZsb29yIiwiaXNOYU4iLCJJT2JqZWN0IiwidmFsdWVPZiIsInB4IiwicmFuZG9tIiwiU3ltYm9sIiwiVVNFX1NZTUJPTCIsImNsYXNzb2YiLCJpc0FycmF5SXRlciIsImNyZWF0ZVByb3BlcnR5IiwiZ2V0SXRlckZuIiwiYXJyYXlMaWtlIiwic3RlcCIsImFMZW4iLCJtYXBmbiIsIm1hcHBpbmciLCJpdGVyRm4iLCIkYXQiLCJpdGVyYXRlZCIsIl90IiwiX2kiLCJwb2ludCIsIl9fX0NTU19MT0FERVJfRVhQT1JUX19fIiwiY3NzV2l0aE1hcHBpbmdUb1N0cmluZyIsImxpc3QiLCJtYXAiLCJtb2R1bGVzIiwibWVkaWFRdWVyeSIsImRlZHVwZSIsImFscmVhZHlJbXBvcnRlZE1vZHVsZXMiLCJfYXJyYXlMaWtlVG9BcnJheSIsImxlbiIsIl9pdGVtIiwiX2FycmF5V2l0aEhvbGVzIiwiX2FyciIsIl9uIiwiX2QiLCJfZSIsIl9zIiwiZXJyIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwibyIsIm1pbkxlbiIsIm4iLCJ0ZXN0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsImNzc01hcHBpbmciLCJidG9hIiwiYmFzZTY0IiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJKU09OIiwic3RyaW5naWZ5Iiwic291cmNlTWFwcGluZyIsInNvdXJjZVVSTHMiLCJzb3VyY2VzIiwic291cmNlUm9vdCIsIlJlZmxlY3RPd25LZXlzIiwiUmVmbGVjdCIsIlJlZmxlY3RBcHBseSIsInJlY2VpdmVyIiwiYXJncyIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiTnVtYmVySXNOYU4iLCJOdW1iZXIiLCJpbml0IiwiX2V2ZW50cyIsIl9ldmVudHNDb3VudCIsIl9tYXhMaXN0ZW5lcnMiLCJkZWZhdWx0TWF4TGlzdGVuZXJzIiwiY2hlY2tMaXN0ZW5lciIsImxpc3RlbmVyIiwiX2dldE1heExpc3RlbmVycyIsIl9hZGRMaXN0ZW5lciIsInByZXBlbmQiLCJtIiwiZXZlbnRzIiwiZXhpc3RpbmciLCJ3YXJuaW5nIiwibmV3TGlzdGVuZXIiLCJlbWl0IiwidW5zaGlmdCIsIndhcm5lZCIsInciLCJlbWl0dGVyIiwiY291bnQiLCJjb25zb2xlIiwid2FybiIsIm9uY2VXcmFwcGVyIiwiZmlyZWQiLCJyZW1vdmVMaXN0ZW5lciIsIndyYXBGbiIsIl9vbmNlV3JhcCIsInN0YXRlIiwid3JhcHBlZCIsImJpbmQiLCJfbGlzdGVuZXJzIiwidW53cmFwIiwiZXZsaXN0ZW5lciIsInVud3JhcExpc3RlbmVycyIsImFycmF5Q2xvbmUiLCJsaXN0ZW5lckNvdW50IiwiY29weSIsImFyZyIsIlJhbmdlRXJyb3IiLCJzZXRNYXhMaXN0ZW5lcnMiLCJnZXRNYXhMaXN0ZW5lcnMiLCJkb0Vycm9yIiwiZXIiLCJjb250ZXh0IiwiaGFuZGxlciIsImxpc3RlbmVycyIsImFkZExpc3RlbmVyIiwicHJlcGVuZExpc3RlbmVyIiwib25jZSIsInByZXBlbmRPbmNlTGlzdGVuZXIiLCJwb3NpdGlvbiIsIm9yaWdpbmFsTGlzdGVuZXIiLCJzaGlmdCIsInBvcCIsInNwbGljZU9uZSIsIm9mZiIsInJlbW92ZUFsbExpc3RlbmVycyIsInJhd0xpc3RlbmVycyIsImV2ZW50TmFtZXMiLCJnIiwialF1ZXJ5IiwicmVhZHkiLCJtYXRjaCIsInRyaW0iLCJvbkRyYWdTdHlsZSIsIm9uRHJvcFN0eWxlIiwib25EcmFnU3RvcCIsInNjcm9sbEFtb3VudCIsInNlbnNpdGl2aXR5IiwiaGllcmFyY2h5TGV2ZWwiLCJpbmRlbnRBcnRpZmFjdCIsImF1dG9XaWR0aEFkanVzdCIsImF1dG9DbGVhblJlbGF0aW9ucyIsImpzb25QcmV0aWZ5U2VwYXJhdG9yIiwic2VyaWFsaXplUmVnZXhwIiwic2VyaWFsaXplUGFyYW1OYW1lIiwiY3VycmVudFRhYmxlIiwiZHJhZ09iamVjdCIsIm1vdXNlT2Zmc2V0Iiwib2xkWCIsIm9sZFkiLCJidWlsZCIsInRhYmxlRG5EQ29uZmlnIiwibWFrZURyYWdnYWJsZSIsIm1ha2VJbmRlbnRlZCIsImQiLCJyb3dzIiwiZmlyc3QiLCJoIiwiY3NzIiwid2hpdGVTcGFjZSIsImoiLCJ3aWR0aCIsIm9mZnNldFdpZHRoIiwiaW5pdGlhbGlzZURyYWciLCJwYXJlbnRzIiwidGFnTmFtZSIsImN1cnJlbnRPcmRlciIsImdldE1vdXNlT2Zmc2V0Iiwib3JpZ2luYWxPcmRlciIsInVwZGF0ZVRhYmxlcyIsIm1vdXNlQ29vcmRzIiwib3JpZ2luYWxFdmVudCIsImNoYW5nZWRUb3VjaGVzIiwieCIsImNsaWVudFgiLCJ5IiwiY2xpZW50WSIsInBhZ2VYIiwicGFnZVkiLCJzY3JvbGxMZWZ0IiwiY2xpZW50TGVmdCIsInNjcm9sbFRvcCIsImNsaWVudFRvcCIsImdldFBvc2l0aW9uIiwib2Zmc2V0SGVpZ2h0IiwiZmlyc3RDaGlsZCIsIm9mZnNldFBhcmVudCIsIm9mZnNldExlZnQiLCJvZmZzZXRUb3AiLCJhdXRvU2Nyb2xsIiwicGFnZVlPZmZzZXQiLCJpbm5lckhlaWdodCIsImNsaWVudEhlaWdodCIsImFsbCIsImNvbXBhdE1vZGUiLCJzY3JvbGxCeSIsIm1vdmVWZXJ0aWNsZSIsInZlcnRpY2FsIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsIm5leHRTaWJsaW5nIiwibW92ZUhvcml6b250YWwiLCJob3Jpem9udGFsIiwicHJldiIsImZpbmREcm9wVGFyZ2V0Um93IiwiZmluZERyYWdEaXJlY3Rpb24iLCJwYXJzZUludCIsIm9uQWxsb3dEcm9wIiwicHJvY2Vzc01vdXNldXAiLCJmYWRlSW4iLCJqc29uaXplIiwidGFibGVEYXRhIiwic2VyaWFsaXplVGFibGUiLCJzZXJpYWxpemVUYWJsZXMiLCJrIiwiY29kZSIsIm1ha2VBcnJheSIsInRhYmxlRG5EVXBkYXRlIiwidGFibGVEbkRTZXJpYWxpemUiLCJwcm94eSIsInRhYmxlRG5EU2VyaWFsaXplQWxsIiwidGFibGVEbkREYXRhIiwicmVuZGVyIiwiX3ZtIiwiX2giLCIkY3JlYXRlRWxlbWVudCIsIl9jIiwiX3NlbGYiLCJhdHRycyIsInN0YXRpY0NsYXNzIiwiX3YiLCJkaXNwbGF5ZWRUaXRsZSIsImRpc3BsYXllZERlc2NyaXB0aW9uIiwiX3dpdGhTdHJpcHBlZCIsImNvbXBvbmVudCIsIl9fZmlsZSIsIm5vcm1hbGl6ZUNvbXBvbmVudCIsInNjcmlwdEV4cG9ydHMiLCJzdGF0aWNSZW5kZXJGbnMiLCJmdW5jdGlvbmFsVGVtcGxhdGUiLCJpbmplY3RTdHlsZXMiLCJzY29wZUlkIiwibW9kdWxlSWRlbnRpZmllciIsInNoYWRvd01vZGUiLCJob29rIiwiX2NvbXBpbGVkIiwiZnVuY3Rpb25hbCIsIl9zY29wZUlkIiwiJHZub2RlIiwic3NyQ29udGV4dCIsInBhcmVudCIsIl9fVlVFX1NTUl9DT05URVhUX18iLCJfcmVnaXN0ZXJlZENvbXBvbmVudHMiLCJfc3NyUmVnaXN0ZXIiLCIkcm9vdCIsIiRvcHRpb25zIiwic2hhZG93Um9vdCIsIl9pbmplY3RTdHlsZXMiLCJvcmlnaW5hbFJlbmRlciIsImJlZm9yZUNyZWF0ZSIsImxvY2FscyIsImxpc3RUb1N0eWxlcyIsInBhcmVudElkIiwic3R5bGVzIiwibmV3U3R5bGVzIiwicGFydCIsIm1lZGlhIiwic291cmNlTWFwIiwicGFydHMiLCJoYXNEb2N1bWVudCIsIkRFQlVHIiwic3R5bGVzSW5Eb20iLCJoZWFkIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJzaW5nbGV0b25FbGVtZW50Iiwic2luZ2xldG9uQ291bnRlciIsImlzUHJvZHVjdGlvbiIsIm5vb3AiLCJzc3JJZEtleSIsImlzT2xkSUUiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImFkZFN0eWxlc0NsaWVudCIsIl9pc1Byb2R1Y3Rpb24iLCJfb3B0aW9ucyIsImFkZFN0eWxlc1RvRG9tIiwibmV3TGlzdCIsIm1heVJlbW92ZSIsImRvbVN0eWxlIiwicmVmcyIsImFkZFN0eWxlIiwiY3JlYXRlU3R5bGVFbGVtZW50Iiwic3R5bGVFbGVtZW50IiwidXBkYXRlIiwicmVtb3ZlQ2hpbGQiLCJzdHlsZUluZGV4IiwiYXBwbHlUb1NpbmdsZXRvblRhZyIsImFwcGx5VG9UYWciLCJuZXdPYmoiLCJ0ZXh0U3RvcmUiLCJyZXBsYWNlVGV4dCIsInJlcGxhY2VtZW50IiwiZmlsdGVyIiwiQm9vbGVhbiIsInN0eWxlU2hlZXQiLCJjc3NUZXh0IiwiY3NzTm9kZSIsImNyZWF0ZVRleHROb2RlIiwiY2hpbGROb2RlcyIsInNzcklkIiwiZnJlZXplIiwidCIsInIiLCJwYXJzZUZsb2F0IiwiaXNGaW5pdGUiLCJ1IiwicCIsInYiLCJzcGxpY2UiLCJfIiwidG9VcHBlckNhc2UiLCJfbGVuZ3RoIiwiQSIsIkUiLCJOIiwiZXZlcnkiLCJEYXRlIiwiZ2V0VGltZSIsIkQiLCJMIiwiTSIsIkkiLCJvcHRpb25NZXJnZVN0cmF0ZWdpZXMiLCJzaWxlbnQiLCJwcm9kdWN0aW9uVGlwIiwiZGV2dG9vbHMiLCJwZXJmb3JtYW5jZSIsImVycm9ySGFuZGxlciIsIndhcm5IYW5kbGVyIiwiaWdub3JlZEVsZW1lbnRzIiwia2V5Q29kZXMiLCJpc1Jlc2VydmVkVGFnIiwiaXNSZXNlcnZlZEF0dHIiLCJpc1Vua25vd25FbGVtZW50IiwiZ2V0VGFnTmFtZXNwYWNlIiwicGFyc2VQbGF0Zm9ybVRhZ05hbWUiLCJtdXN0VXNlUHJvcCIsImFzeW5jIiwiX2xpZmVjeWNsZUhvb2tzIiwiSCIsInoiLCJWIiwiV1hFbnZpcm9ubWVudCIsInBsYXRmb3JtIiwiSyIsIkoiLCJxIiwiWiIsIlgiLCJZIiwid2F0Y2giLCJRIiwiZWUiLCJ0ZSIsInByb2Nlc3MiLCJlbnYiLCJWVUVfRU5WIiwibmUiLCJfX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fIiwicmUiLCJpZSIsIm9lIiwiU2V0IiwiY2xlYXIiLCJhZSIsInNlIiwiY2UiLCJzdWJzIiwiYWRkU3ViIiwicmVtb3ZlU3ViIiwiZGVwZW5kIiwiYWRkRGVwIiwibm90aWZ5IiwidWUiLCJsZSIsImZlIiwicGUiLCJlbG0iLCJucyIsImZuQ29udGV4dCIsImZuT3B0aW9ucyIsImZuU2NvcGVJZCIsImNvbXBvbmVudE9wdGlvbnMiLCJjb21wb25lbnRJbnN0YW5jZSIsInJhdyIsImlzU3RhdGljIiwiaXNSb290SW5zZXJ0IiwiaXNDb21tZW50IiwiaXNDbG9uZWQiLCJpc09uY2UiLCJhc3luY0ZhY3RvcnkiLCJhc3luY01ldGEiLCJpc0FzeW5jUGxhY2Vob2xkZXIiLCJkZSIsImNoaWxkIiwidmUiLCJoZSIsIm1lIiwieWUiLCJnZSIsImZvckVhY2giLCJfX29iX18iLCJvYnNlcnZlQXJyYXkiLCJkZXAiLCJiZSIsIiRlIiwid2UiLCJ2bUNvdW50IiwiX19wcm90b19fIiwid2FsayIsIkNlIiwiaXNFeHRlbnNpYmxlIiwiX2lzVnVlIiwieGUiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZSIsIkFlIiwiT2UiLCJTZSIsIlRlIiwiRWUiLCJOZSIsImluamVjdCIsImNvbXB1dGVkIiwicHJvdmlkZSIsImplIiwiRGUiLCJkaXJlY3RpdmVzIiwiX2Jhc2UiLCJleHRlbmRzIiwibWl4aW5zIiwiTGUiLCJNZSIsIlBlIiwicHJvcHNEYXRhIiwiX3Byb3BzIiwiSWUiLCJGZSIsIlJlIiwiJHBhcmVudCIsImVycm9yQ2FwdHVyZWQiLCJCZSIsIkhlIiwiX2hhbmRsZWQiLCJVZSIsInplIiwiVmUiLCJLZSIsIkplIiwicWUiLCJQcm9taXNlIiwiV2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJzZXRJbW1lZGlhdGUiLCJaZSIsIkdlIiwiWGUiLCJvYnNlcnZlIiwiY2hhcmFjdGVyRGF0YSIsIlllIiwiUWUiLCJldCIsImlzRnJvemVuIiwidHQiLCJjYXB0dXJlIiwicGFzc2l2ZSIsIm50IiwiZm5zIiwicnQiLCJtZXJnZWQiLCJvdCIsImF0Iiwic3QiLCJfaXNWTGlzdCIsImN0IiwiX3Byb3ZpZGVkIiwidXQiLCJzbG90IiwiZnQiLCIkc3RhYmxlIiwiJGtleSIsIl9ub3JtYWxpemVkIiwiJGhhc05vcm1hbCIsInB0IiwiZHQiLCJ2dCIsImh0IiwiJHNjb3BlZFNsb3RzIiwiJHNsb3RzIiwibXQiLCJ5dCIsImd0IiwiZG9tUHJvcHMiLCJidCIsIl9zdGF0aWNUcmVlcyIsInd0IiwiX3JlbmRlclByb3h5IiwiJHQiLCJDdCIsInh0Iiwia3QiLCJBdCIsIk90IiwiU3QiLCJfbyIsIl9sIiwiX3EiLCJfbSIsIl9mIiwiX2siLCJfYiIsIl91IiwiX2ciLCJfcCIsIlR0IiwiX29yaWdpbmFsIiwiaW5qZWN0aW9ucyIsInNsb3RzIiwic2NvcGVkU2xvdHMiLCJQdCIsIkV0IiwiTnQiLCJqdCIsIl9pc0Rlc3Ryb3llZCIsImtlZXBBbGl2ZSIsInByZXBhdGNoIiwiX2lzQ29tcG9uZW50IiwiX3BhcmVudFZub2RlIiwiaW5saW5lVGVtcGxhdGUiLCJDdG9yIiwiV3QiLCIkbW91bnQiLCJfcmVuZGVyQ2hpbGRyZW4iLCJfdm5vZGUiLCIkYXR0cnMiLCIkbGlzdGVuZXJzIiwiX3Byb3BLZXlzIiwiX3BhcmVudExpc3RlbmVycyIsInF0IiwiJGZvcmNlVXBkYXRlIiwiaW5zZXJ0IiwiX2lzTW91bnRlZCIsIll0IiwiX2luYWN0aXZlIiwiZW4iLCJYdCIsImRlc3Ryb3kiLCJfZGlyZWN0SW5hY3RpdmUiLCJHdCIsIiRjaGlsZHJlbiIsIiRkZXN0cm95IiwiRHQiLCJMdCIsImNpZCIsImVycm9yQ29tcCIsInJlc29sdmVkIiwiSHQiLCJvd25lcnMiLCJsb2FkaW5nIiwibG9hZGluZ0NvbXAiLCIkb24iLCJjbGVhclRpbWVvdXQiLCJCdCIsImRlbGF5IiwidGltZW91dCIsIiRuIiwibW9kZWwiLCJjYWxsYmFjayIsIm5hdGl2ZU9uIiwiYWJzdHJhY3QiLCJfbWVyZ2VkIiwiTXQiLCJwcmUiLCJjbGFzcyIsIlJ0IiwidG9TdHJpbmdUYWciLCJVdCIsInp0IiwiVnQiLCJLdCIsIiRvZmYiLCJKdCIsIlp0IiwiX2hhc0hvb2tFdmVudCIsIiRlbWl0IiwiUXQiLCJ0biIsIm5uIiwicm4iLCJhbiIsInNuIiwibm93IiwiY24iLCJjcmVhdGVFdmVudCIsInRpbWVTdGFtcCIsInVuIiwic29ydCIsImJlZm9yZSIsInJ1biIsIl93YXRjaGVyIiwibG4iLCJfd2F0Y2hlcnMiLCJkZWVwIiwidXNlciIsImxhenkiLCJzeW5jIiwiY2IiLCJhY3RpdmUiLCJkaXJ0eSIsImRlcHMiLCJuZXdEZXBzIiwiZGVwSWRzIiwibmV3RGVwSWRzIiwiZXhwcmVzc2lvbiIsImdldHRlciIsImNsZWFudXBEZXBzIiwiZXZhbHVhdGUiLCJ0ZWFyZG93biIsIl9pc0JlaW5nRGVzdHJveWVkIiwicG4iLCJkbiIsImhuIiwibW4iLCJ5biIsImduIiwiY2FjaGUiLCJfY29tcHV0ZWRXYXRjaGVycyIsIiR3YXRjaCIsImJuIiwic3VwZXIiLCJzdXBlck9wdGlvbnMiLCJzZWFsZWRPcHRpb25zIiwiZXh0ZW5kT3B0aW9ucyIsInduIiwiX2luaXQiLCJ4biIsImtuIiwiQW4iLCJPbiIsIl91aWQiLCJfY29tcG9uZW50VGFnIiwiJHJlZnMiLCJfZGF0YSIsInZuIiwiJHNldCIsIiRkZWxldGUiLCJpbW1lZGlhdGUiLCIkb25jZSIsIl91cGRhdGUiLCIkZWwiLCJfX3BhdGNoX18iLCJfX3Z1ZV9fIiwiJG5leHRUaWNrIiwiX3JlbmRlciIsIlNuIiwiVG4iLCJLZWVwQWxpdmUiLCJpbmNsdWRlIiwiZXhjbHVkZSIsImNyZWF0ZWQiLCJkZXN0cm95ZWQiLCJtb3VudGVkIiwidXRpbCIsIm1lcmdlT3B0aW9ucyIsImRlZmluZVJlYWN0aXZlIiwiZGVsZXRlIiwibmV4dFRpY2siLCJvYnNlcnZhYmxlIiwidXNlIiwiX2luc3RhbGxlZFBsdWdpbnMiLCJpbnN0YWxsIiwibWl4aW4iLCJfQ3RvciIsIkNuIiwiRW4iLCJObiIsImpuIiwiRG4iLCJMbiIsIkluIiwiRm4iLCJQbiIsIlJuIiwiSG4iLCJVbiIsInpuIiwiVm4iLCJLbiIsInN2ZyIsIm1hdGgiLCJKbiIsInFuIiwiV24iLCJabiIsIkduIiwiWG4iLCJZbiIsIlFuIiwibXVsdGlwbGUiLCJjcmVhdGVFbGVtZW50TlMiLCJjcmVhdGVDb21tZW50Iiwic2V0VGV4dENvbnRlbnQiLCJ0ZXh0Q29udGVudCIsInNldFN0eWxlU2NvcGUiLCJ0ciIsInJlZiIsInJlZkluRm9yIiwibnIiLCJyciIsImlyIiwib3IiLCJhciIsInNyIiwidXIiLCJvbGRWYWx1ZSIsIm9sZEFyZyIsImZyIiwiY29tcG9uZW50VXBkYXRlZCIsImluc2VydGVkIiwiY3IiLCJtb2RpZmllcnMiLCJsciIsInJhd05hbWUiLCJwciIsImRyIiwiaW5oZXJpdEF0dHJzIiwidnIiLCJyZW1vdmVBdHRyaWJ1dGVOUyIsInJlbW92ZUF0dHJpYnV0ZSIsImhyIiwiTW4iLCJzZXRBdHRyaWJ1dGVOUyIsIl9faWVwaCIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJtciIsInlyIiwiQm4iLCJfdHJhbnNpdGlvbkNsYXNzZXMiLCJfcHJldkNsYXNzIiwiZ3IiLCJfciIsImJyIiwiJHIiLCJ3ciIsIkNyIiwieHIiLCJrciIsIkFyIiwiT3IiLCJTciIsIlRyIiwiRXIiLCJSciIsImR5bmFtaWMiLCJwbGFpbiIsIk5yIiwiZHluYW1pY0F0dHJzIiwianIiLCJhdHRyc01hcCIsImF0dHJzTGlzdCIsIkRyIiwiaXNEeW5hbWljQXJnIiwiTHIiLCJNciIsInJpZ2h0IiwibWlkZGxlIiwibmF0aXZlIiwibmF0aXZlRXZlbnRzIiwiSXIiLCJGciIsIlByIiwic3RhcnQiLCJlbmQiLCJIciIsIm51bWJlciIsIkJyIiwibGFzdEluZGV4T2YiLCJleHAiLCJ6ciIsIlZyIiwiVXIiLCJKciIsIktyIiwicXIiLCJHciIsIlFyIiwiWHIiLCJZciIsIl93cmFwcGVyIiwib3duZXJEb2N1bWVudCIsImVpIiwiY2hhbmdlIiwidGkiLCJuaSIsInJpIiwiX3ZhbHVlIiwiaWkiLCJjb21wb3NpbmciLCJhY3RpdmVFbGVtZW50IiwiX3ZNb2RpZmllcnMiLCJvaSIsImFpIiwic2kiLCJjaSIsInN0YXRpY1N0eWxlIiwidWkiLCJsaSIsImZpIiwicGkiLCJzZXRQcm9wZXJ0eSIsInZpIiwiZGkiLCJoaSIsIm5vcm1hbGl6ZWRTdHlsZSIsIm1pIiwieWkiLCJnaSIsImdldEF0dHJpYnV0ZSIsImJpIiwiJGkiLCJlbnRlckNsYXNzIiwiZW50ZXJUb0NsYXNzIiwiZW50ZXJBY3RpdmVDbGFzcyIsImxlYXZlQ2xhc3MiLCJsZWF2ZVRvQ2xhc3MiLCJsZWF2ZUFjdGl2ZUNsYXNzIiwid2kiLCJDaSIsInhpIiwia2kiLCJBaSIsIk9pIiwiU2kiLCJvbnRyYW5zaXRpb25lbmQiLCJvbndlYmtpdHRyYW5zaXRpb25lbmQiLCJvbmFuaW1hdGlvbmVuZCIsIm9ud2Via2l0YW5pbWF0aW9uZW5kIiwiVGkiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJFaSIsIk5pIiwiamkiLCJEaSIsIk1pIiwicHJvcENvdW50IiwiTGkiLCJnZXRDb21wdXRlZFN0eWxlIiwiSWkiLCJoYXNUcmFuc2Zvcm0iLCJGaSIsIlBpIiwiX2xlYXZlQ2IiLCJjYW5jZWxsZWQiLCJ0cmFuc2l0aW9uIiwiX2VudGVyQ2IiLCJub2RlVHlwZSIsImFwcGVhckNsYXNzIiwiYXBwZWFyVG9DbGFzcyIsImFwcGVhckFjdGl2ZUNsYXNzIiwiYmVmb3JlRW50ZXIiLCJlbnRlciIsImFmdGVyRW50ZXIiLCJlbnRlckNhbmNlbGxlZCIsImJlZm9yZUFwcGVhciIsImFwcGVhciIsImFmdGVyQXBwZWFyIiwiYXBwZWFyQ2FuY2VsbGVkIiwiZHVyYXRpb24iLCJCaSIsIl9wZW5kaW5nIiwiSGkiLCJSaSIsImJlZm9yZUxlYXZlIiwibGVhdmUiLCJhZnRlckxlYXZlIiwibGVhdmVDYW5jZWxsZWQiLCJkZWxheUxlYXZlIiwiVWkiLCJ6aSIsIm5vZGVPcHMiLCJhY3RpdmF0ZSIsInBlbmRpbmdJbnNlcnQiLCJwb3N0cGF0Y2giLCJoYXNDaGlsZE5vZGVzIiwiaGFzQXR0cmlidXRlIiwidm1vZGVsIiwiWGkiLCJWaSIsIl92T3B0aW9ucyIsIktpIiwiV2kiLCJaaSIsIkdpIiwic29tZSIsInFpIiwiSmkiLCJzZWxlY3RlZCIsInNlbGVjdGVkSW5kZXgiLCJpbml0RXZlbnQiLCJkaXNwYXRjaEV2ZW50IiwiWWkiLCJRaSIsIl9fdk9yaWdpbmFsRGlzcGxheSIsImVvIiwidG8iLCJubyIsInJvIiwiaW8iLCJvbyIsImFvIiwiX2xlYXZpbmciLCJzbyIsIm1vdmVDbGFzcyIsImNvIiwiX21vdmVDYiIsInVvIiwibmV3UG9zIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibG8iLCJsZWZ0IiwidG9wIiwibW92ZWQiLCJ0cmFuc2Zvcm0iLCJXZWJraXRUcmFuc2Zvcm0iLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJmbyIsIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uR3JvdXAiLCJiZWZvcmVNb3VudCIsImtlcHQiLCJwcmV2Q2hpbGRyZW4iLCJyZW1vdmVkIiwidXBkYXRlZCIsImhhc01vdmUiLCJfcmVmbG93IiwicHJvcGVydHlOYW1lIiwiX2hhc01vdmUiLCJjbG9uZU5vZGUiLCJIVE1MVW5rbm93bkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsInlvIiwicG8iLCJ2byIsImhvIiwibW8iLCJzdGF0aWNLZXlzIiwidHJhbnNmb3JtTm9kZSIsImNsYXNzQmluZGluZyIsImdlbkRhdGEiLCJnbyIsInN0eWxlQmluZGluZyIsImJvIiwiJG8iLCJ3byIsIkNvIiwieG8iLCJrbyIsIkFvIiwiT28iLCJTbyIsIlRvIiwiRW8iLCJObyIsImpvIiwiRG8iLCJMbyIsIk1vIiwiSW8iLCJGbyIsIlBvIiwiUm8iLCJIbyIsIkJvIiwiVW8iLCJ6byIsIlZvIiwiS28iLCJKbyIsInFvIiwiV28iLCJabyIsIkdvIiwiWG8iLCJZbyIsIlFvIiwiZWEiLCJ0YSIsIm5hIiwicmEiLCJpYSIsIm9hIiwiYWEiLCJzYSIsImNhIiwidWEiLCJtYSIsInJhd0F0dHJzTWFwIiwiZmEiLCJmb3IiLCJzbG90U2NvcGUiLCJzbG90VGFyZ2V0Iiwic2xvdFRhcmdldER5bmFtaWMiLCJ2YSIsInNsb3ROYW1lIiwiaGFzQmluZGluZ3MiLCJoYSIsImNhbWVsIiwicGEiLCJhbGlhcyIsIml0ZXJhdG9yMSIsIml0ZXJhdG9yMiIsImRhIiwiaWZDb25kaXRpb25zIiwieWEiLCJnYSIsIl9hIiwiJGEiLCJ3YSIsImJhIiwicHJlVHJhbnNmb3JtTm9kZSIsInByb2Nlc3NlZCIsImlmIiwiYmxvY2siLCJlbHNlIiwiZWxzZWlmIiwiQ2EiLCJleHBlY3RIVE1MIiwiaHRtbCIsImlzUHJlVGFnIiwiaXNVbmFyeVRhZyIsImNhbkJlTGVmdE9wZW5UYWciLCJyZWR1Y2UiLCJ4YSIsIkFhIiwiT2EiLCJTYSIsIlRhIiwiZXNjIiwidGFiIiwic3BhY2UiLCJ1cCIsImRvd24iLCJFYSIsIk5hIiwiamEiLCJzdG9wIiwicHJldmVudCIsImN0cmwiLCJhbHQiLCJtZXRhIiwiRGEiLCJMYSIsIk1hIiwiSWEiLCJ3cmFwTGlzdGVuZXJzIiwid3JhcERhdGEiLCJjbG9hayIsIkZhIiwidHJhbnNmb3JtcyIsImRhdGFHZW5GbnMiLCJtYXliZUNvbXBvbmVudCIsIm9uY2VJZCIsIlBhIiwiUmEiLCJzdGF0aWNSb290Iiwic3RhdGljUHJvY2Vzc2VkIiwiSGEiLCJvbmNlUHJvY2Vzc2VkIiwiQmEiLCJmb3JQcm9jZXNzZWQiLCJ6YSIsImlmUHJvY2Vzc2VkIiwiVWEiLCJxYSIsIkdhIiwiVmEiLCJzdGF0aWNJbkZvciIsIkthIiwiSmEiLCJXYSIsIlphIiwiWGEiLCJZYSIsIlFhIiwiZGVsaW1pdGVycyIsImVzIiwidHMiLCJwcmVzZXJ2ZVdoaXRlc3BhY2UiLCJ3aGl0ZXNwYWNlIiwiZm9yYmlkZGVuIiwiY2hhcnMiLCJzaG91bGRLZWVwQ29tbWVudCIsImNvbW1lbnQiLCJzdWJzdHJpbmciLCJ1bmFyeVNsYXNoIiwic2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmIiwic2hvdWxkRGVjb2RlTmV3bGluZXMiLCJsb3dlckNhc2VkVGFnIiwiY29tbWVudHMiLCJvdXRwdXRTb3VyY2VSYW5nZSIsInBsYWNlaG9sZGVyIiwibGFzdEluZGV4IiwidG9rZW5zIiwibGEiLCJvcHRpbWl6ZSIsInN0YXRpYyIsImthIiwiYXN0IiwiZXJyb3JzIiwidGlwcyIsImNvbXBpbGUiLCJjb21waWxlVG9GdW5jdGlvbnMiLCJycyIsIm9zIiwiYXMiLCJzcyIsImNzIiwib3V0ZXJIVE1MIiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwiX193ZWJwYWNrX21vZHVsZXNfXyIsImRlZmluaXRpb24iLCJnbG9iYWxUaGlzIiwiY2F0ZWdvcmllc0dyaWQiLCJhZGRFeHRlbnNpb24iLCJTdWJtaXRCdWxrRXh0ZW5zaW9uIiwicHJlc3Rhc2hvcCIsImluaXRDb21wb25lbnRzIiwidHJhbnNsYXRvcklucHV0IiwidHJhbnNsYXRhYmxlSW5wdXQiLCJUZXh0V2l0aFJlY29tbWVuZGVkTGVuZ3RoQ291bnRlciIsImxvY2FsZUlucHV0U2VsZWN0b3IiLCJTZXJwIiwibXVsdGlMYW5ndWFnZUl0ZW0iLCJsb2NhbGVJdGVtU2VsZWN0b3IiLCJGb3JtU3VibWl0QnV0dG9uIiwiVGFnZ2FibGVGaWVsZCIsInRva2VuRmllbGRTZWxlY3RvciIsImNyZWF0ZVRva2Vuc09uQmx1ciJdLCJtYXBwaW5ncyI6Ijs0RkE2Qk9BLEVBQUtDLE9BQUxELEUsVUFFTSxTQUFxQkUsRUFBS0MsR0FDckNILEVBQUVJLEtBQUtGLEdBQUtHLE1BQUssa0JBQU1KLE9BQU9LLFNBQVNDLE9BQU9KLFEsa0hDUmhELFVBQ0EsVyxJQUNBLFUsdURBRU9ILEVBQUtDLE9BQUxELEVBUURRLEUsV0FDSixXQUFZQyxFQUFXUCxHQUVyQixJQUYwQixxQkFFWSxJQUFsQ0YsRUFBRVMsRUFBVUMsV0FBV0MsT0FBM0IsQ0FPQSxHQUhBQyxLQUFLQyxZQUFjWCxFQUNuQlUsS0FBS0Usa0JBQWdEQyxJQUFqQ04sRUFBVU8seUJBQXFFRCxJQUFqQ04sRUFBVVEsbUJBRXhFTCxLQUFLRSxhQUFjLENBQ3JCLElBQU1JLEVBQW9CLEdBRXRCVCxFQUFVTyxvQkFDWkUsRUFBa0JDLEtBQUtWLEVBQVVPLG9CQUUvQlAsRUFB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QkFDekJzekMsYUFBYSxJQUFJM3pDLFdBRTlCNVIsT0FBT3lsRCxXQUFXNTRCLFVBQVU2NEIsZUFDMUIsQ0FDRSxvQkFDQSxnQkFDQSxzQkFJSixJQUFNQyxFQUFrQjNsRCxPQUFPeWxELFdBQVc5eUMsU0FBU2l6QyxrQkFDbkQsSUFBSTNnRCxVQUNKLElBQUk0Z0QsV0FFSixhQUF3QixDQUN0QjN6QyxzQkFBdUIsZ0NBRXZCQywyQkFBK0J3ekMsRUFBZ0JHLG9CQUEvQyx5REFHRixhQUF3QixDQUN0QjV6QyxzQkFBdUIscUNBRXZCQywyQkFBK0J3ekMsRUFBZ0JHLG9CQUEvQyw2REFHRixJQUFJQyxVQUNGLENBQ0V0bEQsVUFBVyxZQUNYOEIsYUFBYyxnQ0FDZEMsYUFBYyxzQ0FDZEMsbUJBQW9CLDBDQUNwQkMsbUJBQW9CLCtDQUNwQkMsZUFBZ0Isd0NBQ2hCNUIsbUJBQXVCNGtELEVBQWdCRyxvQkFBdkMsZ0JBQ0FFLGtCQUFtQkwsRUFBZ0JNLG9CQUVyQ2xtRCxFQUFFLGFBQWF1QixLQUFLLGlCQUd0QixJQUFJNGtELFVBRUosSUFBSWxtRCxPQUFPeWxELFdBQVc1NEIsVUFBVXM1QixjQUFjLENBQzVDQyxtQkFBb0IsMEJBQ3BCaDBDLFFBQVMsQ0FDUGkwQyxvQkFBb0IsS0FJeEIsSUFBSTMvQyxVQUFXLHVCQUNmLElBQUlBLFVBQVcsOEJBQThCUSwwQkFFN0MsSUFBSVIsVUFBVyw0QkFDZixJQUFJQSxVQUFXLG1DQUFtQ1EsOEIiLCJmaWxlIjoiY2F0ZWdvcnkuYnVuZGxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG4vKipcbiAqIFNlbmQgYSBQb3N0IFJlcXVlc3QgdG8gcmVzZXQgc2VhcmNoIEFjdGlvbi5cbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbmNvbnN0IGluaXQgPSBmdW5jdGlvbiByZXNldFNlYXJjaCh1cmwsIHJlZGlyZWN0VXJsKSB7XG4gICQucG9zdCh1cmwpLnRoZW4oKCkgPT4gd2luZG93LmxvY2F0aW9uLmFzc2lnbihyZWRpcmVjdFVybCkpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgaW5pdDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cbmltcG9ydCBWdWUgZnJvbSAndnVlJztcbmltcG9ydCB7RXZlbnRFbWl0dGVyfSBmcm9tICdAY29tcG9uZW50cy9ldmVudC1lbWl0dGVyJztcbmltcG9ydCBzZXJwIGZyb20gJy4vc2VycC52dWUnO1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogVnVlIGNvbXBvbmVudCBkaXNwbGF5aW5nIGEgc2VhcmNoIHBhZ2UgcmVzdWx0LCBHb29nbGUgc3R5bGUuXG4gKiBSZXF1aXJlcyBhIHRhZyB3aXRoIHRoZSBpZCBcIiNzZXJwLWFwcFwiIHRvIGJlIHByZXNlbnQgaW4gdGhlIERPTSB0byBydW4gaXQuXG4gKiBUaGUgY29tcG9uZW50IGlzIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBieSB3YXRjaGluZyBzZXZlcmFsIGlucHV0cy5cbiAqIFNldCB0aGUgcHJvcGVyIGNsYXNzIHRvIGxpbmsgYSBpbnB1dCB0byBhIHBhcnQgb2YgdGhlIHBhbmVsLlxuICovXG5jbGFzcyBTZXJwQXBwIHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3JzLCB1cmwpIHtcbiAgICAvLyBJZiB0aGUgc2VsZWN0b3IgY2Fubm90IGJlIGZvdW5kLCB3ZSBkbyBub3QgbG9hZCB0aGUgVnVlIGFwcFxuICAgIGlmICgkKHNlbGVjdG9ycy5jb250YWluZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3JpZ2luYWxVcmwgPSB1cmw7XG4gICAgdGhpcy51c2VNdWx0aUxhbmcgPSBzZWxlY3RvcnMubXVsdGlMYW5ndWFnZUlucHV0ICE9PSB1bmRlZmluZWQgfHwgc2VsZWN0b3JzLm11bHRpTGFuZ3VhZ2VGaWVsZCAhPT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMudXNlTXVsdGlMYW5nKSB7XG4gICAgICBjb25zdCBwb3NzaWJsZVNlbGVjdG9ycyA9IFtdO1xuXG4gICAgICBpZiAoc2VsZWN0b3JzLm11bHRpTGFuZ3VhZ2VJbnB1dCkge1xuICAgICAgICBwb3NzaWJsZVNlbGVjdG9ycy5wdXNoKHNlbGVjdG9ycy5tdWx0aUxhbmd1YWdlSW5wdXQpO1xuICAgICAgfVxuICAgICAgaWYgKHNlbGVjdG9ycy5tdWx0aUxhbmd1YWdlRmllbGQpIHtcbiAgICAgICAgcG9zc2libGVTZWxlY3RvcnMucHVzaChzZWxlY3RvcnMubXVsdGlMYW5ndWFnZUZpZWxkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubXVsdGlMYW5nU2VsZWN0b3IgPSBwb3NzaWJsZVNlbGVjdG9ycy5qb2luKCcsJyk7XG4gICAgICB0aGlzLmF0dGFjaE11bHRpTGFuZ0V2ZW50cygpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YSA9IHtcbiAgICAgIHVybCxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB9O1xuXG4gICAgdGhpcy52bSA9IG5ldyBWdWUoe1xuICAgICAgZWw6IHNlbGVjdG9ycy5jb250YWluZXIsXG4gICAgICB0ZW1wbGF0ZTogJzxzZXJwIHJlZj1cInNlcnBcIiA6dXJsPVwidXJsXCIgOnRpdGxlPVwidGl0bGVcIiA6ZGVzY3JpcHRpb249XCJkZXNjcmlwdGlvblwiIC8+JyxcbiAgICAgIGNvbXBvbmVudHM6IHtzZXJwfSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZVNlbGVjdG9ycyhzZWxlY3RvcnMpO1xuICAgIHRoaXMuYXR0YWNoSW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIGF0dGFjaE11bHRpTGFuZ0V2ZW50cyhpdGVtU2VsZWN0b3IpIHtcbiAgICAkKCdib2R5Jykub24oXG4gICAgICAnY2xpY2snLFxuICAgICAgaXRlbVNlbGVjdG9yLFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrVGl0bGUoKTtcbiAgICAgICAgdGhpcy5jaGVja0Rlc2MoKTtcbiAgICAgICAgdGhpcy5jaGVja1VybCgpO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgRXZlbnRFbWl0dGVyLm9uKCdsYW5ndWFnZVNlbGVjdGVkJywgKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1RpdGxlKCk7XG4gICAgICB0aGlzLmNoZWNrRGVzYygpO1xuICAgICAgdGhpcy5jaGVja1VybCgpO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVNlbGVjdG9ycyhzZWxlY3RvcnMpIHtcbiAgICB0aGlzLmRlZmF1bHRUaXRsZSA9ICQoc2VsZWN0b3JzLmRlZmF1bHRUaXRsZSk7XG4gICAgdGhpcy53YXRjaGVkVGl0bGUgPSAkKHNlbGVjdG9ycy53YXRjaGVkVGl0bGUpO1xuICAgIHRoaXMuZGVmYXVsdERlc2NyaXB0aW9uID0gJChzZWxlY3RvcnMuZGVmYXVsdERlc2NyaXB0aW9uKTtcbiAgICB0aGlzLndhdGNoZWREZXNjcmlwdGlvbiA9ICQoc2VsZWN0b3JzLndhdGNoZWREZXNjcmlwdGlvbik7XG4gICAgdGhpcy53YXRjaGVkTWV0YVVybCA9ICQoc2VsZWN0b3JzLndhdGNoZWRNZXRhVXJsKTtcbiAgfVxuXG4gIGF0dGFjaElucHV0RXZlbnRzKCkge1xuICAgICQodGhpcy5kZWZhdWx0VGl0bGUpLm9uKCdrZXl1cCBjaGFuZ2UnLCAoKSA9PiB0aGlzLmNoZWNrVGl0bGUoKSk7XG4gICAgJCh0aGlzLndhdGNoZWRUaXRsZSkub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tUaXRsZSgpKTtcbiAgICAkKHRoaXMuZGVmYXVsdERlc2NyaXB0aW9uKS5vbigna2V5dXAgY2hhbmdlJywgKCkgPT4gdGhpcy5jaGVja0Rlc2MoKSk7XG4gICAgJCh0aGlzLndhdGNoZWREZXNjcmlwdGlvbikub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tEZXNjKCkpO1xuICAgIHRoaXMud2F0Y2hlZE1ldGFVcmwub24oJ2tleXVwIGNoYW5nZScsICgpID0+IHRoaXMuY2hlY2tVcmwoKSk7XG5cbiAgICB0aGlzLmNoZWNrVGl0bGUoKTtcbiAgICB0aGlzLmNoZWNrRGVzYygpO1xuICAgIHRoaXMuY2hlY2tVcmwoKTtcbiAgfVxuXG4gIHNldFRpdGxlKHRpdGxlKSB7XG4gICAgdGhpcy5kYXRhLnRpdGxlID0gdGl0bGU7XG4gIH1cblxuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbikge1xuICAgIHRoaXMuZGF0YS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICB9XG5cbiAgc2V0VXJsKHJld3JpdGUpIHtcbiAgICAvLyBXZSByZXBsYWNlIHR3byBwbGFjZWhvbGRlcnMgYmVjYXVzZSB0aGVyZSB3YXMgYSB0eXBvIGluIHRoZSBpbml0aWFsIG9uZSAoJ2ZyaWVuZHknIGluc3RlYWQgb2YgJ2ZyaWVuZGx5JylcbiAgICB0aGlzLmRhdGEudXJsID0gdGhpcy5vcmlnaW5hbFVybC5yZXBsYWNlKFxuICAgICAgJ3tmcmllbmR5LXVybH0nLFxuICAgICAgcmV3cml0ZSxcbiAgICApO1xuICAgIHRoaXMuZGF0YS51cmwgPSB0aGlzLmRhdGEudXJsLnJlcGxhY2UoXG4gICAgICAne2ZyaWVuZGx5LXVybH0nLFxuICAgICAgcmV3cml0ZSxcbiAgICApO1xuICB9XG5cbiAgY2hlY2tUaXRsZSgpIHtcbiAgICBsZXQge2RlZmF1bHRUaXRsZX0gPSB0aGlzO1xuICAgIGxldCB7d2F0Y2hlZFRpdGxlfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy51c2VNdWx0aUxhbmcpIHtcbiAgICAgIHdhdGNoZWRUaXRsZSA9IHdhdGNoZWRUaXRsZS5jbG9zZXN0KHRoaXMubXVsdGlMYW5nU2VsZWN0b3IpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICBkZWZhdWx0VGl0bGUgPSBkZWZhdWx0VGl0bGUuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKS5maW5kKCdpbnB1dCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpdGxlMSA9IHdhdGNoZWRUaXRsZS5sZW5ndGggPyB3YXRjaGVkVGl0bGUudmFsKCkgOiAnJztcbiAgICBjb25zdCB0aXRsZTIgPSBkZWZhdWx0VGl0bGUubGVuZ3RoID8gZGVmYXVsdFRpdGxlLnZhbCgpIDogJyc7XG5cbiAgICB0aGlzLnNldFRpdGxlKHRpdGxlMSA9PT0gJycgPyB0aXRsZTIgOiB0aXRsZTEpO1xuICAgIC8vIEFsd2F5cyBjaGVjayBmb3IgdXJsIGlmIHRpdGxlIGNoYW5nZVxuICAgIHRoaXMuY2hlY2tVcmwoKTtcbiAgfVxuXG4gIGNoZWNrRGVzYygpIHtcbiAgICBsZXQge3dhdGNoZWREZXNjcmlwdGlvbn0gPSB0aGlzO1xuICAgIGxldCB7ZGVmYXVsdERlc2NyaXB0aW9ufSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy51c2VNdWx0aUxhbmcpIHtcbiAgICAgIHdhdGNoZWREZXNjcmlwdGlvbiA9IHdhdGNoZWREZXNjcmlwdGlvblxuICAgICAgICAuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKVxuICAgICAgICAuZmluZCh0aGlzLndhdGNoZWREZXNjcmlwdGlvbi5pcygnaW5wdXQnKSA/ICdpbnB1dCcgOiAndGV4dGFyZWEnKTtcbiAgICAgIGRlZmF1bHREZXNjcmlwdGlvbiA9IGRlZmF1bHREZXNjcmlwdGlvblxuICAgICAgICAuY2xvc2VzdCh0aGlzLm11bHRpTGFuZ1NlbGVjdG9yKVxuICAgICAgICAuZmluZCh0aGlzLmRlZmF1bHREZXNjcmlwdGlvbi5pcygnaW5wdXQnKSA/ICdpbnB1dCcgOiAndGV4dGFyZWEnKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXNjMSA9IHdhdGNoZWREZXNjcmlwdGlvbi5sZW5ndGggPyB3YXRjaGVkRGVzY3JpcHRpb24udmFsKCkuaW5uZXJUZXh0IHx8IHdhdGNoZWREZXNjcmlwdGlvbi52YWwoKSA6ICcnO1xuICAgIGNvbnN0IGRlc2MyID0gZGVmYXVsdERlc2NyaXB0aW9uLmxlbmd0aCA/ICQoZGVmYXVsdERlc2NyaXB0aW9uLnZhbCgpKS50ZXh0KCkgfHwgZGVmYXVsdERlc2NyaXB0aW9uLnZhbCgpIDogJyc7XG5cbiAgICB0aGlzLnNldERlc2NyaXB0aW9uKGRlc2MxID09PSAnJyA/IGRlc2MyIDogZGVzYzEpO1xuICB9XG5cbiAgY2hlY2tVcmwoKSB7XG4gICAgbGV0IHt3YXRjaGVkTWV0YVVybH0gPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMudXNlTXVsdGlMYW5nKSB7XG4gICAgICB3YXRjaGVkTWV0YVVybCA9IHdhdGNoZWRNZXRhVXJsLmNsb3Nlc3QodGhpcy5tdWx0aUxhbmdTZWxlY3RvcikuZmluZCgnaW5wdXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFVybCh3YXRjaGVkTWV0YVVybC52YWwoKSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2VycEFwcDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIE1ha2VzIGEgdGFibGUgc29ydGFibGUgYnkgY29sdW1ucy5cbiAqIFRoaXMgZm9yY2VzIGEgcGFnZSByZWxvYWQgd2l0aCBtb3JlIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gKi9cbmNsYXNzIFRhYmxlU29ydGluZyB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge2pRdWVyeX0gdGFibGVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHRhYmxlKSB7XG4gICAgdGhpcy5zZWxlY3RvciA9ICcucHMtc29ydGFibGUtY29sdW1uJztcbiAgICB0aGlzLmNvbHVtbnMgPSAkKHRhYmxlKS5maW5kKHRoaXMuc2VsZWN0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSBsaXN0ZW5lcnNcbiAgICovXG4gIGF0dGFjaCgpIHtcbiAgICB0aGlzLmNvbHVtbnMub24oJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGNvbnN0ICRjb2x1bW4gPSAkKGUuZGVsZWdhdGVUYXJnZXQpO1xuICAgICAgdGhpcy5zb3J0QnlDb2x1bW4oJGNvbHVtbiwgdGhpcy5nZXRUb2dnbGVkU29ydERpcmVjdGlvbigkY29sdW1uKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU29ydCB1c2luZyBhIGNvbHVtbiBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2x1bW5OYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gXCJhc2NcIiBvciBcImRlc2NcIlxuICAgKi9cbiAgc29ydEJ5KGNvbHVtbk5hbWUsIGRpcmVjdGlvbikge1xuICAgIGNvbnN0ICRjb2x1bW4gPSB0aGlzLmNvbHVtbnMuaXMoYFtkYXRhLXNvcnQtY29sLW5hbWU9XCIke2NvbHVtbk5hbWV9XCJdYCk7XG5cbiAgICBpZiAoISRjb2x1bW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNvcnQgYnkgXCIke2NvbHVtbk5hbWV9XCI6IGludmFsaWQgY29sdW1uYCk7XG4gICAgfVxuXG4gICAgdGhpcy5zb3J0QnlDb2x1bW4oJGNvbHVtbiwgZGlyZWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb3J0IHVzaW5nIGEgY29sdW1uIGVsZW1lbnRcbiAgICogQHBhcmFtIHtqUXVlcnl9IGNvbHVtblxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uIFwiYXNjXCIgb3IgXCJkZXNjXCJcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHNvcnRCeUNvbHVtbihjb2x1bW4sIGRpcmVjdGlvbikge1xuICAgIHdpbmRvdy5sb2NhdGlvbiA9IHRoaXMuZ2V0VXJsKFxuICAgICAgY29sdW1uLmRhdGEoJ3NvcnRDb2xOYW1lJyksXG4gICAgICAoZGlyZWN0aW9uID09PSAnZGVzYycpID8gJ2Rlc2MnIDogJ2FzYycsXG4gICAgICBjb2x1bW4uZGF0YSgnc29ydFByZWZpeCcpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaW52ZXJ0ZWQgZGlyZWN0aW9uIHRvIHNvcnQgYWNjb3JkaW5nIHRvIHRoZSBjb2x1bW4ncyBjdXJyZW50IG9uZVxuICAgKiBAcGFyYW0ge2pRdWVyeX0gY29sdW1uXG4gICAqIEByZXR1cm4ge3N0cmluZ31cbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldFRvZ2dsZWRTb3J0RGlyZWN0aW9uKGNvbHVtbikge1xuICAgIHJldHVybiBjb2x1bW4uZGF0YSgnc29ydERpcmVjdGlvbicpID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHVybCBmb3IgdGhlIHNvcnRlZCB0YWJsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29sTmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGlyZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHJldHVybiB7c3RyaW5nfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZ2V0VXJsKGNvbE5hbWUsIGRpcmVjdGlvbiwgcHJlZml4KSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgY29uc3QgcGFyYW1zID0gdXJsLnNlYXJjaFBhcmFtcztcblxuICAgIGlmIChwcmVmaXgpIHtcbiAgICAgIHBhcmFtcy5zZXQoYCR7cHJlZml4fVtvcmRlckJ5XWAsIGNvbE5hbWUpO1xuICAgICAgcGFyYW1zLnNldChgJHtwcmVmaXh9W3NvcnRPcmRlcl1gLCBkaXJlY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMuc2V0KCdvcmRlckJ5JywgY29sTmFtZSk7XG4gICAgICBwYXJhbXMuc2V0KCdzb3J0T3JkZXInLCBkaXJlY3Rpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVNvcnRpbmc7XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDaG9pY2VUYWJsZSBpcyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgY29tbW9uIGFjdGlvbnMgaW4gY2hvaWNlIHRhYmxlIGZvcm0gdHlwZVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaG9pY2VUYWJsZSB7XG4gIC8qKlxuICAgKiBJbml0IGNvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAkKGRvY3VtZW50KS5vbignY2hhbmdlJywgJy5qcy1jaG9pY2UtdGFibGUtc2VsZWN0LWFsbCcsIChlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdEFsbChlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjay91bmNoZWNrIGFsbCBib3hlcyBpbiB0YWJsZVxuICAgKlxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxuICAgKi9cbiAgaGFuZGxlU2VsZWN0QWxsKGV2ZW50KSB7XG4gICAgY29uc3QgJHNlbGVjdEFsbENoZWNrYm94ZXMgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgY29uc3QgaXNTZWxlY3RBbGxDaGVja2VkID0gJHNlbGVjdEFsbENoZWNrYm94ZXMuaXMoJzpjaGVja2VkJyk7XG5cbiAgICAkc2VsZWN0QWxsQ2hlY2tib3hlcy5jbG9zZXN0KCd0YWJsZScpLmZpbmQoJ3Rib2R5IGlucHV0OmNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIGlzU2VsZWN0QWxsQ2hlY2tlZCk7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuaW1wb3J0IEV2ZW50RW1pdHRlckNsYXNzIGZyb20gJ2V2ZW50cyc7XG5cbi8qKlxuICogV2UgaW5zdGFuY2lhdGUgb25lIEV2ZW50RW1pdHRlciAocmVzdHJpY3RlZCB2aWEgYSBjb25zdCkgc28gdGhhdCBldmVyeSBjb21wb25lbnRzXG4gKiByZWdpc3Rlci9kaXNwYXRjaCBvbiB0aGUgc2FtZSBvbmUgYW5kIGNhbiBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyQ2xhc3MoKTtcblxuZXhwb3J0IGRlZmF1bHQgRXZlbnRFbWl0dGVyO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogQ29tcG9uZW50IHdoaWNoIGFsbG93cyBzdWJtaXR0aW5nIHZlcnkgc2ltcGxlIGZvcm1zIHdpdGhvdXQgaGF2aW5nIHRvIHVzZSA8Zm9ybT4gZWxlbWVudC5cbiAqXG4gKiBVc2VmdWwgd2hlbiBwZXJmb3JtaW5nIGFjdGlvbnMgb24gcmVzb3VyY2Ugd2hlcmUgVVJMIGNvbnRhaW5zIGFsbCBuZWVkZWQgZGF0YS5cbiAqIEZvciBleGFtcGxlLCB0byB0b2dnbGUgY2F0ZWdvcnkgc3RhdHVzIHZpYSBcIlBPU1QgL2NhdGVnb3JpZXMvMi90b2dnbGUtc3RhdHVzKVwiXG4gKiBvciBkZWxldGUgY292ZXIgaW1hZ2UgdmlhIFwiUE9TVCAvY2F0ZWdvcmllcy8yL2RlbGV0ZS1jb3Zlci1pbWFnZVwiLlxuICpcbiAqIFVzYWdlIGV4YW1wbGUgaW4gdGVtcGxhdGU6XG4gKlxuICogPGJ1dHRvbiBjbGFzcz1cImpzLWZvcm0tc3VibWl0LWJ0blwiXG4gKiAgICAgICAgIGRhdGEtZm9ybS1zdWJtaXQtdXJsPVwiL215LWN1c3RvbS11cmxcIiAgICAgICAgICAvLyAocmVxdWlyZWQpIFVSTCB0byB3aGljaCBmb3JtIHdpbGwgYmUgc3VibWl0dGVkXG4gKiAgICAgICAgIGRhdGEtbWV0aG9kPVwiR0VUfFBPU1R8REVMRVRFfFBBVENIXCIgICAgICAgICAgICAvLyAob3B0aW9uYWwpIHNwZWNpZnkgdGhlIHZlcmIgdG8gdXNlIGZvciB0aGUgcmVxdWVzdC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQT1NUIGlzIHRha2VuIGJ5IGRlZmF1bHQgaWYgbm90IHZhbHVlIGlzIHNldFxuICogICAgICAgICBkYXRhLWZvcm0tY3NyZi10b2tlbj1cIm15LWdlbmVyYXRlZC1jc3JmLXRva2VuXCIgLy8gKG9wdGlvbmFsKSB0byBpbmNyZWFzZSBzZWN1cml0eVxuICogICAgICAgICBkYXRhLWZvcm0tY29uZmlybS1tZXNzYWdlPVwiQXJlIHlvdSBzdXJlP1wiICAgICAgLy8gKG9wdGlvbmFsKSB0byBjb25maXJtIGFjdGlvbiBiZWZvcmUgc3VibWl0XG4gKiAgICAgICAgIHR5cGU9XCJidXR0b25cIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgaXRzIHNpbXBsZSBidXR0b25cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBjYW4gYXZvaWQgc3VibWl0dGluZyBhY3R1YWwgZm9ybVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gb3VyIGJ1dHRvbiBpcyBkZWZpbmVkIGluc2lkZSBmb3JtXG4gKiA+XG4gKiAgICAgQ2xpY2sgbWUgdG8gc3VibWl0IGZvcm1cbiAqIDwvYnV0dG9uPlxuICpcbiAqIEluIHBhZ2Ugc3BlY2lmaWMgSlMgeW91IGhhdmUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZTpcbiAqXG4gKiBuZXcgRm9ybVN1Ym1pdEJ1dHRvbigpO1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtU3VibWl0QnV0dG9uIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy5qcy1mb3JtLXN1Ym1pdC1idG4nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGNvbnN0ICRidG4gPSAkKHRoaXMpO1xuXG4gICAgICBpZiAoJGJ0bi5kYXRhKCdmb3JtLWNvbmZpcm0tbWVzc2FnZScpICYmIHdpbmRvdy5jb25maXJtKCRidG4uZGF0YSgnZm9ybS1jb25maXJtLW1lc3NhZ2UnKSkgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IG1ldGhvZCA9ICdQT1NUJztcbiAgICAgIGxldCBhZGRJbnB1dCA9IG51bGw7XG5cbiAgICAgIGlmICgkYnRuLmRhdGEoJ21ldGhvZCcpKSB7XG4gICAgICAgIGNvbnN0IGJ0bk1ldGhvZCA9ICRidG4uZGF0YSgnbWV0aG9kJyk7XG4gICAgICAgIGNvbnN0IGlzR2V0T3JQb3N0TWV0aG9kID0gWydHRVQnLCAnUE9TVCddLmluY2x1ZGVzKGJ0bk1ldGhvZCk7XG4gICAgICAgIG1ldGhvZCA9IGlzR2V0T3JQb3N0TWV0aG9kID8gYnRuTWV0aG9kIDogJ1BPU1QnO1xuXG4gICAgICAgIGlmICghaXNHZXRPclBvc3RNZXRob2QpIHtcbiAgICAgICAgICBhZGRJbnB1dCA9ICQoJzxpbnB1dD4nLCB7XG4gICAgICAgICAgICB0eXBlOiAnX2hpZGRlbicsXG4gICAgICAgICAgICBuYW1lOiAnX21ldGhvZCcsXG4gICAgICAgICAgICB2YWx1ZTogYnRuTWV0aG9kLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0ICRmb3JtID0gJCgnPGZvcm0+Jywge1xuICAgICAgICBhY3Rpb246ICRidG4uZGF0YSgnZm9ybS1zdWJtaXQtdXJsJyksXG4gICAgICAgIG1ldGhvZCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYWRkSW5wdXQpIHtcbiAgICAgICAgJGZvcm0uYXBwZW5kKGFkZElucHV0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKCRidG4uZGF0YSgnZm9ybS1jc3JmLXRva2VuJykpIHtcbiAgICAgICAgJGZvcm0uYXBwZW5kKCQoJzxpbnB1dD4nLCB7XG4gICAgICAgICAgdHlwZTogJ19oaWRkZW4nLFxuICAgICAgICAgIG5hbWU6ICdfY3NyZl90b2tlbicsXG4gICAgICAgICAgdmFsdWU6ICRidG4uZGF0YSgnZm9ybS1jc3JmLXRva2VuJyksXG4gICAgICAgIH0pKTtcbiAgICAgIH1cblxuICAgICAgJGZvcm0uYXBwZW5kVG8oJ2JvZHknKS5zdWJtaXQoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogSGFuZGxlcyBVSSBpbnRlcmFjdGlvbnMgb2YgY2hvaWNlIHRyZWVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2hvaWNlVHJlZSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHJlZVNlbGVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih0cmVlU2VsZWN0b3IpIHtcbiAgICB0aGlzLiRjb250YWluZXIgPSAkKHRyZWVTZWxlY3Rvcik7XG5cbiAgICB0aGlzLiRjb250YWluZXIub24oJ2NsaWNrJywgJy5qcy1pbnB1dC13cmFwcGVyJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCAkaW5wdXRXcmFwcGVyID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgICAgdGhpcy50b2dnbGVDaGlsZFRyZWUoJGlucHV0V3JhcHBlcik7XG4gICAgfSk7XG5cbiAgICB0aGlzLiRjb250YWluZXIub24oJ2NsaWNrJywgJy5qcy10b2dnbGUtY2hvaWNlLXRyZWUtYWN0aW9uJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCAkYWN0aW9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgICAgdGhpcy50b2dnbGVUcmVlKCRhY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZUF1dG9DaGVja0NoaWxkcmVuOiAoKSA9PiB0aGlzLmVuYWJsZUF1dG9DaGVja0NoaWxkcmVuKCksXG4gICAgICBlbmFibGVBbGxJbnB1dHM6ICgpID0+IHRoaXMuZW5hYmxlQWxsSW5wdXRzKCksXG4gICAgICBkaXNhYmxlQWxsSW5wdXRzOiAoKSA9PiB0aGlzLmRpc2FibGVBbGxJbnB1dHMoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhdXRvbWF0aWMgY2hlY2svdW5jaGVjayBvZiBjbGlja2VkIGl0ZW0ncyBjaGlsZHJlbi5cbiAgICovXG4gIGVuYWJsZUF1dG9DaGVja0NoaWxkcmVuKCkge1xuICAgIHRoaXMuJGNvbnRhaW5lci5vbignY2hhbmdlJywgJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgJGNsaWNrZWRDaGVja2JveCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICBjb25zdCAkaXRlbVdpdGhDaGlsZHJlbiA9ICRjbGlja2VkQ2hlY2tib3guY2xvc2VzdCgnbGknKTtcblxuICAgICAgJGl0ZW1XaXRoQ2hpbGRyZW5cbiAgICAgICAgLmZpbmQoJ3VsIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXScpXG4gICAgICAgIC5wcm9wKCdjaGVja2VkJywgJGNsaWNrZWRDaGVja2JveC5pcygnOmNoZWNrZWQnKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW5hYmxlIGFsbCBpbnB1dHMgaW4gdGhlIGNob2ljZSB0cmVlLlxuICAgKi9cbiAgZW5hYmxlQWxsSW5wdXRzKCkge1xuICAgIHRoaXMuJGNvbnRhaW5lci5maW5kKCdpbnB1dCcpLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZSBhbGwgaW5wdXRzIGluIHRoZSBjaG9pY2UgdHJlZS5cbiAgICovXG4gIGRpc2FibGVBbGxJbnB1dHMoKSB7XG4gICAgdGhpcy4kY29udGFpbmVyLmZpbmQoJ2lucHV0JykuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsYXBzZSBvciBleHBhbmQgc3ViLXRyZWUgZm9yIHNpbmdsZSBwYXJlbnRcbiAgICpcbiAgICogQHBhcmFtIHtqUXVlcnl9ICRpbnB1dFdyYXBwZXJcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHRvZ2dsZUNoaWxkVHJlZSgkaW5wdXRXcmFwcGVyKSB7XG4gICAgY29uc3QgJHBhcmVudFdyYXBwZXIgPSAkaW5wdXRXcmFwcGVyLmNsb3Nlc3QoJ2xpJyk7XG5cbiAgICBpZiAoJHBhcmVudFdyYXBwZXIuaGFzQ2xhc3MoJ2V4cGFuZGVkJykpIHtcbiAgICAgICRwYXJlbnRXcmFwcGVyXG4gICAgICAgIC5yZW1vdmVDbGFzcygnZXhwYW5kZWQnKVxuICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlZCcpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCRwYXJlbnRXcmFwcGVyLmhhc0NsYXNzKCdjb2xsYXBzZWQnKSkge1xuICAgICAgJHBhcmVudFdyYXBwZXJcbiAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzZWQnKVxuICAgICAgICAuYWRkQ2xhc3MoJ2V4cGFuZGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlIG9yIGV4cGFuZCB3aG9sZSB0cmVlXG4gICAqXG4gICAqIEBwYXJhbSB7alF1ZXJ5fSAkYWN0aW9uXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB0b2dnbGVUcmVlKCRhY3Rpb24pIHtcbiAgICBjb25zdCAkcGFyZW50Q29udGFpbmVyID0gJGFjdGlvbi5jbG9zZXN0KCcuanMtY2hvaWNlLXRyZWUtY29udGFpbmVyJyk7XG4gICAgY29uc3QgYWN0aW9uID0gJGFjdGlvbi5kYXRhKCdhY3Rpb24nKTtcblxuICAgIC8vIHRvZ2dsZSBhY3Rpb24gY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGFkZENsYXNzOiB7XG4gICAgICAgIGV4cGFuZDogJ2V4cGFuZGVkJyxcbiAgICAgICAgY29sbGFwc2U6ICdjb2xsYXBzZWQnLFxuICAgICAgfSxcbiAgICAgIHJlbW92ZUNsYXNzOiB7XG4gICAgICAgIGV4cGFuZDogJ2NvbGxhcHNlZCcsXG4gICAgICAgIGNvbGxhcHNlOiAnZXhwYW5kZWQnLFxuICAgICAgfSxcbiAgICAgIG5leHRBY3Rpb246IHtcbiAgICAgICAgZXhwYW5kOiAnY29sbGFwc2UnLFxuICAgICAgICBjb2xsYXBzZTogJ2V4cGFuZCcsXG4gICAgICB9LFxuICAgICAgdGV4dDoge1xuICAgICAgICBleHBhbmQ6ICdjb2xsYXBzZWQtdGV4dCcsXG4gICAgICAgIGNvbGxhcHNlOiAnZXhwYW5kZWQtdGV4dCcsXG4gICAgICB9LFxuICAgICAgaWNvbjoge1xuICAgICAgICBleHBhbmQ6ICdjb2xsYXBzZWQtaWNvbicsXG4gICAgICAgIGNvbGxhcHNlOiAnZXhwYW5kZWQtaWNvbicsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAkcGFyZW50Q29udGFpbmVyLmZpbmQoJ2xpJykuZWFjaCgoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0ICRpdGVtID0gJChpdGVtKTtcblxuICAgICAgaWYgKCRpdGVtLmhhc0NsYXNzKGNvbmZpZy5yZW1vdmVDbGFzc1thY3Rpb25dKSkge1xuICAgICAgICAkaXRlbS5yZW1vdmVDbGFzcyhjb25maWcucmVtb3ZlQ2xhc3NbYWN0aW9uXSlcbiAgICAgICAgICAuYWRkQ2xhc3MoY29uZmlnLmFkZENsYXNzW2FjdGlvbl0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgJGFjdGlvbi5kYXRhKCdhY3Rpb24nLCBjb25maWcubmV4dEFjdGlvblthY3Rpb25dKTtcbiAgICAkYWN0aW9uLmZpbmQoJy5tYXRlcmlhbC1pY29ucycpLnRleHQoJGFjdGlvbi5kYXRhKGNvbmZpZy5pY29uW2FjdGlvbl0pKTtcbiAgICAkYWN0aW9uLmZpbmQoJy5qcy10b2dnbGUtdGV4dCcpLnRleHQoJGFjdGlvbi5kYXRhKGNvbmZpZy50ZXh0W2FjdGlvbl0pKTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgaW1wbGVtZW50ZWQgdG8gd29yayB3aXRoIFRleHRXaXRoUmVjb21tZW5kZWRMZW5ndGhUeXBlLFxuICogYnV0IGNhbiBiZSB1c2VkIGFzIHN0YW5kYWxvbmUgY29tcG9uZW50IGFzIHdlbGwuXG4gKlxuICogVXNhZ2U6XG4gKlxuICogRGVmaW5lIHlvdXIgSFRNTCB3aXRoIGlucHV0IGFuZCBjb3VudGVyLiBFeGFtcGxlOlxuICpcbiAqIDxpbnB1dCBpZD1cIm15SW5wdXRcIlxuICogICAgICAgIGNsYXNzPVwianMtcmVjb21tZW5kZWQtbGVuZ3RoLWlucHV0XCJcbiAqICAgICAgICBkYXRhLXJlY29tbWVuZGVkLWxlbmd0aC1jb3VudGVyPVwiI215SW5wdXRfcmVjb21tZW5kZWRfbGVuZ3RoX2NvdW50ZXJcIlxuICogPlxuICpcbiAqIDxkaXYgaWRcIm15SW5wdXRfcmVjb21tZW5kZWRfbGVuZ3RoX2NvdW50ZXJcIj5cbiAqICA8c3BhbiBjbGFzcz1cImpzLWN1cnJlbnQtbGVuZ3RoXCI+MDwvc3Bhbj4gb2YgNzAgY2hhcmFjdGVycyB1c2VkIChyZWNvbW1lbmRlZClcbiAqIDwvZGl2PlxuICpcbiAqIE5PVEU6IFlvdSBtdXN0IHVzZSBleGFjdGx5IHRoZSBzYW1lIENsYXNzZXMsIGJ1dCBJRHMgY2FuIGJlIGRpZmZlcmVudCFcbiAqXG4gKiBUaGVuIGVuYWJsZSBjb21wb25lbnQgaW4gSmF2YVNjcmlwdDpcbiAqXG4gKiBuZXcgVGV4dFdpdGhSZWNvbW1lbmRlZExlbmd0aENvdW50ZXIoKTtcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGV4dFdpdGhSZWNvbW1lbmRlZExlbmd0aENvdW50ZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAkKGRvY3VtZW50KS5vbignaW5wdXQnLCAnLmpzLXJlY29tbWVuZGVkLWxlbmd0aC1pbnB1dCcsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgJGlucHV0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgICAgJCgkaW5wdXQuZGF0YSgncmVjb21tZW5kZWQtbGVuZ3RoLWNvdW50ZXInKSkuZmluZCgnLmpzLWN1cnJlbnQtbGVuZ3RoJykudGV4dCgkaW5wdXQudmFsKCkubGVuZ3RoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogQ2xhc3MgRGVsZXRlQ2F0ZWdvcmllc0J1bGtBY3Rpb25FeHRlbnNpb24gaGFuZGxlcyBzdWJtaXR0aW5nIG9mIHJvdyBhY3Rpb25cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlQ2F0ZWdvcmllc0J1bGtBY3Rpb25FeHRlbnNpb24ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5kOiAoZ3JpZCkgPT4gdGhpcy5leHRlbmQoZ3JpZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgZ3JpZC5nZXRDb250YWluZXIoKS5vbignY2xpY2snLCAnLmpzLWRlbGV0ZS1jYXRlZ29yaWVzLWJ1bGstYWN0aW9uJywgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCBzdWJtaXRVcmwgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmRhdGEoJ2NhdGVnb3JpZXMtZGVsZXRlLXVybCcpO1xuXG4gICAgICBjb25zdCAkZGVsZXRlQ2F0ZWdvcmllc01vZGFsID0gJChgIyR7Z3JpZC5nZXRJZCgpfV9ncmlkX2RlbGV0ZV9jYXRlZ29yaWVzX21vZGFsYCk7XG4gICAgICAkZGVsZXRlQ2F0ZWdvcmllc01vZGFsLm1vZGFsKCdzaG93Jyk7XG5cbiAgICAgICRkZWxldGVDYXRlZ29yaWVzTW9kYWwub24oJ2NsaWNrJywgJy5qcy1zdWJtaXQtZGVsZXRlLWNhdGVnb3JpZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRjaGVja2JveGVzID0gZ3JpZC5nZXRDb250YWluZXIoKS5maW5kKCcuanMtYnVsay1hY3Rpb24tY2hlY2tib3g6Y2hlY2tlZCcpO1xuICAgICAgICBjb25zdCAkY2F0ZWdvcmllc1RvRGVsZXRlSW5wdXRCbG9jayA9ICQoJyNkZWxldGVfY2F0ZWdvcmllc19jYXRlZ29yaWVzX3RvX2RlbGV0ZScpO1xuXG4gICAgICAgICRjaGVja2JveGVzLmVhY2goKGksIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICBjb25zdCAkY2hlY2tib3ggPSAkKGVsZW1lbnQpO1xuXG4gICAgICAgICAgY29uc3QgY2F0ZWdvcnlJbnB1dCA9ICRjYXRlZ29yaWVzVG9EZWxldGVJbnB1dEJsb2NrXG4gICAgICAgICAgICAuZGF0YSgncHJvdG90eXBlJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9fX25hbWVfXy9nLCAkY2hlY2tib3gudmFsKCkpO1xuXG4gICAgICAgICAgY29uc3QgJGlucHV0ID0gJCgkLnBhcnNlSFRNTChjYXRlZ29yeUlucHV0KVswXSk7XG4gICAgICAgICAgJGlucHV0LnZhbCgkY2hlY2tib3gudmFsKCkpO1xuXG4gICAgICAgICAgJGNhdGVnb3JpZXNUb0RlbGV0ZUlucHV0QmxvY2suYXBwZW5kKCRpbnB1dCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0ICRmb3JtID0gJGRlbGV0ZUNhdGVnb3JpZXNNb2RhbC5maW5kKCdmb3JtJyk7XG5cbiAgICAgICAgJGZvcm0uYXR0cignYWN0aW9uJywgc3VibWl0VXJsKTtcbiAgICAgICAgJGZvcm0uc3VibWl0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogQ2xhc3MgQ2F0ZWdvcnlEZWxldGVSb3dBY3Rpb25FeHRlbnNpb24gaGFuZGxlcyBzdWJtaXR0aW5nIG9mIHJvdyBhY3Rpb25cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlQ2F0ZWdvcnlSb3dBY3Rpb25FeHRlbnNpb24ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5kOiAoZ3JpZCkgPT4gdGhpcy5leHRlbmQoZ3JpZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgZ3JpZC5nZXRDb250YWluZXIoKS5vbignY2xpY2snLCAnLmpzLWRlbGV0ZS1jYXRlZ29yeS1yb3ctYWN0aW9uJywgKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCAkZGVsZXRlQ2F0ZWdvcmllc01vZGFsID0gJChgIyR7Z3JpZC5nZXRJZCgpfV9ncmlkX2RlbGV0ZV9jYXRlZ29yaWVzX21vZGFsYCk7XG4gICAgICAkZGVsZXRlQ2F0ZWdvcmllc01vZGFsLm1vZGFsKCdzaG93Jyk7XG5cbiAgICAgICRkZWxldGVDYXRlZ29yaWVzTW9kYWwub24oJ2NsaWNrJywgJy5qcy1zdWJtaXQtZGVsZXRlLWNhdGVnb3JpZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBjb25zdCBjYXRlZ29yeUlkID0gJGJ1dHRvbi5kYXRhKCdjYXRlZ29yeS1pZCcpO1xuXG4gICAgICAgIGNvbnN0ICRjYXRlZ29yaWVzVG9EZWxldGVJbnB1dEJsb2NrID0gJCgnI2RlbGV0ZV9jYXRlZ29yaWVzX2NhdGVnb3JpZXNfdG9fZGVsZXRlJyk7XG5cbiAgICAgICAgY29uc3QgY2F0ZWdvcnlJbnB1dCA9ICRjYXRlZ29yaWVzVG9EZWxldGVJbnB1dEJsb2NrXG4gICAgICAgICAgLmRhdGEoJ3Byb3RvdHlwZScpXG4gICAgICAgICAgLnJlcGxhY2UoL19fbmFtZV9fL2csICRjYXRlZ29yaWVzVG9EZWxldGVJbnB1dEJsb2NrLmNoaWxkcmVuKCkubGVuZ3RoKTtcblxuICAgICAgICBjb25zdCAkaXRlbSA9ICQoJC5wYXJzZUhUTUwoY2F0ZWdvcnlJbnB1dClbMF0pO1xuICAgICAgICAkaXRlbS52YWwoY2F0ZWdvcnlJZCk7XG5cbiAgICAgICAgJGNhdGVnb3JpZXNUb0RlbGV0ZUlucHV0QmxvY2suYXBwZW5kKCRpdGVtKTtcblxuICAgICAgICBjb25zdCAkZm9ybSA9ICRkZWxldGVDYXRlZ29yaWVzTW9kYWwuZmluZCgnZm9ybScpO1xuXG4gICAgICAgICRmb3JtLmF0dHIoJ2FjdGlvbicsICRidXR0b24uZGF0YSgnY2F0ZWdvcnktZGVsZXRlLXVybCcpKTtcbiAgICAgICAgJGZvcm0uc3VibWl0KCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5pbXBvcnQgQ29uZmlybU1vZGFsIGZyb20gJ0Bjb21wb25lbnRzL21vZGFsJztcblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENsYXNzIFN1Ym1pdFJvd0FjdGlvbkV4dGVuc2lvbiBoYW5kbGVzIHN1Ym1pdHRpbmcgb2Ygcm93IGFjdGlvblxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJtaXRSb3dBY3Rpb25FeHRlbnNpb24ge1xuICAvKipcbiAgICogRXh0ZW5kIGdyaWRcbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqL1xuICBleHRlbmQoZ3JpZCkge1xuICAgIGdyaWQuZ2V0Q29udGFpbmVyKCkub24oJ2NsaWNrJywgJy5qcy1zdWJtaXQtcm93LWFjdGlvbicsIChldmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgY29uc3QgJGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICBjb25zdCBjb25maXJtTWVzc2FnZSA9ICRidXR0b24uZGF0YSgnY29uZmlybU1lc3NhZ2UnKTtcbiAgICAgIGNvbnN0IGNvbmZpcm1UaXRsZSA9ICRidXR0b24uZGF0YSgndGl0bGUnKTtcblxuICAgICAgY29uc3QgbWV0aG9kID0gJGJ1dHRvbi5kYXRhKCdtZXRob2QnKTtcblxuICAgICAgaWYgKGNvbmZpcm1UaXRsZSkge1xuICAgICAgICB0aGlzLnNob3dDb25maXJtTW9kYWwoJGJ1dHRvbiwgZ3JpZCwgY29uZmlybU1lc3NhZ2UsIGNvbmZpcm1UaXRsZSwgbWV0aG9kKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjb25maXJtTWVzc2FnZS5sZW5ndGggJiYgIXdpbmRvdy5jb25maXJtKGNvbmZpcm1NZXNzYWdlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucG9zdEZvcm0oJGJ1dHRvbiwgbWV0aG9kKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHBvc3RGb3JtKCRidXR0b24sIG1ldGhvZCkge1xuICAgIGNvbnN0IGlzR2V0T3JQb3N0TWV0aG9kID0gWydHRVQnLCAnUE9TVCddLmluY2x1ZGVzKG1ldGhvZCk7XG5cbiAgICBjb25zdCAkZm9ybSA9ICQoJzxmb3JtPicsIHtcbiAgICAgIGFjdGlvbjogJGJ1dHRvbi5kYXRhKCd1cmwnKSxcbiAgICAgIG1ldGhvZDogaXNHZXRPclBvc3RNZXRob2QgPyBtZXRob2QgOiAnUE9TVCcsXG4gICAgfSkuYXBwZW5kVG8oJ2JvZHknKTtcblxuICAgIGlmICghaXNHZXRPclBvc3RNZXRob2QpIHtcbiAgICAgICRmb3JtLmFwcGVuZCgkKCc8aW5wdXQ+Jywge1xuICAgICAgICB0eXBlOiAnX2hpZGRlbicsXG4gICAgICAgIG5hbWU6ICdfbWV0aG9kJyxcbiAgICAgICAgdmFsdWU6IG1ldGhvZCxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICAkZm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge2pRdWVyeX0gJHN1Ym1pdEJ0blxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbmZpcm1NZXNzYWdlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb25maXJtVGl0bGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZFxuICAgKi9cbiAgc2hvd0NvbmZpcm1Nb2RhbCgkc3VibWl0QnRuLCBncmlkLCBjb25maXJtTWVzc2FnZSwgY29uZmlybVRpdGxlLCBtZXRob2QpIHtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uTGFiZWwgPSAkc3VibWl0QnRuLmRhdGEoJ2NvbmZpcm1CdXR0b25MYWJlbCcpO1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uTGFiZWwgPSAkc3VibWl0QnRuLmRhdGEoJ2Nsb3NlQnV0dG9uTGFiZWwnKTtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uQ2xhc3MgPSAkc3VibWl0QnRuLmRhdGEoJ2NvbmZpcm1CdXR0b25DbGFzcycpO1xuXG4gICAgY29uc3QgbW9kYWwgPSBuZXcgQ29uZmlybU1vZGFsKHtcbiAgICAgIGlkOiBgJHtncmlkLmdldElkKCl9LWdyaWQtY29uZmlybS1tb2RhbGAsXG4gICAgICBjb25maXJtVGl0bGUsXG4gICAgICBjb25maXJtTWVzc2FnZSxcbiAgICAgIGNvbmZpcm1CdXR0b25MYWJlbCxcbiAgICAgIGNsb3NlQnV0dG9uTGFiZWwsXG4gICAgICBjb25maXJtQnV0dG9uQ2xhc3MsXG4gICAgfSwgKCkgPT4gdGhpcy5wb3N0Rm9ybSgkc3VibWl0QnRuLCBtZXRob2QpKTtcblxuICAgIG1vZGFsLnNob3coKTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5jb25zdCB7JH0gPSB3aW5kb3c7XG5cbi8qKlxuICogQ2xhc3MgQnVsa0FjdGlvblNlbGVjdENoZWNrYm94RXh0ZW5zaW9uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJ1bGtBY3Rpb25DaGVja2JveEV4dGVuc2lvbiB7XG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZCB3aXRoIGJ1bGsgYWN0aW9uIGNoZWNrYm94ZXMgaGFuZGxpbmcgZnVuY3Rpb25hbGl0eVxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgdGhpcy5oYW5kbGVCdWxrQWN0aW9uQ2hlY2tib3hTZWxlY3QoZ3JpZCk7XG4gICAgdGhpcy5oYW5kbGVCdWxrQWN0aW9uU2VsZWN0QWxsQ2hlY2tib3goZ3JpZCk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBcIlNlbGVjdCBhbGxcIiBidXR0b24gaW4gdGhlIGdyaWRcbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBoYW5kbGVCdWxrQWN0aW9uU2VsZWN0QWxsQ2hlY2tib3goZ3JpZCkge1xuICAgIGdyaWQuZ2V0Q29udGFpbmVyKCkub24oJ2NoYW5nZScsICcuanMtYnVsay1hY3Rpb24tc2VsZWN0LWFsbCcsIChlKSA9PiB7XG4gICAgICBjb25zdCAkY2hlY2tib3ggPSAkKGUuY3VycmVudFRhcmdldCk7XG5cbiAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9ICRjaGVja2JveC5pcygnOmNoZWNrZWQnKTtcblxuICAgICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgICB0aGlzLmVuYWJsZUJ1bGtBY3Rpb25zQnRuKGdyaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlQnVsa0FjdGlvbnNCdG4oZ3JpZCk7XG4gICAgICB9XG5cbiAgICAgIGdyaWQuZ2V0Q29udGFpbmVyKCkuZmluZCgnLmpzLWJ1bGstYWN0aW9uLWNoZWNrYm94JykucHJvcCgnY2hlY2tlZCcsIGlzQ2hlY2tlZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyBlYWNoIGJ1bGsgYWN0aW9uIGNoZWNrYm94IHNlbGVjdCBpbiB0aGUgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGhhbmRsZUJ1bGtBY3Rpb25DaGVja2JveFNlbGVjdChncmlkKSB7XG4gICAgZ3JpZC5nZXRDb250YWluZXIoKS5vbignY2hhbmdlJywgJy5qcy1idWxrLWFjdGlvbi1jaGVja2JveCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGNoZWNrZWRSb3dzQ291bnQgPSBncmlkLmdldENvbnRhaW5lcigpLmZpbmQoJy5qcy1idWxrLWFjdGlvbi1jaGVja2JveDpjaGVja2VkJykubGVuZ3RoO1xuXG4gICAgICBpZiAoY2hlY2tlZFJvd3NDb3VudCA+IDApIHtcbiAgICAgICAgdGhpcy5lbmFibGVCdWxrQWN0aW9uc0J0bihncmlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUJ1bGtBY3Rpb25zQnRuKGdyaWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBidWxrIGFjdGlvbnMgYnV0dG9uXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgZW5hYmxlQnVsa0FjdGlvbnNCdG4oZ3JpZCkge1xuICAgIGdyaWQuZ2V0Q29udGFpbmVyKCkuZmluZCgnLmpzLWJ1bGstYWN0aW9ucy1idG4nKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIGJ1bGsgYWN0aW9ucyBidXR0b25cbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBkaXNhYmxlQnVsa0FjdGlvbnNCdG4oZ3JpZCkge1xuICAgIGdyaWQuZ2V0Q29udGFpbmVyKCkuZmluZCgnLmpzLWJ1bGstYWN0aW9ucy1idG4nKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmltcG9ydCAndGFibGVkbmQvZGlzdC9qcXVlcnkudGFibGVkbmQubWluJztcblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENsYXNzIENhdGVnb3J5UG9zaXRpb25FeHRlbnNpb24gZXh0ZW5kcyBHcmlkIHdpdGggcmVvcmRlcmFibGUgY2F0ZWdvcnkgcG9zaXRpb25zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhdGVnb3J5UG9zaXRpb25FeHRlbnNpb24ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5kOiAoZ3JpZCkgPT4gdGhpcy5leHRlbmQoZ3JpZCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgdGhpcy5ncmlkID0gZ3JpZDtcblxuICAgIHRoaXMuYWRkSWRzVG9HcmlkVGFibGVSb3dzKCk7XG5cbiAgICBncmlkLmdldENvbnRhaW5lcigpLmZpbmQoJy5qcy1ncmlkLXRhYmxlJykudGFibGVEbkQoe1xuICAgICAgZHJhZ0hhbmRsZTogJy5qcy1kcmFnLWhhbmRsZScsXG4gICAgICBvbkRyYWdDbGFzczogJ2RyYWdnaW5nLXJvdycsXG4gICAgICBvbkRyYWdTdGFydDogKCkgPT4ge1xuICAgICAgICB0aGlzLm9yaWdpbmFsUG9zaXRpb25zID0gZGVjb2RlVVJJQ29tcG9uZW50KCQudGFibGVEbkQuc2VyaWFsaXplKCkpO1xuICAgICAgfSxcbiAgICAgIG9uRHJvcDogKHRhYmxlLCByb3cpID0+IHRoaXMuaGFuZGxlQ2F0ZWdvcnlQb3NpdGlvbkNoYW5nZShyb3cpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gcG9zaXRpb24gaXMgY2hhbmdlZCBoYW5kbGUgdXBkYXRlXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJvd1xuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaGFuZGxlQ2F0ZWdvcnlQb3NpdGlvbkNoYW5nZShyb3cpIHtcbiAgICBjb25zdCBwb3NpdGlvbnMgPSBkZWNvZGVVUklDb21wb25lbnQoJC50YWJsZURuRC5zZXJpYWxpemUoKSk7XG4gICAgY29uc3Qgd2F5ID0gKHRoaXMub3JpZ2luYWxQb3NpdGlvbnMuaW5kZXhPZihyb3cuaWQpIDwgcG9zaXRpb25zLmluZGV4T2Yocm93LmlkKSkgPyAxIDogMDtcblxuICAgIGNvbnN0ICRjYXRlZ29yeVBvc2l0aW9uQ29udGFpbmVyID0gJChyb3cpLmZpbmQoYC5qcy0ke3RoaXMuZ3JpZC5nZXRJZCgpfS1wb3NpdGlvbjpmaXJzdGApO1xuXG4gICAgY29uc3QgY2F0ZWdvcnlJZCA9ICRjYXRlZ29yeVBvc2l0aW9uQ29udGFpbmVyLmRhdGEoJ2lkJyk7XG4gICAgY29uc3QgY2F0ZWdvcnlQYXJlbnRJZCA9ICRjYXRlZ29yeVBvc2l0aW9uQ29udGFpbmVyLmRhdGEoJ2lkLXBhcmVudCcpO1xuICAgIGNvbnN0IHBvc2l0aW9uVXBkYXRlVXJsID0gJGNhdGVnb3J5UG9zaXRpb25Db250YWluZXIuZGF0YSgncG9zaXRpb24tdXBkYXRlLXVybCcpO1xuXG4gICAgbGV0IHBhcmFtcyA9IHBvc2l0aW9ucy5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7dGhpcy5ncmlkLmdldElkKCl9X2dyaWRfdGFibGVgLCAnZycpLCAncG9zaXRpb25zJyk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgIGlkX2NhdGVnb3J5X3BhcmVudDogY2F0ZWdvcnlQYXJlbnRJZCxcbiAgICAgIGlkX2NhdGVnb3J5X3RvX21vdmU6IGNhdGVnb3J5SWQsXG4gICAgICB3YXksXG4gICAgfTtcblxuICAgIGlmIChwb3NpdGlvbnMuaW5kZXhPZignXzAmJykgIT09IC0xKSB7XG4gICAgICBxdWVyeVBhcmFtcy5mb3VuZF9maXJzdCA9IDE7XG4gICAgfVxuXG4gICAgcGFyYW1zICs9IGAmJHskLnBhcmFtKHF1ZXJ5UGFyYW1zKX1gO1xuXG4gICAgdGhpcy51cGRhdGVDYXRlZ29yeVBvc2l0aW9uKHBvc2l0aW9uVXBkYXRlVXJsLCBwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBJRCdzIHRvIEdyaWQgdGFibGUgcm93cyB0byBtYWtlIHRhYmxlRG5ELm9uRHJvcCgpIGZ1bmN0aW9uIHdvcmsuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhZGRJZHNUb0dyaWRUYWJsZVJvd3MoKSB7XG4gICAgdGhpcy5ncmlkLmdldENvbnRhaW5lcigpXG4gICAgICAuZmluZCgnLmpzLWdyaWQtdGFibGUnKVxuICAgICAgLmZpbmQoYC5qcy0ke3RoaXMuZ3JpZC5nZXRJZCgpfS1wb3NpdGlvbmApXG4gICAgICAuZWFjaCgoaW5kZXgsIHBvc2l0aW9uV3JhcHBlcikgPT4ge1xuICAgICAgICBjb25zdCAkcG9zaXRpb25XcmFwcGVyID0gJChwb3NpdGlvbldyYXBwZXIpO1xuXG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SWQgPSAkcG9zaXRpb25XcmFwcGVyLmRhdGEoJ2lkJyk7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5UGFyZW50SWQgPSAkcG9zaXRpb25XcmFwcGVyLmRhdGEoJ2lkLXBhcmVudCcpO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9ICRwb3NpdGlvbldyYXBwZXIuZGF0YSgncG9zaXRpb24nKTtcblxuICAgICAgICBjb25zdCBpZCA9IGB0cl8ke2NhdGVnb3J5UGFyZW50SWR9XyR7Y2F0ZWdvcnlJZH1fJHtwb3NpdGlvbn1gO1xuXG4gICAgICAgICRwb3NpdGlvbldyYXBwZXIuY2xvc2VzdCgndHInKS5hdHRyKCdpZCcsIGlkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYXRlZ29yaWVzIGxpc3Rpbmcgd2l0aCBuZXcgcG9zaXRpb25zXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB1cGRhdGVDYXRlZ29yeUlkc0FuZFBvc2l0aW9ucygpIHtcbiAgICB0aGlzLmdyaWQuZ2V0Q29udGFpbmVyKClcbiAgICAgIC5maW5kKCcuanMtZ3JpZC10YWJsZScpXG4gICAgICAuZmluZChgLmpzLSR7dGhpcy5ncmlkLmdldElkKCl9LXBvc2l0aW9uYClcbiAgICAgIC5lYWNoKChpbmRleCwgcG9zaXRpb25XcmFwcGVyKSA9PiB7XG4gICAgICAgIGNvbnN0ICRwb3NpdGlvbldyYXBwZXIgPSAkKHBvc2l0aW9uV3JhcHBlcik7XG4gICAgICAgIGNvbnN0ICRyb3cgPSAkcG9zaXRpb25XcmFwcGVyLmNsb3Nlc3QoJ3RyJyk7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gJHBvc2l0aW9uV3JhcHBlci5kYXRhKCdwYWdpbmF0aW9uLW9mZnNldCcpO1xuICAgICAgICBjb25zdCBuZXdQb3NpdGlvbiA9IG9mZnNldCA+IDAgPyBpbmRleCArIG9mZnNldCA6IGluZGV4O1xuXG4gICAgICAgIGNvbnN0IG9sZElkID0gJHJvdy5hdHRyKCdpZCcpO1xuICAgICAgICAkcm93LmF0dHIoJ2lkJywgb2xkSWQucmVwbGFjZSgvX1swLTldJC9nLCBgXyR7bmV3UG9zaXRpb259YCkpO1xuXG4gICAgICAgICRwb3NpdGlvbldyYXBwZXIuZmluZCgnLmpzLXBvc2l0aW9uJykudGV4dChuZXdQb3NpdGlvbiArIDEpO1xuICAgICAgICAkcG9zaXRpb25XcmFwcGVyLmRhdGEoJ3Bvc2l0aW9uJywgbmV3UG9zaXRpb24pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBjYXRlZ29yaWVzIHBvc2l0aW9ucyB1cGRhdGVcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB1cGRhdGVDYXRlZ29yeVBvc2l0aW9uKHVybCwgcGFyYW1zKSB7XG4gICAgJC5wb3N0KHtcbiAgICAgIHVybCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ2NhY2hlLWNvbnRyb2wnOiAnbm8tY2FjaGUnLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IHBhcmFtcyxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgIHdpbmRvdy5zaG93U3VjY2Vzc01lc3NhZ2UocmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aW5kb3cuc2hvd0Vycm9yTWVzc2FnZShyZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy51cGRhdGVDYXRlZ29yeUlkc0FuZFBvc2l0aW9ucygpO1xuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDbGFzcyBBc3luY1RvZ2dsZUNvbHVtbkV4dGVuc2lvbiBzdWJtaXRzIHRvZ2dsZSBhY3Rpb24gdXNpbmcgQUpBWFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBc3luY1RvZ2dsZUNvbHVtbkV4dGVuc2lvbiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJldHVybiB7XG4gICAgICBleHRlbmQ6IChncmlkKSA9PiB0aGlzLmV4dGVuZChncmlkKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dGVuZCBncmlkXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKi9cbiAgZXh0ZW5kKGdyaWQpIHtcbiAgICBncmlkXG4gICAgICAuZ2V0Q29udGFpbmVyKClcbiAgICAgIC5maW5kKCcuanMtZ3JpZC10YWJsZScpXG4gICAgICAub24oJ2NsaWNrJywgJy5wcy10b2dnbGFibGUtcm93JywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0ICRidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuXG4gICAgICAgIGlmICghJGJ1dHRvbi5oYXNDbGFzcygncHMtc3dpdGNoJykpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJC5wb3N0KHtcbiAgICAgICAgICB1cmw6ICRidXR0b24uZGF0YSgndG9nZ2xlLXVybCcpLFxuICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgICAgICB3aW5kb3cuc2hvd1N1Y2Nlc3NNZXNzYWdlKHJlc3BvbnNlLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnV0dG9uRGlzcGxheSgkYnV0dG9uKTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBlcnJvci5yZXNwb25zZUpTT047XG5cbiAgICAgICAgICAgIHdpbmRvdy5zaG93RXJyb3JNZXNzYWdlKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIGJ1dHRvbiBkaXNwbGF5IGZyb20gZW5hYmxlZCB0byBkaXNhYmxlZCBhbmQgb3RoZXIgd2F5IGFyb3VuZFxuICAgKlxuICAgKiBAcGFyYW0ge2pRdWVyeX0gJGJ1dHRvblxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdG9nZ2xlQnV0dG9uRGlzcGxheSgkYnV0dG9uKSB7XG4gICAgY29uc3QgaXNBY3RpdmUgPSAkYnV0dG9uLmhhc0NsYXNzKCdncmlkLXRvZ2dsZXItaWNvbi12YWxpZCcpO1xuXG4gICAgY29uc3QgY2xhc3NUb0FkZCA9IGlzQWN0aXZlID8gJ2dyaWQtdG9nZ2xlci1pY29uLW5vdC12YWxpZCcgOiAnZ3JpZC10b2dnbGVyLWljb24tdmFsaWQnO1xuICAgIGNvbnN0IGNsYXNzVG9SZW1vdmUgPSBpc0FjdGl2ZSA/ICdncmlkLXRvZ2dsZXItaWNvbi12YWxpZCcgOiAnZ3JpZC10b2dnbGVyLWljb24tbm90LXZhbGlkJztcbiAgICBjb25zdCBpY29uID0gaXNBY3RpdmUgPyAnY2xlYXInIDogJ2NoZWNrJztcblxuICAgICRidXR0b24ucmVtb3ZlQ2xhc3MoY2xhc3NUb1JlbW92ZSk7XG4gICAgJGJ1dHRvbi5hZGRDbGFzcyhjbGFzc1RvQWRkKTtcblxuICAgIGlmICgkYnV0dG9uLmhhc0NsYXNzKCdtYXRlcmlhbC1pY29ucycpKSB7XG4gICAgICAkYnV0dG9uLnRleHQoaWNvbik7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDbGFzcyBFeHBvcnRUb1NxbE1hbmFnZXJFeHRlbnNpb24gZXh0ZW5kcyBncmlkIHdpdGggZXhwb3J0aW5nIHF1ZXJ5IHRvIFNRTCBNYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEV4cG9ydFRvU3FsTWFuYWdlckV4dGVuc2lvbiB7XG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgZ3JpZC5nZXRIZWFkZXJDb250YWluZXIoKS5vbignY2xpY2snLCAnLmpzLWNvbW1vbl9zaG93X3F1ZXJ5LWdyaWQtYWN0aW9uJywgKCkgPT4gdGhpcy5vblNob3dTcWxRdWVyeUNsaWNrKGdyaWQpKTtcbiAgICBncmlkLmdldEhlYWRlckNvbnRhaW5lcigpLm9uKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgICcuanMtY29tbW9uX2V4cG9ydF9zcWxfbWFuYWdlci1ncmlkLWFjdGlvbicsXG4gICAgICAoKSA9PiB0aGlzLm9uRXhwb3J0U3FsTWFuYWdlckNsaWNrKGdyaWQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlZCB3aGVuIGNsaWNraW5nIG9uIHRoZSBcInNob3cgc3FsIHF1ZXJ5XCIgdG9vbGJhciBidXR0b25cbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBvblNob3dTcWxRdWVyeUNsaWNrKGdyaWQpIHtcbiAgICBjb25zdCAkc3FsTWFuYWdlckZvcm0gPSAkKGAjJHtncmlkLmdldElkKCl9X2NvbW1vbl9zaG93X3F1ZXJ5X21vZGFsX2Zvcm1gKTtcbiAgICB0aGlzLmZpbGxFeHBvcnRGb3JtKCRzcWxNYW5hZ2VyRm9ybSwgZ3JpZCk7XG5cbiAgICBjb25zdCAkbW9kYWwgPSAkKGAjJHtncmlkLmdldElkKCl9X2dyaWRfY29tbW9uX3Nob3dfcXVlcnlfbW9kYWxgKTtcbiAgICAkbW9kYWwubW9kYWwoJ3Nob3cnKTtcblxuICAgICRtb2RhbC5vbignY2xpY2snLCAnLmJ0bi1zcWwtc3VibWl0JywgKCkgPT4gJHNxbE1hbmFnZXJGb3JtLnN1Ym1pdCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VkIHdoZW4gY2xpY2tpbmcgb24gdGhlIFwiZXhwb3J0IHRvIHRoZSBzcWwgcXVlcnlcIiB0b29sYmFyIGJ1dHRvblxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG9uRXhwb3J0U3FsTWFuYWdlckNsaWNrKGdyaWQpIHtcbiAgICBjb25zdCAkc3FsTWFuYWdlckZvcm0gPSAkKGAjJHtncmlkLmdldElkKCl9X2NvbW1vbl9zaG93X3F1ZXJ5X21vZGFsX2Zvcm1gKTtcblxuICAgIHRoaXMuZmlsbEV4cG9ydEZvcm0oJHNxbE1hbmFnZXJGb3JtLCBncmlkKTtcblxuICAgICRzcWxNYW5hZ2VyRm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWxsIGV4cG9ydCBmb3JtIHdpdGggU1FMIGFuZCBpdCdzIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtqUXVlcnl9ICRzcWxNYW5hZ2VyRm9ybVxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGZpbGxFeHBvcnRGb3JtKCRzcWxNYW5hZ2VyRm9ybSwgZ3JpZCkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZ3JpZC5nZXRDb250YWluZXIoKS5maW5kKCcuanMtZ3JpZC10YWJsZScpLmRhdGEoJ3F1ZXJ5Jyk7XG5cbiAgICAkc3FsTWFuYWdlckZvcm0uZmluZCgndGV4dGFyZWFbbmFtZT1cInNxbFwiXScpLnZhbChxdWVyeSk7XG4gICAgJHNxbE1hbmFnZXJGb3JtLmZpbmQoJ2lucHV0W25hbWU9XCJuYW1lXCJdJykudmFsKHRoaXMuZ2V0TmFtZUZyb21CcmVhZGNydW1iKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBleHBvcnQgbmFtZSBmcm9tIHBhZ2UncyBicmVhZGNydW1iXG4gICAqXG4gICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldE5hbWVGcm9tQnJlYWRjcnVtYigpIHtcbiAgICBjb25zdCAkYnJlYWRjcnVtYnMgPSAkKCcuaGVhZGVyLXRvb2xiYXInKS5maW5kKCcuYnJlYWRjcnVtYi1pdGVtJyk7XG4gICAgbGV0IG5hbWUgPSAnJztcblxuICAgICRicmVhZGNydW1icy5lYWNoKChpLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCAkYnJlYWRjcnVtYiA9ICQoaXRlbSk7XG5cbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJUaXRsZSA9ICRicmVhZGNydW1iLmZpbmQoJ2EnKS5sZW5ndGggPiAwXG4gICAgICAgID8gJGJyZWFkY3J1bWIuZmluZCgnYScpLnRleHQoKVxuICAgICAgICA6ICRicmVhZGNydW1iLnRleHQoKTtcblxuICAgICAgaWYgKG5hbWUubGVuZ3RoID4gMCkge1xuICAgICAgICBuYW1lID0gbmFtZS5jb25jYXQoJyA+ICcpO1xuICAgICAgfVxuXG4gICAgICBuYW1lID0gbmFtZS5jb25jYXQoYnJlYWRjcnVtYlRpdGxlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBuYW1lO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmltcG9ydCByZXNldFNlYXJjaCBmcm9tICdAYXBwL3V0aWxzL3Jlc2V0X3NlYXJjaCc7XG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDbGFzcyBGaWx0ZXJzUmVzZXRFeHRlbnNpb24gZXh0ZW5kcyBncmlkIHdpdGggZmlsdGVycyByZXNldHRpbmdcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyc1Jlc2V0RXh0ZW5zaW9uIHtcbiAgLyoqXG4gICAqIEV4dGVuZCBncmlkXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKi9cbiAgZXh0ZW5kKGdyaWQpIHtcbiAgICBncmlkLmdldENvbnRhaW5lcigpLm9uKCdjbGljaycsICcuanMtcmVzZXQtc2VhcmNoJywgKGV2ZW50KSA9PiB7XG4gICAgICByZXNldFNlYXJjaCgkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmRhdGEoJ3VybCcpLCAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmRhdGEoJ3JlZGlyZWN0JykpO1xuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbi8qKlxuICogUmVzcG9uc2libGUgZm9yIGdyaWQgZmlsdGVycyBzZWFyY2ggYW5kIHJlc2V0IGJ1dHRvbiBhdmFpbGFiaWxpdHkgd2hlbiBmaWx0ZXIgaW5wdXRzIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlcnNTdWJtaXRCdXR0b25FbmFibGVyRXh0ZW5zaW9uIHtcbiAgLyoqXG4gICAqIEV4dGVuZCBncmlkXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKi9cbiAgZXh0ZW5kKGdyaWQpIHtcbiAgICBjb25zdCAkZmlsdGVyc1JvdyA9IGdyaWQuZ2V0Q29udGFpbmVyKCkuZmluZCgnLmNvbHVtbi1maWx0ZXJzJyk7XG4gICAgJGZpbHRlcnNSb3cuZmluZCgnLmdyaWQtc2VhcmNoLWJ1dHRvbicpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG5cbiAgICAkZmlsdGVyc1Jvdy5maW5kKCdpbnB1dDpub3QoLmpzLWJ1bGstYWN0aW9uLXNlbGVjdC1hbGwpLCBzZWxlY3QnKS5vbignaW5wdXQgZHAuY2hhbmdlJywgKCkgPT4ge1xuICAgICAgJGZpbHRlcnNSb3cuZmluZCgnLmdyaWQtc2VhcmNoLWJ1dHRvbicpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgJGZpbHRlcnNSb3cuZmluZCgnLmpzLWdyaWQtcmVzZXQtYnV0dG9uJykucHJvcCgnaGlkZGVuJywgZmFsc2UpO1xuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDbGFzcyBMaW5rUm93QWN0aW9uRXh0ZW5zaW9uIGhhbmRsZXMgbGluayByb3cgYWN0aW9uc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW5rUm93QWN0aW9uRXh0ZW5zaW9uIHtcbiAgLyoqXG4gICAqIEV4dGVuZCBncmlkXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKi9cbiAgZXh0ZW5kKGdyaWQpIHtcbiAgICB0aGlzLmluaXRSb3dMaW5rcyhncmlkKTtcbiAgICB0aGlzLmluaXRDb25maXJtYWJsZUFjdGlvbnMoZ3JpZCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0ZW5kIGdyaWRcbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqL1xuICBpbml0Q29uZmlybWFibGVBY3Rpb25zKGdyaWQpIHtcbiAgICBncmlkLmdldENvbnRhaW5lcigpLm9uKCdjbGljaycsICcuanMtbGluay1yb3ctYWN0aW9uJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBjb25maXJtTWVzc2FnZSA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuZGF0YSgnY29uZmlybS1tZXNzYWdlJyk7XG5cbiAgICAgIGlmIChjb25maXJtTWVzc2FnZS5sZW5ndGggJiYgIXdpbmRvdy5jb25maXJtKGNvbmZpcm1NZXNzYWdlKSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNsaWNrIGV2ZW50IG9uIHJvd3MgdGhhdCBtYXRjaGVzIHRoZSBmaXJzdCBsaW5rIGFjdGlvbiAoaWYgcHJlc2VudClcbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqL1xuICBpbml0Um93TGlua3MoZ3JpZCkge1xuICAgICQoJ3RyJywgZ3JpZC5nZXRDb250YWluZXIoKSkuZWFjaChmdW5jdGlvbiBpbml0RWFjaFJvdygpIHtcbiAgICAgIGNvbnN0ICRwYXJlbnRSb3cgPSAkKHRoaXMpO1xuXG4gICAgICAkKCcuanMtbGluay1yb3ctYWN0aW9uW2RhdGEtY2xpY2thYmxlLXJvdz0xXTpmaXJzdCcsICRwYXJlbnRSb3cpLmVhY2goZnVuY3Rpb24gcHJvcGFnYXRlRmlyc3RMaW5rQWN0aW9uKCkge1xuICAgICAgICBjb25zdCAkcm93QWN0aW9uID0gJCh0aGlzKTtcbiAgICAgICAgY29uc3QgJHBhcmVudENlbGwgPSAkcm93QWN0aW9uLmNsb3Nlc3QoJ3RkJyk7XG5cbiAgICAgICAgY29uc3QgY2xpY2thYmxlQ2VsbHMgPSAkKCd0ZC5jbGlja2FibGUnLCAkcGFyZW50Um93KS5ub3QoJHBhcmVudENlbGwpO1xuICAgICAgICBsZXQgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICBjbGlja2FibGVDZWxscy5hZGRDbGFzcygnY3Vyc29yLXBvaW50ZXInKS5tb3VzZWRvd24oKCkgPT4ge1xuICAgICAgICAgICQod2luZG93KS5tb3VzZW1vdmUoKCkgPT4ge1xuICAgICAgICAgICAgaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgICAgICAkKHdpbmRvdykudW5iaW5kKCdtb3VzZW1vdmUnKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY2xpY2thYmxlQ2VsbHMubW91c2V1cCgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgd2FzRHJhZ2dpbmcgPSBpc0RyYWdnaW5nO1xuICAgICAgICAgIGlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgICAkKHdpbmRvdykudW5iaW5kKCdtb3VzZW1vdmUnKTtcblxuICAgICAgICAgIGlmICghd2FzRHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpcm1NZXNzYWdlID0gJHJvd0FjdGlvbi5kYXRhKCdjb25maXJtLW1lc3NhZ2UnKTtcblxuICAgICAgICAgICAgaWYgKCFjb25maXJtTWVzc2FnZS5sZW5ndGggfHwgd2luZG93LmNvbmZpcm0oY29uZmlybU1lc3NhZ2UpKSB7XG4gICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uID0gJHJvd0FjdGlvbi5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbi8qKlxuICogQ2xhc3MgUmVsb2FkTGlzdEV4dGVuc2lvbiBleHRlbmRzIGdyaWQgd2l0aCBcIkxpc3QgcmVsb2FkXCIgYWN0aW9uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbG9hZExpc3RFeHRlbnNpb24ge1xuICAvKipcbiAgICogRXh0ZW5kIGdyaWRcbiAgICpcbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqL1xuICBleHRlbmQoZ3JpZCkge1xuICAgIGdyaWQuZ2V0SGVhZGVyQ29udGFpbmVyKCkub24oJ2NsaWNrJywgJy5qcy1jb21tb25fcmVmcmVzaF9saXN0LWdyaWQtYWN0aW9uJywgKCkgPT4ge1xuICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmltcG9ydCBUYWJsZVNvcnRpbmcgZnJvbSAnQGFwcC91dGlscy90YWJsZS1zb3J0aW5nJztcblxuLyoqXG4gKiBDbGFzcyBSZWxvYWRMaXN0RXh0ZW5zaW9uIGV4dGVuZHMgZ3JpZCB3aXRoIFwiTGlzdCByZWxvYWRcIiBhY3Rpb25cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU29ydGluZ0V4dGVuc2lvbiB7XG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZFxuICAgKlxuICAgKiBAcGFyYW0ge0dyaWR9IGdyaWRcbiAgICovXG4gIGV4dGVuZChncmlkKSB7XG4gICAgY29uc3QgJHNvcnRhYmxlVGFibGUgPSBncmlkLmdldENvbnRhaW5lcigpLmZpbmQoJ3RhYmxlLnRhYmxlJyk7XG5cbiAgICBuZXcgVGFibGVTb3J0aW5nKCRzb3J0YWJsZVRhYmxlKS5hdHRhY2goKTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgc2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIFByZXN0YVNob3AgaXMgYW4gSW50ZXJuYXRpb25hbCBSZWdpc3RlcmVkIFRyYWRlbWFyayAmIFByb3BlcnR5IG9mIFByZXN0YVNob3AgU0FcbiAqXG4gKiBOT1RJQ0UgT0YgTElDRU5TRVxuICpcbiAqIFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICogdGhhdCBpcyBidW5kbGVkIHdpdGggdGhpcyBwYWNrYWdlIGluIHRoZSBmaWxlIExJQ0VOU0UubWQuXG4gKiBJdCBpcyBhbHNvIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGlzIFVSTDpcbiAqIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMFxuICogSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG9cbiAqIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiwgcGxlYXNlIHNlbmQgYW4gZW1haWxcbiAqIHRvIGxpY2Vuc2VAcHJlc3Rhc2hvcC5jb20gc28gd2UgY2FuIHNlbmQgeW91IGEgY29weSBpbW1lZGlhdGVseS5cbiAqXG4gKiBESVNDTEFJTUVSXG4gKlxuICogRG8gbm90IGVkaXQgb3IgYWRkIHRvIHRoaXMgZmlsZSBpZiB5b3Ugd2lzaCB0byB1cGdyYWRlIFByZXN0YVNob3AgdG8gbmV3ZXJcbiAqIHZlcnNpb25zIGluIHRoZSBmdXR1cmUuIElmIHlvdSB3aXNoIHRvIGN1c3RvbWl6ZSBQcmVzdGFTaG9wIGZvciB5b3VyXG4gKiBuZWVkcyBwbGVhc2UgcmVmZXIgdG8gaHR0cHM6Ly9kZXZkb2NzLnByZXN0YXNob3AuY29tLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAYXV0aG9yICAgIFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9ycyA8Y29udGFjdEBwcmVzdGFzaG9wLmNvbT5cbiAqIEBjb3B5cmlnaHQgU2luY2UgMjAwNyBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnNcbiAqIEBsaWNlbnNlICAgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqL1xuXG5pbXBvcnQgQ29uZmlybU1vZGFsIGZyb20gJ0Bjb21wb25lbnRzL21vZGFsJztcblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIEhhbmRsZXMgc3VibWl0IG9mIGdyaWQgYWN0aW9uc1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdWJtaXRCdWxrQWN0aW9uRXh0ZW5zaW9uIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4dGVuZDogKGdyaWQpID0+IHRoaXMuZXh0ZW5kKGdyaWQpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRXh0ZW5kIGdyaWQgd2l0aCBidWxrIGFjdGlvbiBzdWJtaXR0aW5nXG4gICAqXG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKi9cbiAgZXh0ZW5kKGdyaWQpIHtcbiAgICBncmlkLmdldENvbnRhaW5lcigpLm9uKCdjbGljaycsICcuanMtYnVsay1hY3Rpb24tc3VibWl0LWJ0bicsIChldmVudCkgPT4ge1xuICAgICAgdGhpcy5zdWJtaXQoZXZlbnQsIGdyaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBidWxrIGFjdGlvbiBzdWJtaXR0aW5nXG4gICAqXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50XG4gICAqIEBwYXJhbSB7R3JpZH0gZ3JpZFxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc3VibWl0KGV2ZW50LCBncmlkKSB7XG4gICAgY29uc3QgJHN1Ym1pdEJ0biA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgY29uZmlybU1lc3NhZ2UgPSAkc3VibWl0QnRuLmRhdGEoJ2NvbmZpcm0tbWVzc2FnZScpO1xuICAgIGNvbnN0IGNvbmZpcm1UaXRsZSA9ICRzdWJtaXRCdG4uZGF0YSgnY29uZmlybVRpdGxlJyk7XG5cbiAgICBpZiAoY29uZmlybU1lc3NhZ2UgIT09IHVuZGVmaW5lZCAmJiBjb25maXJtTWVzc2FnZS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoY29uZmlybVRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybU1vZGFsKCRzdWJtaXRCdG4sIGdyaWQsIGNvbmZpcm1NZXNzYWdlLCBjb25maXJtVGl0bGUpO1xuICAgICAgfSBlbHNlIGlmICh3aW5kb3cuY29uZmlybShjb25maXJtTWVzc2FnZSkpIHtcbiAgICAgICAgdGhpcy5wb3N0Rm9ybSgkc3VibWl0QnRuLCBncmlkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3N0Rm9ybSgkc3VibWl0QnRuLCBncmlkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtqUXVlcnl9ICRzdWJtaXRCdG5cbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb25maXJtTWVzc2FnZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29uZmlybVRpdGxlXG4gICAqL1xuICBzaG93Q29uZmlybU1vZGFsKCRzdWJtaXRCdG4sIGdyaWQsIGNvbmZpcm1NZXNzYWdlLCBjb25maXJtVGl0bGUpIHtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uTGFiZWwgPSAkc3VibWl0QnRuLmRhdGEoJ2NvbmZpcm1CdXR0b25MYWJlbCcpO1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uTGFiZWwgPSAkc3VibWl0QnRuLmRhdGEoJ2Nsb3NlQnV0dG9uTGFiZWwnKTtcbiAgICBjb25zdCBjb25maXJtQnV0dG9uQ2xhc3MgPSAkc3VibWl0QnRuLmRhdGEoJ2NvbmZpcm1CdXR0b25DbGFzcycpO1xuXG4gICAgY29uc3QgbW9kYWwgPSBuZXcgQ29uZmlybU1vZGFsKHtcbiAgICAgIGlkOiBgJHtncmlkLmdldElkKCl9LWdyaWQtY29uZmlybS1tb2RhbGAsXG4gICAgICBjb25maXJtVGl0bGUsXG4gICAgICBjb25maXJtTWVzc2FnZSxcbiAgICAgIGNvbmZpcm1CdXR0b25MYWJlbCxcbiAgICAgIGNsb3NlQnV0dG9uTGFiZWwsXG4gICAgICBjb25maXJtQnV0dG9uQ2xhc3MsXG4gICAgfSwgKCkgPT4gdGhpcy5wb3N0Rm9ybSgkc3VibWl0QnRuLCBncmlkKSk7XG5cbiAgICBtb2RhbC5zaG93KCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtqUXVlcnl9ICRzdWJtaXRCdG5cbiAgICogQHBhcmFtIHtHcmlkfSBncmlkXG4gICAqL1xuICBwb3N0Rm9ybSgkc3VibWl0QnRuLCBncmlkKSB7XG4gICAgY29uc3QgJGZvcm0gPSAkKGAjJHtncmlkLmdldElkKCl9X2ZpbHRlcl9mb3JtYCk7XG5cbiAgICAkZm9ybS5hdHRyKCdhY3Rpb24nLCAkc3VibWl0QnRuLmRhdGEoJ2Zvcm0tdXJsJykpO1xuICAgICRmb3JtLmF0dHIoJ21ldGhvZCcsICRzdWJtaXRCdG4uZGF0YSgnZm9ybS1tZXRob2QnKSk7XG4gICAgJGZvcm0uc3VibWl0KCk7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBHcmlkIGV2ZW50c1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBHcmlkIHtcbiAgLyoqXG4gICAqIEdyaWQgaWRcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkXG4gICAqL1xuICBjb25zdHJ1Y3RvcihpZCkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLiRjb250YWluZXIgPSAkKGAjJHt0aGlzLmlkfV9ncmlkYCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdyaWQgaWRcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICovXG4gIGdldElkKCkge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBncmlkIGNvbnRhaW5lclxuICAgKlxuICAgKiBAcmV0dXJucyB7alF1ZXJ5fVxuICAgKi9cbiAgZ2V0Q29udGFpbmVyKCkge1xuICAgIHJldHVybiB0aGlzLiRjb250YWluZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdyaWQgaGVhZGVyIGNvbnRhaW5lclxuICAgKlxuICAgKiBAcmV0dXJucyB7alF1ZXJ5fVxuICAgKi9cbiAgZ2V0SGVhZGVyQ29udGFpbmVyKCkge1xuICAgIHJldHVybiB0aGlzLiRjb250YWluZXIuY2xvc2VzdCgnLmpzLWdyaWQtcGFuZWwnKS5maW5kKCcuanMtZ3JpZC1oZWFkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlbmQgZ3JpZCB3aXRoIGV4dGVybmFsIGV4dGVuc2lvbnNcbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGV4dGVuc2lvblxuICAgKi9cbiAgYWRkRXh0ZW5zaW9uKGV4dGVuc2lvbikge1xuICAgIGV4dGVuc2lvbi5leHRlbmQodGhpcyk7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENvbmZpcm1Nb2RhbCBjb21wb25lbnRcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gaWRcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtVGl0bGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtTWVzc2FnZVxuICogQHBhcmFtIHtTdHJpbmd9IGNsb3NlQnV0dG9uTGFiZWxcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtQnV0dG9uTGFiZWxcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maXJtQnV0dG9uQ2xhc3NcbiAqIEBwYXJhbSB7QXJyYXl9IGN1c3RvbUJ1dHRvbnNcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gY2xvc2FibGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNvbmZpcm1DYWxsYmFja1xuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FuY2VsQ2FsbGJhY2tcbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbmZpcm1Nb2RhbChwYXJhbXMsIGNvbmZpcm1DYWxsYmFjaywgY2FuY2VsQ2FsbGJhY2spIHtcbiAgLy8gQ29uc3RydWN0IHRoZSBtb2RhbFxuICBjb25zdCB7aWQsIGNsb3NhYmxlfSA9IHBhcmFtcztcbiAgdGhpcy5tb2RhbCA9IE1vZGFsKHBhcmFtcyk7XG5cbiAgLy8galF1ZXJ5IG1vZGFsIG9iamVjdFxuICB0aGlzLiRtb2RhbCA9ICQodGhpcy5tb2RhbC5jb250YWluZXIpO1xuXG4gIHRoaXMuc2hvdyA9ICgpID0+IHtcbiAgICB0aGlzLiRtb2RhbC5tb2RhbCgpO1xuICB9O1xuXG4gIHRoaXMubW9kYWwuY29uZmlybUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbmZpcm1DYWxsYmFjayk7XG5cbiAgdGhpcy4kbW9kYWwubW9kYWwoe1xuICAgIGJhY2tkcm9wOiBjbG9zYWJsZSA/IHRydWUgOiAnc3RhdGljJyxcbiAgICBrZXlib2FyZDogY2xvc2FibGUgIT09IHVuZGVmaW5lZCA/IGNsb3NhYmxlIDogdHJ1ZSxcbiAgICBjbG9zYWJsZTogY2xvc2FibGUgIT09IHVuZGVmaW5lZCA/IGNsb3NhYmxlIDogdHJ1ZSxcbiAgICBzaG93OiBmYWxzZSxcbiAgfSk7XG5cbiAgdGhpcy4kbW9kYWwub24oJ2hpZGRlbi5icy5tb2RhbCcsICgpID0+IHtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHtpZH1gKS5yZW1vdmUoKTtcbiAgICBpZiAoY2FuY2VsQ2FsbGJhY2spIHtcbiAgICAgIGNhbmNlbENhbGxiYWNrKCk7XG4gICAgfVxuICB9KTtcblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMubW9kYWwuY29udGFpbmVyKTtcbn1cblxuLyoqXG4gKiBNb2RhbCBjb21wb25lbnQgdG8gaW1wcm92ZSBsaXNpYmlsaXR5IGJ5IGNvbnN0cnVjdGluZyB0aGUgbW9kYWwgb3V0c2lkZSB0aGUgbWFpbiBmdW5jdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXNcbiAqXG4gKi9cbmZ1bmN0aW9uIE1vZGFsKHtcbiAgaWQgPSAnY29uZmlybS1tb2RhbCcsXG4gIGNvbmZpcm1UaXRsZSxcbiAgY29uZmlybU1lc3NhZ2UgPSAnJyxcbiAgY2xvc2VCdXR0b25MYWJlbCA9ICdDbG9zZScsXG4gIGNvbmZpcm1CdXR0b25MYWJlbCA9ICdBY2NlcHQnLFxuICBjb25maXJtQnV0dG9uQ2xhc3MgPSAnYnRuLXByaW1hcnknLFxuICBjdXN0b21CdXR0b25zID0gW10sXG59KSB7XG4gIGNvbnN0IG1vZGFsID0ge307XG5cbiAgLy8gTWFpbiBtb2RhbCBlbGVtZW50XG4gIG1vZGFsLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBtb2RhbC5jb250YWluZXIuY2xhc3NMaXN0LmFkZCgnbW9kYWwnLCAnZmFkZScpO1xuICBtb2RhbC5jb250YWluZXIuaWQgPSBpZDtcblxuICAvLyBNb2RhbCBkaWFsb2cgZWxlbWVudFxuICBtb2RhbC5kaWFsb2cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuZGlhbG9nLmNsYXNzTGlzdC5hZGQoJ21vZGFsLWRpYWxvZycpO1xuXG4gIC8vIE1vZGFsIGNvbnRlbnQgZWxlbWVudFxuICBtb2RhbC5jb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIG1vZGFsLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnbW9kYWwtY29udGVudCcpO1xuXG4gIC8vIE1vZGFsIGhlYWRlciBlbGVtZW50XG4gIG1vZGFsLmhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBtb2RhbC5oZWFkZXIuY2xhc3NMaXN0LmFkZCgnbW9kYWwtaGVhZGVyJyk7XG5cbiAgLy8gTW9kYWwgdGl0bGUgZWxlbWVudFxuICBpZiAoY29uZmlybVRpdGxlKSB7XG4gICAgbW9kYWwudGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoNCcpO1xuICAgIG1vZGFsLnRpdGxlLmNsYXNzTGlzdC5hZGQoJ21vZGFsLXRpdGxlJyk7XG4gICAgbW9kYWwudGl0bGUuaW5uZXJIVE1MID0gY29uZmlybVRpdGxlO1xuICB9XG5cbiAgLy8gTW9kYWwgY2xvc2UgYnV0dG9uIGljb25cbiAgbW9kYWwuY2xvc2VJY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIG1vZGFsLmNsb3NlSWNvbi5jbGFzc0xpc3QuYWRkKCdjbG9zZScpO1xuICBtb2RhbC5jbG9zZUljb24uc2V0QXR0cmlidXRlKCd0eXBlJywgJ2J1dHRvbicpO1xuICBtb2RhbC5jbG9zZUljb24uZGF0YXNldC5kaXNtaXNzID0gJ21vZGFsJztcbiAgbW9kYWwuY2xvc2VJY29uLmlubmVySFRNTCA9ICfDlyc7XG5cbiAgLy8gTW9kYWwgYm9keSBlbGVtZW50XG4gIG1vZGFsLmJvZHkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1ib2R5JywgJ3RleHQtbGVmdCcsICdmb250LXdlaWdodC1ub3JtYWwnKTtcblxuICAvLyBNb2RhbCBtZXNzYWdlIGVsZW1lbnRcbiAgbW9kYWwubWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgbW9kYWwubWVzc2FnZS5jbGFzc0xpc3QuYWRkKCdjb25maXJtLW1lc3NhZ2UnKTtcbiAgbW9kYWwubWVzc2FnZS5pbm5lckhUTUwgPSBjb25maXJtTWVzc2FnZTtcblxuICAvLyBNb2RhbCBmb290ZXIgZWxlbWVudFxuICBtb2RhbC5mb290ZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgbW9kYWwuZm9vdGVyLmNsYXNzTGlzdC5hZGQoJ21vZGFsLWZvb3RlcicpO1xuXG4gIC8vIE1vZGFsIGNsb3NlIGJ1dHRvbiBlbGVtZW50XG4gIG1vZGFsLmNsb3NlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gIG1vZGFsLmNsb3NlQnV0dG9uLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcbiAgbW9kYWwuY2xvc2VCdXR0b24uY2xhc3NMaXN0LmFkZCgnYnRuJywgJ2J0bi1vdXRsaW5lLXNlY29uZGFyeScsICdidG4tbGcnKTtcbiAgbW9kYWwuY2xvc2VCdXR0b24uZGF0YXNldC5kaXNtaXNzID0gJ21vZGFsJztcbiAgbW9kYWwuY2xvc2VCdXR0b24uaW5uZXJIVE1MID0gY2xvc2VCdXR0b25MYWJlbDtcblxuICAvLyBNb2RhbCBjb25maXJtIGJ1dHRvbiBlbGVtZW50XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgbW9kYWwuY29uZmlybUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnYnV0dG9uJyk7XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24uY2xhc3NMaXN0LmFkZCgnYnRuJywgY29uZmlybUJ1dHRvbkNsYXNzLCAnYnRuLWxnJywgJ2J0bi1jb25maXJtLXN1Ym1pdCcpO1xuICBtb2RhbC5jb25maXJtQnV0dG9uLmRhdGFzZXQuZGlzbWlzcyA9ICdtb2RhbCc7XG4gIG1vZGFsLmNvbmZpcm1CdXR0b24uaW5uZXJIVE1MID0gY29uZmlybUJ1dHRvbkxhYmVsO1xuXG4gIC8vIENvbnN0cnVjdGluZyB0aGUgbW9kYWxcbiAgaWYgKGNvbmZpcm1UaXRsZSkge1xuICAgIG1vZGFsLmhlYWRlci5hcHBlbmQobW9kYWwudGl0bGUsIG1vZGFsLmNsb3NlSWNvbik7XG4gIH0gZWxzZSB7XG4gICAgbW9kYWwuaGVhZGVyLmFwcGVuZENoaWxkKG1vZGFsLmNsb3NlSWNvbik7XG4gIH1cblxuICBtb2RhbC5ib2R5LmFwcGVuZENoaWxkKG1vZGFsLm1lc3NhZ2UpO1xuICBtb2RhbC5mb290ZXIuYXBwZW5kKG1vZGFsLmNsb3NlQnV0dG9uLCAuLi5jdXN0b21CdXR0b25zLCBtb2RhbC5jb25maXJtQnV0dG9uKTtcbiAgbW9kYWwuY29udGVudC5hcHBlbmQobW9kYWwuaGVhZGVyLCBtb2RhbC5ib2R5LCBtb2RhbC5mb290ZXIpO1xuICBtb2RhbC5kaWFsb2cuYXBwZW5kQ2hpbGQobW9kYWwuY29udGVudCk7XG4gIG1vZGFsLmNvbnRhaW5lci5hcHBlbmRDaGlsZChtb2RhbC5kaWFsb2cpO1xuXG4gIHJldHVybiBtb2RhbDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi9cblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4vKipcbiAqIENsYXNzIFNob3djYXNlQ2FyZENsb3NlRXh0ZW5zaW9uIGlzIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgaGVscGVyIGJsb2NrIGNsb3NpbmcgYmVoYXZpb3JcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hvd2Nhc2VDYXJkQ2xvc2VFeHRlbnNpb24ge1xuICAvKipcbiAgICogRXh0ZW5kIGhlbHBlciBibG9jay5cbiAgICpcbiAgICogQHBhcmFtIHtTaG93Y2FzZUNhcmR9IGhlbHBlckJsb2NrXG4gICAqL1xuICBleHRlbmQoaGVscGVyQmxvY2spIHtcbiAgICBjb25zdCBjb250YWluZXIgPSBoZWxwZXJCbG9jay5nZXRDb250YWluZXIoKTtcbiAgICBjb250YWluZXIub24oJ2NsaWNrJywgJy5qcy1yZW1vdmUtaGVscGVyLWJsb2NrJywgKGV2dCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZSgpO1xuXG4gICAgICBjb25zdCAkYnRuID0gJChldnQudGFyZ2V0KTtcbiAgICAgIGNvbnN0IHVybCA9ICRidG4uZGF0YSgnY2xvc2VVcmwnKTtcbiAgICAgIGNvbnN0IGNhcmROYW1lID0gJGJ0bi5kYXRhKCdjYXJkTmFtZScpO1xuXG4gICAgICBpZiAodXJsKSB7XG4gICAgICAgIC8vIG5vdGlmeSB0aGUgY2FyZCB3YXMgY2xvc2VkXG4gICAgICAgICQucG9zdChcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xvc2U6IDEsXG4gICAgICAgICAgICBuYW1lOiBjYXJkTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDbGFzcyBTaG93Y2FzZUNhcmQgaXMgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIGV2ZW50cyByZWxhdGVkIHdpdGggc2hvd2Nhc2UgY2FyZC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hvd2Nhc2VDYXJkIHtcbiAgLyoqXG4gICAqIFNob3djYXNlIGNhcmQgaWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZFxuICAgKi9cbiAgY29uc3RydWN0b3IoaWQpIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy4kY29udGFpbmVyID0gJChgIyR7dGhpcy5pZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2hvd2Nhc2UgY2FyZCBjb250YWluZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtqUXVlcnl9XG4gICAqL1xuICBnZXRDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuJGNvbnRhaW5lcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRlbmQgc2hvd2Nhc2UgY2FyZCB3aXRoIGV4dGVybmFsIGV4dGVuc2lvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBleHRlbnNpb25cbiAgICovXG4gIGFkZEV4dGVuc2lvbihleHRlbnNpb24pIHtcbiAgICBleHRlbnNpb24uZXh0ZW5kKHRoaXMpO1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmNvbnN0IHskfSA9IHdpbmRvdztcblxuLyoqXG4gKiBDb21wb25lbnQgd2hpY2ggYWxsb3dzIHRvIGNvcHkgcmVndWxhciB0ZXh0IHRvIHVybCBmcmllbmRseSB0ZXh0XG4gKlxuICogVXNhZ2UgZXhhbXBsZSBpbiB0ZW1wbGF0ZTpcbiAqXG4gKiA8aW5wdXQgbmFtZT1cInNvdXJjZS1pbnB1dFwiXG4gKiAgICAgICAgY2xhc3M9XCJqcy1saW5rLXJld3JpdGUtY29waWVyLXNvdXJjZVwiPiAvLyBUaGUgb3JpZ2luYWwgdGV4dCB3aWxsIGJlIHRha2VuIGZyb20gdGhpcyBlbGVtZW50XG4gKiA8aW5wdXQgbmFtZT1cImRlc3RpbmF0aW9uLWlucHV0XCJcbiAqICAgICAgICBjbGFzcz1cImpzLWxpbmstcmV3cml0ZS1jb3BpZXItZGVzdGluYXRpb25cIj4gLy8gTW9kaWZpZWQgdGV4dCB3aWxsIGJlIGFkZGVkIHRvIHRoaXMgaW5wdXRcbiAqXG4gKiBpbiBqYXZhc2NyaXB0OlxuICpcbiAqIHRleHRUb0xpbmtSZXdyaXRlQ29waWVyKHtcbiAqICAgc291cmNlRWxlbWVudFNlbGVjdG9yOiAnLmpzLWxpbmstcmV3cml0ZS1jb3BpZXItc291cmNlJ1xuICogICBkZXN0aW5hdGlvbkVsZW1lbnRTZWxlY3RvcjogJy5qcy1saW5rLXJld3JpdGUtY29waWVyLWRlc3RpbmF0aW9uJyxcbiAqIH0pO1xuICpcbiAqIElmIHRoZSBzb3VyY2UtaW5wdXQgaGFzIHZhbHVlIFwidGVzdCBuYW1lXCIgdGhlIGxpbmsgcmV3cml0ZSB2YWx1ZSB3aWxsIGJlIFwidGVzdC1uYW1lXCIuXG4gKiBJZiB0aGUgc291cmNlLWlucHV0IGhhcyB2YWx1ZSBcInRlc3QgbmFtZSAjJFwiIGxpbmsgcmV3cml0ZSB3aWxsIGJlIFwidGVzdC1uYW1lLVwiIHNpbmNlICMkXG4gKiBhcmUgdW4gYWxsb3dlZCBjaGFyYWN0ZXJzIGluIHVybC5cbiAqXG4gKiBZb3UgY2FuIGFsc28gcGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gY2hhbmdlIHRoZSBldmVudCBuYW1lLCBvciBlbmNvZGluZyBmb3JtYXQ6XG4gKlxuICogdGV4dFRvTGlua1Jld3JpdGVDb3BpZXIoe1xuICogICBzb3VyY2VFbGVtZW50U2VsZWN0b3I6ICcuanMtbGluay1yZXdyaXRlLWNvcGllci1zb3VyY2UnXG4gKiAgIGRlc3RpbmF0aW9uRWxlbWVudFNlbGVjdG9yOiAnLmpzLWxpbmstcmV3cml0ZS1jb3BpZXItZGVzdGluYXRpb24nLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgZXZlbnROYW1lOiAnY2hhbmdlJywgLy8gZGVmYXVsdCBpcyAnaW5wdXQnXG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqL1xuY29uc3QgdGV4dFRvTGlua1Jld3JpdGVDb3BpZXIgPSAoXG4gIHtcbiAgICBzb3VyY2VFbGVtZW50U2VsZWN0b3IsXG4gICAgZGVzdGluYXRpb25FbGVtZW50U2VsZWN0b3IsXG4gICAgb3B0aW9ucyA9IHtldmVudE5hbWU6ICdpbnB1dCd9LFxuICB9LFxuKSA9PiB7XG4gICQoZG9jdW1lbnQpLm9uKG9wdGlvbnMuZXZlbnROYW1lLCBgJHtzb3VyY2VFbGVtZW50U2VsZWN0b3J9YCwgKGV2ZW50KSA9PiB7XG4gICAgJChkZXN0aW5hdGlvbkVsZW1lbnRTZWxlY3RvcikudmFsKHdpbmRvdy5zdHIydXJsKCQoZXZlbnQuY3VycmVudFRhcmdldCkudmFsKCksICdVVEYtOCcpKTtcbiAgfSk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCB0ZXh0VG9MaW5rUmV3cml0ZUNvcGllcjtcbiIsIjwhLS0qKlxuICogQ29weXJpZ2h0IHNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBQcmVzdGFTaG9wIGlzIGFuIEludGVybmF0aW9uYWwgUmVnaXN0ZXJlZCBUcmFkZW1hcmsgJiBQcm9wZXJ0eSBvZiBQcmVzdGFTaG9wIFNBXG4gKlxuICogTk9USUNFIE9GIExJQ0VOU0VcbiAqXG4gKiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIE9wZW4gU29mdHdhcmUgTGljZW5zZSAoT1NMIDMuMClcbiAqIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoaXMgcGFja2FnZSBpbiB0aGUgZmlsZSBMSUNFTlNFLm1kLlxuICogSXQgaXMgYWxzbyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhpcyBVUkw6XG4gKiBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjBcbiAqIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvXG4gKiBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIsIHBsZWFzZSBzZW5kIGFuIGVtYWlsXG4gKiB0byBsaWNlbnNlQHByZXN0YXNob3AuY29tIHNvIHdlIGNhbiBzZW5kIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuXG4gKlxuICogRElTQ0xBSU1FUlxuICpcbiAqIERvIG5vdCBlZGl0IG9yIGFkZCB0byB0aGlzIGZpbGUgaWYgeW91IHdpc2ggdG8gdXBncmFkZSBQcmVzdGFTaG9wIHRvIG5ld2VyXG4gKiB2ZXJzaW9ucyBpbiB0aGUgZnV0dXJlLiBJZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgUHJlc3RhU2hvcCBmb3IgeW91clxuICogbmVlZHMgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZG9jcy5wcmVzdGFzaG9wLmNvbS8gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQGF1dGhvciAgICBQcmVzdGFTaG9wIFNBIGFuZCBDb250cmlidXRvcnMgPGNvbnRhY3RAcHJlc3Rhc2hvcC5jb20+XG4gKiBAY29weXJpZ2h0IFNpbmNlIDIwMDcgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzXG4gKiBAbGljZW5zZSAgIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvT1NMLTMuMCBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKi0tPlxuPHRlbXBsYXRlPlxuICA8ZGl2IGlkPVwic2VycFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZXJwLXByZXZpZXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJwLXRpdGxlXCI+XG4gICAgICAgIHt7IGRpc3BsYXllZFRpdGxlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJwLXVybFwiPlxuICAgICAgICB7eyB1cmwgfX08c3BhbiBjbGFzcz1cInNlcnAtYXJyb3dcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VycC1kZXNjcmlwdGlvblwiPlxuICAgICAgICB7eyBkaXNwbGF5ZWREZXNjcmlwdGlvbiB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbiAgZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6ICdTZXJwJyxcbiAgICBwcm9wczoge1xuICAgICAgdXJsOiB7XG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgZGVmYXVsdDogJ2h0dHBzOi8vd3d3LmV4YW1wbGUuY29tLycsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiAnJyxcbiAgICAgIH0sXG4gICAgICB0aXRsZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGRlZmF1bHQ6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbXB1dGVkOiB7XG4gICAgICBkaXNwbGF5ZWRUaXRsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGl0bGUubGVuZ3RoID4gNzApIHtcbiAgICAgICAgICByZXR1cm4gYCR7dGhpcy50aXRsZS5zdWJzdHJpbmcoMCwgNzApfS4uLmA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50aXRsZTtcbiAgICAgIH0sXG4gICAgICBkaXNwbGF5ZWREZXNjcmlwdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRpb24ubGVuZ3RoID4gMTUwKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3RoaXMuZGVzY3JpcHRpb24uc3Vic3RyaW5nKDAsIDE1MCl9Li4uYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uO1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuPC9zY3JpcHQ+XG5cbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHR5cGU9XCJ0ZXh0L3Njc3NcIiBzY29wZWQ+XG4gICAgLnNlcnAtcHJldmlldyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNlN2U3ZTc7XG4gICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIG1heC13aWR0aDogNzAwcHg7XG5cbiAgICAgICAgLnNlcnAtYXJyb3cge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiKDAsIDEwMiwgMzMpO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA0cHg7XG4gICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMTAyLCAzMyk7XG4gICAgICAgICAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDVweDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2IoMTI4LCAxMjgsIDEyOCk7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VycC10aXRsZSB7XG4gICAgICAgICAgICBjb2xvcjogIzFBMERBQjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgcmVndWxhcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VycC11cmwge1xuICAgICAgICAgICAgY29sb3I6ICMwMDY2MjE7XG4gICAgICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHJlZ3VsYXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZXJwLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNTQ1NDU0O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCByZWd1bGFyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG4gICAgfVxuPC9zdHlsZT5cbiIsIm1vZHVsZS5leHBvcnRzID0geyBcImRlZmF1bHRcIjogcmVxdWlyZShcImNvcmUtanMvbGlicmFyeS9mbi9hcnJheS9mcm9tXCIpLCBfX2VzTW9kdWxlOiB0cnVlIH07IiwibW9kdWxlLmV4cG9ydHMgPSB7IFwiZGVmYXVsdFwiOiByZXF1aXJlKFwiY29yZS1qcy9saWJyYXJ5L2ZuL29iamVjdC9kZWZpbmUtcHJvcGVydHlcIiksIF9fZXNNb2R1bGU6IHRydWUgfTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKFwiLi4vY29yZS1qcy9vYmplY3QvZGVmaW5lLXByb3BlcnR5XCIpO1xuXG52YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgICBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTtcbiAgICByZXR1cm4gQ29uc3RydWN0b3I7XG4gIH07XG59KCk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbnZhciBfZnJvbSA9IHJlcXVpcmUoXCIuLi9jb3JlLWpzL2FycmF5L2Zyb21cIik7XG5cbnZhciBfZnJvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9mcm9tKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBBcnJheShhcnIubGVuZ3RoKTsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgYXJyMltpXSA9IGFycltpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyMjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKDAsIF9mcm9tMi5kZWZhdWx0KShhcnIpO1xuICB9XG59OyIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2LnN0cmluZy5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9lczYuYXJyYXkuZnJvbScpO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGVzL19jb3JlJykuQXJyYXkuZnJvbTtcbiIsInJlcXVpcmUoJy4uLy4uL21vZHVsZXMvZXM2Lm9iamVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnZhciAkT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlcy9fY29yZScpLk9iamVjdDtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykge1xuICByZXR1cm4gJE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpdCwga2V5LCBkZXNjKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL19pcy1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7XG4gIHJldHVybiBpdDtcbn07XG4iLCIvLyBmYWxzZSAtPiBBcnJheSNpbmRleE9mXG4vLyB0cnVlICAtPiBBcnJheSNpbmNsdWRlc1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4vX3RvLWxlbmd0aCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4vX3RvLWFic29sdXRlLWluZGV4Jyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0lPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTtcbiAgICB2YXIgdmFsdWU7XG4gICAgLy8gQXJyYXkjaW5jbHVkZXMgdXNlcyBTYW1lVmFsdWVaZXJvIGVxdWFsaXR5IGFsZ29yaXRobVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICAgICAgaWYgKHZhbHVlICE9IHZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBBcnJheSNpbmRleE9mIGlnbm9yZXMgaG9sZXMsIEFycmF5I2luY2x1ZGVzIC0gbm90XG4gICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykge1xuICAgICAgaWYgKE9baW5kZXhdID09PSBlbCkgcmV0dXJuIElTX0lOQ0xVREVTIHx8IGluZGV4IHx8IDA7XG4gICAgfSByZXR1cm4gIUlTX0lOQ0xVREVTICYmIC0xO1xuICB9O1xufTtcbiIsIi8vIGdldHRpbmcgdGFnIGZyb20gMTkuMS4zLjYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZygpXG52YXIgY29mID0gcmVxdWlyZSgnLi9fY29mJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIEFSRyA9IGNvZihmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgVCwgQjtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKFQgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRBRykpID09ICdzdHJpbmcnID8gVFxuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQVJHID8gY29mKE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKEIgPSBjb2YoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiBCO1xufTtcbiIsInZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdG9TdHJpbmcuY2FsbChpdCkuc2xpY2UoOCwgLTEpO1xufTtcbiIsInZhciBjb3JlID0gbW9kdWxlLmV4cG9ydHMgPSB7IHZlcnNpb246ICcyLjYuMTEnIH07XG5pZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgaW5kZXgsIHZhbHVlKSB7XG4gIGlmIChpbmRleCBpbiBvYmplY3QpICRkZWZpbmVQcm9wZXJ0eS5mKG9iamVjdCwgaW5kZXgsIGNyZWF0ZURlc2MoMCwgdmFsdWUpKTtcbiAgZWxzZSBvYmplY3RbaW5kZXhdID0gdmFsdWU7XG59O1xuIiwiLy8gb3B0aW9uYWwgLyBzaW1wbGUgY29udGV4dCBiaW5kaW5nXG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi9fYS1mdW5jdGlvbicpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZm4sIHRoYXQsIGxlbmd0aCkge1xuICBhRnVuY3Rpb24oZm4pO1xuICBpZiAodGhhdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZm47XG4gIHN3aXRjaCAobGVuZ3RoKSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiLy8gNy4yLjEgUmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudClcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uICBcIiArIGl0KTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHlcbm1vZHVsZS5leHBvcnRzID0gIXJlcXVpcmUoJy4vX2ZhaWxzJykoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG52YXIgZG9jdW1lbnQgPSByZXF1aXJlKCcuL19nbG9iYWwnKS5kb2N1bWVudDtcbi8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRVxudmFyIGlzID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCIvLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IChcbiAgJ2NvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZidcbikuc3BsaXQoJywnKTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuL19nbG9iYWwnKTtcbnZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGN0eCA9IHJlcXVpcmUoJy4vX2N0eCcpO1xudmFyIGhpZGUgPSByZXF1aXJlKCcuL19oaWRlJyk7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkge1xuICB2YXIgSVNfRk9SQ0VEID0gdHlwZSAmICRleHBvcnQuRjtcbiAgdmFyIElTX0dMT0JBTCA9IHR5cGUgJiAkZXhwb3J0Lkc7XG4gIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TO1xuICB2YXIgSVNfUFJPVE8gPSB0eXBlICYgJGV4cG9ydC5QO1xuICB2YXIgSVNfQklORCA9IHR5cGUgJiAkZXhwb3J0LkI7XG4gIHZhciBJU19XUkFQID0gdHlwZSAmICRleHBvcnQuVztcbiAgdmFyIGV4cG9ydHMgPSBJU19HTE9CQUwgPyBjb3JlIDogY29yZVtuYW1lXSB8fCAoY29yZVtuYW1lXSA9IHt9KTtcbiAgdmFyIGV4cFByb3RvID0gZXhwb3J0c1tQUk9UT1RZUEVdO1xuICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTtcbiAgdmFyIGtleSwgb3duLCBvdXQ7XG4gIGlmIChJU19HTE9CQUwpIHNvdXJjZSA9IG5hbWU7XG4gIGZvciAoa2V5IGluIHNvdXJjZSkge1xuICAgIC8vIGNvbnRhaW5zIGluIG5hdGl2ZVxuICAgIG93biA9ICFJU19GT1JDRUQgJiYgdGFyZ2V0ICYmIHRhcmdldFtrZXldICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKG93biAmJiBoYXMoZXhwb3J0cywga2V5KSkgY29udGludWU7XG4gICAgLy8gZXhwb3J0IG5hdGl2ZSBvciBwYXNzZWRcbiAgICBvdXQgPSBvd24gPyB0YXJnZXRba2V5XSA6IHNvdXJjZVtrZXldO1xuICAgIC8vIHByZXZlbnQgZ2xvYmFsIHBvbGx1dGlvbiBmb3IgbmFtZXNwYWNlc1xuICAgIGV4cG9ydHNba2V5XSA9IElTX0dMT0JBTCAmJiB0eXBlb2YgdGFyZ2V0W2tleV0gIT0gJ2Z1bmN0aW9uJyA/IHNvdXJjZVtrZXldXG4gICAgLy8gYmluZCB0aW1lcnMgdG8gZ2xvYmFsIGZvciBjYWxsIGZyb20gZXhwb3J0IGNvbnRleHRcbiAgICA6IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKVxuICAgIC8vIHdyYXAgZ2xvYmFsIGNvbnN0cnVjdG9ycyBmb3IgcHJldmVudCBjaGFuZ2UgdGhlbSBpbiBsaWJyYXJ5XG4gICAgOiBJU19XUkFQICYmIHRhcmdldFtrZXldID09IG91dCA/IChmdW5jdGlvbiAoQykge1xuICAgICAgdmFyIEYgPSBmdW5jdGlvbiAoYSwgYiwgYykge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIEMpIHtcbiAgICAgICAgICBzd2l0Y2ggKGFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDKCk7XG4gICAgICAgICAgICBjYXNlIDE6IHJldHVybiBuZXcgQyhhKTtcbiAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDKGEsIGIpO1xuICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpO1xuICAgICAgICB9IHJldHVybiBDLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdO1xuICAgICAgcmV0dXJuIEY7XG4gICAgLy8gbWFrZSBzdGF0aWMgdmVyc2lvbnMgZm9yIHByb3RvdHlwZSBtZXRob2RzXG4gICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0O1xuICAgIC8vIGV4cG9ydCBwcm90byBtZXRob2RzIHRvIGNvcmUuJUNPTlNUUlVDVE9SJS5tZXRob2RzLiVOQU1FJVxuICAgIGlmIChJU19QUk9UTykge1xuICAgICAgKGV4cG9ydHMudmlydHVhbCB8fCAoZXhwb3J0cy52aXJ0dWFsID0ge30pKVtrZXldID0gb3V0O1xuICAgICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLnByb3RvdHlwZS4lTkFNRSVcbiAgICAgIGlmICh0eXBlICYgJGV4cG9ydC5SICYmIGV4cFByb3RvICYmICFleHBQcm90b1trZXldKSBoaWRlKGV4cFByb3RvLCBrZXksIG91dCk7XG4gICAgfVxuICB9XG59O1xuLy8gdHlwZSBiaXRtYXBcbiRleHBvcnQuRiA9IDE7ICAgLy8gZm9yY2VkXG4kZXhwb3J0LkcgPSAyOyAgIC8vIGdsb2JhbFxuJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWNcbiRleHBvcnQuUCA9IDg7ICAgLy8gcHJvdG9cbiRleHBvcnQuQiA9IDE2OyAgLy8gYmluZFxuJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwXG4kZXhwb3J0LlUgPSA2NDsgIC8vIHNhZmVcbiRleHBvcnQuUiA9IDEyODsgLy8gcmVhbCBwcm90byBtZXRob2QgZm9yIGBsaWJyYXJ5YFxubW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiAhIWV4ZWMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbnZhciBnbG9iYWwgPSBtb2R1bGUuZXhwb3J0cyA9IHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lk1hdGggPT0gTWF0aFxuICA/IHdpbmRvdyA6IHR5cGVvZiBzZWxmICE9ICd1bmRlZmluZWQnICYmIHNlbGYuTWF0aCA9PSBNYXRoID8gc2VsZlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgOiBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuaWYgKHR5cGVvZiBfX2cgPT0gJ251bWJlcicpIF9fZyA9IGdsb2JhbDsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZlxuIiwidmFyIGhhc093blByb3BlcnR5ID0ge30uaGFzT3duUHJvcGVydHk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGNyZWF0ZURlc2MgPSByZXF1aXJlKCcuL19wcm9wZXJ0eS1kZXNjJyk7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsInZhciBkb2N1bWVudCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLmRvY3VtZW50O1xubW9kdWxlLmV4cG9ydHMgPSBkb2N1bWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpICYmICFyZXF1aXJlKCcuL19mYWlscycpKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXF1aXJlKCcuL19kb20tY3JlYXRlJykoJ2RpdicpLCAnYScsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9IH0pLmEgIT0gNztcbn0pO1xuIiwiLy8gZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBhbmQgbm9uLWVudW1lcmFibGUgb2xkIFY4IHN0cmluZ3NcbnZhciBjb2YgPSByZXF1aXJlKCcuL19jb2YnKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCkgPyBPYmplY3QgOiBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGNvZihpdCkgPT0gJ1N0cmluZycgPyBpdC5zcGxpdCgnJykgOiBPYmplY3QoaXQpO1xufTtcbiIsIi8vIGNoZWNrIG9uIGRlZmF1bHQgQXJyYXkgaXRlcmF0b3JcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbnZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIEFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCAhPT0gdW5kZWZpbmVkICYmIChJdGVyYXRvcnMuQXJyYXkgPT09IGl0IHx8IEFycmF5UHJvdG9bSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCIvLyBjYWxsIHNvbWV0aGluZyBvbiBpdGVyYXRvciBzdGVwIHdpdGggc2FmZSBjbG9zaW5nIG9uIGVycm9yXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXJhdG9yLCBmbiwgdmFsdWUsIGVudHJpZXMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZW50cmllcyA/IGZuKGFuT2JqZWN0KHZhbHVlKVswXSwgdmFsdWVbMV0pIDogZm4odmFsdWUpO1xuICAvLyA3LjQuNiBJdGVyYXRvckNsb3NlKGl0ZXJhdG9yLCBjb21wbGV0aW9uKVxuICB9IGNhdGNoIChlKSB7XG4gICAgdmFyIHJldCA9IGl0ZXJhdG9yWydyZXR1cm4nXTtcbiAgICBpZiAocmV0ICE9PSB1bmRlZmluZWQpIGFuT2JqZWN0KHJldC5jYWxsKGl0ZXJhdG9yKSk7XG4gICAgdGhyb3cgZTtcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL19vYmplY3QtY3JlYXRlJyk7XG52YXIgZGVzY3JpcHRvciA9IHJlcXVpcmUoJy4vX3Byb3BlcnR5LWRlc2MnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbnJlcXVpcmUoJy4vX2hpZGUnKShJdGVyYXRvclByb3RvdHlwZSwgcmVxdWlyZSgnLi9fd2tzJykoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCkge1xuICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTtcbiAgc2V0VG9TdHJpbmdUYWcoQ29uc3RydWN0b3IsIE5BTUUgKyAnIEl0ZXJhdG9yJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIExJQlJBUlkgPSByZXF1aXJlKCcuL19saWJyYXJ5Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi9fcmVkZWZpbmUnKTtcbnZhciBoaWRlID0gcmVxdWlyZSgnLi9faGlkZScpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4vX2l0ZXJhdG9ycycpO1xudmFyICRpdGVyQ3JlYXRlID0gcmVxdWlyZSgnLi9faXRlci1jcmVhdGUnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4vX3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuL19vYmplY3QtZ3BvJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBCVUdHWSA9ICEoW10ua2V5cyAmJiAnbmV4dCcgaW4gW10ua2V5cygpKTsgLy8gU2FmYXJpIGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxudmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InO1xudmFyIEtFWVMgPSAna2V5cyc7XG52YXIgVkFMVUVTID0gJ3ZhbHVlcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gICRpdGVyQ3JlYXRlKENvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KTtcbiAgdmFyIGdldE1ldGhvZCA9IGZ1bmN0aW9uIChraW5kKSB7XG4gICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07XG4gICAgc3dpdGNoIChraW5kKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07XG4gICAgfSByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTtcbiAgfTtcbiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIERFRl9WQUxVRVMgPSBERUZBVUxUID09IFZBTFVFUztcbiAgdmFyIFZBTFVFU19CVUcgPSBmYWxzZTtcbiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7XG4gIHZhciAkbmF0aXZlID0gcHJvdG9bSVRFUkFUT1JdIHx8IHByb3RvW0ZGX0lURVJBVE9SXSB8fCBERUZBVUxUICYmIHByb3RvW0RFRkFVTFRdO1xuICB2YXIgJGRlZmF1bHQgPSAkbmF0aXZlIHx8IGdldE1ldGhvZChERUZBVUxUKTtcbiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDtcbiAgdmFyICRhbnlOYXRpdmUgPSBOQU1FID09ICdBcnJheScgPyBwcm90by5lbnRyaWVzIHx8ICRuYXRpdmUgOiAkbmF0aXZlO1xuICB2YXIgbWV0aG9kcywga2V5LCBJdGVyYXRvclByb3RvdHlwZTtcbiAgLy8gRml4IG5hdGl2ZVxuICBpZiAoJGFueU5hdGl2ZSkge1xuICAgIEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoJGFueU5hdGl2ZS5jYWxsKG5ldyBCYXNlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkge1xuICAgICAgLy8gU2V0IEBAdG9TdHJpbmdUYWcgdG8gbmF0aXZlIGl0ZXJhdG9yc1xuICAgICAgc2V0VG9TdHJpbmdUYWcoSXRlcmF0b3JQcm90b3R5cGUsIFRBRywgdHJ1ZSk7XG4gICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXNcbiAgICAgIGlmICghTElCUkFSWSAmJiB0eXBlb2YgSXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdICE9ICdmdW5jdGlvbicpIGhpZGUoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SLCByZXR1cm5UaGlzKTtcbiAgICB9XG4gIH1cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGX1ZBTFVFUyAmJiAkbmF0aXZlICYmICRuYXRpdmUubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgVkFMVUVTX0JVRyA9IHRydWU7XG4gICAgJGRlZmF1bHQgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiAkbmF0aXZlLmNhbGwodGhpcyk7IH07XG4gIH1cbiAgLy8gRGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUxJQlJBUlkgfHwgRk9SQ0VEKSAmJiAoQlVHR1kgfHwgVkFMVUVTX0JVRyB8fCAhcHJvdG9bSVRFUkFUT1JdKSkge1xuICAgIGhpZGUocHJvdG8sIElURVJBVE9SLCAkZGVmYXVsdCk7XG4gIH1cbiAgLy8gUGx1ZyBmb3IgbGlicmFyeVxuICBJdGVyYXRvcnNbTkFNRV0gPSAkZGVmYXVsdDtcbiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzO1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoS0VZUyksXG4gICAgICBlbnRyaWVzOiAkZW50cmllc1xuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChrZXkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKCEoa2V5IGluIHByb3RvKSkgcmVkZWZpbmUocHJvdG8sIGtleSwgbWV0aG9kc1trZXldKTtcbiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpO1xuICB9XG4gIHJldHVybiBtZXRob2RzO1xufTtcbiIsInZhciBJVEVSQVRPUiA9IHJlcXVpcmUoJy4vX3drcycpKCdpdGVyYXRvcicpO1xudmFyIFNBRkVfQ0xPU0lORyA9IGZhbHNlO1xuXG50cnkge1xuICB2YXIgcml0ZXIgPSBbN11bSVRFUkFUT1JdKCk7XG4gIHJpdGVyWydyZXR1cm4nXSA9IGZ1bmN0aW9uICgpIHsgU0FGRV9DTE9TSU5HID0gdHJ1ZTsgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWxcbiAgQXJyYXkuZnJvbShyaXRlciwgZnVuY3Rpb24gKCkgeyB0aHJvdyAyOyB9KTtcbn0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjLCBza2lwQ2xvc2luZykge1xuICBpZiAoIXNraXBDbG9zaW5nICYmICFTQUZFX0NMT1NJTkcpIHJldHVybiBmYWxzZTtcbiAgdmFyIHNhZmUgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICB2YXIgYXJyID0gWzddO1xuICAgIHZhciBpdGVyID0gYXJyW0lURVJBVE9SXSgpO1xuICAgIGl0ZXIubmV4dCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHsgZG9uZTogc2FmZSA9IHRydWUgfTsgfTtcbiAgICBhcnJbSVRFUkFUT1JdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gaXRlcjsgfTtcbiAgICBleGVjKGFycik7XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gc2FmZTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB0cnVlO1xuIiwiLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pXG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuL19hbi1vYmplY3QnKTtcbnZhciBkUHMgPSByZXF1aXJlKCcuL19vYmplY3QtZHBzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG52YXIgSUVfUFJPVE8gPSByZXF1aXJlKCcuL19zaGFyZWQta2V5JykoJ0lFX1BST1RPJyk7XG52YXIgRW1wdHkgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBpZnJhbWUgT2JqZWN0IHdpdGggY2xlYXJlZCBwcm90b3R5cGVcbnZhciBjcmVhdGVEaWN0ID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gcmVxdWlyZSgnLi9fZG9tLWNyZWF0ZScpKCdpZnJhbWUnKTtcbiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHZhciBsdCA9ICc8JztcbiAgdmFyIGd0ID0gJz4nO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICByZXF1aXJlKCcuL19odG1sJykuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybFxuICAvLyBjcmVhdGVEaWN0ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuT2JqZWN0O1xuICAvLyBodG1sLnJlbW92ZUNoaWxkKGlmcmFtZSk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUobHQgKyAnc2NyaXB0JyArIGd0ICsgJ2RvY3VtZW50LkY9T2JqZWN0JyArIGx0ICsgJy9zY3JpcHQnICsgZ3QpO1xuICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICBjcmVhdGVEaWN0ID0gaWZyYW1lRG9jdW1lbnQuRjtcbiAgd2hpbGUgKGktLSkgZGVsZXRlIGNyZWF0ZURpY3RbUFJPVE9UWVBFXVtlbnVtQnVnS2V5c1tpXV07XG4gIHJldHVybiBjcmVhdGVEaWN0KCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKE8gIT09IG51bGwpIHtcbiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7XG4gICAgcmVzdWx0ID0gbmV3IEVtcHR5KCk7XG4gICAgRW1wdHlbUFJPVE9UWVBFXSA9IG51bGw7XG4gICAgLy8gYWRkIFwiX19wcm90b19fXCIgZm9yIE9iamVjdC5nZXRQcm90b3R5cGVPZiBwb2x5ZmlsbFxuICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPO1xuICB9IGVsc2UgcmVzdWx0ID0gY3JlYXRlRGljdCgpO1xuICByZXR1cm4gUHJvcGVydGllcyA9PT0gdW5kZWZpbmVkID8gcmVzdWx0IDogZFBzKHJlc3VsdCwgUHJvcGVydGllcyk7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgSUU4X0RPTV9ERUZJTkUgPSByZXF1aXJlKCcuL19pZTgtZG9tLWRlZmluZScpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi9fdG8tcHJpbWl0aXZlJyk7XG52YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbmV4cG9ydHMuZiA9IHJlcXVpcmUoJy4vX2Rlc2NyaXB0b3JzJykgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGFuT2JqZWN0KEF0dHJpYnV0ZXMpO1xuICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7XG4gICAgcmV0dXJuIGRQKE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH1cbiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTtcbiAgaWYgKCd2YWx1ZScgaW4gQXR0cmlidXRlcykgT1tQXSA9IEF0dHJpYnV0ZXMudmFsdWU7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBkUCA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi9fYW4tb2JqZWN0Jyk7XG52YXIgZ2V0S2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fZGVzY3JpcHRvcnMnKSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIga2V5cyA9IGdldEtleXMoUHJvcGVydGllcyk7XG4gIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgdmFyIGkgPSAwO1xuICB2YXIgUDtcbiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7XG4gIHJldHVybiBPO1xufTtcbiIsIi8vIDE5LjEuMi45IC8gMTUuMi4zLjIgT2JqZWN0LmdldFByb3RvdHlwZU9mKE8pXG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL190by1vYmplY3QnKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcbnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mIHx8IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90byA6IG51bGw7XG59O1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4vX2hhcycpO1xudmFyIHRvSU9iamVjdCA9IHJlcXVpcmUoJy4vX3RvLWlvYmplY3QnKTtcbnZhciBhcnJheUluZGV4T2YgPSByZXF1aXJlKCcuL19hcnJheS1pbmNsdWRlcycpKGZhbHNlKTtcbnZhciBJRV9QUk9UTyA9IHJlcXVpcmUoJy4vX3NoYXJlZC1rZXknKSgnSUVfUFJPVE8nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSU9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgaWYgKGtleSAhPSBJRV9QUk9UTykgaGFzKE8sIGtleSkgJiYgcmVzdWx0LnB1c2goa2V5KTtcbiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5c1xuICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgaWYgKGhhcyhPLCBrZXkgPSBuYW1lc1tpKytdKSkge1xuICAgIH5hcnJheUluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCIvLyAxOS4xLjIuMTQgLyAxNS4yLjMuMTQgT2JqZWN0LmtleXMoTylcbnZhciAka2V5cyA9IHJlcXVpcmUoJy4vX29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuL19lbnVtLWJ1Zy1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYml0bWFwLCB2YWx1ZSkge1xuICByZXR1cm4ge1xuICAgIGVudW1lcmFibGU6ICEoYml0bWFwICYgMSksXG4gICAgY29uZmlndXJhYmxlOiAhKGJpdG1hcCAmIDIpLFxuICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLFxuICAgIHZhbHVlOiB2YWx1ZVxuICB9O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9faGlkZScpO1xuIiwidmFyIGRlZiA9IHJlcXVpcmUoJy4vX29iamVjdC1kcCcpLmY7XG52YXIgaGFzID0gcmVxdWlyZSgnLi9faGFzJyk7XG52YXIgVEFHID0gcmVxdWlyZSgnLi9fd2tzJykoJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBzdGF0ID8gaXQgOiBpdC5wcm90b3R5cGUsIFRBRykpIGRlZihpdCwgVEFHLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHRhZyB9KTtcbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ2tleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuL191aWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gc2hhcmVkW2tleV0gfHwgKHNoYXJlZFtrZXldID0gdWlkKGtleSkpO1xufTtcbiIsInZhciBjb3JlID0gcmVxdWlyZSgnLi9fY29yZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpO1xudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgKGdsb2JhbFtTSEFSRURdID0ge30pO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gc3RvcmVba2V5XSB8fCAoc3RvcmVba2V5XSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHt9KTtcbn0pKCd2ZXJzaW9ucycsIFtdKS5wdXNoKHtcbiAgdmVyc2lvbjogY29yZS52ZXJzaW9uLFxuICBtb2RlOiByZXF1aXJlKCcuL19saWJyYXJ5JykgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4vX3RvLWludGVnZXInKTtcbnZhciBkZWZpbmVkID0gcmVxdWlyZSgnLi9fZGVmaW5lZCcpO1xuLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0XG4vLyBmYWxzZSAtPiBTdHJpbmcjY29kZVBvaW50QXRcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFRPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykge1xuICAgIHZhciBzID0gU3RyaW5nKGRlZmluZWQodGhhdCkpO1xuICAgIHZhciBpID0gdG9JbnRlZ2VyKHBvcyk7XG4gICAgdmFyIGwgPSBzLmxlbmd0aDtcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAoaSA8IDAgfHwgaSA+PSBsKSByZXR1cm4gVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgYSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4gYSA8IDB4ZDgwMCB8fCBhID4gMHhkYmZmIHx8IGkgKyAxID09PSBsIHx8IChiID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgYiA+IDB4ZGZmZlxuICAgICAgPyBUT19TVFJJTkcgPyBzLmNoYXJBdChpKSA6IGFcbiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcbiIsInZhciB0b0ludGVnZXIgPSByZXF1aXJlKCcuL190by1pbnRlZ2VyJyk7XG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG1heChpbmRleCArIGxlbmd0aCwgMCkgOiBtaW4oaW5kZXgsIGxlbmd0aCk7XG59O1xuIiwiLy8gNy4xLjQgVG9JbnRlZ2VyXG52YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXNOYU4oaXQgPSAraXQpID8gMCA6IChpdCA+IDAgPyBmbG9vciA6IGNlaWwpKGl0KTtcbn07XG4iLCIvLyB0byBpbmRleGVkIG9iamVjdCwgdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJT2JqZWN0ID0gcmVxdWlyZSgnLi9faW9iamVjdCcpO1xudmFyIGRlZmluZWQgPSByZXF1aXJlKCcuL19kZWZpbmVkJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gSU9iamVjdChkZWZpbmVkKGl0KSk7XG59O1xuIiwiLy8gNy4xLjE1IFRvTGVuZ3RoXG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi9fdG8taW50ZWdlcicpO1xudmFyIG1pbiA9IE1hdGgubWluO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTFcbn07XG4iLCIvLyA3LjEuMTMgVG9PYmplY3QoYXJndW1lbnQpXG52YXIgZGVmaW5lZCA9IHJlcXVpcmUoJy4vX2RlZmluZWQnKTtcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoZGVmaW5lZChpdCkpO1xufTtcbiIsIi8vIDcuMS4xIFRvUHJpbWl0aXZlKGlucHV0IFssIFByZWZlcnJlZFR5cGVdKVxudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi9faXMtb2JqZWN0Jyk7XG4vLyBpbnN0ZWFkIG9mIHRoZSBFUzYgc3BlYyB2ZXJzaW9uLCB3ZSBkaWRuJ3QgaW1wbGVtZW50IEBAdG9QcmltaXRpdmUgY2FzZVxuLy8gYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgLSBmbGFnIC0gcHJlZmVycmVkIHR5cGUgaXMgYSBzdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gaXQ7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHR5cGVvZiAoZm4gPSBpdC52YWx1ZU9mKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7XG4gIGlmICghUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDtcbiAgdGhyb3cgVHlwZUVycm9yKFwiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlXCIpO1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcHggPSBNYXRoLnJhbmRvbSgpO1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiAnU3ltYm9sKCcuY29uY2F0KGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXksICcpXycsICgrK2lkICsgcHgpLnRvU3RyaW5nKDM2KSk7XG59O1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi9fc2hhcmVkJykoJ3drcycpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4vX3VpZCcpO1xudmFyIFN5bWJvbCA9IHJlcXVpcmUoJy4vX2dsb2JhbCcpLlN5bWJvbDtcbnZhciBVU0VfU1lNQk9MID0gdHlwZW9mIFN5bWJvbCA9PSAnZnVuY3Rpb24nO1xuXG52YXIgJGV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBzdG9yZVtuYW1lXSB8fCAoc3RvcmVbbmFtZV0gPVxuICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7XG59O1xuXG4kZXhwb3J0cy5zdG9yZSA9IHN0b3JlO1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuL19jbGFzc29mJyk7XG52YXIgSVRFUkFUT1IgPSByZXF1aXJlKCcuL193a3MnKSgnaXRlcmF0b3InKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuL19pdGVyYXRvcnMnKTtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9fY29yZScpLmdldEl0ZXJhdG9yTWV0aG9kID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCAhPSB1bmRlZmluZWQpIHJldHVybiBpdFtJVEVSQVRPUl1cbiAgICB8fCBpdFsnQEBpdGVyYXRvciddXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY3R4ID0gcmVxdWlyZSgnLi9fY3R4Jyk7XG52YXIgJGV4cG9ydCA9IHJlcXVpcmUoJy4vX2V4cG9ydCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi9fdG8tb2JqZWN0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4vX2l0ZXItY2FsbCcpO1xudmFyIGlzQXJyYXlJdGVyID0gcmVxdWlyZSgnLi9faXMtYXJyYXktaXRlcicpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi9fdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuL19jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyRm4gPSByZXF1aXJlKCcuL2NvcmUuZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19pdGVyLWRldGVjdCcpKGZ1bmN0aW9uIChpdGVyKSB7IEFycmF5LmZyb20oaXRlcik7IH0pLCAnQXJyYXknLCB7XG4gIC8vIDIyLjEuMi4xIEFycmF5LmZyb20oYXJyYXlMaWtlLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZClcbiAgZnJvbTogZnVuY3Rpb24gZnJvbShhcnJheUxpa2UgLyogLCBtYXBmbiA9IHVuZGVmaW5lZCwgdGhpc0FyZyA9IHVuZGVmaW5lZCAqLykge1xuICAgIHZhciBPID0gdG9PYmplY3QoYXJyYXlMaWtlKTtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gICAgdmFyIGFMZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBtYXBmbiA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICAgIHZhciBtYXBwaW5nID0gbWFwZm4gIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBpdGVyRm4gPSBnZXRJdGVyRm4oTyk7XG4gICAgdmFyIGxlbmd0aCwgcmVzdWx0LCBzdGVwLCBpdGVyYXRvcjtcbiAgICBpZiAobWFwcGluZykgbWFwZm4gPSBjdHgobWFwZm4sIGFMZW4gPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2VcbiAgICBpZiAoaXRlckZuICE9IHVuZGVmaW5lZCAmJiAhKEMgPT0gQXJyYXkgJiYgaXNBcnJheUl0ZXIoaXRlckZuKSkpIHtcbiAgICAgIGZvciAoaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChPKSwgcmVzdWx0ID0gbmV3IEMoKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOyBpbmRleCsrKSB7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgICAgZm9yIChyZXN1bHQgPSBuZXcgQyhsZW5ndGgpOyBsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgICBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGluZGV4LCBtYXBwaW5nID8gbWFwZm4oT1tpbmRleF0sIGluZGV4KSA6IE9baW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwidmFyICRleHBvcnQgPSByZXF1aXJlKCcuL19leHBvcnQnKTtcbi8vIDE5LjEuMi40IC8gMTUuMi4zLjYgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpXG4kZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFyZXF1aXJlKCcuL19kZXNjcmlwdG9ycycpLCAnT2JqZWN0JywgeyBkZWZpbmVQcm9wZXJ0eTogcmVxdWlyZSgnLi9fb2JqZWN0LWRwJykuZiB9KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkYXQgPSByZXF1aXJlKCcuL19zdHJpbmctYXQnKSh0cnVlKTtcblxuLy8gMjEuMS4zLjI3IFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl0oKVxucmVxdWlyZSgnLi9faXRlci1kZWZpbmUnKShTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldFxuICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuLy8gMjEuMS41LjIuMSAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKVxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgTyA9IHRoaXMuX3Q7XG4gIHZhciBpbmRleCA9IHRoaXMuX2k7XG4gIHZhciBwb2ludDtcbiAgaWYgKGluZGV4ID49IE8ubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gJGF0KE8sIGluZGV4KTtcbiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9jc3NXaXRoTWFwcGluZ1RvU3RyaW5nLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuc2VycC1wcmV2aWV3W2RhdGEtdi02NmM0YzVhYl17bWFyZ2luLXRvcDoxNXB4O21hcmdpbi1ib3R0b206MTVweDtib3JkZXItcmFkaXVzOjJweDtib3gtc2hhZG93OjAgMCA1cHggMCByZ2JhKDAsMCwwLDAuMTIpO2JhY2tncm91bmQtY29sb3I6I2ZmZmZmZjtib3JkZXI6c29saWQgMXB4ICNlN2U3ZTc7cGFkZGluZzozMHB4O21heC13aWR0aDo3MDBweH0uc2VycC1wcmV2aWV3IC5zZXJwLWFycm93W2RhdGEtdi02NmM0YzVhYl17Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA2NjIxO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS13aWR0aDowcHg7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwwKTtib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtib3JkZXItbGVmdC13aWR0aDo0cHg7Ym9yZGVyLXJpZ2h0LWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC13aWR0aDo0cHg7Ym9yZGVyLXRvcC1jb2xvcjojMDA2NjIxO2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDo1cHg7Y29sb3I6Z3JheTtjdXJzb3I6ZGVmYXVsdDtmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjtmb250LXNpemU6MTFweDtmb250LXdlaWdodDpib2xkO2hlaWdodDowcHg7cG9zaXRpb246YWJzb2x1dGU7bGluZS1oZWlnaHQ6MjdweDttYXJnaW4tbGVmdDozcHg7bWFyZ2luLXRvcDo2cHg7dGV4dC1hbGlnbjpjZW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt2aXNpYmlsaXR5OnZpc2libGU7d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjBweH0uc2VycC1wcmV2aWV3IC5zZXJwLXRpdGxlW2RhdGEtdi02NmM0YzVhYl17Y29sb3I6IzFBMERBQjtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTphcmlhbCwgcmVndWxhcjtmb250LXNpemU6MThweDtmb250LXdlaWdodDpub3JtYWw7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlvbjpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlcnAtcHJldmlldyAuc2VycC11cmxbZGF0YS12LTY2YzRjNWFiXXtjb2xvcjojMDA2NjIxO2ZvbnQtZmFtaWx5OmFyaWFsLCByZWd1bGFyO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246bGVmdDt2aXNpYmlsaXR5OnZpc2libGV9LnNlcnAtcHJldmlldyAuc2VycC1kZXNjcmlwdGlvbltkYXRhLXYtNjZjNGM1YWJde2NvbG9yOiM1NDU0NTQ7Zm9udC1mYW1pbHk6YXJpYWwsIHJlZ3VsYXI7Zm9udC1zaXplOjEzcHg7Zm9udC13ZWlnaHQ6bm9ybWFsO3RleHQtYWxpZ246bGVmdDt2aXNpYmlsaXR5OnZpc2libGU7d29yZC13cmFwOmJyZWFrLXdvcmR9XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vanMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWVcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBNkVBLCtCQUNJLGVBQWdCLENBQ2hCLGtCQUFtQixDQUNuQixpQkFBa0IsQ0FDbEIscUNBQXlDLENBQ3pDLHdCQUF5QixDQUN6Qix3QkFBeUIsQ0FDekIsWUFBYSxDQUNiLGVBQWdCLENBUnBCLDJDQVdRLDJCQUFvQyxDQUNwQyx5QkFBMEIsQ0FDMUIsdUJBQXdCLENBQ3hCLCtCQUFtQyxDQUNuQyx1QkFBd0IsQ0FDeEIscUJBQXNCLENBQ3RCLGdDQUFvQyxDQUNwQyx3QkFBeUIsQ0FDekIsc0JBQXVCLENBQ3ZCLHdCQUFpQyxDQUNqQyxzQkFBdUIsQ0FDdkIsb0JBQXFCLENBQ3JCLFVBQXlCLENBQ3pCLGNBQWUsQ0FDZiw2QkFBOEIsQ0FDOUIsY0FBZSxDQUNmLGdCQUFpQixDQUNqQixVQUFXLENBQ1gsaUJBQWtCLENBQ2xCLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLGdCQUFpQixDQUNqQixrQkFBbUIsQ0FDbkIsa0JBQW1CLENBQ25CLFNBQVUsQ0FyQ2xCLDJDQXlDUSxhQUFjLENBQ2QsY0FBZSxDQUNmLDBCQUEyQixDQUMzQixjQUFlLENBQ2Ysa0JBQW1CLENBQ25CLGVBQWdCLENBQ2hCLG9CQUFxQixDQUNyQixrQkFBbUIsQ0FDbkIsa0JBQW1CLENBakQzQix5Q0FxRFEsYUFBYyxDQUNkLDBCQUEyQixDQUMzQixjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLGtCQUFtQixDQUNuQixnQkFBaUIsQ0FDakIsZUFBZ0IsQ0FDaEIsa0JBQW1CLENBNUQzQixpREFnRVEsYUFBYyxDQUNkLDBCQUEyQixDQUMzQixjQUFlLENBQ2Ysa0JBQW1CLENBQ25CLGVBQWdCLENBQ2hCLGtCQUFtQixDQUNuQixvQkFBcUJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuXFxuLnNlcnAtcHJldmlldyB7XFxuICAgIG1hcmdpbi10b3A6IDE1cHg7XFxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XFxuICAgIGJvcmRlcjogc29saWQgMXB4ICNlN2U3ZTc7XFxuICAgIHBhZGRpbmc6IDMwcHg7XFxuICAgIG1heC13aWR0aDogNzAwcHg7XFxuXFxuICAgIC5zZXJwLWFycm93IHtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYigwLCAxMDIsIDMzKTtcXG4gICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogNHB4O1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcXG4gICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogNHB4O1xcbiAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogcmdiKDAsIDEwMiwgMzMpO1xcbiAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XFxuICAgICAgICBib3JkZXItdG9wLXdpZHRoOiA1cHg7XFxuICAgICAgICBjb2xvcjogcmdiKDEyOCwgMTI4LCAxMjgpO1xcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCBzYW5zLXNlcmlmO1xcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICAgICAgICBoZWlnaHQ6IDBweDtcXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDNweDtcXG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgICAgICB3aWR0aDogMHB4O1xcbiAgICB9XFxuXFxuICAgIC5zZXJwLXRpdGxlIHtcXG4gICAgICAgIGNvbG9yOiAjMUEwREFCO1xcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgZm9udC1mYW1pbHk6IGFyaWFsLCByZWd1bGFyO1xcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgfVxcblxcbiAgICAuc2VycC11cmwge1xcbiAgICAgICAgY29sb3I6ICMwMDY2MjE7XFxuICAgICAgICBmb250LWZhbWlseTogYXJpYWwsIHJlZ3VsYXI7XFxuICAgICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgfVxcblxcbiAgICAuc2VycC1kZXNjcmlwdGlvbiB7XFxuICAgICAgICBjb2xvcjogIzU0NTQ1NDtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgcmVndWxhcjtcXG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcXG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcXG4gICAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG4vLyBjc3MgYmFzZSBjb2RlLCBpbmplY3RlZCBieSB0aGUgY3NzLWxvYWRlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGZ1bmMtbmFtZXNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTsgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgcmV0dXJuIFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChjb250ZW50LCBcIn1cIik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07IC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBmdW5jLW5hbWVzXG5cblxuICBsaXN0LmkgPSBmdW5jdGlvbiAobW9kdWxlcywgbWVkaWFRdWVyeSwgZGVkdXBlKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIFwiXCJdXTtcbiAgICB9XG5cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuXG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2ldWzBdO1xuXG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG1vZHVsZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19pXSk7XG5cbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZWRpYVF1ZXJ5KSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYVF1ZXJ5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMl0gPSBcIlwiLmNvbmNhdChtZWRpYVF1ZXJ5LCBcIiBhbmQgXCIpLmNvbmNhdChpdGVtWzJdKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gX3NsaWNlZFRvQXJyYXkoYXJyLCBpKSB7IHJldHVybiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB8fCBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB8fCBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkoYXJyLCBpKSB8fCBfbm9uSXRlcmFibGVSZXN0KCk7IH1cblxuZnVuY3Rpb24gX25vbkl0ZXJhYmxlUmVzdCgpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTsgfVxuXG5mdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7IGlmICghbykgcmV0dXJuOyBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB2YXIgbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKS5zbGljZSg4LCAtMSk7IGlmIChuID09PSBcIk9iamVjdFwiICYmIG8uY29uc3RydWN0b3IpIG4gPSBvLmNvbnN0cnVjdG9yLm5hbWU7IGlmIChuID09PSBcIk1hcFwiIHx8IG4gPT09IFwiU2V0XCIpIHJldHVybiBBcnJheS5mcm9tKG8pOyBpZiAobiA9PT0gXCJBcmd1bWVudHNcIiB8fCAvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSkgcmV0dXJuIF9hcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7IH1cblxuZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHsgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7IGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykgeyBhcnIyW2ldID0gYXJyW2ldOyB9IHJldHVybiBhcnIyOyB9XG5cbmZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXlMaW1pdChhcnIsIGkpIHsgaWYgKHR5cGVvZiBTeW1ib2wgPT09IFwidW5kZWZpbmVkXCIgfHwgIShTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KGFycikpKSByZXR1cm47IHZhciBfYXJyID0gW107IHZhciBfbiA9IHRydWU7IHZhciBfZCA9IGZhbHNlOyB2YXIgX2UgPSB1bmRlZmluZWQ7IHRyeSB7IGZvciAodmFyIF9pID0gYXJyW1N5bWJvbC5pdGVyYXRvcl0oKSwgX3M7ICEoX24gPSAoX3MgPSBfaS5uZXh0KCkpLmRvbmUpOyBfbiA9IHRydWUpIHsgX2Fyci5wdXNoKF9zLnZhbHVlKTsgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrOyB9IH0gY2F0Y2ggKGVycikgeyBfZCA9IHRydWU7IF9lID0gZXJyOyB9IGZpbmFsbHkgeyB0cnkgeyBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdICE9IG51bGwpIF9pW1wicmV0dXJuXCJdKCk7IH0gZmluYWxseSB7IGlmIChfZCkgdGhyb3cgX2U7IH0gfSByZXR1cm4gX2FycjsgfVxuXG5mdW5jdGlvbiBfYXJyYXlXaXRoSG9sZXMoYXJyKSB7IGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7IH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pIHtcbiAgdmFyIF9pdGVtID0gX3NsaWNlZFRvQXJyYXkoaXRlbSwgNCksXG4gICAgICBjb250ZW50ID0gX2l0ZW1bMV0sXG4gICAgICBjc3NNYXBwaW5nID0gX2l0ZW1bM107XG5cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHZhciBzb3VyY2VVUkxzID0gY3NzTWFwcGluZy5zb3VyY2VzLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICByZXR1cm4gXCIvKiMgc291cmNlVVJMPVwiLmNvbmNhdChjc3NNYXBwaW5nLnNvdXJjZVJvb3QgfHwgXCJcIikuY29uY2F0KHNvdXJjZSwgXCIgKi9cIik7XG4gICAgfSk7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIFIgPSB0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgPyBSZWZsZWN0IDogbnVsbFxudmFyIFJlZmxlY3RBcHBseSA9IFIgJiYgdHlwZW9mIFIuYXBwbHkgPT09ICdmdW5jdGlvbidcbiAgPyBSLmFwcGx5XG4gIDogZnVuY3Rpb24gUmVmbGVjdEFwcGx5KHRhcmdldCwgcmVjZWl2ZXIsIGFyZ3MpIHtcbiAgICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodGFyZ2V0LCByZWNlaXZlciwgYXJncyk7XG4gIH1cblxudmFyIFJlZmxlY3RPd25LZXlzXG5pZiAoUiAmJiB0eXBlb2YgUi5vd25LZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gIFJlZmxlY3RPd25LZXlzID0gUi5vd25LZXlzXG59IGVsc2UgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KVxuICAgICAgLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkpO1xuICB9O1xufSBlbHNlIHtcbiAgUmVmbGVjdE93bktleXMgPSBmdW5jdGlvbiBSZWZsZWN0T3duS2V5cyh0YXJnZXQpIHtcbiAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gUHJvY2Vzc0VtaXRXYXJuaW5nKHdhcm5pbmcpIHtcbiAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSBjb25zb2xlLndhcm4od2FybmluZyk7XG59XG5cbnZhciBOdW1iZXJJc05hTiA9IE51bWJlci5pc05hTiB8fCBmdW5jdGlvbiBOdW1iZXJJc05hTih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IHZhbHVlO1xufVxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIEV2ZW50RW1pdHRlci5pbml0LmNhbGwodGhpcyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IEV2ZW50RW1pdHRlcjtcblxuLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54XG5FdmVudEVtaXR0ZXIuRXZlbnRFbWl0dGVyID0gRXZlbnRFbWl0dGVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHNDb3VudCA9IDA7XG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG5cbi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZVxuLy8gYWRkZWQgdG8gaXQuIFRoaXMgaXMgYSB1c2VmdWwgZGVmYXVsdCB3aGljaCBoZWxwcyBmaW5kaW5nIG1lbW9yeSBsZWFrcy5cbnZhciBkZWZhdWx0TWF4TGlzdGVuZXJzID0gMTA7XG5cbmZ1bmN0aW9uIGNoZWNrTGlzdGVuZXIobGlzdGVuZXIpIHtcbiAgaWYgKHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImxpc3RlbmVyXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uLiBSZWNlaXZlZCB0eXBlICcgKyB0eXBlb2YgbGlzdGVuZXIpO1xuICB9XG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdmVudEVtaXR0ZXIsICdkZWZhdWx0TWF4TGlzdGVuZXJzJywge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBkZWZhdWx0TWF4TGlzdGVuZXJzO1xuICB9LFxuICBzZXQ6IGZ1bmN0aW9uKGFyZykge1xuICAgIGlmICh0eXBlb2YgYXJnICE9PSAnbnVtYmVyJyB8fCBhcmcgPCAwIHx8IE51bWJlcklzTmFOKGFyZykpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgXCJkZWZhdWx0TWF4TGlzdGVuZXJzXCIgaXMgb3V0IG9mIHJhbmdlLiBJdCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlci4gUmVjZWl2ZWQgJyArIGFyZyArICcuJyk7XG4gICAgfVxuICAgIGRlZmF1bHRNYXhMaXN0ZW5lcnMgPSBhcmc7XG4gIH1cbn0pO1xuXG5FdmVudEVtaXR0ZXIuaW5pdCA9IGZ1bmN0aW9uKCkge1xuXG4gIGlmICh0aGlzLl9ldmVudHMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZXZlbnRzID09PSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50cykge1xuICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdGhpcy5fZXZlbnRzQ291bnQgPSAwO1xuICB9XG5cbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn07XG5cbi8vIE9idmlvdXNseSBub3QgYWxsIEVtaXR0ZXJzIHNob3VsZCBiZSBsaW1pdGVkIHRvIDEwLiBUaGlzIGZ1bmN0aW9uIGFsbG93c1xuLy8gdGhhdCB0byBiZSBpbmNyZWFzZWQuIFNldCB0byB6ZXJvIGZvciB1bmxpbWl0ZWQuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIHNldE1heExpc3RlbmVycyhuKSB7XG4gIGlmICh0eXBlb2YgbiAhPT0gJ251bWJlcicgfHwgbiA8IDAgfHwgTnVtYmVySXNOYU4obikpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mIFwiblwiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcgKyBuICsgJy4nKTtcbiAgfVxuICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuO1xuICByZXR1cm4gdGhpcztcbn07XG5cbmZ1bmN0aW9uIF9nZXRNYXhMaXN0ZW5lcnModGhhdCkge1xuICBpZiAodGhhdC5fbWF4TGlzdGVuZXJzID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICByZXR1cm4gdGhhdC5fbWF4TGlzdGVuZXJzO1xufVxuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmdldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uIGdldE1heExpc3RlbmVycygpIHtcbiAgcmV0dXJuIF9nZXRNYXhMaXN0ZW5lcnModGhpcyk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiBlbWl0KHR5cGUpIHtcbiAgdmFyIGFyZ3MgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICB2YXIgZG9FcnJvciA9ICh0eXBlID09PSAnZXJyb3InKTtcblxuICB2YXIgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICBpZiAoZXZlbnRzICE9PSB1bmRlZmluZWQpXG4gICAgZG9FcnJvciA9IChkb0Vycm9yICYmIGV2ZW50cy5lcnJvciA9PT0gdW5kZWZpbmVkKTtcbiAgZWxzZSBpZiAoIWRvRXJyb3IpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKGRvRXJyb3IpIHtcbiAgICB2YXIgZXI7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMClcbiAgICAgIGVyID0gYXJnc1swXTtcbiAgICBpZiAoZXIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgLy8gTm90ZTogVGhlIGNvbW1lbnRzIG9uIHRoZSBgdGhyb3dgIGxpbmVzIGFyZSBpbnRlbnRpb25hbCwgdGhleSBzaG93XG4gICAgICAvLyB1cCBpbiBOb2RlJ3Mgb3V0cHV0IGlmIHRoaXMgcmVzdWx0cyBpbiBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uLlxuICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgfVxuICAgIC8vIEF0IGxlYXN0IGdpdmUgc29tZSBraW5kIG9mIGNvbnRleHQgdG8gdGhlIHVzZXJcbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdVbmhhbmRsZWQgZXJyb3IuJyArIChlciA/ICcgKCcgKyBlci5tZXNzYWdlICsgJyknIDogJycpKTtcbiAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgIHRocm93IGVycjsgLy8gVW5oYW5kbGVkICdlcnJvcicgZXZlbnRcbiAgfVxuXG4gIHZhciBoYW5kbGVyID0gZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIFJlZmxlY3RBcHBseShoYW5kbGVyLCB0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuID0gaGFuZGxlci5sZW5ndGg7XG4gICAgdmFyIGxpc3RlbmVycyA9IGFycmF5Q2xvbmUoaGFuZGxlciwgbGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKVxuICAgICAgUmVmbGVjdEFwcGx5KGxpc3RlbmVyc1tpXSwgdGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmZ1bmN0aW9uIF9hZGRMaXN0ZW5lcih0YXJnZXQsIHR5cGUsIGxpc3RlbmVyLCBwcmVwZW5kKSB7XG4gIHZhciBtO1xuICB2YXIgZXZlbnRzO1xuICB2YXIgZXhpc3Rpbmc7XG5cbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG4gIGlmIChldmVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIGV2ZW50cyA9IHRhcmdldC5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0YXJnZXQuX2V2ZW50c0NvdW50ID0gMDtcbiAgfSBlbHNlIHtcbiAgICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAgIC8vIGFkZGluZyBpdCB0byB0aGUgbGlzdGVuZXJzLCBmaXJzdCBlbWl0IFwibmV3TGlzdGVuZXJcIi5cbiAgICBpZiAoZXZlbnRzLm5ld0xpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhcmdldC5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgICAgICBsaXN0ZW5lci5saXN0ZW5lciA/IGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gICAgICAvLyBSZS1hc3NpZ24gYGV2ZW50c2AgYmVjYXVzZSBhIG5ld0xpc3RlbmVyIGhhbmRsZXIgY291bGQgaGF2ZSBjYXVzZWQgdGhlXG4gICAgICAvLyB0aGlzLl9ldmVudHMgdG8gYmUgYXNzaWduZWQgdG8gYSBuZXcgb2JqZWN0XG4gICAgICBldmVudHMgPSB0YXJnZXQuX2V2ZW50cztcbiAgICB9XG4gICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV07XG4gIH1cblxuICBpZiAoZXhpc3RpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIGV4aXN0aW5nID0gZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gICAgKyt0YXJnZXQuX2V2ZW50c0NvdW50O1xuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgICAgZXhpc3RpbmcgPSBldmVudHNbdHlwZV0gPVxuICAgICAgICBwcmVwZW5kID8gW2xpc3RlbmVyLCBleGlzdGluZ10gOiBbZXhpc3RpbmcsIGxpc3RlbmVyXTtcbiAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB9IGVsc2UgaWYgKHByZXBlbmQpIHtcbiAgICAgIGV4aXN0aW5nLnVuc2hpZnQobGlzdGVuZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleGlzdGluZy5wdXNoKGxpc3RlbmVyKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICAgIG0gPSBfZ2V0TWF4TGlzdGVuZXJzKHRhcmdldCk7XG4gICAgaWYgKG0gPiAwICYmIGV4aXN0aW5nLmxlbmd0aCA+IG0gJiYgIWV4aXN0aW5nLndhcm5lZCkge1xuICAgICAgZXhpc3Rpbmcud2FybmVkID0gdHJ1ZTtcbiAgICAgIC8vIE5vIGVycm9yIGNvZGUgZm9yIHRoaXMgc2luY2UgaXQgaXMgYSBXYXJuaW5nXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgIHZhciB3ID0gbmV3IEVycm9yKCdQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZy5sZW5ndGggKyAnICcgKyBTdHJpbmcodHlwZSkgKyAnIGxpc3RlbmVycyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luY3JlYXNlIGxpbWl0Jyk7XG4gICAgICB3Lm5hbWUgPSAnTWF4TGlzdGVuZXJzRXhjZWVkZWRXYXJuaW5nJztcbiAgICAgIHcuZW1pdHRlciA9IHRhcmdldDtcbiAgICAgIHcudHlwZSA9IHR5cGU7XG4gICAgICB3LmNvdW50ID0gZXhpc3RpbmcubGVuZ3RoO1xuICAgICAgUHJvY2Vzc0VtaXRXYXJuaW5nKHcpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbiBhZGRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICByZXR1cm4gX2FkZExpc3RlbmVyKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lcjtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHByZXBlbmRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgcmV0dXJuIF9hZGRMaXN0ZW5lcih0aGlzLCB0eXBlLCBsaXN0ZW5lciwgdHJ1ZSk7XG4gICAgfTtcblxuZnVuY3Rpb24gb25jZVdyYXBwZXIoKSB7XG4gIGlmICghdGhpcy5maXJlZCkge1xuICAgIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSwgdGhpcy53cmFwRm4pO1xuICAgIHRoaXMuZmlyZWQgPSB0cnVlO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsIGFyZ3VtZW50cyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX29uY2VXcmFwKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIHN0YXRlID0geyBmaXJlZDogZmFsc2UsIHdyYXBGbjogdW5kZWZpbmVkLCB0YXJnZXQ6IHRhcmdldCwgdHlwZTogdHlwZSwgbGlzdGVuZXI6IGxpc3RlbmVyIH07XG4gIHZhciB3cmFwcGVkID0gb25jZVdyYXBwZXIuYmluZChzdGF0ZSk7XG4gIHdyYXBwZWQubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgc3RhdGUud3JhcEZuID0gd3JhcHBlZDtcbiAgcmV0dXJuIHdyYXBwZWQ7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UodHlwZSwgbGlzdGVuZXIpIHtcbiAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG4gIHRoaXMub24odHlwZSwgX29uY2VXcmFwKHRoaXMsIHR5cGUsIGxpc3RlbmVyKSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyID1cbiAgICBmdW5jdGlvbiBwcmVwZW5kT25jZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICBjaGVja0xpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgIHRoaXMucHJlcGVuZExpc3RlbmVyKHR5cGUsIF9vbmNlV3JhcCh0aGlzLCB0eXBlLCBsaXN0ZW5lcikpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuLy8gRW1pdHMgYSAncmVtb3ZlTGlzdGVuZXInIGV2ZW50IGlmIGFuZCBvbmx5IGlmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPVxuICAgIGZ1bmN0aW9uIHJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyKSB7XG4gICAgICB2YXIgbGlzdCwgZXZlbnRzLCBwb3NpdGlvbiwgaSwgb3JpZ2luYWxMaXN0ZW5lcjtcblxuICAgICAgY2hlY2tMaXN0ZW5lcihsaXN0ZW5lcik7XG5cbiAgICAgIGV2ZW50cyA9IHRoaXMuX2V2ZW50cztcbiAgICAgIGlmIChldmVudHMgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICAgIGxpc3QgPSBldmVudHNbdHlwZV07XG4gICAgICBpZiAobGlzdCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8IGxpc3QubGlzdGVuZXIgPT09IGxpc3RlbmVyKSB7XG4gICAgICAgIGlmICgtLXRoaXMuX2V2ZW50c0NvdW50ID09PSAwKVxuICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSBldmVudHNbdHlwZV07XG4gICAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0Lmxpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGlzdCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwb3NpdGlvbiA9IC0xO1xuXG4gICAgICAgIGZvciAoaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpIHtcbiAgICAgICAgICAgIG9yaWdpbmFsTGlzdGVuZXIgPSBsaXN0W2ldLmxpc3RlbmVyO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgICBpZiAocG9zaXRpb24gPT09IDApXG4gICAgICAgICAgbGlzdC5zaGlmdCgpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzcGxpY2VPbmUobGlzdCwgcG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKVxuICAgICAgICAgIGV2ZW50c1t0eXBlXSA9IGxpc3RbMF07XG5cbiAgICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBvcmlnaW5hbExpc3RlbmVyIHx8IGxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG4gICAgZnVuY3Rpb24gcmVtb3ZlQWxsTGlzdGVuZXJzKHR5cGUpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMsIGV2ZW50cywgaTtcblxuICAgICAgZXZlbnRzID0gdGhpcy5fZXZlbnRzO1xuICAgICAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gdGhpcztcblxuICAgICAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICAgICAgaWYgKGV2ZW50cy5yZW1vdmVMaXN0ZW5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fZXZlbnRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRzW3R5cGVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBpZiAoLS10aGlzLl9ldmVudHNDb3VudCA9PT0gMClcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZGVsZXRlIGV2ZW50c1t0eXBlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50cyk7XG4gICAgICAgIHZhciBrZXk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgICAgICB0aGlzLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLl9ldmVudHNDb3VudCA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICBsaXN0ZW5lcnMgPSBldmVudHNbdHlwZV07XG5cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuZXJzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzKTtcbiAgICAgIH0gZWxzZSBpZiAobGlzdGVuZXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gTElGTyBvcmRlclxuICAgICAgICBmb3IgKGkgPSBsaXN0ZW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVyc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuZnVuY3Rpb24gX2xpc3RlbmVycyh0YXJnZXQsIHR5cGUsIHVud3JhcCkge1xuICB2YXIgZXZlbnRzID0gdGFyZ2V0Ll9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBbXTtcblxuICB2YXIgZXZsaXN0ZW5lciA9IGV2ZW50c1t0eXBlXTtcbiAgaWYgKGV2bGlzdGVuZXIgPT09IHVuZGVmaW5lZClcbiAgICByZXR1cm4gW107XG5cbiAgaWYgKHR5cGVvZiBldmxpc3RlbmVyID09PSAnZnVuY3Rpb24nKVxuICAgIHJldHVybiB1bndyYXAgPyBbZXZsaXN0ZW5lci5saXN0ZW5lciB8fCBldmxpc3RlbmVyXSA6IFtldmxpc3RlbmVyXTtcblxuICByZXR1cm4gdW53cmFwID9cbiAgICB1bndyYXBMaXN0ZW5lcnMoZXZsaXN0ZW5lcikgOiBhcnJheUNsb25lKGV2bGlzdGVuZXIsIGV2bGlzdGVuZXIubGVuZ3RoKTtcbn1cblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnModHlwZSkge1xuICByZXR1cm4gX2xpc3RlbmVycyh0aGlzLCB0eXBlLCB0cnVlKTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmF3TGlzdGVuZXJzID0gZnVuY3Rpb24gcmF3TGlzdGVuZXJzKHR5cGUpIHtcbiAgcmV0dXJuIF9saXN0ZW5lcnModGhpcywgdHlwZSwgZmFsc2UpO1xufTtcblxuRXZlbnRFbWl0dGVyLmxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbihlbWl0dGVyLCB0eXBlKSB7XG4gIGlmICh0eXBlb2YgZW1pdHRlci5saXN0ZW5lckNvdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbGlzdGVuZXJDb3VudC5jYWxsKGVtaXR0ZXIsIHR5cGUpO1xuICB9XG59O1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVyQ291bnQgPSBsaXN0ZW5lckNvdW50O1xuZnVuY3Rpb24gbGlzdGVuZXJDb3VudCh0eXBlKSB7XG4gIHZhciBldmVudHMgPSB0aGlzLl9ldmVudHM7XG5cbiAgaWYgKGV2ZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSBldmVudHNbdHlwZV07XG5cbiAgICBpZiAodHlwZW9mIGV2bGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoZXZsaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIDA7XG59XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuZXZlbnROYW1lcyA9IGZ1bmN0aW9uIGV2ZW50TmFtZXMoKSB7XG4gIHJldHVybiB0aGlzLl9ldmVudHNDb3VudCA+IDAgPyBSZWZsZWN0T3duS2V5cyh0aGlzLl9ldmVudHMpIDogW107XG59O1xuXG5mdW5jdGlvbiBhcnJheUNsb25lKGFyciwgbikge1xuICB2YXIgY29weSA9IG5ldyBBcnJheShuKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpXG4gICAgY29weVtpXSA9IGFycltpXTtcbiAgcmV0dXJuIGNvcHk7XG59XG5cbmZ1bmN0aW9uIHNwbGljZU9uZShsaXN0LCBpbmRleCkge1xuICBmb3IgKDsgaW5kZXggKyAxIDwgbGlzdC5sZW5ndGg7IGluZGV4KyspXG4gICAgbGlzdFtpbmRleF0gPSBsaXN0W2luZGV4ICsgMV07XG4gIGxpc3QucG9wKCk7XG59XG5cbmZ1bmN0aW9uIHVud3JhcExpc3RlbmVycyhhcnIpIHtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShhcnIubGVuZ3RoKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXQubGVuZ3RoOyArK2kpIHtcbiAgICByZXRbaV0gPSBhcnJbaV0ubGlzdGVuZXIgfHwgYXJyW2ldO1xuICB9XG4gIHJldHVybiByZXQ7XG59XG4iLCIvKiEganF1ZXJ5LnRhYmxlZG5kLmpzIDMwLTEyLTIwMTcgKi9cbiFmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1cInRvdWNoc3RhcnQgbW91c2Vkb3duXCIsZj1cInRvdWNobW92ZSBtb3VzZW1vdmVcIixnPVwidG91Y2hlbmQgbW91c2V1cFwiO2EoYykucmVhZHkoZnVuY3Rpb24oKXtmdW5jdGlvbiBiKGEpe2Zvcih2YXIgYj17fSxjPWEubWF0Y2goLyhbXjs6XSspL2cpfHxbXTtjLmxlbmd0aDspYltjLnNoaWZ0KCldPWMuc2hpZnQoKS50cmltKCk7cmV0dXJuIGJ9YShcInRhYmxlXCIpLmVhY2goZnVuY3Rpb24oKXtcImRuZFwiPT09YSh0aGlzKS5kYXRhKFwidGFibGVcIikmJmEodGhpcykudGFibGVEbkQoe29uRHJhZ1N0eWxlOmEodGhpcykuZGF0YShcIm9uZHJhZ3N0eWxlXCIpJiZiKGEodGhpcykuZGF0YShcIm9uZHJhZ3N0eWxlXCIpKXx8bnVsbCxvbkRyb3BTdHlsZTphKHRoaXMpLmRhdGEoXCJvbmRyb3BzdHlsZVwiKSYmYihhKHRoaXMpLmRhdGEoXCJvbmRyb3BzdHlsZVwiKSl8fG51bGwsb25EcmFnQ2xhc3M6YSh0aGlzKS5kYXRhKFwib25kcmFnY2xhc3NcIik9PT1kJiZcInREbkRfd2hpbGVEcmFnXCJ8fGEodGhpcykuZGF0YShcIm9uZHJhZ2NsYXNzXCIpLG9uRHJvcDphKHRoaXMpLmRhdGEoXCJvbmRyb3BcIikmJm5ldyBGdW5jdGlvbihcInRhYmxlXCIsXCJyb3dcIixhKHRoaXMpLmRhdGEoXCJvbmRyb3BcIikpLG9uRHJhZ1N0YXJ0OmEodGhpcykuZGF0YShcIm9uZHJhZ3N0YXJ0XCIpJiZuZXcgRnVuY3Rpb24oXCJ0YWJsZVwiLFwicm93XCIsYSh0aGlzKS5kYXRhKFwib25kcmFnc3RhcnRcIikpLG9uRHJhZ1N0b3A6YSh0aGlzKS5kYXRhKFwib25kcmFnc3RvcFwiKSYmbmV3IEZ1bmN0aW9uKFwidGFibGVcIixcInJvd1wiLGEodGhpcykuZGF0YShcIm9uZHJhZ3N0b3BcIikpLHNjcm9sbEFtb3VudDphKHRoaXMpLmRhdGEoXCJzY3JvbGxhbW91bnRcIil8fDUsc2Vuc2l0aXZpdHk6YSh0aGlzKS5kYXRhKFwic2Vuc2l0aXZpdHlcIil8fDEwLGhpZXJhcmNoeUxldmVsOmEodGhpcykuZGF0YShcImhpZXJhcmNoeWxldmVsXCIpfHwwLGluZGVudEFydGlmYWN0OmEodGhpcykuZGF0YShcImluZGVudGFydGlmYWN0XCIpfHwnPGRpdiBjbGFzcz1cImluZGVudFwiPiZuYnNwOzwvZGl2PicsYXV0b1dpZHRoQWRqdXN0OmEodGhpcykuZGF0YShcImF1dG93aWR0aGFkanVzdFwiKXx8ITAsYXV0b0NsZWFuUmVsYXRpb25zOmEodGhpcykuZGF0YShcImF1dG9jbGVhbnJlbGF0aW9uc1wiKXx8ITAsanNvblByZXRpZnlTZXBhcmF0b3I6YSh0aGlzKS5kYXRhKFwianNvbnByZXRpZnlzZXBhcmF0b3JcIil8fFwiXFx0XCIsc2VyaWFsaXplUmVnZXhwOmEodGhpcykuZGF0YShcInNlcmlhbGl6ZXJlZ2V4cFwiKSYmbmV3IFJlZ0V4cChhKHRoaXMpLmRhdGEoXCJzZXJpYWxpemVyZWdleHBcIikpfHwvW15cXC1dKiQvLHNlcmlhbGl6ZVBhcmFtTmFtZTphKHRoaXMpLmRhdGEoXCJzZXJpYWxpemVwYXJhbW5hbWVcIil8fCExLGRyYWdIYW5kbGU6YSh0aGlzKS5kYXRhKFwiZHJhZ2hhbmRsZVwiKXx8bnVsbH0pfSl9KSxqUXVlcnkudGFibGVEbkQ9e2N1cnJlbnRUYWJsZTpudWxsLGRyYWdPYmplY3Q6bnVsbCxtb3VzZU9mZnNldDpudWxsLG9sZFg6MCxvbGRZOjAsYnVpbGQ6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RoaXMudGFibGVEbkRDb25maWc9YS5leHRlbmQoe29uRHJhZ1N0eWxlOm51bGwsb25Ecm9wU3R5bGU6bnVsbCxvbkRyYWdDbGFzczpcInREbkRfd2hpbGVEcmFnXCIsb25Ecm9wOm51bGwsb25EcmFnU3RhcnQ6bnVsbCxvbkRyYWdTdG9wOm51bGwsc2Nyb2xsQW1vdW50OjUsc2Vuc2l0aXZpdHk6MTAsaGllcmFyY2h5TGV2ZWw6MCxpbmRlbnRBcnRpZmFjdDonPGRpdiBjbGFzcz1cImluZGVudFwiPiZuYnNwOzwvZGl2PicsYXV0b1dpZHRoQWRqdXN0OiEwLGF1dG9DbGVhblJlbGF0aW9uczohMCxqc29uUHJldGlmeVNlcGFyYXRvcjpcIlxcdFwiLHNlcmlhbGl6ZVJlZ2V4cDovW15cXC1dKiQvLHNlcmlhbGl6ZVBhcmFtTmFtZTohMSxkcmFnSGFuZGxlOm51bGx9LGJ8fHt9KSxhLnRhYmxlRG5ELm1ha2VEcmFnZ2FibGUodGhpcyksdGhpcy50YWJsZURuRENvbmZpZy5oaWVyYXJjaHlMZXZlbCYmYS50YWJsZURuRC5tYWtlSW5kZW50ZWQodGhpcyl9KSx0aGlzfSxtYWtlSW5kZW50ZWQ6ZnVuY3Rpb24oYil7dmFyIGMsZCxlPWIudGFibGVEbkRDb25maWcsZj1iLnJvd3MsZz1hKGYpLmZpcnN0KCkuZmluZChcInRkOmZpcnN0XCIpWzBdLGg9MCxpPTA7aWYoYShiKS5oYXNDbGFzcyhcImluZHRkXCIpKXJldHVybiBudWxsO2Q9YShiKS5hZGRDbGFzcyhcImluZHRkXCIpLmF0dHIoXCJzdHlsZVwiKSxhKGIpLmNzcyh7d2hpdGVTcGFjZTpcIm5vd3JhcFwifSk7Zm9yKHZhciBqPTA7ajxmLmxlbmd0aDtqKyspaTxhKGZbal0pLmZpbmQoXCJ0ZDpmaXJzdFwiKS50ZXh0KCkubGVuZ3RoJiYoaT1hKGZbal0pLmZpbmQoXCJ0ZDpmaXJzdFwiKS50ZXh0KCkubGVuZ3RoLGM9aik7Zm9yKGEoZykuY3NzKHt3aWR0aDpcImF1dG9cIn0pLGo9MDtqPGUuaGllcmFyY2h5TGV2ZWw7aisrKWEoZltjXSkuZmluZChcInRkOmZpcnN0XCIpLnByZXBlbmQoZS5pbmRlbnRBcnRpZmFjdCk7Zm9yKGcmJmEoZykuY3NzKHt3aWR0aDpnLm9mZnNldFdpZHRofSksZCYmYShiKS5jc3MoZCksaj0wO2o8ZS5oaWVyYXJjaHlMZXZlbDtqKyspYShmW2NdKS5maW5kKFwidGQ6Zmlyc3RcIikuY2hpbGRyZW4oXCI6Zmlyc3RcIikucmVtb3ZlKCk7cmV0dXJuIGUuaGllcmFyY2h5TGV2ZWwmJmEoZikuZWFjaChmdW5jdGlvbigpeyhoPWEodGhpcykuZGF0YShcImxldmVsXCIpfHwwKTw9ZS5oaWVyYXJjaHlMZXZlbCYmYSh0aGlzKS5kYXRhKFwibGV2ZWxcIixoKXx8YSh0aGlzKS5kYXRhKFwibGV2ZWxcIiwwKTtmb3IodmFyIGI9MDtiPGEodGhpcykuZGF0YShcImxldmVsXCIpO2IrKylhKHRoaXMpLmZpbmQoXCJ0ZDpmaXJzdFwiKS5wcmVwZW5kKGUuaW5kZW50QXJ0aWZhY3QpfSksdGhpc30sbWFrZURyYWdnYWJsZTpmdW5jdGlvbihiKXt2YXIgYz1iLnRhYmxlRG5EQ29uZmlnO2MuZHJhZ0hhbmRsZSYmYShjLmRyYWdIYW5kbGUsYikuZWFjaChmdW5jdGlvbigpe2EodGhpcykuYmluZChlLGZ1bmN0aW9uKGQpe3JldHVybiBhLnRhYmxlRG5ELmluaXRpYWxpc2VEcmFnKGEodGhpcykucGFyZW50cyhcInRyXCIpWzBdLGIsdGhpcyxkLGMpLCExfSl9KXx8YShiLnJvd3MpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLmhhc0NsYXNzKFwibm9kcmFnXCIpP2EodGhpcykuY3NzKFwiY3Vyc29yXCIsXCJcIik6YSh0aGlzKS5iaW5kKGUsZnVuY3Rpb24oZCl7aWYoXCJURFwiPT09ZC50YXJnZXQudGFnTmFtZSlyZXR1cm4gYS50YWJsZURuRC5pbml0aWFsaXNlRHJhZyh0aGlzLGIsdGhpcyxkLGMpLCExfSkuY3NzKFwiY3Vyc29yXCIsXCJtb3ZlXCIpfSl9LGN1cnJlbnRPcmRlcjpmdW5jdGlvbigpe3ZhciBiPXRoaXMuY3VycmVudFRhYmxlLnJvd3M7cmV0dXJuIGEubWFwKGIsZnVuY3Rpb24oYil7cmV0dXJuKGEoYikuZGF0YShcImxldmVsXCIpK2IuaWQpLnJlcGxhY2UoL1xccy9nLFwiXCIpfSkuam9pbihcIlwiKX0saW5pdGlhbGlzZURyYWc6ZnVuY3Rpb24oYixkLGUsaCxpKXt0aGlzLmRyYWdPYmplY3Q9Yix0aGlzLmN1cnJlbnRUYWJsZT1kLHRoaXMubW91c2VPZmZzZXQ9dGhpcy5nZXRNb3VzZU9mZnNldChlLGgpLHRoaXMub3JpZ2luYWxPcmRlcj10aGlzLmN1cnJlbnRPcmRlcigpLGEoYykuYmluZChmLHRoaXMubW91c2Vtb3ZlKS5iaW5kKGcsdGhpcy5tb3VzZXVwKSxpLm9uRHJhZ1N0YXJ0JiZpLm9uRHJhZ1N0YXJ0KGQsZSl9LHVwZGF0ZVRhYmxlczpmdW5jdGlvbigpe3RoaXMuZWFjaChmdW5jdGlvbigpe3RoaXMudGFibGVEbkRDb25maWcmJmEudGFibGVEbkQubWFrZURyYWdnYWJsZSh0aGlzKX0pfSxtb3VzZUNvb3JkczpmdW5jdGlvbihhKXtyZXR1cm4gYS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzP3t4OmEub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRYLHk6YS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFl9OmEucGFnZVh8fGEucGFnZVk/e3g6YS5wYWdlWCx5OmEucGFnZVl9Ont4OmEuY2xpZW50WCtjLmJvZHkuc2Nyb2xsTGVmdC1jLmJvZHkuY2xpZW50TGVmdCx5OmEuY2xpZW50WStjLmJvZHkuc2Nyb2xsVG9wLWMuYm9keS5jbGllbnRUb3B9fSxnZXRNb3VzZU9mZnNldDpmdW5jdGlvbihhLGMpe3ZhciBkLGU7cmV0dXJuIGM9Y3x8Yi5ldmVudCxlPXRoaXMuZ2V0UG9zaXRpb24oYSksZD10aGlzLm1vdXNlQ29vcmRzKGMpLHt4OmQueC1lLngseTpkLnktZS55fX0sZ2V0UG9zaXRpb246ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPTA7Zm9yKDA9PT1hLm9mZnNldEhlaWdodCYmKGE9YS5maXJzdENoaWxkKTthLm9mZnNldFBhcmVudDspYis9YS5vZmZzZXRMZWZ0LGMrPWEub2Zmc2V0VG9wLGE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGIrPWEub2Zmc2V0TGVmdCxjKz1hLm9mZnNldFRvcCx7eDpiLHk6Y319LGF1dG9TY3JvbGw6ZnVuY3Rpb24oYSl7dmFyIGQ9dGhpcy5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcsZT1iLnBhZ2VZT2Zmc2V0LGY9Yi5pbm5lckhlaWdodD9iLmlubmVySGVpZ2h0OmMuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodD9jLmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ6Yy5ib2R5LmNsaWVudEhlaWdodDtjLmFsbCYmKHZvaWQgMCE9PWMuY29tcGF0TW9kZSYmXCJCYWNrQ29tcGF0XCIhPT1jLmNvbXBhdE1vZGU/ZT1jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A6dm9pZCAwIT09Yy5ib2R5JiYoZT1jLmJvZHkuc2Nyb2xsVG9wKSksYS55LWU8ZC5zY3JvbGxBbW91bnQmJmIuc2Nyb2xsQnkoMCwtZC5zY3JvbGxBbW91bnQpfHxmLShhLnktZSk8ZC5zY3JvbGxBbW91bnQmJmIuc2Nyb2xsQnkoMCxkLnNjcm9sbEFtb3VudCl9LG1vdmVWZXJ0aWNsZTpmdW5jdGlvbihhLGIpezAhPT1hLnZlcnRpY2FsJiZiJiZ0aGlzLmRyYWdPYmplY3QhPT1iJiZ0aGlzLmRyYWdPYmplY3QucGFyZW50Tm9kZT09PWIucGFyZW50Tm9kZSYmKDA+YS52ZXJ0aWNhbCYmdGhpcy5kcmFnT2JqZWN0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuZHJhZ09iamVjdCxiLm5leHRTaWJsaW5nKXx8MDxhLnZlcnRpY2FsJiZ0aGlzLmRyYWdPYmplY3QucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5kcmFnT2JqZWN0LGIpKX0sbW92ZUhvcml6b250YWw6ZnVuY3Rpb24oYixjKXt2YXIgZCxlPXRoaXMuY3VycmVudFRhYmxlLnRhYmxlRG5EQ29uZmlnO2lmKCFlLmhpZXJhcmNoeUxldmVsfHwwPT09Yi5ob3Jpem9udGFsfHwhY3x8dGhpcy5kcmFnT2JqZWN0IT09YylyZXR1cm4gbnVsbDtkPWEoYykuZGF0YShcImxldmVsXCIpLDA8Yi5ob3Jpem9udGFsJiZkPjAmJmEoYykuZmluZChcInRkOmZpcnN0XCIpLmNoaWxkcmVuKFwiOmZpcnN0XCIpLnJlbW92ZSgpJiZhKGMpLmRhdGEoXCJsZXZlbFwiLC0tZCksMD5iLmhvcml6b250YWwmJmQ8ZS5oaWVyYXJjaHlMZXZlbCYmYShjKS5wcmV2KCkuZGF0YShcImxldmVsXCIpPj1kJiZhKGMpLmNoaWxkcmVuKFwiOmZpcnN0XCIpLnByZXBlbmQoZS5pbmRlbnRBcnRpZmFjdCkmJmEoYykuZGF0YShcImxldmVsXCIsKytkKX0sbW91c2Vtb3ZlOmZ1bmN0aW9uKGIpe3ZhciBjLGQsZSxmLGcsaD1hKGEudGFibGVEbkQuZHJhZ09iamVjdCksaT1hLnRhYmxlRG5ELmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZztyZXR1cm4gYiYmYi5wcmV2ZW50RGVmYXVsdCgpLCEhYS50YWJsZURuRC5kcmFnT2JqZWN0JiYoXCJ0b3VjaG1vdmVcIj09PWIudHlwZSYmZXZlbnQucHJldmVudERlZmF1bHQoKSxpLm9uRHJhZ0NsYXNzJiZoLmFkZENsYXNzKGkub25EcmFnQ2xhc3MpfHxoLmNzcyhpLm9uRHJhZ1N0eWxlKSxkPWEudGFibGVEbkQubW91c2VDb29yZHMoYiksZj1kLngtYS50YWJsZURuRC5tb3VzZU9mZnNldC54LGc9ZC55LWEudGFibGVEbkQubW91c2VPZmZzZXQueSxhLnRhYmxlRG5ELmF1dG9TY3JvbGwoZCksYz1hLnRhYmxlRG5ELmZpbmREcm9wVGFyZ2V0Um93KGgsZyksZT1hLnRhYmxlRG5ELmZpbmREcmFnRGlyZWN0aW9uKGYsZyksYS50YWJsZURuRC5tb3ZlVmVydGljbGUoZSxjKSxhLnRhYmxlRG5ELm1vdmVIb3Jpem9udGFsKGUsYyksITEpfSxmaW5kRHJhZ0RpcmVjdGlvbjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3VycmVudFRhYmxlLnRhYmxlRG5EQ29uZmlnLnNlbnNpdGl2aXR5LGQ9dGhpcy5vbGRYLGU9dGhpcy5vbGRZLGY9ZC1jLGc9ZCtjLGg9ZS1jLGk9ZStjLGo9e2hvcml6b250YWw6YT49ZiYmYTw9Zz8wOmE+ZD8tMToxLHZlcnRpY2FsOmI+PWgmJmI8PWk/MDpiPmU/LTE6MX07cmV0dXJuIDAhPT1qLmhvcml6b250YWwmJih0aGlzLm9sZFg9YSksMCE9PWoudmVydGljYWwmJih0aGlzLm9sZFk9Yiksan0sZmluZERyb3BUYXJnZXRSb3c6ZnVuY3Rpb24oYixjKXtmb3IodmFyIGQ9MCxlPXRoaXMuY3VycmVudFRhYmxlLnJvd3MsZj10aGlzLmN1cnJlbnRUYWJsZS50YWJsZURuRENvbmZpZyxnPTAsaD1udWxsLGk9MDtpPGUubGVuZ3RoO2krKylpZihoPWVbaV0sZz10aGlzLmdldFBvc2l0aW9uKGgpLnksZD1wYXJzZUludChoLm9mZnNldEhlaWdodCkvMiwwPT09aC5vZmZzZXRIZWlnaHQmJihnPXRoaXMuZ2V0UG9zaXRpb24oaC5maXJzdENoaWxkKS55LGQ9cGFyc2VJbnQoaC5maXJzdENoaWxkLm9mZnNldEhlaWdodCkvMiksYz5nLWQmJmM8ZytkKXJldHVybiBiLmlzKGgpfHxmLm9uQWxsb3dEcm9wJiYhZi5vbkFsbG93RHJvcChiLGgpfHxhKGgpLmhhc0NsYXNzKFwibm9kcm9wXCIpP251bGw6aDtyZXR1cm4gbnVsbH0scHJvY2Vzc01vdXNldXA6ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJyZW50VGFibGV8fCF0aGlzLmRyYWdPYmplY3QpcmV0dXJuIG51bGw7dmFyIGI9dGhpcy5jdXJyZW50VGFibGUudGFibGVEbkRDb25maWcsZD10aGlzLmRyYWdPYmplY3QsZT0wLGg9MDthKGMpLnVuYmluZChmLHRoaXMubW91c2Vtb3ZlKS51bmJpbmQoZyx0aGlzLm1vdXNldXApLGIuaGllcmFyY2h5TGV2ZWwmJmIuYXV0b0NsZWFuUmVsYXRpb25zJiZhKHRoaXMuY3VycmVudFRhYmxlLnJvd3MpLmZpcnN0KCkuZmluZChcInRkOmZpcnN0XCIpLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpeyhoPWEodGhpcykucGFyZW50cyhcInRyOmZpcnN0XCIpLmRhdGEoXCJsZXZlbFwiKSkmJmEodGhpcykucGFyZW50cyhcInRyOmZpcnN0XCIpLmRhdGEoXCJsZXZlbFwiLC0taCkmJmEodGhpcykucmVtb3ZlKCl9KSYmYi5oaWVyYXJjaHlMZXZlbD4xJiZhKHRoaXMuY3VycmVudFRhYmxlLnJvd3MpLmVhY2goZnVuY3Rpb24oKXtpZigoaD1hKHRoaXMpLmRhdGEoXCJsZXZlbFwiKSk+MSlmb3IoZT1hKHRoaXMpLnByZXYoKS5kYXRhKFwibGV2ZWxcIik7aD5lKzE7KWEodGhpcykuZmluZChcInRkOmZpcnN0XCIpLmNoaWxkcmVuKFwiOmZpcnN0XCIpLnJlbW92ZSgpLGEodGhpcykuZGF0YShcImxldmVsXCIsLS1oKX0pLGIub25EcmFnQ2xhc3MmJmEoZCkucmVtb3ZlQ2xhc3MoYi5vbkRyYWdDbGFzcyl8fGEoZCkuY3NzKGIub25Ecm9wU3R5bGUpLHRoaXMuZHJhZ09iamVjdD1udWxsLGIub25Ecm9wJiZ0aGlzLm9yaWdpbmFsT3JkZXIhPT10aGlzLmN1cnJlbnRPcmRlcigpJiZhKGQpLmhpZGUoKS5mYWRlSW4oXCJmYXN0XCIpJiZiLm9uRHJvcCh0aGlzLmN1cnJlbnRUYWJsZSxkKSxiLm9uRHJhZ1N0b3AmJmIub25EcmFnU3RvcCh0aGlzLmN1cnJlbnRUYWJsZSxkKSx0aGlzLmN1cnJlbnRUYWJsZT1udWxsfSxtb3VzZXVwOmZ1bmN0aW9uKGIpe3JldHVybiBiJiZiLnByZXZlbnREZWZhdWx0KCksYS50YWJsZURuRC5wcm9jZXNzTW91c2V1cCgpLCExfSxqc29uaXplOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY3VycmVudFRhYmxlO3JldHVybiBhP0pTT04uc3RyaW5naWZ5KHRoaXMudGFibGVEYXRhKGIpLG51bGwsYi50YWJsZURuRENvbmZpZy5qc29uUHJldGlmeVNlcGFyYXRvcik6SlNPTi5zdHJpbmdpZnkodGhpcy50YWJsZURhdGEoYikpfSxzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gYS5wYXJhbSh0aGlzLnRhYmxlRGF0YSh0aGlzLmN1cnJlbnRUYWJsZSkpfSxzZXJpYWxpemVUYWJsZTpmdW5jdGlvbihhKXtmb3IodmFyIGI9XCJcIixjPWEudGFibGVEbkRDb25maWcuc2VyaWFsaXplUGFyYW1OYW1lfHxhLmlkLGQ9YS5yb3dzLGU9MDtlPGQubGVuZ3RoO2UrKyl7Yi5sZW5ndGg+MCYmKGIrPVwiJlwiKTt2YXIgZj1kW2VdLmlkO2YmJmEudGFibGVEbkRDb25maWcmJmEudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwJiYoZj1mLm1hdGNoKGEudGFibGVEbkRDb25maWcuc2VyaWFsaXplUmVnZXhwKVswXSxiKz1jK1wiW109XCIrZil9cmV0dXJuIGJ9LHNlcmlhbGl6ZVRhYmxlczpmdW5jdGlvbigpe3ZhciBiPVtdO3JldHVybiBhKFwidGFibGVcIikuZWFjaChmdW5jdGlvbigpe3RoaXMuaWQmJmIucHVzaChhLnBhcmFtKGEudGFibGVEbkQudGFibGVEYXRhKHRoaXMpKSl9KSxiLmpvaW4oXCImXCIpfSx0YWJsZURhdGE6ZnVuY3Rpb24oYil7dmFyIGMsZCxlLGYsZz1iLnRhYmxlRG5EQ29uZmlnLGg9W10saT0wLGo9MCxrPW51bGwsbD17fTtpZihifHwoYj10aGlzLmN1cnJlbnRUYWJsZSksIWJ8fCFiLnJvd3N8fCFiLnJvd3MubGVuZ3RoKXJldHVybntlcnJvcjp7Y29kZTo1MDAsbWVzc2FnZTpcIk5vdCBhIHZhbGlkIHRhYmxlLlwifX07aWYoIWIuaWQmJiFnLnNlcmlhbGl6ZVBhcmFtTmFtZSlyZXR1cm57ZXJyb3I6e2NvZGU6NTAwLG1lc3NhZ2U6XCJObyBzZXJpYWxpemFibGUgdW5pcXVlIGlkIHByb3ZpZGVkLlwifX07Zj1nLmF1dG9DbGVhblJlbGF0aW9ucyYmYi5yb3dzfHxhLm1ha2VBcnJheShiLnJvd3MpLGQ9Zy5zZXJpYWxpemVQYXJhbU5hbWV8fGIuaWQsZT1kLGM9ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmcmJmcuc2VyaWFsaXplUmVnZXhwP2EubWF0Y2goZy5zZXJpYWxpemVSZWdleHApWzBdOmF9LGxbZV09W10sIWcuYXV0b0NsZWFuUmVsYXRpb25zJiZhKGZbMF0pLmRhdGEoXCJsZXZlbFwiKSYmZi51bnNoaWZ0KHtpZDpcInVuZGVmaW5lZFwifSk7Zm9yKHZhciBtPTA7bTxmLmxlbmd0aDttKyspaWYoZy5oaWVyYXJjaHlMZXZlbCl7aWYoMD09PShqPWEoZlttXSkuZGF0YShcImxldmVsXCIpfHwwKSllPWQsaD1bXTtlbHNlIGlmKGo+aSloLnB1c2goW2UsaV0pLGU9YyhmW20tMV0uaWQpO2Vsc2UgaWYoajxpKWZvcih2YXIgbj0wO248aC5sZW5ndGg7bisrKWhbbl1bMV09PT1qJiYoZT1oW25dWzBdKSxoW25dWzFdPj1pJiYoaFtuXVsxXT0wKTtpPWosYS5pc0FycmF5KGxbZV0pfHwobFtlXT1bXSksaz1jKGZbbV0uaWQpLGsmJmxbZV0ucHVzaChrKX1lbHNlKGs9YyhmW21dLmlkKSkmJmxbZV0ucHVzaChrKTtyZXR1cm4gbH19LGpRdWVyeS5mbi5leHRlbmQoe3RhYmxlRG5EOmEudGFibGVEbkQuYnVpbGQsdGFibGVEbkRVcGRhdGU6YS50YWJsZURuRC51cGRhdGVUYWJsZXMsdGFibGVEbkRTZXJpYWxpemU6YS5wcm94eShhLnRhYmxlRG5ELnNlcmlhbGl6ZSxhLnRhYmxlRG5EKSx0YWJsZURuRFNlcmlhbGl6ZUFsbDphLnRhYmxlRG5ELnNlcmlhbGl6ZVRhYmxlcyx0YWJsZURuRERhdGE6YS5wcm94eShhLnRhYmxlRG5ELnRhYmxlRGF0YSxhLnRhYmxlRG5EKX0pfShqUXVlcnksd2luZG93LHdpbmRvdy5kb2N1bWVudCk7IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IGF0dHJzOiB7IGlkOiBcInNlcnBcIiB9IH0sIFtcbiAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInNlcnAtcHJldmlld1wiIH0sIFtcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwic2VycC10aXRsZVwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLmRpc3BsYXllZFRpdGxlKSArIFwiXFxuICAgIFwiKVxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJzZXJwLXVybFwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLnVybCkpLFxuICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJzZXJwLWFycm93XCIgfSlcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwic2VycC1kZXNjcmlwdGlvblwiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgICAgXCIgKyBfdm0uX3MoX3ZtLmRpc3BsYXllZERlc2NyaXB0aW9uKSArIFwiXFxuICAgIFwiKVxuICAgICAgXSlcbiAgICBdKVxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtMVswXS5ydWxlc1swXS51c2VbMF0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC0xWzBdLnJ1bGVzWzBdLnVzZVswXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlcnAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NmM0YzVhYiZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vc2VycC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vc2VycC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02NmM0YzVhYiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjY2YzRjNWFiXCIsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL3RtcC9wcmVzdGFzaG9wL2FkbWluLWRldi90aGVtZXMvbmV3LXRoZW1lL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzY2YzRjNWFiJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzY2YzRjNWFiJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzY2YzRjNWFiJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9zZXJwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02NmM0YzVhYiZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc2NmM0YzVhYicsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwianMvYXBwL3V0aWxzL3NlcnAvc2VycC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCIvKiBnbG9iYWxzIF9fVlVFX1NTUl9DT05URVhUX18gKi9cblxuLy8gSU1QT1JUQU5UOiBEbyBOT1QgdXNlIEVTMjAxNSBmZWF0dXJlcyBpbiB0aGlzIGZpbGUgKGV4Y2VwdCBmb3IgbW9kdWxlcykuXG4vLyBUaGlzIG1vZHVsZSBpcyBhIHJ1bnRpbWUgdXRpbGl0eSBmb3IgY2xlYW5lciBjb21wb25lbnQgbW9kdWxlIG91dHB1dCBhbmQgd2lsbFxuLy8gYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHdlYnBhY2sgdXNlciBidW5kbGUuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbXBvbmVudCAoXG4gIHNjcmlwdEV4cG9ydHMsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmdW5jdGlvbmFsVGVtcGxhdGUsXG4gIGluamVjdFN0eWxlcyxcbiAgc2NvcGVJZCxcbiAgbW9kdWxlSWRlbnRpZmllciwgLyogc2VydmVyIG9ubHkgKi9cbiAgc2hhZG93TW9kZSAvKiB2dWUtY2xpIG9ubHkgKi9cbikge1xuICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wXG4gIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbidcbiAgICA/IHNjcmlwdEV4cG9ydHMub3B0aW9uc1xuICAgIDogc2NyaXB0RXhwb3J0c1xuXG4gIC8vIHJlbmRlciBmdW5jdGlvbnNcbiAgaWYgKHJlbmRlcikge1xuICAgIG9wdGlvbnMucmVuZGVyID0gcmVuZGVyXG4gICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnNcbiAgICBvcHRpb25zLl9jb21waWxlZCA9IHRydWVcbiAgfVxuXG4gIC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGVcbiAgaWYgKGZ1bmN0aW9uYWxUZW1wbGF0ZSkge1xuICAgIG9wdGlvbnMuZnVuY3Rpb25hbCA9IHRydWVcbiAgfVxuXG4gIC8vIHNjb3BlZElkXG4gIGlmIChzY29wZUlkKSB7XG4gICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWRcbiAgfVxuXG4gIHZhciBob29rXG4gIGlmIChtb2R1bGVJZGVudGlmaWVyKSB7IC8vIHNlcnZlciBidWlsZFxuICAgIGhvb2sgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgLy8gMi4zIGluamVjdGlvblxuICAgICAgY29udGV4dCA9XG4gICAgICAgIGNvbnRleHQgfHwgLy8gY2FjaGVkIGNhbGxcbiAgICAgICAgKHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHQpIHx8IC8vIHN0YXRlZnVsXG4gICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC4kdm5vZGUgJiYgdGhpcy5wYXJlbnQuJHZub2RlLnNzckNvbnRleHQpIC8vIGZ1bmN0aW9uYWxcbiAgICAgIC8vIDIuMiB3aXRoIHJ1bkluTmV3Q29udGV4dDogdHJ1ZVxuICAgICAgaWYgKCFjb250ZXh0ICYmIHR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb250ZXh0ID0gX19WVUVfU1NSX0NPTlRFWFRfX1xuICAgICAgfVxuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCBzdHlsZXNcbiAgICAgIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwodGhpcywgY29udGV4dClcbiAgICAgIH1cbiAgICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudCBtb2R1bGUgaWRlbnRpZmllciBmb3IgYXN5bmMgY2h1bmsgaW5mZXJyZW5jZVxuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHtcbiAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlXG4gICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWRcbiAgICBvcHRpb25zLl9zc3JSZWdpc3RlciA9IGhvb2tcbiAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICBob29rID0gc2hhZG93TW9kZVxuICAgICAgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgKG9wdGlvbnMuZnVuY3Rpb25hbCA/IHRoaXMucGFyZW50IDogdGhpcykuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdFxuICAgICAgICApXG4gICAgICB9XG4gICAgICA6IGluamVjdFN0eWxlc1xuICB9XG5cbiAgaWYgKGhvb2spIHtcbiAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7XG4gICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndFxuICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplclxuICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9va1xuICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IGluIHZ1ZSBmaWxlXG4gICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlclxuICAgICAgb3B0aW9ucy5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXJXaXRoU3R5bGVJbmplY3Rpb24gKGgsIGNvbnRleHQpIHtcbiAgICAgICAgaG9vay5jYWxsKGNvbnRleHQpXG4gICAgICAgIHJldHVybiBvcmlnaW5hbFJlbmRlcihoLCBjb250ZXh0KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHJlZ2lzdHJhdGlvbiBhcyBiZWZvcmVDcmVhdGUgaG9va1xuICAgICAgdmFyIGV4aXN0aW5nID0gb3B0aW9ucy5iZWZvcmVDcmVhdGVcbiAgICAgIG9wdGlvbnMuYmVmb3JlQ3JlYXRlID0gZXhpc3RpbmdcbiAgICAgICAgPyBbXS5jb25jYXQoZXhpc3RpbmcsIGhvb2spXG4gICAgICAgIDogW2hvb2tdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBleHBvcnRzOiBzY3JpcHRFeHBvcnRzLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfVxufVxuIiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2YzRjNWFiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMmM4M2Q0ZGJcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9zZXJwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY2YzRjNWFiJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiwgZnVuY3Rpb24oKSB7XG4gICAgIHZhciBuZXdDb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlcnAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NjZjNGM1YWImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvKipcbiAqIFRyYW5zbGF0ZXMgdGhlIGxpc3QgZm9ybWF0IHByb2R1Y2VkIGJ5IGNzcy1sb2FkZXIgaW50byBzb21ldGhpbmdcbiAqIGVhc2llciB0byBtYW5pcHVsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0VG9TdHlsZXMgKHBhcmVudElkLCBsaXN0KSB7XG4gIHZhciBzdHlsZXMgPSBbXVxuICB2YXIgbmV3U3R5bGVzID0ge31cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgdmFyIGlkID0gaXRlbVswXVxuICAgIHZhciBjc3MgPSBpdGVtWzFdXG4gICAgdmFyIG1lZGlhID0gaXRlbVsyXVxuICAgIHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdXG4gICAgdmFyIHBhcnQgPSB7XG4gICAgICBpZDogcGFyZW50SWQgKyAnOicgKyBpLFxuICAgICAgY3NzOiBjc3MsXG4gICAgICBtZWRpYTogbWVkaWEsXG4gICAgICBzb3VyY2VNYXA6IHNvdXJjZU1hcFxuICAgIH1cbiAgICBpZiAoIW5ld1N0eWxlc1tpZF0pIHtcbiAgICAgIHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7IGlkOiBpZCwgcGFydHM6IFtwYXJ0XSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTdHlsZXNbaWRdLnBhcnRzLnB1c2gocGFydClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0eWxlc1xufVxuIiwiLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuICBNb2RpZmllZCBieSBFdmFuIFlvdSBAeXl4OTkwODAzXG4qL1xuXG5pbXBvcnQgbGlzdFRvU3R5bGVzIGZyb20gJy4vbGlzdFRvU3R5bGVzJ1xuXG52YXIgaGFzRG9jdW1lbnQgPSB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG5cbmlmICh0eXBlb2YgREVCVUcgIT09ICd1bmRlZmluZWQnICYmIERFQlVHKSB7XG4gIGlmICghaGFzRG9jdW1lbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ3Z1ZS1zdHlsZS1sb2FkZXIgY2Fubm90IGJlIHVzZWQgaW4gYSBub24tYnJvd3NlciBlbnZpcm9ubWVudC4gJyArXG4gICAgXCJVc2UgeyB0YXJnZXQ6ICdub2RlJyB9IGluIHlvdXIgV2VicGFjayBjb25maWcgdG8gaW5kaWNhdGUgYSBzZXJ2ZXItcmVuZGVyaW5nIGVudmlyb25tZW50LlwiXG4gICkgfVxufVxuXG4vKlxudHlwZSBTdHlsZU9iamVjdCA9IHtcbiAgaWQ6IG51bWJlcjtcbiAgcGFydHM6IEFycmF5PFN0eWxlT2JqZWN0UGFydD5cbn1cblxudHlwZSBTdHlsZU9iamVjdFBhcnQgPSB7XG4gIGNzczogc3RyaW5nO1xuICBtZWRpYTogc3RyaW5nO1xuICBzb3VyY2VNYXA6ID9zdHJpbmdcbn1cbiovXG5cbnZhciBzdHlsZXNJbkRvbSA9IHsvKlxuICBbaWQ6IG51bWJlcl06IHtcbiAgICBpZDogbnVtYmVyLFxuICAgIHJlZnM6IG51bWJlcixcbiAgICBwYXJ0czogQXJyYXk8KG9iaj86IFN0eWxlT2JqZWN0UGFydCkgPT4gdm9pZD5cbiAgfVxuKi99XG5cbnZhciBoZWFkID0gaGFzRG9jdW1lbnQgJiYgKGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSlcbnZhciBzaW5nbGV0b25FbGVtZW50ID0gbnVsbFxudmFyIHNpbmdsZXRvbkNvdW50ZXIgPSAwXG52YXIgaXNQcm9kdWN0aW9uID0gZmFsc2VcbnZhciBub29wID0gZnVuY3Rpb24gKCkge31cbnZhciBvcHRpb25zID0gbnVsbFxudmFyIHNzcklkS2V5ID0gJ2RhdGEtdnVlLXNzci1pZCdcblxuLy8gRm9yY2Ugc2luZ2xlLXRhZyBzb2x1dGlvbiBvbiBJRTYtOSwgd2hpY2ggaGFzIGEgaGFyZCBsaW1pdCBvbiB0aGUgIyBvZiA8c3R5bGU+XG4vLyB0YWdzIGl0IHdpbGwgYWxsb3cgb24gYSBwYWdlXG52YXIgaXNPbGRJRSA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9tc2llIFs2LTldXFxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSlcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkU3R5bGVzQ2xpZW50IChwYXJlbnRJZCwgbGlzdCwgX2lzUHJvZHVjdGlvbiwgX29wdGlvbnMpIHtcbiAgaXNQcm9kdWN0aW9uID0gX2lzUHJvZHVjdGlvblxuXG4gIG9wdGlvbnMgPSBfb3B0aW9ucyB8fCB7fVxuXG4gIHZhciBzdHlsZXMgPSBsaXN0VG9TdHlsZXMocGFyZW50SWQsIGxpc3QpXG4gIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcblxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlIChuZXdMaXN0KSB7XG4gICAgdmFyIG1heVJlbW92ZSA9IFtdXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpdGVtID0gc3R5bGVzW2ldXG4gICAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgICAgZG9tU3R5bGUucmVmcy0tXG4gICAgICBtYXlSZW1vdmUucHVzaChkb21TdHlsZSlcbiAgICB9XG4gICAgaWYgKG5ld0xpc3QpIHtcbiAgICAgIHN0eWxlcyA9IGxpc3RUb1N0eWxlcyhwYXJlbnRJZCwgbmV3TGlzdClcbiAgICAgIGFkZFN0eWxlc1RvRG9tKHN0eWxlcylcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVzID0gW11cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXlSZW1vdmUubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkb21TdHlsZSA9IG1heVJlbW92ZVtpXVxuICAgICAgaWYgKGRvbVN0eWxlLnJlZnMgPT09IDApIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkb21TdHlsZS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKClcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgc3R5bGVzSW5Eb21bZG9tU3R5bGUuaWRdXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlc1RvRG9tIChzdHlsZXMgLyogQXJyYXk8U3R5bGVPYmplY3Q+ICovKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBzdHlsZXNbaV1cbiAgICB2YXIgZG9tU3R5bGUgPSBzdHlsZXNJbkRvbVtpdGVtLmlkXVxuICAgIGlmIChkb21TdHlsZSkge1xuICAgICAgZG9tU3R5bGUucmVmcysrXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzW2pdKGl0ZW0ucGFydHNbal0pXG4gICAgICB9XG4gICAgICBmb3IgKDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdKSlcbiAgICAgIH1cbiAgICAgIGlmIChkb21TdHlsZS5wYXJ0cy5sZW5ndGggPiBpdGVtLnBhcnRzLmxlbmd0aCkge1xuICAgICAgICBkb21TdHlsZS5wYXJ0cy5sZW5ndGggPSBpdGVtLnBhcnRzLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcGFydHMgPSBbXVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSkpXG4gICAgICB9XG4gICAgICBzdHlsZXNJbkRvbVtpdGVtLmlkXSA9IHsgaWQ6IGl0ZW0uaWQsIHJlZnM6IDEsIHBhcnRzOiBwYXJ0cyB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0eWxlRWxlbWVudCAoKSB7XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpXG4gIHN0eWxlRWxlbWVudC50eXBlID0gJ3RleHQvY3NzJ1xuICBoZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudClcbiAgcmV0dXJuIHN0eWxlRWxlbWVudFxufVxuXG5mdW5jdGlvbiBhZGRTdHlsZSAob2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICB2YXIgdXBkYXRlLCByZW1vdmVcbiAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlWycgKyBzc3JJZEtleSArICd+PVwiJyArIG9iai5pZCArICdcIl0nKVxuXG4gIGlmIChzdHlsZUVsZW1lbnQpIHtcbiAgICBpZiAoaXNQcm9kdWN0aW9uKSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBhbmQgaW4gcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgLy8gc2ltcGx5IGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gbm9vcFxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBoYXMgU1NSIHN0eWxlcyBidXQgaW4gZGV2IG1vZGUuXG4gICAgICAvLyBmb3Igc29tZSByZWFzb24gQ2hyb21lIGNhbid0IGhhbmRsZSBzb3VyY2UgbWFwIGluIHNlcnZlci1yZW5kZXJlZFxuICAgICAgLy8gc3R5bGUgdGFncyAtIHNvdXJjZSBtYXBzIGluIDxzdHlsZT4gb25seSB3b3JrcyBpZiB0aGUgc3R5bGUgdGFnIGlzXG4gICAgICAvLyBjcmVhdGVkIGFuZCBpbnNlcnRlZCBkeW5hbWljYWxseS4gU28gd2UgcmVtb3ZlIHRoZSBzZXJ2ZXIgcmVuZGVyZWRcbiAgICAgIC8vIHN0eWxlcyBhbmQgaW5qZWN0IG5ldyBvbmVzLlxuICAgICAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIGlmIChpc09sZElFKSB7XG4gICAgLy8gdXNlIHNpbmdsZXRvbiBtb2RlIGZvciBJRTkuXG4gICAgdmFyIHN0eWxlSW5kZXggPSBzaW5nbGV0b25Db3VudGVyKytcbiAgICBzdHlsZUVsZW1lbnQgPSBzaW5nbGV0b25FbGVtZW50IHx8IChzaW5nbGV0b25FbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KCkpXG4gICAgdXBkYXRlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgZmFsc2UpXG4gICAgcmVtb3ZlID0gYXBwbHlUb1NpbmdsZXRvblRhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudCwgc3R5bGVJbmRleCwgdHJ1ZSlcbiAgfSBlbHNlIHtcbiAgICAvLyB1c2UgbXVsdGktc3R5bGUtdGFnIG1vZGUgaW4gYWxsIG90aGVyIGNhc2VzXG4gICAgc3R5bGVFbGVtZW50ID0gY3JlYXRlU3R5bGVFbGVtZW50KClcbiAgICB1cGRhdGUgPSBhcHBseVRvVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50KVxuICAgIHJlbW92ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICB1cGRhdGUob2JqKVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVTdHlsZSAobmV3T2JqIC8qIFN0eWxlT2JqZWN0UGFydCAqLykge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmXG4gICAgICAgICAgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiZcbiAgICAgICAgICBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdXBkYXRlKG9iaiA9IG5ld09iailcbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlKClcbiAgICB9XG4gIH1cbn1cblxudmFyIHJlcGxhY2VUZXh0ID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRleHRTdG9yZSA9IFtdXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIChpbmRleCwgcmVwbGFjZW1lbnQpIHtcbiAgICB0ZXh0U3RvcmVbaW5kZXhdID0gcmVwbGFjZW1lbnRcbiAgICByZXR1cm4gdGV4dFN0b3JlLmZpbHRlcihCb29sZWFuKS5qb2luKCdcXG4nKVxuICB9XG59KSgpXG5cbmZ1bmN0aW9uIGFwcGx5VG9TaW5nbGV0b25UYWcgKHN0eWxlRWxlbWVudCwgaW5kZXgsIHJlbW92ZSwgb2JqKSB7XG4gIHZhciBjc3MgPSByZW1vdmUgPyAnJyA6IG9iai5jc3NcblxuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gcmVwbGFjZVRleHQoaW5kZXgsIGNzcylcbiAgfSBlbHNlIHtcbiAgICB2YXIgY3NzTm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcylcbiAgICB2YXIgY2hpbGROb2RlcyA9IHN0eWxlRWxlbWVudC5jaGlsZE5vZGVzXG4gICAgaWYgKGNoaWxkTm9kZXNbaW5kZXhdKSBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGROb2Rlc1tpbmRleF0pXG4gICAgaWYgKGNoaWxkTm9kZXMubGVuZ3RoKSB7XG4gICAgICBzdHlsZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNzc05vZGUsIGNoaWxkTm9kZXNbaW5kZXhdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoY3NzTm9kZSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlUb1RhZyAoc3R5bGVFbGVtZW50LCBvYmopIHtcbiAgdmFyIGNzcyA9IG9iai5jc3NcbiAgdmFyIG1lZGlhID0gb2JqLm1lZGlhXG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwXG5cbiAgaWYgKG1lZGlhKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWVkaWEnLCBtZWRpYSlcbiAgfVxuICBpZiAob3B0aW9ucy5zc3JJZCkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoc3NySWRLZXksIG9iai5pZClcbiAgfVxuXG4gIGlmIChzb3VyY2VNYXApIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5jaHJvbWUuY29tL2RldnRvb2xzL2RvY3MvamF2YXNjcmlwdC1kZWJ1Z2dpbmdcbiAgICAvLyB0aGlzIG1ha2VzIHNvdXJjZSBtYXBzIGluc2lkZSBzdHlsZSB0YWdzIHdvcmsgcHJvcGVybHkgaW4gQ2hyb21lXG4gICAgY3NzICs9ICdcXG4vKiMgc291cmNlVVJMPScgKyBzb3VyY2VNYXAuc291cmNlc1swXSArICcgKi8nXG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjY2MDM4NzVcbiAgICBjc3MgKz0gJ1xcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJyArIGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSkgKyAnICovJ1xuICB9XG5cbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKVxuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSlcbiAgfVxufVxuIiwiaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL3Z1ZS5jb21tb24ucHJvZC5qcycpXG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vdnVlLmNvbW1vbi5kZXYuanMnKVxufVxuIiwiLyohXG4gKiBWdWUuanMgdjIuNi4xMlxuICogKGMpIDIwMTQtMjAyMCBFdmFuIFlvdVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG5cInVzZSBzdHJpY3RcIjt2YXIgZT1PYmplY3QuZnJlZXplKHt9KTtmdW5jdGlvbiB0KGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIG4oZSl7cmV0dXJuIG51bGwhPWV9ZnVuY3Rpb24gcihlKXtyZXR1cm4hMD09PWV9ZnVuY3Rpb24gaShlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZXx8XCJudW1iZXJcIj09dHlwZW9mIGV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9PWUmJlwib2JqZWN0XCI9PXR5cGVvZiBlfXZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gcyhlKXtyZXR1cm5cIltvYmplY3QgT2JqZWN0XVwiPT09YS5jYWxsKGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9cGFyc2VGbG9hdChTdHJpbmcoZSkpO3JldHVybiB0Pj0wJiZNYXRoLmZsb29yKHQpPT09dCYmaXNGaW5pdGUoZSl9ZnVuY3Rpb24gdShlKXtyZXR1cm4gbihlKSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmNhdGNofWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGw9PWU/XCJcIjpBcnJheS5pc0FycmF5KGUpfHxzKGUpJiZlLnRvU3RyaW5nPT09YT9KU09OLnN0cmluZ2lmeShlLG51bGwsMik6U3RyaW5nKGUpfWZ1bmN0aW9uIGYoZSl7dmFyIHQ9cGFyc2VGbG9hdChlKTtyZXR1cm4gaXNOYU4odCk/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPWUuc3BsaXQoXCIsXCIpLGk9MDtpPHIubGVuZ3RoO2krKyluW3JbaV1dPSEwO3JldHVybiB0P2Z1bmN0aW9uKGUpe3JldHVybiBuW2UudG9Mb3dlckNhc2UoKV19OmZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfX12YXIgZD1wKFwic2xvdCxjb21wb25lbnRcIiwhMCksdj1wKFwia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXNcIik7ZnVuY3Rpb24gaChlLHQpe2lmKGUubGVuZ3RoKXt2YXIgbj1lLmluZGV4T2YodCk7aWYobj4tMSlyZXR1cm4gZS5zcGxpY2UobiwxKX19dmFyIG09T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB5KGUsdCl7cmV0dXJuIG0uY2FsbChlLHQpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIHRbbl18fCh0W25dPWUobikpfX12YXIgXz0vLShcXHcpL2csYj1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoXyxmdW5jdGlvbihlLHQpe3JldHVybiB0P3QudG9VcHBlckNhc2UoKTpcIlwifSl9KSwkPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pLHc9L1xcQihbQS1aXSkvZyxDPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSh3LFwiLSQxXCIpLnRvTG93ZXJDYXNlKCl9KTt2YXIgeD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZD9mdW5jdGlvbihlLHQpe3JldHVybiBlLmJpbmQodCl9OmZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufTtmdW5jdGlvbiBrKGUsdCl7dD10fHwwO2Zvcih2YXIgbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO24tLTspcltuXT1lW24rdF07cmV0dXJuIHJ9ZnVuY3Rpb24gQShlLHQpe2Zvcih2YXIgbiBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBPKGUpe2Zvcih2YXIgdD17fSxuPTA7bjxlLmxlbmd0aDtuKyspZVtuXSYmQSh0LGVbbl0pO3JldHVybiB0fWZ1bmN0aW9uIFMoZSx0LG4pe312YXIgVD1mdW5jdGlvbihlLHQsbil7cmV0dXJuITF9LEU9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9O2Z1bmN0aW9uIE4oZSx0KXtpZihlPT09dClyZXR1cm4hMDt2YXIgbj1vKGUpLHI9byh0KTtpZighbnx8IXIpcmV0dXJuIW4mJiFyJiZTdHJpbmcoZSk9PT1TdHJpbmcodCk7dHJ5e3ZhciBpPUFycmF5LmlzQXJyYXkoZSksYT1BcnJheS5pc0FycmF5KHQpO2lmKGkmJmEpcmV0dXJuIGUubGVuZ3RoPT09dC5sZW5ndGgmJmUuZXZlcnkoZnVuY3Rpb24oZSxuKXtyZXR1cm4gTihlLHRbbl0pfSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIHM9T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gcy5sZW5ndGg9PT1jLmxlbmd0aCYmcy5ldmVyeShmdW5jdGlvbihuKXtyZXR1cm4gTihlW25dLHRbbl0pfSl9Y2F0Y2goZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGooZSx0KXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihOKGVbbl0sdCkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gRChlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBMPVwiZGF0YS1zZXJ2ZXItcmVuZGVyZWRcIixNPVtcImNvbXBvbmVudFwiLFwiZGlyZWN0aXZlXCIsXCJmaWx0ZXJcIl0sST1bXCJiZWZvcmVDcmVhdGVcIixcImNyZWF0ZWRcIixcImJlZm9yZU1vdW50XCIsXCJtb3VudGVkXCIsXCJiZWZvcmVVcGRhdGVcIixcInVwZGF0ZWRcIixcImJlZm9yZURlc3Ryb3lcIixcImRlc3Ryb3llZFwiLFwiYWN0aXZhdGVkXCIsXCJkZWFjdGl2YXRlZFwiLFwiZXJyb3JDYXB0dXJlZFwiLFwic2VydmVyUHJlZmV0Y2hcIl0sRj17b3B0aW9uTWVyZ2VTdHJhdGVnaWVzOk9iamVjdC5jcmVhdGUobnVsbCksc2lsZW50OiExLHByb2R1Y3Rpb25UaXA6ITEsZGV2dG9vbHM6ITEscGVyZm9ybWFuY2U6ITEsZXJyb3JIYW5kbGVyOm51bGwsd2FybkhhbmRsZXI6bnVsbCxpZ25vcmVkRWxlbWVudHM6W10sa2V5Q29kZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxpc1Jlc2VydmVkVGFnOlQsaXNSZXNlcnZlZEF0dHI6VCxpc1Vua25vd25FbGVtZW50OlQsZ2V0VGFnTmFtZXNwYWNlOlMscGFyc2VQbGF0Zm9ybVRhZ05hbWU6RSxtdXN0VXNlUHJvcDpULGFzeW5jOiEwLF9saWZlY3ljbGVIb29rczpJfSxQPS9hLXpBLVpcXHUwMEI3XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjAzRi1cXHUyMDQwXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZELztmdW5jdGlvbiBSKGUsdCxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIEg9bmV3IFJlZ0V4cChcIlteXCIrUC5zb3VyY2UrXCIuJF9cXFxcZF1cIik7dmFyIEIsVT1cIl9fcHJvdG9fX1wiaW57fSx6PVwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3csVj1cInVuZGVmaW5lZFwiIT10eXBlb2YgV1hFbnZpcm9ubWVudCYmISFXWEVudmlyb25tZW50LnBsYXRmb3JtLEs9ViYmV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpLEo9eiYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxxPUomJi9tc2llfHRyaWRlbnQvLnRlc3QoSiksVz1KJiZKLmluZGV4T2YoXCJtc2llIDkuMFwiKT4wLFo9SiYmSi5pbmRleE9mKFwiZWRnZS9cIik+MCxHPShKJiZKLmluZGV4T2YoXCJhbmRyb2lkXCIpLEomJi9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChKKXx8XCJpb3NcIj09PUspLFg9KEomJi9jaHJvbWVcXC9cXGQrLy50ZXN0KEopLEomJi9waGFudG9tanMvLnRlc3QoSiksSiYmSi5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pKSxZPXt9LndhdGNoLFE9ITE7aWYoeil0cnl7dmFyIGVlPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSxcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7UT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInRlc3QtcGFzc2l2ZVwiLG51bGwsZWUpfWNhdGNoKGUpe312YXIgdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09QiYmKEI9IXomJiFWJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgZ2xvYmFsJiYoZ2xvYmFsLnByb2Nlc3MmJlwic2VydmVyXCI9PT1nbG9iYWwucHJvY2Vzcy5lbnYuVlVFX0VOVikpLEJ9LG5lPXomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIHJlKGUpe3JldHVyblwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJi9uYXRpdmUgY29kZS8udGVzdChlLnRvU3RyaW5nKCkpfXZhciBpZSxvZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZyZShTeW1ib2wpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgUmVmbGVjdCYmcmUoUmVmbGVjdC5vd25LZXlzKTtpZT1cInVuZGVmaW5lZFwiIT10eXBlb2YgU2V0JiZyZShTZXQpP1NldDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10aGlzLnNldFtlXX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3RoaXMuc2V0W2VdPSEwfSxlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9LGV9KCk7dmFyIGFlPVMsc2U9MCxjZT1mdW5jdGlvbigpe3RoaXMuaWQ9c2UrKyx0aGlzLnN1YnM9W119O2NlLnByb3RvdHlwZS5hZGRTdWI9ZnVuY3Rpb24oZSl7dGhpcy5zdWJzLnB1c2goZSl9LGNlLnByb3RvdHlwZS5yZW1vdmVTdWI9ZnVuY3Rpb24oZSl7aCh0aGlzLnN1YnMsZSl9LGNlLnByb3RvdHlwZS5kZXBlbmQ9ZnVuY3Rpb24oKXtjZS50YXJnZXQmJmNlLnRhcmdldC5hZGREZXAodGhpcyl9LGNlLnByb3RvdHlwZS5ub3RpZnk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zdWJzLnNsaWNlKCksdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyllW3RdLnVwZGF0ZSgpfSxjZS50YXJnZXQ9bnVsbDt2YXIgdWU9W107ZnVuY3Rpb24gbGUoZSl7dWUucHVzaChlKSxjZS50YXJnZXQ9ZX1mdW5jdGlvbiBmZSgpe3VlLnBvcCgpLGNlLnRhcmdldD11ZVt1ZS5sZW5ndGgtMV19dmFyIHBlPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEscyl7dGhpcy50YWc9ZSx0aGlzLmRhdGE9dCx0aGlzLmNoaWxkcmVuPW4sdGhpcy50ZXh0PXIsdGhpcy5lbG09aSx0aGlzLm5zPXZvaWQgMCx0aGlzLmNvbnRleHQ9byx0aGlzLmZuQ29udGV4dD12b2lkIDAsdGhpcy5mbk9wdGlvbnM9dm9pZCAwLHRoaXMuZm5TY29wZUlkPXZvaWQgMCx0aGlzLmtleT10JiZ0LmtleSx0aGlzLmNvbXBvbmVudE9wdGlvbnM9YSx0aGlzLmNvbXBvbmVudEluc3RhbmNlPXZvaWQgMCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5yYXc9ITEsdGhpcy5pc1N0YXRpYz0hMSx0aGlzLmlzUm9vdEluc2VydD0hMCx0aGlzLmlzQ29tbWVudD0hMSx0aGlzLmlzQ2xvbmVkPSExLHRoaXMuaXNPbmNlPSExLHRoaXMuYXN5bmNGYWN0b3J5PXMsdGhpcy5hc3luY01ldGE9dm9pZCAwLHRoaXMuaXNBc3luY1BsYWNlaG9sZGVyPSExfSxkZT17Y2hpbGQ6e2NvbmZpZ3VyYWJsZTohMH19O2RlLmNoaWxkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudEluc3RhbmNlfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhwZS5wcm90b3R5cGUsZGUpO3ZhciB2ZT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT1cIlwiKTt2YXIgdD1uZXcgcGU7cmV0dXJuIHQudGV4dD1lLHQuaXNDb21tZW50PSEwLHR9O2Z1bmN0aW9uIGhlKGUpe3JldHVybiBuZXcgcGUodm9pZCAwLHZvaWQgMCx2b2lkIDAsU3RyaW5nKGUpKX1mdW5jdGlvbiBtZShlKXt2YXIgdD1uZXcgcGUoZS50YWcsZS5kYXRhLGUuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc2xpY2UoKSxlLnRleHQsZS5lbG0sZS5jb250ZXh0LGUuY29tcG9uZW50T3B0aW9ucyxlLmFzeW5jRmFjdG9yeSk7cmV0dXJuIHQubnM9ZS5ucyx0LmlzU3RhdGljPWUuaXNTdGF0aWMsdC5rZXk9ZS5rZXksdC5pc0NvbW1lbnQ9ZS5pc0NvbW1lbnQsdC5mbkNvbnRleHQ9ZS5mbkNvbnRleHQsdC5mbk9wdGlvbnM9ZS5mbk9wdGlvbnMsdC5mblNjb3BlSWQ9ZS5mblNjb3BlSWQsdC5hc3luY01ldGE9ZS5hc3luY01ldGEsdC5pc0Nsb25lZD0hMCx0fXZhciB5ZT1BcnJheS5wcm90b3R5cGUsZ2U9T2JqZWN0LmNyZWF0ZSh5ZSk7W1wicHVzaFwiLFwicG9wXCIsXCJzaGlmdFwiLFwidW5zaGlmdFwiLFwic3BsaWNlXCIsXCJzb3J0XCIsXCJyZXZlcnNlXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9eWVbZV07UihnZSxlLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDtyLS07KW5bcl09YXJndW1lbnRzW3JdO3ZhciBpLG89dC5hcHBseSh0aGlzLG4pLGE9dGhpcy5fX29iX187c3dpdGNoKGUpe2Nhc2VcInB1c2hcIjpjYXNlXCJ1bnNoaWZ0XCI6aT1uO2JyZWFrO2Nhc2VcInNwbGljZVwiOmk9bi5zbGljZSgyKX1yZXR1cm4gaSYmYS5vYnNlcnZlQXJyYXkoaSksYS5kZXAubm90aWZ5KCksb30pfSk7dmFyIF9lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGdlKSxiZT0hMDtmdW5jdGlvbiAkZShlKXtiZT1lfXZhciB3ZT1mdW5jdGlvbihlKXt2YXIgdDt0aGlzLnZhbHVlPWUsdGhpcy5kZXA9bmV3IGNlLHRoaXMudm1Db3VudD0wLFIoZSxcIl9fb2JfX1wiLHRoaXMpLEFycmF5LmlzQXJyYXkoZSk/KFU/KHQ9Z2UsZS5fX3Byb3RvX189dCk6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIG89bltyXTtSKGUsbyx0W29dKX19KGUsZ2UsX2UpLHRoaXMub2JzZXJ2ZUFycmF5KGUpKTp0aGlzLndhbGsoZSl9O2Z1bmN0aW9uIENlKGUsdCl7dmFyIG47aWYobyhlKSYmIShlIGluc3RhbmNlb2YgcGUpKXJldHVybiB5KGUsXCJfX29iX19cIikmJmUuX19vYl9fIGluc3RhbmNlb2Ygd2U/bj1lLl9fb2JfXzpiZSYmIXRlKCkmJihBcnJheS5pc0FycmF5KGUpfHxzKGUpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSYmIWUuX2lzVnVlJiYobj1uZXcgd2UoZSkpLHQmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24geGUoZSx0LG4scixpKXt2YXIgbz1uZXcgY2UsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYoIWF8fCExIT09YS5jb25maWd1cmFibGUpe3ZhciBzPWEmJmEuZ2V0LGM9YSYmYS5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj1lW3RdKTt2YXIgdT0haSYmQ2Uobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9cz9zLmNhbGwoZSk6bjtyZXR1cm4gY2UudGFyZ2V0JiYoby5kZXBlbmQoKSx1JiYodS5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheSh0KSYmZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dm9pZCAwLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspKG49dFtyXSkmJm4uX19vYl9fJiZuLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShuKSYmZShuKX0odCkpKSx0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIHI9cz9zLmNhbGwoZSk6bjt0PT09cnx8dCE9dCYmciE9cnx8cyYmIWN8fChjP2MuY2FsbChlLHQpOm49dCx1PSFpJiZDZSh0KSxvLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24ga2UoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkmJmModCkpcmV0dXJuIGUubGVuZ3RoPU1hdGgubWF4KGUubGVuZ3RoLHQpLGUuc3BsaWNlKHQsMSxuKSxuO2lmKHQgaW4gZSYmISh0IGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiBlW3RdPW4sbjt2YXIgcj1lLl9fb2JfXztyZXR1cm4gZS5faXNWdWV8fHImJnIudm1Db3VudD9uOnI/KHhlKHIudmFsdWUsdCxuKSxyLmRlcC5ub3RpZnkoKSxuKTooZVt0XT1uLG4pfWZ1bmN0aW9uIEFlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSllLnNwbGljZSh0LDEpO2Vsc2V7dmFyIG49ZS5fX29iX187ZS5faXNWdWV8fG4mJm4udm1Db3VudHx8eShlLHQpJiYoZGVsZXRlIGVbdF0sbiYmbi5kZXAubm90aWZ5KCkpfX13ZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7bisrKXhlKGUsdFtuXSl9LHdlLnByb3RvdHlwZS5vYnNlcnZlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKUNlKGVbdF0pfTt2YXIgT2U9Ri5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7ZnVuY3Rpb24gU2UoZSx0KXtpZighdClyZXR1cm4gZTtmb3IodmFyIG4scixpLG89b2U/UmVmbGVjdC5vd25LZXlzKHQpOk9iamVjdC5rZXlzKHQpLGE9MDthPG8ubGVuZ3RoO2ErKylcIl9fb2JfX1wiIT09KG49b1thXSkmJihyPWVbbl0saT10W25dLHkoZSxuKT9yIT09aSYmcyhyKSYmcyhpKSYmU2UocixpKTprZShlLG4saSkpO3JldHVybiBlfWZ1bmN0aW9uIFRlKGUsdCxuKXtyZXR1cm4gbj9mdW5jdGlvbigpe3ZhciByPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dC5jYWxsKG4sbik6dCxpPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZS5jYWxsKG4sbik6ZTtyZXR1cm4gcj9TZShyLGkpOml9OnQ/ZT9mdW5jdGlvbigpe3JldHVybiBTZShcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3QuY2FsbCh0aGlzLHRoaXMpOnQsXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lLmNhbGwodGhpcyx0aGlzKTplKX06dDplfWZ1bmN0aW9uIEVlKGUsdCl7dmFyIG49dD9lP2UuY29uY2F0KHQpOkFycmF5LmlzQXJyYXkodCk/dDpbdF06ZTtyZXR1cm4gbj9mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKS0xPT09dC5pbmRleE9mKGVbbl0pJiZ0LnB1c2goZVtuXSk7cmV0dXJuIHR9KG4pOm59ZnVuY3Rpb24gTmUoZSx0LG4scil7dmFyIGk9T2JqZWN0LmNyZWF0ZShlfHxudWxsKTtyZXR1cm4gdD9BKGksdCk6aX1PZS5kYXRhPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj9UZShlLHQsbik6dCYmXCJmdW5jdGlvblwiIT10eXBlb2YgdD9lOlRlKGUsdCl9LEkuZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlXT1FZX0pLE0uZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlK1wic1wiXT1OZX0pLE9lLndhdGNoPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKGU9PT1ZJiYoZT12b2lkIDApLHQ9PT1ZJiYodD12b2lkIDApLCF0KXJldHVybiBPYmplY3QuY3JlYXRlKGV8fG51bGwpO2lmKCFlKXJldHVybiB0O3ZhciBpPXt9O2Zvcih2YXIgbyBpbiBBKGksZSksdCl7dmFyIGE9aVtvXSxzPXRbb107YSYmIUFycmF5LmlzQXJyYXkoYSkmJihhPVthXSksaVtvXT1hP2EuY29uY2F0KHMpOkFycmF5LmlzQXJyYXkocyk/czpbc119cmV0dXJuIGl9LE9lLnByb3BzPU9lLm1ldGhvZHM9T2UuaW5qZWN0PU9lLmNvbXB1dGVkPWZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFlKXJldHVybiB0O3ZhciBpPU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIEEoaSxlKSx0JiZBKGksdCksaX0sT2UucHJvdmlkZT1UZTt2YXIgamU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD9lOnR9O2Z1bmN0aW9uIERlKGUsdCxuKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0JiYodD10Lm9wdGlvbnMpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wcm9wcztpZihuKXt2YXIgcixpLG89e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3Iocj1uLmxlbmd0aDtyLS07KVwic3RyaW5nXCI9PXR5cGVvZihpPW5bcl0pJiYob1tiKGkpXT17dHlwZTpudWxsfSk7ZWxzZSBpZihzKG4pKWZvcih2YXIgYSBpbiBuKWk9blthXSxvW2IoYSldPXMoaSk/aTp7dHlwZTppfTtlLnByb3BzPW99fSh0KSxmdW5jdGlvbihlLHQpe3ZhciBuPWUuaW5qZWN0O2lmKG4pe3ZhciByPWUuaW5qZWN0PXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspcltuW2ldXT17ZnJvbTpuW2ldfTtlbHNlIGlmKHMobikpZm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107cltvXT1zKGEpP0Eoe2Zyb206b30sYSk6e2Zyb206YX19fX0odCksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXJlY3RpdmVzO2lmKHQpZm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07XCJmdW5jdGlvblwiPT10eXBlb2YgciYmKHRbbl09e2JpbmQ6cix1cGRhdGU6cn0pfX0odCksIXQuX2Jhc2UmJih0LmV4dGVuZHMmJihlPURlKGUsdC5leHRlbmRzLG4pKSx0Lm1peGlucykpZm9yKHZhciByPTAsaT10Lm1peGlucy5sZW5ndGg7cjxpO3IrKyllPURlKGUsdC5taXhpbnNbcl0sbik7dmFyIG8sYT17fTtmb3IobyBpbiBlKWMobyk7Zm9yKG8gaW4gdCl5KGUsbyl8fGMobyk7ZnVuY3Rpb24gYyhyKXt2YXIgaT1PZVtyXXx8amU7YVtyXT1pKGVbcl0sdFtyXSxuLHIpfXJldHVybiBhfWZ1bmN0aW9uIExlKGUsdCxuLHIpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXt2YXIgaT1lW3RdO2lmKHkoaSxuKSlyZXR1cm4gaVtuXTt2YXIgbz1iKG4pO2lmKHkoaSxvKSlyZXR1cm4gaVtvXTt2YXIgYT0kKG8pO3JldHVybiB5KGksYSk/aVthXTppW25dfHxpW29dfHxpW2FdfX1mdW5jdGlvbiBNZShlLHQsbixyKXt2YXIgaT10W2VdLG89IXkobixlKSxhPW5bZV0scz1QZShCb29sZWFuLGkudHlwZSk7aWYocz4tMSlpZihvJiYheShpLFwiZGVmYXVsdFwiKSlhPSExO2Vsc2UgaWYoXCJcIj09PWF8fGE9PT1DKGUpKXt2YXIgYz1QZShTdHJpbmcsaS50eXBlKTsoYzwwfHxzPGMpJiYoYT0hMCl9aWYodm9pZCAwPT09YSl7YT1mdW5jdGlvbihlLHQsbil7aWYoIXkodCxcImRlZmF1bHRcIikpcmV0dXJuO3ZhciByPXQuZGVmYXVsdDtpZihlJiZlLiRvcHRpb25zLnByb3BzRGF0YSYmdm9pZCAwPT09ZS4kb3B0aW9ucy5wcm9wc0RhdGFbbl0mJnZvaWQgMCE9PWUuX3Byb3BzW25dKXJldHVybiBlLl9wcm9wc1tuXTtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiByJiZcIkZ1bmN0aW9uXCIhPT1JZSh0LnR5cGUpP3IuY2FsbChlKTpyfShyLGksZSk7dmFyIHU9YmU7JGUoITApLENlKGEpLCRlKHUpfXJldHVybiBhfWZ1bmN0aW9uIEllKGUpe3ZhciB0PWUmJmUudG9TdHJpbmcoKS5tYXRjaCgvXlxccypmdW5jdGlvbiAoXFx3KykvKTtyZXR1cm4gdD90WzFdOlwiXCJ9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm4gSWUoZSk9PT1JZSh0KX1mdW5jdGlvbiBQZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBGZSh0LGUpPzA6LTE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7bisrKWlmKEZlKHRbbl0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gUmUoZSx0LG4pe2xlKCk7dHJ5e2lmKHQpZm9yKHZhciByPXQ7cj1yLiRwYXJlbnQ7KXt2YXIgaT1yLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7aWYoaSlmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl0cnl7aWYoITE9PT1pW29dLmNhbGwocixlLHQsbikpcmV0dXJufWNhdGNoKGUpe0JlKGUscixcImVycm9yQ2FwdHVyZWQgaG9va1wiKX19QmUoZSx0LG4pfWZpbmFsbHl7ZmUoKX19ZnVuY3Rpb24gSGUoZSx0LG4scixpKXt2YXIgbzt0cnl7KG89bj9lLmFwcGx5KHQsbik6ZS5jYWxsKHQpKSYmIW8uX2lzVnVlJiZ1KG8pJiYhby5faGFuZGxlZCYmKG8uY2F0Y2goZnVuY3Rpb24oZSl7cmV0dXJuIFJlKGUscixpK1wiIChQcm9taXNlL2FzeW5jKVwiKX0pLG8uX2hhbmRsZWQ9ITApfWNhdGNoKGUpe1JlKGUscixpKX1yZXR1cm4gb31mdW5jdGlvbiBCZShlLHQsbil7aWYoRi5lcnJvckhhbmRsZXIpdHJ5e3JldHVybiBGLmVycm9ySGFuZGxlci5jYWxsKG51bGwsZSx0LG4pfWNhdGNoKHQpe3QhPT1lJiZVZSh0LG51bGwsXCJjb25maWcuZXJyb3JIYW5kbGVyXCIpfVVlKGUsdCxuKX1mdW5jdGlvbiBVZShlLHQsbil7aWYoIXomJiFWfHxcInVuZGVmaW5lZFwiPT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIHplLFZlPSExLEtlPVtdLEplPSExO2Z1bmN0aW9uIHFlKCl7SmU9ITE7dmFyIGU9S2Uuc2xpY2UoMCk7S2UubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWlmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlJiZyZShQcm9taXNlKSl7dmFyIFdlPVByb21pc2UucmVzb2x2ZSgpO3plPWZ1bmN0aW9uKCl7V2UudGhlbihxZSksRyYmc2V0VGltZW91dChTKX0sVmU9ITB9ZWxzZSBpZihxfHxcInVuZGVmaW5lZFwiPT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcnx8IXJlKE11dGF0aW9uT2JzZXJ2ZXIpJiZcIltvYmplY3QgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yXVwiIT09TXV0YXRpb25PYnNlcnZlci50b1N0cmluZygpKXplPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGUmJnJlKHNldEltbWVkaWF0ZSk/ZnVuY3Rpb24oKXtzZXRJbW1lZGlhdGUocWUpfTpmdW5jdGlvbigpe3NldFRpbWVvdXQocWUsMCl9O2Vsc2V7dmFyIFplPTEsR2U9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocWUpLFhlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyhaZSkpO0dlLm9ic2VydmUoWGUse2NoYXJhY3RlckRhdGE6ITB9KSx6ZT1mdW5jdGlvbigpe1plPShaZSsxKSUyLFhlLmRhdGE9U3RyaW5nKFplKX0sVmU9ITB9ZnVuY3Rpb24gWWUoZSx0KXt2YXIgbjtpZihLZS5wdXNoKGZ1bmN0aW9uKCl7aWYoZSl0cnl7ZS5jYWxsKHQpfWNhdGNoKGUpe1JlKGUsdCxcIm5leHRUaWNrXCIpfWVsc2UgbiYmbih0KX0pLEplfHwoSmU9ITAsemUoKSksIWUmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtuPWV9KX12YXIgUWU9bmV3IGllO2Z1bmN0aW9uIGV0KGUpeyFmdW5jdGlvbiBlKHQsbil7dmFyIHIsaTt2YXIgYT1BcnJheS5pc0FycmF5KHQpO2lmKCFhJiYhbyh0KXx8T2JqZWN0LmlzRnJvemVuKHQpfHx0IGluc3RhbmNlb2YgcGUpcmV0dXJuO2lmKHQuX19vYl9fKXt2YXIgcz10Ll9fb2JfXy5kZXAuaWQ7aWYobi5oYXMocykpcmV0dXJuO24uYWRkKHMpfWlmKGEpZm9yKHI9dC5sZW5ndGg7ci0tOyllKHRbcl0sbik7ZWxzZSBmb3IoaT1PYmplY3Qua2V5cyh0KSxyPWkubGVuZ3RoO3ItLTspZSh0W2lbcl1dLG4pfShlLFFlKSxRZS5jbGVhcigpfXZhciB0dD1nKGZ1bmN0aW9uKGUpe3ZhciB0PVwiJlwiPT09ZS5jaGFyQXQoMCksbj1cIn5cIj09PShlPXQ/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCkscj1cIiFcIj09PShlPW4/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCk7cmV0dXJue25hbWU6ZT1yP2Uuc2xpY2UoMSk6ZSxvbmNlOm4sY2FwdHVyZTpyLHBhc3NpdmU6dH19KTtmdW5jdGlvbiBudChlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1hcmd1bWVudHMscj1uLmZucztpZighQXJyYXkuaXNBcnJheShyKSlyZXR1cm4gSGUocixudWxsLGFyZ3VtZW50cyx0LFwidi1vbiBoYW5kbGVyXCIpO2Zvcih2YXIgaT1yLnNsaWNlKCksbz0wO288aS5sZW5ndGg7bysrKUhlKGlbb10sbnVsbCxlLHQsXCJ2LW9uIGhhbmRsZXJcIil9cmV0dXJuIG4uZm5zPWUsbn1mdW5jdGlvbiBydChlLG4saSxvLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gZSl1PWVbY10sbD1uW2NdLGY9dHQoYyksdCh1KXx8KHQobCk/KHQodS5mbnMpJiYodT1lW2NdPW50KHUscykpLHIoZi5vbmNlKSYmKHU9ZVtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLGkoZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSxlW2NdPWwpKTtmb3IoYyBpbiBuKXQoZVtjXSkmJm8oKGY9dHQoYykpLm5hbWUsbltjXSxmLmNhcHR1cmUpfWZ1bmN0aW9uIGl0KGUsaSxvKXt2YXIgYTtlIGluc3RhbmNlb2YgcGUmJihlPWUuZGF0YS5ob29rfHwoZS5kYXRhLmhvb2s9e30pKTt2YXIgcz1lW2ldO2Z1bmN0aW9uIGMoKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxoKGEuZm5zLGMpfXQocyk/YT1udChbY10pOm4ocy5mbnMpJiZyKHMubWVyZ2VkKT8oYT1zKS5mbnMucHVzaChjKTphPW50KFtzLGNdKSxhLm1lcmdlZD0hMCxlW2ldPWF9ZnVuY3Rpb24gb3QoZSx0LHIsaSxvKXtpZihuKHQpKXtpZih5KHQscikpcmV0dXJuIGVbcl09dFtyXSxvfHxkZWxldGUgdFtyXSwhMDtpZih5KHQsaSkpcmV0dXJuIGVbcl09dFtpXSxvfHxkZWxldGUgdFtpXSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhdChlKXtyZXR1cm4gaShlKT9baGUoZSldOkFycmF5LmlzQXJyYXkoZSk/ZnVuY3Rpb24gZShvLGEpe3ZhciBzPVtdO3ZhciBjLHUsbCxmO2ZvcihjPTA7YzxvLmxlbmd0aDtjKyspdCh1PW9bY10pfHxcImJvb2xlYW5cIj09dHlwZW9mIHV8fChsPXMubGVuZ3RoLTEsZj1zW2xdLEFycmF5LmlzQXJyYXkodSk/dS5sZW5ndGg+MCYmKHN0KCh1PWUodSwoYXx8XCJcIikrXCJfXCIrYykpWzBdKSYmc3QoZikmJihzW2xdPWhlKGYudGV4dCt1WzBdLnRleHQpLHUuc2hpZnQoKSkscy5wdXNoLmFwcGx5KHMsdSkpOmkodSk/c3QoZik/c1tsXT1oZShmLnRleHQrdSk6XCJcIiE9PXUmJnMucHVzaChoZSh1KSk6c3QodSkmJnN0KGYpP3NbbF09aGUoZi50ZXh0K3UudGV4dCk6KHIoby5faXNWTGlzdCkmJm4odS50YWcpJiZ0KHUua2V5KSYmbihhKSYmKHUua2V5PVwiX192bGlzdFwiK2ErXCJfXCIrYytcIl9fXCIpLHMucHVzaCh1KSkpO3JldHVybiBzfShlKTp2b2lkIDB9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIG4oZSkmJm4oZS50ZXh0KSYmITE9PT1lLmlzQ29tbWVudH1mdW5jdGlvbiBjdChlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9b2U/UmVmbGVjdC5vd25LZXlzKGUpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIG89cltpXTtpZihcIl9fb2JfX1wiIT09byl7Zm9yKHZhciBhPWVbb10uZnJvbSxzPXQ7czspe2lmKHMuX3Byb3ZpZGVkJiZ5KHMuX3Byb3ZpZGVkLGEpKXtuW29dPXMuX3Byb3ZpZGVkW2FdO2JyZWFrfXM9cy4kcGFyZW50fWlmKCFzJiZcImRlZmF1bHRcImluIGVbb10pe3ZhciBjPWVbb10uZGVmYXVsdDtuW29dPVwiZnVuY3Rpb25cIj09dHlwZW9mIGM/Yy5jYWxsKHQpOmN9fX1yZXR1cm4gbn19ZnVuY3Rpb24gdXQoZSx0KXtpZighZXx8IWUubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgbj17fSxyPTAsaT1lLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1lW3JdLGE9by5kYXRhO2lmKGEmJmEuYXR0cnMmJmEuYXR0cnMuc2xvdCYmZGVsZXRlIGEuYXR0cnMuc2xvdCxvLmNvbnRleHQhPT10JiZvLmZuQ29udGV4dCE9PXR8fCFhfHxudWxsPT1hLnNsb3QpKG4uZGVmYXVsdHx8KG4uZGVmYXVsdD1bXSkpLnB1c2gobyk7ZWxzZXt2YXIgcz1hLnNsb3QsYz1uW3NdfHwobltzXT1bXSk7XCJ0ZW1wbGF0ZVwiPT09by50YWc/Yy5wdXNoLmFwcGx5KGMsby5jaGlsZHJlbnx8W10pOmMucHVzaChvKX19Zm9yKHZhciB1IGluIG4pblt1XS5ldmVyeShsdCkmJmRlbGV0ZSBuW3VdO3JldHVybiBufWZ1bmN0aW9uIGx0KGUpe3JldHVybiBlLmlzQ29tbWVudCYmIWUuYXN5bmNGYWN0b3J5fHxcIiBcIj09PWUudGV4dH1mdW5jdGlvbiBmdCh0LG4scil7dmFyIGksbz1PYmplY3Qua2V5cyhuKS5sZW5ndGg+MCxhPXQ/ISF0LiRzdGFibGU6IW8scz10JiZ0LiRrZXk7aWYodCl7aWYodC5fbm9ybWFsaXplZClyZXR1cm4gdC5fbm9ybWFsaXplZDtpZihhJiZyJiZyIT09ZSYmcz09PXIuJGtleSYmIW8mJiFyLiRoYXNOb3JtYWwpcmV0dXJuIHI7Zm9yKHZhciBjIGluIGk9e30sdCl0W2NdJiZcIiRcIiE9PWNbMF0mJihpW2NdPXB0KG4sYyx0W2NdKSl9ZWxzZSBpPXt9O2Zvcih2YXIgdSBpbiBuKXUgaW4gaXx8KGlbdV09ZHQobix1KSk7cmV0dXJuIHQmJk9iamVjdC5pc0V4dGVuc2libGUodCkmJih0Ll9ub3JtYWxpemVkPWkpLFIoaSxcIiRzdGFibGVcIixhKSxSKGksXCIka2V5XCIscyksUihpLFwiJGhhc05vcm1hbFwiLG8pLGl9ZnVuY3Rpb24gcHQoZSx0LG4pe3ZhciByPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD9uLmFwcGx5KG51bGwsYXJndW1lbnRzKTpuKHt9KTtyZXR1cm4oZT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSYmIUFycmF5LmlzQXJyYXkoZSk/W2VdOmF0KGUpKSYmKDA9PT1lLmxlbmd0aHx8MT09PWUubGVuZ3RoJiZlWzBdLmlzQ29tbWVudCk/dm9pZCAwOmV9O3JldHVybiBuLnByb3h5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtnZXQ6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHJ9ZnVuY3Rpb24gZHQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX19ZnVuY3Rpb24gdnQoZSx0KXt2YXIgcixpLGEscyxjO2lmKEFycmF5LmlzQXJyYXkoZSl8fFwic3RyaW5nXCI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlLmxlbmd0aCksaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylyW2ldPXQoZVtpXSxpKTtlbHNlIGlmKFwibnVtYmVyXCI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlKSxpPTA7aTxlO2krKylyW2ldPXQoaSsxLGkpO2Vsc2UgaWYobyhlKSlpZihvZSYmZVtTeW1ib2wuaXRlcmF0b3JdKXtyPVtdO2Zvcih2YXIgdT1lW1N5bWJvbC5pdGVyYXRvcl0oKSxsPXUubmV4dCgpOyFsLmRvbmU7KXIucHVzaCh0KGwudmFsdWUsci5sZW5ndGgpKSxsPXUubmV4dCgpfWVsc2UgZm9yKHM9T2JqZWN0LmtleXMoZSkscj1uZXcgQXJyYXkocy5sZW5ndGgpLGk9MCxhPXMubGVuZ3RoO2k8YTtpKyspYz1zW2ldLHJbaV09dChlW2NdLGMsaSk7cmV0dXJuIG4ocil8fChyPVtdKSxyLl9pc1ZMaXN0PSEwLHJ9ZnVuY3Rpb24gaHQoZSx0LG4scil7dmFyIGksbz10aGlzLiRzY29wZWRTbG90c1tlXTtvPyhuPW58fHt9LHImJihuPUEoQSh7fSxyKSxuKSksaT1vKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBhPW4mJm4uc2xvdDtyZXR1cm4gYT90aGlzLiRjcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIix7c2xvdDphfSxpKTppfWZ1bmN0aW9uIG10KGUpe3JldHVybiBMZSh0aGlzLiRvcHRpb25zLFwiZmlsdGVyc1wiLGUpfHxFfWZ1bmN0aW9uIHl0KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/LTE9PT1lLmluZGV4T2YodCk6ZSE9PXR9ZnVuY3Rpb24gZ3QoZSx0LG4scixpKXt2YXIgbz1GLmtleUNvZGVzW3RdfHxuO3JldHVybiBpJiZyJiYhRi5rZXlDb2Rlc1t0XT95dChpLHIpOm8/eXQobyxlKTpyP0MocikhPT10OnZvaWQgMH1mdW5jdGlvbiBfdChlLHQsbixyLGkpe2lmKG4paWYobyhuKSl7dmFyIGE7QXJyYXkuaXNBcnJheShuKSYmKG49TyhuKSk7dmFyIHM9ZnVuY3Rpb24obyl7aWYoXCJjbGFzc1wiPT09b3x8XCJzdHlsZVwiPT09b3x8dihvKSlhPWU7ZWxzZXt2YXIgcz1lLmF0dHJzJiZlLmF0dHJzLnR5cGU7YT1yfHxGLm11c3RVc2VQcm9wKHQscyxvKT9lLmRvbVByb3BzfHwoZS5kb21Qcm9wcz17fSk6ZS5hdHRyc3x8KGUuYXR0cnM9e30pfXZhciBjPWIobyksdT1DKG8pO2MgaW4gYXx8dSBpbiBhfHwoYVtvXT1uW29dLGkmJigoZS5vbnx8KGUub249e30pKVtcInVwZGF0ZTpcIitvXT1mdW5jdGlvbihlKXtuW29dPWV9KSl9O2Zvcih2YXIgYyBpbiBuKXMoYyl9ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBidChlLHQpe3ZhciBuPXRoaXMuX3N0YXRpY1RyZWVzfHwodGhpcy5fc3RhdGljVHJlZXM9W10pLHI9bltlXTtyZXR1cm4gciYmIXQ/cjood3Qocj1uW2VdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2VdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSxcIl9fc3RhdGljX19cIitlLCExKSxyKX1mdW5jdGlvbiAkdChlLHQsbil7cmV0dXJuIHd0KGUsXCJfX29uY2VfX1wiK3QrKG4/XCJfXCIrbjpcIlwiKSwhMCksZX1mdW5jdGlvbiB3dChlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiZcInN0cmluZ1wiIT10eXBlb2YgZVtyXSYmQ3QoZVtyXSx0K1wiX1wiK3Isbik7ZWxzZSBDdChlLHQsbil9ZnVuY3Rpb24gQ3QoZSx0LG4pe2UuaXNTdGF0aWM9ITAsZS5rZXk9dCxlLmlzT25jZT1ufWZ1bmN0aW9uIHh0KGUsdCl7aWYodClpZihzKHQpKXt2YXIgbj1lLm9uPWUub24/QSh7fSxlLm9uKTp7fTtmb3IodmFyIHIgaW4gdCl7dmFyIGk9bltyXSxvPXRbcl07bltyXT1pP1tdLmNvbmNhdChpLG8pOm99fWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24ga3QoZSx0LG4scil7dD10fHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPWVbaV07QXJyYXkuaXNBcnJheShvKT9rdChvLHQsbik6byYmKG8ucHJveHkmJihvLmZuLnByb3h5PSEwKSx0W28ua2V5XT1vLmZuKX1yZXR1cm4gciYmKHQuJGtleT1yKSx0fWZ1bmN0aW9uIEF0KGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0yKXt2YXIgcj10W25dO1wic3RyaW5nXCI9PXR5cGVvZiByJiZyJiYoZVt0W25dXT10W24rMV0pfXJldHVybiBlfWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIGU/dCtlOmV9ZnVuY3Rpb24gU3QoZSl7ZS5fbz0kdCxlLl9uPWYsZS5fcz1sLGUuX2w9dnQsZS5fdD1odCxlLl9xPU4sZS5faT1qLGUuX209YnQsZS5fZj1tdCxlLl9rPWd0LGUuX2I9X3QsZS5fdj1oZSxlLl9lPXZlLGUuX3U9a3QsZS5fZz14dCxlLl9kPUF0LGUuX3A9T3R9ZnVuY3Rpb24gVHQodCxuLGksbyxhKXt2YXIgcyxjPXRoaXMsdT1hLm9wdGlvbnM7eShvLFwiX3VpZFwiKT8ocz1PYmplY3QuY3JlYXRlKG8pKS5fb3JpZ2luYWw9bzoocz1vLG89by5fb3JpZ2luYWwpO3ZhciBsPXIodS5fY29tcGlsZWQpLGY9IWw7dGhpcy5kYXRhPXQsdGhpcy5wcm9wcz1uLHRoaXMuY2hpbGRyZW49aSx0aGlzLnBhcmVudD1vLHRoaXMubGlzdGVuZXJzPXQub258fGUsdGhpcy5pbmplY3Rpb25zPWN0KHUuaW5qZWN0LG8pLHRoaXMuc2xvdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy4kc2xvdHN8fGZ0KHQuc2NvcGVkU2xvdHMsYy4kc2xvdHM9dXQoaSxvKSksYy4kc2xvdHN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwic2NvcGVkU2xvdHNcIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnQodC5zY29wZWRTbG90cyx0aGlzLnNsb3RzKCkpfX0pLGwmJih0aGlzLiRvcHRpb25zPXUsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWZ0KHQuc2NvcGVkU2xvdHMsdGhpcy4kc2xvdHMpKSx1Ll9zY29wZUlkP3RoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGk9UHQocyxlLHQsbixyLGYpO3JldHVybiBpJiYhQXJyYXkuaXNBcnJheShpKSYmKGkuZm5TY29wZUlkPXUuX3Njb3BlSWQsaS5mbkNvbnRleHQ9byksaX06dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gUHQocyxlLHQsbixyLGYpfX1mdW5jdGlvbiBFdChlLHQsbixyLGkpe3ZhciBvPW1lKGUpO3JldHVybiBvLmZuQ29udGV4dD1uLG8uZm5PcHRpb25zPXIsdC5zbG90JiYoKG8uZGF0YXx8KG8uZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxvfWZ1bmN0aW9uIE50KGUsdCl7Zm9yKHZhciBuIGluIHQpZVtiKG4pXT10W25dfVN0KFR0LnByb3RvdHlwZSk7dmFyIGp0PXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgcj1lO2p0LnByZXBhdGNoKHIscil9ZWxzZXsoZS5jb21wb25lbnRJbnN0YW5jZT1mdW5jdGlvbihlLHQpe3ZhciByPXtfaXNDb21wb25lbnQ6ITAsX3BhcmVudFZub2RlOmUscGFyZW50OnR9LGk9ZS5kYXRhLmlubGluZVRlbXBsYXRlO24oaSkmJihyLnJlbmRlcj1pLnJlbmRlcixyLnN0YXRpY1JlbmRlckZucz1pLnN0YXRpY1JlbmRlckZucyk7cmV0dXJuIG5ldyBlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihyKX0oZSxXdCkpLiRtb3VudCh0P2UuZWxtOnZvaWQgMCx0KX19LHByZXBhdGNoOmZ1bmN0aW9uKHQsbil7dmFyIHI9bi5jb21wb25lbnRPcHRpb25zOyFmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhPWkuZGF0YS5zY29wZWRTbG90cyxzPXQuJHNjb3BlZFNsb3RzLGM9ISEoYSYmIWEuJHN0YWJsZXx8cyE9PWUmJiFzLiRzdGFibGV8fGEmJnQuJHNjb3BlZFNsb3RzLiRrZXkhPT1hLiRrZXkpLHU9ISEob3x8dC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGMpO3QuJG9wdGlvbnMuX3BhcmVudFZub2RlPWksdC4kdm5vZGU9aSx0Ll92bm9kZSYmKHQuX3Zub2RlLnBhcmVudD1pKTtpZih0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbj1vLHQuJGF0dHJzPWkuZGF0YS5hdHRyc3x8ZSx0LiRsaXN0ZW5lcnM9cnx8ZSxuJiZ0LiRvcHRpb25zLnByb3BzKXskZSghMSk7Zm9yKHZhciBsPXQuX3Byb3BzLGY9dC4kb3B0aW9ucy5fcHJvcEtleXN8fFtdLHA9MDtwPGYubGVuZ3RoO3ArKyl7dmFyIGQ9ZltwXSx2PXQuJG9wdGlvbnMucHJvcHM7bFtkXT1NZShkLHYsbix0KX0kZSghMCksdC4kb3B0aW9ucy5wcm9wc0RhdGE9bn1yPXJ8fGU7dmFyIGg9dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycz1yLHF0KHQscixoKSx1JiYodC4kc2xvdHM9dXQobyxpLmNvbnRleHQpLHQuJGZvcmNlVXBkYXRlKCkpfShuLmNvbXBvbmVudEluc3RhbmNlPXQuY29tcG9uZW50SW5zdGFuY2Usci5wcm9wc0RhdGEsci5saXN0ZW5lcnMsbixyLmNoaWxkcmVuKX0saW5zZXJ0OmZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5jb250ZXh0LHI9ZS5jb21wb25lbnRJbnN0YW5jZTtyLl9pc01vdW50ZWR8fChyLl9pc01vdW50ZWQ9ITAsWXQocixcIm1vdW50ZWRcIikpLGUuZGF0YS5rZWVwQWxpdmUmJihuLl9pc01vdW50ZWQ/KCh0PXIpLl9pbmFjdGl2ZT0hMSxlbi5wdXNoKHQpKTpYdChyLCEwKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb21wb25lbnRJbnN0YW5jZTt0Ll9pc0Rlc3Ryb3llZHx8KGUuZGF0YS5rZWVwQWxpdmU/ZnVuY3Rpb24gZSh0LG4pe2lmKG4mJih0Ll9kaXJlY3RJbmFjdGl2ZT0hMCxHdCh0KSkpcmV0dXJuO2lmKCF0Ll9pbmFjdGl2ZSl7dC5faW5hY3RpdmU9ITA7Zm9yKHZhciByPTA7cjx0LiRjaGlsZHJlbi5sZW5ndGg7cisrKWUodC4kY2hpbGRyZW5bcl0pO1l0KHQsXCJkZWFjdGl2YXRlZFwiKX19KHQsITApOnQuJGRlc3Ryb3koKSl9fSxEdD1PYmplY3Qua2V5cyhqdCk7ZnVuY3Rpb24gTHQoaSxhLHMsYyxsKXtpZighdChpKSl7dmFyIGY9cy4kb3B0aW9ucy5fYmFzZTtpZihvKGkpJiYoaT1mLmV4dGVuZChpKSksXCJmdW5jdGlvblwiPT10eXBlb2YgaSl7dmFyIHA7aWYodChpLmNpZCkmJnZvaWQgMD09PShpPWZ1bmN0aW9uKGUsaSl7aWYocihlLmVycm9yKSYmbihlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKG4oZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7dmFyIGE9SHQ7YSYmbihlLm93bmVycykmJi0xPT09ZS5vd25lcnMuaW5kZXhPZihhKSYmZS5vd25lcnMucHVzaChhKTtpZihyKGUubG9hZGluZykmJm4oZS5sb2FkaW5nQ29tcCkpcmV0dXJuIGUubG9hZGluZ0NvbXA7aWYoYSYmIW4oZS5vd25lcnMpKXt2YXIgcz1lLm93bmVycz1bYV0sYz0hMCxsPW51bGwsZj1udWxsO2EuJG9uKFwiaG9vazpkZXN0cm95ZWRcIixmdW5jdGlvbigpe3JldHVybiBoKHMsYSl9KTt2YXIgcD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPXMubGVuZ3RoO3Q8bjt0Kyspc1t0XS4kZm9yY2VVcGRhdGUoKTtlJiYocy5sZW5ndGg9MCxudWxsIT09bCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpLG51bGwhPT1mJiYoY2xlYXJUaW1lb3V0KGYpLGY9bnVsbCkpfSxkPUQoZnVuY3Rpb24odCl7ZS5yZXNvbHZlZD1CdCh0LGkpLGM/cy5sZW5ndGg9MDpwKCEwKX0pLHY9RChmdW5jdGlvbih0KXtuKGUuZXJyb3JDb21wKSYmKGUuZXJyb3I9ITAscCghMCkpfSksbT1lKGQsdik7cmV0dXJuIG8obSkmJih1KG0pP3QoZS5yZXNvbHZlZCkmJm0udGhlbihkLHYpOnUobS5jb21wb25lbnQpJiYobS5jb21wb25lbnQudGhlbihkLHYpLG4obS5lcnJvcikmJihlLmVycm9yQ29tcD1CdChtLmVycm9yLGkpKSxuKG0ubG9hZGluZykmJihlLmxvYWRpbmdDb21wPUJ0KG0ubG9hZGluZyxpKSwwPT09bS5kZWxheT9lLmxvYWRpbmc9ITA6bD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD1udWxsLHQoZS5yZXNvbHZlZCkmJnQoZS5lcnJvcikmJihlLmxvYWRpbmc9ITAscCghMSkpfSxtLmRlbGF5fHwyMDApKSxuKG0udGltZW91dCkmJihmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGwsdChlLnJlc29sdmVkKSYmdihudWxsKX0sbS50aW1lb3V0KSkpKSxjPSExLGUubG9hZGluZz9lLmxvYWRpbmdDb21wOmUucmVzb2x2ZWR9fShwPWksZikpKXJldHVybiBmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvPXZlKCk7cmV0dXJuIG8uYXN5bmNGYWN0b3J5PWUsby5hc3luY01ldGE9e2RhdGE6dCxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sb30ocCxhLHMsYyxsKTthPWF8fHt9LCRuKGkpLG4oYS5tb2RlbCkmJmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5tb2RlbCYmZS5tb2RlbC5wcm9wfHxcInZhbHVlXCIsaT1lLm1vZGVsJiZlLm1vZGVsLmV2ZW50fHxcImlucHV0XCI7KHQuYXR0cnN8fCh0LmF0dHJzPXt9KSlbcl09dC5tb2RlbC52YWx1ZTt2YXIgbz10Lm9ufHwodC5vbj17fSksYT1vW2ldLHM9dC5tb2RlbC5jYWxsYmFjaztuKGEpPyhBcnJheS5pc0FycmF5KGEpPy0xPT09YS5pbmRleE9mKHMpOmEhPT1zKSYmKG9baV09W3NdLmNvbmNhdChhKSk6b1tpXT1zfShpLm9wdGlvbnMsYSk7dmFyIGQ9ZnVuY3Rpb24oZSxyLGkpe3ZhciBvPXIub3B0aW9ucy5wcm9wcztpZighdChvKSl7dmFyIGE9e30scz1lLmF0dHJzLGM9ZS5wcm9wcztpZihuKHMpfHxuKGMpKWZvcih2YXIgdSBpbiBvKXt2YXIgbD1DKHUpO290KGEsYyx1LGwsITApfHxvdChhLHMsdSxsLCExKX1yZXR1cm4gYX19KGEsaSk7aWYocihpLm9wdGlvbnMuZnVuY3Rpb25hbCkpcmV0dXJuIGZ1bmN0aW9uKHQscixpLG8sYSl7dmFyIHM9dC5vcHRpb25zLGM9e30sdT1zLnByb3BzO2lmKG4odSkpZm9yKHZhciBsIGluIHUpY1tsXT1NZShsLHUscnx8ZSk7ZWxzZSBuKGkuYXR0cnMpJiZOdChjLGkuYXR0cnMpLG4oaS5wcm9wcykmJk50KGMsaS5wcm9wcyk7dmFyIGY9bmV3IFR0KGksYyxhLG8sdCkscD1zLnJlbmRlci5jYWxsKG51bGwsZi5fYyxmKTtpZihwIGluc3RhbmNlb2YgcGUpcmV0dXJuIEV0KHAsaSxmLnBhcmVudCxzKTtpZihBcnJheS5pc0FycmF5KHApKXtmb3IodmFyIGQ9YXQocCl8fFtdLHY9bmV3IEFycmF5KGQubGVuZ3RoKSxoPTA7aDxkLmxlbmd0aDtoKyspdltoXT1FdChkW2hdLGksZi5wYXJlbnQscyk7cmV0dXJuIHZ9fShpLGQsYSxzLGMpO3ZhciB2PWEub247aWYoYS5vbj1hLm5hdGl2ZU9uLHIoaS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIG09YS5zbG90O2E9e30sbSYmKGEuc2xvdD1tKX0hZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuaG9va3x8KGUuaG9vaz17fSksbj0wO248RHQubGVuZ3RoO24rKyl7dmFyIHI9RHRbbl0saT10W3JdLG89anRbcl07aT09PW98fGkmJmkuX21lcmdlZHx8KHRbcl09aT9NdChvLGkpOm8pfX0oYSk7dmFyIHk9aS5vcHRpb25zLm5hbWV8fGw7cmV0dXJuIG5ldyBwZShcInZ1ZS1jb21wb25lbnQtXCIraS5jaWQrKHk/XCItXCIreTpcIlwiKSxhLHZvaWQgMCx2b2lkIDAsdm9pZCAwLHMse0N0b3I6aSxwcm9wc0RhdGE6ZCxsaXN0ZW5lcnM6dix0YWc6bCxjaGlsZHJlbjpjfSxwKX19fWZ1bmN0aW9uIE10KGUsdCl7dmFyIG49ZnVuY3Rpb24obixyKXtlKG4sciksdChuLHIpfTtyZXR1cm4gbi5fbWVyZ2VkPSEwLG59dmFyIEl0PTEsRnQ9MjtmdW5jdGlvbiBQdChlLGEscyxjLHUsbCl7cmV0dXJuKEFycmF5LmlzQXJyYXkocyl8fGkocykpJiYodT1jLGM9cyxzPXZvaWQgMCkscihsKSYmKHU9RnQpLGZ1bmN0aW9uKGUsaSxhLHMsYyl7aWYobihhKSYmbihhLl9fb2JfXykpcmV0dXJuIHZlKCk7bihhKSYmbihhLmlzKSYmKGk9YS5pcyk7aWYoIWkpcmV0dXJuIHZlKCk7QXJyYXkuaXNBcnJheShzKSYmXCJmdW5jdGlvblwiPT10eXBlb2Ygc1swXSYmKChhPWF8fHt9KS5zY29wZWRTbG90cz17ZGVmYXVsdDpzWzBdfSxzLmxlbmd0aD0wKTtjPT09RnQ/cz1hdChzKTpjPT09SXQmJihzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKEFycmF5LmlzQXJyYXkoZVt0XSkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sZSk7cmV0dXJuIGV9KHMpKTt2YXIgdSxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBpKXt2YXIgZjtsPWUuJHZub2RlJiZlLiR2bm9kZS5uc3x8Ri5nZXRUYWdOYW1lc3BhY2UoaSksdT1GLmlzUmVzZXJ2ZWRUYWcoaSk/bmV3IHBlKEYucGFyc2VQbGF0Zm9ybVRhZ05hbWUoaSksYSxzLHZvaWQgMCx2b2lkIDAsZSk6YSYmYS5wcmV8fCFuKGY9TGUoZS4kb3B0aW9ucyxcImNvbXBvbmVudHNcIixpKSk/bmV3IHBlKGksYSxzLHZvaWQgMCx2b2lkIDAsZSk6THQoZixhLGUscyxpKX1lbHNlIHU9THQoaSxhLGUscyk7cmV0dXJuIEFycmF5LmlzQXJyYXkodSk/dTpuKHUpPyhuKGwpJiZmdW5jdGlvbiBlKGksbyxhKXtpLm5zPW87XCJmb3JlaWduT2JqZWN0XCI9PT1pLnRhZyYmKG89dm9pZCAwLGE9ITApO2lmKG4oaS5jaGlsZHJlbikpZm9yKHZhciBzPTAsYz1pLmNoaWxkcmVuLmxlbmd0aDtzPGM7cysrKXt2YXIgdT1pLmNoaWxkcmVuW3NdO24odS50YWcpJiYodCh1Lm5zKXx8cihhKSYmXCJzdmdcIiE9PXUudGFnKSYmZSh1LG8sYSl9fSh1LGwpLG4oYSkmJmZ1bmN0aW9uKGUpe28oZS5zdHlsZSkmJmV0KGUuc3R5bGUpO28oZS5jbGFzcykmJmV0KGUuY2xhc3MpfShhKSx1KTp2ZSgpfShlLGEscyxjLHUpfXZhciBSdCxIdD1udWxsO2Z1bmN0aW9uIEJ0KGUsdCl7cmV0dXJuKGUuX19lc01vZHVsZXx8b2UmJlwiTW9kdWxlXCI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLG8oZSk/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5pc0NvbW1lbnQmJmUuYXN5bmNGYWN0b3J5fWZ1bmN0aW9uIHp0KGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciByPWVbdF07aWYobihyKSYmKG4oci5jb21wb25lbnRPcHRpb25zKXx8VXQocikpKXJldHVybiByfX1mdW5jdGlvbiBWdChlLHQpe1J0LiRvbihlLHQpfWZ1bmN0aW9uIEt0KGUsdCl7UnQuJG9mZihlLHQpfWZ1bmN0aW9uIEp0KGUsdCl7dmFyIG49UnQ7cmV0dXJuIGZ1bmN0aW9uIHIoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJm4uJG9mZihlLHIpfX1mdW5jdGlvbiBxdChlLHQsbil7UnQ9ZSxydCh0LG58fHt9LFZ0LEt0LEp0LGUpLFJ0PXZvaWQgMH12YXIgV3Q9bnVsbDtmdW5jdGlvbiBadChlKXt2YXIgdD1XdDtyZXR1cm4gV3Q9ZSxmdW5jdGlvbigpe1d0PXR9fWZ1bmN0aW9uIEd0KGUpe2Zvcig7ZSYmKGU9ZS4kcGFyZW50KTspaWYoZS5faW5hY3RpdmUpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gWHQoZSx0KXtpZih0KXtpZihlLl9kaXJlY3RJbmFjdGl2ZT0hMSxHdChlKSlyZXR1cm59ZWxzZSBpZihlLl9kaXJlY3RJbmFjdGl2ZSlyZXR1cm47aWYoZS5faW5hY3RpdmV8fG51bGw9PT1lLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITE7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKVh0KGUuJGNoaWxkcmVuW25dKTtZdChlLFwiYWN0aXZhdGVkXCIpfX1mdW5jdGlvbiBZdChlLHQpe2xlKCk7dmFyIG49ZS4kb3B0aW9uc1t0XSxyPXQrXCIgaG9va1wiO2lmKG4pZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKUhlKG5baV0sZSxudWxsLGUscik7ZS5faGFzSG9va0V2ZW50JiZlLiRlbWl0KFwiaG9vazpcIit0KSxmZSgpfXZhciBRdD1bXSxlbj1bXSx0bj17fSxubj0hMSxybj0hMSxvbj0wO3ZhciBhbj0wLHNuPURhdGUubm93O2lmKHomJiFxKXt2YXIgY249d2luZG93LnBlcmZvcm1hbmNlO2NuJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBjbi5ub3cmJnNuKCk+ZG9jdW1lbnQuY3JlYXRlRXZlbnQoXCJFdmVudFwiKS50aW1lU3RhbXAmJihzbj1mdW5jdGlvbigpe3JldHVybiBjbi5ub3coKX0pfWZ1bmN0aW9uIHVuKCl7dmFyIGUsdDtmb3IoYW49c24oKSxybj0hMCxRdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQtdC5pZH0pLG9uPTA7b248UXQubGVuZ3RoO29uKyspKGU9UXRbb25dKS5iZWZvcmUmJmUuYmVmb3JlKCksdD1lLmlkLHRuW3RdPW51bGwsZS5ydW4oKTt2YXIgbj1lbi5zbGljZSgpLHI9UXQuc2xpY2UoKTtvbj1RdC5sZW5ndGg9ZW4ubGVuZ3RoPTAsdG49e30sbm49cm49ITEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5faW5hY3RpdmU9ITAsWHQoZVt0XSwhMCl9KG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2Zvcig7dC0tOyl7dmFyIG49ZVt0XSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZZdChyLFwidXBkYXRlZFwiKX19KHIpLG5lJiZGLmRldnRvb2xzJiZuZS5lbWl0KFwiZmx1c2hcIil9dmFyIGxuPTAsZm49ZnVuY3Rpb24oZSx0LG4scixpKXt0aGlzLnZtPWUsaSYmKGUuX3dhdGNoZXI9dGhpcyksZS5fd2F0Y2hlcnMucHVzaCh0aGlzKSxyPyh0aGlzLmRlZXA9ISFyLmRlZXAsdGhpcy51c2VyPSEhci51c2VyLHRoaXMubGF6eT0hIXIubGF6eSx0aGlzLnN5bmM9ISFyLnN5bmMsdGhpcy5iZWZvcmU9ci5iZWZvcmUpOnRoaXMuZGVlcD10aGlzLnVzZXI9dGhpcy5sYXp5PXRoaXMuc3luYz0hMSx0aGlzLmNiPW4sdGhpcy5pZD0rK2xuLHRoaXMuYWN0aXZlPSEwLHRoaXMuZGlydHk9dGhpcy5sYXp5LHRoaXMuZGVwcz1bXSx0aGlzLm5ld0RlcHM9W10sdGhpcy5kZXBJZHM9bmV3IGllLHRoaXMubmV3RGVwSWRzPW5ldyBpZSx0aGlzLmV4cHJlc3Npb249XCJcIixcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPWZ1bmN0aW9uKGUpe2lmKCFILnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoXCIuXCIpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7aWYoIWUpcmV0dXJuO2U9ZVt0W25dXX1yZXR1cm4gZX19fSh0KSx0aGlzLmdldHRlcnx8KHRoaXMuZ2V0dGVyPVMpKSx0aGlzLnZhbHVlPXRoaXMubGF6eT92b2lkIDA6dGhpcy5nZXQoKX07Zm4ucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciBlO2xlKHRoaXMpO3ZhciB0PXRoaXMudm07dHJ5e2U9dGhpcy5nZXR0ZXIuY2FsbCh0LHQpfWNhdGNoKGUpe2lmKCF0aGlzLnVzZXIpdGhyb3cgZTtSZShlLHQsJ2dldHRlciBmb3Igd2F0Y2hlciBcIicrdGhpcy5leHByZXNzaW9uKydcIicpfWZpbmFsbHl7dGhpcy5kZWVwJiZldChlKSxmZSgpLHRoaXMuY2xlYW51cERlcHMoKX1yZXR1cm4gZX0sZm4ucHJvdG90eXBlLmFkZERlcD1mdW5jdGlvbihlKXt2YXIgdD1lLmlkO3RoaXMubmV3RGVwSWRzLmhhcyh0KXx8KHRoaXMubmV3RGVwSWRzLmFkZCh0KSx0aGlzLm5ld0RlcHMucHVzaChlKSx0aGlzLmRlcElkcy5oYXModCl8fGUuYWRkU3ViKHRoaXMpKX0sZm4ucHJvdG90eXBlLmNsZWFudXBEZXBzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl7dmFyIHQ9dGhpcy5kZXBzW2VdO3RoaXMubmV3RGVwSWRzLmhhcyh0LmlkKXx8dC5yZW1vdmVTdWIodGhpcyl9dmFyIG49dGhpcy5kZXBJZHM7dGhpcy5kZXBJZHM9dGhpcy5uZXdEZXBJZHMsdGhpcy5uZXdEZXBJZHM9bix0aGlzLm5ld0RlcElkcy5jbGVhcigpLG49dGhpcy5kZXBzLHRoaXMuZGVwcz10aGlzLm5ld0RlcHMsdGhpcy5uZXdEZXBzPW4sdGhpcy5uZXdEZXBzLmxlbmd0aD0wfSxmbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5sYXp5P3RoaXMuZGlydHk9ITA6dGhpcy5zeW5jP3RoaXMucnVuKCk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZDtpZihudWxsPT10blt0XSl7aWYodG5bdF09ITAscm4pe2Zvcih2YXIgbj1RdC5sZW5ndGgtMTtuPm9uJiZRdFtuXS5pZD5lLmlkOyluLS07UXQuc3BsaWNlKG4rMSwwLGUpfWVsc2UgUXQucHVzaChlKTtubnx8KG5uPSEwLFllKHVuKSl9fSh0aGlzKX0sZm4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgZT10aGlzLmdldCgpO2lmKGUhPT10aGlzLnZhbHVlfHxvKGUpfHx0aGlzLmRlZXApe3ZhciB0PXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT1lLHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX1jYXRjaChlKXtSZShlLHRoaXMudm0sJ2NhbGxiYWNrIGZvciB3YXRjaGVyIFwiJyt0aGlzLmV4cHJlc3Npb24rJ1wiJyl9ZWxzZSB0aGlzLmNiLmNhbGwodGhpcy52bSxlLHQpfX19LGZuLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3RoaXMudmFsdWU9dGhpcy5nZXQoKSx0aGlzLmRpcnR5PSExfSxmbi5wcm90b3R5cGUuZGVwZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0uZGVwZW5kKCl9LGZuLnByb3RvdHlwZS50ZWFyZG93bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkfHxoKHRoaXMudm0uX3dhdGNoZXJzLHRoaXMpO2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBwbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OlMsc2V0OlN9O2Z1bmN0aW9uIGRuKGUsdCxuKXtwbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0scG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixwbil9ZnVuY3Rpb24gdm4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W107ZS4kcGFyZW50JiYkZSghMSk7dmFyIG89ZnVuY3Rpb24obyl7aS5wdXNoKG8pO3ZhciBhPU1lKG8sdCxuLGUpO3hlKHIsbyxhKSxvIGluIGV8fGRuKGUsXCJfcHJvcHNcIixvKX07Zm9yKHZhciBhIGluIHQpbyhhKTskZSghMCl9KGUsdC5wcm9wcyksdC5tZXRob2RzJiZmdW5jdGlvbihlLHQpe2UuJG9wdGlvbnMucHJvcHM7Zm9yKHZhciBuIGluIHQpZVtuXT1cImZ1bmN0aW9uXCIhPXR5cGVvZiB0W25dP1M6eCh0W25dLGUpfShlLHQubWV0aG9kcyksdC5kYXRhP2Z1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMuZGF0YTtzKHQ9ZS5fZGF0YT1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUsdCl7bGUoKTt0cnl7cmV0dXJuIGUuY2FsbCh0LHQpfWNhdGNoKGUpe3JldHVybiBSZShlLHQsXCJkYXRhKClcIikse319ZmluYWxseXtmZSgpfX0odCxlKTp0fHx7fSl8fCh0PXt9KTt2YXIgbj1PYmplY3Qua2V5cyh0KSxyPWUuJG9wdGlvbnMucHJvcHMsaT0oZS4kb3B0aW9ucy5tZXRob2RzLG4ubGVuZ3RoKTtmb3IoO2ktLTspe3ZhciBvPW5baV07ciYmeShyLG8pfHwoYT12b2lkIDAsMzYhPT0oYT0obytcIlwiKS5jaGFyQ29kZUF0KDApKSYmOTUhPT1hJiZkbihlLFwiX2RhdGFcIixvKSl9dmFyIGE7Q2UodCwhMCl9KGUpOkNlKGUuX2RhdGE9e30sITApLHQuY29tcHV0ZWQmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5fY29tcHV0ZWRXYXRjaGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGUoKTtmb3IodmFyIGkgaW4gdCl7dmFyIG89dFtpXSxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIG8/bzpvLmdldDtyfHwobltpXT1uZXcgZm4oZSxhfHxTLFMsaG4pKSxpIGluIGV8fG1uKGUsaSxvKX19KGUsdC5jb21wdXRlZCksdC53YXRjaCYmdC53YXRjaCE9PVkmJmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylfbihlLG4scltpXSk7ZWxzZSBfbihlLG4scil9fShlLHQud2F0Y2gpfXZhciBobj17bGF6eTohMH07ZnVuY3Rpb24gbW4oZSx0LG4pe3ZhciByPSF0ZSgpO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/KHBuLmdldD1yP3luKHQpOmduKG4pLHBuLnNldD1TKToocG4uZ2V0PW4uZ2V0P3ImJiExIT09bi5jYWNoZT95bih0KTpnbihuLmdldCk6Uyxwbi5zZXQ9bi5zZXR8fFMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscG4pfWZ1bmN0aW9uIHluKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMmJnRoaXMuX2NvbXB1dGVkV2F0Y2hlcnNbZV07aWYodClyZXR1cm4gdC5kaXJ0eSYmdC5ldmFsdWF0ZSgpLGNlLnRhcmdldCYmdC5kZXBlbmQoKSx0LnZhbHVlfX1mdW5jdGlvbiBnbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIF9uKGUsdCxuLHIpe3JldHVybiBzKG4pJiYocj1uLG49bi5oYW5kbGVyKSxcInN0cmluZ1wiPT10eXBlb2YgbiYmKG49ZVtuXSksZS4kd2F0Y2godCxuLHIpfXZhciBibj0wO2Z1bmN0aW9uICRuKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj0kbihlLnN1cGVyKTtpZihuIT09ZS5zdXBlck9wdGlvbnMpe2Uuc3VwZXJPcHRpb25zPW47dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBpIGluIG4pbltpXSE9PXJbaV0mJih0fHwodD17fSksdFtpXT1uW2ldKTtyZXR1cm4gdH0oZSk7ciYmQShlLmV4dGVuZE9wdGlvbnMsciksKHQ9ZS5vcHRpb25zPURlKG4sZS5leHRlbmRPcHRpb25zKSkubmFtZSYmKHQuY29tcG9uZW50c1t0Lm5hbWVdPWUpfX1yZXR1cm4gdH1mdW5jdGlvbiB3bihlKXt0aGlzLl9pbml0KGUpfWZ1bmN0aW9uIENuKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBvPWUubmFtZXx8bi5vcHRpb25zLm5hbWUsYT1mdW5jdGlvbihlKXt0aGlzLl9pbml0KGUpfTtyZXR1cm4oYS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSkpLmNvbnN0cnVjdG9yPWEsYS5jaWQ9dCsrLGEub3B0aW9ucz1EZShuLm9wdGlvbnMsZSksYS5zdXBlcj1uLGEub3B0aW9ucy5wcm9wcyYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWRuKGUucHJvdG90eXBlLFwiX3Byb3BzXCIsbil9KGEpLGEub3B0aW9ucy5jb21wdXRlZCYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLmNvbXB1dGVkO2Zvcih2YXIgbiBpbiB0KW1uKGUucHJvdG90eXBlLG4sdFtuXSl9KGEpLGEuZXh0ZW5kPW4uZXh0ZW5kLGEubWl4aW49bi5taXhpbixhLnVzZT1uLnVzZSxNLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlXT1uW2VdfSksbyYmKGEub3B0aW9ucy5jb21wb25lbnRzW29dPWEpLGEuc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxhLmV4dGVuZE9wdGlvbnM9ZSxhLnNlYWxlZE9wdGlvbnM9QSh7fSxhLm9wdGlvbnMpLGlbcl09YSxhfX1mdW5jdGlvbiB4bihlKXtyZXR1cm4gZSYmKGUuQ3Rvci5vcHRpb25zLm5hbWV8fGUudGFnKX1mdW5jdGlvbiBrbihlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UuaW5kZXhPZih0KT4tMTpcInN0cmluZ1wiPT10eXBlb2YgZT9lLnNwbGl0KFwiLFwiKS5pbmRleE9mKHQpPi0xOihuPWUsXCJbb2JqZWN0IFJlZ0V4cF1cIj09PWEuY2FsbChuKSYmZS50ZXN0KHQpKTt2YXIgbn1mdW5jdGlvbiBBbihlLHQpe3ZhciBuPWUuY2FjaGUscj1lLmtleXMsaT1lLl92bm9kZTtmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtpZihhKXt2YXIgcz14bihhLmNvbXBvbmVudE9wdGlvbnMpO3MmJiF0KHMpJiZPbihuLG8scixpKX19fWZ1bmN0aW9uIE9uKGUsdCxuLHIpe3ZhciBpPWVbdF07IWl8fHImJmkudGFnPT09ci50YWd8fGkuY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKSxlW3RdPW51bGwsaChuLHQpfSFmdW5jdGlvbih0KXt0LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO24uX3VpZD1ibisrLG4uX2lzVnVlPSEwLHQmJnQuX2lzQ29tcG9uZW50P2Z1bmN0aW9uKGUsdCl7dmFyIG49ZS4kb3B0aW9ucz1PYmplY3QuY3JlYXRlKGUuY29uc3RydWN0b3Iub3B0aW9ucykscj10Ll9wYXJlbnRWbm9kZTtuLnBhcmVudD10LnBhcmVudCxuLl9wYXJlbnRWbm9kZT1yO3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztuLnByb3BzRGF0YT1pLnByb3BzRGF0YSxuLl9wYXJlbnRMaXN0ZW5lcnM9aS5saXN0ZW5lcnMsbi5fcmVuZGVyQ2hpbGRyZW49aS5jaGlsZHJlbixuLl9jb21wb25lbnRUYWc9aS50YWcsdC5yZW5kZXImJihuLnJlbmRlcj10LnJlbmRlcixuLnN0YXRpY1JlbmRlckZucz10LnN0YXRpY1JlbmRlckZucyl9KG4sdCk6bi4kb3B0aW9ucz1EZSgkbihuLmNvbnN0cnVjdG9yKSx0fHx7fSxuKSxuLl9yZW5kZXJQcm94eT1uLG4uX3NlbGY9bixmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLG49dC5wYXJlbnQ7aWYobiYmIXQuYWJzdHJhY3Qpe2Zvcig7bi4kb3B0aW9ucy5hYnN0cmFjdCYmbi4kcGFyZW50OyluPW4uJHBhcmVudDtuLiRjaGlsZHJlbi5wdXNoKGUpfWUuJHBhcmVudD1uLGUuJHJvb3Q9bj9uLiRyb290OmUsZS4kY2hpbGRyZW49W10sZS4kcmVmcz17fSxlLl93YXRjaGVyPW51bGwsZS5faW5hY3RpdmU9bnVsbCxlLl9kaXJlY3RJbmFjdGl2ZT0hMSxlLl9pc01vdW50ZWQ9ITEsZS5faXNEZXN0cm95ZWQ9ITEsZS5faXNCZWluZ0Rlc3Ryb3llZD0hMX0obiksZnVuY3Rpb24oZSl7ZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksZS5faGFzSG9va0V2ZW50PSExO3ZhciB0PWUuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0JiZxdChlLHQpfShuKSxmdW5jdGlvbih0KXt0Ll92bm9kZT1udWxsLHQuX3N0YXRpY1RyZWVzPW51bGw7dmFyIG49dC4kb3B0aW9ucyxyPXQuJHZub2RlPW4uX3BhcmVudFZub2RlLGk9ciYmci5jb250ZXh0O3QuJHNsb3RzPXV0KG4uX3JlbmRlckNoaWxkcmVuLGkpLHQuJHNjb3BlZFNsb3RzPWUsdC5fYz1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCExKX0sdC4kY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCEwKX07dmFyIG89ciYmci5kYXRhO3hlKHQsXCIkYXR0cnNcIixvJiZvLmF0dHJzfHxlLG51bGwsITApLHhlKHQsXCIkbGlzdGVuZXJzXCIsbi5fcGFyZW50TGlzdGVuZXJzfHxlLG51bGwsITApfShuKSxZdChuLFwiYmVmb3JlQ3JlYXRlXCIpLGZ1bmN0aW9uKGUpe3ZhciB0PWN0KGUuJG9wdGlvbnMuaW5qZWN0LGUpO3QmJigkZSghMSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXt4ZShlLG4sdFtuXSl9KSwkZSghMCkpfShuKSx2bihuKSxmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLnByb3ZpZGU7dCYmKGUuX3Byb3ZpZGVkPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dC5jYWxsKGUpOnQpfShuKSxZdChuLFwiY3JlYXRlZFwiKSxuLiRvcHRpb25zLmVsJiZuLiRtb3VudChuLiRvcHRpb25zLmVsKX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGF9fSxuPXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvcHN9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCIkZGF0YVwiLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIiRwcm9wc1wiLG4pLGUucHJvdG90eXBlLiRzZXQ9a2UsZS5wcm90b3R5cGUuJGRlbGV0ZT1BZSxlLnByb3RvdHlwZS4kd2F0Y2g9ZnVuY3Rpb24oZSx0LG4pe2lmKHModCkpcmV0dXJuIF9uKHRoaXMsZSx0LG4pOyhuPW58fHt9KS51c2VyPSEwO3ZhciByPW5ldyBmbih0aGlzLGUsdCxuKTtpZihuLmltbWVkaWF0ZSl0cnl7dC5jYWxsKHRoaXMsci52YWx1ZSl9Y2F0Y2goZSl7UmUoZSx0aGlzLCdjYWxsYmFjayBmb3IgaW1tZWRpYXRlIHdhdGNoZXIgXCInK3IuZXhwcmVzc2lvbisnXCInKX1yZXR1cm4gZnVuY3Rpb24oKXtyLnRlYXJkb3duKCl9fX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PS9eaG9vazovO2UucHJvdG90eXBlLiRvbj1mdW5jdGlvbihlLG4pe3ZhciByPXRoaXM7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIGk9MCxvPWUubGVuZ3RoO2k8bztpKyspci4kb24oZVtpXSxuKTtlbHNlKHIuX2V2ZW50c1tlXXx8KHIuX2V2ZW50c1tlXT1bXSkpLnB1c2gobiksdC50ZXN0KGUpJiYoci5faGFzSG9va0V2ZW50PSEwKTtyZXR1cm4gcn0sZS5wcm90b3R5cGUuJG9uY2U9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2Z1bmN0aW9uIHIoKXtuLiRvZmYoZSxyKSx0LmFwcGx5KG4sYXJndW1lbnRzKX1yZXR1cm4gci5mbj10LG4uJG9uKGUsciksbn0sZS5wcm90b3R5cGUuJG9mZj1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG4uX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLG47aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciByPTAsaT1lLmxlbmd0aDtyPGk7cisrKW4uJG9mZihlW3JdLHQpO3JldHVybiBufXZhciBvLGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2Zvcih2YXIgcz1hLmxlbmd0aDtzLS07KWlmKChvPWFbc10pPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKHMsMSk7YnJlYWt9cmV0dXJuIG59LGUucHJvdG90eXBlLiRlbWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2V2ZW50c1tlXTtpZih0KXt0PXQubGVuZ3RoPjE/ayh0KTp0O2Zvcih2YXIgbj1rKGFyZ3VtZW50cywxKSxyPSdldmVudCBoYW5kbGVyIGZvciBcIicrZSsnXCInLGk9MCxvPXQubGVuZ3RoO2k8bztpKyspSGUodFtpXSx0aGlzLG4sdGhpcyxyKX1yZXR1cm4gdGhpc319KHduKSxmdW5jdGlvbihlKXtlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4uJGVsLGk9bi5fdm5vZGUsbz1adChuKTtuLl92bm9kZT1lLG4uJGVsPWk/bi5fX3BhdGNoX18oaSxlKTpuLl9fcGF0Y2hfXyhuLiRlbCxlLHQsITEpLG8oKSxyJiYoci5fX3Z1ZV9fPW51bGwpLG4uJGVsJiYobi4kZWwuX192dWVfXz1uKSxuLiR2bm9kZSYmbi4kcGFyZW50JiZuLiR2bm9kZT09PW4uJHBhcmVudC5fdm5vZGUmJihuLiRwYXJlbnQuJGVsPW4uJGVsKX0sZS5wcm90b3R5cGUuJGZvcmNlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fd2F0Y2hlciYmdGhpcy5fd2F0Y2hlci51cGRhdGUoKX0sZS5wcm90b3R5cGUuJGRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCFlLl9pc0JlaW5nRGVzdHJveWVkKXtZdChlLFwiYmVmb3JlRGVzdHJveVwiKSxlLl9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciB0PWUuJHBhcmVudDshdHx8dC5faXNCZWluZ0Rlc3Ryb3llZHx8ZS4kb3B0aW9ucy5hYnN0cmFjdHx8aCh0LiRjaGlsZHJlbixlKSxlLl93YXRjaGVyJiZlLl93YXRjaGVyLnRlYXJkb3duKCk7Zm9yKHZhciBuPWUuX3dhdGNoZXJzLmxlbmd0aDtuLS07KWUuX3dhdGNoZXJzW25dLnRlYXJkb3duKCk7ZS5fZGF0YS5fX29iX18mJmUuX2RhdGEuX19vYl9fLnZtQ291bnQtLSxlLl9pc0Rlc3Ryb3llZD0hMCxlLl9fcGF0Y2hfXyhlLl92bm9kZSxudWxsKSxZdChlLFwiZGVzdHJveWVkXCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fSh3biksZnVuY3Rpb24oZSl7U3QoZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gWWUoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxuPXQuJG9wdGlvbnMscj1uLnJlbmRlcixpPW4uX3BhcmVudFZub2RlO2kmJih0LiRzY29wZWRTbG90cz1mdChpLmRhdGEuc2NvcGVkU2xvdHMsdC4kc2xvdHMsdC4kc2NvcGVkU2xvdHMpKSx0LiR2bm9kZT1pO3RyeXtIdD10LGU9ci5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG4pe1JlKG4sdCxcInJlbmRlclwiKSxlPXQuX3Zub2RlfWZpbmFsbHl7SHQ9bnVsbH1yZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmMT09PWUubGVuZ3RoJiYoZT1lWzBdKSxlIGluc3RhbmNlb2YgcGV8fChlPXZlKCkpLGUucGFyZW50PWksZX19KHduKTt2YXIgU249W1N0cmluZyxSZWdFeHAsQXJyYXldLFRuPXtLZWVwQWxpdmU6e25hbWU6XCJrZWVwLWFsaXZlXCIsYWJzdHJhY3Q6ITAscHJvcHM6e2luY2x1ZGU6U24sZXhjbHVkZTpTbixtYXg6W1N0cmluZyxOdW1iZXJdfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMua2V5cz1bXX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuY2FjaGUpT24odGhpcy5jYWNoZSxlLHRoaXMua2V5cyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHdhdGNoKFwiaW5jbHVkZVwiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGtuKHQsZSl9KX0pLHRoaXMuJHdhdGNoKFwiZXhjbHVkZVwiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIWtuKHQsZSl9KX0pfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLiRzbG90cy5kZWZhdWx0LHQ9enQoZSksbj10JiZ0LmNvbXBvbmVudE9wdGlvbnM7aWYobil7dmFyIHI9eG4obiksaT10aGlzLmluY2x1ZGUsbz10aGlzLmV4Y2x1ZGU7aWYoaSYmKCFyfHwha24oaSxyKSl8fG8mJnImJmtuKG8scikpcmV0dXJuIHQ7dmFyIGE9dGhpcy5jYWNoZSxzPXRoaXMua2V5cyxjPW51bGw9PXQua2V5P24uQ3Rvci5jaWQrKG4udGFnP1wiOjpcIituLnRhZzpcIlwiKTp0LmtleTthW2NdPyh0LmNvbXBvbmVudEluc3RhbmNlPWFbY10uY29tcG9uZW50SW5zdGFuY2UsaChzLGMpLHMucHVzaChjKSk6KGFbY109dCxzLnB1c2goYyksdGhpcy5tYXgmJnMubGVuZ3RoPnBhcnNlSW50KHRoaXMubWF4KSYmT24oYSxzWzBdLHMsdGhpcy5fdm5vZGUpKSx0LmRhdGEua2VlcEFsaXZlPSEwfXJldHVybiB0fHxlJiZlWzBdfX19OyFmdW5jdGlvbihlKXt2YXIgdD17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEZ9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbmZpZ1wiLHQpLGUudXRpbD17d2FybjphZSxleHRlbmQ6QSxtZXJnZU9wdGlvbnM6RGUsZGVmaW5lUmVhY3RpdmU6eGV9LGUuc2V0PWtlLGUuZGVsZXRlPUFlLGUubmV4dFRpY2s9WWUsZS5vYnNlcnZhYmxlPWZ1bmN0aW9uKGUpe3JldHVybiBDZShlKSxlfSxlLm9wdGlvbnM9T2JqZWN0LmNyZWF0ZShudWxsKSxNLmZvckVhY2goZnVuY3Rpb24odCl7ZS5vcHRpb25zW3QrXCJzXCJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSxlLm9wdGlvbnMuX2Jhc2U9ZSxBKGUub3B0aW9ucy5jb21wb25lbnRzLFRuKSxmdW5jdGlvbihlKXtlLnVzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbnN0YWxsZWRQbHVnaW5zfHwodGhpcy5faW5zdGFsbGVkUGx1Z2lucz1bXSk7aWYodC5pbmRleE9mKGUpPi0xKXJldHVybiB0aGlzO3ZhciBuPWsoYXJndW1lbnRzLDEpO3JldHVybiBuLnVuc2hpZnQodGhpcyksXCJmdW5jdGlvblwiPT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOlwiZnVuY3Rpb25cIj09dHlwZW9mIGUmJmUuYXBwbHkobnVsbCxuKSx0LnB1c2goZSksdGhpc319KGUpLGZ1bmN0aW9uKGUpe2UubWl4aW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3B0aW9ucz1EZSh0aGlzLm9wdGlvbnMsZSksdGhpc319KGUpLENuKGUpLGZ1bmN0aW9uKGUpe00uZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG4/KFwiY29tcG9uZW50XCI9PT10JiZzKG4pJiYobi5uYW1lPW4ubmFtZXx8ZSxuPXRoaXMub3B0aW9ucy5fYmFzZS5leHRlbmQobikpLFwiZGlyZWN0aXZlXCI9PT10JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYobj17YmluZDpuLHVwZGF0ZTpufSksdGhpcy5vcHRpb25zW3QrXCJzXCJdW2VdPW4sbik6dGhpcy5vcHRpb25zW3QrXCJzXCJdW2VdfX0pfShlKX0od24pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3bi5wcm90b3R5cGUsXCIkaXNTZXJ2ZXJcIix7Z2V0OnRlfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHduLnByb3RvdHlwZSxcIiRzc3JDb250ZXh0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiR2bm9kZSYmdGhpcy4kdm5vZGUuc3NyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24sXCJGdW5jdGlvbmFsUmVuZGVyQ29udGV4dFwiLHt2YWx1ZTpUdH0pLHduLnZlcnNpb249XCIyLjYuMTJcIjt2YXIgRW49cChcInN0eWxlLGNsYXNzXCIpLE5uPXAoXCJpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzXCIpLGpuPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm5cInZhbHVlXCI9PT1uJiZObihlKSYmXCJidXR0b25cIiE9PXR8fFwic2VsZWN0ZWRcIj09PW4mJlwib3B0aW9uXCI9PT1lfHxcImNoZWNrZWRcIj09PW4mJlwiaW5wdXRcIj09PWV8fFwibXV0ZWRcIj09PW4mJlwidmlkZW9cIj09PWV9LERuPXAoXCJjb250ZW50ZWRpdGFibGUsZHJhZ2dhYmxlLHNwZWxsY2hlY2tcIiksTG49cChcImV2ZW50cyxjYXJldCx0eXBpbmcscGxhaW50ZXh0LW9ubHlcIiksTW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSG4odCl8fFwiZmFsc2VcIj09PXQ/XCJmYWxzZVwiOlwiY29udGVudGVkaXRhYmxlXCI9PT1lJiZMbih0KT90OlwidHJ1ZVwifSxJbj1wKFwiYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSxkZWZhdWx0LGRlZmF1bHRjaGVja2VkLGRlZmF1bHRtdXRlZCxkZWZhdWx0c2VsZWN0ZWQsZGVmZXIsZGlzYWJsZWQsZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSxtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LHJlcXVpcmVkLHJldmVyc2VkLHNjb3BlZCxzZWFtbGVzcyxzZWxlY3RlZCxzb3J0YWJsZSx0cmFuc2xhdGUsdHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZVwiKSxGbj1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixQbj1mdW5jdGlvbihlKXtyZXR1cm5cIjpcIj09PWUuY2hhckF0KDUpJiZcInhsaW5rXCI9PT1lLnNsaWNlKDAsNSl9LFJuPWZ1bmN0aW9uKGUpe3JldHVybiBQbihlKT9lLnNsaWNlKDYsZS5sZW5ndGgpOlwiXCJ9LEhuPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHwhMT09PWV9O2Z1bmN0aW9uIEJuKGUpe2Zvcih2YXIgdD1lLmRhdGEscj1lLGk9ZTtuKGkuY29tcG9uZW50SW5zdGFuY2UpOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKHQ9VW4oaS5kYXRhLHQpKTtmb3IoO24ocj1yLnBhcmVudCk7KXImJnIuZGF0YSYmKHQ9VW4odCxyLmRhdGEpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihuKGUpfHxuKHQpKXJldHVybiB6bihlLFZuKHQpKTtyZXR1cm5cIlwifSh0LnN0YXRpY0NsYXNzLHQuY2xhc3MpfWZ1bmN0aW9uIFVuKGUsdCl7cmV0dXJue3N0YXRpY0NsYXNzOnpuKGUuc3RhdGljQ2xhc3MsdC5zdGF0aWNDbGFzcyksY2xhc3M6bihlLmNsYXNzKT9bZS5jbGFzcyx0LmNsYXNzXTp0LmNsYXNzfX1mdW5jdGlvbiB6bihlLHQpe3JldHVybiBlP3Q/ZStcIiBcIit0OmU6dHx8XCJcIn1mdW5jdGlvbiBWbihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbihlKXtmb3IodmFyIHQscj1cIlwiLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspbih0PVZuKGVbaV0pKSYmXCJcIiE9PXQmJihyJiYocis9XCIgXCIpLHIrPXQpO3JldHVybiByfShlKTpvKGUpP2Z1bmN0aW9uKGUpe3ZhciB0PVwiXCI7Zm9yKHZhciBuIGluIGUpZVtuXSYmKHQmJih0Kz1cIiBcIiksdCs9bik7cmV0dXJuIHR9KGUpOlwic3RyaW5nXCI9PXR5cGVvZiBlP2U6XCJcIn12YXIgS249e3N2ZzpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsbWF0aDpcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIn0sSm49cChcImh0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLGFkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbixkaXYsZGQsZGwsZHQsZmlnY2FwdGlvbixmaWd1cmUscGljdHVyZSxocixpbWcsbGksbWFpbixvbCxwLHByZSx1bCxhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnkscyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sZW1iZWQsb2JqZWN0LHBhcmFtLHNvdXJjZSxjYW52YXMsc2NyaXB0LG5vc2NyaXB0LGRlbCxpbnMsY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscHJvZ3Jlc3Msc2VsZWN0LHRleHRhcmVhLGRldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSxjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290XCIpLHFuPXAoXCJzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4scG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2Usdmlld1wiLCEwKSxXbj1mdW5jdGlvbihlKXtyZXR1cm4gSm4oZSl8fHFuKGUpfTtmdW5jdGlvbiBabihlKXtyZXR1cm4gcW4oZSk/XCJzdmdcIjpcIm1hdGhcIj09PWU/XCJtYXRoXCI6dm9pZCAwfXZhciBHbj1PYmplY3QuY3JlYXRlKG51bGwpO3ZhciBYbj1wKFwidGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmxcIik7ZnVuY3Rpb24gWW4oZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIHR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIil9cmV0dXJuIGV9dmFyIFFuPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6ZnVuY3Rpb24oZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVyblwic2VsZWN0XCIhPT1lP246KHQuZGF0YSYmdC5kYXRhLmF0dHJzJiZ2b2lkIDAhPT10LmRhdGEuYXR0cnMubXVsdGlwbGUmJm4uc2V0QXR0cmlidXRlKFwibXVsdGlwbGVcIixcIm11bHRpcGxlXCIpLG4pfSxjcmVhdGVFbGVtZW50TlM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKEtuW2VdLHQpfSxjcmVhdGVUZXh0Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9LGNyZWF0ZUNvbW1lbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZSl9LGluc2VydEJlZm9yZTpmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0scmVtb3ZlQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLnJlbW92ZUNoaWxkKHQpfSxhcHBlbmRDaGlsZDpmdW5jdGlvbihlLHQpe2UuYXBwZW5kQ2hpbGQodCl9LHBhcmVudE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZX0sbmV4dFNpYmxpbmc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUubmV4dFNpYmxpbmd9LHRhZ05hbWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGFnTmFtZX0sc2V0VGV4dENvbnRlbnQ6ZnVuY3Rpb24oZSx0KXtlLnRleHRDb250ZW50PXR9LHNldFN0eWxlU2NvcGU6ZnVuY3Rpb24oZSx0KXtlLnNldEF0dHJpYnV0ZSh0LFwiXCIpfX0pLGVyPXtjcmVhdGU6ZnVuY3Rpb24oZSx0KXt0cih0KX0sdXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZS5kYXRhLnJlZiE9PXQuZGF0YS5yZWYmJih0cihlLCEwKSx0cih0KSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dHIoZSwhMCl9fTtmdW5jdGlvbiB0cihlLHQpe3ZhciByPWUuZGF0YS5yZWY7aWYobihyKSl7dmFyIGk9ZS5jb250ZXh0LG89ZS5jb21wb25lbnRJbnN0YW5jZXx8ZS5lbG0sYT1pLiRyZWZzO3Q/QXJyYXkuaXNBcnJheShhW3JdKT9oKGFbcl0sbyk6YVtyXT09PW8mJihhW3JdPXZvaWQgMCk6ZS5kYXRhLnJlZkluRm9yP0FycmF5LmlzQXJyYXkoYVtyXSk/YVtyXS5pbmRleE9mKG8pPDAmJmFbcl0ucHVzaChvKTphW3JdPVtvXTphW3JdPW99fXZhciBucj1uZXcgcGUoXCJcIix7fSxbXSkscnI9W1wiY3JlYXRlXCIsXCJhY3RpdmF0ZVwiLFwidXBkYXRlXCIsXCJyZW1vdmVcIixcImRlc3Ryb3lcIl07ZnVuY3Rpb24gaXIoZSxpKXtyZXR1cm4gZS5rZXk9PT1pLmtleSYmKGUudGFnPT09aS50YWcmJmUuaXNDb21tZW50PT09aS5pc0NvbW1lbnQmJm4oZS5kYXRhKT09PW4oaS5kYXRhKSYmZnVuY3Rpb24oZSx0KXtpZihcImlucHV0XCIhPT1lLnRhZylyZXR1cm4hMDt2YXIgcixpPW4ocj1lLmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZSxvPW4ocj10LmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZTtyZXR1cm4gaT09PW98fFhuKGkpJiZYbihvKX0oZSxpKXx8cihlLmlzQXN5bmNQbGFjZWhvbGRlcikmJmUuYXN5bmNGYWN0b3J5PT09aS5hc3luY0ZhY3RvcnkmJnQoaS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBvcihlLHQscil7dmFyIGksbyxhPXt9O2ZvcihpPXQ7aTw9cjsrK2kpbihvPWVbaV0ua2V5KSYmKGFbb109aSk7cmV0dXJuIGF9dmFyIGFyPXtjcmVhdGU6c3IsdXBkYXRlOnNyLGRlc3Ryb3k6ZnVuY3Rpb24oZSl7c3IoZSxucil9fTtmdW5jdGlvbiBzcihlLHQpeyhlLmRhdGEuZGlyZWN0aXZlc3x8dC5kYXRhLmRpcmVjdGl2ZXMpJiZmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvPWU9PT1ucixhPXQ9PT1ucixzPXVyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksYz11cih0LmRhdGEuZGlyZWN0aXZlcyx0LmNvbnRleHQpLHU9W10sbD1bXTtmb3IobiBpbiBjKXI9c1tuXSxpPWNbbl0scj8oaS5vbGRWYWx1ZT1yLnZhbHVlLGkub2xkQXJnPXIuYXJnLGZyKGksXCJ1cGRhdGVcIix0LGUpLGkuZGVmJiZpLmRlZi5jb21wb25lbnRVcGRhdGVkJiZsLnB1c2goaSkpOihmcihpLFwiYmluZFwiLHQsZSksaS5kZWYmJmkuZGVmLmluc2VydGVkJiZ1LnB1c2goaSkpO2lmKHUubGVuZ3RoKXt2YXIgZj1mdW5jdGlvbigpe2Zvcih2YXIgbj0wO248dS5sZW5ndGg7bisrKWZyKHVbbl0sXCJpbnNlcnRlZFwiLHQsZSl9O28/aXQodCxcImluc2VydFwiLGYpOmYoKX1sLmxlbmd0aCYmaXQodCxcInBvc3RwYXRjaFwiLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTA7bjxsLmxlbmd0aDtuKyspZnIobFtuXSxcImNvbXBvbmVudFVwZGF0ZWRcIix0LGUpfSk7aWYoIW8pZm9yKG4gaW4gcyljW25dfHxmcihzW25dLFwidW5iaW5kXCIsZSxlLGEpfShlLHQpfXZhciBjcj1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIHVyKGUsdCl7dmFyIG4scixpPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoIWUpcmV0dXJuIGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocj1lW25dKS5tb2RpZmllcnN8fChyLm1vZGlmaWVycz1jciksaVtscihyKV09cixyLmRlZj1MZSh0LiRvcHRpb25zLFwiZGlyZWN0aXZlc1wiLHIubmFtZSk7cmV0dXJuIGl9ZnVuY3Rpb24gbHIoZSl7cmV0dXJuIGUucmF3TmFtZXx8ZS5uYW1lK1wiLlwiK09iamVjdC5rZXlzKGUubW9kaWZpZXJzfHx7fSkuam9pbihcIi5cIil9ZnVuY3Rpb24gZnIoZSx0LG4scixpKXt2YXIgbz1lLmRlZiYmZS5kZWZbdF07aWYobyl0cnl7byhuLmVsbSxlLG4scixpKX1jYXRjaChyKXtSZShyLG4uY29udGV4dCxcImRpcmVjdGl2ZSBcIitlLm5hbWUrXCIgXCIrdCtcIiBob29rXCIpfX12YXIgcHI9W2VyLGFyXTtmdW5jdGlvbiBkcihlLHIpe3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztpZighKG4oaSkmJiExPT09aS5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzfHx0KGUuZGF0YS5hdHRycykmJnQoci5kYXRhLmF0dHJzKSkpe3ZhciBvLGEscz1yLmVsbSxjPWUuZGF0YS5hdHRyc3x8e30sdT1yLmRhdGEuYXR0cnN8fHt9O2ZvcihvIGluIG4odS5fX29iX18pJiYodT1yLmRhdGEuYXR0cnM9QSh7fSx1KSksdSlhPXVbb10sY1tvXSE9PWEmJnZyKHMsbyxhKTtmb3IobyBpbihxfHxaKSYmdS52YWx1ZSE9PWMudmFsdWUmJnZyKHMsXCJ2YWx1ZVwiLHUudmFsdWUpLGMpdCh1W29dKSYmKFBuKG8pP3MucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4obykpOkRuKG8pfHxzLnJlbW92ZUF0dHJpYnV0ZShvKSl9fWZ1bmN0aW9uIHZyKGUsdCxuKXtlLnRhZ05hbWUuaW5kZXhPZihcIi1cIik+LTE/aHIoZSx0LG4pOkluKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPVwiYWxsb3dmdWxsc2NyZWVuXCI9PT10JiZcIkVNQkVEXCI9PT1lLnRhZ05hbWU/XCJ0cnVlXCI6dCxlLnNldEF0dHJpYnV0ZSh0LG4pKTpEbih0KT9lLnNldEF0dHJpYnV0ZSh0LE1uKHQsbikpOlBuKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4odCkpOmUuc2V0QXR0cmlidXRlTlMoRm4sdCxuKTpocihlLHQsbil9ZnVuY3Rpb24gaHIoZSx0LG4pe2lmKEhuKG4pKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7aWYocSYmIVcmJlwiVEVYVEFSRUFcIj09PWUudGFnTmFtZSYmXCJwbGFjZWhvbGRlclwiPT09dCYmXCJcIiE9PW4mJiFlLl9faWVwaCl7dmFyIHI9ZnVuY3Rpb24odCl7dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLHIpfTtlLmFkZEV2ZW50TGlzdGVuZXIoXCJpbnB1dFwiLHIpLGUuX19pZXBoPSEwfWUuc2V0QXR0cmlidXRlKHQsbil9fXZhciBtcj17Y3JlYXRlOmRyLHVwZGF0ZTpkcn07ZnVuY3Rpb24geXIoZSxyKXt2YXIgaT1yLmVsbSxvPXIuZGF0YSxhPWUuZGF0YTtpZighKHQoby5zdGF0aWNDbGFzcykmJnQoby5jbGFzcykmJih0KGEpfHx0KGEuc3RhdGljQ2xhc3MpJiZ0KGEuY2xhc3MpKSkpe3ZhciBzPUJuKHIpLGM9aS5fdHJhbnNpdGlvbkNsYXNzZXM7bihjKSYmKHM9em4ocyxWbihjKSkpLHMhPT1pLl9wcmV2Q2xhc3MmJihpLnNldEF0dHJpYnV0ZShcImNsYXNzXCIscyksaS5fcHJldkNsYXNzPXMpfX12YXIgZ3IsX3IsYnIsJHIsd3IsQ3IseHI9e2NyZWF0ZTp5cix1cGRhdGU6eXJ9LGtyPS9bXFx3KS4rXFwtXyRcXF1dLztmdW5jdGlvbiBBcihlKXt2YXIgdCxuLHIsaSxvLGE9ITEscz0hMSxjPSExLHU9ITEsbD0wLGY9MCxwPTAsZD0wO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspaWYobj10LHQ9ZS5jaGFyQ29kZUF0KHIpLGEpMzk9PT10JiY5MiE9PW4mJihhPSExKTtlbHNlIGlmKHMpMzQ9PT10JiY5MiE9PW4mJihzPSExKTtlbHNlIGlmKGMpOTY9PT10JiY5MiE9PW4mJihjPSExKTtlbHNlIGlmKHUpNDc9PT10JiY5MiE9PW4mJih1PSExKTtlbHNlIGlmKDEyNCE9PXR8fDEyND09PWUuY2hhckNvZGVBdChyKzEpfHwxMjQ9PT1lLmNoYXJDb2RlQXQoci0xKXx8bHx8Znx8cCl7c3dpdGNoKHQpe2Nhc2UgMzQ6cz0hMDticmVhaztjYXNlIDM5OmE9ITA7YnJlYWs7Y2FzZSA5NjpjPSEwO2JyZWFrO2Nhc2UgNDA6cCsrO2JyZWFrO2Nhc2UgNDE6cC0tO2JyZWFrO2Nhc2UgOTE6ZisrO2JyZWFrO2Nhc2UgOTM6Zi0tO2JyZWFrO2Nhc2UgMTIzOmwrKzticmVhaztjYXNlIDEyNTpsLS19aWYoNDc9PT10KXtmb3IodmFyIHY9ci0xLGg9dm9pZCAwO3Y+PTAmJlwiIFwiPT09KGg9ZS5jaGFyQXQodikpO3YtLSk7aCYma3IudGVzdChoKXx8KHU9ITApfX1lbHNlIHZvaWQgMD09PWk/KGQ9cisxLGk9ZS5zbGljZSgwLHIpLnRyaW0oKSk6bSgpO2Z1bmN0aW9uIG0oKXsob3x8KG89W10pKS5wdXNoKGUuc2xpY2UoZCxyKS50cmltKCkpLGQ9cisxfWlmKHZvaWQgMD09PWk/aT1lLnNsaWNlKDAscikudHJpbSgpOjAhPT1kJiZtKCksbylmb3Iocj0wO3I8by5sZW5ndGg7cisrKWk9T3IoaSxvW3JdKTtyZXR1cm4gaX1mdW5jdGlvbiBPcihlLHQpe3ZhciBuPXQuaW5kZXhPZihcIihcIik7aWYobjwwKXJldHVybidfZihcIicrdCsnXCIpKCcrZStcIilcIjt2YXIgcj10LnNsaWNlKDAsbiksaT10LnNsaWNlKG4rMSk7cmV0dXJuJ19mKFwiJytyKydcIikoJytlKyhcIilcIiE9PWk/XCIsXCIraTppKX1mdW5jdGlvbiBTcihlLHQpe2NvbnNvbGUuZXJyb3IoXCJbVnVlIGNvbXBpbGVyXTogXCIrZSl9ZnVuY3Rpb24gVHIoZSx0KXtyZXR1cm4gZT9lLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pOltdfWZ1bmN0aW9uIEVyKGUsdCxuLHIsaSl7KGUucHJvcHN8fChlLnByb3BzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBOcihlLHQsbixyLGkpeyhpP2UuZHluYW1pY0F0dHJzfHwoZS5keW5hbWljQXR0cnM9W10pOmUuYXR0cnN8fChlLmF0dHJzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBqcihlLHQsbixyKXtlLmF0dHJzTWFwW3RdPW4sZS5hdHRyc0xpc3QucHVzaChScih7bmFtZTp0LHZhbHVlOm59LHIpKX1mdW5jdGlvbiBEcihlLHQsbixyLGksbyxhLHMpeyhlLmRpcmVjdGl2ZXN8fChlLmRpcmVjdGl2ZXM9W10pKS5wdXNoKFJyKHtuYW1lOnQscmF3TmFtZTpuLHZhbHVlOnIsYXJnOmksaXNEeW5hbWljQXJnOm8sbW9kaWZpZXJzOmF9LHMpKSxlLnBsYWluPSExfWZ1bmN0aW9uIExyKGUsdCxuKXtyZXR1cm4gbj9cIl9wKFwiK3QrJyxcIicrZSsnXCIpJzplK3R9ZnVuY3Rpb24gTXIodCxuLHIsaSxvLGEscyxjKXt2YXIgdTsoaT1pfHxlKS5yaWdodD9jP249XCIoXCIrbitcIik9PT0nY2xpY2snPydjb250ZXh0bWVudSc6KFwiK24rXCIpXCI6XCJjbGlja1wiPT09biYmKG49XCJjb250ZXh0bWVudVwiLGRlbGV0ZSBpLnJpZ2h0KTppLm1pZGRsZSYmKGM/bj1cIihcIituK1wiKT09PSdjbGljayc/J21vdXNldXAnOihcIituK1wiKVwiOlwiY2xpY2tcIj09PW4mJihuPVwibW91c2V1cFwiKSksaS5jYXB0dXJlJiYoZGVsZXRlIGkuY2FwdHVyZSxuPUxyKFwiIVwiLG4sYykpLGkub25jZSYmKGRlbGV0ZSBpLm9uY2Usbj1McihcIn5cIixuLGMpKSxpLnBhc3NpdmUmJihkZWxldGUgaS5wYXNzaXZlLG49THIoXCImXCIsbixjKSksaS5uYXRpdmU/KGRlbGV0ZSBpLm5hdGl2ZSx1PXQubmF0aXZlRXZlbnRzfHwodC5uYXRpdmVFdmVudHM9e30pKTp1PXQuZXZlbnRzfHwodC5ldmVudHM9e30pO3ZhciBsPVJyKHt2YWx1ZTpyLnRyaW0oKSxkeW5hbWljOmN9LHMpO2khPT1lJiYobC5tb2RpZmllcnM9aSk7dmFyIGY9dVtuXTtBcnJheS5pc0FycmF5KGYpP28/Zi51bnNoaWZ0KGwpOmYucHVzaChsKTp1W25dPWY/bz9bbCxmXTpbZixsXTpsLHQucGxhaW49ITF9ZnVuY3Rpb24gSXIoZSx0LG4pe3ZhciByPUZyKGUsXCI6XCIrdCl8fEZyKGUsXCJ2LWJpbmQ6XCIrdCk7aWYobnVsbCE9cilyZXR1cm4gQXIocik7aWYoITEhPT1uKXt2YXIgaT1GcihlLHQpO2lmKG51bGwhPWkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGkpfX1mdW5jdGlvbiBGcihlLHQsbil7dmFyIHI7aWYobnVsbCE9KHI9ZS5hdHRyc01hcFt0XSkpZm9yKHZhciBpPWUuYXR0cnNMaXN0LG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYoaVtvXS5uYW1lPT09dCl7aS5zcGxpY2UobywxKTticmVha31yZXR1cm4gbiYmZGVsZXRlIGUuYXR0cnNNYXBbdF0scn1mdW5jdGlvbiBQcihlLHQpe2Zvcih2YXIgbj1lLmF0dHJzTGlzdCxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO2lmKHQudGVzdChvLm5hbWUpKXJldHVybiBuLnNwbGljZShyLDEpLG99fWZ1bmN0aW9uIFJyKGUsdCl7cmV0dXJuIHQmJihudWxsIT10LnN0YXJ0JiYoZS5zdGFydD10LnN0YXJ0KSxudWxsIT10LmVuZCYmKGUuZW5kPXQuZW5kKSksZX1mdW5jdGlvbiBIcihlLHQsbil7dmFyIHI9bnx8e30saT1yLm51bWJlcixvPVwiJCR2XCI7ci50cmltJiYobz1cIih0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KVwiKSxpJiYobz1cIl9uKFwiK28rXCIpXCIpO3ZhciBhPUJyKHQsbyk7ZS5tb2RlbD17dmFsdWU6XCIoXCIrdCtcIilcIixleHByZXNzaW9uOkpTT04uc3RyaW5naWZ5KHQpLGNhbGxiYWNrOlwiZnVuY3Rpb24gKCQkdikge1wiK2ErXCJ9XCJ9fWZ1bmN0aW9uIEJyKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoZT1lLnRyaW0oKSxncj1lLmxlbmd0aCxlLmluZGV4T2YoXCJbXCIpPDB8fGUubGFzdEluZGV4T2YoXCJdXCIpPGdyLTEpcmV0dXJuKCRyPWUubGFzdEluZGV4T2YoXCIuXCIpKT4tMT97ZXhwOmUuc2xpY2UoMCwkciksa2V5OidcIicrZS5zbGljZSgkcisxKSsnXCInfTp7ZXhwOmUsa2V5Om51bGx9O19yPWUsJHI9d3I9Q3I9MDtmb3IoOyF6cigpOylWcihicj1VcigpKT9Kcihicik6OTE9PT1iciYmS3IoYnIpO3JldHVybntleHA6ZS5zbGljZSgwLHdyKSxrZXk6ZS5zbGljZSh3cisxLENyKX19KGUpO3JldHVybiBudWxsPT09bi5rZXk/ZStcIj1cIit0OlwiJHNldChcIituLmV4cCtcIiwgXCIrbi5rZXkrXCIsIFwiK3QrXCIpXCJ9ZnVuY3Rpb24gVXIoKXtyZXR1cm4gX3IuY2hhckNvZGVBdCgrKyRyKX1mdW5jdGlvbiB6cigpe3JldHVybiAkcj49Z3J9ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIDM0PT09ZXx8Mzk9PT1lfWZ1bmN0aW9uIEtyKGUpe3ZhciB0PTE7Zm9yKHdyPSRyOyF6cigpOylpZihWcihlPVVyKCkpKUpyKGUpO2Vsc2UgaWYoOTE9PT1lJiZ0KyssOTM9PT1lJiZ0LS0sMD09PXQpe0NyPSRyO2JyZWFrfX1mdW5jdGlvbiBKcihlKXtmb3IodmFyIHQ9ZTshenIoKSYmKGU9VXIoKSkhPT10Oyk7fXZhciBxcixXcj1cIl9fclwiLFpyPVwiX19jXCI7ZnVuY3Rpb24gR3IoZSx0LG4pe3ZhciByPXFyO3JldHVybiBmdW5jdGlvbiBpKCl7bnVsbCE9PXQuYXBwbHkobnVsbCxhcmd1bWVudHMpJiZRcihlLGksbixyKX19dmFyIFhyPVZlJiYhKFgmJk51bWJlcihYWzFdKTw9NTMpO2Z1bmN0aW9uIFlyKGUsdCxuLHIpe2lmKFhyKXt2YXIgaT1hbixvPXQ7dD1vLl93cmFwcGVyPWZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZS5jdXJyZW50VGFyZ2V0fHxlLnRpbWVTdGFtcD49aXx8ZS50aW1lU3RhbXA8PTB8fGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQhPT1kb2N1bWVudClyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fXFyLmFkZEV2ZW50TGlzdGVuZXIoZSx0LFE/e2NhcHR1cmU6bixwYXNzaXZlOnJ9Om4pfWZ1bmN0aW9uIFFyKGUsdCxuLHIpeyhyfHxxcikucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQuX3dyYXBwZXJ8fHQsbil9ZnVuY3Rpb24gZWkoZSxyKXtpZighdChlLmRhdGEub24pfHwhdChyLmRhdGEub24pKXt2YXIgaT1yLmRhdGEub258fHt9LG89ZS5kYXRhLm9ufHx7fTtxcj1yLmVsbSxmdW5jdGlvbihlKXtpZihuKGVbV3JdKSl7dmFyIHQ9cT9cImNoYW5nZVwiOlwiaW5wdXRcIjtlW3RdPVtdLmNvbmNhdChlW1dyXSxlW3RdfHxbXSksZGVsZXRlIGVbV3JdfW4oZVtacl0pJiYoZS5jaGFuZ2U9W10uY29uY2F0KGVbWnJdLGUuY2hhbmdlfHxbXSksZGVsZXRlIGVbWnJdKX0oaSkscnQoaSxvLFlyLFFyLEdyLHIuY29udGV4dCkscXI9dm9pZCAwfX12YXIgdGksbmk9e2NyZWF0ZTplaSx1cGRhdGU6ZWl9O2Z1bmN0aW9uIHJpKGUscil7aWYoIXQoZS5kYXRhLmRvbVByb3BzKXx8IXQoci5kYXRhLmRvbVByb3BzKSl7dmFyIGksbyxhPXIuZWxtLHM9ZS5kYXRhLmRvbVByb3BzfHx7fSxjPXIuZGF0YS5kb21Qcm9wc3x8e307Zm9yKGkgaW4gbihjLl9fb2JfXykmJihjPXIuZGF0YS5kb21Qcm9wcz1BKHt9LGMpKSxzKWkgaW4gY3x8KGFbaV09XCJcIik7Zm9yKGkgaW4gYyl7aWYobz1jW2ldLFwidGV4dENvbnRlbnRcIj09PWl8fFwiaW5uZXJIVE1MXCI9PT1pKXtpZihyLmNoaWxkcmVuJiYoci5jaGlsZHJlbi5sZW5ndGg9MCksbz09PXNbaV0pY29udGludWU7MT09PWEuY2hpbGROb2Rlcy5sZW5ndGgmJmEucmVtb3ZlQ2hpbGQoYS5jaGlsZE5vZGVzWzBdKX1pZihcInZhbHVlXCI9PT1pJiZcIlBST0dSRVNTXCIhPT1hLnRhZ05hbWUpe2EuX3ZhbHVlPW87dmFyIHU9dChvKT9cIlwiOlN0cmluZyhvKTtpaShhLHUpJiYoYS52YWx1ZT11KX1lbHNlIGlmKFwiaW5uZXJIVE1MXCI9PT1pJiZxbihhLnRhZ05hbWUpJiZ0KGEuaW5uZXJIVE1MKSl7KHRpPXRpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pbm5lckhUTUw9XCI8c3ZnPlwiK28rXCI8L3N2Zz5cIjtmb3IodmFyIGw9dGkuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2wuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChsLmZpcnN0Q2hpbGQpfWVsc2UgaWYobyE9PXNbaV0pdHJ5e2FbaV09b31jYXRjaChlKXt9fX19ZnVuY3Rpb24gaWkoZSx0KXtyZXR1cm4hZS5jb21wb3NpbmcmJihcIk9QVElPTlwiPT09ZS50YWdOYW1lfHxmdW5jdGlvbihlLHQpe3ZhciBuPSEwO3RyeXtuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1lfWNhdGNoKGUpe31yZXR1cm4gbiYmZS52YWx1ZSE9PXR9KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS52YWx1ZSxpPWUuX3ZNb2RpZmllcnM7aWYobihpKSl7aWYoaS5udW1iZXIpcmV0dXJuIGYocikhPT1mKHQpO2lmKGkudHJpbSlyZXR1cm4gci50cmltKCkhPT10LnRyaW0oKX1yZXR1cm4gciE9PXR9KGUsdCkpfXZhciBvaT17Y3JlYXRlOnJpLHVwZGF0ZTpyaX0sYWk9ZyhmdW5jdGlvbihlKXt2YXIgdD17fSxuPS86KC4rKS87cmV0dXJuIGUuc3BsaXQoLzsoPyFbXihdKlxcKSkvZykuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgcj1lLnNwbGl0KG4pO3IubGVuZ3RoPjEmJih0W3JbMF0udHJpbSgpXT1yWzFdLnRyaW0oKSl9fSksdH0pO2Z1bmN0aW9uIHNpKGUpe3ZhciB0PWNpKGUuc3R5bGUpO3JldHVybiBlLnN0YXRpY1N0eWxlP0EoZS5zdGF0aWNTdHlsZSx0KTp0fWZ1bmN0aW9uIGNpKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP08oZSk6XCJzdHJpbmdcIj09dHlwZW9mIGU/YWkoZSk6ZX12YXIgdWksbGk9L14tLS8sZmk9L1xccyohaW1wb3J0YW50JC8scGk9ZnVuY3Rpb24oZSx0LG4pe2lmKGxpLnRlc3QodCkpZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pO2Vsc2UgaWYoZmkudGVzdChuKSllLnN0eWxlLnNldFByb3BlcnR5KEModCksbi5yZXBsYWNlKGZpLFwiXCIpLFwiaW1wb3J0YW50XCIpO2Vsc2V7dmFyIHI9dmkodCk7aWYoQXJyYXkuaXNBcnJheShuKSlmb3IodmFyIGk9MCxvPW4ubGVuZ3RoO2k8bztpKyspZS5zdHlsZVtyXT1uW2ldO2Vsc2UgZS5zdHlsZVtyXT1ufX0sZGk9W1wiV2Via2l0XCIsXCJNb3pcIixcIm1zXCJdLHZpPWcoZnVuY3Rpb24oZSl7aWYodWk9dWl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJmaWx0ZXJcIiE9PShlPWIoZSkpJiZlIGluIHVpKXJldHVybiBlO2Zvcih2YXIgdD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248ZGkubGVuZ3RoO24rKyl7dmFyIHI9ZGlbbl0rdDtpZihyIGluIHVpKXJldHVybiByfX0pO2Z1bmN0aW9uIGhpKGUscil7dmFyIGk9ci5kYXRhLG89ZS5kYXRhO2lmKCEodChpLnN0YXRpY1N0eWxlKSYmdChpLnN0eWxlKSYmdChvLnN0YXRpY1N0eWxlKSYmdChvLnN0eWxlKSkpe3ZhciBhLHMsYz1yLmVsbSx1PW8uc3RhdGljU3R5bGUsbD1vLm5vcm1hbGl6ZWRTdHlsZXx8by5zdHlsZXx8e30sZj11fHxsLHA9Y2koci5kYXRhLnN0eWxlKXx8e307ci5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1uKHAuX19vYl9fKT9BKHt9LHApOnA7dmFyIGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXt9O2lmKHQpZm9yKHZhciBpPWU7aS5jb21wb25lbnRJbnN0YW5jZTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJihuPXNpKGkuZGF0YSkpJiZBKHIsbik7KG49c2koZS5kYXRhKSkmJkEocixuKTtmb3IodmFyIG89ZTtvPW8ucGFyZW50OylvLmRhdGEmJihuPXNpKG8uZGF0YSkpJiZBKHIsbik7cmV0dXJuIHJ9KHIsITApO2ZvcihzIGluIGYpdChkW3NdKSYmcGkoYyxzLFwiXCIpO2ZvcihzIGluIGQpKGE9ZFtzXSkhPT1mW3NdJiZwaShjLHMsbnVsbD09YT9cIlwiOmEpfX12YXIgbWk9e2NyZWF0ZTpoaSx1cGRhdGU6aGl9LHlpPS9cXHMrLztmdW5jdGlvbiBnaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoXCIgXCIpPi0xP3Quc3BsaXQoeWkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KX0pOmUuY2xhc3NMaXN0LmFkZCh0KTtlbHNle3ZhciBuPVwiIFwiKyhlLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpfHxcIlwiKStcIiBcIjtuLmluZGV4T2YoXCIgXCIrdCtcIiBcIik8MCYmZS5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLChuK3QpLnRyaW0oKSl9fWZ1bmN0aW9uIF9pKGUsdCl7aWYodCYmKHQ9dC50cmltKCkpKWlmKGUuY2xhc3NMaXN0KXQuaW5kZXhPZihcIiBcIik+LTE/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSk6ZS5jbGFzc0xpc3QucmVtb3ZlKHQpLGUuY2xhc3NMaXN0Lmxlbmd0aHx8ZS5yZW1vdmVBdHRyaWJ1dGUoXCJjbGFzc1wiKTtlbHNle2Zvcih2YXIgbj1cIiBcIisoZS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKXx8XCJcIikrXCIgXCIscj1cIiBcIit0K1wiIFwiO24uaW5kZXhPZihyKT49MDspbj1uLnJlcGxhY2UocixcIiBcIik7KG49bi50cmltKCkpP2Uuc2V0QXR0cmlidXRlKFwiY2xhc3NcIixuKTplLnJlbW92ZUF0dHJpYnV0ZShcImNsYXNzXCIpfX1mdW5jdGlvbiBiaShlKXtpZihlKXtpZihcIm9iamVjdFwiPT10eXBlb2YgZSl7dmFyIHQ9e307cmV0dXJuITEhPT1lLmNzcyYmQSh0LCRpKGUubmFtZXx8XCJ2XCIpKSxBKHQsZSksdH1yZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT8kaShlKTp2b2lkIDB9fXZhciAkaT1nKGZ1bmN0aW9uKGUpe3JldHVybntlbnRlckNsYXNzOmUrXCItZW50ZXJcIixlbnRlclRvQ2xhc3M6ZStcIi1lbnRlci10b1wiLGVudGVyQWN0aXZlQ2xhc3M6ZStcIi1lbnRlci1hY3RpdmVcIixsZWF2ZUNsYXNzOmUrXCItbGVhdmVcIixsZWF2ZVRvQ2xhc3M6ZStcIi1sZWF2ZS10b1wiLGxlYXZlQWN0aXZlQ2xhc3M6ZStcIi1sZWF2ZS1hY3RpdmVcIn19KSx3aT16JiYhVyxDaT1cInRyYW5zaXRpb25cIix4aT1cImFuaW1hdGlvblwiLGtpPVwidHJhbnNpdGlvblwiLEFpPVwidHJhbnNpdGlvbmVuZFwiLE9pPVwiYW5pbWF0aW9uXCIsU2k9XCJhbmltYXRpb25lbmRcIjt3aSYmKHZvaWQgMD09PXdpbmRvdy5vbnRyYW5zaXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQmJihraT1cIldlYmtpdFRyYW5zaXRpb25cIixBaT1cIndlYmtpdFRyYW5zaXRpb25FbmRcIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihPaT1cIldlYmtpdEFuaW1hdGlvblwiLFNpPVwid2Via2l0QW5pbWF0aW9uRW5kXCIpKTt2YXIgVGk9ej93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOnNldFRpbWVvdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX07ZnVuY3Rpb24gRWkoZSl7VGkoZnVuY3Rpb24oKXtUaShlKX0pfWZ1bmN0aW9uIE5pKGUsdCl7dmFyIG49ZS5fdHJhbnNpdGlvbkNsYXNzZXN8fChlLl90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKHQpPDAmJihuLnB1c2godCksZ2koZSx0KSl9ZnVuY3Rpb24gamkoZSx0KXtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmaChlLl90cmFuc2l0aW9uQ2xhc3Nlcyx0KSxfaShlLHQpfWZ1bmN0aW9uIERpKGUsdCxuKXt2YXIgcj1NaShlLHQpLGk9ci50eXBlLG89ci50aW1lb3V0LGE9ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz1pPT09Q2k/QWk6U2ksYz0wLHU9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxsKSxuKCl9LGw9ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1lJiYrK2M+PWEmJnUoKX07c2V0VGltZW91dChmdW5jdGlvbigpe2M8YSYmdSgpfSxvKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBMaT0vXFxiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO2Z1bmN0aW9uIE1pKGUsdCl7dmFyIG4scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxpPShyW2tpK1wiRGVsYXlcIl18fFwiXCIpLnNwbGl0KFwiLCBcIiksbz0ocltraStcIkR1cmF0aW9uXCJdfHxcIlwiKS5zcGxpdChcIiwgXCIpLGE9SWkoaSxvKSxzPShyW09pK1wiRGVsYXlcIl18fFwiXCIpLnNwbGl0KFwiLCBcIiksYz0ocltPaStcIkR1cmF0aW9uXCJdfHxcIlwiKS5zcGxpdChcIiwgXCIpLHU9SWkocyxjKSxsPTAsZj0wO3JldHVybiB0PT09Q2k/YT4wJiYobj1DaSxsPWEsZj1vLmxlbmd0aCk6dD09PXhpP3U+MCYmKG49eGksbD11LGY9Yy5sZW5ndGgpOmY9KG49KGw9TWF0aC5tYXgoYSx1KSk+MD9hPnU/Q2k6eGk6bnVsbCk/bj09PUNpP28ubGVuZ3RoOmMubGVuZ3RoOjAse3R5cGU6bix0aW1lb3V0OmwscHJvcENvdW50OmYsaGFzVHJhbnNmb3JtOm49PT1DaSYmTGkudGVzdChyW2tpK1wiUHJvcGVydHlcIl0pfX1mdW5jdGlvbiBJaShlLHQpe2Zvcig7ZS5sZW5ndGg8dC5sZW5ndGg7KWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gRmkodCkrRmkoZVtuXSl9KSl9ZnVuY3Rpb24gRmkoZSl7cmV0dXJuIDFlMypOdW1iZXIoZS5zbGljZSgwLC0xKS5yZXBsYWNlKFwiLFwiLFwiLlwiKSl9ZnVuY3Rpb24gUGkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2xlYXZlQ2IpJiYoaS5fbGVhdmVDYi5jYW5jZWxsZWQ9ITAsaS5fbGVhdmVDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYoIXQoYSkmJiFuKGkuX2VudGVyQ2IpJiYxPT09aS5ub2RlVHlwZSl7Zm9yKHZhciBzPWEuY3NzLGM9YS50eXBlLHU9YS5lbnRlckNsYXNzLGw9YS5lbnRlclRvQ2xhc3MscD1hLmVudGVyQWN0aXZlQ2xhc3MsZD1hLmFwcGVhckNsYXNzLHY9YS5hcHBlYXJUb0NsYXNzLGg9YS5hcHBlYXJBY3RpdmVDbGFzcyxtPWEuYmVmb3JlRW50ZXIseT1hLmVudGVyLGc9YS5hZnRlckVudGVyLF89YS5lbnRlckNhbmNlbGxlZCxiPWEuYmVmb3JlQXBwZWFyLCQ9YS5hcHBlYXIsdz1hLmFmdGVyQXBwZWFyLEM9YS5hcHBlYXJDYW5jZWxsZWQseD1hLmR1cmF0aW9uLGs9V3QsQT1XdC4kdm5vZGU7QSYmQS5wYXJlbnQ7KWs9QS5jb250ZXh0LEE9QS5wYXJlbnQ7dmFyIE89IWsuX2lzTW91bnRlZHx8IWUuaXNSb290SW5zZXJ0O2lmKCFPfHwkfHxcIlwiPT09JCl7dmFyIFM9TyYmZD9kOnUsVD1PJiZoP2g6cCxFPU8mJnY/djpsLE49TyYmYnx8bSxqPU8mJlwiZnVuY3Rpb25cIj09dHlwZW9mICQ/JDp5LEw9TyYmd3x8ZyxNPU8mJkN8fF8sST1mKG8oeCk/eC5lbnRlcjp4KSxGPSExIT09cyYmIVcsUD1CaShqKSxSPWkuX2VudGVyQ2I9RChmdW5jdGlvbigpe0YmJihqaShpLEUpLGppKGksVCkpLFIuY2FuY2VsbGVkPyhGJiZqaShpLFMpLE0mJk0oaSkpOkwmJkwoaSksaS5fZW50ZXJDYj1udWxsfSk7ZS5kYXRhLnNob3d8fGl0KGUsXCJpbnNlcnRcIixmdW5jdGlvbigpe3ZhciB0PWkucGFyZW50Tm9kZSxuPXQmJnQuX3BlbmRpbmcmJnQuX3BlbmRpbmdbZS5rZXldO24mJm4udGFnPT09ZS50YWcmJm4uZWxtLl9sZWF2ZUNiJiZuLmVsbS5fbGVhdmVDYigpLGomJmooaSxSKX0pLE4mJk4oaSksRiYmKE5pKGksUyksTmkoaSxUKSxFaShmdW5jdGlvbigpe2ppKGksUyksUi5jYW5jZWxsZWR8fChOaShpLEUpLFB8fChIaShJKT9zZXRUaW1lb3V0KFIsSSk6RGkoaSxjLFIpKSl9KSksZS5kYXRhLnNob3cmJihyJiZyKCksaiYmaihpLFIpKSxGfHxQfHxSKCl9fX1mdW5jdGlvbiBSaShlLHIpe3ZhciBpPWUuZWxtO24oaS5fZW50ZXJDYikmJihpLl9lbnRlckNiLmNhbmNlbGxlZD0hMCxpLl9lbnRlckNiKCkpO3ZhciBhPWJpKGUuZGF0YS50cmFuc2l0aW9uKTtpZih0KGEpfHwxIT09aS5ub2RlVHlwZSlyZXR1cm4gcigpO2lmKCFuKGkuX2xlYXZlQ2IpKXt2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEubGVhdmVDbGFzcyxsPWEubGVhdmVUb0NsYXNzLHA9YS5sZWF2ZUFjdGl2ZUNsYXNzLGQ9YS5iZWZvcmVMZWF2ZSx2PWEubGVhdmUsaD1hLmFmdGVyTGVhdmUsbT1hLmxlYXZlQ2FuY2VsbGVkLHk9YS5kZWxheUxlYXZlLGc9YS5kdXJhdGlvbixfPSExIT09cyYmIVcsYj1CaSh2KSwkPWYobyhnKT9nLmxlYXZlOmcpLHc9aS5fbGVhdmVDYj1EKGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUuX3BlbmRpbmcmJihpLnBhcmVudE5vZGUuX3BlbmRpbmdbZS5rZXldPW51bGwpLF8mJihqaShpLGwpLGppKGkscCkpLHcuY2FuY2VsbGVkPyhfJiZqaShpLHUpLG0mJm0oaSkpOihyKCksaCYmaChpKSksaS5fbGVhdmVDYj1udWxsfSk7eT95KEMpOkMoKX1mdW5jdGlvbiBDKCl7dy5jYW5jZWxsZWR8fCghZS5kYXRhLnNob3cmJmkucGFyZW50Tm9kZSYmKChpLnBhcmVudE5vZGUuX3BlbmRpbmd8fChpLnBhcmVudE5vZGUuX3BlbmRpbmc9e30pKVtlLmtleV09ZSksZCYmZChpKSxfJiYoTmkoaSx1KSxOaShpLHApLEVpKGZ1bmN0aW9uKCl7amkoaSx1KSx3LmNhbmNlbGxlZHx8KE5pKGksbCksYnx8KEhpKCQpP3NldFRpbWVvdXQodywkKTpEaShpLGMsdykpKX0pKSx2JiZ2KGksdyksX3x8Ynx8dygpKX19ZnVuY3Rpb24gSGkoZSl7cmV0dXJuXCJudW1iZXJcIj09dHlwZW9mIGUmJiFpc05hTihlKX1mdW5jdGlvbiBCaShlKXtpZih0KGUpKXJldHVybiExO3ZhciByPWUuZm5zO3JldHVybiBuKHIpP0JpKEFycmF5LmlzQXJyYXkocik/clswXTpyKTooZS5fbGVuZ3RofHxlLmxlbmd0aCk+MX1mdW5jdGlvbiBVaShlLHQpeyEwIT09dC5kYXRhLnNob3cmJlBpKHQpfXZhciB6aT1mdW5jdGlvbihlKXt2YXIgbyxhLHM9e30sYz1lLm1vZHVsZXMsdT1lLm5vZGVPcHM7Zm9yKG89MDtvPHJyLmxlbmd0aDsrK28pZm9yKHNbcnJbb11dPVtdLGE9MDthPGMubGVuZ3RoOysrYSluKGNbYV1bcnJbb11dKSYmc1tycltvXV0ucHVzaChjW2FdW3JyW29dXSk7ZnVuY3Rpb24gbChlKXt2YXIgdD11LnBhcmVudE5vZGUoZSk7bih0KSYmdS5yZW1vdmVDaGlsZCh0LGUpfWZ1bmN0aW9uIGYoZSx0LGksbyxhLGMsbCl7aWYobihlLmVsbSkmJm4oYykmJihlPWNbbF09bWUoZSkpLGUuaXNSb290SW5zZXJ0PSFhLCFmdW5jdGlvbihlLHQsaSxvKXt2YXIgYT1lLmRhdGE7aWYobihhKSl7dmFyIGM9bihlLmNvbXBvbmVudEluc3RhbmNlKSYmYS5rZWVwQWxpdmU7aWYobihhPWEuaG9vaykmJm4oYT1hLmluaXQpJiZhKGUsITEpLG4oZS5jb21wb25lbnRJbnN0YW5jZSkpcmV0dXJuIGQoZSx0KSx2KGksZS5lbG0sbykscihjKSYmZnVuY3Rpb24oZSx0LHIsaSl7Zm9yKHZhciBvLGE9ZTthLmNvbXBvbmVudEluc3RhbmNlOylpZihhPWEuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLG4obz1hLmRhdGEpJiZuKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHMuYWN0aXZhdGUubGVuZ3RoOysrbylzLmFjdGl2YXRlW29dKG5yLGEpO3QucHVzaChhKTticmVha312KHIsZS5lbG0saSl9KGUsdCxpLG8pLCEwfX0oZSx0LGksbykpe3ZhciBmPWUuZGF0YSxwPWUuY2hpbGRyZW4sbT1lLnRhZztuKG0pPyhlLmVsbT1lLm5zP3UuY3JlYXRlRWxlbWVudE5TKGUubnMsbSk6dS5jcmVhdGVFbGVtZW50KG0sZSksZyhlKSxoKGUscCx0KSxuKGYpJiZ5KGUsdCksdihpLGUuZWxtLG8pKTpyKGUuaXNDb21tZW50KT8oZS5lbG09dS5jcmVhdGVDb21tZW50KGUudGV4dCksdihpLGUuZWxtLG8pKTooZS5lbG09dS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpLHYoaSxlLmVsbSxvKSl9fWZ1bmN0aW9uIGQoZSx0KXtuKGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKHQucHVzaC5hcHBseSh0LGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSxlLmRhdGEucGVuZGluZ0luc2VydD1udWxsKSxlLmVsbT1lLmNvbXBvbmVudEluc3RhbmNlLiRlbCxtKGUpPyh5KGUsdCksZyhlKSk6KHRyKGUpLHQucHVzaChlKSl9ZnVuY3Rpb24gdihlLHQscil7bihlKSYmKG4ocik/dS5wYXJlbnROb2RlKHIpPT09ZSYmdS5pbnNlcnRCZWZvcmUoZSx0LHIpOnUuYXBwZW5kQ2hpbGQoZSx0KSl9ZnVuY3Rpb24gaChlLHQsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilmKHRbcl0sbixlLmVsbSxudWxsLCEwLHQscik7ZWxzZSBpKGUudGV4dCkmJnUuYXBwZW5kQ2hpbGQoZS5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoZS50ZXh0KSkpfWZ1bmN0aW9uIG0oZSl7Zm9yKDtlLmNvbXBvbmVudEluc3RhbmNlOyllPWUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBuKGUudGFnKX1mdW5jdGlvbiB5KGUsdCl7Zm9yKHZhciByPTA7cjxzLmNyZWF0ZS5sZW5ndGg7KytyKXMuY3JlYXRlW3JdKG5yLGUpO24obz1lLmRhdGEuaG9vaykmJihuKG8uY3JlYXRlKSYmby5jcmVhdGUobnIsZSksbihvLmluc2VydCkmJnQucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt2YXIgdDtpZihuKHQ9ZS5mblNjb3BlSWQpKXUuc2V0U3R5bGVTY29wZShlLmVsbSx0KTtlbHNlIGZvcih2YXIgcj1lO3I7KW4odD1yLmNvbnRleHQpJiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KSxyPXIucGFyZW50O24odD1XdCkmJnQhPT1lLmNvbnRleHQmJnQhPT1lLmZuQ29udGV4dCYmbih0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZ1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCl9ZnVuY3Rpb24gXyhlLHQsbixyLGksbyl7Zm9yKDtyPD1pOysrcilmKG5bcl0sbyxlLHQsITEsbixyKX1mdW5jdGlvbiBiKGUpe3ZhciB0LHIsaT1lLmRhdGE7aWYobihpKSlmb3Iobih0PWkuaG9vaykmJm4odD10LmRlc3Ryb3kpJiZ0KGUpLHQ9MDt0PHMuZGVzdHJveS5sZW5ndGg7Kyt0KXMuZGVzdHJveVt0XShlKTtpZihuKHQ9ZS5jaGlsZHJlbikpZm9yKHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoOysrciliKGUuY2hpbGRyZW5bcl0pfWZ1bmN0aW9uICQoZSx0LHIpe2Zvcig7dDw9cjsrK3Qpe3ZhciBpPWVbdF07bihpKSYmKG4oaS50YWcpPyh3KGkpLGIoaSkpOmwoaS5lbG0pKX19ZnVuY3Rpb24gdyhlLHQpe2lmKG4odCl8fG4oZS5kYXRhKSl7dmFyIHIsaT1zLnJlbW92ZS5sZW5ndGgrMTtmb3Iobih0KT90Lmxpc3RlbmVycys9aTp0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpezA9PS0tbi5saXN0ZW5lcnMmJmwoZSl9cmV0dXJuIG4ubGlzdGVuZXJzPXQsbn0oZS5lbG0saSksbihyPWUuY29tcG9uZW50SW5zdGFuY2UpJiZuKHI9ci5fdm5vZGUpJiZuKHIuZGF0YSkmJncocix0KSxyPTA7cjxzLnJlbW92ZS5sZW5ndGg7KytyKXMucmVtb3ZlW3JdKGUsdCk7bihyPWUuZGF0YS5ob29rKSYmbihyPXIucmVtb3ZlKT9yKGUsdCk6dCgpfWVsc2UgbChlLmVsbSl9ZnVuY3Rpb24gQyhlLHQscixpKXtmb3IodmFyIG89cjtvPGk7bysrKXt2YXIgYT10W29dO2lmKG4oYSkmJmlyKGUsYSkpcmV0dXJuIG99fWZ1bmN0aW9uIHgoZSxpLG8sYSxjLGwpe2lmKGUhPT1pKXtuKGkuZWxtKSYmbihhKSYmKGk9YVtjXT1tZShpKSk7dmFyIHA9aS5lbG09ZS5lbG07aWYocihlLmlzQXN5bmNQbGFjZWhvbGRlcikpbihpLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk/TyhlLmVsbSxpLG8pOmkuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYocihpLmlzU3RhdGljKSYmcihlLmlzU3RhdGljKSYmaS5rZXk9PT1lLmtleSYmKHIoaS5pc0Nsb25lZCl8fHIoaS5pc09uY2UpKSlpLmNvbXBvbmVudEluc3RhbmNlPWUuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgZCx2PWkuZGF0YTtuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucHJlcGF0Y2gpJiZkKGUsaSk7dmFyIGg9ZS5jaGlsZHJlbix5PWkuY2hpbGRyZW47aWYobih2KSYmbShpKSl7Zm9yKGQ9MDtkPHMudXBkYXRlLmxlbmd0aDsrK2Qpcy51cGRhdGVbZF0oZSxpKTtuKGQ9di5ob29rKSYmbihkPWQudXBkYXRlKSYmZChlLGkpfXQoaS50ZXh0KT9uKGgpJiZuKHkpP2ghPT15JiZmdW5jdGlvbihlLHIsaSxvLGEpe2Zvcih2YXIgcyxjLGwscD0wLGQ9MCx2PXIubGVuZ3RoLTEsaD1yWzBdLG09clt2XSx5PWkubGVuZ3RoLTEsZz1pWzBdLGI9aVt5XSx3PSFhO3A8PXYmJmQ8PXk7KXQoaCk/aD1yWysrcF06dChtKT9tPXJbLS12XTppcihoLGcpPyh4KGgsZyxvLGksZCksaD1yWysrcF0sZz1pWysrZF0pOmlyKG0sYik/KHgobSxiLG8saSx5KSxtPXJbLS12XSxiPWlbLS15XSk6aXIoaCxiKT8oeChoLGIsbyxpLHkpLHcmJnUuaW5zZXJ0QmVmb3JlKGUsaC5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGg9clsrK3BdLGI9aVstLXldKTppcihtLGcpPyh4KG0sZyxvLGksZCksdyYmdS5pbnNlcnRCZWZvcmUoZSxtLmVsbSxoLmVsbSksbT1yWy0tdl0sZz1pWysrZF0pOih0KHMpJiYocz1vcihyLHAsdikpLHQoYz1uKGcua2V5KT9zW2cua2V5XTpDKGcscixwLHYpKT9mKGcsbyxlLGguZWxtLCExLGksZCk6aXIobD1yW2NdLGcpPyh4KGwsZyxvLGksZCkscltjXT12b2lkIDAsdyYmdS5pbnNlcnRCZWZvcmUoZSxsLmVsbSxoLmVsbSkpOmYoZyxvLGUsaC5lbG0sITEsaSxkKSxnPWlbKytkXSk7cD52P18oZSx0KGlbeSsxXSk/bnVsbDppW3krMV0uZWxtLGksZCx5LG8pOmQ+eSYmJChyLHAsdil9KHAsaCx5LG8sbCk6bih5KT8obihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsXCJcIiksXyhwLG51bGwseSwwLHkubGVuZ3RoLTEsbykpOm4oaCk/JChoLDAsaC5sZW5ndGgtMSk6bihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsXCJcIik6ZS50ZXh0IT09aS50ZXh0JiZ1LnNldFRleHRDb250ZW50KHAsaS50ZXh0KSxuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucG9zdHBhdGNoKSYmZChlLGkpfX19ZnVuY3Rpb24gayhlLHQsaSl7aWYocihpKSYmbihlLnBhcmVudCkpZS5wYXJlbnQuZGF0YS5wZW5kaW5nSW5zZXJ0PXQ7ZWxzZSBmb3IodmFyIG89MDtvPHQubGVuZ3RoOysrbyl0W29dLmRhdGEuaG9vay5pbnNlcnQodFtvXSl9dmFyIEE9cChcImF0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleVwiKTtmdW5jdGlvbiBPKGUsdCxpLG8pe3ZhciBhLHM9dC50YWcsYz10LmRhdGEsdT10LmNoaWxkcmVuO2lmKG89b3x8YyYmYy5wcmUsdC5lbG09ZSxyKHQuaXNDb21tZW50KSYmbih0LmFzeW5jRmFjdG9yeSkpcmV0dXJuIHQuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKG4oYykmJihuKGE9Yy5ob29rKSYmbihhPWEuaW5pdCkmJmEodCwhMCksbihhPXQuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZCh0LGkpLCEwO2lmKG4ocykpe2lmKG4odSkpaWYoZS5oYXNDaGlsZE5vZGVzKCkpaWYobihhPWMpJiZuKGE9YS5kb21Qcm9wcykmJm4oYT1hLmlubmVySFRNTCkpe2lmKGEhPT1lLmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPWUuZmlyc3RDaGlsZCxwPTA7cDx1Lmxlbmd0aDtwKyspe2lmKCFmfHwhTyhmLHVbcF0saSxvKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBoKHQsdSxpKTtpZihuKGMpKXt2YXIgdj0hMTtmb3IodmFyIG0gaW4gYylpZighQShtKSl7dj0hMCx5KHQsaSk7YnJlYWt9IXYmJmMuY2xhc3MmJmV0KGMuY2xhc3MpfX1lbHNlIGUuZGF0YSE9PXQudGV4dCYmKGUuZGF0YT10LnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbihlLGksbyxhKXtpZighdChpKSl7dmFyIGMsbD0hMSxwPVtdO2lmKHQoZSkpbD0hMCxmKGkscCk7ZWxzZXt2YXIgZD1uKGUubm9kZVR5cGUpO2lmKCFkJiZpcihlLGkpKXgoZSxpLHAsbnVsbCxudWxsLGEpO2Vsc2V7aWYoZCl7aWYoMT09PWUubm9kZVR5cGUmJmUuaGFzQXR0cmlidXRlKEwpJiYoZS5yZW1vdmVBdHRyaWJ1dGUoTCksbz0hMCkscihvKSYmTyhlLGkscCkpcmV0dXJuIGsoaSxwLCEwKSxlO2M9ZSxlPW5ldyBwZSh1LnRhZ05hbWUoYykudG9Mb3dlckNhc2UoKSx7fSxbXSx2b2lkIDAsYyl9dmFyIHY9ZS5lbG0saD11LnBhcmVudE5vZGUodik7aWYoZihpLHAsdi5fbGVhdmVDYj9udWxsOmgsdS5uZXh0U2libGluZyh2KSksbihpLnBhcmVudCkpZm9yKHZhciB5PWkucGFyZW50LGc9bShpKTt5Oyl7Zm9yKHZhciBfPTA7XzxzLmRlc3Ryb3kubGVuZ3RoOysrXylzLmRlc3Ryb3lbX10oeSk7aWYoeS5lbG09aS5lbG0sZyl7Zm9yKHZhciB3PTA7dzxzLmNyZWF0ZS5sZW5ndGg7Kyt3KXMuY3JlYXRlW3ddKG5yLHkpO3ZhciBDPXkuZGF0YS5ob29rLmluc2VydDtpZihDLm1lcmdlZClmb3IodmFyIEE9MTtBPEMuZm5zLmxlbmd0aDtBKyspQy5mbnNbQV0oKX1lbHNlIHRyKHkpO3k9eS5wYXJlbnR9bihoKT8kKFtlXSwwLDApOm4oZS50YWcpJiZiKGUpfX1yZXR1cm4gayhpLHAsbCksaS5lbG19bihlKSYmYihlKX19KHtub2RlT3BzOlFuLG1vZHVsZXM6W21yLHhyLG5pLG9pLG1pLHo/e2NyZWF0ZTpVaSxhY3RpdmF0ZTpVaSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXshMCE9PWUuZGF0YS5zaG93P1JpKGUsdCk6dCgpfX06e31dLmNvbmNhdChwcil9KTtXJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2VsZWN0aW9uY2hhbmdlXCIsZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZYaShlLFwiaW5wdXRcIil9KTt2YXIgVmk9e2luc2VydGVkOmZ1bmN0aW9uKGUsdCxuLHIpe1wic2VsZWN0XCI9PT1uLnRhZz8oci5lbG0mJiFyLmVsbS5fdk9wdGlvbnM/aXQobixcInBvc3RwYXRjaFwiLGZ1bmN0aW9uKCl7VmkuY29tcG9uZW50VXBkYXRlZChlLHQsbil9KTpLaShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsV2kpKTooXCJ0ZXh0YXJlYVwiPT09bi50YWd8fFhuKGUudHlwZSkpJiYoZS5fdk1vZGlmaWVycz10Lm1vZGlmaWVycyx0Lm1vZGlmaWVycy5sYXp5fHwoZS5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25zdGFydFwiLFppKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLEdpKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixHaSksVyYmKGUudm1vZGVsPSEwKSkpfSxjb21wb25lbnRVcGRhdGVkOmZ1bmN0aW9uKGUsdCxuKXtpZihcInNlbGVjdFwiPT09bi50YWcpe0tpKGUsdCxuLmNvbnRleHQpO3ZhciByPWUuX3ZPcHRpb25zLGk9ZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKTtpZihpLnNvbWUoZnVuY3Rpb24oZSx0KXtyZXR1cm4hTihlLHJbdF0pfSkpKGUubXVsdGlwbGU/dC52YWx1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBxaShlLGkpfSk6dC52YWx1ZSE9PXQub2xkVmFsdWUmJnFpKHQudmFsdWUsaSkpJiZYaShlLFwiY2hhbmdlXCIpfX19O2Z1bmN0aW9uIEtpKGUsdCxuKXtKaShlLHQsbiksKHF8fFopJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7SmkoZSx0LG4pfSwwKX1mdW5jdGlvbiBKaShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgbyxhLHM9MCxjPWUub3B0aW9ucy5sZW5ndGg7czxjO3MrKylpZihhPWUub3B0aW9uc1tzXSxpKW89aihyLFdpKGEpKT4tMSxhLnNlbGVjdGVkIT09byYmKGEuc2VsZWN0ZWQ9byk7ZWxzZSBpZihOKFdpKGEpLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PXMmJihlLnNlbGVjdGVkSW5kZXg9cykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBxaShlLHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiFOKHQsZSl9KX1mdW5jdGlvbiBXaShlKXtyZXR1cm5cIl92YWx1ZVwiaW4gZT9lLl92YWx1ZTplLnZhbHVlfWZ1bmN0aW9uIFppKGUpe2UudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBHaShlKXtlLnRhcmdldC5jb21wb3NpbmcmJihlLnRhcmdldC5jb21wb3Npbmc9ITEsWGkoZS50YXJnZXQsXCJpbnB1dFwiKSl9ZnVuY3Rpb24gWGkoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudChcIkhUTUxFdmVudHNcIik7bi5pbml0RXZlbnQodCwhMCwhMCksZS5kaXNwYXRjaEV2ZW50KG4pfWZ1bmN0aW9uIFlpKGUpe3JldHVybiFlLmNvbXBvbmVudEluc3RhbmNlfHxlLmRhdGEmJmUuZGF0YS50cmFuc2l0aW9uP2U6WWkoZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpfXZhciBRaT17bW9kZWw6Vmksc2hvdzp7YmluZDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPShuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixvPWUuX192T3JpZ2luYWxEaXNwbGF5PVwibm9uZVwiPT09ZS5zdHlsZS5kaXNwbGF5P1wiXCI6ZS5zdHlsZS5kaXNwbGF5O3ImJmk/KG4uZGF0YS5zaG93PSEwLFBpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9b30pKTplLnN0eWxlLmRpc3BsYXk9cj9vOlwibm9uZVwifSx1cGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWU7IXIhPSF0Lm9sZFZhbHVlJiYoKG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uPyhuLmRhdGEuc2hvdz0hMCxyP1BpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KTpSaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PVwibm9uZVwifSkpOmUuc3R5bGUuZGlzcGxheT1yP2UuX192T3JpZ2luYWxEaXNwbGF5Olwibm9uZVwiKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCxuLHIsaSl7aXx8KGUuc3R5bGUuZGlzcGxheT1lLl9fdk9yaWdpbmFsRGlzcGxheSl9fX0sZW89e25hbWU6U3RyaW5nLGFwcGVhcjpCb29sZWFuLGNzczpCb29sZWFuLG1vZGU6U3RyaW5nLHR5cGU6U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLGVudGVyVG9DbGFzczpTdHJpbmcsbGVhdmVUb0NsYXNzOlN0cmluZyxlbnRlckFjdGl2ZUNsYXNzOlN0cmluZyxsZWF2ZUFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJDbGFzczpTdHJpbmcsYXBwZWFyQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhclRvQ2xhc3M6U3RyaW5nLGR1cmF0aW9uOltOdW1iZXIsU3RyaW5nLE9iamVjdF19O2Z1bmN0aW9uIHRvKGUpe3ZhciB0PWUmJmUuY29tcG9uZW50T3B0aW9ucztyZXR1cm4gdCYmdC5DdG9yLm9wdGlvbnMuYWJzdHJhY3Q/dG8oenQodC5jaGlsZHJlbikpOmV9ZnVuY3Rpb24gbm8oZSl7dmFyIHQ9e30sbj1lLiRvcHRpb25zO2Zvcih2YXIgciBpbiBuLnByb3BzRGF0YSl0W3JdPWVbcl07dmFyIGk9bi5fcGFyZW50TGlzdGVuZXJzO2Zvcih2YXIgbyBpbiBpKXRbYihvKV09aVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBybyhlLHQpe2lmKC9cXGQta2VlcC1hbGl2ZSQvLnRlc3QodC50YWcpKXJldHVybiBlKFwia2VlcC1hbGl2ZVwiLHtwcm9wczp0LmNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhfSl9dmFyIGlvPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ3x8VXQoZSl9LG9vPWZ1bmN0aW9uKGUpe3JldHVyblwic2hvd1wiPT09ZS5uYW1lfSxhbz17bmFtZTpcInRyYW5zaXRpb25cIixwcm9wczplbyxhYnN0cmFjdDohMCxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMuJHNsb3RzLmRlZmF1bHQ7aWYobiYmKG49bi5maWx0ZXIoaW8pKS5sZW5ndGgpe3ZhciByPXRoaXMubW9kZSxvPW5bMF07aWYoZnVuY3Rpb24oZSl7Zm9yKDtlPWUucGFyZW50OylpZihlLmRhdGEudHJhbnNpdGlvbilyZXR1cm4hMH0odGhpcy4kdm5vZGUpKXJldHVybiBvO3ZhciBhPXRvKG8pO2lmKCFhKXJldHVybiBvO2lmKHRoaXMuX2xlYXZpbmcpcmV0dXJuIHJvKGUsbyk7dmFyIHM9XCJfX3RyYW5zaXRpb24tXCIrdGhpcy5fdWlkK1wiLVwiO2Eua2V5PW51bGw9PWEua2V5P2EuaXNDb21tZW50P3MrXCJjb21tZW50XCI6cythLnRhZzppKGEua2V5KT8wPT09U3RyaW5nKGEua2V5KS5pbmRleE9mKHMpP2Eua2V5OnMrYS5rZXk6YS5rZXk7dmFyIGM9KGEuZGF0YXx8KGEuZGF0YT17fSkpLnRyYW5zaXRpb249bm8odGhpcyksdT10aGlzLl92bm9kZSxsPXRvKHUpO2lmKGEuZGF0YS5kaXJlY3RpdmVzJiZhLmRhdGEuZGlyZWN0aXZlcy5zb21lKG9vKSYmKGEuZGF0YS5zaG93PSEwKSxsJiZsLmRhdGEmJiFmdW5jdGlvbihlLHQpe3JldHVybiB0LmtleT09PWUua2V5JiZ0LnRhZz09PWUudGFnfShhLGwpJiYhVXQobCkmJighbC5jb21wb25lbnRJbnN0YW5jZXx8IWwuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLmlzQ29tbWVudCkpe3ZhciBmPWwuZGF0YS50cmFuc2l0aW9uPUEoe30sYyk7aWYoXCJvdXQtaW5cIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsaXQoZixcImFmdGVyTGVhdmVcIixmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pLHJvKGUsbyk7aWYoXCJpbi1vdXRcIj09PXIpe2lmKFV0KGEpKXJldHVybiB1O3ZhciBwLGQ9ZnVuY3Rpb24oKXtwKCl9O2l0KGMsXCJhZnRlckVudGVyXCIsZCksaXQoYyxcImVudGVyQ2FuY2VsbGVkXCIsZCksaXQoZixcImRlbGF5TGVhdmVcIixmdW5jdGlvbihlKXtwPWV9KX19cmV0dXJuIG99fX0sc289QSh7dGFnOlN0cmluZyxtb3ZlQ2xhc3M6U3RyaW5nfSxlbyk7ZnVuY3Rpb24gY28oZSl7ZS5lbG0uX21vdmVDYiYmZS5lbG0uX21vdmVDYigpLGUuZWxtLl9lbnRlckNiJiZlLmVsbS5fZW50ZXJDYigpfWZ1bmN0aW9uIHVvKGUpe2UuZGF0YS5uZXdQb3M9ZS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gbG8oZSl7dmFyIHQ9ZS5kYXRhLnBvcyxuPWUuZGF0YS5uZXdQb3Mscj10LmxlZnQtbi5sZWZ0LGk9dC50b3Atbi50b3A7aWYocnx8aSl7ZS5kYXRhLm1vdmVkPSEwO3ZhciBvPWUuZWxtLnN0eWxlO28udHJhbnNmb3JtPW8uV2Via2l0VHJhbnNmb3JtPVwidHJhbnNsYXRlKFwiK3IrXCJweCxcIitpK1wicHgpXCIsby50cmFuc2l0aW9uRHVyYXRpb249XCIwc1wifX1kZWxldGUgc28ubW9kZTt2YXIgZm89e1RyYW5zaXRpb246YW8sVHJhbnNpdGlvbkdyb3VwOntwcm9wczpzbyxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9WnQoZSk7ZS5fX3BhdGNoX18oZS5fdm5vZGUsZS5rZXB0LCExLCEwKSxlLl92bm9kZT1lLmtlcHQsaSgpLHQuY2FsbChlLG4scil9fSxyZW5kZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8XCJzcGFuXCIsbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9dGhpcy5wcmV2Q2hpbGRyZW49dGhpcy5jaGlsZHJlbixpPXRoaXMuJHNsb3RzLmRlZmF1bHR8fFtdLG89dGhpcy5jaGlsZHJlbj1bXSxhPW5vKHRoaXMpLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGM9aVtzXTtjLnRhZyYmbnVsbCE9Yy5rZXkmJjAhPT1TdHJpbmcoYy5rZXkpLmluZGV4T2YoXCJfX3ZsaXN0XCIpJiYoby5wdXNoKGMpLG5bYy5rZXldPWMsKGMuZGF0YXx8KGMuZGF0YT17fSkpLnRyYW5zaXRpb249YSl9aWYocil7Zm9yKHZhciB1PVtdLGw9W10sZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgcD1yW2ZdO3AuZGF0YS50cmFuc2l0aW9uPWEscC5kYXRhLnBvcz1wLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuW3Aua2V5XT91LnB1c2gocCk6bC5wdXNoKHApfXRoaXMua2VwdD1lKHQsbnVsbCx1KSx0aGlzLnJlbW92ZWQ9bH1yZXR1cm4gZSh0LG51bGwsbyl9LHVwZGF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByZXZDaGlsZHJlbix0PXRoaXMubW92ZUNsYXNzfHwodGhpcy5uYW1lfHxcInZcIikrXCItbW92ZVwiO2UubGVuZ3RoJiZ0aGlzLmhhc01vdmUoZVswXS5lbG0sdCkmJihlLmZvckVhY2goY28pLGUuZm9yRWFjaCh1byksZS5mb3JFYWNoKGxvKSx0aGlzLl9yZWZsb3c9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5tb3ZlZCl7dmFyIG49ZS5lbG0scj1uLnN0eWxlO05pKG4sdCksci50cmFuc2Zvcm09ci5XZWJraXRUcmFuc2Zvcm09ci50cmFuc2l0aW9uRHVyYXRpb249XCJcIixuLmFkZEV2ZW50TGlzdGVuZXIoQWksbi5fbW92ZUNiPWZ1bmN0aW9uIGUocil7ciYmci50YXJnZXQhPT1ufHxyJiYhL3RyYW5zZm9ybSQvLnRlc3Qoci5wcm9wZXJ0eU5hbWUpfHwobi5yZW1vdmVFdmVudExpc3RlbmVyKEFpLGUpLG4uX21vdmVDYj1udWxsLGppKG4sdCkpfSl9fSkpfSxtZXRob2RzOntoYXNNb3ZlOmZ1bmN0aW9uKGUsdCl7aWYoIXdpKXJldHVybiExO2lmKHRoaXMuX2hhc01vdmUpcmV0dXJuIHRoaXMuX2hhc01vdmU7dmFyIG49ZS5jbG9uZU5vZGUoKTtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmZS5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbihlKXtfaShuLGUpfSksZ2kobix0KSxuLnN0eWxlLmRpc3BsYXk9XCJub25lXCIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9TWkobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX19O3duLmNvbmZpZy5tdXN0VXNlUHJvcD1qbix3bi5jb25maWcuaXNSZXNlcnZlZFRhZz1Xbix3bi5jb25maWcuaXNSZXNlcnZlZEF0dHI9RW4sd24uY29uZmlnLmdldFRhZ05hbWVzcGFjZT1abix3bi5jb25maWcuaXNVbmtub3duRWxlbWVudD1mdW5jdGlvbihlKXtpZigheilyZXR1cm4hMDtpZihXbihlKSlyZXR1cm4hMTtpZihlPWUudG9Mb3dlckNhc2UoKSxudWxsIT1HbltlXSlyZXR1cm4gR25bZV07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gZS5pbmRleE9mKFwiLVwiKT4tMT9HbltlXT10LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxVbmtub3duRWxlbWVudHx8dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MRWxlbWVudDpHbltlXT0vSFRNTFVua25vd25FbGVtZW50Ly50ZXN0KHQudG9TdHJpbmcoKSl9LEEod24ub3B0aW9ucy5kaXJlY3RpdmVzLFFpKSxBKHduLm9wdGlvbnMuY29tcG9uZW50cyxmbyksd24ucHJvdG90eXBlLl9fcGF0Y2hfXz16P3ppOlMsd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIGUuJGVsPXQsZS4kb3B0aW9ucy5yZW5kZXJ8fChlLiRvcHRpb25zLnJlbmRlcj12ZSksWXQoZSxcImJlZm9yZU1vdW50XCIpLHI9ZnVuY3Rpb24oKXtlLl91cGRhdGUoZS5fcmVuZGVyKCksbil9LG5ldyBmbihlLHIsUyx7YmVmb3JlOmZ1bmN0aW9uKCl7ZS5faXNNb3VudGVkJiYhZS5faXNEZXN0cm95ZWQmJll0KGUsXCJiZWZvcmVVcGRhdGVcIil9fSwhMCksbj0hMSxudWxsPT1lLiR2bm9kZSYmKGUuX2lzTW91bnRlZD0hMCxZdChlLFwibW91bnRlZFwiKSksZX0odGhpcyxlPWUmJno/WW4oZSk6dm9pZCAwLHQpfSx6JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5kZXZ0b29scyYmbmUmJm5lLmVtaXQoXCJpbml0XCIsd24pfSwwKTt2YXIgcG89L1xce1xceygoPzoufFxccj9cXG4pKz8pXFx9XFx9L2csdm89L1stLiorP14ke30oKXxbXFxdXFwvXFxcXF0vZyxobz1nKGZ1bmN0aW9uKGUpe3ZhciB0PWVbMF0ucmVwbGFjZSh2byxcIlxcXFwkJlwiKSxuPWVbMV0ucmVwbGFjZSh2byxcIlxcXFwkJlwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh0K1wiKCg/Oi58XFxcXG4pKz8pXCIrbixcImdcIil9KTt2YXIgbW89e3N0YXRpY0tleXM6W1wic3RhdGljQ2xhc3NcIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLFwiY2xhc3NcIik7biYmKGUuc3RhdGljQ2xhc3M9SlNPTi5zdHJpbmdpZnkobikpO3ZhciByPUlyKGUsXCJjbGFzc1wiLCExKTtyJiYoZS5jbGFzc0JpbmRpbmc9cil9LGdlbkRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9XCJcIjtyZXR1cm4gZS5zdGF0aWNDbGFzcyYmKHQrPVwic3RhdGljQ2xhc3M6XCIrZS5zdGF0aWNDbGFzcytcIixcIiksZS5jbGFzc0JpbmRpbmcmJih0Kz1cImNsYXNzOlwiK2UuY2xhc3NCaW5kaW5nK1wiLFwiKSx0fX07dmFyIHlvLGdvPXtzdGF0aWNLZXlzOltcInN0YXRpY1N0eWxlXCJdLHRyYW5zZm9ybU5vZGU6ZnVuY3Rpb24oZSx0KXt0Lndhcm47dmFyIG49RnIoZSxcInN0eWxlXCIpO24mJihlLnN0YXRpY1N0eWxlPUpTT04uc3RyaW5naWZ5KGFpKG4pKSk7dmFyIHI9SXIoZSxcInN0eWxlXCIsITEpO3ImJihlLnN0eWxlQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1cIlwiO3JldHVybiBlLnN0YXRpY1N0eWxlJiYodCs9XCJzdGF0aWNTdHlsZTpcIitlLnN0YXRpY1N0eWxlK1wiLFwiKSxlLnN0eWxlQmluZGluZyYmKHQrPVwic3R5bGU6KFwiK2Uuc3R5bGVCaW5kaW5nK1wiKSxcIiksdH19LF9vPWZ1bmN0aW9uKGUpe3JldHVybih5bz15b3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPWUseW8udGV4dENvbnRlbnR9LGJvPXAoXCJhcmVhLGJhc2UsYnIsY29sLGVtYmVkLGZyYW1lLGhyLGltZyxpbnB1dCxpc2luZGV4LGtleWdlbixsaW5rLG1ldGEscGFyYW0sc291cmNlLHRyYWNrLHdiclwiKSwkbz1wKFwiY29sZ3JvdXAsZGQsZHQsbGksb3B0aW9ucyxwLHRkLHRmb290LHRoLHRoZWFkLHRyLHNvdXJjZVwiKSx3bz1wKFwiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJhc2UsYmxvY2txdW90ZSxib2R5LGNhcHRpb24sY29sLGNvbGdyb3VwLGRkLGRldGFpbHMsZGlhbG9nLGRpdixkbCxkdCxmaWVsZHNldCxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsZm9ybSxoMSxoMixoMyxoNCxoNSxoNixoZWFkLGhlYWRlcixoZ3JvdXAsaHIsaHRtbCxsZWdlbmQsbGksbWVudWl0ZW0sbWV0YSxvcHRncm91cCxvcHRpb24scGFyYW0scnAscnQsc291cmNlLHN0eWxlLHN1bW1hcnksdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdGl0bGUsdHIsdHJhY2tcIiksQ289L15cXHMqKFteXFxzXCInPD5cXC89XSspKD86XFxzKig9KVxccyooPzpcIihbXlwiXSopXCIrfCcoW14nXSopJyt8KFteXFxzXCInPTw+YF0rKSkpPy8seG89L15cXHMqKCg/OnYtW1xcdy1dKzp8QHw6fCMpXFxbW149XStcXF1bXlxcc1wiJzw+XFwvPV0qKSg/OlxccyooPSlcXHMqKD86XCIoW15cIl0qKVwiK3wnKFteJ10qKScrfChbXlxcc1wiJz08PmBdKykpKT8vLGtvPVwiW2EtekEtWl9dW1xcXFwtXFxcXC4wLTlfYS16QS1aXCIrUC5zb3VyY2UrXCJdKlwiLEFvPVwiKCg/OlwiK2tvK1wiXFxcXDopP1wiK2tvK1wiKVwiLE9vPW5ldyBSZWdFeHAoXCJePFwiK0FvKSxTbz0vXlxccyooXFwvPyk+LyxUbz1uZXcgUmVnRXhwKFwiXjxcXFxcL1wiK0FvK1wiW14+XSo+XCIpLEVvPS9ePCFET0NUWVBFIFtePl0rPi9pLE5vPS9ePCFcXC0tLyxqbz0vXjwhXFxbLyxEbz1wKFwic2NyaXB0LHN0eWxlLHRleHRhcmVhXCIsITApLExvPXt9LE1vPXtcIiZsdDtcIjpcIjxcIixcIiZndDtcIjpcIj5cIixcIiZxdW90O1wiOidcIicsXCImYW1wO1wiOlwiJlwiLFwiJiMxMDtcIjpcIlxcblwiLFwiJiM5O1wiOlwiXFx0XCIsXCImIzM5O1wiOlwiJ1wifSxJbz0vJig/Omx0fGd0fHF1b3R8YW1wfCMzOSk7L2csRm89LyYoPzpsdHxndHxxdW90fGFtcHwjMzl8IzEwfCM5KTsvZyxQbz1wKFwicHJlLHRleHRhcmVhXCIsITApLFJvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJlBvKGUpJiZcIlxcblwiPT09dFswXX07ZnVuY3Rpb24gSG8oZSx0KXt2YXIgbj10P0ZvOklvO3JldHVybiBlLnJlcGxhY2UobixmdW5jdGlvbihlKXtyZXR1cm4gTW9bZV19KX12YXIgQm8sVW8sem8sVm8sS28sSm8scW8sV28sWm89L15AfF52LW9uOi8sR289L152LXxeQHxeOnxeIy8sWG89LyhbXFxzXFxTXSo/KVxccysoPzppbnxvZilcXHMrKFtcXHNcXFNdKikvLFlvPS8sKFteLFxcfVxcXV0qKSg/OiwoW14sXFx9XFxdXSopKT8kLyxRbz0vXlxcKHxcXCkkL2csZWE9L15cXFsuKlxcXSQvLHRhPS86KC4qKSQvLG5hPS9eOnxeXFwufF52LWJpbmQ6LyxyYT0vXFwuW14uXFxdXSsoPz1bXlxcXV0qJCkvZyxpYT0vXnYtc2xvdCg6fCQpfF4jLyxvYT0vW1xcclxcbl0vLGFhPS9cXHMrL2csc2E9ZyhfbyksY2E9XCJfZW1wdHlfXCI7ZnVuY3Rpb24gdWEoZSx0LG4pe3JldHVybnt0eXBlOjEsdGFnOmUsYXR0cnNMaXN0OnQsYXR0cnNNYXA6bWEodCkscmF3QXR0cnNNYXA6e30scGFyZW50Om4sY2hpbGRyZW46W119fWZ1bmN0aW9uIGxhKGUsdCl7Qm89dC53YXJufHxTcixKbz10LmlzUHJlVGFnfHxULHFvPXQubXVzdFVzZVByb3B8fFQsV289dC5nZXRUYWdOYW1lc3BhY2V8fFQ7dC5pc1Jlc2VydmVkVGFnO3pvPVRyKHQubW9kdWxlcyxcInRyYW5zZm9ybU5vZGVcIiksVm89VHIodC5tb2R1bGVzLFwicHJlVHJhbnNmb3JtTm9kZVwiKSxLbz1Ucih0Lm1vZHVsZXMsXCJwb3N0VHJhbnNmb3JtTm9kZVwiKSxVbz10LmRlbGltaXRlcnM7dmFyIG4scixpPVtdLG89ITEhPT10LnByZXNlcnZlV2hpdGVzcGFjZSxhPXQud2hpdGVzcGFjZSxzPSExLGM9ITE7ZnVuY3Rpb24gdShlKXtpZihsKGUpLHN8fGUucHJvY2Vzc2VkfHwoZT1mYShlLHQpKSxpLmxlbmd0aHx8ZT09PW58fG4uaWYmJihlLmVsc2VpZnx8ZS5lbHNlKSYmZGEobix7ZXhwOmUuZWxzZWlmLGJsb2NrOmV9KSxyJiYhZS5mb3JiaWRkZW4paWYoZS5lbHNlaWZ8fGUuZWxzZSlhPWUsKHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXtpZigxPT09ZVt0XS50eXBlKXJldHVybiBlW3RdO2UucG9wKCl9fShyLmNoaWxkcmVuKSkmJnUuaWYmJmRhKHUse2V4cDphLmVsc2VpZixibG9jazphfSk7ZWxzZXtpZihlLnNsb3RTY29wZSl7dmFyIG89ZS5zbG90VGFyZ2V0fHwnXCJkZWZhdWx0XCInOyhyLnNjb3BlZFNsb3RzfHwoci5zY29wZWRTbG90cz17fSkpW29dPWV9ci5jaGlsZHJlbi5wdXNoKGUpLGUucGFyZW50PXJ9dmFyIGEsdTtlLmNoaWxkcmVuPWUuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFlLnNsb3RTY29wZX0pLGwoZSksZS5wcmUmJihzPSExKSxKbyhlLnRhZykmJihjPSExKTtmb3IodmFyIGY9MDtmPEtvLmxlbmd0aDtmKyspS29bZl0oZSx0KX1mdW5jdGlvbiBsKGUpe2lmKCFjKWZvcih2YXIgdDsodD1lLmNoaWxkcmVuW2UuY2hpbGRyZW4ubGVuZ3RoLTFdKSYmMz09PXQudHlwZSYmXCIgXCI9PT10LnRleHQ7KWUuY2hpbGRyZW4ucG9wKCl9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaT1bXSxvPXQuZXhwZWN0SFRNTCxhPXQuaXNVbmFyeVRhZ3x8VCxzPXQuY2FuQmVMZWZ0T3BlblRhZ3x8VCxjPTA7ZTspe2lmKG49ZSxyJiZEbyhyKSl7dmFyIHU9MCxsPXIudG9Mb3dlckNhc2UoKSxmPUxvW2xdfHwoTG9bbF09bmV3IFJlZ0V4cChcIihbXFxcXHNcXFxcU10qPykoPC9cIitsK1wiW14+XSo+KVwiLFwiaVwiKSkscD1lLnJlcGxhY2UoZixmdW5jdGlvbihlLG4scil7cmV0dXJuIHU9ci5sZW5ndGgsRG8obCl8fFwibm9zY3JpcHRcIj09PWx8fChuPW4ucmVwbGFjZSgvPCFcXC0tKFtcXHNcXFNdKj8pLS0+L2csXCIkMVwiKS5yZXBsYWNlKC88IVxcW0NEQVRBXFxbKFtcXHNcXFNdKj8pXV0+L2csXCIkMVwiKSksUm8obCxuKSYmKG49bi5zbGljZSgxKSksdC5jaGFycyYmdC5jaGFycyhuKSxcIlwifSk7Yys9ZS5sZW5ndGgtcC5sZW5ndGgsZT1wLEEobCxjLXUsYyl9ZWxzZXt2YXIgZD1lLmluZGV4T2YoXCI8XCIpO2lmKDA9PT1kKXtpZihOby50ZXN0KGUpKXt2YXIgdj1lLmluZGV4T2YoXCItLVxceDNlXCIpO2lmKHY+PTApe3Quc2hvdWxkS2VlcENvbW1lbnQmJnQuY29tbWVudChlLnN1YnN0cmluZyg0LHYpLGMsYyt2KzMpLEModiszKTtjb250aW51ZX19aWYoam8udGVzdChlKSl7dmFyIGg9ZS5pbmRleE9mKFwiXT5cIik7aWYoaD49MCl7QyhoKzIpO2NvbnRpbnVlfX12YXIgbT1lLm1hdGNoKEVvKTtpZihtKXtDKG1bMF0ubGVuZ3RoKTtjb250aW51ZX12YXIgeT1lLm1hdGNoKFRvKTtpZih5KXt2YXIgZz1jO0MoeVswXS5sZW5ndGgpLEEoeVsxXSxnLGMpO2NvbnRpbnVlfXZhciBfPXgoKTtpZihfKXtrKF8pLFJvKF8udGFnTmFtZSxlKSYmQygxKTtjb250aW51ZX19dmFyIGI9dm9pZCAwLCQ9dm9pZCAwLHc9dm9pZCAwO2lmKGQ+PTApe2ZvcigkPWUuc2xpY2UoZCk7IShUby50ZXN0KCQpfHxPby50ZXN0KCQpfHxOby50ZXN0KCQpfHxqby50ZXN0KCQpfHwodz0kLmluZGV4T2YoXCI8XCIsMSkpPDApOylkKz13LCQ9ZS5zbGljZShkKTtiPWUuc3Vic3RyaW5nKDAsZCl9ZDwwJiYoYj1lKSxiJiZDKGIubGVuZ3RoKSx0LmNoYXJzJiZiJiZ0LmNoYXJzKGIsYy1iLmxlbmd0aCxjKX1pZihlPT09bil7dC5jaGFycyYmdC5jaGFycyhlKTticmVha319ZnVuY3Rpb24gQyh0KXtjKz10LGU9ZS5zdWJzdHJpbmcodCl9ZnVuY3Rpb24geCgpe3ZhciB0PWUubWF0Y2goT28pO2lmKHQpe3ZhciBuLHIsaT17dGFnTmFtZTp0WzFdLGF0dHJzOltdLHN0YXJ0OmN9O2ZvcihDKHRbMF0ubGVuZ3RoKTshKG49ZS5tYXRjaChTbykpJiYocj1lLm1hdGNoKHhvKXx8ZS5tYXRjaChDbykpOylyLnN0YXJ0PWMsQyhyWzBdLmxlbmd0aCksci5lbmQ9YyxpLmF0dHJzLnB1c2gocik7aWYobilyZXR1cm4gaS51bmFyeVNsYXNoPW5bMV0sQyhuWzBdLmxlbmd0aCksaS5lbmQ9YyxpfX1mdW5jdGlvbiBrKGUpe3ZhciBuPWUudGFnTmFtZSxjPWUudW5hcnlTbGFzaDtvJiYoXCJwXCI9PT1yJiZ3byhuKSYmQShyKSxzKG4pJiZyPT09biYmQShuKSk7Zm9yKHZhciB1PWEobil8fCEhYyxsPWUuYXR0cnMubGVuZ3RoLGY9bmV3IEFycmF5KGwpLHA9MDtwPGw7cCsrKXt2YXIgZD1lLmF0dHJzW3BdLHY9ZFszXXx8ZFs0XXx8ZFs1XXx8XCJcIixoPVwiYVwiPT09biYmXCJocmVmXCI9PT1kWzFdP3Quc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOnQuc2hvdWxkRGVjb2RlTmV3bGluZXM7ZltwXT17bmFtZTpkWzFdLHZhbHVlOkhvKHYsaCl9fXV8fChpLnB1c2goe3RhZzpuLGxvd2VyQ2FzZWRUYWc6bi50b0xvd2VyQ2FzZSgpLGF0dHJzOmYsc3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSxyPW4pLHQuc3RhcnQmJnQuc3RhcnQobixmLHUsZS5zdGFydCxlLmVuZCl9ZnVuY3Rpb24gQShlLG4sbyl7dmFyIGEscztpZihudWxsPT1uJiYobj1jKSxudWxsPT1vJiYobz1jKSxlKWZvcihzPWUudG9Mb3dlckNhc2UoKSxhPWkubGVuZ3RoLTE7YT49MCYmaVthXS5sb3dlckNhc2VkVGFnIT09czthLS0pO2Vsc2UgYT0wO2lmKGE+PTApe2Zvcih2YXIgdT1pLmxlbmd0aC0xO3U+PWE7dS0tKXQuZW5kJiZ0LmVuZChpW3VdLnRhZyxuLG8pO2kubGVuZ3RoPWEscj1hJiZpW2EtMV0udGFnfWVsc2VcImJyXCI9PT1zP3Quc3RhcnQmJnQuc3RhcnQoZSxbXSwhMCxuLG8pOlwicFwiPT09cyYmKHQuc3RhcnQmJnQuc3RhcnQoZSxbXSwhMSxuLG8pLHQuZW5kJiZ0LmVuZChlLG4sbykpfUEoKX0oZSx7d2FybjpCbyxleHBlY3RIVE1MOnQuZXhwZWN0SFRNTCxpc1VuYXJ5VGFnOnQuaXNVbmFyeVRhZyxjYW5CZUxlZnRPcGVuVGFnOnQuY2FuQmVMZWZ0T3BlblRhZyxzaG91bGREZWNvZGVOZXdsaW5lczp0LnNob3VsZERlY29kZU5ld2xpbmVzLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjp0LnNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZixzaG91bGRLZWVwQ29tbWVudDp0LmNvbW1lbnRzLG91dHB1dFNvdXJjZVJhbmdlOnQub3V0cHV0U291cmNlUmFuZ2Usc3RhcnQ6ZnVuY3Rpb24oZSxvLGEsbCxmKXt2YXIgcD1yJiZyLm5zfHxXbyhlKTtxJiZcInN2Z1wiPT09cCYmKG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTt5YS50ZXN0KHIubmFtZSl8fChyLm5hbWU9ci5uYW1lLnJlcGxhY2UoZ2EsXCJcIiksdC5wdXNoKHIpKX1yZXR1cm4gdH0obykpO3ZhciBkLHY9dWEoZSxvLHIpO3AmJih2Lm5zPXApLFwic3R5bGVcIiE9PShkPXYpLnRhZyYmKFwic2NyaXB0XCIhPT1kLnRhZ3x8ZC5hdHRyc01hcC50eXBlJiZcInRleHQvamF2YXNjcmlwdFwiIT09ZC5hdHRyc01hcC50eXBlKXx8dGUoKXx8KHYuZm9yYmlkZGVuPSEwKTtmb3IodmFyIGg9MDtoPFZvLmxlbmd0aDtoKyspdj1Wb1toXSh2LHQpfHx2O3N8fCghZnVuY3Rpb24oZSl7bnVsbCE9RnIoZSxcInYtcHJlXCIpJiYoZS5wcmU9ITApfSh2KSx2LnByZSYmKHM9ITApKSxKbyh2LnRhZykmJihjPSEwKSxzP2Z1bmN0aW9uKGUpe3ZhciB0PWUuYXR0cnNMaXN0LG49dC5sZW5ndGg7aWYobilmb3IodmFyIHI9ZS5hdHRycz1uZXcgQXJyYXkobiksaT0wO2k8bjtpKyspcltpXT17bmFtZTp0W2ldLm5hbWUsdmFsdWU6SlNPTi5zdHJpbmdpZnkodFtpXS52YWx1ZSl9LG51bGwhPXRbaV0uc3RhcnQmJihyW2ldLnN0YXJ0PXRbaV0uc3RhcnQscltpXS5lbmQ9dFtpXS5lbmQpO2Vsc2UgZS5wcmV8fChlLnBsYWluPSEwKX0odik6di5wcm9jZXNzZWR8fChwYSh2KSxmdW5jdGlvbihlKXt2YXIgdD1GcihlLFwidi1pZlwiKTtpZih0KWUuaWY9dCxkYShlLHtleHA6dCxibG9jazplfSk7ZWxzZXtudWxsIT1GcihlLFwidi1lbHNlXCIpJiYoZS5lbHNlPSEwKTt2YXIgbj1GcihlLFwidi1lbHNlLWlmXCIpO24mJihlLmVsc2VpZj1uKX19KHYpLGZ1bmN0aW9uKGUpe251bGwhPUZyKGUsXCJ2LW9uY2VcIikmJihlLm9uY2U9ITApfSh2KSksbnx8KG49diksYT91KHYpOihyPXYsaS5wdXNoKHYpKX0sZW5kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1pW2kubGVuZ3RoLTFdO2kubGVuZ3RoLT0xLHI9aVtpLmxlbmd0aC0xXSx1KG8pfSxjaGFyczpmdW5jdGlvbihlLHQsbil7aWYociYmKCFxfHxcInRleHRhcmVhXCIhPT1yLnRhZ3x8ci5hdHRyc01hcC5wbGFjZWhvbGRlciE9PWUpKXt2YXIgaSx1LGwsZj1yLmNoaWxkcmVuO2lmKGU9Y3x8ZS50cmltKCk/XCJzY3JpcHRcIj09PShpPXIpLnRhZ3x8XCJzdHlsZVwiPT09aS50YWc/ZTpzYShlKTpmLmxlbmd0aD9hP1wiY29uZGVuc2VcIj09PWEmJm9hLnRlc3QoZSk/XCJcIjpcIiBcIjpvP1wiIFwiOlwiXCI6XCJcIiljfHxcImNvbmRlbnNlXCIhPT1hfHwoZT1lLnJlcGxhY2UoYWEsXCIgXCIpKSwhcyYmXCIgXCIhPT1lJiYodT1mdW5jdGlvbihlLHQpe3ZhciBuPXQ/aG8odCk6cG87aWYobi50ZXN0KGUpKXtmb3IodmFyIHIsaSxvLGE9W10scz1bXSxjPW4ubGFzdEluZGV4PTA7cj1uLmV4ZWMoZSk7KXsoaT1yLmluZGV4KT5jJiYocy5wdXNoKG89ZS5zbGljZShjLGkpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKTt2YXIgdT1BcihyWzFdLnRyaW0oKSk7YS5wdXNoKFwiX3MoXCIrdStcIilcIikscy5wdXNoKHtcIkBiaW5kaW5nXCI6dX0pLGM9aStyWzBdLmxlbmd0aH1yZXR1cm4gYzxlLmxlbmd0aCYmKHMucHVzaChvPWUuc2xpY2UoYykpLGEucHVzaChKU09OLnN0cmluZ2lmeShvKSkpLHtleHByZXNzaW9uOmEuam9pbihcIitcIiksdG9rZW5zOnN9fX0oZSxVbykpP2w9e3R5cGU6MixleHByZXNzaW9uOnUuZXhwcmVzc2lvbix0b2tlbnM6dS50b2tlbnMsdGV4dDplfTpcIiBcIj09PWUmJmYubGVuZ3RoJiZcIiBcIj09PWZbZi5sZW5ndGgtMV0udGV4dHx8KGw9e3R5cGU6Myx0ZXh0OmV9KSxsJiZmLnB1c2gobCl9fSxjb21tZW50OmZ1bmN0aW9uKGUsdCxuKXtpZihyKXt2YXIgaT17dHlwZTozLHRleHQ6ZSxpc0NvbW1lbnQ6ITB9O3IuY2hpbGRyZW4ucHVzaChpKX19fSksbn1mdW5jdGlvbiBmYShlLHQpe3ZhciBuLHI7KHI9SXIobj1lLFwia2V5XCIpKSYmKG4ua2V5PXIpLGUucGxhaW49IWUua2V5JiYhZS5zY29wZWRTbG90cyYmIWUuYXR0cnNMaXN0Lmxlbmd0aCxmdW5jdGlvbihlKXt2YXIgdD1JcihlLFwicmVmXCIpO3QmJihlLnJlZj10LGUucmVmSW5Gb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9ZTtmb3IoO3Q7KXtpZih2b2lkIDAhPT10LmZvcilyZXR1cm4hMDt0PXQucGFyZW50fXJldHVybiExfShlKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0O1widGVtcGxhdGVcIj09PWUudGFnPyh0PUZyKGUsXCJzY29wZVwiKSxlLnNsb3RTY29wZT10fHxGcihlLFwic2xvdC1zY29wZVwiKSk6KHQ9RnIoZSxcInNsb3Qtc2NvcGVcIikpJiYoZS5zbG90U2NvcGU9dCk7dmFyIG49SXIoZSxcInNsb3RcIik7biYmKGUuc2xvdFRhcmdldD0nXCJcIic9PT1uPydcImRlZmF1bHRcIic6bixlLnNsb3RUYXJnZXREeW5hbWljPSEoIWUuYXR0cnNNYXBbXCI6c2xvdFwiXSYmIWUuYXR0cnNNYXBbXCJ2LWJpbmQ6c2xvdFwiXSksXCJ0ZW1wbGF0ZVwiPT09ZS50YWd8fGUuc2xvdFNjb3BlfHxOcihlLFwic2xvdFwiLG4sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yYXdBdHRyc01hcFtcIjpcIit0XXx8ZS5yYXdBdHRyc01hcFtcInYtYmluZDpcIit0XXx8ZS5yYXdBdHRyc01hcFt0XX0oZSxcInNsb3RcIikpKTtpZihcInRlbXBsYXRlXCI9PT1lLnRhZyl7dmFyIHI9UHIoZSxpYSk7aWYocil7dmFyIGk9dmEociksbz1pLm5hbWUsYT1pLmR5bmFtaWM7ZS5zbG90VGFyZ2V0PW8sZS5zbG90VGFyZ2V0RHluYW1pYz1hLGUuc2xvdFNjb3BlPXIudmFsdWV8fGNhfX1lbHNle3ZhciBzPVByKGUsaWEpO2lmKHMpe3ZhciBjPWUuc2NvcGVkU2xvdHN8fChlLnNjb3BlZFNsb3RzPXt9KSx1PXZhKHMpLGw9dS5uYW1lLGY9dS5keW5hbWljLHA9Y1tsXT11YShcInRlbXBsYXRlXCIsW10sZSk7cC5zbG90VGFyZ2V0PWwscC5zbG90VGFyZ2V0RHluYW1pYz1mLHAuY2hpbGRyZW49ZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oZSl7aWYoIWUuc2xvdFNjb3BlKXJldHVybiBlLnBhcmVudD1wLCEwfSkscC5zbG90U2NvcGU9cy52YWx1ZXx8Y2EsZS5jaGlsZHJlbj1bXSxlLnBsYWluPSExfX19KGUpLGZ1bmN0aW9uKGUpe1wic2xvdFwiPT09ZS50YWcmJihlLnNsb3ROYW1lPUlyKGUsXCJuYW1lXCIpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7KHQ9SXIoZSxcImlzXCIpKSYmKGUuY29tcG9uZW50PXQpO251bGwhPUZyKGUsXCJpbmxpbmUtdGVtcGxhdGVcIikmJihlLmlubGluZVRlbXBsYXRlPSEwKX0oZSk7Zm9yKHZhciBpPTA7aTx6by5sZW5ndGg7aSsrKWU9em9baV0oZSx0KXx8ZTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsYyx1PWUuYXR0cnNMaXN0O2Zvcih0PTAsbj11Lmxlbmd0aDt0PG47dCsrKWlmKHI9aT11W3RdLm5hbWUsbz11W3RdLnZhbHVlLEdvLnRlc3QocikpaWYoZS5oYXNCaW5kaW5ncz0hMCwoYT1oYShyLnJlcGxhY2UoR28sXCJcIikpKSYmKHI9ci5yZXBsYWNlKHJhLFwiXCIpKSxuYS50ZXN0KHIpKXI9ci5yZXBsYWNlKG5hLFwiXCIpLG89QXIobyksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLGEmJihhLnByb3AmJiFjJiZcImlubmVySHRtbFwiPT09KHI9YihyKSkmJihyPVwiaW5uZXJIVE1MXCIpLGEuY2FtZWwmJiFjJiYocj1iKHIpKSxhLnN5bmMmJihzPUJyKG8sXCIkZXZlbnRcIiksYz9NcihlLCdcInVwZGF0ZTpcIisoJytyK1wiKVwiLHMsbnVsbCwhMSwwLHVbdF0sITApOihNcihlLFwidXBkYXRlOlwiK2IocikscyxudWxsLCExLDAsdVt0XSksQyhyKSE9PWIocikmJk1yKGUsXCJ1cGRhdGU6XCIrQyhyKSxzLG51bGwsITEsMCx1W3RdKSkpKSxhJiZhLnByb3B8fCFlLmNvbXBvbmVudCYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpP0VyKGUscixvLHVbdF0sYyk6TnIoZSxyLG8sdVt0XSxjKTtlbHNlIGlmKFpvLnRlc3Qocikpcj1yLnJlcGxhY2UoWm8sXCJcIiksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLE1yKGUscixvLGEsITEsMCx1W3RdLGMpO2Vsc2V7dmFyIGw9KHI9ci5yZXBsYWNlKEdvLFwiXCIpKS5tYXRjaCh0YSksZj1sJiZsWzFdO2M9ITEsZiYmKHI9ci5zbGljZSgwLC0oZi5sZW5ndGgrMSkpLGVhLnRlc3QoZikmJihmPWYuc2xpY2UoMSwtMSksYz0hMCkpLERyKGUscixpLG8sZixjLGEsdVt0XSl9ZWxzZSBOcihlLHIsSlNPTi5zdHJpbmdpZnkobyksdVt0XSksIWUuY29tcG9uZW50JiZcIm11dGVkXCI9PT1yJiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscikmJkVyKGUscixcInRydWVcIix1W3RdKX0oZSksZX1mdW5jdGlvbiBwYShlKXt2YXIgdDtpZih0PUZyKGUsXCJ2LWZvclwiKSl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaChYbyk7aWYoIXQpcmV0dXJuO3ZhciBuPXt9O24uZm9yPXRbMl0udHJpbSgpO3ZhciByPXRbMV0udHJpbSgpLnJlcGxhY2UoUW8sXCJcIiksaT1yLm1hdGNoKFlvKTtpPyhuLmFsaWFzPXIucmVwbGFjZShZbyxcIlwiKS50cmltKCksbi5pdGVyYXRvcjE9aVsxXS50cmltKCksaVsyXSYmKG4uaXRlcmF0b3IyPWlbMl0udHJpbSgpKSk6bi5hbGlhcz1yO3JldHVybiBufSh0KTtuJiZBKGUsbil9fWZ1bmN0aW9uIGRhKGUsdCl7ZS5pZkNvbmRpdGlvbnN8fChlLmlmQ29uZGl0aW9ucz1bXSksZS5pZkNvbmRpdGlvbnMucHVzaCh0KX1mdW5jdGlvbiB2YShlKXt2YXIgdD1lLm5hbWUucmVwbGFjZShpYSxcIlwiKTtyZXR1cm4gdHx8XCIjXCIhPT1lLm5hbWVbMF0mJih0PVwiZGVmYXVsdFwiKSxlYS50ZXN0KHQpP3tuYW1lOnQuc2xpY2UoMSwtMSksZHluYW1pYzohMH06e25hbWU6J1wiJyt0KydcIicsZHluYW1pYzohMX19ZnVuY3Rpb24gaGEoZSl7dmFyIHQ9ZS5tYXRjaChyYSk7aWYodCl7dmFyIG49e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXtuW2Uuc2xpY2UoMSldPSEwfSksbn19ZnVuY3Rpb24gbWEoZSl7Zm9yKHZhciB0PXt9LG49MCxyPWUubGVuZ3RoO248cjtuKyspdFtlW25dLm5hbWVdPWVbbl0udmFsdWU7cmV0dXJuIHR9dmFyIHlhPS9eeG1sbnM6TlNcXGQrLyxnYT0vXk5TXFxkKzovO2Z1bmN0aW9uIF9hKGUpe3JldHVybiB1YShlLnRhZyxlLmF0dHJzTGlzdC5zbGljZSgpLGUucGFyZW50KX12YXIgYmE9W21vLGdvLHtwcmVUcmFuc2Zvcm1Ob2RlOmZ1bmN0aW9uKGUsdCl7aWYoXCJpbnB1dFwiPT09ZS50YWcpe3ZhciBuLHI9ZS5hdHRyc01hcDtpZighcltcInYtbW9kZWxcIl0pcmV0dXJuO2lmKChyW1wiOnR5cGVcIl18fHJbXCJ2LWJpbmQ6dHlwZVwiXSkmJihuPUlyKGUsXCJ0eXBlXCIpKSxyLnR5cGV8fG58fCFyW1widi1iaW5kXCJdfHwobj1cIihcIityW1widi1iaW5kXCJdK1wiKS50eXBlXCIpLG4pe3ZhciBpPUZyKGUsXCJ2LWlmXCIsITApLG89aT9cIiYmKFwiK2krXCIpXCI6XCJcIixhPW51bGwhPUZyKGUsXCJ2LWVsc2VcIiwhMCkscz1GcihlLFwidi1lbHNlLWlmXCIsITApLGM9X2EoZSk7cGEoYyksanIoYyxcInR5cGVcIixcImNoZWNrYm94XCIpLGZhKGMsdCksYy5wcm9jZXNzZWQ9ITAsYy5pZj1cIihcIituK1wiKT09PSdjaGVja2JveCdcIitvLGRhKGMse2V4cDpjLmlmLGJsb2NrOmN9KTt2YXIgdT1fYShlKTtGcih1LFwidi1mb3JcIiwhMCksanIodSxcInR5cGVcIixcInJhZGlvXCIpLGZhKHUsdCksZGEoYyx7ZXhwOlwiKFwiK24rXCIpPT09J3JhZGlvJ1wiK28sYmxvY2s6dX0pO3ZhciBsPV9hKGUpO3JldHVybiBGcihsLFwidi1mb3JcIiwhMCksanIobCxcIjp0eXBlXCIsbiksZmEobCx0KSxkYShjLHtleHA6aSxibG9jazpsfSksYT9jLmVsc2U9ITA6cyYmKGMuZWxzZWlmPXMpLGN9fX19XTt2YXIgJGEsd2EsQ2E9e2V4cGVjdEhUTUw6ITAsbW9kdWxlczpiYSxkaXJlY3RpdmVzOnttb2RlbDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPXQubW9kaWZpZXJzLG89ZS50YWcsYT1lLmF0dHJzTWFwLnR5cGU7aWYoZS5jb21wb25lbnQpcmV0dXJuIEhyKGUscixpKSwhMTtpZihcInNlbGVjdFwiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPSd2YXIgJCRzZWxlY3RlZFZhbCA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCgkZXZlbnQudGFyZ2V0Lm9wdGlvbnMsZnVuY3Rpb24obyl7cmV0dXJuIG8uc2VsZWN0ZWR9KS5tYXAoZnVuY3Rpb24obyl7dmFyIHZhbCA9IFwiX3ZhbHVlXCIgaW4gbyA/IG8uX3ZhbHVlIDogby52YWx1ZTtyZXR1cm4gJysobiYmbi5udW1iZXI/XCJfbih2YWwpXCI6XCJ2YWxcIikrXCJ9KTtcIjtyPXIrXCIgXCIrQnIodCxcIiRldmVudC50YXJnZXQubXVsdGlwbGUgPyAkJHNlbGVjdGVkVmFsIDogJCRzZWxlY3RlZFZhbFswXVwiKSxNcihlLFwiY2hhbmdlXCIscixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoXCJpbnB1dFwiPT09byYmXCJjaGVja2JveFwiPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSxcInZhbHVlXCIpfHxcIm51bGxcIixvPUlyKGUsXCJ0cnVlLXZhbHVlXCIpfHxcInRydWVcIixhPUlyKGUsXCJmYWxzZS12YWx1ZVwiKXx8XCJmYWxzZVwiO0VyKGUsXCJjaGVja2VkXCIsXCJBcnJheS5pc0FycmF5KFwiK3QrXCIpP19pKFwiK3QrXCIsXCIraStcIik+LTFcIisoXCJ0cnVlXCI9PT1vP1wiOihcIit0K1wiKVwiOlwiOl9xKFwiK3QrXCIsXCIrbytcIilcIikpLE1yKGUsXCJjaGFuZ2VcIixcInZhciAkJGE9XCIrdCtcIiwkJGVsPSRldmVudC50YXJnZXQsJCRjPSQkZWwuY2hlY2tlZD8oXCIrbytcIik6KFwiK2ErXCIpO2lmKEFycmF5LmlzQXJyYXkoJCRhKSl7dmFyICQkdj1cIisocj9cIl9uKFwiK2krXCIpXCI6aSkrXCIsJCRpPV9pKCQkYSwkJHYpO2lmKCQkZWwuY2hlY2tlZCl7JCRpPDAmJihcIitCcih0LFwiJCRhLmNvbmNhdChbJCR2XSlcIikrXCIpfWVsc2V7JCRpPi0xJiYoXCIrQnIodCxcIiQkYS5zbGljZSgwLCQkaSkuY29uY2F0KCQkYS5zbGljZSgkJGkrMSkpXCIpK1wiKX19ZWxzZXtcIitCcih0LFwiJCRjXCIpK1wifVwiLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZihcImlucHV0XCI9PT1vJiZcInJhZGlvXCI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLFwidmFsdWVcIil8fFwibnVsbFwiO0VyKGUsXCJjaGVja2VkXCIsXCJfcShcIit0K1wiLFwiKyhpPXI/XCJfbihcIitpK1wiKVwiOmkpK1wiKVwiKSxNcihlLFwiY2hhbmdlXCIsQnIodCxpKSxudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoXCJpbnB1dFwiPT09b3x8XCJ0ZXh0YXJlYVwiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYXR0cnNNYXAudHlwZSxpPW58fHt9LG89aS5sYXp5LGE9aS5udW1iZXIscz1pLnRyaW0sYz0hbyYmXCJyYW5nZVwiIT09cix1PW8/XCJjaGFuZ2VcIjpcInJhbmdlXCI9PT1yP1dyOlwiaW5wdXRcIixsPVwiJGV2ZW50LnRhcmdldC52YWx1ZVwiO3MmJihsPVwiJGV2ZW50LnRhcmdldC52YWx1ZS50cmltKClcIiksYSYmKGw9XCJfbihcIitsK1wiKVwiKTt2YXIgZj1Ccih0LGwpO2MmJihmPVwiaWYoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpcmV0dXJuO1wiK2YpLEVyKGUsXCJ2YWx1ZVwiLFwiKFwiK3QrXCIpXCIpLE1yKGUsdSxmLG51bGwsITApLChzfHxhKSYmTXIoZSxcImJsdXJcIixcIiRmb3JjZVVwZGF0ZSgpXCIpfShlLHIsaSk7ZWxzZSBpZighRi5pc1Jlc2VydmVkVGFnKG8pKXJldHVybiBIcihlLHIsaSksITE7cmV0dXJuITB9LHRleHQ6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLFwidGV4dENvbnRlbnRcIixcIl9zKFwiK3QudmFsdWUrXCIpXCIsdCl9LGh0bWw6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLFwiaW5uZXJIVE1MXCIsXCJfcyhcIit0LnZhbHVlK1wiKVwiLHQpfX0saXNQcmVUYWc6ZnVuY3Rpb24oZSl7cmV0dXJuXCJwcmVcIj09PWV9LGlzVW5hcnlUYWc6Ym8sbXVzdFVzZVByb3A6am4sY2FuQmVMZWZ0T3BlblRhZzokbyxpc1Jlc2VydmVkVGFnOlduLGdldFRhZ05hbWVzcGFjZTpabixzdGF0aWNLZXlzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvbmNhdCh0LnN0YXRpY0tleXN8fFtdKX0sW10pLmpvaW4oXCIsXCIpfShiYSl9LHhhPWcoZnVuY3Rpb24oZSl7cmV0dXJuIHAoXCJ0eXBlLHRhZyxhdHRyc0xpc3QsYXR0cnNNYXAscGxhaW4scGFyZW50LGNoaWxkcmVuLGF0dHJzLHN0YXJ0LGVuZCxyYXdBdHRyc01hcFwiKyhlP1wiLFwiK2U6XCJcIikpfSk7ZnVuY3Rpb24ga2EoZSx0KXtlJiYoJGE9eGEodC5zdGF0aWNLZXlzfHxcIlwiKSx3YT10LmlzUmVzZXJ2ZWRUYWd8fFQsZnVuY3Rpb24gZSh0KXt0LnN0YXRpYz1mdW5jdGlvbihlKXtpZigyPT09ZS50eXBlKXJldHVybiExO2lmKDM9PT1lLnR5cGUpcmV0dXJuITA7cmV0dXJuISghZS5wcmUmJihlLmhhc0JpbmRpbmdzfHxlLmlmfHxlLmZvcnx8ZChlLnRhZyl8fCF3YShlLnRhZyl8fGZ1bmN0aW9uKGUpe2Zvcig7ZS5wYXJlbnQ7KXtpZihcInRlbXBsYXRlXCIhPT0oZT1lLnBhcmVudCkudGFnKXJldHVybiExO2lmKGUuZm9yKXJldHVybiEwfXJldHVybiExfShlKXx8IU9iamVjdC5rZXlzKGUpLmV2ZXJ5KCRhKSkpfSh0KTtpZigxPT09dC50eXBlKXtpZighd2EodC50YWcpJiZcInNsb3RcIiE9PXQudGFnJiZudWxsPT10LmF0dHJzTWFwW1wiaW5saW5lLXRlbXBsYXRlXCJdKXJldHVybjtmb3IodmFyIG49MCxyPXQuY2hpbGRyZW4ubGVuZ3RoO248cjtuKyspe3ZhciBpPXQuY2hpbGRyZW5bbl07ZShpKSxpLnN0YXRpY3x8KHQuc3RhdGljPSExKX1pZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKXt2YXIgcz10LmlmQ29uZGl0aW9uc1tvXS5ibG9jaztlKHMpLHMuc3RhdGljfHwodC5zdGF0aWM9ITEpfX19KGUpLGZ1bmN0aW9uIGUodCxuKXtpZigxPT09dC50eXBlKXtpZigodC5zdGF0aWN8fHQub25jZSkmJih0LnN0YXRpY0luRm9yPW4pLHQuc3RhdGljJiZ0LmNoaWxkcmVuLmxlbmd0aCYmKDEhPT10LmNoaWxkcmVuLmxlbmd0aHx8MyE9PXQuY2hpbGRyZW5bMF0udHlwZSkpcmV0dXJuIHZvaWQodC5zdGF0aWNSb290PSEwKTtpZih0LnN0YXRpY1Jvb3Q9ITEsdC5jaGlsZHJlbilmb3IodmFyIHI9MCxpPXQuY2hpbGRyZW4ubGVuZ3RoO3I8aTtyKyspZSh0LmNoaWxkcmVuW3JdLG58fCEhdC5mb3IpO2lmKHQuaWZDb25kaXRpb25zKWZvcih2YXIgbz0xLGE9dC5pZkNvbmRpdGlvbnMubGVuZ3RoO288YTtvKyspZSh0LmlmQ29uZGl0aW9uc1tvXS5ibG9jayxuKX19KGUsITEpKX12YXIgQWE9L14oW1xcdyRfXSt8XFwoW14pXSo/XFwpKVxccyo9PnxeZnVuY3Rpb24oPzpcXHMrW1xcdyRdKyk/XFxzKlxcKC8sT2E9L1xcKFteKV0qP1xcKTsqJC8sU2E9L15bQS1aYS16XyRdW1xcdyRdKig/OlxcLltBLVphLXpfJF1bXFx3JF0qfFxcWydbXiddKj8nXXxcXFtcIlteXCJdKj9cIl18XFxbXFxkK118XFxbW0EtWmEtel8kXVtcXHckXSpdKSokLyxUYT17ZXNjOjI3LHRhYjo5LGVudGVyOjEzLHNwYWNlOjMyLHVwOjM4LGxlZnQ6MzcscmlnaHQ6MzksZG93bjo0MCxkZWxldGU6WzgsNDZdfSxFYT17ZXNjOltcIkVzY1wiLFwiRXNjYXBlXCJdLHRhYjpcIlRhYlwiLGVudGVyOlwiRW50ZXJcIixzcGFjZTpbXCIgXCIsXCJTcGFjZWJhclwiXSx1cDpbXCJVcFwiLFwiQXJyb3dVcFwiXSxsZWZ0OltcIkxlZnRcIixcIkFycm93TGVmdFwiXSxyaWdodDpbXCJSaWdodFwiLFwiQXJyb3dSaWdodFwiXSxkb3duOltcIkRvd25cIixcIkFycm93RG93blwiXSxkZWxldGU6W1wiQmFja3NwYWNlXCIsXCJEZWxldGVcIixcIkRlbFwiXX0sTmE9ZnVuY3Rpb24oZSl7cmV0dXJuXCJpZihcIitlK1wiKXJldHVybiBudWxsO1wifSxqYT17c3RvcDpcIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIixwcmV2ZW50OlwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCIsc2VsZjpOYShcIiRldmVudC50YXJnZXQgIT09ICRldmVudC5jdXJyZW50VGFyZ2V0XCIpLGN0cmw6TmEoXCIhJGV2ZW50LmN0cmxLZXlcIiksc2hpZnQ6TmEoXCIhJGV2ZW50LnNoaWZ0S2V5XCIpLGFsdDpOYShcIiEkZXZlbnQuYWx0S2V5XCIpLG1ldGE6TmEoXCIhJGV2ZW50Lm1ldGFLZXlcIiksbGVmdDpOYShcIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAwXCIpLG1pZGRsZTpOYShcIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAxXCIpLHJpZ2h0Ok5hKFwiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDJcIil9O2Z1bmN0aW9uIERhKGUsdCl7dmFyIG49dD9cIm5hdGl2ZU9uOlwiOlwib246XCIscj1cIlwiLGk9XCJcIjtmb3IodmFyIG8gaW4gZSl7dmFyIGE9TGEoZVtvXSk7ZVtvXSYmZVtvXS5keW5hbWljP2krPW8rXCIsXCIrYStcIixcIjpyKz0nXCInK28rJ1wiOicrYStcIixcIn1yZXR1cm4gcj1cIntcIityLnNsaWNlKDAsLTEpK1wifVwiLGk/bitcIl9kKFwiK3IrXCIsW1wiK2kuc2xpY2UoMCwtMSkrXCJdKVwiOm4rcn1mdW5jdGlvbiBMYShlKXtpZighZSlyZXR1cm5cImZ1bmN0aW9uKCl7fVwiO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuXCJbXCIrZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIExhKGUpfSkuam9pbihcIixcIikrXCJdXCI7dmFyIHQ9U2EudGVzdChlLnZhbHVlKSxuPUFhLnRlc3QoZS52YWx1ZSkscj1TYS50ZXN0KGUudmFsdWUucmVwbGFjZShPYSxcIlwiKSk7aWYoZS5tb2RpZmllcnMpe3ZhciBpPVwiXCIsbz1cIlwiLGE9W107Zm9yKHZhciBzIGluIGUubW9kaWZpZXJzKWlmKGphW3NdKW8rPWphW3NdLFRhW3NdJiZhLnB1c2gocyk7ZWxzZSBpZihcImV4YWN0XCI9PT1zKXt2YXIgYz1lLm1vZGlmaWVycztvKz1OYShbXCJjdHJsXCIsXCJzaGlmdFwiLFwiYWx0XCIsXCJtZXRhXCJdLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hY1tlXX0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm5cIiRldmVudC5cIitlK1wiS2V5XCJ9KS5qb2luKFwifHxcIikpfWVsc2UgYS5wdXNoKHMpO3JldHVybiBhLmxlbmd0aCYmKGkrPWZ1bmN0aW9uKGUpe3JldHVyblwiaWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZcIitlLm1hcChNYSkuam9pbihcIiYmXCIpK1wiKXJldHVybiBudWxsO1wifShhKSksbyYmKGkrPW8pLFwiZnVuY3Rpb24oJGV2ZW50KXtcIitpKyh0P1wicmV0dXJuIFwiK2UudmFsdWUrXCIoJGV2ZW50KVwiOm4/XCJyZXR1cm4gKFwiK2UudmFsdWUrXCIpKCRldmVudClcIjpyP1wicmV0dXJuIFwiK2UudmFsdWU6ZS52YWx1ZSkrXCJ9XCJ9cmV0dXJuIHR8fG4/ZS52YWx1ZTpcImZ1bmN0aW9uKCRldmVudCl7XCIrKHI/XCJyZXR1cm4gXCIrZS52YWx1ZTplLnZhbHVlKStcIn1cIn1mdW5jdGlvbiBNYShlKXt2YXIgdD1wYXJzZUludChlLDEwKTtpZih0KXJldHVyblwiJGV2ZW50LmtleUNvZGUhPT1cIit0O3ZhciBuPVRhW2VdLHI9RWFbZV07cmV0dXJuXCJfaygkZXZlbnQua2V5Q29kZSxcIitKU09OLnN0cmluZ2lmeShlKStcIixcIitKU09OLnN0cmluZ2lmeShuKStcIiwkZXZlbnQua2V5LFwiK0pTT04uc3RyaW5naWZ5KHIpK1wiKVwifXZhciBJYT17b246ZnVuY3Rpb24oZSx0KXtlLndyYXBMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuXCJfZyhcIitlK1wiLFwiK3QudmFsdWUrXCIpXCJ9fSxiaW5kOmZ1bmN0aW9uKGUsdCl7ZS53cmFwRGF0YT1mdW5jdGlvbihuKXtyZXR1cm5cIl9iKFwiK24rXCIsJ1wiK2UudGFnK1wiJyxcIit0LnZhbHVlK1wiLFwiKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMucHJvcD9cInRydWVcIjpcImZhbHNlXCIpKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMuc3luYz9cIix0cnVlXCI6XCJcIikrXCIpXCJ9fSxjbG9hazpTfSxGYT1mdW5jdGlvbihlKXt0aGlzLm9wdGlvbnM9ZSx0aGlzLndhcm49ZS53YXJufHxTcix0aGlzLnRyYW5zZm9ybXM9VHIoZS5tb2R1bGVzLFwidHJhbnNmb3JtQ29kZVwiKSx0aGlzLmRhdGFHZW5GbnM9VHIoZS5tb2R1bGVzLFwiZ2VuRGF0YVwiKSx0aGlzLmRpcmVjdGl2ZXM9QShBKHt9LElhKSxlLmRpcmVjdGl2ZXMpO3ZhciB0PWUuaXNSZXNlcnZlZFRhZ3x8VDt0aGlzLm1heWJlQ29tcG9uZW50PWZ1bmN0aW9uKGUpe3JldHVybiEhZS5jb21wb25lbnR8fCF0KGUudGFnKX0sdGhpcy5vbmNlSWQ9MCx0aGlzLnN0YXRpY1JlbmRlckZucz1bXSx0aGlzLnByZT0hMX07ZnVuY3Rpb24gUGEoZSx0KXt2YXIgbj1uZXcgRmEodCk7cmV0dXJue3JlbmRlcjpcIndpdGgodGhpcyl7cmV0dXJuIFwiKyhlP1JhKGUsbik6J19jKFwiZGl2XCIpJykrXCJ9XCIsc3RhdGljUmVuZGVyRm5zOm4uc3RhdGljUmVuZGVyRm5zfX1mdW5jdGlvbiBSYShlLHQpe2lmKGUucGFyZW50JiYoZS5wcmU9ZS5wcmV8fGUucGFyZW50LnByZSksZS5zdGF0aWNSb290JiYhZS5zdGF0aWNQcm9jZXNzZWQpcmV0dXJuIEhhKGUsdCk7aWYoZS5vbmNlJiYhZS5vbmNlUHJvY2Vzc2VkKXJldHVybiBCYShlLHQpO2lmKGUuZm9yJiYhZS5mb3JQcm9jZXNzZWQpcmV0dXJuIHphKGUsdCk7aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoXCJ0ZW1wbGF0ZVwiIT09ZS50YWd8fGUuc2xvdFRhcmdldHx8dC5wcmUpe2lmKFwic2xvdFwiPT09ZS50YWcpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5zbG90TmFtZXx8J1wiZGVmYXVsdFwiJyxyPXFhKGUsdCksaT1cIl90KFwiK24rKHI/XCIsXCIrcjpcIlwiKSxvPWUuYXR0cnN8fGUuZHluYW1pY0F0dHJzP0dhKChlLmF0dHJzfHxbXSkuY29uY2F0KGUuZHluYW1pY0F0dHJzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOmIoZS5uYW1lKSx2YWx1ZTplLnZhbHVlLGR5bmFtaWM6ZS5keW5hbWljfX0pKTpudWxsLGE9ZS5hdHRyc01hcFtcInYtYmluZFwiXTshbyYmIWF8fHJ8fChpKz1cIixudWxsXCIpO28mJihpKz1cIixcIitvKTthJiYoaSs9KG8/XCJcIjpcIixudWxsXCIpK1wiLFwiK2EpO3JldHVybiBpK1wiKVwifShlLHQpO3ZhciBuO2lmKGUuY29tcG9uZW50KW49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQuaW5saW5lVGVtcGxhdGU/bnVsbDpxYSh0LG4sITApO3JldHVyblwiX2MoXCIrZStcIixcIitWYSh0LG4pKyhyP1wiLFwiK3I6XCJcIikrXCIpXCJ9KGUuY29tcG9uZW50LGUsdCk7ZWxzZXt2YXIgcjsoIWUucGxhaW58fGUucHJlJiZ0Lm1heWJlQ29tcG9uZW50KGUpKSYmKHI9VmEoZSx0KSk7dmFyIGk9ZS5pbmxpbmVUZW1wbGF0ZT9udWxsOnFhKGUsdCwhMCk7bj1cIl9jKCdcIitlLnRhZytcIidcIisocj9cIixcIityOlwiXCIpKyhpP1wiLFwiK2k6XCJcIikrXCIpXCJ9Zm9yKHZhciBvPTA7bzx0LnRyYW5zZm9ybXMubGVuZ3RoO28rKyluPXQudHJhbnNmb3Jtc1tvXShlLG4pO3JldHVybiBufXJldHVybiBxYShlLHQpfHxcInZvaWQgMFwifWZ1bmN0aW9uIEhhKGUsdCl7ZS5zdGF0aWNQcm9jZXNzZWQ9ITA7dmFyIG49dC5wcmU7cmV0dXJuIGUucHJlJiYodC5wcmU9ZS5wcmUpLHQuc3RhdGljUmVuZGVyRm5zLnB1c2goXCJ3aXRoKHRoaXMpe3JldHVybiBcIitSYShlLHQpK1wifVwiKSx0LnByZT1uLFwiX20oXCIrKHQuc3RhdGljUmVuZGVyRm5zLmxlbmd0aC0xKSsoZS5zdGF0aWNJbkZvcj9cIix0cnVlXCI6XCJcIikrXCIpXCJ9ZnVuY3Rpb24gQmEoZSx0KXtpZihlLm9uY2VQcm9jZXNzZWQ9ITAsZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoZS5zdGF0aWNJbkZvcil7Zm9yKHZhciBuPVwiXCIscj1lLnBhcmVudDtyOyl7aWYoci5mb3Ipe249ci5rZXk7YnJlYWt9cj1yLnBhcmVudH1yZXR1cm4gbj9cIl9vKFwiK1JhKGUsdCkrXCIsXCIrdC5vbmNlSWQrKytcIixcIituK1wiKVwiOlJhKGUsdCl9cmV0dXJuIEhhKGUsdCl9ZnVuY3Rpb24gVWEoZSx0LG4scil7cmV0dXJuIGUuaWZQcm9jZXNzZWQ9ITAsZnVuY3Rpb24gZSh0LG4scixpKXtpZighdC5sZW5ndGgpcmV0dXJuIGl8fFwiX2UoKVwiO3ZhciBvPXQuc2hpZnQoKTtyZXR1cm4gby5leHA/XCIoXCIrby5leHArXCIpP1wiK2Eoby5ibG9jaykrXCI6XCIrZSh0LG4scixpKTpcIlwiK2Eoby5ibG9jayk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gcj9yKGUsbik6ZS5vbmNlP0JhKGUsbik6UmEoZSxuKX19KGUuaWZDb25kaXRpb25zLnNsaWNlKCksdCxuLHIpfWZ1bmN0aW9uIHphKGUsdCxuLHIpe3ZhciBpPWUuZm9yLG89ZS5hbGlhcyxhPWUuaXRlcmF0b3IxP1wiLFwiK2UuaXRlcmF0b3IxOlwiXCIscz1lLml0ZXJhdG9yMj9cIixcIitlLml0ZXJhdG9yMjpcIlwiO3JldHVybiBlLmZvclByb2Nlc3NlZD0hMCwocnx8XCJfbFwiKStcIigoXCIraStcIiksZnVuY3Rpb24oXCIrbythK3MrXCIpe3JldHVybiBcIisobnx8UmEpKGUsdCkrXCJ9KVwifWZ1bmN0aW9uIFZhKGUsdCl7dmFyIG49XCJ7XCIscj1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZGlyZWN0aXZlcztpZighbilyZXR1cm47dmFyIHIsaSxvLGEscz1cImRpcmVjdGl2ZXM6W1wiLGM9ITE7Zm9yKHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe289bltyXSxhPSEwO3ZhciB1PXQuZGlyZWN0aXZlc1tvLm5hbWVdO3UmJihhPSEhdShlLG8sdC53YXJuKSksYSYmKGM9ITAscys9J3tuYW1lOlwiJytvLm5hbWUrJ1wiLHJhd05hbWU6XCInK28ucmF3TmFtZSsnXCInKyhvLnZhbHVlP1wiLHZhbHVlOihcIitvLnZhbHVlK1wiKSxleHByZXNzaW9uOlwiK0pTT04uc3RyaW5naWZ5KG8udmFsdWUpOlwiXCIpKyhvLmFyZz9cIixhcmc6XCIrKG8uaXNEeW5hbWljQXJnP28uYXJnOidcIicrby5hcmcrJ1wiJyk6XCJcIikrKG8ubW9kaWZpZXJzP1wiLG1vZGlmaWVyczpcIitKU09OLnN0cmluZ2lmeShvLm1vZGlmaWVycyk6XCJcIikrXCJ9LFwiKX1pZihjKXJldHVybiBzLnNsaWNlKDAsLTEpK1wiXVwifShlLHQpO3ImJihuKz1yK1wiLFwiKSxlLmtleSYmKG4rPVwia2V5OlwiK2Uua2V5K1wiLFwiKSxlLnJlZiYmKG4rPVwicmVmOlwiK2UucmVmK1wiLFwiKSxlLnJlZkluRm9yJiYobis9XCJyZWZJbkZvcjp0cnVlLFwiKSxlLnByZSYmKG4rPVwicHJlOnRydWUsXCIpLGUuY29tcG9uZW50JiYobis9J3RhZzpcIicrZS50YWcrJ1wiLCcpO2Zvcih2YXIgaT0wO2k8dC5kYXRhR2VuRm5zLmxlbmd0aDtpKyspbis9dC5kYXRhR2VuRm5zW2ldKGUpO2lmKGUuYXR0cnMmJihuKz1cImF0dHJzOlwiK0dhKGUuYXR0cnMpK1wiLFwiKSxlLnByb3BzJiYobis9XCJkb21Qcm9wczpcIitHYShlLnByb3BzKStcIixcIiksZS5ldmVudHMmJihuKz1EYShlLmV2ZW50cywhMSkrXCIsXCIpLGUubmF0aXZlRXZlbnRzJiYobis9RGEoZS5uYXRpdmVFdmVudHMsITApK1wiLFwiKSxlLnNsb3RUYXJnZXQmJiFlLnNsb3RTY29wZSYmKG4rPVwic2xvdDpcIitlLnNsb3RUYXJnZXQrXCIsXCIpLGUuc2NvcGVkU2xvdHMmJihuKz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5mb3J8fE9iamVjdC5rZXlzKHQpLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG49dFtlXTtyZXR1cm4gbi5zbG90VGFyZ2V0RHluYW1pY3x8bi5pZnx8bi5mb3J8fEthKG4pfSksaT0hIWUuaWY7aWYoIXIpZm9yKHZhciBvPWUucGFyZW50O287KXtpZihvLnNsb3RTY29wZSYmby5zbG90U2NvcGUhPT1jYXx8by5mb3Ipe3I9ITA7YnJlYWt9by5pZiYmKGk9ITApLG89by5wYXJlbnR9dmFyIGE9T2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBKYSh0W2VdLG4pfSkuam9pbihcIixcIik7cmV0dXJuXCJzY29wZWRTbG90czpfdShbXCIrYStcIl1cIisocj9cIixudWxsLHRydWVcIjpcIlwiKSsoIXImJmk/XCIsbnVsbCxmYWxzZSxcIitmdW5jdGlvbihlKXt2YXIgdD01MzgxLG49ZS5sZW5ndGg7Zm9yKDtuOyl0PTMzKnReZS5jaGFyQ29kZUF0KC0tbik7cmV0dXJuIHQ+Pj4wfShhKTpcIlwiKStcIilcIn0oZSxlLnNjb3BlZFNsb3RzLHQpK1wiLFwiKSxlLm1vZGVsJiYobis9XCJtb2RlbDp7dmFsdWU6XCIrZS5tb2RlbC52YWx1ZStcIixjYWxsYmFjazpcIitlLm1vZGVsLmNhbGxiYWNrK1wiLGV4cHJlc3Npb246XCIrZS5tb2RlbC5leHByZXNzaW9uK1wifSxcIiksZS5pbmxpbmVUZW1wbGF0ZSl7dmFyIG89ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmNoaWxkcmVuWzBdO2lmKG4mJjE9PT1uLnR5cGUpe3ZhciByPVBhKG4sdC5vcHRpb25zKTtyZXR1cm5cImlubGluZVRlbXBsYXRlOntyZW5kZXI6ZnVuY3Rpb24oKXtcIityLnJlbmRlcitcIn0sc3RhdGljUmVuZGVyRm5zOltcIityLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuXCJmdW5jdGlvbigpe1wiK2UrXCJ9XCJ9KS5qb2luKFwiLFwiKStcIl19XCJ9fShlLHQpO28mJihuKz1vK1wiLFwiKX1yZXR1cm4gbj1uLnJlcGxhY2UoLywkLyxcIlwiKStcIn1cIixlLmR5bmFtaWNBdHRycyYmKG49XCJfYihcIituKycsXCInK2UudGFnKydcIiwnK0dhKGUuZHluYW1pY0F0dHJzKStcIilcIiksZS53cmFwRGF0YSYmKG49ZS53cmFwRGF0YShuKSksZS53cmFwTGlzdGVuZXJzJiYobj1lLndyYXBMaXN0ZW5lcnMobikpLG59ZnVuY3Rpb24gS2EoZSl7cmV0dXJuIDE9PT1lLnR5cGUmJihcInNsb3RcIj09PWUudGFnfHxlLmNoaWxkcmVuLnNvbWUoS2EpKX1mdW5jdGlvbiBKYShlLHQpe3ZhciBuPWUuYXR0cnNNYXBbXCJzbG90LXNjb3BlXCJdO2lmKGUuaWYmJiFlLmlmUHJvY2Vzc2VkJiYhbilyZXR1cm4gVWEoZSx0LEphLFwibnVsbFwiKTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQsSmEpO3ZhciByPWUuc2xvdFNjb3BlPT09Y2E/XCJcIjpTdHJpbmcoZS5zbG90U2NvcGUpLGk9XCJmdW5jdGlvbihcIityK1wiKXtyZXR1cm4gXCIrKFwidGVtcGxhdGVcIj09PWUudGFnP2UuaWYmJm4/XCIoXCIrZS5pZitcIik/XCIrKHFhKGUsdCl8fFwidW5kZWZpbmVkXCIpK1wiOnVuZGVmaW5lZFwiOnFhKGUsdCl8fFwidW5kZWZpbmVkXCI6UmEoZSx0KSkrXCJ9XCIsbz1yP1wiXCI6XCIscHJveHk6dHJ1ZVwiO3JldHVyblwie2tleTpcIisoZS5zbG90VGFyZ2V0fHwnXCJkZWZhdWx0XCInKStcIixmbjpcIitpK28rXCJ9XCJ9ZnVuY3Rpb24gcWEoZSx0LG4scixpKXt2YXIgbz1lLmNoaWxkcmVuO2lmKG8ubGVuZ3RoKXt2YXIgYT1vWzBdO2lmKDE9PT1vLmxlbmd0aCYmYS5mb3ImJlwidGVtcGxhdGVcIiE9PWEudGFnJiZcInNsb3RcIiE9PWEudGFnKXt2YXIgcz1uP3QubWF5YmVDb21wb25lbnQoYSk/XCIsMVwiOlwiLDBcIjpcIlwiO3JldHVyblwiXCIrKHJ8fFJhKShhLHQpK3N9dmFyIGM9bj9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXTtpZigxPT09aS50eXBlKXtpZihXYShpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIFdhKGUuYmxvY2spfSkpe249MjticmVha30odChpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZS5ibG9jayl9KSkmJihuPTEpfX1yZXR1cm4gbn0obyx0Lm1heWJlQ29tcG9uZW50KTowLHU9aXx8WmE7cmV0dXJuXCJbXCIrby5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSx0KX0pLmpvaW4oXCIsXCIpK1wiXVwiKyhjP1wiLFwiK2M6XCJcIil9fWZ1bmN0aW9uIFdhKGUpe3JldHVybiB2b2lkIDAhPT1lLmZvcnx8XCJ0ZW1wbGF0ZVwiPT09ZS50YWd8fFwic2xvdFwiPT09ZS50YWd9ZnVuY3Rpb24gWmEoZSx0KXtyZXR1cm4gMT09PWUudHlwZT9SYShlLHQpOjM9PT1lLnR5cGUmJmUuaXNDb21tZW50PyhyPWUsXCJfZShcIitKU09OLnN0cmluZ2lmeShyLnRleHQpK1wiKVwiKTpcIl92KFwiKygyPT09KG49ZSkudHlwZT9uLmV4cHJlc3Npb246WGEoSlNPTi5zdHJpbmdpZnkobi50ZXh0KSkpK1wiKVwiO3ZhciBuLHJ9ZnVuY3Rpb24gR2EoZSl7Zm9yKHZhciB0PVwiXCIsbj1cIlwiLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXSxvPVhhKGkudmFsdWUpO2kuZHluYW1pYz9uKz1pLm5hbWUrXCIsXCIrbytcIixcIjp0Kz0nXCInK2kubmFtZSsnXCI6JytvK1wiLFwifXJldHVybiB0PVwie1wiK3Quc2xpY2UoMCwtMSkrXCJ9XCIsbj9cIl9kKFwiK3QrXCIsW1wiK24uc2xpY2UoMCwtMSkrXCJdKVwiOnR9ZnVuY3Rpb24gWGEoZSl7cmV0dXJuIGUucmVwbGFjZSgvXFx1MjAyOC9nLFwiXFxcXHUyMDI4XCIpLnJlcGxhY2UoL1xcdTIwMjkvZyxcIlxcXFx1MjAyOVwiKX1uZXcgUmVnRXhwKFwiXFxcXGJcIitcImRvLGlmLGZvcixsZXQsbmV3LHRyeSx2YXIsY2FzZSxlbHNlLHdpdGgsYXdhaXQsYnJlYWssY2F0Y2gsY2xhc3MsY29uc3Qsc3VwZXIsdGhyb3csd2hpbGUseWllbGQsZGVsZXRlLGV4cG9ydCxpbXBvcnQscmV0dXJuLHN3aXRjaCxkZWZhdWx0LGV4dGVuZHMsZmluYWxseSxjb250aW51ZSxkZWJ1Z2dlcixmdW5jdGlvbixhcmd1bWVudHNcIi5zcGxpdChcIixcIikuam9pbihcIlxcXFxifFxcXFxiXCIpK1wiXFxcXGJcIik7ZnVuY3Rpb24gWWEoZSx0KXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbihlKX1jYXRjaChuKXtyZXR1cm4gdC5wdXNoKHtlcnI6bixjb2RlOmV9KSxTfX1mdW5jdGlvbiBRYShlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuLHIsaSl7KHI9QSh7fSxyKSkud2FybjtkZWxldGUgci53YXJuO3ZhciBvPXIuZGVsaW1pdGVycz9TdHJpbmcoci5kZWxpbWl0ZXJzKStuOm47aWYodFtvXSlyZXR1cm4gdFtvXTt2YXIgYT1lKG4scikscz17fSxjPVtdO3JldHVybiBzLnJlbmRlcj1ZYShhLnJlbmRlcixjKSxzLnN0YXRpY1JlbmRlckZucz1hLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIFlhKGUsYyl9KSx0W29dPXN9fXZhciBlcyx0cyxucz0oZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1sYShlLnRyaW0oKSx0KTshMSE9PXQub3B0aW1pemUmJmthKG4sdCk7dmFyIHI9UGEobix0KTtyZXR1cm57YXN0Om4scmVuZGVyOnIucmVuZGVyLHN0YXRpY1JlbmRlckZuczpyLnN0YXRpY1JlbmRlckZuc319LGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcj1PYmplY3QuY3JlYXRlKGUpLGk9W10sbz1bXTtpZihuKWZvcih2YXIgYSBpbiBuLm1vZHVsZXMmJihyLm1vZHVsZXM9KGUubW9kdWxlc3x8W10pLmNvbmNhdChuLm1vZHVsZXMpKSxuLmRpcmVjdGl2ZXMmJihyLmRpcmVjdGl2ZXM9QShPYmplY3QuY3JlYXRlKGUuZGlyZWN0aXZlc3x8bnVsbCksbi5kaXJlY3RpdmVzKSksbilcIm1vZHVsZXNcIiE9PWEmJlwiZGlyZWN0aXZlc1wiIT09YSYmKHJbYV09blthXSk7ci53YXJuPWZ1bmN0aW9uKGUsdCxuKXsobj9vOmkpLnB1c2goZSl9O3ZhciBzPWVzKHQudHJpbSgpLHIpO3JldHVybiBzLmVycm9ycz1pLHMudGlwcz1vLHN9cmV0dXJue2NvbXBpbGU6dCxjb21waWxlVG9GdW5jdGlvbnM6UWEodCl9fSkoQ2EpLHJzPShucy5jb21waWxlLG5zLmNvbXBpbGVUb0Z1bmN0aW9ucyk7ZnVuY3Rpb24gaXMoZSl7cmV0dXJuKHRzPXRzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpKS5pbm5lckhUTUw9ZT8nPGEgaHJlZj1cIlxcblwiLz4nOic8ZGl2IGE9XCJcXG5cIi8+Jyx0cy5pbm5lckhUTUwuaW5kZXhPZihcIiYjMTA7XCIpPjB9dmFyIG9zPSEheiYmaXMoITEpLGFzPSEheiYmaXMoITApLHNzPWcoZnVuY3Rpb24oZSl7dmFyIHQ9WW4oZSk7cmV0dXJuIHQmJnQuaW5uZXJIVE1MfSksY3M9d24ucHJvdG90eXBlLiRtb3VudDt3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7aWYoKGU9ZSYmWW4oZSkpPT09ZG9jdW1lbnQuYm9keXx8ZT09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudClyZXR1cm4gdGhpczt2YXIgbj10aGlzLiRvcHRpb25zO2lmKCFuLnJlbmRlcil7dmFyIHI9bi50ZW1wbGF0ZTtpZihyKWlmKFwic3RyaW5nXCI9PXR5cGVvZiByKVwiI1wiPT09ci5jaGFyQXQoMCkmJihyPXNzKHIpKTtlbHNle2lmKCFyLm5vZGVUeXBlKXJldHVybiB0aGlzO3I9ci5pbm5lckhUTUx9ZWxzZSBlJiYocj1mdW5jdGlvbihlKXtpZihlLm91dGVySFRNTClyZXR1cm4gZS5vdXRlckhUTUw7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtyZXR1cm4gdC5hcHBlbmRDaGlsZChlLmNsb25lTm9kZSghMCkpLHQuaW5uZXJIVE1MfShlKSk7aWYocil7dmFyIGk9cnMocix7b3V0cHV0U291cmNlUmFuZ2U6ITEsc2hvdWxkRGVjb2RlTmV3bGluZXM6b3Msc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOmFzLGRlbGltaXRlcnM6bi5kZWxpbWl0ZXJzLGNvbW1lbnRzOm4uY29tbWVudHN9LHRoaXMpLG89aS5yZW5kZXIsYT1pLnN0YXRpY1JlbmRlckZucztuLnJlbmRlcj1vLG4uc3RhdGljUmVuZGVyRm5zPWF9fXJldHVybiBjcy5jYWxsKHRoaXMsZSx0KX0sd24uY29tcGlsZT1ycyxtb2R1bGUuZXhwb3J0cz13bjsiLCJtb2R1bGUuZXhwb3J0cyA9IHdpbmRvd1tcImpRdWVyeVwiXTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvKipcbiAqIENvcHlyaWdodCBzaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogUHJlc3RhU2hvcCBpcyBhbiBJbnRlcm5hdGlvbmFsIFJlZ2lzdGVyZWQgVHJhZGVtYXJrICYgUHJvcGVydHkgb2YgUHJlc3RhU2hvcCBTQVxuICpcbiAqIE5PVElDRSBPRiBMSUNFTlNFXG4gKlxuICogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSBPcGVuIFNvZnR3YXJlIExpY2Vuc2UgKE9TTCAzLjApXG4gKiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCB0aGlzIHBhY2thZ2UgaW4gdGhlIGZpbGUgTElDRU5TRS5tZC5cbiAqIEl0IGlzIGFsc28gYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoaXMgVVJMOlxuICogaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9PU0wtMy4wXG4gKiBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZiB0aGUgbGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0b1xuICogb2J0YWluIGl0IHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViLCBwbGVhc2Ugc2VuZCBhbiBlbWFpbFxuICogdG8gbGljZW5zZUBwcmVzdGFzaG9wLmNvbSBzbyB3ZSBjYW4gc2VuZCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LlxuICpcbiAqIERJU0NMQUlNRVJcbiAqXG4gKiBEbyBub3QgZWRpdCBvciBhZGQgdG8gdGhpcyBmaWxlIGlmIHlvdSB3aXNoIHRvIHVwZ3JhZGUgUHJlc3RhU2hvcCB0byBuZXdlclxuICogdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IHdpc2ggdG8gY3VzdG9taXplIFByZXN0YVNob3AgZm9yIHlvdXJcbiAqIG5lZWRzIHBsZWFzZSByZWZlciB0byBodHRwczovL2RldmRvY3MucHJlc3Rhc2hvcC5jb20vIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBhdXRob3IgICAgUHJlc3RhU2hvcCBTQSBhbmQgQ29udHJpYnV0b3JzIDxjb250YWN0QHByZXN0YXNob3AuY29tPlxuICogQGNvcHlyaWdodCBTaW5jZSAyMDA3IFByZXN0YVNob3AgU0EgYW5kIENvbnRyaWJ1dG9yc1xuICogQGxpY2Vuc2UgICBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL09TTC0zLjAgT3BlbiBTb2Z0d2FyZSBMaWNlbnNlIChPU0wgMy4wKVxuICovXG5cbmltcG9ydCBHcmlkIGZyb20gJ0Bjb21wb25lbnRzL2dyaWQvZ3JpZCc7XG5pbXBvcnQgRmlsdGVyc1Jlc2V0RXh0ZW5zaW9uIGZyb20gJ0Bjb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2ZpbHRlcnMtcmVzZXQtZXh0ZW5zaW9uJztcbmltcG9ydCBTb3J0aW5nRXh0ZW5zaW9uIGZyb20gJ0Bjb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL3NvcnRpbmctZXh0ZW5zaW9uJztcbmltcG9ydCBFeHBvcnRUb1NxbE1hbmFnZXJFeHRlbnNpb24gZnJvbSAnQGNvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vZXhwb3J0LXRvLXNxbC1tYW5hZ2VyLWV4dGVuc2lvbic7XG5pbXBvcnQgUmVsb2FkTGlzdEV4dGVuc2lvbiBmcm9tICdAY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9yZWxvYWQtbGlzdC1leHRlbnNpb24nO1xuaW1wb3J0IEJ1bGtBY3Rpb25DaGVja2JveEV4dGVuc2lvbiBmcm9tICdAY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9idWxrLWFjdGlvbi1jaGVja2JveC1leHRlbnNpb24nO1xuaW1wb3J0IFN1Ym1pdEJ1bGtFeHRlbnNpb24gZnJvbSAnQGNvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vc3VibWl0LWJ1bGstYWN0aW9uLWV4dGVuc2lvbic7XG5pbXBvcnQgU3VibWl0Um93QWN0aW9uRXh0ZW5zaW9uIGZyb20gJ0Bjb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2FjdGlvbi9yb3cvc3VibWl0LXJvdy1hY3Rpb24tZXh0ZW5zaW9uJztcbmltcG9ydCBMaW5rUm93QWN0aW9uRXh0ZW5zaW9uIGZyb20gJ0Bjb21wb25lbnRzL2dyaWQvZXh0ZW5zaW9uL2xpbmstcm93LWFjdGlvbi1leHRlbnNpb24nO1xuaW1wb3J0IENhdGVnb3J5UG9zaXRpb25FeHRlbnNpb24gZnJvbSAnQGNvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vY29sdW1uL2NhdGFsb2cvY2F0ZWdvcnktcG9zaXRpb24tZXh0ZW5zaW9uJztcbmltcG9ydCBBc3luY1RvZ2dsZUNvbHVtbkV4dGVuc2lvbiBmcm9tICdAY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9jb2x1bW4vY29tbW9uL2FzeW5jLXRvZ2dsZS1jb2x1bW4tZXh0ZW5zaW9uJztcbmltcG9ydCBEZWxldGVDYXRlZ29yeVJvd0FjdGlvbkV4dGVuc2lvblxuICBmcm9tICdAY29tcG9uZW50cy9ncmlkL2V4dGVuc2lvbi9hY3Rpb24vcm93L2NhdGVnb3J5L2RlbGV0ZS1jYXRlZ29yeS1yb3ctYWN0aW9uLWV4dGVuc2lvbic7XG5pbXBvcnQgRGVsZXRlQ2F0ZWdvcmllc0J1bGtBY3Rpb25FeHRlbnNpb25cbiAgZnJvbSAnQGNvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vYWN0aW9uL2J1bGsvY2F0ZWdvcnkvZGVsZXRlLWNhdGVnb3JpZXMtYnVsay1hY3Rpb24tZXh0ZW5zaW9uJztcbmltcG9ydCBDaG9pY2VUYWJsZSBmcm9tICdAY29tcG9uZW50cy9jaG9pY2UtdGFibGUnO1xuaW1wb3J0IHRleHRUb0xpbmtSZXdyaXRlQ29waWVyIGZyb20gJ0Bjb21wb25lbnRzL3RleHQtdG8tbGluay1yZXdyaXRlLWNvcGllcic7XG5pbXBvcnQgQ2hvaWNlVHJlZSBmcm9tICdAY29tcG9uZW50cy9mb3JtL2Nob2ljZS10cmVlJztcbmltcG9ydCBGb3JtU3VibWl0QnV0dG9uIGZyb20gJ0Bjb21wb25lbnRzL2Zvcm0tc3VibWl0LWJ1dHRvbic7XG5pbXBvcnQgRmlsdGVyc1N1Ym1pdEJ1dHRvbkVuYWJsZXJFeHRlbnNpb25cbiAgZnJvbSAnQGNvbXBvbmVudHMvZ3JpZC9leHRlbnNpb24vZmlsdGVycy1zdWJtaXQtYnV0dG9uLWVuYWJsZXItZXh0ZW5zaW9uJztcbmltcG9ydCBTaG93Y2FzZUNhcmQgZnJvbSAnQGNvbXBvbmVudHMvc2hvd2Nhc2UtY2FyZC9zaG93Y2FzZS1jYXJkJztcbmltcG9ydCBTaG93Y2FzZUNhcmRDbG9zZUV4dGVuc2lvbiBmcm9tICdAY29tcG9uZW50cy9zaG93Y2FzZS1jYXJkL2V4dGVuc2lvbi9zaG93Y2FzZS1jYXJkLWNsb3NlLWV4dGVuc2lvbic7XG5pbXBvcnQgVGV4dFdpdGhSZWNvbW1lbmRlZExlbmd0aENvdW50ZXIgZnJvbSAnQGNvbXBvbmVudHMvZm9ybS90ZXh0LXdpdGgtcmVjb21tZW5kZWQtbGVuZ3RoLWNvdW50ZXInO1xuaW1wb3J0IFNlcnAgZnJvbSAnQGFwcC91dGlscy9zZXJwL2luZGV4JztcblxuY29uc3QgeyR9ID0gd2luZG93O1xuXG4kKCgpID0+IHtcbiAgY29uc3QgY2F0ZWdvcmllc0dyaWQgPSBuZXcgR3JpZCgnY2F0ZWdvcnknKTtcblxuICBjYXRlZ29yaWVzR3JpZC5hZGRFeHRlbnNpb24obmV3IEZpbHRlcnNSZXNldEV4dGVuc2lvbigpKTtcbiAgY2F0ZWdvcmllc0dyaWQuYWRkRXh0ZW5zaW9uKG5ldyBTb3J0aW5nRXh0ZW5zaW9uKCkpO1xuICBjYXRlZ29yaWVzR3JpZC5hZGRFeHRlbnNpb24obmV3IENhdGVnb3J5UG9zaXRpb25FeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgRXhwb3J0VG9TcWxNYW5hZ2VyRXh0ZW5zaW9uKCkpO1xuICBjYXRlZ29yaWVzR3JpZC5hZGRFeHRlbnNpb24obmV3IFJlbG9hZExpc3RFeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgQnVsa0FjdGlvbkNoZWNrYm94RXh0ZW5zaW9uKCkpO1xuICBjYXRlZ29yaWVzR3JpZC5hZGRFeHRlbnNpb24obmV3IFN1Ym1pdEJ1bGtFeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgU3VibWl0Um93QWN0aW9uRXh0ZW5zaW9uKCkpO1xuICBjYXRlZ29yaWVzR3JpZC5hZGRFeHRlbnNpb24obmV3IExpbmtSb3dBY3Rpb25FeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgQXN5bmNUb2dnbGVDb2x1bW5FeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgRGVsZXRlQ2F0ZWdvcnlSb3dBY3Rpb25FeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgRGVsZXRlQ2F0ZWdvcmllc0J1bGtBY3Rpb25FeHRlbnNpb24oKSk7XG4gIGNhdGVnb3JpZXNHcmlkLmFkZEV4dGVuc2lvbihuZXcgRmlsdGVyc1N1Ym1pdEJ1dHRvbkVuYWJsZXJFeHRlbnNpb24oKSk7XG5cbiAgY29uc3Qgc2hvd2Nhc2VDYXJkID0gbmV3IFNob3djYXNlQ2FyZCgnY2F0ZWdvcmllc1Nob3djYXNlQ2FyZCcpO1xuICBzaG93Y2FzZUNhcmQuYWRkRXh0ZW5zaW9uKG5ldyBTaG93Y2FzZUNhcmRDbG9zZUV4dGVuc2lvbigpKTtcblxuICB3aW5kb3cucHJlc3Rhc2hvcC5jb21wb25lbnQuaW5pdENvbXBvbmVudHMoXG4gICAgW1xuICAgICAgJ1RyYW5zbGF0YWJsZUZpZWxkJyxcbiAgICAgICdUaW55TUNFRWRpdG9yJyxcbiAgICAgICdUcmFuc2xhdGFibGVJbnB1dCcsXG4gICAgXSxcbiAgKTtcblxuICBjb25zdCB0cmFuc2xhdG9ySW5wdXQgPSB3aW5kb3cucHJlc3Rhc2hvcC5pbnN0YW5jZS50cmFuc2xhdGFibGVJbnB1dDtcbiAgbmV3IENob2ljZVRhYmxlKCk7XG4gIG5ldyBUZXh0V2l0aFJlY29tbWVuZGVkTGVuZ3RoQ291bnRlcigpO1xuXG4gIHRleHRUb0xpbmtSZXdyaXRlQ29waWVyKHtcbiAgICBzb3VyY2VFbGVtZW50U2VsZWN0b3I6ICdpbnB1dFtuYW1lXj1cImNhdGVnb3J5W25hbWVdXCJdJyxcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlbiAqL1xuICAgIGRlc3RpbmF0aW9uRWxlbWVudFNlbGVjdG9yOiBgJHt0cmFuc2xhdG9ySW5wdXQubG9jYWxlSW5wdXRTZWxlY3Rvcn06bm90KC5kLW5vbmUpIGlucHV0W25hbWVePVwiY2F0ZWdvcnlbbGlua19yZXdyaXRlXVwiXWAsXG4gIH0pO1xuXG4gIHRleHRUb0xpbmtSZXdyaXRlQ29waWVyKHtcbiAgICBzb3VyY2VFbGVtZW50U2VsZWN0b3I6ICdpbnB1dFtuYW1lXj1cInJvb3RfY2F0ZWdvcnlbbmFtZV1cIl0nLFxuICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuICovXG4gICAgZGVzdGluYXRpb25FbGVtZW50U2VsZWN0b3I6IGAke3RyYW5zbGF0b3JJbnB1dC5sb2NhbGVJbnB1dFNlbGVjdG9yfTpub3QoLmQtbm9uZSkgaW5wdXRbbmFtZV49XCJyb290X2NhdGVnb3J5W2xpbmtfcmV3cml0ZV1cIl1gLFxuICB9KTtcblxuICBuZXcgU2VycChcbiAgICB7XG4gICAgICBjb250YWluZXI6ICcjc2VycC1hcHAnLFxuICAgICAgZGVmYXVsdFRpdGxlOiAnaW5wdXRbbmFtZV49XCJjYXRlZ29yeVtuYW1lXVwiXScsXG4gICAgICB3YXRjaGVkVGl0bGU6ICdpbnB1dFtuYW1lXj1cImNhdGVnb3J5W21ldGFfdGl0bGVdXCJdJyxcbiAgICAgIGRlZmF1bHREZXNjcmlwdGlvbjogJ3RleHRhcmVhW25hbWVePVwiY2F0ZWdvcnlbZGVzY3JpcHRpb25dXCJdJyxcbiAgICAgIHdhdGNoZWREZXNjcmlwdGlvbjogJ3RleHRhcmVhW25hbWVePVwiY2F0ZWdvcnlbbWV0YV9kZXNjcmlwdGlvbl1cIl0nLFxuICAgICAgd2F0Y2hlZE1ldGFVcmw6ICdpbnB1dFtuYW1lXj1cImNhdGVnb3J5W2xpbmtfcmV3cml0ZV1cIl0nLFxuICAgICAgbXVsdGlMYW5ndWFnZUlucHV0OiBgJHt0cmFuc2xhdG9ySW5wdXQubG9jYWxlSW5wdXRTZWxlY3Rvcn06bm90KC5kLW5vbmUpYCxcbiAgICAgIG11bHRpTGFuZ3VhZ2VJdGVtOiB0cmFuc2xhdG9ySW5wdXQubG9jYWxlSXRlbVNlbGVjdG9yLFxuICAgIH0sXG4gICAgJCgnI3NlcnAtYXBwJykuZGF0YSgnY2F0ZWdvcnktdXJsJyksXG4gICk7XG5cbiAgbmV3IEZvcm1TdWJtaXRCdXR0b24oKTtcblxuICBuZXcgd2luZG93LnByZXN0YXNob3AuY29tcG9uZW50LlRhZ2dhYmxlRmllbGQoe1xuICAgIHRva2VuRmllbGRTZWxlY3RvcjogJ2lucHV0LmpzLXRhZ2dhYmxlLWZpZWxkJyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBjcmVhdGVUb2tlbnNPbkJsdXI6IHRydWUsXG4gICAgfSxcbiAgfSk7XG5cbiAgbmV3IENob2ljZVRyZWUoJyNjYXRlZ29yeV9pZF9wYXJlbnQnKTtcbiAgbmV3IENob2ljZVRyZWUoJyNjYXRlZ29yeV9zaG9wX2Fzc29jaWF0aW9uJykuZW5hYmxlQXV0b0NoZWNrQ2hpbGRyZW4oKTtcblxuICBuZXcgQ2hvaWNlVHJlZSgnI3Jvb3RfY2F0ZWdvcnlfaWRfcGFyZW50Jyk7XG4gIG5ldyBDaG9pY2VUcmVlKCcjcm9vdF9jYXRlZ29yeV9zaG9wX2Fzc29jaWF0aW9uJykuZW5hYmxlQXV0b0NoZWNrQ2hpbGRyZW4oKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==

Youez - 2016 - github.com/yon3zu
LinuXploit