ibp-max 3.0.21 → 3.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/onesearch.js CHANGED
@@ -1,2 +1 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var l=t();for(var a in l)("object"==typeof exports?exports:e)[a]=l[a]}}(self,(()=>(()=>{var e={803:()=>{var e;(e=jQuery).fn.extend({OneSearch:function(t){var l,a=e.extend({ServiceUrl:"",OneSearchName:"",OneSearchDS:null,MinCharLimit:3,EnableCurrentLocation:!1,EnablePreList:!1,AutoSelectFirstItem:!1,ResultLimit:10,EnableTouch:!1,DataSource:null,DataSourceControl:null,ContainerCss:"",ItemCss:"",HighlightItemCss:"",Region:"US",Locale:"NONE",HelpText:"",AnimatePlaceholderText:!1,MultiSelect:!1,MultiSelectBoxId:"",MultiSelectShowHelpText:!0,MultiKeywordDelimiter:"",LoadingImageUrl:"",ParentContainer:"",BeforeCall:null,AfterCall:null,OnSuccess:null,OnError:null,OnSelect:null,OnTextChange:null,OnSearch:null,OnIncrementalSearch:null,OnMultiSelectRemove:null,SearchMode:"Database",TestMode:!1,StickyMode:!1,EnableCategoryView:!1},t),n=null,r=null,o=null,s=null,c="",d="",u=null,h=null,p=[],m=0,v=!1,f=!1;return this.each((function(){!function(l){if(a.StickyMode&&!a.TestMode&&(a.TestMode=!0),n=l,a.AutoSelectFirstItem&&(r=e('input[id="'+e(n).attr("id")+'_AUTO_ITEM"]')),e(n).attr("autocomplete","nope"),e(n).attr("name",e(n).attr("id").replace(/\$/gi,"_")+(new Date).valueOf()),window.onpopstate=function(t){e(n).attr("name",e(n).attr("id").replace(/\$/gi,"_")+(new Date).valueOf())},o=e("<div>").attr("id",e(n).attr("id")+"_OneSearch").css("position",a.EnableTouch?"relative":"absolute").css("top",L(e(n))).css("width",b(e(n))).css("display","none").addClass(a.ContainerCss).html(a.HelpText),""!=a.ParentContainer?e("#"+a.ParentContainer).append(o):o.insertAfter(e(n)),e(n).closest("div").click((function(t){"block"==e(n).css("display")&&""!=e(n).html()||"CloseArea"!=t.target.className&&(a.EnablePreList||setTimeout((function(){e(n).focus()}),500))})),a.MultiSelect?(""!=a.MultiSelectBoxId&&(s=e("#"+a.MultiSelectBoxId)),null!=s&&""!=a.MultiSelectBoxCss&&s.addClass(a.MultiSelectBoxCss),a.MultiSelect&&e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){if(""!=e(this).val()){var t={},l=e(this).attr("id").split("_");t.rt=l[l.length-2],t.n=l[l.length-1],"True"==e(this).attr("data-label-lookup")?C(t.rt+"|"+t.n+"::"+e(this).val(),(function(l){var a="",i="";Array.isArray(l)&&(a=l.map((function(e){return e.l})).join(";"),i=l.map((function(e){return e.k})).join(";")),I(t,i,!0,a),e(n).val("")})):I(t,e(this).val(),!0)}}))):a.MultiSelect||e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){const t=e(this),l=t.val();if(l&&""!==l.trim()&&"True"===t.attr("data-label-lookup")){const e={},a=t.attr("id").split("_");e.rt=a[a.length-2],e.n=a[a.length-1],C(e.rt+"|"+e.n+"::"+l,(function(t){if(Array.isArray(t)&&t.length>0){const l=t[0].l,a=t[0].k;I(e,a,!0,l)}}))}})),a.EnableCurrentLocation){var i=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(),u=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(),S=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val();void 0!==i&&void 0!==u&&void 0!==S&&""!=i&&""!=u&&""!=S&&(f=!0)}e(n).keydown((function(t){switch(t.keyCode){case 9:case 13:a.AutoSelectFirstItem&&e(n).val().length>0?(m>0?y():O(0,!1,!0),v=!1):(y(),v=!1);break;case 38:x(-1);break;case 39:a.AutoSelectFirstItem&&(O(0,!1,!0),e(o).hide(),e(r).val(""));break;case 40:x(1);break;case 27:e(o).hide(),h=null,p=[],m=0}})),e(n).keypress((function(t){parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),13==t.keyCode&&t.preventDefault()})),e(n).keyup((function(t){27!=t.keyCode&&(8!=t.keyCode&&46!=t.keyCode&&88!=t.keyCode&&86!=t.keyCode||0!=e(n).val().length||(I(null,null),a.AutoSelectFirstItem&&r.val("")),13==t.keyCode&&e(n).val().length>0&&!v?a.OnSearch&&a.OnSearch():13==t.keyCode&&e(n).val().length>0&&a.AutoSelectFirstItem?m>0?y():O(0,!1,!0):a.OnIncrementalSearch&&a.OnIncrementalSearch(),e(n).val().length>=a.MinCharLimit||a.EnablePreList||a.EnableCurrentLocation?e(o).show():e(o).hide(),13==t.keyCode&&e(o).hide(),e(n).val().indexOf(c)<0&&e(o).html(""),8!=t.keyCode&&46!=t.keyCode||(c="",d=""),c!=e(n).val()&&(a.OnTextChange&&a.OnTextChange(e(n).val()),I(null,null),c=e(n).val(),"none"!=e(o).css("display")&&(""!=a.LoadingImageUrl&&e(n).val().length>=a.MinCharLimit&&e(o).html('<img src="'+a.LoadingImageUrl+'" />'),setTimeout((function(){C()}),500))))})),e(n).focus((function(){if(parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),a.MultiSelect)if(s.find("a.agora-onesearch-multi-sel-item-close").length>0){var l=e("<div>").html(e(s.html()));e(l).find("a.agora-onesearch-multi-sel-item-close").each((function(){e(this).attr("onclick","javascript:$('#"+t.MultiSelectBoxId+" #"+e(this).attr("id")+"').trigger('click')")})),a.MultiSelectShowHelpText?a.HelpText='<div style="padding:7px"><font style="color:red">You have already selected</font>'+(a.StickyMode?'<a class="CloseArea" href="javascript:void(0);" title="Click here to hide selected filters." onclick="$(\'#'+e(n).attr("id")+"_OneSearch').hide();\">Close</a>":"")+'<hr style="margin:0px 0px 7px 0px" />'+l.html()+"</div>":a.EnableCurrentLocation&&e(l).append(g())}else a.HelpText="",a.EnableCurrentLocation&&(0==e(o).find("[data-location-search]").length&&e(o).append(g()),e(o).show());a.EnablePreList?(C(),e(o).show()):!a.MultiSelect&&a.EnableCurrentLocation?(0==e(o).find("[data-location-search]").length&&e(o).append(g()),console.log(g()),e(o).show()):""!=a.HelpText&&""==e(n).val()&&(e(o).html(a.HelpText),parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),e(o).show())})),e(n).blur((function(){a.AutoSelectFirstItem&&e(n).val().length>0&&!a.MultiSelect&&setTimeout((function(){var t=e(n).data("is-manual-select");void 0!==t&&0!=t||O(0,!0,!0),e(n).data("is-manual-select",!1)}),50),setTimeout((function(){a.TestMode?(e(o).find("[data-location-search]").length>0&&a.TestMode||a.StickyMode&&0==e(o).find("div.agora-onesearch-multi-sel-item-cont").length)&&(e(o).html(""),e(o).hide(),e(o).parent().removeClass("is-dirty")):(e(o).html(""),e(o).hide(),0==e(n).val().length&&e(o).parent().removeClass("is-dirty"))}),300)})),C(),1==a.AnimatePlaceholderText&&""==e(n).val()&&AnimatePlaceholderText(e(n),"",0)}(e(this))}));function g(){return a.EnableCurrentLocation&&(document.location.protocol.toLowerCase().indexOf("https")>-1||document.location.hostname.indexOf("localhost")>-1)?e("<a>").html('<i class="aga aga-location"></i>'+e(n).attr("EnableCurrentLocationLabel")).css("display","block").css("width","100%").css("padding","3px").css("color","red").attr("idx",-1).addClass("get-my-direction").attr("data-location-search","").mouseover((function(){e(this).css("background-color:red"),e(this).addClass(a.HighlightItemCss)})).click((function(){S(e(this).attr("idx"))})).on("tap",(function(){S(e(this).attr("idx"))})).mouseout((function(){e(this).removeClass(a.HighlightItemCss)})):null}function S(t){navigator.geolocation&&navigator.geolocation.getCurrentPosition((function(t){e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(t.coords.latitude),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(t.coords.longitude),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val(null!=e(n).attr("DefaultSearchRadius")&&"0"!=e(n).attr("DefaultSearchRadius")?e(n).attr("DefaultSearchRadius"):"5"),f=!0,a.OnSelect&&a.OnSelect({k:t.coords.latitude+"|"+t.coords.longitude,n:"IDCLATITUDE|IDCLONGITUDE",rt:"LOCATION"}),a.OnSuccess&&a.OnSuccess()})),O(t)}function C(t,s){(d!=e(n).val()||a.EnablePreList||null!=t)&&(null!=u&&null==l&&u.abort(),l=null!=t?t:null,e(n).val().length<a.MinCharLimit?c="":d=e(n).val(),null==t&&!a.EnablePreList&&e(n).val().length<a.MinCharLimit||(a.AutoSelectFirstItem&&(e(r).val(""),e(n).data("is-manual-select",!1)),_searchParam=e(n).val().length<a.MinCharLimit?"":e(n).val(),_searchKeyword=(e(n).val().length<a.MinCharLimit?"":e(n).val().replace(/#/g,"%23"))+"&t="+(new Date).getTime(),null!=t&&t.length>0&&(_searchParam=_searchKeyword="LOOKUP_LABEL::"+t),u=e.ajax({type:"POST",url:a.ServiceUrl+"?Keyword="+_searchKeyword,data:{Keyword:_searchParam,SearchMode:a.SearchMode,OneSearchName:a.OneSearchName,Region:a.Region,Locale:a.Locale,AdditionalWhere:e(n).attr("AdditionalWhere")},dataType:"json",success:function(l){if(null==t||null==s)if(h=l,m=0,e(o).html(""),null!=l&&0!=l.length){var r="",c="",d=null,u="",p="";for(i=0;i<l.length;i++){if(r=w(l[i].l,e(n).val()),null!=(c=M(a.OneSearchDS,l[i].rt,l[i].n))&&null!=c.ItemTemplate&&""!=c.ItemTemplate)r=(r=c.ItemTemplate.replace("{$l}",w(l[i].l,e(n).val()))).replace("{$d}",l[i].d);else if(null!=c&&c.ItemTemplates.length>0)for(j=0;j<c.ItemTemplates.length;j++)c.ItemTemplates[j].Locale==a.Locale&&(r=(r=c.ItemTemplates[j].Template.replace("{$l}",w(l[i].l,e(n).val()))).Template.replace("{$d}",l[i].d));d=e("<a>").html(r).css("display","block").css("width","100%").css("padding","3px").css("text-decoration","none").css("color","black").attr("idx",i).mouseover((function(){e(this).addClass(a.HighlightItemCss)})).mousedown((function(){e(n).data("is-manual-select",!0)})).click((function(){O(e(this).attr("idx"))})).on("tap",(function(){e(n).data("is-manual-select",!0),O(e(this).attr("idx"))})).mouseout((function(){e(this).removeClass(a.HighlightItemCss)})),0==i&&a.AutoSelectFirstItem&&T(i),a.EnableCategoryView?(p!=l[i].g&&((u=e("<div>").addClass("OneSearchBox-category-"+l[i].g)).append(e("<span>").html(l[i].g)),p=l[i].g),u.append(d),e(o).append(u),0==i&&e(o)[i].className.includes("OneSearchBox-")&&(e(o)[i].className=e(o)[i].className.replace(/\bOneSearchBox-[A-Za-z]*\b/g,"")),e(o).addClass("OneSearchBox-"+l[i].g)):e(o).append(d)}}else e(o).hide();else s(l)},statusCode:{404:function(){console.log("Service (agoraOneSearch) not found!")}}})))}function y(){if(!(null==h||h.length<m-1||m<=0)){var t,l="",i=M(a.OneSearchDS,h[m-1].rt,h[m-1].n);null!=i&&""!=i.ItemTemplate&&(l=null!=i.Selector&&null!=i.Selector&&"k"==i.Selector?h[m-1].k:h[m-1].l),t=h[m-1].l,a.MultiSelect?e(n).val(""):e(n).val(t),c=e(n).val(),I(h[m-1],l),a.AutoSelectFirstItem&&T(m-1),a.OnSelect&&a.OnSelect(h[m-1]),m=0,a.TestMode||e(o).html("")}}function O(t,l,i){var s="",d="";if(null!=l&&null!=l||(l=!1),null!=i&&null!=i||(i=!1),void 0!==h&&null!=h&&0!=h.length){var u=M(a.OneSearchDS,h[t].rt,h[t].n);null!=u&&""!=u.ItemTemplate&&(d=null!=u.Selector&&null!=u.Selector&&"k"==u.Selector?h[t].k:h[t].l),s=h[t].l,1!=i||s.toLowerCase().startsWith(e(n).val().toLowerCase())?(a.MultiSelect?(e(n).val(""),a.AutoSelectFirstItem&&e(r).val("")):(null!=u&&1!=u.SkipSelect?e(n).val(s):e(n).val(""),a.AutoSelectFirstItem&&e(r).val("")),c=e(n).val(),t>=0&&f&&(e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(""),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(""),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val(""),e("#draw_search").click()),null!=u&&1!=u.SkipSelect&&I(h[t],d),a.OnSelect&&a.OnSelect(h[t]),a.TestMode||l||e(o).html(""),a.MultiSelect&&(a.EnablePreList||setTimeout((function(){e(n).focus()}),200))):e(r).val("")}}function T(t){var l="";if(null!=e(n).val()&&""!=e(n).val()&&void 0!==h&&null!=h&&0!=h.length){var i=M(a.OneSearchDS,h[t].rt,h[t].n);if(null!=i&&""!=i.ItemTemplate&&(null!=i.Selector&&null!=i.Selector&&"k"==i.Selector?h[t].k:h[t].l),(l=h[t].l).includes("<span")&&(l=l.replace(/<span[^>]*>.*?<\/span>/gi,"").trim()),l.toLowerCase().replace(/\,/g,"").startsWith(e(n).val().toLowerCase().replace(/\,/g,""))){var o=new RegExp(e(n).val(),"ig");e(r).val(l.replace(o,e(n).val())),c=e(n).val()}else e(r).val("")}}function I(t,l,r,o){if(a.MultiSelect){if(null==t)return;var c=e("#"+e(n).attr("id")+"_"+t.rt+"_"+t.n),d=u=l.split(";");if(null!=o&&null!=o)var u=o.split(";");var h=M(a.OneSearchDS,t.rt,t.n);for(i=0;i<u.length&&null!=h;i++)if(!(u[i].length<2)&&(-1==(";"+c.val().toLowerCase()+";").indexOf(";"+u[i].toLowerCase()+";")||r)){r||c.val(c.val()+";"+u[i]);var p=e("<div>").addClass("agora-onesearch-multi-sel-item-cont").attr("id","multiitem"+e(n).attr("id")+"_"+t.rt+"_"+t.n+u[i].replace(/\ /g,"_").replace(/\-/g,"_").replace(/[^A-z0-9]/g,"_")).append(e("<a>").addClass("agora-onesearch-multi-sel-item-close").attr("title","Click here to hide this area filter.").attr("id","multiitem_close_"+e(n).attr("id")+"_"+t.rt+"_"+t.n+u[i].replace(/\ /g,"_").replace(/\-/g,"_").replace(/[^A-z0-9]/g,"_")).attr("val",d[i]).html('<i class="aga aga-close"></i>').click((function(){_(e(this),t,e(this).attr("val"))}))).append(e("<a>").html(h.MultiItemTemplate.replace("{$l}",null!=t&&null!=t.l?t.l:u[i]).replace("{$d}",null!=t&&null!=t.d?t.d:u[i])));s.append(p)}!r&&a.OnMultiSelectRemove&&a.OnMultiSelectRemove()}else{const a=e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').is('[data-label-lookup="True"]');if(null==t)return;if(a&&o)e(n).val(o);else{if(e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){e(this).val("")})),null==t)return;e("#"+e(n).attr("id")+"_"+t.rt+"_"+t.n).val(l)}}}function _(t,l,i){var r=e("#"+e(n).attr("id")+"_"+l.rt+"_"+l.n);0!=r.val().indexOf(";")&&r.val(";"+r.val()),r.val(r.val().replace(";"+i,"")),e(t).parent().remove(),""!=r.val()&&0!=e(o).find("div.agora-onesearch-multi-sel-item-cont").length||(e(o).html(""),e(o).hide()),a.OnMultiSelectRemove&&a.OnMultiSelectRemove()}function x(t){v=!0,t>0?m<e(o).find("a").length&&m++:m>1&&m--,e(o).find("a").each((function(){e(this).removeClass(a.HighlightItemCss)})),e(o).find(a.EnableCategoryView?"a[idx="+m+"]":"a:nth-child("+m+")").addClass(a.HighlightItemCss)}function b(e){if(null==e||0==e.length)return 0;var t=e.width();return t+=parseInt(e.css("padding-left"),10)+parseInt(e.css("padding-right"),10),t+=parseInt(e.css("borderLeftWidth"),10)+parseInt(e.css("borderRightWidth"),10),""!=a.ParentContainer&&(t+=e.offset().left),t}function L(e){if(null==e||0==e.length)return 0;var t=e.height();return t+=parseInt(e.css("padding-top"),10)+parseInt(e.css("padding-bottom"),10),t+=parseInt(e.css("borderTopWidth"),10)+parseInt(e.css("borderBottomWidth"),10),t+=e.position().top,""!=a.ParentContainer&&(t+=e.offset().top),t}function M(e,t,l){if(null!=p[t+"_"+l])return p[t+"_"+l];for(k=0;k<e.RecordTypes.length;k++)for(j=0;e.RecordTypes[k].Name==t&&j<e.RecordTypes[k].Fields.length;j++)if(e.RecordTypes[k].Fields[j].Name==l)return p[t+"_"+l]=e.RecordTypes[k].Fields[j],e.RecordTypes[k].Fields[j];return null}function w(e,t){return e.replace(new RegExp("("+function(e){return(e+"").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1")}(t)+")","gi"),"<strong>$1</strong>")}}})}},t={};function l(a){var n=t[a];if(void 0!==n)return n.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,l),i.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{"use strict";l.r(a);l(803)})(),a})()));
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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S3dDc0osQ0FBV0QsR0FBVyxJQUFLLE1BQU8sc0JBQzFFLENBQ0osRyxHQ2h5QklFLEVBQTJCLENBQUMsRUFHaEMsU0FBU0MsRUFBb0JDLEdBRTVCLElBQUlDLEVBQWVILEVBQXlCRSxHQUM1QyxRQUFxQnRELElBQWpCdUQsRUFDSCxPQUFPQSxFQUFhOU4sUUFHckIsSUFBSUMsRUFBUzBOLEVBQXlCRSxHQUFZLENBR2pEN04sUUFBUyxDQUFDLEdBT1gsT0FIQStOLEVBQW9CRixHQUFVNU4sRUFBUUEsRUFBT0QsUUFBUzROLEdBRy9DM04sRUFBT0QsT0FDZixDQ3JCQTROLEVBQW9CN0gsRUFBSzlGLElBQ3hCLElBQUkrTixFQUFTL04sR0FBVUEsRUFBT2dPLFdBQzdCLElBQU9oTyxFQUFpQixRQUN4QixJQUFNLEVBRVAsT0FEQTJOLEVBQW9CN0MsRUFBRWlELEVBQVEsQ0FBRTVOLEVBQUc0TixJQUM1QkEsQ0FBTSxFQ0xkSixFQUFvQjdDLEVBQUksQ0FBQy9LLEVBQVNrTyxLQUNqQyxJQUFJLElBQUlsSCxLQUFPa0gsRUFDWE4sRUFBb0JPLEVBQUVELEVBQVlsSCxLQUFTNEcsRUFBb0JPLEVBQUVuTyxFQUFTZ0gsSUFDNUVvSCxPQUFPQyxlQUFlck8sRUFBU2dILEVBQUssQ0FBRXNILFlBQVksRUFBTUMsSUFBS0wsRUFBV2xILElBRTFFLEVDTkQ0RyxFQUFvQk8sRUFBSSxDQUFDakssRUFBS3NLLElBQVVKLE9BQU9LLFVBQVVDLGVBQWVDLEtBQUt6SyxFQUFLc0ssR0NDbEZaLEVBQW9CZ0IsRUFBSzVPLElBQ0gsb0JBQVg2TyxRQUEwQkEsT0FBT0MsYUFDMUNWLE9BQU9DLGVBQWVyTyxFQUFTNk8sT0FBT0MsWUFBYSxDQUFFakksTUFBTyxXQUU3RHVILE9BQU9DLGVBQWVyTyxFQUFTLGFBQWMsQ0FBRTZHLE9BQU8sR0FBTyxFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly8vLi4vLi4vQWdvcmEgNC4wL0lkY0dsb2JhbC5BZ29yYS5KYXZhU2NyaXB0LlBsdWdJbi9NYXhPbmVTZWFyY2guanMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovLy93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly8vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovLy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovLy93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSB7XG5cdFx0dmFyIGEgPSBmYWN0b3J5KCk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShzZWxmLCAoKSA9PiB7XG5yZXR1cm4gIiwi77u/KGZ1bmN0aW9uICgkKSB7XHJcblxyXG4gICAgLy9BdHRhY2ggdGhpcyBuZXcgbWV0aG9kIHRvIGpRdWVyeVxyXG4gICAgJC5mbi5leHRlbmQoe1xyXG5cclxuICAgICAgICAvL1RoaXMgaXMgd2hlcmUgeW91IHdyaXRlIHlvdXIgcGx1Z2luJ3MgbmFtZVxyXG4gICAgICAgIE9uZVNlYXJjaDogZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuXHJcbiAgICAgICAgICAgIC8vU2V0IHRoZSBkZWZhdWx0IHZhbHVlcywgdXNlIGNvbW1hIHRvIHNlcGFyYXRlIHRoZSBzZXR0aW5ncywgZXhhbXBsZTpcclxuICAgICAgICAgICAgdmFyIF9kZWZhdWx0cyA9IHtcclxuICAgICAgICAgICAgICAgIFNlcnZpY2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAgICAgT25lU2VhcmNoTmFtZTogJycsXHJcbiAgICAgICAgICAgICAgICBPbmVTZWFyY2hEUzogbnVsbCxcclxuICAgICAgICAgICAgICAgIE1pbkNoYXJMaW1pdDogMyxcclxuICAgICAgICAgICAgICAgIEVuYWJsZUN1cnJlbnRMb2NhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBFbmFibGVQcmVMaXN0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIEF1dG9TZWxlY3RGaXJzdEl0ZW06IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgUmVzdWx0TGltaXQ6IDEwLFxyXG4gICAgICAgICAgICAgICAgRW5hYmxlVG91Y2g6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgRGF0YVNvdXJjZTogbnVsbCxcclxuICAgICAgICAgICAgICAgIERhdGFTb3VyY2VDb250cm9sOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgQ29udGFpbmVyQ3NzOiAnJyxcclxuICAgICAgICAgICAgICAgIEl0ZW1Dc3M6ICcnLFxyXG4gICAgICAgICAgICAgICAgSGlnaGxpZ2h0SXRlbUNzczogJycsXHJcbiAgICAgICAgICAgICAgICBSZWdpb246ICdVUycsXHJcbiAgICAgICAgICAgICAgICBMb2NhbGU6ICdOT05FJyxcclxuICAgICAgICAgICAgICAgIEhlbHBUZXh0OiAnJyxcclxuICAgICAgICAgICAgICAgIEFuaW1hdGVQbGFjZWhvbGRlclRleHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgTXVsdGlTZWxlY3Q6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgTXVsdGlTZWxlY3RCb3hJZDogJycsXHJcbiAgICAgICAgICAgICAgICBNdWx0aVNlbGVjdFNob3dIZWxwVGV4dDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIE11bHRpS2V5d29yZERlbGltaXRlcjogJycsXHJcbiAgICAgICAgICAgICAgICBMb2FkaW5nSW1hZ2VVcmw6ICcnLFxyXG4gICAgICAgICAgICAgICAgUGFyZW50Q29udGFpbmVyOiAnJyxcclxuICAgICAgICAgICAgICAgIEJlZm9yZUNhbGw6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBBZnRlckNhbGw6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBPblN1Y2Nlc3M6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBPbkVycm9yOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgT25TZWxlY3Q6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBPblRleHRDaGFuZ2U6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBPblNlYXJjaDogbnVsbCxcclxuICAgICAgICAgICAgICAgIE9uSW5jcmVtZW50YWxTZWFyY2g6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBPbk11bHRpU2VsZWN0UmVtb3ZlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgU2VhcmNoTW9kZTogJ0RhdGFiYXNlJywgLy8gQ2FjaGUsIERhdGFiYXNlLCBTbWFydFxyXG4gICAgICAgICAgICAgICAgVGVzdE1vZGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgU3RpY2t5TW9kZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBFbmFibGVDYXRlZ29yeVZpZXc6IGZhbHNlXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBfb3B0aW9ucyA9ICQuZXh0ZW5kKF9kZWZhdWx0cywgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIHZhciBfdGFyZ2V0Q29udHJvbCA9IG51bGw7XHJcbiAgICAgICAgICAgIHZhciBfdGFyZ2V0QXV0b0NvbnRyb2wgPSBudWxsO1xyXG4gICAgICAgICAgICB2YXIgX29uZVNlYXJjaEJveCA9IG51bGw7XHJcbiAgICAgICAgICAgIHZhciBfTXVsdGlTZWxlY3RCb3ggPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdmFyIF9sYXN0S2V5d29yZCA9ICcnO1xyXG4gICAgICAgICAgICB2YXIgX2xhc3RTZWFyY2h3b3JkID0gJyc7XHJcblxyXG4gICAgICAgICAgICB2YXIgX3JlcXVlc3QgPSBudWxsO1xyXG4gICAgICAgICAgICB2YXIgX3Jlc3Bvc2VDYWNoZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHZhciBfaXRlbVRlcGxhdGVDYWNoZSA9IFtdO1xyXG4gICAgICAgICAgICB2YXIgX2hpZ2hsaWdodElkeCA9IDA7XHJcblxyXG4gICAgICAgICAgICB2YXIgX2lzT25BcnJvd1NlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB2YXIgX2lzTG9jYXRpb25TZXJhY2hFbmFibGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAvL0l0ZXJhdGUgb3ZlciB0aGUgY3VycmVudCBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50c1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIEluaXQoJCh0aGlzKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZnVuY3Rpb24gSW5pdChvYmopIHtcclxuICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5TdGlja3lNb2RlICYmICFfb3B0aW9ucy5UZXN0TW9kZSkgX29wdGlvbnMuVGVzdE1vZGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIF90YXJnZXRDb250cm9sID0gb2JqO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5BdXRvU2VsZWN0Rmlyc3RJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RhcmdldEF1dG9Db250cm9sID0gJCgnaW5wdXRbaWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfQVVUT19JVEVNXCJdJylcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyBkaXNhYmxlIGJyb3dzZXIgYXV0b2NvbXBsZXRlIG9uIGlucHV0XHJcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9TZWN1cml0eS9TZWN1cmluZ195b3VyX3NpdGUvVHVybmluZ19vZmZfZm9ybV9hdXRvY29tcGxldGlvblxyXG4gICAgICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignYXV0b2NvbXBsZXRlJywgJ25vcGUnKTtcclxuICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ25hbWUnLCAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpLnJlcGxhY2UoL1xcJC9naSwgJ18nKSArIChuZXcgRGF0ZSgpKS52YWx1ZU9mKCkpO1xyXG4gICAgICAgICAgICAgICAgd2luZG93Lm9ucG9wc3RhdGUgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAkKF90YXJnZXRDb250cm9sKS5hdHRyKCduYW1lJywgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKS5yZXBsYWNlKC9cXCQvZ2ksICdfJykgKyAobmV3IERhdGUoKSkudmFsdWVPZigpKTtcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICBfb25lU2VhcmNoQm94ID0gJCgnPGRpdj4nKVxyXG4gICAgICAgICAgICAgICAgICAgIC5hdHRyKCdpZCcsICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnX09uZVNlYXJjaCcpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNzcygncG9zaXRpb24nLCAoX29wdGlvbnMuRW5hYmxlVG91Y2ggPyAncmVsYXRpdmUnIDogJ2Fic29sdXRlJykpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNzcygndG9wJywgZ2V0VG90YWxIZWlnaHRPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKVxyXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoJ3dpZHRoJywgZ2V0VG90YWxXaWR0aE9mQ29udHJvbCgkKF90YXJnZXRDb250cm9sKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgLmNzcygnZGlzcGxheScsICdub25lJylcclxuICAgICAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoX29wdGlvbnMuQ29udGFpbmVyQ3NzKVxyXG4gICAgICAgICAgICAgICAgICAgIC5odG1sKF9vcHRpb25zLkhlbHBUZXh0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoX29wdGlvbnMuUGFyZW50Q29udGFpbmVyICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnIycgKyBfb3B0aW9ucy5QYXJlbnRDb250YWluZXIpLmFwcGVuZChfb25lU2VhcmNoQm94KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX29uZVNlYXJjaEJveC5pbnNlcnRBZnRlcigkKF90YXJnZXRDb250cm9sKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkuY2xvc2VzdCgnZGl2JykuY2xpY2soZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoJChfdGFyZ2V0Q29udHJvbCkuY3NzKCdkaXNwbGF5JykgPT0gJ2Jsb2NrJyAmJiAkKF90YXJnZXRDb250cm9sKS5odG1sKCkgIT0gJycpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuY2xhc3NOYW1lID09ICdDbG9zZUFyZWEnKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgLy9NZGxSZWxvYWRDb250cm9sU3RhdGUoJCh0aGlzKSwgJCh0aGlzKS5jbG9zZXN0KCdbZGF0YS1zZWFyY2hdJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX29wdGlvbnMuRW5hYmxlUHJlTGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLk11bHRpU2VsZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLk11bHRpU2VsZWN0Qm94SWQgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX011bHRpU2VsZWN0Qm94ID0gJCgnIycgKyBfb3B0aW9ucy5NdWx0aVNlbGVjdEJveElkKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoX011bHRpU2VsZWN0Qm94ICE9IG51bGwgJiYgX29wdGlvbnMuTXVsdGlTZWxlY3RCb3hDc3MgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgX011bHRpU2VsZWN0Qm94LmFkZENsYXNzKF9vcHRpb25zLk11bHRpU2VsZWN0Qm94Q3NzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlbG9hZE11bHRpU2VsZWN0T25Mb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWxvYWRTaW5nbGVTZWxlY3RPbkxvYWRGb3JEYXRhbG9va3VwKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy9jaGVjayBpcyBsb2NhdGlvbiBzZWFyY2ggZW5hYmxlZFxyXG4gICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLkVuYWJsZUN1cnJlbnRMb2NhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBsYXQgPSAkKCdpbnB1dFt0eXBlPVwiaGlkZGVuXCJdW2lkPVwiJyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnX0dQU19STEFUXCJdJykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxuZyA9ICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfR1BTX1JMT05HXCJdJykudmFsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJkcyA9ICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfR1BTX1JEU1wiXScpLnZhbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGxhdCkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIChsbmcpICE9ICd1bmRlZmluZWQnICYmIHR5cGVvZiAocmRzKSAhPSAndW5kZWZpbmVkJyAmJiBsYXQgIT0gJycgJiYgbG5nICE9ICcnICYmIHJkcyAhPSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaXNMb2NhdGlvblNlcmFjaEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLmtleWRvd24oZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDkgLyogdGFiICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDEzIC8qIGVudGVyICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLkF1dG9TZWxlY3RGaXJzdEl0ZW0gJiYgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaGlnaGxpZ2h0SWR4ID4gMCkgc2VsZWN0SGlnaGxpZ2h0ZWRJdGVtKCk7IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKDAsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lzT25BcnJvd1NlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RIaWdobGlnaHRlZEl0ZW0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXNPbkFycm93U2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vY2FzZSAzNyAvKiBsZWZ0ICovOlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM4IC8qIHVwICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0SXRlbSgtMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOSAvKiByaWdodCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5BdXRvU2VsZWN0Rmlyc3RJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0SXRlbSgwLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfdGFyZ2V0QXV0b0NvbnRyb2wpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0MCAvKiBkb3duICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0SXRlbSgxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI3IC8qIGVzY2FwZSAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3Jlc3Bvc2VDYWNoZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbVRlcGxhdGVDYWNoZSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hpZ2hsaWdodElkeCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLmtleXByZXNzKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KF9vbmVTZWFyY2hCb3guY3NzKCd3aWR0aCcpKSAhPSBnZXRUb3RhbFdpZHRoT2ZDb250cm9sKCQoX3RhcmdldENvbnRyb2wpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfb25lU2VhcmNoQm94LmNzcygnd2lkdGgnLCBnZXRUb3RhbFdpZHRoT2ZDb250cm9sKCQoX3RhcmdldENvbnRyb2wpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludChfb25lU2VhcmNoQm94LmNzcygndG9wJykpICE9IGdldFRvdGFsSGVpZ2h0T2ZDb250cm9sKCQoX3RhcmdldENvbnRyb2wpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfb25lU2VhcmNoQm94LmNzcygndG9wJywgZ2V0VG90YWxIZWlnaHRPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLmtleXVwKGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PSAyNykgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoKGUua2V5Q29kZSA9PSA4IHx8IGUua2V5Q29kZSA9PSA0NiB8fCBlLmtleUNvZGUgPT0gODggfHwgZS5rZXlDb2RlID09IDg2KSAmJiAkKF90YXJnZXRDb250cm9sKS52YWwoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiaW5kQXNzb2NpYXRlQ29udHJvbChudWxsLCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLkF1dG9TZWxlY3RGaXJzdEl0ZW0pIF90YXJnZXRBdXRvQ29udHJvbC52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy9pZiAoZS5rZXlDb2RlID09IDEzICYmICQoX3RhcmdldENvbnRyb2wpLnZhbCgpLmxlbmd0aCA+IDAgJiYgJChfb25lU2VhcmNoQm94KS5jc3MoJ2Rpc3BsYXknKSA9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgICBpZiAoX29wdGlvbnMuT25TZWFyY2gpIF9vcHRpb25zLk9uU2VhcmNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PSAxMyAmJiAkKF90YXJnZXRDb250cm9sKS52YWwoKS5sZW5ndGggPiAwICYmICFfaXNPbkFycm93U2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5PblNlYXJjaCkgX29wdGlvbnMuT25TZWFyY2goKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PSAxMyAmJiAkKF90YXJnZXRDb250cm9sKS52YWwoKS5sZW5ndGggPiAwICYmIF9vcHRpb25zLkF1dG9TZWxlY3RGaXJzdEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9oaWdobGlnaHRJZHggPiAwKSBzZWxlY3RIaWdobGlnaHRlZEl0ZW0oKTsgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKDAsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoX29wdGlvbnMuT25JbmNyZW1lbnRhbFNlYXJjaCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfb3B0aW9ucy5PbkluY3JlbWVudGFsU2VhcmNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoJChfdGFyZ2V0Q29udHJvbCkudmFsKCkubGVuZ3RoID49IF9vcHRpb25zLk1pbkNoYXJMaW1pdCB8fCBfb3B0aW9ucy5FbmFibGVQcmVMaXN0IHx8IF9vcHRpb25zLkVuYWJsZUN1cnJlbnRMb2NhdGlvbikgJChfb25lU2VhcmNoQm94KS5zaG93KCk7IGVsc2UgJChfb25lU2VhcmNoQm94KS5oaWRlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT0gMTMpICQoX29uZVNlYXJjaEJveCkuaGlkZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoJChfdGFyZ2V0Q29udHJvbCkudmFsKCkuaW5kZXhPZihfbGFzdEtleXdvcmQpIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmh0bWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PSA4IHx8IGUua2V5Q29kZSA9PSA0Nikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfbGFzdEtleXdvcmQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2xhc3RTZWFyY2h3b3JkID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBjaGFuZ2UgdGhlIGxhc3QgYW5kIGN1cnJlbnQgdmFsdWUgaW4gdGhlIGtleXdvcmQsIHRoZW4gbm8gbmVlZCB0byBjb250aW51ZVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfbGFzdEtleXdvcmQgPT0gJChfdGFyZ2V0Q29udHJvbCkudmFsKCkpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLk9uVGV4dENoYW5nZSkgX29wdGlvbnMuT25UZXh0Q2hhbmdlKCQoX3RhcmdldENvbnRyb2wpLnZhbCgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgYXNzb2NpYXRlZCBjb250cm9scyBzaW5jZSB0aGUga2V5d29yZCBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgICAgICAgICAgICAgICAgICAgYmluZEFzc29jaWF0ZUNvbnRyb2wobnVsbCwgbnVsbCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHNldCBjdXJyZW50IHZhbHVlIG9mIHRoZSB0ZXh0IGJvb3ggYXMgbGFzdCB2YWx1ZS9rZXl3b3JkXHJcbiAgICAgICAgICAgICAgICAgICAgX2xhc3RLZXl3b3JkID0gJChfdGFyZ2V0Q29udHJvbCkudmFsKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBzdWdnZXN0aW9uIGJveCBpcyBoaWRkZW4gdGhlbiBubyBuZWVkIHRvIGNvbnRpbnVlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQoX29uZVNlYXJjaEJveCkuY3NzKCdkaXNwbGF5JykgPT0gJ25vbmUnKSByZXR1cm47XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5Mb2FkaW5nSW1hZ2VVcmwgIT0gJycgJiYgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkubGVuZ3RoID49IF9vcHRpb25zLk1pbkNoYXJMaW1pdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmh0bWwoJzxpbWcgc3JjPVwiJyArIF9vcHRpb25zLkxvYWRpbmdJbWFnZVVybCArICdcIiAvPicpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEtleXdvcmQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkuZm9jdXMoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQoX29uZVNlYXJjaEJveC5jc3MoJ3dpZHRoJykpICE9IGdldFRvdGFsV2lkdGhPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9vbmVTZWFyY2hCb3guY3NzKCd3aWR0aCcsIGdldFRvdGFsV2lkdGhPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KF9vbmVTZWFyY2hCb3guY3NzKCd0b3AnKSkgIT0gZ2V0VG90YWxIZWlnaHRPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9vbmVTZWFyY2hCb3guY3NzKCd0b3AnLCBnZXRUb3RhbEhlaWdodE9mQ29udHJvbCgkKF90YXJnZXRDb250cm9sKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5NdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX011bHRpU2VsZWN0Qm94LmZpbmQoJ2EuYWdvcmEtb25lc2VhcmNoLW11bHRpLXNlbC1pdGVtLWNsb3NlJykubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF90ZW1wQ29udE11bHQgPSAkKCc8ZGl2PicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmh0bWwoJChfTXVsdGlTZWxlY3RCb3guaHRtbCgpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKF90ZW1wQ29udE11bHQpLmZpbmQoJ2EuYWdvcmEtb25lc2VhcmNoLW11bHRpLXNlbC1pdGVtLWNsb3NlJykuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hdHRyKCdvbmNsaWNrJywgJ2phdmFzY3JpcHQ6JChcXCcjJyArIG9wdGlvbnMuTXVsdGlTZWxlY3RCb3hJZCArICcgIycgKyAkKHRoaXMpLmF0dHIoJ2lkJykgKyAnXFwnKS50cmlnZ2VyKFxcJ2NsaWNrXFwnKScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5NdWx0aVNlbGVjdFNob3dIZWxwVGV4dCkgX29wdGlvbnMuSGVscFRleHQgPSAnPGRpdiBzdHlsZT1cInBhZGRpbmc6N3B4XCI+PGZvbnQgc3R5bGU9XCJjb2xvcjpyZWRcIj5Zb3UgaGF2ZSBhbHJlYWR5IHNlbGVjdGVkPC9mb250PicgKyAoKF9vcHRpb25zLlN0aWNreU1vZGUpID8gJzxhIGNsYXNzPVwiQ2xvc2VBcmVhXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiB0aXRsZT1cIkNsaWNrIGhlcmUgdG8gaGlkZSBzZWxlY3RlZCBmaWx0ZXJzLlwiIG9uY2xpY2s9XCIkKFxcJyMnICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfT25lU2VhcmNoJyArICdcXCcpLmhpZGUoKTtcIj5DbG9zZTwvYT4nIDogJycpICsgJzxociBzdHlsZT1cIm1hcmdpbjowcHggMHB4IDdweCAwcHhcIiAvPicgKyBfdGVtcENvbnRNdWx0Lmh0bWwoKSArICc8L2Rpdj4nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLkVuYWJsZUN1cnJlbnRMb2NhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKF90ZW1wQ29udE11bHQpLmFwcGVuZChnZXRDdXJyZW50TG9jYXRpb25PYmplY3QoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX29wdGlvbnMuSGVscFRleHQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5FbmFibGVDdXJyZW50TG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChfb25lU2VhcmNoQm94KS5maW5kKCdbZGF0YS1sb2NhdGlvbi1zZWFyY2hdJykubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuYXBwZW5kKGdldEN1cnJlbnRMb2NhdGlvbk9iamVjdCgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLnNob3coKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLkVuYWJsZVByZUxpc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoS2V5d29yZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLnNob3coKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFfb3B0aW9ucy5NdWx0aVNlbGVjdCAmJiBfb3B0aW9ucy5FbmFibGVDdXJyZW50TG9jYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoX29uZVNlYXJjaEJveCkuZmluZCgnW2RhdGEtbG9jYXRpb24tc2VhcmNoXScpLmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5hcHBlbmQoZ2V0Q3VycmVudExvY2F0aW9uT2JqZWN0KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhnZXRDdXJyZW50TG9jYXRpb25PYmplY3QoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuc2hvdygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoX29wdGlvbnMuSGVscFRleHQgIT0gJycgJiYgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5odG1sKF9vcHRpb25zLkhlbHBUZXh0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludChfb25lU2VhcmNoQm94LmNzcygnd2lkdGgnKSkgIT0gZ2V0VG90YWxXaWR0aE9mQ29udHJvbCgkKF90YXJnZXRDb250cm9sKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9vbmVTZWFyY2hCb3guY3NzKCd3aWR0aCcsIGdldFRvdGFsV2lkdGhPZkNvbnRyb2woJChfdGFyZ2V0Q29udHJvbCkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQoX29uZVNlYXJjaEJveC5jc3MoJ3RvcCcpKSAhPSBnZXRUb3RhbEhlaWdodE9mQ29udHJvbCgkKF90YXJnZXRDb250cm9sKSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9vbmVTZWFyY2hCb3guY3NzKCd0b3AnLCBnZXRUb3RhbEhlaWdodE9mQ29udHJvbCgkKF90YXJnZXRDb250cm9sKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLnNob3coKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAkKF90YXJnZXRDb250cm9sKS5ibHVyKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoX29wdGlvbnMuQXV0b1NlbGVjdEZpcnN0SXRlbSAmJiAkKF90YXJnZXRDb250cm9sKS52YWwoKS5sZW5ndGggPiAwICYmICFfb3B0aW9ucy5NdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpc01hbnVhbFNlbGVjdCA9ICQoX3RhcmdldENvbnRyb2wpLmRhdGEoJ2lzLW1hbnVhbC1zZWxlY3QnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgKGlzTWFudWFsU2VsZWN0KSA9PSAndW5kZWZpbmVkJyB8fCBpc01hbnVhbFNlbGVjdCA9PSBmYWxzZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RJdGVtKDAsIHRydWUsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkuZGF0YSgnaXMtbWFudWFsLXNlbGVjdCcsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgNTApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfb3B0aW9ucy5UZXN0TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5odG1sKCcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoX3RhcmdldENvbnRyb2wpLnZhbCgpLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5wYXJlbnQoKS5yZW1vdmVDbGFzcygnaXMtZGlydHknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJChfb25lU2VhcmNoQm94KS5maW5kKCdbZGF0YS1sb2NhdGlvbi1zZWFyY2hdJykubGVuZ3RoID4gMCAmJiBfb3B0aW9ucy5UZXN0TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5odG1sKCcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5wYXJlbnQoKS5yZW1vdmVDbGFzcygnaXMtZGlydHknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChfb3B0aW9ucy5TdGlja3lNb2RlICYmICQoX29uZVNlYXJjaEJveCkuZmluZCgnZGl2LmFnb3JhLW9uZXNlYXJjaC1tdWx0aS1zZWwtaXRlbS1jb250JykubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuaHRtbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2lzLWRpcnR5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgc2VhcmNoS2V5d29yZCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5BbmltYXRlUGxhY2Vob2xkZXJUZXh0ID09IHRydWUgJiYgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkgPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICBBbmltYXRlUGxhY2Vob2xkZXJUZXh0KCQoX3RhcmdldENvbnRyb2wpLCAnJywgMCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhdGlvbk9iamVjdCgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5FbmFibGVDdXJyZW50TG9jYXRpb24gJiYgKGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaHR0cHMnKSA+IC0xIHx8IGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lLmluZGV4T2YoJ2xvY2FsaG9zdCcpID4gLTEpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJzxhPicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5odG1sKCc8aSBjbGFzcz1cImFnYSBhZ2EtbG9jYXRpb25cIj48L2k+JyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ0VuYWJsZUN1cnJlbnRMb2NhdGlvbkxhYmVsJykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCd3aWR0aCcsICcxMDAlJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygncGFkZGluZycsICczcHgnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCdjb2xvcicsICdyZWQnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXR0cignaWR4JywgLTEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnZ2V0LW15LWRpcmVjdGlvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdkYXRhLWxvY2F0aW9uLXNlYXJjaCcsICcnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubW91c2VvdmVyKGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5jc3MoJ2JhY2tncm91bmQtY29sb3I6cmVkJyk7ICQodGhpcykuYWRkQ2xhc3MoX29wdGlvbnMuSGlnaGxpZ2h0SXRlbUNzcyk7IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAoKSB7IHNlYXJjaE5lYXJieSgkKHRoaXMpLmF0dHIoJ2lkeCcpKTsgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKCd0YXAnLCBmdW5jdGlvbiAoKSB7IHNlYXJjaE5lYXJieSgkKHRoaXMpLmF0dHIoJ2lkeCcpKTsgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLm1vdXNlb3V0KGZ1bmN0aW9uICgpIHsgJCh0aGlzKS5yZW1vdmVDbGFzcyhfb3B0aW9ucy5IaWdobGlnaHRJdGVtQ3NzKTsgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZnVuY3Rpb24gY2xlYXJOZWFyYnkoKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoX2lzTG9jYXRpb25TZXJhY2hFbmFibGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtpZD1cIicgKyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpICsgJ19HUFNfUkxBVFwiXScpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtpZD1cIicgKyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpICsgJ19HUFNfUkxPTkdcIl0nKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfR1BTX1JEU1wiXScpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJCgnI2RyYXdfc2VhcmNoJykuY2xpY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZnVuY3Rpb24gc2VhcmNoTmVhcmJ5KGlkeCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24gKHBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfR1BTX1JMQVRcIl0nKS52YWwocG9zaXRpb24uY29vcmRzLmxhdGl0dWRlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtpZD1cIicgKyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpICsgJ19HUFNfUkxPTkdcIl0nKS52YWwocG9zaXRpb24uY29vcmRzLmxvbmdpdHVkZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWQ9XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfR1BTX1JEU1wiXScpLnZhbCgoJChfdGFyZ2V0Q29udHJvbCkuYXR0cignRGVmYXVsdFNlYXJjaFJhZGl1cycpICE9IG51bGwgJiYgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignRGVmYXVsdFNlYXJjaFJhZGl1cycpICE9ICcwJykgPyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdEZWZhdWx0U2VhcmNoUmFkaXVzJykgOiAnNScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaXNMb2NhdGlvblNlcmFjaEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX29wdGlvbnMuT25TZWxlY3QpIF9vcHRpb25zLk9uU2VsZWN0KHsgXCJrXCI6IHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZSArICd8JyArIHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUsIFwiblwiOiBcIklEQ0xBVElUVURFfElEQ0xPTkdJVFVERVwiLCBcInJ0XCI6IFwiTE9DQVRJT05cIiB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9vcHRpb25zLk9uU3VjY2VzcykgX29wdGlvbnMuT25TdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHNlbGVjdEl0ZW0oaWR4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgcHJldmlvdXNsb29rdXBsYWJlbD1udWxsO1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBzZWFyY2hLZXl3b3JkKGxvb2t1cExhYmVsLCBhZnRlclNlYXJjaCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKF9sYXN0U2VhcmNod29yZCA9PSAkKF90YXJnZXRDb250cm9sKS52YWwoKSAmJiAhX29wdGlvbnMuRW5hYmxlUHJlTGlzdCAmJiBsb29rdXBMYWJlbCA9PSBudWxsKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgYWxyZWFkeSBhIHJlcXVlc3Qgbm90IHlldCBjb21wbGV0ZWQgdGhlbiB0aGF0IG5lZWQgdG8gc3RvcC9hYm9ydCBiZWZvcmUgc3RhYXJ0aW5nIG5ldyBvbmVcclxuICAgICAgICAgICAgICAgIGlmIChfcmVxdWVzdCAhPSBudWxsICYmIHByZXZpb3VzbG9va3VwbGFiZWwgPT0gbnVsbClcclxuICAgICAgICAgICAgICAgICAgICBfcmVxdWVzdC5hYm9ydCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxvb2t1cExhYmVsICE9IG51bGwpXHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNsb29rdXBsYWJlbCA9IGxvb2t1cExhYmVsO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbG9va3VwbGFiZWwgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICgkKF90YXJnZXRDb250cm9sKS52YWwoKS5sZW5ndGggPCBfb3B0aW9ucy5NaW5DaGFyTGltaXQpIF9sYXN0S2V5d29yZCA9ICcnOyBlbHNlIF9sYXN0U2VhcmNod29yZCA9ICQoX3RhcmdldENvbnRyb2wpLnZhbCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb29rdXBMYWJlbCA9PSBudWxsICYmICFfb3B0aW9ucy5FbmFibGVQcmVMaXN0ICYmICQoX3RhcmdldENvbnRyb2wpLnZhbCgpLmxlbmd0aCA8IF9vcHRpb25zLk1pbkNoYXJMaW1pdCkgcmV0dXJuO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5BdXRvU2VsZWN0Rmlyc3RJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJChfdGFyZ2V0QXV0b0NvbnRyb2wpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkuZGF0YSgnaXMtbWFudWFsLXNlbGVjdCcsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBfc2VhcmNoUGFyYW0gPSAoKCQoX3RhcmdldENvbnRyb2wpLnZhbCgpLmxlbmd0aCA8IF9vcHRpb25zLk1pbkNoYXJMaW1pdCkgPyAnJyA6ICQoX3RhcmdldENvbnRyb2wpLnZhbCgpKVxyXG4gICAgICAgICAgICAgICAgX3NlYXJjaEtleXdvcmQgPSAoKCQoX3RhcmdldENvbnRyb2wpLnZhbCgpLmxlbmd0aCA8IF9vcHRpb25zLk1pbkNoYXJMaW1pdCkgPyAnJyA6ICQoX3RhcmdldENvbnRyb2wpLnZhbCgpLnJlcGxhY2UoLyMvZywgJyUyMycpKSArICcmdD0nICsgbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgIGlmIChsb29rdXBMYWJlbCAhPSBudWxsICYmIGxvb2t1cExhYmVsLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBfc2VhcmNoUGFyYW0gPSBfc2VhcmNoS2V5d29yZCA9ICdMT09LVVBfTEFCRUw6OicgKyBsb29rdXBMYWJlbDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBfcmVxdWVzdCA9ICQuYWpheCh7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ1BPU1QnLFxyXG4gICAgICAgICAgICAgICAgICAgIHVybDogX29wdGlvbnMuU2VydmljZVVybCArIFwiP0tleXdvcmQ9XCIgKyBfc2VhcmNoS2V5d29yZCxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiAoeyBcIktleXdvcmRcIjogX3NlYXJjaFBhcmFtLCBcIlNlYXJjaE1vZGVcIjogX29wdGlvbnMuU2VhcmNoTW9kZSwgXCJPbmVTZWFyY2hOYW1lXCI6IF9vcHRpb25zLk9uZVNlYXJjaE5hbWUsIFwiUmVnaW9uXCI6IF9vcHRpb25zLlJlZ2lvbiwgXCJMb2NhbGVcIjogX29wdGlvbnMuTG9jYWxlLCBcIkFkZGl0aW9uYWxXaGVyZVwiOiAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdBZGRpdGlvbmFsV2hlcmUnKSB9KSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb29rdXBMYWJlbCAhPSBudWxsICYmIGFmdGVyU2VhcmNoICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyU2VhcmNoKGRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9yZXNwb3NlQ2FjaGUgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfaGlnaGxpZ2h0SWR4ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5odG1sKCcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgPT0gdW5kZWZpbmVkIHx8IGRhdGEubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2l0ZW1EYXRhID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfZmllbGQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9pdGVtID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jYXRlZ29yeWl0ZW0gPSAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jYXRlb2dvcnluYW1lID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2l0ZW1EYXRhID0gaGlnaGxpZ2h0S2V5d29yZChkYXRhW2ldLmwsICQoX3RhcmdldENvbnRyb2wpLnZhbCgpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9maWVsZCA9IGdldEZpZWxkSnNvbihfb3B0aW9ucy5PbmVTZWFyY2hEUywgZGF0YVtpXS5ydCwgZGF0YVtpXS5uKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2ZpZWxkICE9IG51bGwgJiYgX2ZpZWxkLkl0ZW1UZW1wbGF0ZSAhPSBudWxsICYmIF9maWVsZC5JdGVtVGVtcGxhdGUgIT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbURhdGEgPSBfZmllbGQuSXRlbVRlbXBsYXRlLnJlcGxhY2UoJ3skbH0nLCBoaWdobGlnaHRLZXl3b3JkKGRhdGFbaV0ubCwgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbURhdGEgPSBfaXRlbURhdGEucmVwbGFjZSgneyRkfScsIGRhdGFbaV0uZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKF9maWVsZCAhPSBudWxsICYmIF9maWVsZC5JdGVtVGVtcGxhdGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgX2ZpZWxkLkl0ZW1UZW1wbGF0ZXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9maWVsZC5JdGVtVGVtcGxhdGVzW2pdLkxvY2FsZSA9PSBfb3B0aW9ucy5Mb2NhbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pdGVtRGF0YSA9IF9maWVsZC5JdGVtVGVtcGxhdGVzW2pdLlRlbXBsYXRlLnJlcGxhY2UoJ3skbH0nLCBoaWdobGlnaHRLZXl3b3JkKGRhdGFbaV0ubCwgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pdGVtRGF0YSA9IF9pdGVtRGF0YS5UZW1wbGF0ZS5yZXBsYWNlKCd7JGR9JywgZGF0YVtpXS5kKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbSA9ICQoJzxhPicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmh0bWwoX2l0ZW1EYXRhKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3dpZHRoJywgJzEwMCUnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoJ3BhZGRpbmcnLCAnM3B4JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKCd0ZXh0LWRlY29yYXRpb24nLCAnbm9uZScpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcygnY29sb3InLCAnYmxhY2snKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdpZHgnLCBpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tb3VzZW92ZXIoZnVuY3Rpb24gKCkgeyAkKHRoaXMpLmFkZENsYXNzKF9vcHRpb25zLkhpZ2hsaWdodEl0ZW1Dc3MpOyB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tb3VzZWRvd24oZnVuY3Rpb24gKCkgeyAkKF90YXJnZXRDb250cm9sKS5kYXRhKCdpcy1tYW51YWwtc2VsZWN0JywgdHJ1ZSk7IH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uICgpIHsgc2VsZWN0SXRlbSgkKHRoaXMpLmF0dHIoJ2lkeCcpKTsgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oJ3RhcCcsIGZ1bmN0aW9uICgpIHsgJChfdGFyZ2V0Q29udHJvbCkuZGF0YSgnaXMtbWFudWFsLXNlbGVjdCcsIHRydWUpOyBzZWxlY3RJdGVtKCQodGhpcykuYXR0cignaWR4JykpOyB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tb3VzZW91dChmdW5jdGlvbiAoKSB7ICQodGhpcykucmVtb3ZlQ2xhc3MoX29wdGlvbnMuSGlnaGxpZ2h0SXRlbUNzcyk7IH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID09IDAgJiYgX29wdGlvbnMuQXV0b1NlbGVjdEZpcnN0SXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9TZWxlY3RJdGVtKGksIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfb3B0aW9ucy5FbmFibGVDYXRlZ29yeVZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2NhdGVvZ29yeW5hbWUgIT0gZGF0YVtpXS5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jYXRlZ29yeWl0ZW0gPSAkKCc8ZGl2PicpLmFkZENsYXNzKCdPbmVTZWFyY2hCb3gtY2F0ZWdvcnktJysgZGF0YVtpXS5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2NhdGVnb3J5aXRlbS5hcHBlbmQgKCQoJzxzcGFuPicpLmh0bWwoZGF0YVtpXS5nKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jYXRlb2dvcnluYW1lID0gZGF0YVtpXS5nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2F0ZWdvcnlpdGVtLmFwcGVuZChfaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChfb25lU2VhcmNoQm94KS5hcHBlbmQoX2NhdGVnb3J5aXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCAmJiAkKF9vbmVTZWFyY2hCb3gpW2ldLmNsYXNzTmFtZS5pbmNsdWRlcygnT25lU2VhcmNoQm94LScpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpW2ldLmNsYXNzTmFtZSA9ICQoX29uZVNlYXJjaEJveClbaV0uY2xhc3NOYW1lLnJlcGxhY2UoL1xcYk9uZVNlYXJjaEJveC1bQS1aYS16XSpcXGIvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuYWRkQ2xhc3MoJ09uZVNlYXJjaEJveC0nICsgZGF0YVtpXS5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoX29uZVNlYXJjaEJveCkuYXBwZW5kKF9pdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgNDA0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2VydmljZSAoYWdvcmFPbmVTZWFyY2gpIG5vdCBmb3VuZCEnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNlbGVjdEhpZ2hsaWdodGVkSXRlbSgpIHtcclxuICAgICAgICBpZiAoX3Jlc3Bvc2VDYWNoZSA9PSBudWxsIHx8IF9yZXNwb3NlQ2FjaGUubGVuZ3RoIDwgKF9oaWdobGlnaHRJZHggLSAxKSB8fCBfaGlnaGxpZ2h0SWR4IDw9IDApIHJldHVybjtcclxuXHJcbiAgICAgICAgdmFyIF9sYWJlbCA9ICcnO1xyXG4gICAgICAgIHZhciBfc2VsZWN0ZWRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIHZhciBfZmllbGQgPSBnZXRGaWVsZEpzb24oX29wdGlvbnMuT25lU2VhcmNoRFMsIF9yZXNwb3NlQ2FjaGVbX2hpZ2hsaWdodElkeCAtIDFdLnJ0LCBfcmVzcG9zZUNhY2hlW19oaWdobGlnaHRJZHggLSAxXS5uKTtcclxuICAgICAgICBpZiAoX2ZpZWxkICE9IG51bGwgJiYgX2ZpZWxkLkl0ZW1UZW1wbGF0ZSAhPSAnJykge1xyXG4gICAgICAgICAgICBpZiAoX2ZpZWxkLlNlbGVjdG9yICE9IHVuZGVmaW5lZCAmJiBfZmllbGQuU2VsZWN0b3IgIT0gbnVsbCAmJiBfZmllbGQuU2VsZWN0b3IgPT0gJ2snKVxyXG4gICAgICAgICAgICAgICAgX3NlbGVjdGVkVmFsdWUgPSBfcmVzcG9zZUNhY2hlW19oaWdobGlnaHRJZHggLSAxXS5rO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBfc2VsZWN0ZWRWYWx1ZSA9IF9yZXNwb3NlQ2FjaGVbX2hpZ2hsaWdodElkeCAtIDFdLmw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIF9sYWJlbCA9IF9yZXNwb3NlQ2FjaGVbX2hpZ2hsaWdodElkeCAtIDFdLmw7XHJcblxyXG4gICAgICAgIGlmICghX29wdGlvbnMuTXVsdGlTZWxlY3QpIHtcclxuICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkudmFsKF9sYWJlbCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkudmFsKCcnKTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBfbGFzdEtleXdvcmQgPSAkKF90YXJnZXRDb250cm9sKS52YWwoKTtcclxuICAgICAgICBiaW5kQXNzb2NpYXRlQ29udHJvbChfcmVzcG9zZUNhY2hlW19oaWdobGlnaHRJZHggLSAxXSwgX3NlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgIGlmIChfb3B0aW9ucy5BdXRvU2VsZWN0Rmlyc3RJdGVtKSBhdXRvU2VsZWN0SXRlbSgoX2hpZ2hsaWdodElkeCAtIDEpKTtcclxuICAgICAgICBpZiAoX29wdGlvbnMuT25TZWxlY3QpIF9vcHRpb25zLk9uU2VsZWN0KF9yZXNwb3NlQ2FjaGVbX2hpZ2hsaWdodElkeCAtIDFdKTtcclxuICAgICAgICBfaGlnaGxpZ2h0SWR4ID0gMDtcclxuICAgICAgICBpZiAoIV9vcHRpb25zLlRlc3RNb2RlKSAkKF9vbmVTZWFyY2hCb3gpLmh0bWwoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNlbGVjdEl0ZW0oaWR4LCBub2NsZWFyLCBhdXRvU2VsZWN0KSB7XHJcbiAgICAgICAgdmFyIF9sYWJlbCA9ICcnO1xyXG4gICAgICAgIHZhciBfc2VsZWN0ZWRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIGlmIChub2NsZWFyID09IHVuZGVmaW5lZCB8fCBub2NsZWFyID09IG51bGwpIG5vY2xlYXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoYXV0b1NlbGVjdCA9PSB1bmRlZmluZWQgfHwgYXV0b1NlbGVjdCA9PSBudWxsKSBhdXRvU2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgKF9yZXNwb3NlQ2FjaGUpID09ICd1bmRlZmluZWQnIHx8IF9yZXNwb3NlQ2FjaGUgPT0gbnVsbCB8fCBfcmVzcG9zZUNhY2hlLmxlbmd0aCA9PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIHZhciBfZmllbGQgPSBnZXRGaWVsZEpzb24oX29wdGlvbnMuT25lU2VhcmNoRFMsIF9yZXNwb3NlQ2FjaGVbaWR4XS5ydCwgX3Jlc3Bvc2VDYWNoZVtpZHhdLm4pO1xyXG4gICAgICAgIGlmIChfZmllbGQgIT0gbnVsbCAmJiBfZmllbGQuSXRlbVRlbXBsYXRlICE9ICcnKSB7XHJcbiAgICAgICAgICAgIGlmIChfZmllbGQuU2VsZWN0b3IgIT0gdW5kZWZpbmVkICYmIF9maWVsZC5TZWxlY3RvciAhPSBudWxsICYmIF9maWVsZC5TZWxlY3RvciA9PSAnaycpXHJcbiAgICAgICAgICAgICAgICBfc2VsZWN0ZWRWYWx1ZSA9IF9yZXNwb3NlQ2FjaGVbaWR4XS5rO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBfc2VsZWN0ZWRWYWx1ZSA9IF9yZXNwb3NlQ2FjaGVbaWR4XS5sO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfbGFiZWwgPSBfcmVzcG9zZUNhY2hlW2lkeF0ubDtcclxuXHJcbiAgICAgICAgaWYgKGF1dG9TZWxlY3QgPT0gdHJ1ZSAmJiAhX2xhYmVsLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgkKF90YXJnZXRDb250cm9sKS52YWwoKS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgICAkKF90YXJnZXRBdXRvQ29udHJvbCkudmFsKCcnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFfb3B0aW9ucy5NdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICBpZiAoX2ZpZWxkICE9IG51bGwgJiZfZmllbGQuU2tpcFNlbGVjdCAhPSB0cnVlKSAkKF90YXJnZXRDb250cm9sKS52YWwoX2xhYmVsKTsgZWxzZSAkKF90YXJnZXRDb250cm9sKS52YWwoJycpO1xyXG4gICAgICAgICAgICBpZiAoX29wdGlvbnMuQXV0b1NlbGVjdEZpcnN0SXRlbSkgJChfdGFyZ2V0QXV0b0NvbnRyb2wpLnZhbCgnJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgJChfdGFyZ2V0Q29udHJvbCkudmFsKCcnKTtcclxuICAgICAgICAgICAgaWYgKF9vcHRpb25zLkF1dG9TZWxlY3RGaXJzdEl0ZW0pICQoX3RhcmdldEF1dG9Db250cm9sKS52YWwoJycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgX2xhc3RLZXl3b3JkID0gJChfdGFyZ2V0Q29udHJvbCkudmFsKCk7XHJcbiAgICAgICAgaWYgKGlkeCA+PSAwKSBjbGVhck5lYXJieSgpO1xyXG4gICAgICAgIGlmIChfZmllbGQgIT0gbnVsbCAmJl9maWVsZC5Ta2lwU2VsZWN0ICE9IHRydWUpIGJpbmRBc3NvY2lhdGVDb250cm9sKF9yZXNwb3NlQ2FjaGVbaWR4XSwgX3NlbGVjdGVkVmFsdWUpO1xyXG4gICAgICAgIGlmIChfb3B0aW9ucy5PblNlbGVjdCkgX29wdGlvbnMuT25TZWxlY3QoX3Jlc3Bvc2VDYWNoZVtpZHhdKTtcclxuICAgICAgICBpZiAoIV9vcHRpb25zLlRlc3RNb2RlICYmICFub2NsZWFyKSAkKF9vbmVTZWFyY2hCb3gpLmh0bWwoJycpO1xyXG5cclxuICAgICAgICBpZiAoX29wdGlvbnMuTXVsdGlTZWxlY3QpIHtcclxuICAgICAgICAgICAgaWYgKCFfb3B0aW9ucy5FbmFibGVQcmVMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgJChfdGFyZ2V0Q29udHJvbCkuZm9jdXMoKTsgfSwgMjAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBhdXRvU2VsZWN0SXRlbShpZHgpIHtcclxuICAgICAgICB2YXIgX2xhYmVsID0gJyc7XHJcbiAgICAgICAgdmFyIF9zZWxlY3RlZFZhbHVlID0gJyc7XHJcbiAgICAgICAgaWYgKCQoX3RhcmdldENvbnRyb2wpLnZhbCgpID09IG51bGwgfHwgJChfdGFyZ2V0Q29udHJvbCkudmFsKCkgPT0gJycpIHJldHVybjtcclxuICAgICAgICBpZiAodHlwZW9mIChfcmVzcG9zZUNhY2hlKSA9PSAndW5kZWZpbmVkJyB8fCBfcmVzcG9zZUNhY2hlID09IG51bGwgfHwgX3Jlc3Bvc2VDYWNoZS5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG4gICAgICAgIHZhciBfZmllbGQgPSBnZXRGaWVsZEpzb24oX29wdGlvbnMuT25lU2VhcmNoRFMsIF9yZXNwb3NlQ2FjaGVbaWR4XS5ydCwgX3Jlc3Bvc2VDYWNoZVtpZHhdLm4pO1xyXG4gICAgICAgIGlmIChfZmllbGQgIT0gbnVsbCAmJiBfZmllbGQuSXRlbVRlbXBsYXRlICE9ICcnKSB7XHJcbiAgICAgICAgICAgIGlmIChfZmllbGQuU2VsZWN0b3IgIT0gdW5kZWZpbmVkICYmIF9maWVsZC5TZWxlY3RvciAhPSBudWxsICYmIF9maWVsZC5TZWxlY3RvciA9PSAnaycpXHJcbiAgICAgICAgICAgICAgICBfc2VsZWN0ZWRWYWx1ZSA9IF9yZXNwb3NlQ2FjaGVbaWR4XS5rO1xyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBfc2VsZWN0ZWRWYWx1ZSA9IF9yZXNwb3NlQ2FjaGVbaWR4XS5sO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfbGFiZWwgPSBfcmVzcG9zZUNhY2hlW2lkeF0ubDtcclxuXHJcbiAgICAgICAgaWYgKF9sYWJlbC5pbmNsdWRlcygnPHNwYW4nKSkge1xyXG4gICAgICAgICAgICBfbGFiZWwgPSBfbGFiZWwucmVwbGFjZSgvPHNwYW5bXj5dKj4uKj88XFwvc3Bhbj4vZ2ksICcnKS50cmltKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIV9sYWJlbC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLC9nLCAnJykuc3RhcnRzV2l0aCgkKF90YXJnZXRDb250cm9sKS52YWwoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLC9nLCAnJykpKSB7XHJcbiAgICAgICAgICAgICQoX3RhcmdldEF1dG9Db250cm9sKS52YWwoJycpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgdmFyIHJlZ0V4ID0gbmV3IFJlZ0V4cCgkKF90YXJnZXRDb250cm9sKS52YWwoKSwgXCJpZ1wiKTtcclxuICAgICAgICAkKF90YXJnZXRBdXRvQ29udHJvbCkudmFsKF9sYWJlbC5yZXBsYWNlKHJlZ0V4LCAkKF90YXJnZXRDb250cm9sKS52YWwoKSkpO1xyXG5cclxuICAgICAgICBfbGFzdEtleXdvcmQgPSAkKF90YXJnZXRDb250cm9sKS52YWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiByZWxvYWRNdWx0aVNlbGVjdE9uTG9hZCgpIHtcclxuICAgICAgICBpZiAoIV9vcHRpb25zLk11bHRpU2VsZWN0KSByZXR1cm47XHJcblxyXG4gICAgICAgICQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1baWRePVwiJyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnXCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmICgkKHRoaXMpLnZhbCgpICE9ICcnKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgX2l0ZW0gPSB7fTsgLy9beyBcImtcIjogXCJDaGFybG90dGVcIiwgXCJsXCI6IFwiQ2hhcmxvdHRlLCBOQ1wiLCBcIm5cIjogXCJDSVRZXCIsIFwicnRcIjogXCJDTU5DTU5cIiB9XVxyXG4gICAgICAgICAgICAgICAgdmFyIF9pdGVtVmFsdWUgPSAkKHRoaXMpLmF0dHIoJ2lkJykuc3BsaXQoJ18nKTtcclxuICAgICAgICAgICAgICAgIF9pdGVtLnJ0ID0gX2l0ZW1WYWx1ZVtfaXRlbVZhbHVlLmxlbmd0aCAtIDJdO1xyXG4gICAgICAgICAgICAgICAgX2l0ZW0ubiA9IF9pdGVtVmFsdWVbX2l0ZW1WYWx1ZS5sZW5ndGggLSAxXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5hdHRyKCdkYXRhLWxhYmVsLWxvb2t1cCcpID09ICdUcnVlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaEtleXdvcmQoX2l0ZW0ucnQgKyAnfCcgKyBfaXRlbS5uICsgJzo6JyArICQodGhpcykudmFsKCksIGZ1bmN0aW9uIChyZXN1bHRKc29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfbGFiZWxzID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfa2V5cyA9ICcnOyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0SnNvbikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9sYWJlbHMgPSByZXN1bHRKc29uLm1hcChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5qb2luKCc7Jyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2tleXMgPSByZXN1bHRKc29uLm1hcChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLms7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5qb2luKCc7Jyk7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiaW5kQXNzb2NpYXRlQ29udHJvbChfaXRlbSwgX2tleXMsIHRydWUsIF9sYWJlbHMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAkKF90YXJnZXRDb250cm9sKS52YWwoJycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYmluZEFzc29jaWF0ZUNvbnRyb2woX2l0ZW0sICQodGhpcykudmFsKCksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiByZWxvYWRTaW5nbGVTZWxlY3RPbkxvYWRGb3JEYXRhbG9va3VwKCkge1xyXG4gICAgICAgIGlmIChfb3B0aW9ucy5NdWx0aVNlbGVjdCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCAkaGlkZGVuSW5wdXRzID0gJCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtpZF49XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdcIl0nKTtcclxuXHJcbiAgICAgICAgJGhpZGRlbklucHV0cy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgY29uc3QgJGlucHV0ID0gJCh0aGlzKTtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkaW5wdXQudmFsKCk7XHJcblxyXG4gICAgICAgICAgICAvLyBQcm9jZWVkIG9ubHkgaWYgdmFsdWUgaXMgbm9uLWVtcHR5IGFuZCBkYXRhLWxhYmVsLWxvb2t1cCBpcyBUcnVlXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS50cmltKCkgIT09ICcnICYmICRpbnB1dC5hdHRyKCdkYXRhLWxhYmVsLWxvb2t1cCcpID09PSAnVHJ1ZScpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IF9pdGVtID0ge307XHJcbiAgICAgICAgICAgICAgICBjb25zdCBfaXRlbVZhbHVlID0gJGlucHV0LmF0dHIoJ2lkJykuc3BsaXQoJ18nKTtcclxuICAgICAgICAgICAgICAgIF9pdGVtLnJ0ID0gX2l0ZW1WYWx1ZVtfaXRlbVZhbHVlLmxlbmd0aCAtIDJdO1xyXG4gICAgICAgICAgICAgICAgX2l0ZW0ubiA9IF9pdGVtVmFsdWVbX2l0ZW1WYWx1ZS5sZW5ndGggLSAxXTtcclxuXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hLZXl3b3JkKF9pdGVtLnJ0ICsgJ3wnICsgX2l0ZW0ubiArICc6OicgKyB2YWx1ZSwgZnVuY3Rpb24gKHJlc3VsdEpzb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHRKc29uKSAmJiByZXN1bHRKc29uLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSByZXN1bHRKc29uWzBdLmw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHJlc3VsdEpzb25bMF0uaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmluZEFzc29jaWF0ZUNvbnRyb2woX2l0ZW0sIGtleSwgdHJ1ZSwgbGFiZWwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gYmluZEFzc29jaWF0ZUNvbnRyb2woaXRlbSwgdmFsdWUsIGluaXRpYWxMb2FkLCBsYWJlbHMpIHtcclxuICAgICAgICBpZiAoIV9vcHRpb25zLk11bHRpU2VsZWN0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0ICRoaWRkZW5JbnB1dHMgPSAkKCdpbnB1dFt0eXBlPVwiaGlkZGVuXCJdW2lkXj1cIicgKyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpICsgJ1wiXScpO1xyXG4gICAgICAgICAgICBjb25zdCBoYXNMYWJlbExvb2t1cCA9ICRoaWRkZW5JbnB1dHMuaXMoJ1tkYXRhLWxhYmVsLWxvb2t1cD1cIlRydWVcIl0nKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgIGlmIChoYXNMYWJlbExvb2t1cCAmJiBsYWJlbHMpIHtcclxuICAgICAgICAgICAgICAgICQoX3RhcmdldENvbnRyb2wpLnZhbChsYWJlbHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgJCgnaW5wdXRbdHlwZT1cImhpZGRlblwiXVtpZF49XCInICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnZhbCgnJyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtID09IG51bGwpIHJldHVybjtcclxuICAgICAgICAgICAgICAgICQoJyMnICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfJyArIGl0ZW0ucnQgKyAnXycgKyBpdGVtLm4pLnZhbCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaXRlbSA9PSBudWxsKSByZXR1cm47XHJcbiAgICAgICAgICAgIHZhciBfY3RybE11bHRpRmllbGQgPSAkKCcjJyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnXycgKyBpdGVtLnJ0ICsgJ18nICsgaXRlbS5uKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBfdmFsdWVJdGVtcyA9IHZhbHVlLnNwbGl0KFwiO1wiKTtcclxuICAgICAgICAgICAgdmFyIF92YWx1ZUl0ZW1zQ2FycmllciA9IF92YWx1ZUl0ZW1zO1xyXG4gICAgICAgICAgICBpZiAobGFiZWxzICE9IG51bGwgJiYgbGFiZWxzICE9IHVuZGVmaW5lZCkgdmFyIF92YWx1ZUl0ZW1zID0gbGFiZWxzLnNwbGl0KFwiO1wiKTtcclxuICAgICAgICAgICAgdmFyIF9maWVsZCA9IGdldEZpZWxkSnNvbihfb3B0aW9ucy5PbmVTZWFyY2hEUywgaXRlbS5ydCwgaXRlbS5uKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBfdmFsdWVJdGVtcy5sZW5ndGggJiYgX2ZpZWxkICE9IG51bGw7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKF92YWx1ZUl0ZW1zW2ldLmxlbmd0aCA8IDIpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCgnOycgKyBfY3RybE11bHRpRmllbGQudmFsKCkudG9Mb3dlckNhc2UoKSArICc7JykuaW5kZXhPZignOycgKyBfdmFsdWVJdGVtc1tpXS50b0xvd2VyQ2FzZSgpICsgJzsnKSA9PSAtMSB8fCBpbml0aWFsTG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5pdGlhbExvYWQpIF9jdHJsTXVsdGlGaWVsZC52YWwoX2N0cmxNdWx0aUZpZWxkLnZhbCgpICsgJzsnICsgX3ZhbHVlSXRlbXNbaV0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgX211bHRpU2VsZWN0SXRlbSA9ICQoJzxkaXY+JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdhZ29yYS1vbmVzZWFyY2gtbXVsdGktc2VsLWl0ZW0tY29udCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyKCdpZCcsICdtdWx0aWl0ZW0nICsgJChfdGFyZ2V0Q29udHJvbCkuYXR0cignaWQnKSArICdfJyArIGl0ZW0ucnQgKyAnXycgKyBpdGVtLm4gKyBfdmFsdWVJdGVtc1tpXS5yZXBsYWNlKC9cXCAvZywgJ18nKS5yZXBsYWNlKC9cXC0vZywgJ18nKS5yZXBsYWNlKC9bXkEtejAtOV0vZywgJ18nKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdhZ29yYS1vbmVzZWFyY2gtbXVsdGktc2VsLWl0ZW0tY2xvc2UnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ3RpdGxlJywgJ0NsaWNrIGhlcmUgdG8gaGlkZSB0aGlzIGFyZWEgZmlsdGVyLicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXR0cignaWQnLCAnbXVsdGlpdGVtX2Nsb3NlXycgKyAkKF90YXJnZXRDb250cm9sKS5hdHRyKCdpZCcpICsgJ18nICsgaXRlbS5ydCArICdfJyArIGl0ZW0ubiArIF92YWx1ZUl0ZW1zW2ldLnJlcGxhY2UoL1xcIC9nLCAnXycpLnJlcGxhY2UoL1xcLS9nLCAnXycpLnJlcGxhY2UoL1teQS16MC05XS9nLCAnXycpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ3ZhbCcsIF92YWx1ZUl0ZW1zQ2FycmllcltpXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5odG1sKCc8aSBjbGFzcz1cImFnYSBhZ2EtY2xvc2VcIj48L2k+JylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRnJvbU11bHRpU2VsZWN0KCQodGhpcyksIGl0ZW0sICQodGhpcykuYXR0cigndmFsJykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaHRtbChfZmllbGQuTXVsdGlJdGVtVGVtcGxhdGUucmVwbGFjZSgneyRsfScsIChpdGVtICE9IG51bGwgJiYgaXRlbS5sICE9IG51bGwpID8gaXRlbS5sIDogX3ZhbHVlSXRlbXNbaV0pLnJlcGxhY2UoJ3skZH0nLCAoaXRlbSAhPSBudWxsICYmIGl0ZW0uZCAhPSBudWxsKSA/IGl0ZW0uZCA6IF92YWx1ZUl0ZW1zW2ldKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBfTXVsdGlTZWxlY3RCb3guYXBwZW5kKF9tdWx0aVNlbGVjdEl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWluaXRpYWxMb2FkICYmIF9vcHRpb25zLk9uTXVsdGlTZWxlY3RSZW1vdmUpIF9vcHRpb25zLk9uTXVsdGlTZWxlY3RSZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gaGFzTXVsdGlTZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgICAgIHJldHVybiAoX29wdGlvbnMuTXVsdGlTZWxlY3QgJiYgX011bHRpU2VsZWN0Qm94LmZpbmQoJ2EuYWdvcmEtb25lc2VhcmNoLW11bHRpLXNlbC1pdGVtLWNsb3NlJykubGVuZ3RoID4gMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gcmVtb3ZlRnJvbU11bHRpU2VsZWN0KG1lLCBpdGVtLCB2YWx1ZSkge1xyXG4gICAgICAgIHZhciBfY3RybE11bHRpRmllbGQgPSAkKCcjJyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnXycgKyBpdGVtLnJ0ICsgJ18nICsgaXRlbS5uKTtcclxuICAgICAgICBpZiAoX2N0cmxNdWx0aUZpZWxkLnZhbCgpLmluZGV4T2YoJzsnKSAhPSAwKSBfY3RybE11bHRpRmllbGQudmFsKCc7JyArIF9jdHJsTXVsdGlGaWVsZC52YWwoKSk7XHJcbiAgICAgICAgX2N0cmxNdWx0aUZpZWxkLnZhbChfY3RybE11bHRpRmllbGQudmFsKCkucmVwbGFjZSgnOycgKyB2YWx1ZSwgJycpKTtcclxuXHJcbiAgICAgICAgLy8kKCcjbXVsdGlpdGVtJyArICQoX3RhcmdldENvbnRyb2wpLmF0dHIoJ2lkJykgKyAnXycgKyBpdGVtLnJ0ICsgJ18nICsgaXRlbS5uICsgdmFsdWUucmVwbGFjZSgvXFwgL2csICdfJykucmVwbGFjZSgvXFwtL2csICdfJykpLnJlbW92ZSgpO1xyXG4gICAgICAgICQobWUpLnBhcmVudCgpLnJlbW92ZSgpO1xyXG5cclxuICAgICAgICBpZiAoX2N0cmxNdWx0aUZpZWxkLnZhbCgpID09IFwiXCIgfHwgJChfb25lU2VhcmNoQm94KS5maW5kKCdkaXYuYWdvcmEtb25lc2VhcmNoLW11bHRpLXNlbC1pdGVtLWNvbnQnKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmh0bWwoJycpO1xyXG4gICAgICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChfb3B0aW9ucy5Pbk11bHRpU2VsZWN0UmVtb3ZlKSBfb3B0aW9ucy5Pbk11bHRpU2VsZWN0UmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIGhpZ2hsaWdodEl0ZW0oZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgX2lzT25BcnJvd1NlbGVjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPiAwKSAvKmRvd24qLyB7XHJcbiAgICAgICAgICAgIGlmIChfaGlnaGxpZ2h0SWR4IDwgJChfb25lU2VhcmNoQm94KS5maW5kKCdhJykubGVuZ3RoKSBfaGlnaGxpZ2h0SWR4Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgLyp1cCovIHtcclxuICAgICAgICAgICAgaWYgKF9oaWdobGlnaHRJZHggPiAxKSBfaGlnaGxpZ2h0SWR4LS07XHJcbiAgICAgICAgfVxyXG4gICAgICAgICQoX29uZVNlYXJjaEJveCkuZmluZCgnYScpLmVhY2goZnVuY3Rpb24gKCkgeyAkKHRoaXMpLnJlbW92ZUNsYXNzKF9vcHRpb25zLkhpZ2hsaWdodEl0ZW1Dc3MpOyB9KTtcclxuICAgICAgICAkKF9vbmVTZWFyY2hCb3gpLmZpbmQoKF9vcHRpb25zLkVuYWJsZUNhdGVnb3J5VmlldykgPyAnYVtpZHg9JyArIF9oaWdobGlnaHRJZHggKyAnXScgOiAnYTpudGgtY2hpbGQoJyArIF9oaWdobGlnaHRJZHggKyAnKScpLmFkZENsYXNzKF9vcHRpb25zLkhpZ2hsaWdodEl0ZW1Dc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFRvdGFsV2lkdGhPZkNvbnRyb2wob2JqZWN0KSB7XHJcblxyXG4gICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCB8fCBvYmplY3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3Qud2lkdGgoKTtcclxuICAgICAgICB2YWx1ZSArPSBwYXJzZUludChvYmplY3QuY3NzKFwicGFkZGluZy1sZWZ0XCIpLCAxMCkgKyBwYXJzZUludChvYmplY3QuY3NzKFwicGFkZGluZy1yaWdodFwiKSwgMTApOyAvL1RvdGFsIFBhZGRpbmcgV2lkdGhcclxuICAgICAgICAvL3ZhbHVlICs9IHBhcnNlSW50KG9iamVjdC5jc3MoXCJtYXJnaW4tbGVmdFwiKSwgMTApICsgcGFyc2VJbnQob2JqZWN0LmNzcyhcIm1hcmdpbi1yaWdodFwiKSwgMTApOyAvL1RvdGFsIE1hcmdpbiBXaWR0aFxyXG4gICAgICAgIHZhbHVlICs9IHBhcnNlSW50KG9iamVjdC5jc3MoXCJib3JkZXJMZWZ0V2lkdGhcIiksIDEwKSArIHBhcnNlSW50KG9iamVjdC5jc3MoXCJib3JkZXJSaWdodFdpZHRoXCIpLCAxMCk7IC8vVG90YWwgQm9yZGVyIFdpZHRoXHJcblxyXG4gICAgICAgIGlmIChfb3B0aW9ucy5QYXJlbnRDb250YWluZXIgIT0gJycpIHtcclxuICAgICAgICAgICAgdmFsdWUgKz0gb2JqZWN0Lm9mZnNldCgpLmxlZnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0VG90YWxIZWlnaHRPZkNvbnRyb2wob2JqZWN0KSB7XHJcblxyXG4gICAgICAgIGlmIChvYmplY3QgPT0gbnVsbCB8fCBvYmplY3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3QuaGVpZ2h0KCk7XHJcbiAgICAgICAgdmFsdWUgKz0gcGFyc2VJbnQob2JqZWN0LmNzcyhcInBhZGRpbmctdG9wXCIpLCAxMCkgKyBwYXJzZUludChvYmplY3QuY3NzKFwicGFkZGluZy1ib3R0b21cIiksIDEwKTsgLy9Ub3RhbCBQYWRkaW5nIFdpZHRoXHJcbiAgICAgICAgLy92YWx1ZSArPSBwYXJzZUludChvYmplY3QuY3NzKFwibWFyZ2luLXRvcFwiKSwgMTApICsgcGFyc2VJbnQob2JqZWN0LmNzcyhcIm1hcmdpbi1ib3R0b21cIiksIDEwKTsgLy9Ub3RhbCBNYXJnaW4gV2lkdGhcclxuICAgICAgICB2YWx1ZSArPSBwYXJzZUludChvYmplY3QuY3NzKFwiYm9yZGVyVG9wV2lkdGhcIiksIDEwKSArIHBhcnNlSW50KG9iamVjdC5jc3MoXCJib3JkZXJCb3R0b21XaWR0aFwiKSwgMTApOyAvL1RvdGFsIEJvcmRlciBXaWR0aFxyXG4gICAgICAgIHZhbHVlICs9IG9iamVjdC5wb3NpdGlvbigpLnRvcDtcclxuXHJcbiAgICAgICAgaWYgKF9vcHRpb25zLlBhcmVudENvbnRhaW5lciAhPSAnJykge1xyXG4gICAgICAgICAgICB2YWx1ZSArPSBvYmplY3Qub2Zmc2V0KCkudG9wO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldEZpZWxkSnNvbihvYmosIHJ0LCBmaWVsZE5hbWUpIHtcclxuICAgICAgICBpZiAoX2l0ZW1UZXBsYXRlQ2FjaGVbcnQgKyAnXycgKyBmaWVsZE5hbWVdICE9IG51bGwpIHJldHVybiBfaXRlbVRlcGxhdGVDYWNoZVtydCArICdfJyArIGZpZWxkTmFtZV07XHJcblxyXG4gICAgICAgIGZvciAoayA9IDA7IGsgPCBvYmouUmVjb3JkVHlwZXMubGVuZ3RoOyBrKyspIHtcclxuICAgICAgICAgICAgZm9yIChqID0gMDsgb2JqLlJlY29yZFR5cGVzW2tdLk5hbWUgPT0gcnQgJiYgaiA8IG9iai5SZWNvcmRUeXBlc1trXS5GaWVsZHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouUmVjb3JkVHlwZXNba10uRmllbGRzW2pdLk5hbWUgPT0gZmllbGROYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX2l0ZW1UZXBsYXRlQ2FjaGVbcnQgKyAnXycgKyBmaWVsZE5hbWVdID0gb2JqLlJlY29yZFR5cGVzW2tdLkZpZWxkc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqLlJlY29yZFR5cGVzW2tdLkZpZWxkc1tqXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBwcmVnX3F1b3RlKHN0cikge1xyXG4gICAgICAgIHJldHVybiAoc3RyICsgJycpLnJlcGxhY2UoLyhbXFxcXFxcLlxcK1xcKlxcP1xcW1xcXlxcXVxcJFxcKFxcKVxce1xcfVxcPVxcIVxcPFxcPlxcfFxcOl0pL2csIFwiXFxcXCQxXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGhpZ2hsaWdodEtleXdvcmQoc3RyLCBrZXl3b3JkKSB7XHJcbiAgICAgICAgLy9yZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cChwcmVnX3F1b3RlKHRvKSwgJ2dpJyksIGJ5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoXCIoXCIgKyBwcmVnX3F1b3RlKGtleXdvcmQpICsgXCIpXCIsICdnaScpLCBcIjxzdHJvbmc+JDE8L3N0cm9uZz5cIik7XHJcbiAgICB9XHJcbn1cclxufSk7XHJcbn0pKGpRdWVyeSk7XHJcblxyXG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07Il0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsImEiLCJpIiwic2VsZiIsIiQiLCJqUXVlcnkiLCJmbiIsImV4dGVuZCIsIk9uZVNlYXJjaCIsIm9wdGlvbnMiLCJwcmV2aW91c2xvb2t1cGxhYmVsIiwiX29wdGlvbnMiLCJTZXJ2aWNlVXJsIiwiT25lU2VhcmNoTmFtZSIsIk9uZVNlYXJjaERTIiwiTWluQ2hhckxpbWl0IiwiRW5hYmxlQ3VycmVudExvY2F0aW9uIiwiRW5hYmxlUHJlTGlzdCIsIkF1dG9TZWxlY3RGaXJzdEl0ZW0iLCJSZXN1bHRMaW1pdCIsIkVuYWJsZVRvdWNoIiwiRGF0YVNvdXJjZSIsIkRhdGFTb3VyY2VDb250cm9sIiwiQ29udGFpbmVyQ3NzIiwiSXRlbUNzcyIsIkhpZ2hsaWdodEl0ZW1Dc3MiLCJSZWdpb24iLCJMb2NhbGUiLCJIZWxwVGV4dCIsIkFuaW1hdGVQbGFjZWhvbGRlclRleHQiLCJNdWx0aVNlbGVjdCIsIk11bHRpU2VsZWN0Qm94SWQiLCJNdWx0aVNlbGVjdFNob3dIZWxwVGV4dCIsIk11bHRpS2V5d29yZERlbGltaXRlciIsIkxvYWRpbmdJbWFnZVVybCIsIlBhcmVudENvbnRhaW5lciIsIkJlZm9yZUNhbGwiLCJBZnRlckNhbGwiLCJPblN1Y2Nlc3MiLCJPbkVycm9yIiwiT25TZWxlY3QiLCJPblRleHRDaGFuZ2UiLCJPblNlYXJjaCIsIk9uSW5jcmVtZW50YWxTZWFyY2giLCJPbk11bHRpU2VsZWN0UmVtb3ZlIiwiU2VhcmNoTW9kZSIsIlRlc3RNb2RlIiwiU3RpY2t5TW9kZSIsIkVuYWJsZUNhdGVnb3J5VmlldyIsIl90YXJnZXRDb250cm9sIiwiX3RhcmdldEF1dG9Db250cm9sIiwiX29uZVNlYXJjaEJveCIsIl9NdWx0aVNlbGVjdEJveCIsIl9sYXN0S2V5d29yZCIsIl9sYXN0U2VhcmNod29yZCIsIl9yZXF1ZXN0IiwiX3Jlc3Bvc2VDYWNoZSIsIl9pdGVtVGVwbGF0ZUNhY2hlIiwiX2hpZ2hsaWdodElkeCIsIl9pc09uQXJyb3dTZWxlY3Rpb24iLCJfaXNMb2NhdGlvblNlcmFjaEVuYWJsZWQiLCJ0aGlzIiwiZWFjaCIsIm9iaiIsImF0dHIiLCJyZXBsYWNlIiwiRGF0ZSIsInZhbHVlT2YiLCJ3aW5kb3ciLCJvbnBvcHN0YXRlIiwiZXZlbnQiLCJjc3MiLCJnZXRUb3RhbEhlaWdodE9mQ29udHJvbCIsImdldFRvdGFsV2lkdGhPZkNvbnRyb2wiLCJhZGRDbGFzcyIsImh0bWwiLCJhcHBlbmQiLCJpbnNlcnRBZnRlciIsImNsb3Nlc3QiLCJjbGljayIsImUiLCJ0YXJnZXQiLCJjbGFzc05hbWUiLCJzZXRUaW1lb3V0IiwiZm9jdXMiLCJNdWx0aVNlbGVjdEJveENzcyIsInZhbCIsIl9pdGVtIiwiX2l0ZW1WYWx1ZSIsInNwbGl0IiwicnQiLCJsZW5ndGgiLCJuIiwic2VhcmNoS2V5d29yZCIsInJlc3VsdEpzb24iLCJfbGFiZWxzIiwiX2tleXMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpdGVtIiwibCIsImpvaW4iLCJrIiwiYmluZEFzc29jaWF0ZUNvbnRyb2wiLCIkaW5wdXQiLCJ2YWx1ZSIsInRyaW0iLCJsYWJlbCIsImtleSIsImxhdCIsImxuZyIsInJkcyIsImtleWRvd24iLCJrZXlDb2RlIiwic2VsZWN0SGlnaGxpZ2h0ZWRJdGVtIiwic2VsZWN0SXRlbSIsImhpZ2hsaWdodEl0ZW0iLCJoaWRlIiwia2V5cHJlc3MiLCJwYXJzZUludCIsInByZXZlbnREZWZhdWx0Iiwia2V5dXAiLCJzaG93IiwiaW5kZXhPZiIsImZpbmQiLCJfdGVtcENvbnRNdWx0IiwiZ2V0Q3VycmVudExvY2F0aW9uT2JqZWN0IiwiY29uc29sZSIsImxvZyIsImJsdXIiLCJpc01hbnVhbFNlbGVjdCIsImRhdGEiLCJwYXJlbnQiLCJyZW1vdmVDbGFzcyIsIkluaXQiLCJkb2N1bWVudCIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJ0b0xvd2VyQ2FzZSIsImhvc3RuYW1lIiwibW91c2VvdmVyIiwic2VhcmNoTmVhcmJ5Iiwib24iLCJtb3VzZW91dCIsImlkeCIsIm5hdmlnYXRvciIsImdlb2xvY2F0aW9uIiwiZ2V0Q3VycmVudFBvc2l0aW9uIiwicG9zaXRpb24iLCJjb29yZHMiLCJsYXRpdHVkZSIsImxvbmdpdHVkZSIsImxvb2t1cExhYmVsIiwiYWZ0ZXJTZWFyY2giLCJhYm9ydCIsIl9zZWFyY2hQYXJhbSIsIl9zZWFyY2hLZXl3b3JkIiwiZ2V0VGltZSIsImFqYXgiLCJ0eXBlIiwidXJsIiwiZGF0YVR5cGUiLCJzdWNjZXNzIiwidW5kZWZpbmVkIiwiX2l0ZW1EYXRhIiwiX2ZpZWxkIiwiX2NhdGVnb3J5aXRlbSIsIl9jYXRlb2dvcnluYW1lIiwiaGlnaGxpZ2h0S2V5d29yZCIsImdldEZpZWxkSnNvbiIsIkl0ZW1UZW1wbGF0ZSIsImQiLCJJdGVtVGVtcGxhdGVzIiwiaiIsIlRlbXBsYXRlIiwibW91c2Vkb3duIiwiYXV0b1NlbGVjdEl0ZW0iLCJnIiwiaW5jbHVkZXMiLCJzdGF0dXNDb2RlIiwiX2xhYmVsIiwiX3NlbGVjdGVkVmFsdWUiLCJTZWxlY3RvciIsIm5vY2xlYXIiLCJhdXRvU2VsZWN0Iiwic3RhcnRzV2l0aCIsIlNraXBTZWxlY3QiLCJyZWdFeCIsIlJlZ0V4cCIsImluaXRpYWxMb2FkIiwibGFiZWxzIiwiX2N0cmxNdWx0aUZpZWxkIiwiX3ZhbHVlSXRlbXNDYXJyaWVyIiwiX3ZhbHVlSXRlbXMiLCJfbXVsdGlTZWxlY3RJdGVtIiwicmVtb3ZlRnJvbU11bHRpU2VsZWN0IiwiTXVsdGlJdGVtVGVtcGxhdGUiLCJoYXNMYWJlbExvb2t1cCIsImlzIiwibWUiLCJyZW1vdmUiLCJkaXJlY3Rpb24iLCJvYmplY3QiLCJ3aWR0aCIsIm9mZnNldCIsImxlZnQiLCJoZWlnaHQiLCJ0b3AiLCJmaWVsZE5hbWUiLCJSZWNvcmRUeXBlcyIsIk5hbWUiLCJGaWVsZHMiLCJzdHIiLCJrZXl3b3JkIiwicHJlZ19xdW90ZSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJnZXR0ZXIiLCJfX2VzTW9kdWxlIiwiZGVmaW5pdGlvbiIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJwcm9wIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIl0sInNvdXJjZVJvb3QiOiIifQ==
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var l=t();for(var a in l)("object"==typeof exports?exports:e)[a]=l[a]}}(self,(()=>(()=>{var e={803:()=>{var e;(e=jQuery).fn.extend({OneSearch:function(t){var l,a=e.extend({ServiceUrl:"",OneSearchName:"",OneSearchDS:null,MinCharLimit:3,EnableCurrentLocation:!1,EnablePreList:!1,AutoSelectFirstItem:!1,ResultLimit:10,EnableTouch:!1,DataSource:null,DataSourceControl:null,ContainerCss:"",ItemCss:"",HighlightItemCss:"",Region:"US",Locale:"NONE",HelpText:"",AnimatePlaceholderText:!1,MultiSelect:!1,MultiSelectBoxId:"",MultiSelectShowHelpText:!0,MultiKeywordDelimiter:"",LoadingImageUrl:"",ParentContainer:"",BeforeCall:null,AfterCall:null,OnSuccess:null,OnError:null,OnSelect:null,OnTextChange:null,OnSearch:null,OnIncrementalSearch:null,OnMultiSelectRemove:null,SearchMode:"Database",TestMode:!1,StickyMode:!1,EnableCategoryView:!1},t),n=null,r=null,o=null,s=null,c="",d="",u=null,h=null,p=[],m=0,v=!1,f=!1;return this.each((function(){!function(l){if(a.StickyMode&&!a.TestMode&&(a.TestMode=!0),n=l,a.AutoSelectFirstItem&&(r=e('input[id="'+e(n).attr("id")+'_AUTO_ITEM"]')),e(n).attr("autocomplete","nope"),e(n).attr("name",e(n).attr("id").replace(/\$/gi,"_")+(new Date).valueOf()),window.onpopstate=function(t){e(n).attr("name",e(n).attr("id").replace(/\$/gi,"_")+(new Date).valueOf())},o=e("<div>").attr("id",e(n).attr("id")+"_OneSearch").css("position",a.EnableTouch?"relative":"absolute").css("top",L(e(n))).css("width",b(e(n))).css("display","none").addClass(a.ContainerCss).html(a.HelpText),""!=a.ParentContainer?e("#"+a.ParentContainer).append(o):o.insertAfter(e(n)),e(n).closest("div").click((function(t){"block"==e(n).css("display")&&""!=e(n).html()||"CloseArea"!=t.target.className&&(a.EnablePreList||setTimeout((function(){e(n).focus()}),500))})),a.MultiSelect?(""!=a.MultiSelectBoxId&&(s=e("#"+a.MultiSelectBoxId)),null!=s&&""!=a.MultiSelectBoxCss&&s.addClass(a.MultiSelectBoxCss),a.MultiSelect&&e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){if(""!=e(this).val()){var t={},l=e(this).attr("id").split("_");t.rt=l[l.length-2],t.n=l[l.length-1],"True"==e(this).attr("data-label-lookup")?C(t.rt+"|"+t.n+"::"+e(this).val(),(function(l){var a="",i="";Array.isArray(l)&&(a=l.map((function(e){return e.l})).join(";"),i=l.map((function(e){return e.k})).join(";")),I(t,i,!0,a),e(n).val("")})):I(t,e(this).val(),!0)}}))):a.MultiSelect||e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){const t=e(this),l=t.val();if(l&&""!==l.trim()&&"True"===t.attr("data-label-lookup")){const e={},a=t.attr("id").split("_");e.rt=a[a.length-2],e.n=a[a.length-1],C(e.rt+"|"+e.n+"::"+l,(function(t){if(Array.isArray(t)&&t.length>0){const l=t[0].l,a=t[0].k;I(e,a,!0,l)}}))}})),a.EnableCurrentLocation){var i=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(),u=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(),S=e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val();void 0!==i&&void 0!==u&&void 0!==S&&""!=i&&""!=u&&""!=S&&(f=!0)}e(n).keydown((function(t){switch(t.keyCode){case 9:case 13:a.AutoSelectFirstItem&&e(n).val().length>0?(m>0?y():O(0,!1,!0),v=!1):(y(),v=!1);break;case 38:x(-1);break;case 39:a.AutoSelectFirstItem&&(O(0,!1,!0),e(o).hide(),e(r).val(""));break;case 40:x(1);break;case 27:e(o).hide(),h=null,p=[],m=0}})),e(n).keypress((function(t){parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),13==t.keyCode&&t.preventDefault()})),e(n).keyup((function(t){27!=t.keyCode&&(8!=t.keyCode&&46!=t.keyCode&&88!=t.keyCode&&86!=t.keyCode||0!=e(n).val().length||(I(null,null),a.AutoSelectFirstItem&&r.val("")),13==t.keyCode&&e(n).val().length>0&&!v?a.OnSearch&&a.OnSearch():13==t.keyCode&&e(n).val().length>0&&a.AutoSelectFirstItem?m>0?y():O(0,!1,!0):a.OnIncrementalSearch&&a.OnIncrementalSearch(),e(n).val().length>=a.MinCharLimit||a.EnablePreList||a.EnableCurrentLocation?e(o).show():e(o).hide(),13==t.keyCode&&e(o).hide(),e(n).val().indexOf(c)<0&&e(o).html(""),8!=t.keyCode&&46!=t.keyCode||(c="",d=""),c!=e(n).val()&&(a.OnTextChange&&a.OnTextChange(e(n).val()),I(null,null),c=e(n).val(),"none"!=e(o).css("display")&&(""!=a.LoadingImageUrl&&e(n).val().length>=a.MinCharLimit&&e(o).html('<img src="'+a.LoadingImageUrl+'" />'),setTimeout((function(){C()}),500))))})),e(n).focus((function(){if(parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),a.MultiSelect)if(s.find("a.agora-onesearch-multi-sel-item-close").length>0){var l=e("<div>").html(e(s.html()));e(l).find("a.agora-onesearch-multi-sel-item-close").each((function(){e(this).attr("onclick","javascript:$('#"+t.MultiSelectBoxId+" #"+e(this).attr("id")+"').trigger('click')")})),a.MultiSelectShowHelpText?a.HelpText='<div style="padding:7px"><font style="color:red">You have already selected</font>'+(a.StickyMode?'<a class="CloseArea" href="javascript:void(0);" title="Click here to hide selected filters." onclick="$(\'#'+e(n).attr("id")+"_OneSearch').hide();\">Close</a>":"")+'<hr style="margin:0px 0px 7px 0px" />'+l.html()+"</div>":a.EnableCurrentLocation&&e(l).append(g())}else a.HelpText="",a.EnableCurrentLocation&&(0==e(o).find("[data-location-search]").length&&e(o).append(g()),e(o).show());a.EnablePreList?(C(),e(o).show()):!a.MultiSelect&&a.EnableCurrentLocation?(0==e(o).find("[data-location-search]").length&&e(o).append(g()),console.log(g()),e(o).show()):""!=a.HelpText&&""==e(n).val()&&(e(o).html(a.HelpText),parseInt(o.css("width"))!=b(e(n))&&o.css("width",b(e(n))),parseInt(o.css("top"))!=L(e(n))&&o.css("top",L(e(n))),e(o).show())})),e(n).blur((function(){a.AutoSelectFirstItem&&e(n).val().length>0&&!a.MultiSelect&&setTimeout((function(){var t=e(n).data("is-manual-select");void 0!==t&&0!=t||O(0,!0,!0),e(n).data("is-manual-select",!1)}),50),setTimeout((function(){a.TestMode?(e(o).find("[data-location-search]").length>0&&a.TestMode||a.StickyMode&&0==e(o).find("div.agora-onesearch-multi-sel-item-cont").length)&&(e(o).html(""),e(o).hide(),e(o).parent().removeClass("is-dirty")):(e(o).html(""),e(o).hide(),0==e(n).val().length&&e(o).parent().removeClass("is-dirty"))}),300)})),C(),1==a.AnimatePlaceholderText&&""==e(n).val()&&AnimatePlaceholderText(e(n),"",0)}(e(this))}));function g(){return a.EnableCurrentLocation&&(document.location.protocol.toLowerCase().indexOf("https")>-1||document.location.hostname.indexOf("localhost")>-1)?e("<a>").html('<i class="aga aga-location"></i>'+e(n).attr("EnableCurrentLocationLabel")).css("display","block").css("width","100%").css("padding","3px").css("color","red").attr("idx",-1).addClass("get-my-direction").attr("data-location-search","").mouseover((function(){e(this).css("background-color:red"),e(this).addClass(a.HighlightItemCss)})).click((function(){S(e(this).attr("idx"))})).on("tap",(function(){S(e(this).attr("idx"))})).mouseout((function(){e(this).removeClass(a.HighlightItemCss)})):null}function S(t){navigator.geolocation&&navigator.geolocation.getCurrentPosition((function(t){e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(t.coords.latitude),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(t.coords.longitude),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val(null!=e(n).attr("DefaultSearchRadius")&&"0"!=e(n).attr("DefaultSearchRadius")?e(n).attr("DefaultSearchRadius"):"5"),f=!0,a.OnSelect&&a.OnSelect({k:t.coords.latitude+"|"+t.coords.longitude,n:"IDCLATITUDE|IDCLONGITUDE",rt:"LOCATION"}),a.OnSuccess&&a.OnSuccess()})),O(t)}function C(t,s){(d!=e(n).val()||a.EnablePreList||null!=t)&&(null!=u&&null==l&&u.abort(),l=null!=t?t:null,e(n).val().length<a.MinCharLimit?c="":d=e(n).val(),null==t&&!a.EnablePreList&&e(n).val().length<a.MinCharLimit||(a.AutoSelectFirstItem&&(e(r).val(""),e(n).data("is-manual-select",!1)),_searchParam=e(n).val().length<a.MinCharLimit?"":e(n).val(),_searchKeyword=(e(n).val().length<a.MinCharLimit?"":e(n).val().replace(/#/g,"%23"))+"&t="+(new Date).getTime(),null!=t&&t.length>0&&(_searchParam=_searchKeyword="LOOKUP_LABEL::"+t),u=e.ajax({type:"POST",url:a.ServiceUrl+"?Keyword="+_searchKeyword,data:{Keyword:_searchParam,SearchMode:a.SearchMode,OneSearchName:a.OneSearchName,Region:a.Region,Locale:a.Locale,AdditionalWhere:e(n).attr("AdditionalWhere")},dataType:"json",success:function(l){if(null==t||null==s)if(h=l,m=0,e(o).html(""),null!=l&&0!=l.length){var r="",c="",d=null,u="",p="";for(i=0;i<l.length;i++){if(r=w(l[i].l,e(n).val()),null!=(c=M(a.OneSearchDS,l[i].rt,l[i].n))&&null!=c.ItemTemplate&&""!=c.ItemTemplate)r=(r=c.ItemTemplate.replace("{$l}",w(l[i].l,e(n).val()))).replace("{$d}",l[i].d);else if(null!=c&&c.ItemTemplates.length>0)for(j=0;j<c.ItemTemplates.length;j++)c.ItemTemplates[j].Locale==a.Locale&&(r=(r=c.ItemTemplates[j].Template.replace("{$l}",w(l[i].l,e(n).val()))).Template.replace("{$d}",l[i].d));d=e("<a>").html(r).css("display","block").css("width","100%").css("padding","3px").css("text-decoration","none").css("color","black").attr("idx",i).mouseover((function(){e(this).addClass(a.HighlightItemCss)})).mousedown((function(){e(n).data("is-manual-select",!0)})).click((function(){O(e(this).attr("idx"))})).on("tap",(function(){e(n).data("is-manual-select",!0),O(e(this).attr("idx"))})).mouseout((function(){e(this).removeClass(a.HighlightItemCss)})),0==i&&a.AutoSelectFirstItem&&T(i),a.EnableCategoryView?(p!=l[i].g&&((u=e("<div>").addClass("OneSearchBox-category-"+l[i].g)).append(e("<span>").html(l[i].g)),p=l[i].g),u.append(d),e(o).append(u),0==i&&e(o)[i].className.includes("OneSearchBox-")&&(e(o)[i].className=e(o)[i].className.replace(/\bOneSearchBox-[A-Za-z]*\b/g,"")),e(o).addClass("OneSearchBox-"+l[i].g)):e(o).append(d)}}else e(o).hide();else s(l)},statusCode:{404:function(){console.log("Service (agoraOneSearch) not found!")}}})))}function y(){if(!(null==h||h.length<m-1||m<=0)){var t,l="",i=M(a.OneSearchDS,h[m-1].rt,h[m-1].n);null!=i&&""!=i.ItemTemplate&&(l=null!=i.Selector&&null!=i.Selector&&"k"==i.Selector?h[m-1].k:h[m-1].l),t=h[m-1].l,a.MultiSelect?e(n).val(""):e(n).val(t),c=e(n).val(),I(h[m-1],l),a.AutoSelectFirstItem&&T(m-1),a.OnSelect&&a.OnSelect(h[m-1]),m=0,a.TestMode||e(o).html("")}}function O(t,l,i){var s="",d="";if(null!=l&&null!=l||(l=!1),null!=i&&null!=i||(i=!1),void 0!==h&&null!=h&&0!=h.length){var u=M(a.OneSearchDS,h[t].rt,h[t].n);null!=u&&""!=u.ItemTemplate&&(d=null!=u.Selector&&null!=u.Selector&&"k"==u.Selector?h[t].k:h[t].l),s=h[t].l,1!=i||s.toLowerCase().startsWith(e(n).val().toLowerCase())?(a.MultiSelect?(e(n).val(""),a.AutoSelectFirstItem&&e(r).val("")):(null!=u&&1!=u.SkipSelect?e(n).val(s):e(n).val(""),a.AutoSelectFirstItem&&e(r).val("")),c=e(n).val(),t>=0&&f&&(e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLAT"]').val(""),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RLONG"]').val(""),e('input[type="hidden"][id="'+e(n).attr("id")+'_GPS_RDS"]').val(""),e("#draw_search").click()),null!=u&&1!=u.SkipSelect&&I(h[t],d),a.OnSelect&&a.OnSelect(h[t]),a.TestMode||l||e(o).html(""),a.MultiSelect&&(a.EnablePreList||setTimeout((function(){e(n).focus()}),200))):e(r).val("")}}function T(t){var l="";if(null!=e(n).val()&&""!=e(n).val()&&void 0!==h&&null!=h&&0!=h.length){var i=M(a.OneSearchDS,h[t].rt,h[t].n);if(null!=i&&""!=i.ItemTemplate&&(null!=i.Selector&&null!=i.Selector&&"k"==i.Selector?h[t].k:h[t].l),(l=h[t].l).includes("<span")&&(l=l.replace(/<span[^>]*>.*?<\/span>/gi,"").trim()),l.toLowerCase().replace(/\,/g,"").startsWith(e(n).val().toLowerCase().replace(/\,/g,""))){var o=new RegExp(e(n).val(),"ig");e(r).val(l.replace(o,e(n).val())),c=e(n).val()}else e(r).val("")}}function I(t,l,r,o){if(a.MultiSelect){if(null==t)return;var c=e("#"+e(n).attr("id")+"_"+t.rt+"_"+t.n),d=u=l.split(";");if(null!=o&&null!=o)var u=o.split(";");var h=M(a.OneSearchDS,t.rt,t.n);for(i=0;i<u.length&&null!=h;i++)if(!(u[i].length<2)&&(-1==(";"+c.val().toLowerCase()+";").indexOf(";"+u[i].toLowerCase()+";")||r)){r||c.val(c.val()+";"+u[i]);var p=e("<div>").addClass("agora-onesearch-multi-sel-item-cont").attr("id","multiitem"+e(n).attr("id")+"_"+t.rt+"_"+t.n+u[i].replace(/\ /g,"_").replace(/\-/g,"_").replace(/[^A-z0-9]/g,"_")).append(e("<a>").addClass("agora-onesearch-multi-sel-item-close").attr("title","Click here to hide this area filter.").attr("id","multiitem_close_"+e(n).attr("id")+"_"+t.rt+"_"+t.n+u[i].replace(/\ /g,"_").replace(/\-/g,"_").replace(/[^A-z0-9]/g,"_")).attr("val",d[i]).html('<i class="aga aga-close"></i>').click((function(){_(e(this),t,e(this).attr("val"))}))).append(e("<a>").html(h.MultiItemTemplate.replace("{$l}",null!=t&&null!=t.l?t.l:u[i]).replace("{$d}",null!=t&&null!=t.d?t.d:u[i])));s.append(p)}!r&&a.OnMultiSelectRemove&&a.OnMultiSelectRemove()}else{const a=e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').is('[data-label-lookup="True"]');if(null==t)return;if(a&&o)e(n).val(o);else{if(e('input[type="hidden"][id^="'+e(n).attr("id")+'"]').each((function(){e(this).val("")})),null==t)return;e("#"+e(n).attr("id")+"_"+t.rt+"_"+t.n).val(l)}}}function _(t,l,i){var r=e("#"+e(n).attr("id")+"_"+l.rt+"_"+l.n);0!=r.val().indexOf(";")&&r.val(";"+r.val()),r.val(r.val().replace(";"+i,"")),e(t).parent().remove(),""!=r.val()&&0!=e(o).find("div.agora-onesearch-multi-sel-item-cont").length||(e(o).html(""),e(o).hide()),a.OnMultiSelectRemove&&a.OnMultiSelectRemove()}function x(t){v=!0,t>0?m<e(o).find("a").length&&m++:m>1&&m--,e(o).find("a").each((function(){e(this).removeClass(a.HighlightItemCss)})),e(o).find(a.EnableCategoryView?"a[idx="+m+"]":"a:nth-child("+m+")").addClass(a.HighlightItemCss)}function b(e){if(null==e||0==e.length)return 0;var t=e.width();return t+=parseInt(e.css("padding-left"),10)+parseInt(e.css("padding-right"),10),t+=parseInt(e.css("borderLeftWidth"),10)+parseInt(e.css("borderRightWidth"),10),""!=a.ParentContainer&&(t+=e.offset().left),t}function L(e){if(null==e||0==e.length)return 0;var t=e.height();return t+=parseInt(e.css("padding-top"),10)+parseInt(e.css("padding-bottom"),10),t+=parseInt(e.css("borderTopWidth"),10)+parseInt(e.css("borderBottomWidth"),10),t+=e.position().top,""!=a.ParentContainer&&(t+=e.offset().top),t}function M(e,t,l){if(null!=p[t+"_"+l])return p[t+"_"+l];for(k=0;k<e.RecordTypes.length;k++)for(j=0;e.RecordTypes[k].Name==t&&j<e.RecordTypes[k].Fields.length;j++)if(e.RecordTypes[k].Fields[j].Name==l)return p[t+"_"+l]=e.RecordTypes[k].Fields[j],e.RecordTypes[k].Fields[j];return null}function w(e,t){return e.replace(new RegExp("("+function(e){return(e+"").replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g,"\\$1")}(t)+")","gi"),"<strong>$1</strong>")}}})}},t={};function l(a){var n=t[a];if(void 0!==n)return n.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,l),i.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{"use strict";l.r(a);l(803)})(),a})()));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onesearch.js","mappings":"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","sources":["webpack:///webpack/universalModuleDefinition","webpack:///../../Agora 4.0/IdcGlobal.Agora.JavaScript.PlugIn/MaxOneSearch.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","(function ($) {\r\n\r\n //Attach this new method to jQuery\r\n $.fn.extend({\r\n\r\n //This is where you write your plugin's name\r\n OneSearch: function (options) {\r\n\r\n //Set the default values, use comma to separate the settings, example:\r\n var _defaults = {\r\n ServiceUrl: '',\r\n OneSearchName: '',\r\n OneSearchDS: null,\r\n MinCharLimit: 3,\r\n EnableCurrentLocation: false,\r\n EnablePreList: false,\r\n AutoSelectFirstItem: false,\r\n ResultLimit: 10,\r\n EnableTouch: false,\r\n DataSource: null,\r\n DataSourceControl: null,\r\n ContainerCss: '',\r\n ItemCss: '',\r\n HighlightItemCss: '',\r\n Region: 'US',\r\n Locale: 'NONE',\r\n HelpText: '',\r\n AnimatePlaceholderText: false,\r\n MultiSelect: false,\r\n MultiSelectBoxId: '',\r\n MultiSelectShowHelpText: true,\r\n MultiKeywordDelimiter: '',\r\n LoadingImageUrl: '',\r\n ParentContainer: '',\r\n BeforeCall: null,\r\n AfterCall: null,\r\n OnSuccess: null,\r\n OnError: null,\r\n OnSelect: null,\r\n OnTextChange: null,\r\n OnSearch: null,\r\n OnIncrementalSearch: null,\r\n OnMultiSelectRemove: null,\r\n SearchMode: 'Database', // Cache, Database, Smart\r\n TestMode: false,\r\n StickyMode: false,\r\n EnableCategoryView: false\r\n }\r\n\r\n var _options = $.extend(_defaults, options);\r\n var _targetControl = null;\r\n var _targetAutoControl = null;\r\n var _oneSearchBox = null;\r\n var _MultiSelectBox = null;\r\n\r\n var _lastKeyword = '';\r\n var _lastSearchword = '';\r\n\r\n var _request = null;\r\n var _resposeCache = null;\r\n var _itemTeplateCache = [];\r\n var _highlightIdx = 0;\r\n\r\n var _isOnArrowSelection = false;\r\n var _isLocationSerachEnabled = false;\r\n\r\n //Iterate over the current set of matched elements\r\n return this.each(function () {\r\n Init($(this));\r\n });\r\n\r\n function Init(obj) {\r\n if (_options.StickyMode && !_options.TestMode) _options.TestMode = true;\r\n\r\n _targetControl = obj;\r\n\r\n if (_options.AutoSelectFirstItem) {\r\n _targetAutoControl = $('input[id=\"' + $(_targetControl).attr('id') + '_AUTO_ITEM\"]')\r\n }\r\n\r\n // disable browser autocomplete on input\r\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\r\n $(_targetControl).attr('autocomplete', 'nope');\r\n $(_targetControl).attr('name', $(_targetControl).attr('id').replace(/\\$/gi, '_') + (new Date()).valueOf());\r\n window.onpopstate = function (event) {\r\n $(_targetControl).attr('name', $(_targetControl).attr('id').replace(/\\$/gi, '_') + (new Date()).valueOf());\r\n };\r\n _oneSearchBox = $('<div>')\r\n .attr('id', $(_targetControl).attr('id') + '_OneSearch')\r\n .css('position', (_options.EnableTouch ? 'relative' : 'absolute'))\r\n .css('top', getTotalHeightOfControl($(_targetControl)))\r\n .css('width', getTotalWidthOfControl($(_targetControl)))\r\n .css('display', 'none')\r\n .addClass(_options.ContainerCss)\r\n .html(_options.HelpText);\r\n\r\n if (_options.ParentContainer != '') {\r\n $('#' + _options.ParentContainer).append(_oneSearchBox);\r\n } else {\r\n _oneSearchBox.insertAfter($(_targetControl));\r\n }\r\n\r\n $(_targetControl).closest('div').click(function (e) {\r\n if ($(_targetControl).css('display') == 'block' && $(_targetControl).html() != '') return;\r\n if (e.target.className == 'CloseArea') return;\r\n //MdlReloadControlState($(this), $(this).closest('[data-search]'));\r\n if (!_options.EnablePreList) {\r\n setTimeout(function () {\r\n $(_targetControl).focus();\r\n }, 500);\r\n }\r\n });\r\n\r\n if (_options.MultiSelect) {\r\n if (_options.MultiSelectBoxId != '') {\r\n _MultiSelectBox = $('#' + _options.MultiSelectBoxId)\r\n }\r\n if (_MultiSelectBox != null && _options.MultiSelectBoxCss != '') {\r\n _MultiSelectBox.addClass(_options.MultiSelectBoxCss);\r\n }\r\n\r\n reloadMultiSelectOnLoad();\r\n }\r\n else {\r\n reloadSingleSelectOnLoadForDatalookup();\r\n }\r\n\r\n //check is location search enabled\r\n if (_options.EnableCurrentLocation) {\r\n var lat = $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLAT\"]').val();\r\n var lng = $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLONG\"]').val();\r\n var rds = $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RDS\"]').val();\r\n if (typeof (lat) != 'undefined' && typeof (lng) != 'undefined' && typeof (rds) != 'undefined' && lat != '' && lng != '' && rds != '') {\r\n _isLocationSerachEnabled = true;\r\n }\r\n }\r\n $(_targetControl).keydown(function (e) {\r\n switch (e.keyCode) {\r\n case 9 /* tab */:\r\n case 13 /* enter */:\r\n if (_options.AutoSelectFirstItem && $(_targetControl).val().length > 0) {\r\n if (_highlightIdx > 0) selectHighlightedItem(); else {\r\n selectItem(0, false, true);\r\n }\r\n _isOnArrowSelection = false;\r\n } else {\r\n selectHighlightedItem();\r\n _isOnArrowSelection = false;\r\n }\r\n break;\r\n //case 37 /* left */:\r\n\r\n // break;\r\n case 38 /* up */:\r\n highlightItem(-1);\r\n break;\r\n case 39 /* right */:\r\n if (_options.AutoSelectFirstItem) {\r\n selectItem(0, false, true);\r\n $(_oneSearchBox).hide();\r\n $(_targetAutoControl).val('');\r\n }\r\n break;\r\n case 40 /* down */:\r\n highlightItem(1);\r\n break;\r\n case 27 /* escape */:\r\n $(_oneSearchBox).hide();\r\n _resposeCache = null;\r\n _itemTeplateCache = [];\r\n _highlightIdx = 0;\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n $(_targetControl).keypress(function (e) {\r\n if (parseInt(_oneSearchBox.css('width')) != getTotalWidthOfControl($(_targetControl))) {\r\n _oneSearchBox.css('width', getTotalWidthOfControl($(_targetControl)));\r\n }\r\n if (parseInt(_oneSearchBox.css('top')) != getTotalHeightOfControl($(_targetControl))) {\r\n _oneSearchBox.css('top', getTotalHeightOfControl($(_targetControl)));\r\n }\r\n\r\n if (e.keyCode == 13) e.preventDefault();\r\n });\r\n\r\n $(_targetControl).keyup(function (e) {\r\n if (e.keyCode == 27) return;\r\n\r\n if ((e.keyCode == 8 || e.keyCode == 46 || e.keyCode == 88 || e.keyCode == 86) && $(_targetControl).val().length == 0) {\r\n bindAssociateControl(null, null);\r\n if (_options.AutoSelectFirstItem) _targetAutoControl.val('');\r\n }\r\n\r\n //if (e.keyCode == 13 && $(_targetControl).val().length > 0 && $(_oneSearchBox).css('display') == 'none') {\r\n // if (_options.OnSearch) _options.OnSearch();\r\n //}\r\n if (e.keyCode == 13 && $(_targetControl).val().length > 0 && !_isOnArrowSelection) {\r\n if (_options.OnSearch) _options.OnSearch();\r\n } else if (e.keyCode == 13 && $(_targetControl).val().length > 0 && _options.AutoSelectFirstItem) {\r\n if (_highlightIdx > 0) selectHighlightedItem(); else {\r\n selectItem(0, false, true);\r\n }\r\n } else if (_options.OnIncrementalSearch) {\r\n _options.OnIncrementalSearch();\r\n }\r\n\r\n if ($(_targetControl).val().length >= _options.MinCharLimit || _options.EnablePreList || _options.EnableCurrentLocation) $(_oneSearchBox).show(); else $(_oneSearchBox).hide();\r\n\r\n if (e.keyCode == 13) $(_oneSearchBox).hide();\r\n\r\n if ($(_targetControl).val().indexOf(_lastKeyword) < 0) {\r\n $(_oneSearchBox).html('');\r\n }\r\n\r\n if (e.keyCode == 8 || e.keyCode == 46) {\r\n _lastKeyword = '';\r\n _lastSearchword = '';\r\n }\r\n\r\n // If there is no change the last and current value in the keyword, then no need to continue\r\n if (_lastKeyword == $(_targetControl).val()) return;\r\n\r\n if (_options.OnTextChange) _options.OnTextChange($(_targetControl).val());\r\n\r\n // Clear associated controls since the keyword has been changed\r\n bindAssociateControl(null, null);\r\n\r\n // set current value of the text boox as last value/keyword\r\n _lastKeyword = $(_targetControl).val();\r\n\r\n // if the suggestion box is hidden then no need to continue\r\n if ($(_oneSearchBox).css('display') == 'none') return;\r\n\r\n if (_options.LoadingImageUrl != '' && $(_targetControl).val().length >= _options.MinCharLimit) {\r\n $(_oneSearchBox).html('<img src=\"' + _options.LoadingImageUrl + '\" />');\r\n }\r\n\r\n setTimeout(function () {\r\n searchKeyword();\r\n }, 500);\r\n });\r\n\r\n $(_targetControl).focus(function () {\r\n\r\n if (parseInt(_oneSearchBox.css('width')) != getTotalWidthOfControl($(_targetControl))) {\r\n _oneSearchBox.css('width', getTotalWidthOfControl($(_targetControl)));\r\n }\r\n if (parseInt(_oneSearchBox.css('top')) != getTotalHeightOfControl($(_targetControl))) {\r\n _oneSearchBox.css('top', getTotalHeightOfControl($(_targetControl)));\r\n }\r\n\r\n\r\n if (_options.MultiSelect) {\r\n if (_MultiSelectBox.find('a.agora-onesearch-multi-sel-item-close').length > 0) {\r\n var _tempContMult = $('<div>')\r\n .html($(_MultiSelectBox.html()));\r\n $(_tempContMult).find('a.agora-onesearch-multi-sel-item-close').each(function () {\r\n $(this).attr('onclick', 'javascript:$(\\'#' + options.MultiSelectBoxId + ' #' + $(this).attr('id') + '\\').trigger(\\'click\\')')\r\n })\r\n\r\n if (_options.MultiSelectShowHelpText) _options.HelpText = '<div style=\"padding:7px\"><font style=\"color:red\">You have already selected</font>' + ((_options.StickyMode) ? '<a class=\"CloseArea\" href=\"javascript:void(0);\" title=\"Click here to hide selected filters.\" onclick=\"$(\\'#' + $(_targetControl).attr('id') + '_OneSearch' + '\\').hide();\">Close</a>' : '') + '<hr style=\"margin:0px 0px 7px 0px\" />' + _tempContMult.html() + '</div>';\r\n else {\r\n if (_options.EnableCurrentLocation) {\r\n $(_tempContMult).append(getCurrentLocationObject());\r\n }\r\n }\r\n } else {\r\n _options.HelpText = '';\r\n if (_options.EnableCurrentLocation) {\r\n if ($(_oneSearchBox).find('[data-location-search]').length == 0)\r\n $(_oneSearchBox).append(getCurrentLocationObject());\r\n $(_oneSearchBox).show();\r\n }\r\n }\r\n }\r\n\r\n if (_options.EnablePreList) {\r\n searchKeyword();\r\n $(_oneSearchBox).show();\r\n } else if (!_options.MultiSelect && _options.EnableCurrentLocation) {\r\n if ($(_oneSearchBox).find('[data-location-search]').length == 0)\r\n $(_oneSearchBox).append(getCurrentLocationObject());\r\n console.log(getCurrentLocationObject());\r\n $(_oneSearchBox).show();\r\n } else if (_options.HelpText != '' && $(_targetControl).val() == '') {\r\n $(_oneSearchBox).html(_options.HelpText);\r\n\r\n if (parseInt(_oneSearchBox.css('width')) != getTotalWidthOfControl($(_targetControl))) {\r\n _oneSearchBox.css('width', getTotalWidthOfControl($(_targetControl)));\r\n }\r\n if (parseInt(_oneSearchBox.css('top')) != getTotalHeightOfControl($(_targetControl))) {\r\n _oneSearchBox.css('top', getTotalHeightOfControl($(_targetControl)));\r\n }\r\n\r\n $(_oneSearchBox).show();\r\n }\r\n });\r\n\r\n $(_targetControl).blur(function () {\r\n if (_options.AutoSelectFirstItem && $(_targetControl).val().length > 0 && !_options.MultiSelect) {\r\n setTimeout(function () {\r\n var isManualSelect = $(_targetControl).data('is-manual-select');\r\n if (typeof (isManualSelect) == 'undefined' || isManualSelect == false)\r\n selectItem(0, true, true);\r\n $(_targetControl).data('is-manual-select', false);\r\n }, 50);\r\n }\r\n setTimeout(function () {\r\n if (!_options.TestMode) {\r\n $(_oneSearchBox).html('');\r\n $(_oneSearchBox).hide();\r\n if ($(_targetControl).val().length == 0) {\r\n $(_oneSearchBox).parent().removeClass('is-dirty');\r\n }\r\n\r\n }\r\n else if ($(_oneSearchBox).find('[data-location-search]').length > 0 && _options.TestMode) {\r\n $(_oneSearchBox).html('');\r\n $(_oneSearchBox).hide();\r\n $(_oneSearchBox).parent().removeClass('is-dirty');\r\n }\r\n else if (_options.StickyMode && $(_oneSearchBox).find('div.agora-onesearch-multi-sel-item-cont').length == 0) {\r\n $(_oneSearchBox).html('');\r\n $(_oneSearchBox).hide();\r\n $(_oneSearchBox).parent().removeClass('is-dirty');\r\n }\r\n }, 300);\r\n });\r\n\r\n searchKeyword();\r\n\r\n if (_options.AnimatePlaceholderText == true && $(_targetControl).val() == '') {\r\n AnimatePlaceholderText($(_targetControl), '', 0);\r\n }\r\n }\r\n\r\n function getCurrentLocationObject() {\r\n if (_options.EnableCurrentLocation && (document.location.protocol.toLowerCase().indexOf('https') > -1 || document.location.hostname.indexOf('localhost') > -1)) {\r\n return $('<a>')\r\n .html('<i class=\"aga aga-location\"></i>' + $(_targetControl).attr('EnableCurrentLocationLabel'))\r\n .css('display', 'block')\r\n .css('width', '100%')\r\n .css('padding', '3px')\r\n .css('color', 'red')\r\n .attr('idx', -1)\r\n .addClass('get-my-direction')\r\n .attr('data-location-search', '')\r\n .mouseover(function () { $(this).css('background-color:red'); $(this).addClass(_options.HighlightItemCss); })\r\n .click(function () { searchNearby($(this).attr('idx')); })\r\n .on('tap', function () { searchNearby($(this).attr('idx')); })\r\n .mouseout(function () { $(this).removeClass(_options.HighlightItemCss); });\r\n }\r\n return null;\r\n }\r\n\r\n function clearNearby() {\r\n if (_isLocationSerachEnabled) {\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLAT\"]').val('');\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLONG\"]').val('');\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RDS\"]').val('');\r\n $('#draw_search').click();\r\n }\r\n }\r\n\r\n function searchNearby(idx) {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(function (position) {\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLAT\"]').val(position.coords.latitude);\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RLONG\"]').val(position.coords.longitude);\r\n $('input[type=\"hidden\"][id=\"' + $(_targetControl).attr('id') + '_GPS_RDS\"]').val(($(_targetControl).attr('DefaultSearchRadius') != null && $(_targetControl).attr('DefaultSearchRadius') != '0') ? $(_targetControl).attr('DefaultSearchRadius') : '5');\r\n _isLocationSerachEnabled = true;\r\n if (_options.OnSelect) _options.OnSelect({ \"k\": position.coords.latitude + '|' + position.coords.longitude, \"n\": \"IDCLATITUDE|IDCLONGITUDE\", \"rt\": \"LOCATION\" });\r\n if (_options.OnSuccess) _options.OnSuccess();\r\n })\r\n }\r\n selectItem(idx);\r\n }\r\n var previouslookuplabel=null;\r\n function searchKeyword(lookupLabel, afterSearch) {\r\n if (_lastSearchword == $(_targetControl).val() && !_options.EnablePreList && lookupLabel == null) return;\r\n // If there already a request not yet completed then that need to stop/abort before staarting new one\r\n if (_request != null && previouslookuplabel == null)\r\n _request.abort();\r\n if (lookupLabel != null)\r\n previouslookuplabel = lookupLabel;\r\n else\r\n previouslookuplabel = null;\r\n\r\n if ($(_targetControl).val().length < _options.MinCharLimit) _lastKeyword = ''; else _lastSearchword = $(_targetControl).val();\r\n\r\n if (lookupLabel == null && !_options.EnablePreList && $(_targetControl).val().length < _options.MinCharLimit) return;\r\n\r\n if (_options.AutoSelectFirstItem) {\r\n $(_targetAutoControl).val('');\r\n $(_targetControl).data('is-manual-select', false);\r\n }\r\n\r\n _searchParam = (($(_targetControl).val().length < _options.MinCharLimit) ? '' : $(_targetControl).val())\r\n _searchKeyword = (($(_targetControl).val().length < _options.MinCharLimit) ? '' : $(_targetControl).val().replace(/#/g, '%23')) + '&t=' + new Date().getTime()\r\n if (lookupLabel != null && lookupLabel.length > 0) {\r\n _searchParam = _searchKeyword = 'LOOKUP_LABEL::' + lookupLabel;\r\n }\r\n\r\n _request = $.ajax({\r\n type: 'POST',\r\n url: _options.ServiceUrl + \"?Keyword=\" + _searchKeyword,\r\n data: ({ \"Keyword\": _searchParam, \"SearchMode\": _options.SearchMode, \"OneSearchName\": _options.OneSearchName, \"Region\": _options.Region, \"Locale\": _options.Locale, \"AdditionalWhere\": $(_targetControl).attr('AdditionalWhere') }),\r\n dataType: 'json',\r\n success: function (data) {\r\n if (lookupLabel != null && afterSearch != null) {\r\n afterSearch(data);\r\n return;\r\n }\r\n _resposeCache = data;\r\n _highlightIdx = 0;\r\n $(_oneSearchBox).html('');\r\n if (data == undefined || data.length == 0) {\r\n $(_oneSearchBox).hide();\r\n return;\r\n }\r\n\r\n var _itemData = '';\r\n var _field = '';\r\n var _item = null;\r\n var _categoryitem = '';\r\n var _cateogoryname = '';\r\n \r\n\r\n for (i = 0; i < data.length; i++) {\r\n _itemData = highlightKeyword(data[i].l, $(_targetControl).val());\r\n _field = getFieldJson(_options.OneSearchDS, data[i].rt, data[i].n);\r\n\r\n if (_field != null && _field.ItemTemplate != null && _field.ItemTemplate != '') {\r\n _itemData = _field.ItemTemplate.replace('{$l}', highlightKeyword(data[i].l, $(_targetControl).val()));\r\n _itemData = _itemData.replace('{$d}', data[i].d);\r\n } else if (_field != null && _field.ItemTemplates.length > 0) {\r\n for (j = 0; j < _field.ItemTemplates.length; j++) {\r\n if (_field.ItemTemplates[j].Locale == _options.Locale) {\r\n _itemData = _field.ItemTemplates[j].Template.replace('{$l}', highlightKeyword(data[i].l, $(_targetControl).val()));\r\n _itemData = _itemData.Template.replace('{$d}', data[i].d);\r\n }\r\n }\r\n }\r\n\r\n _item = $('<a>')\r\n .html(_itemData)\r\n .css('display', 'block')\r\n .css('width', '100%')\r\n .css('padding', '3px')\r\n .css('text-decoration', 'none')\r\n .css('color', 'black')\r\n .attr('idx', i)\r\n .mouseover(function () { $(this).addClass(_options.HighlightItemCss); })\r\n .mousedown(function () { $(_targetControl).data('is-manual-select', true); })\r\n .click(function () { selectItem($(this).attr('idx')); })\r\n .on('tap', function () { $(_targetControl).data('is-manual-select', true); selectItem($(this).attr('idx')); })\r\n .mouseout(function () { $(this).removeClass(_options.HighlightItemCss); });\r\n\r\n if (i == 0 && _options.AutoSelectFirstItem) {\r\n autoSelectItem(i, false, true);\r\n }\r\n if (_options.EnableCategoryView) {\r\n if (_cateogoryname != data[i].g) {\r\n _categoryitem = $('<div>').addClass('OneSearchBox-category-'+ data[i].g);\r\n _categoryitem.append ($('<span>').html(data[i].g));\r\n _cateogoryname = data[i].g;\r\n }\r\n _categoryitem.append(_item);\r\n $(_oneSearchBox).append(_categoryitem);\r\n if (i == 0 && $(_oneSearchBox)[i].className.includes('OneSearchBox-'))\r\n $(_oneSearchBox)[i].className = $(_oneSearchBox)[i].className.replace(/\\bOneSearchBox-[A-Za-z]*\\b/g, '');\r\n $(_oneSearchBox).addClass('OneSearchBox-' + data[i].g);\r\n }\r\n else {\r\n $(_oneSearchBox).append(_item);\r\n }\r\n }\r\n },\r\n statusCode: {\r\n 404: function () {\r\n console.log('Service (agoraOneSearch) not found!');\r\n }\r\n }\r\n });\r\n }\r\n\r\n function selectHighlightedItem() {\r\n if (_resposeCache == null || _resposeCache.length < (_highlightIdx - 1) || _highlightIdx <= 0) return;\r\n\r\n var _label = '';\r\n var _selectedValue = '';\r\n var _field = getFieldJson(_options.OneSearchDS, _resposeCache[_highlightIdx - 1].rt, _resposeCache[_highlightIdx - 1].n);\r\n if (_field != null && _field.ItemTemplate != '') {\r\n if (_field.Selector != undefined && _field.Selector != null && _field.Selector == 'k')\r\n _selectedValue = _resposeCache[_highlightIdx - 1].k;\r\n else\r\n _selectedValue = _resposeCache[_highlightIdx - 1].l;\r\n }\r\n _label = _resposeCache[_highlightIdx - 1].l;\r\n\r\n if (!_options.MultiSelect) {\r\n $(_targetControl).val(_label);\r\n } else {\r\n $(_targetControl).val('');\r\n }\r\n\r\n\r\n _lastKeyword = $(_targetControl).val();\r\n bindAssociateControl(_resposeCache[_highlightIdx - 1], _selectedValue);\r\n if (_options.AutoSelectFirstItem) autoSelectItem((_highlightIdx - 1));\r\n if (_options.OnSelect) _options.OnSelect(_resposeCache[_highlightIdx - 1]);\r\n _highlightIdx = 0;\r\n if (!_options.TestMode) $(_oneSearchBox).html('');\r\n }\r\n\r\n function selectItem(idx, noclear, autoSelect) {\r\n var _label = '';\r\n var _selectedValue = '';\r\n if (noclear == undefined || noclear == null) noclear = false;\r\n if (autoSelect == undefined || autoSelect == null) autoSelect = false;\r\n\r\n if (typeof (_resposeCache) == 'undefined' || _resposeCache == null || _resposeCache.length == 0) return;\r\n\r\n var _field = getFieldJson(_options.OneSearchDS, _resposeCache[idx].rt, _resposeCache[idx].n);\r\n if (_field != null && _field.ItemTemplate != '') {\r\n if (_field.Selector != undefined && _field.Selector != null && _field.Selector == 'k')\r\n _selectedValue = _resposeCache[idx].k;\r\n else\r\n _selectedValue = _resposeCache[idx].l;\r\n }\r\n _label = _resposeCache[idx].l;\r\n\r\n if (autoSelect == true && !_label.toLowerCase().startsWith($(_targetControl).val().toLowerCase())) {\r\n $(_targetAutoControl).val('');\r\n return;\r\n }\r\n\r\n if (!_options.MultiSelect) {\r\n if (_field != null &&_field.SkipSelect != true) $(_targetControl).val(_label); else $(_targetControl).val('');\r\n if (_options.AutoSelectFirstItem) $(_targetAutoControl).val('');\r\n } else {\r\n $(_targetControl).val('');\r\n if (_options.AutoSelectFirstItem) $(_targetAutoControl).val('');\r\n }\r\n\r\n _lastKeyword = $(_targetControl).val();\r\n if (idx >= 0) clearNearby();\r\n if (_field != null &&_field.SkipSelect != true) bindAssociateControl(_resposeCache[idx], _selectedValue);\r\n if (_options.OnSelect) _options.OnSelect(_resposeCache[idx]);\r\n if (!_options.TestMode && !noclear) $(_oneSearchBox).html('');\r\n\r\n if (_options.MultiSelect) {\r\n if (!_options.EnablePreList) {\r\n setTimeout(function () { $(_targetControl).focus(); }, 200);\r\n }\r\n }\r\n }\r\n\r\n function autoSelectItem(idx) {\r\n var _label = '';\r\n var _selectedValue = '';\r\n if ($(_targetControl).val() == null || $(_targetControl).val() == '') return;\r\n if (typeof (_resposeCache) == 'undefined' || _resposeCache == null || _resposeCache.length == 0) return;\r\n var _field = getFieldJson(_options.OneSearchDS, _resposeCache[idx].rt, _resposeCache[idx].n);\r\n if (_field != null && _field.ItemTemplate != '') {\r\n if (_field.Selector != undefined && _field.Selector != null && _field.Selector == 'k')\r\n _selectedValue = _resposeCache[idx].k;\r\n else\r\n _selectedValue = _resposeCache[idx].l;\r\n }\r\n _label = _resposeCache[idx].l;\r\n\r\n if (_label.includes('<span')) {\r\n _label = _label.replace(/<span[^>]*>.*?<\\/span>/gi, '').trim();\r\n }\r\n\r\n if (!_label.toLowerCase().replace(/\\,/g, '').startsWith($(_targetControl).val().toLowerCase().replace(/\\,/g, ''))) {\r\n $(_targetAutoControl).val('');\r\n return;\r\n }\r\n var regEx = new RegExp($(_targetControl).val(), \"ig\");\r\n $(_targetAutoControl).val(_label.replace(regEx, $(_targetControl).val()));\r\n\r\n _lastKeyword = $(_targetControl).val();\r\n }\r\n\r\n function reloadMultiSelectOnLoad() {\r\n if (!_options.MultiSelect) return;\r\n\r\n $('input[type=\"hidden\"][id^=\"' + $(_targetControl).attr('id') + '\"]').each(function () {\r\n if ($(this).val() != '') {\r\n var _item = {}; //[{ \"k\": \"Charlotte\", \"l\": \"Charlotte, NC\", \"n\": \"CITY\", \"rt\": \"CMNCMN\" }]\r\n var _itemValue = $(this).attr('id').split('_');\r\n _item.rt = _itemValue[_itemValue.length - 2];\r\n _item.n = _itemValue[_itemValue.length - 1];\r\n\r\n if ($(this).attr('data-label-lookup') == 'True') {\r\n searchKeyword(_item.rt + '|' + _item.n + '::' + $(this).val(), function (resultJson) {\r\n var _labels = '';\r\n var _keys = ''; \r\n if (Array.isArray(resultJson)) {\r\n _labels = resultJson.map(function (item) {\r\n return item.l;\r\n }).join(';');\r\n\r\n _keys = resultJson.map(function (item) {\r\n return item.k;\r\n }).join(';'); \r\n }\r\n\r\n bindAssociateControl(_item, _keys, true, _labels);\r\n $(_targetControl).val('');\r\n });\r\n }\r\n else {\r\n bindAssociateControl(_item, $(this).val(), true);\r\n }\r\n }\r\n });\r\n }\r\n function reloadSingleSelectOnLoadForDatalookup() {\r\n if (_options.MultiSelect) return;\r\n\r\n const $hiddenInputs = $('input[type=\"hidden\"][id^=\"' + $(_targetControl).attr('id') + '\"]');\r\n\r\n $hiddenInputs.each(function () {\r\n const $input = $(this);\r\n const value = $input.val();\r\n\r\n // Proceed only if value is non-empty and data-label-lookup is True\r\n if (value && value.trim() !== '' && $input.attr('data-label-lookup') === 'True') {\r\n const _item = {};\r\n const _itemValue = $input.attr('id').split('_');\r\n _item.rt = _itemValue[_itemValue.length - 2];\r\n _item.n = _itemValue[_itemValue.length - 1];\r\n\r\n searchKeyword(_item.rt + '|' + _item.n + '::' + value, function (resultJson) {\r\n if (Array.isArray(resultJson) && resultJson.length > 0) {\r\n const label = resultJson[0].l;\r\n const key = resultJson[0].k;\r\n bindAssociateControl(_item, key, true, label);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function bindAssociateControl(item, value, initialLoad, labels) {\r\n if (!_options.MultiSelect) {\r\n const $hiddenInputs = $('input[type=\"hidden\"][id^=\"' + $(_targetControl).attr('id') + '\"]');\r\n const hasLabelLookup = $hiddenInputs.is('[data-label-lookup=\"True\"]');\r\n\r\n if (item == null) return;\r\n\r\n if (hasLabelLookup && labels) {\r\n $(_targetControl).val(labels);\r\n }\r\n else\r\n {\r\n $('input[type=\"hidden\"][id^=\"' + $(_targetControl).attr('id') + '\"]').each(function () {\r\n $(this).val('');\r\n });\r\n if (item == null) return;\r\n $('#' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n).val(value);\r\n }\r\n } else {\r\n if (item == null) return;\r\n var _ctrlMultiField = $('#' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n);\r\n\r\n var _valueItems = value.split(\";\");\r\n var _valueItemsCarrier = _valueItems;\r\n if (labels != null && labels != undefined) var _valueItems = labels.split(\";\");\r\n var _field = getFieldJson(_options.OneSearchDS, item.rt, item.n);\r\n\r\n for (i = 0; i < _valueItems.length && _field != null; i++) {\r\n if (_valueItems[i].length < 2) continue;\r\n if ((';' + _ctrlMultiField.val().toLowerCase() + ';').indexOf(';' + _valueItems[i].toLowerCase() + ';') == -1 || initialLoad) {\r\n if (!initialLoad) _ctrlMultiField.val(_ctrlMultiField.val() + ';' + _valueItems[i]);\r\n\r\n var _multiSelectItem = $('<div>')\r\n .addClass('agora-onesearch-multi-sel-item-cont')\r\n .attr('id', 'multiitem' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n + _valueItems[i].replace(/\\ /g, '_').replace(/\\-/g, '_').replace(/[^A-z0-9]/g, '_'))\r\n .append($('<a>')\r\n .addClass('agora-onesearch-multi-sel-item-close')\r\n .attr('title', 'Click here to hide this area filter.')\r\n .attr('id', 'multiitem_close_' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n + _valueItems[i].replace(/\\ /g, '_').replace(/\\-/g, '_').replace(/[^A-z0-9]/g, '_'))\r\n .attr('val', _valueItemsCarrier[i])\r\n .html('<i class=\"aga aga-close\"></i>')\r\n .click(function () {\r\n removeFromMultiSelect($(this), item, $(this).attr('val'));\r\n })\r\n )\r\n .append($('<a>')\r\n .html(_field.MultiItemTemplate.replace('{$l}', (item != null && item.l != null) ? item.l : _valueItems[i]).replace('{$d}', (item != null && item.d != null) ? item.d : _valueItems[i]))\r\n )\r\n\r\n _MultiSelectBox.append(_multiSelectItem);\r\n }\r\n }\r\n\r\n if (!initialLoad && _options.OnMultiSelectRemove) _options.OnMultiSelectRemove();\r\n }\r\n }\r\n\r\n function hasMultiSelectedItems() {\r\n return (_options.MultiSelect && _MultiSelectBox.find('a.agora-onesearch-multi-sel-item-close').length > 0);\r\n }\r\n\r\n function removeFromMultiSelect(me, item, value) {\r\n var _ctrlMultiField = $('#' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n);\r\n if (_ctrlMultiField.val().indexOf(';') != 0) _ctrlMultiField.val(';' + _ctrlMultiField.val());\r\n _ctrlMultiField.val(_ctrlMultiField.val().replace(';' + value, ''));\r\n\r\n //$('#multiitem' + $(_targetControl).attr('id') + '_' + item.rt + '_' + item.n + value.replace(/\\ /g, '_').replace(/\\-/g, '_')).remove();\r\n $(me).parent().remove();\r\n\r\n if (_ctrlMultiField.val() == \"\" || $(_oneSearchBox).find('div.agora-onesearch-multi-sel-item-cont').length == 0) {\r\n $(_oneSearchBox).html('');\r\n $(_oneSearchBox).hide();\r\n }\r\n\r\n if (_options.OnMultiSelectRemove) _options.OnMultiSelectRemove();\r\n }\r\n\r\n\r\n function highlightItem(direction) {\r\n _isOnArrowSelection = true;\r\n\r\n if (direction > 0) /*down*/ {\r\n if (_highlightIdx < $(_oneSearchBox).find('a').length) _highlightIdx++;\r\n }\r\n else /*up*/ {\r\n if (_highlightIdx > 1) _highlightIdx--;\r\n }\r\n $(_oneSearchBox).find('a').each(function () { $(this).removeClass(_options.HighlightItemCss); });\r\n $(_oneSearchBox).find((_options.EnableCategoryView) ? 'a[idx=' + _highlightIdx + ']' : 'a:nth-child(' + _highlightIdx + ')').addClass(_options.HighlightItemCss);\r\n }\r\n\r\n function getTotalWidthOfControl(object) {\r\n\r\n if (object == null || object.length == 0) {\r\n return 0;\r\n }\r\n\r\n var value = object.width();\r\n value += parseInt(object.css(\"padding-left\"), 10) + parseInt(object.css(\"padding-right\"), 10); //Total Padding Width\r\n //value += parseInt(object.css(\"margin-left\"), 10) + parseInt(object.css(\"margin-right\"), 10); //Total Margin Width\r\n value += parseInt(object.css(\"borderLeftWidth\"), 10) + parseInt(object.css(\"borderRightWidth\"), 10); //Total Border Width\r\n\r\n if (_options.ParentContainer != '') {\r\n value += object.offset().left;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTotalHeightOfControl(object) {\r\n\r\n if (object == null || object.length == 0) {\r\n return 0;\r\n }\r\n\r\n var value = object.height();\r\n value += parseInt(object.css(\"padding-top\"), 10) + parseInt(object.css(\"padding-bottom\"), 10); //Total Padding Width\r\n //value += parseInt(object.css(\"margin-top\"), 10) + parseInt(object.css(\"margin-bottom\"), 10); //Total Margin Width\r\n value += parseInt(object.css(\"borderTopWidth\"), 10) + parseInt(object.css(\"borderBottomWidth\"), 10); //Total Border Width\r\n value += object.position().top;\r\n\r\n if (_options.ParentContainer != '') {\r\n value += object.offset().top;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getFieldJson(obj, rt, fieldName) {\r\n if (_itemTeplateCache[rt + '_' + fieldName] != null) return _itemTeplateCache[rt + '_' + fieldName];\r\n\r\n for (k = 0; k < obj.RecordTypes.length; k++) {\r\n for (j = 0; obj.RecordTypes[k].Name == rt && j < obj.RecordTypes[k].Fields.length; j++) {\r\n if (obj.RecordTypes[k].Fields[j].Name == fieldName) {\r\n _itemTeplateCache[rt + '_' + fieldName] = obj.RecordTypes[k].Fields[j];\r\n return obj.RecordTypes[k].Fields[j];\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n function preg_quote(str) {\r\n return (str + '').replace(/([\\\\\\.\\+\\*\\?\\[\\^\\]\\$\\(\\)\\{\\}\\=\\!\\<\\>\\|\\:])/g, \"\\\\$1\");\r\n }\r\n\r\n function highlightKeyword(str, keyword) {\r\n //return str.replace(new RegExp(preg_quote(to), 'gi'), by);\r\n\r\n return str.replace(new RegExp(\"(\" + preg_quote(keyword) + \")\", 'gi'), \"<strong>$1</strong>\");\r\n }\r\n}\r\n});\r\n})(jQuery);\r\n\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["root","factory","exports","module","define","amd","a","i","self","$","jQuery","fn","extend","OneSearch","options","previouslookuplabel","_options","ServiceUrl","OneSearchName","OneSearchDS","MinCharLimit","EnableCurrentLocation","EnablePreList","AutoSelectFirstItem","ResultLimit","EnableTouch","DataSource","DataSourceControl","ContainerCss","ItemCss","HighlightItemCss","Region","Locale","HelpText","AnimatePlaceholderText","MultiSelect","MultiSelectBoxId","MultiSelectShowHelpText","MultiKeywordDelimiter","LoadingImageUrl","ParentContainer","BeforeCall","AfterCall","OnSuccess","OnError","OnSelect","OnTextChange","OnSearch","OnIncrementalSearch","OnMultiSelectRemove","SearchMode","TestMode","StickyMode","EnableCategoryView","_targetControl","_targetAutoControl","_oneSearchBox","_MultiSelectBox","_lastKeyword","_lastSearchword","_request","_resposeCache","_itemTeplateCache","_highlightIdx","_isOnArrowSelection","_isLocationSerachEnabled","this","each","obj","attr","replace","Date","valueOf","window","onpopstate","event","css","getTotalHeightOfControl","getTotalWidthOfControl","addClass","html","append","insertAfter","closest","click","e","target","className","setTimeout","focus","MultiSelectBoxCss","val","_item","_itemValue","split","rt","length","n","searchKeyword","resultJson","_labels","_keys","Array","isArray","map","item","l","join","k","bindAssociateControl","$input","value","trim","label","key","lat","lng","rds","keydown","keyCode","selectHighlightedItem","selectItem","highlightItem","hide","keypress","parseInt","preventDefault","keyup","show","indexOf","find","_tempContMult","getCurrentLocationObject","console","log","blur","isManualSelect","data","parent","removeClass","Init","document","location","protocol","toLowerCase","hostname","mouseover","searchNearby","on","mouseout","idx","navigator","geolocation","getCurrentPosition","position","coords","latitude","longitude","lookupLabel","afterSearch","abort","_searchParam","_searchKeyword","getTime","ajax","type","url","dataType","success","undefined","_itemData","_field","_categoryitem","_cateogoryname","highlightKeyword","getFieldJson","ItemTemplate","d","ItemTemplates","j","Template","mousedown","autoSelectItem","g","includes","statusCode","_label","_selectedValue","Selector","noclear","autoSelect","startsWith","SkipSelect","regEx","RegExp","initialLoad","labels","_ctrlMultiField","_valueItemsCarrier","_valueItems","_multiSelectItem","removeFromMultiSelect","MultiItemTemplate","hasLabelLookup","is","me","remove","direction","object","width","offset","left","height","top","fieldName","RecordTypes","Name","Fields","str","keyword","preg_quote","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ibp-max",
3
- "version": "3.0.21",
3
+ "version": "3.0.23",
4
4
  "description": "Style & JS optimized",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/privacypolicy.js CHANGED
@@ -1,2 +1 @@
1
- !function(i,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var e=o();for(var t in e)("object"==typeof exports?exports:i)[t]=e[t]}}(self,(()=>(function(){function i(i){return this.node=document.createElement(i),this}i.prototype.a=function(i,o){return this.node.setAttribute(i,o),this},i.prototype.n=function(o){var e=new i(o);return this.node.appendChild(e.node),e},i.prototype.h=function(i){return this.node.innerHTML=i,this},i.prototype.cl=function(i){return this.node.addEventListener("click",i),this};var o=new i("div").a("class","data-privacy-policy active");o.n("style").h('.data-privacy-policy{display:block;width: 100%;background:var(--secondary-color-500);max-height:0;transition: 0.8s cubic-bezier(0.4, 0.0, 0.2, 1) all;}\n .data-privacy-policy.active{max-height:16vh;}\n .data-privacy-policy .content{display:-webkit-flex;display:flex;width:100%;margin:0 auto;max-width:1440px;flex-flow:row wrap;padding:6px;box-sizing:border-box;align-items: center;justify-content: center;}\n .data-privacy-policy .content h2{width:100%;color:var(--primary-color-500);font-size:16px;margin:0 0 6px 0;}\n .data-privacy-policy .content p{color:rgba(255,255,255,0.96);margin:0;font-size:12px;text-align: justify;line-height: 1.4;width: auto;} \n .data-privacy-policy .content p a{color:rgba(255,255,255,0.96);text-decoration: underline;}\n .data-privacy-policy .content .action{display:flex;display:-webkit-flex;padding-left:16px;}\n .data-privacy-policy .content .action a+a{margin-left:16px;background-color: var(--secondary-color-400);}\n .data-privacy-policy .content .action a{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: ""Roboto"", ""Helvetica"", ""Arial"", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \n .data-privacy-policy .content .action label{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: ""Roboto"", ""Helvetica"", ""Arial"", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \n .data-privacy-policy.active .content p{width: calc(100% - 125px) !important;} \n @media only screen and (max-width:1024px){.data-privacy-policy .content p{width:100%;text-align: center;}.data-privacy-policy .content .action{width: 100%;padding-top:8px;padding-left:0;justify-content: center;}}');var e=o.n("div").a("class","content");e.n("p").a("ag-l-k","FORM_COOKIE").h('We use cookies to improve your user experience. By continuing to visit our site, you agree to our use of cookies. <a title="Our Privacy Policy" href="/privacy-policy">Our Privacy Policy</a>'),e.n("div").a("class","action").n("label").cl((function(){window.localStorage.setItem("PrivacyPolicy","1"),o.node.remove()})).a("class","s-c-p s-bi-lg").a("aria-label","Got it Button").a("data-privacy-policy","1").a("ag-l-k","BUTTON_GOTIT").h("Got it"),document.body.appendChild(o.node),window.agLanguage.refreshLocale()}(),{})));
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmFjeXBvbGljeS5qcyIsIm1hcHBpbmdzIjoiQ0FBQSxTQUEyQ0EsRUFBTUMsR0FDaEQsR0FBc0IsaUJBQVpDLFNBQTBDLGlCQUFYQyxPQUN4Q0EsT0FBT0QsUUFBVUQsU0FDYixHQUFxQixtQkFBWEcsUUFBeUJBLE9BQU9DLElBQzlDRCxPQUFPLEdBQUlILE9BQ1AsQ0FDSixJQUFJSyxFQUFJTCxJQUNSLElBQUksSUFBSU0sS0FBS0QsR0FBdUIsaUJBQVpKLFFBQXVCQSxRQUFVRixHQUFNTyxHQUFLRCxFQUFFQyxFQUN2RSxDQUNBLENBVEQsQ0FTR0MsTUFBTSxLQ1JULFdBQ0ksU0FBU0MsRUFBRUMsR0FFUCxPQURBQyxLQUFLQyxLQUFPQyxTQUFTQyxjQUFjSixHQUM1QkMsSUFDWCxDQUVBRixFQUFFTSxVQUFVVCxFQUFJLFNBQVVJLEVBQU1NLEdBRTVCLE9BREFMLEtBQUtDLEtBQUtLLGFBQWFQLEVBQU1NLEdBQ3RCTCxJQUNYLEVBRUFGLEVBQUVNLFVBQVVHLEVBQUksU0FBVVIsR0FDdEIsSUFBSVMsRUFBTyxJQUFJVixFQUFFQyxHQUVqQixPQURBQyxLQUFLQyxLQUFLUSxZQUFZRCxFQUFLUCxNQUNwQk8sQ0FDWCxFQUVBVixFQUFFTSxVQUFVTSxFQUFJLFNBQVVDLEdBRXRCLE9BREFYLEtBQUtDLEtBQUtXLFVBQVlELEVBQ2ZYLElBQ1gsRUFFQUYsRUFBRU0sVUFBVVMsR0FBSyxTQUFVQyxHQUV2QixPQURBZCxLQUFLQyxLQUFLYyxpQkFBaUIsUUFBU0QsR0FDN0JkLElBQ1gsRUFFQSxJQVlJZ0IsRUFBZ0IsSUFBSWxCLEVBQUUsT0FBT0gsRUFBRSxRQUFRLDhCQUMzQ3FCLEVBQWNULEVBQUUsU0FBU0csRUFiYixraElBY1osSUFBSU8sRUFBVUQsRUFBY1QsRUFBRSxPQUFPWixFQUFFLFFBQVMsV0FDaERzQixFQUFRVixFQUFFLEtBQUtaLEVBQUUsU0FBVSxlQUFlZSxFQUFFLGlNQUM1Q08sRUFBUVYsRUFBRSxPQUFPWixFQUFFLFFBQVMsVUFBVVksRUFBRSxTQUFTTSxJQUFHLFdBQVdLLE9BQU9DLGFBQWFDLFFBQVEsZ0JBQWdCLEtBQUtKLEVBQWNmLEtBQUtvQixRQUFTLElBQUcxQixFQUFFLFFBQVMsaUJBQWlCQSxFQUFFLGFBQWMsaUJBQWlCQSxFQUFFLHNCQUF1QixLQUFLQSxFQUFFLFNBQVUsZ0JBQWdCZSxFQUFFLFVBQ3hRUixTQUFTb0IsS0FBS2IsWUFBWU8sRUFBY2YsTUFDeENpQixPQUFPSyxXQUFXQyxlQUNyQixDQTlDRCxHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly8vLi9zcmMvUHJpdmFjeVBvbGljeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gZmFjdG9yeSgpO1xuXHRcdGZvcih2YXIgaSBpbiBhKSAodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZXhwb3J0cyA6IHJvb3QpW2ldID0gYVtpXTtcblx0fVxufSkoc2VsZiwgKCkgPT4ge1xucmV0dXJuICIsIlxyXG4oZnVuY3Rpb24oKXtcclxuICAgIGZ1bmN0aW9uIGMobmFtZSkge1xyXG4gICAgICAgIHRoaXMubm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYy5wcm90b3R5cGUuYSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMubm9kZS5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYy5wcm90b3R5cGUubiA9IGZ1bmN0aW9uIChuYW1lKSB7XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBuZXcgYyhuYW1lKTtcclxuICAgICAgICB0aGlzLm5vZGUuYXBwZW5kQ2hpbGQoaXRlbS5ub2RlKTtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH0gICAgXHJcblxyXG4gICAgYy5wcm90b3R5cGUuaCA9IGZ1bmN0aW9uICh0ZXh0KSB7ICAgICAgICBcclxuICAgICAgICB0aGlzLm5vZGUuaW5uZXJIVE1MID0gdGV4dDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBjLnByb3RvdHlwZS5jbCA9IGZ1bmN0aW9uIChhY3Rpb24pIHtcclxuICAgICAgICB0aGlzLm5vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhY3Rpb24pO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB2YXIgc3R5bGUgPSBgLmRhdGEtcHJpdmFjeS1wb2xpY3l7ZGlzcGxheTpibG9jazt3aWR0aDogMTAwJTtiYWNrZ3JvdW5kOnZhcigtLXNlY29uZGFyeS1jb2xvci01MDApO21heC1oZWlnaHQ6MDt0cmFuc2l0aW9uOiAwLjhzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKSBhbGw7fVxyXG4gICAgLmRhdGEtcHJpdmFjeS1wb2xpY3kuYWN0aXZle21heC1oZWlnaHQ6MTZ2aDt9XHJcbiAgICAuZGF0YS1wcml2YWN5LXBvbGljeSAuY29udGVudHtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvO21heC13aWR0aDoxNDQwcHg7ZmxleC1mbG93OnJvdyB3cmFwO3BhZGRpbmc6NnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDthbGlnbi1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO31cclxuICAgIC5kYXRhLXByaXZhY3ktcG9saWN5IC5jb250ZW50IGgye3dpZHRoOjEwMCU7Y29sb3I6dmFyKC0tcHJpbWFyeS1jb2xvci01MDApO2ZvbnQtc2l6ZToxNnB4O21hcmdpbjowIDAgNnB4IDA7fVxyXG4gICAgLmRhdGEtcHJpdmFjeS1wb2xpY3kgLmNvbnRlbnQgcHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOTYpO21hcmdpbjowO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246IGp1c3RpZnk7bGluZS1oZWlnaHQ6IDEuNDt3aWR0aDogYXV0bzt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgIC5kYXRhLXByaXZhY3ktcG9saWN5IC5jb250ZW50IHAgYXtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOTYpO3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cclxuICAgIC5kYXRhLXByaXZhY3ktcG9saWN5IC5jb250ZW50IC5hY3Rpb257ZGlzcGxheTpmbGV4O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O3BhZGRpbmctbGVmdDoxNnB4O31cclxuICAgIC5kYXRhLXByaXZhY3ktcG9saWN5IC5jb250ZW50IC5hY3Rpb24gYSthe21hcmdpbi1sZWZ0OjE2cHg7YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yLTQwMCk7fVxyXG4gICAgLmRhdGEtcHJpdmFjeS1wb2xpY3kgLmNvbnRlbnQgLmFjdGlvbiBhe2NvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO2JhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3ItNTAwKTtib3JkZXI6IG5vbmU7Ym9yZGVyLXJhZGl1czogMnB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtoZWlnaHQ6IDM2cHg7bWFyZ2luOiAwO21pbi13aWR0aDogNjRweDtwYWRkaW5nOiAwIDE2cHg7ZGlzcGxheTogaW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiBcIlwiUm9ib3RvXCJcIiwgXCJcIkhlbHZldGljYVwiXCIsIFwiXCJBcmlhbFwiXCIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOiAxNHB4O2ZvbnQtd2VpZ2h0OiA0MDA7dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7bGluZS1oZWlnaHQ6IDE7bGV0dGVyLXNwYWNpbmc6IDA7b3ZlcmZsb3c6IGhpZGRlbjt3aWxsLWNoYW5nZTogYm94LXNoYWRvdzstd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO3RyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpOy1vLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSksIGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LWJveC1zaGFkb3cgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtvdXRsaW5lOiBub25lO2N1cnNvcjogcG9pbnRlcjt0ZXh0LWRlY29yYXRpb246IG5vbmU7dGV4dC1hbGlnbjogY2VudGVyO2xpbmUtaGVpZ2h0OiAzNnB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAuZGF0YS1wcml2YWN5LXBvbGljeSAuY29udGVudCAuYWN0aW9uIGxhYmVse2NvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO2JhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3ItNTAwKTtib3JkZXI6IG5vbmU7Ym9yZGVyLXJhZGl1czogMnB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtoZWlnaHQ6IDM2cHg7bWFyZ2luOiAwO21pbi13aWR0aDogNjRweDtwYWRkaW5nOiAwIDE2cHg7ZGlzcGxheTogaW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OiBcIlwiUm9ib3RvXCJcIiwgXCJcIkhlbHZldGljYVwiXCIsIFwiXCJBcmlhbFwiXCIsIHNhbnMtc2VyaWY7Zm9udC1zaXplOiAxNHB4O2ZvbnQtd2VpZ2h0OiA0MDA7dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7bGluZS1oZWlnaHQ6IDE7bGV0dGVyLXNwYWNpbmc6IDA7b3ZlcmZsb3c6IGhpZGRlbjt3aWxsLWNoYW5nZTogYm94LXNoYWRvdzstd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO3RyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpOy1vLXRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTt0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSksIGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7dHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCAtd2Via2l0LWJveC1zaGFkb3cgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtvdXRsaW5lOiBub25lO2N1cnNvcjogcG9pbnRlcjt0ZXh0LWRlY29yYXRpb246IG5vbmU7dGV4dC1hbGlnbjogY2VudGVyO2xpbmUtaGVpZ2h0OiAzNnB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7fSAgXHJcbiAgICAuZGF0YS1wcml2YWN5LXBvbGljeS5hY3RpdmUgLmNvbnRlbnQgcHt3aWR0aDogY2FsYygxMDAlIC0gMTI1cHgpICFpbXBvcnRhbnQ7fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MTAyNHB4KXsuZGF0YS1wcml2YWN5LXBvbGljeSAuY29udGVudCBwe3dpZHRoOjEwMCU7dGV4dC1hbGlnbjogY2VudGVyO30uZGF0YS1wcml2YWN5LXBvbGljeSAuY29udGVudCAuYWN0aW9ue3dpZHRoOiAxMDAlO3BhZGRpbmctdG9wOjhweDtwYWRkaW5nLWxlZnQ6MDtqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjt9fWA7XHJcbiAgICB2YXIgcHJpdmFjeVBvbGljeSA9IG5ldyBjKCdkaXYnKS5hKCdjbGFzcycsJ2RhdGEtcHJpdmFjeS1wb2xpY3kgYWN0aXZlJyk7IFxyXG4gICAgcHJpdmFjeVBvbGljeS5uKCdzdHlsZScpLmgoc3R5bGUpO1xyXG4gICAgdmFyIGNvbnRlbnQgPSBwcml2YWN5UG9saWN5Lm4oJ2RpdicpLmEoJ2NsYXNzJywgJ2NvbnRlbnQnKTtcclxuICAgIGNvbnRlbnQubigncCcpLmEoJ2FnLWwtaycsICdGT1JNX0NPT0tJRScpLmgoJ1dlIHVzZSBjb29raWVzIHRvIGltcHJvdmUgeW91ciB1c2VyIGV4cGVyaWVuY2UuIEJ5IGNvbnRpbnVpbmcgdG8gdmlzaXQgb3VyIHNpdGUsIHlvdSBhZ3JlZSB0byBvdXIgdXNlIG9mIGNvb2tpZXMuIDxhIHRpdGxlPVwiT3VyIFByaXZhY3kgUG9saWN5XCIgaHJlZj1cIi9wcml2YWN5LXBvbGljeVwiPk91ciBQcml2YWN5IFBvbGljeTwvYT4nKTtcclxuICAgIGNvbnRlbnQubignZGl2JykuYSgnY2xhc3MnLCAnYWN0aW9uJykubignbGFiZWwnKS5jbChmdW5jdGlvbigpe3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnUHJpdmFjeVBvbGljeScsJzEnKTtwcml2YWN5UG9saWN5Lm5vZGUucmVtb3ZlKCk7fSkuYSgnY2xhc3MnLCAncy1jLXAgcy1iaS1sZycpLmEoJ2FyaWEtbGFiZWwnLCAnR290IGl0IEJ1dHRvbicpLmEoJ2RhdGEtcHJpdmFjeS1wb2xpY3knLCAnMScpLmEoJ2FnLWwtaycsICdCVVRUT05fR09USVQnKS5oKCdHb3QgaXQnKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocHJpdmFjeVBvbGljeS5ub2RlKTtcclxuICAgIHdpbmRvdy5hZ0xhbmd1YWdlLnJlZnJlc2hMb2NhbGUoKTtcclxufSkoKTtcclxuXHJcblxyXG4iXSwibmFtZXMiOlsicm9vdCIsImZhY3RvcnkiLCJleHBvcnRzIiwibW9kdWxlIiwiZGVmaW5lIiwiYW1kIiwiYSIsImkiLCJzZWxmIiwiYyIsIm5hbWUiLCJ0aGlzIiwibm9kZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInByb3RvdHlwZSIsInZhbHVlIiwic2V0QXR0cmlidXRlIiwibiIsIml0ZW0iLCJhcHBlbmRDaGlsZCIsImgiLCJ0ZXh0IiwiaW5uZXJIVE1MIiwiY2wiLCJhY3Rpb24iLCJhZGRFdmVudExpc3RlbmVyIiwicHJpdmFjeVBvbGljeSIsImNvbnRlbnQiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwicmVtb3ZlIiwiYm9keSIsImFnTGFuZ3VhZ2UiLCJyZWZyZXNoTG9jYWxlIl0sInNvdXJjZVJvb3QiOiIifQ==
1
+ !function(i,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var e=o();for(var t in e)("object"==typeof exports?exports:i)[t]=e[t]}}(self,(()=>(function(){function i(i){return this.node=document.createElement(i),this}i.prototype.a=function(i,o){return this.node.setAttribute(i,o),this},i.prototype.n=function(o){var e=new i(o);return this.node.appendChild(e.node),e},i.prototype.h=function(i){return this.node.innerHTML=i,this},i.prototype.cl=function(i){return this.node.addEventListener("click",i),this};var o=new i("div").a("class","data-privacy-policy active");o.n("style").h('.data-privacy-policy{display:block;width: 100%;background:var(--secondary-color-500);max-height:0;transition: 0.8s cubic-bezier(0.4, 0.0, 0.2, 1) all;}\n .data-privacy-policy.active{max-height:16vh;}\n .data-privacy-policy .content{display:-webkit-flex;display:flex;width:100%;margin:0 auto;max-width:1440px;flex-flow:row wrap;padding:6px;box-sizing:border-box;align-items: center;justify-content: center;}\n .data-privacy-policy .content h2{width:100%;color:var(--primary-color-500);font-size:16px;margin:0 0 6px 0;}\n .data-privacy-policy .content p{color:rgba(255,255,255,0.96);margin:0;font-size:12px;text-align: justify;line-height: 1.4;width: auto;} \n .data-privacy-policy .content p a{color:rgba(255,255,255,0.96);text-decoration: underline;}\n .data-privacy-policy .content .action{display:flex;display:-webkit-flex;padding-left:16px;}\n .data-privacy-policy .content .action a+a{margin-left:16px;background-color: var(--secondary-color-400);}\n .data-privacy-policy .content .action a{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: ""Roboto"", ""Helvetica"", ""Arial"", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \n .data-privacy-policy .content .action label{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: ""Roboto"", ""Helvetica"", ""Arial"", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \n .data-privacy-policy.active .content p{width: calc(100% - 125px) !important;} \n @media only screen and (max-width:1024px){.data-privacy-policy .content p{width:100%;text-align: center;}.data-privacy-policy .content .action{width: 100%;padding-top:8px;padding-left:0;justify-content: center;}}');var e=o.n("div").a("class","content");e.n("p").a("ag-l-k","FORM_COOKIE").h('We use cookies to improve your user experience. By continuing to visit our site, you agree to our use of cookies. <a title="Our Privacy Policy" href="/privacy-policy">Our Privacy Policy</a>'),e.n("div").a("class","action").n("label").cl((function(){window.localStorage.setItem("PrivacyPolicy","1"),o.node.remove()})).a("class","s-c-p s-bi-lg").a("aria-label","Got it Button").a("data-privacy-policy","1").a("ag-l-k","BUTTON_GOTIT").h("Got it"),document.body.appendChild(o.node),window.agLanguage.refreshLocale()}(),{})));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacypolicy.js","mappings":"CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,SACb,GAAqB,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,OACP,CACJ,IAAIK,EAAIL,IACR,IAAI,IAAIM,KAAKD,GAAuB,iBAAZJ,QAAuBA,QAAUF,GAAMO,GAAKD,EAAEC,EACvE,CACA,CATD,CASGC,MAAM,KCRT,WACI,SAASC,EAAEC,GAEP,OADAC,KAAKC,KAAOC,SAASC,cAAcJ,GAC5BC,IACX,CAEAF,EAAEM,UAAUT,EAAI,SAAUI,EAAMM,GAE5B,OADAL,KAAKC,KAAKK,aAAaP,EAAMM,GACtBL,IACX,EAEAF,EAAEM,UAAUG,EAAI,SAAUR,GACtB,IAAIS,EAAO,IAAIV,EAAEC,GAEjB,OADAC,KAAKC,KAAKQ,YAAYD,EAAKP,MACpBO,CACX,EAEAV,EAAEM,UAAUM,EAAI,SAAUC,GAEtB,OADAX,KAAKC,KAAKW,UAAYD,EACfX,IACX,EAEAF,EAAEM,UAAUS,GAAK,SAAUC,GAEvB,OADAd,KAAKC,KAAKc,iBAAiB,QAASD,GAC7Bd,IACX,EAEA,IAYIgB,EAAgB,IAAIlB,EAAE,OAAOH,EAAE,QAAQ,8BAC3CqB,EAAcT,EAAE,SAASG,EAbb,khIAcZ,IAAIO,EAAUD,EAAcT,EAAE,OAAOZ,EAAE,QAAS,WAChDsB,EAAQV,EAAE,KAAKZ,EAAE,SAAU,eAAee,EAAE,iMAC5CO,EAAQV,EAAE,OAAOZ,EAAE,QAAS,UAAUY,EAAE,SAASM,IAAG,WAAWK,OAAOC,aAAaC,QAAQ,gBAAgB,KAAKJ,EAAcf,KAAKoB,QAAS,IAAG1B,EAAE,QAAS,iBAAiBA,EAAE,aAAc,iBAAiBA,EAAE,sBAAuB,KAAKA,EAAE,SAAU,gBAAgBe,EAAE,UACxQR,SAASoB,KAAKb,YAAYO,EAAcf,MACxCiB,OAAOK,WAAWC,eACrB,CA9CD,G","sources":["webpack:///webpack/universalModuleDefinition","webpack:///./src/PrivacyPolicy.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, () => {\nreturn ","\r\n(function(){\r\n function c(name) {\r\n this.node = document.createElement(name);\r\n return this;\r\n }\r\n\r\n c.prototype.a = function (name, value) {\r\n this.node.setAttribute(name, value)\r\n return this;\r\n }\r\n\r\n c.prototype.n = function (name) {\r\n var item = new c(name);\r\n this.node.appendChild(item.node);\r\n return item;\r\n } \r\n\r\n c.prototype.h = function (text) { \r\n this.node.innerHTML = text;\r\n return this;\r\n }\r\n\r\n c.prototype.cl = function (action) {\r\n this.node.addEventListener('click', action);\r\n return this;\r\n }\r\n \r\n var style = `.data-privacy-policy{display:block;width: 100%;background:var(--secondary-color-500);max-height:0;transition: 0.8s cubic-bezier(0.4, 0.0, 0.2, 1) all;}\r\n .data-privacy-policy.active{max-height:16vh;}\r\n .data-privacy-policy .content{display:-webkit-flex;display:flex;width:100%;margin:0 auto;max-width:1440px;flex-flow:row wrap;padding:6px;box-sizing:border-box;align-items: center;justify-content: center;}\r\n .data-privacy-policy .content h2{width:100%;color:var(--primary-color-500);font-size:16px;margin:0 0 6px 0;}\r\n .data-privacy-policy .content p{color:rgba(255,255,255,0.96);margin:0;font-size:12px;text-align: justify;line-height: 1.4;width: auto;} \r\n .data-privacy-policy .content p a{color:rgba(255,255,255,0.96);text-decoration: underline;}\r\n .data-privacy-policy .content .action{display:flex;display:-webkit-flex;padding-left:16px;}\r\n .data-privacy-policy .content .action a+a{margin-left:16px;background-color: var(--secondary-color-400);}\r\n .data-privacy-policy .content .action a{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: \"\"Roboto\"\", \"\"Helvetica\"\", \"\"Arial\"\", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \r\n .data-privacy-policy .content .action label{color: rgb(255,255,255);background-color: var(--primary-color-500);border: none;border-radius: 2px;position: relative;height: 36px;margin: 0;min-width: 64px;padding: 0 16px;display: inline-block;font-family: \"\"Roboto\"\", \"\"Helvetica\"\", \"\"Arial\"\", sans-serif;font-size: 14px;font-weight: 400;text-transform: capitalize;line-height: 1;letter-spacing: 0;overflow: hidden;will-change: box-shadow;-webkit-transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);-o-transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);outline: none;cursor: pointer;text-decoration: none;text-align: center;line-height: 36px;vertical-align: middle;} \r\n .data-privacy-policy.active .content p{width: calc(100% - 125px) !important;} \r\n @media only screen and (max-width:1024px){.data-privacy-policy .content p{width:100%;text-align: center;}.data-privacy-policy .content .action{width: 100%;padding-top:8px;padding-left:0;justify-content: center;}}`;\r\n var privacyPolicy = new c('div').a('class','data-privacy-policy active'); \r\n privacyPolicy.n('style').h(style);\r\n var content = privacyPolicy.n('div').a('class', 'content');\r\n content.n('p').a('ag-l-k', 'FORM_COOKIE').h('We use cookies to improve your user experience. By continuing to visit our site, you agree to our use of cookies. <a title=\"Our Privacy Policy\" href=\"/privacy-policy\">Our Privacy Policy</a>');\r\n content.n('div').a('class', 'action').n('label').cl(function(){window.localStorage.setItem('PrivacyPolicy','1');privacyPolicy.node.remove();}).a('class', 's-c-p s-bi-lg').a('aria-label', 'Got it Button').a('data-privacy-policy', '1').a('ag-l-k', 'BUTTON_GOTIT').h('Got it');\r\n document.body.appendChild(privacyPolicy.node);\r\n window.agLanguage.refreshLocale();\r\n})();\r\n\r\n\r\n"],"names":["root","factory","exports","module","define","amd","a","i","self","c","name","this","node","document","createElement","prototype","value","setAttribute","n","item","appendChild","h","text","innerHTML","cl","action","addEventListener","privacyPolicy","content","window","localStorage","setItem","remove","body","agLanguage","refreshLocale"],"sourceRoot":""}