@opcua/for-node-red 2.2.1 → 2.3.1

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.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x56f9(){const _0x14200c=['err','reference','json','\x20Fetching\x20done','fa-object-group','assign','right','638748mPoMCH','message','Organizes','$toggleTreeBtn','$info','references','top','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','<li>','20707cSSeuT','referenceTypeId','appendTo','replaceWith','/browse','IsForward','OpcUa-Client2-MonitorEvent','subTypes','fa-question','Variable','input-group','loading','\x20(ns=','isSelectable','text','expanded','already\x20loading','has','browseName','ns=0;i=46','registerType','<div\x20class=\x22floating-buttons\x22></div>','3660704zjzLjQ','px)','password','#node-input-inputs','value','length','<div\x20class=\x22spinner\x22></div>','push','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','css','HasTypeDefinition','TypeDefinition','_installChildren','SeaGreen','children','monitor\x20events','fa-list-alt','name','span.custom-checkbox.checked','nodeAddressString','element','status','find','parentNode','Both','click','CadetBlue','<ul></ul></li>','Good','unchecked','opc.tcp://opcuademo.sterfive.com:26543','log','#node-input-nodeId','ns=0;i=61','Objects','expandable','toString','namespaceIndex','change','Object','userPrivatekey','stopPropagation','ns=0;i=85','<div/>','_populate','NodeClass','#node-input-selectClauses','pageX','application/json','node','clicked\x20on\x20','fetched','1348560HrMlKZ','endpoint','$verifyBtn','ObjectType','1556765tGeAtB','BrowseName','POST','subscription','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>',';\x22></i>\x20','OpcUa-Endpoint2','$combo','events','sterfive.nodeBrowser','already\x20fetched','UserName','apply','verify','DodgerBlue','/opcua-endpoint2','Forward','SandyBrown','fa-sliders','statusCode','Inverse','sterfive-dropdown','Method','stringify','/extractEventTypes','nodeBrowser','ns=0;i=35','prop','checked','ns=0;i=47','Unspecified','attr','remove','OPCUA\x20Monitor','#node-input-endpoint','i=61','fetching\x20failed\x20with\x20error','.sterfive-tree\x20li','typeDefinition','options','<ul></ul>','hasClass','toggleClass','filter','<option/>','$inputGroup','HasProperty','done','1182PwkdMh','statusText','$input','pageY','hide','sterfive-combo-box','replaceChild','calc(100%\x20-\x20','#node-input-subscription','next','each','span.custom-checkbox','SteelBlue','<span\x20class=\x22validate-button\x22>✔</span>','clicked\x20on\x20icon','match','HasSubtype','sterfive-info','VariableType','isTypeRef','DisplayName','toggle','error','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','_installTree','inputs','DataType','class','_setInputValue','sort','DarkOrange','ns=0;i=40','endpointNode','ns=0;i=34','Invalid','#node-input-whereClause','offset','empty','$dropdown','1005jdMWwB','<span\x20class=\x22cancel-button\x22>✖</span>','join','nodes','nodeClass','#node-input-startImmediately','.spinner','eventFieldSelector','show','SuppressedError','displayName','View','grey','subscriptions','then','function','baseUrl','closest','opcualogobig.png','removeClass','failure','</li>','fa-cog','ReferenceType','left','addClass','placeholder','$tree','data-value','#C0DEED','data','focus\x20click','resolveParentNode','securityPolicy','node_label_italic','val','HasComponent','expandable\x20expanded','fetched\x20:\x20','rgba(61,\x2060,\x204,\x200.525)','opcua',';\x22></i>','<div\x20class=\x22info-text\x22></div>','append','_updateValues','catch','split','<i\x20class=\x22fa\x20','nodeId','currentParent','1310652lQbAPF','trigger','userIdentityType'];_0x56f9=function(){return _0x14200c;};return _0x56f9();}function _0x22c1(_0x24f6e8,_0x15614d){const _0x56f9ff=_0x56f9();return _0x22c1=function(_0x22c12d,_0x7f79fd){_0x22c12d=_0x22c12d-0x1c8;let _0x336b16=_0x56f9ff[_0x22c12d];return _0x336b16;},_0x22c1(_0x24f6e8,_0x15614d);}(function(_0x304b25,_0xedf8a0){const _0x57b937=_0x22c1,_0xd7b541=_0x304b25();while(!![]){try{const _0x5eb7fb=parseInt(_0x57b937(0x28a))/0x1+-parseInt(_0x57b937(0x21e))/0x2*(parseInt(_0x57b937(0x245))/0x3)+parseInt(_0x57b937(0x281))/0x4+parseInt(_0x57b937(0x1ea))/0x5+parseInt(_0x57b937(0x277))/0x6+parseInt(_0x57b937(0x1ee))/0x7+-parseInt(_0x57b937(0x2a0))/0x8;if(_0x5eb7fb===_0xedf8a0)break;else _0xd7b541['push'](_0xd7b541['shift']());}catch(_0x4aca10){_0xd7b541['push'](_0xd7b541['shift']());}}}(_0x56f9,0x3976a),(function(){'use strict';const _0x4b4774=_0x22c1;function _0x4e7446(_0x13b81e,_0x4dfb05){const _0x41fd0f=_0x22c1,_0x236450=$(_0x41fd0f(0x210)),_0x397c8b=$(_0x41fd0f(0x226)),_0x56356a=()=>{const _0x43dd15=_0x41fd0f,_0x41aab1=_0x13b81e[_0x43dd15(0x248)]['node'](_0x236450[_0x43dd15(0x268)]());_0x397c8b[_0x43dd15(0x243)]();if(!_0x41aab1||!_0x41aab1[_0x43dd15(0x252)])return;if(_0x41aab1[_0x43dd15(0x252)])for(const _0x113665 of _0x41aab1[_0x43dd15(0x252)]){const _0x3f30ac=_0x113665[_0x43dd15(0x2b1)]||_0x113665['id'];$(_0x43dd15(0x21a),{'value':_0x113665['id'],'label':_0x3f30ac,'selected':_0x113665['id']===_0x4dfb05[_0x43dd15(0x1f1)]})[_0x43dd15(0x298)](_0x3f30ac)['appendTo'](_0x397c8b);}};_0x56356a(),_0x397c8b['on'](_0x41fd0f(0x264),()=>{_0x56356a();}),_0x236450['on'](_0x41fd0f(0x1dc),()=>{_0x56356a();});}function _0x183f63(_0x71a0e8,_0x27c3fb,_0x3273b4,_0xc12832){function _0x31b17c(_0x2a3acc){return _0x2a3acc instanceof _0x3273b4?_0x2a3acc:new _0x3273b4(function(_0x3d3fe6){_0x3d3fe6(_0x2a3acc);});}return new(_0x3273b4||(_0x3273b4=Promise))(function(_0x23ed86,_0x3dc781){const _0x2971da=_0x22c1;function _0x5178e4(_0x491eda){const _0x7e0240=_0x22c1;try{_0x159ee6(_0xc12832[_0x7e0240(0x227)](_0x491eda));}catch(_0x53c7d9){_0x3dc781(_0x53c7d9);}}function _0x5b833e(_0x47e642){try{_0x159ee6(_0xc12832['throw'](_0x47e642));}catch(_0x299609){_0x3dc781(_0x299609);}}function _0x159ee6(_0x49c276){const _0xcd21c9=_0x22c1;_0x49c276[_0xcd21c9(0x21d)]?_0x23ed86(_0x49c276[_0xcd21c9(0x2a4)]):_0x31b17c(_0x49c276[_0xcd21c9(0x2a4)])[_0xcd21c9(0x253)](_0x5178e4,_0x5b833e);}_0x159ee6((_0xc12832=_0xc12832[_0x2971da(0x1fa)](_0x71a0e8,_0x27c3fb||[]))[_0x2971da(0x227)]());});}typeof SuppressedError===_0x4b4774(0x254)?SuppressedError:function(_0x311ec0,_0x35ff6b,_0x203ee3){const _0x5565e1=_0x4b4774;var _0x18fdd0=new Error(_0x203ee3);return _0x18fdd0['name']=_0x5565e1(0x24e),_0x18fdd0[_0x5565e1(0x234)]=_0x311ec0,_0x18fdd0['suppressed']=_0x35ff6b,_0x18fdd0;};const _0x19ef63=_0x4b4774(0x208),_0x4b22fb=_0x4b4774(0x1d7),_0x510a88=_0x4b4774(0x20b),_0x3cf946=_0x4b4774(0x29d),_0x3227cb=_0x4b4774(0x23f),_0x19480a='ns=0;i=45',_0xb34ed7=_0x4b4774(0x23d);var _0x2d5564;(function(_0xbcc76a){const _0x16ef56=_0x4b4774;_0xbcc76a[_0xbcc76a[_0x16ef56(0x1fe)]=0x0]=_0x16ef56(0x1fe),_0xbcc76a[_0xbcc76a[_0x16ef56(0x202)]=0x1]=_0x16ef56(0x202),_0xbcc76a[_0xbcc76a[_0x16ef56(0x1ce)]=0x2]=_0x16ef56(0x1ce),_0xbcc76a[_0xbcc76a[_0x16ef56(0x240)]=0x3]=_0x16ef56(0x240);}(_0x2d5564||(_0x2d5564={})));var _0x1f829a;(function(_0x2ea1ba){const _0x3c142b=_0x4b4774;_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x20c)]=0x0]=_0x3c142b(0x20c),_0x2ea1ba[_0x2ea1ba['Object']=0x1]=_0x3c142b(0x1dd),_0x2ea1ba[_0x2ea1ba['Variable']=0x2]='Variable',_0x2ea1ba[_0x2ea1ba['Method']=0x4]=_0x3c142b(0x204),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x1ed)]=0x8]=_0x3c142b(0x1ed),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x230)]=0x10]=_0x3c142b(0x230),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x25c)]=0x20]='ReferenceType',_0x2ea1ba[_0x2ea1ba['DataType']=0x40]=_0x3c142b(0x238),_0x2ea1ba[_0x2ea1ba[_0x3c142b(0x250)]=0x80]=_0x3c142b(0x250);}(_0x1f829a||(_0x1f829a={})));var _0x1f842a;(function(_0x4e040e){const _0x286946=_0x4b4774;_0x4e040e[_0x4e040e['Object']=0x1]='Object',_0x4e040e[_0x4e040e[_0x286946(0x293)]=0x2]=_0x286946(0x293),_0x4e040e[_0x4e040e[_0x286946(0x204)]=0x4]=_0x286946(0x204),_0x4e040e[_0x4e040e[_0x286946(0x1ed)]=0x8]='ObjectType',_0x4e040e[_0x4e040e[_0x286946(0x230)]=0x10]=_0x286946(0x230),_0x4e040e[_0x4e040e[_0x286946(0x25c)]=0x20]=_0x286946(0x25c),_0x4e040e[_0x4e040e[_0x286946(0x238)]=0x40]=_0x286946(0x238),_0x4e040e[_0x4e040e[_0x286946(0x250)]=0x80]=_0x286946(0x250);}(_0x1f842a||(_0x1f842a={})));var _0x5d7de7;(function(_0x2149f7){const _0x2af9e7=_0x4b4774;_0x2149f7[_0x2149f7[_0x2af9e7(0x25c)]=0x1]=_0x2af9e7(0x25c),_0x2149f7[_0x2149f7[_0x2af9e7(0x28f)]=0x2]='IsForward',_0x2149f7[_0x2149f7[_0x2af9e7(0x1e3)]=0x4]='NodeClass',_0x2149f7[_0x2149f7[_0x2af9e7(0x1ef)]=0x8]=_0x2af9e7(0x1ef),_0x2149f7[_0x2149f7[_0x2af9e7(0x232)]=0x10]=_0x2af9e7(0x232),_0x2149f7[_0x2149f7[_0x2af9e7(0x2ab)]=0x20]=_0x2af9e7(0x2ab);}(_0x5d7de7||(_0x5d7de7={})));function _0x59a186(_0x3c0df7){const _0x4dd512=_0x4b4774;switch(_0x3c0df7){case _0x4dd512(0x283):return _0x19ef63;case _0x4dd512(0x21c):return _0x3cf946;case _0x4dd512(0x269):return _0x510a88;case'HasChild':return _0x3227cb;case _0x4dd512(0x22e):return _0x19480a;case _0x4dd512(0x2aa):return _0xb34ed7;}}const _0x24ff9b=_0x3cba88=>{const _0x2f652c=_0x4b4774;switch(_0x3cba88[_0x2f652c(0x249)]){case _0x2f652c(0x1dd):if(_0x3cba88[_0x2f652c(0x28b)]===_0x19ef63);if(_0x3cba88[_0x2f652c(0x214)]===_0x4b22fb||_0x3cba88[_0x2f652c(0x28b)]===_0x2f652c(0x211))return{'icon':'fa-folder','color':_0x2f652c(0x26c)};return{'icon':'fa-object-group','color':_0x2f652c(0x2ad)};case _0x2f652c(0x293):if(_0x3cba88[_0x2f652c(0x28b)]===_0x510a88)return{'icon':_0x2f652c(0x2b0),'color':_0x2f652c(0x22a)};else return _0x3cba88['referenceTypeId']===_0x3cf946?{'icon':_0x2f652c(0x2b0),'color':_0x2f652c(0x1fc)}:{'icon':'fa-list-alt','color':_0x2f652c(0x1d0)};case'Method':return{'icon':_0x2f652c(0x25b),'color':_0x2f652c(0x1ff)};case _0x2f652c(0x1ed):return{'icon':_0x2f652c(0x27e),'color':_0x2f652c(0x23c)};case _0x2f652c(0x230):return{'icon':_0x2f652c(0x200),'color':'DarkOrange'};}return{'icon':_0x2f652c(0x292),'color':_0x2f652c(0x251)};},_0x5ef2af=({endpointNode:_0x38d02e,endpoint:_0x452baa,baseUrl:_0x4cdfd7},_0x382ea4,_0x331360)=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x13deb6=_0x4b4774,_0x96d7d8=_0x4cdfd7+_0x13deb6(0x1fd),_0x471b3d=_0x96d7d8+_0x13deb6(0x28e),_0x12b776=Object['assign'](Object[_0x13deb6(0x27f)]({},_0x331360),{'nodeId':_0x382ea4,'resultMask':0x3f}),_0x3e334b=yield fetch(_0x471b3d,{'method':_0x13deb6(0x1f0),'body':JSON[_0x13deb6(0x205)]({'endpointNode':_0x38d02e,'endpoint':_0x452baa,'browseDescription':_0x12b776}),'headers':{'Content-Type':_0x13deb6(0x1e6)}});if(_0x3e334b[_0x13deb6(0x1cb)]!==0xc8)return console[_0x13deb6(0x1d5)](_0x13deb6(0x212),_0x3e334b[_0x13deb6(0x1cb)],_0x3e334b[_0x13deb6(0x21f)]),{'references':[]};console[_0x13deb6(0x1d5)](_0x13deb6(0x26b),_0x3e334b[_0x13deb6(0x1cb)],_0x3e334b[_0x13deb6(0x21f)]);const _0x317441=yield _0x3e334b[_0x13deb6(0x27c)](),_0x48d585=_0x317441['browseResult'][_0x13deb6(0x286)]||[];return{'references':_0x48d585};}),_0x317c9e={'referenceTypeId':_0x59a186('HasChild'),'includeSubtypes':!![],'browseDirection':_0x2d5564['Forward'],'nodeClassMask':_0x1f829a[_0x4b4774(0x293)]|_0x1f829a['Object']|_0x1f829a[_0x4b4774(0x204)],'resultMask':0x3f},_0x3aa0ea={'referenceTypeId':_0x59a186(_0x4b4774(0x283)),'includeSubtypes':!![],'browseDirection':_0x2d5564[_0x4b4774(0x1fe)],'nodeClassMask':_0x1f829a[_0x4b4774(0x293)]|_0x1f829a[_0x4b4774(0x1dd)]|_0x1f829a[_0x4b4774(0x204)],'resultMask':0x3f},_0x3abb13=({endpointNode:_0x5a88fe,endpoint:_0x422dcd,baseUrl:_0x3d8c98},_0x5b9185,_0x3fcb51)=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x6d0008=_0x4b4774,_0xa25dc6=_0x3d8c98+_0x6d0008(0x1fd),_0x5103d3=_0x5b9185[_0x6d0008(0x268)](),_0x3fe148=yield fetch(_0xa25dc6+'/checkNodeId',{'method':_0x6d0008(0x1f0),'body':JSON['stringify']({'endpointNode':_0x5a88fe,'endpoint':_0x422dcd,'nodeId':_0x5103d3}),'headers':{'Content-Type':'application/json'}}),_0x59e4cf=(_0xe34a74,_0xb91a9e)=>{const _0x64ad57=_0x6d0008;_0x3fcb51[_0x64ad57(0x298)](_0xe34a74)[_0x64ad57(0x25e)](_0x64ad57(0x22f))['addClass'](_0xb91a9e),_0x3fcb51[_0x64ad57(0x24d)](),setTimeout(()=>{const _0x5c5281=_0x64ad57;_0x3fcb51[_0x5c5281(0x258)](_0xb91a9e),_0x3fcb51[_0x5c5281(0x222)]();},0xbb8);},_0x59ea31=yield _0x3fe148[_0x6d0008(0x27c)]();_0x3fe148[_0x6d0008(0x1cb)]!==0xc8?_0x59e4cf('!!failure!!'+_0x5103d3,'failure'):_0x59ea31[_0x6d0008(0x201)][_0x6d0008(0x22d)](/Good/)?(_0x5b9185[_0x6d0008(0x268)](_0x59ea31[_0x6d0008(0x1c9)]),_0x5b9185[_0x6d0008(0x278)](_0x6d0008(0x1dc)),_0x59e4cf(_0x6d0008(0x1d2),'ok')):(_0x5b9185[_0x6d0008(0x268)](''+_0x5103d3),_0x59e4cf(_0x59ea31[_0x6d0008(0x201)]+'\x20'+_0x3fe148[_0x6d0008(0x21f)],_0x6d0008(0x259)));});function _0x178e18(_0x519fee,_0x3a2f6b){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x5a2e8a=_0x22c1,_0x2ae617=_0x519fee['data'](_0x5a2e8a(0x2a4)),_0x3398b2=yield _0x5ef2af(_0x3a2f6b,_0x2ae617,_0x317c9e),_0x1a5abd=yield _0x5ef2af(_0x3a2f6b,_0x2ae617,_0x3aa0ea);return{'references':[..._0x3398b2[_0x5a2e8a(0x286)],..._0x1a5abd['references']]};});}const _0x34eac2={'referenceTypeId':_0x59a186(_0x4b4774(0x22e)),'includeSubtypes':!![],'browseDirection':_0x2d5564['Forward'],'nodeClassMask':_0x1f829a[_0x4b4774(0x25c)]|_0x1f829a[_0x4b4774(0x1ed)]|_0x1f829a[_0x4b4774(0x238)]|_0x1f829a['VariableType'],'resultMask':0x3f};function _0xe4ff95(_0x493396,_0x33ad7b){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x1f1e9c=_0x22c1,_0x4970de=_0x493396[_0x1f1e9c(0x263)](_0x1f1e9c(0x2a4)),_0x43a827=yield _0x5ef2af(_0x33ad7b,_0x4970de,_0x34eac2);return _0x43a827;});}const _0x56aee6=_0x5e5089=>{const _0x298412=_0x4b4774;var _0x46faaf,_0x1a7667;if(!_0x5e5089){const _0x31fb2c=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x31fb2c;}const _0x48614b=_0x5e5089['nodeId']['toString'](),_0x3e680b=((_0x46faaf=_0x5e5089[_0x298412(0x24f)])===null||_0x46faaf===void 0x0?void 0x0:_0x46faaf[_0x298412(0x298)])||((_0x1a7667=_0x5e5089[_0x298412(0x29c)])===null||_0x1a7667===void 0x0?void 0x0:_0x1a7667[_0x298412(0x2b1)])||_0x5e5089[_0x298412(0x275)][_0x298412(0x1da)](),{icon:_0x2164e8,color:_0x553a1d}=_0x24ff9b(_0x5e5089),_0x299373=$('<li><i\x20class=\x22fa\x20'+_0x2164e8+'\x22\x20style=\x22color:'+_0x553a1d+_0x298412(0x1f3)+_0x3e680b+_0x298412(0x1d1));return _0x299373[_0x298412(0x25e)](_0x298412(0x1d9)),_0x299373['data']('value',_0x48614b),_0x299373['data'](_0x298412(0x27b),_0x5e5089),_0x299373;},_0x2100d3=()=>{const _0x8cf1a0=_0x4b4774;$['widget'](_0x8cf1a0(0x1f7),{'options':{'endpointNode':()=>({'endpoint':_0x8cf1a0(0x1d4)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x8cf1a0(0x1d8)},'nodeClass':'Object','nodeId':_0x8cf1a0(0x1e0),'displayName':{'text':'Objects'},'typeDefinition':_0x4b22fb}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x476b6b=_0x22c1,_0x27d2bb=this,_0x58bac1=typeof _0x27d2bb['options']['parentNode']==='function'?_0x27d2bb['options'][_0x476b6b(0x1cd)]():_0x27d2bb[_0x476b6b(0x215)][_0x476b6b(0x1cd)];if(_0x58bac1 instanceof Promise)return yield _0x58bac1;return _0x58bac1;});},'reset'(){const _0x4fbe0d=_0x8cf1a0,_0x1b9723=this;_0x1b9723[_0x4fbe0d(0x260)][_0x4fbe0d(0x243)](),this[_0x4fbe0d(0x265)]()['then'](_0x5433fb=>{const _0x4fd6cb=_0x4fbe0d,_0x2b08d0=_0x56aee6(_0x5433fb);_0x1b9723[_0x4fd6cb(0x260)][_0x4fd6cb(0x270)](_0x2b08d0),_0x1b9723['currentParent']=_0x5433fb;});},'verify'(){const _0x2c3f9c=_0x8cf1a0,_0x452978=this,_0x299301={'baseUrl':_0x452978[_0x2c3f9c(0x215)][_0x2c3f9c(0x255)],'endpointNode':typeof _0x452978[_0x2c3f9c(0x215)]['endpointNode']==='function'?_0x452978[_0x2c3f9c(0x215)]['endpointNode']():_0x452978[_0x2c3f9c(0x215)][_0x2c3f9c(0x23e)],'endpoint':typeof _0x452978[_0x2c3f9c(0x215)]['endpoint']===_0x2c3f9c(0x254)?_0x452978['options'][_0x2c3f9c(0x1eb)]():_0x452978['options'][_0x2c3f9c(0x1eb)]};_0x3abb13(_0x299301,_0x452978['$input'],_0x452978[_0x2c3f9c(0x285)]);},'_create'(){const _0xc43c2d=_0x8cf1a0,_0x5aac19=this;function _0x4dd193(_0x2bb31e,_0x45bfe5,_0x4d8d9a){return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x1e9fa4=_0x22c1;if(_0x2bb31e['hasClass'](_0x1e9fa4(0x1e9))){console[_0x1e9fa4(0x1d5)](_0x1e9fa4(0x1f8));return;}if(_0x2bb31e[_0x1e9fa4(0x217)](_0x1e9fa4(0x295))){console[_0x1e9fa4(0x1d5)](_0x1e9fa4(0x29a));return;}_0x2bb31e[_0x1e9fa4(0x25e)](_0x1e9fa4(0x295)),_0x2bb31e[_0x1e9fa4(0x270)](_0x1e9fa4(0x2a6));try{_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x243)]();const {references:_0x4809dc}=yield _0x45bfe5(_0x2bb31e,_0x4d8d9a);for(const _0x5cfcbc of _0x4809dc){if(_0x5aac19['options'][_0x1e9fa4(0x219)]&&!_0x5aac19[_0x1e9fa4(0x215)][_0x1e9fa4(0x219)](_0x5cfcbc))continue;const _0x7c9457=_0x56aee6(_0x5cfcbc);_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x270)](_0x7c9457);}_0x2bb31e[_0x1e9fa4(0x25e)](_0x1e9fa4(0x1e9));}catch(_0x4c2171){_0x2bb31e[_0x1e9fa4(0x2ae)]('ul')[_0x1e9fa4(0x270)]('<li>error\x20'+_0x4c2171[_0x1e9fa4(0x282)]+_0x1e9fa4(0x25a)),console['log'](_0x1e9fa4(0x27a),_0x4c2171);}_0x2bb31e[_0x1e9fa4(0x1cc)](_0x1e9fa4(0x24b))[_0x1e9fa4(0x20e)](),_0x2bb31e[_0x1e9fa4(0x258)](_0x1e9fa4(0x295));});}_0x5aac19[_0xc43c2d(0x220)]=this['element'],_0x5aac19['$combo']=$(_0xc43c2d(0x1e1)),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x25e)](_0xc43c2d(0x223)),this[_0xc43c2d(0x1ca)][_0xc43c2d(0x28d)](_0x5aac19['$combo']),_0x5aac19[_0xc43c2d(0x21b)]=$('<div/>')[_0xc43c2d(0x25e)](_0xc43c2d(0x294)),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x21b)]),_0x5aac19[_0xc43c2d(0x21b)]['append'](_0x5aac19[_0xc43c2d(0x220)]),_0x5aac19[_0xc43c2d(0x284)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x5aac19[_0xc43c2d(0x21b)]['append'](_0x5aac19[_0xc43c2d(0x284)]),_0x5aac19[_0xc43c2d(0x284)]['on'](_0xc43c2d(0x1cf),function(){const _0x4a639f=_0xc43c2d;!_0x5aac19[_0x4a639f(0x244)]['is'](':visible')&&(_0x5aac19[_0x4a639f(0x265)]()['then'](_0x314cf1=>{const _0x612bdb=_0x4a639f;var _0x1b77e4;(_0x314cf1!==_0x5aac19[_0x612bdb(0x276)]||((_0x1b77e4=_0x5aac19['currentParent'])===null||_0x1b77e4===void 0x0?void 0x0:_0x1b77e4[_0x612bdb(0x275)])!==_0x314cf1['nodeId'])&&_0x5aac19['reset']();}),_0x5aac19['$info'][_0x4a639f(0x222)]()),_0x5aac19[_0x4a639f(0x244)][_0x4a639f(0x233)]();}),_0x5aac19[_0xc43c2d(0x1ec)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x5aac19['$inputGroup'][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x1ec)]),_0x5aac19['$verifyBtn']['on']('click',()=>{const _0x30094c=_0xc43c2d;this[_0x30094c(0x1fb)]();}),!_0x5aac19[_0xc43c2d(0x220)][_0xc43c2d(0x20d)](_0xc43c2d(0x25f))&&_0x5aac19[_0xc43c2d(0x220)]['attr'](_0xc43c2d(0x25f),_0xc43c2d(0x2a8)),_0x5aac19[_0xc43c2d(0x285)]=$(_0xc43c2d(0x26f)),_0x5aac19['$info']['hide'](),{'baseUrl':_0x5aac19['options'][_0xc43c2d(0x255)],'endpointNode':typeof _0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x23e)]===_0xc43c2d(0x254)?_0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x23e)]():_0x5aac19[_0xc43c2d(0x215)]['endpointNode'],'endpoint':typeof _0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x1eb)]===_0xc43c2d(0x254)?_0x5aac19['options']['endpoint']():_0x5aac19[_0xc43c2d(0x215)][_0xc43c2d(0x1eb)]},_0x5aac19[_0xc43c2d(0x244)]=$(_0xc43c2d(0x1e1))[_0xc43c2d(0x25e)](_0xc43c2d(0x203))[_0xc43c2d(0x222)](),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x285)]),_0x5aac19[_0xc43c2d(0x1f5)][_0xc43c2d(0x270)](_0x5aac19[_0xc43c2d(0x244)]),_0x5aac19[_0xc43c2d(0x260)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0xc43c2d(0x28c)](_0x5aac19[_0xc43c2d(0x244)]),this['reset'](),_0x5aac19[_0xc43c2d(0x260)]['on'](_0xc43c2d(0x1cf),'li',function(_0x49d359){const _0x3094b7=_0xc43c2d;var _0x318859,_0x626549;_0x49d359['stopPropagation']();let _0x5915dd=$(this);const _0x27777e=0x14,_0xcb2826=0x14,_0x248e2f=$(this)[_0x3094b7(0x242)](),_0x19f403=_0x49d359;if(_0x19f403[_0x3094b7(0x1e5)]>=_0x248e2f[_0x3094b7(0x25d)]&&_0x19f403['pageX']<=_0x248e2f[_0x3094b7(0x25d)]+_0x27777e&&_0x19f403['pageY']>=_0x248e2f['top']&&_0x19f403[_0x3094b7(0x221)]<=_0x248e2f[_0x3094b7(0x287)]+_0xcb2826){if(_0x5915dd[_0x3094b7(0x217)]('expandable')){if(_0x5915dd['hasClass'](_0x3094b7(0x1e9))){_0x5915dd[_0x3094b7(0x258)]('expandable')['addClass'](_0x3094b7(0x299)),_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x233)]();return;}const _0x168aff={'baseUrl':_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x255)],'endpointNode':typeof _0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x23e)]==='function'?_0x5aac19['options'][_0x3094b7(0x23e)]():_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x23e)],'endpoint':typeof _0x5aac19['options'][_0x3094b7(0x1eb)]===_0x3094b7(0x254)?_0x5aac19['options']['endpoint']():_0x5aac19[_0x3094b7(0x215)]['endpoint']},_0x76d8fa=!_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x231)]?_0x178e18:_0xe4ff95;_0x4dd193(_0x5915dd,_0x76d8fa,_0x168aff)[_0x3094b7(0x253)](()=>{const _0x3a5ce6=_0x3094b7;console[_0x3a5ce6(0x1d5)](_0x3a5ce6(0x27d)),console['log'](_0x3a5ce6(0x1e9)),_0x5915dd[_0x3a5ce6(0x258)](_0x3a5ce6(0x1d9))[_0x3a5ce6(0x25e)]('expanded');})[_0x3094b7(0x272)](_0x189a3e=>{const _0x13083f=_0x3094b7;_0x5915dd[_0x13083f(0x258)]('expandable')['addClass']('expanded'),console[_0x13083f(0x1d5)]('error',_0x189a3e);});}else{if(_0x5915dd['hasClass'](_0x3094b7(0x299)))_0x5915dd[_0x3094b7(0x2ae)]('ul')['toggle'](),_0x5915dd[_0x3094b7(0x218)](_0x3094b7(0x26a));else{if(_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x2ae)]()[_0x3094b7(0x2a5)]>0x0)_0x5915dd[_0x3094b7(0x2ae)]('ul')[_0x3094b7(0x233)](),_0x5915dd[_0x3094b7(0x218)](_0x3094b7(0x26a));else;}}}else{const _0x51e8ba=_0x5915dd[_0x3094b7(0x263)](_0x3094b7(0x2a4)),_0x2b491b=_0x5915dd[_0x3094b7(0x263)](_0x3094b7(0x27b));if(_0x5aac19['options']['isSelectable']&&!_0x5aac19[_0x3094b7(0x215)][_0x3094b7(0x297)](_0x2b491b))return;_0x5aac19[_0x3094b7(0x220)]['data'](_0x3094b7(0x27b),_0x2b491b);const _0x2eb110=((_0x318859=_0x2b491b[_0x3094b7(0x24f)])===null||_0x318859===void 0x0?void 0x0:_0x318859[_0x3094b7(0x298)])||((_0x626549=_0x2b491b[_0x3094b7(0x29c)])===null||_0x626549===void 0x0?void 0x0:_0x626549[_0x3094b7(0x2b1)])||_0x2b491b[_0x3094b7(0x275)][_0x3094b7(0x1da)](),_0x384e62='['+_0x2eb110+']('+_0x51e8ba+')';_0x5aac19[_0x3094b7(0x220)][_0x3094b7(0x268)](_0x384e62),_0x5aac19['$input']['trigger']('change'),_0x5aac19[_0x3094b7(0x244)][_0x3094b7(0x222)]();}}),$(document)['on'](_0xc43c2d(0x1cf),function(_0x4907fb){const _0x22769e=_0xc43c2d;!$(_0x4907fb['target'])[_0x22769e(0x256)](_0x5aac19[_0x22769e(0x1f5)])['length']&&_0x5aac19[_0x22769e(0x244)]['hide']();});}});},_0xade0d=_0x2af5ad=>{const _0x12df22=_0x4b4774;var _0x2930f5,_0x2cd833,_0x489f3e;if(!_0x2af5ad){const _0x398eb1=$(_0x12df22(0x235));return _0x398eb1;}const _0x4f557d=_0x2af5ad['nodeId'][_0x12df22(0x1da)]();let _0xcc85a8=((_0x2930f5=_0x2af5ad[_0x12df22(0x24f)])===null||_0x2930f5===void 0x0?void 0x0:_0x2930f5[_0x12df22(0x298)])||((_0x2cd833=_0x2af5ad[_0x12df22(0x29c)])===null||_0x2cd833===void 0x0?void 0x0:_0x2cd833[_0x12df22(0x2b1)])||_0x2af5ad['nodeId']['toString'](),_0x122ed7=(_0x489f3e=_0x2af5ad[_0x12df22(0x29c)])===null||_0x489f3e===void 0x0?void 0x0:_0x489f3e[_0x12df22(0x1db)];_0xcc85a8+=_0x122ed7!==undefined&&_0x2af5ad[_0x12df22(0x249)]['match'](/Type/)?_0x12df22(0x296)+_0x122ed7+')':'';const {icon:_0x3e0bf1,color:_0x559ac6}=_0x24ff9b(_0x2af5ad),_0x55e09e=$(_0x12df22(0x289));if(_0x2af5ad[_0x12df22(0x249)]===_0x12df22(0x293)){const _0x3ee4e5=$(_0x12df22(0x1f2));_0x55e09e[_0x12df22(0x270)](_0x3ee4e5),_0x3ee4e5['on'](_0x12df22(0x1cf),function(){const _0x22eaa9=_0x12df22;_0x3ee4e5[_0x22eaa9(0x217)](_0x22eaa9(0x1d3))?_0x3ee4e5[_0x22eaa9(0x258)](_0x22eaa9(0x1d3))['addClass'](_0x22eaa9(0x20a)):_0x3ee4e5[_0x22eaa9(0x258)](_0x22eaa9(0x20a))[_0x22eaa9(0x25e)](_0x22eaa9(0x1d3));});}return _0x55e09e['append']($(_0x12df22(0x274)+_0x3e0bf1+'\x22\x20style=\x22color:'+_0x559ac6+_0x12df22(0x26e)+_0xcc85a8+_0x12df22(0x216))),_0x55e09e[_0x12df22(0x25e)](_0x12df22(0x1d9)),_0x55e09e[_0x12df22(0x263)](_0x12df22(0x2a4),_0x4f557d),_0x55e09e[_0x12df22(0x263)](_0x12df22(0x27b),_0x2af5ad),_0x55e09e;},_0x10748f=()=>{const _0x31ffd8=_0x4b4774;$['widget']('sterfive.eventFieldSelector',{'options':{'endpointNode':()=>({'endpoint':_0x31ffd8(0x1d4)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x5ca6a5;return _0x183f63(this,void 0x0,void 0x0,function*(){const _0x36b7ce=_0x22c1,_0x2dec76=this,_0x4b55df=new Set((_0x5ca6a5=_0x2dec76[_0x36b7ce(0x220)][_0x36b7ce(0x268)]())===null||_0x5ca6a5===void 0x0?void 0x0:_0x5ca6a5[_0x36b7ce(0x1da)]()['split'](';')),_0x27077d={'baseUrl':_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x255)],'endpointNode':typeof _0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x23e)]===_0x36b7ce(0x254)?_0x2dec76['options']['endpointNode']():_0x2dec76[_0x36b7ce(0x215)]['endpointNode'],'endpoint':typeof _0x2dec76['options'][_0x36b7ce(0x1eb)]===_0x36b7ce(0x254)?_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x1eb)]():_0x2dec76[_0x36b7ce(0x215)][_0x36b7ce(0x1eb)]},_0x92d48b=yield _0x139d6c(_0x27077d);this[_0x36b7ce(0x236)](_0x92d48b,_0x4b55df);});},'_installTree'(_0x10c260,_0x1a35b1){const _0x591ddb=_0x31ffd8,_0x478aad=this;_0x478aad[_0x591ddb(0x260)][_0x591ddb(0x243)]();if(!_0x10c260[_0x591ddb(0x1f6)])return;const _0x54001a=_0x10c260[_0x591ddb(0x1f6)],_0x32f395=_0xade0d(_0x54001a);_0x478aad[_0x591ddb(0x260)][_0x591ddb(0x270)](_0x32f395);const _0x5955e6='';this[_0x591ddb(0x2ac)](_0x32f395[_0x591ddb(0x2ae)]('ul'),_0x54001a,_0x5955e6,_0x1a35b1),_0x32f395[_0x591ddb(0x258)]('expandable')[_0x591ddb(0x25e)](_0x591ddb(0x299)),this['_updateValues'](_0x1a35b1);},'_installChildren'(_0x4347cf,_0x8eda06,_0x55af0a,_0x3bfbf6){const _0x321bc3=_0x31ffd8,_0x20699c=({name:_0x308622,namespaceIndex:_0x5198d8})=>{if(_0x5198d8===0x0)return _0x308622;return _0x5198d8+':'+_0x308622;},_0x52e8fd=_0x8eda06[_0x321bc3(0x2ae)]||[],_0x554a26=_0x8eda06[_0x321bc3(0x291)]||[],_0x52e341=[..._0x52e8fd,..._0x554a26];for(const _0x4f2813 of _0x52e341){const _0x32b992=_0xade0d(_0x4f2813);_0x4347cf['append'](_0x32b992);let _0x1d6864='';_0x4f2813[_0x321bc3(0x249)]==='Variable'&&(_0x55af0a?_0x1d6864=_0x55af0a+'.'+_0x20699c(_0x4f2813[_0x321bc3(0x29c)]):_0x1d6864=_0x20699c(_0x4f2813[_0x321bc3(0x29c)]),_0x32b992[_0x321bc3(0x20d)](_0x321bc3(0x261),_0x1d6864));const _0x5408cc=_0x4f2813[_0x321bc3(0x2ae)]&&_0x4f2813[_0x321bc3(0x2ae)][_0x321bc3(0x2a5)],_0x45adc6=_0x4f2813[_0x321bc3(0x291)]&&_0x4f2813[_0x321bc3(0x291)][_0x321bc3(0x2a5)];!_0x5408cc&&!_0x45adc6?_0x32b992[_0x321bc3(0x258)](_0x321bc3(0x1d9))['addClass']('no-expandable'):(this[_0x321bc3(0x2ac)](_0x32b992[_0x321bc3(0x2ae)]('ul'),_0x4f2813,_0x1d6864,_0x3bfbf6),_0x32b992[_0x321bc3(0x258)](_0x321bc3(0x1d9))[_0x321bc3(0x25e)]('expanded'));}},'_updateSelectedFields'(){const _0x173cba=_0x31ffd8;var _0x4da433;const _0x5db3fa=this,_0xac0805=new Set((_0x4da433=_0x5db3fa['$input'][_0x173cba(0x268)]())===null||_0x4da433===void 0x0?void 0x0:_0x4da433[_0x173cba(0x1da)]()[_0x173cba(0x273)](';'));this[_0x173cba(0x271)](_0xac0805);},'_updateValues'(_0x421f9d){const _0x18ce84=_0x31ffd8;$(_0x18ce84(0x213))[_0x18ce84(0x228)](function(){const _0x2cc904=_0x18ce84,_0x2c4071=$(this),_0x57715b=_0x2c4071[_0x2cc904(0x20d)](_0x2cc904(0x261));_0x57715b&&_0x421f9d[_0x2cc904(0x29b)](_0x57715b)&&_0x2c4071[_0x2cc904(0x2ae)](_0x2cc904(0x229))[_0x2cc904(0x258)]('unchecked')[_0x2cc904(0x25e)](_0x2cc904(0x20a));});},'_setInputValue'(){const _0x8f949e=_0x31ffd8,_0x3aa4b0=this,_0x59db16=[];$('.sterfive-tree\x20li')[_0x8f949e(0x228)](function(){const _0x1cddb8=_0x8f949e,_0x43c4cc=$(this);if(_0x43c4cc[_0x1cddb8(0x2ae)](_0x1cddb8(0x1c8))['length']>0x0){const _0x570415=_0x43c4cc['attr'](_0x1cddb8(0x261));if(_0x570415)_0x59db16[_0x1cddb8(0x2a7)](_0x570415);}});const _0x464de6=[...new Set(_0x59db16)][_0x8f949e(0x23b)]()[_0x8f949e(0x247)](';');_0x3aa4b0[_0x8f949e(0x220)][_0x8f949e(0x268)](_0x464de6),_0x3aa4b0['$input']['trigger'](_0x8f949e(0x1dc));},'_create'(){const _0x3f9129=_0x31ffd8,_0x505057=this;_0x505057[_0x3f9129(0x220)]=this[_0x3f9129(0x1ca)],_0x505057[_0x3f9129(0x1f5)]=$(_0x3f9129(0x1e1)),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x25e)]('sterfive-combo-box'),this[_0x3f9129(0x1ca)][0x0]['parentElement'][_0x3f9129(0x224)](_0x505057[_0x3f9129(0x1f5)][0x0],this['element'][0x0]),_0x505057[_0x3f9129(0x21b)]=$(_0x3f9129(0x1e1))[_0x3f9129(0x25e)](_0x3f9129(0x294)),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x270)](_0x505057['$inputGroup']),_0x505057[_0x3f9129(0x21b)]['append'](_0x505057[_0x3f9129(0x220)]),_0x505057[_0x3f9129(0x284)]=$(_0x3f9129(0x288)),_0x505057[_0x3f9129(0x21b)][_0x3f9129(0x270)](_0x505057['$toggleTreeBtn']),_0x505057['$toggleTreeBtn']['on'](_0x3f9129(0x1cf),function(){const _0x44b70e=_0x3f9129;_0x505057[_0x44b70e(0x244)][_0x44b70e(0x233)](),_0x505057[_0x44b70e(0x285)][_0x44b70e(0x233)]();if(_0x505057[_0x44b70e(0x244)]['is'](':visible')){_0x2081c3[_0x44b70e(0x24d)]();const _0x1942db=_0x505057[_0x44b70e(0x244)][_0x44b70e(0x242)]();_0x2081c3[_0x44b70e(0x2a9)]({'top':_0x1942db['top']+'px','right':_0x44b70e(0x225)+(_0x1942db['left']+_0x505057[_0x44b70e(0x244)]['width']())+_0x44b70e(0x2a1)}),_0x505057[_0x44b70e(0x1e2)](),_0x505057['_updateSelectedFields']();}else _0x2081c3['hide']();});!_0x505057[_0x3f9129(0x220)][_0x3f9129(0x20d)](_0x3f9129(0x25f))&&_0x505057[_0x3f9129(0x220)][_0x3f9129(0x20d)]('placeholder',_0x3f9129(0x2a8));_0x505057['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0x505057['$info'][_0x3f9129(0x222)](),_0x505057[_0x3f9129(0x244)]=$(_0x3f9129(0x1e1))['addClass']('sterfive-dropdown')['hide']();const _0x30836a=$(_0x3f9129(0x22b)),_0x30f9df=$(_0x3f9129(0x246)),_0x2081c3=$(_0x3f9129(0x29f))['append'](_0x30836a,_0x30f9df);_0x2081c3[_0x3f9129(0x222)](),_0x30836a['on'](_0x3f9129(0x1cf),()=>{const _0x1bdc77=_0x3f9129;_0x505057[_0x1bdc77(0x23a)](),_0x505057[_0x1bdc77(0x244)][_0x1bdc77(0x222)]();}),_0x30f9df['on'](_0x3f9129(0x1cf),()=>{const _0x14a350=_0x3f9129;_0x505057[_0x14a350(0x244)]['hide']();}),_0x505057[_0x3f9129(0x1f5)][_0x3f9129(0x270)](_0x505057[_0x3f9129(0x285)]),_0x505057[_0x3f9129(0x1f5)]['append'](_0x505057[_0x3f9129(0x244)]),_0x505057['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0x505057['$dropdown'][_0x3f9129(0x243)]()[_0x3f9129(0x270)](_0x505057[_0x3f9129(0x260)],_0x2081c3),_0x505057[_0x3f9129(0x260)]['on'](_0x3f9129(0x1cf),'li',function(_0x96ae30){const _0x8f44ce=_0x3f9129;_0x96ae30[_0x8f44ce(0x1df)]();let _0x456f63=$(this);const _0x4454ac=0x14,_0x23ac19=0x14,_0x609da1=$(this)[_0x8f44ce(0x242)](),_0x227ee8=_0x96ae30;if(_0x227ee8[_0x8f44ce(0x1e5)]>=_0x609da1[_0x8f44ce(0x25d)]&&_0x227ee8[_0x8f44ce(0x1e5)]<=_0x609da1[_0x8f44ce(0x25d)]+_0x4454ac&&_0x227ee8['pageY']>=_0x609da1['top']&&_0x227ee8['pageY']<=_0x609da1[_0x8f44ce(0x287)]+_0x23ac19){console[_0x8f44ce(0x1d5)](_0x8f44ce(0x22c)),console['log'](_0x8f44ce(0x1e8),_0x456f63[_0x8f44ce(0x263)](_0x8f44ce(0x2a4)),_0x456f63['attr'](_0x8f44ce(0x239)));if(_0x456f63['hasClass'](_0x8f44ce(0x1d9)))_0x456f63[_0x8f44ce(0x258)](_0x8f44ce(0x1d9))[_0x8f44ce(0x25e)]('expanded'),_0x456f63['children']('ul')['toggle']();else{if(_0x456f63[_0x8f44ce(0x217)](_0x8f44ce(0x299)))_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x233)](),_0x456f63[_0x8f44ce(0x218)](_0x8f44ce(0x26a));else{if(_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x2ae)]()['length']>0x0)_0x456f63[_0x8f44ce(0x2ae)]('ul')[_0x8f44ce(0x233)](),_0x456f63['toggleClass'](_0x8f44ce(0x26a));else;}}}}),$(document)['on'](_0x3f9129(0x1cf),function(_0x1fad51){const _0x14d6c4=_0x3f9129;!$(_0x1fad51['target'])['closest'](_0x505057[_0x14d6c4(0x1f5)])['length']&&_0x505057['$dropdown']['hide']();}),this[_0x3f9129(0x1e2)]();}});},_0x139d6c=({endpointNode:_0x2bc402,endpoint:_0x5d7116,baseUrl:_0x2692da})=>_0x183f63(void 0x0,void 0x0,void 0x0,function*(){const _0x57cd27=_0x4b4774,_0xcc40da=_0x2692da+'/opcua-endpoint2',_0x3cfd3d=_0xcc40da+_0x57cd27(0x206),_0x26b97c=yield fetch(_0x3cfd3d,{'method':_0x57cd27(0x1f0),'body':JSON[_0x57cd27(0x205)]({'endpointNode':_0x2bc402,'endpoint':_0x5d7116}),'headers':{'Content-Type':_0x57cd27(0x1e6)}});if(_0x26b97c[_0x57cd27(0x1cb)]!==0xc8)return console[_0x57cd27(0x1d5)](_0x57cd27(0x212),_0x26b97c[_0x57cd27(0x1cb)],_0x26b97c['statusText']),{'events':null};console[_0x57cd27(0x1d5)](_0x57cd27(0x26b),_0x26b97c[_0x57cd27(0x1cb)],_0x26b97c[_0x57cd27(0x21f)]);const _0x3da745=yield _0x26b97c[_0x57cd27(0x27c)](),_0xb1d28d=_0x3da745['events'];return{'events':_0xb1d28d};}),_0x48c903=()=>{const _0x386d59=_0x4b4774,_0x168a71=$(_0x386d59(0x210)),_0x4b141f=_0x168a71['val'](),_0xf588c=RED[_0x386d59(0x248)][_0x386d59(0x1e7)](_0x4b141f);if(!_0xf588c)return undefined;const {endpoint:_0x16246d,securityMode:_0x2e772e,securityPolicy:_0xca72e2,userIdentityType:_0x4a954f,userName:_0x2c1d56,password:_0x214e08,userCertificate:_0x26b3be,userPrivatekey:_0x238a48}=_0xf588c;return{'endpoint':_0x16246d,'securityMode':_0x2e772e,'securityPolicy':_0xca72e2,'userIdentityType':_0x4a954f,'userName':_0x2c1d56,'password':_0x214e08,'userCertificate':_0x26b3be,'userPrivatekey':_0x238a48};},_0xcd4336=()=>{return{'endpointNode':_0x3676bb};},_0x3676bb=()=>{const _0x47e1d1=_0x4b4774,_0x15a8f9=$(_0x47e1d1(0x210)),_0x59f3ec=_0x15a8f9[_0x47e1d1(0x268)](),_0x510908=_0x48c903();if(!_0x510908)return undefined;return{'id':_0x59f3ec,'endpoint':_0x510908[_0x47e1d1(0x1eb)],'securityMode':_0x510908['securityMode'],'securityPolicy':_0x510908[_0x47e1d1(0x266)],'userIdentityType':_0x510908[_0x47e1d1(0x279)],'userName':_0x510908[_0x47e1d1(0x279)]==='UserName'?_0x510908['userName']:undefined,'password':_0x510908[_0x47e1d1(0x279)]===_0x47e1d1(0x1f9)?_0x510908[_0x47e1d1(0x2a2)]:undefined,'userCertificate':_0x510908['userCertificate'],'userPrivatekey':_0x510908[_0x47e1d1(0x1de)]};};RED[_0x4b4774(0x248)][_0x4b4774(0x29e)](_0x4b4774(0x290),{'category':_0x4b4774(0x26d),'color':_0x4b4774(0x262),'align':_0x4b4774(0x280),'icon':_0x4b4774(0x257),'paletteLabel':_0x4b4774(0x2af),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4b4774(0x1f4)},'subscription':{'value':'','required':!![],'validate':_0x27f480=>{if(_0x27f480==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0xf291be=_0x4b4774;return this[_0xf291be(0x2b1)]||_0xf291be(0x20f);},'labelStyle'(){const _0x58aabf=_0x4b4774;return this[_0x58aabf(0x2b1)]?_0x58aabf(0x267):'';},'oneditprepare'(){const _0x99415c=_0x4b4774;_0x2100d3(),_0x10748f(),_0x4e7446(RED,this),$('node-input-startImmediately')['on'](_0x99415c(0x1dc),()=>{const _0x376701=_0x99415c,_0x392bbd=$('#node-input-startImmediately')[_0x376701(0x209)](_0x376701(0x20a));_0x392bbd?$(_0x376701(0x2a3))[_0x376701(0x268)](0x0):$(_0x376701(0x2a3))[_0x376701(0x268)](0x1);});const _0x8fb7f6=$(_0x99415c(0x1d6));_0x8fb7f6[_0x99415c(0x207)](Object[_0x99415c(0x27f)](Object[_0x99415c(0x27f)]({},_0xcd4336()),{'filter'(_0x289b9e){const _0x4886d6=_0x99415c;return _0x289b9e[_0x4886d6(0x249)]===_0x4886d6(0x1dd);},'isSelectable'(_0x50ea01){const _0x4666fb=_0x99415c;return _0x50ea01['nodeClass']===_0x4666fb(0x1dd);}})),$(_0x99415c(0x241));const _0x3eb4c9=$(_0x99415c(0x1e4));_0x3eb4c9[_0x99415c(0x24c)](Object[_0x99415c(0x27f)]({},_0xcd4336()));},'oneditsave'(){const _0x440830=_0x4b4774,_0x12f32b=$(_0x440830(0x24a))[_0x440830(0x209)](_0x440830(0x20a));_0x12f32b?($(_0x440830(0x24a))[_0x440830(0x268)](_0x12f32b?0x0:0x1),this[_0x440830(0x237)]=_0x12f32b?0x0:0x1):($(_0x440830(0x24a))['val'](0x1),this['inputs']=0x1);}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZTc0NDYiLCJfMHgxM2I4MWUiLCJfMHg0ZGZiMDUiLCJfMHgyMzY0NTAiLCIkIiwiXzB4Mzk3YzhiIiwiXzB4NTYzNTZhIiwiXzB4NDFhYWIxIiwiXzB4MTEzNjY1IiwiXzB4M2YzMGFjIiwiXzB4MTgzZjYzIiwiXzB4NzFhMGU4IiwiXzB4MjdjM2ZiIiwiXzB4MzI3M2I0IiwiXzB4YzEyODMyIiwiXzB4MzFiMTdjIiwiXzB4MmEzYWNjIiwiXzB4M2QzZmU2IiwiUHJvbWlzZSIsIl8weDIzZWQ4NiIsIl8weDNkYzc4MSIsIl8weDUxNzhlNCIsIl8weDQ5MWVkYSIsIl8weDE1OWVlNiIsIl8weDUzYzdkOSIsIl8weDViODMzZSIsIl8weDQ3ZTY0MiIsIl8weDI5OTYwOSIsIl8weDQ5YzI3NiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDMxMWVjMCIsIl8weDM1ZmY2YiIsIl8weDIwM2VlMyIsIl8weDE4ZmRkMCIsIkVycm9yIiwiXzB4MTllZjYzIiwiXzB4NGIyMmZiIiwiXzB4NTEwYTg4IiwiXzB4M2NmOTQ2IiwiXzB4MzIyN2NiIiwiXzB4MTk0ODBhIiwiXzB4YjM0ZWQ3IiwiXzB4MmQ1NTY0IiwiXzB4YmNjNzZhIiwiXzB4MWY4MjlhIiwiXzB4MmVhMWJhIiwiXzB4MWY4NDJhIiwiXzB4NGUwNDBlIiwiXzB4NWQ3ZGU3IiwiXzB4MjE0OWY3IiwiXzB4NTlhMTg2IiwiXzB4M2MwZGY3IiwiXzB4MjRmZjliIiwiXzB4M2NiYTg4IiwiXzB4NWVmMmFmIiwiZW5kcG9pbnROb2RlIiwiXzB4MzhkMDJlIiwiZW5kcG9pbnQiLCJfMHg0NTJiYWEiLCJiYXNlVXJsIiwiXzB4NGNkZmQ3IiwiXzB4MzgyZWE0IiwiXzB4MzMxMzYwIiwiXzB4OTZkN2Q4IiwiXzB4NDcxYjNkIiwiXzB4MTJiNzc2IiwiT2JqZWN0IiwiXzB4M2UzMzRiIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDMxNzQ0MSIsIl8weDQ4ZDU4NSIsIl8weDMxN2M5ZSIsIl8weDNhYTBlYSIsIl8weDNhYmIxMyIsIl8weDVhODhmZSIsIl8weDQyMmRjZCIsIl8weDNkOGM5OCIsIl8weDViOTE4NSIsIl8weDNmY2I1MSIsIl8weGEyNWRjNiIsIl8weDUxMDNkMyIsIl8weDNmZTE0OCIsIl8weDU5ZTRjZiIsIl8weGUzNGE3NCIsIl8weGI5MWE5ZSIsInNldFRpbWVvdXQiLCJfMHg1OWVhMzEiLCJfMHgxNzhlMTgiLCJfMHg1MTlmZWUiLCJfMHgzYTJmNmIiLCJfMHgyYWU2MTciLCJfMHgzMzk4YjIiLCJfMHgxYTVhYmQiLCJfMHgzNGVhYzIiLCJfMHhlNGZmOTUiLCJfMHg0OTMzOTYiLCJfMHgzM2FkN2IiLCJfMHg0OTcwZGUiLCJfMHg0M2E4MjciLCJfMHg1NmFlZTYiLCJfMHg1ZTUwODkiLCJfMHg0NmZhYWYiLCJfMHgxYTc2NjciLCJfMHgzMWZiMmMiLCJfMHg0ODYxNGIiLCJfMHgzZTY4MGIiLCJpY29uIiwiXzB4MjE2NGU4IiwiY29sb3IiLCJfMHg1NTNhMWQiLCJfMHgyOTkzNzMiLCJfMHgyMTAwZDMiLCJ1bmRlZmluZWQiLCJfMHgyN2QyYmIiLCJfMHg1OGJhYzEiLCJfMHgxYjk3MjMiLCJfMHg1NDMzZmIiLCJfMHgyYjA4ZDAiLCJfMHg0NTI5NzgiLCJfMHgyOTkzMDEiLCJfMHg1YWFjMTkiLCJfMHg0ZGQxOTMiLCJfMHgyYmIzMWUiLCJfMHg0NWJmZTUiLCJfMHg0ZDhkOWEiLCJyZWZlcmVuY2VzIiwiXzB4NDgwOWRjIiwiXzB4NWNmY2JjIiwiXzB4N2M5NDU3IiwiXzB4NGMyMTcxIiwiXzB4MzE0Y2YxIiwiXzB4MWI3N2U0IiwiXzB4NDlkMzU5IiwiXzB4MzE4ODU5IiwiXzB4NjI2NTQ5IiwiXzB4NTkxNWRkIiwiXzB4Mjc3NzdlIiwiXzB4Y2IyODI2IiwiXzB4MjQ4ZTJmIiwiXzB4MTlmNDAzIiwiXzB4MTY4YWZmIiwiXzB4NzZkOGZhIiwiXzB4MTg5YTNlIiwiXzB4NTFlOGJhIiwiXzB4MmI0OTFiIiwiXzB4MmViMTEwIiwiXzB4Mzg0ZTYyIiwiZG9jdW1lbnQiLCJfMHg0OTA3ZmIiLCJfMHhhZGUwZCIsIl8weDJhZjVhZCIsIl8weDI5MzBmNSIsIl8weDJjZDgzMyIsIl8weDQ4OWYzZSIsIl8weDM5OGViMSIsIl8weDRmNTU3ZCIsIl8weGNjODVhOCIsIl8weDEyMmVkNyIsIl8weDNlMGJmMSIsIl8weDU1OWFjNiIsIl8weDU1ZTA5ZSIsIl8weDNlZTRlNSIsIl8weDEwNzQ4ZiIsIl8weDVjYTZhNSIsIl8weDJkZWM3NiIsIl8weDRiNTVkZiIsIlNldCIsIl8weDI3MDc3ZCIsIl8weDkyZDQ4YiIsIl8weDEzOWQ2YyIsIl8weDEwYzI2MCIsIl8weDFhMzViMSIsIl8weDQ3OGFhZCIsIl8weDU0MDAxYSIsIl8weDMyZjM5NSIsIl8weDU5NTVlNiIsIl8weDQzNDdjZiIsIl8weDhlZGEwNiIsIl8weDU1YWYwYSIsIl8weDNiZmJmNiIsIl8weDIwNjk5YyIsIm5hbWUiLCJfMHgzMDg2MjIiLCJuYW1lc3BhY2VJbmRleCIsIl8weDUxOThkOCIsIl8weDUyZThmZCIsIl8weDU1NGEyNiIsIl8weDUyZTM0MSIsIl8weDRmMjgxMyIsIl8weDMyYjk5MiIsIl8weDFkNjg2NCIsIl8weDU0MDhjYyIsIl8weDQ1YWRjNiIsIl8weDRkYTQzMyIsIl8weDVkYjNmYSIsIl8weGFjMDgwNSIsIl8weDQyMWY5ZCIsIl8weDJjNDA3MSIsIl8weDU3NzE1YiIsIl8weDNhYTRiMCIsIl8weDU5ZGIxNiIsIl8weDQzYzRjYyIsIl8weDU3MDQxNSIsIl8weDQ2NGRlNiIsIl8weDUwNTA1NyIsIl8weDIwODFjMyIsIl8weDE5NDJkYiIsIl8weDMwODM2YSIsIl8weDMwZjlkZiIsIl8weDk2YWUzMCIsIl8weDQ1NmY2MyIsIl8weDQ0NTRhYyIsIl8weDIzYWMxOSIsIl8weDYwOWRhMSIsIl8weDIyN2VlOCIsIl8weDFmYWQ1MSIsIl8weDJiYzQwMiIsIl8weDVkNzExNiIsIl8weDI2OTJkYSIsIl8weGNjNDBkYSIsIl8weDNjZmQzZCIsIl8weDI2Yjk3YyIsIl8weDNkYTc0NSIsIl8weGIxZDI4ZCIsIl8weDQ4YzkwMyIsIl8weDE2OGE3MSIsIl8weDRiMTQxZiIsIl8weGY1ODhjIiwiUkVEIiwiXzB4MTYyNDZkIiwic2VjdXJpdHlNb2RlIiwiXzB4MmU3NzJlIiwic2VjdXJpdHlQb2xpY3kiLCJfMHhjYTcyZTIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NGE5NTRmIiwidXNlck5hbWUiLCJfMHgyYzFkNTYiLCJwYXNzd29yZCIsIl8weDIxNGUwOCIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDI2YjNiZSIsInVzZXJQcml2YXRla2V5IiwiXzB4MjM4YTQ4IiwiXzB4Y2Q0MzM2IiwiXzB4MzY3NmJiIiwiXzB4MTVhOGY5IiwiXzB4NTlmM2VjIiwiXzB4NTEwOTA4IiwiXzB4MjdmNDgwIiwiXzB4MzkyYmJkIiwiXzB4OGZiN2Y2IiwiXzB4Mjg5YjllIiwiXzB4NTBlYTAxIiwiXzB4M2ViNGM5IiwiXzB4MTJmMzJiIl0sIm1hcHBpbmdzIjoiNnVJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsTUFBQSxFQUFlRSxTQUFBLEMsZ0JBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZ0JBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxnQkFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJ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LENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFVBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsUUFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGFBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FB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Q3hFQSxTQUFBLEMsZ0JBQUEsSSxrQkFEc0UsQyxjQUdqRixDQUFhQyxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxXQUFBLEksa0JBSnNFLENBQWpFLENBQXBCLEMsQ0FPQTNQLENBQUEsQyxnQkFBQSxDQVBBLENBUUEsTUFBTTRQLFNBQUEsQ0FBaUI1UCxDQUFBLEMsZ0JBQUEsQ0FBdkIsQ0FDQTRQLFNBQUEsQyxnQkFBQSxFQUFrQzlMLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JvTCxTQUFBLEVBQWxCLENBQWxDLEMsRUFwRTZDLEMsWUFzRWpELEUsMkJBQ1VXLFNBQUEsQ0FBbUI3UCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDckI2UCxTLEVBQ0E3UCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFzQzZQLFNBQUEsQyxHQUFBLEMsR0FBdEMsQyxDQUNBLEssZ0JBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFLEdBQUEsQyxDQUNBLEssUUFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ (function(_0x3be4b2,_0x231932){const _0x58931a=_0x18f7,_0x492716=_0x3be4b2();while(!![]){try{const _0x2f307b=parseInt(_0x58931a(0x150))/0x1*(-parseInt(_0x58931a(0x146))/0x2)+-parseInt(_0x58931a(0x15e))/0x3*(parseInt(_0x58931a(0x196))/0x4)+parseInt(_0x58931a(0x109))/0x5+parseInt(_0x58931a(0x1a2))/0x6+parseInt(_0x58931a(0x113))/0x7+-parseInt(_0x58931a(0x134))/0x8*(-parseInt(_0x58931a(0x19c))/0x9)+-parseInt(_0x58931a(0x17a))/0xa;if(_0x2f307b===_0x231932)break;else _0x492716['push'](_0x492716['shift']());}catch(_0x250a5c){_0x492716['push'](_0x492716['shift']());}}}(_0x1200,0x3d03c),(function(){'use strict';const _0x18aae0=_0x18f7;function _0x177f25(_0x36a65a,_0xf857d9){const _0xf6bcb7=_0x18f7,_0xc68e19=$(_0xf6bcb7(0x178)),_0x4a879b=$(_0xf6bcb7(0x102)),_0xfb7b13=()=>{const _0x1ed446=_0xf6bcb7,_0x16f3d6=_0x36a65a[_0x1ed446(0x13e)][_0x1ed446(0x11d)](_0xc68e19[_0x1ed446(0x129)]());_0x4a879b[_0x1ed446(0x1b3)]();if(!_0x16f3d6||!_0x16f3d6['subscriptions'])return;if(_0x16f3d6[_0x1ed446(0x10f)])for(const _0x21e1df of _0x16f3d6[_0x1ed446(0x10f)]){const _0x3211fc=_0x21e1df[_0x1ed446(0x155)]||_0x21e1df['id'];$(_0x1ed446(0x182),{'value':_0x21e1df['id'],'label':_0x3211fc,'selected':_0x21e1df['id']===_0xf857d9[_0x1ed446(0x18a)]})[_0x1ed446(0x191)](_0x3211fc)[_0x1ed446(0xf3)](_0x4a879b);}};_0xfb7b13(),_0x4a879b['on']('focus\x20click',()=>{_0xfb7b13();}),_0xc68e19['on'](_0xf6bcb7(0x170),()=>{_0xfb7b13();});}function _0x2bbbe8(_0x4d6757,_0x32cd98,_0x1bc9b8,_0xf6bf43){function _0x31829e(_0x55c2a8){return _0x55c2a8 instanceof _0x1bc9b8?_0x55c2a8:new _0x1bc9b8(function(_0x9acafe){_0x9acafe(_0x55c2a8);});}return new(_0x1bc9b8||(_0x1bc9b8=Promise))(function(_0x15703e,_0x427337){const _0xfa4491=_0x18f7;function _0x4c2b97(_0x2832c3){const _0x1a5aef=_0x18f7;try{_0x17ce45(_0xf6bf43[_0x1a5aef(0x164)](_0x2832c3));}catch(_0x2dbcb4){_0x427337(_0x2dbcb4);}}function _0x1173a4(_0x52e421){try{_0x17ce45(_0xf6bf43['throw'](_0x52e421));}catch(_0x2a501){_0x427337(_0x2a501);}}function _0x17ce45(_0x2e429c){const _0x4d32dd=_0x18f7;_0x2e429c[_0x4d32dd(0x189)]?_0x15703e(_0x2e429c[_0x4d32dd(0xf2)]):_0x31829e(_0x2e429c[_0x4d32dd(0xf2)])[_0x4d32dd(0x14e)](_0x4c2b97,_0x1173a4);}_0x17ce45((_0xf6bf43=_0xf6bf43[_0xfa4491(0x108)](_0x4d6757,_0x32cd98||[]))[_0xfa4491(0x164)]());});}typeof SuppressedError===_0x18aae0(0x101)?SuppressedError:function(_0x538d4d,_0x87b2a,_0x5aae04){const _0x2fa72d=_0x18aae0;var _0xf3d482=new Error(_0x5aae04);return _0xf3d482[_0x2fa72d(0x155)]='SuppressedError',_0xf3d482[_0x2fa72d(0x159)]=_0x538d4d,_0xf3d482[_0x2fa72d(0xfb)]=_0x87b2a,_0xf3d482;};const _0x50ae37='ns=0;i=35',_0x38dc98=_0x18aae0(0x10a),_0x4a9d0a='ns=0;i=47',_0x3df289=_0x18aae0(0x1b2),_0x129392=_0x18aae0(0x152),_0x3ad803='ns=0;i=45',_0x588b79=_0x18aae0(0x1bb);var _0x29b744;(function(_0x4c486c){const _0x890733=_0x18aae0;_0x4c486c[_0x4c486c[_0x890733(0xfa)]=0x0]=_0x890733(0xfa),_0x4c486c[_0x4c486c[_0x890733(0x12b)]=0x1]='Inverse',_0x4c486c[_0x4c486c[_0x890733(0x1bd)]=0x2]='Both',_0x4c486c[_0x4c486c['Invalid']=0x3]=_0x890733(0x1b1);}(_0x29b744||(_0x29b744={})));var _0x140246;(function(_0x14cb2a){const _0x4e7377=_0x18aae0;_0x14cb2a[_0x14cb2a[_0x4e7377(0x19d)]=0x0]=_0x4e7377(0x19d),_0x14cb2a[_0x14cb2a['Object']=0x1]='Object',_0x14cb2a[_0x14cb2a['Variable']=0x2]=_0x4e7377(0xe1),_0x14cb2a[_0x14cb2a['Method']=0x4]='Method',_0x14cb2a[_0x14cb2a[_0x4e7377(0xfd)]=0x8]='ObjectType',_0x14cb2a[_0x14cb2a[_0x4e7377(0x18c)]=0x10]=_0x4e7377(0x18c),_0x14cb2a[_0x14cb2a[_0x4e7377(0x1ac)]=0x20]=_0x4e7377(0x1ac),_0x14cb2a[_0x14cb2a[_0x4e7377(0x13a)]=0x40]=_0x4e7377(0x13a),_0x14cb2a[_0x14cb2a[_0x4e7377(0x15f)]=0x80]=_0x4e7377(0x15f);}(_0x140246||(_0x140246={})));var _0x467435;(function(_0x57a320){const _0x5775e5=_0x18aae0;_0x57a320[_0x57a320[_0x5775e5(0x15b)]=0x1]=_0x5775e5(0x15b),_0x57a320[_0x57a320[_0x5775e5(0xe1)]=0x2]=_0x5775e5(0xe1),_0x57a320[_0x57a320[_0x5775e5(0xfc)]=0x4]=_0x5775e5(0xfc),_0x57a320[_0x57a320['ObjectType']=0x8]=_0x5775e5(0xfd),_0x57a320[_0x57a320['VariableType']=0x10]='VariableType',_0x57a320[_0x57a320[_0x5775e5(0x1ac)]=0x20]=_0x5775e5(0x1ac),_0x57a320[_0x57a320[_0x5775e5(0x13a)]=0x40]=_0x5775e5(0x13a),_0x57a320[_0x57a320[_0x5775e5(0x15f)]=0x80]=_0x5775e5(0x15f);}(_0x467435||(_0x467435={})));var _0x50cad9;(function(_0x5006d2){const _0x2c4028=_0x18aae0;_0x5006d2[_0x5006d2['ReferenceType']=0x1]=_0x2c4028(0x1ac),_0x5006d2[_0x5006d2[_0x2c4028(0xe4)]=0x2]='IsForward',_0x5006d2[_0x5006d2[_0x2c4028(0x1b5)]=0x4]='NodeClass',_0x5006d2[_0x5006d2[_0x2c4028(0x199)]=0x8]=_0x2c4028(0x199),_0x5006d2[_0x5006d2[_0x2c4028(0x111)]=0x10]=_0x2c4028(0x111),_0x5006d2[_0x5006d2[_0x2c4028(0x194)]=0x20]=_0x2c4028(0x194);}(_0x50cad9||(_0x50cad9={})));function _0x288c63(_0x38d196){const _0x6936a7=_0x18aae0;switch(_0x38d196){case _0x6936a7(0x131):return _0x50ae37;case _0x6936a7(0x16e):return _0x3df289;case'HasComponent':return _0x4a9d0a;case _0x6936a7(0x11b):return _0x129392;case _0x6936a7(0x1a8):return _0x3ad803;case'HasTypeDefinition':return _0x588b79;}}const _0x369029=_0x445d01=>{const _0xf04b6b=_0x18aae0;switch(_0x445d01[_0xf04b6b(0x18b)]){case'Object':if(_0x445d01[_0xf04b6b(0x123)]===_0x50ae37);if(_0x445d01['typeDefinition']===_0x38dc98||_0x445d01[_0xf04b6b(0x123)]===_0xf04b6b(0x11a))return{'icon':_0xf04b6b(0x1b6),'color':_0xf04b6b(0x14c)};return{'icon':_0xf04b6b(0x19e),'color':_0xf04b6b(0x163)};case'Variable':if(_0x445d01[_0xf04b6b(0x123)]===_0x4a9d0a)return{'icon':_0xf04b6b(0xfe),'color':_0xf04b6b(0x169)};else return _0x445d01[_0xf04b6b(0x123)]===_0x3df289?{'icon':_0xf04b6b(0xfe),'color':_0xf04b6b(0x186)}:{'icon':'fa-list-alt','color':_0xf04b6b(0x160)};case _0xf04b6b(0xfc):return{'icon':'fa-cog','color':_0xf04b6b(0x162)};case'ObjectType':return{'icon':'fa-object-group','color':_0xf04b6b(0x132)};case _0xf04b6b(0x18c):return{'icon':_0xf04b6b(0x16f),'color':'DarkOrange'};}return{'icon':_0xf04b6b(0x1a1),'color':_0xf04b6b(0x10e)};},_0xf93482=({endpointNode:_0x3b4683,endpoint:_0x466aaa,baseUrl:_0x1c9f7c},_0x353151,_0x2aaafe)=>_0x2bbbe8(void 0x0,void 0x0,void 0x0,function*(){const _0x3e1d26=_0x18aae0,_0x4ef4db=_0x1c9f7c+'/opcua-endpoint2',_0xfe0823=_0x4ef4db+'/browse',_0x426a8d=Object[_0x3e1d26(0x185)](Object[_0x3e1d26(0x185)]({},_0x2aaafe),{'nodeId':_0x353151,'resultMask':0x3f}),_0x2975a5=yield fetch(_0xfe0823,{'method':_0x3e1d26(0x145),'body':JSON[_0x3e1d26(0x175)]({'endpointNode':_0x3b4683,'endpoint':_0x466aaa,'browseDescription':_0x426a8d}),'headers':{'Content-Type':'application/json'}});if(_0x2975a5[_0x3e1d26(0x183)]!==0xc8)return console['log'](_0x3e1d26(0x137),_0x2975a5['status'],_0x2975a5[_0x3e1d26(0x114)]),{'references':[]};console[_0x3e1d26(0x190)]('fetched\x20:\x20',_0x2975a5[_0x3e1d26(0x183)],_0x2975a5[_0x3e1d26(0x114)]);const _0x406f7d=yield _0x2975a5['json'](),_0x1de841=_0x406f7d[_0x3e1d26(0x116)]['references']||[];return{'references':_0x1de841};}),_0x2a209a={'referenceTypeId':_0x288c63('HasChild'),'includeSubtypes':!![],'browseDirection':_0x29b744['Forward'],'nodeClassMask':_0x140246['Variable']|_0x140246['Object']|_0x140246[_0x18aae0(0xfc)],'resultMask':0x3f},_0x317bbf={'referenceTypeId':_0x288c63(_0x18aae0(0x131)),'includeSubtypes':!![],'browseDirection':_0x29b744['Forward'],'nodeClassMask':_0x140246['Variable']|_0x140246[_0x18aae0(0x15b)]|_0x140246[_0x18aae0(0xfc)],'resultMask':0x3f},_0x378972=({endpointNode:_0x206255,endpoint:_0x58d5f6,baseUrl:_0x2debd0},_0x4c8fab,_0x596172)=>_0x2bbbe8(void 0x0,void 0x0,void 0x0,function*(){const _0x128edb=_0x18aae0,_0x357122=_0x2debd0+_0x128edb(0x1a7),_0xee22ba=_0x4c8fab[_0x128edb(0x129)](),_0x1b8c6d=yield fetch(_0x357122+'/checkNodeId',{'method':_0x128edb(0x145),'body':JSON[_0x128edb(0x175)]({'endpointNode':_0x206255,'endpoint':_0x58d5f6,'nodeId':_0xee22ba}),'headers':{'Content-Type':_0x128edb(0x1aa)}}),_0x395b2d=(_0x58684a,_0x5f2176)=>{const _0x3852fd=_0x128edb;_0x596172[_0x3852fd(0x191)](_0x58684a)['addClass']('sterfive-info')[_0x3852fd(0x17e)](_0x5f2176),_0x596172[_0x3852fd(0x1c1)](),setTimeout(()=>{const _0x4ac501=_0x3852fd;_0x596172[_0x4ac501(0x1be)](_0x5f2176),_0x596172['hide']();},0xbb8);},_0x10f78a=yield _0x1b8c6d[_0x128edb(0x171)]();_0x1b8c6d[_0x128edb(0x183)]!==0xc8?_0x395b2d('!!failure!!'+_0xee22ba,_0x128edb(0x1a9)):_0x10f78a['statusCode'][_0x128edb(0x126)](/Good/)?(_0x4c8fab[_0x128edb(0x129)](_0x10f78a[_0x128edb(0x17c)]),_0x4c8fab[_0x128edb(0x17f)](_0x128edb(0x170)),_0x395b2d('Good','ok')):(_0x4c8fab[_0x128edb(0x129)](''+_0xee22ba),_0x395b2d(_0x10f78a[_0x128edb(0x130)]+'\x20'+_0x1b8c6d[_0x128edb(0x114)],_0x128edb(0x1a9)));});function _0x429691(_0x26f251,_0x3baa27){return _0x2bbbe8(this,void 0x0,void 0x0,function*(){const _0x2ca230=_0x18f7,_0x226f3e=_0x26f251['data']('value'),_0x31c331=yield _0xf93482(_0x3baa27,_0x226f3e,_0x2a209a),_0x32e3ae=yield _0xf93482(_0x3baa27,_0x226f3e,_0x317bbf);return{'references':[..._0x31c331[_0x2ca230(0x1ae)],..._0x32e3ae[_0x2ca230(0x1ae)]]};});}const _0x3fcc13={'referenceTypeId':_0x288c63('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x29b744[_0x18aae0(0xfa)],'nodeClassMask':_0x140246[_0x18aae0(0x1ac)]|_0x140246[_0x18aae0(0xfd)]|_0x140246['DataType']|_0x140246[_0x18aae0(0x18c)],'resultMask':0x3f};function _0x3cfbc1(_0x290aeb,_0x3b19e1){return _0x2bbbe8(this,void 0x0,void 0x0,function*(){const _0x574d03=_0x18f7,_0x17c1a3=_0x290aeb['data'](_0x574d03(0xf2)),_0x3e299a=yield _0xf93482(_0x3b19e1,_0x17c1a3,_0x3fcc13);return _0x3e299a;});}const _0x5c7bdb=_0x4676a0=>{const _0x343404=_0x18aae0;var _0x359264,_0x1ae981;if(!_0x4676a0){const _0x221031=$(_0x343404(0x172));return _0x221031;}const _0x30f126=_0x4676a0['nodeId'][_0x343404(0xf0)](),_0xeac231=((_0x359264=_0x4676a0[_0x343404(0xf6)])===null||_0x359264===void 0x0?void 0x0:_0x359264[_0x343404(0x191)])||((_0x1ae981=_0x4676a0['browseName'])===null||_0x1ae981===void 0x0?void 0x0:_0x1ae981[_0x343404(0x155)])||_0x4676a0['nodeId']['toString'](),{icon:_0x2f09e7,color:_0x15702f}=_0x369029(_0x4676a0),_0x450d3b=$(_0x343404(0x135)+_0x2f09e7+_0x343404(0x1a3)+_0x15702f+_0x343404(0x174)+_0xeac231+_0x343404(0xe0));return _0x450d3b[_0x343404(0x17e)]('expandable'),_0x450d3b[_0x343404(0x147)](_0x343404(0xf2),_0x30f126),_0x450d3b[_0x343404(0x147)]('reference',_0x4676a0),_0x450d3b;},_0x409177=()=>{const _0x339e10=_0x18aae0;$[_0x339e10(0x1b8)](_0x339e10(0xf4),{'options':{'endpointNode':()=>({'endpoint':_0x339e10(0x158)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x339e10(0x14f)},'nodeClass':_0x339e10(0x15b),'nodeId':'ns=0;i=85','displayName':{'text':'Objects'},'typeDefinition':_0x38dc98}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2bbbe8(this,void 0x0,void 0x0,function*(){const _0x202882=_0x18f7,_0x21184d=this,_0x2b9bf6=typeof _0x21184d[_0x202882(0x121)][_0x202882(0x181)]===_0x202882(0x101)?_0x21184d[_0x202882(0x121)][_0x202882(0x181)]():_0x21184d[_0x202882(0x121)][_0x202882(0x181)];if(_0x2b9bf6 instanceof Promise)return yield _0x2b9bf6;return _0x2b9bf6;});},'reset'(){const _0x343b74=_0x339e10,_0x259bab=this;_0x259bab['$tree']['empty'](),this[_0x343b74(0x187)]()[_0x343b74(0x14e)](_0xb5b372=>{const _0x49df98=_0x343b74,_0x279577=_0x5c7bdb(_0xb5b372);_0x259bab[_0x49df98(0x184)][_0x49df98(0xf1)](_0x279577),_0x259bab[_0x49df98(0x10c)]=_0xb5b372;});},'verify'(){const _0x84a770=_0x339e10,_0xef1f89=this,_0x2f0893={'baseUrl':_0xef1f89[_0x84a770(0x121)][_0x84a770(0x106)],'endpointNode':typeof _0xef1f89[_0x84a770(0x121)][_0x84a770(0x1ad)]===_0x84a770(0x101)?_0xef1f89[_0x84a770(0x121)][_0x84a770(0x1ad)]():_0xef1f89[_0x84a770(0x121)][_0x84a770(0x1ad)],'endpoint':typeof _0xef1f89[_0x84a770(0x121)][_0x84a770(0x1b4)]===_0x84a770(0x101)?_0xef1f89[_0x84a770(0x121)][_0x84a770(0x1b4)]():_0xef1f89[_0x84a770(0x121)]['endpoint']};_0x378972(_0x2f0893,_0xef1f89['$input'],_0xef1f89[_0x84a770(0xed)]);},'_create'(){const _0x1c8646=_0x339e10,_0x39667e=this;function _0x264c5b(_0x516485,_0x2ec4b8,_0xe3f1e6){return _0x2bbbe8(this,void 0x0,void 0x0,function*(){const _0x75fc62=_0x18f7;if(_0x516485['hasClass'](_0x75fc62(0x133))){console['log'](_0x75fc62(0x165));return;}if(_0x516485[_0x75fc62(0x14a)]('loading')){console['log']('already\x20loading');return;}_0x516485[_0x75fc62(0x17e)]('loading'),_0x516485[_0x75fc62(0xf1)](_0x75fc62(0x18d));try{_0x516485[_0x75fc62(0x1c0)]('ul')[_0x75fc62(0x1b3)]();const {references:_0x1713a4}=yield _0x2ec4b8(_0x516485,_0xe3f1e6);for(const _0x3d930a of _0x1713a4){if(_0x39667e[_0x75fc62(0x121)][_0x75fc62(0xe6)]&&!_0x39667e[_0x75fc62(0x121)]['filter'](_0x3d930a))continue;const _0x433e9f=_0x5c7bdb(_0x3d930a);_0x516485[_0x75fc62(0x1c0)]('ul')[_0x75fc62(0xf1)](_0x433e9f);}_0x516485[_0x75fc62(0x17e)](_0x75fc62(0x133));}catch(_0x42c78f){_0x516485['children']('ul')[_0x75fc62(0xf1)]('<li>error\x20'+_0x42c78f[_0x75fc62(0x1bf)]+_0x75fc62(0xf7)),console[_0x75fc62(0x190)](_0x75fc62(0xf5),_0x42c78f);}_0x516485[_0x75fc62(0x151)](_0x75fc62(0x1a0))[_0x75fc62(0x11c)](),_0x516485[_0x75fc62(0x1be)](_0x75fc62(0x195));});}_0x39667e[_0x1c8646(0x138)]=this[_0x1c8646(0x179)],_0x39667e[_0x1c8646(0x142)]=$(_0x1c8646(0x192)),_0x39667e[_0x1c8646(0x142)][_0x1c8646(0x17e)](_0x1c8646(0x161)),this[_0x1c8646(0x179)][_0x1c8646(0x198)](_0x39667e[_0x1c8646(0x142)]),_0x39667e[_0x1c8646(0x16d)]=$(_0x1c8646(0x192))['addClass'](_0x1c8646(0x119)),_0x39667e['$combo'][_0x1c8646(0xf1)](_0x39667e['$inputGroup']),_0x39667e[_0x1c8646(0x16d)][_0x1c8646(0xf1)](_0x39667e[_0x1c8646(0x138)]),_0x39667e[_0x1c8646(0x1b9)]=$(_0x1c8646(0x154)),_0x39667e[_0x1c8646(0x16d)][_0x1c8646(0xf1)](_0x39667e[_0x1c8646(0x1b9)]),_0x39667e[_0x1c8646(0x1b9)]['on'](_0x1c8646(0xe3),function(){const _0x1115d7=_0x1c8646;!_0x39667e[_0x1115d7(0x153)]['is'](_0x1115d7(0x188))&&(_0x39667e[_0x1115d7(0x187)]()['then'](_0x4f8b3d=>{const _0x5b2d44=_0x1115d7;var _0x59345a;(_0x4f8b3d!==_0x39667e['currentParent']||((_0x59345a=_0x39667e[_0x5b2d44(0x10c)])===null||_0x59345a===void 0x0?void 0x0:_0x59345a[_0x5b2d44(0x128)])!==_0x4f8b3d[_0x5b2d44(0x128)])&&_0x39667e[_0x5b2d44(0x13d)]();}),_0x39667e['$info'][_0x1115d7(0xea)]()),_0x39667e[_0x1115d7(0x153)]['toggle']();}),_0x39667e[_0x1c8646(0x193)]=$(_0x1c8646(0x19f)),_0x39667e[_0x1c8646(0x16d)][_0x1c8646(0xf1)](_0x39667e[_0x1c8646(0x193)]),_0x39667e[_0x1c8646(0x193)]['on'](_0x1c8646(0xe3),()=>{const _0x457ae1=_0x1c8646;this[_0x457ae1(0x1ab)]();}),!_0x39667e[_0x1c8646(0x138)][_0x1c8646(0xe5)](_0x1c8646(0x16b))&&_0x39667e[_0x1c8646(0x138)][_0x1c8646(0xe5)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x39667e[_0x1c8646(0xed)]=$('<div\x20class=\x22info-text\x22></div>'),_0x39667e[_0x1c8646(0xed)][_0x1c8646(0xea)](),{'baseUrl':_0x39667e[_0x1c8646(0x121)][_0x1c8646(0x106)],'endpointNode':typeof _0x39667e[_0x1c8646(0x121)][_0x1c8646(0x1ad)]===_0x1c8646(0x101)?_0x39667e[_0x1c8646(0x121)]['endpointNode']():_0x39667e['options'][_0x1c8646(0x1ad)],'endpoint':typeof _0x39667e[_0x1c8646(0x121)][_0x1c8646(0x1b4)]===_0x1c8646(0x101)?_0x39667e[_0x1c8646(0x121)][_0x1c8646(0x1b4)]():_0x39667e[_0x1c8646(0x121)][_0x1c8646(0x1b4)]},_0x39667e[_0x1c8646(0x153)]=$(_0x1c8646(0x192))['addClass']('sterfive-dropdown')['hide'](),_0x39667e['$combo'][_0x1c8646(0xf1)](_0x39667e['$info']),_0x39667e['$combo'][_0x1c8646(0xf1)](_0x39667e[_0x1c8646(0x153)]),_0x39667e[_0x1c8646(0x184)]=$(_0x1c8646(0x10d))['appendTo'](_0x39667e[_0x1c8646(0x153)]),this['reset'](),_0x39667e['$tree']['on']('click','li',function(_0x9a0ef8){const _0x177923=_0x1c8646;var _0xedeb17,_0x23b43c;_0x9a0ef8[_0x177923(0x122)]();let _0x55f5db=$(this);const _0x638612=0x14,_0x5172c7=0x14,_0x2500d5=$(this)[_0x177923(0x120)](),_0x9de0f0=_0x9a0ef8;if(_0x9de0f0[_0x177923(0x12c)]>=_0x2500d5[_0x177923(0x143)]&&_0x9de0f0[_0x177923(0x12c)]<=_0x2500d5[_0x177923(0x143)]+_0x638612&&_0x9de0f0[_0x177923(0x15d)]>=_0x2500d5[_0x177923(0x1ba)]&&_0x9de0f0[_0x177923(0x15d)]<=_0x2500d5[_0x177923(0x1ba)]+_0x5172c7){if(_0x55f5db[_0x177923(0x14a)](_0x177923(0xee))){if(_0x55f5db[_0x177923(0x14a)](_0x177923(0x133))){_0x55f5db[_0x177923(0x1be)](_0x177923(0xee))[_0x177923(0x17e)]('expanded'),_0x55f5db[_0x177923(0x1c0)]('ul')[_0x177923(0x1a4)]();return;}const _0x961805={'baseUrl':_0x39667e['options']['baseUrl'],'endpointNode':typeof _0x39667e[_0x177923(0x121)][_0x177923(0x1ad)]==='function'?_0x39667e[_0x177923(0x121)]['endpointNode']():_0x39667e[_0x177923(0x121)][_0x177923(0x1ad)],'endpoint':typeof _0x39667e[_0x177923(0x121)][_0x177923(0x1b4)]===_0x177923(0x101)?_0x39667e[_0x177923(0x121)]['endpoint']():_0x39667e['options'][_0x177923(0x1b4)]},_0x1d2fe0=!_0x39667e['options'][_0x177923(0x125)]?_0x429691:_0x3cfbc1;_0x264c5b(_0x55f5db,_0x1d2fe0,_0x961805)[_0x177923(0x14e)](()=>{const _0x5dac31=_0x177923;console[_0x5dac31(0x190)](_0x5dac31(0x1b7)),console[_0x5dac31(0x190)](_0x5dac31(0x133)),_0x55f5db[_0x5dac31(0x1be)](_0x5dac31(0xee))['addClass'](_0x5dac31(0x140));})['catch'](_0x35f85e=>{const _0x40f2f2=_0x177923;_0x55f5db['removeClass'](_0x40f2f2(0xee))['addClass']('expanded'),console[_0x40f2f2(0x190)](_0x40f2f2(0x159),_0x35f85e);});}else{if(_0x55f5db['hasClass']('expanded'))_0x55f5db[_0x177923(0x1c0)]('ul')[_0x177923(0x1a4)](),_0x55f5db[_0x177923(0x13c)](_0x177923(0x149));else{if(_0x55f5db[_0x177923(0x1c0)]('ul')[_0x177923(0x1c0)]()[_0x177923(0x141)]>0x0)_0x55f5db[_0x177923(0x1c0)]('ul')[_0x177923(0x1a4)](),_0x55f5db[_0x177923(0x13c)](_0x177923(0x149));else;}}}else{const _0x29172a=_0x55f5db[_0x177923(0x147)](_0x177923(0xf2)),_0x410d7c=_0x55f5db[_0x177923(0x147)](_0x177923(0x12e));if(_0x39667e[_0x177923(0x121)][_0x177923(0x12a)]&&!_0x39667e[_0x177923(0x121)]['isSelectable'](_0x410d7c))return;_0x39667e['$input'][_0x177923(0x147)](_0x177923(0x12e),_0x410d7c);const _0x404316=((_0xedeb17=_0x410d7c['displayName'])===null||_0xedeb17===void 0x0?void 0x0:_0xedeb17['text'])||((_0x23b43c=_0x410d7c[_0x177923(0x1c2)])===null||_0x23b43c===void 0x0?void 0x0:_0x23b43c[_0x177923(0x155)])||_0x410d7c[_0x177923(0x128)][_0x177923(0xf0)](),_0x3aea2a='['+_0x404316+']('+_0x29172a+')';_0x39667e[_0x177923(0x138)]['val'](_0x3aea2a),_0x39667e[_0x177923(0x138)][_0x177923(0x17f)](_0x177923(0x170)),_0x39667e[_0x177923(0x153)]['hide']();}}),$(document)['on'](_0x1c8646(0xe3),function(_0x2de123){const _0x428e10=_0x1c8646;!$(_0x2de123['target'])['closest'](_0x39667e[_0x428e10(0x142)])[_0x428e10(0x141)]&&_0x39667e[_0x428e10(0x153)][_0x428e10(0xea)]();});}});},_0x413301=_0xfcea5a=>{const _0x5381e4=_0x18aae0;var _0x4978fb,_0x11ba5d,_0x1b0b05;if(!_0xfcea5a){const _0x3bc343=$(_0x5381e4(0x172));return _0x3bc343;}const _0x459f69=_0xfcea5a[_0x5381e4(0x128)]['toString']();let _0x2fcb91=((_0x4978fb=_0xfcea5a[_0x5381e4(0xf6)])===null||_0x4978fb===void 0x0?void 0x0:_0x4978fb['text'])||((_0x11ba5d=_0xfcea5a[_0x5381e4(0x1c2)])===null||_0x11ba5d===void 0x0?void 0x0:_0x11ba5d[_0x5381e4(0x155)])||_0xfcea5a['nodeId'][_0x5381e4(0xf0)](),_0x25e179=(_0x1b0b05=_0xfcea5a['browseName'])===null||_0x1b0b05===void 0x0?void 0x0:_0x1b0b05[_0x5381e4(0xe8)];_0x2fcb91+=_0x25e179!==undefined&&_0xfcea5a['nodeClass'][_0x5381e4(0x126)](/Type/)?_0x5381e4(0xef)+_0x25e179+')':'';const {icon:_0xc0194a,color:_0x298138}=_0x369029(_0xfcea5a),_0x19f3a2=$('<li>');if(_0xfcea5a['nodeClass']==='Variable'){const _0x24878f=$('<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>');_0x19f3a2[_0x5381e4(0xf1)](_0x24878f),_0x24878f['on'](_0x5381e4(0xe3),function(){const _0x50a87c=_0x5381e4;_0x24878f[_0x50a87c(0x14a)]('unchecked')?_0x24878f[_0x50a87c(0x1be)](_0x50a87c(0x13f))['addClass'](_0x50a87c(0x180)):_0x24878f['removeClass'](_0x50a87c(0x180))[_0x50a87c(0x17e)]('unchecked');});}return _0x19f3a2[_0x5381e4(0xf1)]($(_0x5381e4(0x18e)+_0xc0194a+'\x22\x20style=\x22color:'+_0x298138+';\x22></i>'+_0x2fcb91+'<ul></ul>')),_0x19f3a2[_0x5381e4(0x17e)](_0x5381e4(0xee)),_0x19f3a2['data'](_0x5381e4(0xf2),_0x459f69),_0x19f3a2[_0x5381e4(0x147)](_0x5381e4(0x12e),_0xfcea5a),_0x19f3a2;},_0x55ef8b=()=>{const _0x2f7f2f=_0x18aae0;$[_0x2f7f2f(0x1b8)](_0x2f7f2f(0x176),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x1ff29a;return _0x2bbbe8(this,void 0x0,void 0x0,function*(){const _0x357dd1=_0x18f7,_0x18c893=this,_0x26078d=new Set((_0x1ff29a=_0x18c893['$input']['val']())===null||_0x1ff29a===void 0x0?void 0x0:_0x1ff29a[_0x357dd1(0xf0)]()[_0x357dd1(0x103)](';')),_0x1d0aae={'baseUrl':_0x18c893[_0x357dd1(0x121)][_0x357dd1(0x106)],'endpointNode':typeof _0x18c893[_0x357dd1(0x121)][_0x357dd1(0x1ad)]===_0x357dd1(0x101)?_0x18c893[_0x357dd1(0x121)]['endpointNode']():_0x18c893[_0x357dd1(0x121)][_0x357dd1(0x1ad)],'endpoint':typeof _0x18c893[_0x357dd1(0x121)][_0x357dd1(0x1b4)]===_0x357dd1(0x101)?_0x18c893[_0x357dd1(0x121)]['endpoint']():_0x18c893[_0x357dd1(0x121)][_0x357dd1(0x1b4)]},_0x4230e6=yield _0x1e8afd(_0x1d0aae);this['_installTree'](_0x4230e6,_0x26078d);});},'_installTree'(_0x57d1e6,_0x3fcecc){const _0x46654c=_0x2f7f2f,_0x329d26=this;_0x329d26[_0x46654c(0x184)][_0x46654c(0x1b3)]();if(!_0x57d1e6[_0x46654c(0x19a)])return;const _0x4a82a2=_0x57d1e6['events'],_0x15eb6d=_0x413301(_0x4a82a2);_0x329d26[_0x46654c(0x184)][_0x46654c(0xf1)](_0x15eb6d);const _0x52ef13='';this['_installChildren'](_0x15eb6d[_0x46654c(0x1c0)]('ul'),_0x4a82a2,_0x52ef13,_0x3fcecc),_0x15eb6d[_0x46654c(0x1be)](_0x46654c(0xee))[_0x46654c(0x17e)]('expanded'),this[_0x46654c(0xe7)](_0x3fcecc);},'_installChildren'(_0x2f6e11,_0x473a4b,_0x2c43ae,_0x467aaf){const _0x59eab9=_0x2f7f2f,_0x4050f7=({name:_0x4ffc48,namespaceIndex:_0x34af31})=>{if(_0x34af31===0x0)return _0x4ffc48;return _0x34af31+':'+_0x4ffc48;},_0x438944=_0x473a4b[_0x59eab9(0x1c0)]||[],_0x3a7ba5=_0x473a4b['subTypes']||[],_0x211800=[..._0x438944,..._0x3a7ba5];for(const _0x351d12 of _0x211800){const _0x2c83b8=_0x413301(_0x351d12);_0x2f6e11[_0x59eab9(0xf1)](_0x2c83b8);let _0xccc475='';_0x351d12[_0x59eab9(0x18b)]===_0x59eab9(0xe1)&&(_0x2c43ae?_0xccc475=_0x2c43ae+'.'+_0x4050f7(_0x351d12[_0x59eab9(0x1c2)]):_0xccc475=_0x4050f7(_0x351d12['browseName']),_0x2c83b8[_0x59eab9(0xe5)](_0x59eab9(0x110),_0xccc475));const _0x305e00=_0x351d12[_0x59eab9(0x1c0)]&&_0x351d12[_0x59eab9(0x1c0)][_0x59eab9(0x141)],_0x269c0c=_0x351d12[_0x59eab9(0x14d)]&&_0x351d12[_0x59eab9(0x14d)]['length'];!_0x305e00&&!_0x269c0c?_0x2c83b8['removeClass'](_0x59eab9(0xee))[_0x59eab9(0x17e)](_0x59eab9(0x10b)):(this[_0x59eab9(0x117)](_0x2c83b8[_0x59eab9(0x1c0)]('ul'),_0x351d12,_0xccc475,_0x467aaf),_0x2c83b8['removeClass']('expandable')[_0x59eab9(0x17e)]('expanded'));}},'_updateSelectedFields'(){const _0x2edaaf=_0x2f7f2f;var _0x2e5268;const _0x2cab15=this,_0x43d8c4=new Set((_0x2e5268=_0x2cab15['$input'][_0x2edaaf(0x129)]())===null||_0x2e5268===void 0x0?void 0x0:_0x2e5268[_0x2edaaf(0xf0)]()[_0x2edaaf(0x103)](';'));this[_0x2edaaf(0xe7)](_0x43d8c4);},'_updateValues'(_0x1ed9ac){const _0xed7522=_0x2f7f2f;$(_0xed7522(0x136))[_0xed7522(0xf9)](function(){const _0x3412c2=_0xed7522,_0x243165=$(this),_0x3b9cdf=_0x243165[_0x3412c2(0xe5)]('data-value');_0x3b9cdf&&_0x1ed9ac[_0x3412c2(0x13b)](_0x3b9cdf)&&_0x243165[_0x3412c2(0x1c0)](_0x3412c2(0x124))[_0x3412c2(0x1be)]('unchecked')[_0x3412c2(0x17e)](_0x3412c2(0x180));});},'_setInputValue'(){const _0x59fca0=_0x2f7f2f,_0x138e38=this,_0x52b41a=[];$('.sterfive-tree\x20li')['each'](function(){const _0x5be013=_0x18f7,_0x289c8b=$(this);if(_0x289c8b[_0x5be013(0x1c0)](_0x5be013(0x1b0))['length']>0x0){const _0x338147=_0x289c8b[_0x5be013(0xe5)](_0x5be013(0x110));if(_0x338147)_0x52b41a[_0x5be013(0x157)](_0x338147);}});const _0x2f7986=[...new Set(_0x52b41a)]['sort']()[_0x59fca0(0x173)](';');_0x138e38['$input'][_0x59fca0(0x129)](_0x2f7986),_0x138e38['$input'][_0x59fca0(0x17f)]('change');},'_create'(){const _0x1775f9=_0x2f7f2f,_0x15719d=this;_0x15719d['$input']=this[_0x1775f9(0x179)],_0x15719d[_0x1775f9(0x142)]=$(_0x1775f9(0x192)),_0x15719d[_0x1775f9(0x142)][_0x1775f9(0x17e)]('sterfive-combo-box'),this[_0x1775f9(0x179)][0x0][_0x1775f9(0x1bc)][_0x1775f9(0x17d)](_0x15719d[_0x1775f9(0x142)][0x0],this[_0x1775f9(0x179)][0x0]),_0x15719d[_0x1775f9(0x16d)]=$(_0x1775f9(0x192))['addClass']('input-group'),_0x15719d['$combo']['append'](_0x15719d[_0x1775f9(0x16d)]),_0x15719d['$inputGroup'][_0x1775f9(0xf1)](_0x15719d[_0x1775f9(0x138)]),_0x15719d['$toggleTreeBtn']=$(_0x1775f9(0x154)),_0x15719d[_0x1775f9(0x16d)][_0x1775f9(0xf1)](_0x15719d[_0x1775f9(0x1b9)]),_0x15719d['$toggleTreeBtn']['on'](_0x1775f9(0xe3),function(){const _0x4e937e=_0x1775f9;_0x15719d['$dropdown'][_0x4e937e(0x1a4)](),_0x15719d[_0x4e937e(0xed)][_0x4e937e(0x1a4)]();if(_0x15719d[_0x4e937e(0x153)]['is'](_0x4e937e(0x188))){_0x53e313[_0x4e937e(0x1c1)]();const _0x22667a=_0x15719d[_0x4e937e(0x153)][_0x4e937e(0x120)]();_0x53e313[_0x4e937e(0x17b)]({'top':_0x22667a[_0x4e937e(0x1ba)]+'px','right':'calc(100%\x20-\x20'+(_0x22667a[_0x4e937e(0x143)]+_0x15719d['$dropdown'][_0x4e937e(0x12f)]())+_0x4e937e(0x127)}),_0x15719d[_0x4e937e(0x1a5)](),_0x15719d[_0x4e937e(0x15a)]();}else _0x53e313[_0x4e937e(0xea)]();});!_0x15719d[_0x1775f9(0x138)][_0x1775f9(0xe5)](_0x1775f9(0x16b))&&_0x15719d[_0x1775f9(0x138)][_0x1775f9(0xe5)](_0x1775f9(0x16b),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x15719d[_0x1775f9(0xed)]=$(_0x1775f9(0x16a)),_0x15719d[_0x1775f9(0xed)][_0x1775f9(0xea)](),_0x15719d[_0x1775f9(0x153)]=$(_0x1775f9(0x192))[_0x1775f9(0x17e)]('sterfive-dropdown')[_0x1775f9(0xea)]();const _0x5336f1=$(_0x1775f9(0x14b)),_0x4a9c55=$(_0x1775f9(0x104)),_0x53e313=$(_0x1775f9(0x156))[_0x1775f9(0xf1)](_0x5336f1,_0x4a9c55);_0x53e313[_0x1775f9(0xea)](),_0x5336f1['on'](_0x1775f9(0xe3),()=>{const _0x2fb9b3=_0x1775f9;_0x15719d['_setInputValue'](),_0x15719d[_0x2fb9b3(0x153)]['hide']();}),_0x4a9c55['on'](_0x1775f9(0xe3),()=>{const _0x1f3fef=_0x1775f9;_0x15719d[_0x1f3fef(0x153)][_0x1f3fef(0xea)]();}),_0x15719d[_0x1775f9(0x142)][_0x1775f9(0xf1)](_0x15719d[_0x1775f9(0xed)]),_0x15719d[_0x1775f9(0x142)]['append'](_0x15719d[_0x1775f9(0x153)]),_0x15719d[_0x1775f9(0x184)]=$(_0x1775f9(0x10d)),_0x15719d[_0x1775f9(0x153)]['empty']()[_0x1775f9(0xf1)](_0x15719d[_0x1775f9(0x184)],_0x53e313),_0x15719d[_0x1775f9(0x184)]['on'](_0x1775f9(0xe3),'li',function(_0x19e3d3){const _0x510153=_0x1775f9;_0x19e3d3[_0x510153(0x122)]();let _0x3b2ae2=$(this);const _0x23d7aa=0x14,_0x3192ef=0x14,_0x3f666b=$(this)[_0x510153(0x120)](),_0x5c0d41=_0x19e3d3;if(_0x5c0d41[_0x510153(0x12c)]>=_0x3f666b['left']&&_0x5c0d41[_0x510153(0x12c)]<=_0x3f666b[_0x510153(0x143)]+_0x23d7aa&&_0x5c0d41[_0x510153(0x15d)]>=_0x3f666b[_0x510153(0x1ba)]&&_0x5c0d41['pageY']<=_0x3f666b[_0x510153(0x1ba)]+_0x3192ef){console[_0x510153(0x190)](_0x510153(0x105)),console[_0x510153(0x190)](_0x510153(0x112),_0x3b2ae2[_0x510153(0x147)]('value'),_0x3b2ae2[_0x510153(0xe5)]('class'));if(_0x3b2ae2[_0x510153(0x14a)](_0x510153(0xee)))_0x3b2ae2[_0x510153(0x1be)]('expandable')['addClass'](_0x510153(0x140)),_0x3b2ae2[_0x510153(0x1c0)]('ul')[_0x510153(0x1a4)]();else{if(_0x3b2ae2[_0x510153(0x14a)]('expanded'))_0x3b2ae2[_0x510153(0x1c0)]('ul')[_0x510153(0x1a4)](),_0x3b2ae2['toggleClass'](_0x510153(0x149));else{if(_0x3b2ae2[_0x510153(0x1c0)]('ul')[_0x510153(0x1c0)]()['length']>0x0)_0x3b2ae2[_0x510153(0x1c0)]('ul')['toggle'](),_0x3b2ae2[_0x510153(0x13c)](_0x510153(0x149));else;}}}}),$(document)['on'](_0x1775f9(0xe3),function(_0x2ec270){const _0x310cc2=_0x1775f9;!$(_0x2ec270[_0x310cc2(0x1af)])[_0x310cc2(0x11f)](_0x15719d[_0x310cc2(0x142)])[_0x310cc2(0x141)]&&_0x15719d['$dropdown'][_0x310cc2(0xea)]();}),this[_0x1775f9(0x1a5)]();}});},_0x1e8afd=({endpointNode:_0x1f5bb5,endpoint:_0x6c1088,baseUrl:_0xf3cfd5})=>_0x2bbbe8(void 0x0,void 0x0,void 0x0,function*(){const _0x5bbc08=_0x18aae0,_0x530089=_0xf3cfd5+_0x5bbc08(0x1a7),_0x289211=_0x530089+_0x5bbc08(0x16c),_0x4257c8=yield fetch(_0x289211,{'method':_0x5bbc08(0x145),'body':JSON[_0x5bbc08(0x175)]({'endpointNode':_0x1f5bb5,'endpoint':_0x6c1088}),'headers':{'Content-Type':'application/json'}});if(_0x4257c8[_0x5bbc08(0x183)]!==0xc8)return console[_0x5bbc08(0x190)](_0x5bbc08(0x137),_0x4257c8['status'],_0x4257c8['statusText']),{'events':null};console[_0x5bbc08(0x190)]('fetched\x20:\x20',_0x4257c8[_0x5bbc08(0x183)],_0x4257c8[_0x5bbc08(0x114)]);const _0x1317c0=yield _0x4257c8['json'](),_0x411685=_0x1317c0['events'];return{'events':_0x411685};}),_0x25681e=()=>{const _0x427410=_0x18aae0,_0x52e96c=$(_0x427410(0x178)),_0x20c8fe=_0x52e96c['val'](),_0x25f7f5=RED['nodes']['node'](_0x20c8fe);if(!_0x25f7f5)return undefined;const {endpoint:_0x40fd96,securityMode:_0x48ba9b,securityPolicy:_0x537f43,userIdentityType:_0x1779f5,userName:_0x1fdd16,password:_0x42027e,userCertificate:_0x3761a7,userPrivatekey:_0x339724}=_0x25f7f5;return{'endpoint':_0x40fd96,'securityMode':_0x48ba9b,'securityPolicy':_0x537f43,'userIdentityType':_0x1779f5,'userName':_0x1fdd16,'password':_0x42027e,'userCertificate':_0x3761a7,'userPrivatekey':_0x339724};},_0x1af997=()=>{return{'endpointNode':_0x26f63e};},_0x26f63e=()=>{const _0x2d0641=_0x18aae0,_0x509594=$('#node-input-endpoint'),_0x1d6451=_0x509594[_0x2d0641(0x129)](),_0x352737=_0x25681e();if(!_0x352737)return undefined;return{'id':_0x1d6451,'endpoint':_0x352737[_0x2d0641(0x1b4)],'securityMode':_0x352737[_0x2d0641(0xe2)],'securityPolicy':_0x352737[_0x2d0641(0x167)],'userIdentityType':_0x352737[_0x2d0641(0x18f)],'userName':_0x352737['userIdentityType']===_0x2d0641(0x100)?_0x352737[_0x2d0641(0x168)]:undefined,'password':_0x352737[_0x2d0641(0x18f)]===_0x2d0641(0x100)?_0x352737[_0x2d0641(0x139)]:undefined,'userCertificate':_0x352737[_0x2d0641(0xff)],'userPrivatekey':_0x352737[_0x2d0641(0x144)]};};RED['nodes'][_0x18aae0(0x177)](_0x18aae0(0x1a6),{'category':'opcua','color':_0x18aae0(0x107),'align':_0x18aae0(0x166),'icon':_0x18aae0(0xe9),'paletteLabel':_0x18aae0(0xf8),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x4a92a9=>{if(_0x4a92a9==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0xd16366=_0x18aae0;return this['name']||_0xd16366(0x11e);},'labelStyle'(){const _0x4720f6=_0x18aae0;return this['name']?_0x4720f6(0xeb):'';},'oneditprepare'(){const _0x11c9dd=_0x18aae0;_0x409177(),_0x55ef8b(),_0x177f25(RED,this),$('node-input-startImmediately')['on'](_0x11c9dd(0x170),()=>{const _0x451689=_0x11c9dd,_0x3f66e2=$(_0x451689(0x12d))[_0x451689(0x115)]('checked');_0x3f66e2?$('#node-input-inputs')[_0x451689(0x129)](0x0):$(_0x451689(0xec))['val'](0x1);});const _0x5d03bd=$(_0x11c9dd(0x148));_0x5d03bd[_0x11c9dd(0x197)](Object['assign'](Object[_0x11c9dd(0x185)]({},_0x1af997()),{'filter'(_0x380c0c){const _0x303723=_0x11c9dd;return _0x380c0c[_0x303723(0x18b)]===_0x303723(0x15b);},'isSelectable'(_0x58dd01){const _0x59993b=_0x11c9dd;return _0x58dd01['nodeClass']===_0x59993b(0x15b);}})),$(_0x11c9dd(0x19b));const _0x145354=$('#node-input-selectClauses');_0x145354[_0x11c9dd(0x15c)](Object[_0x11c9dd(0x185)]({},_0x1af997()));},'oneditsave'(){const _0x4e35fe=_0x18aae0,_0x4945c1=$('#node-input-startImmediately')[_0x4e35fe(0x115)](_0x4e35fe(0x180));_0x4945c1?($(_0x4e35fe(0x12d))[_0x4e35fe(0x129)](_0x4945c1?0x0:0x1),this[_0x4e35fe(0x118)]=_0x4945c1?0x0:0x1):($('#node-input-startImmediately')[_0x4e35fe(0x129)](0x1),this[_0x4e35fe(0x118)]=0x1);}});}()));function _0x18f7(_0x2f379f,_0xc37554){const _0x1200fd=_0x1200();return _0x18f7=function(_0x18f781,_0x36dd13){_0x18f781=_0x18f781-0xe0;let _0x23d0e1=_0x1200fd[_0x18f781];return _0x23d0e1;},_0x18f7(_0x2f379f,_0xc37554);}function _0x1200(){const _0x2dbeb5=['fetched','21496LjYTJH','<li><i\x20class=\x22fa\x20','.sterfive-tree\x20li','fetching\x20failed\x20with\x20error','$input','password','DataType','has','toggleClass','reset','nodes','unchecked','expanded','length','$combo','left','userPrivatekey','POST','356KOlqkF','data','#node-input-nodeId','expandable\x20expanded','hasClass','<span\x20class=\x22validate-button\x22>✔</span>','rgba(61,\x2060,\x204,\x200.525)','subTypes','then','Objects','857BguGDd','find','ns=0;i=34','$dropdown','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','name','<div\x20class=\x22floating-buttons\x22></div>','push','opc.tcp://opcuademo.sterfive.com:26543','error','_updateSelectedFields','Object','eventFieldSelector','pageY','18uQEzjL','View','CadetBlue','sterfive-combo-box','SandyBrown','SeaGreen','next','already\x20fetched','right','securityPolicy','userName','SteelBlue','<div\x20class=\x22info-text\x22></div>','placeholder','/extractEventTypes','$inputGroup','HasProperty','fa-sliders','change','json','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','join',';\x22></i>\x20','stringify','sterfive.eventFieldSelector','registerType','#node-input-endpoint','element','6516310NRXKrQ','css','nodeAddressString','replaceChild','addClass','trigger','checked','parentNode','<option/>','status','$tree','assign','DodgerBlue','resolveParentNode',':visible','done','subscription','nodeClass','VariableType','<div\x20class=\x22spinner\x22></div>','<i\x20class=\x22fa\x20','userIdentityType','log','text','<div/>','$verifyBtn','TypeDefinition','loading','6484GbOOel','nodeBrowser','replaceWith','BrowseName','events','#node-input-whereClause','171xqPqjK','Unspecified','fa-object-group','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','.spinner','fa-question','1553592JjfUvy','\x22\x20style=\x22color:','toggle','_populate','OpcUa-Client2-MonitorEvent','/opcua-endpoint2','HasSubtype','failure','application/json','verify','ReferenceType','endpointNode','references','target','span.custom-checkbox.checked','Invalid','ns=0;i=46','empty','endpoint','NodeClass','fa-folder','\x20Fetching\x20done','widget','$toggleTreeBtn','top','ns=0;i=40','parentElement','Both','removeClass','message','children','show','browseName','<ul></ul></li>','Variable','securityMode','click','IsForward','attr','filter','_updateValues','namespaceIndex','opcualogobig.png','hide','node_label_italic','#node-input-inputs','$info','expandable','\x20(ns=','toString','append','value','appendTo','sterfive.nodeBrowser','err','displayName','</li>','monitor\x20events','each','Forward','suppressed','Method','ObjectType','fa-list-alt','userCertificate','UserName','function','#node-input-subscription','split','<span\x20class=\x22cancel-button\x22>✖</span>','clicked\x20on\x20icon','baseUrl','#C0DEED','apply','1374925elTndi','ns=0;i=61','no-expandable','currentParent','<ul\x20class=\x22sterfive-tree\x22></ul>','grey','subscriptions','data-value','DisplayName','clicked\x20on\x20','3351943Pbfxzh','statusText','prop','browseResult','_installChildren','inputs','input-group','i=61','HasChild','remove','node','OPCUA\x20Monitor','closest','offset','options','stopPropagation','referenceTypeId','span.custom-checkbox','isTypeRef','match','px)','nodeId','val','isSelectable','Inverse','pageX','#node-input-startImmediately','reference','width','statusCode','Organizes','DarkOrange'];_0x1200=function(){return _0x2dbeb5;};return _0x1200();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxNzdmMjUiLCJfMHgzNmE2NWEiLCJfMHhmODU3ZDkiLCJfMHhjNjhlMTkiLCIkIiwiXzB4NGE4NzliIiwiXzB4ZmI3YjEzIiwiXzB4MTZmM2Q2IiwiXzB4MjFlMWRmIiwiXzB4MzIxMWZjIiwiXzB4MmJiYmU4IiwiXzB4NGQ2NzU3IiwiXzB4MzJjZDk4IiwiXzB4MWJjOWI4IiwiXzB4ZjZiZjQzIiwiXzB4MzE4MjllIiwiXzB4NTVjMmE4IiwiXzB4OWFjYWZlIiwiUHJvbWlzZSIsIl8weDE1NzAzZSIsIl8weDQyNzMzNyIsIl8weDRjMmI5NyIsIl8weDI4MzJjMyIsIl8weDE3Y2U0NSIsIl8weDJkYmNiNCIsIl8weDExNzNhNCIsIl8weDUyZTQyMSIsIl8weDJhNTAxIiwiXzB4MmU0MjljIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTM4ZDRkIiwiXzB4ODdiMmEiLCJfMHg1YWFlMDQiLCJfMHhmM2Q0ODIiLCJFcnJvciIsIl8weDUwYWUzNyIsIl8weDM4ZGM5OCIsIl8weDRhOWQwYSIsIl8weDNkZjI4OSIsIl8weDEyOTM5MiIsIl8weDNhZDgwMyIsIl8weDU4OGI3OSIsIl8weDI5Yjc0NCIsIl8weDRjNDg2YyIsIl8weDE0MDI0NiIsIl8weDE0Y2IyYSIsIl8weDQ2NzQzNSIsIl8weDU3YTMyMCIsIl8weDUwY2FkOSIsIl8weDUwMDZkMiIsIl8weDI4OGM2MyIsIl8weDM4ZDE5NiIsIl8weDM2OTAyOSIsIl8weDQ0NWQwMSIsIl8weGY5MzQ4MiIsImVuZHBvaW50Tm9kZSIsIl8weDNiNDY4MyIsImVuZHBvaW50IiwiXzB4NDY2YWFhIiwiYmFzZVVybCIsIl8weDFjOWY3YyIsIl8weDM1MzE1MSIsIl8weDJhYWFmZSIsIl8weDRlZjRkYiIsIl8weGZlMDgyMyIsIl8weDQyNmE4ZCIsIk9iamVjdCIsIl8weDI5NzVhNSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg0MDZmN2QiLCJfMHgxZGU4NDEiLCJfMHgyYTIwOWEiLCJfMHgzMTdiYmYiLCJfMHgzNzg5NzIiLCJfMHgyMDYyNTUiLCJfMHg1OGQ1ZjYiLCJfMHgyZGViZDAiLCJfMHg0YzhmYWIiLCJfMHg1OTYxNzIiLCJfMHgzNTcxMjIiLCJfMHhlZTIyYmEiLCJfMHgxYjhjNmQiLCJfMHgzOTViMmQiLCJfMHg1ODY4NGEiLCJfMHg1ZjIxNzYiLCJzZXRUaW1lb3V0IiwiXzB4MTBmNzhhIiwiXzB4NDI5NjkxIiwiXzB4MjZmMjUxIiwiXzB4M2JhYTI3IiwiXzB4MjI2ZjNlIiwiXzB4MzFjMzMxIiwiXzB4MzJlM2FlIiwiXzB4M2ZjYzEzIiwiXzB4M2NmYmMxIiwiXzB4MjkwYWViIiwiXzB4M2IxOWUxIiwiXzB4MTdjMWEzIiwiXzB4M2UyOTlhIiwiXzB4NWM3YmRiIiwiXzB4NDY3NmEwIiwiXzB4MzU5MjY0IiwiXzB4MWFlOTgxIiwiXzB4MjIxMDMxIiwiXzB4MzBmMTI2IiwiXzB4ZWFjMjMxIiwiaWNvbiIsIl8weDJmMDllNyIsImNvbG9yIiwiXzB4MTU3MDJmIiwiXzB4NDUwZDNiIiwiXzB4NDA5MTc3IiwidW5kZWZpbmVkIiwiXzB4MjExODRkIiwiXzB4MmI5YmY2IiwiXzB4MjU5YmFiIiwiXzB4YjViMzcyIiwiXzB4Mjc5NTc3IiwiXzB4ZWYxZjg5IiwiXzB4MmYwODkzIiwiXzB4Mzk2NjdlIiwiXzB4MjY0YzViIiwiXzB4NTE2NDg1IiwiXzB4MmVjNGI4IiwiXzB4ZTNmMWU2IiwicmVmZXJlbmNlcyIsIl8weDE3MTNhNCIsIl8weDNkOTMwYSIsIl8weDQzM2U5ZiIsIl8weDQyYzc4ZiIsIl8weDRmOGIzZCIsIl8weDU5MzQ1YSIsIl8weDlhMGVmOCIsIl8weGVkZWIxNyIsIl8weDIzYjQzYyIsIl8weDU1ZjVkYiIsIl8weDYzODYxMiIsIl8weDUxNzJjNyIsIl8weDI1MDBkNSIsIl8weDlkZTBmMCIsIl8weDk2MTgwNSIsIl8weDFkMmZlMCIsIl8weDM1Zjg1ZSIsIl8weDI5MTcyYSIsIl8weDQxMGQ3YyIsIl8weDQwNDMxNiIsIl8weDNhZWEyYSIsImRvY3VtZW50IiwiXzB4MmRlMTIzIiwiXzB4NDEzMzAxIiwiXzB4ZmNlYTVhIiwiXzB4NDk3OGZiIiwiXzB4MTFiYTVkIiwiXzB4MWIwYjA1IiwiXzB4M2JjMzQzIiwiXzB4NDU5ZjY5IiwiXzB4MmZjYjkxIiwiXzB4MjVlMTc5IiwiXzB4YzAxOTRhIiwiXzB4Mjk4MTM4IiwiXzB4MTlmM2EyIiwiXzB4MjQ4NzhmIiwiXzB4NTVlZjhiIiwiXzB4MWZmMjlhIiwiXzB4MThjODkzIiwiXzB4MjYwNzhkIiwiU2V0IiwiXzB4MWQwYWFlIiwiXzB4NDIzMGU2IiwiXzB4MWU4YWZkIiwiXzB4NTdkMWU2IiwiXzB4M2ZjZWNjIiwiXzB4MzI5ZDI2IiwiXzB4NGE4MmEyIiwiXzB4MTVlYjZkIiwiXzB4NTJlZjEzIiwiXzB4MmY2ZTExIiwiXzB4NDczYTRiIiwiXzB4MmM0M2FlIiwiXzB4NDY3YWFmIiwiXzB4NDA1MGY3IiwibmFtZSIsIl8weDRmZmM0OCIsIm5hbWVzcGFjZUluZGV4IiwiXzB4MzRhZjMxIiwiXzB4NDM4OTQ0IiwiXzB4M2E3YmE1IiwiXzB4MjExODAwIiwiXzB4MzUxZDEyIiwiXzB4MmM4M2I4IiwiXzB4Y2NjNDc1IiwiXzB4MzA1ZTAwIiwiXzB4MjY5YzBjIiwiXzB4MmU1MjY4IiwiXzB4MmNhYjE1IiwiXzB4NDNkOGM0IiwiXzB4MWVkOWFjIiwiXzB4MjQzMTY1IiwiXzB4M2I5Y2RmIiwiXzB4MTM4ZTM4IiwiXzB4NTJiNDFhIiwiXzB4Mjg5YzhiIiwiXzB4MzM4MTQ3IiwiXzB4MmY3OTg2IiwiXzB4MTU3MTlkIiwiXzB4NTNlMzEzIiwiXzB4MjI2NjdhIiwiXzB4NTMzNmYxIiwiXzB4NGE5YzU1IiwiXzB4MTllM2QzIiwiXzB4M2IyYWUyIiwiXzB4MjNkN2FhIiwiXzB4MzE5MmVmIiwiXzB4M2Y2NjZiIiwiXzB4NWMwZDQxIiwiXzB4MmVjMjcwIiwiXzB4MWY1YmI1IiwiXzB4NmMxMDg4IiwiXzB4ZjNjZmQ1IiwiXzB4NTMwMDg5IiwiXzB4Mjg5MjExIiwiXzB4NDI1N2M4IiwiXzB4MTMxN2MwIiwiXzB4NDExNjg1IiwiXzB4MjU2ODFlIiwiXzB4NTJlOTZjIiwiXzB4MjBjOGZlIiwiXzB4MjVmN2Y1IiwiUkVEIiwiXzB4NDBmZDk2Iiwic2VjdXJpdHlNb2RlIiwiXzB4NDhiYTliIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg1MzdmNDMiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MTc3OWY1IiwidXNlck5hbWUiLCJfMHgxZmRkMTYiLCJwYXNzd29yZCIsIl8weDQyMDI3ZSIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDM3NjFhNyIsInVzZXJQcml2YXRla2V5IiwiXzB4MzM5NzI0IiwiXzB4MWFmOTk3IiwiXzB4MjZmNjNlIiwiXzB4NTA5NTk0IiwiXzB4MWQ2NDUxIiwiXzB4MzUyNzM3IiwiXzB4NGE5MmE5IiwiXzB4M2Y2NmUyIiwiXzB4NWQwM2JkIiwiXzB4MzgwYzBjIiwiXzB4NThkZDAxIiwiXzB4MTQ1MzU0IiwiXzB4NDk0NWMxIl0sIm1hcHBpbmdzIjoieWtCQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGVBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZ0JBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxnQkFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJ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QUEsQ0FQQSxDQVFBLE1BQU00UCxTQUFBLENBQWlCNVAsQ0FBQSxDLDJCQUFBLENBQXZCLENBQ0E0UCxTQUFBLEMsZ0JBQUEsRUFBa0M5TCxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCb0wsU0FBQSxFQUFsQixDQUFsQyxDLEVBcEU2QyxDLFlBc0VqRCxFLDJCQUNVVyxTQUFBLENBQW1CN1AsQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ3JCNlAsUyxFQUNBN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLGdCQUFBLEVBQWNBLFNBQUEsQyxHQUFBLEMsTUFHZDdQLENBQUEsQyw4QkFBQSxFLGdCQUFBLEUsR0FBQSxDLENBQ0EsSyxnQkFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
11
11
  <style>